Zappers for the Commodore 64

244
8/6/2019 Zappers for the Commodore 64 http://slidepdf.com/reader/full/zappers-for-the-commodore-64 1/244 i H A V E F U N A N D L E A R N j P R O G R A M W I T H U N F O R G E T T A B L E G A M E S O M M O D O R E B Y H E N R Y M U L L I S H A N D - H E R B E R T C O O P E R

Transcript of Zappers for the Commodore 64

Page 1: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 1/244

i H A V E F U N A N D L E A R N jP R O G R A M W I T H

U N F O R G E T T A B L EG A M E S

O M M O D O R E

B Y H E N R Y M U L L I S H

A N D -H E R B E R T C O O P E R

Page 2: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 2/244

Page 3: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 3/244

Page 4: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 4/244

Page 5: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 5/244

O T H E R B O O K S B H E N R Y M U L L I S H :

B A S I C A P P R O A C H T O S T R U C T U R E D B A S I CC R U N C H E R S ( w i t h Y i C h i u )

A I N T R O D U C T I O N T P R O G R A M M I N G I B A S I CO T H T I M E X - S I N C L A I R

S T R U C T U R E D C O B O L : M O D E R N A P P R O A C HF I N A N C I A L A N A L Y S I S B C A L C U L A T O R

Z A P P E R S : H A V I N G F U N P R O G R A M M I N G A N P L A Y I N G 2 G A M E S F O T H T I - 9 9 / 4 A

( w i t h D o K r u g e r )

Page 6: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 6/244

Page 7: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 7/244

F O T H

C O M M O D O R E3 G r e a t G a m e s t P r o g r a m a n P l a y o Y o u r C o m m o d o r e 6

b H E N R Y M U L L I S Ha n H E R B E R T C O O P E R

C o m p u t e r B o o k D i v i s i o nS i m o n S c h u s t e r , I n c .

N E Y O R K

Page 8: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 8/244

C o p y r i g h t 1 9 8 4 b H e n r y M u l l i s h a n H e r b e r t C o o p e r

A l r i g h t s r e s e r v e di n c l u d i n g t h r i g h t o r e p r o d u c t i o ni w h o l e o i p a r t i a n f o r mP u b l i s h e d b t h C o m p u t e r B o o k D i v i s i o nS i m o n a n S c h u s t e r , I n c .S i m o n S c h u s t e r B u i l d i n gR o c k e f e l l e r C e n t e r1 2 3 0 A v e n u e o t h A m e r i c a sN e Y o r k , N e Y o r k 1 0 0 2 0s i m o n a n S c h u s t e r a n c o l o p h o n a r e r e g i s t e r e d t r a d e m a r k s o fS i m o n S c h u s t e r , I n c .D e s i g n e d b I r v i n g P e r k i n s A s s o c i a t e sM a n u f a c t u r e d i t h U n i t e d S t a t e s o A m e r i c a

1 9 8 7 6 5 4 3 2 1L i b r a r y o f C o n g r e s s C a t a l o g i n g i P u b l i c a t i o n D a t aM u l l i s h , H e n r y .

Z a p p e r s f o t h C o m m o d o r e 6 4 1 C o m m o d o r e 6 ( C o m p u t e r ) — P r o g r a m m i n g . 2 B a s i c

( C o m p u t e r p r o g r a m l a n g u a g e ) 3 C o m p u t e r g a m e s .I C o o p e r , H e r b e r t . I I T i t l e .Q A 7 6 . 8 . C 6 4 M 8 6 1 9 8 4 0 0 1 . 6 4 ; 2 8 4 - 2 0 2 4 1I S B N : 0 - 6 7 1 - 5 0 7 1 4 - 1

Page 9: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 9/244

C O N T E N T S 1I n t r o d u c t i o n

7 N o Y o S e I t . . . 1 2 F i n d - a - W o r d 2 3 E l a p s e d D a y s 2 4 H a i l s t o n e s 3 5 T y p i n g T e s t 4 6 L a n d e r 4 77 M a g i c S q u a r e s 5 68 P e n e t r a t e 6 9 B a g e / s 6

7 0 C r a p s 7 1 1 H i - L o 8 7 2 B i o r h y t h m s 9 7 3 H a n g m a n 1 0 7 4 R u H a r r y ! 1 1

Page 10: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 10/244

1 5

1 6 1 7

1 8

1 9

2 0 2 1 2 2 2 3

2 4 2 5

2 6 2 7

2 8 2 9

3 0

W a l l p a p e r

S i m o n S a y sM a t h W h i zP h o n e - y W o r d sT i c - T a c - T o e

O n e - A r m e d B a n d i tP r i n t - a - M o n t hF i n d H a r r yS c r a m b l e r

L o t t e r yC o n c e n t r a t i o nE t c h e rM o s a i c

F e e d H a r r yM o r s e C o d eP i t h S k

1 2

1 2 1 3 1 4 1 4

1 5 1 6 1 7 1 7

1 8 1 9 2 0 2 1

2 1 2 2 2 3

Page 11: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 11/244

T h C o m m o d o r e 6 c o m p u t e r i s w i t h o u t d o u b t , o n o t h e b e s tc o m p u t e r b u y s y o c a m a k e f o t h m o n e y . N o o n l y d o e s i c o m e w i t h 6 4 o m e m o r y b u i a l s o s u p p o r t s a d v a n c e d c o l o ra n d s o u n d f e a t u r e s n o f o u n d e v e n i m o r e e x p e n s i v e c o m p u t e r s .

A l t h i r t y g a m e s f o u n d i t h i s b o o k w e r e w r i t t e n s p e c i f i c a l l yf o t h C o m m o d o r e 6 c o m p u t e r a n d p r o b a b l y w i l l n o r u o a n o t h e r c o m p u t e r w i t h o u t s u b s t a n t i a l c h a n g e s b e i n g m a d e . E a c hp r o g r a m i a c c o m p a n i e d b d e t a i l e d d e s c r i p t i o n o t h o s e f e a t u r e sw h i c h a r u n i q u e t t h C o m m o d o r e 6 4 T h e y h a v e a l b e e nw r i t t e n i t h C 6 v e r s i o n o t h B A S I C l a n g u a g e .

I g e n e r a l , a n y o n e w i t h k n o w l e d g e o B A S I C ( r e g a r d l e s s o t h d i a l e c t ) w i l l b a b l e t f o l l o w t h l o g i c o m o s t o t h p r g r a m s . H o w e v e r , i m a n y o t h e m w h a v e t a k e n a d v a n t a g e o ft h B A S I C - s u p p o r t e d P E E K a n P O K E c o m m a n d s . T h e s e p o e r f u l c o m m a n d s a r u s e d t p a s s i n f o r m a t i o n t a n f r o m s p e c i f i cl o c a t i o n s i m e m o r y . W h e n e v e r t h s o u n d f e a t u r e i u s e d , t h e r ei n a l t e r n a t i v e b u t o r e s o r t t o t h e s e P E E K s a n P O K E s , s i n c et h s o u n d c h i p i c o n t r o l l e d b s p e c i f i c l o c a t i o n s i m e m o r yw h i c h c a b a c c e s s e d o n l y t h r o u g h t h e s e B A S I C c o m m a n d s .S o m e t i m e s t h e s e a r e u s e d m e r e l y t i m p r o v e t h e e f f i c i e n c y o t h p r o g r a m , t s p e e d i u p t e n h a n c e t h d i s p l a y , o t s h o r t e nt h p r o g r a m s . W h e n e v e r t h e y a r u s e d , w d e s c r i b e t h e i r e f f e c t si n d e t a i l s t h a t t h s t r a n g e r t P E E K s a n P O K E s w i l l n o f e e lc o m p l e t e l y a b a b u w i l l , o t h c o n t r a r y , e x p a n d h i k n o w l e d g eo t h c o m p u t e r .

Page 12: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 12/244

1 Z A P P E R S F O T H C O M M O D O R E 6 W h e n e v e r n e t e c h n i q u e i i n t r o d u c e d , w e x p l a i n i i n d e t a i l

s t h a t w h e n t h s a m e c o n c e p t o c c u r s i s u b s e q u e n t p r o g r a m s ,t h r e a d e r w i l l b f a m i l i a r w i t h t h c o n c e p t a n w a v o i d h a v i n gt r e p e a t i t F o t h i s r e a s o n i w o u l d b a d v i s a b l e t i n i t i a l l y t r o u t h p r o g r a m s i t h o r d e r i w h i c h t h e y a p p e a r i t h b o o k .A f t e r a w h i l e , t h t e c h n i q u e s w h i c h a r r e p e a t e d l y u s e d w i l lb e c o m e p a r t o y o u r o w r e p e r t o i r e o t r i c k s .

N o a l o t h c h a r a c t e r s o b t a i n a b l e f r o m t h k e y b o a r d a r p r i n t a b l e . F o e x a m p l e , t c l e a r t h s c r e e n i i m m e d i a t e m o d e ,a l o n h a t d i t p r e s s t h s h i f t e d C L k e y . H o w e v e r , i w i t h i n a p r o g r a m w w i s h t c l e a r t h e s c r e e n , i w o u l d b i p o s s i b l e t d e n o t e t h i s i o u l i s t i n g u n l e s s p r o v i s i o n w e r e m a d et i n c o r p o r a t e t h C L k e s y m b o l i c a l l y . T h i s i m a d e p o s s i b l et h r o u g h t h e s p e c i a l c h a r a c t e r i s t i c s o t h l i t e r a l w i t h i n t h P R I N Ts t a t e m e n t ( i . e . , t h s t r i n g o c h a r a c t e r s , b e t w e e n t h q u o t a t i o nm a r k s , t h a t i t b p r i n t e d ) . I i t h i s s t a t e m e n t w t y p e a o p e nq u o t e a n t h e n h i t h C L k e y , w s h a l l s e d i s p l a y e d o t h s c r e e n r e v e r s e d g r a p h i c s c h a r a c t e r — i n t h i s c a s e , r e v e r s e dh e a r t - s h a p e d f i g u r e . I f a c t , e a c h s p e c i a l f u n c t i o n k e y , s u c h a t h o s e t h a t s e t h c h a r a c t e r c o l o r , i r e p r e s e n t e d b r e v e r s e dg r a p h i c s s y m b o l w h e n i i t y p e d w i t h i n t h l i t e r a l . T h e s e s y m b o l sa c a s c o n t r o l c h a r a c t e r s ; t h a t i s w h e n t h p r o g r a m i r u n , t h s y m b o l s d n o t a p p e a r o t h s c r e e n , b u r a t h e r t h e d e s i r e d f u n ct i o n i p e r f o r m e d , s u c h a s c l e a r i n g t h e s c r e e n . T a b l e s h o w st h e s e c o n t r o l c h a r a c t e r s a t h e y a p p e a r i p r o g r a m l i s t i n g s .

S i n c e t h p r o g r a m l i s t i n g s a s h o w n i t h i s b o o k a r e x a c t l ya p r o d u c e d b t h C o m m o d o r e 6 4 y o w i l l n e e d t h i s t a b l e t f i g u r e o u w h i c h k e t p r e s s i o r d e r t o b t a i n t h r e v e r s e dg r a p h i c s c h a r a c t e r t h a t i s h o w n i a n g i v e n l i s t i n g . ( W h e ne x a m i n i n g t h l i s t i n g s , b c a r e f u l n o t c o n f u s e t h e s e r e v e r s e dg r a p h i c s c h a r a c t e r s w i t h " r e a l " g r a p h i c s c h a r a c t e r s . ) F o t h r e a d e rw h w i s h e s t e x t e n d h i u n d e r s t a n d i n g o t h i s a n a n o t h e r o t h s o p h i s t i c a t e d f e a t u r e s s u c h a s o u n d g e n e r a t i o n , t h o f f i c i a lC o m m o d o r e 6 P r o g r a m m e r ' s R e f e r e n c e G u i d e ( I n d i a n a p o l i s :H o w a r d W S a m s C o . ) i v a l u a b l e s o u r c e o i n f o r m a t i o n .

I r e c e n t a r t i c l e o c o m p u t e r s p u b l i s h e d i T i m e m a g a z i n e( M a y 2 3 1 9 8 3 ) i w a r e p o r t e d t h a t i t h p i o n e e r i n g d a y s t h e r e

Page 13: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 13/244

I N T R O D U C T I O N 1

T A B L E

F u n c t i o n A p p e a r a n c e W i t h i n Q u o t e s

B L W H R E C Y p u G R B L y e C o m m o d o r e K e y - 1 ( O R A N G E )C o m m o d o r e K e y - 2 ( B R O W N )C o m m o d o r e K e y - 3 ( L R E D ) g C o m m o d o r e K e y - 4 ( G R A Y 1 C o m m o d o r e K e y - 5 ( G R A Y 2 C o m m o d o r e K e y - 6 ( L G R N ) | C o m m o d o r e K e y - 7 ( L B L U )C o m m o d o r e K e y - 8 ( G R A Y 3 ■ R V O R V O F H O M EC L C R S R d o w nC R S R u C R S R r i g h tC R S R l e f t |

I

w e r e o n l y 7 0 , 0 0 0 p e r s o n a l c o m p u t e r s i h o u s e h o l d s a c r o s s t h eU . S . , a c o m p a r e d w i t h t o d a y ' s m i l l i o n ; T h e r e w e r e o n l y

Page 14: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 14/244

1 Z A P P E R S F O R T H C O M M O D O R E 6 h a n d f u l o f p r o g r a m s a v a i l a b l e , a n g a m e p l a y i n g w a t h e p r i nc i p a l p u r s u i t o t h h o m e - c o m p u t e r o w n e r . T o d a y , a c c o r d i n g t t h r e p o r t , g a m e p l a y i n g i s t i l l t h m a i n u s e o f h o m e c o m p u t e r s .A c c o r d i n g t a s u r v e y c o n d u c t e d b t h G a l l u p O r g a n i z a t i o n , 5 p e r c e n t o p e r s o n a l - c o m p u t e r o w n e r s u s t h e i r c o m p u t e r s a h o m ef o v i d e o g a m e s , 4 p e r c e n t f o b u s i n e s s p u r p o s e s a n a c h i l d ' sl e a r n i n g t o o l , 4 p e r c e n t a a a d u l t ' s l e a r n i n g t o o l , 3 p e r c e n tf o b a l a n c i n g c h e c k b o o k s a n b u d g e t i n g , 2 p e r c e n t f o b u s i n e s sa h o m e , a n 1 p e r c e n t f o w o r d p r o c e s s i n g . I t i s p o i n t e d o u tt h a t t h i s t o t a l s w e l l a b o v e 1 0 p e r c e n t b e c a u s e c o m p u t e r s a r o f t e n e m p l o y e d f o m o r e t h a n o n p u r p o s e . A c c o r d i n g t F u t u r eC o m p u t e r I n c . , T e x a s - b a s e d m a r k e t i n g r e s e a r c h f i r m , 5 p e c e n t o a l h o m e s o f t w a r e s o l d i 1 9 8 3 , t o t a l i n g s o m e 1 m i l l i o np a c k a g e s , w e r e e n t e r t a i n m e n t p r o g r a m s .

T h p o p u l a r i t y o t e l e v i s i o n p r e p a r e d t h w a f o m i l l i o n s o c h i l d r e n t t a k e i m m e d i a t e l y t t h a r c a d e v i d e o m a c h i n e s t h a th a v e a c h i e v e d s u c h p o p u l a r i t y i r e c e n t y e a r s . U n f o r t u n a t e l y , t h v i d e o a r c a d e d o e s n o p r o v i d e t h p l a y e r w i t h t h a b i l i t y t c h a n g e

g a m e s h o u l d t h a t b d e s i r e d . W h a t i i g o o d a i d e m a n d i n gq u a r t e r s w i t h o u t e n d .

I t h i s b o o k y o w i l l b i n t r o d u c e d t w i d e v a r i e t y o g a m e sr a n g i n g f r o m t h o s e d e m a n d i n g i n t e l l e c t u a l s k i l l s t a c t i o n g a m e s ,e n t e r t a i n i n g c o m p e t i t i v e g a m e s , a n s o m e i n t e r e s t i n g u t i l i t a r i a np r o g r a m s . T h p r o g r a m s a r e t h e r e f o y o t e x p l o i t t y o u rh e a r t ' s c o n t e n t . Y o a r e n c o u r a g e d t t y p e t h e m i n t o y o u r C o m o d o r e 6 c o m p u t e r a n d s t o r e t h e m o t a p e o d i s k f o r f u t u r eu s e , t h e r e b y a v o i d i n g t h e n e c e s s i t y t t y p e t h e m i a g a i n i t h f u t u r e . Y o w i l l f i n d t h a t g a m e p r o g r a m s p r e s e n t c o n s i d e r a b l ei n t e l l e c t u a l c h a l l e n g e . T h e a s i e s t w a t d i s c o v e r t h i s f o y o u rs e l f , o c o u r s e , i t o t r y a n w r i t e o n o y o u r o w n . N o t e v e r yb o d y , h o w e v e r , i s u i t a b l y e q u i p p e d f o t h i s c h o r e , a n t o w a r dt h a t e n w p r o v i d e n u m e r o u s s u g g e s t i o n s a t h e n o e a c hp r o g r a m t m a k e t h e m e v e n m o r e i n t e r e s t i n g o s l i g h t l y d i f f e r e n t .E a c h p r o g r a m c a n b e c u s t o m i z e d t s u i t t h l e v e l o f e a c h m e m b e ro t h e f a m i l y , a n t h u s t h e c o m p u t e r c a a s s u m e t h r o l e o m a g n e t a r o u n d w h i c h t h f a m i l y m a g a t h e r . A l t h o u g h t h m i c r oc o m p u t e r i a e x t r e m e l y v e r s a t i l e m a c h i n e , i h a p p e n s t b u n i q u e l y s u i t e d t g a m e p l a y i n g . W h a t i s c o n v e n i e n t a b o u t i

Page 15: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 15/244

I N T R O D U C T I O N 1 i t h a t y o c a p a r t i c i p a t e i t h p r i v a c y o y o u r o w h o m e .

I y o h a v e s e e n l i s t i n g s o g a m e p r o g r a m s w r i t t e n f o c o m e r c i a l u s e , y o w i l l h a v e n o t i c e d t h a t t h e y a r i n v a r i a b l y n o w r i t t e n i B A S I C b u r a t h e r i m u c h m o r e a r c a n e a n c r y p t i cl a n g u a g e k n o w n a m a c h i n e l a n g u a g e . T h p r a c t i t i o n e r s o t h a r o m a c h i n e - l a n g u a g e p r o g r a m m i n g a r f e a n f a b e t w e e n .P r o g r a m s w r i t t e n i t h i s m a n n e r a r e x t r e m e l y d i f f i c u l t t f o l l o w ,e s p e c i a l l y f o t h u n i n i t i a t e d . F o t h i s r e a s o n , w h a v e t a k e n v e r ys p e c i a l c a r e t b s u r e t h a t e a c h o t h p r o g r a m s i n c l u d e d i t h i sb o o k i w r i t t e n i t h s t a n d a r d B A S I C s u p p o r t e d b t h C o m o d o r e 6 4 T h c o l o r s c h o s e n f o t h e s e g a m e s w e r e s e l e c t e d b a s e d u p o nw h a t w c o n s i d e r e d t l o o k g o o d o o u t e l e v i s i o n s e p l u s w h a tw a r e c o m m e n d e d b t h m a n u f a c t u r e r . O y o u r o w t e l e v i s i o no c o l o r m o n i t o r , h o w e v e r , t h e s e c o l o r s m a n o l o o k a a t t r a c t i v ea n m a e v e n r e n d e r s o m e o t h e c h a r a c t e r s i l l e g i b l e . I a d j u s t i n gt h c o l o r c o n t r o l s d o e s n o r e c t i f y t h s i t u a t i o n , y o m a o p t c h a n g e t h c o l o r s e l e c t i o n s t s u i t y o u r o w e q u i p m e n t .

T H P R O G R A M L I S T I N G SI n o r d e r t m a k e t h p r o g r a m l i s t i n g s i t h i s b o o k m o r e r e a d

a b l e , w h a v e p r i n t e d t h e m i f o r m a t t h a t i s l i g h t l y d i f f e r e n tf r o m t h w a t h e y w i l l a p p e a r o t h C o m m o d o r e s c r e e n . F o e x a m p l e , g r a p h i c s c h a r a c t e r s a r d e s i g n e d a t h e y a p p e a r o t h k e y b o a r d a n i t h C o m m o d o r e 6 U s e r ' s G u i d e . Y o w i l l n o s e t h e o u t l i n i n g b o x e s o t h s c r e e n . A l s o , a l g r a p h i c s c h a r a c t e r s( i n c l u d i n g c o n t r o l c h a r a c t e r s , a r r o w s , a n t h p o u n d s i g n ) a r g i v e n t h s p a c e o t w r e g u l a r c h a r a c t e r s i t h e s e l i s t i n g s . W h e ny o t y p e i l i n e c o n t a i n i n g a n o t h e s e c h a r a c t e r s , t h e r e f o r e ,t h l i n e w i l l a p p e a r s h o r t e r o y o u r s c r e e n .

S o m e l i n e s i t h p r o g r a m s i t h i s b o o k a r m o r e t h a n f o r t yc h a r a c t e r s l o n g . W h e n y o t y p e s u c h a l i n e i n t o t h C o m m o d o r e6 4 t h c u r s o r o t h s c r e e n w i l l " w r a p a r o u n d " t t h n e x t l i n ea n w i l l c o n t i n u e d i s p l a y i n g t y p e d c h a r a c t e r s t h e r e . T h i s c o n t i nu a t i o n l i n e i r e c o g n i z e d a p a r t o t h f i r s t l i n e . A g a i n , f o r e a d a b i l i t y w h a v e c h o s e n t s p l i t l i n e s ( w h e n n e c e s s a r y ) i t h l i s t i n g s a r e a s o n a b l e p o i n t s , s u c h a b e t w e e n w o r d s i n s t e a d o

Page 16: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 16/244

1 Z A P P E R S F O R T H C O M M O D O R E 6 i t h m i d d l e o w o r d . T h e s e l i n e b r e a k s w i l l h a v e n c o r r es p o n d e n c e t t h l i n e a i a p p e a r s o y o u r s c r e e n . W h e n y o a r t y p i n g l i n e t h a t i c o n t i n u e d o n e l i n e , s i m p l y c o n t i n u et y p i n g , i n s e r t i n g s p a c e b e t w e e n w o r d s a y o u w o u l d n o r m a l l y .D n o p r e s s t h R E T U R N k e u n t i l y o h a v e t y p e d t h e n t i r es t a t e m e n t a n a r r e a d y t b e g i n w i t h t h n e x t l i n e n u m b e r .

O o c c a s i o n y o w i l l n o t i c e t h a t l i t e r a l i P R I N T s t a t e m e n tc o n t a i n s n u m b e r o f b l a n k s p a c e s . M o r e o f t e n t h a n n o t , t h n u m b e r o s p a c e s ( i n s e r t e d w i t h a s t r o k e o t h s p a c e b a r f o e a c hs p a c e ) i o p a r a m o u n t i m p o r t a n c e . B l a n k s p a c e s a r s o m e t i m e su s e d i t h p r o g r a m s t d e l e t e p r e v i o u s i n f o r m a t i o n t h a t i d i p l a y e d o t h s c r e e n . I t h n u m b e r o s p a c e s i n c l u d e d i l e s st h a n t h r e q u i r e d n u m b e r , u n w a n t e d i n f o r m a t i o n w i l l r e m a i n o t h e s c r e e n , p o s s i b l y l e a d i n g t c o n f u s i o n . W h e n e v e r t h n u m b e ro s p a c e s r e q u i r e d m a b u n c l e a r i t h l i s t i n g s ( w h e t h e r d u t s h e e r l e n g t h o t a d j a c e n t g r a p h i c s c h a r a c t e r s ) , w s p e c i f y t h en u m b e r i t h L i n e s o S p e c i a l I n t e r e s t s e c t i o n o e a c h c h a p t e r .

F i n a l l y , s o m e c a u t i o n a r y n o t e s c o n c e r n i n g t h t y p i n g i o p r o g r a m s f r o m a n b o o k . O n o t h m o s t f r e q u e n t e r r o r s i t y p i n g p r o g r a m s i m i s t a k i n g t h l e t t e r f o t h n u m b e r a n v i c e v e r s a . U n f o r t u n a t e l y , m a n y t y p e f a c e s i n d i c a t e t h e l e t t e rw i t h s t r a i g h t v e r t i c a l l i n e r e g a r d l e s s o t h f a c t t h a t t h i s m i g h tb c o n f u s i n g t n o v i c e . A l s o , t h l e t t e r i e a s i l y c o n f u s e dw i t h t h d i g i t 0 a n f o t h a t m a t t e r e v e n t h n u m b e r w i t h t h l e t t e r G S w h e n t y p i n g i p r o g r a m , b a b s o l u t e l y s u r e o e a c hc h a r a c t e r y o a r t y p i n g , s i n c e i i i i n c o r r e c t , t h r e s u l t s a r u n p r e d i c t a b l e . A n b s u r e t i n c l u d e e v e r y c h a r a c t e r , h o w e v e rm i n o r i m a a p p e a r . I P R I N T s t a t e m e n t t e r m i n a t e s w i t h as e m i c o l o n , b s u r e t i n c l u d e i t b e c a u s e i a f f e c t s t h m a n n e r i w h i c h o u t p u t i d i s p l a y e d o t h e s c r e e n . W m e n t i o n t h i s o n l yb e c a u s e i c a b s e a s i l y o v e r l o o k e d . B e s p e c i a l l y c a r e f u l i t h s e m i c o l o n i f o l l o w e d b c o l o n , i n d i c a t i n g t h a t t h l i n ec o n t a i n s m o r e t h a n o n i n s t r u c t i o n .

Page 17: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 17/244

C H A P T E R

N O Y O S E I T

T h i s g a m e i t e s t o y o u r a b i l i t y t r e m e m b e r n u m b e r s t h a t a r f l a s h e d o t h s c r e e n i a s e q u e n c e . Y o d o n ' t h a v e t h a v ep r o d i g i o u s m e m o r y , b e c a u s e t h e r e a r e f i v e l e v e l s ( o s p e e d s ) o w h i c h y o c a p l a y . L e v e l ( o s p e e d ) i t h e a s i e s t a n l e v e l

i t h h a r d e s t . T h n u m b e r s 0 t h r o u g h a r l i s t e d a t t h t o o t h e s c r e e n , a n b e n e a t h t h e m , b e l o w t h c o r r e s p o n d i n g n u b e r , o n o t h d i g i t s i f l a s h e d m o m e n t a r i l y . T h i s i r e p e a t e d i

r a n d o m s e q u e n c e ; b t h e n o t h s e q u e n c e e a c h d i g i t h a b e e n f l a s h e d f o u r t i m e s e x c e p t f o o n d i g i t — a r a n d o m l y s e l e c t e do n e — w h i c h w a f l a s h e d f i f t h t i m e . T h i d e a i t r e c o g n i z e ,w i t h o u t r e s o r t i n g t p e n c i l a n p a p e r , w h i c h d i g i t w a f l a s h e df i v e t i m e s . Y o u m a y g t h r o u g h a n o t h e r r o u n d o t h s a m e l e v e la m a n y t i m e s a y o w i s h . W h e n y o a r d o n e , t h p r o g r a md i s p l a y s y o u r p e r f o r m a n c e r a t i n g — h o w m a n y y o s c o r e d r i g h ta n h o m a n y w r o n g , t o g e t h e r w i t h t h c o r r e s p o n d i n g p e r c e n ta g e s . A f t e r e a c h g a m e y o m a r e s t a r t t h p r o g r a m t p l a y o d i f f e r e n t l e v e l .

1 R E M N O W Y O U S E E I T . . .2 D I N U M ( 4 0 ) f P I T ( 4 0 )3 C N T = 0 : Y E S = 04 P R I N T " W H A T ' S Y O U R S P E E D ( 1 - 5 ) ? "

1

Page 18: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 18/244

1 Z A P P E R S F O R T H C O M M O D O R E 6 5 G E A $ : I F A $ = " " T H E N 5 6 I A $ < " 1 " O A $ > " 5 " T H E N 5 7 P R I N T A 8 S = 1 0 0 + ( 5 3 - A S C ( A $ ) ) * 2 7 59 P R I N T " □ D D O O O D D D D "1 0 P R I N T T A B ( 1 0 ) ; " 0 1 3 6 7 9 1 1 C N T = C N T + 11 2 P R I N T " K 1 3 G O S U B 4 0 1 4 F O R 1 = 0 T 4 1 5 P R I N T T A B ( 9 + 2 * N U M ( I ) ) ; N U M ( I ) ;1 6 F O J = T S : N E X T J i P R I N T " | | | |1 7 F O R J = 1 T S : N E X T1 8 N E X T1 9 P R I N T : P R I N T2 0 P R I N T T A B d O ^ ' Q W H A T ' S T H D I G I T ? " 2 1 G E A $ : I F A $ = " M T H E N 2 1 02 2 I A $ < " 0 M O A $ > " 9 " T H E N 2 1 2 3 P R I N T A 2 4 I A S C ( A $ ) - 4 8 = X T H E N 3 2 02 5 P R I N T : P R I N T " N O , I W A S " ; X2 6 P R I N T : P R I N T " A G A I N ( O R N > ? " 2 7 0 G E T A $ : I F A $ = " " T H E N 2 7 2 8 I A $ O " Y " A N A $ O " N " T H E N 2 7 02 9 P R I N T A 3 0 I A $ = " Y " T H E N 9 3 1 0 G O T O 3 4 03 2 P R I N T : P R I N T " R I G H T ! ! " : Y E S = Y E S + 13 3 0 G O T O 2 6 3 4 G O S U B 6 0 3 5 E N 4 0 0 R E M L O A D T H E S E Q U E N C E4 1 F O J = T 4 0 : P I T ( J ) = J : N E X T4 2 0 T P = 4 14 3 F O T M E S = 1 T 4 4 F O D I & = 0 T 4 5 Q = I N T ( R N D ( O ) * T P )4 6 N U M ( P I T ( Q ) ) = D I G

Page 19: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 19/244

N O Y O S E I T . . . 1 4 7 T P = T P - 14 8 P I T ( Q ) = P I T ( T P >4 9 0 N E X T D I 5 0 N E X T T M E S5 1 X = I N T ( R N D ( 0 ) * 1 0 )5 2 N U M ( P I T ( 0 ) ) = X5 3 R E T U R N6 0 0 R E M P E R F O R M A N C E R A T I N G6 1 P R I N T " □ O D O D O " ; T A B ( 1 4 ) ; " Y 0 U R S C O R E S : "6 2 P R I N T : P R I N T6 3 P R I N T T A B ( 9 ) ; " C 0 R R E C T I N C O R R E C T "6 4 P R I N T T A B ( 9 ) ; " -6 5 P R I N T : P R I N T : P R I N T T A B C 1 0 ) ; Y E S ;6 6 P R I N T T A B ( 2 3 ) ; C N T - Y E S6 7 F I N E = I N T ( Y E S / C N T * 1 0 0 )6 8 P R I N T : P R I N T T A B ( 9 ) ; " < " ; F I N E ; " l i %6 9 0 P R I N T T A B ( 2 2 ) ; " ( " ; 1 0 0 - F I N E ; " I I % ) 7 0 R E T U R N

G L O S S A R Y O V A R I A B L E SN U A a r r a y o f 4 1 e l e m e n t s n u m b e r e d 0 t h r o u g h 4 0 ( O t h

C o m m o d o r e 6 a l a r r a y s h a v e O t e l e m e n t , s t h a t i v a r i a b l e i D I M e n s i o n e d 4 0 t h c o m p u t e r r e s e r v e s n o 4 l o c a t i o n s b u 4 1 . I n t h i s b o o k w s o m e t i m e s t a k e a d v a n t a g eo t h i s f e a t u r e a n a o t h e r t i m e s w i g n o r e i t . )T h i s a r r a y c o n t a i n s t h e s e q u e n c e o r a n d o m l y s e l e c t e dd i g i t s t h a t a r f l a s h e d o t h s c r e e n . T h s e q u e n c e i g e e r a t e d a t h b e g i n n i n g o e a c h r o u n d a n i s a v e d i t h a r r a y N U M .

P I T h i s a r r a y o f 4 1 e l e m e n t s i a l s o u s e d t g e n e r a t e t h s e q u e n c e . I t i s u s e d t e n s u r e t h a t w h e n e v e r d i g i t i s t o r e d i r a n d o m l y s e l e c t e d l o c a t i o n i t h a r r a y N U M ,t h a t l o c a t i o n i n o u s e d t w i c e .

C N T h i s v a r i a b l e c o u n t s t h n u m b e r o r o u n d s t h u s e r h a p l a y e d f o t h p u r p o s e o g e n e r a t i n g t h p e r f o r m a n c e r a t i n ga t h c o n c l u s i o n o t h g a m e .

Y E T h i s v a r i a b l e , a l s o u s e d i g e n e r a t i n g t h p e r f o r m a n c er a t i n g , c o u n t s h o m a n y t i m e s t h p l a y e r a n s w e r s c o r e c t l y .

Page 20: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 20/244

1 Z A P P E R S F O R T H C O M M O D O R E 6 T h i s h o l d s a v a l u e w h i c h i p r o p o r t i o n a l t t h d e l a y b t w e e n f l a s h e s o t h d i g i t s a n i b a s e d o t h s p e e d v a l u et h a t w a e n t e r e d .H o l d s t h d i g i t t h a t i f l a s h e d 5 t i m e s i n s t e a d o 4

L I N E S O S P E C I A L I N T E R E S T5 0 - 7 0 : G e t h l e v e l n u m b e r . H e r e w i n t r o d u c e t h i n t e r e s t i n g c o

m a n d G E T . W h e n k e y s a r p r e s s e d o t h k e y b o a r d , t h e i r c o r r es p o n d i n g A S C I I v a l u e s a r p l a c e d i b u f f e r i m e m o r y . G E c o m m a n d c h e c k s t s e i t h e r e a r a n v a l u e s r e s i d e n t i t h b u f f e r .I t h e r e a r e , i r e m o v e s t h f i r s t v a l u e f r o m t h b u f f e r ( t h e o n t h a tw a t h e r e t h l o n g e s t t i m e ) a n d , a s s u m i n g t h a t t h G E c o m m a n di f o l l o w e d b s t r i n g v a r i a b l e ( a i i h e r e ) , t h v a l u e f r o m t h b u f f e r i c o n v e r t e d t c h a r a c t e r a n i p l a c e d i t h v a r i a b l e . I t h e r e a r n v a l u e s r e s i d i n g i t h b u f f e r , t h n u l l s t r i n g i r e t u r n e d .W h e n t h G E c o m m a n d i u s e d t r e c e i v e i n p u t , n c a r r i a g e r e t u r ni n e c e s s a r y . A l l y o h a v e t d i t d e p r e s s t h k e y . I m a n yg a m e s i t u a t i o n s , t h i s i d i s t i n c t a d v a n t a g e . T h u s l i n e 5 h a t h e f f e c t o w a i t i n g u n t i l a n k e i p r e s s e d o t h k e y b o a r d . L i n e 6 e n s u r e s t h a t t h p r e s s e d k e i n u m e r i c k e y b e t w e e n a n 5 . I fi i s t h v a l u e i p r i n t e d i l i n e 7 0 I n o t , t h v a l u e i r e j e c t e da n a n o t h e r v a l u e i w a i t e d f o r . T h n e e f f e c t i t h a t t h p r o g r a mt o t a l l y i g n o r e s a n k e o t h e r t h a n 1 2 , 3 , 4 o 5

8 0 T h v a r i a b l e i a s s i g n e d a d e l a y v a l u e p r o p o r t i o n a l t t h s p e e do l e v e l s e l e c t e d . N o t e t h a t t h A S f u n c t i o n i u s e d t r e t u r n t h A S C I I v a l u e o t h k e y e d d i g i t . T h A S C I I v a l u e f o i 4 8 t h A S C I I v a l u e f o 1 i 4 9 t h a t f o i 5 0 a n s f o r t h . T h e r e f o r e ,i i a l w a y s p o s s i b l e t c o n v e r t a n d i g i t f r o m i t c h a r a c t e r f o r mt i t n u m e r i c f o r m b y s u b t r a c t i n g 4 f r o m t h v a l u e r e t u r n e d f r o mt h A S f u n c t i o n . I l i n e 8 w a r n o t s o d i r e c t , b u e x a m i n a t i o nw i l l s h o w t h a t t h e v a l u e s a s s i g n e d t c a r a n g e f r o m 1 2 0 0 f o l e v e l t 1 0 f o l e v e l 5

1 1 0 : T h v a r i a b l e C N i i n c r e m e n t e d b 1 i n d i c a t i n g t h a t n e r o u n d i a b o u t t c o m m e n c e .

1 3 0 : T h s u b r o u t i n e a l i n e 4 0 i c a l l e d t s e u t h f l a s h i n g s q u e n c e .1 4 0 - 1 8 0 : T h s e q u e n c e f l a s h e s o t h s c r e e n u n d e r n e a t h i t c o r r es p o n d i n g d i g i t s . T h c o r r e c t p o s i t i o n i n g i a c c o m p l i s h e d b t h T A f u n c t i o n i l i n e 1 5 0 . T h P R I N T c o m m a n d i n l i n e 1 6 b a c ks p a c e s o v e r t h d i g i t a n r e p l a c e s i w i t h b l a n k . T h F O R / N E X Tl o o p s i n l i n e s 1 6 a n d 1 7 0 a r w h a t a r c a l l e d " d e l a y " l o o p s . T h e i r

Page 21: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 21/244

N O Y O S E I T . . . 1 f u n c t i o n i m e r e l y t k e e p t h c o m p u t e r b u s y w h i l e t h d i g i t i d i s p l a y e d o t h s c r e e n a n t c r e a t e p a u s e b e t w e e n t h d i s p l a y i n go t h d i g i t s . N o t e t h a t h e r e i w h e r e t h e v a r i a b l e i u s e d .

2 1 0 - 2 3 0 : W a g a i n w a i t f o d i g i t t b i n p u t f r o m t h k e y b o a r d ,b u t h i s t i m e i m a b a n d i g i t f r o m t 9 T h i s r e p r e s e n t s t h ep l a y e r ' s g u e s s a t w h i c h d i g i t w a f l a s h e d o n e x t r a t i m e .

2 4 0 : H e r e w c o n v e r t t h c h a r a c t e r r e p r e s e n t a t i o n o t h d i g i t t i t n u m e r i c a l v a l u e a n c o m p a r e i w i t h t h e c o r r e c t a n s w e r . T h i s i a e x a m p l e o t h m o s t c o m m o n u s o t h A S f u n c t i o n .

2 7 0 - 2 9 0 : T h G E c o m m a n d i a g a i n u s e d t c h e c k t h k e y b o a r d ,b u t h i s t i m e i a c c e p t s o n l y t h c h a r a c t e r s o N

3 2 0 : T h v a r i a b l e Y E i i n c r e m e n t e d b i t h p l a y e r g u e s s e dc o r r e c t l y .3 4 0 : T h p l a y e r h a r e q u e s t e d t h a t t h g a m e b e n d e d . T h s u b r o u t i n e

a l i n e 6 0 i t h e r e f o r e c a l l e d t d i s p l a y t h p e r f o r m a n c e r a t i n g .

S u b r o u t i n e4 0 0 - 5 3 0 : T h i s s u b r o u t i n e l o a d s t h d i g i t s e q u e n c e i n t o t h a r r a y N U M .

4 1 0 - 4 2 0 : L i n e 4 1 i n i t i a l i z e s t h e l e m e n t s o f t h e a r r a y P I t t h n u m b e r s t h r o u g h 4 0 T h e s e n u m b e r s c o r r e s p o n d t s u b s c r i p t s o a v a i l a b l e l o c a t i o n s i a r r a y N U M . I l i n e 4 2 t h v a r i a b l e T ( f o rT O P , b u T O c a n n o t b u s e d b e c a u s e i c o n t a i n s t h e k e y w o r d T O i s e t t h n u m b e r o a v a i l a b l e l o c a t i o n s i a r r a y N U M , w h i c h i i n i t i a l l y 4 1

4 3 0 - 5 0 0 : T h F O R / N E X T l o o p i n d e x e d b v a r i a b l e T M E S ( w c o u l d n ' t u s T I M E S b e c a u s e i c o n t a i n s t h r e s e r v e d k e y w o r d T I e n s u r e s t h a t e a c h d i g i t i i n s e r t e d t i m e s .

4 4 0 - 4 9 0 : T h F O R / N E X T l o o p w i t h t h i n d e x D I ( f o r D I G i t )t a k e s o t h v a l u e s o e a c h o t h d i g i t s f o r i n s e r t i o n i n t o t h a r r a yN U M .

4 5 0 - 4 6 0 : T h v a r i a b l e i a s s i g n e d r a n d o m l y s e l e c t e d v a l u ef r o m t T P - 1 . T h i s n u m b e r i u s e d t o s e l e c t a e l e m e n t o t h a r r a y P I T . T h v a l u e o t h i s e l e m e n t i s i n t u r n , u s e d t s u b s c r i p tt h e a r r a y N U M , a n t h i s s u b s c r i p t e d e l e m e n t o N U i a s s i g n e dt h v a l u e r e s i d i n g i D I G .

4 7 0 - 4 8 0 : T i d e c r e m e n t e d b 1 i n d i c a t i n g t h a t a e l e m e n t h a b e e n " r e m o v e d " f r o m P I T . T h i s e l e m e n t i r e p l a c e d w i t h t h t o p m o s te l e m e n t i P I T .

5 1 0 - 5 2 0 : r a n d o m d i g i t b e t w e e n a n i s e l e c t e d a n p l a c e di t h e v a r i a b l e X T h i s d i g i t i a l s o p l a c e d i t h l a s t a v a i l a b l ee l e m e n t o N U M . ( N o t e t h a t a t h i s p o i n t t h e s u b s c r i p t o t h i s l a s tr e m a i n i n g e l e m e n t e n d s u i P I T ( 0 ) ) .

Page 22: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 22/244

2 Z A P P E R S F O R T H C O M M O D O R E 6 S u b r o u t i n e6 0 0 - 7 0 0 : S u b r o u t i n e t d i s p l a y p e r f o r m a n c e r a t i n g .

6 6 0 : C N T - Y E S g i v e s t h n u m b e r o w r o n g g u e s s e s t h a t t h p l a y e rm a d e .

6 7 0 : F I N E i a s s i g n e d t h p e r c e n t a g e o c o r r e c t a n s w e r s .6 8 0 - 6 9 0 : T h b a c k s p a c e c h a r a c t e r i p r i n t e d b e f o r e t h p e r c e n t

s i g n b e c a u s e t h P R I N T c o m m a n d a l w a y s t a b s f o r w a r d o n s p a c ea f t e r p r i n t i n g n u m b e r .

6 9 0 : 1 0 0 - F I N E g i v e s t h p e r c e n t a g e o w r o n g a n s w e r s .

S U G G E S T E D E N H A N C E M E N T S1 T h g a m e m a b m o d i f i e d s t h a t t w p l a y e r s m a c o m p e t e , w i t h

s e p a r a t e s c o r e s b e i n g k e p t f o t h e m .2 R a t h e r t h a n u s n u m b e r s , l e t t e r s o t h a l p h a b e t m a b s u b s t i t u t e d .

Y o m i g h t w a n t t h w h o l e r a n g e t h r o u g h Z , a l t h o u g h t h i s w o u l du n d o u b t e d l y p r o v e t b q u i t e t a x i n g f o r t h e a v e r a g e m i n d . T h i sw o u l d r e q u i r e s u b s t a n t i a l c h a n g e s i s e v e r a l l i n e s . F o e x a m p l e ,l i n e s 1 5 0 , 2 4 0 , 4 4 0 , a n 5 1 w o u l d h a v e t b m o d i f i e d . Y o w o u l dh a v e t r e p r e s e n t t h l e t t e r s b n u m b e r s ( p e r h a p s b t h e i r A S C I Ie q u i v a l e n t s ) .

3 T h d i g i t s c o u l d b f l a s h e d r a n d o m l y o t h s c r e e n r a t h e r t h a n u n d e rt h c o r r e s p o n d i n g d i g i t .

4 O n c e t h s o u n d f e a t u r e s h a v e b e e n c o v e r e d , t h e y c o u l d a l s o b e u s e dt e n h a n c e t h p r o g r a m .

Page 23: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 23/244

C H A P T E R

F I N D - A - W O R D

W o r d g a m e s h a v e f a s c i n a t e d p e o p l e o f a l a g e s f o c e n t u r i e s . T h i sg a m e i C o m m o d o r e 6 v e r s i o n o f w o r d g a m e t h a t i o f t e np u b l i s h e d i t h e n a t i o n a l n e w s p a p e r s a n m a g a z i n e s . T h p r g r a m a s k s t h p l a y e r h o w m a n y w o r d s ( o u t o f p o o l o f i f t y ) h w o u l d l i k e t h c o m p u t e r t e m b e d i m a s s o l e t t e r s t h a t a r d i s p l a y e d o t h s c r e e n i 4 2 m a t r i x . T h e s e w o r d s a r r a n d o m l y s e l e c t e d f r o m t h p o o l a n a r d i s p l a y e d g o i n g i o n o e i g h t d i r e c t i o n s o t h s c r e e n ( u p o d o w n , l e f t - t o - r i g h t o r i g h t - t o - l e f t , d i a g o n a l l y t t h r i g h t a n d i a g o n a l l y t t h l e f t i b o t h d i r e c t i o n s ) . W o r d s m a s h a r e l e t t e r s i f t h e y c r o s s . T h v a c a n ts p a c e i f i l l e d i w i t h r a n d o m l e t t e r s o t h a l p h a b e t s a t m a k e f i n d i n g t h h i d d e n w o r d s t h a t m u c h m o r e d i f f i c u l t . A t h w o r d s a r b e i n g p l a c e d i t h m a t r i x , s e q u e n t i a l n u m b e r s a r d i s p l a y e d o t h s c r e e n t t e l l y o o t h p r o g r e s s t h p r o g r a mi m a k i n g . I y o s e t h v a l u e o a 5 ( o s o m e s u c h l a r g en u m b e r ) , y o s h o u l d e x p e c t t h c o m p u t e r t e n c o u n t e r s o m ed i f f i c u l t y i n p l a c i n g t h l a s t o t h w o r d s . D e s p i t e h o u r s o f t e s t i n gw i t h t h i s p a r t i c u l a r v o c a b u l a r y ( s t o r e d i D A T A s t a t e m e n t s ) , w h a v e n o e x p e r i e n c e d t h s i t u a t i o n w h e r e t h c o m p u t e r w a u n a b l et p l a c e a l o t h w o r d s .

2

Page 24: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 24/244

2 Z A P P E R S F O R T H C O M M O D O R E 6 I t h e v e n t t h a t , a s o m e p o i n t , t h g a m e p r o v e s t o o c h a l

l e n g i n g , t h e p l a y e r m a p r e s s t h e F k e y . T h i s w i l l c a u s e t h h i d d e n w o r d s t b h i g h l i g h t e d i r e v e r s e d g r a p h i c s . O n c e t h p l a y e r i f i n i s h e d e x a m i n i n g t h s c r e e n , t h F k e i p r e s s e da n t h p l a y e r i a s k e d w h e t h e r a n o t h e r r o u n d i r e q u i r e d .

1 R E F I N D - A - U O R D2 D I W U R D $ ( 5 0 ) , M A T $ ( 2 3 , 3 9 )3 R E S T O R E4 0 F O R 1 = T 5 5 R E A D U U R D $ ( I )6 N E X T7 F O R 1 = 0 T 2 8 F O J = 0 T O 3 99 M A T $ < I , J ) = " M1 0 N E X T1 1 N E X T1 2 I N P U T " H 0 W M A N Y W O R D S < 1 - 5 0 > " ; N1 3 I N O I N T ( N ) O N < O N > 5 0 T H E N 1 2 1 4 F O 1 = T 1 5 X = I N T ( R N D ( 0 ) * ( 5 1 - I ) ) + 11 6 X $ = W U R D $ ( X )1 7 W U R D $ ( X ) = W U R D $ ( 5 1 - I )1 8 G O S U B 4 0 1 9 P R I N T I 2 0 N E X T2 1 G O S U B 8 0 2 2 G E A $ : I F A $ = " " T H E N 2 2 02 3 I A $ = " B " T H E N 2 7 2 4 I A $ O " H " T H E N 2 2 2 5 G O S U B 9 0 2 6 G E A $ : I F A $ O " H " T H E N 2 6 2 7 P R I N T r P R I N T " A N O T H E R ( O N ? " 2 8 0 G E T A $ : I F A $ = M " T H E N 2 8 2 9 I A $ O " Y " A N A $ O " N " T H E N 2 8 03 0 P R I N T A 3 1 I A $ = " Y " T H E N 3 3 2 0 P R I N T " □ F I N I S H E D "

Page 25: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 25/244

F I N D - A - W O R D 2 3 3 E N 4 0 R E P L A C E W O R D I T H M A T R I X4 1 0 L = L E N ( X $ )4 2 R O W = I N T ( R N D ( 0 ) * 2 3 )4 3 C O L = I N T ( R N D ( 0 ) * 3 9 )4 4 V E R T = I N T ( R N D ( 0 ) * 3 ) - 14 5 I V E R T = 0 T H E N 4 8 4 6 H I Z = I N T ( R N D ( 0 ) * 3 ) - 14 7 G O T O 4 9 04 8 H I Z = I N T ( R N D ( 0 ) * 2 ) * 2 - 14 9 G O S U B 6 0 5 0 I S = T H E N 4 2 5 1 F O Q = T 5 2 M A T $ ( R 0 W f C 0 L > = M I D $ C X $ , Q , 1 >5 3 R O W = R O W + V E R T : C O L = C O L + H I Z5 4 N E X T5 5 R E T U R N6 0 R E C H E C K F O F I I M A T R I X6 1 S = 6 2 I H I Z < 0 A N C O K L - 1 T H E N R E T U R N6 3 I H I Z > 0 A N C O L > 4 0 - L T H E N R E T U R N6 4 I V E R T < 0 A N R O f c K L - 1 T H E N R E T U R N6 5 I V E R T > 0 A N R 0 W > 2 4 - L T H E N R E T U R N6 6 F O Q = R O W T R 0 W + V E R T * ( L - 1 ) S T E P V E R T6 7 F O R = C O L T C 0 L + H I Z * ( L - 1 ) S T E P H I 6 8 I M A T $ ( Q , R > = " " T H E N 7 0 6 9 I M A T $ ( Q , R ) O M I D $ ( X $ , A B S ( Q - R O W )

+ A B S ( R - C 0 L ) + 1 , 1 ) T H E N R E T U R N7 0 N E X T7 1 0 N E X T7 2 S = 7 3 R E T U R N8 0 R E D R A W T H M A T R I X8 1 P R I N T " Q " ;8 2 F O R O W = 0 T 2 8 3 F O C O L = O T 3 8 4 I M A T $ < R O W , C O L ) < > " " T H E N 8 7 8 5 A $ = C H R $ ( I N T ( R N D ( 0 ) * 2 6 ) + 6 5 )

Page 26: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 26/244

2 Z A P P E R S F O R T H C O M M O D O R E 6 8 6 P R I N T A $ ; : G O T O 8 8 8 7 P R I N T M A T $ ( R O W , C O L ) ;8 8 N E X T C O L , R O W8 9 R E T U R N9 0 R E C O L O R I T H W O R D S9 1 P R I N T " H 8 S D " ;9 2 F O R O W = 0 T 2 9 3 F O C O L = O T 3 9 4 I M A T $ ( R O W f C O L ) < > " " T H E N 9 6 9 5 P R I N T " D " ; : G 0 T 0 9 7 9 6 P R I N T M A T $ ( R O W , C O L > ;9 7 N E X T C O 9 8 N E X T R O 9 9 P R I N T " H Q " ; : R E T U R N1 0 0 0 R E W O R D S1 0 1 0 D A T A M B E N E F I T " , " I N S 1 S T " , " P L E A S U R E "1 0 2 0 D A T A " S T O R M " , " A C R O N Y M " , " T R A P E Z E "1 0 3 0 D A T A " W O R L D L Y " , " F U N G U S " , " M A R K E T "1 0 4 0 D A T A " Y E S T E R D A Y " , " G U I D A N C E " , " Y E A R N "1 0 5 0 D A T A " E N G A G E " , " R E C L A I M " , " K N O W L E D G E "1 0 6 0 D A T A " C O L O N Y " , " U T I L I T Y " , " J O K E "1 0 7 0 D A T A " D R I V E R " , " R E M A I N D E R " , " H Y D R O G E N "1 0 8 0 D A T A " O C T O P U S " , " T E C H N I C A L " , " L A U G H "1 0 9 0 D A T A " Q U I V E R " , " V O L T A G E " , " N I M B L E "1 1 0 0 D A T A " F O L I A G E " , " A M B I T I O N " , " V A L V E "1 1 1 0 D A T A " G E O M E T R Y " , " L O C A T I O N " , " G L A C I E R "1 1 2 0 D A T A " O U T R A G E O U S " , " W A R R A N T " , " K I C K "1 1 3 0 D A T A " C I V I L I Z E " , " M A T E R N I T Y " , " H E A R T "1 1 4 0 D A T A " D I S A R R A Y " , " Z O M B I E " , " B L U E P R I N T "1 1 5 0 D A T A " M I L D E W " , " I M P R E S S " , " J I N G L E "1 1 6 0 D A T A " P E R F E C T " , " E X C E S S I V E " , " Q U O T A "1 1 7 0 D A T A " N A V I G A T E " , " S E P A R A T E "

G L O S S A R Y O V A R I A B L E SW U R D $ T h i s a r r a y o 5 s t r i n g e l e m e n t s i l o a d e d a t h b e g i n n i n g

o e a c h r o u n d w i t h t h f u l l s e o w o r d s . I c a s e y o h a v e n ' ta l r e a d y g u e s s e d , t h r e a s o n w s p e l l t h i s v a r i a b l e W U R D $

Page 27: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 27/244

F I N D - A - W O R D 2 i t h a t t h m o r e n a t u r a l s p e l l i n g W O R D S c o n t a i n s t h eB A S I C k e y w o r d O R

M A T $ T h i s 2 - d i m e n s i o n a l s t r i n g m a t r i x i u s e d t r e p r e s e n t t h ep o s i t i o n s o t h e s c r e e n . T h s e l e c t e d w o r d s a r f i t t e d i n t ot h i s m a t r i x . E a c h e l e m e n t h o l d s o n l y o n c h a r a c t e r . O t h t w n u m b e r s u s e d t s u b s c r i p t M A T $ , t h f i r s t r e r e s e n t s t h e r o o t h s c r e e n ( 0 - 2 3 ) w h i l e t h s e c o n dr e p r e s e n t s t h c o l u m n ( 0 - 3 9 ) . R o 2 i n o u s e d b e c a u s et h i s w o u l d c a u s e s c r o l l i n g p r o b l e m s .T h i s v a r i a b l e h o l d s t h n u m b e r o w o r d s t h p l a y e r w a n t sp l a c e d o t h s c r e e n .

X T h i s v a r i a b l e h o l d s w o r d r a n d o m l y s e l e c t e d f r o m t h a r r a y W U R D $ a n i u s e d t p a s s t h i s w o r d t t h s u r o u t i n e i l i n e 4 0 0 .T h l e n g t h o t h w o r d i X i h e l d i t h i s v a r i a b l e . T h i si d o n e m a i n l y f o c o n c i s e n e s s a n s l i g h t s a v i n g s i t i m e .

R O T h i s v a r i a b l e f i r s t o c c u r s i t h s u b r o u t i n e a l i n e 4 0 0 . I r e p r e s e n t s t h e r o i w h i c h t h f i r s t c h a r a c t e r o X i t e n t a t i v e l y p l a c e d .

C O T h i s v a r i a b l e a l s o f i r s t o c c u r s i t h s u b r o u t i n e a l i n e 4 0 0 .I r e p r e s e n t s t h c o l u m n i w h i c h t h f i r s t c h a r a c t e r o X i t e n t a t i v e l y p l a c e d .

V E R T F i r s t u s e d i t h s u b r o u t i n e a l i n e 4 0 0 , t h i s v a r i a b l e d t e r m i n e s t h v e r t i c a l d i r e c t i o n i w h i c h t h p r o g r a m t r i e st p l a c e w o r d i t h m a t r i x . I c a t a k e o t h v a l u e s- 1 0 o 1 w h e r e - m e a n s t h w o r d g o e s u p w a r d ,

m e a n s t h w o r d g o e s d o w n w a r d , a n m e a n s t h e r e i n v e r t i c a l c h a n g e i n p o s i t i o n .

H I T h i s s t a n d s f o " h o r i z o n t a l " ( t h e O p r o v e d t b p r o bl e m ! ) . I t i s f i r s t u s e d i t h s u b r o u t i n e a t l i n e 4 0 0 . I d e t e r m i n e s t h e h o r i z o n t a l d i r e c t i o n i w h i c h t h p r o g r a mt r i e s t p l a c e w o r d i t h e m a t r i x . I a l s o t a k e s o t h v a l u e s — 1 , 0 , a n 1 b u t h i s t i m e m e a n s t h w o r dg o e s l e f t t r i g h t , m e a n s n c h a n g e , a n m e a n s r i g h tt l e f t . N o t e t h a t t h e v a r i a b l e s V E R T a n H I a r u s e dt o g e t h e r t i n d i c a t e t h e e i g h t p o s s i b l e d i r e c t i o n s m e n t i o n e di t h p r o g r a m d e s c r i p t i o n a b o v e . T h o n c o m b i n a t i o nn o u s e d i w h e n V E R T a n H I 0 w h i c h w o u l dm e a n t h a t t h w o r d w a s n ' t g o i n g i a n d i r e c t i o n .T h i s v a r i a b l e i u s e d a f l a g r e t u r n e d b t h s u b r o u t i n ea l i n e 6 0 0 . I e n d s u w i t h t h v a l u e i t h w o r d h a b e e n s u c c e s s f u l l y p l a c e d i t h m a t r i x a n t h v a l u e i i d o e s n o f i i t h p o s i t i o n a n d i r e c t i o n t e n t a t i v e l ys e l e c t e d b t h c o m p u t e r .

Page 28: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 28/244

2 Z A P P E R S F O T H C O M M O D O R E 6

L I N E S O S P E C I A L I N T E R E S T3 0 - 6 0 : R e a d t h w o r d s f r o m D A T A s t a t e m e n t s i n t o t h a r r a y W U R D $ .

T h d a t a m u s t b r e s t o r e d a n t h p r o c e s s r e p e a t e d a t h b e g i n n i n go e a c h r o u n d , b e c a u s e a w o r d s a r s e l e c t e d f o t h m a t r i x t h e ya r r e m o v e d f r o m W U R D $ .

7 0 - 1 1 0 : C l e a r o u t h m a t r i x M A T $ .1 5 0 : n u m b e r i r a n d o m l y s e l e c t e d a n s t o r e d i t h e v a r i a b l e ( n o t

t b c o n f u s e d w i t h X $ ) . T h i s n u m b e r r e p r e s e n t s t h e s u b s c r i p t i a r r a y W U R D $ o w o r d t h a t i y e t b u s e d . W h e n t h i n d e xh a t h v a l u e 1 t h n u m b e r s e l e c t e d c a r a n g e f r o m t 5 0 W h e n

i e q u a l t 2 t h i s n u m b e r c a r a n g e f r o m t 4 9 a n s o n 1 7 0 : T h s e l e c t e d w o r d i r e p l a c e d b t h w o r d w i t h t h h i g h e s t

s u b s c r i p t a m o n g t h o s e n o y e s e l e c t e d . ( T h i s i s i m i l a r t t h m e t h o d w u s e d i " N o w Y o S e I t . . . " t f i l l t h a r r a y u s e d i t h a t p r o g r a m . )

1 9 0 : P r i n t s t h s e q u e n t i a l n u m b e r o t h w o r d j u s t p l a c e d i t h m a t r i x .2 2 0 - 2 4 0 : W a i t f o r e i t h e r t h F o t h F k e t b p r e s s e d . I F

i p r e s s e d , c o n t r o l p a s s e s t l i n e 2 7 0 . I F i p r e s s e d , c o n t r o l i p a s s e d t l i n e 2 5 0 . ( D o n ' t c o n f u s e t h c o n t r o l c h a r a c t e r f o F w i t ht h a t f o t h e c o l o r l i g h t g r e e n , w h i c h i n e v e r u s e d i t h i s t e x t . )

2 6 0 : S i n c e a t t h i s p o i n t t h e F l k e y h a a l r e a d y b e e n p r e s s e d a n t h h i d d e n w o r d s h a v e a l r e a d y b e e n u n c o v e r e d , t h p r o g r a m w a i t s o n l yf o t h F k e t b p r e s s e d .

S u b r o u t i n e4 0 0 - 5 5 0 : T h i s s u b r o u t i n e t r i e s t p l a c e w o r d i t h m a t r i x u n t i l i

s u c c e e d s . I d o e s t h i s b r e p e a t e d l y s e l e c t i n g s t a r t i n g p o s i t i o n s a n d i r e c t i o n s a n c a l l i n g t h s u b r o u t i n e a l i n e 6 0 0 . W h e n t h s u r o u t i n e a l i n e 6 0 f i n a l l y r e t u r n s a a f f i r m a t i v e c o d e ( 1 ) t h w o r d i a c t u a l l y p l a c e d i t h e m a t r i x .

4 2 0 - 4 3 0 : S e l e c t r o f r o m 0 t 2 a n c o l u m n f r o m t 3 a s t a r t i n g p o s i t i o n f o t h w o r d .

4 5 0 - 4 8 0 : I t h r a n d o m l y s e l e c t e d v a l u e f o V E R T i 0 w w a n tt a v o i d s e l e c t i n g f o H I s w s e l e c t o n l y t h n u m b e r s o

( t h i s i d o n e i n l i n e 4 8 0 ) . I V E R T i n o e q u a l t 0 w e m a yc h o o s e a n o t h e t h r e e p o s s i b l e v a l u e s f o H I ( l i n e 4 6 0 ) .

5 3 0 : H e r e w s e e t h e s i g n i f i c a n c e o t h v a l u e s a s s i g n e d t V E R Ta n d H I Z . D e p e n d i n g u p o n t h d i r e c t i o n i n w h i c h w a r g o i n g , w i n c r e m e n t o d e c r e m e n t R O a n d / o r C O b e a c h t i m e w p l a c e

c h a r a c t e r i t h e m a t r i x .

Page 29: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 29/244

F I N D - A - W O R D 2 S u b r o u t i n e6 0 0 - 7 3 0 : C h e c k s t s e i t h w o r d i X f i t s i t h e s e l e c t e d p o s i t i o n

a n d i r e c t i o n o t h m a t r i x M A T $ . I f i r s t m a k e s s u r e t h a t t h w o r dw i l l n o " f a l l o f f " t h e d g e o t h e m a t r i x . T h e n , i t w w o r d s a r f o u n d t o v e r l a p , t h s u b r o u t i n e c h e c k s t s e i t h e i r c o m m o nl e t t e r i i n d e e d t h s a m e .

6 2 0 - 6 5 0 : T h e s e l i n e s f i g u r e o u w h e t h e r t h w o r d w i l l b c o n t a i n e dw i t h i n t h c o n f i n e s o t h e m a t r i x . I i c a n n o t , t h e n t h s u b r o u t i n ei m m e d i a t e l y r e t u r n s . ( B e c a u s e o l i n e 6 1 0 , r e t u r n s w i t h v a l u eo 0 i n d i c a t i n g t h a t t h w o r d d i n o f i t . )

6 8 0 : I t h c u r r e n t s p a c e i t h m a t r i x i u n o c c u p i e d , e v e r y t h i n g i O a n t h n e x t s p a c e i c h e c k e d .

6 9 0 : I f t h i s l i n e i r e a c h e d , i m e a n s t h a t t h e c u r r e n t s p a c e i o c u p i e d . I t h a t c a s e , t h e p r o g r a m c h e c k s t s e w h e t h e r t h c h a r a c t e ri t h i s s p a c e i t h s a m e a s t h e o n t h a t w o u l d b p l a c e d t h e r e f r o mt h e c u r r e n t w o r d ( t h a t i s l e g a l o v e r l a p ) . I n o t , t h s u b r o u t i n er e t u r n s ( w i t h 0 )

7 2 0 - 7 3 0 : I t h e s e l i n e s a r r e a c h e d , n m i s h a p s h a v e o c c u r r e d .T h e r e f o r e , i s e t a n t h s u b r o u t i n e r e t u r n s .

S u b r o u t i n e8 0 0 - 8 9 0 : T h i s s u b r o u t i n e p l a c e s t h l e t t e r s o t h e s c r e e n . F o r a n y

l o c a t i o n i t h m a t r i x t h a t i e m p t y , t h c o r r e s p o n d i n g s p a c e o t h s c r e e n i f i l l e d w i t h r a n d o m l y s e l e c t e d c h a r a c t e r .

8 5 0 : I f t h i s l i n e i r e a c h e d , t h e c u r r e n t l o c a t i o n i t h m a t r i x i e m p t y . l e t t e r i t h e n r a n d o m l y s e l e c t e d b c h o o s i n g n u m b e rb e t w e e n a n 2 5 a d d i n g t h v a l u e 6 t t h a t n u m b e r t g e n e r a t et h A S C I I v a l u e o l e t t e r , a n a p p l y i n g t h i s n u m b e r t t h C H R $f u n c t i o n t p r o d u c e t h c o r r e s p o n d i n g l e t t e r .

S u b r o u t i n e9 0 0 - 9 9 0 : T h i s s u b r o u t i n e h i g h l i g h t s t h w o r d s t h a t a r h i d d e n o t h

s c r e e n , i t h e v e n t t h a t F w a p r e s s e d .9 5 0 : I f t h i s l i n e i r e a c h e d , t h e c u r r e n t c h a r a c t e r o t h s c r e e n i

n o p a r t o w o r d a n s t h c u r s o r i m o v e d s p a c e t t h r i g h t ,p o i n t i n g t t h n e x t c h a r a c t e r .

9 6 0 : T h c u r r e n t c h a r a c t e r i p r i n t e d i r e v e r s e d g r a p h i c s b e c a u s ei i p a r t o f w o r d . B e c a u s e l i n e 9 1 t u r n s o r e v e r s e d g r a p h i c s ,a l t h a t i n e c e s s a r y t d h e r e i t o p r i n t t h c h a r a c t e r .

9 9 0 : T h f i r s t c o n t r o l c h a r a c t e r i t h l i t e r a l i R V O F F . B c a r e -

Page 30: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 30/244

2 Z A P P E R S F O T H C O M M O D O R E 6 f i l l , i l o o k s a l o l i k e t h s y m b o l f o F 3 F i s e l d o m u s e d i t h e s ep r o g r a m s , a n w n o t e i w h e n i i s

1 0 0 0 - 1 1 7 0 : T h e s e a r t h D A T A s t a t e m e n t s c o n t a i n i n g t h e a v a i l a b l ew o r d s . T h e y a r p l a c e d a t h e n o t h p r o g r a m s t h a t m o r ew o r d s m a b a d d e d w i t h o u t h a v i n g t r e n u m b e r t h e s t a t e m e n t s .

S U G G E S T E D E N H A N C E M E N T S1 . I f t h p l a y e r t h i n k s h h a s p o t t e d w o r d o t h e s c r e e n , h s h o u l d

b a l l o w e d t t y p e i i n i i i i n d e e d o n o t h w o r d s , i a l o n es h o u l d b p r i n t e d i r e v e r s e d g r a p h i c s .

2 P o i n t s m a b e a w a r d e d b a s e d o h o m a n y c o r r e c t w o r d s t h p l a y e ri a b l e t d e t e c t . T h i s c a b f u r t h e r i m p r o v e d b b a s i n g t h e p o i n t so t h l e n g t h o t h s u c c e s s f u l l y s p o t t e d w o r d s .

3 T h w o r d s i t h D A T A s t a t e m e n t s m a b c h a n g e d a n m a b s e l e c t e d b a s e d u p o n t h d i f f i c u l t y l e v e l d e s i r e d .

4 T h n u m b e r o w o r d s u s e d m a b l a r g e r t h a n f i f t y . H o w e v e r , i t h i s i d o n e , b s u r e t m a k e t h n e c e s s a r y c h a n g e s i l i n e s 2 0 , 4 0 ,1 2 0 , 1 3 0 , 1 5 0 , a n 1 7 0 . A l s o , b a w a r e t h a t i t h p r o g r a m i a s k e dt p l a c e l a r g e n u m b e r o l o n g w o r d s i t h m a t r i x , i m a g e c a u g h t i s i t u a t i o n w h e r e t h e r e s i m p l y i s n ' t e n o u g h r o o m t c o n t a i nt h w o r d s . W h a t w i l l h a p p e n i t h a t t h s u b r o u t i n e a l i n e 4 0 w i l lg i n t o a i n f i n i t e l o o p i w h i c h i k e e p s t r y i n g r a n d o m s t a r t i n gp o s i t i o n s a n d i r e c t i o n s , n o n e o w h i c h w i l l s u c c e e d . O n s o l u t i o nt t h i s d i l e m m a i t m o d i f y t h i s s u b r o u t i n e s t h a t i " g i v e s u p a f t e r c e r t a i n n u m b e r o t r i e s a n p r i n t s m e s s a g e t e l l i n g t h u s e rt h a t h i s r e q u e s t c a n n o t b f u l f i l l e d .

5 T h g a m e c a n b e m a d e m o r e d i f f i c u l t s i m p l y b i n c l u d i n g l a r g e rn u m b e r o s h o r t w o r d s .

Page 31: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 31/244

C H A P T E R

E L A P S E D D A Y S

A l t h o u g h n o s t r i c t l y g a m e , t h i s p r o g r a m h a c o n s i d e r a b l ea m o u n t o u t i l i t a r i a n v a l u e . I p e r m i t s t h u s e r t i n p u t t w d a t e s ,t h c o m p u t e r i m m e d i a t e l y c a l c u l a t i n g t h n u m b e r o e l a p s e d d a y sb e t w e e n t h o s e t w d a t e s . T h i s i n f o r m a t i o n i o f t e n u s e f u l f o ri n v e s t m e n t a n a l y s i s w h e r e i n t e r e s t i p a i d b a s e d o t h n u m b e ro d a y s t h p r i n c i p a l i i n v e s t e d . T h p r o g r a m e x p e c t s t h t w d a t e s t b t y p e d i t h s t a n d a r d A m e r i c a n f o r m : M M / D D / Y Y Y Y ,w h e r e M r e f e r s t o t h m o n t h ( 1 - 1 2 ) , D t t h d a o t h m o n t h ( 1 - 3 1 ) a n d Y Y Y Y t t h y e a r i q u e s t i o n ( a l l f o u r d i g i t s ) .T h p r o g r a m c h e c k s t m a k e s u r e t h a t t h t w d a t e s a r v a l i d —t h a t i t s a y , t h a t n m o n t h h a v a l u e l e s s t h a n o g r e a t e rt h a n 1 2 n d a f a l l s o u t s i d e o t h r a n g e t h r o u g h 3 1 o n y e a r c o n s i s t s o f e w e r t h a n f o u r d i g i t s . F u r t h e r m o r e , s i n c e t h ec u r r e n t G r e g o r i a n c a l e n d a r s t a r t s a t h y e a r 1 5 8 3 , a t e s t i m a d et e n s u r e t h a t t h y e a r i q u e s t i o n d o e s n o p r e c e d e 1 5 8 3 . S h o u l dt h f i r s t d a t e b l a t e r i t i m e t h a n t h s e c o n d , t h e l a p s e d d a y sa r s t i l l c o m p u t e d b u c a u t i o n a r y m e s s a g e i d i s p l a y e d t b r i n gt h e u s e r ' s a t t e n t i o n t t h i s f a c t . A l l l e a d i n g z e r o e s m a b o m i t t e dw h e n i n p u t t i n g d a t a . H o w e v e r , e a c h d a t e m u s t c o n t a i n t w s l a s h e si t h a p p r o p r i a t e l o c a t i o n s s i n c e t h e s e a r t e s t e d f o a s w e l l .A d j u s t m e n t i a u t o m a t i c a l l y m a d e f o a n i n t e r v e n i n g l e a p y e a r s .

2

Page 32: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 32/244

3 Z A P P E R S F O R T H C O M M O D O R E 6 1 R E E L A P S E D D A Y S2 D I D A Y S ( 1 2 )3 F O 1 = T 1 2 : R E A D D A Y S ( I ) : N E X T4 D A T A 3 1 , 2 8 , 3 1 , 3 0 , 3 1 , 3 05 D A T A 3 1 , 3 1 , 3 0 , 3 1 , 3 0 , 3 16 P R I N T : I N P U T " E N T E R 1 S D A T E

( M M / D D / Y Y Y Y ) " ; A $7 S $ = A $ : G O S U B 3 0 8 I F ' S > 0 T H E N 1 0 9 P R I N T " F I R S T D A T E I N V A L I D " : G O T O 6 1 0 0 A = S1 1 P R I N T : I N P U T " E N T E R 2 N D A T E

( M M / D D / Y Y Y Y ) " ; B $1 2 S $ = B $ : G O S U B 3 0 1 3 I S > T H E N 1 5 1 4 P R I N T " S E C O N D D A T E I N V A L I D " : G O T O 1 1 1 5 B = 1 6 I A < = B T H E N 1 9 1 7 P R I N T " W A R N I N G : D A T E S R E V E R S E D "1 8 S = A : A = B : B = 1 9 P R I N T : P R I N T : P R I N T " T H E R E A R E " ; B - A ; " D A Y S "2 0 P R I N T " B E T W E E N " ; A $ ; " A N " ; B $2 1 P R I N T : P R I N T2 2 P R I N T " D O Y O U H A V E M O R E D A T E S ( O N ) ? " ;2 3 G E R $ : I F R $ = " " T H E N 2 3 2 4 I R $ O " Y " A N R $ O " N " T H E N 2 3 02 5 P R I N T R $ : P R I N T : P R I N T2 6 I R $ = " Y " T H E N 6 2 7 0 E N D3 0 R E C H A N G E D A T E T A B S O L U T E D A Y S3 1 S = 0 : 1 = 13 2 I L E N ( S $ ) > 1 0 O L E N ( S $ ) < 8 T H E N 5 9 3 3 I M I D $ ( S $ , I , 1 ) < " 0 " O M I D $ ( S $ , I , 1 ) > " 9 "

T H E N 5 9 3 4 M = A S C ( M I D $ ( S $ , I , 1 ) ) - 4 83 5 1 = 1 + 13 6 I M I D $ ( S $ , I , 1 ) = " / " T H E N 4 1 3 7 I M I D $ ( S $ , I , 1 ) < " 0 " O M I D $ ( S $ , I , 1 ) > " 9 "

T H E N 5 9

Page 33: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 33/244

E L A P S E D D A Y S 3 3 8 M = M * 1 0 + A S C ( M I D $ ( S $ , I , 1 ) ) - 4 83 9 1 = 1 + 14 0 I M I D $ ( S $ , 1 , 1 ) 0 " / " T H E N 5 9 4 1 1 = 1 + 14 2 I M I D $ ( S $ , I , 1 ) < " 0 " O M I D $ ( S $ , I , 1 ) > " 9 "

T H E N 5 9 04 3 D = A S C ( M I D $ ( S $ , I , 1 ) ) - 4 84 4 1 = 1 + 14 5 I M I D $ ( S $ , I , 1 ) = ' 7 " T H E N 5 0 4 6 I M I D $ ( S $ , I , 1 ) < " 0 " O M I D $ ( S $ , 1 , ) > " 9 "

T H E N 5 9 4 7 D = D * 1 0 + A S C ( M I D $ ( S $ , I , 1 > ) - 4 84 8 1 = 1 + 14 9 I M I D $ ( S $ , I , 1 X > ' 7 " T H E N 5 9 5 0 1 = 1 + 15 1 I L E N ( S $ ) - I < > 3 T H E N 5 9 5 2 0 Y = 05 3 F O J = T 1 + 5 4 I M I D $ ( S $ , J , 1 ) < " 0 " O M I D $ ( S $ , J , 1 ) > " 9 "

T H E N 5 9 5 5 Y = Y * 1 0 + A S C ( M I D $ ( S $ , J , 1 ) ) - 4 85 6 N E X T5 7 I M < 1 O R M > 1 2 O D < O Y < 1 5 8 3 T H E N 5 9 05 8 G O S U B 6 0 5 9 R E T U R N6 0 0 R E M C A L C U L A T E D A Y S ( C H E C K L E A P Y R . )6 1 L E A P = ( I N T ( Y / 4 ) * 4 = Y A N ( I N T ( Y / 1 0 0 ) * 1 0 0 < > Y

O I N T ( Y / 4 0 0 ) * 4 0 0 = Y ) )6 2 D A Y S ( 2 ) = 2 86 3 I L E A P T H E N D A Y S ( 2 ) = 2 96 4 I D > D A Y S ( M ) T H E N 7 0 6 5 S = D + 3 6 5 * Y + I N T ( ( Y - 1 ) / 4 ) - I N T ( ( Y - 1 ) / 1 0 0 )

+ I N T ( ( Y - 1 ) / 4 0 0 )6 6 I M = T H E N 7 0 06 7 F O 1 = T M - 6 8 S = S + D A Y S ( I )6 9 N E X T7 0 R E T U R N

Page 34: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 34/244

3 Z A P P E R S F O T H C O M M O D O R E 6

G L O S S A R Y O V A R I A B L E SD A Y S : T h i s a r r a y o 1 2 e l e m e n t s h o l d s t h n u m b e r o f d a y s c o

t a i n e d i e a c h m o n t h .S S t r i n g v a r i a b l e u s e d t p a s s d a t e t t h s u b r o u t i n e a l i n e

3 0 0 .U s e d b t h s u b r o u t i n e a l i n e 3 0 t r e t u r n t h n u m e r i ce q u i v a l e n t o t h d a t e p a s s e d i S $

A H o l d s t h e i n p u t t e d f i r s t d a t e i s t r i n g f o r m .H o l d s t h n u m e r i c v a l u e o t h f i r s t d a t e .

B H o l d s t h e i n p u t t e d s e c o n d d a t e i s t r i n g f o r m .H o l d s t h n u m e r i c v a l u e o t h s e c o n d d a t e .H o l d s t h n u m e r i c m o n t h v a l u e o t h d a t e b e i n g p r o c e s s e db t h s u b r o u t i n e a l i n e 3 0 0 .H o l d s t h n u m e r i c d a o t h d a t e b e i n g p r o c e s s e d b t h s u b r o u t i n e i l i n e 3 0 0 .H o l d s t h n u m e r i c y e a r o t h d a t e b e i n g p r o c e s s e d b t h s u b r o u t i n e i l i n e 3 0 0 .I n t h e s u b r o u t i n e a l i n e 3 0 t h i s v a r i a b l e p o i n t s t t h c h a r a c t e r i S c u r r e n t l y b e i n g p r o c e s s e d .

L I N E S O S P E C I A L I N T E R E S T2 0 - 5 0 : E s t a b l i s h a r r a y D A Y S , w h i c h , f o e a c h m o n t h , c o n t a i n s t h

n u m b e r o f d a y s c o n t a i n e d b t h a t m o n t h .6 0 - 7 0 : I n p u t t h f i r s t d a t e a s t r i n g a n p a s s i t t h s u b r o u t i n e a

l i n e 3 0 f o c o n v e r s i o n t n u m b e r . T h r e a s o n f o t h i s a p p r o a c hi t p r o v i d e f o t h i n c l u s i o n o t h s l a s h e s , w h i c h a r e , o c o u r s e ,n o n n u m e r i c .

1 1 0 - 1 5 0 : P e r f o r m f o t h s e c o n d d a t e w h a t l i n e s 6 0 - 1 0 0 d f o r t h ef i r s t d a t e , e x c e p t t h a t t h n u m e r i c a l e q u i v a l e n t o t h d a t e i a s s i g n e dt t h e v a r i a b l e B

1 8 0 : I c a s e t h t w d a t e s w e r e e n t e r e d i t h w r o n g o r d e r , t h e v a l u e so a n a r e x c h a n g e d . N o t e t h a t h e r e t h e v a r i a b l e i b e i n gu s e d o n l y a t e m p o r a r y s t o r a g e a r e a .

1 9 0 - 2 1 0 : P r i n t t h n u m b e r o e l a p s e d d a y s b m e r e l y s u b t r a c t i n gf r o m B

S u b r o u t i n e3 0 0 - 5 9 0 : T h i s s u b r o u t i n e c o n v e r t s t h d a t e p a s s e d i t h v a r i a b l e S

t n u m e r i c v a l u e r e p r e s e n t i n g t h e a b s o l u t e n u m b e r o d a y s f r o mt h b e g i n n i n g o t h c o m m o n c a l e n d a r , n a m e l y t h e q u i v a l e n t o

Page 35: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 35/244

E L A P S E D D A Y S 3 J a n u a r y o t h y e a r 0 0 0 1 . I a l s o d o e s c h a r a c t e r - b y - c h a r a c t e ra n a l y s i s o t h s t r i n g t e n s u r e t h a t t h f o r m a t i c o r r e c t i a l r e s p e c t s .

3 2 0 : T h i s i a a t t e m p t t s a v e t i m e b t e s t i n g i m m e d i a t e l y w h e t h e rt h e l e n g t h o S i w i t h i n t h e c o r r e c t b o u n d s .

3 3 0 - 3 5 0 : I t h f i r s t c h a r a c t e r o S i d i g i t , t h e n i t n u m e r i ce q u i v a l e n t i a s s i g n e d t v a r i a b l e M T h v a r i a b l e i t h e n i n c r em e n t e d t p o i n t t t h n e x t c h a r a c t e r i S $

3 6 0 - 3 9 0 : I t h e c u r r e n t c h a r a c t e r o S i s l a s h , c o n t r o l s k i p s t l i n e 4 1 w i t h t h e v a r i a b l e c o n t a i n i n g t h v a l u e r e p r e s e n t i n g t h m o n t h . O t h e r w i s e , t h i s c h a r a c t e r s h o u l d b d i g i t ; i i i s i i a l s oc o n v e r t e d t a n u m e r i c a l v a l u e a n t h v a l u e o v a r i a b l e i a d j u s t e d s t h a t i n o c o n t a i n s t h v a l u e o t h m o n t h .

4 0 0 - 4 1 0 : T e s t t h a t t h e c u r r e n t c h a r a c t e r o S i s l a s h .4 2 0 - 5 0 0 : T h e s e l i n e s d f o t h e v a r i a b l e w h a t l i n e s 3 3 0 - 4 1 0

d f o t h v a r i a b l e M 5 1 0 : E n s u r e s t h a t t h e r e a r e f o u r c h a r a c t e r s r e m a i n i n g t b c h e c k e d

i S $ 5 2 0 - 5 6 0 : E x a m i n e s t h f o u r r e m a i n i n g c h a r a c t e r s a n d , i t h e y a r

d i g i t s , c o n v e r t s t h e m t t h e i r c o r r e s p o n d i n g n u m b e r s a n d a d d s t h e mt t h a d j u s t e d v a l u e o v a r i a b l e Y s t h a t w i n d s u c o n t a i n i n gt h v a l u e o t h y e a r .

5 7 0 : C h e c k s t d e t e r m i n e t h a t t h m o n t h , d a t e , a n y e a r a r w i t h i nt h e i r p r o p e r r a n g e s . ( T h e u p p e r l i m i t f o r t h e d a t e i n o y e c h e c k e d ;t h i s i d o n e l a t e r i s u b r o u t i n e 6 0 0 . )

5 8 0 : G o e s t s u b r o u t i n e 6 0 t c o m p u t e t h a c t u a l n u m b e r o e l a p s e dd a y s a n t d e t e r m i n e i t h y e a r i q u e s t i o n i l e a p y e a r .

S u b r o u t i n e6 0 0 - 7 0 0 : T h i s c h e c k s f o l e a p y e a r a n c a l c u l a t e s t h f i n a l v a l u e

f o b a s e d o M D a n Y 6 1 0 : T h v a r i a b l e L E A P i a s s i g n e d t h B o o l e a n v a l u e " t r u e " i

i l e a p y e a r . y e a r i l e a p y e a r i i i e v e n l y d i v i s i b l e b 4 t h o n l y e x c e p t i o n s t t h i s r u l e a r c e n t u r y y e a r s ( y e a r s t h a t a r e v e n l y d i v i s i b l e b 1 0 0 ) . I o r d e r f o c e n t u r y y e a r s t b l e a p y e a r st h e y h a v e t b e v e n l y d i v i s i b l e b 4 0 0 .

6 2 0 - 6 3 0 : S e t h n u m b e r o d a y s i F e b r u a r y , d e p e n d i n g u p o nw h e t h e r t h y e a r i q u e s t i o n i a l e a p y e a r o n o t . N o t i c e t h a t s i n c eL E A P a l r e a d y h a s a v a l u e o " t r u e " o " f a l s e , " i i s u f f i c i e n t t o s a " I L E A P T H E N . . . " I f i n d e e d , t h y e a r i q u e s t i o n i l e a py e a r , t h v a l u e o L E A P i " t r u e , " a n t h T H E N c l a u s e i e x e c u t e d .I L E A P i " f a l s e , " t h T H E N c l a u s e i i g n o r e d , a n c o n t r o l r e s u m e so t h n e x t l i n e .

Page 36: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 36/244

3 Z A P P E R S F O T H C O M M O D O R E 6 6 4 0 : C h e c k s t e n s u r e t h a t t h e v a r i a b l e i n o g r e a t e r t h a n t h

n u m b e r o d a y s i t h m o n t h .6 5 0 - 6 9 0 : A s s i g n t t h a b s o l u t e n u m b e r o d a y s t h a t h a v e e l a p s e d

u t t h g i v e n d a t e . N o t i c e t h a t , o n c e a g a i n , l e a p y e a r s a r t a k e ni n t o a c c o u n t . L i n e s 6 6 0 - 6 9 0 a d i t h n u m b e r o f d a y s i t h m o n t h s p r e c e d i n g t h g i v e n d a t e .

S U G G E S T E D E N H A N C E M E N T S1 I m i g h t b e d e s i r e d t o p r i n t o u i e i t h e r o t h t w d a t e s i q u e s t i o n

f a l l o l e a p y e a r s . T h i s i n f o r m a t i o n i a v a i l a b l e i n l i n e 6 1 0 , w h e r et h e v a r i a b l e L E A P i a s s i g n e d t h v a l u e " t r u e " i t h y e a r i l e a py e a r .

2 T h d a y s o f t h w e e k o w h i c h t h e d a t e s f a l l c a a l s o b p r i n t e do u t . S e " P r i n t - a - M o n t h " ( C h a p t e r 2 1 f o d e t a i l s o h o t h i s m a b d o n e .

Page 37: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 37/244

Page 38: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 38/244

3 Z A P P E R S F O R T H C O M M O D O R E 6 b e c o m e s 1 7 5 2 2 6 1 3 4 0 2 0 1 0 5 1 6 8 4 2 a n f i n a l l y1 I w w e r e t s t a r t w i t h 1 1 , c l e a r l y t h i s w o u l d a l s o b e c o m e1 s i n c e 1 i o n o t h n u m b e r s i t h a b o v e s e r i e s .I h a b e e n c o n j e c t u r e d t h a t a l p o s i t i v e n u m b e r s w h e n t r e a t e di t h i s f a s h i o n e v e n t u a l l y c o n v e r g e t 1 T h f a c t o t h m a t t e ri t h a t n o b o d y i t h w o r l d h a y e p r o v e d t h a t t h i s i t h c a s e ,n o h a i b e e n d i s p r o v e d . A l l t h a t w c a b s u r e o i t h a tn o b o d y h a y e f o u n d n u m b e r t h a t d o e s n o c o n v e r g e t 1 A r m e d w i t h y o u r t r u s t y C o m m o d o r e 6 c o m p u t e r a n t h p r o g r a mb e l o w , y o c a t r y t o f i n d n u m b e r t h a t d o e s n o t t r a n s f o r m t 1 S h o u l d y o b s u c c e s s f u l , y o w i l l b e c o m e w o r l d f a m o u s ,a n p e r h a p s e v e n r i c h . W h e n y o c o l l e c t y o u r p r i z e , d o n ' t f o r g e t ,a t l e a s t , t a c k n o w l e d g e y o u r C o m m o d o r e 6 c o m p u t e r .

T r u t h p r o g r a m , s i m p l y t y p e i a n p o s i t i v e i n t e g e r o y o u r c h o i c e . A s o o n a i p a s s e s t h e v a l i d a t i o n t e s t , i i o p e r a t e du p o n i t h m a n n e r d e s c r i b e d a b o v e , t h r e s u l t o e a c h o p e r a t i o nb e i n g d i s p l a y e d o t h s c r e e n f o y o u r p e r s o n a l o b s e r v a t i o n ,t o g e t h e r w i t h t h e s e q u e n t i a l o p e r a t i o n c o u n t . W h e n e v e r t h n u b e d e c r e a s e s ( i d i v i d e d b 2 ) t h c o m p u t e r e m i t s l o t o n e .W h e n t h n u m b e r i n c r e a s e s ( i m u l t i p l i e d b a n h a a d d e d ) ,

h i g h t o n e i s o u n d e d . I t h n u m b e r y o h a v e s e l e c t e d b e h a v e si t h m a n n e r s u g g e s t e d b t h c o n j e c t u r e — t h a t i t s a y , i e v e n t u a l l y c o n v e r g e s t 1 — y o u a r s n o t i f i e d a n t o l d e x a c t l yh o m a n y o p e r a t i o n s w e r e r e q u i r e d t d s o T h i s a n n o u n c e m e n ti a c c o m p a n i e d b m e l o d i c o v e r t u r e a n y o a r a s k e d i y o w o u l d l i k e t t r a n o t h e r n u m b e r . n u m b e r t h a t b e h a v e s i m o s t c u r i o u s a n i n t e r e s t i n g f a s h i o n i t h n u m b e r 2 7 W h d o n ' ty o t r i y o u r s e l f a n s e e x a c t l y w h a t h a p p e n s . Y o m i g h t b ei f o s u r p r i s e .

I n c i d e n t a l l y , t h i s i t h f i r s t o f o u r p r o g r a m s t h a t u s e s t h P E E Ka n P O K E c o m m a n d s . T h e y a r u s e d h e r e t p r o d u c e t h s o u n d s .

I c a s e y o a r w o n d e r i n g w h w c a l l e d t h i s p r o g r a m " H a i ls t o n e s , " i i n a m e s u g g e s t e d i a a r t i c l e b B r i a n H a y e s ,p u b l i s h e d i t h p r e s t i g i o u s j o u r n a l S c i e n t i f i c A m e r i c a n d a t e dJ a n u a r y 1 9 8 4 . I y o u w a n t t k n o w m o r e a b o u t t h e h i s t o r y o t h i s m a t h e m a t i c a l p r o b l e m , a n a l t h h y p o t h e s e s r e l a t i n g t i t y o m i g h t b e i n t e r e s t e d i r e a d i n g t h i s e x c e l l e n t a r t i c l e f o y o u rs e l f .

Page 39: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 39/244

H A I L S T O N E S 3 1 R E H A I L S T O N E S2 P O K E 5 4 2 9 6 , 1 53 P R I N T4 I N P U T " P I C K N U M B E R , A N Y N U M B E R " ; N5 I N = I N T ( N ) A N N > T H E N 8 6 P R I N T : P R I N T " N O , N O T H A T N U M B E R ! "7 G O T O 3 8 Q = N : I T = 09 I Q = T H E N 1 8 1 0 I T = I T + 1 : E V E N = ( Q / 2 = I N T ( Q / 2 > )1 1 I E V E N T H E N 1 4 1 2 Q = Q * 3 + 11 3 G O T O 1 5 1 4 Q = Q / 21 5 P R I N T " O P E R A T I O N # " ; I T ; T A B ( 2 6 ) ; Q1 6 G O S U B 3 0 1 7 G O T O 9 1 8 P R I N T : P R I N T " Y E S , " ; N ;1 9 P R I N T " G O E S T I N " ; I T ; " O P E R A T I O N S ! "2 0 G O S U B 4 0 2 1 P R I N T : P R I N T " A N O T H E R < O N > " 2 2 0 G E T A $ : I F A $ O " Y " A N A $ O " N " T H E N 2 2 2 3 P R I N T A 2 4 I A $ = " Y " T H E N 3 2 5 P O K E 5 4 2 9 6 , 02 6 P R I N T : P R I N T " F I N I S H E D "2 7 E N 3 0 R E S O U N D3 1 F R = 1 7 1 6 7 : I F E V E N T H E N F R = 4 2 9 13 2 0 P O K E 5 4 2 7 2 , F R A N D 2 5 53 3 0 P O K E 5 4 2 7 3 , I N T ( F R / 2 5 6 )3 4 P O K E 5 4 2 7 7 , 3 4 : P 0 K E 5 4 2 7 8 , 3 43 5 P O K E 5 4 2 7 6 , 1 73 6 F O 1 = T 2 0 0 : N E X T3 7 P O K E 5 4 2 7 6 , 1 63 8 R E T U R N4 0 0 R E M S U C C E S S4 1 H I = 1 6 : L 0 = 1 9 5

Page 40: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 40/244

3 Z A P P E R S F O R T H C O M M O D O R E 6 4 2 0 P O K E 5 4 2 7 7 , 3 4 : P 0 K E 5 4 2 7 8 , 3 44 3 0 P O K E 5 4 2 7 2 , L O r P O K E 5 4 2 7 3 , H I4 4 0 P O K E 5 4 2 7 6 , 1 74 5 F O 1 = T 4 6 0 P O K E 5 4 2 7 6 , 1 64 7 0 P O K E 5 4 2 7 6 , 1 74 8 L 0 = L 0 * 94 9 I L O < 2 5 6 T H E N 5 1 5 0 L 0 = L 0 - 2 5 6 : H I = H I + 1 : G 0 T 0 4 9 5 1 P O K E 5 4 2 7 2 , L O : P O K E 5 4 2 7 3 , H I5 2 N E X T5 3 P O K E 5 4 2 7 6 , 1 65 4 F O 1 = T 2 0 0 : N E X T5 6 P O K E 5 4 2 7 2 , 1 5 : P O K E 5 4 2 7 3 , 6 75 7 P O K E 5 4 2 7 6 , 1 75 8 F O 1 = T 2 0 : N E X T5 9 0 P O K E 5 4 2 7 6 , 1 66 0 R E T U R N

G L O S S A R Y O V A R I A B L E ST h i n p u t t e d n u m b e r t b o p e r a t e d u p o n .T h o r i g i n a l n u m b e r i s t o r e d i a n t h c o p y i i a c t u a l l y o p e r a t e d u p o n .

I C o u n t s t h n u m b e r o i t e r a t i o n s ( o r o p e r a t i o n s ) t h a t t h v a l u e i u n d e r g o e s .

E V E N B o o l e a n v a l u e t h a t i " t r u e " ( n o n z e r o ) i i c u r r e n t l ya e v e n n u m b e r .

F U s e d i t h s u b r o u t i n e a l i n e 3 0 t h o l d t h f r e q u e n c yo t h n o t e t b p r o d u c e d b t h s o u n d c h i p . W c o u l dn o u s e i t h e r t h n a m e F R E Q o r N O T E b e c a u s e b o t h o t h e s e n a m e s c o n t a i n k e y w o r d . D y o k n o w w h a t t h e ya r e ?

H U s e d i t h s u b r o u t i n e a t l i n e 4 0 0 , t h i s v a r i a b l e h o l d s t h u p p e r b i t s o t h f r e q u e n c i e s t b e p l a y e d b t h s o u n dc h i p .L U s e d i t h e s u b r o u t i n e a l i n e 4 0 0 , t h i s v a r i a b l e h o l d s t h l o w e r b i t s o t h e f r e q u e n c i e s t b e p l a y e d b t h s o u n dc h i p .

Page 41: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 41/244

H A I L S T O N E S 3

L I N E S O S P E C I A L I N T E R E S T2 0 T u r n s o t h s o u n d c h i p .1 0 0 : C a l c u l a t e s t h e v a l u e o E V E N ; i Q / i a i n t e g e r , t h e n i

e v e n . N o t e h o t h e q u a l s i g n w i t h i n t h p a r e n t h e s e s i u s e d a l o g i c a l o p e r a t o r r a t h e r t h a n f o a s s i g n m e n t o f o c o m p a r i s o n .

1 1 0 - 1 4 0 : T h e s e a r e t h e l i n e s t h a t p e r f o r m t h c r u c i a l o p e r a t i o n so n Q .

2 5 0 : T u r n s o f t h s o u n d c h i p .S u b r o u t i n e3 0 0 - 3 8 0 : P l a y s a n o t e o t h a p p r o p r i a t e p i t c h f o r e a c h n e v a l u e o

Q A l t h P O K E s t a t e m e n t s i t h i s s u b r o u t i n e s e n d i n f o r m a t i o n t t h s o u n d c h i p . F o d e t a i l e d e x p l a n a t i o n o t h r o l e s p l a y e d b e a c h o t h e s e l o c a t i o n s , y o a r e r e s p e c t f u l l y r e f e r r e d t t h o f f i c i a lC o m m o d o r e P r o g r a m m e r ' s R e f e r e n c e G u i d e .

3 1 0 : S e l e c t s t h c o r r e c t f r e q u e n c y b a s e d o t h v a l u e o E V E N .3 2 0 - 3 3 0 : S p l i t t h e v a r i a b l e F i n t o i t u p p e r a n l o w e r h a l v e s .

S u b r o u t i n e4 0 0 - 6 0 0 : P l a y s l i t t l e m e l o d y u p o n r e a c h i n g 1

4 5 0 - 5 2 0 : I n c r e m e n t t h f r e q u e n c y b e i n g p l a y e d .5 6 0 : P l a y s t h f i n a l " s t i n g " n o t e .

S U G G E S T E D E N H A N C E M E N T S1 I n s t e a d o d i s p l a y i n g a l t h i n t e r m e d i a t e r e s u l t s , c o n f i n e t h o u t p u t

t t h f i n a l l i n e , s p e c i f y i n g h o m a n y c a l c u l a t i o n s w e r e r e q u i r e d t c o n v e r g e t 1 P e r h a p s y o m i g h t w a n t t o p r i n t o u e v e r y t e n t h l i n ei n s t e a d . B o t h t h e s e m o d i f i c a t i o n s w i l l s p e e d u t h p r o g r a m .

2 F o a n v a l u e o i n p u t t e d , p r i n t o u t h h i g h e s t v a l u e r e a c h e db e f o r e c o n v e r g e n c e t i a c h i e v e d . F o t h e x a m p l e q u o t e d a b o v e ,w h e r e w a s e t o 7 , t h i s w o u l d b 5 2

3 . I n s e r t F O R / N E X T l o o p g o i n g , s a y , f r o m t 1 0 , 0 0 0 , 0 0 0 , t d e t e r m i n e t h n u m b e r o o p e r a t i o n s t h a t a r r e q u i r e d f o c o n v e r g e n c et f o e a c h o t h o s e n u m b e r s .

4 C a l c u l a t e f o a n g i v e n v a l u e o t h p e r c e n t a g e o o d a n d e v e nn u m b e r s e n c o u n t e r e d a l o n g t h w a t c o n v e r g e n c e t 1

Page 42: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 42/244

C H A P T E R

T Y P I N G T E S T

T h i s i g a m e i n t e n d e d t i n c r e a s e y o u r s k i l l s a t y p i n g . T h g a m e s t a r t s o u b a s k i n g y o h o m a n y w o r d s m i n u t e y o w o u l d l i k e . A n r e s p o n s e e q u a l t o g r e a t e r t h a n 1 i a c c e p t e d ,s l o n g a i i a i n t e g e r . I i r e c o m m e n d e d t h a t u n t i l y o h a v eh a a o p p o r t u n i t y t p r a c t i c e l i t t l e y o s e l e c t s l o w s p e e d ,s o m e n u m b e r a r o u n d 1 o 2 0 A y o u r p r o w e s s i n c r e a s e s y o c a a t t e m p t h i g h e r s p e e d s .

O n c e t h s p e e d h a b e e n s e l e c t e d , r a n d o m w o r d f r o m p o o lo f i f t y i d i s p l a y e d i t h m i d d l e o t h s c r e e n . Y o a r t h e nr e q u i r e d t t y p e i t h w o r d c o r r e c t l y w i t h i n t i m e l i m i t t h a t i e s t a b l i s h e d b t h c o m p u t e r b a s e d o t h l e n g t h o t h w o r d a n y o u r s e l e c t e d s p e e d . I y o t y p e i i n c o r r e c t l y w i t h i n t h a l l o t t e dt i m e l i m i t , i a d d e d t y o u r s c o r e a n s a l u t i n g b e e p i s o u n d e d .A e r r o r i t y p i n g o t i m e - l i m i t v i o l a t i o n a d d s t t h n u m b e ro a t t e m p t s t h a t f a i l e d a n p r o d u c e s a a p p r o p r i a t e s o u n d . I t h e v e n t t h a t y o w i s h t c o r r e c t m i s t y p e d c h a r a c t e r , a l y o n e e dd i p r e s s t h l e f t - p o i n t i n g a r r o w k e y , t h o n l o c a t e d a t h e x t r e m e l e f t o t h t o r o o k e y s . A a n t i m e t h a t y o w i s ht t e r m i n a t e t h s e s s i o n , p r e s s t h F k e y . A t h a t p o i n t d i s c r e e nc l e a r s a n d i s p l a y s s u m m a r y o y o u r e f f o r t s , i n d i c a t i n g h o m a n y y o g o r i g h t , h o m a n y w r o n g , a n t h e i r r e s p e c t i v e p e c e n t a g e s .4

Page 43: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 43/244

T Y P I N G T E S T 4

1 R E T Y P I N G T E S T2 P O K E 5 3 2 8 1 , 8 : C N T = 0 : Y E S = 03 I N P U T " R H O U M A N Y W O R D S P E M I N U T E " ; N4 I N O I N T ( N ) O N < T H E N 3 5 R E S T O R E : W = I N T ( R N D ( 0 ) * 5 0 ) + 16 0 F O R 1 = T 7 R E A D W U R D $8 N E X T9 L = 0 : A N S W E R $ = M M : C N T = C N T + 11 0 P R I N T " □ □ H D D

T A B ( 1 5 ) ; W U R D $1 1 0 P O K E 1 9 8 , 01 2 P O K E 2 0 9 , 1 5 9 : P O K E 2 1 0 , 51 3 L I M = T I M E + 6 6 0 * L E N ( W U R D $ ) / N + 2 01 4 P R I N T " ■ ■ ■ " ;1 5 G E A $ : I F A $ O M " T H E N 2 1 1 6 I T I M E < L I M T H E N 1 5 1 7 G O S U B 4 0 1 8 P R I N T : P R I N T : P R I N T M S O R R Y , T I M E ' S U P ! "1 9 F O 1 = T 4 0 0 : N E X T2 0 0 P O K E 5 4 2 7 6 , 3 2 : G 0 T 0 5 2 1 I A $ = " l " T H E N 3 9 02 2 I A $ = C H R $ ( 1 3 ) T H E N 3 0 02 3 I A $ < > " — T H E N 2 7 2 4 I L = T H E N 1 5 2 5 L = L - 1 : A N S W E R $ = L E F T $ ( A N S W E R $ , L )2 6 P R I N T ' H I I " ; : G O T O 1 4 2 7 I A $ < " A " O A $ > " Z " T H E N 1 5 2 8 P R I N T A $ ; : L = L + 1 : A N S W E R $ = A N S U E R $ + A $2 9 0 G O T O 1 4 3 0 P R I N T " 3 1 I A N S W E R $ O W U R D $ T H E N 3 5 03 2 G O S U B 5 0 0 : P R I N T " C O R R E C T ! " : Y E S = Y E S + 13 3 F O 1 = T 4 0 0 : N E X T3 4 0 P O K E 5 4 2 7 6 , 3 2 : G 0 T 0 5 3 5 0 G O S U B 4 0 3 6 P R I N T : P R I N T " S O R R Y , Y O M I S T Y P E D T H W O R D "3 7 F O 1 = T 4 0 0 : N E X T I : P O K E 5 4 2 7 6 , 3 2

Page 44: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 44/244

4 Z A P P E R S F O R T H C O M M O D O R E 6 3 8 F O 1 = T 2 0 0 0 : N E X T I : G O T O 5 3 9 P O K E 5 4 2 9 6 , 0 : G O S U B 6 0 0 : E N D4 0 0 R E M B A D B E E P4 1 P O K E 5 4 2 7 2 , 1 3 24 2 0 P O K E 5 4 2 7 3 , 34 3 P O K E 5 4 2 7 7 , 1 6 04 4 0 P O K E 5 4 2 7 8 , 2 5 04 5 0 P O K E 5 4 2 9 6 , 1 54 6 0 P O K E 5 4 2 7 6 , 3 34 7 R E T U R N5 0 0 R E M G O O D B E E P5 1 P O K E 5 4 2 7 2 , 3 25 2 P O K E 5 4 2 7 3 , 7 85 3 P O K E 5 4 2 7 7 , 3 45 4 P O K E 5 4 2 7 8 , 1 3 85 5 P O K E 5 4 2 9 6 , 1 55 6 P O K E 5 4 2 7 6 , 3 35 7 R E T U R N6 0 R E P E R F O R M A N C E R A T I N G6 1 0 P O K E 5 3 2 8 1 , 66 2 P R I N T " n n n O O n " ; T A B ( 1 4 ) ; " E l Y 0 U R

S C O R E S : "6 3 P R I N T : P R I N T6 4 P R I N T T A B ( 9 ) ; " C 0 R R E C T I N C O R R E C T "6 5 P R I N T T A B ( 9 ) ; "6 6 P R I N T : P R I N T : P R I N T T A B d O ) ; Y E S ;6 7 P R I N T T A B ( 2 3 ) ; ( C N T - 1 ) - Y E S6 8 F I N E = I N T ( Y E S / ( C N T - 1 ) * 1 0 0 )6 9 P R I N T : P R I N T T A B ( 9 ) ; " ( " ; F I N E ; " I I % ) " 7 0 P R I N T T A B < 2 2 ) ; " ( " ; 1 0 0 - F I N E ; " M % ) 7 1 0 R E T U R N8 0 0 R E M W O R D S8 1 D A T A " B E N E F I T " , " I N S I S T " , " P L E A S U R E "8 2 O A T A " S T O R M " , " A C R O N Y M " , " T R A P E Z E "8 3 D A T A " W O R L D L Y " , " F U N G U S " , " M A R K E T "8 4 D A T A " Y E S T E R D A Y " , " G U I D A N C E " , " Y E A R N "8 5 D A T A " E N G A G E " , " R E C L A I M " , " K N O W L E D G E "8 6 D A T A " C O L O N Y " , " U T I L I T Y " , " J O K E "8 7 D A T A " D R I V E R " , " R E M A I N D E R " , " H Y D R O G E N "

Page 45: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 45/244

T Y P I N G T E S T 4 8 8 D A T A " O C T O P U S M , " T E C H N I C A L 1 1 , " L A U G H 1 18 9 D A T A M Q U I V E R M , " V O L T A G E 1 1 , " N I M B L E 1 19 0 D A T A " F O L I A G E " , " A M B I T I O N " , " V A L V E "9 1 D A T A " G E O M E T R Y " , " L O C A T I O N " , " G L A C I E R "9 2 D A T A " O U T R A G E O U S " , " W A R R A N T " , " K I C K "9 3 D A T A " C I V I L I Z E " , " M A T E R N I T Y " , " H E A R T "9 4 D A T A " D I S A R R A Y " , " Z O M B I E " , " B L U E P R I N T "9 5 D A T A " M I L D E W " , " I M P R E S S " , " J I N G L E "9 6 D A T A " P E R F E C T " , " E X C E S S I V E " , " Q U O T A "9 7 D A T A " N A V I G A T E " , " S E P A R A T E "

G L O S S A R Y O V A R I A B L E SW U R D $ H o l d s t h w o r d t h a t h a b e e n r a n d o m l y s e l e c t e d b t h

c o m p u t e r f r o m t h p o o l o 5 w o r d s .T h i n p u t t e d t y p i n g s p e e d .

C N H o l d s t h t o t a l n u m b e r o w o r d s t h a t t h u s e r t r i e d b e f o r eq u i t t i n g .

Y E T h e n u m b e r o w o r d s t h a t w e r e c o r r e c t l y t y p e d a n i t i m e .

A N S W E R S H o l d s t h w o r d t y p e d i b t h p l a y e r .H o l d s t h l e n g t h o t h w o r d a t y p e d i b t h e p l a y e r .

L I T h i s i t h t i m e l i m i t t h a t t h p l a y e r h a t i n p u t t h w o r d .( I t i s m e a s u r e d i i n c r e m e n t s o V f e o o s e c o n d , s i n c et h e s e a r t h u n i t s u s e d b t h b u i l t - i n T I M E f u n c t i o n . )

L I N E S O S P E C I A L I N T E R E S T2 0 H e r e w e n c o u n t e r a n e P O K E s t a t e m e n t . T h m e m o r y l o c a t i o n

r e f e r e n c e d , 5 3 2 8 1 , c o n t r o l s t h e b a c k g r o u n d c o l o r . T h i s i a c c o mp l i s h e d b p o k i n g n u m b e r b e t w e e n a n 1 i n t o t h a t l o c a t i o n .W h a v e e l e c t e d t u s t h n u m b e r 8 w h i c h s e t s t h s c r e e n c o l o rt o r a n g e .

3 0 N o t e t h a t h e r e t h f i r s t c h a r a c t e r o t h l i t e r a l i t h I N P U Ts t a t e m e n t c h a n g e s t h c h a r a c t e r c o l o r t b r o w n .

5 0 - 8 0 : w o r d i r a n d o m l y s e l e c t e d f r o m t h p o o l o f D A T A s t a t em e n t s b c o n t i n u a l l y r e a d i n g w o r d i n t o W U R D $ f o s o m e r a n d o mn u m b e r o t i m e s b e t w e e n a n 5 0 W h e n t h r e a d i n g s t o p s , t h w o r d t h a t i c u r r e n t l y i W U R D $ i u s e d a t h e s e l e c t e d w o r d .

Page 46: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 46/244

4 Z A P P E R S F O T H C O M M O D O R E 6

N o t i c e t h a t t h R N f u n c t i o n i n o u s e d d i r e c t l y i n t h F O s t a t e m e n t b u t r a t h e r i u s e d o u t s i d e o t h l o o p .

1 1 0 : A n o t h e r P O K E ; t h i s t i m e l o c a t i o n 1 9 i s e t 0 L o c a t i o n 1 9 i n d i c a t e s t h n u m b e r o c h a r a c t e r s i t h k e y b o a r d b u f f e r . I t h p l a y e r t a k e s t o l o n g t t y p e i w o r d , h i i n t e r r u p t e d , b u a n k e y s p r e s s e d a f t e r t h a t p o i n t w i l l s t i l l e n t e r t h e b u f f e r . T h e s e c h a ra c t e r s w o u l d b e r r o n e o u s l y a c c e s s e d b s u b s e q u e n t G E s t a t em e n t s i t h e b u f f e r w e r e n o c l e a r e d a t h b e g i n n i n g o e v e r y r o u n d .

1 2 0 : S t i l l m o r e P O K E s ; l o c a t i o n s 2 0 9 - 2 1 0 t o g e t h e r f o r m 1 6 - b i tn u m b e r s p e c i f y i n g t h a d d r e s s o t h e c u r r e n t c u r s o r p o s i t i o n o t h s c r e e n . W h a t w m e a n b " a d d r e s s " i t h i s : T h c h a r a c t e r p o s i t i o n so t h s c r e e n a r r e p r e s e n t e d b c o n s e c u t i v e l o c a t i o n s i t h C o m o d o r e ' s m e m o r y . T h e s e l o c a t i o n s n o r m a l l y s t a r t a a d d r e s s 1 0 2 4 .T h c h a r a c t e r s o t h s c r e e n a r r e p r e s e n t e d i s c r e e n m e m o r y i w h a t i c a l l e d s c r e e n d i s p l a y c o d e . T h e s e v a l u e s d i f f e r f r o m A S C I Iv a l u e s a n b o t h c a b f o u n d i t h P r o g r a m m e r * s R e f e r e n c e G u i d e .G i v e n a n r o ( 0 - 2 4 ) a n d c o l u m n ( 0 - 3 9 ) o t h s c r e e n , w c a d e t e r m i n e t h c o r r e s p o n d i n g m e m o r y l o c a t i o n b m u l t i p l y i n g t h r o b 4 0 a d d i n g t t h i s t h c o l u m n n u m b e r , a n t h e n a d d i n g1 0 2 4 .S i n c e t h r e s u l t i n g a d d r e s s m u s t b d i v i d e d i n t o t w m e m o r y l c a t i o n s , t h C o m m o d o r e 6 d i v i d e s i a f o l l o w s : T h l o w e r b i t sa r p l a c e d i t h l o w e r - n u m b e r e d l o c a t i o n ( 2 0 9 ) a n t h u p p e rb i t s a r s t o r e d i t h h i g h e r - n u m b e r e d l o c a t i o n ( 2 1 0 ) . S o t c o n v e r tt h n u m b e r s i l i n e 1 2 b a c k i n t o a a d d r e s s , w t a k e t h c o n t e n t so 2 1 ( w h i c h i 5 ) m u l t i p l y i b 2 5 6 , a n d a d d t h e c o n t e n t s o l o c a t i o n 2 0 9 , w h i c h i 1 5 9 . T h r e s u l t i n g n u m b e r i 1 4 3 9 . T c o n v e r t t h i s i n t o r o a n c o l u m n n o t a t i o n , w f i r s t s u b t r a c t 1 0 2 4 ,l e a v i n g u w i t h 4 1 5 . T f i n d t h e r o n u m b e r , w d i v i d e t h i s b 4 a n t a k e t h e i n t e g e r p o r t i o n , g i v i n g r e s u l t o 1 0 T g e t t h ec o l u m n n u m b e r , w t a k e t h e r e m a i n d e r o t h p r e v i o u s d i v i s i o n ,w h i c h i 1 5 T h n e r e s u l t o a l t h i s i t h a t t h P O K E s i n l i n e 1 2 r e p o s i t i o n t h c u r s o r a r o 1 0 c o l u m n 1 5 O n f i n a l n o t e : T h i s m e t h o d o p o s i t i o n i n g t h c u r s o r a f f e c t s o n l yt h n e x t l i n e p r i n t e d . A l s u b s e q u e n t l i n e s w i l l b p r i n t e d w h e r et h c o m p u t e r w o u l d n o r m a l l y h a v e p r i n t e d t h e m h a w n o p o k e d .S t h n o r m a l p r a c t i c e , i r e p o s i t i o n i n g o t h c u r s o r i u s e d a a l l ,i t d s o b e f o r e e a c h P R I N T s t a t e m e n t .

1 3 0 : H e r e w d e t e r m i n e t h t i m e l i m i t f o e n t e r i n g t h e w o r d . I t i sb a s e d o f o r m u l a w h i c h t a k e s i n t o a c c o u n t t h l e n g t h o t h w o r da n t h t y p i n g s p e e d r e q u e s t e d b t h u s e r . O b v i o u s l y , t h l o n g e rt h w o r d , t h m o r e t i m e i a l l o w e d ; t h h i g h e r t h s p e e d r e q u e s t e d ,t h s h o r t e r t h t i m e a l l o w e d .

Page 47: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 47/244

T Y P I N G T E S T 4

1 4 0 - 1 6 0 : T h e s e l i n e s a c c e p t t h l e t t e r s t y p e d i b t h u s e r . S i n c et h c o m p u t e r d o e s n o t d i s p l a y c u r s o r w h e n t h p r o g r a m i r u n n i n g ,l i n e 1 4 r e m e d i e s t h i s b p r i n t i n g c u r s o r i m a g e a t h b e g i n n i n go t h f i e l d a l l o t t e d f o t h u s e r ' s r e s p o n s e . E a c h t i m e G E i a t t e m p t e d , t h c u r r e n t T I M E i c o m p a r e d t t h v a l u e o L I M . A l o n g a t h f o r m e r i l e s s t h a n t h l a t t e r , i n p u t m a c o n t i n u e .

1 9 0 : T h i s d e l a y l o o p e n s u r e s t h a t t h m e s s a g e i n l i n e 1 8 s t a y s o t h s c r e e n l o n g e n o u g h t b r e a d .

2 0 0 : T h i s P O K E e n d s t h t o n e w h i c h w a i n i t i a t e d b t h s u b r o u t i n ei n l i n e 4 0 0 . T u r n i n g i o f a t h i s p o i n t a l l o w s t h s o u n d t p e r s i s tf o s h o r t t i m e a f t e r r e t u r n i n g f r o m t h s u b r o u t i n e .2 1 0 : T h i s l i n e t e s t s f o t h p r e s s i n g o t h F k e y , w h i c h t e r m i n a t e st h s e s s i o n .

2 2 0 : C H R $ ( 1 3 ) i t h e q u i v a l e n t o t h R E T U R N k e y . T h u s e r ' sr e s p o n s e i n o t c o n s i d e r e d t b e o v e r u n t i l t h i s k e i p r e s s e d .

2 3 0 : I t h k e p r e s s e d i n o t h b a c k s p a c e , i i a s s u m e d f o t h t i m e b e i n g t h a t i i l e t t e r . O t h e r w i s e , c o n t r o l p a s s e s t l i n e 2 4 0 .

2 4 0 - 2 6 0 : T h e s e l i n e s r e m o v e t h l a s t c h a r a c t e r f r o m A N S W E R S .L i n e 2 4 m a k e s s u r e t h a t t h e r e i a l e a s t o n c h a r a c t e r i A S W E R S . L i n e 2 5 d e c r e m e n t s t h e l e n g t h a n d r e m o v e s t h l a s tc h a r a c t e r o A N S W E R S . L i n e 2 6 b l a n k s o u t t h c u r s o r c h a r a c t e ra n b a c k s p a c e s o v e r t t h l a s t c h a r a c t e r p r i n t e d o t h s c r e e n ( t h eo n t h a t i t b d e l e t e d ) . C o n t r o l t h e n r e t u r n s t o l i n e 1 4 0 , w h e r e

c u r s o r i p r i n t e d i t h i s s p a c e .2 7 0 - 2 9 0 : A c c e p t t h l e t t e r j u s t e n t e r e d . L i n e 2 7 e n s u r e s t h a t t h

c h a r a c t e r i i n d e e d a l e t t e r . L i n e 2 8 p r i n t s t h c h a r a c t e r , a d d s i t A N S W E R S a n i n c r e m e n t s t h l e n g t h o A N S W E R S .

3 0 0 : B l a n k s o u t h l a s t c u r s o r c h a r a c t e r .3 8 0 : A e x t r a l o n g d e l a y i a l l o w e d h e r e s o t h u s e r m a s e w h e r e

t h w o r d w a m i s s p e l l e d .3 9 0 : T h P O K E i t h i s l i n e t u r n s o f t h s o u n d c h i p e n t i r e l y .

S u b r o u t i n e4 0 0 - 4 7 0 : T h i s s u b r o u t i n e p r o d u c e s r a s p b e r r y s o u n d t a c c o m p a n y

t h m e s s a g e s t a t i n g t h a t t h u s e r e i t h e r m i s s p e l l e d a w o r d o t o o kt o l o n g .

S u b r o u t i n e5 0 0 - 5 7 0 : P r o d u c e s b e e p i n d i c a t i n g t h a t t h u s e r h a s t y p e d i t h

w o r d s u c c e s s f u l l y .

Page 48: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 48/244

4 Z A P P E R S F O T H C O M M O D O R E 6

S u b r o u t i n e6 0 0 - 7 1 0 : T h i s s u b r o u t i n e d i s p l a y s t h e p l a y e r ' s p e r f o r m a n c e r a t i n g a

t h e n o f g a m e . I t i s i d e n t i c a l t t h o n u s e d i " N o w Y o S e I t . . . , " w i t h t h f o l l o w i n g t h r e e e x c e p t i o n s :

6 1 0 : T h i s P O K E s t a t e m e n t r e s t o r e s t h s c r e e n c o l o r t i t d e f a u l tv a l u e o f d a r k b l u e .

6 2 0 : T h f i r s t c h a r a c t e r o t h s e c o n d l i t e r a l r e s t o r e s t h e c h a r a c t e rc o l o r t l i g h t b l u e .

6 7 0 - 6 8 0 : W u s t h v a l u e C N T - 1 r a t h e r t h a n C N b e c a u s e t h w o r d w h i c h w a i n t e r r u p t e d b t h p r e s s i n g o t h F k e h a b e e ni n c l u d e d i t h e c o u n t .

8 0 0 - 9 7 0 : T h e s e a r t h D A T A s t a t e m e n t s c o n t a i n i n g t h p o o l o 5 w o r d s .

S U G G E S T E D E N H A N C E M E N T S1 T h p o o l o w o r d s c a n a l w a y s b c h a n g e d o i t l e n g t h i n c r e a s e d o

d e c r e a s e d . ( D o n ' t f o r g e t t c h a n g e l i n e 5 i t h n u m b e r i m o d i f i e d . )2 F o t h o s e w h a r n o o n l y e n t e r p r i s i n g b u a l s o a r e b l e s s e d w i t h

u n l i m i t e d p a t i e n c e , t h e p r o g r a m m a b m o d i f i e d t d e t e r m i n e t h p l a y e r ' s t y p i n g s p e e d , b a s e d o h o q u i c k l y h e n t e r s s e r i e s o w o r d s . g o o d f o r m u l a t d t h i s m i g h t r e q u i r e c o n s i d e r a b l e t h o u g h t .

Page 49: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 49/244

C H A P T E R

L A N D E R

I t h i s g a m e t h p l a y e r c o n t r o l s a s p a c e v e h i c l e w h i c h i t r y i n gt l a n d o t h e p l a n e t C o m m o d o n . A s t h g a m e o p e n s u t h l a n d i n g v e h i c l e i s e e n f l o a t i n g d o w n w a r d i t h m i d d l e o t h s c r e e n . I s h o r t w h i l e t h l a n d i n g v e h i c l e s t a r t s t m e e t o nc o m i n g a n d r a n d o m l y l o c a t e d m e t e o r s . T h s h i p m u s t s t e e r i t w a t h r o u g h t h i s b a r r a g e w i t h o u t s t r i k i n g a n o t h e s e m e t e o r s ,i o r d e r t r e a c h t h e p l a n e t ' s s u r f a c e . F o e a c h r o o m e t e o r ss u c c e s s f u l l y d o d g e d , t h p l a y e r s c o r e s p o i n t s w h i c h a r d i s p l a y e da t h t o o t h s c r e e n . A e x t r a b o n u s i a w a r d e d f o r e a c h i n gt h p l a n e t ' s s u r f a c e u n s c a t h e d .

T h g a m e m a b p l a y e d a f i v e l e v e l s o d i f f i c u l t y . T h h i g h e rt h l e v e l t h e g r e a t e r t h e d e n s i t y o t h m e t e o r c l o u d a n t h m o r ep o i n t s a r s c o r e d . L e v e l i r a t h e r e a s y w h i l e l e v e l m a w e l lp r o v e t b i m p o s s i b l e . A t h b e g i n n i n g o t h g a m e , t h p l a y e ri a s k e d a w h i c h l e v e l h w i s h e s t s t a r t . A e a c h l e v e l i s u c e s s f u l l y c o m p l e t e d , t h p l a y e r a u t o m a t i c a l l y m o v e s o t t h n e x t l e v e l . O n c e l e v e l i r e a c h e d , h r e m a i n s t h e r e f o a l o n ga h c a l a s t . E a c h l e v e l c o n s i s t s o f i v e " t r i p s " d o w n t t h p l a n e t ' s s u r f a c e . E a c h t r i p i l o n g e r t h a n t h p r e v i o u s o n e . T h t r i p l e n g t h s a r 4 0 5 0 6 0 , 7 0 , a n 8 0 t h e s e n u m b e r s r e f e r r i n gt t h n u m b e r o r o w s o m e t e o r s t h s p a c e s h i p m u s t p a s s t h r o u g ht r e a c h t h p l a n e t . W h e n t h t r i p o l e n g t h 8 i s u c c e s s f u l l yc o m p l e t e d , t h p l a y e r i a u t o m a t i c a l l y m o v e d u t t h n e x t l e v e l .

4

Page 50: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 50/244

4 Z A P P E R S F O T H C O M M O D O R E 6 A t h b e g i n n i n g o t h g a m e , t h p l a y e r h a a s u p p l y o t h r e e

s h i p s . E a c h t i m e a s h i p c o l l i d e s w i t h m e t e o r , i i l o s t w i t hc r a s h i n g s o u n d a n t h p l a y e r m u s t r e p e a t t h e t r i p f r o m t h b g i n n i n g . T h g a m e e n d s w h e n t h p l a y e r l o s e s a l t h s h i p s .H o w e v e r , e a c h t i m e a l e v e l i s u c c e s s f u l l y c o m p l e t e d , a e x t r as h i p i a d d e d t t h e s u p p l y . A t h b e g i n n i n g o e v e r y t r i p t h p r o g r a m d i s p l a y s t h e l e v e l n u m b e r , t h t r i p l e n g t h , a n g r a p h ic a l l y s h o w s h o m a n y s h i p s t h p l a y e r h a l e f t .

T h s h i p i c a p a b l e o n l y o m o v e m e n t t t h l e f t a n t t h r i g h t . I t m o v e m e n t i c o n t r o l l e d b t h t w c u r s o r k e y s , l o c a t e da t h e x t r e m e r i g h t o t h b o t t o m r o o k e y s . I n s t e a d o f p e rf o r m i n g t h e i r n o r m a l f u n c t i o n s , t h e u p / d o w n c u r s o r k e c o n t r o l st h s h i p ' s m o v e m e n t t t h l e f t , a n t h l e f t / r i g h t k e c o n t r o l sm o v e m e n t t t h r i g h t .

1 R E L A N D E R2 S H I P S = 3 : P T S = 0 : P O K E 5 4 2 9 6 , 1 53 P R I N T " S T A R T I N G L E V E L ( 1 - 5 ) ? " 4 G E A $ : I F A $ < " 1 " O A $ > " 5 " T H E N 4 5 P R I N T A 6 L E V E L = A S C ( A $ ) - 4 87 0 F O R T R I P = 4 0 T 8 S T E P 1 8 G O S U B 7 0 9 C O L = 2 0 : D = 0 : G O S U B 5 0 1 0 F O Q = T T R I P1 1 G O S U B 3 0 0 : G O S U B 8 0 1 2 D = 1 3 A = P E E K ( 1 9 7 ) : I F A < > 2 A N D A < > 7 T H E N 1 6 1 4 D = 2 : I F A = T H E N D = - 21 5 I C 0 L + D < 3 O C 0 L + D > 3 6 T H E N D = 1 6 S = 0 : G O S U B 5 0 0 : I F S < T H E N 2 0 1 7 I Q > 1 0 T H E N P T S = P T S + L E V E L1 8 N E X T1 9 G O T O 2 3 2 0 G O S U B 1 0 0 02 1 S H I P S = S H I P S - 1 : I F S H I P S = 0 T H E N 2 7 2 2 G O T O 8 2 3 P T S = P T S + 2 0 * L E V E L : G O S U B 8 0 2 4 G O S U B 9 0 0 : N E X T T R I P

Page 51: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 51/244

L A N D E R 4 2 5 I L E V E L < 5 T H E N L E V E L = L E V E L + 12 6 S H I P S = S H I P S + 1 : G O T O 7 2 7 P R I N T " □ " : 6 0 S U B 8 0 0 : P O K E 2 1 4 , 1 12 8 P R I N T : P R I N T T A B C 1 5 ) ; " n G A M E O V E R "2 9 0 P O K E 5 4 2 9 6 , O : P O K E 1 9 8 , 0 : E N D3 0 0 R E M D R A W M E T E O R S3 1 P O K E 2 1 4 , 2 3 : P R I N T3 2 I Q > T R I P - 1 1 T H E N 4 1 3 3 P R I N T " 3 4 F O 1 = T O 3 83 5 I I N T ( R N D ( 0 ) * ( 8 5 - L E V E L * 1 5 ) ) T H E N 3 8 03 6 0 P R I N T " ■ " 3 7 0 G O T O 3 9 3 8 P R I N T " 3 9 N E X T4 0 G O T O 4 7 04 1 P R I N T P " 4 2 F O 1 = T 3 1 0 : N E X T4 3 I Q = T R I P - 1 0 T H E N 4 6 4 4 F O 1 = T 3 8 : P R I N T " ; : N E X T4 5 0 G O T O 4 7 04 6 F O 1 = T 1 9 : P R I N T " E [ 3 " ; : N E X T4 7 P R I N T4 8 R E T U R N5 0 R E N D R A W S H I P , D E T E C T C O L L I S I O N5 1 P O K E 2 1 4 , 9 : P R I N T " H 5 2 P R I N T T A B ( C O L ) ; "5 3 P R I N T T A B ( C 0 L - 2 ) ; " " 5 4 C O L = C O L + D5 5 0 P O K E 2 1 1 , C 0 L : P R I N T " H 5 6 S $ = " S S " : P R I N T T A B ( C O L - 2 ) ; " H " ;5 7 F O 1 = T 5 8 I P E E K ( 1 5 0 1 + C O L + I ) = 3 2 T H E N 6 0 05 9 S = - 1 : P R I N T M I I " ; : G O T O 6 1 6 0 P R I N T M I D $ ( S $ , I , 1 ) ;6 1 N E X T6 2 P R I N T " ■ 6 3 0 R E T U R N7 0 0 R E M P R I N T L E V E L , T R I P , E T C .

Page 52: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 52/244

Page 53: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 53/244

L A N D E R 5 I n d i c a t e s t h e d i r e c t i o n i w h i c h t h s h i p i b e i n g m o v e d .I c a t a k e o t h v a l u e s 2 0 o 2 d i r e c t i o n o i n d i c a t e s t h a t t h s h i p i m o v i n g t t h l e f t , m e a n s t h a ti i r e m a i n i n g i t h s a m e p o s i t i o n , a n m e a n s t h a t i i m o v i n g t t h r i g h t . T h r e a s o n f o u s i n g u n i t o r a t h e r t h a n i t h a t t h s h i p m o v e s o n l y i u n i t s o 2

l o o p i n d e x i n d i c a t i n g t h d i s t a n c e o t h n u m b e r o r o w st h a t t h s h i p h a p a s s e d .T h i s v a r i a b l e i s e t - w h e n a n p a r t o t h s p a c e s h i ph i t s a m e t e o r .

L I N E S O S P E C I A L I N T E R E S T1 0 T h P O K E i t h i s l i n e t u r n s o t h s o u n d c h i p .1 3 0 : H e r e w u s n e w P E E K . L o c a t i o n 1 9 t u r n s o u t b v e r y

u s e f u l . I i n d i c a t e s w h i c h k e y o t h k e y b o a r d i c u r r e n t l y b e i n gp r e s s e d . I d i f f e r s f r o m t h G E s t a t e m e n t i m a n y w a y s . R a t h e rt h a n r e f e r r i n g t t h k e y b o a r d b u f f e r , l o c a t i o n 1 9 r e f l e c t s w h i c hk e i b e i n g a c t u a t e d a t h i n s t a n t t h a t t h P E E K f u n c t i o n i b e i n gp e r f o r m e d . A l s o , a l o n g a s t h e k e i d e p r e s s e d , i t c o r r e s p o n d i n gn u m b e r i r e g i s t e r e d i l o c a t i o n 1 9 7 . T h e r e f o r e , i i n o n e c e s s a r yt k e e p r e l e a s i n g a n p r e s s i n g t h k e t h a v e i r e g i s t e r m o r e t h a no n t i m e . F i n a l l y , t h c o n t e n t s o l o c a t i o n 1 9 r e f l e c t t h p h y s i c a lk e t h a t i b e i n g p r e s s e d a n n o t h c h a r a c t e r ; t h a t i t s a y , i S H I F T k e i u s e d , i h a n e f f e c t o t h n u m b e r i l o c a t i o n 1 9 7 .T a b l e 2 o t h f o l l o w i n g p a g e , i n d i c a t e s w h i c h k e y s w i l l c a u s ev a l u e s t a p p e a r i l o c a t i o n 1 9 7 .

1 5 0 : T h i s l i n e k e e p s t h s h i p f r o m g o i n g o f t h e d g e o t h e s c r e e n .N o t i c e t h a t s i n c e t h e s h i p m o v e s i s t e p s o 2 i c a a c t u a l l y g t t h l e f t n f a r t h e r t h a n c o l u m n 4 N o t i c e a l s o t h a t n m e t e o r sa r p r o d u c e d i c o l u m n s o 3 9 a n d n p a r t o t h s h i p c a e n t e rt h e s e c o l u m n s e i t h e r .

1 7 0 : T h i s l i n e a s s u r e s t h a t t h p l a y e r b e g i n s s c o r i n g p o i n t s o n l y w h e nh r e a c h e s t h f i r s t r o o m e t e o r s . N o t e t h a t t h n u m b e r o p o i n t ss c o r e d i s i m p l y t h l e v e l n u m b e r .

2 3 0 : T h i s l i n e c a l c u l a t e s t h b o n u s f o s u c c e s s f u l l a n d i n g .2 5 0 - 2 6 0 : O n c e t h l e v e l r e a c h e s ( g o o d l u c k ! ) i i n o i n c r e m e n t e d

f u r t h e r , b u i i s t i l l n e c e s s a r y t g t h r o u g h t r i p s b e f o r e s c o r i n ga e x t r a s h i p .

2 7 0 - 2 8 0 : T h i s i a n o t h e r n e P O K E . L o c a t i o n 2 1 i u s e d t o r ep o s i t i o n t h c u r s o r t n e r o w . U n l i k e t h e r e p o s i t i o n i n g m e t h o d

Page 54: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 54/244

5 Z A P P E R S F O T H C O M M O D O R E 6

T A B L E

K e ( R E T U R N )( C R S R u p / d o w n )( C L R / H O M E )( I N S T / D E L )( C R S R l e f t / r i g h t )( s p a c e b a r )

P E E K ( 1 9 7 )

5

6 4 4 4 4 4 5 3 5 5

1 1 1 2 2 3 4 5 5 4 1 2 2 1

K e

( R U N / S T O P )( F 1 / F 2 )( F 3 / F 4 )( F 5 / F 6 )( F 7 / F 8 )

P E E K ( 1 9 7 )1 2 2 2 3 3 3 4 3 3 3 4 6 1 1 2 3 3

2 2 1 4 5 5 6

I n k e i p r e s s e d , P E E K ( 1 9 7 ) r e t u r n s 6

Page 55: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 55/244

L A N D E R 5 u s i n g l o c a t i o n s 2 0 a n 2 1 0 , t h c u r s o r d o e s n o r e t u r n t i t o r i g i n a lp o s i t i o n a f t e r p r i n t i n g . H o w e v e r , t h e r e i o n d i s a d v a n t a g e t t h i sP O K E . O n P R I N T m u s t b e x e c u t e d a f t e r t h P O K E b e f o r e t h c u r s o r i a c t u a l l y p o s i t i o n e d t t h n e l i n e . U n f o r t u n a t e l y , t h r e s u l t i t h a t y o u w i n d u p l i n e l o w e r t h a n t h i n t e n d e d l i n e . T h P O K E i l i n e 2 7 m e r e l y r e p o s i t i o n s t h e c u r s o r t r o 1 a f t e r t h f i r s t P R I N T s t a t e m e n t a t h b e g i n n i n g o l i n e 2 8 i e x e c u t e d .

2 9 0 : T u r n o f f t h e s o u n d c h i p a n c l e a r o u t h k e y b o a r d b u f f e r .

S u b r o u t i n e3 0 0 - 4 8 0 : T h i s s u b r o u t i n e d r a w s n e r o o f m e t e o r s a t h b o t t o m

o t h e s c r e e n . H e r e w t a k e a d v a n t a g e o f t h a u t o m a t i c s c r o l l i n gt h a t o c c u r s w h e n i n f o r m a t i o n i d i s p l a y e d a t h b o t t o m o t h s c r e e n . W h e n t h n e r o o f m e t e o r s i d r a w n , t h o l m e t e o r sa r a u t o m a t i c a l l y m o v e d u o n r o w . O c o u r s e , t h e s p a c e s h i p a l s om o v e s u o n r o w , b u t h i s i t a k e n c a r e o i t h s u b r o u t i n e i l i n e 5 0 0 . T h i s s u b r o u t i n e a l s o d r a w s t h s u r f a c e o t h p l a n e t w h e ni i t i m e f o i t a p p r o a c h .

3 1 0 : T h c u r s o r i r e p o s i t i o n e d t o l i n e 2 4 3 2 0 : A t h t r i p n e a r s i t e n d , i n s t e a d o p r i n t i n g m e t e o r s t h p r g r a m p r i n t s p a r t o t h s u r f a c e o t h p l a n e t .3 3 0 : T h i s s k i p s o v e r c o l u m n 0 w h i c h i n o u s e d .3 4 0 - 3 9 0 : P r i n t m e t e o r s . I t h I N f u n c t i o n i l i n e 3 5 r e t u r n s

n o n z e r o v a l u e , c o n t r o l p a s s e s t o l i n e 3 8 0 , w h e r e a s p a c e i p r i n t e d .I t h r e s u l t i n g v a l u e i 0 m e t e o r i p r i n t e d . N o t i c e f r o m l i n e 3 5 t h a t t h l o w e r t h l e v e l , t h e g r e a t e r t h p r o b a b i l i t y o r a n d o m l ys e l e c t i n g n o n z e r o n u m b e r a n t h e r e f o r e t h e s m a l l e r t h e p r o b a b i l i t yo p r i n t i n g a m e t e o r .

4 1 0 : T h p l a n e t i p r i n t e d i r e v e r s e g r a p h i c s . ( N o t i c e t h a t c o l u m ni a g a i n s k i p p e d o v e r . )4 2 0 : B e c a u s e l e s s c a l c u l a t i o n i i n v o l v e d , t h t i m e t a k e n t o p r i n t

t h p l a n e t i s h o r t e r t h a n t h t i m e t a k e n t o p r i n t m e t e o r s . T h i s d e l a yl o o p l e n g t h e n s t h t i m e t a k e n t o p r i n t t h p l a n e t , t h e r e b y m a i n t a i n i n gt h s p e e d o f t h g a m e .

4 3 0 : T h f i r s t r o o t h p l a n e t ' s s u r f a c e i p o i n t y a n i t h e r e f o r ep r i n t e d s e p a r a t e l y a l i n e 4 6 0 .

4 6 0 : T h g r a p h i c s c h a r a c t e r s u s e d h e r e a r s h i f t e d p o u n d s i g n a n s h i f t e d a s t e r i s k .

S u b r o u t i n e5 0 0 - 6 3 0 : D r a w s t h e s h i p a n c h e c k s f o c o l l i s i o n s w i t h m e t e o r s .

R e c a l l t h a t e a c h t i m e a r o o f m e t e o r s i d r a w n , t h e s h i p m u s t b r e d r a w n .

Page 56: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 56/244

5 Z A P P E R S F O R T H C O M M O D O R E 6 5 2 0 - 5 3 0 : E r a s e t h o l s h i p . L i n e 5 3 p r i n t s f i v e s p a c e s ; i e n d s

i s e m i c o l o n b e c a u s e t h t o o t h n e s h i p g o e s o t h l i n ep r e v i o u s l y o c c u p i e d b t h b o t t o m o t h o l s h i p .

5 5 0 : A n o t h e r n e P O K E ; l o c a t i o n 2 1 c o n t r o l s t h e c o l u m n o t h c u r s o r . I t m a i n a d v a n t a g e i t h a t y o c a u s i t a c c o m p l i s hb a c k w a r d t a b b i n g , w h i c h i i l l e g a l i B A S I C . N o t e a l s o t h a t t h g r a p h i c s c h a r a c t e r i t h l i t e r a l i C o m m o d o r e k e y - I .

5 6 0 : T h p a t t e r n f o t h b o t t o m o t h s h i p i p l a c e d i v a r i a b l eS $ O n l y t h o s e c h a r a c t e r s w h i c h w i l l n o c o i n c i d e w i t h a m e t e o rw i l l b p r i n t e d . N o t e t h a t t h g r a p h i c s c h a r a c t e r s i t h f i r s t l i t e r a la r C o m m o d o r e k e y - p l u s .

5 7 0 - 6 1 0 : T h b o t t o m o t h e s h i p i t h o n l y p a r t t h a t c a s t r i k em e t e o r . T h e r e f o r e , b e f o r e p r i n t i n g a n p a r t o t h b o t t o m , t h p r g r a m m u s t c h e c k t s e i t h a t s p a c e i o c c u p i e d b m e t e o r . L i n e5 8 p e e k s i n t o t h a p p r o p r i a t e l o c a t i o n o s c r e e n m e m o r y ( u s i n gf o r m u l a b a s e d o t h 1 0 2 4 + r o w 4 + c o l u m n p r i n c i p l e ) t o s e i t h e r e i a s p a c e ( s c r e e n d i s p l a y c o d e 3 2 t h e r e . I s o l i n e 6 0 p r i n t st h a p p r o p r i a t e c h a r a c t e r f r o m S $ I n o t , l i n e 5 9 s e t s t - ( i n d i c a t i n g c o l l i s i o n ) a n t a b s f o r w a r d o n s p a c e t l e t h m e t e o rs h o w t h r o u g h .

6 2 0 : S e t s t h c h a r a c t e r c o l o r t b l a c k i p r e p a r a t i o n f o r t h e p r i n t i n go m e t e o r s .

S u b r o u t i n e7 0 0 - 7 9 0 : P r i n t s t h e p l a y e r ' s s t a t u s a t h b e g i n n i n g o f e a c h t r i p .

7 4 0 - 7 6 0 : F o e a c h s h i p t h p l a y e r h a l e f t , p r i n t m i n i a t u r e s p a c es h i p s y m b o l . N o t e t h a t t h g r a p h i c s c h a r a c t e r s i l i n e 7 5 a r C o m o d o r e k e y - I a n C o m m o d o r e k e y - p o u n d s i g n .

7 7 0 : T h i s d e l a y l o o p k e e p s t h i n f o r m a t i o n o t h s c r e e n f o w h i l e .

S u b r o u t i n e8 0 0 - 8 2 0 : T h i s v e r y s i m p l e s u b r o u t i n e p r i n t s t h e p l a y e r ' s s c o r e . T h i s

m u s t b e d o n e e a c h t i m e r o o f m e t e o r s i p r i n t e d , b e c a u s e o t e r w i s e t h e s c o r e w o u l d b s c r o l l e d o f f t h e t o o t h s c r e e n . N o t i c et h a t t h l i t e r a l i t h P R I N T s t a t e m e n t i n l i n e 8 1 p o s i t i o n s t h ec u r s o r a t h e t o p o t h s c r e e n a n c h a n g e s t h e c h a r a c t e r c o l o r t c y a n .

S u b r o u t i n e9 0 0 - 9 9 0 : P l a y s a c o u p l e o f m u s i c a l n o t e s w h e n t h s p a c e s h i p s u

c e s s f u l l y l a n d s . L i n e s 9 1 a n 9 5 p l a y t h n o t e s a n F r s p e c t i v e l y . r e c t a n g u l a r w a v e f o r m w h i c h h a s a r a t h e r l o n g d u r a t i o ni u s e d .

Page 57: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 57/244

L A N D E R 5 S u b r o u t i n e1 0 0 0 - 1 0 7 0 : P r o d u c e s c r a s h i n g n o i s e w h e n t h s p a c e s h i p h i t s

m e t e o r . T h i s a l s o h a r a t h e r l o n g d u r a t i o n .

S U G G E S T E D E N H A N C E M E N T S1 Y o u m a y w a n t t c h a n g e t h m e t h o d o s c o r i n g . F o e x a m p l e , y o

m a d e c i d e t c r e a t e g r e a t e r d i f f e r e n c e b e t w e e n t h e s c o r e s o t h l o w e r l e v e l s a n t h o s e o t h h i g h e r l e v e l s .

2 O n c e y o h a v e b e g u n t m a s t e r t h g a m e , y o u m i g h t w a n t t a l l o wf o l o n g e r t r i p s .

3 Y o u m a y d e c i d e t p l a c e t h b e g i n n i n g p o s i t i o n o t h s p a c e s h i pc l o s e r t t h b o t t o m o t h e s c r e e n . T h a t w o u l d m e a n t h a t i r e a c h e st h m e t e o r s o o n e r a n e v a s i v e a c t i o n w o u l d h a v e t b t a k e n e a r l i e r .B s u r e t m o d i f y l i n e s 1 7 0 , 3 2 0 , 4 3 0 , a n 5 1 0 .

4 T h g a m e m a b r e w r i t t e n t a l l o w f o t w p l a y e r s t c o m p e t e .Y o u m a y w a n t t g i v e e a c h p l a y e r d i f f e r e n t c o l o r s p a c e s h i p a n p r i n t b o t h s c o r e s s i m u l t a n e o u s l y o t h s c r e e n .5 Y o m i g h t w a n t t a r r a n g e f o r t h e m e t e o r s t b p r i n t e d i r a n d o mc o l o r s . S e t h p r o g r a m " P h o n e - y W o r d s " f o m e t h o d o r a n d o m l yc h a n g i n g c h a r a c t e r c o l o r .

Page 58: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 58/244

C H A P T E R

M A G I C S Q U A R E S

M a g i c s q u a r e s h a v e b e e n s o u r c e o d e l i g h t f o g o o d m a n yc e n t u r i e s . I i r e c o r d e d t h a t w e l l - k n o w n G e r m a n a r t i s t , A l b r e c h tD i i r e r , i n c l u d e d m a g i c s q u a r e i h i f a m o u s e n g r a v i n g c a l l e d" M e l e n c o l i a . " H u s e d 4 x s q u a r e a s h o w n :

1

1

1

1

1

1

1

I y o e x a m i n e t h i s m a g i c s q u a r e c a r e f u l l y , y o w i l l n o t i c e t h a tn o t o n l y a r c o n s e c u t i v e n u m b e r s f r o m t 1 u s e d , b u a l s oe a c h o i t r o w s , c o l u m n s , a n d i a g o n a l s a d d s u t t h s a m en u m b e r , 3 4

T h r o u g h t h e y e a r s p e o p l e h a v e g o n e t c o n s i d e r a b l e e f f o r t s t d i s c o v e r m a g i c s q u a r e s . A n m a g i c s q u a r e c a a l w a y s b r o t a t e dt g i v e o t h e r m a g i c s q u a r e s . W h a t t h i s p r o g r a m d o e s i t a l l o wt h p l a y e r t i n p u t a n o d n u m b e r b e t w e e n a n 9 T h s i z ei l i m i t e d t b e c a u s e o t h l i m i t e d s p a c e o t h e s c r e e n . T h r e a s o n t h a t o n l y o d n u m b e r s a r u s e d i t h a t i a l l o w s f o r a t h e r

5

Page 59: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 59/244

M A G I C S Q U A R E S 5 s i m p l e f o r m u l a t g e n e r a t e m a g i c s q u a r e s w h e r e a s g e n e r a t i n gt h e m f o e v e n d i m e n s i o n s i m u c h m o r e c o m p l i c a t e d .

O n c e t h o d d i m e n s i o n h a b e e n t y p e d i i i v a l i d a t e d a n d ,i i i f o u n d t b w i t h i n t h p e r m i t t e d r a n g e , g r i d o a p p r o p r i a t es i z e i d r a w n o t h s c r e e n . T h c o m p u t e r t h e n f i l l s i t h b o x e so t h g r i d w i t h t h n u m b e r s t h r o u g h N 2 w h e r e i t h o d d -n u m b e r e d d i m e n s i o n o t h m a g i c s q u a r e . A t h c o n s e c u t i v en u m b e r s a r p l a c e d i n t o t h e i r r e s p e c t i v e l o c a t i o n s i t h s q u a r e ,v a r i o u s t o n e s a r p r o d u c e d .

T h m e t h o d f o p l a c i n g t h n u m b e r s i t h e g r i d i a f o l l o w s :S t a r t i n g i t h e c e n t e r c o l u m n o t h t o r o w , t h n u m b e r i p l a c e d . T h c o n s e c u t i v e n u m b e r s a r t h e n p l a c e d m o v i n g u p o n r o a n t t h r i g h t o n c o l u m n , b e f o r e p l a c i n g e a c h s u b s e q u e n tn u m b e r . O c o u r s e , t h e d g e s o t h e g r i d a r e s o m e t i m e s g o i n gt b e n c o u n t e r e d w h i l e t h i s p r o c e s s t a k e s p l a c e . T a l l o w f o t h i s , t h p r o g r a m " w r a p s a r o u n d " ; t h a t i t o s a y , a f t e r p l a c i n gn u m b e r i t h t o p m o s t r o i t h e n p l a c e s t h n e x t n u m b e r i t h b o t t o m r o a n d w o r k s i t w a u a g a i n . S i m i l a r l y , w h e n t h r i g h t m o s t c o l u m n i r e a c h e d , t h p r o g r a m g o e s i m m e d i a t e l y b a c kt t h l e f t c o l u m n a n c o n t i n u e s m o v i n g t t h r i g h t .

A n o t h e r p r o b l e m t h p r o g r a m w i l l e n c o u n t e r i r e a c h i n g s p a c et h a t h a a l r e a d y b e e n f i l l e d . I t h i s c a s e , i n s t e a d o f i l l i n g t h b o a b o v e a n t t h r i g h t o t h p r e v i o u s b o x , t h p r o g r a m f i l l st h b o d i r e c t l y b e l o w t h p r e v i o u s o n i t h s a m e c o l u m n .O n c e t h m a g i c s q u a r e i c o m p l e t e d , t h u s e r i a s k e d i a n o t h e ro n i r e q u i r e d .

1 R E M A G I C S Q U A R E S2 P O K E 5 3 2 8 1 , 73 P R I N T " ■ 4 P R I N T : P R I N T " I N P U T A O D I N T E G E R 3 - 9 . "5 I N P U T " W H A T S I Z E , P L E A S E M ; N6 I N O I N T ( N ) O N = I N T ( N / 2 ) * 2 T H E N 4 7 I N < 3 O R N > T H E N 4 8 G O S U B 3 0 09 R 0 W = 1 : C 0 L = ( N - 3 ) / 21 0 F O 1 = T 1 1 R O W = R O W - 1 : I F R O W < 0 T H E N R O W = N - 1

Page 60: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 60/244

5 Z A P P E R S F O R T H C O M M O D O R E 6 1 2 C 0 L = C 0 L + 1 : I F C 0 L = N T H E N C O L = 01 3 I P E E K ( C R N E R + R O W * 8 0 + C O L * 3 + 1 ) = 3 2 T H E N 1 6 1 4 R 0 W = R 0 W + 2 : I F R O W > = N T H E N R 0 W = R 0 W - N1 5 C 0 L = C 0 L - 1 : I F C O L < 0 T H E N C O L = N - 11 6 G O S U B 5 0 1 7 N E X T1 8 P R I N T : P R I N T : P R I N T " ^ A N O T H E R ( O N > " 1 9 0 G E T A $ : I F A $ = " M T H E N 1 9 2 0 I A $ O " Y M A N A $ O " N " T H E N 1 9 2 1 P R I N T A $ : P R I N T2 2 I A $ = " Y " T H E N 4 2 3 P O K E 5 3 2 8 1 , 6 : P R I N T " Q D F I N I S H E D "2 4 E N 3 0 R E P R I N T G R I D3 1 R i = 1 2 - N : C 1 = ( 3 9 - 3 * N ) / 23 2 C R N E R = 1 O 6 5 + 4 O * R 1 + C 1 : P R I N T " D D "3 3 F O J = T R 1 : P R I N T : N E X T3 4 0 P R I N T T A ( C D ; " H U B " ;3 5 F O J = T N i P R I N T " B B B " ; : N E X T3 6 0 P R I N T " E ] " : P R I N T T A B ( C 1 ) ;3 7 F O J = T N : P R I N T " E " ; : N E X T3 8 P R I N T " ( H "3 9 F O K = 2 T O4 0 P R I N T T A B ( C 1 ) ; " [ B B B " ;4 1 F O J = T N r P R I N T " E B B B " ; : N E X T4 2 P R I N T " E l " : P R I N T T A B ( C 1 ) ;4 3 F O J = T N : P R I N T " M ; : N E X T4 4 P R I N T " I D "4 5 N E X T4 6 P R I N T T A B ( C 1 ) ; " H B B " ;4 7 F O J = 2 T O N : P R I N T " B B B " ; : N E X T4 8 P R I N T " E l "4 9 R E T U R N5 0 0 R E M P U T N U M B E R I G R I D5 1 B = C R N E R + R O W * 8 0 + C O L * 35 2 D 1 = I N T ( I / 1 O ) : D 2 = I - D 1 * 1 O5 3 D i = D i + 4 8 : D 2 = D 2 + 4 85 4 I D 1 = 4 8 T H E N D 1 = 3 25 5 P O K E B , D 1 : P 0 K E B + 1 , D 2

Page 61: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 61/244

M A G I C S Q U A R E S 5 5 6 P O K E B + 5 4 2 7 2 , 0 : P O K E B + 5 4 2 7 3 , 05 7 G O S U B 6 0 5 8 R E T U R N6 0 R E T O N E6 1 P O K E 5 4 2 7 2 , ( B * 1 0 ) A N 2 5 6 2 P O K E 5 4 2 7 3 , I N T ( B * 1 0 / 2 5 6 )6 3 0 P O K E 5 4 2 7 7 , 3 46 4 P O K E 5 4 2 7 8 , 3 46 5 P O K E 5 4 2 9 6 , 1 56 6 P O K E 5 4 2 7 6 , 3 36 7 F O J = T 1 0 : N E X T6 8 P O K E 5 4 2 7 6 , 0 : P O K E 5 4 2 9 6 , 06 9 R E T U R N

G L O S S A R Y O V A R I A B L E ST h o d d i m e n s i o n o t h s q u a r e .

R O T h r o o t h e g r i d c u r r e n t l y b e i n g f i l l e d ( n u m b e r e dt h r o u g h N - l ) .

C O T h c o l u m n o t h e g r i d c u r r e n t l y b e i n g f i l l e d , a l s o n u b e r e d t h r o u g h - 1 T h i s i F O R / N E X T l o o p i n d e x w h o s e v a l u e s g f r o mt N 2 I r e p r e s e n t s t h e n u m b e r t h a t i c u r r e n t l y b e i n gp l a c e d i t h g r i d .

C R N E R T h i s v a r i a b l e m a r k s t h e l o c a t i o n o t h u p p e r l e f t h a n dc o r n e r o t h g r i d i s c r e e n m e m o r y . S p e c i f i c a l l y , i i t h a d d r e s s t b o c c u p i e d b t h 1 0 d i g i t o t h n u m b e r i t h u p p e r l e f t h a n d b o x . I t v a l u e i c a l c u l a t e d b t h s u r o u t i n e i n l i n e 3 0 0 . A y o m a w e l l h a v e g u e s s e d , t h r e a s o n t h i s v a r i a b l e i s n ' t n a m e d C O R N E R i t h a t t h i s c o t a i n s t h C o m m o d o r e B A S I C k e y w o r d O R G e n e r a t e d i t h s u b r o u t i n e i n l i n e 5 0 0 , t h i s v a r i a b l e p o i n t st t h e l o c a t i o n i s c r e e n m e m o r y o t h b o c u r r e n t l y b e i n gf i l l e d .

D T h 1 0 d i g i t o t h n u m b e r c u r r e n t l y b e i n g p l a c e d i t h g r i d .

D T h I d i g i t o t h n u m b e r c u r r e n t l y b e i n g p l a c e d i t h g r i d .

Page 62: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 62/244

6 Z A P P E R S F O R T H C O M M O D O R E 6

L I N E S O S P E C I A L I N T E R E S T2 0 C h a n g e s t h s c r e e n c o l o r t y e l l o w .9 0 W s e R O a n C O t p o i n t t t h b o b e l o w a n t t h l e f t

o t h o n w i n i t i a l l y w a n t t f i l l . T h a t i b e c a u s e R O w i l l b d e c r e m e n t e d a n d C O i n c r e m e n t e d b e f o r e t h e y a r u s e d .

1 1 0 - 1 2 0 : T h v a l u e s o R O a n C O a r c h a n g e d t p o i n t t t h n e x t s p a c e t b f i l l e d . I n e c e s s a r y , w r a p a r o u n d i p e r f o r m e d .

1 3 0 : C h e c k s t s e i t h i s s p a c e i b l a n k ( s c r e e n d i s p l a y c o d e o 3 2 ) .I n c a l c u l a t i n g t h s c r e e n m e m o r y a d d r e s s , R O i m u l t i p l i e d b 8 r a t h e r t h a n 4 b e c a u s e r o w s i t h e g r i d a r e a c t u a l l y t w s c r e e nr o w s a p a r t . C O i m u l t i p l i e d b b e c a u s e g r i d c o l u m n s a r a t u a l l y t h r e e s c r e e n c o l u m n s a p a r t . T h e n u m b e r a l s o i a d d e db e c a u s e t h p r o g r a m i c h e c k i n g t h I c o l u m n o t h n u m b e r( r e m e m b e r t h a t C R N E R p o i n t s t t h 1 0 d i g i t ) .

1 4 0 - 1 5 0 : I t h e v e n t t h a t t h b o i a l r e a d y f i l l e d , t h v a l u e s o R O a n C O a r a d j u s t e d t p o i n t i n s t e a d t t h b o x b e l o w t h l a s t f i l l e d b o x .

2 3 0 : S c r e e n c o l o r i c h a n g e d b a c k t d a r k b l u e ; c h a r a c t e r c o l o r i c h a n g e d b a c k t l i g h t b l u e .

S u b r o u t i n e3 0 0 - 4 9 0 : P r i n t s g r i d o a p p r o p r i a t e s i z e o t h s c r e e n ; a l s o c a

c u l a t e s a v a l u e f o C R N E R .3 1 0 : R i t h r o a w h i c h t h t o l i n e o t h e g r i d i d r a w n . C

i t h c o l u m n a w h i c h t h e l e f t m o s t l i n e o t h g r i d i d r a w n .3 2 0 : I c a l c u l a t i n g t h e v a l u e f o C R N E R w u s 1 0 6 5 i n s t e a d o

1 0 2 4 , a a d d i t i o n o 4 1 b e c a u s e t h e l o c a t i o n i n d i c a t e d b C R N E Ri o n r o b e l o w a n o n c o l u m n t t h r i g h t o t h c o r n e r o t h g r i d i t s e l f .

3 3 0 : T h i s l o o p s p a c e s d o w n t t h a p p r o p r i a t e r o w . I s t a r t s a i n s t e a d o t i n d i c a t e t h a t t h P R I N T a l i n e 3 2 h a a l r e a d ys p a c e d d o w n o n r o w .

3 4 0 : T h g r a p h i c s c h a r a c t e r s u s e d h e r e a r C o m m o d o r e k e y - A a n s h i f t - C ( o r s h i f t - a s t e r i s k ) .

3 5 0 : W c o u l d j u s t a w e l l h a v e s a i d " t N - 1 , " b u s i n c e t h ea c t u a l v a l u e o d o e s n o m a t t e r , t h i s m e t h o d s a v e s u s o n s u t r a c t i o n o p e r a t i o n . A l t h o u g h s u c h e f f i c i e n c y i r e a l l y n o n e c e s s a r yh e r e , i i g o o d t k e e p s u c h t r i c k s i n m i n d f o t h o s e o c c a s i o n s i w h i c h s p e e d i o t h e s s e n c e , s u c h a i a c t i o n g a m e s . N o t e t h a t

Page 63: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 63/244

M A G I C S Q U A R E S 6 t h g r a p h i c s c h a r a c t e r s u s e d a r C o m m o d o r e k e y - R a n s h i f t - C ( o rs h i f t - a s t e r i s k ) .

3 6 0 : T h g r a p h i c s c h a r a c t e r u s e d h e r e i C o m m o d o r e k e y - S .3 7 0 - 3 8 0 : T h g r a p h i c s c h a r a c t e r u s e d h e r e i s h i f t - B ( o s h i f t -m i n u s )

4 0 0 : T h g r a p h i c s c h a r a c t e r s u s e d h e r e a r C o m m o d o r e k e y - Q a n s h i f t - C ( o s h i f t - a s t e r i s k ) .

4 1 0 : T h g r a p h i c s c h a r a c t e r s u s e d i t h i s l i n e a r s h i f t - p l u s a n s h i f t - C ( o r s h i f t - a s t e r i s k ) .

4 2 0 : T h g r a p h i c s c h a r a c t e r u s e d h e r e i C o m m o d o r e k e y - W .4 3 0 - 4 4 0 : T h g r a p h i c s c h a r a c t e r u s e d h e r e i s o n c e a g a i n , s h i f t - B

( o s h i f t - m i n u s ) .4 6 0 : T h g r a p h i c s c h a r a c t e r s h e r e a r C o m m o d o r e k e y - Z a n s h i f t -

( o s h i f t - a s t e r i s k ) .4 7 0 : T h g r a p h i c s c h a r a c t e r s u s e d h e r e a r C o m m o d o r e k e y - E a n d

s h i f t - C ( o r s h i f t - a s t e r i s k ) .4 8 0 : T h g r a p h i c s c h a r a c t e r u s e d h e r e i C o m m o d o r e k e y - X .

S u b r o u t i n e5 0 0 - 5 8 0 : P l a c e s t h v a l u e o i t h b o o t h g r i d i n d i c a t e d b

R O a n C O L .5 1 0 : T h c a l c u l a t i o n h e r e i s i m i l a r t o t h a t i n l i n e 1 3 e x c e p t t h a t

i n o a d d e d b e c a u s e w w a n t t p o i n t t t h 1 0 p o s i t i o n .5 4 0 : I t h d i g i t i t h 1 0 p o s i t i o n i 0 i i r e p l a c e d b s p a c e

( b l a n k ) .5 5 0 - 5 6 0 : T h i s i t h f i r s t t i m e t h a t w a r p o k i n g t s c r e e n m e

o r y . W h e n t h i s i d o n e i i a l s o n e c e s s a r y t p o k e t c o l o r m e m o r y .T h l o c a t i o n s i c o l o r m e m o r y c o n t r o l t h e c o l o r o t h e c h a r a c t e r si e a c h l o c a t i o n o t h s c r e e n . T h e r e i t h e r e f o r e a o n e - t o - o n e c o rr e s p o n d e n c e b e t w e e n t h e l o c a t i o n s i c o l o r m e m o r y a n s c r e e nm e m o r y . C o l o r m e m o r y b e g i n s a l o c a t i o n 5 5 2 9 6 , w h i c h i 5 4 2 7 2b y t e s f r o m t h b e g i n n i n g o f s c r e e n m e m o r y . T h e r e f o r e , i w e k n o w

l o c a t i o n i s c r e e n m e m o r y , w c a f i n d t h e c o r r e s p o n d i n g l o c a t i o ni c o l o r m e m o r y b a d d i n g 5 4 2 7 2 t t h e a d d r e s s . T h v a l u e s p l a c e di c o l o r m e m o r y a r e t h e s a m e a t h o s e s t o r e d i l o c a t i o n 5 3 2 8 1 :t h r o u g h 1 5 I l i n e 5 6 w a r c o l o r i n g b o t h d i g i t s b l a c k . ( I t h 1 0 p o s i t i o n i o c c u p i e d b a b l a n k , i w i l l b t r a n s p a r e n t r e g a r d l e s so t h c o n t e n t s o c o l o r m e m o r y . )

S u b r o u t i n e6 0 0 - 6 9 0 : P r o d u c e s a t o n e f o e a c h n u m b e r i n s e r t e d i t h g r i d . N o t e

t h a t i n l i n e s 6 1 a n 6 2 t h a t t h f r e q u e n c y u s e d i 1 t i m e s t h v a l u e o B

Page 64: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 64/244

6 Z A P P E R S F O T H C O M M O D O R E 6

S U G G E S T E D E N H A N C E M E N T S1 W i t h l i t t l e c l e v e r p r o g r a m m i n g i i p o s s i b l e t o p r i n t t h r o w ,

c o l u m n , a n d i a g o n a l t o t a l s t c o n v i n c e t h u s e r t h a t t h e y a l a g r e ea n t h a t t h s q u a r e i i n d e e d m a g i c s q u a r e .

2 Y o u m a y b i n c l i n e d t d e l v e i n t o t h m y s t e r i e s o a e v e n - d i m e ns i o n e d m a g i c s q u a r e . W w a r n y o u , h o w e v e r , t h a t t h i s i n o t s oe a s y .

Page 65: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 65/244

C H A P T E R

P E N E T R A T E

T h t i m e h a a r r i v e d f o l i t t l e a c t i o n . I t h i s g a m e y o c o n t r o lm i g h t y c a n n o n t h a t s h o o t s f r o m t h l e f t s i d e o t h s c r e e n i n t o

a d e f e n s i v e g a t e t h a t o p e n s a i t m i d d l e a r a n d o m i n t e r v a l s . T h c a n n o n i d i r e c t e d a t h o p e n i n g a l t h t i m e a n y o u r t a s k i t f i r e t h c a n n o n a t h a p p r o p r i a t e t i m e s b h i t t i n g t h s p a c e b a r .T h o b j e c t o t h g a m e i t s o m e h o w m a n a g e t p e n e t r a t e t h eo p e n i n g o t h g a t e . A t h b e g i n n i n g o p l a y y o a r g i v e n 1 0 p o i n t s . E a c h t i m e t h c a n n o n b a l l m a k e s i t h r o u g h t h g a t e , y o a r a w a r d e d 1 p o i n t s . H o w e v e r , i t h e g a t e s c l o s e o y o u r c a n n o n -b a l l b e f o r e o d u r i n g p e n e t r a t i o n , y o l o s e 1 p o i n t s . A a l t i m e st h s c o r e i p o s t e d i t h u p p e r l e f t h a n d s i d e o t h s c r e e n . I a n w h e n t h s c o r e r e a c h e s 0 t h g a m e i a u t o m a t i c a l l y t e r m in a t e d .

1 R E P E N E T R A T E2 P O K E 5 3 2 8 1 , 7 : P 0 K E 5 4 2 9 6 , 1 53 G O S U B 3 0 4 P T S = 1 0 0 : P R I N T M H M : G 0 S U B 5 0 5 S W = 06 G E A

6

Page 66: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 66/244

6 Z A P P E R S F O T H C O M M O D O R E 6 7 I A $ = M T H E N 1 2 8 I T I M E < L I M T H E N 6 9 I S W = 0 T H E N 1 1 1 0 G O S U B 6 0 0 : S W = 0 : G O T O 6 1 1 G O S U B 7 0 0 : S W = 1 : G O T O 6 1 2 S P 0 T = 1 5 1 0 : P O K E S P O T , 8 1 : G O S U B 8 0 1 3 F O 1 = T 2 1 4 P O K E S P 0 T , 3 2 : S P 0 T = S P 0 T + 11 5 I 1 = T H E N P O K E 5 4 2 7 6 , 1 2 81 6 I P E E K ( S P 0 T ) < > 3 2 T H E N 2 6 1 7 P O K E S P 0 T , 8 1 : P 0 K E S P O T + 5 4 2 7 2 , 01 8 I T I M E < L I M T H E N 2 2 1 9 I S W = 0 T H E N 2 1 2 0 G O S U B 6 0 0 : S W = 0 : G O T O 2 2 2 1 G O S U B 7 0 0 : S W = 1 : I F I > 1 9 T H E N 2 6 2 2 N E X T2 3 P O K E S P O T , 3 22 4 P T S = P T S + 1 0 : G O S U B 5 0 2 5 G O T O 6 2 6 P T S = P T S - 1 0 : G O S U B 5 0 2 7 I P T S > 0 T H E N 6 2 8 0 P O K E 5 3 2 8 1 , 6 : P 0 K E 5 4 2 9 6 , 02 9 P R I N T " □ □ G A M E O V E R " : E N D3 0 R E M S E T U 3 1 0 P R I N T " Q 3 2 F O R 0 W = 8 T 1 3 3 F O C 0 L = 2 6 T 3 3 4 S P O T = 1 0 2 4 + R O W * 4 0 + C O L3 5 0 P O K E S P O T , 1 6 0 : P O K E S P O T + 5 4 2 7 2 , 03 6 0 N E X T C O 3 7 0 N E X T R O 3 8 F O 1 = 5 5 7 7 6 T 5 5 8 1 53 9 P O K E 1 , 4 0 N E X T4 1 F O 1 = 1 5 0 4 T 1 5 0 94 2 0 P O K E 1 , 1 6 04 3 N E X T4 4 G O S U B 6 0

Page 67: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 67/244

Page 68: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 68/244

6 Z A P P E R S F O R T H C O M M O D O R E 6

L I N E S O S P E C I A L I N T E R E S T4 0 G a m e s t a r t s o u a 1 0 p o i n t s .5 0 G a t e s a r i n i t i a l l y o p e n e d .6 0 - 8 0 : T h e s e l i n e s w a i t u n t i l t h s p a c e b a i p r e s s e d o u n t i l t h

t i m e i n d i c a t e d b L I i r e a c h e d , w h i c h e v e r c o m e s f i r s t .9 0 - 1 1 0 : T h t i m e i n d i c a t e d b L I w a r e a c h e d . E i t h e r o p e n o

c l o s e t h e g a t e s , a s a p p r o p r i a t e , a n c o n t i n u e w a i t i n g f o t h s p a c eb a t b p r e s s e d .

1 2 0 : T h s p a c e b a w a p r e s s e d a n t h c a n n o n b a l l i f i r e d . I t i sp l a c e d i i t s t a r t i n g l o c a t i o n i s c r e e n m e m o r y , a i n d i c a t e d b S P O T . N o t e t h a t 8 i t h s c r e e n d i s p l a y c o d e f o t h s o l i d c i r c l e .

1 3 0 - 2 2 0 : M o v e t h c a n n o n b a l l a c r o s s t h e s c r e e n . T h l o o p i n d e xi n d i c a t e s h o m a n y s p a c e s t h c a n n o n b a l l h a t r a v e l e d f r o m t h c a n n o n .

1 4 0 : R e m o v e t h c a n n o n b a l l f r o m t h c u r r e n t l o c a t i o n a n i n c r e m e n tS P O T t p o i n t t t h n e x t l o c a t i o n .

1 5 0 : A f t e r t h c a n n o n b a l l h a s m o v e d s p a c e s , t h e s h o o t i n g s o u n d i t e r m i n a t e d .

1 6 0 - 1 7 0 : I t h n e x t l o c a t i o n i v a c a n t , t h e c a n n o n b a l l i p l a c e d t h e r e .N o t i c e t h a t t h s e c o n d P O K E i n l i n e 1 7 c o l o r s i b l a c k .

1 9 0 - 2 1 0 : T h t i m e s p e c i f i e d b L I h a b e e n r e a c h e d . E i t h e r o p e no c l o s e t h e g a t e s . T h c o n d i t i o n a l t e s t i n l i n e 2 1 d e t e r m i n e sw h e t h e r t h g a t e s a r c l o s i n g o t h c a n n o n b a l l . I s o c o n t r o l p a s s e so t o l i n e 2 6 0 .

2 3 0 - 2 5 0 : T h g a t e s h a v e n o c l o s e d o t h c a n n o n b a l l . T h p l a y e rs c o r e s 1 p o i n t s a n c o n t r o l p a s s e s b a c k t o l i n e 6 t a g a i n w a i tf o r t h e s p a c e b a r t b p r e s s e d .

2 6 0 - 2 7 0 : T h c a n n o n b a l l h a s r u n i n t o c l o s e d g a t e o r t h e g a t e c l o s e du p o n i d u r i n g p e n e t r a t i o n . T h v a l u e o P T i d e c r e m e n t e d a n i t h s c o r e h a n o y e r e a c h e d 0 c o n t r o l g o e s b a c k t o l i n e 6 0

2 8 0 - 2 9 0 : T h s c o r e h a r e a c h e d s t h g a m e i t e r m i n a t e d .

S u b r o u t i n e3 0 0 - 4 5 0 : S e t s u t h s c r e e n i n i t i a l l y .

3 2 0 - 3 7 0 : T h l o o p i n d e x e s R O a n C O i n d i c a t e t h l o c a t i o n si s c r e e n m e m o r y t h a t t h g a t e i t o c c u p y . I l i n e 3 4 S P O T i u s e d t c a l c u l a t e t h a c t u a l m e m o r y l o c a t i o n . I l i n e 3 5 t h v a l u e

Page 69: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 69/244

P E N E T R A T E 6 1 6 i t h s c r e e n d i s p l a y c o d e f o s o l i d b o x . N o t e t h a t t h g a t ei i n i t i a l l y d r a w n c l o s e d .

3 8 0 - 4 0 0 : T h l o c a t i o n s i c o l o r m e m o r y c o r r e s p o n d i n g t t h p a t ht h a t t h c a n n o n b a l l t a k e s a r s e t i n d i c a t e b l a c k . T h i s i d o n ea h e a d o t i m e s t h a t w h e n t h c a n n o n b a l l i a c t u a l l y d r a w n , i i n o t n e c e s s a r y t p o k e i n t o c o l o r m e m o r y . N o t e t h a t b e f o r e t h c a n n o n b a l l i d r a w n , t h b l a c k c o l o r i n o s e e n b e c a u s e t h c o r e s p o n d i n g l o c a t i o n s i s c r e e n m e m o r y c o n t a i n b l a n k s .

4 1 0 - 4 3 0 : D r a w t h c a n n o n . S i n c e i l i e s i t h s a m e r o w a t h a ti w h i c h t h c a n n o n b a l l t r a v e l s , i i n o t n e c e s s a r y t p o k e i n t oc o l o r m e m o r y .

4 4 0 : O p e n t h g a t e s .

S u b r o u t i n e5 0 0 - 5 6 0 : D i s p l a y s t h p l a y e r ' s p o i n t s . I i a s s u m e d t h a t t h i s v a l u e

n e v e r g o e s a b o v e d i g i t s .5 2 0 - 5 4 0 : P r i n t l e a d i n g 0 s d e p e n d i n g u p o n t h n u m b e r o d i g i t s

t h a t t h v a l u e o P T o c c u p i e s .5 5 0 : T h i s u s e o t h M I D $ a n S T R $ f u n c t i o n s r e m o v e s t h b l a n k

s p a c e t h a t i n o r m a l l y p r i n t e d t t h l e f t o p o s i t i v e n u m b e r s .

S u b r o u t i n e6 0 0 - 6 5 0 : O p e n s t h g a t e s . T h s c r e e n m e m o r y l o c a t i o n s c o r r e s p o n d

i n t t h e g a t e o p e n i n g a r s e t b l a n k s . T h v a l u e o L I i c a l c u l a t e d s u c h t h a t t h g a t e s t a y s o p e n f o r a n d o m p e r i o d b e t w e e nh a l f s e c o n d a n t w s e c o n d s , i h a l f - s e c o n d i n c r e m e n t s .

S u b r o u t i n e7 0 0 - 7 5 0 : C l o s e s t h g a t e s . T h s c r e e n m e m o r y l o c a t i o n s c o r r e s p o n d

i n t t h g a t e o p e n i n g a r s e t o s o l i d b o x e s . T h v a l u e o L I i c a l c u l a t e d s u c h t h a t t h g a t e s t a y s c l o s e d f o b e t w e e n o n e a n df o u r s e c o n d s , i o n e - s e c o n d i n c r e m e n t s , t h e x a c t t i m e b e i n g r a d o m l y d e c i d e d .

S u b r o u t i n e8 0 0 - 8 4 0 : P r o d u c e s b a n g s o u n d u s i n g t h n o i s e g e n e r a t o r i t h

s o u n d c h i p . T h s o u n d i i n i t i a t e d h e r e b u t i t u r n e d o f i t h m a i np r o g r a m a l i n e 1 5 0 .

Page 70: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 70/244

6 Z A P P E R S F O R T H C O M M O D O R E 6

S U G G E S T E D E N H A N C E M E N T S1 T h e n u m b e r o p o i n t s a w a r d e d o d e d u c t e d m a b c h a n g e d t s u i t

t h p l a y e r .2 T h l e n g t h o f t i m e t h a t t h e g a t e s t a y s o p e n o r c l o s e d m a b e m o d i f i e d

f o m o r e ( o l e s s ) c h a l l e n g i n g g a m e .3 T h l e n g t h o t h g a t e m a b i n c r e a s e d o r d e c r e a s e d . s h o r t e r

g a t e i e a s i e r t p e n e t r a t e w h i l e a l o n g e r o n w o u l d i n c r e a s e t h ep o s s i b i l i t y o f a i l u r e . T h i s w o u l d i n v o l v e c h a n g e s n o o n l y i t h m a i n p r o g r a m b u a l s o i m a n y o t h e s u b r o u t i n e s .

Page 71: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 71/244

C H A P T E R

B A G E L S

T h i s i t a k e o f f o p o p u l a r g a m e t h a t h a b e e n a r o u n d f o g r e a t n u m b e r o y e a r s . I t h i s C o m m o d o r e 6 v e r s i o n t h c o p u t e r r a n d o m l y s e l e c t s t h r e e - d i g i t n u m b e r , w h e r e t h l e a d i n gd i g i t s a r p e r m i t t e d t b 0 T h p l a y e r h a t m a k e g u e s s a t h n u m b e r a n t h c o m p u t e r r e s p o n d s w i t h c l u e s a s t o h o c l o s eh i t t h r i g h t n u m b e r . T h e s e c l u e s t a k e t h f o r m o L O o B A G E L S . F o r e a c h d i g i t i t h e p l a y e r ' s g u e s s , t h m a c h i n e d i p l a y s t h w o r d L O o B A G E L S o r n o t h i n g a a l l . T h w o r dB A G E L S i d i s p l a y e d i t h d i g i t i q u e s t i o n i t h e c o r r e c t d i g i ti t h c o r r e c t p o s i t i o n o t h n u m b e r . I n o t h e r w o r d s , i B A G E L Si d i s p l a y e d t h r e e t i m e s , t h e n u m b e r h a b e e n c o r r e c t l y g u e s s e d .T h w o r d L O i d i s p l a y e d i d i g i t i t h g u e s s i o n t h a t i p r e s e n t i t h r a n d o m l y s e l e c t e d n u m b e r b u i i t h w r o n gp o s i t i o n . I t h d i g i t i t h g u e s s i a b s e n t f r o m t h e s e l e c t e dn u m b e r , n o t h i n g i d i s p l a y e d f o t h a t p a r t i c u l a r d i g i t . N o t e t h a tt h o r d e r i w h i c h t h w o r d s L O a n B A G E L S a p p e a r h a n b e a r i n g o t h d i g i t s t w h i c h t h e y r e f e r . F o e x a m p l e , i t h c o m p u t e r r e s p o n d s t g u e s s o f 1 2 3 w i t h t h m e s s a g e B A G E L SL O L O X , w e k n o w t h a t a l o t h d i g i t s a r p r e s e n t i t h c o m p u t e r ' s n u m b e r , a l t h o u g h w d n o k n o w w h e t h e r i i t h

o t h o t h t h a t i i t h e c o r r e c t p o s i t i o n . I n t h e c o m p u t e r ' sr e s p o n s e B A G E L S a l w a y s a p p e a r s b e f o r e L O X .

6

Page 72: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 72/244

Page 73: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 73/244

B A G E L S 7 W e n t e r : T h c o m p u t e r d i s p l a y s :6 1 B A G E L S B A G E L S

A t h i s p o i n t i w o u l d a p p e a r t h a t b o t h t h a n t h a r c o r r e c ta n i n t h e i r c o r r e c t l o c a t i o n s . W w i l l t h e r e f o r e r e p l a c e t h w i t h a n o t h e r n e d i g i t .

W e n t e r : T h c o m p u t e r d i s p l a y s :7 1 B A G E L S B A G E L S

T h i n o t h o n e . W t r a n o t h e r d i g i t .

W e n t e r : T h c o m p u t e r d i s p l a y s :8 1 B A G E L S B A G E L S

S f a r , n o t h i n g i n e w . H o w e v e r w h a v e t w m o r e d i g i t s — 9a n 0 — t o t r i t h f i r s t p o s i t i o n ; i t h e y d o n ' t w o r k , w c a t r p u t t i n g a n o t h e r o i t h f i r s t p o s i t i o n .

W e n t e r : T h c o m p u t e r d i s p l a y s :9 1 B A G E L S B A G E L S B A G E L S

Y O U ' V E E A R N E D Y O U R L U N C H ! ! !Y O T O O K T R I E S .

A y o c a s e e , w h e n t h r e e B A G E L S a r d i s p l a y e d , t h e c o m p u t e rn o o n l y g i v e s y o s m a r t - a l e c k r e m a r k b u t e l l s y o h o m a n yg u e s s e s i t o o k y o t a r r i v e a t h c o r r e c t a n s w e r . T h p r o g r a mw i l l t h e n a s y o w h e t h e r y o w a n t t c o n t i n u e , a n y o m a r e p l y b t y p i n g e i t h e r f o " y e s " o f o " n o " ( h i t t i n g R E T U R Ni n o n e c e s s a r y ) .

O n s i t u a t i o n t h a t w d i d n o t e n c o u n t e r i t h a b o v e i l l u s t r a t i o nw a t h c a s e w h e n t h c o m p u t e r r e s p o n d s w i t h n o w o r d s a a l l .T h i s w o u l d s i m p l y m e a n t h a t n o n e o t h e n t e r e d d i g i t s w a c o r r e c t a n t h a t t h n e x t t r s h o u l d n o i n c l u d e a n o f t h e m .

Page 74: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 74/244

7 Z A P P E R S F O R T H C O M M O D O R E 6 1 R E B A G E L S2 D I N $ ( 3 ) , G $ < 3 )3 F O 1 = T 4 N $ ( I ) = C H R $ ( I N T ( R N D ( 0 ) * 1 0 ) + 4 8 )5 N E X T6 P R I N T : P R I N T " A T H I N K I N G O 3 - D I G I T

N U M B E R "7 T = 8 T = T + 1 : I = 0 : P R I N T : P R I N T " " 9 P R I N T " ■ ■ " ;1 0 0 G E T A $ : I F A $ = m l T H E N 9 1 1 I A $ = C H R $ ( 1 3 ) T H E N 2 0 1 2 I A $ = " H " T H E N 1 7 1 3 I A $ < " 0 " O A $ > " 9 " T H E N 1 0 1 4 I 1 = T H E N 1 0 1 5 P R I N T A $ ; : I = I + 1 : G $ ( I ) = A $1 6 G O T O 9 1 7 I 1 = T H E N 1 0 1 8 1 = 1 - 1 : P R I N T I I I I " ;1 9 G O T O 9 2 0 I I < T H E N 1 0 2 1 P R I N T " 2 2 B = 2 3 F O 1 = T 2 4 I G $ ( I X > N $ ( I ) T H E N 2 7 2 5 P R I N T " B A G E L S " 2 6 B = B + 1 : G $ ( I ) = " M2 7 N E X T2 8 F O 1 = T 2 9 F O J = T 3 0 I G $ ( I ) O N $ ( J ) O G $ ( J ) = " " T H E N 3 3 03 1 0 P R I N T " L O X " 3 2 0 G O T O 3 4 3 3 0 N E X T3 4 N E X T3 5 I B < T H E N 8 3 6 P R I N T r P R I N T3 7 0 P R I N T " Y O U ' V E E A R N E D Y O U R L U N C H ! ! ! "

Page 75: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 75/244

B A G E L S 7 3 8 P R I N T " Y O U T O O K " ; T ; " T R I E S . ' 3 9 P R I N T r P R I N T4 0 P R I N T " A G A I N ( O N ) H I ! "4 1 0 G E T A $ : I F A $ = I I M T H E N 4 1 04 2 I A $ O " Y " A N A $ O " N " T H E N 4 1 04 3 P R I N T A $ : P R I N T4 4 I A $ = " Y " T H E N 3 04 5 E N

G L O S S A R Y O V A R I A B L E SN s t r i n g a r r a y e a c h o w h o s e e l e m e n t s i d i g i t i t h

c o m p u t e r ' s s e l e c t e d n u m b e r .G s t r i n g a r r a y e a c h o w h o s e e l e m e n t s i d i g i t i n t h

p l a y e r ' s g u e s s .U s e d t c o u n t t h n u m b e r o t r i e s m a d e b t h p l a y e r .W h e n t h e p l a y e r ' s g u e s s i b e i n g e n t e r e d , t h i s v a r i a b l ei n d i c a t e s t h p o s i t i o n o t h d i g i t l a s t e n t e r e d . I t i s u s e dt i n d e x G $ H o w e v e r , i i a l s o i o t h e r p a r t s o t h p r o g r a m f o o t h e r p u r p o s e s .C o u n t s h o m a n y t i m e s B A G E L S h a b e e n p r i n t e d f o t h e c u r r e n t g u e s s .

L I N E S O S P E C I A L I N T E R E S T3 0 - 5 0 : T h p r o g r a m s e l e c t s 3 - d i g i t n u m b e r . N o t i c e t h m e t h o d

e m p l o y e d t c o n v e r t t h i s n u m b e r i n t o i t c o r r e s p o n d i n g c h a r a c t e r .T h i s c o n v e r s i o n i n e c e s s a r y b e c a u s e t h c o m p a r i s o n s a r m a d ew i t h c h a r a c t e r s .

8 0 - 2 0 0 : T h i s b l o c k o s t a t e m e n t s i n p u t s t h e p l a y e r ' s g u e s s u s i n g t h G E c o m m a n d . T h m e t h o d i s i m i l a r t t h a t u s e d i t h p r o g r a m" T y p i n g T e s t . "

9 0 c u r s o r i p r i n t e d t i n d i c a t e w h e r e t h n e x t c h a r a c t e r i t b d i s p l a y e d .

1 4 0 : c a r r i a g e r e t u r n i n e c e s s a r y f o r t h e p r o g r a m t c o n t i n u e . I i n s t e a d t h e p l a y e r t r i e s t s t r i k e f o u r t h c h a r a c t e r , i i i g n o r e d a n c o n t r o l i p a s s e d t l i n e 1 0 t w a i t f o R E T U R N .

1 7 0 - 1 9 0 : T h p l a y e r i b a c k s p a c i n g . I n c h a r a c t e r s h a v e b e e n e t e r e d y e t ( 0 ) c o n t r o l r e t u r n s t l i n e 1 0 0 . O t h e r w i s e , t h e v a r i a b l e

i d e c r e m e n t e d a n t h c u r s o r i m o v e d b a c k p o s i t i o n .

Page 76: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 76/244

7 Z A P P E R S F O T H C O M M O D O R E 6 2 0 0 : I t h p l a y e r h i t s t h R E T U R N k e b e f o r e h h a e n t e r e d d i g i t s ,

t h R E T U R N i i g n o r e d .2 3 0 - 2 7 0 : E a c h d i g i t i t h g u e s s ( G $ ) i c o m p a r e d w i t h t h c o r r e

s p o n d i n g d i g i t i t h c o m p u t e r ' s n u m b e r ( N $ ) . I a n c o r r e s p o n d i n gd i g i t s a r f o u n d t b i d e n t i c a l , t h w o r d B A G E L S i p r i n t e d ,i i n c r e m e n t e d , a n t h d i g i t i n G w h i c h m a t c h e s t h o n i N i d e l e t e d ( r e p l a c e d w i t h t h n u l l s t r i n g ) . T h i s i s t h a t t h d i g i tw i l l n o b u s e d w h e n s e a r c h i n g f o L O X .

2 8 0 - 3 4 0 : C o m p a r e e a c h r e m a i n i n g d i g i t i G w i t h e a c h d i g i t i N $ I m a t c h i f o u n d , L O i p r i n t e d . I l i n e 3 0 0 , t h t e s t i n g o G $ ( J ) i t m a k e s u r e t h a t i d i g i t w h i c h o c c u r s o n c e i N o c c u r st w i c e i G $ a n B A G E L S i p r i n t e d f o o n o t h o c c u r r e n c e si G $ n o t h i n g i p r i n t e d f o r t h e o t h e r o c c u r r e n c e .

3 5 0 : I B A G E L S h a n o b e e n p r i n t e d 3 t i m e s t h i s t i m e a r o u n d , t h p r o g r a m g o e s b a c k t g e a n o t h e r g u e s s .

S U G G E S T E D E N H A N C E M E N T S1 T h g a m e c o u l d b m a d e m o r e c h a l l e n g i n g b i n c r e a s i n g t h e n u m b e r

t m o r e t h a n t h r e e d i g i t s . T h i s i n o s u c h m a j o r p r o g r a m m i n gc h a n g e a i w o u l d a p p e a r .

2 T h g a m e c o u l d b m a d e m o r e d i f f i c u l t b u s i n g l e t t e r s o t h a l p h a b e t r a t h e r t h a n n u m b e r s , o e v e n b o t h l e t t e r s a n n u m b e r s . T h i sw o u l d r e q u i r e c h a n g e s i l i n e 4 a n t h l i n e s t h a t g e t t h e p l a y e r ' sg u e s s . F o r t u n a t e l y , t h e f a c t t h a t t h p r o g r a m a l r e a d y d e a l s w i t hc h a r a c t e r s r a t h e r t h a n n u m b e r s m a k e s t h i s r e l a t i v e l y m i n o r c h a n g e .

3 T h i n c l u s i o n o s o u n d a a p p r o p r i a t e p l a c e s c o u l d i m p r o v e t h a e s t h e t i c q u a l i t y o t h g a m e .

Page 77: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 77/244

C H A P T E R 1 C R A P S

T h i s i C o m m o d o r e 6 v e r s i o n o t h c a s i n o g a m e c a l l e d c r a p sw h i c h i c u s t o m a r i l y p l a y e d w i t h d i c e . T h e r e a r d i f f e r e n t s e t so r u l e s f o p l a y i n g t h g a m e , a n t h v e r s i o n w p r e s e n t h e r ei o n o t h m o r e p o p u l a r o n e s .

T h g a m e i p l a y e d a s f o l l o w s . T h p l a y e r r o l l s t w d i c e a n a d d s u t h e i r f a c e v a l u e s . T h i s n u m b e r i r e f e r r e d t a h i " p o i n t . "H t h e n r e p e a t e d l y r o l l s t h d i c e u n t i l h a g a i n o b t a i n s h i p o i n t .I a a n t i m e i t h g a m e ( i n c l u d i n g t h f i r s t r o l l ) h r o l l s( " s n a k e e y e s " ) o r a 1 ( " b o x c a r s " ) , h l o s e s i m m e d i a t e l y . F u t h e r m o r e , i h r o l l s o 1 a f t e r t h f i r s t r o l l , h a l s o l o s e s .I f h o w e v e r , t h f i r s t r o l l i o a 1 1 h e w i n s i m m e d i a t e l y .O t h e r w i s e , t h p l a y e r w i n s i h r e p e a t s h i p o i n t v a l u e w i t h o u to b t a i n i n g 7 1 1 s n a k e e y e s , o r b o x c a r s .

T h g a m e o c r a p s i u s u a l l y a c c o m p a n i e d w i t h b e t t i n g .p l a y e r w a g e r s c e r t a i n a m o u n t b e f o r e e a c h r o u n d . I h w i n s ,h r e c e i v e s t h e a m o u n t o t h b e t . I f h l o s e s , h m u s t p a t h a ta m o u n t .

W h e n t h p r o g r a m i r u i w i l l a s y o h o m u c h y o h a v eo h a n d a t h b e g i n n i n g o f t h g a m e . T h i s i t h p o o l f r o m w h i c hy o u r s u b s e q u e n t b e t s w i l l b p a i d a n t w h i c h y o w i l l a d y o u rw i n n i n g s ( i a n y ) . T h a m o u n t m u s t b i w h o l e d o l l a r s a n m u s tb g r e a t e r t h a n 0 . I f i e n t e r e d , o e v e n i t h R E T U R N k e

7

Page 78: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 78/244

7 Z A P P E R S F O R T H C O M M O D O R E 6 i p r e s s e d , t h p r o g r a m d i s p l a y s m e s s a g e a s k i n g f o p o s i t i v ed o l l a r a m o u n t s a n d w i l l a g a i n w a i t f o i n p u t . T h a m o u n t e n t e r e di d i s p l a y e d i t h u p p e r l e f t h a n d c o r n e r t h r o u g h o u t t h g a m e .N e x t t h p r o g r a m w i l l d r a w t h e d i c e a n a s y o h o m u c h y o w i s h t b e t . T h i s a m o u n t m u s t b n g r e a t e r t h a n t h a m o u n tt h a t y o h a v e o h a n d . I t h b e a m o u n t i o i y o j u s t h i R E T U R N , t h p r o g r a m t e r m i n a t e s , d i s p l a y i n g t h a m o u n t o m o n e y l e f t i t h p o o l .

I t h a m o u n t b e i g r e a t e r t h a n 0 t h d i c e w i l l r o l l ; i t h i sv e r s i o n o t h g a m e , t h i s m e a n s t h a t y o w i l l s e t h s p o t s m o v ea r o u n d t h d i c e a n h e a r v a r i o u s t o n e s b e i n g e m i t t e d . J u s t i n c a s ey o a r n o a w a r e t h a t t h e d i c e a r r o l l i n g , m e s s a g e t t h i se f f e c t i a l s o d i s p l a y e d . W h e n t h i s a l s t o p s , t h d i c e d i s p l a y t w v a l u e s ( o n e f o e a c h d i e ) . I f t h i s t o t a l v a l u e i n o 7 1 1 2 o 1 2 i i r e c o r d e d o t h s c r e e n a y o u r p o i n t a n t h d i c e r o l la g a i n . W h e n y o f i n a l l y w i o l o s e , t h p r o g r a m d i s p l a y s t h ea p p r o p r i a t e m e s s a g e , e m i t s a a p p r o p r i a t e s o u n d , a n e i t h e r a d d sy o u r b e t o o d e d u c t s y o u r b e f r o m , t h p o o l o f c a s h .

1 R E C R A P S2 D I D I C E ( 6 ) f S ( 2 )3 F O 1 = T 6 : R E A D D I C E ( I ) : N E X T4 D A T A 1 6 f 2 5 7 f 2 7 3 , 3 2 5 , 3 4 1 , 3 6 55 P O K E 5 3 2 8 0 , 2 : P O K E 5 3 2 8 1 , 1 4 : K O L R = 06 P R I N T " Q H S T A R T I N G A M O U N T ? $ " 7 6 0 S U B 1 1 0 0 : P R I N T8 I X > T H E N 1 1 9 P R I N T " O N L Y P O S I T I V E A M O U N T S , P L E A S E " ;1 0 F O 1 = T 5 0 0 : N E X T I : G O T O 6 1 1 T = X : 6 0 S U B 5 0 1 2 R O W = 1 : C O L = 0 : G O S U B 1 0 0 01 3 P R I N T " $ " ; S T R $ ( T ) ; M1 4 R 0 U = 1 4 : G 0 S U B 1 0 0 01 5 P R I N T " ; : R E M S P C ( 1 6 )1 6 R 0 W = 1 81 7 G O S U B 1 0 0 01 8 P R I N T " A M O U N T O B E T ? H i l l I "

Page 79: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 79/244

C R A P S 7 1 9 G O S U B 1 1 0 02 0 I X = 0 T H E N 4 7 02 1 I X < = T T H E N 2 5 02 2 G O S U B 1 0 0 02 3 P R I N T " Y O U R B E I T O O H I G H " ;2 4 F O 1 = T 5 0 0 : N E X T I : G O T O 1 7 2 5 B E T = X : P O I = 02 6 G O S U B 7 0 0 : F O R 1 = T 1 0 0 0 : N E X T2 7 I S U M = 2 O S U M = 1 2 T H E N 4 0 2 8 I S U M O 7 A N S U M O 1 1 T H E N 3 1 02 9 I P O I = O T H E N 3 6 3 0 0 G O T O 4 0 3 1 I P 0 I > 0 T H E N 3 5 3 2 P O I = S U M3 3 R O W = 1 4 : C O L = 0 : G O S U B 1 0 0 03 4 P R I N T " Y O U R P O I N T I S " ; P O I ; : G O T O 2 6 3 5 I S U M O P O I T H E N 2 6 3 6 R O W = 2 0 : C O L = 0 : G O S U B 1 0 0 03 7 P R I N T " Y O U W I N ! ! " ; : G O S U B 1 2 0 03 8 G O S U B 1 0 0 0 : P R I N T " 3 9 T = T + B E T : G O T O 1 2 4 0 R 0 W = 2 0 : C 0 L = 0 : G 0 S U B 1 0 0 04 1 P R I N T " Y O U L O S E . " ; : G O S U B 1 4 0 04 2 G O S U B 1 0 0 0 : P R I N T " 4 3 T = T - B E T : I F T > T H E N 1 2 4 4 R 0 W = 2 1 : G 0 S U B 1 0 0 04 5 P R I N T " Y O U R A O U O M O N E Y " ;4 6 F O 1 = T 3 0 0 0 : N E X T4 7 0 P O K E 5 3 2 8 0 , 1 4 : P 0 K E 5 3 2 8 1 , 64 8 P R I N T " □ □ " : R O U = 1 : G O S U B 1 0 0 04 9 P R I N T " $ " ; T ; T A B ( 1 5 ) ; " G A M E O V E R " : E N D5 0 0 R E M * * * * * D R A W D I C E F R A M E S * * * * *5 1 P R I N T " Q 5 2 K A R = 1 6 05 3 R 0 W = 35 4 F O C 0 L = 5 T 1 5 : G O S U B 9 0 0 : N E X T C O 5 5 F O C 0 L = 2 4 T 3 4 : G 0 S U B 9 0 0 : N E X T C O 5 6 C 0 L = 5

Page 80: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 80/244

7 Z A P P E R S F O T H C O M M O D O R E 6 5 7 F O R 0 W = 4 T 1 0 : 6 0 S U B 9 0 0 : N E X T R O 5 8 C 0 L = 1 55 9 F O R 0 W = 4 T 1 0 : 6 0 S U B 9 0 0 : N E X T R O 6 0 C 0 L = 2 46 1 F O R 0 W = 4 T 1 0 : G O S U B 9 0 0 : N E X T R O 6 2 C 0 L = 3 46 3 F O R 0 W = 4 T 1 0 : 6 O S U B 9 0 0 : N E X T R O 6 4 R O W = 1 16 5 F O C 0 L = 5 T 1 5 : G 0 S U B 9 0 0 : N E X T C O 6 6 F O C 0 L = 2 4 T 3 4 : G 0 S U B 9 0 0 : N E X T C O 6 7 R E T U R N7 0 R E * * * * * * * R O L L D I C E * * * * * * * * *7 1 R 0 W = 1 2 : C 0 L = 1 6 : G 0 S U B 1 0 0 07 2 0 P R I N T " R O L L I N G . . . " ;7 3 N U M = I N T ( R N D ( 0 > * 7 ) + 17 4 F O 1 = T N U M : F O R W H I C H = 1 T 7 5 S ( W H I C H ) = I N T ( R N D ( 0 ) * 6 ) + 1 : G O S U B 8 0 7 6 0 N E X T W H I C H : N E X T7 7 R 0 W = 1 2 : C 0 L = 1 6 : G 0 S U B 1 0 0 07 8 P R I N T " ; : S U M = S ( 1 ) + S ( 2 )7 9 P O K E 5 4 2 7 6 , 0 : R E T U R N8 0 R E * * * * * * * D O D I C E * * * * * *8 1 Q = D I C E ( S ( W H I C H ) ) : B 0 T = 1 9 * ( W H I C H ) - 1 28 2 F O R O W = 5 T S T E P8 3 F O C O L = B O T T B O T + 6 S T E P8 4 K A R = 3 2 : I F N O T - ( Q A N 1 T H E N 8 6 08 5 K A R = 1 6 0 : G O S U B 1 6 0 08 6 G O S U B 9 0 0 : Q = I N T ( Q / 2 )8 7 0 N E X T C O 8 8 N E X T R O W8 9 R E T U R N9 0 R E * * * * * * * P U D O * * * * * * * * *9 1 0 P O K E 1 0 2 4 + R O W * 4 0 + C 0 L , K A R9 2 0 P O K E 5 5 2 9 6 + R O W * 4 0 + C O L , K O L R9 3 R E T U R N1 0 0 0 R E * * * * P U C U R S O R A R O W , C O L * * * *1 0 1 0 S P O T = 1 0 2 4 + 4 0 * R O W + C O L1 0 2 0 P O K E 2 0 9 , S P O T A N 2 5

Page 81: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 81/244

C R A P S 7 1 0 3 0 P O K E 2 1 0 , I N T ( S P O T / 2 5 5 )1 0 4 0 P O K E 2 1 1 , 01 0 5 0 R E T U R N1 1 0 0 R E * * * * * * * * * I N P U T * * * * * * * * *1 1 1 0 X = 1 1 2 0 P R I N T " 9 1 1 " ;1 1 3 0 G E A $ : I F A $ = " " T H E N 1 1 3 01 1 4 0 I A $ = C H R $ ( 1 3 ) T H E N 1 1 9 01 1 5 0 I A $ < > " | | " T H E N 1 1 7 01 1 6 0 X = I N T ( X / 1 0 ) : P R I N T | | 1 | " ; : G O T O 1 1 2 01 1 7 0 I A $ < " 0 " O A $ > " 9 " T H E N 1 1 3 01 1 8 0 P R I N T A $ ; : X = X * 1 0 + A S C ( A $ ) - 4 8 : G O T O 1 1 2 01 1 9 0 P R I N T " ; : R E T U R N1 2 0 0 R E M * * * G O O D B E E P * * 1 2 1 0 P O K E 5 4 2 7 2 , 2 2 4 : P 0 K E 5 4 2 7 9 , 6 81 2 2 0 P O K E 5 4 2 7 3 , 3 7 : P 0 K E 5 4 2 8 0 , 3 81 2 3 0 P O K E 5 4 2 7 7 , 6 5 : P 0 K E 5 4 2 8 4 , 1 71 2 4 0 P O K E 5 4 2 7 8 , 2 4 4 : P 0 K E 5 4 2 8 5 , 2 4 11 2 5 0 P O K E 5 4 2 9 6 , 1 51 2 6 0 P O K E 5 4 2 7 6 , 1 7 : P 0 K E 5 4 2 8 3 , 1 71 2 7 0 F O 1 = T 2 0 0 : N E X T1 2 8 0 P O K E 5 4 2 7 3 , 4 0 : P O K E 5 4 2 8 0 , 4 11 2 9 0 F O 1 = T 5 0 0 : N E X T1 3 0 0 P O K E 5 4 2 7 6 , 0 : P O K E 5 4 2 8 3 , 01 3 1 0 R E T U R N1 4 0 0 R E * * B A D B E E P * * 1 4 1 0 P O K E 5 4 2 7 2 , 2 2 4 : P 0 K E 5 4 2 7 9 , 6 81 4 2 0 P O K E 5 4 2 7 3 , 1 4 : P 0 K E 5 4 2 8 0 , 1 51 4 3 0 P O K E 5 4 2 7 7 , 6 5 : P 0 K E 5 4 2 8 4 , 1 71 4 4 0 P O K E 5 4 2 7 8 , 2 4 4 : P 0 K E 5 4 2 8 5 , 2 4 11 4 5 0 P O K E 5 4 2 8 6 , 2 2 4 : P 0 K E 5 4 2 8 7 , 41 4 6 0 P O K E 5 4 2 9 6 , 1 51 4 7 0 P O K E 5 4 2 7 6 , 2 1 : P O K E 5 4 2 8 3 , 1 71 4 8 0 F O 1 = T 1 0 0 : N E X T1 4 9 0 P O K E 5 4 2 7 3 , 8 : P 0 K E 5 4 2 8 0 , 91 5 0 0 F O 1 = T 5 0 0 : N E X T1 5 1 0 P O K E 5 4 2 7 6 , O : P O K E 5 4 2 8 3 , 01 5 2 0 R E T U R N

Page 82: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 82/244

8 Z A P P E R S F O T H C O M M O D O R E 6 1 6 0 0 R E M * * * S P O T B E E P * * *1 6 1 0 P O K E 5 4 2 7 6 , 01 6 2 0 F R = C O L * 5 0 0 + R O W * 5 01 6 3 0 P O K E 5 4 2 7 2 , F R A N D 2 5 51 6 4 0 P O K E 5 4 2 7 3 , I N K F R / 2 5 6 )1 6 5 0 P O K E 5 4 2 7 5 , 81 6 6 0 P O K E 5 4 2 7 7 , 3 4 : P 0 K E 5 4 2 7 8 , 2 4 21 6 7 0 P O K E 5 4 2 9 6 , 1 5 : P O K E 5 4 2 7 6 , 6 51 6 8 0 R E T U R N

G L O S S A R Y O F V A R I A B L E SD I C E T h i s n u m e r i c a r r a y o e l e m e n t s c o n t a i n s n u m b e r s w h i c h

a r e n c o d e d r e p r e s e n t a t i o n s o t h s p o t p a t t e r n s o e a c hf a c e o t h d i e .T h i s i n u m e r i c a r r a y w i t h e l e m e n t s . I r e p r e s e n t s t h v a l u e s o t h e f a c e s o t h d i c e .T h v a r i a b l e r e t u r n e d b t h s u b r o u t i n e a l i n e 1 1 0 0 . I r e p r e s e n t s v a l u e i n p u t b t h p l a y e r .H o l d s t h t o t a l a m o u n t o m o n e y t h a t t h p l a y e r h a s .

R O P a s s e s t t h s u b r o u t i n e a l i n e 1 0 0 0 t h r o a w h i c h t h c u r s o r i t b p o s i t i o n e d .

C O P a s s e s t t h s u b r o u t i n e a l i n e 1 0 0 0 t h c o l u m n a w h i c ht h c u r s o r i t b p o s i t i o n e d .B E H o l d s t h a m o u n t b e b t h p l a y e r .

P O H o l d s t h e p l a y e r ' s p o i n t ( i a n y ) ; o t h e r w i s e i i s e t 0 W w a n t e d t u s t h n a m e P O I N T , b u t h i s c o n t a i n s t h B A S I C k e y w o r d I N a n s h a t b d i s c a r d e d .

S U R e t u r n e d b t h s u b r o u t i n e a t l i n e 7 0 0 ; t h i s i t h s u o t h f a c e v a l u e s o t h d i c e .

K A H o l d s a s c r e e n d i s p l a y c o d e w h i c h i p a s s e d t t h s u r o u t i n e a l i n e 9 0 0 . I a c t u a l l y t a k e s o o n l y o n o t w p o s s i b l e v a l u e s : 3 f o b l a n k o 1 6 f o s p o t .

N U r a n d o m l y s e l e c t e d n u m b e r b e t w e e n a n w h i c h r e r e s e n t s h o m a n y t i m e s t h d i c e a r e r o l l e d b e f o r e s t o p p i n g .T h i s v a r i a b l e i u s e d i t h s u b r o u t i n e i n l i n e 7 0 0 .

W H I C H T h i s v a r i a b l e h o l d s t h v a l u e o a n i n d i c a t e s w h i c hd i i c u r r e n t l y b e i n g r o l l e d .

Page 83: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 83/244

C R A P S 8

L I N E S O S P E C I A L I N T E R E S T5 0 F o t h f i r s t t i m e i t h i s b o o k w a r p o k i n g t l o c a t i o n 5 3 2 8 0 ,

t c h a n g e t h b o r d e r c o l o r o t h s c r e e n t o r e d . T h i s l i n e a l s oc h a n g e s t h b a c k g r o u n d c o l o r t l i g h t b l u e . T h v a r i a b l e K O L R i u s e d o n l y b t h s u b r o u t i n e a l i n e 9 0 t d e t e r m i n e t h c o l o r o t h d i c e . ( C O L O R c o u l d n o b u s e d b e c a u s e i c o n t a i n s t h k e w o r d O R a n e v e n C O L R w o u l d h a v e g i v e n u p r o b l e m s b e c a u s ei i t r e a t e d t h s a m e a t h e v a r i a b l e C O L , w h i c h i a l s o b e i n g u s e di t h i s p r o g r a m . ) I t i s n o r e a l l y n e c e s s a r y t h a v e v a r i a b l e f o t h c o l o r o t h d i c e , b u t h i s m a k e s i p o s s i b l e t m a k e t h r e ed i f f e r e n t c o l o r c h a n g e s j u s t b c h a n g i n g l i n e 5 0

1 0 0 : T h i s d e l a y l o o p k e e p s t h m e s s a g e i n l i n e 9 o t h s c r e e n f o s h o r t a m o u n t o f t i m e t e n a b l e t h m e s s a g e t b r e a d .

1 2 0 : T h i s i t h s t a n d a r d w a o r e p o s i t i o n i n g t h c u r s o r i t h i s p r g r a m . T h v a l u e s o R O a n C O a r a s s i g n e d a n t h s u b r o u t i n ea t l i n e 1 0 0 0 i c a l l e d .

1 3 0 : T h t e b l a n k s p r i n t e d o t h i s l i n e a r u s e d i c a s e t h v a l u e o d e c r e a s e s s u c h t h a t t h n u m b e r o d i g i t s i i d e c r e a s e s . T h b l a n k s r e m o v e d i g i t s l e f t o v e r f r o m t h p r e v i o u s v a l u e o T

1 4 0 - 1 5 0 : B l a n k s a r p r i n t e d o r o 1 t r e m o v e t h m e s s a g e t h a tm a h a v e b e e n t h e r e p r e v i o u s l y ; t h a t r o i u s e d t r e c o r d t h p l a y e r ' s p o i n t . T h R E s t a t e m e n t i l e f t t h e r e t i n d i c a t e h o m a n y s p a c e s t h e r e a r e i t h l i t e r a l . N o t e t h a t t h S P f u n c t i o nd o e s n o a c t u a l l y p r i n t b l a n k s b u t m e r e l y t a b s o v e r t h e s p e c i f i e dn u m b e r o c o l u m n s . T h a t i w h i i n o u s e d i t h i s c a s e .

1 8 0 : T h f o u r b l a n k s a n f o u r b a c k s p a c e c h a r a c t e r s a t h e n o t h l i t e r a l a r u s e d t r e m o v e t h e c h a r a c t e r s t h a t m a h a v e o c c u p i e dt h a t s p a c e p r e v i o u s l y ( s e e l i n e s 2 1 0 - 2 4 0 b e l o w ) .

2 0 0 : b e o m e a n s t h a t t h p r o g r a m s h o u l d b t e r m i n a t e d .2 1 0 - 2 4 0 : I t h b e i g r e a t e r t h a n t h c a s h o h a n d , m e s s a g e t

t h i s e f f e c t i d i s p l a y e d i t h s a m e r o a s t h e m e s s a g e p r i n t e d i l i n e 1 8 0 . I t i s k e p t t h e r e f o r w h i l e b a d e l a y l o o p . C o n t r o l t h e nr e t u r n s t l i n e 1 7 t r e q u e s t a n o t h e r b e t .

2 6 0 : T h d e l a y l o o p i t h i s l i n e c r e a t e s p a u s e b e t w e e n r o l l s o t h d i c e .

2 9 0 : T h i s l i n e i r e a c h e d i S U i o 1 1 P O b e i n g e q u a l t m e a n s t h a t t h i s w a t h f i r s t r o l l a n s t h p l a y e r h a w o n .

3 0 0 : T h i s i n o t h f i r s t r o l l , s t h o 1 h a c a u s e d t h p l a y e r t l o s e .

3 1 0 : O n l y i t h r o l l w a n o 7 , 1 1 , 2 , o 1 i t h i s l i n e r e a c h e d . I

Page 84: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 84/244

8 Z A P P E R S F O R T H C O M M O D O R E 6 t h i s i n o t h f i r s t r o l l , c o n t r o l p a s s e s d o w n t l i n e 3 5 w h e r e i i c o m p a r e d t t h p o i n t v a l u e w h i c h w a t h v a l u e o t h f i r s t r o l l .

3 2 0 - 3 4 0 : T h i s i t h f i r s t r o l l , s i t v a l u e i s a v e d a n d i s p l a y e d a t h p o i n t v a l u e . C o n t r o l t h e n r e s u m e s f r o m l i n e 2 6 0 , w h e r e t h d i c e a r a g a i n r o l l e d .

3 5 0 : T h r o l l i c o m p a r e d a g a i n s t t h p o i n t . I t h e y a r n o e q u a l ,c o n t r o l p a s s e s t l i n e 2 6 0 .

3 8 0 : A f t e r v i c t o r i o u s f a n f a r e i s o u n d e d , t h w i n n i n g m e s s a g e i b l a n k e d o u t .

4 4 0 - 4 6 0 : T h p l a y e r h a r u o u o m o n e y a n m e s s a g e t t h i se f f e c t i d i s p l a y e d . T h d e l a y i l i n e 4 6 r e t a i n s t h m e s s a g e o t h s c r e e n f o w h i l e .4 7 0 - 4 9 0 : T h e s e l i n e s a r r e a c h e d i t h e p l a y e r r u n s o u t o m o n e y o i h m a k e s a b e t o ( s e e l i n e 2 0 0 ) . T h o r i g i n a l b o r d e r , s c r e e n ,a n c h a r a c t e r c o l o r s a r e r e s t o r e d . T h s c r e e n i t h e n c l e a r e d a n t h e p l a y e r ' s r e m a i n i n g b a l a n c e i d i s p l a y e d .

S u b r o u t i n e5 0 0 - 6 7 0 : T h i s s u b r o u t i n e d r a w s t h o u t l i n e s o t h d i c e . T h s u

r o u t i n e a l i n e 9 0 i c a l l e d r e p e a t e d l y t d r a w e a c h c h a r a c t e r i t h o u t l i n e .

S u b r o u t i n e7 0 0 - 7 9 0 : T h i s s u b r o u t i n e s i m u l a t e s t h r o l l i n g o t h d i c e . T h f a c e s

o t h d i c e a r c h a n g e d r a n d o m n u m b e r o f t i m e s b e t w e e n a n a d e t e r m i n e d b t h v a l u e o f N U ( s e e l i n e 7 3 0 ) . I l i n e 7 5

r a n d o m n u m b e r b e t w e e n a n d 6 b e c o m e s t h f a c e v a l u e f o e a c hd i e . I l i n e 7 8 t h m e s s a g e p r i n t e d b l i n e 7 2 i r e m o v e d . T h P O K E i n l i n e 7 9 t u r n s o f t h f i n a l b e e p t h a t w a i n i t i a t e d b t h s u b r o u t i n e i l i n e 1 6 0 0 , w h i c h w a i t s e l f c a l l e d b t h s u b r o u t i n ei l i n e 8 0 0 .

S u b r o u t i n e8 0 0 - 8 9 0 : T h i s s u b r o u t i n e d o e s t h a c t u a l p r i n t i n g o t h f a c e o e a c h

d i e .8 1 0 : W H I C H s p e c i f i e s w h i c h d i i b e i n g r o l l e d . S ( W H I C H ) s p e c

i f i e s t h f a c e v a l u e o t h i s d i e , a n D I C E ( S ( W H I C H ) ) , t h v a l u ea s s i g n e d t Q i t h c o d e d v a l u e f o t h d o p a t t e r n f o r t h i s n u m b e r .T h c o d e w o r k s a f o l l o w s . T h f a c e o f e a c h d i i d i v i d e d i n t o3 x m a t r i x o s p o t s . F o e a c h f a c e v a l u e , s o m e o t h e s e s p o t s a r ep r i n t e d a n s o m e a r n o p r i n t e d . F o e x a m p l e , t r e p r e s e n t t h f a c ev a l u e 5 t h 1 s t , 3 r d , 5 t h , 7 t h , a n 9 t s p o t s a r e p r i n t e d . ( W a r

Page 85: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 85/244

C R A P S 8 n u m b e r i n g t h e m l e f t t o r i g h t a n t o r o t b o t t o m r o w . ) S e a c hf a c e v a l u e c a b r e p r e s e n t e d b n i n e - b i t n u m b e r w h e r e e a c hr e p r e s e n t s s p o t t h a t i d i s p l a y e d a n e a c h r e p r e s e n t s s p o t t h a ti n o d i s p l a y e d . T h i s s u b r o u t i n e e x t r a c t s t h b i t s f r o m t h c o d e dv a l u e o n a t i m e a n d e t e r m i n e s w h e t h e r t h c o r r e s p o n d i n g s p o ts h o u l d b p r i n t e d o r b l a n k e d o u t . T h r o l e p l a y e d b B O i t d e t e r m i n e t h s t a r t i n g c o l u m n f o d i s p l a y i n g t h d o t s , d e p e n d i n go w h i c h d i i b e i n g d i s p l a y e d .

8 4 0 : T h i s l i n e d e t e r m i n e s w h e t h e r t h r i g h t m o s t b i i i o 1 T h n e g a t i o n s i g n t t h l e f t o t h p a r e n t h e s e s i n e c e s s a r y

b e c a u s e t h N O o p e r a t o r w o r k s c o r r e c t l y o n l y o n a n n e g a t i v ev a l u e s . N o t i c e t h a t i s p o t i n o p l a c e d a t h e c u r r e n t l o c a t i o n ,t h e n b l a n k m u s t b p l a c e d t h e r e i c a s e t h e r e w a s p o t t h e r eb e f o r e .

8 5 0 : T h i s l i n e i r e a c h e d o n l y i t h r i g h t m o s t b i i i 1 O n l yi t h i s c a s e i t h s u b r o u t i n e i l i n e 1 6 0 0 c a l l e d .

8 6 0 : D i v i d i n g b h a t h e f f e c t o s h i f t i n g i t b i n a r y v a l u e o n b i t t h r i g h t , t h e r e b y m o v i n g t h n e x t b i i n t o t h r i g h t m o s tp o s i t i o n .

S u b r o u t i n e9 0 0 - 9 3 0 : T h c h a r a c t e r s p e c i f i e d b t h c o n t e n t s o K A i p l a c e d

i t h c o r r e c t l o c a t i o n i s c r e e n m e m o r y , a s s p e c i f i e d b R O a n C O L . T h v a l u e o K O L R i p l a c e d i t h c o r r e s p o n d i n g l o c a t i o ni c o l o r m e m o r y .

S u b r o u t i n e1 0 0 0 - 1 0 5 0 : T h c u r s o r i r e p o s i t i o n e d u s i n g P O K E s t l o c a t i o n s 2 0

a n 2 1 0 . L o c a t i o n 2 1 i s e t s t h a t i d o e s n o c a u s e a n e x t r ap o s i t i o n i n g o t h c u r s o r .

S u b r o u t i n e1 1 0 0 - 1 1 9 0 : T h G E c o m m a n d i u s e d t i n p u t t h v a l u e o f f r o m

t h k e y b o a r d .1 1 6 0 : I t h b a c k s p a c e c u r s o r k e i p r e s s e d , i c h a n g e d t e l i m

i n a t e t h l a s t d i g i t e n t e r e d a n t h c u r s o r i m o v e d b a c k .1 1 8 0 : i m u l t i p l i e d b 1 a n h a a d d e d t i t h f e n u m e r i c a l v a l u eo t h d i g i t e n t e r e d .

S u b r o u t i n e1 2 0 0 - 1 3 1 0 : P l a y s m e l o d y i n d i c a t i n g t h a t t h p l a y e r h a w o n . T w

v o i c e s a r u s e d i t h i s r e f r a i n .

Page 86: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 86/244

Page 87: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 87/244

C H A P T E R 1 H I - L O

T h i s g a m e i C o m m o d o r e 6 t a k e o f f o a v e r y e n t e r t a i n i n g a n i n n o v a t i v e t o c a l c u l a t o r m a n u f a c t u r e d b T e x a s I n s t r u m e n t s ,I n c . T h c a l c u l a t o r i c a l l e d " D a t a m a n " a n i n c l u d e s s e v e r a li n s t r u c t i v e n u m e r i c g a m e s i n t e n d e d t e n h a n c e y o u n g s t e r ' s i t e r e s t i a r i t h m e t i c . O n o t h e s e g a m e s i g u e s s i n g g a m e i w h i c h n u m b e r b e t w e e n a n 1 0 i r a n d o m l y s e l e c t e d b t h c a l c u l a t o r . T h c h i l d i s u p p o s e d t g u e s s t h h i d d e n n u m b e r ;w h e n h o s h s u c c e e d s , t h d i s p l a y a n n o u n c e s h o m a n y t r i e sw e r e u s e d .

O c o u r s e , w i t h s u c h p o w e r f u l c o m p u t e r a o u d i s p o s a l ,t h e r e i n r e a s o n t c o n f i n e o u r s e l v e s t s u c h l i m i t e d r a n g e .I f a c t , t h v e r s i o n t h a t w e n o w p r e s e n t a l l o w s f o a r a n g e g o i n gf r o m t a n n u m b e r a a l o y o u r o w c h o o s i n g . T h g a m e i e n h a n c e d b c o l o r , s o u n d , a n s o m e g r a p h i c s . T h i s i c e r t a i n l yn o t k i d s t u f f !

W h e n y o r u t h p r o g r a m , y o a r a s k e d f o t h u p p e r l i m i to t h r a n g e f r o m w h i c h t o s e l e c t t h r a n d o m n u m b e r . T h p r g r a m a c t u a l l y d i s p l a y s t h n u m b e r 1 t h l o w e r l i m i t , a n a l y o h a v e t d i t s u p p l y t h s e c o n d n u m b e r . r e s p o n s e o c a u s e st h c o m p u t e r t i g n o r e t h v a l u e a n t h q u e s t i o n i r e p e a t e d .N e i t h e r i n e g a t i v e o r f r a c t i o n a l n u m b e r a c c e p t e d . Y o u r a l l -k n o w i n g c o m p u t e r i f a t o s m a r t f o t h i s .

8

Page 88: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 88/244

8 Z A P P E R S F O R T H C O M M O D O R E 6 A f t e r e n t e r i n g t h u p p e r l i m i t o t h r a n g e t h c o m p u t e r d i

p l a y s t h t w r a n g e s e n c l o s e d i b o x e s . I t h e n r e q u e s t s y o u rg u e s s . T h g u e s s e s a r n u m b e r e d s e q u e n t i a l l y s t h a t y o a r a l w a y s a w a r e o h o m a n y a t t e m p t s y o h a v e m a d e . I y o s e l e c t

n u m b e r o u t s i d e o t h p r e s c r i b e d r a n g e , i w i l l b i g n o r e d a n a n o t h e r r e q u e s t m a d e . I t h n u m b e r y o g u e s s e d i h i g h e r t h a nt h c o m p u t e r ' s n u m b e r , t h w o r d L O W E R i d i s p l a y e d , i n d ic a t i n g t h a t y o m u s t t r f o l o w e r n u m b e r . S i m i l a r l y , i y o g u e s s t o l o w , t h w o r d H I G H E R i d i s p l a y e d a n y o m u s t l o o kf o a h i g h e r n u m b e r . A t h r a n g e n a r r o w s , s t h n u m b e r s i t h b o x e s c h a n g e t r e f l e c t t h e s e n e l i m i t s .

W h e n t h c o r r e c t a n s w e r h a b e e n e n t e r e d , t h c o m p u t e r d i p l a y s m e s s a g e t t h i s e f f e c t a n p l a y s l i t t l e m e l o d y b w a o c o n g r a t u l a t i o n s . T h p l a y e r i t h e n a s k e d i a n o t h e r g a m e i d e s i r e d . I s o a n o t h e r l i m i t i r e q u e s t e d a n a n o t h e r r o u n d c o m e n c e s . I n o t , t h c o m p u t e r d i s p l a y s n u m b e r s p e c i f y i n g h o w e l l t h p l a y e r g u e s s e d . T h i s n u m b e r i b a s e d o t h p l a y e r ' so v e r a l l p e r f o r m a n c e f o a l g a m e s p l a y e d i g i v e n s e s s i o n .r a t i n g o 1 0 ( l i k e o u r I Q s ) i c o n s i d e r e d a v e r a g e . T b f a i r t t h o s e w h s e l e c t w i d e r a n g e s o n u m b e r s , t h s i z e o t h r a n g ei t a k e n i n t o a c c o u n t a n t h a v e r a g e e x p e c t e d n u m b e r o g u e s s e si c o r r e s p o n d i n g l y l a r g e r .

c l o s e e x a m i n a t i o n o t h p r o g r a m w i l l r e v e a l h i d d e n s t r a te g t h a t e n s u r e s s u c c e s s i t h i s g a m e . W i t h o u t r e v e a l i n g w h a tt h i s s t r a t e g y i s l e i s u f f i c e t o s a t h a t " h a l f l o a f i b e t t e r t h a nn o n e . "1 R E H I - L O2 P O K E 5 4 2 9 6 , 1 5 : C U M E = 0 : 6 A M E = 03 L 0 = 1 : P R I N T : P R I N T " R A N G E ? 1 - " ;4 G O S U B 6 0 5 I S < T H E N 3 6 H I = S : N = I N T ( R N D ( 0 ) * H I ) + 17 G O S U B 3 0 0 : T R Y = 0 : G A M E = G A M E + 18 G O S U B 4 0 9 G O S U B 6 0 1 0 I S > = L O A N D S < = H I T H E N 1 6 1 1 P R I N T T A B ( I N D E N T ) ; M n O U T O R A N G E 1 1 ;

Page 89: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 89/244

H I - L O 8 1 2 P R I N T D 1 3 F O 1 = T 1 0 0 0 : N E X T1 4 P R I N T T A B ( I N D E N T ) ; " G U E S S # " 1 5 P R I N T T R Y + 1 ; " ■ ■ : ■ ■ ■ ■ " ; : G O T O 9 1 6 T R Y = T R Y + 11 7 I S = T H E N 2 1 1 8 I S > T H E N 2 0 1 9 G O S U B 8 0 0 : L O = S : G O T O 8 2 0 G O S U B 9 0 0 : H I = S : G O T O 8 2 1 G O S U B 1 0 0 02 2 C U M E = C U M E + R A T / T R Y2 3 P R I N T : P R I N T " A G A I N ( O N ) " 2 4 G E A $ : I F A $ O " Y " A N A $ O " N " T H E N 2 4 2 5 P R I N T A 2 6 I A $ = " Y " T H E N 3 2 7 P O K E 5 4 2 9 6 , 0 : P R I N T " Q G A M E O V E R "2 8 P R I N T : P R I N T " Y O U R R A T I N G I S " ;2 9 P R I N T I N T ( C U M E / G A M E * 1 0 0 + . 5 ) : E N D3 0 0 R E M C A L C U L A T E A V E R A G E R A T I N G3 1 0 Q = H I : R A T = 13 2 Q = I N T ( Q / 2 )3 3 I Q = T H E N 3 6 03 4 0 R A T = R A T + 13 5 0 G O T O 3 2 03 6 0 R E T U R N4 0 R E S E U 4 1 0 P R I N T " Q D D D D D D D D D Q "4 2 S L 0 = L E N ( S T R $ ( L 0 ) ) + 14 3 S H I = L E N ( S T R $ ( H I ) ) + 14 4 P R I N T " H " ;4 5 F O 1 = T S L O : P R I N T " B " ; : N E X T4 6 P R I N T " E l M ; S P C ( 3 4 - S H I - S L 0 ) ; " H " ;4 7 F O 1 = T S H I : P R I N T " B " ; : N E X T4 8 P R I N T " E I " : P R I N T E D " ; L O ; " [ T J " ;4 9 P R I N T S P C ( 3 4 - S L 0 - S H I ) ;5 0 P R I N T l l [ r i " ; H I ; l l [ I ] " : P R I N T H " 5 1 F O 1 = T S L O : P R I N T " B " ; : N E X T5 2 P R I N T " E ] " ; S P C ( 3 4 - S H I - S L 0 > ; " [ 3 " ;

Page 90: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 90/244

8 Z A P P E R S F O R T H C O M M O D O R E 6 5 3 F O 1 = T O S H I ' . P R I N T " B " ; : N E X T5 4 P R I N T " E l " : P R I N T5 5 I N D E N T = I N T ( ( 2 6 - S H I ) / 2 )5 6 P R I N T T A B ( I N D E N T ) ; " G U E S S # " 5 7 P R I N T T R Y + 1 ; " l i : " 5 8 R E T U R N6 0 0 R E M G E T N U M B E R6 1 S = 6 2 P R I N T " ■ ■ ■ " ;6 3 G E A $ : I F A $ = " M T H E N 6 3 6 4 I A $ = C H R $ < 1 3 ) T H E N 7 2 06 5 I A $ = " l l " A N S > T H E N 7 0 6 6 I A $ < " 0 " O A $ > " 9 " T H E N 6 3 6 7 P R I N T A $ 6 8 S = S * 1 0 + A S C ( A $ ) - 4 86 9 0 G O T O 6 2 7 0 S = I N T ( S / 1 0 ) : P R I N T ■ ■ ■ ■ ' ;7 1 0 G O T O 6 2 7 2 0 P R I N T " 7 3 0 R E T U R N8 0 0 R E M H I G H E R8 1 P R I N T " B D D I 1 O I 1 B " ; T A B < 1 7 ) ; " H I G H E R M8 2 P O K E 5 3 2 8 1 , 18 3 0 P O K E 5 4 2 7 2 , 1 3 5 : P 0 K E 5 4 2 7 3 , 3 38 4 P O K E 5 4 2 7 7 , 3 4 : P 0 K E 5 4 2 7 8 , 2 4 28 5 P O K E 5 4 2 7 6 , 1 78 6 F O 1 = T 5 0 0 : N E X T8 7 P O K E 5 4 2 7 6 , 1 68 8 0 P O K E 5 3 2 8 1 , 68 9 R E T U R N9 0 R E L O W E R9 1 P R I N T " B B O D D D D " ; T A B ( 1 7 ) ; " L 0 W E R "9 2 P O K E 5 3 2 8 1 , 09 3 P O K E 5 4 2 7 2 , 9 7 : P 0 K E 5 4 2 7 3 , 89 4 0 P O K E 5 4 2 7 7 , 3 4 : P 0 K E 5 4 2 7 8 , 2 4 29 5 0 P O K E 5 4 2 7 6 , 1 79 6 F O 1 = T 5 0 0 : N E X T9 7 P O K E 5 4 2 7 6 , 1 6

Page 91: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 91/244

H I - L O 8 9 8 0 P O K E 5 3 2 8 1 , 69 9 R E T U R N1 0 0 0 R E C O R R E C T1 0 1 0 P R I N T : P R I N T T A B ( I N D E N T ) . - " C O R R E C T1 0 2 0 P O K E 5 4 2 7 2 , 1 9 5 : P 0 K E 5 4 2 7 3 1 1 0 3 0 P O K E 5 4 2 7 5 , 81 0 4 0 P O K E 5 4 2 7 7 , 7 : P 0 K E 5 4 2 7 8 , 2 4 01 0 5 0 P O K E 5 4 2 7 6 , 6 51 0 6 0 F O 1 = T 1 0 0 : N E X T1 0 7 0 P O K E 5 4 2 7 2 , 2 1 0 : P O K E 5 4 2 7 3 , 1 51 0 8 0 F O 1 = T 1 0 0 : N E X T1 0 9 0 P O K E 5 4 2 7 2 , 1 9 5 : P 0 K E 5 4 2 7 3 , 1 61 1 0 0 F O 1 = T 1 0 0 : N E X T1 1 1 0 P O K E 5 4 2 7 2 , 9 6 : P 0 K E 5 4 2 7 3 , 2 21 1 2 0 F O 1 = T 3 0 0 : N E X T1 1 3 0 P O K E 5 4 2 7 2 , 4 9 : P 0 K E 5 4 2 7 3 , 2 81 1 4 0 F O 1 = T 2 5 0 : N E X T1 1 5 0 P O K E 5 4 2 7 6 , 6 41 1 6 0 R E T U R N

G L O S S A R Y O V A R I A B L E SC U M E T h i s i t h e p l a y e r ' s c u m u l a t i v e r a t i n g f o a l t h g a m e s

p l a y e d i a g i v e n s e s s i o n .G A M E T h i s i t h n u m b e r o g a m e s p l a y e d s f a r .L T h l o e n o t h e c u r r e n t r a n g e .H T h h i g h e n o t h c u r r e n t r a n g e .

T h v a l u e r e t u r n e d b t h s u b r o u t i n e a l i n e 6 0 0 . I i t h n u m b e r i n p u t t e d b t h e p l a y e r .T h c o m p u t e r ' s r a n d o m l y s e l e c t e d n u m b e r w h i c h t h p l a y e rm u s t g u e s s .

T R T h c o u n t e r f o t h n u m b e r o g u e s s e s m a d e f o e a c hi n d i v i d u a l g a m e .I N D E N T v a l u e c a l c u l a t e d i t h e s u b r o u t i n e a l i n e 4 0 0 w h i c hs p e c i f i e s t h e s t a r t i n g c o l u m n a w h i c h v a r i o u s m e s s a g e sa r e d i s p l a y e d .

R A T h i s i t h v a l u e c a l c u l a t e d i t h s u b r o u t i n e a l i n e 3 0 w h i c h r e p r e s e n t s t h a v e r a g e n u m b e r o g u e s s e s n e c e s s a r yt a r r i v e a t h c o m p u t e r ' s h i d d e n r a n d o m n u m b e r .

Page 92: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 92/244

9 Z A P P E R S F O R T H C O M M O D O R E 6 S L T h s i z e o t h f i e l d i n w h i c h t h v a l u e o L i d i s p l a y e d

o t h s c r e e n .S H T h s i z e o t h f i e l d i n w h i c h t h v a l u e o H i d i s p l a y e do t h s c r e e n .

L I N E S O S P E C I A L I N T E R E S T1 5 0 : T h f i r s t b a c k s p a c e c h a r a c t e r i t e l i m i n a t e t h e b l a n k i n s e r t e d

a f t e r n u m b e r s b y t h P R I N T c o m m a n d . T h l a s t t w b l a n k s a n t w b a c k s p a c e c h a r a c t e r s a r i n c l u d e d t e l i m i n a t e t h e n o t h m e s s a g e p r i n t e d b l i n e 1 1 0 .

1 9 0 : T h i s l i n e i r e a c h e d i t h g u e s s i t o o l o w .2 0 0 : T h i s l i n e i r e a c h e d i t h g u e s s i t o h i g h .2 1 0 - 2 2 0 : I t h p l a y e r g u e s s e s c o r r e c t l y , t h v i c t o r y t u n e i p l a y e d

a n t h v a l u e o C U M E i i n c r e m e n t e d b t h r a t i o o t h a v e r a g en u m b e r o g u e s s e s t t h p l a y e r ' s a c t u a l n u m b e r o g u e s s e s .

2 9 0 : T h a c t u a l r a t i n g i c o m p u t e d b d i v i d i n g C U M E b t h n u m b e ro g a m e s . T h i s i e f f e c t p r o d u c e s r a t i n g t h a t i a v e r a g e d o v e r a l t h g a m e s . M u l t i p l y i n g t h r e s u l t b 1 0 p r o d u c e s r a t i n g t h a t i s t a n d a r d i z e d t 1 0 0 . T h a d d i t i o n o 0 . 5 c a u s e s t h I N f u n c t i o nt r o u n d o f t h n u m b e r r a t h e r t h a n s i m p l y t r u n c a t e i t

S u b r o u t i n e3 0 0 - 3 6 0 : T h i s s u b r o u t i n e c a l c u l a t e s t h a v e r a g e n u m b e r o g u e s s e s

t h a t s h o u l d h a v e t b m a d e t a r r i v e a N T h v a l u e f o R A i a c t u a l l y b a s e d u p o n t h s i z e o t h r a n g e a n i i n d e p e n d e n t o f t h v a l u e N T h i s i i m p o r t a n t t n o t e b e c a u s e s o m e v a l u e s o m a b e a s i e r t g u e s s t h a n o t h e r s , b u t h v a l u e f o R A w i l l b j u s ta e a s y ( o d i f f i c u l t ) r e g a r d l e s s . R A i c a l c u l a t e d a s t h e n u m b e ro b i t s i t h b i n a r y r e p r e s e n t a t i o n o t h v a r i a b l e H I T h i s i a l s ok n o w n a t h l o g a r i t h m t b a s e o H I

S u b r o u t i n e4 0 0 - 5 8 0 : T h r o l e p l a y e d b t h i s s u b r o u t i n e i t r e d r a w t h s c r e e n

w i t h t h e c u r r e n t v a l u e s o H a n L p l a c e d i t h b o x e s .4 2 0 - 4 3 0 : T h b o x e s a r t b " t a i l o r m a d e " t t h s i z e o t h

n u m b e r s w h e n t h e y a r d i s p l a y e d . T h e s e l i n e s t h e r e f o r e c a l c u l a t et h s i z e o t h n u m b e r s i d i s p l a y f o r m a t , a l l o w i n g f o b l a n k o e i t h e r s i d e .

4 4 0 : T h g r a p h i c s c h a r a c t e r u s e d h e r e i C o m m o d o r e k e y - A .

Page 93: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 93/244

H I - L O 9 4 5 0 : T h g r a p h i c s c h a r a c t e r u s e d i t h i s c a s e i e i t h e r s h i f t - C o

s h i f t - a s t e r i s k . T h i s i a l s o t h e c h a r a c t e r u s e d i l i n e s 4 7 0 , 5 1 0 , a n 5 3 0 .

4 6 0 : I n t h e f i r s t l i t e r a l t h g r a p h i c s c h a r a c t e r u s e d i C o m m o d o r ek e y - S . I t h s e c o n d l i t e r a l i i C o m m o d o r e k e y - A .

4 8 0 : T h f i r s t g r a p h i c s c h a r a c t e r u s e d i t h i s l i n e i C o m m o d o r ek e y - S . T h s e c o n d t w a r b o t h e i t h e r s h i f t - B o r s h i f t - m i n u s s i g n .

5 0 0 : T h f i r s t t w g r a p h i c s c h a r a c t e r s a r e e i t h e r s h i f t - B o s h i f t -m i n u s s i g n . T h t h i r d o n i C o m m o d o r e k e y - Z .

5 2 0 : I t h i s l i n e t h f i r s t g r a p h i c s c h a r a c t e r i C o m m o d o r e k e y - Xa n t h s e c o n d i C o m m o d o r e k e y - Z .

5 4 0 : T h g r a p h i c s c h a r a c t e r f o u n d i t h i s l i n e i C o m m o d o r e k e y -X 5 5 0 : T h v a l u e f o I N D E N T i s e l e c t e d t a p p r o x i m a t e l y c e n t e r

m e s s a g e s b e t w e e n t h t w o n u m b e r s d i s p l a y e d o t h s c r e e n .

S u b r o u t i n e6 0 0 - 7 3 0 : T h i s s u b r o u t i n e i n p u t s a v a l u e f o u s i n g t h G E c o

m a n d . A i p r e v i o u s p r o g r a m s t h e r e i a s i m u l a t e d c u r s o r a n o n l yd i g i t s a r a c c e p t e d . T h l e f t - c u r s o r f u n c t i o n c a b u s e d t m a k ec o r r e c t i o n s t m i s t y p e d c h a r a c t e r s . T h P R I N T s t a t e m e n t i l i n e7 2 r e m o v e s t h f i n a l c u r s o r s y m b o l .

S u b r o u t i n e8 0 0 - 8 9 0 : T h p l a y e r i i n s t r u c t e d t g u e s s h i g h e r a n a a p p r o p r i a t e l y

h i g h p i t c h e d t o n e i p r o d u c e d . L i n e s 8 2 a n 8 8 a l s o c h a n g e t h s c r e e n c o l o r .

S u b r o u t i n e9 0 0 - 9 9 0 : T h p l a y e r i i n s t r u c t e d t g u e s s l o w e r . H e r e l o w - p i t c h e dt o n e i p r o d u c e d i n s t e a d .

S u b r o u t i n e1 0 0 0 - 1 0 6 0 : T h p l a y e r i i n f o r m e d t h a t h h a g u e s s e d c o r r e c t l y a n

p e r h a p s a l l - t o o - f a m i l i a r m e l o d y i p r o d u c e d .

S U G G E S T E D E N H A N C E M E N T S1 T h r a n g e c o u l d s t a r t f r o m n u m b e r o t h e r t h a n 1 2 s p e c i a l s o u n d c a n b e p l a y e d i t h p l a y e r g u e s s e s o u t s i d e t h

r a n g e .

Page 94: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 94/244

C H A P T E R 1 B I O R H Y T H M S

I y o h a v e b e e n p r o g r a m m i n g f o a n l e n g t h o t i m e , y o w i l ls u r e l y h a v e c o m e u p o n p e r i o d w h e n n p r o g r a m y o w r i t es e e m s t w o r k c o r r e c t l y . I a d d i t i o n , y o u r r e l a t i o n s w i t h y o u rf r i e n d s a n r e l a t i v e s s e e m t b l a c k i n g , y o u r z e s t f o l i f e i o t h d o w n g r a d e ; i e s s e n c e , n o t h i n g a a l s e e m s t g r i g h t . W c u s t o m a r i l y s p e a k o s u c h d a y s a " d o w n d a y s . " O t h o t h e rh a n d , o f c o u r s e , t h e r e a r e t h o s e d a y s ( t h a n k f u l l y ! ) w h e n e v e r yt h i n g w t o u c h s e e m s t t u r n t g o l d . W h a t e v e r p l a n s w h a v em a d e m a t e r i a l i z e t o u s a t i s f a c t i o n a n e n j o y m e n t , m e a l s t a s t es u p e r b , s o c i a l e n g a g e m e n t s a r r e w a r d i n g , a n s o n W t e n dt r e c a l l s u c h p e r i o d s a " u d a y s . " I i a i w h u m a n b e i n g so p e r a t e o s o m e k i n d o c y c l e w h i c h h a i t u p w a r d a n d o w nw a r d t u r n s . W h y , e v e n t h s t o c k m a r k e t s e e m s t f o l l o w s u c hb e h a v i o r .

A c c o r d i n g t a d h e r e n t s o t h b i o r h y t h m t h e o r y , w a l h a v ec y c l e s w h i c h b e g i n a t h m o m e n t o b i r t h . T h e s e c y c l e s i n f l u e n c eo u p h y s i c a l , e m o t i o n a l , a n i n t e l l e c t u a l s t a t e s . I c e r t a i n c o u n -9

Page 95: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 95/244

B I O R H Y T H M S 9 t r i e s o t h w o r l d , i p a r t i c u l a r J a p a n a n S w i t z e r l a n d , b i o r h y t h mt h e o r y i t r e a t e d w i t h c o n s i d e r a b l e s e r i o u s n e s s . O c o u r s e , t h e r ea r m a n y o t h e r p e o p l e w h r e j e c t a n v a l i d i t y t b i o r h y t h m t h o r y . T h e y h o l d i i t h s a m e d i s r e s p e c t a t h e y d a s t r o l o g y ,e x t r a s e n s o r y p e r c e p t i o n ( E S P ) , u n i d e n t i f i e d f l y i n g o b j e c t s ( U F O s ) , 'a n o r g a n i c f o o d s . T h a u t h o r s o t h i s b o o k d i s a s s o c i a t e t h e ms e l v e s f r o m e i t h e r s i d e o t h a r g u m e n t , a n m e r e l y p r e s e n t t h et h e o r y f o w h a t e v e r i n t e r e s t i m i g h t h o l d f o y o u .

A c c o r d i n g t b i o r h y t h m t h e o r y , t h e p h y s i c a l c y c l e l a s t s t w e n t y -t h r e e d a y s , t h e m o t i o n a l c y c l e t w e n t y - e i g h t d a y s , a n t h i t e l l e c t u a l c y c l e t h i r t y - t h r e e d a y s . Y o w i l l n o t i c e t h a t t h e r e i d i f f e r e n c e o f i v e d a y s b e t w e e n t h l e n g t h s o e a c h o t h c y c l e s .I t i s c l a i m e d t h a t a l t h r e e o t h e s e c y c l e s b e g i n o t h d a y o a r b o r n a n c o n t i n u e u n a l t e r e d t h r o u g h o u t y o u r l i f e .

T h e s e c y c l e s o w h i c h w s p e a k c a n b e t h o u g h t o a i n t e rm i n a b l e s i n e c u r v e s t h a t h a v e t h f o l l o w i n g s h a p e :

T h t i m e i t a k e s t g e f r o m o n e n o t h i s c u r v e t t h o t h e ri s a w h a v e s a i d , t w e n t y - t h r e e d a y s f o t h p h y s i c a l , t w e n t y -e i g h t d a y s f o t h e m o t i o n a l , a n t h i r t y - t h r e e d a y s f o r t h e i n t e ll e c t u a l c y c l e .

I n t h e f i r s t I I V 2 d a y s o f t h p h y s i c a l c y c l e ( t h a t ' s w h e n t h c u r v e i a b o v e t h e h o r i z o n t a l l i n e a i l l u s t r a t e d a b o v e ) y o a r

Page 96: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 96/244

9 Z A P P E R S F O R T H C O M M O D O R E 6 c o n s i d e r e d t b i t h p o s i t i v e h a l f o y o u r c y c l e . T h i s i m p l i e st h a t y o s h o u l d f e e l p h y s i c a l l y w e l l , s t u r d y , r o b u s t , a n r e a d yt c o n q u e r t h w o r l d . T h i s s h o u l d b m o s t n o t i c e a b l e 5 % . d a y si n t o t h e c y c l e , w h e n t h c u r v e r e a c h e s i t h i g h e s t p o i n t . I n t h es e c o n d I I V 2 d a y s , h o w e v e r , y o a r g o i n g t h r o u g h t h n e g a t i v ep a r t o t h e c y c l e , a n i i s a i d t h a t y o w i l l f e e l l i s t l e s s , a n e m i c ,a n i a g e n e r a l c o n d i t i o n o e x h a u s t i o n .

T h e m o t i o n a l c y c l e , w h i c h l a s t s f o t w e n t y - e i g h t d a y s , a l s oh a i t t w h a l v e s , t h e f i r s t d u r i n g t h f i r s t f o u r t e e n d a y s a n t h s e c o n d d u r i n g t h l a s t f o u r t e e n d a y s . D u r i n g t h p o s i t i v e h a l f o t h c y c l e , y o w i l l b e a r a c h e e r f u l c o u n t e n a n c e , b f u l l o o t i m i s m a n g e n e r a l l y e b u l l i e n t . O c o u r s e , d u r i n g t h n e g a t i v eh a l f o t h e c y c l e y o w i l l b i n c l i n e d t b p e s s i m i s t i c , s u r l y ,i r r i t a b l e , a n u n p l e a s a n t .

T h l o n g e s t c y c l e o t h t h r e e , t h i n t e l l e c t u a l c y c l e , w h i c hl a s t s t h i r t y - t h r e e d a y s , i a l s o c o m p o s e d o t w h a l v e s . D u r i n gt h " u p " h a l f , y o w i l l p r o b a b l y p r o g r a m a y o u r f i n e s t l e v e l ,y o w i l l c o m e u w i t h y o u r g r e a t e s t i d e a s , a n p e r h a p s d r e a mu a e x c i t i n g c o m p u t e r g a m e . I i d u r i n g t h i s p e r i o d t h a t l e a r n i n gn e m a t e r i a l i w e l c o m e c h a l l e n g e a n y o u r c r e a t i v e s p i r i ts e e m s t k n o w n l i m i t s . I g o e s w i t h o u t s a y i n g t h a t d u r i n g t h s e c o n d h a l f o t h c y c l e , c l e v e r t h o u g h t s w i l l s e e m t e v a d e y o u ,t h s p a r k o c r e a t i v i t y s e e m s u t t e r l y q u e n c h e d , a n y o u ' r e p r o ba b l y b e t t e r o f a v o i d i n g i n t e l l e c t u a l c o n f r o n t a t i o n s .

W i t h e a c h o t h e s e c y c l e s , t h e r e i a l w a y s c h a n g e g o i n g f r o mt h e p l u s o t h u s i d e t t h m i n u s o t h d o w n s i d e , o v i c ev e r s a . T h e s e d a y s a r i n d i c a t e d i t h a b o v e d i a g r a m a t h o s ep o i n t s w h e r e t h c u r v e h i t s t h h o r i z o n t a l l i n e . S u c h d a y s a r r e g a r d e d a " c r i t i c a l d a y s . " A c c o r d i n g t t h a d v o c a t e s o b i o -r h y t h m t h e o r y , o n i m o r e a c c i d e n t p r o n e o t h c r i t i c a l d a y si b o t h t h p h y s i c a l a n e m o t i o n a l c y c l e s . I c r i t i c a l d a o c c u r si t h i n t e l l e c t u a l c y c l e , i i n o c o n s i d e r e d t b s n o t e w o r t h y ,e x c e p t i i c o i n c i d e s w i t h a c r i t i c a l d a i o n o t h o t h e r t w c y c l e s . S h o u l d t h i s b t h e c a s e , p a r t i c u l a r c a u t i o n i a d v i s e d . O c o u r s e , t h e r e i a l w a y s p o s s i b i l i t y t h a t o g i v e n d a y , a l t h r e ec y c l e s w i l l b a c r i t i c a l p o i n t s . O s u c h d a y , i i r e c o m m e n d e dt h a t y o w i t h d r a w f r o m n o r m a l d a i l y a c t i v i t y . I f a c t , s o m e e v e na d v o c a t e s p e n d i n g t h w h o l e d a i b e d ! F o r t u n a t e l y , s u c h d a

Page 97: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 97/244

B I O R H Y T H M S 9 w i l l o c c u r o n l y o n c e e v e r y s e v e n y e a r s o r s o I f a c t , a n g i v e ns e o t h e t h r e e c y c l e r e a d i n g s w i l l r e c u r o n l y o n c e e v e r y f i f t y -e i g h t y e a r s !W r e p e a t o n c e m o r e t h a t s f a r a s w a r c o n c e r n e d , b i o r h y t h mt h e o r y i j u s t t h a t — a t h e o r y . W h a v e n i d e a w h e t h e r o n o i h a a n v a l i d i t y . W a r m e r e l y p r e s e n t i n g t h t h e o r y t y o f o y o u r e d i f i c a t i o n , s t h a t s h o u l d y o w i s h t t a k e a d v a n t a g e o ft h p r o g r a m p r e s e n t e d b e l o w , y o w o u l d a t l e a s t u n d e r s t a n d t h i m p l i c a t i o n s i n v o l v e d .

T h c a l c u l a t i o n o o n e ' s b i o r h y t h m s r e q u i r e s t h e k n o w l e d g eo t h n u m b e r o f d a y s t h p e r s o n h a b e e n a l i v e u t t h d a i q u e s t i o n . F o e a c h o f t h e t h r e e c y c l e s , t h i s n u m b e r i d i v i d e d b 2 3 , 2 8 , o 3 3 d e p e n d i n g u p o n t h c y c l e o i n t e r e s t . T h r e m a i n d e rf r o m t h i s d i v i s i o n t e l l s y o h o m a n y d a y s i n t o t h p a r t i c u l a rc y c l e y o a r e . H a v i n g a y o u r s e r v i c e c o m p u t e r a p o w e r f u l a t h C o m m o d o r e 6 4 i i e a s y t c a l c u l a t e e a c h o t h e s e c y c l e sf o p e r i o d o s e v e n t e e n d a y s b e f o r e a n a f t e r a n g i v e n d a t ea n d i s p l a y t h w h o l e p e r i o d o t h s c r e e n a o n t i m e .

T r u t h p r o g r a m , a l y o h a v e t d i t t y p e i y o u rb i r t h d a t e ( i t h f o r m a t M M / D D / Y Y Y Y ) a n t h e n t h c u r r e n td a t e ( i t h s a m e f o r m a t ) . Y o m a y , o c o u r s e , e n t e r a n t w d a t e s , b u t h f i r s t m u s t p r e c e d e t h s e c o n d , a n t h e y m u s t b o t hb n e a r l i e r t h a n 1 5 8 3 , s i n c e t h i s w a w h e n t h c u r r e n t G r e g o r i a nc a l e n d a r w a i n t r o d u c e d . I n n t i m e a a l y o w i l l s e d i a g r a mo y o u r b i o r h y t h m c u r v e s b e i n g d r a w n b e f o r e y o u r v e r y e y e s , t t h a c c o m p a n i m e n t o s o m e e t h e r e a l - s o u n d i n g m u s i c . T h v e t i c a l l i n e d o w n t h e c e n t e r i n d i c a t e s t h p o i n t s o t h c u r v e s r e pr e s e n t i n g t h e c u r r e n t d a y , a n e a c h c o l u m n t t h l e f t o t h v e r t i c a l l i n e r e p r e s e n t s d a b e f o r e t h e c u r r e n t d a y , w h i l e e a c ht t h r i g h t r e p r e s e n t s d a a f t e r t h e c u r r e n t d a y . T h p h y s i c a lc y c l e i r e p r e s e n t e d b a s u c c e s s i o n o b r o w n P i r e v e r s e dg r a p h i c s . I s i m i l a r m a n n e r , t h e m o t i o n a l c y c l e i r e p r e s e n t e db t h l e t t e r i c y a n , a n t h i n t e l l e c t u a l c y c l e b t h l e t t e ri d a r k b l u e .

A f t e r d r a w i n g y o u r b i o r h y t h m , t h p r o g r a m w i l l w a i t f o y o u rr e s p o n s e a s t o w h e t h e r o r n o t y o w i s h t h a v e a n o t h e r b i o r h y t h md i s p l a y e d . A f t e r y o h a v e f i n i s h e d p e r u s i n g t h d i a g r a m o t h s c r e e n , y o m a a n s w e r o N

Page 98: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 98/244

9 Z A P P E R S F O R T H C O M M O D O R E 6 1 R E B I O R H Y T H M S1 P O K E 5 3 2 8 1 , 12 D I D A Y S ( 1 2 )3 F O 1 = T 1 2 : R E A D D A Y S ( I ) : N E X T4 D A T A 3 1 , 2 8 , 3 1 , 3 0 , 3 1 , 3 05 D A T A 3 1 , 3 1 , 3 0 , 3 1 , 3 0 , 3 16 P R I N T : I N P U T " B I R T H D A T E ( M M / D D / Y Y Y Y ) " ; A $7 S $ = A $ : G O S U B 3 0 8 I S > T H E N 1 0 9 P R I N T " B I R T H D A T E I N V A L I D " : G O T O 6 1 0 0 A = S1 1 P R I N T : I N P U T " T O D A Y ' S D A T E ( M M / D D / Y Y Y Y ) " ; B $1 2 S $ = B $ : G O S U B 3 0 1 3 I S > T H E N 1 5 1 4 P R I N T " T O D A Y ' S D A T E I N V A L I D " : G O T O 1 1 1 5 B = 1 6 I A < = B T H E N 1 9 1 7 P R I N T " D A T E S I W R O N G O R D E R "1 8 A $ = " " : B $ = " " : G O T O 6 1 9 A G E = B - A2 0 G O S U B 7 0 2 1 P R I N T " D O Y O U H A V E M O R E D A T E S < O N ) ? " ;2 2 G E A $ : I F A $ = " " T H E N 2 2 2 3 I A $ O " Y " A N A $ O " N " T H E N 2 2 2 4 P R I N T " D " ;2 5 I A $ = " Y " T H E N 6 2 6 P O K E 5 3 2 8 1 , 6 : P R I N T " F I N I S H E D "2 7 E N 3 0 R E C H A N G E D A T E T A B S O L U T E D A Y S3 1 S = 0 : I = 13 2 I L E N ( S $ ) > 1 0 O L E N ( S $ ) < 8 T H E N 5 9 3 3 I M I D $ ( S $ , I , 1 ) < " 0 " O M I D $ ( S $ , I , 1 ) > " 9 "

T H E N 5 9 3 4 M = A S C ( M I D $ ( S $ , I , 1 ) ) - 4 83 5 1 = 1 + 13 6 I M I D $ ( S $ , I , 1 ) = ' 7 " T H E N 4 1 3 7 I M I D $ ( S $ , I , 1 ) < " 0 " O M I D $ ( S $ , I , 1 ) > " 9 "

T H E N 5 9 3 8 M = M * 1 0 + A S C ( M I D $ ( S $ , I . 1 ) ) - 4 8

Page 99: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 99/244

B I O R H Y T H M S 9 3 9 1 = 1 + 14 0 I M I D $ ( S $ , I , 1 > < > " / " T H E N 5 9 4 1 1 = 1 + 14 2 I M I D $ ( S $ , I , 1 ) < " 0 " O M I D $ ( S $ , I , 1 ) > " 9 "

T H E N 5 9 4 3 D = A S C ( M I D $ ( S $ , I , 1 ) > - 4 84 4 1 = 1 + 14 5 I M I D $ ( S $ , I f 1 > = " / " T H E N 5 0 4 6 I M I D $ ( S $ # I , 1 ) < " 0 " O M I D $ ( S $ , I , 1 ) > " 9 "

T H E N 5 9 4 7 D = D * 1 0 + A S C ( M I D $ ( S $ , I , 1 ) ) - 4 84 8 1 = 1 + 14 9 I M I D $ ( S $ , I , 1 ) < > " / " T H E N 5 9 5 0 1 = 1 + 15 1 I L E N ( S $ ) - I < > 3 T H E N 5 9 5 2 0 Y = 05 3 F O R J = I T O 1 + 5 4 I M I D $ ( S $ , J , 1 ) < " 0 " O M I D $ ( S $ f J , 1 ) > " 9 "

T H E N 5 9 5 5 Y = Y * 1 0 + A S C ( M I D $ ( S $ , J , 1 ) ) - 4 85 6 N E X T5 7 I M < O M > 1 2 O D < O Y < 1 5 8 3 T H E N 5 9 5 8 G O S U B 6 0 5 9 R E T U R N6 0 0 R E M C A L C U L A T E D A Y S ( C H E C K L E A P Y R . )6 1 L E A P = ( ( I N T ( Y / 4 ) * 4 = Y A N I N T ( Y / 1 0 0 ) * 1 0 0 < > Y )O I N T ( Y / 4 0 0 ) * 4 0 0 = Y )6 2 D A Y S ( 2 ) = 2 8 : I F L E A P T H E N D A Y S ( 2 ) = 2 96 3 I D > D A Y S ( M ) T H E N 6 9 6 4 S = D + 3 6 5 * Y + I N T ( Y / 4 ) - I N T ( Y / 1 0 0 ) + I N T ( Y / 4 0 0 )6 5 I M = T H E N 6 9 6 6 F O 1 = T M - 6 7 S = S + D A Y S ( I )6 8 N E X T6 9 R E T U R N7 0 0 R E M D R A W B I O R H Y T H M7 1 0 P R I N T " Q " ;7 2 P = A G E - I N T ( A G E / 2 3 ) * 2 3 - 1 7

Page 100: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 100/244

9 Z A P P E R S F O R T H C O M M O D O R E 6 7 3 E = A G E - I N T ( A G E / 2 8 ) * 2 8 - 1 77 4 I = A 6 E - I N T ( A G E / 3 3 ) * 3 3 - 1 77 5 F O C O L = 0 T 3 7 6 K O L R = 0 : K A R = 6 7 : R O W = 1 0 : G O S U B 1 0 0 07 7 I C 0 L O 1 7 T H E N 8 0 7 8 K A R = 6 67 9 F O R 0 W = 0 T 2 0 : G 0 S U B 1 0 0 0 : N E X T R O 8 0 P S = I N T ( 1 0 * S I N ( 2 * I D * ( P + C O L ) / 2 3 ) + . 5 )8 1 E S = I N T ( 1 0 * S I N ( 2 * S * ( E + C O L ) / 2 8 ) . 5 8 2 I S = I N T ( 1 0 * S I N ( 2 * E I * ( I + C O L ) / 3 3 > . 5 8 3 R O W = 1 0 - P S : K A R = 1 4 4 : K O L R = 98 4 V O I C E = O : G O S U B 1 0 0 08 5 R 0 W = 1 0 - E S : K A R = 1 3 3 : K 0 L R = 38 6 V 0 I C E = 1 : G 0 S U B 1 0 0 08 7 R O W = 1 0 - I S : K A R = 1 3 7 : K O L R = 68 8 V 0 I C E = 2 : G 0 S U B 1 0 0 08 9 N E X T C O 9 0 P O K E 2 0 9 f 8 7 : P O K E 2 1 0 , 79 1 0 P O K E 2 1 1 , 0 : P O K E 2 1 4 , 2 29 2 P R I N T " ■ T O D A Y D "9 3 0 P O K E 5 4 2 7 6 , 09 4 P O K E 5 4 2 8 3 , 09 5 0 P O K E 5 4 2 9 0 , 09 6 R E T U R N1 0 0 0 R E M D R A W K A I K O L R A R O W , C O L1 0 1 0 P O K E 1 0 2 4 + 4 0 * R O W + C O L , K A R1 0 2 0 P O K E 5 5 2 9 6 + 4 0 * R O W + C 0 L , K O L R1 0 3 0 R E M M U S I C1 0 4 0 B A S E = 5 4 2 7 2 + V 0 I C E * 71 0 5 0 F R Q = 2 2 0 0 0 - R O W * 1 0 0 01 0 6 0 P O K E B A S E + 4 , 01 0 7 0 P O K E B A S E , F R Q A N D 2 5 51 0 8 0 P O K E B A S E + 1 , I N T ( F R Q / 2 5 6 )1 0 9 0 P O K E B A S E + 3 , 81 1 0 0 P O K E B A S E + 5 , 3 4 : P 0 K E B A S E + 6 , 3 41 1 1 0 P O K E 5 4 2 9 6 , 1 51 1 2 0 P O K E B A S E + 4 , 6 51 1 3 0 R E T U R N

Page 101: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 101/244

Page 102: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 102/244

7 0 Z A P P E R S F O R T H C O M M O D O R E 6 d a b e i n g d i s p l a y e d . I t r a n g e , t o o , c a v a r y f r o m - 1 t + 1 0 .

I T h h e i g h t o t h s i n e c u r v e o f t h i n t e l l e c t u a l c y c l e f o t h d a b e i n g d i s p l a y e d . I t r a n g e a l s o i b e t w e e n - 1 a n + 1 0 .

V O I C E I n d i c a t e s w h i c h v o i c e i t h s o u n d c h i p i t b u s e d f o t h s y m b o l b e i n g d i s p l a y e d . T h v o i c e s a r n u m b e r e d 0 1 a n 2

L I N E S O S P E C I A L I N T E R E S TS u b r o u t i n e3 0 0 - 5 9 0 : T h i s s u b r o u t i n e e x t r a c t s t h m o n t h , d a y , a n y e a r f r o m t h

d a t e i S w h i l e c h e c k i n g f o v a l i d i t y . T h s u b r o u t i n e i l i n e 6 0 i t h e n i n v o k e d t c o n v e r t t h e s e v a l u e s i n t o s i n g l e n u m b e r . F o m o r e d e t a i l s o t h t e c h n i q u e e m p l o y e d , s e e t h e p r o g r a m " E l a p s e dD a y s " ( C h a p t e r 3 )

S u b r o u t i n e6 0 0 - 6 9 0 : C o n v e r t s t h d a t e i n t o t h n u m b e r o d a y s s i n c e t h e y e a r

1 O n c e a g a i n , f u r t h e r d e t a i l s c a b f o u n d i " E l a p s e d D a y s . "

S u b r o u t i n e7 0 0 - 9 6 0 : T h i s s u b r o u t i n e p e r f o r m s t h e n t i r e t a s k o d i s p l a y i n g t h e

b i o r h y t h m c u r v e s .7 2 0 - 7 4 0 : C a l c u l a t e t h e b i o r h y t h m v a l u e s f o t h d a r e p r e s e n t e d

b y c o l u m n 0 o n t h s c r e e n . T h s u b t r a c t i o n o 1 m a r e s u l t i nn e g a t i v e v a l u e , b u t h i s i f i n e f o o u p u r p o s e s .

7 5 0 - 8 9 0 : C a l c u l a t e t h b i o r h y t h m f o 3 d a y s .7 6 0 : D r a w s p a r t o t h e h o r i z o n t a l l i n e .7 7 0 - 7 9 0 : W h e n t h e c u r r e n t d a t e i r e a c h e d , t h e s e l i n e s o c o d ed r a w v e r t i c a l l i n e d o w n t h c e n t e r o t h s c r e e n . S i n c e t h i s i d o n e b e f o r e p l o t t i n g t h p o r t i o n o t h c u r v e f o t h a t d a y , i w i l l b o v e r w r i t t e n a n e c e s s a r y b t h c u r v e s .8 0 0 - 8 2 0 : C a l c u l a t e s t h e d i s t a n c e o t h c u r v e f r o m t h e h o r i z o n t a ll i n e . T h a r g u m e n t s t t h s i n e f u n c t i o n s c o n v e r t t h b i o r h y t h mv a l u e s t c o r r e s p o n d i n g r a d i a n v a l u e s ( n o t e t h e u s o t h p s y m b o l . )A d d i n g t h v a l u e o C O t P E o p r o d u c e s t h b i o r h y t h mr e a d i n g f o t h d a t h a t i b e i n g c a l c u l a t e d .8 3 0 - 8 4 0 : T h r o a w h i c h s y m b o l i t b p l a c e d i c a l c u l a t e d .K A g e t s t h s c r e e n d i s p l a y c o d e f o r e v e r s e d - g r a p h i c s P K O L R

Page 103: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 103/244

B I O R H Y T H M S 1 0 i a s s i g n e d t h v a l u e f o b r o w n . T h s u b r o u t i n e a l i n e 1 0 0 0 i c a l l e d t d i s p l a y t h s y m b o l a n p l a y a a p p r o p r i a t e t o n e t h r o u g hv o i c e 0 8 5 0 - 8 8 0 : T h e s e l i n e s d f o t h e m o t i o n a l a n t h i n t e l l e c t u a lc u r v e s w h a t l i n e s 8 3 a n 8 4 0 d o f o t h p h y s i c a l c u r v e . I l i n e8 5 K A g e t s t h e v a l u e f o r e v e r s e d - g r a p h i c s a n K O L R g e t st h v a l u e f o c y a n ; i 8 7 K A g e t s t h v a l u e f o r e v e r s e d - g r a p h i c s

a n K O L R f o r t h e c o l o r d a r k b l u e .9 0 0 - 9 2 0 : N o t i c e h o l o c a t i o n 2 1 i b e i n g u s e d ; a f t e r t h P R I N T

i l i n e 9 2 i p e r f o r m e d , t h c u r s o r w i l l b r e p o s i t i o n e d a r o 2 3 H o w e v e r , t h m e s s a g e p r i n t e d b l i n e 9 2 w i l l o c c u r a t h e l o c a t i o nd e t e r m i n e d b t h P O K E s i l i n e 9 0 0 .

9 3 0 - 9 5 0 : T u r n o f a l t h v o i c e s .

S u b r o u t i n e1 0 0 0 - 1 1 3 0 : T h i s i c o m p o s i t e s u b r o u t i n e . B t h i s w m e a n t h a t

w h a v e c o m b i n e d t w f u n c t i o n s t h a t c o u l d h a v e b e e n p l a c e d i t w s e p a r a t e s u b r o u t i n e s . L i n e s 1 0 1 0 a n d 1 0 2 0 p l a c e t h e s p e c i f i e dc h a r a c t e r a t h s p e c i f i e d l o c a t i o n o t h s c r e e n . L i n e s 1 0 4 0 o n w a r dp r o d u c e a a p p r o p r i a t e t o n e .

1 0 4 0 : T h v a r i a b l e B A S E i a s s i g n e d t h m e m o r y l o c a t i o n c o r r es p o n d i n g t t h f i r s t v o i c e r e g i s t e r o t h v o i c e s p e c i f i e d b t h v a r i a b l e ( y o u g u e s s e d i t ! ) V O I C E .

1 0 5 0 : F R i a s s i g n e d a a p p r o p r i a t e f r e q u e n c y v a l u e b a s e d u p o nt h r o a w h i c h t h l a s t s y m b o l i p l a c e d . T h c l o s e r t t h t o o t h s c r e e n i w a p l a c e d , t h h i g h e r t h f r e q u e n c y . I t h i s w a y ,y o c a a c t u a l l y " h e a r " h o b a o g o o d y o u r b i o r h y t h m i s

S U G G E S T E D E N H A N C E M E N T S1 Y o m i g h t w a n t t s o m e h o w i n d i c a t e t h e d a t e f o e a c h o t h d i

p l a y e d r e a d i n g s . T h i s w i l l a l m o s t c e r t a i n l y r e s t r i c t t h n u m b e r o d a y s d i s p l a y e d .

2 Y o m i g h t w a n t t i n c l u d e t h o p t i o n o d i s p l a y i n g a n y o n e o t h t h r e e c u r v e s s e p a r a t e l y .

3 Y o c a a r r a n g e t h p r o g r a m s t h a t b p r e s s i n g o n o t h f u n c t i o nk e y s y o c a d i s p l a y t h p r e v i o u s o r t h n e x t t h i r t y - f i v e d a y s o b i o r h y t h m s .

Page 104: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 104/244

C H A P T E R 1 H A N G M A N

T h e r e a r p r o b a b l y f e o u w h h a v e n o e n o r m o u s l y e n j o y e dp l a y i n g t h g a m e o h a n g m a n , p a r t i c u l a r l y i o u y o u n g e r y e a r s .F o t h o s e o y o w h h a v e l i v e d o s o m e o u t e r p l a n e t a l t h i st i m e a n d n o k n o w t h i s w o n d e r f u l g a m e , h e r e i h o o u C o m m o d o r e 6 v e r s i o n o t h g a m e i p l a y e d .

T h c o m p u t e r d r a w s l i t t l e s c a f f o l d a n a n o o s e . I t h e n s c r e t l y s e l e c t s w o r d f r o m i t p o o l o f f i f t y w o r d s a n d d i s p l a y sg r o u p o d a s h e s , w i t h t h n u m b e r o f d a s h e s c o r r e s p o n d i n g t t h n u m b e r o l e t t e r s m a k i n g u p t h w o r d . T h p l a y e r h a t g u e s sa t h h i d d e n w o r d , o n c h a r a c t e r a t i m e . T h i s i d o n e b p r e s s i n g t h a p p r o p r i a t e l e t t e r o t h k e y b o a r d ( n R E T U R N i n e c e s s a r y ) . I t h s e l e c t e d l e t t e r i c o n t a i n e d i t h s e c r e t w o r d ,t h a t l e t t e r r e p l a c e s a l t h d a s h e s t h a t c o r r e s p o n d t t h a t l e t t e r i t h h i d d e n w o r d . I i a p p e a r s i t h w o r d m o r e t h a n o n c e , a l o c c u r r e n c e s a r e r e v e a l e d . h i g h - p i t c h e d t o n e i s o u n d e d t a k n o w l e d g e t h i s s u c c e s s f u l m o v e . I t h c h o s e n l e t t e r d o e s n o m a t c h a n o t h l e t t e r s o t h h i d d e n w o r d , t h l e t t e r c h o s e n i p l a c e d i l i s t b e l o w t h d a s h e s a n a l o w - p i t c h e d t o n e i e m i t t e dt s i g n a l f a i l u r e . I a d d i t i o n , p a r t o m a i d r a w n h a n g i n gf r o m t h n o o s e . I l e t t e r t h a t h a a l r e a d y b e e n c h o s e n i s e l e c t e d ,

m e s s a g e t t h i s e f f e c t i d i s p l a y e d b u t h p l a y e r i ( m e r c i f u l l y )n o p e n a l i z e d . T h p l a y e r w i n s i h g u e s s e s t h s e c r e t w o r d7 0

Page 105: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 105/244

H A N G M A N 1 0 b e f o r e t h h a n g i n g m a i f u l l y c o n s t r u c t e d . O n c e t h i s o c c u r s ,h i g h - p i t c h e d t o n e i a g a i n p r o d u c e d . I f h o w e v e r , t h h a n g i n gm a i c o m p l e t e d b e f o r e t h s e c r e t w o r d i g u e s s e d , t h p l a y e rl o s e s t t h a c c o m p a n i m e n t o w e l l - k n o w n d i r g e . I a a n t i m eb e f o r e t h r o u n d i c o n c l u d e d t h p l a y e r w i s h e s t s u r r e n d e r , h m a t y p e q u e s t i o n m a r k . T h i s c a u s e s t h c o m p u t e r t r e v e a lt h e n t i r e w o r d t t h a c c o m p a n i m e n t o t h d i r g e . I a n c a s e ,t h p l a y e r i a s k e d i a n o t h e r r o u n d i r e q u i r e d .

T h h a n g i n g m a i c o n s t r u c t e d i e i g h t p a r t s . F i r s t t h h e a d ,t h e n t h t o r s o , f o l l o w e d b t h l e f t a r m , t h e n t h r i g h t a r m , t h l e f t l e g , t h r i g h t l e g , t h h a n d s , a n f i n a l l y t h f e e t . T h u s t h p l a y e r m u s t m a k e e i g h t w r o n g g u e s s e s b e f o r e h l o s e s t h g a m e .

R E H A N G M A N1 D I C H A R ( 2 5 ) , F < 1 0 , 3 )2 P O K E 5 3 2 8 1 , 1 : P R I N T " B ] " ; : G O S U B 1 5 0 03 F O 1 = T 2 5 : C H A R ( I ) = 0 : N E X T4 R E S T O R E : Q = I N T ( R N D ( 0 ) * 5 0 ) + 15 0 F O R 1 = T 6 R E A D W U R D $7 N E X T8 G O S U B 6 0 0 : P = 0 : K O U N T = L E N ( U U R D $ )9 R O W = 1 7 : C O L = 1 5 : G O S U B 1 4 0 01 0 F O 1 = T K O U N T1 1 P L A C E = A S C ( M I D $ ( W U R D $ f I , 1 ) ) - 6 51 2 C H A R ( P L A C E ) = C H A R ( P L A C E ) + 11 3 P R I N T " - " ;1 4 N E X T1 5 R O W = 2 1 : C O L = 0 : G O S U B 1 4 0 01 6 P R I N T " L E T T E R ? " 1 7 G E A $ : I F A $ = I I M T H E N 1 7 1 8 I A $ = " ? " T H E N 4 0 1 9 I A $ < " A " O A $ > " Z " T H E N 1 7 2 0 P R I N T A 2 1 P L A C E = A S C ( A $ ) - 6 52 2 I C H A R ( P L A C E ) = O T H E N 3 2 02 3 I C H A R ( P L A C E ) > 0 T H E N 4 8

Page 106: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 106/244

7 0 Z A P P E R S F O R T H C O M M O D O R E 6 2 4 G O S U B 1 4 0 02 5 0 P R I N T " Y O U G U E S S E D " ; A $ ; " A L R E A D Y "2 6 I C H A R ( P L A C E ) = - 1 T H E N 2 8 2 7 0 P O K E 5 6 0 6 6 + P L A C E , 82 8 F O 1 = T 1 0 0 0 : N E X T2 9 F O 1 = 1 8 6 4 T 1 8 8 4 : P 0 K E I , 3 2 : N E X T3 0 P O K E 5 6 0 6 6 + P L A C E . O3 1 0 G O T O 1 5 3 2 0 G O S U B 1 2 0 0 : P = P + 1 : G O S U B 8 0 3 3 R O W = 1 9 : C O L = P L A C E + 1 0 : G O S U B 1 4 0 03 4 0 P R I N T A $ 3 5 F O 1 = T 4 0 0 : N E X T I : P O K E 5 4 2 7 6 , 03 6 0 P O K E 1 8 7 2 , 3 23 7 C H A R ( P L A C E ) = - 2 : I F P < T H E N 1 5 3 8 C 0 L = 0 : R O W = 2 3 : G O S U B 1 4 0 03 9 P R I N T " Y O U L O S E ! "4 0 R 0 W = 1 7 : C 0 L = 1 5 : G 0 S U B 1 4 0 0 : P R I N T U U R D $4 1 G O S U B 1 6 0 04 2 R O U = 2 4 : C O L = 0 : G O S U B 1 4 0 04 3 P R I N T " A G A I N ( O N > " 4 4 0 G E T A $ : I F A $ = " " T H E N 4 4 4 5 I A $ = " Y " T H E N 3 04 6 I A $ O " N " T H E N 4 4 4 7 0 P O K E 5 3 2 8 1 , 6 : P R I N T " Q D G A M E O V E R " : E N D4 8 0 G O S U B 1 3 0 04 9 F O 1 = T L E N ( W U R D S )5 0 I M I D $ ( W U R D $ , I , 1 ) O A $ T H E N 5 2 5 1 P O K E 1 7 1 8 + 1 , P L A C E + 15 2 N E X T5 3 F O 1 = T 4 0 0 : N E X T I r P O K E 5 4 2 7 6 , 05 4 P O K E 1 8 7 2 , 3 25 5 K O U N T = K O U N T - C H A R C P L A C E )5 6 C H A R ( P L A C E ) = - 1 : I F K O U N T > 0 T H E N 1 5 5 7 G O S U B 1 3 0 0 : R O W = 2 3 : G O S U B 1 4 0 05 8 P R I N T " Y O U W I N ! " : F O R 1 = T 1 0 0 0 : N E X T5 9 P O K E 5 4 2 7 6 , 0 : G O T O 4 2 6 0 R E S C A F F O L D6 1 P R I N T " □ " ; S P C ( 8 ) ; " H H H B H H H H H H H "6 2 P R I N T S P C ( 8 ) ; " Q H " ; S P C ( 5 ) ; " □

Page 107: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 107/244

H A N G M A N 1 0 6 3 P R I N T S P C ( 8 ) ; " a n ; S P C ( 6 ) ; " S □ 6 4 P R I N T S P C ( 8 ) ; M a n ; S P C ( 7 ) ; " S □ 6 5 0 P R I N T S P C ( 9 ) ; " S y M ; S P C ( 6 ) ; " S a "6 6 P R I N T S P C ( 1 8 ) ; " a n6 7 P R I N T S P C ( 1 8 ) ; M n "6 8 P R I N T S P C ( 1 8 ) ; M n "6 9 P R I N T S P C ( 1 8 ) ; n a "7 0 P R I N T S P C ( 1 8 ) ; " [ i r7 1 P R I N T S P C ( 1 8 ) ; " a "7 2 P R I N T S P C < 1 8 ) ; M a "7 3 P R I N T S P C ( 1 8 ) ; M a M7 4 P R I N T S P C ( 4 ) ; " D ■ 7 5 R E T U R N8 0 0 R E M D R A W P A R T S8 1 O G O T O 8 2 0 , 8 7 0 , 9 2 0 , 9 5 0 , 9 8 0 , 1 0 2 0 , 1 0 6 0

1 0 9 08 2 R E H E A D8 3 P R I N T " O Q D " ; T A B ( 9 > ; " C a * n "8 4 P R I N T T A B ( 9 ) ; " m [ T J "8 5 P R I N T T A B ( 1 1 ) ; " O "8 6 R E T U R N8 7 R E B O D Y8 8 P R I N T " H O Q O n n " ; T A B ( 1 0 ) ; " D8 9 P R I N T T A B ( 1 0 ) ; " Q9 0 P R I N T T A B ( 1 O ) ; " I 19 1 R E T U R N9 2 R E L E F T A R 9 3 P R I N T " B D D f l D O " ; T A B ( 8 ) ; " n n "9 4 R E T U R N9 5 R E R I G H T A R 9 7 0 R E T U R N9 8 R E L E F T L E 9 9 P R I N T " H D D D D D D D D " ; T A B ( 9 ) - " 0 "1 0 0 0 P R I N T T A B ( 8 ) ; " I Z I M1 0 1 0 R E T U R N1 0 2 0 R E R I G H T L E 1 0 3 0 P R I N T " Q O O Q O n D l ! j n " ; T A B ( 1 1 ) - " S "1 0 4 0 P R I N T T A B ( 1 2 ) ; " S "

Page 108: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 108/244

1 0 Z A P P E R S F O T H C O M M O D O R E 6 1 0 5 0 R E T U R N1 0 6 0 R E H A N D S1 0 7 0 P R I N T " H B D D B D B B B B B B B BD D D D D 11 0 8 0 R E T U R N1 0 9 0 R E M F E E T1 1 0 0 P R I N T " B Q D D D D D O D DH B B B B B U "1 1 1 0 R E T U R N1 2 0 0 R E B A D B E E P1 2 1 0 P O K E 5 4 2 7 2 , 1 3 21 2 2 0 P O K E 5 4 2 7 3 , 31 2 3 0 P O K E 5 4 2 7 7 , 1 6 01 2 4 0 P O K E 5 4 2 7 8 , 2 5 01 2 5 0 P O K E 5 4 2 9 6 , 1 51 2 6 0 P O K E 5 4 2 7 6 , 3 31 2 7 0 R E T U R N1 3 0 0 R E 6 0 0 D B E E P1 3 1 0 P O K E 5 4 2 7 2 , 3 21 3 2 0 P O K E 5 4 2 7 3 , 7 81 3 3 0 P O K E 5 4 2 7 7 , 3 41 3 4 0 P O K E 5 4 2 7 8 , 1 3 81 3 5 0 P O K E 5 4 2 9 6 , 1 51 3 6 0 P O K E 5 4 2 7 6 , 3 31 3 7 0 R E T U R N1 4 0 0 R E P O S I T I O N C U R S O R A R O W , C O L1 4 1 0 S P O T = 1 0 2 4 + R O W * 4 0 + C O L1 4 2 0 P O K E 2 0 9 , S P O T A N D 2 5 51 4 3 0 P O K E 2 1 0 , I N T ( S P O T / 2 5 6 )1 4 4 0 P O K E 2 1 1 , 01 4 5 0 R E T U R N1 5 0 0 R E M L O A D D E A T H M A R C H1 5 1 0 F O 1 = T 5 0 : R E A D A $ : N E X T1 5 2 0 F O 1 = T 1 1 5 3 0 R E A D F ( I , 0 ) , F ( I , 1 ) , F ( I , 2 ) , F ( I , 3 )1 5 4 0 N E X T1 5 5 0 R E T U R N1 6 0 0 R E P L A Y D E A T H M A R C H1 6 1 0 F O 1 = 5 4 2 7 7 T O 5 4 2 9 1 S T E P

Page 109: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 109/244

Page 110: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 110/244

7 0 Z A P P E R S F O R T H C O M M O D O R E 6 2 0 4 0 D A T A 3 6 0 8 , 4 2 9 1 , 5 4 0 7 , 3 0 02 0 5 0 D A T A 4 2 9 1 , 5 4 0 7 , 0 , 1 7 02 0 6 0 D A T A 4 0 5 0 , 4 8 1 7 , 0 , 52 0 7 0 D A T A 4 0 5 0 , 4 8 1 7 , 0 , 1 7 02 0 8 0 D A T A 3 6 0 8 , 4 2 9 1 , 0 , 52 0 9 0 D A T A 3 6 0 8 , 4 2 9 1 , 0 , 1 7 02 1 0 0 D A T A 3 4 0 6 , 4 0 5 0 , 0 , 52 1 1 0 D A T A 3 6 0 8 , 4 2 9 1 , 0 , 3 0 0

G L O S S A R Y O V A R I A B L E SC H A R A a r r a y o f t w e n t y - s i x e l e m e n t s n u m b e r e d 0 t h r o u g h 2 5

E a c h e l e m e n t c o n t a i n s a v a l u e i n d i c a t i n g h o m a n y o t h c o r r e s p o n d i n g l e t t e r s o c c u r i t h s e c r e t w o r d . S e t t i n g a e l e m e n t t - i n d i c a t e s t h a t t h l e t t e r h a a l r e a d y b e e nc o r r e c t l y g u e s s e d b t h e p l a y e r . S e t t i n g t h l o c a t i o n t i n d i c a t e s t h a t t h p l a y e r h a g u e s s e d t h l e t t e r b u t h l e t t e rd o e s n o o c c u r i t h s e c r e t w o r d .

m a t r i x w h o s e r o w s a r n u m b e r e d 0 t h r o u g h 1 a n w h o s e c o l u m n s a r n u m b e r e d t h r o u g h 3 T h i s m a t r i x i u s e d t h o l d t h d e a t h - m a r c h t u n e . E a c h r o r e p r e s e n t sn o t e o t h e t u n e . T h f i r s t t h r e e c o l u m n s ( t h r o u g h 2 r e p r e s e n t t h f r e q u e n c i e s t b p l a y e d b t h t h r e e v o i c e s .T h f i n a l c o l u m n c o n t a i n s a v a l u e t h a t d e t e r m i n e s h o l o n g e a c h n o t e i t b s u s t a i n e d .

W U R D $ H o l d s t h e s e l e c t e d s e c r e t w o r d .R e c o r d s h o m a n y w r o n g g u e s s e s h a v e b e e n m a d e a n a l s o i n d i c a t e s w h i c h p a r t o t h m a i t b d r a w n n e x t .P L A C E T h i s v a r i a b l e i u s e d i s e v e r a l d i f f e r e n t w a y s . I n g e n e r a l ,i c o n v e r t s g i v e n l e t t e r t i t c o r r e s p o n d i n g s e q u e n c en u m b e r b e t w e e n a n 2 5 R O I n d i c a t e s t h e r o a w h i c h t h c u r s o r i t b p o s i t i o n e d .C O I n d i c a t e s t h c o l u m n a w h i c h t h c u r s o r i t b p o s it i o n e d .K O U N T T h i s i n d i c a t e s h o m a n y l e t t e r s o t h s e c r e t w o r d h a v en o b e e n g u e s s e d b t h e p l a y e r .

Page 111: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 111/244

H A N G M A N 1 0

L I N E S O S P E C I A L I N T E R E S T4 0 - 7 0 : R a n d o m l y s e l e c t s w o r d f r o m t h p o o l o 5 w o r d s .1 0 0 - 1 4 0 : F o e a c h l e t t e r o W U R D $ , i n c r e m e n t t h c o r r e s p o n d i n g

e l e m e n t o C H A R a n p r i n t d a s h o t h s c r e e n .1 7 0 - 2 1 0 : G e l e t t e r f r o m t h p l a y e r a n a s s i g n t P L A C E t h c o

r e s p o n d i n g s e q u e n c e n u m b e r ( 0 - 2 5 ) . I t h p l a y e r t y p e s i q u e st i o n m a r k ( ? ) , c o n t r o l p a s s e s t o l i n e 4 0 0 , w h e r e t h a n s w e r i r e v e a l e d a n t h e d i r g e i p l a y e d .

2 2 0 : I t h c o r r e s p o n d i n g l o c a t i o n o C H A R i e q u a l t o 0 , t h p l a y e rh a m a d e a i n c o r r e c t g u e s s .2 3 0 : I t h c o r r e s p o n d i n g l o c a t i o n o C H A R i g r e a t e r t h a n 0 t h

p l a y e r h a m a d e c o r r e c t g u e s s .2 4 0 - 3 1 0 : T h p l a y e r h a a l r e a d y s e l e c t e d t h l e t t e r . I i i n o p r e s e n t

i t h s e c r e t w o r d ( l i n e 2 6 t e s t s f o t h i s ) , t h e n t h c o p y o t h l e t t e r i t h l i s t o w r o n g g u e s s e s i m o m e n t a r i l y h i g h l i g h t e d i o r a n g e ( l i n e s 2 7 0 - 2 8 0 ) . L i n e 2 9 d e l e t e s t h m e s s a g e p r i n t e d i l i n e 2 5 0 .

3 2 0 - 3 4 0 : T h p l a y e r h a s m a d e a i n c o r r e c t g u e s s . T h o f f e n d i n gl e t t e r i p l a c e d i t h l i s t o i n c o r r e c t g u e s s e s ( b e l o w t h d a s h e s )i l o c a t i o n d e t e r m i n e d b t h v a l u e o f P L A C E .

3 5 0 : A f t e r a s h o r t t i m e t h l o w - p i t c h e d t o n e i s h u t o f f .3 6 0 : T h i s P O K E b l a n k s o u t t h e s e l e c t e d l e t t e r t h a t a p p e a r s a f t e r t h

q u e s t i o n m a r k .3 7 0 : R e c a l l t h a t s e t t i n g a n e l e m e n t o C H A R t i n d i c a t e s t h a t t h

c o r r e s p o n d i n g l e t t e r w a g u e s s e d b t h p l a y e r b u d o e s n o o c c u ri t h w o r d .

3 8 0 - 4 1 0 : i e q u a l t s t h p l a y e r h a l o s t . T h c o r r e c t w o r d i d i s p l a y e d i p l a c e o t h d a s h e s ( s e e l i n e 4 0 0 ) .

4 7 0 : N o t i c e t h a t t h p r o g r a m e n d s h e r e r a t h e r t h a n a t h e n o t h m a i n r o u t i n e .

4 9 0 - 5 2 0 : S i n c e t h p l a y e r h a m a d e c o r r e c t g u e s s , t h s e c r e t w o r di s c a n n e d t f i n d a l t h o c c u r r e n c e s o t h g u e s s e d l e t t e r . I l i n e5 1 t h e x p r e s s i o n 1 7 1 8 c a l c u l a t e s t h a p p r o p r i a t e l o c a t i o n i s c r e e n m e m o r y . T h e d a s h i n t h a t l o c a t i o n i r e p l a c e d w i t h t h g u e s s e d l e t t e r . S i n c e t h s c r e e n d i s p l a y c o d e s f o l e t t e r s r a n g e f r o mt 2 6 t h e x p r e s s i o n P L A C E + 1 p r o d u c e s t h c o r r e c t c o d e .

5 6 0 : S e t t i n g t h e a p p r o p r i a t e e l e m e n t o f C H A R t - i n d i c a t e s t h a tt h l e t t e r w a g u e s s e d a n o c c u r s i t h s e c r e t w o r d .

5 7 0 - 5 9 0 : T h p l a y e r h a g u e s s e d a l t h l e t t e r s a n t h e r e f o r e w i n s .

Page 112: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 112/244

1 1 Z A P P E R S F O R T H C O M M O D O R E 6 S u b r o u t i n e6 0 0 - 7 5 0 : C l e a r s t h s c r e e n a n p r i n t s t h s c a f f o l d .

6 1 0 : T h g r a p h i c s c h a r a c t e r u s e d i C o m m o d o r e k e y - I . T h e r e a r e l e v e n o t h e m p r e s e n t .

6 2 0 : I n t h e s e c o n d l i t e r a l t h g r a p h i c s c h a r a c t e r s u s e d a r s h i f t - Ma n C o m m o d o r e k e y - M . T h e r e a r e t h r e e s p a c e s b e t w e e n t h e m .T h e s e g r a p h i c s c h a r a c t e r s a r e a l s o t h o n e s u s e d i t h s e c o n d l i t e r a l so t h l i n e s 6 3 a n 6 4 0 . H o w e v e r , i l i n e 6 3 t h e r e a r e t w s p a c e sb e t w e e n t h e s e g r a p h i c s c h a r a c t e r s a n i 6 4 t h e r e i o n l y o n s p a c eb e t w e e n t h e m .

6 3 0 - 6 4 0 : T h g r a p h i c s c h a r a c t e r u s e d i t h f i r s t l i t e r a l o f b o t ht h e s e l i n e s i C o m m o d o r e k e y - M .6 5 0 : T h g r a p h i c s c h a r a c t e r s i t h f i r s t l i t e r a l a r s h i f t - M a n C o m m o d o r e k e y - I . T h c h a r a c t e r s i t h s e c o n d l i t e r a l a r s h i f t - Ma n s h i f t - a t - s i g n ( @ ) .

6 6 0 - 7 3 0 : I a l t h e s e l i n e s t h g r a p h i c s c h a r a c t e r u s e d i C o m m o d o r ek e y - M .

7 4 0 : T h e r e a r s e v e n t e e n s p a c e s w i t h i n t h l i t e r a l .S u b r o u t i n e8 0 0 - 1 1 1 0 : T h i s s u b r o u t i n e d r a w s t h v a r i o u s p a r t s o t h b o d y i t h

a p p r o p r i a t e l o c a t i o n s .8 1 0 : T r a n s f e r s c o n t r o l t t h a p p r o p r i a t e l i n e b a s e d u p o n t h v a l u e

o P 8 3 0 - 1 1 0 0 : G r a p h i c s c h a r a c t e r s u s e d i t h i s s u b r o u t i n e , o t h e r t h a n

t h e c o n t r o l c h a r a c t e r s r e f e r e n c e d i T a b l e i t h e I n t r o d u c t i o n , a r ea s f o l l o w s :

L i n e N o . G r a p h i c s C h a r a c t e r s

8 3 S h i f t - U a n s h i f t - I8 4 S h i f t - B ( o s h i f t - m i n u s )8 5 S h i f t - K9 3 C o m m o d o r e k e y - Y9 6 C o m m o d o r e k e y - Y9 9 S h i f t - N

1 0 0 0 S h i f t - N1 0 3 0 S h i f t - M1 0 4 0 S h i f t - M1 0 7 0 S h i f t - 0 a n s h i f t - P1 1 0 0 C o m m o d o r e k e y - 0

I l i n e s 1 0 7 0 a n d 1 1 0 0 m a k e s u r e t c o u n t t h c u r s o r c h a r a c t e r sc a r e f u l l y , a n t y p e t h e m a o n s t r i n g w i t h n s p a c e s .

Page 113: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 113/244

H A N G M A N 1 1 S u b r o u t i n e1 2 0 0 - 1 2 7 0 : P l a y s a l o t o n e t i n d i c a t e w r o n g l e t t e r . T h t o n e i

t u r n e d o h e r e a n t u r n e d o f i t h m a i n r o u t i n e .

S u b r o u t i n e1 3 0 0 - 1 3 7 0 : P l a y s a h i g h t o n e t o i n d i c a t e c o r r e c t l e t t e r ( o w i n ) .

A g a i n , t h t o n e i o n l y t u r n e d o h e r e .

S u b r o u t i n e1 4 0 0 - 1 4 5 0 : R e p o s i t i o n s t h c u r s o r a s p e c i f i e d b R O a n C O L .S u b r o u t i n e1 5 0 0 - 1 5 5 0 : L o a d s t h n o t e s f o t h d e a t h m a r c h i n t o m a t r i x F

1 5 1 0 : S i n c e t h n o t e s a r f o u n d i D A T A s t a t e m e n t s f o l l o w i n g t h w o r d l i s t , t h i s l i n e s k i p s o v e r t h w o r d s t r e a c h t h e n o t e s .

S u b r o u t i n e1 6 0 0 - 1 7 8 0 : P l a y s t h d e a t h m a r c h .

1 6 1 0 - 1 6 3 0 : L o a d t h s a m e A D S R v a l u e s i n t o a l t h r e e v o i c e s . ( S e eP r o g r a m m e r ' s R e f e r e n c e G u i d e f o r f u r t h e r d e t a i l s . )

1 6 5 0 - 1 7 7 0 : P l a y a l e l e v e n c h o r d s .1 6 6 0 - 1 6 9 0 : F o e a c h v o i c e , l o a d t h e a p p r o p r i a t e n o t e o t h c h o r d

i n t o t h f r e q u e n c y r e g i s t e r s .1 7 0 0 - 1 7 2 0 : T u r n o n a l t h e v o i c e s .1 7 3 0 : T h v a l u e i c o l u m n o f m a t r i x i u s e d t d e t e r m i n e t h

l e n g t h o t h i s d e l a y l o o p . T h v o i c e s r e m a i n o f o t h i s l e n g t h o t i m e .

1 7 4 0 - 1 7 6 0 : T e r m i n a t e a l n o t e s o t h c h o r d .1 8 0 0 - 1 9 7 0 : T h p o o l o f f i f t y w o r d s .2 0 0 0 - 2 1 1 0 : T h n o t e s f o t h d e a t h m a r c h .

S U G G E S T E D E N H A N C E M E N T S1 T h v o c a b u l a r y l i s t c a n a l w a y s b c h a n g e d a w i l l .2 T h l e n g t h o t h v o c a b u l a r y l i s t c a b a l t e r e d . B s u r e t c h a n g e

l i n e s 4 0 a n d 1 5 1 0 , h o w e v e r .3 T m a k e t h g a m e m o r e d i f f i c u l t , h a v e f e w e r b o d y p a r t s f o t h

m a n . A m o n g o t h e r c h a n g e s , t h i s w o u l d r e q u i r e c h a n g e s t l i n e 3 7 0 .4 H a v e t h c o m p u t e r p r i n t o u t a p e r f o r m a n c e r a t i n g s h o w i n g t h n u

b e o s u c c e s s f u l a n u n s u c c e s s f u l g a m e s .5 C h a n g e t h v o c a b u l a r y t o t h a t o f o r e i g n l a n g u a g e i o r d e r t h e l p

g a i n g r e a t e r f a m i l i a r i t y w i t h t h l a n g u a g e .

Page 114: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 114/244

C H A P T E R 1 R U H A R R Y !

I t h i s g a m e y o a s s u m e t h r o l e o H a r r y , t h f o r m i d a b l e a l i e nh u n t e r . Y o a r r e p r e s e n t e d o t h s c r e e n a l i t t l e w h i t e b o x .S h o r t l y a f t e r t h g a m e c o m m e n c e s a l i e n s r e p r e s e n t e d b b l a c kb o x e s s t a r t t a p p e a r a n a c t u a l l y c h a s e y o u , r e g a r d l e s s o w h e r ey o m i g h t b l o c a t e d , i m u c h t h s a m e w a t h a t i r o n f i l i n g sf o l l o w m a g n e t . H o w e v e r , y o u h a v e s e v e r a l m a j o r a d v a n t a g e so v e r t h a l i e n s . I t h f i r s t p l a c e , y o c a r u o f t h e d g e o t h s c r e e n a n r e a p p e a r o t h o p p o s i t e e d g e . T h a l i e n s c a n n o tp u r s u e y o o f t h e d g e o t h s c r e e n b u m u s t t u r n a r o u n d a n r u i t h o p p o s i t e d i r e c t i o n . A l s o , a r a n d o m i n t e r v a l s , s o m ef r i e n d s o f y o u r s w i l l a p p e a r o t h s c r e e n i t h f o r m o f g r a y a t s i g n s ( @ ) . I y o s u c c e e d i e n g u l f i n g o n o t h e s e a t - s i g n s ,y o u r i n c r e a s e d e n e r g y h a t h e f f e c t o c h a n g i n g t h e c o l o r o t h a l i e n s t o p u r p l e . T h e y w i l l t h e n r u a w a y f r o m y o u ; i y o s u c c e e di c a t c h i n g t h e m , t h e y w i l l d i a n y o w i l l e a r n t e p o i n t s f o re a c h a l i e n e a t e n . ( T h e s c o r e i c o n s t a n t l y d i s p l a y e d a t h t o o t h s c r e e n . ) B c a r e f u l , t h o u g h , b e c a u s e a f t e r w h i l e t h e a l i e n sw i l l t u r n b l a c k a g a i n a n y o w i l l h a v e n p o w e r o v e r t h e m .S h o r t l y b e f o r e t h e y c h a n g e t b l a c k , t h e y w i l l t u r n l i g h t r e d , i o r d e r t a l e r t y o t o t h e i r i m p e n d i n g t r a n s f o r m a t i o n . I o n o t h a l i e n s c a t c h e s y o w h i l e i i c o l o r e d b l a c k , y o w i l l t u r ng r e e n a n d i a n i g n o m i n i o u s d e a t h , a c c o m p a n i e d b p l a i n t i v et o n e .1 1

Page 115: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 115/244

R U H A R R Y ! 1 1 I n c i d e n t a l l y , t o c o n t r o l H a r r y y o n e e d t u s f o u r k e y s . T h

u p / d o w n c u r s o r k e m a k e s h i g t t h l e f t , a n t h l e f t / r i g h tc u r s o r m a k e s h i m o v e t t h r i g h t . Y o c a c o n t r o l t h e s e k e y sw i t h y o u r r i g h t h a n d . T h a n k e y s m a k e s h i m o v e u a n d o w n r e s p e c t i v e l y ; t h e s e k e y s c a n b e o p e r a t e d w i t h t h l e f t h a n d .T h e s e k e y s h a v e b e e n s e l e c t e d b e c a u s e w f e l t t h e y w o u l d a l l o wt h g r e a t e s t e f f i c i e n c y i c o n t r o l l i n g H a r r y ' s m o v e m e n t s .

1 R E R U N H A R R Y !2 D I A R ( 1 9 ) , A C ( 1 9 )3 R O W = 1 0 : C O L = 2 04 T T L = 0 : C N T = - 1 : S = 0 : K O L R = 05 P R I N T " a M ; 06 0 F O R J = T 4 0 : P R I N T " - " ; : N E X T7 P O K E 1 4 4 4 , 1 6 0 : P O K E 5 5 7 1 6 , 18 C N T = C N T + 19 A R ( C N T ) = I N T ( R N D ( 0 ) * 2 ) * 2 2 + 21 0 A C ( C N T ) = I N T ( R N D ( 0 ) * 2 ) * 3 91 1 S P O T = 1 0 2 4 + 4 0 * A R ( C N T ) + A C ( C N T )1 2 I P E E K ( S P 0 T ) < > 3 2 T H E N 9 1 3 P O K E S P O T , 1 6 01 4 0 P O K E S P O T + 5 4 2 7 2 , 01 5 N X T = T I M E + I N T ( R N D ( 0 ) * 6 ) * 6 0 + 3 0 01 6 I I N T ( R N D ( 0 ) * ( 3 0 - C N T ) ) = 7 T H E N G O S U B 8 0 1 7 G O S U B 3 0 0 : I F S < T H E N 2 9 1 8 1 = 1 9 G O S U B 3 0 0 : I F S < T H E N 2 9 2 0 I C N T < 0 T H E N 2 3 2 1 G O S U B 6 0 0 : I F S < 0 T H E N 2 9 02 2 I S = T H E N 2 4 2 3 G O S U B 9 0 2 4 1 + 1 : I K = C N T T H E N 1 9 2 5 I C N T = 1 9 T H E N 1 7 2 6 I T I M E < N X T T H E N 1 6 2 7 I S = T H E N 1 7 2 8 G O T O 8 2 9 G O S U B 1 6 0 0 : P R I N T " Q G A M E O V E R " : E N D3 0 R E M O V E H A R R Y

Page 116: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 116/244

1 1 Z A P P E R S F O R T H C O M M O D O R E 6 3 1 A = P E E K ( 1 9 7 )3 2 I A = T H E N 3 9 3 3 I A = 1 0 T H E N 4 2 03 4 I A = 1 2 T H E N 4 5 03 5 I A O T H E N R E T U R N3 6 0 P O K E 1 0 2 4 + 4 0 * R O W + C O L , 3 23 7 C 0 L = C 0 L - 1 : I F C 0 L < 0 T H E N C 0 L = 3 93 8 G O T O 4 7 3 9 P O K E 1 0 2 4 + 4 0 * R O W + C O L , 3 24 0 C 0 L = C 0 L + 1 : I F C O L = 4 0 T H E N C O L = 04 1 G O T O 4 7 4 2 0 P O K E 1 0 2 4 + 4 0 * R O W + C O L , 3 24 3 R 0 W = R 0 W - 1 : I F R 0 W < 2 T H E N R 0 W = 2 44 4 0 G O T O 4 7 4 5 0 P O K E 1 0 2 4 + 4 0 * R O W + C 0 L , 3 24 6 R O W = R O W + 1 : I F R O W = 2 5 T H E N R O W = 24 7 S P O T = 1 0 2 4 + 4 0 * R O W + C O L4 8 I P E E K ( S P 0 T ) < > 3 2 T H E N 5 2 4 9 P O K E S P O T f 1 6 05 0 0 P O K E S P O T + 5 4 2 7 2 , 15 1 R E T U R N5 2 G O S U B 1 0 0 05 3 R E T U R N6 0 0 R E M M O V E A A L I E N6 1 P O K E 1 0 2 4 + 4 0 * A R ( I ) + A C ( I ) , 3 26 2 D R = S G N ( R O W - A R ( I ) ) : I F S > T H E N D R = - D R6 3 D C = S G N ( C O L - A C ( I ) ) : I F S > T H E N D C = - D C6 4 I D R = O T H E N 6 7 06 5 I D C = O T H E N 7 1 6 6 O I N T ( R N D < 0 ) * 2 ) G O T O 7 1 06 7 A C ( I ) = A C < I ) + D C6 8 I A C ( I ) > = 0 A N A C ( I ) < = 3 9 T H E N 7 5 6 9 A C ( I ) = A C ( I ) - D C7 0 D R = I N T ( R N D ( 0 ) * 2 ) * 2 - 17 1 A R ( I ) = A R ( I ) + D R7 2 I A R ( I ) > = 2 A N A R ( I ) < = 2 4 T H E N 7 5 7 3 A R ( I ) = A R ( I ) - D R7 4 D C = I N T ( R N D ( 0 ) * 2 ) * 2 - 1 : G O T O 6 7

Page 117: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 117/244

R U H A R R Y ! 1 1 7 5 S P O T = 1 0 2 4 + 4 0 * A R ( I ) + A C ( I )7 6 I P E E K ( S P 0 T > < > 3 2 T H E N 7 9 07 7 P O K E S P O T , 1 6 0 : P O K E S P O T + 5 4 2 7 2 , K O L R7 8 R E T U R N7 9 0 G O S U B 1 2 0 0 : R E T U R N8 0 R E P U A 8 1 X = I N T ( R N D ( 0 ) * 4 0 )8 2 Y = I N T ( R N D < 0 ) * 2 3 ) + 28 3 S P 0 T = 1 0 2 4 + 4 0 * Y + X8 4 I P E E K ( S P 0 T ) < > 3 2 T H E N 8 1 8 5 0 P O K E S P O T , 08 6 0 P O K E S P O T + 5 4 2 7 2 , 1 58 7 R E T U R N9 0 R E T U R N T H T A B L E S9 1 T U R N S = T U R N S - 1 : I F T U R N S > 8 T H E N R E T U R N9 2 I T U R N S = 0 T H E N 9 4 9 3 K O L R = 1 0 : G O T O 9 5 9 4 S = 0 : K O L R = 09 5 I C N T < 0 T H E N R E T U R N9 6 F O J = T C N 9 7 P O K E 5 4 2 7 2 + 4 0 * A R ( J ) + A C ( J ) , K 0 L R9 8 0 N E X T9 9 0 R E T U R N1 0 0 0 R E M H A R R Y C O L L I S I O N1 0 1 0 I P E E K ( S P O T ) = 0 T H E N 1 0 4 01 0 2 0 I S = T H E N 1 1 2 01 0 3 0 S = - 1 : R E T U R N1 0 4 0 P O K E S P O T , 1 6 0 : P O K E S P O T + 5 4 2 7 2 , 11 0 5 0 I C N T < 0 T H E N R E T U R N1 0 6 0 T U R N S = 5 0 : I F S = T H E N R E T U R N1 0 7 0 S = 1 : K 0 L R = 41 0 8 0 F O J = T C N 1 0 9 0 P O K E 5 4 2 7 2 + 4 0 * A R ( J ) + A C ( J ) , 41 1 0 0 N E X T1 1 1 0 R E T U R N1 1 2 0 G O S U B 1 3 0 01 1 3 0 R E T U R N1 2 0 0 R E A L I E N C O L L I S I O N

Page 118: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 118/244

7 7 Z A P P E R S F O R T H C O M M O D O R E 6 1 2 1 0 I P E E K ( S P O T ) = 1 6 0 T H E N 1 2 5 01 2 2 0 I I N T ( R N D ( 0 > * 2 ) T H E N R E T U R N1 2 3 0 P O K E S P O T , 1 6 0 : P O K E S P O T + 5 4 2 7 2 , K O L R1 2 4 0 R E T U R N1 2 5 0 I ( P E E K ( S P 0 T + 5 4 2 7 2 ) A N D 1 5 ) < > 1 T H E N R E T U R N1 2 6 0 S = - 11 2 7 0 R E T U R N1 3 0 0 R E K I L L A A L I E N1 3 1 0 P O K E S P O T , 1 0 2 : P O K E S P O T + 5 4 2 7 2 , 1 21 3 2 0 G O S U B 1 5 0 01 3 3 0 P T S = 0 : J = 01 3 4 0 I A R ( J ) O R O W O A C ( J ) O C 0 L T H E N 1 4 1 01 3 5 0 P T S = P T S + 1 : C N T = C N T - 11 3 6 0 I J > C N T T H E N 1 4 3 01 3 7 0 F O K = T C N 1 3 8 0 A R ( K ) = A R ( K + 1 ) : A C ( K ) = A C ( K + 1 )1 3 9 0 N E X T1 4 0 0 G O T O 1 3 4 01 4 1 0 J = J + 11 4 2 0 I J < = C N T T H E N 1 3 4 01 4 3 0 P O K E S P 0 T , 1 6 0 : P O K E S P O T + 5 4 2 7 2 , 11 4 4 0 P O K E 5 4 2 7 6 , 3 2 : P 0 K E 5 4 2 9 6 , 01 4 5 0 T T L = T T L + 1 0 * P T S1 4 6 0 P R I N T " O " ; S T R $ ( T T L >1 4 7 0 R E T U R N1 5 0 0 R E A L I E N D E A T H N O I S E1 5 1 0 P O K E 5 4 2 7 2 , 1 9 5 : P O K E 5 4 2 7 3 , 1 61 5 2 0 P O K E 5 4 2 7 7 , 0 : P O K E 5 4 2 7 8 , 2 4 01 5 3 0 P O K E 5 4 2 9 6 , 1 5 : P 0 K E 5 4 2 7 6 , 3 31 5 4 0 R E T U R N1 6 0 0 R E H A R R Y D E A T H T H E M E1 6 1 0 P O K E S P O T + 5 4 2 7 2 , 51 6 2 0 P O K E 5 4 2 7 2 , 1 4 3 : P 0 K E 5 4 2 7 3 , 1 01 6 3 0 P O K E 5 4 2 7 7 , 3 4 : P 0 K E 5 4 2 7 8 , 2 4 21 6 4 0 P O K E 5 4 2 9 6 , 1 5 : P O K E 5 4 2 7 6 , 3 31 6 5 0 F O J = T 5 0 0 : N E X T1 6 6 0 P O K E 5 4 2 7 2 , 1 0 4 : P 0 K E 5 4 2 7 3 , 91 6 7 0 F O J = T 1 0 0 : N E X T1 6 8 0 P O K E 5 4 2 7 2 , 1 2 : P 0 K E 5 4 2 7 3 , 7

Page 119: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 119/244

R U H A R R Y ! 1 1 1 6 9 0 F O J = T 3 0 0 : N E X T1 7 0 0 P O K E 5 4 2 7 6 , 3 2 : P O K E 5 4 2 9 6 , 01 7 1 0 P O K E 1 9 8 , 01 7 2 0 R E T U R N

G L O S S A R Y O V A R I A B L E SA A a r r a y o t w e n t y e l e m e n t s n u m b e r e d 0 t h r o u g h 1 w h i c h

r e p r e s e n t s t h r o l o c a t i o n s o u t t w e n t y a l i e n s w h i c hc a o c c u p y t h s c r e e n a a n g i v e n t i m e .

A A a r r a y o f t w e n t y e l e m e n t s n u m b e r e d 0 t h r o u g h 1 w h i c hr e p r e s e n t s t h c o l u m n l o c a t i o n s o u t t w e n t y a l i e n s .R O H a r r y ' s r o l o c a t i o n .

C O H a r r y ' s c o l u m n l o c a t i o n .T T P l a y e r ' s t o t a l p o i n t s .C N C o u n t o t h n u m b e r o a l i e n s ( m i n u s 1 o t h s c r e e n a

a n p a r t i c u l a r t i m e . I a c t u a l l y i n d i c a t e s t h l a r g e s t a c t i v es u b s c r i p t i A a n A C s i n c e t h e a l i e n s a r n u m b e r e df r o m 0 u p t o 1 9 . I f C N i e q u a l t - 1 t h e r e a r e n a l i e n s .T h i s v a r i a b l e e q u a l s u n d e r n o r m a l c o n d i t i o n s . I i s e t - w h e n H a r r y i d e s t r o y e d a n i s e t a f t e r H a r r yh a e a t e n f r i e n d l y a t - s i g n .

K O L R T h i s v a r i a b l e i n d i c a t e s t h e c u r r e n t c o l o r o t h a l i e n s .N X r a n d o m l y s e l e c t e d n u m b e r i n d i c a t i n g t h t i m e a w h i c h

t h n e x t a l i e n a p p e a r s o t h b o a r d . T h t i m e d e l a y b t w e e n t h a p p e a r a n c e o f t h a l i e n s r a n g e s f r o m f i v e t o t e s e c o n d s , i i n c r e m e n t s o f o n s e c o n d . T h e x c e p t i o n i w h e n t h a l i e n s a r c o l o r e d p u r p l e , a w h i c h t i m e n n e a l i e n s a r i n t r o d u c e d . ( I i o b v i o u s w h N E X T w a s n ' tu s e d f o t h i s v a r i a b l e . )I n d i c a t e s w h i c h a l i e n i c u r r e n t l y b e i n g m o v e d .

D I t h s u b r o u t i n e a t l i n e 6 0 t h i s v a r i a b l e d e t e r m i n e s w h e t h e ra a l i e n i t m o v e u o d o w n . T h i s i b a s e d u p o n t h d i r e c t i o n i w h i c h H a r r y i m o v i n g a n w h i c h a s i n gw h o m .

D I n t h e s u b r o u t i n e a l i n e 6 0 t h i s v a r i a b l e d e t e r m i n e s w h e t h e ra a l i e n i t m o v e t t h r i g h t o t t h l e f t .

T U R N S T h i s v a r i a b l e s p e c i f i e s h o m a n y m o v e s H a r r y m u s t m a k eb e f o r e t h p u r p l e a l i e n s t u r n b l a c k a g a i n .

P T U s e d t c o u n t h o m a n y a l i e n s H a r r y k i l l s a o n t i m e .T h i s v a r i a b l e e x i s t s b a s i c a l l y f o r t h e r e a s o n t h a t , u n l i k e

Page 120: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 120/244

1 1 Z A P P E R S F O R T H C O M M O D O R E 6 u h u m a n s , m o r e t h a n o n a l i e n c a o c c u p y t h s a m e s p a c ea t h s a m e t i m e . I t h e y d o c c u p y t h s a m e s p o t a n d o n ei e n g u l f e d , b o t h a r e n g u l f e d .

L I N E S O S P E C I A L I N T E R E S T7 0 H a r r y i p l a c e d o t h s c r e e n a f i x e d p o i n t .8 0 - 1 4 0 : n e a l i e n i p l a c e d o t h s c r e e n . H e n t e r s f r o m o n o

t h f o u r c o r n e r s , w h i c h a c c o u n t s f o t h e s t r a n g e a p p e a r a n c e o f l i n e s9 a n 1 0 0 . N o t i c e t h a t t h t o r o o t h p l a y i n g f i e l d i r o 2 T h i s w a d o n e s t h a t t h a r e a d i s p l a y i n g t h e p o i n t s i n o o v e r r u n .

1 5 0 : C a l c u l a t e s t h t i m e a w h i c h t h n e x t a l i e n i i n t r o d u c e d .1 6 0 : R a n d o m l y d e t e r m i n e s w h e t h e r n e a t - s i g n s h o u l d a p p e a r . N

t i c e t h a t t h m o r e a l i e n s t h e r e a r e , t h g r e a t e r t h c h a n c e o n e a t - s i g n a p p e a r i n g . ( T h e c h o i c e o t h n u m b e r i t h i s l i n e w a p u r e l y a r b i t r a r y . A n n u m b e r l e s s t h a n 1 0 w o u l d h a v e s e r v e d j u s ta w e l l . )

1 7 0 : H a r r y m o v e s o n c e , r e g a r d l e s s o h o m a n y a l i e n s t h e r e a r e .1 8 0 - 2 4 0 : F o e a c h a l i e n o t h e s c r e e n , H a r r y i m o v e d f i r s t a n t h e n

t h a l i e n . N o t e t h a t e a c h t i m e H a r r y m o v e s , h m a d e c r e a s e t h n u m b e r o a l i e n s , w h i c h i w h F O R / N E X T l o o p i n o u s e dh e r e .

2 5 0 : I t h e r e a r e a l r e a d y t w e n t y a l i e n s o t h s c r e e n , d o n ' t t r t a d a n m o r e .

2 6 0 : I t h t i m e d e l a y b e t w e e n a l i e n s h a n o e x p i r e d , d n o a d a n o t h e r a l i e n .

2 7 0 : I t h e x i s t i n g a l i e n s a r p u r p l e , d o n ' t a d d a n y m o r e a l i e n s .2 8 0 : T r a n s f e r s c o n t r o l b a c k t l i n e 8 t a d n e a l i e n .S u b r o u t i n e3 0 0 - 5 3 0 : M o v e s H a r r y o n s p a c e . N o t i c e t h a t i h m o v e s p a s t t h

e d g e o t h s c r e e n , h i p l a c e d a t h o p p o s i t e e d g e . t e s t i a l s om a d e i t h i s s u b r o u t i n e t s e w h e t h e r H a r r y h a c o l l i d e d w i t hs o m e t h i n g . T h i s c o u l d b e i t h e r a a t - s i g n o a a l i e n , a n t h s u b r o u t i n e a l i n e 1 0 0 0 i i n v o k e d t p e r f o r m f u r t h e r t e s t i n g .

S u b r o u t i n e6 0 0 - 7 9 0 : T h i s r o u t i n e m o v e s t h a l i e n i n d i c a t e d b v a r i a b l e I r

g a r d l e s s o w h e t h e r h e i p u r s u i n g o f l e e i n g H a r r y . t e s t i m a d et s e w h e t h e r t h a l i e n h a c o l l i d e d w i t h s o m e t h i n g .

6 2 0 - 6 3 0 : T h d i r e c t i o n i w h i c h t h a l i e n m o v e s i b a s e d u p o n

Page 121: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 121/244

R U H A R R Y ! 1 1 t h d i r e c t i o n f r o m h i t H a r r y . I H a r r y i p u r s u i n g h i m , t h a l i e nw i l l g i d i r e c t i o n o p p o s i t e t t h a t w h i c h h w o u l d t a k e i h w e r e p u r s u i n g H a r r y .6 4 0 - 6 5 0 : T h a l i e n c a m o v e o n l y o n r o o o n c o l u m n a t i m e , b u t n o t b o t h . I h i i t h s a m e r o w a H a r r y , h m o v e so n c o l u m n ; i h i t h s a m e c o l u m n , h e m o v e s o n r o w .

6 6 0 : I t h a l i e n i i d i f f e r e n t r o a n d i f f e r e n t c o l u m n f r o mH a r r y , h m u s t r a n d o m l y c h o o s e w h e t h e r h w a n t s t m o v e b o n r o o o n c o l u m n . T h i s l i n e u s e s f o r m o t h O N . . . G O T Os t a t e m e n t t h a t w o r k s o t h C o m m o d o r e 6 b u i a c t u a l l y " c h e a t i n g . "I t h v a l u e r e t u r n e d b t h I N f u n c t i o n i 1 c o n t r o l t r a n s f e r s t ol i n e 7 1 0 . I t h r e s u l t i n g v a l u e i 0 t h O N . . . G O T O s t a t e m e n t i i g n o r e d a n c o n t r o l p a s s e s d o w n t t h n e x t l i n e , w h i c h i 6 7 0 .

6 9 0 - 7 0 0 : T h a l i e n t r i e d t m o v e p a s t t h l e f t o r i g h t e d g e o t h s c r e e n , w h i c h i i n o a l l o w e d t d o ( N o t e t h a t t h i s h a p p e n s o n l yw h e n t h a l i e n i f l e e i n g H a r r y . ) S i r e m a i n s i t h s a m e c o l u m na n m o v e s e i t h e r u o d o w n o n r o w .

7 3 0 - 7 4 0 : T h a l i e n c a n n o t m o v e p a s t t h e t o o b o t t o m o t h s c r e e n s o i m o v e s l e f t o r i g h t o n c o l u m n i n s t e a d . B e c a u s e o t h e s e l i n e s a n l i n e s 6 9 0 - 7 0 0 , a a l i e n c a u g h t i c o r n e r m a h a v es o m e t r o u b l e g e t t i n g o u t .

S u b r o u t i n e8 0 0 - 8 7 0 : T h i s s u b r o u t i n e r a n d o m l y p l a c e s a a t - s i g n o t h e s c r e e n .

I i a l w a y s p l a c e d i v a c a n t l o c a t i o n o t h s c r e e n .

S u b r o u t i n e9 0 0 - 9 9 0 : T h i s s u b r o u t i n e p e r f o r m s m o r e f u n c t i o n s t h a n t h a c c o m

p a n y i n g R E s t a t e m e n t w o u l d i n d i c a t e . I i u s e d t c o u n t d o w nt h v a r i a b l e T U R N S ; f u r t h e r m o r e , w h e n t h v a l u e o T U R N S r e a c h e s8 , t h i s s u b r o u t i n e c h a n g e s a l t h a l i e n s t o l i g h t r e d . W h e n t h v a l u e o T U R N S r e a c h e s 0 t h i s s u b r o u t i n e r e s e t s t a n t u r n sa l t h a l i e n s b l a c k .

S u b r o u t i n e1 0 0 0 - 1 1 3 0 : T h i s i i n v o k e d w h e n H a r r y b u m p s i n t o s o m e t h i n g .

1 0 3 0 : I H a r r y h a b u m p e d i n t o a a l i e n a n t h a l i e n i c o l o r e db l a c k ( 0 ) i s e t - 1 1 0 4 0 - 1 0 5 0 : H a r r y h a b u m p e d i n t o a a t - s i g n . H a r r y ' s i m a g e i

t h e n p l a c e d i n t h a t l o c a t i o n . I t h e r e a r n a l i e n s o t h s c r e e n , n f u r t h e r a c t i o n i t a k e n .

1 0 6 0 : T h n u m b e r o m o v e s d u r i n g w h i c h t h a l i e n s r e m a i n p u r p l e

Page 122: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 122/244

1 2 Z A P P E R S F O R T H C O M M O D O R E 6 i s e t 5 0 T h i s h a p p e n s e v e n i t h a l i e n s a r a l r e a d y p u r p l e , s i i a l w a y s b e n e f i c i a l t o e a t a t - s i g n s . I t h a l i e n s a r a l r e a d y p u r p l ea t h i s p o i n t , t h e s u b r o u t i n e p e r f o r m s n f u r t h e r a c t i o n .

1 0 7 0 - 1 1 0 0 : S e t a n m a k e a l t h a l i e n s p u r p l e .1 1 2 0 : T h i s l i n e i r e a c h e d i H a r r y h a c o l l i d e d w i t h a p u r p l e ( o

l i g h t r e d ) a l i e n .

S u b r o u t i n e1 2 0 0 - 1 2 7 0 : T h i s s u b r o u t i n e i i n v o k e d i a a l i e n c r a s h e s i n t o s o m e

t h i n g .1 2 2 0 : I a a l i e n h i t s a a t - s i g n , h a l f t h t i m e h p a s s e s j u s t b e h i n d

i t H r e a p p e a r s w h e n h m o v e s a w a y f r o m t h a t - s i g n .1 2 3 0 : H a l f t h t i m e t h a l i e n o b l i t e r a t e s t h a t - s i g n . T h a t - s i g n

d o e s n o r e a p p e a r .1 2 5 0 : I t h a l i e n h a h i a n o t h e r a l i e n , n o t h i n g h a p p e n s . T h i s i

w h t w a l i e n s c a o c c u p y t h s a m e s p a c e . S i n c e t h e y a r r e p r es e n t e d b s e p a r a t e l o c a t i o n s i A a n A C t h e y s t i l l r e m a i n d i s t i n c t .

1 2 6 0 : T h a l i e n h a " c a u g h t " H a r r y .

S u b r o u t i n e1 3 0 0 - 1 4 7 0 : T h a l i e n s a t h l o c a t i o n s p e c i f i e d b R O a n C O a r s u m m a r i l y l i q u i d a t e d .

1 3 1 0 : T h v a l u e o S P O T c o m e s f r o m t h s u b r o u t i n e a l i n e 3 0 0 ,b w a o t h s u b r o u t i n e a l i n e 1 0 0 0 . T h v a l u e 1 0 i t h s c r e e nd i s p l a y c o d e f o c h e c k e r b o a r d p a t t e r n t h a t r e p r e s e n t s v a n i s h i n ga l i e n .

1 3 3 0 - 1 4 2 0 : T h e s e l i n e s s c a n t h r o u g h t h c o l l e c t i o n o a l a l i e n sa n e l i m i n a t e t h o s e w h i c h a r a t h e c u r r e n t l o c a t i o n . S i n c e t h n u m b e r o a l i e n s i d e c r e a s e d i t h e s e l i n e s , F O R / N E X T l o o pc o u l d n o t b u s e d .

1 3 5 0 : T h t a l l y o a l i e n s d e s t r o y e d i i n c r e m e n t e d a n t h c o u n t o fe x i s t i n g a l i e n s i d e c r e m e n t e d .

1 3 6 0 - 1 3 9 0 : T h r e m a i n i n g a l i e n s a r s h i f t e d d o w n o n e l e m e n t i A a n A C T h u s , e l e m e n t s t h r o u g h C N i b o t h a r r a y s s t i l l a l r e p r e s e n t a c t i v e a l i e n s e v e n t h o u g h o n h a j u s t b e e n r e m o v e d . T h i sc o m p l i c a t e d w a o d o i n g t h i n g s i d i c t a t e d b t h d e s i r e t k e e pt h a l i e n s p h y s i c a l l y a r r a n g e d i t h s e q u e n c e i w h i c h t h e y a p e a r e d o t h s c r e e n .

1 4 0 0 : T h s a m e s u b s c r i p t o A a n A i u s e d a g a i n b e c a u s e an e a l i e n n o o c c u p i e s t h i s e l e m e n t .

1 4 3 0 : P l a c e s H a r r y i t h c u r r e n t l o c a t i o n .

Page 123: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 123/244

R U H A R R Y ! 1 2 1 4 4 0 : T u r n s o f f t h e a l i e n d e a t h n o i s e .1 4 5 0 - 1 4 6 0 : A d 1 p o i n t s f o e a c h a l i e n k i l l e d .

S u b r o u t i n e1 5 0 0 - 1 5 4 0 : A l i e n d e a t h n o i s e .

S u b r o u t i n e1 6 0 0 - 1 7 2 0 : s a f a r e w e l l t H a r r y i s o u n d e d .

1 6 1 0 : T u r n s H a r r y g r e e n ( n o t w i t h e n v y ! ) .1 7 1 0 : C l e a r s o u t h k e y b o a r d b u f f e r . T h i s i d o n e s t h a t s t r a y A

a n Z s d o n o a p p e a r w h e n t h p r o g r a m e n d s .

S U G G E S T E D E N H A N C E M E N T S1 Y o m a c h a n g e t h k e y s t h a t c o n t r o l t h e m o v e m e n t o H a r r y i

y o f i n d t h a t o t h e r k e y s a r m o r e c o n v e n i e n t . T d t h i s y o w i l ln e e d t o r e f e r t o T a b l e i C h a p t e r 6

2 I n t h e c u r r e n t v e r s i o n o t h g a m e , t h a l i e n s s t a y p u r p l e f o f i x e da m o u n t o t i m e . Y o m a i n s t e a d w i s h t m a k e t h i s v a r i a b l e .

3 T h n u m b e r o p o i n t s a w a r d e d f o c a t c h i n g a a l i e n m a b a d j u s t e da d e s i r e s d i c t a t e ; o r , y o m a w i s h t a w a r d t e p o i n t s f o r t h e f i r s ta l i e n , t w e n t y f o t h s e c o n d , a n s f o r t h .

Page 124: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 124/244

C H A P T E R 1 W A L L P A P E R

T h t i m e h a s c o m e t r e l a x l i t t l e . T h n e x t p r o g r a m i v i s u a ld e l i g h t d e v o i d o f a n b r a i n t e a s i n g c h a l l e n g e s . A l y o h a v e t d w h e n t h i s p r o g r a m i r u i t s i b a c k a n d e n j o y , o n c e y o h a v e s u p p l i e d s o m e s i m p l e i n f o r m a t i o n . T h p r o g r a m o p e n s u w i t h t h q u e s t i o n : H o m a n y p a t t e r n s ? T h i s c a n b e a n y p o s i t i v ei n t e g e r a a l l . I t w i l l t h e n a s k : H o m a n y c o l o r a t i o n s ? T h r s p o n s e t t h i s i a l s o p o s i t i v e i n t e g e r . T h p r o g r a m f i l l s t h s c r e e n w i t h t w a l t e r n a t i n g c h a r a c t e r s . T h e s e a r n o c h a r a c t e r sf r o m t h m a c h i n e ' s n o r m a l c h a r a c t e r s e b u a r r a n d o m l y d s i g n e d b t h p r o g r a m a n a r n o m e a n t t r e p r e s e n t a n y t h i n gi n p a r t i c u l a r . T h n u m b e r o p a t t e r n s r e q u e s t e d d e t e r m i n e s h o m a n y t i m e s t h e s e c h a r a c t e r s a r r e d e s i g n e d . F u r t h e r m o r e , t h n u m b e r o c o l o r a t i o n s d e t e r m i n e s h o m a n y t i m e s t h b a c kg r o u n d a n f o r e g r o u n d c o l o r s a r c h a n g e d f o e a c h p a t t e r n . L a s t l y ,t h p r o g r a m a d d s o n m o r e f e a t u r e . F o e a c h c o l o r a t i o n , t h p a t t e r n o t h s c r e e n i d i s p l a y e d i t w d i f f e r e n t C o m m o d o r e6 g r a p h i c s m o d e s , t p r o v i d e f o r g r e a t e r v a r i e t y .

T h i s p r o g r a m m a k e s c o n s i d e r a b l e u s o t h C o m m o d o r e 6 4 ' sg r a p h i c s c a p a b i l i t i e s . W s h a l l n o a t t e m p t t g i n t o g r e a t d e t a i l1 2

Page 125: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 125/244

W A L L P A P E R 1 2 a b o u t t h e s e f a c i l i t i e s . F o m o r e i n f o r m a t i o n w r e s p e c t f u l l y r e f e ry o t t h P r o g r a m m e r ' s R e f e r e n c e G u i d e .

1 R E W A L L P A P E R2 P R I N T : I N P U T " H O W M A N Y P A T T E R N S " ; P3 I P = I N T ( P ) A N P > T H E N 6 4 P R I N T " P O S I T I V E I N T E G E R S O N L Y , P L E A S E "5 G O T O 2 6 P R I N T : I N P U T " H O W M A N Y C O L O R A T I O N S " ; C7 I C = I N T ( C ) A N C > T H E N 1 0 8 P R I N T " P O S I T I V E I N T E G E R S O N L Y , P L E A S E "9 G O T O 6 1 0 0 P O K E 5 3 2 7 2 , P E E K ( 5 3 2 7 2 ) O 1 1 1 F O 1 = 1 0 2 4 T 2 0 2 3 S T E P1 2 P O K E I , 0 : P O K E 1 + 1 , 11 3 N E X T1 4 F O Q = T 1 5 F O 1 = 1 4 3 3 6 T 1 4 3 5 11 6 P O K E I , I N T ( R N D ( 0 ) * 2 5 6 )1 7 N E X T1 8 F O R = T 1 9 F O 1 = 5 3 2 8 1 T 5 3 2 8 32 0 P O K E I , I N T ( R N D ( 0 ) * 1 6 )2 1 N E X T2 2 A = I N T ( R N D ( 0 ) * 8 ) + 82 3 B = I N T ( R N D ( 0 ) * 8 ) + 82 4 F O 1 = 5 5 2 9 6 T 5 6 2 9 5 S T E P2 5 P O K E I , A : P O K E 1 + 1 , B2 6 N E X T2 7 P O K E 5 3 2 7 0 , P E E K ( 5 3 2 7 0 ) O R 1 62 8 F O 1 = T 2 0 0 0 : N E X T2 9 0 P O K E 5 3 2 7 0 , P E E K ( 5 3 2 7 0 ) A N 2 3 3 0 N E X T3 1 N E X T3 2 P O K E 5 3 2 7 2 , ( P E E K ( 5 3 2 7 2 ) A N 2 4 0 ) O 3 3 0 P O K E 5 3 2 8 1 , 63 4 P R I N T " Q 3 5 E N

Page 126: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 126/244

7 2 Z A P P E R S F O R T H C O M M O D O R E 6

G L O S S A R Y O F V A R I A B L E ST h u s e r ' s s e l e c t e d n u m b e r o p a t t e r n s .T h u s e r ' s s e l e c t e d n u m b e r o c o l o r a t i o n s .

l o o p i n d e x w h i c h c o u n t s t h r o u g h e a c h o t h p a t t e r n s .l o o p i n d e x w h i c h c o u n t s t h r o u g h e a c h o t h c o l o r a t i o n s .

T h r a n d o m l y s e l e c t e d c o l o r o t h f i r s t r a n d o m c h a r a c t e r .T h r a n d o m l y s e l e c t e d c o l o r o t h s e c o n d r a n d o m c h a ra c t e r .

L I N E S O S P E C I A L I N T E R E S T1 0 0 : T h l o w e r f o u r b i t s o l o c a t i o n 5 3 2 7 2 d e t e r m i n e w h e r e t h c h a r

a c t e r d o p a t t e r n s a r e l o c a t e d . S e t t i n g t h e s e b i t s t 1 s p e c i f i e sl o c a t i o n 1 4 3 3 6 . T h i s i w h e r e w s h a l l p l a c e o u r a n d o m c h a r a c t e rd e f i n i t i o n s .

1 1 0 - 1 3 0 : N o r m a l l y , t h i s w o u l d f i l l t h s c r e e n w i t h a l t e r n a t i n g a t s i g n s ( @ a n A s H o w e v e r , s i n c e w h a v e c h a n g e d t h l o c a t i o no t h c h a r a c t e r d o p a t t e r n s , w c a c a u s e s c r e e n d i s p l a y c o d ea n t r e p r e s e n t a n y r a n d o m l y d e s i g n e d c h a r a c t e r s .

1 5 0 - 1 7 0 : T h e s e s t a t e m e n t s r a n d o m l y d e s i g n t w c h a r a c t e r s . E a c hc h a r a c t e r d e f i n i t i o n t a k e s u b y t e s o m e m o r y , s t h p r o g r a mm u s t p o k e i n t o 1 b y t e s .

1 9 0 - 2 1 0 : T h p r o g r a m s e l e c t s r a n d o m c o l o r s f o t h b a c k g r o u n d a n df o t h e c h a r a c t e r s t h e m s e l v e s .

2 2 0 - 2 3 0 : T h e s e a r t h r a n d o m c o l o r s f o r t h e t w c h a r a c t e r s . T h e ym u s t b b e t w e e n a n 1 i o r d e r f o r t h e c h a r a c t e r s t b d i s p l a y e di m u l t i c o l o r m o d e . M u l t i c o l o r m o d e m e a n s t h a t t h e c h a r a c t e r s a r ed i s p l a y e d i t h r e e c o l o r s r a t h e r t h a n o n e . O n o t h e s e c o l o r s i d e t e r m i n e d b t h v a l u e s s e l e c t e d i t h e s e l i n e s . T h o t h e r t w c o l o r s c o m e f r o m l o c a t i o n s 5 3 2 8 2 a n 5 3 2 8 3 . ( S e e l i n e s 1 9 0 - 2 1 0 . )T h o u g h t h v a l u e s f o a n r a n g e f r o m t h r o u g h 1 5 t h e y a r i n t e r p r e t e d a s t h e c o l o r s n u m b e r e d 0 t h r o u g h 7

2 4 0 - 2 6 0 : S e t h a l t e r n a t i n g c h a r a c t e r s t t h e i r a p p r o p r i a t e c o l o r s .2 7 0 : S e t t i n g b i o l o c a t i o n 5 3 2 7 0 t t u r n s o t h m u l t i c o l o r m o d e .2 9 0 : M u l t i c o l o r m o d e i t u r n e d o f f . N o t h e c h a r a c t e r s a r d i s p l a y e d

i s i n g l e c o l o r r a t h e r t h a n i t h r e e . T h e i r c h a r a c t e r c o l o r s , a d e f i n e d b t h e v a r i a b l e s a n d B , a r e i n t e r p r e t e d a s t h e c o l o r sn u m b e r e d t h r o u g h 1 5

3 2 0 : L o c a t i o n 5 3 2 7 2 i r e s t o r e d t i t o r i g i n a l v a l u e . T h n o r m a lc h a r a c t e r s e i n o i e f f e c t .

Page 127: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 127/244

W A L L P A P E R 1 2

S U G G E S T E D E N H A N C E M E N T S1 Y o m i g h t b t e m p t e d t o i n v e s t i g a t e f u r t h e r t h e C o m m o d o r e 6 4 ' s

a d v a n c e d g r a p h i c s c a p a b i l i t i e s a n t r t f i g u r e o u w a y s t m a k et h p a t t e r n s d i s p l a y e d b t h i s p r o g r a m e v e n m o r e a r r e s t i n g .

2 A t i m e s y o m a w i s h t b a b l e t r e p e a t a e s p e c i a l l y a p p e a l i n gp a t t e r n . r o u t i n e c a b w r i t t e n s t h a t u p o n r e q u e s t t h p r o g r a mi n f o r m s y o o a l t h e c o l o r s a n c h a r a c t e r p a t t e r n s t h a t a r i e f f e c ta a n p a r t i c u l a r m o m e n t . O n l y a b o u t t w e n t y - o n e n u m b e r s b e t w e e n

a n 2 5 w o u l d b i n v o l v e d .

Page 128: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 128/244

C H A P T E R 1 S I M O N S A Y S

f a v o r i t e g r o u p g a m e p l a y e d b b o t h y o u n g s t e r s a n a d u l t s a l i k ei t h g a m e o S i m o n S a y s . A y o w i l l r e m e m b e r , t h l e a d e r( g e n e r a l l y r e f e r r e d t a S i m o n ) c a r r i e s o u s o m e c o n s p i c u o u sa c t i o n a n t h e p l a y e r s a r s u p p o s e d t r e p e a t t h e a c t i o n o n l y i S i m o n g i v e s t h i n s t r u c t i o n a f t e r s a y i n g " S i m o n s a y s . " I t h a c t i o n i r e p e a t e d b p l a y e r w i t h o u t i b e i n g p r e c e d e d b " S i m o ns a y s , " t h e p l a y e r l e a v e s t h e g a m e . t a l e n t e d S i m o n ( a n d t h e r es e e m t b s m a n y o f t h e m ! ) c a v e r y q u i c k l y e l i m i n a t e m o s to t h p a r t i c i p a t i n g a u d i e n c e . T h l a s t p e r s o n t r e m a i n i c o s i d e r e d t h e w i n n e r .

T h r u l e s f o r t h e C o m m o d o r e 6 v e r s i o n o t h g a m e a r f e w e ra l t h o u g h t h g a m e i n o q u i t e a s i m p l e . T h c o m p u t e r f l a s h e s

r a n d o m s e q u e n c e o n u m b e r s 0 t h r o u g h o t h e s c r e e n , e a c hn u m b e r a c c o m p a n i e d b i t o w c o l o r a n t o n e . A s o o n a s t h es e q u e n c e i f i n i s h e d , t h p l a y e r m u s t k e i t h n u m b e r s i t h e x a c t s a m e o r d e r i w h i c h t h e y w e r e o r i g i n a l l y f l a s h e d b t h c o m p u t e r . T m a k e t h l i f e o t h p l a y e r e a s i e r , i i n o n e c e s s a r yt p r e s s t h e R E T U R N k e t e n t e r a s e q u e n c e . N e i t h e r i i n e c e s s a r y t d a n y t h i n g s p e c i a l w h e n t h e n t e r e d s e q u e n c e o n u m b e r s h a b e e n c o m p l e t e d . T h c o m p u t e r t a k e s c a r e o a l t h i si t s e l f . H o w e v e r , t h s e q u e n c e m u s t b e n t e r e d w i t h i n c e r t a i n1 2

Page 129: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 129/244

S I M O N S A Y S 1 2 t i m e i n t e r v a l . T h e r e a r t e l e v e l s o p l a y , w i t h t h e a s i e s t b e i n gl e v e l 0 A t h p l a y e r p r o c e e d s f r o m t h i s l e v e l t t h h i g h e rl e v e l s , s t h t i m e p e r i o d a l l o w e d f o r e p e a t i n g t h s e q u e n c ed e c r e a s e s . N o o n l y t h a t , b u t h s p e e d a w h i c h t h c o m p u t e rd i s p l a y s t h e s e q u e n c e i i n c r e a s e d .

W i t h i n e a c h l e v e l , t h g a m e p r o c e e d s a f o l l o w s . T h p r o g r a mf l a s h e s s i n g l e n u m b e r w h i c h t h p l a y e r m u s t r e p e a t . T h c o p u t e r t h e n f l a s h e s s e q u e n c e o f t w n u m b e r s , t h f i r s t o w h i c hi t h o n f l a s h e d p r e v i o u s l y . I t h p l a y e r s u c c e s s f u l l y r e p e a t st h s e q u e n c e , t h c o m p u t e r f l a s h e s t h r e e n u m b e r s , t h f i r s t t w o w h i c h w e r e f l a s h e d e a r l i e r . T h i s p r o c e s s c o n t i n u e s u t t w e n t y ,e a c h t i m e a d d i n g o n m o r e n u m b e r t t h p r e c e d i n g s e q u e n c e .I t h p l a y e r s u c c e s s f u l l y r e p e a t s t h s e q u e n c e o a l t w e n t y n u b e r s ( g o o d l u c k ! ) , h p a s s e s o t t h n e x t h i g h e r l e v e l , s t a r t i n go n c e a g a i n w i t h s e q u e n c e o o n n u m b e r , b u t h i s t i m e a f a s t e r s p e e d .

W h e n y o f i r s t r u t h p r o g r a m , y o a r a s k e d f o r t h e l e v e la w h i c h y o u w i s h t s t a r t . T h i s i n u m b e r b e t w e e n 0 a n d 9 I i n o n e c e s s a r y t p r e s s t h R E T U R N k e y , s i n c e t h e c o m p u t e ra c c e p t s t h f i r s t d i g i t t h a t i p r e s s e d .

1 R E S I M O N S A Y S2 D I S E Q ( 1 9 ) , C 0 L R ( 9 )3 0 F O R 1 = T 9 : R E A D C O L R ( I ) : N E X T4 D A T A 1 , 2 , 7 , 6 , 0 , 1 3 , 3 , 8 , 9 , 1 05 P R I N T " W H A T f S Y O U R D E S I R E D L E V E L ( 0 - 9 ) ? " 6 G E A $ : I F A $ < " 0 " O A $ > " 9 " T H E N 6 7 P R I N T A 8 L = A S C ( A $ ) - 4 89 P R I N T " U D D D D D D D D D D "1 0 F O L E V E L = L T 1 1 P R I N T T A B ( 6 ) ; M Y 0 U A R E N O W E N T E R I N GL E V E L " ; L E V E L1 2 F O Z = T 1 0 0 0 : N E X T Z : P R I N T " Q 1 3 S P E E D = ( 1 0 - L E V E L ) * 5 01 4 F O R 1 = 0 T O 1 91 5 S E Q ( I ) = I N T ( R N D ( 0 ) * 1 0 )

Page 130: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 130/244

7 2 Z A P P E R S F O T H C O M M O D O R E 6 1 6 F O J = T 1 7 6 0 S U B 4 0 1 8 N E X T1 9 P O K E 1 9 8 , 02 0 F O J = 0 T O 1 + 2 1 D E L A Y = T I M E + ( 1 1 - L E V E L ) * 2 52 2 0 G E T A $ : I F A $ > = " 0 " A N A $ < = " 9 " T H E N 2 6 2 3 I T I M E < = D E L A Y T H E N 2 2 2 4 I J > T H E N 2 8 2 5 G O S U B 7 0 0 : G O T O 3 6 2 6 I A S C ( A $ ) - 4 8 O S E Q ( J ) T H E N 2 5 02 7 G O S U B 4 0 2 8 N E X T2 9 N E X T3 0 P O K E 5 3 2 8 1 , 73 1 P R I N T " Q Q D O n n O n O n Q " ; T A B ( 1 5 ) ;

" V E R Y G O O D ! "3 2 T N = 4 4 : G 0 S U B 8 0 3 3 N E X T L E V E L3 4 P R I N T T A B d D ^ ' Y O U ' R E A E X P E R T ! "3 5 T N = 6 6 : G 0 S U B 8 0 3 6 P O K E 5 4 2 9 6 , 03 7 0 P O K E 5 3 2 8 0 , 1 4 : P 0 K E 5 3 2 8 1 , 63 8 E N 4 0 0 R E M D I S P L A Y N U M B E R4 1 0 P O K E 5 5 7 9 5 , S E Q ( J )4 2 P O K E 5 3 2 8 0 , S E Q ( J )4 3 0 P O K E 5 3 2 8 1 , C O L R ( S E Q ( J > >4 4 P O K E 1 5 2 3 , S E Q ( J ) + 4 84 5 Q = S E Q ( J ) : I F Q = T H E N Q = 1 04 6 T 1 = ( Q / 2 + 3 ) * 2 0 0 04 7 T 2 = T 1 * 2 : T 3 = T 2 * 24 8 0 P O K E 5 4 2 7 3 , I N T ( T i / 2 5 6 )4 9 0 P O K E 5 4 2 8 0 , I N T ( T 2 / 2 5 6 )5 0 P O K E 5 4 2 8 7 , I N T ( T 3 / 2 5 6 >5 1 I T 2 > 3 2 7 6 7 T H E N T 2 = T 2 - 6 5 5 3 65 2 I T 3 > 3 2 7 6 7 T H E N T 3 = T 3 - 6 5 5 3 65 3 P O K E 5 4 2 7 2 , T 1 A N 2 5

Page 131: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 131/244

S I M O N S A Y S 1 2 5 4 0 P O K E 5 4 2 7 9 , T 2 A N 2 5 5 5 P O K E 5 4 2 8 6 , T 3 A N 2 5 5 6 P O K E 5 4 2 7 5 , 8 : P O K E 5 4 2 8 2 , 85 7 P O K E 5 4 2 8 9 , 85 8 P O K E 5 4 2 7 7 , 2 8 : P 0 K E 5 4 2 7 8 , 2 4 95 9 P O K E 5 4 2 8 4 , 2 8 : P 0 K E 5 4 2 8 5 , 2 4 96 0 0 P O K E 5 4 2 9 1 , 2 8 : P O K E 5 4 2 9 2 , 2 4 96 1 P O K E 5 4 2 7 6 , 6 5 : P 0 K E 5 4 2 8 3 , 6 56 2 P O K E 5 4 2 9 0 , 6 5 : P O K E 5 4 2 9 6 , 1 56 3 F O Z = T S P E E D : N E X T6 4 P O K E 5 4 2 7 6 , 6 4 : P 0 K E 5 4 2 8 3 , 6 46 5 P O K E 5 4 2 9 0 , 6 46 6 F O Z = T S P E E D * . 6 5 : N E X T6 7 P O K E 1 5 2 3 , 3 26 8 F O Z = T S P E E D * . 3 5 : N E X T6 9 R E T U R N7 0 0 R E M B A D B E E P7 1 0 P O K E 5 4 2 7 3 , 2 : P 0 K E 5 4 2 8 0 , 77 2 0 P O K E 5 4 2 7 5 , 8 : P 0 K E 5 4 2 8 2 , 87 3 0 P O K E 5 4 2 7 7 , 3 1 : P O K E 5 4 2 8 4 , 3 17 4 P O K E 5 4 2 7 8 , 2 4 4 : P 0 K E 5 4 2 8 5 , 2 4 47 5 0 P O K E 5 4 2 9 6 , 1 57 6 0 P O K E 5 4 2 7 6 , 6 5 : P O K E 5 4 2 8 3 , 6 57 7 F O Z = T 6 5 0 : N E X T7 8 P O K E 5 4 2 7 6 , 6 4 : P 0 K E 5 4 2 8 3 , 6 47 9 R E T U R N8 0 R E G O O D B E E P8 1 P O K E 5 4 2 7 3 , T N r P O K E 5 4 2 8 0 , T N * 28 2 P O K E 5 4 2 7 5 , 88 3 P O K E 5 4 2 7 7 , 1 5 : P O K E 5 4 2 8 4 , 1 58 4 P O K E 5 4 2 7 8 , 2 4 0 : P O K E 5 4 2 8 5 , 2 4 08 5 0 P O K E 5 4 2 9 6 , 1 58 6 0 P O K E 5 4 2 7 6 , 6 5 : P O K E 5 4 2 8 3 , 3 38 7 F O Z = T 5 0 0 : N E X T8 8 P O K E 5 4 2 7 3 , T N * 8 / 1 18 9 0 P O K E 5 4 2 8 0 , T N * 1 6 / 1 19 0 F O Z = T 1 0 0 : N E X T9 1 0 P O K E 5 4 2 7 3 , T N * 1 4 / 1 1

Page 132: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 132/244

7 3 Z A P P E R S F O T H C O M M O D O R E 6 9 2 0 P O K E 5 4 2 8 0 , T N * 2 8 / 1 19 3 F O Z = T 1 0 0 0 : N E X T9 4 P O K E 5 4 2 7 6 , 6 4 : P 0 K E 5 4 2 8 3 , 3 29 5 R E T U R N

G L O S S A R Y O F V A R I A B L E SS E A a r r a y o f t w e n t y e l e m e n t s n u m b e r e d t h r o u g h 1 9 w h i c h

s t o r e s t h s e q u e n c e b e i n g f l a s h e d b t h c o m p u t e r .C O L R A a r r a y o t e e l e m e n t s n u m b e r e d 0 t h r o u g h t h a t s p e ci f i e s t h b a c k g r o u n d c o l o r s t b u s e d f o e a c h d i g i t w h e n

i i f l a s h e d o t h s c r e e n . ( T h e r e a s o n w h y w e c o u l d n o u s C O L O R i t h a t i c o n t a i n s t h k e y w o r d O R . )T h p l a y e r ' s s t a r t i n g l e v e l .

L E V E L F O R / N E X T i n d e x w h i c h s p e c i f i e s t h l e v e l a w h i c ht h g a m e i c u r r e n t l y b e i n g p l a y e d .

S P E E D D e t e r m i n e s t h a m o u n t o f t i m e b e t w e e n f l a s h e s . S i n c e t h i sv a r i a b l e i u s e d i d e l a y l o o p , h i g h e r v a l u e f o S P E E Da c t u a l l y c a u s e s a l o n g e r d e l a y b e t w e e n f l a s h e s .

F O R / N E X T i n d e x w h i c h s p e c i f i e s t h l e n g t h o t h c u r r e n t s e q u e n c e .

D E L A Y D e t e r m i n e s h o m u c h t i m e t h p l a y e r h a t e n t e r e a c hn u m b e r o t h s e q u e n c e .

T S p e c i f i e s t h e f r e q u e n c y t b e p r o d u c e d b t h s u b r o u t i n ea l i n e 8 0 0 .T h i s v a r i a b l e s e r v e s s e v e r a l d i f f e r e n t p u r p o s e s . I l i n e s1 6 0 - 1 8 0 i s p e c i f i e s w h i c h n u m b e r i t h s e q u e n c e i t b f l a s h e d . ( N o t t h v a l u e o t h n u m b e r b u i t o r d e r i t h s e q u e n c e . ) I l i n e s 2 0 0 - 2 8 0 , s p e c i f i e s w h i c h n u m b e ri b e i n g e n t e r e d b t h p l a y e r .

L I N E S O S P E C I A L I N T E R E S T1 5 0 : A d d s o n m o r e r a n d o m n u m b e r t t h s e q u e n c e .1 6 0 - 1 8 0 : F l a s h e s t h s e q u e n c e o n u m b e r s .1 9 0 : T h k e y b o a r d b u f f e r i c l e a r e d . T h i s i d o n e s t h a t t h p l a y e r

c a n n o t b e g i n k e y i n g i t h s e q u e n c e u n t i l t h p r o g r a m h a f i n i s h e dd i s p l a y i n g i t

2 0 0 : T h e r e a r t w g o o d r e a s o n s f o t h i s l o o p g o i n g f r o m + r a t h e rt h a n I T h f i r s t i t h a t t h i s a l l o w s t h p l a y e r t i m e t m a k e t h

Page 133: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 133/244

S I M O N S A Y S 1 3 m i s t a k e o e n t e r i n g o n m o r e n u m b e r t h a n h i s u p p o s e d t o t h a ti t s a y , t h c o m p u t e r d o e s n o s t o p h i a s o o n a a l t h n u m b e r so t h s e q u e n c e h a v e b e e n e n t e r e d . T h s e c o n d i t h a t i t h p l a y e rd o e s e n t e r t h e s e q u e n c e c o r r e c t l y , h i p e r m i t t e d t i m e t b r e a t h eb e f o r e t h n e x t s e q u e n c e i f l a s h e d . ( T h i s i t h s a m e a m o u n t o t i m e a i s p e c i f i e d b t h e v a r i a b l e D E L A Y . )

2 2 0 - 2 3 0 : T h p r o g r a m w a i t s f o i n p u t a l o n g a s t h e t i m e s p e c i f i e db D E L A Y i n o e x c e e d e d .

2 4 0 : I t h p l a y e r d o e s n o e n t e r n u m b e r d u r i n g t h ( l ) t h i t e r a t i o no t h e l o o p , t h e n h h a e n t e r e d t h s e q u e n c e c o r r e c t l y . C o n t r o lt h e n p a s s e s t l i n e 2 8 0 w h e r e t h l o o p t e r m i n a t e s i m m e d i a t e l y ( s i n c et h i s i t h l a s t i t e r a t i o n ) a n t h n e x t s e q u e n c e i i n i t i a t e d .

2 5 0 : I f t h i s l i n e i r e a c h e d a f t e r l i n e 2 4 0 , t h e n t h p l a y e r h a e n t e r e do n m o r e n u m b e r t h a n i a l l o w e d . T h g a m e i t h e r e f o r e l o s t a n i t e r m i n a t e d . I c o n t r o l p a s s e s t t h i s l i n e f r o m l i n e 2 6 0 , t h e n t h p l a y e r l o s e s b e c a u s e w r o n g n u m b e r w a s e n t e r e d .

2 6 0 - 2 7 0 : T h n u m b e r e n t e r e d b t h p l a y e r i c o m p a r e d t t h n u b e t h a t h s h o u l d h a v e e n t e r e d . I t h n u m b e r i c o r r e c t , i i f l a s h e d o t h s c r e e n . O t h e r w i s e , c o n t r o l p a s s e s t l i n e 2 5 0 .

3 1 0 - 3 2 0 : T h p l a y e r i c o n g r a t u l a t e d f o c o m p l e t i n g a l e v e l .3 4 0 - 3 5 0 : T h p l a y e r i c o n g r a t u l a t e d f o p a s s i n g t h f i n a l ( n i n t h )

l e v e l .

S u b r o u t i n e4 0 0 - 6 9 0 : T h i s s u b r o u t i n e f l a s h e s n u m b e r , a l s o p r o d u c i n g a n a p

p r o p r i a t e t o n e , s e t t i n g t h b a c k g r o u n d a n b o r d e r c o l o r s t t h o s ea s s i g n e d t t h s p e c i f i c n u m b e r . M o s t o t h l i n e s i t h i s s u b r o u t i n ea r i n v o l v e d i p r o d u c i n g t h t o n e .

4 1 0 : T h n u m b e r b e i n g f l a s h e d i a l s o u s e d a s t h e c h a r a c t e r c o l o ro t h d i g i t w h i c h i d i s p l a y e d a t h e c e n t e r o t h s c r e e n .4 2 0 : T h c h a r a c t e r c o l o r i a l s o u s e d a t h e s c r e e n ' s b o r d e r c o l o r .4 3 0 : T h c o n t e n t s o a r r a y C O L R a r u s e d t d e t e r m i n e t h b a c k

g r o u n d ( s c r e e n ) c o l o r .4 4 0 : T h n u m b e r ' s s c r e e n d i s p l a y c o d e i p l a c e d i s c r e e n m e m o r y

a t h e l o c a t i o n c o r r e s p o n d i n g t t h e c e n t e r o t h s c r e e n .4 5 0 : T h v a r i a b l e i u s e d t d e t e r m i n e t h f r e q u e n c y o t h t o n e .

H i g h e r n u m b e r s r e p r e s e n t h i g h e r t o n e s . H o w e v e r , t m a k e t h g a m ee a s i e r f o r t h p l a y e r ( a b o u t t i m e ! ) t h n u m b e r i g i v e n a h i g h e rf r e q u e n c y t h a n b e c a u s e i i l o c a t e d t t h r i g h t o t h k e o t h k e y b o a r d .

4 6 0 - 4 7 0 : T h v a r i a b l e s T l , T 2 , a n T s p e c i f y t h f r e q u e n c i e s f o e a c h o t h e t h r e e v o i c e s i t h s o u n d c h i p .

Page 134: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 134/244

Page 135: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 135/244

C H A P T E R 1 M A T H W H I Z

H e r e ' s a o p p o r t u n i t y t b r u s h u p o n y o u r a r i t h m e t i c s k i l l s . W h a tt h i s p r o g r a m d o e s i t p r o v i d e y o w i t h a u n l i m i t e d s e r i e s o e l e m e n t a r y a r i t h m e t i c p r o b l e m s c o n s i s t i n g o a d d i t i o n , s u b t r a ct i o n , m u l t i p l i c a t i o n , a n d i v i s i o n . T h e s e a r r a n d o m l y s e l e c t e da n t h n u m b e r s o n w h i c h t h o p e r a t i o n s t a k e p l a c e a r a l s or a n d o m l y s e l e c t e d . A r e s u l t , n s e s s i o n i i d e n t i c a l t a n o t h e r .

T h p r o g r a m p r i n t s a l t h p r o b l e m s i c o l u m n f o r m , p o s it i o n i n g t h e c u r s o r a t h p o i n t w h e r e t h a n s w e r s h o u l d b e n t e r e d .Y o u m a y e n t e r s p a c e s b e f o r e t h n u m b e r i o r d e r t l i n e i u w i t h t h n u m b e r s a b o v e i t H o w e v e r , t h p r o g r a m a l l o w s y o t e n t e r t h e a n s w e r j u s t a b o u t a n y w h e r e o n t h l i n e , w i t h a m a n yl e a d i n g b l a n k s o r z e r o s a y o w i s h . I t h e c o r r e c t a n s w e r i e n t e r e d , t h c o m p u t e r b e e p s . I t h w r o n g a n s w e r ( o n a n s w e ra a l l ) i e n t e r e d , t h e c o m p u t e r h i s s e s a n r e p l a c e s y o u r i n c o r r e c ta n s w e r w i t h t h c o r r e c t o n e . T h e n t i r e s p a c e o t h s c r e e n i u s e d f o d i s p l a y i n g p r o b l e m s , m o v i n g f r o m l e f t t o r i g h t a n f r o mt o t b o t t o m . O n c e t h s c r e e n i f i l l e d u p t h p r o g r a m p a u s e s

m o m e n t f o y o t s e e t h e l a s t a n s w e r a n t h e n c l e a r s t h s c r e e n , s t a r t i n g a g a i n f r o m t h t o a n r e s u m i n g t h p r o b l e m s e t .W h e n e v e r y o f e e l t h a t " e n o u g h i e n o u g h , " y o m a p r e s s

t h F k e y . T h i s t e r m i n a t e s t h s e s s i o n w i t h d i s p a s s i o n a t e d i p l a y o y o u r p e r f o r m a n c e r a t i n g .

1 3

Page 136: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 136/244

7 3 Z A P P E R S F O R T H C O M M O D O R E 6 1 R E M A T H W H I Z2 R T N $ = C H R $ ( 1 3 ) : B L K $ = C H R $ ( 3 2 ) : P 0 K E 5 3 2 8 1 , 13 D I F U N $ ( 3 )4 0 F O R 1 = T 3 : R E A D F U N $ ( I ) : N E X T5 D A T A " + H f M _ H f H X " f " / H6 P R I N T M a " ; : R O W = 0 : C O L = 0 : C N T = 0 : Y E S = 07 T = I N T ( R N D ( 0 ) * 4 )8 0 O N T + G O T O 9 0 , 1 3 0 , 1 7 0 , 2 1 09 A = I N T ( R N D ( 0 ) * 1 0 0 )1 0 B = I N T ( R N D ( 0 ) * 1 0 0 )1 1 C = A + B1 2 0 G O T O 2 4 01 3 A = I N T ( R N D ( 0 ) * 1 0 0 )1 4 B = I N T ( R N D ( O ) * ( A + D )1 5 C = A - B1 6 0 G O T O 2 4 01 7 A = I N T ( R N D ( 0 ) * 3 1 )1 8 B = I N T ( R N D ( 0 ) * 1 0 )1 9 C = A * B2 0 G O T O 2 4 2 1 C = I N T ( R N D ( 0 ) * 3 1 )2 2 B = I N T ( R N D ( 0 ) * 3 0 > + 12 3 A = B * C2 4 G O S U B 4 0 02 5 G O S U B 8 0 0 : I F D = - 9 T H E N 3 8 2 6 C N T = C N T + 1 : I F D = T H E N 3 1 2 7 G O S U B 1 0 0 02 8 G O S U B 6 0 2 9 L = 3 : S = C : G 0 S U B 7 0 3 0 0 G O T O 3 2 03 1 Y E S = Y E S + 1 : G 0 S U B 1 1 0 03 2 R 0 W = R 0 W - 3 : C 0 L = C 0 L + 53 3 I C O L < 4 0 T H E N 7 3 4 C O L = 03 5 R 0 U = R 0 U + 53 6 I R O W < 2 5 T H E N 7 3 7 F O 1 = T 1 0 0 0 : N E X T I : G O T O 6 3 8 G O S U B 1 3 0 0 : P O K E 5 4 2 9 6 , 0

Page 137: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 137/244

M A T H W H I Z 1 3 3 9 E N 4 0 R E P R I N T P R O B L E M4 1 P R I N T " H " ;4 2 G O S U B 6 0 4 3 L = 3 : S = A : G O S U B 7 0 4 4 R O W = R O W + 14 5 G O S U B 6 0 4 6 0 P R I N T F U N $ ( T ) ;4 7 L = 2 : S = B : G 0 S U B 7 0 4 8 R O W = R O W + 14 9 G O S U B 6 0 5 0 P R I N T " 5 1 R O W = R O W + 15 2 G O S U B 6 0 5 3 P R I N T " Q " ;5 4 R E T U R N6 0 R E P O S I T I O N C U R S O R A R O W , C O L6 1 0 P O K E 2 1 1 , 06 2 S P O T = 1 0 2 4 + R O W * 4 0 + C O L6 3 P O K E 2 0 9 , S P O T A N 2 5 6 4 P O K E 2 1 0 , I N T ( S P O T / 2 5 6 )6 5 R E T U R N7 0 0 R E M P R I N T A C U R R E N T S C R E E N P O S .7 1 L L = 37 2 I S < 1 0 0 T H E N L L = 27 3 I S < 1 0 T H E N L L = 17 4 I L L = L T H E N 7 6 7 5 F O 1 = T L - L L : P R I N T " ; : N E X T7 6 P R I N T S T R $ ( S ) ;7 7 R E T U R N8 0 0 R E M I N P U T ( U S E R ' S A N S W E R )8 1 D = - 1 : M = 0 : A N S $ = " "8 2 P R I N T " B l l " ;8 3 0 G E T A $ : I F A $ = " " T H E N 8 3 08 4 I A $ = R T N $ T H E N 9 7 8 5 I A $ < > " | | " T H E N 9 1 8 6 I A N S $ = " " T H E N 8 3 8 7 I R I G H T $ ( A N S $ , 1 ) = B L K $ T H E N 8 9

Page 138: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 138/244

1 3 Z A P P E R S F O T H C O M M O D O R E 6 8 8 M = M - 18 9 A N S $ = L E F T $ ( A N S $ , L E N ( A N S $ ) - 1 )9 0 P R I N T I I H " ; : G O T O 8 2 9 1 I A $ = B L K $ T H E N 9 6 9 2 I A $ > = " 0 " A N A $ < = " 9 " T H E N 9 5 09 3 I A $ O " H " T H E N 8 3 9 4 D = - 9 : G 0 T 0 9 9 9 5 M = M + 19 6 P R I N T A $ ; : A N S $ = A N S $ + A $ : G O T O 8 2 9 7 P R I N T " ; : I F M = T H E N 9 9 9 8 D = V A L ( A N S $ )9 9 R E T U R N1 0 0 0 R E W R O N G N O I S E1 0 1 0 P O K E 5 4 2 7 2 , 1 8 41 0 2 0 P O K E 5 4 2 7 3 , 1 11 0 3 0 P O K E 5 4 2 7 7 , 3 41 0 4 0 P O K E 5 4 2 7 8 , 3 41 0 5 0 P O K E 5 4 2 9 6 , 1 51 0 6 0 P O K E 5 4 2 7 6 , 1 2 9 : F 0 R Q = T 1 0 0 : N E X T1 0 7 0 P O K E 5 4 2 7 6 , 01 0 8 0 R E T U R N1 1 0 0 R E R I G H T N O I S E1 1 1 0 P O K E 5 4 2 7 2 , 1 6 81 1 2 0 P O K E 5 4 2 7 3 , 9 71 1 3 0 P O K E 5 4 2 7 4 , 01 1 4 0 P O K E 5 4 2 7 5 , 81 1 5 0 P O K E 5 4 2 7 7 , 3 41 1 6 0 P O K E 5 4 2 7 8 , 3 41 1 7 0 P O K E 5 4 2 9 6 , 1 51 1 8 0 P O K E 5 4 2 7 6 , 6 5 : F 0 R Q = T 1 0 0 : N E X T1 1 9 0 P O K E 5 4 2 7 6 , 01 2 0 0 R E T U R N1 3 0 0 R E P E R F O R M A N C E R A T I N G1 3 1 0 P O K E 5 3 2 8 1 , 61 3 2 0 P R I N T " □ a O O D D " ; T A B ( 1 4 ) ; " D Y 0 U R

S C O R E S : "1 3 3 0 P R I N T : P R I N T1 3 4 0 P R I N T T A B < 9 > , - " C O R R E C T I N C O R R E C T "

Page 139: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 139/244

M A T H W H I Z 1 3 1 3 5 0 P R I N T T A B ( 9 ) ; M1 3 6 0 P R I N T : P R I N T : P R I N T T A B ( 1 0 ) ; Y E S -1 3 7 0 P R I N T T A B ( 2 3 ) ; C N T - Y E S1 3 8 0 F I N E = I N T ( Y E S / C N T * 1 0 0 >1 3 9 0 P R I N T r P R I N T T A B ( 9 ) ; " ( " ; F I N E ; " | | % ) " 1 4 0 0 P R I N T T A B ( 2 2 ) ; M ( " ; 1 0 0 - F I N E - | f | | | % ) 1 4 1 0 R E T U R N

G L O S S A R Y O V A R I A B L E SF U N $ s t r i n g a r r a y o f o u r e l e m e n t s n u m b e r e d t h r o u g h

w h i c h c o n t a i n s t h s y m b o l s f o r t h e f o u r o p e r a t i o n s .R T N $ C o n t a i n s t h R E T U R N c h a r a c t e r . ( I u s e d t s a v e s p a c e

i t h l i s t i n g o t h p r o g r a m . )B L K $ C o n t a i n s t h s p a c e ( o b l a n k ) c h a r a c t e r . T h i s i u s e d b

c a u s e o f a p o s s i b l e b u i t h C o m m o d o r e 6 4 w h i c h s o m et i m e s s u b s t i t u t e s t h s h i f t e d s p a c e f o t h r e g u l a r s p a c ec h a r a c t e r .R O S p e c i f i e s t h e r o f o c u r s o r p o s i t i o n i n g .

C O S p e c i f i e s t h e c o l u m n f o c u r s o r p o s i t i o n i n g .C N C o u n t s t h n u m b e r o p r o b l e m s a n s w e r e d , f o u s i t h

c a l c u l a t i o n o t h p e r f o r m a n c e r a t i n g .Y E S p e c i f i e s t h n u m b e r o p r o b l e m s a n s w e r e d c o r r e c t l y , f o

u s i c a l c u l a t i n g t h p e r f o r m a n c e r a t i n g .r a n d o m l y s e l e c t e d n u m b e r b e t w e e n a n w h i c h s p e c

i f i e s w h i c h o p e r a t i o n i t b u s e d i t h e c u r r e n t p r o b l e m .T h f i r s t o t h t w o p e r a n d s i p r o b l e m .T h s e c o n d o t h t w o p e r a n d s i p r o b l e m .T h c o r r e c t a n s w e r t t h p r o b l e m a f o u n d b t h c o p u t e r .T h a n s w e r e n t e r e d b t h p l a y e r . T h i s v a r i a b l e i s e t - i t h p l a y e r m a k e s n a n s w e r a n d t i t h p l a y e r

p r e s s e s t h F k e y .T h m a x i m u m l e n g t h o n u m b e r t b p r i n t e d f o u s i t h s u b r o u t i n e a l i n e 7 0 0 .U s e d t h o l d t h v a l u e t b p r i n t e d b t h s u b r o u t i n e a l i n e 7 0 0 .I t h s u b r o u t i n e a t l i n e 8 0 t h i s v a r i a b l e i u s e d t c o u n tt h n u m b e r o d i g i t s e n t e r e d b t h u s e r .

A N S $ H o l d s t h a n s w e r e n t e r e d b t h p l a y e r i c h a r a c t e r f o r m .

Page 140: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 140/244

7 3 Z A P P E R S F O T H C O M M O D O R E 6

L I N E S O S P E C I A L I N T E R E S T9 0 - 1 2 0 : T h o p e r a t i o n i t h a t o a d d i t i o n . B o t h a n r a n g e b

t w e e n a n 9 9 1 3 0 - 1 6 0 : T h i s i s u b t r a c t i o n . L i n e 1 4 e n s u r e s t h a t i n e v e r g r e a t e r

t h a n A s t h a t t h r e s u l t i n e v e r n e g a t i v e .1 7 0 - 2 0 0 : T h i s i m u l t i p l i c a t i o n . F o t h s a k e o f s i m p l i c i t y , i k e p t

t d i g i t . i l i m i t e d t t h v a l u e 3 f o c o m p a t i b i l i t y w i t h d i v i s i o n( s e e b e l o w ) .

2 1 0 - 2 3 0 : T h i s i d i v i s i o n . T e n s u r e t h a t t h e d i v i s i o n c o m e s o u e v e n l y , a n a r c a l c u l a t e d a n t h e n i d e r i v e d f r o m t h o s ev a l u e s . a n a r e l i m i t e d t t h v a l u e 3 s t h a t i n e v e r l a r g e rt h a n t h r e e d i g i t s . N o t i c e t h a t c a n e v e r b 0 d i v i s i o n b i u n d e f i n e d i m a t h e m a t i c s .

2 5 0 : v a l u e o f o i n d i c a t e s t h a t F i p r e s s e d a n t h p r o g r a mt e r m i n a t e d .

2 6 0 : C N i i n c r e m e n t e d o n l y i t h u s e r h a n o t p r e s s e d F i t h l a s t p r o b l e m .

2 7 0 - 3 0 0 : T h u s e r g a v e t h w r o n g a n s w e r o f a i l e d t o a n s w e r . L i n e2 9 d i s p l a y s t h c o r r e c t a n s w e r .

3 1 0 : T h u s e r a n s w e r e d c o r r e c t l y .3 2 0 - 3 6 0 : M o d i f i e s R O a n C O t i n d i c a t e t h l o c a t i o n a w h i c h

t h p r o b l e m i t b d i s p l a y e d .3 7 0 : P a u s e s b e f o r e c l e a r i n g t h s c r e e n .

S u b r o u t i n e4 0 0 - 5 4 0 : D i s p l a y s t h p r o b l e m a t h e c u r r e n t l o c a t i o n . N o t i c e t h a t

t h v a l u e s f o a n a r s e b e f o r e c a l l i n g t h s u b r o u t i n e a l i n e7 0 0 . F o t h s e c o n d o p e r a n d , b e c a u s e t h s e c o n d n u m b e r i n e v e r l a r g e r t h a n t w d i g i t s . N o t i c e a l s o t h a t e v e r y P R I N T s t a t e m e n te n d s w i t h a s e m i c o l o n t o r e t a i n t h e f f e c t i v e n e s s o t h c u r s o rr e p o s i t i o n i n g .

S u b r o u t i n e6 0 0 - 6 5 0 : R e p o s i t i o n s t h c u r s o r a s p e c i f i e d b R O a n C O L .

S u b r o u t i n e7 0 0 - 7 7 0 : P r i n t s t h v a l u e o f a t h e c u r r e n t c u r s o r l o c a t i o n i f i e l d

w h o s e w i d t h i s p e c i f i e d b L 7 1 0 - 7 3 0 : T h v a r i a b l e L d e t e r m i n e s t h a c t u a l n u m b e r o d i g i t s

i n S .

Page 141: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 141/244

M A T H W H I Z 1 3 7 4 0 - 7 5 0 : I L i l e s s t h a n L , p r i n t l e a d i n g b l a n k s b e f o r e p r i n t i n g

S T h i s c a u s e s a l t h n u m b e r s t b r i g h t j u s t i f i e d .

S u b r o u t i n e8 0 0 - 9 9 0 : I n p u t s t h v a l u e f o D

8 1 0 : I n d i g i t s a r e n t e r e d b t h t i m e t h u s e r p r e s s e s R E T U R N ,w i l l s t i l l c o n t a i n - 1

8 6 0 : T h u s e r c a n n o t b a c k s p a c e i h h a n o t e n t e r e d a n c h a r a c t e r so i h h a a l r e a d y b a c k s p a c e d o v e r a l o t h e m .

8 7 0 - 8 8 0 : T h u s e r i b a c k s p a c i n g ; i t h l a s t c h a r a c t e r e n t e r e d i n o t a b l a n k , t h e n t h d i g i t c o u n t i d e c r e m e n t e d .

8 9 0 : T h l a s t c h a r a c t e r e n t e r e d i d e l e t e d f r o m A N S $ .9 4 0 : S e t t i n g t - i n d i c a t e s t h a t F h a b e e n p r e s s e d .9 5 0 : T h u s e r h a p r e s s e d d i g i t , s t h d i g i t c o u n t i i n c r e m e n t e d .9 6 0 : P r i n t t h e c h a r a c t e r a n d a d d i t t h e n o A N S $ .9 7 0 : I n d i g i t s h a v e b e e n e n t e r e d ( t h e p l a y e r m a h a v e e n t e r e d

b l a n k s , t h o u g h ) , t h v a l u e o i l e f t a - 1

S u b r o u t i n e1 0 0 0 - 1 0 8 0 : P r o d u c e s n o i s e i n d i c a t i n g t h a t t h p l a y e r h a e n t e r e d

e i t h e r t h w r o n g a n s w e r o n a n s w e r a a l l .

S u b r o u t i n e1 1 0 0 - 1 2 0 0 : P r o d u c e s a t o n e s i g n a l i n g t h a t t h u s e r h a e n t e r e d

c o r r e c t a n s w e r .

S u b r o u t i n e1 3 0 0 - 1 4 1 0 : D i s p l a y s t h u s e r ' s p e r f o r m a n c e r a t i n g .

S U G G E S T E D E N H A N C E M E N T S1 L a r g e r n u m b e r s m a b u s e d i t h p r o b l e m s t i n c r e a s e t h e i r d i

f i c u l t y . B t h s a m e t o k e n , s m a l l e r n u m b e r s w i l l m a k e t h p r o b l e m se a s i e r . B a w a r e , h o w e v e r , t h a t t h i s c h a n g e w o u l d r e q u i r e e x t e n s i v em o d i f i c a t i o n s s i n c e t h w i d t h o t h n u m b e r s w i l l c h a n g e . Y o m a h a v e t f i f e w e r p r o b l e m s o s c r e e n . A l s o , t a k e c a r e t k e e p t h s e l e c t e d n u m b e r s w i t h i n w o r k a b l e r a n g e s .

2 M o d i f y t h p r o g r a m t w o r k w i t h n e g a t i v e n u m b e r s a w e l l .

Page 142: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 142/244

C H A P T E R 1 P H O N E - Y W O R D S

N m a t t e r w h a t t h t e l e p h o n e c o m p a n y p u b l i c r e l a t i o n s p e o p l em a s a a b o u t t h e a s e w i t h w h i c h s e v e n - d i g i t t e l e p h o n e n u m b e r sa r r e m e m b e r e d , t h f a c t o t h m a t t e r i t h a t f o m a n y o u s h a v i n g t r e m e m b e r a t e l e p h o n e n u m b e r c o n s i s t i n g o s e v e n d i g i t s( r a t h e r t h a n t h t w l e t t e r s o t e l e p h o n e e x c h a n g e f o l l o w e d b f i v e d i g i t s , s u c h a i K L 5 - 3 8 9 1 ) r e q u i r e s s u p e r h u m a n p o w e r so m e m o r y , w h i c h r e g r e t t a b l y w d o n ' t a l p o s s e s s . O u t r u s t yf r i e n d , t h C o m m o d o r e 6 c o m p u t e r , i a b l e t l i g h t e n t h e b u r d e ns o m e w h a t .

I y o t a k e l o o k a t h d i a l o t h t y p i c a l A m e r i c a n p h o n e ,y o w i l l n o t i c e t h a t t h n u m b e r i a s s o c i a t e d w i t h t h l e t t e r sA B a n C I t h s a m e w a y , t h n u m b e r i a s s o c i a t e d w i t ht h l e t t e r s D E a n F a n s f o r t h . ( U n f o r t u n a t e l y , t h n u m b e r s

a n d n o h a v e a n y l e t t e r s a a l a s s o c i a t e d w i t h t h e m s a n t e l e p h o n e n u m b e r c o n t a i n i n g o n o m o r e o t h e s e d i g i t s i a u t o m a t i c a l l y r e j e c t e d a s c a n d i d a t e f o c o n v e r s i o n . )

I t h i s p r o g r a m t h u s e r i i n v i t e d t t y p e i a n s e v e n - d i g i tt e l e p h o n e n u m b e r . T h c o m p u t e r t h e n e x h a u s t i v e l y d i s p l a y s a l t h p o s s i b l e w o r d s t h a t c a b f o r m e d f r o m t h a t n u m b e r b u i n t h l e t t e r s t h a t a r a s s o c i a t e d w i t h i t d i g i t s . F o e x a m p l e ,t h t e l e p h o n e n u m b e r 7 7 6 - 4 7 2 6 c a n p r o d u c e s u c h w o r d s a 7 4

Page 143: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 143/244

P H O N E - Y W O R D S 1 4 P P M G P A M , R S O I S A N , a n S P O G P A N . W h e n a n y o n e o t h e s ea d m i t t e d l y p e c u l i a r l o o k i n g w o r d s i d i a l e d , t h e c o r r e c t t e l e p h o n en u m b e r i r u n g . H o w e v e r , t h e r e a r n f e w e r t h a n 2 , 1 8 7 d i f f e r e n tc o m b i n a t i o n s t h a t e x i s t f o r t h e n u m b e r . ( T h i s i 3 7 — y o u c a c h e c k i o y o u r c o m p u t e r . ) T h s p e e d a n p o w e r o t h c o m p u t e rb e i n g w h a t i i s a l o t h e s e p o s s i b l e c o m b i n a t i o n s c a n b d i p l a y e d o t h s c r e e n b e f o r e y o u r v e r y e y e s . I f t h i s i d o n e , y o w i l l f i n d t h a t a m o n g t h i s e x t r a o r d i n a r i l y l a r g e n u m b e r o p o s s ib i l i t i e s i t h w o r d P R O G R A M . N o w , i i o u c o n t e n t i o n t h a ti i m u c h e a s i e r t a s s o c i a t e t h w o r d P R O G R A M w i t h t h a tt e l e p h o n e n u m b e r t h a n t h a v e t r e m e m b e r t h s e v e n d i g i t s . I i w i t h t h a t i m i n d t h a t w p r e s e n t o u p h o n e - y w o r d p r o g r a m .

A s o o n a t h p r o g r a m i r u y o a r a s k e d t e n t e r t h s e v e n -d i g i t p h o n e n u m b e r w i t h o u t t h h y p h e n . T h p r o g r a m d o e s n o a c c e p t a n c h a r a c t e r o t h e r t h a n t h d i g i t s t h r o u g h 9 s i n c e t h e s ea r t h o n l y d i g i t s t h a t h a v e c o r r e s p o n d i n g l e t t e r s a s s o c i a t e d w i t ht h e m . I a d d i t i o n , n u m b e r w i t h f e w e r t h a n o r m o r e t h a n s e v e nd i g i t s i s i m i l a r l y r e j e c t e d . S h o u l d y o m a k e t y p i n g e r r o r w h e ne n t e r i n g t h n u m b e r , y o m a b a c k s p a c e a m u c h a n e e d e d .O n c e y o a r s u r e t h n u m b e r i c o r r e c t , t h R E T U R N k e i p r e s s e d . T h p r o g r a m r e s p o n d s b a s k i n g f o y o u r p r e f e r e n c e o b a c k g r o u n d c o l o r . T h i s m u s t b a i n t e g e r b e t w e e n a n 1 a n c o r r e s p o n d s t t h s t a n d a r d c o d e s f o t h C o m m o d o r e 6 4 Y o a r t h e n a s k e d f o t h c o l o r i w h i c h t h w o r d s a r t b d i s p l a y e d .O n c e a g a i n , a i n t e g e r b e t w e e n 0 a n d 1 i r e q u i r e d . T h p r g r a m , h o w e v e r , d o e s n o t a c c e p t a c h a r a c t e r c o l o r t h a t i i d e n t i c a lw i t h t h b a c k g r o u n d s i n c e t h i s w o u l d r e s u l t i b l a n k s c r e e n .T h s c r e e n i t h e n f i l l e d w i t h t h f i r s t g r o u p o w o r d s p r o d u c e db t h p h o n e n u m b e r e n t e r e d . I v i e w o t h e n o r m o u s n u m b e ro w o r d s t h a t a r p r o d u c e d b t h i s p r o g r a m , t h s c r e e n w i l l s o o nb e c o m e f u l l . I o r d e r t g i v e t h v i e w e r a n o p p o r t u n i t y t s c a nt h w o r d s i c o m f o r t f o p o s s i b l e c a n d i d a t e , t h p r o g r a m p a u s e sa f t e r d i s p l a y i n g s c r e e n f u l o w o r d s ( t h e r e a r 1 1 w o r d s p e s c r e e n f u l ) . W h e n t h v i e w e r i r e a d y t s e m o r e w o r d s , t h F k e i p r e s s e d . T h s c r e e n i t h e n c l e a r e d a n i i m m e d i a t e l yf i l l e d w i t h a n o t h e r s c r e e n f u l o f w o r d s . I f a t a n t i m e t h v i e w e rw i s h e s t t e r m i n a t e t h l i s t i n g , t h F k e m a b p r e s s e d . A t h b o t t o m o f e v e r y s c r e e n i m e s s a g e r e m i n d i n g t h v i e w e r o

Page 144: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 144/244

7 4 Z A P P E R S F O R T H C O M M O D O R E 6 t h f u n c t i o n s o t h F a n F k e y s . O n c e t h l i s t i n g h a b e e nc o m p l e t e d , t h p r o g r a m p a u s e s , w a i t i n g f o t h v i e w e r t p r e s st h F k e y . W h e n t h i s i d o n e , t h v i e w e r i a s k e d i a n o t h e rn u m b e r i t b t r i e d .

1 R E P H O N E - Y W O R D S2 D I L T T E R $ ( 9 , 2 ) , N ( 6 >3 D A T A A , B , C , D , E , F , G , H , I , J , K , L4 D A T A M , N , O , P , R , S , T , U , V f W , X , Y5 F O 1 = T 6 0 F O R J = T 7 R E A D L T T E R $ ( I , J )8 N E X T9 N E X T1 0 P R I N T l P R I N T " E N T E R P H O N E N O D I G I T S " ;1 1 P R I N T ( N H Y P H E N ) : "1 2 G O S U B 2 0 1 3 G O S U B 4 0 1 4 P R I N T l P R I N T " A N O T H E R ( O N ) " 1 5 0 G E T A $ : I F A $ O " Y " A N A $ O " N " T H E N 1 5 1 6 P R I N T A $ : P R I N T1 7 I A $ = " Y " T H E N 1 0 1 8 P R I N T " Q F I N I S H E D "1 9 E N 2 0 R E M G E T N U M B E R2 1 1 = 2 2 P R I N T " ■ I I " ;2 3 0 G E T A $ : I F A $ = " " T H E N 2 3 02 4 2 5 2 6 2 7 2 8

A $ > = " 2 " A N A $ < = " 9 " T H E N 3 1 A $ = C H R $ ( 1 3 ) T H E N 3 6 A $ O " | | " T H E N 2 3 1 = T H E N 2 3

1 - 2 9 P R I N T I I I I " ;3 0 G O T O 2 2 3 1 I I > T H E N 2 3 3 2 N ( I ) = A S C ( A $ ) - 4 83 3 1 = 1 + 13 4 P R I N T A $

Page 145: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 145/244

P H O N E - Y W O R D S 1 4 3 5 0 G O T O 2 2 3 6 I I < T H E N 2 3 3 7 0 P R I N T3 8 0 R E T U R N4 0 0 R E M D I S P L A Y T H E W O R D S4 1 P R I N T . - I N P U T " B A C K G R O U N D C O L O R ( 0 - 1 5 ) " ; B4 2 I B O I N T ( B ) O B < O B > 1 5 T H E N 4 1 4 3 P R I N T : I N P U T " C H A R A C T E R C O L O R ( 0 - 1 5 ) " ; C4 4 I C O I N T ( C ) O C < O C > 1 5 O T H E N 4 3 4 5 0 P O K E 5 3 2 8 1 , B4 6 0 P O K E 6 4 6 , C : R E M W E L L , I T ' S E A S Y4 7 P R I N T " Q " ; : X = 04 8 F O C 0 = 0 T 4 9 F O C 1 = 0 T 5 0 F O C 2 = 0 T 5 1 F O C 3 = 0 T 5 2 F O C 4 = 0 T 5 3 F O C 5 = 0 T 5 4 F O C 6 = 0 T 5 5 P R I N T L T T E R $ ( N ( 0 ) , C 0 ) ;5 6 P R I N T L T T E R $ ( N ( 1 ) , C 1 ) ;5 7 P R I N T L T T E R $ ( N ( 2 ) , C 2 ) ;5 8 P R I N T L T T E R $ ( N ( 3 ) , C 3 ) ;5 9 P R I N T L T T E R $ ( N ( 4 ) , C 4 ) ;6 0 P R I N T L T T E R $ ( N ( 5 ) , C 5 ) ;6 1 P R I N T L T T E R $ ( N ( 6 ) , C 6 ) ;6 2 P R I N T " 6 3 X = X + 16 4 I X < 1 1 0 T H E N 6 6 06 5 G O S U B 8 0 0 : I F X < T H E N 7 6 06 6 N E X T C 6 7 N E X T C 6 8 N E X T C 6 9 N E X T C 7 0 0 N E X T C 7 1 N E X T C 7 2 0 N E X T C 7 3 P R I N T : P R I N T : P R I N T7 4 P R I N T " F 7 = E N D "

Page 146: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 146/244

1 4 Z A P P E R S F O R T H C O M M O D O R E 6 7 5 G E A $ : I F A $ < > M B " T H E N 7 5 7 6 0 P O K E 5 3 2 8 1 , 67 7 P R I N T " Q U O * * * H O P E Y O F O U N D G O O D

W O R D ! * * * "7 8 R E T U R N8 0 0 R E M W A I T F O N E X T P A G E8 1 X = 8 2 P R I N T8 3 P R I N T " F 1 = M 0 R E M ; S P C ( 4 ) ; M F 7 = E N D M8 4 0 G E T A $ : I F A $ O " B M A N A $ O " B " T H E N 8 4 8 5 I A $ = " B I " T H E N X = - 18 6 P R I N T " 1 3 " ;8 7 R E T U R N

G L O S S A R Y O V A R I A B L E SL T T R $ T h i s a r r a y h o l d s t h l e t t e r s a s s o c i a t e d w i t h e a c h d i g i t .

T h e r e i a d m i t t e d l y s o m e w a s t e o m e m o r y s p a c e i t h i sa r r a y , s i n c e t h m a x i m u m r o d i m e n s i o n i ( e a c h r o r e p r e s e n t s o n d i g i t ) a n t h e r e f o r e r o w s a n a r t o t a l l yu n u s e d . T c o m p e n s a t e f o t h i s , c o l u m n i p u t w o r k .T h c o l u m n s a r n u m b e r e d 0 t o 2 , p r o v i d i n g r o o m f o t h t h r e e l e t t e r s a s s o c i a t e d w i t h e a c h d i g i t . ( D i d y o g u e s sw h w d i d n ' t u s t h v a r i a b l e n a m e L E T T E R S ? Y o u ' r er i g h t , b e c a u s e i c o n t a i n s t h k e y w o r d L E T . )T h i s i a a r r a y o s e v e n e l e m e n t s n u m b e r e d t h r o u g h 6 I h o l d s t h s e v e n d i g i t s i t h p h o n e n u m b e r f o p r c e s s i n g .W h e n t h i s v a r i a b l e i u s e d i t h s u b r o u t i n e a l i n e 2 0 i i n d i c a t e s h o m a n y d i g i t s o t h p h o n e n u m b e r h a v e b e e ne n t e r e d s o f a r .H o l d s t h i n p u t t e d v a l u e o t h b a c k g r o u n d c o l o r .H o l d s t h i n p u t t e d v a l u e o t h c h a r a c t e r c o l o r .C o u n t s h o w m a n y w o r d s h a v e b e e n p r i n t e d o t h c u r r e n ts c r e e n . A l s o , t h s u b r o u t i n e a t l i n e 8 0 s e t s t h i s v a r i a b l et - w h e n t h v i e w e r d e c i d e s t p r e m a t u r e l y t e r m i n a t et h l i s t i n g .

C 0 - C 6 T h e s e s e v e n v a r i a b l e s a r e t h e l o o p i n d i c e s w h i c h i n d i c a t ew h i c h l e t t e r i b e i n g p r i n t e d f o e a c h d i g i t .

Page 147: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 147/244

P H O N E - Y W O R D S 1 4

L I N E S O S P E C I A L I N T E R E S TS u b r o u t i n e2 0 0 - 3 8 0 : T h i s s u b r o u t i n e i n p u t s t h p h o n e n u m b e r .

2 7 0 : I t h e r e a r e n d i g i t s d i s p l a y e d o t h e s c r e e n , t h e u s e r c a n n o tb a c k s p a c e .

2 8 0 : M o v e b a c k t t h p r e v i o u s d i g i t .3 1 0 : I t h e r e a r e a l r e a d y m o r e t h a n d i g i t s o t h e s c r e e n , t h i s

s u b r o u t i n e w i l l n o t a c c e p t a n m o r e d i g i t s .3 3 0 : N o t i c e t h a t t h v a r i a b l e a l w a y s i n d i c a t e s t h e n e x t e l e m e n t o f

t b f i l l e d .3 6 0 : R E T U R N i n o a c c e p t e d u n t i l t h e r e a r e d i g i t s o t h

s c r e e n .3 7 0 : B l a n k s o u t h f i n a l c u r s o r s y m b o l .

S u b r o u t i n e4 0 0 - 7 8 0 : G e t s t h b a c k g r o u n d a n d c h a r a c t e r c o l o r s , t h e n p r i n t s a l t h w o r d s .

4 6 0 : I s e n s e , t h i s P O K E i " c h e a t i n g , " s i n c e c h a r a c t e r c o l o r m a b c h a n g e d b p r i n t i n g o n o t h c o l o r - c h a n g i n g c h a r a c t e r s . H o e v e r , l o c a t i o n 6 4 c o n t r o l s t h e c h a r a c t e r c o l o r a n t h i s P O K E i m o r e c o n c i s e t h a n u s i n g l a r g e O N . . . G O T O s t a t e m e n t . T h i s i t h e s s e n c e o t h R E M . O c o u r s e , c u r s o r r e p o s i t i o n i n g t h r o u g ht h u s o l o c a t i o n s 2 0 t h r o u g h 2 1 c o u l d a l s o b c o n s i d e r e d" c h e a t i n g , " s i n c e t h e c u r s o r c h a r a c t e r s c o u l d p e r f o r m t h s a m e f u n ct i o n . B t h a t a i m a y . . .

6 5 0 : I 1 1 w o r d s h a v e b e e n p r i n t e d , w a i t f o t h v i e w e r t p r e s sf u n c t i o n k e y . T h e n c o n t i n u e t h F O R / N E X T l o o p o r i - 1

t e r m i n a t e t h l i s t i n g .7 3 0 - 7 5 0 : T h l i s t i n g h a f i n i s h e d n o r m a l l y a n s t h p r o g r a m j u s t

w a i t s f o t h v i e w e r t p r e s s F 7

S u b r o u t i n e8 0 0 - 8 7 0 : W a i t s f o t h v i e w e r t p r e s s f u n c t i o n k e d u r i n g t h

l i s t i n g o t h w o r d s .8 1 0 : S i n c e a f r e s h s c r e e n i t b s t a r t e d , t h c o u n t o f t h n u m b e r

o w o r d s o t h s c r e e n i r e s e t t o 0 8 5 0 : I F w a p r e s s e d , t h i s c a s e i i n d i c a t e d b s e t t i n g t 1 8 6 0 : N m a t t e r w h i c h k e y w a p r e s s e d , t h s c r e e n i c l e a r e d .

Page 148: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 148/244

1 4 Z A P P E R S F O T H C O M M O D O R E 6

S U G G E S T E D E N H A N C E M E N T S1 I t h i s p r o g r a m a d v a n t a g e i t a k e n o a l t h c o m p u t e r ' s f e a t u r e s

e x c e p t s o u n d . P e r h a p s y o u w o u l d l i k e t m a k e i c l e a n s w e e p .2 M a n y h a p l e s s p e o p l e s u f f e r t h t e r r i b l e m i s f o r t u n e o f h a v i n g p h o n e

n u m b e r s w h i c h i n c l u d e O a n I s A e a s y c h a n g e w h i c h w o u l da m e l i o r a t e t h s i t u a t i o n i t a l l o w t h p r o g r a m t a c c e p t n u m b e r so f e w e r t h a n d i g i t s . I t h a t w a y , t h e s e p e o p l e c o u l d , a t l e a s t ,f o r m w o r d s w i t h t h u s e f u l p a r t o t h e i r n u m b e r , w h i c h i p r o b a b l yb e t t e r t h a n n o t h i n g . s l i g h t l y t r i c k i e r c h a n g e w o u l d b t h a v e t h p r o g r a m a c c e p t a n s e v e n - d i g i t n u m b e r a n t h e n d i s p l a y a n O o I i t h e i r n a t u r a l s t a t e , i p l a c e o a n l e t t e r .

Page 149: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 149/244

C H A P T E R 1 T I C - T A C - T O E

T h e r e c a n ' t b m a n y p e o p l e i t h w o r l d w h h a v e n ' t b e e n d l i g h t e d b t h i s e x c e e d i n g l y p o p u l a r g a m e , o n w h i c h h a b e e na r o u n d f o c e n t u r i e s . M a n y p r o g r a m m e r s h a v e w r i t t e n p r o g r a m st s i m u l a t e t h p l a y i n g o T i c - T a c - T o e i t h s h o r t h i s t o r y o t h i st e c h n o l o g y ; h e r e i o u C o m m o d o r e 6 v e r s i o n , w h i c h w b e l i e v ew i l l p l e a s e y o u .

I t h u n l i k e l y e v e n t t h a t y o a r n o f a m i l i a r w i t h t h g a m e ,t w s e t s o p a r a l l e l l i n e s a r d r a w n a r i g h t a n g l e s , r e s u l t i n g i n i n e a r e a s i n t o e a c h o w h i c h a o a m a b p l a c e d . T w c o m p e t i n g p l a y e r s t a k e t u r n s e n t e r i n g t h e i r r e s p e c t i v e s y m b o l s .I o n o t h p l a y e r s s u c c e e d s i c o m p l e t i n g h o r i z o n t a l , v e r t i c a l ,o r d i a g o n a l l i n e o h i s y m b o l , h e i c o n s i d e r e d t h w i n n e r .

E v e n t h o u g h t h g a m e a p p e a r s t b r a t h e r s i m p l e ( a g a m e sg o ) , g o o d p l a y e r e x e r c i s e s c o n s i d e r a b l e s t r a t e g y w h e n c h a ll e n g e d . I t i s c l e a r , f o e x a m p l e , t h a t g i v e n c h o i c e , i i t t h p l a y e r ' s a d v a n t a g e t g f i r s t . T h r e a s o n f o t h i s i s i m p l y t h a tt h e r e a r e o n l y n i n e b o x e s i n t o w h i c h m o v e s c a b e m a d e . T h p l a y e r w h h a f i r s t c r a c k c a m a k e f i v e m o v e s a g a i n s t t h e o p o n e n t ' s f o u r . N o o n l y t h a t , b u h a v i n g t h f i r s t m o v e a l l o w sh i t t a k e t h c e n t e r b o x , w h i c h i c o m m o n t b o t h d i a g o n a l s ,t h c e n t e r h o r i z o n t a l , a n t h c e n t e r v e r t i c a l . A t h s a m e t i m e ,

7 4

Page 150: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 150/244

1 4 Z A P P E R S F O R T H C O M M O D O R E 6 g o o d s t r a t e g y d e m a n d s t h a t y o a l w a y s b l o c k y o u r o p p o n e n t ' sa t t e m p t t a c h i e v e a l i n e o t h r e e a d j a c e n t ( i d e n t i c a l ) s y m b o l sw h i l e t r y i n g t g e l i n e o t h r e e y o u r s e l f .

I t h i s v e r s i o n o t h g a m e y o a r a s k e d w h e t h e r y o o p f o o O Y o m a k e y o u r s e l e c t i o n b p r e s s i n g t h a p p r o p r i a t e

l e t t e r . N o t e , h o w e v e r , t h a t w h o e v e r o p t s f o t h s y m b o l g o e sf i r s t . T h p l a y i n g b o a r d i d i s p l a y e d i t h m i d d l e o t h s c r e e na n d b e l o w i a r d i s p l a y e d t h p h r a s e s M T U R N o Y O U RT U R N , w h i c h e v e r i a p p r o p r i a t e . T h e s e p h r a s e s a r p r e s e n t e df r o m t h c o m p u t e r ' s p o i n t o v i e w . Y o m a k e y o u r m o v e b p o s i t i o n i n g t h e c u r s o r u s i n g t h c u r s o r k e y s . W h e n t h c u r s o r i l o c a t e d i t h s q u a r e i w h i c h y o w i s h t p l a c e y o u r m a r k , t h F l k e y i p r e s s e d a n t h a p p r o p r i a t e s y m b o l i p l a c e d t h e r e .T h c u r s o r a p p e a r s a s o l i d b o x . W h e n i i i a s p a c e a l r e a d yo c c u p i e d b e i t h e r o t h t w s y m b o l s , t h i s w i l l b i n d i c a t e d b t h s y m b o l a p p e a r i n g i r e v e r s e d g r a p h i c s . A s u c h t i m e t h F k e i i n e f f e c t i v e .

W h e n e i t h e r y o o t h c o m p u t e r s c o r e s " t h r e e i r o w , " t h w i n n i n g c o m b i n a t i o n i d i s p l a y e d i r e v e r s e d g r a p h i c s a n t h m e s s a g e W I N ! o Y O W I N ! a p p e a r s b e l o w t h p l a y i n g b o a r d .I a l t h s p a c e s a r f i l l e d w i t h o u t e i t h e r o p p o n e n t a c h i e v i n g t h r e ei r o w , t h m e s s a g e I T ' S T I i d i s p l a y e d . Y o a r t h e na s k e d i y o w i s h t p l a y a g a i n . I y o d o y o a r a g a i n g i v e na o p p o r t u n i t y t c h o o s e y o u r s y m b o l .

G o o d l u c k . Y o u m a y h a v e t o u g h t i m e b e a t i n g t h c o m p u t e r .

1 R E T I C - T A C - T O E2 D I T ( 8 f 2 ) r S Y M ( 2 )3 P R I N T M D 0 Y O U W A N T T B O 0 " 4 G E A $ : I F A $ O " X " A N A $ O " 0 M T H E N 4 5 P R I N T A 6 S Y M ( 2 ) = A S C ( A $ ) - 6 4 : S Y M ( 1 ) = 3 9 - S Y M < 2 >7 P L = 1 : I F S Y M ( 2 ) = 2 4 T H E N P L = 28 G O S U B 9 0 0 : X = 0 : Y = 09 F O B 0 X = 1 T 1 0 I P L = 1 T H E N 1 9 1 1 P R I N T T A B ( 1 5 ) ; M Y O U R T U R N C J "

Page 151: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 151/244

T I C - T A C - T O E 1 4 1 2 R 0 W = 1 : C 0 L = 1 : S P 0 T = 1 4 4 11 3 P O K E 1 4 4 1 , P E E K ( 1 4 4 1 ) + 1 2 8 : P 0 K E 5 5 7 1 3 1 1 4 G O S U B 1 1 0 01 5 X = 0 : G O S U B 4 0 1 6 I X = T H E N 1 8 1 7 I T ( X , 2 ) = 3 T H E N 3 1 1 8 P L = 1 : G O T O 2 8 1 9 P R I N T T A B ( 1 5 ) ; " M T U R N n 2 0 I Y > A N T ( Y , 2 ) = 0 T H E N X = 2 1 G O S U B 6 0 0 : F O R 1 = T 1 0 0 0 : N E X T2 2 S P O T = 1 3 5 9 + R O W * 8 0 + C O L * 22 3 P O K E S P O T , S Y M ( 1 ) : P O K E S P O T + 5 4 2 7 2 1 2 4 X = 0 : G O S U B 4 0 2 5 I X = T H E N 2 7 2 6 I T ( X , 1 ) = 3 T H E N 3 1 2 7 Y = X : P L = 22 8 N E X T B O 2 9 P R I N T T A B d S V ' I T ' S T I E "3 0 G O T O 3 6 3 1 0 G O S U B 1 4 0 03 2 I P L = 1 T H E N 3 5 3 3 0 P R I N T T A B ( 1 5 ) ; " Y O W I N ! "3 4 G O T O 3 6 03 5 0 P R I N T T A B ( 1 5 ) ; " W I N !3 6 P R I N T : P R I N T " A G A I N ( O N ) " 3 7 G E A $ : I F A $ O " Y " A N A $ O " N " T H E N 3 7 03 8 P R I N T A $ : I F A $ = " Y " T H E N 3 3 9 E N 4 0 0 R E M T E S T F O 3 - I N - A - R O W4 1 T ( R O W , P L ) = T ( R O W , P L ) + 14 2 T ( C 0 L + 3 , P L ) = T ( C 0 L + 3 , P L ) + 14 3 I R O W O C O L T H E N 4 5 4 4 T ( 7 , P L ) = T ( 7 , P L ) + 14 5 I R 0 W + C 0 L O 4 T H E N 4 7 4 6 T ( 8 , P L ) = T ( 8 , P L ) + 14 7 I T ( R 0 W , P L ) < 2 T H E N 5 0 4 8 I T ( R O W , 3 - P L ) > 0 T H E N 5 0 4 9 X = R O W : R E T U R N5 0 I T ( C O L + 3 , P L ) < 2 T H E N 5 3

Page 152: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 152/244

7 5 Z A P P E R S F O R T H C O M M O D O R E 6 5 1 I T ( C O L + 3 , 3 - P L ) > 0 T H E N 5 3 5 2 X = C 0 L + 3 : R E T U R N5 3 I T ( 7 , P L ) < 2 T H E N 5 6 5 4 I T ( 7 , 3 - P L ) > 0 T H E N 5 6 5 5 X = 7 : R E T U R N5 6 I T C 8 , P L > < 2 T H E N R E T U R N5 7 I T ( 8 , 3 - P L ) > 0 T H E N R E T U R N5 . 8 0 X = 8 : R E T U R N6 0 0 R E M S E A R C H F O N E X T S P A C E6 1 I X = T H E N 7 6 6 2 I X > T H E N 6 7 6 3 R 0 W = X6 4 F O C 0 L = 1 T 6 5 I P E E K ( 1 3 5 9 + R 0 W * 8 0 + C 0 L * 2 > = 3 2 T H E N R E T U R N6 6 N E X T C O 6 7 I X > T H E N 7 2 6 8 C O L = X - 36 9 F O R R O W = 1 T O7 0 I P E E K ( 1 3 5 9 + R O W * 8 0 + C O L * 2 ) = 3 2 T H E N R E T U R N7 1 0 N E X T R O 7 2 F O R O W = 1 T O7 3 C O L = R O W : I F X = T H E N C 0 L = 4 - R 0 W7 4 I P E E K ( 1 3 5 9 + R O W * 8 0 + C O L * 2 ) = 3 2 T H E N R E T U R N7 5 N E X T R O 7 6 R 0 W = 2 : C 0 L = 2 : I F P E E K ( 1 5 2 3 ) = 3 2 T H E N R E T U R N7 7 F O R O W = 1 T S T E P7 8 F O C 0 L = 1 T S T E P7 9 I P E E K ( 1 3 5 9 + R 0 W * 8 0 + C 0 L * 2 > = 3 2 T H E N R E T U R N8 0 N E X T C O 8 1 N E X T R O 8 2 F O R O W = 1 T 8 3 F O R C 0 L = 1 T O8 4 I P E E K ( 1 3 5 9 + R 0 W * 8 0 + C 0 L * 2 ) = 3 2 T H E N R E T U R N8 5 N E X T C O 8 6 N E X T R O 8 7 R E T U R N9 0 R E S E U B O A R D , C L E A R A R R A Y S9 1 0 P R I N T " Q D D O D Q O D D D "

Page 153: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 153/244

T I C - T A C - T O E 1 5 9 2 P R I N T T A B C 1 7 ) ; " C D D D9 3 P R I N T T A B ( 1 7 ) ; " B f f l B f f l B "9 4 0 P R I N T T A B ( 1 7 ) ; " C D C D9 5 P R I N T T A B ( 1 7 ) ; " B f f l B f f l B "9 6 P R I N T T A B ( 1 7 ) ; " L T Q • 9 7 P R I N T : P R I N T : P R I N T9 8 F O 1 = T 9 9 T ( I , 1 ) = 0 : T ( I , 2 > = 01 0 0 0 N E X T1 0 1 0 R E T U R N1 1 0 0 R E M P L A Y E R P I C K S S P O T1 1 1 0 D R = O : D C = O1 1 2 0 G E T A $ : I F A $ = " M T H E N 1 1 2 01 1 3 0 I A $ = " D " T H E N 1 2 2 01 1 4 0 I A $ = " D " T H E N 1 2 4 01 1 5 0 I A $ = " | | » T H E N 1 2 6 01 1 6 0 I A $ = " O " T H E N 1 2 8 01 1 7 0 I A $ O " H " T H E N 1 1 2 01 1 8 0 I P E E K ( S P O T ) < > 1 6 0 T H E N 1 1 2 01 1 9 0 P O K E S P 0 T , S Y M ( 2 )1 2 0 0 P O K E S P O T + 5 4 2 7 2 , 1 41 2 1 0 R E T U R N1 2 2 0 I R O W = 1 T H E N 1 1 2 01 2 3 0 D R = - 1 : G 0 T 0 1 3 0 01 2 4 0 I R 0 W = 3 T H E N 1 1 2 01 2 5 0 D R = 1 : G O T O 1 3 0 01 2 6 0 I C 0 L = 1 T H E N 1 1 2 01 2 7 0 D C = - 1 : G O T O 1 3 0 01 2 8 0 I C 0 L = 3 T H E N 1 1 2 01 2 9 0 D C = 11 3 0 0 P O K E S P 0 T , P E E K ( S P 0 T ) - 1 2 81 3 1 0 R O W = R O W + D R : C O L = C O L + D C1 3 2 0 S P O T = 1 3 5 9 + R O W * 8 0 + C O L * 21 3 3 0 P O K E S P 0 T , P E E K ( S P 0 T ) + 1 2 81 3 4 0 G O T O 1 1 1 01 4 0 0 R E H I G H L I G H T 3 - I N - A - R O W1 4 1 0 I X > T H E N 1 4 8 01 4 2 0 S P O T = 1 3 6 1 + X * 8 0

Page 154: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 154/244

1 5 Z A P P E R S F O T H C O M M O D O R E 6 1 4 3 0 F O R C 0 L = 1 T 1 4 4 0 P O K E S P 0 T , P E E K ( S P 0 T ) + 1 2 81 4 5 0 S P 0 T = S P 0 T + 21 4 6 0 N E X T C O 1 4 7 0 R E T U R N1 4 8 0 I X > 6 T H E N 1 5 5 01 4 9 0 S P 0 T = 1 4 3 3 + X * 21 5 0 0 F O R O W = 1 T 1 5 1 0 P O K E S P 0 T , P E E K ( S P 0 T ) + 1 2 81 5 2 0 S P 0 T = S P 0 T + 8 01 5 3 0 N E X T R O 1 5 4 0 R E T U R N1 5 5 0 S P 0 T = 1 4 4 1 : I F X = T H E N S P 0 T = 1 4 4 51 5 6 0 F O R R O W = 1 T O1 5 7 0 P O K E S P 0 T f P E E K ( S P 0 T ) + 1 2 81 5 8 0 S P 0 T = S P 0 T + 7 8 : I F X = T H E N S P 0 T = S P 0 T + 41 5 9 0 N E X T R O 1 6 0 0 R E T U R N

G L O S S A R Y O F V A R I A B L E ST h i s m a t r i x k e e p s t r a c k o h o m a n y o e a c h s y m b o l a r i e a c h r o w , c o l u m n , a n d i a g o n a l . h a s 8 r o w s . T h f i r s t t h r e e r o w s r e p r e s e n t t h e t h r e e r o w s i t h p l a y i n gb o a r d . T h s e c o n d t h r e e r o w s o r e p r e s e n t t h e t h r e ec o l u m n s o t h b o a r d . T h s e v e n t h r o o s t a n d s f o t h d i a g o n a l g o i n g f r o m t h t o l e f t c o r n e r o t h b o a r dt t h b o t t o m r i g h t . T h e i g h t h r o o i f o t h e o t h e rd i a g o n a l . h a c o l u m n s , o n f o e a c h p l a y e r . T h c o p u t e r i a l w a y s p l a y e r a n t h h u m a n i a l w a y s p l a y e r2 S Y T h i s a r r a y h o l d s t h s c r e e n d i s p l a y c o d e s f o e a c h p l a y e r ' ss y m b o l . S Y M ( 2 ) h o l d s t h s y m b o l c h o s e n b t h h u m a np l a y e r . S Y M ( l ) h o l d s t h o t h e r s y m b o l t b u s e d b t h c o m p u t e r .P T h i s v a r i a b l e i n d i c a t e s w h i c h p l a y e r i c u r r e n t l y t a k i n g i t t u r n . T h v a l u e i n d i c a t e s t h c o m p u t e r w h i l e i n d i c a t e st h h u m a n .T h i s v a r i a b l e i g i v e n a v a l u e b t h s u b r o u t i n e a l i n e4 0 0 . I t i s u s e d t o i n d i c a t e r o i m a t r i x a n t h e r e f o r e

Page 155: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 155/244

T I C - T A C - T O E 1 5 r e p r e s e n t s o n o t h e e i g h t w a y s t h a t e x i s t t o g e t h r e e i

r o w . I h a a v a l u e b e t w e e n a n 8 t h i s i n d i c a t e st h a t t h p l a y e r c u r r e n t l y t a k i n g t u r n h a e i t h e r t w o t h r e e i r o i t h r o w , c o l u m n , o d i a g o n a l i n d i c a t e db t h v a l u e o t h e v a r i a b l e X I t h v a l u e o i l e f t a 0 t h i s i s i g n t h a t n p r e s e n t o f u t u r e w i n s a r f o r e s e e nf o t h p l a y e r a t h p r e s e n t t i m e . I n c i d e n t a l l y , t h v a l u eo i a l s o p a s s e d t t h s u b r o u t i n e a l i n e 6 0 f o d t e r m i n i n g t h c o m p u t e r ' s n e x t m o v e .T h i s v a r i a b l e i u s e d t h o l d t h v a l u e o g e n e r a t e d f o t h c o m p u t e r . I t i s n e e d e d s t h a t w h e n t h c o m p u t e r g o e st h n e x t t i m e , i c a s e w h e t h e r i t p r e v i o u s t u r n l e f t i w i t h t w i r o w , w h i c h i c a n o t r t c o n v e r t t t h r e ei r o w .

B O T h i s i t h i n d e x o f a F O R / N E X T l o o p t h a t g o e s a r o u n dt i m e s . E a c h t i m e a r o u n d , o n b o o t h p l a y i n g b o a r d

i f i l l e d b o n o t h t w p l a y e r s .R O D u r i n g t h h u m a n ' s t u r n , t h i s v a r i a b l e i n d i c a t e s t h r o o t h p l a y i n g b o a r d ( t h r o u g h 3 w h e r e t h c u r s o r i l o c a t e d . W h e n F i p r e s s e d , t h i s i n d i c a t e s t h e r o a w h i c h t h h u m a n ' s s y m b o l i t b p l a c e d . W h e n i i t h c o m p u t e r ' s t u r n , t h i s v a r i a b l e i n d i c a t e s t h r o o t h c h o s e n m o v e .

C O T h i s s e r v e s a p u r p o s e s i m i l a r t R O e x c e p t t h a t i s p e ci f i e s c o l u m n .

S P O T S p e c i f i e s l o c a t i o n i s c r e e n m e m o r y a n i u s e d t p l a c es y m b o l s o t h b o a r d .

D I n t h e s u b r o u t i n e a t l i n e 1 1 0 0 , t h i s v a r i a b l e s p e c i f i e s t h d i r e c t i o n ( u p o r d o w n ) i w h i c h t h c u r s o r i b e i n g m o v e d .D T h i s v a r i a b l e s p e c i f i e s t h e d i r e c t i o n ( l e f t o r i g h t ) i w h i c ht h c u r s o r i b e i n g m o v e d i t h s u b r o u t i n e a l i n e 1 1 0 0 .

L I N E S O S P E C I A L I N T E R E S T6 0 A s s i g n s t h a p p r o p r i a t e s y m b o l t t h c o r r e s p o n d i n g p l a y e r .7 0 D e c i d e s w h i c h p l a y e r g o e s f i r s t b a s e d u p o n w h h a t h s y m b o l

X 9 0 - 1 0 0 : E a c h t i m e t h r o u g h t h l o o p o n l y h a l f o t h l i n e s i n t h l o o p

a r e x e c u t e d . W h i c h h a l f d e p e n d s u p o n w h i c h p l a y e r i c u r r e n t l yt a k i n g t u r n .

1 1 0 - 1 8 0 : T h h u m a n ' s t u r n .1 2 0 - 1 3 0 : T h c u r s o r i a l w a y s i n i t i a l l y p o s i t i o n e d i t h u p p e r

Page 156: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 156/244

1 5 Z A P P E R S F O R T H C O M M O D O R E 6 l e f t h a n d b o x . L i n e 1 3 t u r n s s p a c e i n t o b o o r s y m b o l i n t oi t r e v e r s e d - g r a p h i c s e q u i v a l e n t .

1 6 0 - 1 7 0 : I i n o t e q u a l t 0 a n t h r o w , c o l u m n , o d i a g o n a li n d i c a t e d b t h v a l u e o a l r e a d y c o n t a i n s t h r e e i r o w , t h e nt h h u m a n h a w o n .

1 8 0 : S w i t c h p l a y e r s a n d g o t t h n e x t i t e r a t i o n o t h l o o p .1 9 0 - 2 7 0 : T h c o m p u t e r ' s t u r n .

2 0 0 : I i g r e a t e r t h a n 0 i m e a n s t h a t t h c o m p u t e r h a t w i r o i i t l a s t t u r n . H o w e v e r , t h h u m a n m a h a v e s u b s e q u e n t l y

b l o c k e d t h i s p l a y b p l a c i n g h i s y m b o l i t h t h i r d b o x . T ( Y , 2 )r e f l e c t s h o m a n y s y m b o l s t h h u m a n h a i t h r o w , c o l u m n , o d i a g o n a l i n d i c a t e d b Y I t h i s v a l u e i 0 t h c o m p u t e r c a m a k et h m o v e t h a t c a g i v e i t h r e e i r o w . T h i s i d o n e b y p l a c i n gt h v a l u e o i n t o X I f h o w e v e r , t h c o m p u t e r w i l l n o b a b l et g f o t h r e e i r o w , t h s u b r o u t i n e a l i n e 6 0 g e t s t h v a l u eo t h a t w a g e n e r a t e d d u r i n g t h h u m a n ' s m o v e .

2 1 0 : T h d e l a y l o o p i t h i s l i n e i u s e d b e c a u s e t h c o m p u t e r m a k e si t m o v e s i n c r e d i b l y f a s t . W e r e i n o f o t h i s d e l a y t h h u m a n m i g h tb e m b a r r a s s e d .

2 2 0 - 2 3 0 : T h c o m p u t e r ' s s y m b o l i p l a c e d a t h a p p r o p r i a t e l c a t i o n . N o t i c e t h a t i c a l c u l a t i n g t h e v a l u e f o S P O T , R O i m u l t i p l i e d b 8 0 a n d C O i d o u b l e d b e c a u s e t h e r e a r e t w s c r e e nr o w s f r o m o n r o o t h p l a y i n g b o a r d t t h o t h e r . T h s a m ea p p l i e s t t h s c r e e n c o l u m n s . A l s o , s i n c e t h e r o w s a n c o l u m n so t h p l a y i n g b o a r d a r n u m b e r e d s t a r t i n g f r o m r a t h e r t h a n 0 l o c a t i o n 1 3 5 9 i t w s c r e e n r o w s a n d t w s c r e e n c o l u m n s a w a yf r o m t h s t a r t o t h p l a y i n g b o a r d .

2 6 0 : I t h c o m p u t e r h a t h r e e i r o w , i w i n s .2 7 0 : T h c o m p u t e r ' s v a l u e f o i s a v e d i f o i t n e x t t u r n .T h p l a y e r s a r s w i t c h e d .

2 9 0 : I t h F O R / N E X T t e r m i n a t e s n o r m a l l y , t h i s m e a n s t h a t t h g a m ei t i e .

S u b r o u t i n e4 0 0 - 5 8 0 : T h i s s u b r o u t i n e i n c r e m e n t s t h v a l u e s i m a t r i x d e p e n d

i n u p o n w h e r e t h e p l a y e r ' s m o v e w a m a d e . I t h e n r e t u r n s a v a l u ef o i t h p l a y e r h a t w i r o o t h r e e i r o a n y w h e r eo t h b o a r d . T h i s s u b r o u t i n e i u s e d b b o t h t h c o m p u t e r a n d t h h u m a n .

4 1 0 - 4 2 0 : E v e r y b o i l o c a t e d i o n r o a n d o n e c o l u m n . ( R m e m b e r t h a t c o l u m n s t h r o u g h a r r e p r e s e n t e d b y r o w s t h r o u g h

o m a t r i x T .

Page 157: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 157/244

Page 158: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 158/244

7 5 Z A P P E R S F O R T H C O M M O D O R E 6 S u b r o u t i n e9 0 0 - 1 0 1 0 : T h i s s u b r o u t i n e c l e a r s t h s c r e e n , d r a w s t h p l a y i n g b o a r d ,

a n z e r o s o u m a t r i x T .

S u b r o u t i n e1 1 0 0 - 1 3 4 0 : T h i s i t h s u b r o u t i n e t h a t m o v e s t h c u r s o r ( a c o n t r o l l e d

b t h h u m a n p l a y e r ) a n d r a w s h i s y m b o l i t h s e l e c t e d b o w h e n F i p r e s s e d .

1 1 8 0 : S i n c e S P O T i n d i c a t e s t h b o w h e r e t h c u r s o r i l o c a t e d ,b l a n k b o a c t u a l l y a p p e a r s a s o l i d s q u a r e ( s c r e e n d i s p l a y c o d e1 6 0 ) .

1 3 0 0 : C h a n g e s t h s y m b o l i t h c u r r e n t b o f r o m r e v e r s e d g r a p h i c st i t n o r m a l g r a p h i c s e q u i v a l e n t . T h r e a s o n f o t h i s i t h a t t h c u r s o r i l e a v i n g t h a t b o x .

1 3 3 0 : I n d i c a t e s t h n e c u r s o r l o c a t i o n b c h a n g i n g t h c h a r a c t e r( a t h s c r e e n p o s i t i o n i n d i c a t e d b S P O T ) t r e v e r s e d g r a p h i c s .

S u b r o u t i n e1 4 0 0 - 1 6 0 0 : P e r f o r m s t h e t a s k o h i g h l i g h t i n g t h r e e i r o b a d d i n g

1 2 t t h s c r e e n d i s p l a y c o d e s o t h s y m b o l s i q u e s t i o n , c o v e r t i n g t h e m t r e v e r s e d g r a p h i c s . T h l o c a t i o n o t h e t h r e e i r o i d e t e r m i n e d b t h v a l u e o f t h e v a r i a b l e X

S U G G E S T E D E N H A N C E M E N T S1 T h m u s i c a l l y i n c l i n e d m i g h t b e t e m p t e d t w r i t e s o m e m e l o d i ca c c o m p a n i m e n t t t h g a m e .2 T h p l a y e r m a a l s o b g i v e n c h o i c e o f c o l o r .3 T h a m b i t i o u s p r o g r a m m e r m a b p e r s u a d e d t a m e n d t h p r o g r a m

s t h a t t h c o m p u t e r c a p l a y a g a i n s t i t s e l f .4 T h e r e a r e v a r i a t i o n s o t h i s g a m e . O n o t h e m i t h r e e - d i m e n s i o n a l

v e r s i o n , w h i c h y o u m a c o n s i d e r i m p l e m e n t i n g .

Page 159: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 159/244

C H A P T E R 2 O N E - A R M E D

B A N D I T

I y o a r a f a n o L a V e g a s o A t l a n t i c C i t y , h e r e i a o p o r t u n i t y t i n d u l g e y o u r s e l f i t h j o y s o f t h s l o t m a c h i n ew i t h o u t h a v i n g t m o v e f o o t o u o y o u r h o m e — a n d y o w i l lp r o b a b l y b r i c h e r f o r t h e e x p e r i e n c e . T h i s g a m e i C o m m o d o r e6 v e r s i o n o t h o n e - a r m e d b a n d i t m a c h i n e t h a t l i n e s t h w a l l so t h b i g g e s t c a s i n o s i t h w o r l d .

T h g a m e o p e n s u w i t h t h c o m p u t e r a s k i n g y o h o w m u c hm o n e y y o h a v e . T h a m o u n t y o e n t e r c a b a e v e n n u m b e ro d o l l a r s o a a m o u n t i d o l l a r s a n c e n t s . N o t h i n g l e s s t h a nt w e n t y - f i v e c e n t s i a c c e p t e d , h o w e v e r . T h p r o g r a m d r a w s t h w i n d o w s o t h s l o t m a c h i n e . I a l s o d i s p l a y s t h a m o u n t o m o n e yy o e n t e r e d . T h c u r r e n t b a l a n c e i d i s p l a y e d a t h t o o t h s c r e e n t h r o u g h o u t t h g a m e .

P r e s s i n g t h F l k e y c a u s e s t h m a c h i n e t r o l l i t t h r e e w h e e l sa f t e r d e d u c t i n g t w e n t y - f i v e c e n t s f r o m y o u r b a l a n c e . T h w h e e l sc o n t a i n f o u r s y m b o l s : b u n c h o g r a p e s , s m i l i n g f a c e , t e l ev i s i o n s e t , a n b a s i g n . E a c h o t h w h e e l s c o n t a i n s s i o t h e s e s y m b o l s ; h o w e v e r , t h e y a r d i s t r i b u t e d d i f f e r e n t l y o e a c h

7 5

Page 160: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 160/244

7 5 Z A P P E R S F O T H C O M M O D O R E 6 w h e e l . T h f i r s t t w w h e e l s e a c h c o n t a i n t w g r a p e s , t w f a c e s ,o n T V a n o n b a r . T h t h i r d w h e e l c o n t a i n s t w g r a p e s , o n f a c e , t w T V s , a n d o n e b a r . T h r e s u l t o t h i s u n e v e n d i s t r i b u t i o ni t h a t y o a r t w i c e a l i k e l y t o c o m e u w i t h t h r e e T V a s t h r e eb a r s ; t w i c e a l i k e l y t g e t h r e e f a c e s a s t h r e e T V s , a n t w i c ea l i k e l y t g e t h r e e g r a p e s a s t h r e e f a c e s . T h a m o u n t o m o n e yy o w i b y c o m i n g u p w i t h t h r e e o k i n d i b a s e d o t h r a r i t yo c o m i n g u w i t h t h a t c o m b i n a t i o n . T h u s t h e t h r e e b a r s g i v ey o $ 5 0 , t h r e e T V $ 2 5 , t h r e e f a c e s $ 1 2 . 5 0 , a n t h r e e g r a p e s$ 6 . 2 5 . I n c i d e n t a l l y , f o t h o s e o y o i n t e r e s t e d i n o d d s m a k i n g ,t h a w a r d i n g o m o n e y i b i a s e d s l i g h t l y t o w a r d t h h o u s e . ( S w h a t e l s e i n e w ? )

T h w h e e l s r o t a t e r a n d o m n u m b e r o t i m e s b e t w e e n o n e a n dt w e n t y , w i t h s o m e d e l i c a t e m u s i c a l a c c o m p a n i m e n t . W h e n e v e ry o w i s h t q u i t t h g a m e , y o m u s t p r e s s t h e F k e y . T h p r o g r a m e n d s d i s p l a y i n g t h f i n a l b a l a n c e . T h g a m e a l s o e n d si y o u r b a l a n c e f a l l s b e l o w . 2 5 , s i n c e t h i s m e a n s t h a t y o u n ol o n g e r h a v e a n q u a r t e r s l e f t t b e t .

1 R E O N E - A R M E D B A N D I T2 P O K E 5 3 2 8 1 # 1 : P O K E 5 4 2 9 6 , 1 53 I N P U T " O H O W M U C H M O N E Y D Y O H A V E M ; C A S H4 I V A L ( S T R $ ( C A S H * 1 0 0 ) ) O I N T ( C A S H * 1 0 0 + . 1 )

T H E N 6 5 I C A S H > = . 2 T H E N 8 6 P R I N T : P R I N T " D O L L A R S A N C E N T S > = . 2 5 ,

P L E A S E 1 17 P R I N T : G O T O 3 8 G O S U B 5 0 0 : G O S U B 3 0 9 G E A $ : I F A $ O " H " A N A $ O " B T T H E N 9 1 0 I A $ = " « r T H E N 2 3 1 1 C A S H = C A S H - . 2 51 2 G O S U B 3 0 1 3 Q = I N T ( R N D < 0 ) * 2 0 )1 4 0 F O R 1 = T 1 5 G O S U B 8 0 1 6 N E X T1 7 I M = T H E N 2 1

Page 161: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 161/244

O N E - A R M E D B A N D I T 1 5 1 8 C A S H = C A S H + 5 0 / 2 t ( 4 - M )1 9 G O S U B 3 0 02 0 G O T O 9 2 1 I C A S H > = . 2 5 T H E N 9 2 2 F O 1 = T 2 0 0 0 : N E X T2 3 P O K E 5 4 2 9 6 , 0 : P O K E 5 3 2 8 1 , 62 4 P R I N T " Q 2 5 G O S U B 3 0 2 6 P R I N T r P R I N T " Q G A M E O V E R "2 7 E N 3 0 R E P R I N T C A S H O H A N D3 1 C $ = M I D $ ( S T R $ ( C A S H ) , 2 ) : L = L E N ( C $ ) : P = 03 2 F O J = T 3 3 I M I D $ ( C $ , J , 1 ) = " . " T H E N P = 3 4 N E X T3 5 I P > T H E N 3 7 03 6 C $ = C $ + " . 0 0 " : L = L + 3 : G 0 T O 3 9 3 7 I P = L - 2 T H E N 3 9 3 8 C $ = C $ + " 0 " : L = L + 13 9 P R I N T " H 4 0 F O J = T ( 1 2 - L ) . - P R I N T " ; : N E X T4 1 P R I N T " n $ " ; C $4 2 R E T U R N5 0 0 R E M S E T U B O A R D5 1 P R I N T " □ D D D D H " ; T A B ( 3 ) ;5 2 F O J = T 3 3 : P R I N T " H " ; : N E X T5 3 P R I N T5 4 F O J = T 5 5 P R I N T T A B ( 3 ) ; " Q H " ; T A B < 3 5 ) ; " M 5 6 N E X T5 7 P R I N T T A B ( 3 ) ; " D H " ; T A B ( 6 ) ;5 8 F O J = T 2 7 . - P R I N T " H " ; : N E X T5 9 P R I N T T A B ( 3 5 ) ; " D H 6 0 F O J = T 6 1 P R I N T T A B ( 3 ) ; M D H " 6 2 F O R C = 0 T O6 3 P R I N T T A B ( C * 9 + 6 ) ; " D H " ; S P C ( 7 ) ; " Q ■ " •6 4 N E X T

Page 162: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 162/244

1 6 Z A P P E R S F O R T H C O M M O D O R E 6 6 5 P R I N T T A B ( 3 5 ) ; " D B 6 6 N E X T6 7 P R I N T T A B ( 3 ) ; " n H " ; T A B ( 6 ) ;6 8 F O J = T 2 7 : P R I N T " H " ; : N E X T6 9 P R I N T T A B ( 3 5 ) ; " i a H 7 0 F O J = T 7 1 0 P R I N T T A B ( 3 ) ; " Q H " ; T A B ( 3 5 ) ; " H 7 2 N E X T7 3 0 P R I N T T A B ( 3 > ;7 4 F O J = T 3 3 : P R I N T " H " ; : N E X T7 5 P R I N T r P R I N T7 6 P R I N T T A B < 3 ) ; " F 1 = R O L L " ;7 7 P R I N T T A B ( 3 0 ) ; " F 7 = E N 0 "7 8 0 R E T U R N8 0 R E R O L L T H S Y M B O L S8 1 F O C = T 8 2 S = I N T ( R N D ( 0 ) * 6 )8 3 I S < T H E N 9 1 8 4 I C < 2 A N D S < T H E N 9 0 8 5 I S = T H E N 9 0 08 6 I C < A N D S = 4 T H E N 8 9 8 7 I S < T H E N 8 9 8 8 T = 4 : 6 0 T 0 9 2 8 9 T = 3 : G 0 T 0 9 2 9 0 T = 2 : G O T O 9 2 9 1 T = 9 2 G O S U B 1 0 0 0 : G 0 S U B 1 3 0 09 3 I C = T H E N M = T9 4 I C > A N M O T H E N M = 9 5 N E X T9 6 P O K E 5 4 2 7 6 , 3 2 : P 0 K E 5 4 2 8 3 , 3 29 7 P O K E 5 4 2 9 0 , 3 29 8 R E T U R N1 0 0 0 R E P R I N T S Y M B O L1 0 1 0 C 0 L = C * 9 + 8 : P R I N T " 1 0 2 0 O G O T O 1 0 3 0 , 1 0 9 0 , 1 1 5 0 , 1 2 1 01 0 3 0 P R I N T T A B ( C 0 L ) ; M H1 0 4 0 p r i n t t a ( c o o , - 1 1

Page 163: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 163/244

O N E - A R M E D B A N D I T 1 6

I

1 0 5 0 P R I N T T A B ( C O L ) ; "1 0 6 0 P R I N T T A B ( C O L ) ; " I I 1 0 7 0 P R I N T T A B ( C O L ) ; "1 0 8 0 R E T U R N1 0 9 0 P R I N T T A B ( C 0 L ) ; " 8 n B H B D "1 1 0 0 P R I N T T A ( C O L ) ; " C D H H I C D "1 1 1 0 P R I N T T A B ( C O L ) ; " [ J J f f C D 1 1 2 0 P R I N T T A B ( C 0 L ) ; " [ D [ 3 H E l [ I l "1 1 3 0 P R I N T T A B ( C 0 L ) ; " C 3 B B B E ] "1 1 4 0 R E T U R N1 1 5 0 P R I N T T A B ( C O L ) ; " E 3 S 1 1 6 0 P R I N T T A B ( C 0 L ) ; " n B D C 3 H B n1 1 7 0 P R I N T T A ( C O L ) ; " H ] S H O E ] "1 1 8 0 P R I N T T A B ( C 0 L ) ; n [ E H H E 3 m "1 1 9 0 P R I N T T A B ( C 0 L ) ; " [ 3 B B B I D "1 2 0 0 R E T U R N1 2 1 0 P R I N T T A B ( C O L ) ; " 0 n B B B n "1 2 2 0 P R I N T T A B < C O L ) ; " [ D B B B I I ] "1 2 3 0 P R I N T T A ( C O L ) ; " D E B A B E D "1 2 4 0 P R I N T T A B ( C O L ) ; " [ T J B B B [ I I "1 2 5 0 P R I N T T A B ( C 0 L ) ; " a B B B D "1 2 6 0 R E T U R N1 3 0 0 R E M N O I S E1 3 1 0 B A S E = 5 4 2 7 2 + 7 * C1 3 2 0 P O K E B A S E + 1 , T * 61 3 3 0 P O K E B A S E + 6 , 2 5 21 3 4 0 P O K E B A S E + 4 , 3 31 3 5 0 R E T U R N

G L O S S A R Y O V A R I A B L E SC A S H H o l d s t h p l a y e r ' s c u r r e n t b a l a n c e .

T h i s v a r i a b l e i r e t u r n e d b t h s u b r o u t i n e a t l i n e 8 0 0 . I i i e q u a l t 0 t h i s i n d i c a t e s t h a t t h p l a y e r h a n o r o l l e dt h r e e o k i n d . I i h a v a l u e b e t w e e n a n 4 t h p l a y e r h a s u c c e e d e d i c o m i n g u p w i t h t h r e e o k i n d ,w i t h t h s y m b o l i n d i c a t e d b t h v a l u e o M s t a n d s f o g r a p e s , i f o r f a c e s , i f o T V s , a n i f o r b a r s .

Page 164: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 164/244

1 6 Z A P P E R S F O R T H C O M M O D O R E 6 C T h i s v a r i a b l e h o l d s t h s t r i n g e q u i v a l e n t o t h e p l a y e r ' s

b a l a n c e .H o l d s t h l e n g t h o C $ I t h s u b r o u t i n e a l i n e 3 0 t h i s v a r i a b l e i u s e d t i n d i c a t et h e l o c a t i o n o t h d e c i m a l p o i n t i C $ T h i s v a r i a b l e i u s e d i s e v e r a l p l a c e s , b u i t h s u b r o u t i n ea l i n e 8 0 i i n d i c a t e s w h i c h w h e e l ( t h r o u g h 2 i b e i n gr o t a t e d .C o n t a i n s a r a n d o m i n t e g e r b e t w e e n a n w h i c h i n d i c a t e sw h i c h o t h s y m b o l s o e a c h w h e e l i t b d i s p l a y e d .( R e m e m b e r t h a t e a c h w h e e l h a s i s y m b o l s o i t . )T h i s v a r i a b l e i u s e d i t h e s u b r o u t i n e a l i n e 8 0 0 . F o t h w h e e l c u r r e n t l y b e i n g r o t a t e d , i t v a l u e i n d i c a t e s t h s y b o o w h i c h t h w h e e l c o m e s t h a l t . I t a k e s a v a l u eb e t w e e n a n 4 w h i c h h a t h s a m e m e a n i n g a s f o r t h v a r i a b l e M

C O I n t h e s u b r o u t i n e a l i n e 1 0 0 0 t h i s v a r i a b l e d e t e r m i n e s a w h i c h s c r e e n c o l u m n t o p r i n t t h e c u r r e n t s y m b o l .

L I N E S O S P E C I A L I N T E R E S T4 0 T h i s l i n e t e s t s t s e w h e t h e r t h n u m b e r e n t e r e d h a m o r e t h a n

t w d i g i t s i i t f r a c t i o n a l p o r t i o n . T h e x p r e s s i o n t t h l e f t o t h n o t - e q u a l s i g n ( < > ) c o n v e r t s t h r e s u l t o C A S H 1 0 t s t r i n ga n b a c k t n u m b e r . T h i s i d o n e b e c a u s e t h m u l t i p l i c a t i o n , a d o n e b t h C o m m o d o r e 6 4 i s o m e t i m e s t o l a r g e b s m a l la m o u n t w h i c h i n o v i s i b l e w h e n t h r e s u l t i p r i n t e d b u i d e t e c t e db t h m a c h i n e . T h S T R $ f u n c t i o n u s e s t h v a l u e a d i s p l a y e dr a t h e r t h a n t h v a l u e a c a l c u l a t e d . O t h r i g h t s i d e o t h < > i t h I N f u n c t i o n , 0 . i a d d e d b e c a u s e s o m e t i m e s t h e m u l t i p l ic a t i o n i t o s m a l l b s m a l l a m o u n t .

1 1 0 - 1 2 0 : 2 c e n t s i d e d u c t e d b e f o r e s p i n n i n g t h w h e e l s .1 4 0 - 1 6 0 : S p i n t h w h e e l s r a n d o m n u m b e r o t i m e s . T h i s i n o

r e a l l y n e c e s s a r y , s i n c e i e a c h s p i n t h w h e e l s a r r a n d o m l y r e p o s i t i o n e d . H o w e v e r , t h i s m a k e s f o m o r e i n t e r e s t i n g v i s u a l d i p l a y .1 7 0 - 1 9 0 : I i n o n z e r o , a t h r e e o a k i n d h a c o m e u p T h v a l u ea d d e d t C A S H i b a s e d o t h o d d s o g e t t i n g t h r e e o a k i n d i t h s y m b o l i n d i c a t e d b M

2 2 0 : T h p l a y e r h a s r u n o u o m o n e y ; t h i s p a u s e i s t h p l a y e r m a v i e w t h r e s u l t o h i f i n a l r o l l b e f o r e t h s c r e e n i c l e a r e d .

Page 165: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 165/244

O N E - A R M E D B A N D I T 1 6 S u b r o u t i n e3 0 0 - 4 2 0 : D i s p l a y s t h p l a y e r ' s b a l a n c e a t h t o o t h s c r e e n . T h i s

r o u t i n e i s o m e w h a t t r i c k y s i n c e i m u s t a l w a y s d i s p l a y t h e a m o u n tw i t h t w d i g i t s t t h r i g h t o t h d e c i m a l p o i n t .

3 1 0 : T h M I D $ f u n c t i o n i u s e d t e l i m i n a t e t h l e a d i n g b l a n k t h a ti g e n e r a t e d b t h S T R $ f u n c t i o n . i i n i t i a l l y s e t b e c a u s e i n d e c i m a l p o i n t i f o u n d i t h l i n e s t h a t f o l l o w , i w i l l b l e f tw i t h t h i s v a l u e .

3 2 0 - 3 4 0 : S e a r c h f o d e c i m a l p o i n t . I o n i f o u n d , i a s s i g n e di t l o c a t i o n i C $

3 6 0 : C A S H i a i n t e g e r s a d a d e c i m a l p o i n t a n t w t r a i l i n g0 t C $

3 8 0 : C A S H h a s o n l y o n d i g i t t t h r i g h t o i t d e c i m a l p o i n t , s t r a i l i n g i a d d e d .

4 0 0 : A d d s l e a d i n g b l a n k s t r i g h t - j u s t i f y t h v a l u e p r i n t e d .

S u b r o u t i n e5 0 0 - 7 8 0 : P r i n t s t h w i n d o w s o t h s l o t m a c h i n e .

S u b r o u t i n e8 0 0 - 9 8 0 : T h i s s u b r o u t i n e r o l l s t h w h e e l s ; t h a t i s i s e l e c t s t h s y

b o t b d i s p l a y e d o e a c h .

8 3 0 - 9 1 0 : T h e s e l i n e s c o n v e r t t h v a l u e o t t h a p p r o p r i a t es y m b o l b a s e d u p o n w h i c h w h e e l i b e i n g r o l l e d a n h o m a n y o e a c h s y m b o l a r o t h a t w h e e l .

9 3 0 : i i n i t i a l l y a s s i g n e d t h v a l u e o t h s y m b o l t h a t a p p e a r so t h f i r s t w h e e l .

9 4 0 : I t h s e c o n d o t h i r d w h e e l d i s p l a y s s y m b o l d i f f e r e n t f r o mt h a t o t h f i r s t w h e e l , t h e n i s e t 0 . I f t h i s o c c u r s o t h e s p i no t h s e c o n d w h e e l , t h e n t h v a l u e o g e n e r a t e d f o t h t h i r dw h e e l w i l l n e v e r e q u a l s i n c e i a n i a l w a y s n o n z e r o .

9 6 0 - 9 7 0 : T e r m i n a t e t h t o n e s p r o d u c e d b t h s u b r o u t i n e a l i n e1 3 0 0 . T h i s i d o n e f o a l t h r e e v o i c e s .

S u b r o u t i n e1 0 0 0 - 1 2 6 0 : D i s p l a y s t h a p p r o p r i a t e s y m b o l a t h p r o p e r c o l u m n ,

b a s e d o t h v a l u e s o a n C

Page 166: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 166/244

7 6 Z A P P E R S F O R T H C O M M O D O R E 6 1 0 3 0 - 1 2 5 0 : G r a p h i c s c h a r a c t e r s u s e d i t h i s s u b r o u t i n e , o t h e r t h a n

t h c o n t r o l c h a r a c t e r s r e f e r e n c e d i T a b l e i t h e I n t r o d u c t i o n , a r ea f o l l o w s :

L i n e N u m b e r1 0 3 01 0 4 0 - 1 0 6 01 0 9 0

1 1 0 0

1 1 1 0

1 1 2 0

1 1 3 0

1 1 5 01 1 6 0

1 1 7 0 - 1 1 8 0

1 1 9 01 2 1 01 2 2 0 , 1 2 4 0

1 2 3 01 2 5 0

G r a p h i c s S y m b o l U s e d

S h i f t - US h i f t - QS h i f t - U , s h i f t - C o

s h i f t - a s t e r i s k , s h i f t - IS h i f t - B o s h i f t - m i n u s

a n s h i f t - QS h i f t - B o s h i f t - m i n u s

a n s h i f t - SS h i f t - B o s h i f t - m i n u s , s h i f t - J ,

s h i f t - C o s h i f t - a s t e r i s k ,s h i f t - K

S h i f t - J , s h i f t - C o s h i f t - a s t e r i s k , s h i f t - K

S h i f t - M , s h i f t - NS h i f t - U , s h i f t - C o

s h i f t - a s t e r i s k , C o m m o d o r e k e y - O ,s h i f t - I

S h i f t - B o s h i f t - m i n u s , C o m m o d o r ek e y - p l u s , s h i f t - W

S a m e a 1 1 3 0S a m e a 1 0 9 0S h i f t - B o s h i f t - m i n u s , s h i f t - C

o s h i f t - a s t e r i s kS h i f t - B o s h i f t - m i n u sS a m e a 1 1 3 0

T a k e n o t e t h a t e a c h P R I N T s t a t e m e n t d i s p l a y s f i v e c h a r a c t e r s .O c o u r s e , w h e n c o n t r o l c h a r a c t e r s ( s u c h a t h o s e t h a t c h a n g ec h a r a c t e r c o l o r o t u r n o r e v e r s e g r a p h i c s ) a r u s e d , t h l i t e r a l sw i l l a c t u a l l y c o n t a i n m o r e c h a r a c t e r s . A n a s s t a t e d i t h I n t r od u c t i o n , a l c o n t r o l a n g r a p h i c s c h a r a c t e r s i t h e s e l i s t i n g s t a k eu t h s p a c e o t w r e g u l a r c h a r a c t e r s . S b c a r e f u l i c o u n t i n gt h n u m b e r o f b l a n k s p a c e s t b i n c l u d e d i e a c h l i t e r a l . L i n e1 0 3 0 c o n t a i n s t w s p a c e s a f t e r b o t h t h e c o n t r o l c h a r a c t e r a n t h

Page 167: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 167/244

Page 168: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 168/244

C H A P T E R 2 P R I N T - A - M O N T H

H a v e y o e v e r b e e n i s i t u a t i o n w h e r e y o a r t o l d d a t e w h i c hi i t h d i s t a n t f u t u r e , a n i i i m p e r a t i v e f o y o t k n o w i a d v a n c e o w h a t d a o t h w e e k i f a l l s ? N o t o m a n y p e o p l eh a v e c a l e n d a r s o t a f o a l y e a r s ! H o w e v e r , w i t h t h a i o y o u r h a n d y - d a n d y C o m m o d o r e 6 4 t h i s w i l l n e v e r a g a i n p r e s e n t

p r o b l e m t y o u — a t l e a s t , o n c e y o h a v e t y p e d i t h p r o g r a mt h a t f o l l o w s . T h r o u g h t h m a g i c o t h c o m p u t e r , i w i l l n o b p o s s i b l e f o y o t d i s p l a y o t h s c r e e n t h w h o l e m o n t h f o a n y e a r a n m o n t h o y o u r c h o i c e , b i i t h d i s t a n t f u t u r e o t h d i s t a n t p a s t . I v i e w o t h f a c t t h a t t h G r e g o r i a n c a l e n d a r ,b w h i c h w r e c k o n d a t e s t o d a y , w a n o t c o n s o l i d a t e d u n t i l 1 5 8 3 ,a n y e a r p r i o r t t h a t y e a r i n o t a c c e p t e d . F o a n d a t e i o s u b s e q u e n t t 1 5 8 3 , y o w i l l h a v e a y o u r d i s p o s a l w h a t a m o u n t st p e r p e t u a l c a l e n d a r .

W h e n t h p r o g r a m i r u n , y o a r a s k e d t e n t e r t h y e a r i q u e s t i o n . A l t h d i g i t s o t h y e a r a r t h e n t y p e d i n I t i s t h e nv a l i d a t e d t e n s u r e t h a t i d o e s n o p r e c e d e 1 5 8 3 , d o e s n o t c o n t a i n

d e c i m a l p o i n t , a n i n o n e g a t i v e n u m b e r . O n c e i h a p a s s e da l t h e s e t e s t s , t h u s e r i p r o m p t e d t e n t e r t h e m o n t h d e s i r e da a i n t e g e r b e t w e e n a n 1 2 O n c e a g a i n , t h e n u m b e r i v a l i d a t e d a n t h e n t h s c r e e n i c l e a r e d a n i a i n s t a n t , b e f o r ey o u r v e r y e y e s , c o m p l e t e c a l e n d a r f o t h a t m o n t h a p p e a r s o 1 6

Page 169: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 169/244

P R I N T - A - M O N T H 1 6 t h e s c r e e n . Y o w i l l n o t i c e t h a t S u n d a y s a r d i s p l a y e d i n r e d .A f t e r t h c a l e n d a r o t h m o n t h i d i s p l a y e d , t h e u s e r i a s k e d i t h e r e i n e e d f o a n o t h e r r u n .

1 R E P R I N T - A - M O N T H2 D I D A Y S ( 1 2 ) , M N T H $ ( 1 2 )3 D A T A 1 , 3 1 , 2 8 , 3 1 , 3 0 , 3 1 , 3 04 D A T A 3 1 , 3 1 , 3 0 , 3 1 , 3 0 , 3 15 D A T A J A N U A R Y , F E B R U A R Y , M A R C H , A P R I L6 D A T A M A Y , J U N E , J U L Y , A U G U S T7 D A T A S E P T E M B E R , O C T O B E R8 D A T A N O V E M B E R , D E C E M B E R9 0 F O R 1 = 0 T 1 2 : R E A D D A Y S ( I ) : N E X T1 0 F O 1 = T 1 2 : R E A D M N T H $ ( I ) : N E X T1 1 P O K E 5 3 2 8 1 , 51 2 I N P U T " K W H A T Y E A R " ; Y1 3 I Y = I N T ( Y ) T H E N 1 6 1 4 P R I N T " H U H ? "1 5 G O T O 1 2 1 6 I Y > = 1 5 8 3 T H E N 1 9 1 7 P R I N T " O N L Y Y E A R S > 1 5 8 3 , P L E A S E "1 8 G O T O 1 2 1 9 I N P U T " W H A T M O N T H ( 1 - 1 2 ) " ; M2 0 I M = I N T ( M ) A N M > = 1 A N M < = 1 2 T H E N 2 3 02 1 P R I N T " A I N T E G E R 1 - 1 2 , P L E A S E "2 2 G O T O 1 9 2 3 P R I N T " □ B D D O D O " ; T A B ( 1 3 > ;

M N T H $ ( M ) ; Y2 4 P R I N T r P R I N T T A B ( 6 ) ;2 5 P R I N T H S M T S 2 6 P R I N T T A B C 6 ) ;2 7 P R I N T " 2 8 J D A T E = Y + I N T ( ( Y - 1 ) / 4 ) - I N T ( ( Y - 1 ) / 1 0 0 )+ I N T ( ( Y - 1 ) / 4 0 0 )2 9 D A Y S ( 2 ) = 2 83 0 I Y = I N T ( Y / 4 ) * 4 A N ( Y O I N T ( Y / 1 0 0 ) * 1 0 0

O Y = I N T ( Y / 4 0 0 ) * 4 0 0 ) T H E N D A Y S ( 2 ) = 2 93 1 F O R 1 = 0 T M -

Page 170: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 170/244

1 6 Z A P P E R S F O T H C O M M O D O R E 6 3 2 J D A T E = J D A T E + D A Y S ( I )3 3 N E X T3 4 D W = J D A T E - I N T ( J D A T E / 7 > * 73 5 I D W = 0 T H E N D W = 73 6 F O D = 2 - D W T D A Y S ( M ) S T E P3 7 P R I N T T A B ( 6 ) ; " H " ;3 8 F O X = T D + 3 9 I X < O X > D A Y S ( M ) T H E N 4 3 4 0 I X < 1 0 T H E N P R I N T " 4 1 P R I N T X ; " B " ;4 2 G O T O 4 4 4 3 P R I N T S P C ( 4 ) ; " B " ;4 4 N E X T4 5 P R I N T : P R I N T4 6 N E X T4 7 P R I N T : P R I N T : P R I N T " K A N O T H E R ( O R N ) ? " 4 8 0 G E T A $ : I F A $ O M Y " A N A $ O " N " T H E N 4 8 4 9 0 P R I N T A 5 0 I A $ = " Y " T H E N 1 2 5 1 P O K E 5 3 2 8 1 , 6 : P R I N T " I I F I N I S H E D "5 2 0 E N D

G L O S S A R Y O V A R I A B L E SD A Y S E l e m e n t s t h r o u g h 1 o t h i s a r r a y h o l d t h n u m b e r o

d a y s c o n t a i n e d b t h c o r r e s p o n d i n g m o n t h . D A Y S ( O )c o n t a i n s t h v a l u e 1 w h i c h i a l w a y s a d d e d i n t o t h c o p u t a t i o n .

M N T H $ T h i s s t r i n g a r r a y h o l d s t h n a m e s o t h m o n t h s . T h r e a s o n f o n o c a l l i n g t h i s v a r i a b l e b t h m o r e n a t u r a ln a m e M O N T H S i t h a t t h n a m e c o n t a i n s t h e B A S I C k e w o r d O N H o l d s t h i n p u t t e d y e a r .H o l d s t h i n p u t t e d m o n t h , a i n t e g e r b e t w e e n a n 1 2

J D A T E T h i s v a r i a b l e i u s e d t c o m p u t e t h d a o t h w e e k o w h i c h t h f i r s t o t h m o n t h f a l l s . T h c o m p u t a t i o n i v o l v e s f i n d i n g w h a t i r e f e r r e d t a t h e J u l i a n d a t e , t h n u m b e r b e t w e e n a n 3 6 ( o 3 6 6 , i t h c a s e o l e a py e a r ) r e p r e s e n t i n g t h d a o t h y e a r p a r t i c u l a r d a t e f a l l so n T h v a r i a b l e J D A T E i a l s o u s e d i o t h e r c a l c u l a t i o n s .

Page 171: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 171/244

P R I N T - A - M O N T H 1 6 D n u m b e r b e t w e e n a n w h i c h r e p r e s e n t s w h i c h d a

o t h w e e k t h f i r s t o t h m o n t h f a l l s o n T h e n u m b e rs t a n d s f o S u n d a y , f o M o n d a y , a n s o n D F O R / N E X T l o o p i n d e x w h o s e v a l u e s a r t h e d a t e s t h a tb e g i n e a c h w e e k .

X F O R / N E X T i n d e x t h a t t a k e s t h s e v e n c o n s e c u t i v e d a t e so t h w e e k , d e t e r m i n e d b D

L I N E S O S P E C I A L I N T E R E S T5 0 - 8 0 : N o t i c e t h a t t h i s s t r i n g d a t a d o e s n o h a v e q u o t a t i o n m a r k s .

O t h C o m m o d o r e 6 ( b u t n o o a l c o m p u t e r s ) s t r i n g d a t a d o e sn o n e e d q u o t a t i o n m a r k s a r o u n d i u n l e s s t h d a t a i t s e l f i n c l u d e st h c o m m a c h a r a c t e r . W h a v e u s e d s i m i l a r d a t a w i t h o u t q u o t a t i o nm a r k s i a n o t h e r p r o g r a m , n a m e l y " P h o n e - y W o r d s " ( C h a p t e r 1 8 ) .

2 8 0 : T h f i r s t v a l u e a s s i g n e d t J D A T E i t h s u o t h y e a r n u m b e ra n t h n u m b e r o l e a p y e a r s p r e c e d i n g t h a t y e a r . T h i s i s i m i l a rt w h a t w a d o n e i t h p r o g r a m " E l a p s e d D a y s " ( C h a p t e r 3 ) t of i g u r e o u h o m a n y d a y s t h e r e a r b e t w e e n t h c h o s e n d a t e a n t h y e a r 1 T h r e a s o n i n o m u l t i p l i e d b y 3 6 5 i t h i s : I l i n e3 4 b e l o w , t h r e m a i n d e r o t h e d i v i s i o n J D A T E i t a k e n . S i n c et h r e m a i n d e r o 3 6 i 1 w n e e d o n l y a d t J D A T E t h v a l u e f o e a c h y e a r p r e c e d i n g t h y e a r Y A d d i n g t h n u m b e r o l e a p y e a r s t a k e s c a r e o t h f a c t t h a t 3 6 i 2 ( S e e " E l a p s e dD a y s " f o r t h e w a t c a l c u l a t e l e a p y e a r s . )

2 9 0 - 3 0 0 : I t h y e a r r e p r e s e n t e d b i l e a p y e a r , s e D A Y S ( 2 )t 2 9 o t h e r w i s e , s e i t 2 8

3 1 0 - 3 3 0 : A d t J D A T E t h n u m b e r o f d a y s i t h y e a r u t a n i n c l u d i n g t h f i r s t d a o t h m o n t h r e p r e s e n t e d b M T h i s a d d e dv a l u e i t h a c t u a l J u l i a n d a t e . N o t i c e h o t h v a l u e o D A Y S ( 0 )c o m e s i h a n d y t r e p r e s e n t t h f i r s t d a o t h m o n t h . I w e r ee q u a l t o 2 , t h J u l i a n d a t e w o u l d b D A Y S ( 0 ) D A Y S ( l )

3 3 2 a n t h J u l i a n d a t e e q u i v a l e n t o F e b r u a r y i i n d e e d3 2

3 4 0 - 3 5 0 : D i s e t t h i n t e g e r r e m a i n d e r a f t e r d i v i d i n g J D A T Eb 7 a n t h e n v a l u e o i r e p l a c e d b 7

3 6 0 : T h e x p r e s s i o n D d e t e r m i n e s t h d a t e o t h f i r s t S u n d a yo t h m o n t h , r e l a t i v e t t h f i r s t o t h m o n t h . I n o t h e r w o r d s , i D 4 t h e n t h f i r s t o t h m o n t h f a l l s o W e d n e s d a y . W t h e r e f o r e c a l l t h T u e s d a y p r e c e d i n g i t h O t o t h m o n t h , t h M o n d a y b e f o r e t h a t t h l t d a o t h m o n t h , a n t h S u n d a yt h 2 t o t h m o n t h . I n d e e d , D ( i t h i s c a s e ) w o u l d y i e l d

Page 172: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 172/244

Page 173: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 173/244

Page 174: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 174/244

1 7 Z A P P E R S F O T H C O M M O D O R E 6 I o r d e r t r e a c h H a r r y , y o m u s t r e a c h s p a c e a d j a c e n t t

h i ( a b o v e o b e l o w , o t t h l e f t o t t h r i g h t , b u n o d a g o n a l l y a d j a c e n t ) a n t h e n p r e s s t h e a p p r o p r i a t e k e t h a t w o u l dm o v e t h a t - s i g n i n t o t h s p a c e c u r r e n t l y o c c u p i e d b H a r r y . T h a t - s i g n d o e s n o a c t u a l l y m o v e i n t o t h s p a c e , b u t o n e w i l l b e m i t t e d i n d i c a t i n g s u c c e s s .

O n c e y o h a v e s u c c e s s f u l l y r e a c h e d H a r r y , n e r o u n d b e g i n sw i t h a c o m p l e t e l y d i f f e r e n t m a z e . H o w e v e r , t h a m o u n t o f t i m ea l l o c a t e d i f i v e s e c o n d s s h o r t e r t h a n i t h p r e v i o u s r o u n d . I y o t h i n k t h i s g a m e s o u n d s e a s y , y o u ' l l b a - m a z e d !

1 R E M F I N D H A R R Y2 P O K E 5 3 2 8 1 , 73 L I M I T = 4 54 S = 0 : G O S U B 2 0 5 P R I N T " H D " ; L I M I T6 F I N A L = T I M E + L I M I T * 6 0 + 5 97 G O S U B 5 0 8 I S = T H E N 7 9 I S < T H E N 1 4 1 0 G O S U B 1 0 0 01 1 L I M I T = L I M I T - 5 : I F L I M I T > 0 T H E N 4 1 2 G O S U B 1 0 0 01 3 G O T O 1 5 01 4 G O S U B 1 1 0 01 5 P R I N T M n M ; : P 0 K E 5 3 2 8 1 f 6 : P 0 K E 1 9 8 , 01 6 E N 2 0 R E M S E T U M A Z E2 1 P R I N T " O 2 2 F O J = T 4 0 : P R I N T " - " ; : N E X T2 3 F O R O W = 2 T O 2 42 4 B = R O W A N 2 5 F O C O L = 1 - B T 3 S T E P2 6 S P O T = 1 0 2 4 + R O W * 4 0 + C O L2 7 I I N T ( R N D ( 0 ) * 2 ) T H E N 3 0 2 8 0 P O K E S P O T + 5 4 2 7 2 , 12 9 0 P O K E S P O T . B + 6 63 0 0 N E X T C O

Page 175: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 175/244

F I N D H A R R Y 1 7 3 1 N E X T R O 3 2 H R = I N T ( R N D ( 0 ) * 2 3 ) + 23 3 B = H R A N 3 4 H C = I N T ( R N D ( 0 ) * 2 0 ) * 2 + B3 5 S P O T = 1 0 2 4 + H R * 4 0 + H C3 6 0 P O K E S P O T + 5 4 2 7 2 , 03 7 0 P O K E S P O T , 1 6 03 8 D R = S G N ( 1 3 . 5 - H R ) : D C = S G N ( 1 9 . 5 - H C )3 9 F R = I N T ( R N D ( 0 ) * 5 ) + 2 + ( D R + 1 ) * 94 0 0 B = F R A N 4 1 F C = I N T ( R N D ( 0 ) * 9 ) + ( D C + 1 ) * 1 54 2 S P O T = 1 0 2 4 + F R * 4 0 + F C4 3 P O K E S P O T + 5 4 2 7 2 , 44 4 P O K E S P O T , 04 5 R E T U R N5 0 R E C H A N G E M A Z E5 1 F O Y = - 2 T 5 2 F O X = - 2 T S T E P5 3 R O W = F R + Y5 4 B = R O W A N 1 : A = F C A N 5 5 C 0 L = F C + X + A B S ( 1 - ( A + B ) )5 6 I R O W < 2 O R 0 W > 2 4 T H E N 6 7 5 7 I C O L < 0 O C 0 L > 3 9 T H E N 6 6 5 8 I R O W = F R A N C O L = F C T H E N 6 6 5 9 S P 0 T = 1 0 2 4 + R O W * 4 0 + C O L6 0 I I N T ( R N D ( 0 ) * 2 ) T H E N 6 4 6 1 P O K E S P O T + 5 4 2 7 2 , 16 2 P O K E S P 0 T f B + 6 66 3 0 G O T O 6 5 06 4 0 P O K E S P O T , 3 26 5 G O S U B 7 0 0 : I F S < > 0 T H E N R E T U R N6 6 N E X T6 7 0 N E X T6 8 R E T U R N7 0 0 R E M M O V E F R I E N D7 1 D R = O : D C = O7 2 A = P E E K ( 1 9 7 ) : I F A = 6 4 T H E N 9 4 7 3 I A = 1 0 T H E N 8 3 0

Page 176: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 176/244

Page 177: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 177/244

F I N D H A R R Y 1 7 1 1 2 0 P O K E 5 4 2 7 7 # 3 4 : P 0 K E 5 4 2 7 8 , 2 4 21 1 3 0 P O K E 5 4 2 9 6 , 1 5 : P O K E 5 4 2 7 6 , 3 31 1 4 0 F O J = T 5 0 0 : N E X T1 1 5 0 P O K E 5 4 2 7 2 , 1 0 4 : P O K E 5 4 2 7 3 , 91 1 6 0 F O J = T 1 0 0 : N E X T1 1 7 0 P O K E 5 4 2 7 2 , 1 2 : P 0 K E 5 4 2 7 3 , 71 1 8 0 F O J = T 3 0 0 : N E X T1 1 9 0 P O K E 5 4 2 7 6 , 3 2 : P 0 K E 5 4 2 9 6 , O r R E T U R N

G L O S S A R Y O V A R I A B L E SL I M I T T h a m o u n t o t i m e a l l o t t e d f o r e a c h i n g H a r r y .F I N A L T h a c t u a l t i m e b w h i c h y o m u s t r e a c h H a r r y . ( T h i s i

a v a l u e t h a t w i l l b r e t u r n e d b t h T I M E f u n c t i o n . )T h i s v a r i a b l e i i n i t i a l l y s e t 0 T h s u b r o u t i n e a l i n e7 0 s e t s i t i H a r r y i s u c c e s s f u l l y r e a c h e d a n t i t h t i m e l i m i t r u n s o u t .

H T h e r o w a w h i c h H a r r y i l o c a t e d .H T h c o l u m n a w h i c h H a r r y i l o c a t e d .F T h r o a w h i c h t h e f r i e n d l y a t - s i g n i l o c a t e d .F T h c o l u m n a w h i c h t h e f r i e n d l y a t - s i g n i l o c a t e d .

D e t e r m i n e s w h e t h e r t h c u r r e n t s c r e e n r o i e v e n o o d d .

L I N E S O S P E C I A L I N T E R E S T6 0 : I n t h i s l i n e t h a d d i t i o n o 5 t t h v a l u e o F I N A L i a n a d

j u s t m e n t w h i c h i n e c e s s a r y b e c a u s e o t h w a t h p r o g r a m t e s t sf o t h t i m e l i m i t b e i n g e x c e e d e d .

1 0 0 - 1 1 0 : T h p l a y e r h a f o u n d H a r r y a n a n o t h e r r o u n d i b e g u n .1 2 0 - 1 3 0 : T h p l a y e r h a s m i r a c u l o u s l y f o u n d H a r r y i 5 s e c o n d s ( t h e

l a s t r o u n d ) . s e c o n d s u c c e s s t o n e i p l a y e d ( t h e f i r s t o n w a p l a y e d i n l i n e 1 0 0 ) a n t h p r o g r a m e n d s . W h a v e n d o u b t a a l t h a t t h e s e l i n e s w i l l n e v e r b e x e c u t e d , a n w d o n ' t m e a n b e c a u s eo b u i t h p r o g r a m !1 4 0 : T h p l a y e r h a l o s t .

S u b r o u t i n e2 0 0 - 4 5 0 : T h i s s u b r o u t i n e d r a w s t h m a z e a n p l a c e s H a r r y a n t h

a t - s i g n o t h s c r e e n .

Page 178: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 178/244

7 7 Z A P P E R S F O R T H C O M M O D O R E 6 2 4 0 : T h v a l u e o i i R O i e v e n a n i R O i o d d .

T h e r e a r t w r e a s o n s f o n e e d i n g t k n o w t h i s i n f o r m a t i o n . F i r s to a l l , e v e n - n u m b e r e d r o w s c o n t a i n v e r t i c a l b a r s ( s c r e e n d i s p l a yc o d e 6 6 w h i l e o d d - n u m b e r e d r o w s c o n t a i n h o r i z o n t a l b a r s ( s c r e e nd i s p l a y c o d e 6 7 ) . A l s o , i e v e n - n u m b e r e d r o w s t h b a r s o c c u r i o d d - n u m b e r e d c o l u m n s w h i l e i o d d - n u m b e r e d r o w s t h b a r s o c c u ri e v e n - n u m b e r e d c o l u m n s .

2 5 0 : I R O i e v e n , C O r a n g e s f r o m t 3 i s t e p s o 2 . I fR O i o d d , C O r a n g e s f r o m 0 t 3 8

2 9 0 : T h v a l u e o f i u s e d t d e t e r m i n e w h i c h g r a p h i c s c h a r a c t e ri p l a c e d i s c r e e n m e m o r y .

3 3 0 - 3 4 0 : H e r e i n d i c a t e s w h e t h e r H i e v e n o r o d d . T h i s i f o r m a t i o n i n e e d e d b e c a u s e i o r d e r t a v o i d p l a c i n g H a r r y o b a r , h m u s t b l o c a t e d e i t h e r i a e v e n r o a n a e v e n c o l u m no a o d r o a n a o d c o l u m n .

3 8 0 : I o r d e r t p l a c e t h a t - s i g n a f a a w a y f r o m H a r r y a p o s s i b l e ,t h s c r e e n i d i v i d e d i n t o q u a d r a n t s . T h a t - s i g n i p l a c e d i t h q u a d r a n t d i a g o n a l l y o p p o s i t e t h o n t h a t H a r r y i i n F u r t h e r m o r e ,i i p l a c e d i r a n d o m l o c a t i o n w h i c h i i c l o s e p r o x i m i t y t t h e d g e s o t h e s c r e e n . T h v a r i a b l e s D a n D e a c h r e c e i v e t h v a l u e - o 1 w h i c h a r t d e t e r m i n e i w h i c h q u a d r a n t t h a t s i g n i t b p l a c e d .

3 9 0 : T h i s r a t h e r c o m p l i c a t e d e x p r e s s i o n p l a c e s t h a t - s i g n r a n d o m l yi o n o t h f i v e r o w s c l o s e s t t t h t o o b o t t o m o t h s c r e e n ,d e p e n d i n g u p o n w h i c h q u a d r a n t t h a t - s i g n i i n

4 0 0 - 4 1 0 : A g a i n t a v o i d c o l l i s i o n w i t h b a r , t h a t - s i g n m u s t b p l a c e d i a e v e n c o l u m n i t h r o i e v e n o a o d d c o l u m n i t h r o i o d d . T h m a n n e r i w h i c h t h c o l u m n i c a l c u l a t e d i r a t h e r a r c a n e , b u i y o w i s h t t a k e t h e t i m e t a n a l y z e i t y o w i l l s e t h a t i p l a c e s t h a t - s i g n i t h e h a l f o i t q u a d r a n t t h a t i c l o s e s t t t h e d g e o t h s c r e e n .

S u b r o u t i n e5 0 0 - 6 8 0 : T h i s s u b r o u t i n e c h a n g e s t h m a z e i t h f i v e r o w s a n f i v e

c o l u m n s s u r r o u n d i n g t h a t - s i g n .5 1 0 - 5 2 0 : T h v a r i a b l e s a n r e p r e s e n t t h e r o d i s t a n c e a n

c o l u m n d i s t a n c e f r o m t h a t - s i g n , r a t h e r t h a n s p e c i f i c l o c a t i o n s o t h s c r e e n . T h i s i d o n e b e c a u s e t h a t - s i g n m i g h t m o v e d u r i n g t h e x e c u t i o n o t h e s u b r o u t i n e .

5 3 0 : R O i n d i c a t e s t h e r o c u r r e n t l y b e i n g c h a n g e d .5 4 0 - 5 5 0 : C O i n d i c a t e s t h c o l u m n t b c h a n g e d . T h i s c a l c u

l a t i o n i b a s e d o w h e t h e r R O i o d o e v e n a n d w h e t h e r t h a t - s i g n i a a o d o e v e n c o l u m n .

Page 179: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 179/244

F I N D H A R R Y 1 7 5 8 0 : D o n ' t c h a n g e t h m a z e w h e r e t h a t - s i g n i s t a n d i n g !6 5 0 : A f t e r m a k i n g e a c h c h a n g e , g i v e s t h a t - s i g n a o p p o r t u n i t y

t m o v e . C o n t r o l i r e t u r n e d t t h m a i n r o u t i n e i e i t h e r H a r r y i f o u n d o t h t i m e h a e x p i r e d .

S u b r o u t i n e7 0 0 - 9 9 0 : I t h i s s u b r o u t i n e t h k e y b o a r d i c h e c k e d a n d t h a t - s i g n

i m o v e d i a a p p r o p r i a t e k e i p r e s s e d . t e s t i a l s o m a d e t d e t e r m i n e i H a r r y h a b e e n f o u n d . W h e t h e r o n o t h a t - s i g n h a b e e n m o v e d , t h a m o u n t o t i m e l e f t ( a d i s p l a y e d i t h u p p e r l e f tc o r n e r o t h e s c r e e n ) i u p d a t e d a n t e s t i m a d e t s e w h e t h e rt h i s a m o u n t h a b e e n r e d u c e d t o 0 .

8 7 0 : T h a t - s i g n m a n o m o v e o n t o s p a c e o c c u p i e d b b a r . I t h e l o c a t i o n i n d i c a t e d b S P O T i a c t u a l l y o c c u p i e d b H a r r y , t h i sw i l l b d e t e c t e d a l i n e 9 3 0 .

9 3 0 : H a r r y h a b e e n r e a c h e d .9 4 0 - 9 7 0 : D i s p l a y t h a m o u n t o f t i m e l e f t . T h v a r i a b l e N O

c o n t a i n s t h i s v a l u e . I l i n e 9 6 b l a n k i p r i n t e d i N O h a s o n l yo n d i g i t .

9 8 0 : i s e t - i t h t i m e h a e x p i r e d ( i o t h e r w o r d s , N O W = 0 ) .T h i s i s u p p r e s s e d , h o w e v e r , i H a r r y i f o u n d s i m u l t a n e o u s l y .

S u b r o u t i n e1 0 0 0 - 1 0 9 0 : P l a y s t u n e i n d i c a t i n g t h a t H a r r y h a b e e n f o u n d .

S u b r o u t i n e1 1 0 0 - 1 1 9 0 : P l a y s a t u n e i n d i c a t i n g t h a t t h t i m e h a s e x p i r e d .

S U G G E S T E D E N H A N C E M E N T S1 T h e m a z e c a n b e m a d e e i t h e r m o r e d e n s e o l e s s d e n s e , d e p e n d i n g

o w h e t h e r y o w a n t t m a k e t h g a m e m o r e d i f f i c u l t o l e s s d i f f i c u l t .T h i s c a b a c c o m p l i s h e d b m o d i f y i n g l i n e s 2 7 a n 6 0 0 .

2 T a d l i t t l e m o r e d i v e r s i t y t t h g a m e , o b j e c t s m a b p l a c e di t h m a z e . D e p e n d i n g u p o n y o u r p r e f e r e n c e , y o m a e i t h e r r e q u i r et h e s e t b a v o i d e d o a w a r d p o i n t s i t h e y a r t o u c h e d b t h a t s i g n w h i l e t r y i n g t m a k e c o n t a c t w i t h H a r r y .

Page 180: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 180/244

C H A P T E R 2 S C R A M B L E R

H e r e , f o a c h a n g e , i b r a i n t e a s e r . T h c o m p u t e r d i s p l a y sr a n d o m l y s e l e c t e d w o r d o t h s c r e e n i j u m b l e d o r d e r , a n y o u rj o i t u n s c r a m b l e t h w o r d . J u s t s t h a t y o d o n ' t h a v e t o e a s y a t i m e , y o h a v e t u n s c r a m b l e t h w o r d w i t h i n c e r t a i nt i m e l i m i t , b a s e d o t h l e v e l o d i f f i c u l t y s e l e c t e d a n t h l e n g t ho t h w o r d . l o l e v e l n u m b e r m e a n s t h a t t h t i m e l i m i t a l o c a t e d i l o n g e r .

T h g a m e c o n t i n u e s i n d e f i n i t e l y , s i t ' s t h i d e a l g a m e t g i v et c h i l d f r o m w h o m y o n e e d s o m e r e p r i e v e ! H o w e v e r , t t e r m i n a t e t h p r o g r a m , a l y o h a v e t d i t p r e s s t h e F k e a n t h g a m e e n d s w i t h p e r f o r m a n c e r a t i n g d i s p l a y e d o t h s c r e e n .

1 R E S C R A M B L E R2 P O K E 5 3 2 8 1 f 7 : C N T = 0 : Y E S = 03 I N P U T ' H W H A T S P E E D D Y O W A N T ( 0 - 1 0 ) M ; N4 I N O I N T ( N ) O N < O N > 1 0 T H E N 3 5 R E S T O R E : Q = I N T ( R N D ( 0 ) * 5 0 ) + 16 F O 1 = T 7 R E A D U U R D $8 N E X T1 7

Page 181: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 181/244

S C R A M B L E R 1 7 9 6 0 S U B 6 0 0 : L = 0 : A N S W E R $ = " " : C N T = C N T + 11 0 P R I N T " □ D Q n n n n n a Q " ; T A B ( 1 5 ) ; S $1 1 P O K E 2 0 9 f 1 5 9 : P O K E 2 1 0 , 51 2 L I M = T I M E + ( ( 1 0 - N ) * 2 4 + 8 0 ) * L E N ( S $ )1 3 P R I N T " B l l " ;1 4 G E A $ : I F A $ < > " " T H E N 2 3 1 5 I T I M E < L I M T H E N 1 4 1 6 I A N S W E R $ = W U R D $ T H E N 3 2 1 7 6 0 S U B 4 0 1 8 P R I N T : P R I N T : P R I N T " S O R R Y , T I M E ' S U P ! "1 9 0 F O R 1 = T 2 0 0 : N E X T I r P O K E 5 4 2 7 6 , 02 0 P R I N T : P R I N T " T H E W O R D I S " ; W U R D $2 1 0 F O R 1 = T 2 0 0 0 : N E X T2 2 0 P O K E 1 9 8 , 0 : G O T O 5 2 3 I A $ = C H R $ ( 1 3 ) T H E N 3 2 02 4 I A $ = " H " T H E N 3 9 02 5 I A $ < > " | | " T H E N 2 9 2 6 I L = T H E N 1 4 2 7 L = L - 1 : A N S W E R $ = L E F T $ ( A N S W E R $ , L )2 8 P R I N T | | | | " ; : G O T O 1 3 2 9 I A $ < " A " O A $ > " Z " T H E N 1 4 3 0 P R I N T A $ ; : L = L + 1 : A N S W E R $ = A N S W E R $ + A $3 1 0 G O T O 1 3 3 2 0 P R I N T " : I F A N S W E R $ O W U R D $ T H E N 3 6 3 3 0 G O S U B 5 0 0 : P R I N T " C O R R E C T ! " : Y E S = Y E S + 13 4 F O 1 = T 2 0 0 : N E X T I : P O K E 5 4 2 7 6 , 03 5 0 G O T O 5 3 6 0 G O S U B 4 0 3 7 P R I N T l P R I N T " S O R R Y , T H A T ' S N O T H W O R D "3 8 0 G O T O 1 9 3 9 0 G O S U B 7 0 0 : E N D4 0 R E B A D B E E P4 1 0 P O K E 5 4 2 7 2 , 1 3 24 2 P O K E 5 4 2 7 3 , 34 3 P O K E 5 4 2 7 7 , 1 6 04 4 P O K E 5 4 2 7 8 , 2 5 04 5 0 P O K E 5 4 2 9 6 , 1 54 6 0 P O K E 5 4 2 7 6 , 3 3

Page 182: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 182/244

1 8 Z A P P E R S F O R T H C O M M O D O R E 6 4 7 R E T U R N5 0 0 R E M G O O D B E E P5 1 P O K E 5 4 2 7 2 , 3 25 2 P O K E 5 4 2 7 3 , 7 85 3 P O K E 5 4 2 7 7 , 3 45 4 P O K E 5 4 2 7 8 , 1 3 85 5 P O K E 5 4 2 9 6 , 1 55 6 P O K E 5 4 2 7 6 , 3 35 7 R E T U R N6 0 R E S C R A M B L E W U R D $ I N T O S 6 1 S $ = " " : T E M P $ = W U R D $6 2 F O S I Z E = L E N ( W U R D $ ) T S T E P - 6 3 L 0 C = I N T ( R N D ( 0 ) * S I Z E ) + 16 4 S $ = S $ + M I D $ ( T E M P $ , L O C , 1 )6 5 T E M P $ = L E F T $ ( T E M P $ , L 0 C - 1 )

+ R I G H T $ ( T E M P S , S I Z E - L O C )6 6 N E X T S I Z E6 7 R E T U R N7 0 R E P E R F O R M A N C E R A T I N G7 1 0 P O K E 5 3 2 8 1 , 67 2 P R I N T M a D D D D D " ; T A B ( 1 4 ) ; " n Y 0 U R

S C O R E S : "7 3 P R I N T : P R I N T7 4 P R I N T T A B ( 9 ) ; " C 0 R R E C T I N C O R R E C T "7 5 P R I N T T A B ( 9 ) ; "7 6 P R I N T : P R I N T : P R I N T T A B d O ) ; Y E S ;7 7 P R I N T T A B ( 2 3 ) ; ( C N T - 1 ) - Y E S7 8 F I N E = I N T ( Y E S / ( C N T - 1 ) * 1 0 0 )7 9 P R I N T l P R I N T T A B ( 9 ) ; " ( " ; F I N E ; " M % ) " 8 0 P R I N T T A B ( 2 2 ) ; " ( " ; 1 0 0 - F I N E ; " i l % ) 8 1 R E T U R N9 0 R E W O R D S9 1 D A T A " B E N E F I T " , " I N S 1 S T " , " P L E A S U R E "9 2 D A T A " S T O R M " , " A C R O N Y M " , " T R A P E Z E "9 3 D A T A " W O R L D L Y " , " F U N G U S " , " M A R K E T "9 4 D A T A " Y E S T E R D A Y " , " G U I D A N C E " , " Y E A R N "9 5 D A T A " E N G A G E " , " R E C L A I M " , " K N O W L E D G E "9 6 D A T A " C O L O N Y " , " U T I L I T Y " , " J O K E "9 7 D A T A " D R I V E R " , " R E M A I N D E R " , " H Y D R O G E N "

I

Page 183: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 183/244

S C R A M B L E R 1 8 9 8 D A T A " O C T O P U S " , " T E C H N I C A L " , " L A U G H "9 9 D A T A " Q U I V E R " , " V O L T A G E " , " N I M B L E "1 0 0 0 D A T A " F O L I A G E " , " A M B I T I O N " , " V A L V E "1 0 1 0 D A T A " G E O M E T R Y " , " L O C A T I O N " , " G L A C I E R "1 0 2 0 D A T A " O U T R A G E O U S " , " W A R R A N T " , " K I C K "1 0 3 0 D A T A " C I V I L I Z E " , " M A T E R N I T Y " , " H E A R T "1 0 4 0 D A T A " D I S A R R A Y " , " Z O M B I E " , " B L U E P R I N T "1 0 5 0 D A T A " M I L D E W " , " I M P R E S S " , " J I N G L E "1 0 6 0 D A T A " P E R F E C T " , " E X C E S S I V E " , " Q U O T A "1 0 7 0 D A T A " N A V I G A T E " , " S E P A R A T E " '

G L O S S A R Y O V A R I A B L E SC N K e e p s a c o u n t o t h n u m b e r o w o r d s t h p l a y e r a

t e m p t e d . T h i s i u s e d t c a l c u l a t e t h p e r f o r m a n c e r a t i n ga t h f i n i s h o t h g a m e .

Y E T h n u m b e r o c o r r e c t g u e s s e s t h p l a y e r m a d e .T h p l a y e r ' s s e l e c t e d s p e e d o l e v e l .W U R D $ H o l d s t h r a n d o m l y s e l e c t e d w o r d .W h i l e t h p l a y e r t y p e s i t h u n s c r a m b l e d w o r d , t h i s v a i a b l e k e e p s c o u n t o f h o m a n y l e t t e r s h h a i n p u t s of a r .

A N S W E R S S t o r e s t h e p l a y e r ' s u n s c r a m b l e d w o r d .S H o l d s t h s c r a m b l e d w o r d a r e t u r n e d b t h s u b r o u t i n e

a l i n e 6 0 0 .L I T h t i m e b e f o r e w h i c h t h p l a y e r m u s t e n t e r t h e a n s w e r .T E M P S I t h s u b r o u t i n e a l i n e 6 0 t h i s v a r i a b l e i i n i t i a l l y a

s i g n e d t h w o r d i W U R D $ . D u r i n g t h s c r a m b l e , c h a ra c t e r s a r r e m o v e d o n a t i m e f r o m T E M P $ .

S I Z E I t h s u b r o u t i n e a l i n e 6 0 t h i s v a r i a b l e i n d i c a t e s h o m a n y c h a r a c t e r s a r e c u r r e n t l y s t o r e d i T E M P $ .

L O r a n d o m l y s e l e c t e d n u m b e r p o i n t i n g t o n o t h c h a ra c t e r s i n T E M P $ .

L I N E S O S P E C I A L I N T E R E S T1 3 0 - 3 1 0 : T h i s i t h e n t i r e c o d e f o g e t t i n g t h e p l a y e r ' s r e s p o n s e . I

i r e p e a t o s i m i l a r r o u t i n e s u s e d i s o m e o f o u r p r e v i o u s p r g r a m s .

1 5 0 - 1 8 0 : T e s t t s e w h e t h e r t h t i m e l i m i t h a e x p i r e d . N o t i c e

Page 184: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 184/244

1 8 Z A P P E R S F O R T H C O M M O D O R E 6 t h a t i i h a s i n d e e d e x p i r e d b e f o r e t h p l a y e r p r e s s e s t h R E T U R Nk e b u a f t e r h h a e n t e r e d a l t h e c o r r e c t l e t t e r s , h i a n s w e r w i l ls t i l l b a c c e p t e d .

1 9 0 : A f t e r s h o r t d e l a y t h t o n e c a u s e d b t h s u b r o u t i n e a l i n e4 0 i t e r m i n a t e d .

2 1 0 : T h c o r r e c t a n s w e r i l e f t o t h s c r e e n f o s h o r t t i m e .2 2 0 : T h k e y b o a r d b u f f e r i c l e a r e d s t h a t c h a r a c t e r s e n t e r e d a f t e r

t h e e x p i r a t i o n o t h t i m e l i m i t a r n o t r e a d b t h G E s t a t e m e n ta t h c o m m e n c e m e n t o t h n e x t r o u n d .

2 4 0 : T h F k e m a b p r e s s e d a n y t i m e b e f o r e p r e s s i n g t h e R T U R N k e y , e v e n a f t e r s o m e o t h l e t t e r s h a v e a l r e a d y b e e n e n t e r e d .

3 3 0 - 3 5 0 : T h p l a y e r h a a n s w e r e d c o r r e c t l y .3 6 0 - 3 8 0 : T h p l a y e r h a a n s w e r e d i n c o r r e c t l y .3 9 0 : T h p l a y e r h a p r e s s e d t h F k e t t e r m i n a t e .

S u b r o u t i n e4 0 0 - 4 7 0 : P r o d u c e s t o n e i n d i c a t i n g t h a t e i t h e r t h t i m e h a s e x p i r e d

o t h p l a y e r h a g u e s s e d i n c o r r e c t l y .

S u b r o u t i n e5 0 0 - 5 7 0 : P r o d u c e s a t o n e i n d i c a t i n g t h a t t h p l a y e r h a a n s w e r e d

c o r r e c t l y .

S u b r o u t i n e6 0 0 - 6 7 0 : T h i s s u b r o u t i n e p l a c e s i S s c r a m b l e d v e r s i o n o t h

w o r d i W U R D $ .6 2 0 - 6 6 0 : E a c h t i m e t h r o u g h t h i s l o o p , o n c h a r a c t e r i p l a c e d i S $ 6 3 0 : C h o o s e s o n o t h e c h a r a c t e r s i T E M P $ b s e l e c t i n g n u m b e r

b e t w e e n a n S I Z E .6 4 0 : T h s e l e c t e d c h a r a c t e r i c o n c a t e n a t e d t S $ 6 5 0 : T h i s l i n e e f f e c t i v e l y r e m o v e s t h e s e l e c t e d c h a r a c t e r f r o m

T E M P S . T E M P S i n o s h o r t e r b o n c h a r a c t e r .

S u b r o u t i n e7 0 0 - 8 1 0 : T h p e r f o r m a n c e r a t i n g i d i s p l a y e d . T h r e a s o n t h a t C N T -i u s e d r a t h e r t h a n C N i t h a t t h r o u n d d u r i n g w h i c h F l w a

p r e s s e d h a a l s o b e e n i n c l u d e d i C N T .9 0 0 - 1 0 7 0 : T h p o o l o f i f t y w o r d s f r o m w h i c h t h r a n d o m w o r d s a r

s e l e c t e d .

Page 185: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 185/244

S C R A M B L E R 1 8

S U G G E S T E D E N H A N C E M E N T S1 A s o o n a s t h e p o o l o w o r d s h a b e e n l e a r n e d b r o t e , t h e y m a b c h a n g e d a t w i l l .2 M o d i f y t h p r o g r a m s u c h t h a t i n a n g i v e n r u n w o r d i s e l e c t e d

m o r e t h a n o n c e . O n c e a l f i f t y w o r d s h a v e b e e n e x h a u s t e d t h p r g r a m s h o u l d t e r m i n a t e .

3 T h e n u m b e r o w o r d s i t h p o o l c a b i n c r e a s e d o d e c r e a s e d a a n t i m e . L i n e 5 w o u l d h a v e t b m o d i f i e d .

4 Y o u m a y s u b s t i t u t e k e f o r e i g n w o r d s t e n c o u r a g e s t u d e n t o t h l a n g u a g e t h a v e s o m e f u n w h i l e l e a r n i n g .

Page 186: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 186/244

C H A P T E R 2 L O T T E R Y

A c r o s s N e Y o r k S t a t e , f e a c t i v i t i e s s e e m t g e n e r a t e a m u c he x c i t e m e n t a t h s t a t e l o t t e r y . I t i s n o u n c o m m o n t f i n d l o n gl i n e s o f p e o p l e o u t s i d e k i o s k s a n s t o r e s t h a t s e l l l o t t e r y t i c k e t s .T h i s i h a r d l y s u r p r i s i n g , s i n c e i i p o s s i b l e t w i m i l l i o n s o d o l l a r s , i y o a r l u c k y .

T e n t e r t h e l o t t e r y i N e Y o r k S t a t e , y o p a m i n i m u mb e o o n d o l l a r f o t w c h a n c e s . F o e a c h c h a n c e y o s e l e c t s i xn u m b e r s b e t w e e n a n 4 4 w i t h n r e p e a t s . W h e n t h l o t t e r y i d r a w n , s i n u m b e r s a r " p u l l e d o u o h a t , " s t s p e a k , f r o ma p o o l o f f o r t y - f o u r . I t h s i n u m b e r s s e l e c t e d b a p u r c h a s e rm a t c h t h e s e s i x , t h a t p e r s o n b e c o m e s w i n n e r . T h N e Y o r kS t a t e l o t t e r y a l s o a l l o w s f o s o - c a l l e d b o n u s n u m b e r .

T h s u c c e s s o t h N e Y o r k S t a t e l o t t e r y e n c o u r a g e d s o m en e i g h b o r i n g s t a t e s t c o n d u c t t h e i r o w s t a t e l o t t e r i e s . N e J e r s e ya n P e n n s y l v a n i a h a v e c h o s e n t f o l l o w t h l o t t e r y r o u t e , t h o u g ht h e i r r e s p e c t i v e r u l e s d i f f e r s o m e w h a t f r o m t h o s e o N e Y o r k .I N e J e r s e y , f o r e x a m p l e , t h n u m b e r s d r a w n r a n g e f r o m t 3 r a t h e r t h a n t 4 4

T h h i g h e s t p r i z e e v e r o f f e r e d i l o t t e r y i t h U n i t e d S t a t e sw a $ 2 1 . 1 m i l l i o n i N e Y o r k d r a w i n g i M a 1 9 8 4 . T h r e c o r d f o a i n d i v i d u a l w i i t h U n i t e s S t a t e s w a t h $ 8 . 8m i l l i o n a w a r d e d b y t h P e n n s y l v a n i a l o t t e r y i J u l y o f 1 9 8 3 .1 8

Page 187: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 187/244

L O T T E R Y 1 8 E a r l y i 1 9 8 4 i n t e n s e p u b l i c e x c i t e m e n t w a c r e a t e d i C a n a d a ,

w h e r e l o t t e r y i c o n d u c t e d b t h c o u n t r y ' s I n t e r p r o v i n c i a lL o t t e r y C o r p o r a t i o n . T h i s l o t t e r y i r u n n a t i o n w i d e a n h a b c o m e n a t i o n a l w e e k l y m a n i a . I C a n a d a , s i n u m b e r s a r d r a w nf r o m a p o o l o f f o r t y - n i n e . T h o d d s o p i c k i n g t h s i l u c k yn u m b e r s i t h c o n t e s t , c a l l e d t h e 6 - 4 9 , a r a p p r o x i m a t e l y f o u rt e e n m i l l i o n t o n e . I J a n u a r y o f 1 9 8 4 t h e p r i z e a m o u n t e d t 1 m i l l i o n C a n a d i a n d o l l a r s , e q u i v a l e n t t a b o u t 1 m i l l i o n U . S .d o l l a r s .

I n t h e U n i t e d S t a t e s a l l o t t e r y w i n n i n g s a r t a x e d a n a r p a i dt t h r e c i p i e n t s o v e r p e r i o d o t w e n t y y e a r s , i e q u a l a n n u a la m o u n t s . I C a n a d a , h o w e v e r , t h m o n e y i n o t a x a b l e a n t h w i n n i n g s a r p a i d i o n l u m p s u m . I i n w o n d e r , t h e n , t h a tm o r e a n m o r e A m e r i c a n s j o u r n e y n o r t h w a r d t t r t h e i r l u c k ,d e s p i t e t h f a c t t h a t U n i t e d S t a t e s l a w , p a s s e d i 1 9 3 0 , p r o h i b i t st h i m p o r t a t i o n o l o t t e r y t i c k e t s . N e v e r t h e l e s s , i i n o i l l e g a lf o a A m e r i c a n t w i C a n a d i a n l o t t e r y o t b r i n g h o m e t h p r i z e . H o w e v e r , t h A m e r i c a n m u s t p a y a b o u t 5 p e r c e n t o t h w i n n i n g s a i n c o m e t a x .

U n d e r t h 6 - 4 9 r u l e s ( a n d i n d e e d m o s t o t h e r l o t t e r y r u l e s a w e l l ) , f o a n w e e k t h a t t h s i n u m b e r s d r a w n h a v e n o b e e nc h o s e n b a n e n t r a n t , t h e p r i z e f o t h a t w e e k i t h r o w n i n t o t h n e x t w e e k ' s o f f e r i n g . T h i s i t h r e a s o n w h t h e p r i z e s a r s o m et i m e s s o a s t r o n o m i c a l . ( I n c i d e n t a l l y , t h b i g g e s t l o t t e r y i n t h w o r l d i S p a i n ' s E G o r d o , w h i c h i i t d r a w i D e c e m b e r 1 9 8 3o f f e r e d p r i z e o $ 7 m i l l i o n ! )

I t h p r o g r a m w h i c h w p r e s e n t t s i m u l a t e l o t t e r y , w h a v eo p t e d f o r t h e C a n a d i a n v e r s i o n , w h i c h a l l o w s f o s i n u m b e r sb e t w e e n a n 4 9 Y o a r g i v e n t h o p p o r t u n i t y t " m a r k "s c o r e c a r d , w h i c h i d i s p l a y e d o t h s c r e e n a n i n u m b e r e d f r o m

t 4 9 O n c e y o u r s i n u m b e r s h a v e b e e n c h o s e n , t h c o m p u t e rs e l e c t s i t s i r a n d o m n u m b e r s , p l u s a e x t r a , a n y o c a s e h o w e l l y o f a r e d . T h i s p r o g r a m c o u l d o f c o u r s e b u s e d t s e l e c t y o u r e n t r i e s f o t h C a n a d i a n l o t t e r y . M a y b e y o c o u l d b o n o t h l u c k y o n e s . A a n r a t e , w w i s h y o t h e b e s t o l u c k .

W h e n t h p r o g r a m i r u n , t h e s c r e e n i c l e a r e d , a n b o a r d i d i s p l a y e d w i t h t h n u m b e r s t h r o u g h 4 i s e q u e n t i a lo r d e r , s t a r t i n g f r o m t h t o l e f t h a n d c o r n e r . T h n u m b e r s a r s e l e c t e d t h r o u g h t h p o s i t i o n i n g o c u r s o r . W h e n t h c u r s o r i

Page 188: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 188/244

1 8 Z A P P E R S F O R T H C O M M O D O R E 6 o v e r n u m b e r , t h n u m b e r i s e e n i r e v e r s e d g r a p h i c s , c o l o r e db l u e . T h c u r s o r i m o v e d a r o u n d w i t h t h C R S R k e y s . T s e l e c t

n u m b e r , y o m u s t p o s i t i o n t h c u r s o r o v e r i a n p r e s s t h e F k e y . T h c u r s o r t h e n t u r n s p u r p l e . W h e n t h c u r s o r i r e m o v e d ,t h e s e l e c t e d n u m b e r a p p e a r s i r e v e r s e g r a p h i c s , c o l o r e d r e d .( W h e n e v e r t h c u r s o r i p o s i t i o n e d o v e r s e l e c t e d n u m b e r , t h n u m b e r a p p e a r s i p u r p l e i n s t e a d o r e d . ) I y o c h a n g e y o u rm i n d , y o c a p o s i t i o n t h e c u r s o r o v e r s e l e c t e d n u m b e r a n p r e s s t h F k e y . T h i s d e s e l e c t s t h e n u m b e r , r e t u r n i n g i t a p e a r a n c e t n o r m a l .

O n c e y o h a v e c h o s e n y o u r s i n u m b e r s , y o m u s t p r e s s t h eF k e t s u b m i t y o u r e n t r y t t h c o m p u t e r . ( I t h i s k e i p r e s s e db e f o r e t h s i n u m b e r s h a v e b e e n s e l e c t e d , m e s s a g e i p r i n t e da d v i s i n g y o o h o m a n y m o r e n u m b e r s m u s t b e e n t e r e d . ) T h c o m p u t e r t h e n d i s p l a y s i t s i r a n d o m l y s e l e c t e d n u m b e r s a t h b o t t o m o t h s c r e e n , a l o n g w i t h a " e x t r a . " I y o u r s i n u m b e r sm a t c h t h o s e s e l e c t e d b t h c o m p u t e r , m e s s a g e i d i s p l a y e d( a l o n g w i t h m u s i c a l a c c o m p a n i m e n t ) a n n o u n c i n g t h a t y o h a v ew o " t h e b i o n e . " I f i v e o y o u r n u m b e r s a r a m o n g t h s i c h o s e n b t h c o m p u t e r a n y o u r s i x t h n u m b e r m a t c h e s t h " e t r a , " y o u w i n s e c o n d p r i z e . N p o i n t s a r e a w a r d e d i t h i s g a m e ,b u y o m a o c o u r s e k e e p y o u r o w s c o r e . B w a r n e d , h o w e v e r ,t h a t j u s t a i r e a l l o t t e r y , t h c h a n c e s o w i n n i n g p r i z e a r ev e r y s m a l l . T h c o m p u t e r c o n t i n u e s t a l l o w y o t p l a y u n t i lt h F k e i p r e s s e d . T h p r o g r a m t h e n t e r m i n a t e s .

R E L O T T E R Y1 D I P ( 4 8 ) , Q ( 4 8 > f N < 6 )2 P O K E 5 3 2 8 1 # 1 5 : 6 O S U B 3 0 3 G O S U B 5 0 0 : C N T = 04 0 F O R 1 = 0 T 4 8 : P ( I ) = 0 : N E X T5 S = 0 : G O S U B 7 0 0 : I F S = T H E N 5 6 I S < T H E N 1 9 7 I C N T = 6 T H E N 1 0 8 P R I N T M Q O S E L E C T M ; 6 - C N T ; M M 0 R E N U M B E R S . 1 19 P R I N T M n n C T ; : G 0 T 0 5 1 0 G O S U B 1 2 0 0 : P R I N T : G O S U B 1 3 0 01 1 I M A T C H < 6 T H E N 1 7 1 2 I X T R A > 0 T H E N 1 5

Page 189: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 189/244

L O T T E R Y 1 8 1 3 P R I N T " Y O U W O T H B I O N E ! ! ! "1 4 I = 1 : G 0 S U B 1 4 0 0 : G O T O 3 1 5 P R I N T " Y O U W O S E C O N D P R I Z E ! ! "1 6 I = 2 : G 0 S U B 1 4 0 0 : G O T O 3 1 7 P R I N T " S O R R Y , Y O D I D N ' T W I N . "1 8 G O S U B 1 6 0 0 : G O T O 3 1 9 0 P O K E 5 3 2 8 1 , 6 : P R I N T " Q D G A M E O V E R " : E N D2 0 R E C L E A R L I N E2 1 P R I N T " □ " ;2 2 F O 1 = T 3 8 . - P R I N T " ; : N E X T2 3 P R I N T r P R I N T " U " ;2 4 R E T U R N3 0 R E P R I N T G R I D3 1 P R I N T " Q B " : P R I N T3 2 P R I N T T A B < 9 > ; " H H B " ;3 3 F O 1 = T 6 : P R I N T " B B B " ; : N E X T3 4 P R I N T " E T i P R I N T T A B ( 9 ) ;3 5 F O 1 = T 7 : P R I N T " L T J " ; : N E X T3 6 0 P R I N T " C D "3 7 F O J = T 3 8 0 P R I N T T A B ( 9 ) ; " E B B B " ;3 9 F O 1 = T 6 : P R I N T " f f l B B " ; : N E X T4 0 P R I N T " B 3 " : P R I N T T A B ( 9 ) ;4 1 F O 1 = T 7 : P R I N T " C " ; : N E X T4 2 P R I N T " C D "4 3 N E X T4 4 P R I N T T A B ( 9 ) ; " [ g B B " ;4 5 F O 1 = T 6 : P R I N T " B B B " ; : N E X T4 6 P R I N T " H 4 7 R E T U R N5 0 R E P U U N U M B E R S5 1 P R I N T " H " : P R I N T : P R I N T5 2 F O R 1 = 0 T 4 S T E P5 3 F O J = T 5 4 P R I N T T A B ( 7 + J * 3 ) ;5 5 I I + J < 1 0 T H E N P R I N T " 5 6 P R I N T M I D $ ( S T R $ ( I + J ) , 2 ) ;5 7 N E X T5 8 P R I N T . ' P R I N T

Page 190: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 190/244

1 8 Z A P P E R S F O T H C O M M O D O R E 6 5 9 N E X T6 0 P R I N T6 1 P R I N T T A B ( 9 ) ; " F 1 = S E L E C T F 3 = D E S E L E C T "6 2 P R I N T T A B ( 9 ) ; " F 5 = S U B M I T F 7 = E N D "6 3 P R I N T : P R I N T : G O S U B 2 0 0 : P R I N T6 4 P R I N T : P R I N T : 6 O S U B 2 0 0 : P R I N T " £ ] □ " ;6 5 R O W = 0 : C O L = 0 : T Y P E = 2 : G O S U B 1 0 0 06 6 R E T U R N7 0 0 R E M M O V E C U R S O R7 1 G E A $ : I F A $ = " " T H E N R E T U R N7 2 I A $ = " D " T H E N 8 1 7 3 I A $ = " D " T H E N 8 3 7 4 I A $ = " I I M T H E N 8 5 7 5 I A $ = " D " T H E N 8 7 7 6 I A $ = " H " T H E N 8 9 7 7 I A $ = " H " T H E N 9 2 7 8 I A $ = " I B " T H E N 9 5 7 9 I A $ < > " « " T H E N R E T U R N8 0 S = - 1 : R E T U R N8 1 I R O W = 0 T H E N R E T U R N8 2 D R = - 1 : D C = 0 : G O T O 9 6 8 3 I R 0 W = 6 T H E N R E T U R N8 4 D R = 1 : D C = 0 : G O T O 9 6 8 5 I C O L = 0 T H E N R E T U R N8 6 D R = 0 : D C = - 1 : G O T O 9 6 8 7 I C 0 L = 6 T H E N R E T U R N8 8 D R = 0 : D C = 1 : G O T O 9 6 8 9 I C N T = 6 O P ( R 0 W * 7 + C 0 L ) = 1 T H E N R E T U R N9 0 C N T = C N T + 1 : P ( R 0 W * 7 + C 0 L ) = 19 1 T Y P E = 3 : G 0 S U B 1 0 0 0 : R E T U R N9 2 I C N T = O O P ( R O W * 7 + C O L ) = 0 T H E N R E T U R N9 3 C N T = C N T - 1 : P ( R O W * 7 + C O L ) = 09 4 T Y P E = 2 : G 0 S U B 1 0 0 0 : R E T U R N9 5 S = 1 : R E T U R N9 6 T Y P E = P ( R 0 W * 7 + C 0 L ) : G 0 S U B 1 0 0 09 7 R O W = R O W + D R : C O L = C O L + D C9 8 T Y P E = P ( R 0 W * 7 + C 0 L ) + 2 : G 0 S U B 1 0 0 09 9 R E T U R N1 0 0 0 R E M C O L O R S P A C E

Page 191: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 191/244

L O T T E R Y 1 8 1 0 1 0 R R = R O W * 2 + 3 : C C = C O L * 3 + 1 01 0 2 0 S P O T = 1 0 2 4 + R R * 4 0 + C C1 0 3 0 I P E E K ( S P 0 T ) > 1 2 8 T H E N 1 0 8 01 0 4 0 I T Y P E = 0 T H E N 1 1 1 01 0 5 0 P O K E S P 0 T , P E E K ( S P 0 T ) + 1 2 81 0 6 0 P O K E S P 0 T + 1 , P E E K ( S P 0 T + 1 ) + 1 2 81 0 7 0 G O T O 1 1 1 01 0 8 0 I T Y P E > 0 T H E N 1 1 1 01 0 9 0 P O K E S P 0 T , P E E K ( S P 0 T ) - 1 2 81 1 0 0 P O K E S P 0 T + 1 , P E E K ( S P 0 T + 1 ) - 1 2 81 1 1 0 O T Y P E + 1 G O T O 1 1 2 0 , 1 1 4 0 , 1 1 6 0 , 1 1 8 01 1 2 0 P O K E S P O T + 5 4 2 7 2 , 61 1 3 0 P O K E S P O T + 5 4 2 7 3 , 6 : R E T U R N1 1 4 0 P O K E S P O T + 5 4 2 7 2 , 21 1 5 0 P O K E S P O T + 5 4 2 7 3 , 2 : R E T U R N1 1 6 0 P O K E S P O T + 5 4 2 7 2 , 61 1 7 0 P O K E S P O T + 5 4 2 7 3 , 6 : R E T U R N1 1 8 0 P O K E S P O T + 5 4 2 7 2 , 41 1 9 0 P O K E S P O T + 5 4 2 7 3 , 4 : R E T U R N1 2 0 0 R E M C H O O S E N U M B E R S1 2 1 0 F O R 1 = 0 T O 4 8 : Q ( I ) = 0 : N E X T1 2 2 0 F O R 1 = 0 T 1 2 3 0 N ( I ) = I N T ( R N D ( 0 ) * 4 9 )1 2 4 0 I Q ( N ( I ) ) > 0 T H E N 1 2 3 01 2 5 0 P R I N T " D " ; M I D $ ( S T R $ ( N ( I ) + 1 ) , 2 ) ;

" " Q ( N ( ) ) 11 2 6 0 N E X T1 2 7 0 N ( 6 ) = I N T ( R N D ( 0 ) * 4 9 )1 2 8 0 I Q ( N ( 6 ) ) > 0 T H E N 1 2 7 01 2 9 0 P R I N T " H E X T R A : O " ;

M I D $ ( S T R $ ( N ( 6 ) + 1 ) , 2 ; " H " : R E T U R N1 3 0 0 R E C H E C K F O M A T C H1 3 1 0 M A T C H = 0 : X T R A = 01 3 2 0 F O R 1 = 0 T 1 3 3 0 I P ( N ( I ) ) = 1 T H E N M A T C H = M A T C H + 11 3 4 0 N E X T1 3 5 0 I P ( N ( 6 ) ) = 1 T H E N X T R A = 11 3 6 0 R E T U R N1 4 0 0 R E M W I N S O N G

Page 192: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 192/244

7 9 Z A P P E R S F O T H C O M M O D O R E 6 1 4 1 0 P O K E 5 4 2 7 3 , 1 6 : P 0 K E 5 4 2 7 7 , 6 81 4 2 0 P O K E 5 4 2 7 8 , 2 4 6 : P 0 K E 5 4 2 9 6 , 1 51 4 3 0 P O K E 5 4 2 7 6 , 3 31 4 4 0 F O J = T 3 0 0 : N E X T1 4 5 0 P O K E 5 4 2 7 3 , 1 41 4 6 0 F O R J = 1 T 1 0 0 : N E X T1 4 7 0 P O K E 5 4 2 7 3 , 2 01 4 8 0 F O J = T 7 0 0 : N E X T1 4 9 0 I 1 = T H E N 1 5 4 01 5 0 0 P O K E 5 4 2 7 3 , 1 41 5 1 0 F O R J = 1 T 4 0 0 : N E X T1 5 2 0 P O K E 5 4 2 7 3 , 2 41 5 3 0 F O J = T 8 0 0 : N E X T1 5 4 0 P O K E 5 4 2 7 6 , 3 21 5 5 0 F O J = T 3 0 0 0 : N E X T1 5 6 0 P O K E 5 4 2 9 6 , 01 5 7 0 R E T U R N1 6 0 0 R E M L O S E T U N E1 6 1 0 P O K E 5 4 2 7 3 , 8 : P 0 K E 5 4 2 7 7 , 6 81 6 2 0 P O K E 5 4 2 7 8 , 2 4 6 : P 0 K E 5 4 2 9 6 , 1 51 6 3 0 P O K E 5 4 2 7 6 , 3 31 6 4 0 F O J = T 3 0 0 : N E X T1 6 5 0 P O K E 5 4 2 7 3 , 41 6 6 0 F O J = T 1 0 0 0 : N E X T1 6 7 0 P O K E 5 4 2 7 6 , 3 21 6 8 0 F O J = T 3 0 0 0 : N E X T1 6 9 0 P O K E 5 4 2 9 6 , 01 7 0 0 R E T U R N

G L O S S A R Y O V A R I A B L E ST h i s i a a r r a y o f o r t y - n i n e e l e m e n t s n u m b e r e d t h r o u g h4 8 W h e n t h p l a y e r s e l e c t s n u m b e r , t h c o r r e s p o n d i n ge l e m e n t i s e t 1 I m a b h e l p f u l t k e e p i m i n d t h a te v e n t h o u g h t h n u m b e r s d i s p l a y e d o t h s c r e e n r a n g ef r o m t 4 9 , t h e y a r r e p r e s e n t e d i n t e r n a l l y a s t h r o u g h4 8 T h i s h a s n d i r e c t b e a r i n g o t h g a m e a s e e n b t h p l a y e r .T h i s i a a r r a y o f o r t y - n i n e e l e m e n t s n u m b e r e d 0 t h r o u g h

Page 193: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 193/244

Page 194: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 194/244

1 9 Z A P P E R S F O T H C O M M O D O R E 6 S u b r o u t i n e2 0 0 - 2 4 0 : T h i s s u b r o u t i n e m o v e s t h P R I N T c u r s o r ( t h e i n v i s i b l e

m a r k e r o t h e c u r r e n t P R I N T p o s i t i o n ) u o n l i n e , b l a n k s o u t h l i n e , a n r e m a i n s t h e r e . S u c h s u b r o u t i n e i u s e f u l b e c a u s e t h p r o g r a m p r i n t s s e v e r a l m e s s a g e s o t h s a m e l i n e a d i f f e r e n t t i m e s .

S u b r o u t i n e3 0 0 - 4 7 0 : P r i n t s t h g r i d i n t o w h i c h t h n u m b e r s a r p l a c e d .

S u b r o u t i n e5 0 0 - 6 6 0 : F i l l s t h g r i d w i t h s e q u e n t i a l n u m b e r s f r o m t 4 9

6 3 0 - 6 4 0 : C l e a r s r o w s 2 a n d 2 3 o t h s c r e e n .6 5 0 : P o s i t i o n s t h c u r s o r o v e r t h f i r s t n u m b e r .

S u b r o u t i n e7 0 0 - 9 9 0 : M o v e s t h c u r s o r a s c o n t r o l l e d b t h p l a y e r a n p e r f o r m s

s e l e c t i o n a n d e s e l e c t i o n , a s r e q u e s t e d . T h i s s u b r o u t i n e r e t u r n s a f t e rp e r f o r m i n g e a c h o p e r a t i o n , o i n o k e y i p r e s s e d .

7 6 0 : T h c h a r a c t e r i q u o t a t i o n m a r k s i n d i c a t e s t h F k e y .7 7 0 : T h c h a r a c t e r i q u o t a t i o n m a r k s i n d i c a t e s t h e F k e y .7 8 0 : T h c h a r a c t e r i q u o t a t i o n m a r k s i n d i c a t e s t h F k e y .7 9 0 : T h c h a r a c t e r i q u o t a t i o n m a r k s i n d i c a t e s t h F k e y .8 9 0 : I t h F l k e y i p r e s s e d a n e i t h e r n u m b e r s h a v e b e e n s e l e c t e d

o t h n u m b e r u n d e r t h c u r s o r h a a l r e a d y b e e n s e l e c t e d , t h e n t h F l k e y i i g n o r e d . N o t e t h a t a r r a y i s u b s c r i p t e d b u s e o f t h v a l u e o R O a n C O L . T h i s c a b e d o n e b e c a u s e t h n u m b e r i a n g i v e n l o c a t i o n o t h e g r i d i a l w a y s t h s a m e .

9 2 0 : I t h F k e i p r e s s e d a n e i t h e r n o n u m b e r s h a v e b e e ns e l e c t e d o t h n u m b e r u n d e r t h c u r s o r h a s n o t b e e n s e l e c t e d , t h F k e i i g n o r e d .

9 6 0 : M o v e s t h c u r s o r o f f t h e c u r r e n t n u m b e r . T Y P E g e t s t h v a l u eo 1 d e p e n d i n g u p o n w h e t h e r o n o t h n u m b e r h a b e e n s e l e c t e d .

9 8 0 : M o v e s t h c u r s o r i n t o t h n e l o c a t i o n . T Y P E g e t s t h v a l u eo 3 d e p e n d i n g u p o n w h e t h e r o n o t h n u m b e r h a b e e n s e l e c t e d .

S u b r o u t i n e1 0 0 0 - 1 1 9 0 : C h a n g e s t h a p p e a r a n c e o f n u m b e r d e p e n d i n g u p o n

t h v a l u e o T Y P E .1 0 1 0 - 1 0 2 0 : C o n v e r t t h v a l u e s o R O a n C O i n t o a a c t u a l

l o c a t i o n i s c r e e n m e m o r y .

Page 195: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 195/244

L O T T E R Y 1 9 1 0 3 0 - 1 0 7 0 : I T Y P E i n o a n t h e c u r r e n t n u m b e r i i n o r m a l

g r a p h i c s , c o n v e r t i t r e v e r s e g r a p h i c s .1 0 8 0 - 1 1 0 0 : I T Y P E = a n t h n u m b e r i i r e v e r s e g r a p h i c s ,c o n v e r t t n o r m a l g r a p h i c s .1 1 1 0 - 1 1 9 0 : C o l o r t h n u m b e r d e p e n d i n g u p o n t h v a l u e o T Y P E .

S u b r o u t i n e1 2 0 0 - 1 2 9 0 : T h c o m p u t e r s e l e c t s a n d i s p l a y s i t s e v e n n u m b e r s .

1 2 5 0 : T h f u n c t i o n s M I D $ a n S T R $ a r u s e d t e l i m i n a t e t h l e a d i n g b l a n k t h a t i u s u a l l y a t t a c h e d t t h n u m b e r b t h P R I N Ts t a t e m e n t . T h i s b l a n k w o u l d b e s p e c i a l l y u n a t t r a c t i v e s i n c e i w o u l db p r i n t e d i r e v e r s e d g r a p h i c s .

1 2 7 0 : T h e x t r a n u m b e r i c o n t a i n e d i N ( 6 ) .

S u b r o u t i n e1 3 0 0 - 1 3 6 0 : D e t e r m i n e s h o m a n y o t h e p l a y e r ' s n u m b e r s m a t c h

t h c o m p u t e r ' s n u m b e r s a n a l s o w h e t h e r t h p l a y e r h a c h o s e nt h e e x t r a n u m b e r a o n o h i s i x .

S u b r o u t i n e1 4 0 0 - 1 5 7 0 : P l a y s t r i u m p h a n t m u s i c i t h p l a y e r h a w o p r i z e .

N o t e t h a t l i n e s 1 5 0 0 - 1 5 3 0 a r s k i p p e d i t h p l a y e r h a w o o n l yt h s e c o n d p r i z e .

S u b r o u t i n e1 6 0 0 - 1 7 0 0 : P l a y s a d o l e f u l t u n e i t h p l a y e r f a i l e d t w i p r i z e .

S U G G E S T E D E N H A N C E M E N T S1 T h c o m p u t e r ' s s e l e c t i o n s c o u l d b d i s p l a y e d i a s c e n d i n g o r d e r t

m a k e f o e a s e o r e a d i n g .2 T h p l a y e r c o u l d b a l l o w e d t d e c i d e f o h i m s e l f b o t h t h r a n g e o

n u m b e r s i t h p o o l a n t h n u m b e r o s e l e c t i o n s t o b m a d e f r o mt h e p o o l .

Page 196: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 196/244

C H A P T E R 2 C O N C E N T R A T I O N

T h i s i a n o t h e r o n o t h o s e e x t r e m e l y p o p u l a r g a m e s t h a t c a b p l a y e d w i t h d e c k o o r d i n a r y p l a y i n g c a r d s . M o s t o t h t i m e , t h g a m e i p l a y e d b e t w e e n t w p e o p l e . A y o m a r e c a l l ,t h d e c k o f i f t y - t w o c a r d s i s h u f f l e d a n t h c a r d s a r l a i d o u o t a b l e f a c e d o w n . O n o t h t w p l a y e r s t u r n s a n t w o t h c a r d s f a c e u p . I t h e s e t w c a r d s d n o h a v e t h s a m e f a c ev a l u e ( t h e s u i t i i g n o r e d i t h i s g a m e ) , t h c a r d s a r t u r n e df a c e d o w n a g a i n a n t h o t h e r p l a y e r t a k e s h i t u r n . I f h o w e v e r ,t h t w c a r d s d h a v e t h s a m e f a c e v a l u e , t h e p l a y e r r e m o v e st h e m f r o m t h t a b l e a n s t a c k s t h c a r d s i n h i s p i l e . H m a t h e ni m m e d i a t e l y g a g a i n , a n t h i s c o n t i n u e s u n t i l h t u r n s u p t w oc a r d s t h a t d n o m a t c h . A t h i s p o i n t p l a y c o n t i n u e s w i t h t h o t h e r p l a y e r . T h s t r a t e g y i n v o l v e d i t h i s g a m e i t c o n c e n t r a t eo t h l o c a t i o n o t h c a r d s w h e n n o n m a t c h i n g p a i r i t u r n e df a c e u p . T h e n w h e n c a r d s h o w s u o t h f i r s t t u r n , t h e l o c a t i o no f m a t c h i n g c a r d m i g h t b r e m e m b e r e d .

T h i s p r o c e s s o a l t e r n a t i n g p l a y c o n t i n u e s u n t i l a l t h c a r d sh a v e b e e n r e m o v e d f r o m t h t a b l e . A t h i s p o i n t t h e p l a y e r s c o u n tu h o m a n y m a t c h i n g p a i r s e a c h h a s . T h p l a y e r w i t h t h e g r e a t e rn u m b e r o m a t c h e s i t h w i n n e r . S i n c e d e c k o f i f t y - t w o c a r d sy i e l d s t w e n t y - s i x m a t c h e s ( a s s u m i n g t h a t t h d e c k i n o p h o n y ) ,i i p o s s i b l e f o t h g a m e t t e r m i n a t e i t i e .1 9

Page 197: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 197/244

Page 198: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 198/244

1 9 Z A P P E R S F O R T H C O M M O D O R E 6 8 P O K E 1 9 8 , 09 G O S U B 5 0 1 0 I 0 V E R < 2 T H E N 8 1 1 I M A T C H > 0 T H E N 1 3 1 2 P L = 3 - P L : G O S U B 1 2 0 0 : G O T O 6 1 3 P T S ( P L ) = P T S ( P L ) + 1 : G O S U B 1 4 0 01 4 I C N T > 0 T H E N 7 1 5 P R I N T " H D D " ; T A B ( 1 4 > ; "1 6 I P T S ( 1 ) = P T S ( 2 ) T H E N 2 3 1 7 W = 1 : I F P T S ( 2 ) > P T S ( 1 ) T H E N W = 1 8 P R I N T " D n n n " ; T A B < W * 2 0 - 6 ) ; W1 9 G O S U B 1 5 0 02 0 P R I N T : P R I N T : P R I N T2 1 P R I N T T A B < 7 ) , - " P L A Y E R Q " ; W ; " H I S T H

W I N N E R ! "2 2 G O T O 2 4 02 3 P R I N T " n O n a a n n " ; T A B C 1 4 ) ; " E I T W A

T I E "2 4 P O K E 5 3 2 8 1 , 6 : P R I N T " n " : E N D3 0 R E I N I T I A L S E T U P , D E A L C A R D S3 1 P R I N T " Q D Q Q Q [ ] 1 "3 2 P R I N T T A B ( 5 ) , - " P L A Y E R 1 " 3 3 P R I N T T A B ( 2 5 ) ; " P L A Y E R 2 3 4 P R I N T T A B ( 5 ) ; " " 3 5 0 P R I N T T A B ( 2 5 ) ; "3 6 G O S U B 1 6 0 0 - . P R I N T " D D D I "3 7 F O R = 0 T O 3 : F O R C = 0 T O 1 23 8 P ( R * 1 3 + C ) = R * 1 0 0 + C3 9 0 N E X T C : N E X T4 0 0 T = 5 24 1 F O S U I T = 1 T 4 : F 0 R C A R D = 1 T O 1 4 2 N = I N T ( R N D ( 0 ) * T ) : T = T - 14 3 R = I N T ( P ( N ) / 1 0 0 + . 1 ) : C = P ( N ) - R * 1 0 04 4 B O A R D < R , C , 0 ) = S U I T : B O A R D ( R , C , 1 ) = C A R D4 5 0 P R I N T i " 4 6 P ( N ) = P ( T )4 7 0 N E X T C A R D : P R I N T : P R I N T : N E X T S U I T4 8 R E T U R N5 0 0 R E M M O V E C U R S O R

Page 199: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 199/244

Page 200: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 200/244

1 9 Z A P P E R S F O T H C O M M O D O R E 6 9 1 I P E E K ( S P O T ) < > 1 6 0 T H E N R E T U R N9 2 W H I C H < O V E R , 0 ) = R O W : W H I C H ( O V E R , 1 ) = C 0 L9 3 0 V E R = 0 V E R + 19 4 O B O A R D ( R O W , C O L , 0 ) G O T O 9 5 0 , 9 7 0 , 9 9 0 , 1 0 1 09 5 P O K E S P 0 T + 5 4 2 7 2 , 2 : P 0 K E S P O T + 5 4 2 7 3 , 29 6 P O K E S P O T + 1 , 2 1 1 : G O T O 1 0 3 09 7 0 P O K E S P 0 T + 5 4 2 7 2 , 2 : P 0 K E S P O T + 5 4 2 7 3 , 29 8 P O K E S P 0 T + 1 , 2 1 8 : G 0 T 0 1 0 3 09 9 0 P O K E S P O T + 5 4 2 7 2 , 0 : P O K E S P O T + 5 4 2 7 3 , 01 0 0 0 P O K E S P O T + 1 , 1 9 3 : G O T O 1 0 3 01 0 1 0 P O K E S P O T + 5 4 2 7 2 , 0 : P O K E S P O T + 5 4 2 7 3 , 01 0 2 0 P O K E S P O T + 1 , 2 1 61 0 3 0 C A R 0 = B O A R D ( R O W , C 0 L , 1 )1 0 4 0 I C A R D > 1 T H E N 1 0 6 01 0 5 0 P O K E S P 0 T , 1 2 9 : G 0 T 0 1 1 3 01 0 6 0 I C A R D > 9 T H E N 1 0 8 01 0 7 0 P O K E S P 0 T , C A R D + 1 7 6 : G 0 T 0 1 1 3 01 0 8 0 O C A R D - 9 G O T O 1 0 9 0 , 1 1 0 0 , 1 1 1 0 , 1 1 2 01 0 9 0 P O K E S P 0 T , 1 4 8 : G 0 T 0 1 1 3 01 1 0 0 P O K E S P 0 T , 1 3 8 : G 0 T 0 1 1 3 01 1 1 0 P O K E S P 0 T , 1 4 5 : G 0 T 0 1 1 3 01 1 2 0 P O K E S P O T , 1 3 91 1 3 0 O O V E R G O T O 1 1 4 0 , 1 1 5 01 1 4 0 M A T C H = C A R D : R E T U R N1 1 5 0 I C A R D O M A T C H T H E N M A T C H = 01 1 6 0 R E T U R N1 2 0 0 R E T U R N D O W N C A R D S1 2 1 0 P O K E 5 4 2 7 3 , 6 : P 0 K E 5 4 2 7 5 , 81 2 2 0 P O K E 5 4 2 7 7 , 3 4 : P 0 K E 5 4 2 7 8 , 2 4 41 2 3 0 P O K E 5 4 2 9 6 , 1 5 : P O K E 5 4 2 7 6 , 6 51 2 4 0 F O 1 = T 5 0 0 : N E X T1 2 5 0 P O K E 5 4 2 7 6 , 6 41 2 6 0 F O 1 = T 1 0 0 0 : N E X T1 2 7 0 P O K E 5 4 2 9 6 , 01 2 8 0 F O O V E R = 0 T 1 2 9 0 R = W H I C H ( O V E R , O ) : C = W H I C H ( O V E R , 1 )1 3 0 0 S P O T = 1 0 2 4 + ( 2 * R + 1 3 ) * 4 0 + ( 3 * C + 1 )1 3 1 0 P O K E S P 0 T , 1 6 0 : P 0 K E S P O T + 1 , 1 6 01 3 2 0 P O K E S P O T + 5 4 2 7 2 , 0

Page 201: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 201/244

Page 202: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 202/244

2 0 Z A P P E R S F O R T H C O M M O D O R E 6 i u s e d t s e l e c t s p e c i a l i n f o r m a t i o n a b o u t t h e c a r d , l o c a t e da t h e s p e c i f i e d r o a n d c o l u m n . S e t t i n g t h e t h i r d d i m e ns i o n t s e l e c t s t h e c a r d ' s s u i t , n u m b e r e d t h r o u g h 4 S e t t i n g t h e d i m e n s i o n t s e l e c t s t h e c a r d ' s f a c e v a l u e ,n u m b e r e d t h r o u g h 1 3

W H I C H T h i s m a t r i x h a t w d i m e n s i o n s , b o t h n u m b e r e d t h r o u g h1 I h o l d s i n f o r m a t i o n a b o u t t h t w f a c e u p c a r d s . T h f i r s t s u b s c r i p t s p e c i f i e s o n o t h t w c a r d s . T h s e c o n ds u b s c r i p t s p e c i f i e s t h e c a r d ' s r o o c o l u m n l o c a t i o n .

P T T h i s a r r a y o t w e l e m e n t s , n u m b e r e d a n 2 k e e p s t r a c ko t h n u m b e r o m a t c h e s m a d e b e a c h p l a y e r .

O V E R K e e p s c o u n t o f h o m a n y c a r d s a r e c u r r e n t l y f a c e u p o o t h s c r e e n .

C N K e e p s c o u n t o h o m a n y c a r d s a r e c u r r e n t l y o t h e s c r e e n ,w h e t h e r f a c e u p o f a c e d o w n . W h e n c a r d s a r r e m o v e d ,t h i s v a r i a b l e i d e c r e m e n t e d .

P v a l u e o o s p e c i f i e s w h i c h p l a y e r i c u r r e n t l y t a k i n gt u r n .R O S p e c i f i e s a w h i c h r o t h c u r s o r i l o c a t e d .

C O S p e c i f i e s a w h i c h c o l u m n t h c u r s o r i l o c a t e d .D I T h i s v a r i a b l e t e l l s t h s u b r o u t i n e a l i n e 7 0 i w h i c h

d i r e c t i o n t m o v e t h c u r s o r . v a l u e o m e a n s u p m e a n s d o w n , m e a n s t t h l e f t , a n m e a n s t t h r i g h t .

M A T C H A f t e r t w c a r d s h a v e b e e n t u r n e d f a c e u p , t h i s v a r i a b l e i n o n z e r o i t h c a r d s m a t c h .

L I N E S O S P E C I A L I N T E R E S T7 0 T h i n t e n t i o n o t h i s l i n e i t p l a c e t h c u r s o r o t h s c r e e n . T h i s

i a l s o d o n e b t h s u b r o u t i n e a l i n e 7 0 0 . H o w e v e r , t h s u b r o u t i n ei d e s i g n e d s t h a t i m u s t m o v e t h e c u r s o r i s o m e s p e c i f i e dd i r e c t i o n b e f o r e d i s p l a y i n g t h c u r s o r . T h e r e f o r e , t h i s l i n e s e t s t h v a l u e s o R O a n C O t i n d i c a t e t h a t t h c u r s o r i o v e r t h l o w e r r i g h t h a n d c a r d a n s e t s D I t i n d i c a t e m o v e m e n t t t h r i g h t . T h s u b r o u t i n e a l i n e 7 0 w r a p s t h c u r s o r a r o u n d t t h u p p e r l e f t h a n d c o r n e r a n d i s p l a y s i t h e r e .

8 0 - 1 0 0 : W a i t u n t i l c a r d s h a v e b e e n t u r n e d o v e r .1 2 0 : N m a t c h — s w i t c h p l a y e r s .1 5 0 - 2 4 0 : I n d i c a t e t h w i n n e r a n e n t h g a m e .

1 5 0 : E l e v e n s p a c e s e r a s e t h e a r e a i n d i c a t i n g w h o s e t u r n i i s 1 7 0 - 1 8 0 : D e c i d e w h i c h p l a y e r h a t h h i g h e r s c o r e a n h i g h l i g h t

t h a t p l a y e r ' s n u m b e r .

Page 203: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 203/244

C O N C E N T R A T I O N 2 0 2 3 0 : T h f i r s t c h a r a c t e r i t h s e c o n d l i t e r a l c h a n g e s t h c h a r a c t e r

c o l o r t c y a n .

S u b r o u t i n e3 0 0 - 4 8 0 : T h i s s u b r o u t i n e s e t s u t h s c r e e n a n d i s p l a y s t h e f a c e

d o w n c a r d s . I a l s o p l a c e s t h v a l u e s o t h e c a r d s i r a n d o m l o c a t i o n si m a t r i x B O A R D .

3 7 0 - 3 9 0 : P l a c e s v a l u e s i a r r a y r e p r e s e n t i n g t h e f i f t y - t w o l c a t i o n s w h e r e c a r d s m a b p l a c e d . T h v a l u e s p l a c e d i a r t h r e e -d i g i t n u m b e r s w h e r e t h l e f t m o s t d i g i t r e p r e s e n t s r o ( t h r o u g h3 a n t h r e m a i n i n g d i g i t s r e p r e s e n t c o l u m n ( t h r o u g h 1 2 ) .4 0 0 : T h v a r i a b l e r e p r e s e n t s h o m a n y u n s e l e c t e d v a l u e s a r s t i l li P

4 1 0 - 4 7 0 : E a c h t i m e t h r o u g h t h i s l o o p v a l u e i s e l e c t e d f r o ma n t h c a r d i n d i c a t e d b S U I T a n C A R D i p l a c e d i t h l o c a t i o ns p e c i f i e d b t h v a l u e s e l e c t e d f r o m P 4 2 0 : T h v a r i a b l e s e l e c t s l o c a t i o n i a r r a y P T h v a l u e o i d e c r e m e n t e d t i n d i c a t e t h a t s e l e c t i o n h a b e e n m a d e .4 3 0 : T h s e l e c t e d v a l u e i c o n v e r t e d i n t o v a l u e s f o a n C w h i c h s p e c i f y l o c a t i o n i m a t r i x B O A R D .4 4 0 : P l a c e t h c a r d i B O A R D .4 5 0 : D i s p l a y f a c e d o w n c a r d .4 6 0 : R e p l a c e s t h v a l u e j u s t s e l e c t e d f r o m w i t h t h t o p m o s tv a l u e i P T h i s e n s u r e s t h a t t h u n s e l e c t e d v a l u e s a r a l l o c a t e di t h f i r s t e l e m e n t s o P

S u b r o u t i n e5 0 0 - 6 9 0 : W a i t s f o r t h e p l a y e r t p r e s s k e y . I i i C R S R k e y ,

t h c u r s o r i m o v e d . I i i t h F k e y , t h i s s i t u a t i o n i a l s o h a n d l e d .T h i s s u b r o u t i n e r e t u r n s a f t e r v a l i d k e i p r e s s e d a n t h i n f o rm a t i o n p r o c e s s e d .

5 7 0 : T h F k e w a p r e s s e d .5 8 0 - 6 1 0 : D e t e r m i n e i w h i c h d i r e c t i o n t h c u r s o r i t b m o v e d .6 4 0 - 6 6 0 : I t h c u r s o r w a o v e r f a c e u p c a r d , c h a n g e t h c a r d

f r o m r e v e r s e d g r a p h i c s t n o r m a l g r a p h i c s .6 7 0 : T h c u r s o r w a o v e r f a c e d o w n c a r d , s t h i s l i n e m e r e l y

c h a n g e s t h c o l o r o t h r e c t a n g l e t b l a c k .

S u b r o u t i n e7 0 0 - 8 8 0 : M o v e s t h c u r s o r a n d i s p l a y s i t

7 2 0 - 7 5 0 : I t h c u r s o r i o t h t o r o a n i m o v e d u p i w r a p s

Page 204: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 204/244

2 0 Z A P P E R S F O R T H C O M M O D O R E 6 a r o u n d t t h b o t t o m r o w , i t h s a m e c o l u m n . T h r e v e r s e a p p l i e st m o v i n g d o w n f r o m t h b o t t o m r o w .

7 6 0 - 7 7 0 : I t h c u r s o r i i t h l e f t m o s t c o l u m n a n i m o v e d t t h l e f t , n o o n l y d o e s i w r a p a r o u n d t t h r i g h t m o s t c o l u m n b u i i a l s o m o v e d u r o w . C o n t r o l i p a s s e d t o l i n e 7 2 i t h e v e n tt h a t m o v i n g u r o a l s o r e q u i r e s w r a p a r o u n d .

7 8 0 - 7 9 0 : I t h c u r s o r i i t h r i g h t m o s t c o l u m n a n i m o v e d t t h r i g h t , n o t o n l y d o e s i w r a p a r o u n d t t h l e f t m o s t c o l u m n b u i i a l s o m o v e d d o w n r o w . C o n t r o l i t h e n p a s s e d t l i n e 7 4 i t h e v e n t t h a t m o v i n g d o w n r o a l s o r e q u i r e s w r a p a r o u n d .

8 1 0 : T h i s s k i p s o v e r e m p t y l o c a t i o n s .8 3 0 - 8 4 0 : T h n e c u r s o r l o c a t i o n i o v e r f a c e u p c a r d . T h c a r d

i c o n v e r t e d t r e v e r s e d g r a p h i c s .8 6 0 - 8 7 0 : T h n e c u r s o r l o c a t i o n i o v e r f a c e d o w n c a r d . T h

r e c t a n g l e r e p r e s e n t i n g t h e c a r d i c o l o r e d w h i t e .

S u b r o u t i n e9 0 0 - 1 1 6 0 : T h i s s u b r o u t i n e t u r n s c a r d f a c e u p b d i s p l a y i n g i t f a c e

v a l u e a n s u i t s y m b o l . I a l s o c h e c k s f o m a t c h e s .9 1 0 : N o t h i n g i d o n e i t h c a r d i a l r e a d y f a c e u p .9 2 0 - 9 3 0 : P l a c e t h c a r d ' s l o c a t i o n i W H I C H a n i n c r e m e n t O V E R .9 4 0 - 1 0 2 0 : D e t e r m i n e t h c a r d ' s s u i t , c o l o r t h c a r d ' s l o c a t i o n r e

o r b l a c k a s a p p r o p r i a t e , a n d i s p l a y t h e c o r r e c t s u i t s y m b o l i r e v e r s e d g r a p h i c s . T h n u m b e r r e p r e s e n t s h e a r t s , 2 d i a m o n d s ,s p a d e s , a n c l u b s .

1 0 4 0 - 1 0 5 0 : T h c a r d ' s f a c e v a l u e i 1 s d i s p l a y a i r e v e r s e dg r a p h i c s .

1 0 8 0 - 1 1 2 0 : T h c a r d i 1 0 J a c k , Q u e e n , o K i n g , s o d i s p l a yt h e a p p r o p r i a t e l e t t e r i r e v e r s e d g r a p h i c s .

1 1 4 0 : T h i s i t h f i r s t c a r d t b t u r n e d f a c e u p , s i t f a c e v a l u e i s a v e d i M A T C H .

1 1 5 0 : T h i s i t h s e c o n d c a r d t b t u r n e d f a c e u p . I i t f a c e v a l u em a t c h e s t h n u m b e r i M A T C H , t h i s v a l u e i l e f t i M A T C H .O t h e r w i s e , M A T C H i s e t 0

S u b r o u t i n e1 2 0 0 - 1 3 6 0 : T h i s s u b r o u t i n e i c a l l e d w h e n t h t w c a r d s d n o m a t c h . I p l a y s a l o t o n e a n t u r n s t h c a r d s f a c e d o w n a g a i n .

1 2 1 0 - 1 2 7 0 : P l a y t h l o t o n e . T h l o o p i l i n e 1 2 6 0 s e r v e s t h a d d i t i o n a l p u r p o s e o l e a v i n g t h c a r d s f a c e u p l o n g e n o u g h f o t h p l a y e r s t m e m o r i z e t h e m .

Page 205: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 205/244

C O N C E N T R A T I O N 2 0 1 2 9 0 - 1 3 0 0 : C o n v e r t t h r o a n c o l u m n l o c a t i o n a s t o r e d i m

t r i x W H I C H t a a c t u a l s c r e e n l o c a t i o n .1 3 1 0 : R e p l a c e s t h c a r d i m a g e w i t h a r e c t a n g l e .1 3 2 0 - 1 3 3 0 : T h r e c t a n g l e i c o l o r e d b l a c k . S i n c e t h c u r s o r w a

o v e r o n o t h e s e c a r d s , t h c u r s o r m o m e n t a r i l y d i s a p p e a r s b u i r e s t o r e d b l i n e 7 0

1 3 5 0 : O V E R i r e s e t t o t i n d i c a t e t h a t a l c a r d s a r f a c e d o w n .

S u b r o u t i n e1 4 0 0 - 1 4 9 0 : R e m o v e s t h m a t c h i n g c a r d s f r o m t h s c r e e n a n c a l l s

t h r o u t i n e t p l a y t o n e a n u p d a t e t h p o i n t s .1 4 1 0 : T h p l a y e r s c o r i n g t h m a t c h h a a l r e a d y h a d o n e p o i n t a d d e d

t o h i s s c o r e b e f o r e t h i s s u b r o u t i n e i c a l l e d . T h e r e f o r e , t h s u b r o ut i n e a t l i n e 1 6 0 0 d i s p l a y s t h e u p d a t e d s c o r e s .

1 4 2 0 : T h i s l o o p l e t s t h p l a y e r s s e e t h c a r d s b e f o r e t h e y a r r m o v e d .

1 4 7 0 : S i n c e t h l o o p i t e r a t e s t w i c e , t h i s s t a t e m e n t i p e r f o r m e dt w i c e .

S u b r o u t i n e1 5 0 0 - 1 5 8 0 : P r o d u c e s a t o n e t i n d i c a t e a m a t c h . T h i s t o n e i a l s o

u s e d t a n n o u n c e t h w i n n e r o t h g a m e .

S u b r o u t i n e1 6 0 0 - 1 6 4 0 : D i s p l a y s t h n u m b e r o p o i n t s o m a t c h e s c u r r e n t l y h e l d

b e a c h p l a y e r .1 6 1 0 : T h l a s t c h a r a c t e r i t h l i t e r a l s e t s t h c h a r a c t e r c o l o r t

c y a n .1 6 2 0 - 1 6 3 0 : T h b a c k s p a c i n g i d o n e t g u a r a n t e e t h a t b l a n k

s p a c e i p l a c e d b e t w e e n t h n u m b e r a n t h w o r d " M A T C H E S . "

S U G G E S T E D E N H A N C E M E N T S1 T h g a m e c o u l d b m o d i f i e d t a l l o w f o m o r e t h a n t w p l a y e r s .2 G r e a t e r e x c i t e m e n t c o u l d b a d d e d t t h g a m e b i n c l u d i n g t w

d e c k s r a t h e r t h a n o n e .3 T h d i f f i c u l t y l e v e l c o u l d b i n c r e a s e d b r e q u i r i n g t h a t t h c o l o r

v a l u e s m a t c h a w e l l a s t h e f a c e v a l u e s . T h i s m e a n s t h a t a n g i v e nc a r d h a s o n l y o n m a t c h i t h d e c k .

Page 206: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 206/244

C H A P T E R 2 E T C H E R

M a n y o f u s a r c l o s e t a r t i s t s . I i w e r e n ' t f o t h f a c t t h a t w a r s s l o p p y a n w o u l d g e t p a i n t a l o v e r o u c l o t h e s w p r o b a b l yw o u l d b t e m p t e d t o t r y o u h a n d a s o m e a r t w o r k . W i t h t h n e x tp r o g r a m y o c a i n d u l g e y o u r s e l f t y o u r h e a r t ' s c o n t e n t w i t h o u tt h s l i g h t e s t f e a r o a n p a i n t s p o i l i n g y o u r c l o t h e s . T h i s i b c a u s e t h i s p r o g r a m t a k e s a d v a n t a g e o t h C o m m o d o r e 6 4 ' s a b i l i t yt p e r f o r m w h a t i c a l l e d b i t - m a p p e d g r a p h i c s . I b i t - m a p p e dg r a p h i c s y o o b t a i n m u c h f i n e r r e s o l u t i o n o t h s c r e e n t h a n i p o s s i b l e i t h r e g u l a r g r a p h i c s m o d e .

W h e n t h p r o g r a m i r u y o a r a s k e d t e n t e r n u m b e rb e t w e e n a n 1 5 T h i s n u m b e r r e p r e s e n t s t h e b a c k g r o u n d c o l o ro t h s c r e e n o w h i c h t h l i n e s a r d r a w n . Y o a r t h e n a s k e df o a n o t h e r n u m b e r b e t w e e n 0 a n d 1 5 r e p r e s e n t i n g t h c o l o r o t h l i n e s t h e m s e l v e s . T h i s c o l o r m u s t b d i f f e r e n t f r o m t h b a c kg r o u n d c o l o r . I i i n o t , y o a r a s k e d t s t a r t f r o m t h b e g i n n i n gb e n t e r i n g n u m b e r f o t h b a c k g r o u n d c o l o r . O n c e t h c o l o rc o d e s h a v e b e e n v a l i d a t e d , m e s s a g e i p r i n t e d a s k i n g y o t w a i t f e m o m e n t s w h i l e t h s c r e e n i b e i n g s e u p T h s c r e e nt h e n c l e a r s a n y o s e i b e i n g f i l l e d w i t h t h b a c k g r o u n d c o l o r .T h e r e i t h e n a d e l a y o a b o u t f o r t y s e c o n d s . T h i s d e l a y i u a v o i d a b l e , b e c a u s e 8 , 0 0 0 b y t e s o m e m o r y h a v e t b s e t o 0 .W h e n t o n e i e m i t t e d y o m a c o m m e n c e d r a w i n g .2 0

Page 207: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 207/244

E T C H E R 2 0 Y o d r a w o n t h s c r e e n b c o n t r o l l i n g d o t - s i z e d c u r s o r . T h i s

c u r s o r m a b d i f f i c u l t t s e o s m a l l - s c r e e n t e l e v i s i o n s . I t m o v e m e n t s a r e d i r e c t e d b t h t w C R S R k e y s . A y o d r a wl i n e , t h c u r s o r i o t h l e a d i n g e d g e o t h l i n e . I d o e s n ' t l o o kl i k e a n y t h i n g s p e c i a l — j u s t t h l a s t d o o t h l i n e . Y o u m a yn o t i c e t h a t y o u r v e r t i c a l l i n e s a r s o m e w h a t t h i c k a n o f c o l o r .T h i s e f f e c t i u n a v o i d a b l e ; i i d u t t h o p e r a t i o n o t h t e l ev i s i o n t u b e . D o u b l i n g t h v e r t i c a l l i n e s m i g h t n o r m a l i z e t h e i rc o l o r a n t h d i f f e r e n c e i t h i c k n e s s c a b c o m p e n s a t e d f o b d o u b l i n g t h h o r i z o n t a l l i n e s .

Y o u m a y a s o m e p o i n t w i s h t e r a s e l i n e t h a t i a l r e a d yd r a w n . T d t h i s y o u m u s t p r e s s t h e F k e y . T h c u r s o r d i a p p e a r s — o r r a t h e r t h l a s t d r a w n l i n e b e c o m e s t i n y b i s h o r t e ra t h e n d . T h c u r s o r i n o i n v i s i b l e a n a n p o i n t a w h i c h i i p o s i t i o n e d i e r a s e d . T h e r e f o r e , t e r a s e l i n e y o m u s t b a c kt r a c k o v e r i t I t h i s p r o c e s s y o m a l o s e t r a c k o t h c u r s o r —a f t e r a l l , i i i n v i s i b l e . S h o u l d t h i s h a p p e n , y o c a p r e s s t h e F k e y . T h i s m a k e s t h c u r s o r v i s i b l e a g a i n . O n c e i i l o c a t e d , y o c a p r e s s F t m a k e i v a n i s h a n m o v e i i t h r e q u i r e d d r e c t i o n . T h i s p r o c e s s m a h a v e t b r e p e a t e d s e v e r a l t i m e s b e f o r et h c u r s o r i b a c k t t h d e s i r e d p o s i t i o n . O n c e e r a s i n g i f i n i s h e d ,t h F l k e y i a g a i n p r e s s e d a n t h c u r s o r d r a w s l i n e s i n s t e a d o e r a s i n g t h e m . T h i n v i s i b l e c u r s o r m a a l s o b u s e d t d r a wd i s c o n t i n u o u s l i n e s .

T e r a s e e v e r y t h i n g o t h s c r e e n , p r e s s t h F k e y . T h i sp r o c e s s , l i k e t h s e t t i n g - u p s t a g e , t a k e s a b o u t f o r t y s e c o n d s .t o n e i e m i t t e d w h e n t h p r o g r a m i r e a d y t a c c e p t y o u r i n p u ta g a i n . F i n a l l y , t h F k e t e r m i n a t e s t h p r o g r a m .

1 R E E T C H E R2 S = 0 : P R I N T " Q 3 I N P U T " B A C K G R O U N D C O L O R ( 0 - 1 5 ) M ; B4 I B O I N T ( B ) O B < O B > 1 5 T H E N 3 5 I N P U T " L I N E C O L O R ( 0 - 1 5 ) " ; F6 I F O I N T ( F ) O R F < 0 O R F > 1 5 T H E N 5 7 I B O T H E N 1 1 8 P R I N T : P R I N T " D I F F E R E N T C O L O R S , P L E A S E . 1 1

Page 208: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 208/244

Page 209: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 209/244

E T C H E R 2 0 5 0 R E T U R N5 1 I Y = T H E N R E T U R N5 2 Y = Y - 1 : G 0 T 0 6 5 5 3 I Y = 1 9 9 T H E N R E T U R N5 4 Y = Y + 1 : G O T O 6 5 5 5 I X = T H E N R E T U R N5 6 X = X - 1 : G O T O 6 5 5 7 I X = 3 1 9 T H E N R E T U R N5 8 X = X + 1 : G 0 T 0 6 5 5 9 T Y P E = 1 : G 0 T 0 6 5 6 0 T Y P E = 0 : G O T 0 6 5 6 1 G O S U B 3 0 0 : R E T U R N6 2 0 P O K E 5 3 2 7 2 , ( P E E K ( 5 3 2 7 2 ) A N 2 4 1 ) O R6 3 0 P O K E 5 3 2 6 5 , P E E K ( 5 3 2 6 5 ) A N D 2 2 36 4 S = - 1 : R E T U R N6 5 R O W = Y A N 2 4 8 : C 0 L = X A N D 2 4 86 6 L O C = 8 1 9 2 + R O W * 4 0 + C O L + ( Y A N 7 6 7 B I T = 2 ( 7 - ( X A N 7 ) 6 8 I T Y P E T H E N 7 1 06 9 0 P O K E L O C , P E E K ( L O C ) A N ( 2 5 5 - B I T )7 0 R E T U R N7 1 P O K E L O C , P E E K ( L O C ) O B I 7 2 0 R E T U R N

G L O S S A R Y O V A R I A B L E ST h u s e r ' s s e l e c t e d b a c k g r o u n d c o l o r .T h u s e r ' s c h o s e n l i n e c o l o r .

F A 8 - b i t v a l u e i w h i c h t h u p p e r b i t s a r e q u a l t a n t h l o w e r b i t s a r e q u a l t B T h i s v a r i a b l e i s e t - w h e n F i p r e s s e d .R e p r e s e n t s t h r o o c c u p i e d b t h c u r s o r . I b i t - m a p p e dg r a p h i c s t h s c r e e n i d i v i d e d i n t o 2 0 r o w s , s m a h a v e v a l u e f r o m 0 t 1 9 9 .R e p r e s e n t s t h c o l u m n o c c u p i e d b t h c u r s o r . I b i m a p p e d g r a p h i c s t h s c r e e n i d i v i d e d i n t o 3 2 c o l u m n s ,s m a h a v e v a l u e f r o m t 3 1 9 .

T Y P E T h i s v a r i a b l e h a t h v a l u e w h e n t h c u r s o r i i n v i s i b l e( e r a s i n g ) a n t h v a l u e w h e n i i v i s i b l e ( d r a w i n g ) .

Page 210: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 210/244

Page 211: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 211/244

E T C H E R 2 0 6 2 0 - 6 4 0 : T h F k e w a p r e s s e d . B e f o r e r e t u r n i n g , t h e l o c a t i o n

o c h a r a c t e r m e m o r y i r e s t o r e d t n o r m a l a n d b i t - m a p p e d m o d e i t u r n e d o f f .

6 5 0 - 6 7 0 : T h i s i t h s t a n d a r d m e t h o d o c a l c u l a t i n g w h i c h b i i w h i c h m e m o r y l o c a t i o n m u s t b s e o o o f t d r a w o e r a s ed o t . F o f u r t h e r d e t a i l s s e t h P r o g r a m m e r ' s R e f e r e n c e G u i d e .

6 9 0 : T Y P E = 0 s s e t h a p p r o p r i a t e b i t 0 7 1 0 : T Y P E = 1 s s e t h a p p r o p r i a t e b i t 1

S U G G E S T E D E N H A N C E M E N T S1 I n s t e a d o g i v i n g t h p l a y e r t h o p t i o n o f c h o o s i n g t h c o l o r s , h a v e

t h c o m p u t e r s e l e c t t h e m r a n d o m l y , c a r e b e i n g t a k e n t h a t b o t h c o l o r sa r n o t h s a m e .

2 B s t o r i n g d i f f e r e n t v a l u e s i l o c a t i o n s 1 0 2 4 t h r o u g h 2 0 2 3 , d i f f e r e n tb a c k g r o u n d a n d l i n e c o l o r s c a a p p e a r i d i f f e r e n t a r e a s o t h e s c r e e n .

Page 212: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 212/244

C H A P T E R 2 M O S A I C

B e f o r e t h d a y s o t h h a n d - h e l d c a l c u l a t o r s , o n o t h m o s tp o p u l a r o f t h h a n d - h e l d g a m e s w a s t h s m a l l , p a l m - s i z e d m o s a i cb o a r d c o n s i s t i n g o m o v a b l e t i l e s w h i c h h a t b r e o r g a n i z e di n t o p r e s e t o r d e r b m o v i n g t h t i l e s a r o u n d , o n t i l e a t i m e .

T h n e x t p r o g r a m i s i m u l a t i o n o t h i s t i l e g a m e . Y o a r a s k e d t e n t e r y o u r " g o a l " — a n i m a g e o h o t h g r o u p o t i l e si t l o o k w h e n t h p u z z l e i c o m p l e t e d . Y o m u s t e n t e r f i f t e e nc h a r a c t e r s , w h i c h t h p r o g r a m p l a c e s i 4 x f r a m e , s t a r t i n gf r o m t h u p p e r l e f t h a n d c o r n e r . A n o t h e p r i n t a b l e c h a r a c t e r s( e x c e p t t h q u o t a t i o n m a r k ) m a b u s e d . T f o r m p i c t u r e , a n o t h g r a p h i c s c h a r a c t e r s m a b u s e d . H o w e v e r , n o c h a r a c t e r sm a b r e p e a t e d . T h p r o g r a m i n s e r t s s p a c e i p l a c e o t h s i x t e e n t h t i l e . I y o s o c h o o s e , y o m a e n t e r t h e s p a c e y o u r s e l fa a n p o i n t , i w h i c h c a s e y o w i l l h a v e t e n t e r a l s i x t e e nc h a r a c t e r s . A t h e c h a r a c t e r s a r e n t e r e d t h e y a r d i s p l a y e d i r e v e r s e d g r a p h i c s . T h f r a m e i a l s o d r a w n b y t h c o m p u t e ra u t o m a t i c a l l y d u r i n g t h g o a l e n t r y p r o c e s s .

O n c e y o h a v e e n t e r e d a l t h r e q u i r e d s y m b o l s , t h c o m p u t e ra s k s y o t w a i t , a t h i n t e r n a l c o p y o t h p u z z l e i u n d e r g o i n g

s h u f f l e . A f t e r f e m o m e n t s t h p r o g r a m d i s p l a y s t h s h u f f l e dp u z z l e a t h t o o t h e s c r e e n . I i t h i s c o p y w i t h w h i c h y o uh a v e t w o r k . T i l e s a r e m o v e d t h r o u g h t h u s o c u r s o r , w h i c h2 7

Page 213: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 213/244

M O S A I C 2 1 i i n i t i a l l y p l a c e d i t h p u z z l e f r a m e o s o m e c h a r a c t e r a d j a c e n tt t h e s p a c e . W h e n t h c u r s o r i p o s i t i o n e d o t i l e , t h c h a r a c t e ri d i s p l a y e d i n o r m a l ( n o n r e v e r s e d ) g r a p h i c s i w h i t e . T h c u r s o rc a t h e n b m o v e d t a n t i l e u s i n g t h t w c u r s o r k e y s . H o w e v e r ,i m a n o b m o v e d o n t o o a c r o s s t h e e m p t y s p a c e i t h p u z z l e .T o m o v e t i l e i n t o t h s p a c e t h c u r s o r i p o s i t i o n e d o t i l ea d j a c e n t t t h s p a c e a n t h F k e i p r e s s e d . T h c o m p u t e rm o v e s t h t i l e a l o n g w i t h t h c u r s o r i n t o t h l o c a t i o n f o r m e r l yo c c u p i e d b t h e s p a c e . T h l o c a t i o n f r o m w h i c h t h t i l e w a m o v e d n o b e c o m e s t h e s p a c e . I i a l s o p o s s i b l e t m o v e s e v e r a lt i l e s a t i m e . H o w e v e r , a l t h t i l e s m u s t b i t h s a m e r o o t h s a m e c o l u m n a t h e s p a c e . T h c u r s o r i p o s i t i o n e d o t h t i l e f a r t h e s t f r o m t h s p a c e , a m o n g t h t i l e s w h i c h a r t b m o v e d . W h e n t h F k e i p r e s s e d , t h e t i l e o w h i c h t h c u r s o ri p o s i t i o n e d a w e l l a a l t h t i l e s b e t w e e n i a n t h s p a c e ( i t h s a m e r o o c o l u m n ) a r p u s h e d o n p o s i t i o n i t h d i r e c t i o no t h e s p a c e .

T h p r o g r a m c o n s t a n t l y c o m p a r e s t h p u z z l e y o a r w o r k i n go w i t h t h e g o a l , w h i c h i c o n s t a n t l y d i s p l a y e d f o y o u o n t h s c r e e n . W h e n t h p u z z l e e x a c t l y m a t c h e s t h e g o a l , t h c o m p u t e rb e e p s i m m e d i a t e l y a n p r i n t s c o n g r a t u l a t o r y m e s s a g e . Y o a r t h e n a s k e d i y o w i s h t c o n s t r u c t a n o t h e r p u z z l e .

I a s o m e p o i n t d u r i n g t h c o u r s e o t h g a m e y o w e a r y o t h p u z z l e , p r e s s i n g t h F k e t e r m i n a t e s t h r o u n d , a n t h p r o g r a m a s k s i y o c a r e f o a n o t h e r . T h c o m p u t e r d o e s n o s o l v e t h p u z z l e f o y o u , h o w e v e r .

1 R E M O S A I C2 B L K $ = C H R $ ( 3 2 ) : Q U 0 $ = C H R $ ( 3 4 )3 D I T A K E N ( 1 2 6 ) , G R I D $ ( 3 , 3 ) , D I R G $ ( 3 , 3 )4 0 F O R 1 = 0 T 6 3 : T A K E N ( I ) = 0 : N E X T5 P R I N T " Q " : P 0 K E 2 1 4 f 1 1 : P R I N T6 P R I N T T A B ( 1 5 ) ; M E N T E R G O A L : M : G O S U B 3 0 7 P O K E 2 1 4 , 1 1 : P R I N T8 P R I N T T A B ( 1 5 ) ; " P L E A S E W A I T 1 19 0 F O R 1 = T 3 : F 0 R J = T 1 0 D I R G $ ( I , J ) = G R I D $ ( I , J >1 1 N E X T J : N E X T

Page 214: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 214/244

Page 215: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 215/244

M O S A I C 2 1 5 0 0 R E M S C R A M B L E5 1 F O R = T 3 : F 0 R C = 0 T O5 2 I D I R G $ ( R , C ) = B L K $ T H E N 5 4 5 3 N E X T C : N E X T5 4 T M E S = I N T ( R N D ( 0 ) * 5 1 ) + 5 05 5 F O Q = T T M E S5 6 D C = O5 7 N = 3 : I F R = 0 O R R = 3 T H E N N = 5 8 D R = I N T ( R N D ( O ) * N ) - S G N ( R )5 9 I D R O O T H E N 6 4 6 0 I C = O R C = 2 T H E N 6 3 06 1 D C = S G N ( 1 - C )6 2 G O T O 6 4 06 3 D C = I N T ( R N D ( 0 ) * 2 ) * 2 - 16 4 R O W = R + D R : C O L = C + D C6 5 D I R G $ ( R , C ) = D I R G $ ( R O W , C O L )6 6 D I R 6 $ ( R 0 W , C 0 L ) = B L K $6 7 R = R O W : C = C O L6 8 N E X T6 9 0 R E T U R N7 0 R E P R I N T M O S A I C7 1 P R I N T M H n D " ; T A B ( 1 7 ) ; " P U Z Z L E : M7 2 P R I N T : P R I N T T A B ( 1 7 ) ; " Q a7 3 F O R 1 = 0 T 7 4 P R I N T T A B ( 1 7 ) ; " [ ] Q " ;7 5 F O J = 0 T O7 6 I D I R G $ ( I , J ) = B L K $ T H E N 7 9 7 7 P R I N T D I R G $ ( I f J ) ;7 8 G O T O 8 0 07 9 P R I N T " D " 8 0 N E X T8 1 P R I N T " H D "8 2 0 N E X T8 3 P R I N T T A B ( 1 7 ) ; M a n n n n E I "8 4 R E T U R N9 0 0 R E M I N P U T M O V E9 1 0 P R I N T " H " ; D I R G $ ( R , C > ; " D | | " ;9 2 0 G E T A $ : I F A $ = M " T H E N 9 2 0

Page 216: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 216/244

2 7 Z A P P E R S F O R T H C O M M O D O R E 6 9 3 I A $ = " C T T H E N 1 0 0 09 4 I A $ = M a " T H E N 1 0 3 09 5 9 6 9 7 9 8

I I I I

A $ = " l lA $ = " HA $ = " BA $ O " I

I I i ■

T H E NT H E NT H E N

1 T H E N

0 6 1 0 9 0

1 2 9 2

9 9 S = - 1 : R E T U R N1 0 0 0 I R = 0 O R ( R = R 0 W + 1 A N D C = C O L ) T H E N 9 2 01 0 1 0 P R I N T " D " ; D I R G $ ( R , C ) ; " l i n B " ;1 0 2 0 R = R - 1 : 6 0 T 0 9 1 1 0 3 0 I R = O R ( R = R 0 W - 1 A N D C = C O L ) T H E N 9 2 1 0 4 0 P R I N T " D " ; D I R G $ ( R ( C ) ; " I I I i B " ;1 0 5 0 R = R + 1 : G 0 T 0 9 1 1 0 6 0 I C = O ( C = C 0 L + 1 A N R = R O W ) T H E N 9 2 1 0 7 0 P R I N T " O " ; D I R G $ ( R , C ) ; " I I I I B " ;1 0 8 0 C = C - 1 : G 0 T 0 9 1 1 0 9 0 I C = O ( C = C 0 L - 1 A N R = R O W ) T H E N 9 2 1 1 0 0 P R I N T " Q " ; D I R G $ < R , C ) ; " H " ;1 1 1 0 C = C + 1 : G 0 T 0 9 1 1 1 2 0 I R O R O W A N C O C O L T H E N 9 2 1 1 3 0 D R = S G N ( R - R O W ) : D C = S G N ( C - C O L )1 1 4 0 L O C = 1 2 4 2 + R O W * 4 0 + C O L1 1 5 0 P O K E L O C + 5 4 2 7 2 , 1 41 1 6 0 F O I = R 0 W T R - D R S T E P D 1 1 7 0 F O J = C O L T O C - D C S T E P D 1 1 8 0 D I R G $ ( I , J ) = D I R G $ ( I + D R , J + D C >1 1 9 0 P O K E L O C , P E E K ( L O C + D R * 4 0 + D C )1 2 0 0 L O C = L O C + D R * 4 0 + D C1 2 1 0 N E X T1 2 2 0 N E X T1 2 3 0 D I R G $ ( R , C ) = B L K $ : P R I N T B L K $ ;1 2 4 0 I D R = 0 T H E N 1 2 8 01 2 5 0 I D R < 0 T H E N 1 2 7 01 2 6 0 P R I N T " ■ ■ □ " ; : G O T O 1 3 0 01 2 7 0 P R I N T • • ■ D " ; : 6 0 T 0 1 3 0 01 2 8 0 I D C < 0 T H E N 1 3 0 01 2 9 0 P R I N T " I I I I " ;1 3 0 0 R O W = R : C O L = C : R = R - D R : C = C - D C

Page 217: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 217/244

M O S A I C 2 1 1 3 1 0 P R I N T l > H M ; D I R 6 $ ( R f C ) ; l v D H > > ;1 3 2 0 R E T U R N1 4 0 0 R E S U C C E S S1 4 1 0 P R I N T M O n D M ; T A B < 1 5 ) ; M Y O U G O I T ! 1 11 4 2 0 P O K E 5 4 2 7 2 , 3 0 : P O K E 5 4 2 7 3 , 1 3 41 4 3 0 P O K E 5 4 2 8 6 , 1 5 : P 0 K E 5 4 2 8 7 , 6 71 4 4 0 P O K E 5 4 2 7 7 , O : P O K E 5 4 2 7 8 , 2 4 01 4 5 0 P O K E 5 4 2 9 6 , 1 5 : P 0 K E 5 4 2 7 6 , 2 11 4 6 0 F O 1 = T 2 0 0 : N E X T1 4 7 0 P O K E 5 4 2 7 6 , 2 0 : P 0 K E 5 4 2 9 6 , 01 4 8 0 R E T U R N

G L O S S A R Y O V A R I A B L E SB L K $ U s e d t h o l d t h s p a c e c h a r a c t e r .Q U O $ T h i s i u s e d t o s t o r e t h q u o t a t i o n - m a r k c h a r a c t e r .T A K E N A a r r a y o 1 2 e l e m e n t s n u m b e r e d t h r o u g h 1 2 6 . E a c h

e l e m e n t r e p r e s e n t s o n o t h 1 2 p r i n t a b l e c h a r a c t e r s .S e t t i n g a e l e m e n t t m e a n s t h a t t h c o r r e s p o n d i n g c h a ra c t e r h a a l r e a d y b e e n e n t e r e d a p a r t o t h g o a l .

G R I D $ m a t r i x t h a t r e p r e s e n t s t h p l a y e r ' s g o a l p a t t e r n . I t r o w sa n c o l u m n s a r n u m b e r e d t h r o u g h 3

D I R G $ m a t r i x t h a t h o l d s t h s c r a m b l e d c o p y o t h e p u z z l e . T h i si t h m a t r i x o w h i c h t h p l a y e r o p e r a t e s .

R O A f t e r t h s u b r o u t i n e a l i n e 5 0 i e x e c u t e d t h i s v a r i a b l ei n d i c a t e s t h e r o l o c a t i o n o t h s p a c e i t h m a t r i x .

C O T h i s v a r i a b l e i n d i c a t e s t h e c o l u m n l o c a t i o n o t h s p a c ea f t e r t h s u b r o u t i n e a l i n e 5 0 i e x e c u t e d .A f t e r l i n e 1 7 i t h p r o g r a m t h i s v a r i a b l e i n d i c a t e s t h r o l o c a t i o n o t h c u r s o r .A f t e r l i n e 1 7 t h i s v a r i a b l e i n d i c a t e s t h c o l u m n l o c a t i o no t h c u r s o r .

S T h e s u b r o u t i n e a l i n e 9 0 s e t s t h i s v a r i a b l e t - w h e nt h F k e i p r e s s e d .C N I t h s u b r o u t i n e a l i n e 3 0 t h i s v a r i a b l e k e e p s c o u n t o f

h o m a n y c h a r a c t e r s t h e p l a y e r h a e n t e r e d s o f a r .T M E S T h i s v a r i a b l e i u s e d i t h s u b r o u t i n e a l i n e 5 0 t d

t e r m i n e h o m a n y s h u f f l i n g m o v e s s h o u l d b m a d e t s c r a m b l e t h p u z z l e .

Page 218: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 218/244

2 7 Z A P P E R S F O R T H C O M M O D O R E 6

L I N E S O S P E C I A L I N T E R E S T9 0 - 1 1 0 : T h g o a l m a t r i x i c o p i e d i n t o t h w o r k i n g m a t r i x b e f o r e

t h l a t t e r i s c r a m b l e d .1 6 0 - 1 7 0 : T h c u r s o r i p o s i t i o n e d o s o m e t i l e a d j a c e n t t t h e s p a c e .

T h s u b r o u t i n e a l i n e 9 0 ( w h i c h i c a l l e d l a t e r ) p e r f o r m s t h f u n c t i o n o a c t u a l l y d i s p l a y i n g t h e c u r s o r .

1 8 0 - 1 9 0 : M o v e s t h c o m p u t e r ' s P R I N T c u r s o r ( a o p p o s e d t t h p r o g r a m ' s c u r s o r ) t o t h l o c a t i o n i n t h p u z z l e w h e r e t h p r o g r a m ' sc u r s o r i t b d i s p l a y e d .

2 0 0 - 2 3 0 : T h s u b r o u t i n e a l i n e 9 0 r e t u r n s o n l y w h e n f u n c t i o nk e h a b e e n p r e s s e d . I i w a t h F k e y , t h p u z z l e m a t r i x i c o m p a r e d w i t h t h g o a l m a t r i x . I t h e y a r n o i d e n t i c a l , t h s u r o u t i n e i c a l l e d a g a i n .

2 4 0 : T h m a t r i c e s m a t c h s t h p u z z l e w a s o l v e d .

S u b r o u t i n e3 0 0 - 4 9 0 : I n p u t s t h e p l a y e r ' s g o a l w h i l e d r a w i n g t h f r a m e .

3 2 0 : T h g r a p h i c s c h a r a c t e r s u s e d i t h i s l i n e a r C o m m o d o r e k e y -D s h i f t - R , a n C o m m o d o r e k e y - F .

3 3 0 : T h g r a p h i c s c h a r a c t e r u s e d i t h i s l i n e i s h i f t - H . A t h b e g i n n i n g o f e a c h r o w , r e v e r s e d g r a p h i c s m o d e i t u r n e d o n

3 4 0 : r e v e r s e d g r a p h i c s d o ( s h i f t - Q ) i u s e d a c u r s o r t i n d i c a t ew h e r e t h n e x t c h a r a c t e r k e y e d i i d i s p l a y e d .

3 5 0 : N o n p r i n t i n g c h a r a c t e r s w i t h A S C I I v a l u e s b e l o w 3 2 a w e l la t h q u o t a t i o n m a r k , a r i g n o r e d .3 6 0 : T h r e m a i n i n g n o n p r i n t i n g c h a r a c t e r s a r i g n o r e d .

3 7 0 : S i n c e t h e v a r i a b l e i u s e d t o s u b s c r i p t t h a r r a y T A K E N ,i i a d j u s t e d s t h a t i t l o w e s t p o s s i b l e v a l u e i 0 T h s e c o n ds t a t e m e n t i t h i s l i n e i r e q u i r e d b e c a u s e t h g r a p h i c s c h a r a c t e r sa c c e s s i b l e t h r o u g h t h C o m m o d o r e k e a r a c t u a l l y t r a n s l a t e d i n t oA S C I I c o d e s 1 9 3 - 2 2 3 r a t h e r t h a n 1 6 1 - 1 9 1 a t h e y a r c l a s s i f i e di t h P r o g r a m m e r ' s G u i d e . T h e s e s t a t e m e n t s a s s u r e t h a n n e l m e n t s o a r r a y T A K E N a r w a s t e d .

3 8 0 : c h a r a c t e r t h a t h a a l r e a d y b e e n e n t e r e d i i g n o r e d .4 1 0 : T h s p a c e i d i s p l a y e d i n o r m a l g r a p h i c s .4 2 0 : T h v a l u e o C N i u s e d t f o r m t h a p p r o p r i a t e s u b s c r i p t s

t m a t r i x G R I D $ .4 4 0 : H a n d l e s t h s i t u a t i o n i n w h i c h t h c o m p u t e r m u s t e n t e r t h e

s p a c e a s t h e 1 6 t h c h a r a c t e r . N o t i c e t h a t t h s p a c e i r e p r e s e n t e d b e l e m e n t o T A K E N .

Page 219: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 219/244

M O S A I C 2 1 4 7 0 : n e r o i b e g u n . T h g r a p h i c s c h a r a c t e r u s e d i s h i f t - G .4 8 0 : T h f r a m e i f i n i s h e d . T h g r a p h i c s c h a r a c t e r s u s e d a r s h i f t -

G C o m m o d o r e k e y - C , s h i f t - E , a n C o m m o d o r e k e y - V .

S u b r o u t i n e5 0 0 - 6 9 0 : S c r a m b l e s t h e p u z z l e .

5 1 0 - 5 3 0 : S e a n t i n d i c a t e t h l o c a t i o n o t h s p a c e .5 4 0 : B e t w e e n 5 0 a n d 1 0 0 t i l e s a r m o v e d i s c r a m b l e .5 7 0 - 5 8 0 : T h v a l u e o D s p e c i f i e s t h l e f t o r i g h t d i r e c t i o n i

w h i c h t h c o m p u t e r s e a r c h e s f o t i l e . I t c a t a k e o t h v a l u e s- 1 0 o 1 H o w e v e r , t h e s e l i n e s r a n d o m l y s e l e c t d i r e c t i o n f r o m

a m o n g o n l y t h o s e d i r e c t i o n s t h a t a r a c t u a l l y p o s s i b l e . F o e x a m p l e ,i t h s p a c e i i t h t o r o w , D m a t a k e o o n l y t h v a l u e so 1

6 0 0 - 6 3 0 : I D 0 n o n z e r o v a l u e f o D m u s t b c h o s e n . D i n d i c a t e s l e f t o r i g h t d i r e c t i o n . I D w e r e n o n z e r o , D w o u l dh a v e t h v a l u e f r o m l i n e 5 6 0 . H o w e v e r , i t h c a s e w h e r e D i 0 D m u s t b e a s s i g n e d v a l u e o o - 1 a g a i n d e p e n d i n g o w h e r e t h s p a c e i l o c a t e d .6 4 0 : R O a n C O a r s e t i n d i c a t e t h e l o c a t i o n o t h s e l e c t e dt i l e .

6 5 0 : T h s e l e c t e d t i l e i m o v e d i n t o t h l o c a t i o n f o r m e r l y o c c u p i e db t h e s p a c e .

6 6 0 : T h l o c a t i o n f o r m e r l y o c c u p i e d b t h t i l e i n o f i l l e d w i t hb l a n k .

6 7 0 : a n a r a g a i n s e t p o i n t t t h s p a c e . N o t i c e t h a t w h e nt h i s r o u t i n e e n d s , R O a n C O a l s o i n d i c a t e t h l o c a t i o n o t h s p a c e .

S u b r o u t i n e7 0 0 - 8 4 0 : P r i n t s t h s c r a m b l e d p u z z l e a t h t o o t h s c r e e n .

S u b r o u t i n e9 0 0 - 1 3 2 0 : T h i s l e n g t h y r o u t i n e m o v e s t h c u r s o r , a s d i r e c t e d b t h

p l a y e r , a n p e r f o r m s t h o p e r a t i o n s r e q u e s t e d b t h f u n c t i o n k e y s .9 1 0 : D i s p l a y s t h c u r s o r a t h e l o c a t i o n s p e c i f i e d b a n C 9 9 0 : i s e t - w h e n F i p r e s s e d .1 0 0 0 - 1 1 1 0 : M o v e t h c u r s o r . L i n e s 1 0 0 0 , 1 0 3 0 , 1 0 6 0 , a n d 1 0 9 0

p r e v e n t t h c u r s o r f r o m m o v i n g o n t o a s p a c e .1 1 2 0 : T m o v e o n o m o r e t i l e s , t h c u r s o r m u s t b i t h s a m e

r o o t h s a m e c o l u m n a t h s p a c e .

Page 220: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 220/244

2 1 Z A P P E R S F O T H C O M M O D O R E 6 1 1 3 0 - 1 2 2 0 : A l t h t i l e s f r o m t h c u r s o r t t h s p a c e a r m o v e d .

I t h i s p r o c e s s P E E K s a n P O K E s a r e a s i e r t u s t h a n P R I N Ts t a t e m e n t s .

1 2 3 0 : T h l o c a t i o n f o r m e r l y o c c u p i e d b t h c u r s o r i s e t b l a n k .N o t i c e t h a t s i n c e P O K E s a n P E E K s w e r e u s e d i t h l i n e s a b o v e ,t h m a c h i n e ' s P R I N T c u r s o r i s t i l l a t t h i s l o c a t i o n .

1 2 6 0 - 1 3 1 0 : R e p o s i t i o n t h c u r s o r o n t o t h t i l e i c o v e r e d p r e v io u s l y . T h v a l u e s o R , C , R O W , a n C O a r e a l s o a d j u s t e d .

S u b r o u t i n e . 1 4 0 0 - 1 4 8 0 : D i s p l a y s a m e s s a g e a n e m i t s a b e e p i n d i c a t i n g s u c c e s s .

S U G G E S T E D E N H A N C E M E N T S1 I t h e v e n t t h a t t h p l a y e r i o v e r c o m e w i t h f r u s t r a t i o n , t h p r o g r a m

m i g h t b e m o d i f i e d i s u c h w a t h a t w h e n t h F k e i p r e s s e dt h c o m p u t e r a c t u a l l y s o l v e s t h p u z z l e s t e p b s t e p . T h i s m o d i f ic a t i o n w o u l d r e q u i r e c o n s i d e r a b l e a n a l y s i s o t h s t r a t e g y u s e d .

2 T h s h u f f l i n g s u b r o u t i n e m i g h t b i m p r o v e d b e n a b l i n g i t m o v em o r e t h a n o n t i l e a t i m e a n e n s u r i n g t h a t i d o e s n o k e e p m o v i n gt h s a m e t i l e s b a c k a n f o r t h . K e e p i m i n d , h o w e v e r , t h a t t h s h u f f l i n g m u s t s t i l l b e d o n e a h u m a n w o u l d p h y s i c a l l y d i t b e c a u s e m e r e l y p l a c i n g t h t i l e s i r a n d o m l o c a t i o n s m a r e s u l t i a u n s o l v a b l e p u z z l e .

Page 221: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 221/244

C H A P T E R 2 F E E D H A R R Y

O u f r i e n d H a r r y r e t u r n s f o r f i n a l a p p e a r a n c e . T h i s t i m e h i f i g h t i n g f o h i l i f e . H m u s t e a t h o s e d r a t t e d a t - s i g n s ( @ i o r d e r t g a i n e n e r g y . E a c h t i m e h e a t s o n c r u n c h i n g s o u n di e m i t t e d . H o w e v e r , a h i m o v i n g a r o u n d t h p l a y i n g f i e l d ,f o r a g i n g f o f o o d , h l o s e s s o m e e n e r g y . O t h o t h e r h a n d , w h e nh j u s t s t a n d s s t i l l h l o s e s t w i c e a m u c h e n e r g y . I i f o t h e s er e a s o n s t h a t h m u s t c o n s t a n t l y e a a t - s i g n s . F o r t u n a t e l y , t h l e s se n e r g y h h a s , t h e m o r e a t - s i g n s a p p e a r o t h f i e l d . S h o u l d t h a r e a b e c o m e t o c l u t t e r e d w i t h t h e m ( o s h o u l d H a r r y a c c u m u l a t e

l a r g e s u r p l u s o e n e r g y ) , t h e i r p r o d u c t i o n r a t e i a u t o m a t i c a l l yr e d u c e d .

H a r r y i r e p r e s e n t e d b w h i t e b o x . H b e g i n s t h g a m e a t h c e n t e r o t h p l a y i n g f i e l d . T h a n k e y s a r u s e d t c o n t r o l h i u a n d o w n m o v e m e n t s , r e s p e c t i v e l y , w h i l e t h u p / d o w n C R S R k e m o v e s h i t t h l e f t a n t h l e f t / r i g h t C R S Rk e m o v e s h i t t h r i g h t . A o r a n g e b a a t h t o l e f t o t h s c r e e n i n d i c a t e s b i t l e n g t h h o m u c h e n e r g y H a r r y c u r r e n t l yh a s . I s h r i n k s a h l o s e s e n e r g y a n i n c r e a s e s i l e n g t h b f i x e d a m o u n t e v e r y t i m e H a r r y g o b b l e s a a t - s i g n . W h e n t h i sl i n e d i s s o l v e s t n o t h i n g , t h g a m e i o v e r .

N o t e t h a t t h g a m e s t a r t s i m m e d i a t e l y a f t e r t h R U c o m m a n d2 7

Page 222: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 222/244

2 2 Z A P P E R S F O R T H C O M M O D O R E 6 i i s s u e d , a n H a r r y w i l l l o s e a l o h i e n e r g y v e r y q u i c k l y i h d o e s n ' t s t a r t e a t i n g a t - s i g n s r i g h t a w a y . T h e r e f o r e , p r e p a r e t s t a r t m o v i n g H a r r y a s o o n a t h R U c o m m a n d i e n t e r e d .

1 R E M F E E D H A R R Y2 D I M S Y M ( 7 )3 F O R 1 = 0 T 7 : R E A D S Y M ( I ) : N E X T4 D A T A 3 2 , 1 0 1 , 1 1 6 , 1 1 7 , 9 7 , 2 4 6 , 2 3 4 , 2 3 15 P O K E 5 3 2 8 1 , 1 3 : P 0 K E 5 4 2 9 6 , 1 56 P R I N T " □ □ D □ 7 0 F O R 1 = T 4 0 : P R I N T " B " ; : N E X T8 R O W = 1 2 : C O L = 2 09 P O K E 1 5 2 4 , 1 6 0 : P O K E 5 5 7 9 6 , 11 0 F = 0 : P T S = 1 61 1 M O V E = 0 : S = 01 2 F O 1 = T 1 3 I I N T ( R N D ( 0 ) * ( H 2 / 2 + F ) ) = 0 T H E N G O S U B 5 0 1 4 G O S U B 6 0 1 5 I A = 6 4 T H E N M 0 V E = M 0 V E + 11 6 N E X T1 7 D = - 2 : I F M 0 V E < 3 T H E N D = - 11 8 I S > T H E N D = 4 * S1 9 I P T S + D < 0 T H E N D = - P T S2 0 G O S U B 3 0 02 1 I P f l > 0 T H E N 1 1 02 2 0 P O K E 5 4 2 9 6 , 0 : P O K E 5 3 2 8 1 , 62 3 P O K E 1 9 8 , 02 4 P R I N T " Q G A M E O V E R "2 5 E N 3 0 R E M F O O D M A R K E R3 1 H 1 = I N T ( P T S / 8 )3 2 P T S = P T S + D3 3 H 2 = I N T ( P T S / 8 ) : I F H 2 > 4 0 T H E N H 2 = 4 03 4 L = P T S A N D3 5 I H 1 = H 2 T H E N 4 4 3 6 I H 1 > H 2 T H E N 4 1 03 7 F O I = H 1 + 1 T O H 3 8 0 P O K E 1 0 2 3 + 1 , 1 6 0 : P 0 K E 5 5 2 9 5 + 1 , 83 9 0 N E X T

Page 223: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 223/244

F E E D H A R R Y 2 2 4 0 G O T O 4 4 4 1 F O I = H 2 + 1 T O H 1 + 14 2 P O K E 1 0 2 3 + 1 , 3 24 3 0 N E X T4 4 I H 2 = 4 0 T H E N 4 7 04 5 0 P O K E 1 0 2 4 + H 2 , S Y M ( L )4 6 0 P O K E 5 5 2 9 6 + H 2 . 84 7 R E T U R N5 0 R E P L A C E F O O D5 1 F = F + 15 2 S P O T = I N T ( R N D ( 0 ) * 9 2 0 ) + 1 1 0 45 3 I P E E K ( S P O T ) < > 3 2 T H E N 5 1 5 4 P O K E S P O T , 0 : P O K E S P O T + 5 4 2 7 2 1 5 5 R E T U R N6 0 0 R E M M O V E H A R R Y6 1 S P 0 T = 1 0 2 4 + R O W * 4 0 + C 0 L6 2 A = P E E K ( 1 9 7 ) : I F A = 6 4 T H E N R E T U R N6 3 I A = 1 0 T H E N 7 3 6 4 I A = 1 2 T H E N 7 1 6 5 I A = T H E N 6 9 6 6 I A O T H E N R E T U R N6 7 I C 0 L = 3 9 T H E N R E T U R N6 8 C 0 L = C 0 L + 1 : G O T O 7 5 6 9 I C O L = 0 T H E N R E T U R N7 0 C 0 L = C 0 L - 1 : G 0 T 0 7 5 7 1 I R O W = 2 4 T H E N R E T U R N7 2 R O W = R O W + 1 : G O T O 7 5 7 3 I R 0 W = 2 T H E N R E T U R N7 4 R O W = R O W - 17 5 0 P O K E S P O T , 3 27 6 S P O T = 1 0 2 4 + R O W * 4 0 + C O L7 7 I P E E K ( S P O T > = 0 T H E N G O S U B 8 0 7 8 P O K E S P O T , 1 6 0 : P O K E S P O T + 5 4 2 7 2 , 17 9 R E T U R N8 0 0 R E M C R U N C H8 1 S = S + 1 : F = F - 18 2 P O K E 5 4 2 7 3 , 2 2 : P 0 K E 5 4 2 8 0 , 48 3 P O K E 5 4 2 7 7 , 3 4 : P 0 K E 5 4 2 7 8 , 2 4 48 4 0 P O K E 5 4 2 8 4 , 3 4 : P 0 K E 5 4 2 8 5 , 2 4 2

Page 224: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 224/244

Page 225: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 225/244

F E E D H A R R Y 2 2 8 0 - 9 0 : S t a r t H a r r y a t h c e n t e r o t h s c r e e n .1 0 0 : S t a r t s t h g a m e w i t h 1 6 e n e r g y u n i t s .1 1 0 - 1 6 0 : H a r r y g e t s c h a n c e s t m o v e b e f o r e h i e n e r g y s c o r e i

i n c r e m e n t e d o d e c r e m e n t e d . T h c o u n t s o m o v e s n o t t a k e n a n a t - s i g n s n o t e a t e n a r r e s e t t o b e f o r e e a c h s e o c h a n c e s .

1 3 0 : T h d e c i s i o n a t w h e t h e r n e a t - s i g n s h o u l d b a d d e d i b a s e d u p o n t h a m o u n t o e n e r g y u n i t s H a r r y h a ( i n d i r e c t l y r e r e s e n t e d b H 2 a n t h n u m b e r o a t - s i g n s t h a t a r a l r e a d y o t h p l a y i n g f i e l d .

1 5 0 : M O V E i i n c r e m e n t e d i n k e i p r e s s e d .1 7 0 : I H a r r y s t a n d s s t i l l f o 3 o m o r e o t h l a s t c h a n c e s t m o v e ,

h l o s e s e n e r g y u n i t s . O t h e r w i s e , h l o s e s o n l y 1 1 8 0 : I H a r r y a t o m o r e a t - s i g n s d u r i n g t h e p a s t c h a n c e s t m o v e ,

n e n e r g y u n i t s a r d e d u c t e d a n d , o t h c o n t r a r y , h g a i n s e n e r g yu n i t s p e a t - s i g n e a t e n .

1 9 0 : E n s u r e s t h a t P T i n e v e r r e d u c e d b e l o w 0

S u b r o u t i n e3 0 0 - 4 7 0 : I n c r e a s e s o d e c r e a s e s t h l e n g t h o t h o r a n g e b a r .

3 3 0 : I n t h e u n l i k e l y e v e n t t h a t t h o r a n g e b a e x t e n d s t h e n t i r er o w , i i n o e x t e n d e d f u r t h e r .

3 4 0 : i s i e f f e c t , a s s i g n e d t h e i n t e g e r r e m a i n d e r a f t e r P T i d i v i d e d b 8

3 7 0 - 3 9 0 : I n c r e a s e s t h n u m b e r o c o m p l e t e s q u a r e s i t h o r a n g eb a r .

4 1 0 - 4 3 0 : D e c r e a s e s t h n u m b e r o c o m p l e t e s q u a r e s i t h o r a n g eb a r .

4 5 0 - 4 6 0 : P l a c e t h a p p r o p r i a t e g r a p h i c s c h a r a c t e r a t h e n o t h o r a n g e b a t e x t e n d i t t h c o r r e c t l e n g t h .

S u b r o u t i n e5 0 0 - 5 5 0 : P l a c e s a a t - s i g n o t h s c r e e n .

5 1 0 : I n c r e m e n t s t h e a t - s i g n c o u n t .5 2 0 - 5 3 0 : S e l e c t s v a c a n t l o c a t i o n i s c r e e n m e m o r y .

S u b r o u t i n e6 0 0 - 7 9 0 : M o v e s H a r r y i t h i s i r e q u e s t e d b t h p l a y e r .

7 7 0 : I H a r r y m o v e s o n t o a a t - s i g n , p e r f o r m s t h e a p p r o p r i a t e a t i o n s .

Page 226: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 226/244

2 2 Z A P P E R S F O R T H C O M M O D O R E 6

S u b r o u t i n e8 0 0 - 8 9 0 : P r o d u c e s c r u n c h i n g n o i s e w h e n H a r r y e a t s a a t - s i g n .

B o t h t h n o i s e g e n e r a t o r a n t h s q u a r e w a v e g e n e r a t o r a r u s e df o m a x i m u m e f f e c t .

8 1 0 : I n c r e m e n t s t h c o u n t o f e a t e n a t - s i g n s a n d e c r e m e n t s t h c o u n t o a t - s i g n s o t h e s c r e e n .

S U G G E S T E D E N H A N C E M E N T S1 F o t h o s e i n t e r e s t e d i m u s i c , a s o l e m n d i r g e c o u l d b e s o u n d e d w h e n

H a r r y r u n s o u t o e n e r g y .2 T h i s g a m e c o u l d b m a d e m o r e a r c a d e l i k e b s c o r i n g p o i n t s e a c h

t i m e a a t - s i g n i e a t e n .3 A l i e n s c o u l d b i n t r o d u c e d t c o m p e t e w i t h H a r r y f o t h a t - s i g n s .

M a t h f i t t e s t s u r v i v e !

Page 227: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 227/244

C H A P T E R 2 M O R S E C O D E

I y o a r h a r a d i o o p e r a t o r , y o w i l l k n o w t h a t i o r d e r t q u a l i f y f o l i c e n s e y o u m u s t b a b l e t r e c e i v e a n s e n d M o r s ec o d e . F o t h v a r i o u s l e v e l s o l i c e n s e r e q u i r e d , t h e r e a r d i f f e r e n tl e v e l s o p r o f i c i e n c y i M o r s e t h a t a r d e m a n d e d b t h f e d e r a la u t h o r i t i e s . W i t h t h i s p r o g r a m y o u w i l l b a b l e t s h a r p e n y o u rs k i l l s i M o r s e w i t h o u t t h a i o t e a c h e r . A l y o n e e d i y o u rf a i t h f u l C o m m o d o r e 6 4 M o r s e c o d e i a i n t e r n a t i o n a l l y r e o g n i z e d c o m m u n i c a t i o n s c o d e i w h i c h e a c h l e t t e r , n u m b e r , a n p u n c t u a t i o n m a r k i g i v e n a c o d e r e p r e s e n t e d b u n i q u e s e r i e so d o t s a n d a s h e s .

W h e n t h i s p r o g r a m i r u n , m e n u i d i s p l a y e d o f f e r i n g t h eu s e r t w o p t i o n s . T h f i r s t p e r m i t s h i t e n t e r a n m e s s a g e a n dt h c o m p u t e r t r a n s l a t e s i i n t o M o r s e c o d e . T h s e c o n d o p t i o na l l o w s t h u s e r t e n t e r m e s s a g e i M o r s e c o d e a n t h c o m p u t e rd e c o d e s i t I o r d e r t o s e l e c t o n o t h e s e o p t i o n s , t h u s e r m u s tp r e s s t h e n u m b e r c o r r e s p o n d i n g t t h o p t i o n d e s i r e d ( o 2 w i t h o u t p r e s s i n g t h R E T U R N k e y .

F o o p t i o n t h u s e r e n t e r s m e s s a g e w h i c h m a c o n s i s t o l e t t e r s o t h a l p h a b e t , s p a c e s , a n c o m m a s , p e r i o d s , o q u e s t i o nm a r k s . T h c o m p u t e r a l l o w s o n l y o n s p a c e b e t w e e n w o r d s . S i n c e

c o d e d m e s s a g e t a k e s u m u c h r o o m o t h e s c r e e n , n m o r et h a n o n l i n e m a b e n t e r e d f o e n c o d i n g . S h o u l d a m i s t a k e b

2 2

Page 228: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 228/244

2 2 Z A P P E R S F O R T H C O M M O D O R E 6 m a d e w h e n e n t e r i n g m e s s a g e , t h b a c k s p a c e k e ( t h e C R S Rk e y ) m a b u s e d . W h e n t h c o m p u t e r d i s p l a y s t h e n c o d e d f o r mo t h m e s s a g e , i p l a c e s e a c h w o r d o s e p a r a t e l i n e a n i n s e r t sb l a n k s p a c e s b e t w e e n t h c o d e s f o e a c h l e t t e r o t h m e s s a g e .I a d d i t i o n , t h c o m p u t e r a l s o b e e p s t h m e s s a g e i M o r s e , p l a ci n s h o r t p a u s e s b e t w e e n l e t t e r s a n l o n g e r p a u s e s b e t w e e n w o r d s .T h p l a y e r i t h e n a s k e d w h e t h e r h w i s h e s t r u m o r e m e s s a g e s .I s o t h m e n u o o p t i o n s i a g a i n d i s p l a y e d .

T h s e c o n d o p t i o n a l l o w s t h p l a y e r t e n t e r m e s s a g e e n c o d e di M o r s e . T h p e r i o d i u s e d t r e p r e s e n t t h d o a n t h m i n u ss i g n i u s e d f o t h d a s h . W h e n e i t h e r o t h e s e k e y s i p r e s s e d ,t h c o m p u t e r d i s p l a y s t h e c h a r a c t e r o t h s c r e e n a n p r o d u c e st h t o n e c o r r e s p o n d i n g t o e i t h e r a d o t o d a s h , d e p e n d i n g u p o nw h i c h c h a r a c t e r w a t y p e d . T h p l a y e r m u s t i n s e r t o n b l a n ks p a c e b e t w e e n t h c o d e s r e p r e s e n t i n g e a c h l e t t e r . I a d d i t i o n ,e a c h w o r d m u s t b e n t e r e d o s e p a r a t e l i n e , m e a n i n g t h a t t h R E T U R N k e y m u s t a l w a y s b p r e s s e d b e t w e e n w o r d s . W h e n t h l a s t l e t t e r o t h l a s t w o r d o t h m e s s a g e i t y p e d i n t h R E T U R Nk e m u s t b p r e s s e d a e x t r a t i m e . T h c o m p u t e r t h e n d i s p l a y st h d e c o d e d m e s s a g e . I t h u s e r e n t e r s a i n v a l i d c o d e , t h c o m p u t e r d i s p l a y s t h e m e s s a g e " E R R O R A F T E R : " a n f o l l o w st h i s w i t h t h m e s s a g e d e c o d e d u t t h p o i n t w h e r e t h e e r r o ro c c u r r e d . A t h e n o e a c h r o u n d t h o p t i o n i g i v e n t g a r o u n d a g a i n .

1 R E M O R S E C O D E2 R T N $ = C H R $ ( 1 3 ) : B L K $ = C H R $ ( 3 2 )3 D I M 0 $ ( 2 8 )4 0 F O R 1 = 0 T 2 8 : R E A D M 0 $ ( I ) : N E X T5 6 7 8 9 1 0 1 1 1 2

D A T A " . -D A T A " . . - .D A T A " D A T AD A T A " . . .

D A T A " - . .D A T A " — P R I N T "

l l I l l f "

I I I I I I

I I I I f

I I I I

I l l I I 9

I l l I

I I I I"

C A N : H

i *

I ■

I

I

I I I I

I I I

I I

I — I

I I

I I

I

I I

I

I —

I

1 3 P R I N T " 1 E N C O D E Y O U R M E S S A G E "

Page 229: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 229/244

M O R S E C O D E 2 2 1 4 P R I N T " 2 D E C O D E Y O U R M E S S A G E "1 5 P R I N T " D D W H A T S H O U L D W D ( 1 - 2 ) ? " ;1 6 G E A $ : I F A $ = " " T H E N 1 6 1 7 I A $ < " 1 " O A $ > " 2 " T H E N 1 6 1 8 P R I N T A 1 9 O A S C ( A $ ) - 4 8 G O T O 2 0 0 , 3 0 02 0 0 R E M E N C O D E Y O U R M E S S A G E2 1 P R I N T " □ P L E A S E E N T E R M E S S A G E : B 2 2 M = O : G O S U B 9 0 0 : G O S U B 5 0 2 3 P R I N T " D Y O U R E N C O D E D M E S S A G E I S B " - R T N $ - Y 2 4 S $ = Y $ : G O S U B 1 4 0 02 5 P R I N T " D D D M O R E ( O N > » 2 6 0 G E T A $ : I F A $ = " " T H E N 2 6 2 7 I A $ O " Y " A N A $ O " N " T H E N 2 6 2 8 P R I N T A $ : I F A $ = " Y " T H E N 1 2 2 9 0 P O K E 5 4 2 9 6 , 0 : P R I N T " F I N I S H E D " : E N D3 0 R E D E C O D E Y O U R M E S S A G E3 1 P R I N T " Q P L E A S E E N T E R M E S S A G E : ! ! "3 2 M = 1 : G O S U B 9 0 0 : G O S U B 7 0 3 3 I N O E R T H E N 3 6 3 4 P R I N T " Q E R R O R A F T E R : B " ; R T N $ ; Y $3 5 0 G O T O 2 5 3 6 0 P R I N T " U Y O U R D E C O D E D M E S S A G E I S B " ; R T N $ - Y 3 7 G O T O 2 5 5 0 0 R E M E N C O D E X I N T O Y 5 1 Y $ = " "5 2 F O 1 1 = 1 T L E N ( X $ )5 3 A = A S C ( M I D $ ( X $ , I I , D )5 4 I A > 6 4 T H E N Y $ = Y $ + M 0 $ ( A - 6 5 )5 5 I A = 3 2 T H E N Y $ = Y $ + R T N $5 6 I A = 4 4 T H E N Y $ = Y $ + M 0 $ ( 2 6 )5 7 I A = 4 6 T H E N Y $ = Y $ + M 0 $ ( 2 7 )5 8 I A = 6 3 T H E N Y $ = Y $ + M O $ ( 2 8 )5 9 N E X T I 6 0 R E T U R N7 0 0 R E M D E C O D E X I N T O Y 7 1 Y $ = " " : S V $ = " " : E R R = O7 2 F O 1 1 = 1 T L E N ( X $ )

Page 230: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 230/244

2 2 Z A P P E R S F O T H C O M M O D O R E 6 7 3 A $ = M I D $ ( X $ , I I , 1 >7 4 I A $ = R T N $ O A $ = B L K $ T H E N 7 7 07 5 S V $ = S V $ + A $7 6 0 G O T O 8 8 7 7 S V $ = S V $ + B L K $7 8 F O J J = O T O 2 87 9 I S V $ = M O $ ( J J ) T H E N 8 2 08 0 N E X T J 8 1 E R R = - 1 : G 0 T 0 8 9 8 2 I J J < 2 6 T H E N Y $ = Y $ + C H R $ ( J J + 6 5 )8 3 I J J = 2 6 T H E N Y $ = Y $ + M , "8 4 I J J = 2 7 T H E N Y $ = Y $ + M . "8 5 I F J J = ? 2 8 T H E N Y $ = Y $ + " ? M8 6 S V $ = " M8 7 I A $ = R T N $ T H E N Y $ = Y $ + B L K $8 8 N E X T I 8 9 R E T U R N9 0 R E I N P U T X 9 1 X $ = " " : P = 19 2 P R I N T " B l l " ;9 3 0 G E T A 9 4 I A $ = " " T H E N 9 2 09 5 P R I N T ■ ■ " ;9 6 I M = T H E N 1 0 5 09 7 I A $ = " . M O A $ = " - M T H E N 1 1 4 09 8 I A $ O B L K $ O P = T H E N 1 0 0 09 9 I R I G H T $ ( X $ , 1 > O B L K $ T H E N 1 1 4 01 0 0 0 I A $ = " | | " T H E N 1 0 7 01 0 1 0 I A $ O R T N $ T H E N 9 2 01 0 2 0 I P = T H E N 1 2 5 01 0 3 0 I R I G H T $ ( X $ f 1 ) = B L K $ T H E N

X $ = L E F T $ ( X $ , L E N ( X $ ) - 1 )1 0 4 0 P = 0 : G O T O 1 1 4 01 0 5 0 I A $ = R T N $ T H E N 1 1 4 01 0 6 0 I A $ O M | | " T H E N 1 1 0 01 0 7 0 X $ = L E F T $ ( X $ , L E N ( X $ ) - 1 ) : P = P - 11 0 8 0 I P = T H E N P = 4 01 0 9 0 P R I N T A $ ; : G O T O 9 2 1 1 0 0 I A $ O B L K $ O P = T H E N 1 1 2 0

Page 231: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 231/244

M O R S E C O D E 2 2 1 1 1 0 I R I G H T $ ( X $ , 1 > O B L K $ T H E N 1 1 4 01 1 2 0 I A $ = " , " O A $ = " . " O A $ = " ? " T H E N 1 1 4 01 1 3 0 I A $ < " A " O A $ > " Z " T H E N 9 2 1 1 4 0 P R I N T A $ 1 1 5 0 I M = T H E N 1 1 8 01 1 6 0 I A $ = B L K $ O A $ = R T N $ T H E N 1 1 9 01 1 7 0 S $ = A $ : G O S U B 1 4 0 01 1 8 0 I A $ = R T N $ T H E N 1 2 5 01 1 9 0 X $ = X $ + A $1 2 0 0 P = P + 11 2 1 0 I P < 4 1 T H E N 9 2 1 2 2 0 I M = T H E N 1 2 5 01 2 3 0 P = 1 2 4 0 G O T O 9 2 1 2 5 0 R E T U R N1 3 0 0 R E M S I G N A L S O U N D1 3 1 0 P O K E 5 4 2 7 2 , 1 2 01 3 2 0 P O K E 5 4 2 7 3 , 4 01 3 3 0 P O K E 5 4 2 7 5 , 81 3 4 0 P O K E 5 4 2 7 7 , 3 41 3 5 0 P O K E 5 4 2 7 8 , 3 41 3 6 0 P O K E 5 4 2 9 6 , 1 51 3 7 0 P O K E 5 4 2 7 6 , 6 51 3 8 0 R E T U R N1 4 0 0 R E P R O D U C E M E S S A G E1 4 1 0 F O 1 = T L E N ( S $ )1 4 2 0 W $ = M I D $ ( S $ , I , 1 )1 4 3 0 I W $ = B L K $ T H E N 1 5 1 01 4 4 0 I W $ = R T N $ T H E N 1 5 2 01 4 5 0 D E L A Y = 4 0 : I F W $ = " - " T H E N D E L A Y = 1 0 01 4 6 0 G O S U B 1 3 0 01 4 7 0 F O J = T D E L A Y : N E X T1 4 8 0 P O K E 5 4 2 7 6 , 6 41 4 9 0 F O J = T 1 2 0 - D E L A Y : N E X T1 5 0 0 G O T O 1 5 3 01 5 1 0 F O J = T 1 2 0 : N E X T J : G O T O 1 5 3 01 5 2 0 F O J = T 3 6 0 : N E X T1 5 3 0 N E X T1 5 4 0 R E T U R N

Page 232: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 232/244

2 3 Z A P P E R S F O R T H C O M M O D O R E 6

G L O S S A R Y O F V A R I A B L E SR T N $ C o n t a i n s t h R E T U R N c h a r a c t e r .B L K $ C o n t a i n s t h b l a n k c h a r a c t e r .M O A a r r a y o t w e n t y - n i n e s t r i n g s n u m b e r e d t h r o u g h 2 8

I h o l d s t h M o r s e f o a l t h l e t t e r s a n p u n c t u a t i o n m a r k s .I n d i c a t e s w h a t s o r t o m e s s a g e t h s u b r o u t i n e a l i n e 9 0 i i n p u t t i n g . v a l u e o i n d i c a t e s a o r d i n a r y m e s s a g ew h i l e a v a l u e o s p e c i f i e s c o d e d m e s s a g e .X C o n t a i n s t h m e s s a g e i n p u t t e d b t h u s e r . I i r e t u r n e db t h s u b r o u t i n e a l i n e 9 0 a n i u s e d b t h s u b r o u t i n e sa l i n e s 5 0 a n 7 0 0 .

Y C o n t a i n s e i t h e r t h e n c o d e d v e r s i o n o X a r e t u r n e d b t h s u b r o u t i n e a l i n e 5 0 o t h d e c o d e d v e r s i o n o X a r e t u r n e d b t h s u b r o u t i n e a t l i n e 7 0 0 .

S U s e d t p a s s M o r s e m e s s a g e o j u s t d o o d a s h t t h s u b r o u t i n e a l i n e 1 4 0 0 .

E R T h v a l u e o t h i s v a r i a b l e i s e t i n t h s u b r o u t i n e a l i n e7 0 0 . I i h a v a l u e " t r u e " ( o - 1 ) , i i n d i c a t e s t h a t t h e r ew a a e r r o r i t h M o r s e m e s s a g e e n t e r e d b t h u s e r .

S V U s e d b t h s u b r o u t i n e a l i n e 7 0 t h o l d t h c o d e f o s i n g l e c h a r a c t e r .T h i s v a r i a b l e , u s e d b t h s u b r o u t i n e a l i n e 9 0 0 , k e e p st r a c k o w h i c h c o l u m n o t h s c r e e n ( n u m b e r e d 1 - 4 0 , f o a c h a n g e ) t h c u r s o r i l o c a t e d a t i s e t r i g h t a f t e rt h R E T U R N k e i p r e s s e d .

L I N E S O S P E C I A L I N T E R E S T5 0 - 1 1 0 : N o t i c e t h a t e a c h c o d e i f o l l o w e d b b l a n k s p a c e . T h i s i

d o n e t s i m p l i f y t h e c o m p a r i s o n s t h a t a r m a d e l a t e r i t h p r o g r a m .

S u b r o u t i n e5 0 0 - 6 0 0 : C o n v e r t s a n o r m a l m e s s a g e i n t o M o r s e . N e r r o r c h e c k i n g

i n e c e s s a r y i t h i s r o u t i n e b e c a u s e t h s u b r o u t i n e a l i n e 9 0 m a d es u r e t h a t t h c o n t e n t o X i v a l i d .

5 4 0 - 5 8 0 : C o n c a t e n a t e t h e a p p r o p r i a t e c h a r a c t e r c o d e t Y $ 5 5 0 : T h i s p l a c e s e a c h w o r d o s e p a r a t e l i n e . I i n o n e c e s s a r y

Page 233: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 233/244

M O R S E C O D E 2 3 t i n s e r t b l a n k s b e t w e e n t h c o d e s f o e a c h l e t t e r , b e c a u s e , a y o w i l l r e c a l l , t h s t r i n g s i n M O a l r e a d y c o n t a i n t h e s e b l a n k s .

S u b r o u t i n e7 0 0 - 8 9 0 : C o n v e r t s t h c o d e d m e s s a g e i n t o s t a n d a r d f o r m .

7 5 0 : A d d s t h e c u r r e n t d o t o r d a s h t S V $ .7 7 0 : A d d s t h b l a n k i n d i c a t i n g t h e n o f c h a r a c t e r .7 8 0 - 8 1 0 : S e a r c h M O f o t h e c h a r a c t e r c o d e . I i i n o t h e r e

E R i s e t - 1 8 2 0 - 8 5 0 : C o n c a t e n a t e t h a p p r o p r i a t e c h a r a c t e r t Y $ 8 7 0 : A R E T U R N i n d i c a t e s t h e n o w o r d , a n t h i s i i n d i c a t e d

i Y b b l a n k .

S u b r o u t i n e9 0 0 - 1 2 5 0 : I n p u t s t h u s e r ' s m e s s a g e i n t o X $

9 5 0 : M a k e s t h c u r s o r d i s a p p e a r .9 7 0 - 1 0 4 0 : I n p u t M o r s e m e s s a g e .

9 8 0 : b l a n k m a n o b e n t e r e d a t h f i r s t c h a r a c t e r o l i n e .9 9 0 : b l a n k m a n o b e n t e r e d r i g h t a f t e r a n o t h e r b l a n k . N o t i c et h a t i t h I t e s t f a i l s , l i n e 1 0 1 0 e n s u r e s t h a t t h b l a n k i i g n o r e d .1 0 2 0 : R E T U R N a t h b e g i n n i n g o f l i n e i n d i c a t e s t h e e n o

m e s s a g e .1 0 3 0 : R e m o v e s b l a n k t h a t w a e n t e r e d a t h e n o l i n e .

1 0 5 0 - 1 1 3 0 : I n p u t n o r m a l m e s s a g e .1 0 7 0 - 1 0 9 0 : H a n d l e s b a c k s p a c i n g f o b o t h n o r m a l a n d M o r s em e s s a g e s . N o t i c e t h a t l i n e 1 0 8 0 t e s t s f o w r a p a r o u n d .1 1 0 0 : b l a n k m a n o b t h f i r s t c h a r a c t e r o l i n e .1 1 1 0 : b l a n k m a n o b e n t e r e d r i g h t a f t e r a n o t h e r b l a n k . L i n e1 1 3 0 e n s u r e s t h a t t h s e c o n d b l a n k i i g n o r e d .

1 1 4 0 : P r i n t s t h e n t e r e d c h a r a c t e r f o b o t h a n o r m a l a n d M o r s em e s s a g e .

1 1 6 0 - 1 1 7 0 : I i i M o r s e m e s s a g e a n t h e c u r r e n t c h a r a c t e r i d o o r a d a s h , p r o d u c e t h a p p r o p r i a t e t o n e .

1 1 8 0 : F o n o r m a l m e s s a g e , i t h c u r r e n t c h a r a c t e r i R E T U R N ,t h e n t h m e s s a g e i o v e r .

1 2 1 0 - 1 2 2 0 : W h e n n o r m a l m e s s a g e r e a c h e s f o r t y c h a r a c t e r s i l e n g t h ( P e q u a l s 4 1 ) , t h p r o g r a m a c c e p t s n m o r e i n p u t a n i m e d i a t e l y b e g i n s p r o c e s s i n g t h m e s s a g e .

1 2 3 0 : F o M o r s e m e s s a g e t h e v a r i a b l e i s e t r e c o g n i z e t h w r a p a r o u n d .

Page 234: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 234/244

2 3 Z A P P E R S F O R T H C O M M O D O R E 6 S u b r o u t i n e1 3 0 0 - 1 3 8 0 : I n i t i a t e s a t o n e f o u s b t h s u b r o u t i n e a l i n e 1 4 0 0 .

S u b r o u t i n e c 1 4 0 0 - 1 5 4 0 : S o u n d s o u t h M o r s e m e s s a g e c o n t a i n e d i S $ R e c a l l

f r o m l i n e 1 1 7 0 t h a t S m a a l s o c o n t a i n s i n g l e d o o d a s h .1 4 5 0 : A s s i g n s a v a l u e t t h v a r i a b l e D E L A Y a c c o r d i n g t w h e t h e r

t h e c u r r e n t c h a r a c t e r i d o o d a s h .1 4 7 0 : S p e c i f i e s t h e d u r a t i o n o t h e t o n e .1 4 9 0 : S p e c i f i e s t h e d u r a t i o n o t h s i l e n c e b e t w e e n t o n e s .1 5 1 0 : s h o r t s i l e n c e b e t w e e n l e t t e r s .1 5 2 0 : l o n g e r s i l e n c e b e t w e e n w o r d s .

S U G G E S T E D E N H A N C E M E N T S1 Y o m a w i s h t a d m o r e o p t i o n s t t h o p t i o n s m e n u . F o e x a m p l e ,

t h p r o g r a m c o u l d b m o d i f i e d t e i t h e r d i s p l a y M o r s e m e s s a g ea n a s y o t d e c o d e i o d i s p l a y n o r m a l m e s s a g e t h a t y o u m u s te n c o d e .

2 W d i n o t a l l o w f o t h f u l l M o r s e c o d e , j u s t r e a s o n a b l e p a r t o i t i o r d e r t k e e p t h p r o g r a m w i t h i n m a n a g e a b l e l i m i t s . Y o u m a yf e e l t h a t y o w a n t t h w h o l e r a n g e t b i n c l u d e d . T h i s w o u l d n ' tw a r r a n t a m a j o r m o d i f i c a t i o n .

3 W h e n t h c o m p u t e r e n c o d e s y o u r m e s s a g e u n d e r o p t i o n 2 i m i g h tb d e s i r a b l e t h a v e t h p r o g r a m r e p e a t t h s o u n d i n g o u o t h m e s s a g e i y o p r e s s o n o t h f u n c t i o n k e y s .

Page 235: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 235/244

C H A P T E R 3 P I T H S K

S f i n a l l y w c o m e t t h e n o t h i s b o o k . W h a v e d e c i d e d t c o n c l u d e i o f r i v o l o u s n o t e . Y o a r n d o u b t a w a r e t h a t t h f i r s t T v i d e o g a m e s w e r e s i m p l e t e n n i s o P i n g P o n g - s t y l eg a m e s . T h i s l a s t p r o g r a m o o u r s i a l s o s u c h g a m e ; w i t h i t w h a v e s u c c e e d e d i t u r n i n g t h c l o c k b a c k . H o w e v e r , i n s t e a do k n o c k i n g a r o u n d s i m p l e b a l l , w h a v e c h o s e n t u s t h C o m m o d o r e 6 4 ' s p s y m b o l . S i n c e i o u v e r s i o n o t h g a m es e r i e s o p i ' s f a l l s d o w n f r o m t h s k y , w h a v e n a m e d t h g a m e" P i t h S k y . "

T h p l a y e r c o n t r o l s w h i t e p a d d l e t h a t i l o c a t e d a t h b o t t o mo t h s c r e e n . P r e s s i n g t h u p / d o w n C R S R k e m o v e s t h p a d d l el e f t , w h i l e t h l e f t / r i g h t C R S R k e m o v e s i t t h r i g h t . T h p i d r o p p e d f r o m r a n d o m c o l u m n a t h t o o t h s c r e e n a n b o u n c e s o f f t h e t o a n s i d e s o t h s c r e e n w h e n i h i t s t h e m .T h p a d d l e m u s t b p o s i t i o n e d s t h a t i k e e p s t h p f r o m r e a c h i n gt h b o t t o m o t h s c r e e n , w h i c h i o t h e r w i s e f a l l s t h r o u g h . I t h p i s u c c e s s f u l l y i n t e r c e p t e d b t h p a d d l e , t h p a d d l e t u r n s r e m o m e n t a r i l y , b e e p i e m i t t e d , t h p l a y e r i a w a r d e d p o i n t ,a n t h p b o u n c e s o f f t h e p a d d l e . O t h e o t h e r h a n d , i t h p l a y e rm i s s e s , t h p v a n i s h e s t h r o u g h t h b o t t o m o t h s c r e e n a n r a s p b e r r y i s o u n d e d . A n o t h e r p i t h e n d r o p p e d f r o m a b o v e .T h p l a y e r h a s a s u p p l y o o n l y t h r e e p i ' s f r o m t h s k y , a n o n c e

2 3

Page 236: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 236/244

2 3 Z A P P E R S F O T H C O M M O D O R E 6 t h t h i r d i l o s t , t h g a m e e n d s . T h n u m b e r o p o i n t s s c o r e d b t h p l a y e r , a w e l l a t h n u m b e r o p i ' s h h a l e f t ( i n c l u d i n gt h c u r r e n t o n e ) , a r c o n s t a n t l y d i s p l a y e d a t h t o o t h s c r e e n .T m a k e t h g a m e s l i g h t l y m o r e d i f f i c u l t , t h p s o m e t i m e ss t o p s m o m e n t a r i l y ( i a a t t e m p t t f o o l y o u ) a n t h e n c o n t i n u e sa l o n g i t m e r r y p a t h .

1 R E P I I N T H S K 2 N U M = 3 : H I T S = 0 : P O K E 5 4 2 9 6 , 1 53 P R I N T " Q " : P 0 K E 5 3 2 8 1 , 1 54 0 F O R 1 = 2 0 0 2 T 2 0 0 55 P O K E I , 2 3 9 : P 0 K E 1 + 5 4 2 7 2 , 16 N E X T7 P A D D = 2 0 0 28 C O L = I N T ( R N D ( 0 ) * 4 0 )9 D R = 1 : D C = I N T ( R N D ( 0 ) * 2 ) * 2 - 11 0 I C O L = 0 T H E N D C = 11 1 I C 0 L = 3 9 T H E N D C = - 11 2 P I = 1 0 2 4 + C 0 L1 3 0 P O K E P I , 9 4 : P 0 K E P I + 5 4 2 7 2 , 01 4 S = 1 5 P R I N T " H P O I N T S : " ; H I T S ;1 6 P R I N T T A B ( 1 8 ) ; " P I E C E S O P L E F T : " ; N U M1 7 I I N T ( R N D ( 0 ) * 4 ) T H E N G O S U B 3 0 01 8 I S < T H E N 2 3 1 9 P R I N T " H P O I N T S : " ; H I T S ;2 0 P R I N T T A B ( 1 8 ) ; " P I E C E S O P L E F T : " ; N U M2 1 G O S U B 5 0 2 2 G O T O 1 5 2 3 G O S U B 9 0 2 4 N U M = N U M - 1 : I F N U M > 0 T H E N 8 2 5 P R I N T " Q P O I N T S : " ; H I T S ;2 6 P R I N T T A B ( 1 8 ) ; M P I E C E S O P L E F T : 0 2 7 P R I N T : P R I N T T A B ( 1 5 ) ; " G A M E O V E R "2 8 0 P O K E 5 3 2 8 1 , 6 : P 0 K E 1 9 8 , 02 9 E N 3 0 R E M O V E P 3 1 I D R = 1 A N P I > = P A D D - 4 0 A N P K = P A D D - 3 7

T H E N 3 9 0

Page 237: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 237/244

P I T H S K 2 3 3 2 N X T = P I + D R * 4 0 + D C3 3 I N X T > = 1 0 2 4 T H E N 3 5 03 4 D R = 1 : G 0 T 0 4 0 3 5 I N X T = P A D D O N X T = P A D D + 3 T H E N 3 8 03 6 I N X T < 2 0 2 4 T H E N 4 0 3 7 S = - 1 : P 0 K E P I , 3 2 : R E T U R N3 8 0 D C = - D C3 9 D R = - 1 : G 0 S U B 7 0 4 0 I C O L + D C > = 0 A N C 0 L + D C < = 3 9 T H E N 4 2 4 1 D C = - D C4 2 P O K E P I , 3 24 3 C O L = C O L + D C : P I = P I + D R * 4 0 + D C4 4 P O K E P I + 5 4 2 7 2 , 0 : P O K E P I , 9 44 5 R E T U R N5 0 R E M O V E P A D D L E5 1 F O 1 = T 5 2 A = P E E K ( 1 9 7 ) : I F A = O A = T H E N 5 5 5 3 N E X T5 4 R E T U R N5 5 I A = T H E N 6 3 5 6 I P A D D = 1 9 8 4 T H E N R E T U R N5 7 I P I = P A D D - 1 T H E N 6 2 5 8 P A D D = P A D D - 15 9 0 P O K E P A D D + 5 4 2 7 2 , 1 : P 0 K E P A D D . 2 3 96 0 0 P O K E P A D D + 4 , 3 26 1 R E T U R N6 2 D R = - 1 : D C = - 1 : G 0 S U B 7 0 0 : R E T U R N6 3 I P A D D = 2 0 2 0 T H E N R E T U R N6 4 I P I = P A D D + 4 T H E N 6 9 6 5 P A D D = P A D D + 16 6 P O K E P A D D + 5 4 2 7 5 , 1 : P 0 K E P A D D + 3 , 2 3 96 7 0 P O K E P A D D - 1 , 3 26 8 0 R E T U R N6 9 D R = - 1 : D C = 1 : G 0 S U B 7 0 0 : R E T U R N7 0 0 R E M H I 7 1 H I T S = H I T S + 17 2 F O I = P A D D + 5 4 2 7 2 T P A D D + 5 4 2 7 57 3 P O K E 1 , 7 4 N E X T

Page 238: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 238/244

2 3 Z A P P E R S F O T H C O M M O D O R E 6 7 5 0 P O K E 5 4 2 7 2 , 1 9 5 : P 0 K E 5 4 2 7 3 , 1 67 6 0 P O K E 5 4 2 7 5 , 47 7 P O K E 5 4 2 7 7 , 0 : P O K E 5 4 2 7 8 , 2 4 07 8 P O K E 5 4 2 7 6 , 6 57 9 F O 1 = T 5 0 : N E X T8 0 F O I = P A D D + 5 4 2 7 2 T P A D D + 5 4 2 7 58 1 0 P O K E 1 , 8 2 N E X T8 3 0 P O K E 5 4 2 7 6 , 6 48 4 R E T U R N9 0 R E M I S S9 1 P O K E 5 4 2 7 2 , 4 8 : P 0 K E 5 4 2 7 3 , 49 2 0 P O K E 5 4 2 7 5 , 19 3 P O K E 5 4 2 7 7 , 6 8 : P 0 K E 5 4 2 7 8 , 2 4 49 4 0 P O K E 5 4 2 7 6 , 6 59 5 F O 1 = T 5 0 0 : N E X T9 6 0 P O K E 5 4 2 7 6 , 6 49 7 R E T U R N

G L O S S A R Y O V A R I A B L E SN U S p e c i f i e s t h n u m b e r o p i ' s t h p l a y e r h a l e f t .H I T S T h n u m b e r o p o i n t s o h i t s t h p l a y e r h a r e c o r d e d .P A D D S p e c i f i e s t h e l o c a t i o n i s c r e e n m e m o r y a w h i c h t h l e f t

s i d e o t h p a d d l e i l o c a t e d .C O T h i s v a r i a b l e i n d i c a t e s t h c o l u m n f r o m w h i c h t h p i d r o p p e d .D T h u o d o w n d i r e c t i o n i n w h i c h t h p i c u r r e n t l yt r a v e l i n g . I a l w a y s h a t h v a l u e o - 1

D S p e c i f i e s t h l e f t o r i g h t d i r e c t i o n i n w h i c h t h p i t r a ve l i n g . T h i s v a r i a b l e , l i k e D R a l w a y s h a t h v a l u e o - 1 t h e r e f o r e , t h e p i i a l w a y s t r a v e l i n g i n a d i a g o n a l

d i r e c t i o n .P I n d i c a t e s t h e s c r e e n m e m o r y l o c a t i o n a w h i c h t h p i

c u r r e n t l y s i t u a t e d .S e t - w h e n p i l o s t .N X T h i s v a r i a b l e i u s e d i t h s u b r o u t i n e a l i n e 3 0 t s p e c i f yt h n e x t l o c a t i o n i s c r e e n m e m o r y t h a t t h p e n t e r s i i c o n t i n u e s i i t c u r r e n t d i r e c t i o n .

Page 239: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 239/244

P I T H S K 2 3

L I N E S O S P E C I A L I N T E R E S T4 0 - 7 0 : D r a w t h p a d d l e a t h c e n t e r o t h b o t t o m l i n e o t h e s c r e e n .1 0 0 - 1 1 0 : A d j u s t t h p i ' s d i r e c t i o n i i i s t a r t i n g f r o m c o r n e r .1 3 0 : P l a c e s t h p o t h s c r e e n .1 7 0 : T h i s l i n e e n s u r e s t h a t t h p p a u s e s a b o u t o n o u o f o u r t i m e s .1 9 0 - 2 0 0 : N o t i c e t h a t p o i n t s c a n b e s c o r e d b o t h i t h s u b r o u t i n e i

l i n e 3 0 a n i t h s u b r o u t i n e a l i n e 5 0 0 .2 5 0 - 2 6 0 : D i s p l a y t h f i n a l s c o r e .

S u b r o u t i n e3 0 0 - 4 5 0 : M o v e s t h p o n s t e p .

3 1 0 : D e t e c t s c o l l i s i o n o t h p w i t h t h p a d d l e .3 3 0 - 3 4 0 : I t h p h i t s t h t o o t h s c r e e n , i t v e r t i c a l d i r e c t i o n

i c h a n g e d f r o m u p w a r d t d o w n w a r d .3 5 0 : T h i s l i n e d e t e c t s c a s e n o t c a u g h t b l i n e 3 1 0 : t h p h i t s

c o r n e r o t h p a d d l e .3 6 0 - 3 7 0 : I t h p h i t s t h b o t t o m o t h e s c r e e n , t h p l a y e r l o s e s

i t 3 8 0 : T h p h a h i t h c o r n e r o t h p a d d l e , s i t h o r i z o n t a l d

r e c t i o n i s w i t c h e d ( a w e l l a i t v e r t i c a l d i r e c t i o n i t h f o l l o w i n gl i n e ) .

3 9 0 : T h p h a h i t h p a d d l e , s o i t v e r t i c a l d i r e c t i o n i c h a n g e df r o m d o w n w a r d t u p w a r d , a n d t h s u b r o u t i n e a l i n e 7 0 i c a l l e dt p e r f o r m a l t h n e c e s s a r y c e r e m o n y c o n n e c t e d w i t h t h e v e n t .

4 0 0 - 4 1 0 : I t h p h i t s t h l e f t o r i g h t s i d e o t h e s c r e e n , i t h o r i z o n t a l d i r e c t i o n i s w i t c h e d .

S u b r o u t i n e5 0 0 - 6 9 0 : M o v e s t h p a d d l e a s d i r e c t e d b t h p l a y e r .

5 1 0 - 5 4 0 : L o c a t i o n 1 9 i c h e c k e d t i m e s t d e t e c t t h e p r e s s i n go k e b e f o r e t h s u b r o u t i n e r e t u r n s . T h i s i d o n e a s o r t o d e l a y b e c a u s e w i t h o u t i t h p w o u l d b o b s e r v e d t m o v e f a s t e rw h e n t h p a d d l e i n o m o v i n g t h a n w h e n i i s O n c e t h p r e s s i n go f k e i d e t e c t e d t h s u b r o u t i n e m o v e s t h p a d d l e a n d o e s n o c h e c k l o c a t i o n 1 9 a g a i n .

5 6 0 - 6 2 0 : M o v e t h p a d d l e l e f t .5 6 0 : T h p l a y e r i t r y i n g t m o v e t h p a d d l e p a s t t h l e f t s i d e o t h e s c r e e n .5 7 0 : D e t e c t s t h c a s e w h e n t h e s i d e o t h p a d d l e h i t s t h p i

Page 240: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 240/244

Page 241: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 241/244

A B O U T T H A U T H O R S

H e n r y M u l l i s h i S e n i o r R e s e a r c h S c i e n t i s t a n L e c t u r e r i C o m p u t e rS c i e n c e a t h C o u r a n t I n s t i t u t e o M a t h e m a t i c a l S c i e n c e s o N e Y o r kU n i v e r s i t y . H i t h a u t h o r o f o v e r d o z e n b o o k s o c o m p u t e r p r g r a m m i n g .H e r b e r t C o o p e r i P h . D . s t u d e n t a n g r a d u a t e r e s e a r c h a s s i s t a n ti C o m p u t e r S c i e n c e a C o l u m b i a U n i v e r s i t y . H h a b e e n p r o g r a m m i n gc o m p u t e r s s i n c e h w a t w e l v e .

Page 242: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 242/244

Page 243: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 243/244

Page 244: Zappers for the Commodore 64

8/6/2019 Zappers for the Commodore 64

http://slidepdf.com/reader/full/zappers-for-the-commodore-64 244/244

$ 9 . 9 5H o w o u l d y o l i k e t p i y o u r s e l f a g a i n s t 3 g r e a tn e g a m e s a n m i n d - b e n d i n g p u z z l e s a n d e v e l o py o u r B A S I C p r o g r a m m i n g s k i l l s o y o u r C o m m o d o r e6 — a l l a t h s a m e t i m e ? W e l l , h e r e ' s y o u r c h a n c e .B e s t - s e l l i n g c o m p u t e r a u t h o r s H e n r y M u l l i s h a n H e r b e r t C o o p e r h a v e f o c u s e d t h e i r e x p e r t i s e o m a k i n g