Commodore 64 Getting the Most From It

318

Transcript of Commodore 64 Getting the Most From It

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 1/318

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 2/318

C o m m o d o r e 6 G e t t i n g t h M o s t F r o m I

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 3/318

E x e c u t i v e E d i t o r : T e r r e l l A n d e r s o nP r o d u c t i o n E d i t o r / T e x t D e s i g n e r : P a u l a H u b e rA r D i r e c t o r : D o S e l l e r sA s s i s t a n t A r D i r e c t o r : B e r n a r d V e r v i nP h o t o g r a p h e r : G e o r g e D o d s o nI n d e x e r : C i n d y S h o r eT y p e s e t t e r H a r p e r G r a p h i c s , W a l d o r f , M P r i n t e r : R . R . D o n n e l l e y a n S o n s C o m p a n y , H a r r i s o n b u r g , V T y p e f a c e s : A s t e r ( t e x t a n d i s p l a y ) , M o n o s p a c e ( p r o g r a m s )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 4/318

C o m m o d o r e 6 G e t t i n g t h e M o s t F r o m I

T i O n o s k o

R o b e r t J B r a d y C o P r e n t i c e - H a l l P u b l i s h i n g a n C o m m u n i c a t i o n s C o m p a n y

B o w i e , M 2 0 7 1 5

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 5/318

C o m m o d o r e 6 4 G e t t i n g t h M o s t F r o m I

C o p y r i g h t 1 9 8 3 b R o b e r t J B r a d y C o m p a n y .A l r i g h t s r e s e r v e d . N p a r t o f t h i s p u b l i c a t i o n m a b r e p r o d u c e d o t r a n s m i t t e d i a n f o r m o b a n y m e a n s , e l e c t r o n i c o m e c h a n i c a l , i n c l u d i n g p h o t o c o p y i n g a n r e c o r d i n g , o b y a n y i n f o r m a t i o n s t o r a g e a n r e t r i e v a l s y s t e m , w i t h o u t p e r m i s s i o n i w r i t i n g f r o m t h p u b l i s h e r . F o i n f o r m a t i o n , a d d r e s s R o b e r t J B r a d y C o B o w i e ,M a r y l a n d 2 0 7 1 5 .

L 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 aO n o s k o , T i m .

C o m m o d o r e 6 4 g e t t i n g t h m o s t f r o m i t

I n c l u d e s i n d e x .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 . I T i t l e .

Q A 7 6 . 8 . 0 6 4 0 5 6 1 9 8 3 0 0 1 . 6 4 ' 2 8 3 - 1 4 1 2 7I S B N D - f l ^ 3 D 3 - 3 f l D - M

P r e n t i c e - H a l l I n t e r n a t i o n a l , I n c . , L o n d o nP r e n t i c e - H a l l C a n a d a , I n c . , S c a r b o r o u g h , O n t a r i oP r e n t i c e - H a l l o A u s t r a l i a , P t y . , L t d , S y d n e yP r e n t i c e - H a l l o I n d i a P r i v a t e L i m i t e d , N e D e l h iP r e n t i c e - H a l l o J a p a n , I n c . , T o k y oP r e n t i c e - H a l l o f S o u t h e a s t A s i a P t e . L t d , S i n g a p o r eW h i t e h a l l B o o k s , L i m i t e d , P e t o n e , N e Z e a l a n dE d i t o r a P r e n t i c e - H a l l D B r a s i l L T D A . , R i o d J a n e i r oP r i n t e d i t h U n i t e d S t a t e s o f A m e r i c a

8 8 8 8 6 8 7 8 8 8 9 9 9 9 9 1 7

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 6/318

C o n t e n t sI n t r o d u c t i o n i

W h e r e D i I C o m e F r o m ?I n s i d e t h C o m m o d o r e 6

S e t t i n g U U n p a c k i n g F i n d i n g a H o m e T e l e v i s i o n S e t s v s V i d e o M o i t o r s H o o k i n g U C h e c k i n g I O u L o t s o f K e y s T y p i n go Q W E R T YS o m e E s s e n t i a l S k i l l s 2 T h R E T U R N K e L O A D i n g U L O A D F r o m T a p e M P r o g r a m W o n ' t L O A D S A V E t T a p e C h e c k i n g Y o u r W o r k

R U N n i n g t h P r o g r a m A b o u t C o m m o d o r e ' s D i s k D r i v e sU s i n g t h D i s k D r i v e T h D i s k D i r e c t o r y P r e p a r i n g D i s k

L O A D f r o m D i s k S A V E a n V E R I F Y E r a s i n g D i s k F i l e s •V a l i d a t e t h e D i s k D i s k E R R O R s S o m e D i s k C a u t i o n sC o m m o d o r e L O A D C o m p a t i b i l i t y U s i n g Y o u r C o m p u t e r a C a l c u l a t o r H o M u c h M e m o r y I L e f t ? B e w a r e t h Q u o t eM a r k s W h a t T i m e I I t

P r o g r a m m i n g — A n I n t r o d u c t i o n 4 B a s i c a l l y B A S I C P r o g r a m D e f i n e d N u m b e r i n g a n L i s ti n T h E N V a r i a b l e s : H o t h C o m p u t e r K e e p s I t F a c t sS t r a i g h t B A S I C P u n c t u a t i o n P r o g r a m m i n g P R I N T

P r o g r a m m i n g — T h e B i T e 6 U s i n g I N P U T t A s f o I n f o r m a t i o n G O T O • I F , T H E N , a n O G E T t i n g M o r e I n f o r m a t i o n F O t h N E X T w o r d s . . .G O S U B a n R E T U R N C l o s i n g R E M a r k

P r o g r a m m i n g — H o w t h C o m p u t e rS t o r e s I n f o r m a t i o n 8 A n o t h e r K i n d o f V a r i a b l e D I V i e w R E A D i n g D A T AD i s k a n T a p e F i l e s f r o m A r r a y s C r e a t i n g a M a i l i n g L i s t

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 7/318

P r o g r a m D e s i g n i n g t h P r o g r a m P r o g r a m m i n g C o s i d e r a t i o n s S t a r t i n g t P r o g r a m U s i n g t h P r o g r a mC h o o s i n g D a t a B a s e P r o g r a m M a i l i n g L i s t P r o g r a m

P r o g r a m m i n g — T h e R e s t o B A S I C 1 1 P E E K a n P O K E S Y S a n d U S R C M S P C a n d T A BS T O P a n W A I T O M a t h e m a t i c a l F u n c t i o n s S t r i n g -H a n d l i n g W o r d s L E N , V A a n S T R $ A S a n C H R $L E F T $ , M I D $ , R I G H T S

W o r d P r o c e s s i n g : T h E l e c t r o n i c T y p e w r i t e r 1 3 W h a t i W o r d P r o c e s s o r ? W h a t Y o u ' l l N e e d : P r i n t e r s a n D i s k s A d v a n c e d W o r d P r o c e s s i n g F u n c t i o n s F o u r C o m o d o r e 6 W o r d P r o c e s s o r s Q u i c k B r o w n F o W o r d P r oP l u s / 6 4 E a s y S c r i p t P a p e r C l i p F e T i p s

C o l o r , G r a p h i c s , S o u n d , a n G a m e s 1 5 V I C t o r a n S I D n e y R a N D o m N o t e s S c r e e n a n B o r d e rC o l o r s C h a r a c t e r C o l o r s P R I N T i n g G r a p h i c s D i g i t a lD i c e D i g i t a l D i c e P r o g r a m S p r i t e G r a p h i c s T h O l S h e l lG a m e S h e l l G a m e P r o g r a m S I s o u n d S o n g P r o g r a mT h J o o J o y s t i c k s W h a t ' s L e f t ?

1 B e y o n d B A S I C 1 8 H a r d w a r e a n E n h a n c e m e n t s E n t e r t a i n m e n t P r o g r a m sS p r e a d s h e e t s a n A d v a n c e d S o f t w a r e O t h e r L a n g u a g e sH u m a n - t o - M a c h i n e I n t e r f a c i n g

A p p e n d i x 1 E x p l o r i n g t h C o m m o d o r e 6 4 J i m B u t t e r f i e l d 1 9

W h T i n k e r ? T h C o m p u t e r ' s M e m o r y K i n d s o M e m o r yM e m o r y M a p s R A M b l i n g T h G r e a t M e m o r y S h u f f l eS u m m a r y

A p p e n d i x 2 E x p l o r i n g G r a p h i c s o t h C o m m o d o r e 6 P a u l F S c h a t z 2 0

I I A l D o n e W i t h M i r r o r s ? W h o ' s P u l l i n g t h S t r i n g s ?H o D T a l k t V I C ? S p r i t e s G a l l o p P r o g r a m S u m a r y o S p r i t e R e g i s t e r s S p r i t e E d i t o r P r o g r a m C h a r a c t e r s

G o t h i c C h a r a c t e r P r o g r a m B i M a G r a p h i c s M i n i -g r a p h . D a P r o g r a m M i n i g r a p h . D e m o P r o g r a m F e C o c l u d i n g R e m a r k s

v

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 8/318

A p p e n d i x 3 E x p l o r i n g S o u n da n M u s i c D r F r a n k H . C o v i t z 2 5

T h F u n d a m e n t a l s o T o n e s A d d r e s s i n g S I M o v i n g o n t D y n a m i c s T h W e l l - T e m p e r e d C o m p u t e r S o u n d s f r o mH y p e r s p a c e S o u n d E f f e c t s P r o g r a m s

A p p e n d i x 4 E r r o r M e s s a g e s 2 8 A p p e n d i x 5 A S C I I / C H R $ C o d e s B a s e C o n v e r s i o n T a b l e 2 8 G l o s s a r y 2 9 5I n d e x 2 9 A c k n o w l e d g m e n t s 3 0

v i

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 9/318

L I M I T S O L I A B I L I T Y A N D I S C L A I M E R O W A R R A N T Y

T h a u t h o r a n p u b l i s h e r o t h i s b o o k h a v e u s e d t h e i r b e s t e f f o r t s i p r p a r i n g t h i s b o o k a n t h p r o g r a m s c o n t a i n e d i i T h e s e e f f o r t s i n c l u d et h d e v e l o p m e n t , r e s e a r c h , a n t e s t i n g o f t h e p r o g r a m s t d e t e r m i n e t h e i re f f e c t i v e n e s s . T h a u t h o r a n t h p u b l i s h e r m a k e n w a r r a n t y o a n k i n d ,e x p r e s s e d o i m p l i e d , w i t h r e g a r d t t h e s e p r o g r a m s , t h t e x t , o t h d o c u m e n t a t i o n c o n t a i n e d i t h i s b o o k . T h a u t h o r a n t h p u b l i s h e r s h a l ln o b l i a b l e i a n e v e n t f o c l a i m s o i n c i d e n t a l o c o n s e q u e n t i a l d a m a g e si c o n n e c t i o n w i t h , o a r i s i n g o u o f t h f u r n i s h i n g , p e r f o r m a n c e , o r u s e o t h t e x t o t h p r o g r a m s . T h e p r o g r a m s c o n t a i n e d i t h i s b o o k a n d o n a n d i s k e t t e s a r i n t e n d e d f o u s o t h o r i g i n a l p u r c h a s e r - u s e r . T h d i s k e t t e sm a b c o p i e d b t h o r i g i n a l p u r c h a s e r - u s e r f o b a c k u p p u r p o s e s w i t h o u tr e q u i r i n g e x p r e s s p e r m i s s i o n o f t h e c o p y r i g h t h o l d e r .

N o t e t A u t h o r sD y o h a v e m a n u s c r i p t o s o f t w a r e p r o g r a m r

l a t e d t o p e r s o n a l c o m p u t e r s ? D y o h a v e a i d e a f o d e v e l o p i n g s u c h p r o j e c t ? I s o w w o u l d l i k e t h e a rf r o m y o T h e B r a d y C o p r o d u c e s c o m p l e t e r a n g e o b o o k s a n a p p l i c a t i o n s s o f t w a r e f o r t h e p e r s o n a l c o p u t e r m a r k e t W i n v i t e y o t w r i t e t D a v i d C u l v e r w e l l ,E d i t o r - i n - C h i e f , R o b e r t J B r a d y C o . , B o w i e , M a r y l a n d2 0 7 1 5 .

v i i i

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 10/318

I n t r o d u c t i o nI y o a r r e a d i n g t h i s b o o k , y o h a v e e i t h e r b o u g h t c o m p u t e r , w i l lb u o n e , o a r a t l e a s t c o n s i d e r i n g t h i d e a . I t p u r p o s e i t p r o v i d ey o w i t h e n o u g h i n f o r m a t i o n a b o u t t h C o m m o d o r e 6 c o m p u t e r t u s i w e l l . Y o w i l l l e a r n w h a t i t i s , w h e r e i c a m e f r o m , a n w h a t i c a a n c a n n o t d f o y o u .

F i r s t , a n t t h p o i n t , t h i s b o o k i o n l y a b o u t t h C o m m o d o r e 6 a n o t h e r c o m p u t e r s i t h s a m e f a m i l y ( p o r t a b l e a n c l a s s r o o mv e r s i o n ) . A s i d e f r o m c e r t a i n b a s i c i d e a s c o m m o n t m o s t c o m p u t e r sa n r e f e r e n c e s t o t h e r c o m p u t e r s m a n u f a c t u r e d b y C o m m o d o r e —t h V I C - 2 0 i p a r t i c u l a r — y o u 1 l e a r n l i t t l e o n o t h i n g a b o u t h o t u s a A p p l e , o r T R S - 8 0 , o A t a r i , o a n o t h e r p e r s o n a l c o m p u t e r .A r y o t r y i n g t d e c i d e w h i c h c o m p u t e r t b u y ? T h i s b o o k ( a n db o o k s a b o u t o t h e r c o m p u t e r s , t o o ) m a h e l p y o m a k e t h a t d e c i s i o n .G e t t i n g i n f o r m a t i o n t h i s w a i b e t t e r t h a n b e i n g b o m b a r d e d b t h p r o p a g a n d a t h a t c o m p u t e r s a l e s m e n m i g h t h e a p o y o u . T h i s b o o kc o n t a i n s b o t h i n f o r m a t i o n a n l i t t l e o p i n i o n a w e l l .

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

I y o u ' r e a " o l d p r o " a n h a v e b e e n i p e r s o n a l c o m p u t i n g f r o mt h " b e g i n n i n g " — H o w l o n g a g w a t h a t ? F i v e o s i y e a r s ? — t h e r e ' ss o m e t h i n g h e r e f o y o u , t o o . T h C o m m o d o r e 6 i c o m p u t e r d s i g n e d w i t h m a n y i n t e r e s t i n g , p o w e r f u l a n u n i q u e f e a t u r e s .

M o s t l i k e l y , t h o u g h , y o u ' v e e i t h e r j u s t p u r c h a s e d C o m m o d o r e 6 o h a v e a c c e s s t o n a w o r k o a s c h o o l . Y o m a b i l a e a s e a b o u tj u s t w h a t c o m p u t e r i s Y o m a f e e l t h a t y o a r n o g o o d e n o u g h a m a t h e m a t i c s t u s i t o t h a t y o l a c k t h e s k i l l s n e c e s s a r y t p r o g r a mi t I s e e m s c o m p l i c a t e d a n d , p e r h a p s , i n t i m i d a t i n g .

D e s p i t e t h a d v a n c e s o f t h e l a s t d e c a d e , c o m p u t e r s o f t e n a p p e a r t b " c o l d " m a c h i n e s ( n m a t t e r h o w m u c h m a n u f a c t u r e r s c a l l t h e m" u s e r - f r i e n d l y " ) . Y o m a t h i n k t h a t t h c o m p u t e r d o e s n ' t l i k e y o o a n y o n e e l s e t h a t c o m e s n e a r i t

F o r g e t i t C o m p u t e r s a r a m a z i n g , i n t r i g u i n g m a c h i n e s , b u a r n m o r e c o m p l e x , r e a l l y , t h a n a a u t o m o b i l e . A n y o n e e d a b o u t a m u c h s k i l l — p e r h a p s l e s s — t o b e g i n t u s o n e . P r o g r a m m i n g d o e s n ' tn e c e s s a r i l y r e l y o c o m p l e x m a t h e m a t i c s . I o n l y r e q u e s t s t h a t y o t h i n k p r o b l e m t h r o u g h a n l e a r n h o t b r e a k i d o w n i n t o n u b e o s m a l l e r p r o b l e m s . A n a f o m a t h , m a n y p e r s o n a l c o m p u t e ru s e r s w h w e r e t e r r i b l e a m a t h w h i l e i s c h o o l s o o n l e a r n t h a t t h e ya r q u i t e g o o d a i w h e n i c o m e s t d o i n g p r a c t i c a l t h i n g s . I

i

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 11/318

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

E v e n t h o u g h p r o g r a m m i n g h a i t o w r e w a r d s , s o m e c o m p u t e ru s e r s p r o g r a m v e r y s e l d o m , i a a l l . T h e y c h o o s e , i n s t e a d , t o u s a n n u m b e r o g o o d , c o m m e r c i a l l y a v a i l a b l e p r o g r a m s . L e a r n i n g t u s p r o g r a m u s u a l l y r e q u i r e s m u c h l e s s s k i l l t h a n w r i t i n g o n e . Y o s i m p l yl o a d i i n t o t h c o m p u t e r , t h e n f o l l o w d i r e c t i o n s . B f o r e w a r n e d ,t h o u g h . M a n y v e r y p o w e r f u l p r o g r a m s a l s o r e q u i r e t h a t y o l e a r n h o t t a k e f u l l a d v a n t a g e o t h e i r c a p a b i l i t i e s , p r o c e s s t h a t c a d e m a n da l m o s t a m u c h a t t e n t i o n a n c o n c e n t r a t i o n a l e a r n i n g t p r o g r a m .

I y o d o n ' t n e e d c o m p u t e r t s o l v e a n p r e s s i n g p r o b l e m s o a i y o i y o u r d a y - t o - d a y l i f e , d o n ' t w o r r y a b o u t i t I a l s o h a p p e n s t b t h e b e s t t o y y o c a b u y . I c a m a k e m u s i c a n p i c t u r e s a n w i l l k e e py o a m u s e d f o h o u r s o e n d . I w i l l p l a y w i t h y o w h e n n o n e l s ew a n t s t o C o m p u t e r s a r j u s t a m u c h f o p l a y a s t h e y a r f o w o r k , a n d o n ' t l e a n y b o d y t e l l y o o t h e r w i s e .

O n g o o d r e a s o n t o w a n u s c o m p u t e r i j u s t t o l e a r n a b o u tt h e m . Y o c o u l d g t s p e c i a l s c h o o l o t a k e c l a s s t l e a r n a b o u tc o m p u t e r s . O m a y b e y o a r e l e a r n i n g a b o u t t h e m i s c h o o l o o t h j o r i g h t n o w . T h o s e a r g o o d w a y s t o l e a r n , t o o . B u b u y i n g a n u s i n g

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

e n t i r e l a n g u a g e o i t o w h a d e v e l o p e d a r o u n d t h e s e " t h i n k i n g "m a c h i n e s . M o s t o f t e n , c o m p u t e r l i n g o i j u s t " t e c h n o - b a b b l e . " B u s o m e c o m p u t e r w o r d s a r e n ' t j u s t j a r g o n . C o m p u t e r s d o r e q u i r e f e p a r t i c u l a r w o r d s t d e s c r i b e w h a t t h e y ' r e m a d e o a n h o t h e y o p e ra t e . Y o u ' l l f i n d t h o s e w o r d s i t h i s b o o k ( a n d , a t h e n d , t h e r e ' s g l o ss a r y f o y o t c o n s u l t , j u s t i n c a s e y o f o r g e t w h a t w o r d m e a n s ) .W h a t y o w o n ' t f i n d , t h o u g h , i j a r g o n f o t h s a k e o f j a r g o n . T h i s b o o kc a n t t e a c h y o h o t o t a l k l i k e c o m p u t e r " h a c k e r , " b u m a y b e i m i g h t h e l p y o d e c i p h e r w h a t t h e s e p e o p l e a r t a l k i n g a b o u t .

A r y o p r o f e s s i o n a l ? D y o b r i n g y o u r w o r k h o m e w i t h y o u ? D y o u w a n t t o g e t a h e a d a t h o f f i c e ? A r y o o n o m a n y w h h a v ed i f f i c u l t t i m e k e e p i n g y o u r s e l f o r g a n i z e d ? T h e n y o a r p r o b a b l y a s ki n o n q u e s t i o n : W h a t , e x a c t l y , w i l l c o m p u t e r d o f o m e T h a n s w e r t t h a t q u e s t i o n m a o m a n o b h e r e . I c a c o m e o n l y f r o my o u , o n c e y o k n o w t h c o m p u t e r ' s c a p a b i l i t i e s a n l i m i t a t i o n s . Y o m u s t r e m e m b e r t h a t c o m p u t e r s a r e n ' t m a g i c a l s o l u t i o n s t u n k n o w np r o b l e m s . ( A n y s a l e s p i t c h t h a t t e l l s y o o t h e r w i s e i j u s t p l a i n h y p e . )

I t h i s b o o k , y o 1 g e s o m e i n f o r m a t i o n a b o u t t h m o s t c o m m o np r o f e s s i o n a l c o m p u t e r a p p l i c a t i o n s . F r o m i t y o m i g h t d e c i d e t h a tc o m p u t e r c a e a s e y o u r w o r k l o a d .T h b o o k i o r g a n i z e d i n t o t w m a i n s e c t i o n s . T h f i r s t i s a b o u t t h c o m p u t e r a n h o t u s i t I i n c l u d e s l e s s o n s i B A S I C p r o g r a mm i n g a s w e l l a s i n f o r m a t i o n a b o u t a p p l i c a t i o n s , p a r t i c u l a r l y w o r dp r o c e s s i n g . A t h e n o f t h e b o o k i s e c t i o n p r e p a r e d b a n f o m o r e e x p e r i e n c e d C o m m o d o r e u s e r s . I w i l l h e l p y o b e t t e r u n d e r -

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 12/318

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

Y o s h o u l d r e m e m b e r , t h o u g h , t h a t n e i t h e r t h i s b o o k n o r a n y o t h e rw i l l t e a c h y o e v e r y t h i n g t h e r e i t k n o w a b o u t c o m p u t e r s . I s u c hb o o k e x i s t e d , t h e r e w o u l d b n n e e d f o o t h e r s . I n s t e a d , m u c h l i k es m o r g a s b o r d , t h i s b o o k i i n t e n d e d f o m a n y d i f f e r e n t t a s t e s .

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

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

D o n ' t e x p e c t t h c o m p u t e r t s t a r t g i v i n g i m m e d i a t e l y . Y o m u s tf i r s t l e a r n h o t a s i t h e l p y o u .

N E V E R a s s u m e y o u r o w l e v e l o i n t e l l i g e n c e . c o m p u t e r d m a n d s t h a t y o o n l y b s m a r t e n o u g h t f o l l o w i n s t r u c t i o n s c a r e f u l l y .

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

I p o s s i b l e , m a k e l e a r n i n g a b o u t t h c o m p u t e r e a s y f o y o u r s e l f b a p p r o a c h i n g i w i t h s o m e o n e e l s e — a f r i e n d , s o o d a u g h t e r ,m o t h e r o f a t h e r , w i f e o h u s b a n d , b o y f r i e n d o g i r l f r i e n d , n e x td o o r n e i g h b o r , e t c . B d o i n g s o y o w i l l h e l p e a c h o t h e r a n u n d e rs t a n d t h e i d e a s m o r e q u i c k l y .

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

A b o v e a l l , t r t k e e p y o u r i n t e r e s t i n t h c o m p u t e r b a l a n c e d w i t h t h r e s t o y o u r d a i l y l i f e . M a y b e t h m o s t " m a g i c a l " t h i n g a b o u t a n p e s o n a l c o m p u t e r i h o i c a a b s o r b y o u r t i m e . I t i s a l t o o e a s y t b e c o m e p r e o c c u p i e d w i t h t h m a c h i n e , o t r t s t a y w i t h p r o b l e mu n t i l y o c a w a l k a w a y w i t h t h a n s w e r . L e a r n i n g d o e s n o c o m ee a s y , t h o u g h , w h e n y o h a v e s p e n t h o u r s o p r o b l e m o a r f a t i g u e d .I y o d o n ' t s e e m t b m a k i n g p r o g r e s s , t u r n t h m a c h i n e o f a n c o m e b a c k t i a n o t h e r t i m e . f r e s h a p p r o a c h i s a l l t h a t m a b n e c e s s a r y .

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

x

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 13/318

T R A D E M A R K S

6 4 N E T i t r a d e m a r k o A m e r i c a n P h o t o t o n i c s , I n c .A m d e k C o l o r - I i t r a d e m a r k o A m d e k C o r p .A p p l e , A p p l e I I A p p l e H e a n A p p l e L i s a a r t r a d e m a r k s o A p p l e C o m p u t e r , I n c .A t a r i i t r a d e m a r k o A t a r i , I n c .C a r d e t t e i t r a d e m a r k o f C a r d c o , I n c .C o m m o d o r e , C o m m o d o r e 6 4 E a s y G r a p h i c s , E a s y F i n a n c e , E a s y C o m m , a n E a s y

S c r i p t a r t r a d e m a r k s o C o m m o d o r e B u s i n e s s M a c h i n e s , I n c .C o m p u S e r v e i t r a d e m a r k o C o m p u S e r v e , I n c . a n H . & R . B l o c k C o C P / M i t r a d e m a r k o D i g i t a l R e s e a r c hD o J o n e s N e w s / R e t r i e v a l S e r v i c e i t r a d e m a r k o f D o J o n e s C o m p a n y , I n c .E p s o n M X - 8 0 , M X - 1 0 0 , a n F X - 8 0 a r t r a d e m a r k s o f E p s o n A m e r i c a , I n c .G e m i n i a n d S t a r a r t r a d e m a r k s o f S t a r M i c r o n i c s , I n c .I B i t r a d e m a r k o I n t e r n a t i o n a l B u s i n e s s M a c h i n e s C o r p .I n t e r l o g i c , Z o r k , S t a r c r o s s , S u s p e n d e d , a n d D e a d l i n e a r t r a d e m e a r k s o f I n f o c o m , I n c .M A i t r a d e m a r k o E a s t e r n H o u s e S o f t w a r eM i c r o s o f t i t r a d e m a r k o f M i c r o s o f t C o r p .N E S p i n w r i t e r i t r a d e m a r k o N E H o m e E l e c t r o n i c s , I n c .O k i d a t a i t r a d e m a r k o f O k E l e c t r i c I n d u s t r y C o . , L t d .P a p e r C l i p 6 i t r a d e m a r k o f B a t t e r i e s I n c l u d e d , I n c .P e t S p e e d i t r a d e m a r k o f S m a l l S y s t e m s E n g i n e e r i n gP r o w r i t e r i t r a d e m a r k o C I t o h , I n c .Q u i c k B r o w n F o x i t r a d e m a r k o Q u i c k B r o w n F o x , I n c .R a d i o S h a c k a n T R S - 8 0 a r t r a d e m a r k s o f T a n d y C o r p .T h S o u r c e i t r a d e m a r k o S o u r c e T e l e c o m p u t i n g C o r p .U n i v a c i t r a d e m a r k o S p e r r y U n i v a c , I n c .V i c T r e e a n A r r o w a r t r a d e m a r k s o S k y l e s E l e c t r i c W o r k sV i s i C a l c i t r a d e m a r k o V i s i c o r p .W o r d P r o a n W o r d P r o P l u s a r t r a d e m a r k s o f P r o f e s s i o n a l S o f t w a r e , I n c .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 14/318

W h e r e D i I C o m e F r o m ?

I 1 9 5 3 , i w a t h " e l e c t r o n i c b r a i n / ' T h i r t y y e a r s l a t e r , i h a d b e c o m e" M a c h i n e o f t h e Y e a r , ; ; a n h a d i s p l a c e d a h u m a n b e i n g o t h c o v e r o T i m e m a g a z i n e ' s p r e s t i g i o u s y e a r - e n d i s s u e . T o d a y , t h e r e i p r o b a b l y o n e i f r o n t o y o u . W h a t i t h i s t h i n g c a l l e d c o m p u t e r ?

c o m p u t e r b e a r s l i t t l e r e s e m b l a n c e t y o u r b r a i n . W h e t h e r i " t h i n k s "o r n o t i a q u e s t i o n o h o y o u s t h w o r d . L e f t t i t s e l f , i d o e s l i t t l e o n o t h i n g a n i c o m p l e t e l y d e p e n d e n t o y o u , t h h u m a n . C o m p u t e r s , s i m p l yp u t , a r c o m p l e x c o l l e c t i o n s o f s i m p l e d e v i c e s . T h e y t a k e i n s t r u c t i o n s , m o v en u m b e r s i n t o a n o u o t h e i r m e m o r y , a n m a k e e l e m e n t a r y d e c i s i o n s .T h a t ' s a l t h e y d o

T h f i r s t e l e c t r o n i c c o m p u t e r w a E N I A C , n o l e g e n d a r y m a c h i n e b u i l ti t h l a t e 1 9 4 0 s b y t w o s c i e n t i s t s n a m e d E c k e r t a n M a u c h l y . I f o l l o w e dc e n t u r i e s o f m e c h a n i c a l m a c h i n e s , f r o m t h a b a c u s o t h a n c i e n t C h i n e s et t h " a n a l y t i c e n g i n e " o B r i t i s h m a t h e m a t i c i a n C h a r l e s B a b b a g e . T h e r eh a e v e n b e e n s p e c u l a t i o n t h a t B r i t a i n ' s m y s t e r i o u s S t o n e h e n g e w a t h " c o m p u t e r " o e a r l y a s t r o n o m e r s . N o n e o t h e s e , h o w e v e r , w e r e c o m p u t e r sa w e k n o w t h e m t o d a y .

T h i d e a s b e h i n d E N I A C b e c a m e U N I V A C , t h f i r s t c o m m e r c i a l c o m p u t e rb u i l t b R e m i n g t o n R a n d i t h 1 9 5 0 s . T h c o m p a n y w h o s e n a m e w a t b e c o m e s y n o n y m o u s w i t h c o m p u t e r s , I n t e r n a t i o n a l B u s i n e s s M a c h i n e s ( I B M ) ,m a d e i t e n t r y i n t o c o m p u t e r s s o o n a f t e r . I B M ' s m a j o r b u s i n e s s a t h t i m ew a o f f i c e e q u i p m e n t , i n c l u d i n g a d d i n g a n t a b u l a t i n g ( c o u n t i n g ) m a c h i n e s .T h h a l l m a r k o t h t a b u l a t i n g e r a w a t h r e c t a n g u l a r p u n c h e d c a r d , n i c kn a m e d t h " I B M c a r d " b u t a c t u a l l y n a m e d t h H o l l e r i t h a f t e r i t o r i g i n a t o r

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 15/318

W h e r e D i I C o m e F r o m ?

T h E N I A C C o m p u t e r . S m i t h s o n i a n I n s t i t u t i o n P h o t o N o 6 / 7 9 8 9

H e r m a n H o l l e r i t h , I B M ' s c h i e f e n g i n e e r . T h H o l l e r i t h b e c a m e t h f i r s t s t a nd a r d f o h u m a n s t c o m m u n i c a t e w i t h c o m p u t i n g m a c h i n e s .

T h e a r l y e l e c t r o n i c c o m p u t e r s u s e d v a c u u m t u b e s , l i k e t h o s e s t i l l t b s e e n i o l r a d i o s , a n m e c h a n i c a l r e l a y s w i t c h e s . B t h m i d d l e 1 9 5 0 s , t h es e m i c o n d u c t o r t r a n s i s t o r h a b e e n d e v e l o p e d . I h a t h a b i l i t y t s w i t c hs t r e a m s o e l e c t r o n s p a s s i n g t h r o u g h i a n l e t c o m p u t e r - l i k e l o g i c a l d s i g n s . T r a n s i s t o r s h a r e p l a c e d t u b e s i c o m p u t e r s b t h e n e x t d e c a d e , a n o p e n e d t h w a f o r l a r g e r , m o r e p o w e r f u l m a c h i n e s . S t i l l , e v e n t h s m a l l e s ta n m o s t r e l i a b l e c o m p u t e r s o t h 1 9 6 0 s w e r e a b i a s e v e r a l r e f r i g e r a t o r sa n o f t e n a s t e m p e r a m e n t a l a a n t i q u e w r i s t w a t c h e s .

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

I n s i d e t h e c o m p u t e r s o o l d , n u m b e r s w e r e s t o r e d i " c o r e m e m o r y . "E a c h l i t t l e b i o m e m o r y w a t i n y r i n g o d o n u t w h i c h c o u l d b e m a g n e t i z e di o n d i r e c t i o n o a n o t h e r . T h e r e c o u l d b e t h o u s a n d s , o r e v e n t e n s o f t h o us a n d s , o s u c h m e m o r y d e v i c e s i c o m p u t e r . T h s t e a d y d e v e l o p m e n t o e l e c t r o n i c i n t e g r a t e d c i r c u i t s p a v e d t h w a f o e l e c t r o n i c m e m o r i e s o m c r o c h i p s , w h i c h b e c a m e p o p u l a r d u r i n g t h 1 9 7 0 s a n h a v e a l b u t r e p l a c e d

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 16/318

I — W h e r e D i I C o m e F r o m ? 3

c o r e m e m o r y . T h d i f f e r e n c e b e t w e e n c o r e a n t h k i n d o m o d e r n e l e c t r o n i cm e m o r y w i d e l y u s e d t o d a y i t h a t c o r e m e m o r y w a p e r m a n e n t , i t c o n t e n t sr e m a i n e d a f t e r t h c o m p u t e r ' s p o w e r w a s t u r n e d o f f . T o d a y ' s r a n d o m a c c e s sm e m o r y c h i p s l o s e w h a t i s t o r e d i t h e m w h e n p o w e r i s h u t o f f .

S h o r t l y a f t e r m e m o r y c h i p s m a d e t h e i r a p p e a r a n c e , t h f i r s t m i c r o p r oc e s s o r i n t e g r a t e d c i r c u i t w a d e v e l o p e d . L i k e c o m p u t e r , t h m i c r o p r o c e s s o rc o u l d b g i v e n s e q u e n c e o i n s t r u c t i o n s t c a r r y o u t . I w a s n ' t l o n g b e f o r ee n g i n e e r s a n b a s e m e n t t i n k e r e r s b e g a n i m a g i n i n g r e a l c o m p u t e r s c o s t r u c t e d f r o m m i c r o p r o c e s s o r s a n R A m e m o r y c h i p s .

' ' P e r s o n a l " c o m p u t e r s w e r e b o r n o t h e s e e a r l y , s o m e t i m e s h a l t i n g a t e m p t s . C o m p u t e r s w i t h s t r a n g e - s o u n d i n g n a m e s c a m e a n w e n t . T h e r e w e r et h M I T S A l t a i r s , I M S A I s a n S O L s . ( S O L d e s e r v e s f o o t n o t e i m o d e r nc o m p u t i n g f o b e i n g n a m e d a f t e r m a g a z i n e e d i t o r , L e s l i e S o l o m o n , w h e x t o l l e d i t v i r t u e s . ) M o s t o t h e s e t i n y c o m p u t e r s w e r e s o l d a s k i t s f o h o b y i s t s , b u o n c e a s s e m b l e d , t h e y d i l i t t l e o t h e r t h a n f l a s h t h e i r f r o n t p a n e lo l i g h t s . T h p o t e n t i a l w a u n m i s t a k a b l e , t h o u g h .

B 1 9 7 6 , t w c o m p a n i e s s a t h e i r p r o m i s e a n b e g a n t d e s i g n p e r s o n a lc o m p u t e r s t h a t c o u l d b u s e d b a l m o s t a n y o n e . A t n e c o m p a n y c a l l e dA p p l e , t w y o u n g m e n , S t e v e J o b s a n S t e v e W o z n i a k , b u i l t c o m p u t e r o n

s i n g l e c i r c u i t b o a r d a n t o o k i a r o u n d t m e e t i n g s o c o m p u t e r a n e l e ct r o n i c s e n t h u s i a s t s i n o r t h e r n C a l i f o r n i a . I w a t h A p p l e I ( T h e A p p l e I w o u l d f o l l o w w h e n J o b s ' a n W o z n i a k ' s b u s i n e s s w a e s t a b l i s h e d . )

C o m m o d o r e B u s i n e s s M a c h i n e s g r e w f r o m t y p e w r i t e r r e p a i r b u s i n e s ss t a r t e d a f t e r W o r l d W a I b J a c k T r a m i e l , a P o l i s h - b o r n i m m i g r a n t a n s u r v i v o r o t h N a z i c o n c e n t r a t i o n c a m p s . C o m m o d o r e h a b e c o m e m a j o rs e l l e r o f e l e c t r o n i c c a l c u l a t o r s , b u s i n e s s n e a r d e a t h d u t o f i e r c e c o m p et i t i o n , w h e n t e a m o y o u n g e n g i n e e r s l e b C h u c k P e d d l e , m i c r o p r o c e s s o rp i o n e e r , s t a r t e d w o r k o C o m m o d o r e ' s o w c o m p u t e r , t h P E T . B o t h t h P E a n A p p l e w e r e b a s e d o t h s a m e m i c r o p r o c e s s o r c h i p , t h e 6 5 0 2 . I c a m e f r o m M O T e c h n o l o g y , c o m p a n y n o o w n e d b C o m m o d o r e . A v e s i o n o t h s a m e 6 5 0 2 f u r t h e r p o p u l a r i z e d t h c h i p b b e i n g a t h h e a r t o A t a r i ' s i n c r e d i b l y s u c c e s s f u l v i d e o g a m e s y s t e m a w e l l a s t h e i r p e r s o n a lc o m p u t e r s .

( T h e n a m e P E T s t a r t e d a s s o m e t h i n g o j o k e b a s e d o t h " p e t r o c k "n o v e l t y c r a z e o t h e t i m e . W h e n i c a m e t i m e t m a k e t h n a m e " l e g i t i m a t e , "P E b e c a m e s h o r t f o P e r s o n a l E l e c t r o n i c T r a n s a c t o r . S o m e i t h i n d u s t r yj o k e d t h a t P E s t o o d f o P e d d l e ' s E g T r i p , r e c a l l i n g t h e d a y s w h e n t h s t e a m b o a t w a " F u l t o n ' s F o l l y . " )

T h P e w a d e s i g n e d f o a n o t h e r c o m p a n y t s e l l . T h a t c o m p a n y w a R a d i o S h a c k , w h i c h , a f t e r e v a l u a t i n g t h C o m m o d o r e c o m p u t e r , d e c i d e d t d e s i g n a n s e l l i t o w n , e v e n t u a l l y n a m e d t h T R S - 8 0 . B l a t e 1 9 7 7 , a l t h r e ec o m p u t e r s w e r e o n t h m a r k e t , v y i n g f o t h f e w b r a v e s o u l s w h w e r ei n t e r e s t e d i o w n i n g t h e i r o w m a c h i n e s a n w i l l i n g t a n s w e r o t h e r s w h w o n d e r e d w h a n y b o d y w o u l d b u y o n e . T h a g o p e r s o n a l c o m p u t i n g h a b e g u n .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 17/318

I n s i d e t h C o m m o d o r e 6

I n s i d e t h e C o m m o d o r e 6 T h C o m m o d o r e 6 c o m p u t e r s o w m u c h t t h d e s i g n o t h o r i g i n a l

P E c o m p u t e r a n t t h V I C - 2 0 . A e a r l y f o r e r u n n e r o t h 6 w a d e s i g n e db u t n e v e r b u i l t . I u s e d t h s a m e m i c r o p r o c e s s o r a t h P E T , o r i g i n a t e d t h c o n c e p t o k e y s f o c o n t r o l l i n g c o l o r , a n p r e s a g e d i t a d v a n c e d s o u n d c p a b i l i t i e s . L i k e t h P E T , i t o h a a o d n a m e — t h e T O c o m p u t e r . ( T O Is u p p o s e d l y s t o o d f o t h h i g h - m i n d e d T h O t h e r I n t e l l e c t , b u t h j o k e a r o u n dt h o f f i c e s o o n s a i d i s t o o d f o T o o l O I d i o t s . ) T h T O w a p u o h o l d ,t h o u g h , w h e n d e s i g n e r s w e r e t o l d t c o m e u w i t h a i n e x p e n s i v e c o l o rc o m p u t e r , t h V I C - 2 0 . M a n y o t h T O I ' s f e a t u r e s e v e n t u a l l y b e c a m e p a r t o t h C o m m o d o r e 6 4

I n s i d e t h e 6 c o m p u t e r s i n e v e r s i o n o t h 6 5 0 2 m i c r o p r o c e s s o rw h i c h p e r f o r m s n e a t t r i c k . I c a c o n t r o l t h " s h a p e " o t h m a c h i n e ' si n t e r n a l d e s i g n . M o s t m i c r o c o m p u t e r s w e r e o r i g i n a l l y d e s i g n e d w i t h o n p o r t i o n — t h e m a s t e r p r o g r a m c a l l e d t h e " o p e r a t i n g s y s t e m / ' a n t h B A S I Cp r o g r a m m i n g l a n g u a g e — s t o r e d p e r m a n e n t l y i R O M , o R e a d O n l y M e m o r yc h i p s . T h 6 b r e a k s f r o m t h i s d e s i g n i t h a t t h e r e i t h m a x i m u m a l l o w a b l em e m o r y ( f o r t h 6 5 0 2 a n o t h e r s o - c a l l e d " e i g h t - b i t " m i c r o p r o c e s s o r s ) i n s i d et h c o m p u t e r . T h B A S I C p r o g r a m m i n g l a n g u a g e c a b " d r o p p e d " f r o mt h c o m p u t e r b t h m i c r o p r o c e s s o r , o r e p l a c e d b a c a r t r i d g e p r o g r a m , o s w i t c h e d b e t w e e n R O a n r a n d o m a c c e s s m e m o r y . T h i s c h a m e l e o n - l i k es t r u c t u r e , o r " a r c h i t e c t u r e " i c o m p u t e r j a r g o n , i e x t r e m e l y c l e v e r a n i n o b e i n g i m i t a t e d b o t h e r m a n u f a c t u r e r s .

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

T h e r e i w o r l d i n s i d e t h i s c o m p u t e r , o n e t h a t d e s e r v e s e x p l o r a t i o n .T h r o u g h o u t t h i s b o o k , y o w i l l l e a r n h o t t r a v e l i t h i g h w a y s a n d b y w a y sv i t h B A S I C p r o g r a m m i n g l a n g u a g e a n p r o g r a m s d e s i g n e d f o s p e c i a lp u r p o s e s . L e a r n i n g w h a t i h e r e , y o c a b e g i n t m a k e t h c o m p u t e r ' s p o w e rw o r k f o y o u . R e a d y ? L e t ' s g . .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 18/318

S e t t i n g U

T h i s s e c t i o n i a b o u t t h m o s t d o w n - t o - e a r t h a s p e c t s o c o m p u t i n g : S e t t i n gu y o u r c o m p u t e r s y s t e m a n c h e c k i n g t h m a c h i n e o u t . T h i s i t h p r a c t i c a ls i d e o f p e r s o n a l c o m p u t i n g , o n e t h a t i s n ' t a l w a y s c o n s i d e r e d .

U n p a c k i n gI y o a r l i k e m o s t p e o p l e , y o h a v e p r o b a b l y a l r e a d y t a k e n t h c o

p u t e r o u o t h b o a n h a v e p l u g g e d i i n E v e n t h o u g h i n s t r u c t i o n b o o k sa l w a y s s a t " r e a d t h e s e i n s t r u c t i o n s t h o r o u g h l y f i r s t / ' i i d i f f i c u l t t f o l l o wd i r e c t i o n s w h e n y o u r e x c i t e m e n t i r u n n i n g h i g h . A n d , s i n c e c o m p u t e r i o n o t h m o s t e x c i t i n g p u r c h a s e s y o u ' v e e v e r m a d e , t h i s e n t h u s i a s m i u n d e r s t a n d a b l e .

Y o u r e a g e r n e s s s h o u l d n ' t g e i t h w a o i n s p e c t i n g w h a t y o u ' v e b o u g h t .M a k e s u r e y o u ' v e g o t t e n y o u r m o n e y ' s w o r t h . F o r i n s t a n c e , i e v e r y t h i n g i t h b o x ? T h C o m m o d o r e 6 s h o u l d c o m e w i t h i t o w p o w e r s u p p l y — t h a ti t h h e a v y b l a c k b o w i t h t w e l e c t r i c a l c o r d s c o n n e c t e d t i t T h e r e s h o u l da l s o b v i d e o c a b l e , s m a l l m e t a l s w i t c h b o t h a t a l l o w s y o t c h o o s eb e t w e e n t h c o m p u t e r a n n o r m a l t e l e v i s i o n r e c e p t i o n , a n b o o k e n t i t l e dt h C o m m o d o r e 6 U s e r s G u i d e . I i a l t h e r e ?

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 19/318

F i n d i n g H o m e

i s h i p m e n t . T h e s e c o u l d b s y m p t o m s o h i d d e n i n t e r n a l d a m a g e . I a n y t h i n gl o o k s s u s p i c i o u s , l a k e i b a c k t w h e r e y o m a d e y o u r p u r c h a s e a n i n s i s to n e o n e . D o n ' t l e d e a l e r t e l l y o t h d a m a g e i o n l y c o s m e t i c w i t h o u th a v i n g i t h o r o u g h l y c h e c k e d .

F i n d i n g H o m eY o s h o u l d d e c i d e w h e r e y o u ' r e g o i n g t u s y o u r c o m p u t e r . Y o u r f i r s t

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

I a a l p o s s i b l e , c h o o s e a n o t h e r p l a c e , o n m o r e c o n d u c i v e t t h i n k i n ga n w o r k . W h e r e d o y o u d h o m e w o r k , t e n d t y o u r p e r s o n a l r e c o r d s , p a b i l l s o w r i t e l e t t e r s ? W h e r e v e r t h a t i s i i p r o b a b l y t h b e s t p l a c e f o t h c o m p u t e r .

L i k e a t y p e w r i t e r , t h e c o r r e c t p l a c e m e n t o c o m p u t e r i i d e a l l y l o w e rt h a n s t a n d a r d d e s k o t a b l e t o p . T h i s i s y o c a t y p e o t h k e y b o a r dw i t h o u t s t r a i n i n g y o u r h a n d s a n a r m s . S o m e d e s k s h a v e l i t t l e s h e l v e s t h a ts l i d e o u t a c c o m m o d a t e t y p e w r i t e r . O t h e r s a r d e s i g n e d w i t h c o m p u t e r s

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 20/318

2 — S e t t i n g U

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

S i n c e c o m p l e t e c o m p u t e r s y s t e m i m o r e t h a n j u s t t h e c o m p u t e r i t s e l f ,c o n s i d e r s p a c e . I y o h a v e C o m m o d o r e 6 4 y o w i l l n e e d t e l e v i s i o n s e o v i d e o m o n i t o r , t s t a r t . ( T h e p o r t a b l e a n c l a s s r o o m v e r s i o n s o t h 6 h a v e t h e i r o w v i d e o s c r e e n s . ) Y o m a c h o o s e t u s e i t h e r t a p e r e c o r d e ro f l o p p y d i s k d r i v e f o d a t a s t o r a g e . I y o u w a n t t u s m o d e m — at e l e p h o n e l i n k t t a l k t o t h e r c o m p u t e r s — i t , t o o , t a k e s u s p a c e . S d o e st h p o w e r s u p p l y . A l o t h e s e p i e c e s o e q u i p m e n t s h o u l d b l a v e d o u t s t h a t t h e y a r e n o c r a m p e d . T h e r e s h o u l d b e e n o u g h s p a c e b e t w e e n t h c o p u t e r a n s c r e e n , f o e x a m p l e , s t h a t y o c a g e t t h c o m p u t e r t p l u ga n u n p l u g c a b l e s a n g a m e o p r o g r a m c a r t r i d g e s .

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

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

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 21/318

T e l e v i s i o n S e t s v s V i d e o M o n i t o r s

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

L i g h t i n g i a i m p o r t a n t c o n s i d e r a t i o n . O v e r h e a d l i g h t i n g i p r o b a b l yt h b e s t . d e s k l a m p i g o o d f o i l l u m i n a t i n g t h k e y b o a r d a n p r i n t e dm a t e r i a l s . I n e i t h e r c a s e , m a k e s u r e t h a t t h e l i g h t i n e i t h e r t o b r i g h t n o t o d i m , a n a b o v e a l l , t h a t i d o e s n o r e f l e c t o f t h v i d e o s c r e e n . D o n ' t p u t h s c r e e n o p p o s i t e w i n d o w i t h r o o m . W i n d o w g l a r e a n r e f l e c t i o n s a r d i s t r a c t i n g a n c a c a u s e e y e s t r a i n .

C o n s i d e r y o u r a c c e s s t e l e c t r i c p o w e r a n d t w a l l s o c k e t s . F o t h C o m o d o r e 6 s y s t e m , y o w i l l n e e d o n o u t l e t f o t h c o m p u t e r ( a c t u a l l y t h p o w e r s u p p l y ) , a n o t h e r f o t h v i d e o s c r e e n , a n o t h e r f o a f l o p p y d i s k d r i v e ,a n p o s s i b l y o n m o r e f o p r i n t e r , i y o h a v e o n e . I y o c h o o s e n o t u s C o m m o d o r e ' s m o d e m ( w h i c h r e q u i r e s n e x t e r n a l p o w e r c o n n e c t i o n ) b u a n o t h e r b r a n d , y o u ' l l n e e d s t i l l a n o t h e r o u t l e t .

T h s o l u t i o n t t h i s m i n o r e n e r g y c r i s i s i t u s a e l e c t r i c a l a c c e s s o r yc a l l e d " p o w e r s t r i p " o j u n c t i o n b o x . H a r d w a r e s t o r e s s e l l t h e m a n d m o s tm o d e l s a r u s e f u l . M a k e c e r t a i n , h o w e v e r , t h a t t h e b o o p o w e r s t r i p i f u s e do h a i t o w " c i r c u i t b r e a k e r . " T h i s w i l l p r e v e n t a s o c k e t f r o m b e c o m i n go v e r l o a d e d . O v e r l o a d i n g i d a n g e r o u s , b u t h e r e i o n m o r e c o n s i d e r a t i o n .I y o a r p r o g r a m m i n g o r e n t e r i n g d a t a a n b l o w f u s e , y o w i l l l o s e t h p r o g r a m o d a t a y o h a v e e n t e r e d .

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

T e l e v i s i o n S e t s v s V i d e o M o n i t o r sY o h a v e t w c h o i c e s i s e l e c t i n g v i d e o d i s p l a y f o t h C o m m o d o r e

6 4 Y o c a c h o o s e t u s e i t h e r T s e o a v i d e o m o n i t o r . H e r e a r t h d i f f e r e n c e s b e t w e e n t h e m .

t e l e v i s i o n s e i r e c e i v e r . L i k e a r a d i o , i i m e a n t t t u n e i b r o a d c a s t( o r c a b l e ) T s t a t i o n s . T h e s e s t a t i o n s p u o u R F o r a d i o f r e q u e n c y s i g n a l s .T h 6 p u t s o u t s i m i l a r t e l e v i s i o n s i g n a l o c h a n n e l o t h a t l o o k s , t T s e t , l i k e a n o t h e r s t a t i o n . I n s i d e t h e t e l e v i s i o n , c i r c u i t r y s e p a r a t e s o u tt h v i d e o s i g n a l a n f e e d s i t t h e p i c t u r e t u b e .

v i d e o s i g n a l i d i f f e r e n t f r o m a R s i g n a l a n i u s u a l l y c o n s i d e r e dt b v i s u a l l y " c l e a n e r . " v i d e o m o n i t o r i d e s i g n e d t a c c e p t v i d e o s i g n a l s —m o s t T s e t s c a n ' t . S i n c e m o n i t o r d o e s n o t n e e d t p r o c e s s t h s i g n a l a n s e p a r a t e i f r o m i t r a d i o f r e q u e n c y c o m p o n e n t s , i u s u a l l y d i s p l a y s c l e a r e r ,s h a r p e r i m a g e s . F u r t h e r m o r e , s i n c e m o s t m o n i t o r s d o n ' t c o n t a i n T c h a n n e ls e l e c t o r s ( t u n e r s ) , t h e y a r n o s e n s i t i v e t s t r o n g s i g n a l s f r o m n e a r b y T s t a t i o n s o r o t h e r t y p e s o r a d i o f r e q u e n c y i n t e r f e r e n c e .

S o m e o t h v e r y n e w e s t c o n s u m e r t e l e v i s i o n s y s t e m s a r c a l l e d " c o mp o n e n t " T V s . T h e s e s e t s c o n s i s t o f a s e p a r a t e m o n i t o r a n t u n e r a n a r u s u a l l y i d e a l f o c o m p u t e r u s e .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 22/318

2 — S e t t i n g U

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

N o a l t e l e v i s i o n s e t s w o r k w e l l w i t h p e r s o n a l c o m p u t e r s . M a n y o l d e rs e t s w e r e n o d e s i g n e d w i t h c o m p u t e r s ( o e v e n v i d e o g a m e s ) i m i n d . P i t u r e s o t h e s e s e t s t e n d t l a c k s t a b i l i t y — t h e y l o o k " s q u e a m i s h . " O t h e r o l d e r -s e t s ( a n d f e n e o n e s ) a r e j u s t n o s h a r p e n o u g h t r e a d t h c h a r a c t e r s

p e r s o n a l c o m p u t e r s e n d s t t h s c r e e n .C o l o r c a a l s o b p r o b l e m . I t h e p i c t u r e t u b e o a o l s e i b a d , i

m a n o t d i s p l a y c o l o r s c o r r e c t l y , o a c o n d i t i o n k n o w n a " b l o o m i n g " c a o c c u r . W h e n t h i s h a p p e n s , o n c o l o r o t h s c r e e n l i g h t s u b r i g h t e r t h a no t h e r s a n b l u r s t h w o r d s o i h s c r e e n . I c a c a u s e f r i n g i n g a n s m e a r i n ga n m a k e l i n e p r i n t e d b t h c o m p u t e r d i f f i c u l t o i m p o s s i b l e t r e a d .

A n o t h e r c o n d i t i o n c o m m o n t t e l e v i s i o n s e t s ( a n d l o u n d o m o n i t o r s ,t o o ) i " o v e r s c a n n i n g . " B a s i c a l l y , t h i s m e a n s t h a t a p o r t i o n o f t h e p i c t u r e o t h t o a n b o t t o m o s i d e s o f t h e s c r e e n i c h o p p e d o f f . A l T s e t s a n d m o s tm o n i t o r s o v e r s c a n s l i g h t l y ( o t h e r w i s e y o u ' d a l w a y s s e e a b l a c k b o r d e r a r o u n d

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 23/318

1 T e l e v i s i o n S e t s v s V i d e o M o n i t o r s

s c r e e n i n f o r m a t i o n . T h i s k i n d o s e i t o t a l l y u s e l e s s w i t h a n c o m p u t e r .( O n e a d v a n t a g e o t h C o m m o d o r e 6 f a m i l y c o m p u t e r s i t h a t t h e s c r e e n i s u r r o u n d e d b b o r d e r , s o o v e r s c a n n i n g i s o m e w h a t l e s s o a p r o b l e m . )

I y o a r g o i n g t u s e a t e l e v i s i o n s e t — a n d b e c a u s e o c o s t c o n s i d e r at i o n s , m a n y p e o p l e d o — a g o o d r u l e o t h u m b s a y s t h a t n e w , b u i n e x p e n s i v eT i a l m o s t a l w a y s b e t t e r t h a n a o l o n e . B a r g a i n h u n t i n g f o u s e d s e i t h l e a s t p r e f e r a b l e o t h a l t e r n a t i v e s .

T h e r e ' s d i f f e r e n c e , t o o , b e t w e e n t h q u a l i t y o b l a c k - a n d - w h i t e a n c o l o r m o n i t o r s . A l v i d e o s c r e e n s ( e x c e p t t h o s e f o u n d o s o m e o t h n e w ,h i g h - t e c h p o c k e t p o r t a b l e s ) a r c o m p r i s e d o p h o s p h o r s , c h e m i c a l c o a t i n g sw h i c h l i g h t u w h e n s t r u c k b b e a m o e n e r g y i n s i d e t h e p i c t u r e t u b e .

C o l o r v i d e o s c r e e n s u s a a r r a n g e m e n t o g r e e n , b l u e a n r e c o l o r e dp h o s p h o r s . S c r e e n s t h a t a r e n ' t d e s i g n e d f o c o l o r — m o n o c h r o m e s c r e e n s t h a td i s p l a y w h i t e , g r e e n , b l u e o a m b e r i m a g e s a g a i n s t a d a r k b a c k g r o u n d — u s eo n l y o n e k i n d o p h o s p h o r . G r e e n i t h m o s t p o p u l a r c o l o r f o m o n o c h r o m em o n i t o r s i n c e m o s t p e o p l e b e l i e v e i i e a s i e s t o y o u r e y e s .T h c o l o r m o n i t o r , o t h o t h e r h a n d , m a k e s i t b l a c k r a n d - w h i t e p i c t u r eb c o m b i n a t i o n o i t c o l o r e d p h o s p h o r s , s o t h e c h a r a c t e r s o i t s c r e e na r e g e n e r a l l y n o a s h a r p . M o s t m o n o c h r o m e m o n i t o r s c a n e a s i l y d i s p l a ya m a n y a 8 c o m p u t e r - g e n e r a t e d c h a r a c t e r s o s i n g l e l i n e . C o l o r m o n i t o r st h a t c a n b e u s e d w i t h t h C o m m o d o r e 6 f a m i l y a r u s u a l l y l i m i t e d b t h e i rr e s o l u t i o n t a b o u t h a l f t h a t m a n y s c r e e n c h a r a c t e r s .

O n t y p e o c o l o r m o n i t o r i k n o w n a " R G B " ( f o r R e d , G r e e n a n B l u e ) ,a n i t p i c t u r e i e s p e c i a l l y s h a r p , w i t h a l m o s t t h c l a r i t y o s o m e m o n oc h r o m e m o n i t o r s . R G m o n i t o r s r e q u i r e s p e c i a l v i d e o o u t p u t o t h e r t h a nt h o n f o u n d o t h C o m m o d o r e 6 f a m i l y . ( D o n ' t w o r r y , m o s t o t h e r c o p u t e r s i n t h e i r p r i c e r a n g e d o n ' t h a v e R G o u t p u t s e i t h e r . ) S y o u ' r e r s t r i c t e d t o u s i n g m o s t o t h e r m o n i t o r s w h i c h a c c e p t s o - c a l l e d " c o m p o s i t e "v i d e o , t h m o s t c o m m o n t y p e .

T h A m d e k C o l o r - I i a e x a m p l e o a i n d u s t r y s t a n d a r d c o l o r m o n i t o ra n i w e l l s u i t e d f o u s w i t h t h C o m m o d o r e 6 4 I i r u g g e d a n d i s p l a y s

v e r y h i g h - q u a l i t y p i c t u r e . I a d d i t i o n , t h 6 4 ' s s o u n d c a b e p i p e d t h r o u g hi t i n t e r n a l a m p l i f i e r a n s p e a k e r . C o m m o d o r e a l s o s e l l s i t o w l i n e o c o l o rm o n i t o r s s p e c i a l l y d e s i g n e d f o u s w i t h i t c o m p u t e r s .

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

s t a n d a r d , b l a c k - a n d - w h i t e t e l e v i s i o n s e w i l l n o a l w a y s w o r k a w e l la m o n o c h r o m e m o n i t o r . W h e n u s i n g m o n o c h r o m e m o n i t o r , y o c a u s

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 24/318

2 — S e t t i n g U

H o o k i n g U 1

C o n n e c t i n g C o m m o d o r e 6 i a b o u t a s i m p l e a a t t a c h i n g i h p i e c e so s t e r e o h i - f i s y s t e m . Y o s h o u l d n ' t n e e d a n h e l p , e v e n i y o c o n s i d e ry o u r s e l f t e c h n i c a l l y i n e p t .

T g e g o i n g , h e r e i c o m p u t e r i t s e l f .l i s i o t h m o s t i m p o r t a n t c o n n e c t i o n s o t h

P o w e r T h e l e c t r i c p o w e r c o n n e c t o r i l o c a t e d o t h r i g h t s i d e o ft h C o m m o d o r e 6 4 n e a r t h r e a r . I i r o u n d , 7 - p i n s o c k e t t h a t i u s e d t a t t a c h t h p o w e r s u p p l y . I t h c o r d s a e i t h e r e n o t h p o w e r s u p p l v a r b e n t o b r o k e n , d n o p l u g i i n I c o u l d h a v e d i s a s t r o u s e f f e c t o t h c o m p u t e r . N e v e r a t t a c h a n o t h e r k i n d o p o w e r s u p p l v t t h c o m p u t e r ,e i t h e r , e v e n i t h p l u g s f i c o r r e c t l y .

C a s s e t t e P o r t L o o k i n g a t h b a c k o t h C o m m o d o r e 6 4 t h i s i t h s e c o n d o p e n i n g f r o m t h r i g h t . A c t u a l l y , i i t h e d g e o t h p r i n t e d c i r c u i tb o a r d o n w h i c h t h c o m p u t e r i b u i l t . A t t a c h t h C o m m o d o r e c a s s e t t e r c o r d e r t t h i s f l a t c o n n e c t o r , m a k i n g s u r e t h " k e y " ( p i e c e o p l a s t i c i n s i d et h p l u g o t h c a s s e t t e c a b l e ) i i t h s a m e p o s i t i o n a s t h s l o t o t h c o n n e c t o r .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 25/318

1 H o o k i n g U

R M o d u l a t o r " R F " s t a n d s f o r a d i o f r e q u e n c y m o d u l a t o r . ( I i a l s o c a l l e d t h " T C o n n e c t o r " b C o m m o d o r e . ) T h i s i t h c o n n e c t i o n t h a tf e e d s T s i g n a l f r o m t h c o m p u t e r t s t a n d a r d t e l e v i s i o n s e t . P l u g t h t h i n c a b l e t h a t c o m e s w i t h t h 6 b e t w e e n t h i s r o u n d c o n n e c t o r ( f i f t h h o l ef r o m t h r i g h t , l o o k i n g a t h b a c k ) a n t h s w i t c h b o t h a t c o n n e c t s t t h T s e t . C o n n e c t t h s w i t c h b o t t h a n t e n n a t e r m i n a l s o f t h e t e l e v i s i o n s e t .

S e r i a l P o r t T h i s i a a l l - i m p o r t a n t c o n n e c t i o n b e t w e e n t h c o p u t e r a n f l o p p y d i s k s t o r a g e u n i t s , p r i n t e r s , e t c . L o c a t e d t h i r d f r o m t h r i g h ta t h r e a r , i u s e s a 5 - p i n r o u n d p l u g . T h c a b l e f u r n i s h e d w i t h C o m m o d o r e ' sf l o p p y d i s k d r i v e o p r i n t e r f i t s i t P l u g o n e n i n t o t h c o m p u t e r , t h o t h e ri n t o e i t h e r s i m i l a r s o c k e t a t h r e a r o t h e d i s k u n i t o p r i n t e r . T d i s t i n g u i s ht h s e r i a l p o r t f r o m t h c o n n e c t o r t h a t a c c o m m o d a t e s t h m o d e m , o t e l ep h o n e l i n k , i i o f t e n c a l l e d t h " V I C s e r i a l b u s . "

C a r t r i d g e P o r t L o c a t e d a t h f a l e f t o t h m a c h i n e , w h e n l o o k i n ga i f r o m t h e b a c k , t h i s c o n n e c t i o n h a s m y r i a d o u s e s . T h i s i w h e r e g a m e so r o t h e r p r o g r a m s p a c k a g e d a s c a r t r i d g e s w i l l b p l u g g e d i n S o m e a d a p t e r st h a t a l l o w y o t u s d i s k d r i v e s o t h e r t h a n C o m m o d o r e ' s a l s o u s t h i s p o r t ,a d c a r t r i d g e s c o n t a i n i n g o p t i o n a l m i c r o p r o c e s s o r c h i p s .

U s e r P o r t L o c a t e d i b a c k o n t h f a r i g h t s i d e , t h i s i a a l l - p u r p o s ec o n n e c t o r . P r i m a r i l y , i i u s e d t c o n n e c t C o m m o d o r e ' s t e l e p h o n e l i n k , o m o d e m , b u i a l s o s o m e t i m e s u s e d t c o n n e c t p r i n t e r s a n o t h e r a c c e s s o r i e sa w e l l . E x p e r i m e n t e r s l i k e t h i s p o r t f o h o m e m a d e g a d g e t s . I i o f t e n r f e r r e d t a t h " p a r a l l e l p o r t " b e c a u s e i h a e i g h t p a r a l l e l d a t a c o n n e c t i o n s .

C o n t r o l P o r t s L o c a t e d o t h r i g h t s i d e o t h c o m p u t e r , t h t w c o n t r o l p o r t s a r u s e d m a i n l y f o c o n n e c t i n g . g a m e c o n t r o l l e r s , j o y s t i c k s , a n p a d d l e s . S o m e p r o g r a m s , h o w e v e r , a r b e i n g s o l d w i t h t i n y " b l a c k b o x e s "c a l l e d " k e y s " t h a t a r r e q u i r e d t b e c o n n e c t e d t o n o f t h e c o n t r o l p o r t st w o r k . ( T h i s i s e c u r i t y m e a s u r e t h a t p r o t e c t s t h a t p r o g r a m a g a i n s t u a u t h o r i z e d c i r c u l a t i o n . )

A - V P o r t T h i s i a l s o c a l l e d t h e a u d i o - v i d e o c o n n e c t o r . I t i s t h s o c k e tu s e d t c o n n e c t t h 6 t m o n o c h r o m e a n c o l o r m o n i t o r s , t c o n n e c t t h o u t p u t o i t s o u n d g e n e r a t o r t a e x t e r n a l a m p l i f i e r ( l i k e s t e r e o s y s t e m ) ,a n t f e e d s o u n d f r o m a n o u t s i d e s o u r c e ( s u c h a t a p e r e c o r d e r , m i c r op h o n e , o m u s i c a l i n s t r u m e n t ) t t h c o m p u t e r .

I y o a r h a n d y w i t h s o l d e r i n g i r o n , y o c a m a k e y o u r o w c o n e c t i n g c a b l e s b a s e d o t h e d e s c r i p t i o n o t h p l u g i t h m a n u a l t h a t c a m ew i t h y o u r c o m p u t e r . I n o t , y o c a h a v e y o u r d e a l e r ( o s o m e o n e e l s e ) m a k et h e m f o y o u , o y o c a b u c o m m e r c i a l l y a v a i l a b l e o n e s .

W h e n u s i n g a s t a n d a r d t e l e v i s i o n s e t , d o n ' t w o r r y a b o u t t h i s a u d i o -v i d e o p l u g . B o t h s o u n d a n p i c t u r e w i l l c o m e o u o y o u r T V

I y o p l a n t u s m o n o c h r o m e v i d e o m o n i t o r ( n o t b l a c k - a n d - w h i t et e l e v i s i o n s e t ) , a s y o u r d e a l e r o t e c h n i c i a n t m a k e s p e c i a l c a b l e f o

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 26/318

2 — S e t t i n g U 1

y o u . P i # o t h a u d i o - v i d e o c o n n e c t o r i i d e n t i f i e d a " l u m i n a n c e . " T h i sa l l o w s y o t u s o n l y t h b l a c k - a n d - w h i t e p o r t i o n o t h c o m p u t e r ' s v i d e os i g n a l a n o f f e r s t h b e s t s c r e e n s h a r p n e s s .

C h e c k i n g I O u I y o a l r e a d y h a v e c o n n e c t e d t h c o m p o n e n t s o y o u r c o m p u t e r s y s t e m

a n k n o w l h a l i i w o r k i n g c o r r e c t l y , y o c a s k i p t h i s s e c t i o n a n r e a d o n H o w e v e r , i y o u ' v e j u s l p u r c h a s e d y o u r m a c h i n e a n d w a n t t k n o w i e v e r yt h i n g i w o r k i n g a i s h o u l d , h e r e ' s s i m p l e c h e c k - o u t y o c a p e r f o r m .

T m a k e s u r e t h a t y o u r c o m p u t e r s y s t e m i w o r k i n g , c o n n e c t a l t h p i e c e s . I y o a r u s i n g c o l o r t e l e v i s i o n s e t , c o n n e c t t h r o u n d v i d e o c a b l et t h R m o d u l a t o r o u t p u t a n t h a n t e n n a s w i t c h b o x . A t t a c h t h s w i t c hb o t y o u r t e l e v i s i o n ' s a n t e n n a c o n n e c t o r . I y o a r u s i n g v i d e o m o n i t o r ,c o n n e c t i h a p p r o p r i a t e c a b l e s t i t C o n n e c t t h C o m m o d o r e c a s s e t t e r c o r d e r a n d / o r t h f l o p p y d i s k d r i v e t t h c o m p u t e r . I y o h a v e p r i n t e r ,c o n n e c t i n o t t h c o m p u t e r , b u t t h e m p t y s o c k e t a t h e r e a r o t h d i s k d r i v e .

I y o h a v e t h p o r t a b l e o c l a s s r o o m v e r s i o n o t h C o m m o d o r e 6 4 m o s to t h e s e c o n n e c t i o n s a r a l r e a d y m a d e f o y o i n s i d e t h c a s e .

T g e e v e r y t h i n g g o i n g , t u r n o e a c h p i e c e o e q u i p m e n t . A d j u s t t h c o l o r o t h m o n i t o r o t e l e v i s i o n s e s t h a t t h s c r e e n i b l u e , w i t h l i g h tb l u e c h a r a c t e r s a n b o r d e r . O t h C o m m o d o r e 6 i h s c r e e n s h o u l d r e a d :

* * * * C O M M O D O R E L B A S I C V * * * *b 4 K R A M S Y S T E M 3 f l q i l B A S I C B Y T E S F R E ER E A D Y .

* - * * * C O H t i O D O R E 6 4 B A S I C y * * * *6 4 R A S Y S T C t t 3 8 3 1 1 B A S I C B V T E S F B E EE A D V ,

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 27/318

1 C h e c k i n g I O u

( T h e m e s s a g e t h a t c o m e s u p o t h p o r t a b l e a n c l a s s r o o m c o m p u t e r ss h o u l d b s i m i l a r , i n o e x a c t l y t h e s a m e . )

T h e r e s h o u l d b s m a l l , l i g h t b l u e s q u a r e f l a s h i n g o a n o f b e n e a t ht h w o r d R E A D Y . T h i s s q u a r e i c a l l e d t h e " c u r s o r . " I i F r e n c h w o r d t h a tm e a n s " r u n n e r . " T h c u r s o r " r u n s " a c r o s s t h e s c r e e n , a l w a y s i n d i c a t i n g y o u rc u r r e n t p o s i t i o n .

W h a t d o e s t h i s m e s s a g e m e a n ?T h t o l i n e t e l l s y o t h a t t h i s i B A S I C V 2 , o r v e r s i o n # o t h c o

p u t e r ' s p r o g r a m m i n g l a n g u a g e , c a l l e d B A S I C . S i x t y - f o u r " K ( f o r " k i l o " o t h o u s a n d ) R A m e a n s t h a t t h e r e a r e o v e r 6 4 , 0 0 0 c h a r a c t e r s o R A M , o r a n d o m a c c e s s m e m o r y , a l s o c a l l e d r e a d - a n d - w r i t e m e m o r y , a v a i l a b l e i t h s y s t e m . F i n a l l y , 3 8 9 1 1 B A S I C B Y T E S F R E E m e a n s t h a t , o t h t o t a l m e m o r y ,3 8 , 9 1 1 b y t e s ( e a c h b y t e i t h e q u i v a l e n t o c h a r a c t e r ) a r e a v a i l a b l e f o w r i t i n g B A S I C p r o g r a m s . I t h e r e i 6 4 o m e m o r y i t h c o m p u t e r , w h c a n ' t y o u s m o r e o i t T h c o m p u t e r i t s e l f u s e s t h r e m a i n d e r o t h m e m o r y f o t h B A S I C l a n g u a g e a n f o i t o w o p e r a t i o n .I y o u r C o m m o d o r e 6 d o e s n ' t c o m e u w i t h t h a t m a g i c n u m b e r — 3 8 9 1 1B A S I C B Y T E S F R E E — p u t i b a c k i t h b o a n r e t u r n i t w h e r e i w a p u r c h a s e d . S o m e t h i n g i w r o n g a n t h c o m p u t e r n e e d s t b r e p a i r e d o rr e p l a c e d .

I t h c u r s o r i n o o t h s c r e e n n e a r t h w o r d R E A D Y , o i i i n o b l i n k i n g o a n o f f , t h i s i a l s o s i g n t h a t t h c o m p u t e r i s n ' t w o r k i n g p r o pe r l y .

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

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

T h k e y b o a r d s o f t h e C o m m o d o r e 6 f a m i l y w o r k s l i g h t l y d i f f e r e n t l yt h a n a o r d i n a r y t y p e w r i t e r k e y b o a r d . F o o n t h i n g , t h e r e a r e m o r e k e y s ,a n d , w h e n t h m a c h i n e i t u r n e d o n a l o t h l e t t e r s t y p e d w i l l b i u p p e rc a s e ( c a p i t a l l e t t e r s ) o t h s c r e e n . I y o p r e s s t h e S H I F T k e a n t r y t ot y p e l e t t e r , y o w i l l s e a u n u s u a l s y m b o l . F o r n o w , d o n ' t w o r r y a b o u tt h o s e .

T y p e i t h i s s h o r t p r o g r a m e x a c t l y a i a p p e a r s b e l o w . A t t h e n o e a c h n u m b e r e d l i n e p r e s s t h e R E T U R N k e y . I t i s u s e d t e n t e r i n f o r m a t i o ni n t o t h c o m p u t e r .

I P R I N T " T H I S I M C O M M O D O R E C O M P U T E R "E G O T O I

B r i e f l y , l i n e n u m b e r 1 o t h i s l i t t l e p r o g r a m t e l l s t h c o m p u t e r t t y p et h s e n t e n c e T H I S I M C O M M O D O R E C O M P U T E R o t h v i d e o s c r e e n .L i n e n u m b e r 2 t e l l s t h m a c h i n e t d i a g a i n a n a g a i n a n a g a i n . T h i s ,b t h w a y , i p r o b a b l y t h k i n d o B A S I C c o m p u t e r p r o g r a m a n y o n e w h h a u s e d p e r s o n a l c o m p u t e r h a w r i t t e n f i r s t .

N o t y p e t h w o r d R U a n p r e s s t h k e m a r k e d R E T U R N t e n t e rt h i s c o m m a n d .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 28/318

2 — S e t t i n g U 1

T h s c r e e n s h o u l d q u i c k l y f i l l w i t h t h s e n t e n c e T H I S I M Y C O M M OD O R E C O M P U T E R . A l t h o u g h t h b o t t o m l i n e s h o u l d b f l i c k e r i n g o a n o f ( i n d i c a t i n g t h a t s e v e r a l n e l i n e s p e s e c o n d a r b e i n g d i s p l a y e d o t h s c r e e n ) , t h s e n t e n c e s h o u l d b c l e a r a n e a s y t r e a d . I t h s c r e e n i f i l l e dw i t h " s n o w 1 1 o r o t h e r i n t e r f e r e n c e , i h a f l u n k e d t h t e s t . T a k e i b a c k t w h e r e y o u b o u g h t i a n a s t h e m f o n e c o m p u t e r .S o m e o C o m m o d o r e ' s c o m p u t e r s c o m e o f t h a s s e m b l y l i n e i l e s s t h a np e r f e c t c o n d i t i o n . O n o f t h e m o r e c o m m o n p r o b l e m s ( a l e a s t w i t h e a r l ym o d e l s ) i t h a t t h e C o m m o d o r e 6 4 ' s s c r e e n b e c o m e s " s n o w y " w h e n p r o g r a mi r u n n i n g . T h i s i C o m m o d o r e ' s p r o b l e m , n o y o u r s , a n y o a r e n t i t l e d t

c o m p u t e r t h a t w o r k s p r o p e r l y .I t h i s t e s t p r o g r a m R U N s a n t h c o m p u t e r w o r k s w e l l , s t o p t h p r o g r a m

b p r e s s i n g t h k e m a r k e d R U N / S T O P a t h l e f t o t h k e y b o a r d . T h s c r e e ns h o u l d n o r e a d :

B R E A K I L I N E I R E A D Y .

o

B R E A K I L I N E E R E A D Y .T h c u r s o r s h o u l d a g a i n b v i s i b l e a n b l i n k i n g .N o w , t r t S A V E a n L O A D t h i s p r o g r a m t a n f r o m c a s s e t t e t a p e .

P u o n i t h r e c o r d e r a n m a k e s u r e i i r e w o u n d . T S A V E t h p r o g r a mt o t a p e , t y p e t h w o r d s :

S A V E " P R O G R A M O N E 1 1P r e s s t h e R E T U R N k e y .T h e c o m p u t e r s h o u l d c o m e b a c k w i t h :P R E S S R E C O R D P L A Y O T A P E

D w h a t t h c o m p u t e r t e l l s y o u . P r e s s t h e k e y s m a r k e d R E C O R D a n P L A Y o t h C o m m o d o r e c a s s e t t e r e c o r d e r . T h s c r e e n s h o u l d g o b l a n k a n t u r n t h s a m e c o l o r o l i g h t b l u e a s t h e b o r d e r f o a b o u t 2 0 s e c o n d s . W h e nt h s c r e e n c o m e s b a c k , i s h o u l d a g a i n s a R E A D Y . N o w , r e w i n d t h t a p e .

B t h w a y , i y o a r a t t e m p t i n g t u s a n c a s s e t t e r e c o r d e r o t h e r t h a nC o m m o d o r e ' s , i w o n ' t w o r k u n l e s s y o h a v e t h p r o p e r a d a p t e r . T h C o m o d o r e D a t a s e t t e c a s s e t t e r e c o r d e r h a s p e c i a l c i r c u i t r y w h i c h s e n s e s w h e ni t k e y s a r p r e s s e d d o w n . S e v e r a l c o m m e r c i a l l y a v a i l a b l e a d a p t e r s a l l o wy o t u s s t a n d a r d c a s s e t t e r e c o r d e r s a n m i m i c t h f u n c t i o n s o C o m m od o r e ' s r e c o r d e r .

W i t h t h t a p e r e w o u n d , t u r n t h c o m p u t e r o f a n o a g a i n . T h i s c o p l e t e l y c l e a r s w h a t e v e r w a i i t m e m o r y . ( T h i s i j u s t o n w a t r e s e t t h m a c h i n e . Y o u ' l l l e a r n a b o u t o t h e r , b e t t e r w a y s . ) T y p e t h w o r d L O A D a n p r e s s t h R E T U R N k e y . T h e c o m p u t e r s h o u l d s a y :

P R E S S P L A Y O T A P E

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 29/318

1 C h e c k i n g I O u

P r e s s t h e k e m a r k e d P L A Y o t h c a s s e t t e r e c o r d e r . T h s c r e e n w i l la g a i n g b l a n k f o f e s e c o n d s . W h e n t h t a p e r e c o r d e r s t o p s , t h s c r e e nw i l l r e t u r n w i t h t h w o r d s :

F O U N D P R O G R A M O N T h e m a c h i n e i w a i t i n g f o y o t t e l l i t g a h e a d a n L O A D t h

p r o g r a m . T d s o p r e s s t h k e i t h l o w e r l e f t - h a n d c o r n e r o t h k e y b o a r dw i t h t h C o m m o d o r e l o g o o i t T h s c r e e n w i l l a g a i n g o b l a n k f o f e s e c o n d s . W h e n i c o m e s b a c k i s h o u l d s a y :

L O A D I N GR E A D Y .T y p e R U a n p r e s s t h R E T U R N k e y . T h p r o g r a m s h o u l d o p e r a t e a

i d i b e f o r e . S i n c e t h c o m p u t e r ' s m e m o r y w a c l e a r e d w h e n y o f l i p p e dt h p o w e r s w i t c h o f a n o a g a i n ( n m a t t e r h o b r i e f l y i w a o f f ) , t h i sp r o v e s t h a t i c a S A V E a n L O A D p r o g r a m t a n f r o m c a s s e t t e t a p e . I i p a s s e d t h i s t e s t , i t ' s i g o o d s h a p e .

I y o u h a v e d i s k d r i v e , t r y t o S A V E a n L O A D t a n f r o m a f l o p p yd i s k . T u r n t h e d i s k d r i v e o n m a k i n g s u r e t h a t t h e r e i n d i s k i n s i d e o f i t

N O T E : U n l i k e m a n y o t h e r c o m p u t e r s , C o m m o d o r e ' s d i s k d r i v e i l i k e l yt d a m a g e t h d a t a o t h d i s k i i i t u r n e d o o o f w i t h f l o p p y d i s kl o c k e d i n s i d e .

I n s e r t n e w , b l a n k f l o p p y d i s k w i t h t h l a b e l u a n t h o b l o n g d i s ko p e n i n g t t h r e a r . P u s h i i n u n t i l t h e d i s k s t o p s i p l a c e i n s i d e t h d r i v e .C l o s e t h e d i s k d r i v e d o o r b y p u l l i n g t h e m e t a l t a d o w n a n t o w a r d y o u u n t i li l a t c h e s .

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

T p r e p a r e a d i s k , t y p e :O P E N 1 f 1 [ t h e n p r e s s R E T U R N ]P R I N T # 1 » N P R O G R A M D I S K , P D » [ t h e n p r e s s R E T U R N ]T h r e l i g h t o t h f r o n t o t h d i s k d r i v e s h o u l d g o f o m i n u t e o

t w a n y o s h o u l d b a b l e t h e a r t h e d i s k s p i n n i n g i n s i d e .T h e r e a r t w s m a l l l i g h t s o t h f r o n t o t h C o m m o d o r e d i s k d r i v e .T h g r e e n l i g h t s h o w s t h a t t h e m a c h i n e i t u r n e d o n T h s e c o n d l i g h t , r e o n e , h a t w f u n c t i o n s . F i r s t , i s h o w s y o u t h a t i n f o r m a t i o n i b e i n g t a k e nf r o m o r g i v e n t t h f l o p p y d i s k . B u i t h i s r e l i g h t f l a s h e s , i i a i n d i c a t i o nt h a t a e r r o r h a o c c u r r e d . S u c h a e r r o r m i g h t b y o u r s , o i m i g h t b t h m a c h i n e ' s .

I t h r e l i g h t i f l a s h i n g , t r a g a i n a n m a k e c e r t a i n y o t y p e t h a b o v es e q u e n c e e x a c t l y a s h o w n . I i i n o f l a s h i n g o a n o f f , y o h a v e s u c c e s sf u l l y p r e p a r e d t h d i s k . N o t y p e ;

S A V E " P R O G R A M O N E " , f l

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 30/318

2 — S e t t i n g U 1

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

W h e n t h d i s k d r i v e s t o p s ( y o u ' l l h e a r i a n t h r e l i g h t w i l l g o u t ) ,t u r n t h c o m p u t e r o f a n o a g a i n . T h e n t y p e t h i s :

L O A D f [ t h e n p r e s s R E T U R N ]W h e n t h m a c h i n e c o m e s b a c k w i t h R E A D Y , t y p e L I S T a n d p r e s s R

T U R N . Y o s h o u l d s e s o m e t h i n g l i k e t h i s :" P R O G R A M D I S K P Z

" P R O G R A M O N E " P R Gb b B L O C K S F R E E .R E A D Y .T h i s i t h d i s k d i r e c t o r y — i t t e l l s y o t h n a m e o f t h e d i s k ( " P R O G R A M

D I S K " ) , t h p r o g r a m s s t o r e d o i ( j u s t o n e , c a l l e d " P R O G R A M O N E " ) , a n dh o m u c h r o o m i l e f t ( 6 6 3 b l o c k s , o a p p r o x i m a t e l y 1 6 8 , 0 0 0 b y t e s o m e o r y ) . F o n o w , j u s t b a s s u r e d i t ' s a l t h e r e .

F i n a l l y , t y p e :L O A D " P R O G R A M O N E " f [ t h e n p r e s s R E T U R N ]T h i s s h o u l d L O A D o u l i t t l e p r o g r a m b a c k i n t o t h m a c h i n e s y o c a

R U i t P u t t i n g t h C o m m o d o r e d i s k d r i v e t h r o u g h t h i s t e s t i v e r y i m p o r t a n t .

A w i t h t h c o m p u t e r s t h e m s e l v e s , C o m m o d o r e o c c a s i o n a l l y s h i p s u n t e s t e dd i s k d r i v e s t i t d e a l e r s . A n u m b e r o t h e s e w i l l f a i l t e s t l i k e t h i s o n e . Y o w i l l k n o w t h a t i h a f a i l e d i t h e d i s k u n i t d o e s n o t c o r r e c t l y p r e p a r e t h d i s k , o L O A D a n S A V E p r o g r a m s t a n f r o m i t

M o s t o f t e n , t h p r o b l e m w i t h n e d i s k d r i v e i t h s p e e d a w h i c h i r o t a t e s t h e d i s k i n s i d e . I y o u h a v e p u r c h a s e d y o u r d i s k d r i v e f r o m a n e l e ct r o n i c s s t o r e o r c o m p u t e r s p e c i a l t y s h o p , y o c a n p r o b a b l y r e t u r n i f o s i m p l e a d j u s t m e n t . I y o h a v e p u r c h a s e d i f r o m d e p a r t m e n t o d i s c o u n ts t o r e w h i c h d o e s n o h a v e i t o w c o m p u t e r r e p a i r s e r v i c e , a s t h s t o r e f o

n e o n i n s t e a d o l e a v i n g i f o r r e p a i r . O r y o m a c h o o s e t l o c a t e" f a c t o r y a u t h o r i z e d " C o m m o d o r e s e r v i c e d e p a r t m e n t a c o m p u t e r s t o r ea n a s i t h e y w i l l c h e c k t h d r i v e f o y o u .

( B f o r e w a r n e d , t h o u g h , s o m e c o m p u t e r s t o r e s w i l l n o b c o m p l e t e l yc o o p e r a t i v e i y o d i d n o t p u r c h a s e t h m a c h i n e f r o m t h e m . )S f a r , y o m a b c o n f u s e d a b o u t w h a t y o h a v e j u s t d o n e . I y o d o n ' tu n d e r s t a n d , d o n ' t w o r r y . Y o u ' l l l e a r n t h e " w h y s " a w e l l a s t h e " h o w s " i

f e p a g e s f r o m n o w . Y o h a v e s e e n , t h o u g h , t h b a s i c w a t L O A D a n S A V E p r o g r a m s t a n f r o m c a s s e t t e s a n d i s k s .

O u r m a i n j o h e r e w a t p e r f o r m a q u i c k s y s t e m c h e c k . N e e d l e s s t s a y , t h i s i s n ' t c o m p l e t e t e s t r u n . I y o u r c o m p u t e r s y s t e m p a s s e s t h e t e s t ,y o u ' l l o n l y k n o w i i a p p e a r s t b w o r k i n g a n L O A D s a n S A V E s p r o g r a m s .

E v e r y t h i n g w o r k i n g a i s h o u l d ? G o o d . O t t h k e y b o a r d .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 31/318

1 L o t s o K e y s

L o t s o K e y sT h C o m m o d o r e 6 f a m i l y k e y b o a r d s a r s o m e w h a t u n u s u a l i t h e i r

d e s i g n . G e n e r a l l y , e a c h k e p r o d u c e s t h r e e d i f f e r e n t r e s u l t s . T h i s c a b m i n d -b o g g l i n g , s i n c e n o a l o t h e s e a r e a l w a y s c l e a r l y l a b e l e d . T a k i n g l o u r o t h k e y b o a r d s h o u l d f a m i l i a r i z e y o w i t h w h a t i c a d o D o n ' t b d i s c o u r a g e di y o d o n ' t p i c k a l t h i s u t h f i r s t t i m e a r o u n d . T h k e y b o a r d h a s m a n yf u n c t i o n s t h a t i d o e s t a k e l i m e t s e u s e d t o

T h R E T U R N K e T h i s k e y t a k e s w o r d o l i n e t h a t i t y p e d o t h v i d e o s c r e e n a n e n t e r s i i n t o t h c o m p u t e r ' s m a i n m e m o r y . I t i s p r o ba b l y t h e s i n g l e m o s t i m p o r t a n t k e o t h k e y b o a r d . O s o m e o t h e r m a k e sa n d m o d e l s o c o m p u t e r s i i m a r k e d E N T E R , t m o r e a c c u r a t e l y d e s c r i b ei t f u n c t i o n . I t n a m e c o m e s f r o m t h e o l d d a y s o t y p e w r i t e r s a n t e l e t y p em a c h i n e s , w h e n i w a o r i g i n a l l y c a l l e d " c a r r i a g e r e t u r n , " w h i c h w a i t r e a l p u r p o s e .

S H I F T K e O t y p e w r i t e r , t h e S H I F T k e s e l e c t s u p p e r c a s e ( c a pi t a l ) o l o w e r c a s e ( s m a l l ) l e t t e r s . O t h c o m p u t e r ' s k e y b o a r d , i w o r k s i a b o u t t h s a m e w a y . T h d i f f e r e n c e , t h o u g h , i t h a t t h e r e a r m o r e t h a n j u s tc a p i t a l a n s m a l l l e t t e r s t o c o n s i d e r . T h g e n e r a l r u l e s t i l l a p p l i e s . I y o p r e s s t h S H I F T L O C K k e o n c e ( y o u ' l l h e a r i c l i c k ) , t h k e y b o a r d w i l l a c a t h o u g h y o a l w a y s h a v e t h S H I F T k e p r e s s e d . T h i s c a c a u s e p r o b l e m s .S a v o i d u s i n g S H I F T L O C K , a n o c c a s i o n a l l y c h e c k i i y o t h i n k t h a tk e i s n ' t d o i n g w h a t i s h o u l d . U n l o c k t h S H I F T L O C K b p r e s s i n g i a g a i n .

T h R U N / S T O P K e T h i s k e i u s e d t S T O P p r o g r a m w h i l ei i R U N n i n g . O o t h e r c o m p u t e r s i i s o m e t i m e s l a b e l e d " B r e a k . " R U N /S T O P c a a l s o b e u s e d w i t h t h S H I F T k e ( b o t h p r e s s e d t o g e t h e r ) t L O A Da n R U p r o g r a m s f r o m t h e c a s s e t t e r e c o r d e r .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 32/318

2 — S e t t i n g U 1

G r a p h i c s M o d e a n T y p e w r i t e r M o d e T h f i r s t t h i n g t r e o g n i z e i t h a t t h C o m m o d o r e k e y b o a r d a c t s d i f f e r e n t l y t h a n t y p e w r i t e rw h e n t h c o m p u t e r " c o m e s a l i v e . " T h k e y s t h a t w o u l d n o r m a l l y r e s u l t i nl o w e r c a s e ( s m a l l ) l e t t e r s p r o d u c e u p p e r c a s e ( o c a p i t a l s ) . T h i s i b e c a u s e6 f a m i l y c o m p u t e r s c o m e u i w h a t i c a l l e d t h e " g r a p h i c s m o d e / ' T h i sm e a n s t h a t p r e s s i n g m o s t k e y s a l o n g w i t h t h S H I F T k e w i l l p r o d u c e s p e c i a lg r a p h i c s y m b o l s w h i c h a r u s e d t m a k e s i m p l e p i c t u r e s , b o x e s , b o r d e r s ,g a m e p i e c e s , e t c . T h e r e i a n o t h e r m o d e — a " t y p e w r i t e r m o d e " — t h a t m a k e st h c o m p u t e r b e h a v e l i k e t y p e w r i t e r .

T h C O M M O D O R E K e T e n t e r t h t y p e w r i t e r m o d e , d e p r e s se i t h e r S H I F T k e y , a n d , w h i l e d o i n g s o p r e s s t h e C O M M O D O R E ( l o g o ) k e i t h l o w e r l e f t - h a n d c o r n e r . Y o s h o u l d n o t i c e t h r e s u l t s o t h e s c r e e ni n s t a n t l y — A v h a t w e r e u p p e r c a s e ( c a p i t a l ) l e t t e r s n o b e c o m e l o w e r c a s e( s m a l l ) l e t t e r s . T r t y p i n g o t h k e y b o a r d i t h i s m o d e . F a m i l i a r , i s n ' t i t ? .

A i m p o r t a n t t h i n g t r e m e m b e r a b o u t g o i n g f r o m t h g r a p h i c s m o d et t h i s t y p e w r i t e r m o d e i t h a t t h c o m p u t e r i s n ' t m a k i n g t h s a m e d i s t i n c t i o nb e t w e e n c a p i t a l a n s m a l l l e t t e r s t h a t y o a r e . W h e n i t h g r a p h i c s m o d e ,t h c o m p u t e r e x p e c t s l i n e s o B A S I C p r o g r a m m i n g a n o t h e r c o m m a n d s t t h m a c h i n e t b w r i t t e n i c a p i t a l l e t t e r s . B u w h i l e i t h t y p e w r i t e r m o d e ,t h c o m p u t e r e x p e c t s t s e t h e s e s a m e w o r d s i l o w e r c a s e ( s m a l l ) l e t t e r s .I o t h e r w o r d s , B A S I C p r o g r a m m i n g a n c o m m a n d s t t h m a c h i n e a r a l w a y s w r i t t e n w i t h o u t u s i n g t h S H I F T k e y , r e g a r d l e s s o t h m o d e y o a r i n I y o u s c a p i t a l l e t t e r s i n t h t y p e w r i t e r m o d e , t h c o m p u t e r w o n ' t k n o ww h a t y o u ' r e t a l k i n g a b o u t .

F o t h t i m e b e i n g , g o b a c k t t h g r a p h i c s m o d e , s w c a l o o k a s o m eo t h o t h e r k e y b o a r d f u n c t i o n s . U s t h C O M M O D O R E k e a n S H I F T t m a k e t h c h a n g e .

T h C O M M O D O R E k e y , y o m a r e m e m b e r , i a l s o u s e d t t e l l t h c o m p u t e r t h e l p L O A D p r o g r a m f r o m c a s s e t t e t a p e . T h e r e a r s t i l l f e m o r e u s e s f o i t t o o .

G r a p h i c S y m b o l s Y o m a h a v e n o t i c e d t h a t t h e r e a r e t w s m a l lb o x e s o t h f r o n t o a l m o s t e v e r y k e y . E a c h o t h e s e c o n t a i n s s p e c i a l g r a p h i cs y m b o l .

W h i l e i t h g r a p h i c s m o d e , p r e s s t h k e y . I p r i n t s W r i g h t ? N o p r e s s t h e S H I F T k e a n t h a t h s a m e t i m e . Y o s h o u l d s e s o m e t h i n gt h a t l o o k s l i k e t h l e t t e r O I i n o t , t h o u g h . T h i s i a g r a p h i c s y m b o l . N o d e p r e s s t h C O M M O D O R E k e a n p r e s s t h a g a i n . T h i s t i m e y o s h o u l ds e s y m b o l t h a t l o o k s l i k e t i p p e d o i t r i g h t s i d e . Y o u ' v e j u s t p r o d u c e dt h r e e d i f f e r e n t c h a r a c t e r s f r o m o n k e y .

I y o p r e s s S H I F T a n t h C O M M O D O R E k e t o g e t h e r , y o u ' l l s e w h a ty o g e b p r e s s i n g t h i s s a m e k e i t h t y p e w r i t e r m o d e . Y o s h o u l d s e a s m a l l l e t t e r w c a p i t a l , a n t h s a m e g r a p h i c s y m b o l y o u g o l a s t t i m e ,t h o i t s i d e . T h i s i u s u a l l y w h a t h a p p e n s — t h e c a s e s r e v e r s e ( s m a l ll e t t e r s b e c o m e c a p i t a l s a n v i c e v e r s a ) a n t h l e f t g r a p h i c s y m b o l s t a y s t h es a m e , f r o m t h g r a p h i c s t t h t y p e w r i t e r m o d e . U s u a l l y , t h a t i s w i t h f e

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 33/318

2 L o t s o K e y s

f t j f * f u ' \

e x c e p t i o n s . T r t h i s s a m e e x p e r i m e n t w i t h t h k e t h a t i m a r k e d w i t h a " u p a r r o w " a n d w i t h t h " B r i t i s h P o u n d S t e r l i n g " k e y . T y p e t h e s e t h t h r e ed i f f e r e n t w a y s ( u n S H I F T e d , S H I F T e d a n w i t h t h C O M M O D O R E k e d p r e s s e d ) . T h e n g o f r o m t h g r a p h i c s t t h t y p e w r i t e r m o d e . Y o s h o u l d s e d i f f e r e n t g r a p h i c s y m b o l s a p p e a r . T h i s i o n o f t h e e x c e p t i o n s t t h r u l e ,b u i p r o b a b l y w o n ' t g e i y o u r w a t o o f t e n .

T h C T R L K e W e ' v e l e a r n e d t h a t t h C O M M O D O R E k e y c a n b et h o u g h t o f a s a s e c o n d S H I F T k e y . T h e r e i a n o t h e r k e t h a t p e r f o r m ss i m i l a r f u n c t i o n . I i t h C T R L k e y ; t h e a b b r e v i a t i o n s t a n d s f o " c o n t r o l . "

M o d e T s e o n w a t h e c o n t r o l k e i u s e d , p r e s s C T R L ,a n w h i l e h o l d i n g i d o w n , p r e s s t h n u m b e r k e o t h e l o p r o w . N o t y p ea n y t h i n g o t h s c r e e n . E v e r y t h i n g y o t y p e n o s h o u l d b r e v e r s e d . T h a ti s e a c h c h a r a c t e r y o t y p e s h o u l d b t h c o l o r o t h s c r e e n a g a i n s t i t o w l i g h t b a c k g r o u n d . T h e y s h o u l d a p p e a r d a r k b l u e , e a c h i i t o w l i g h t b l u eb o x . ( T h i s i o n l y t h c a s e w i t h t h e c o l o r s t h s c r e e n a n c h a r a c t e r s a p p e a ri w h e n t h c o m p u t e r i t u r n e d o n T h b a c k g r o u n d c o l o r o r e v e r s e c h a ra c t e r i a l w a y s t h c o l o r t h a t t h c h a r a c t e r o r i g i n a l l y w a s . ) T h i s r e v e r s e m o d ei u s e f u l f o h i g h l i g h t i n g c e r t a i n w o r d s o p h r a s e s i n t e x t p r i n t e d o t h s c r e e n .

T r e t u r n t t h s t a n d a r d ( n o t r e v e r s e ) s c r e e n m o d e , d e p r e s s C T R L a n n u m b e r k e 0 N o t i c e t h a t t h e s e t w k e y s h a v e t h e i r f u n c t i o n s p r i n t e d c l e a r l yo t h f r o n t . R V O m e a n s " r e v e r s e o n , " a n R V O F F , o c o u r s e , m e a n s" r e v e r s e o f f . "

C o l o r s N o t r p r e s s i n g C T R L a n a n o t h n u m b e r k e y s t a n l o o k a t h c u r s o r . Y o u ' v e j u s t f o u n d t h w a t c h a n g e t h e c o l o r s o c h a r a c t e r s y o t y p e o t h e s c r e e n . H e r e i l i s t o t h c o l o r s y o g e b p r e s s i n g C T R L a n n u m b e r k e t o g e t h e r :

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 34/318

2 — S e t t i n g U 2

P r e s s C o l o r K e L e g e n dC T R L - 1 B l a c k B L C T R L - 2 W h i t e W H C T R L - 3 R e d R E C T R L - 4 C y a n ( p o w d e r b l u e ) C Y C T R L - 5 P u r p l e P U C T R L - 6 G r e e n G R C T R L - 7 B l u e B L C T R L - 8 Y e l l o w Y E

E v e n t h o u g h t h k e y b o a r d d o e s n o i n d i c a t e i t e i g h t m o r e c o l o r s a r d i r e c t l y a v a i l a b l e b p r e s s i n g a n o t h e r c o m b i n a t i o n o f k e y s . U s t h C O M O D O R E k e i t h l o w e r l e f t - h a n d c o r n e r t g e t h e s e n e c o l o r s :

P r e s s C o l o r K e L e g e n dB L W H R E C Y P U G R B L Y E

D o n ' t b a l a r m e d i y o c a n ' t r e a d w h a t y o t y p e i c e r t a i n c o l o r s a g a i n s tt h b l u e b a c k g r o u n d . M a n y C o m m o d o r e 6 c o m p u t e r s ( e s p e c i a l l y v e r y e a r l ym o d e l s ) a r l i m i t e d i t h n u m b e r o b a c k g r o u n d a n f o r e g r o u n d c o l o r c o b i n a t i o n s t h a t c a n b e u s e d . T h e r e i n s e r u l e a b o u t w h i c h c o l o r s " r e a d "w e l l a g a i n s t v a r i o u s b a c k g r o u n d s . Y o u ' l l n e e d t d e t e r m i n e t h i s o y o u r o w b t r i a l a n e r r o r .

B a c k g r o u n d a n d b o r d e r c o l o r s , u n f o r t u n a t e l y , c a n n o t b c h a n g e d w i t hs i n g l e k e y s t r o k e , a c h a r a c t e r c o l o r s c a n .

T h F u n c t i o n K e y s L o o k a t h f o u r l a r g e k e y s t t h r i g h t o f t h k e y b o a r d . T h t o p s o t h k e y s a r m a r k e d f l , f 3 , f 5 , f 7 . T h f r o n t s a r m a r k e df 2 , f 4 , f 6 , f a n s h o u l d b e t h o u g h t o f a s t h S H I F T e d v e r s i o n s o t h k e y s .I r o n i c a l l y , t h o u g h t h e y a r c a l l e d " f u n c t i o n k e y s , " t h e y h a v e n f u n c t i o n a a l w i t h o u t p r o g r a m s t h a t t a k e a d v a n t a g e o t h e m . T h e s e k e y s w i l l b u t i l i z e di d i f f e r e n t w a y s i m a n y p r o g r a m s , h o w e v e r .

T h R E S T O R E K e T h k e m a r k e d R E S T O R E , o t h e r i g h t s i d eo t h k e y b o a r d , i a i m p o r t a n t o n e . P r e s s i n g t h R U N / S T O P a n R E S T O R Ek e y s t o g e t h e r i n t e r r u p t s p r o g r a m ( a d o e s p r e s s i n g R U N / S T O P a l o n e ) a n b r i n g s t h c o m p u t e r b a c k t i t o r i g i n a l c o n d i t i o n . T h i s m e a n s t h a t t h e s c r e e nw i l l r e v e r t t i t o r i g i n a l c o l o r s ( l i g h t b l u e o d a r k b l u e b a c k g r o u n d ) a n

C O M M - 1C O M M - 2C O M M - 3C O M M - 4C O M M - 5C O M M - 6C O M M - 7C O M M - 8

O r a n g eB r o w nL i g h t R e ( h o t p i n k )G r a y ( d a r k g r a y )G r a y ( m e d i u m g r a y )L i g h t G r e e nL i g h t B l u eG r a y ( l i g h t g r a y )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 35/318

2 L o t s o K e y s

V . . ' V »

5

< -

S H I F T

C L I N S TH O M E D E

R E S T O R E

R E T U R N

C R S R C R S R. i =

t h a t a n s o u n d s t h c o m p u t e r w a s m a k i n g w i l l s t o p , t o o . O t h e r i n t e r n a lc o n d i t i o n s a r r e s e t t w h a t t h e y w e r e w h e n t h m a c h i n e w a s t u r n e d o n T h b e s t t h i n g a b o u t u s i n g t h R E S T O R E k e y , h o w e v e r , i t h a t a n p r o g r a m i m e m o r y w i l l r e m a i n t h e r e , e v e n t h o u g h t h c o m p u t e r h a b e e nr e s e t . T u r n i n g t h m a c h i n e o f a n o t r e s e t i i o f t e n r e f e r r e d t a " c o l ds t a r t , " a n d e s t r o y s t h p r o g r a m i m e m o r y . R E S T O R E c a b t h o u g h t o a " w a r m s t a r t , " s i n c e m e m o r y i n o c l e a r e d .

T h E d i t i n g K e y s A m o n g t h m o s t p o w e r f u l k e y s o t h C o m o d o r e 6 f a m i l y k e y b o a r d s a r e t h e f o u r e d i t i n g k e y s . C o m m o d o r e c o m p u t e r sh a v e a l w a y s h a e x c e l l e n t e d i t i n g c a p a b i l i t i e s t h a t m a k e p r o g r a m w r i t i n ga e a s y a s p o s s i b l e . I a d d i t i o n t e d i t i n g p r o g r a m m i n g l i n e s a n o t h e r s c r e e nt e x t , t h e e d i t i n g k e y s c a b u s e d i a s p e c i a l w a i p r o g r a m m i n g . T g e y o a c q u a i n t e d w i t h t h e s e k e y s , h e r e i q u i c k e x p l a n a t i o n o w h a t t h e y d o

T h C R S R K e y s A t h b o t t o m r i g h t c o r n e r o t h k e y b o a r d a r t w k e y s t h a t c o n t r o l t h e c u r s o r . T h e y a r m a r k e d C R S R u p a n d d o w n a n C R S R l e f t a n r i g h t , a n f u n c t i o n j u s t a t h e y a p p e a r . P r e s s t h e C R S R u a n d o w n k e y . I s h o u l d m o v e d o w n . N o p r e s s t h e S H I F T k e a n t h s a m eC R S R k e y . T h c u r s o r m o v e s u p P r e s s t h e C R S R l e f t a n r i g h t k e a n i w i l l m o v e r i g h t . P r e s s i n g S H I F T a n t h i s k e m o v e s t h c u r s o r b a c k t t h l e f t . ( I i d o e s n ' l a p p e a r t b w o r k i n g p r o p e r l y , c h e c k t h S H I F T L O C K k e t m a k e c e r t a i n i i s n ' t d e p r e s s e d . )

T h C L R / H O M E K e T h e d i t i n g k e y s a t h t o r i g h t c o r n e r o t h k e y b o a r d a r m a r k e d C L R / H O M E a n I N S T / D E L . H O M E s t a n d s f o t h c u r s o r ' s " h o m e , " w h i c h i a t h t o l e f t c o r n e r o f t h e v i d e o s c r e e n . P r e s s i n gC L R / H O M E w i l l r e t u r n t h c u r s o r t t h i s p o s i t i o n e a c h t i m e . C L m e a n s" c l e a r t h e s c r e e n . " P r e s s i n g S H I F T a n C L R ' H O M b r i n g s t h c u r s o r b a c k t i t h o m e , b u a l s o e r a s e s w h a t e v e r i o t h e s c r e e n . I y o p r e s s S H I F T a n C L R / H O M E b e f o r e y o u ' v e p r e s s e d R E T U R N , y o u ' l l l o s e a n n e l i n e y o m a h a v e b e e n t y p i n g o w o r k i n g o n

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 36/318

2 — S e t t i n g U 2

T h I N S T / D E L K e y D E s t a n d s f o " d e l e t e , " a n I N S T m e a n s" i n s e r t . " T r t y p i n g a l i n e i n t o t h c o m p u t e r . N o p r e s s t h I N S T / D E L k e y .E a c h t i m e i i t a p p e d , t h c u r s o r w i l l m o v e b a c k o n s p a c e a n d e l e t ew h i c h e v e r c h a r a c t e r i i p a s s i n g o v e r . P r e s s i n g S H I F T a n t h I N S T / D E Lk e t o g e t h e r i n s e r t s b l a n k s p a c e s i l i n e .

T y p e s o m e t h i n g o t h s c r e e n . N o p u t h c u r s o r a n y w h e r e i t h m i d d l e o f t h e l i n e b u s i n g t h C R S R l e f t a n r i g h t k e y . P r e s s S H I F T a n t a t h I N S T / D E L k e f e t i m e s . E v e r y t h i n g t t h r i g h t o f t h c u r s o r w i l lm o v e f a r t h e r r i g h t o t h s c r e e n , l e a v i n g e m p t y s p a c e s w h e r e t h l e t t e r s o n c ew e r e . T h e s e s p a c e s c a n b e f i l l e d b p r e s s i n g a n c h a r a c t e r k e o e v e n t h S P A C E b a r .

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

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

I i a l s o i m p o r t a n t t l e a r n t h e s e e d i t i n g k e y s i y o a r g o i n g t u s y o u r c o m p u t e r t d w o r d p r o c e s s i n g ( e l e c t r o n i c w r i t i n g a n e d i t i n g ) , s i n c et h e y a r u s e d h e a v i l y b y m o s t s u c h p r o g r a m s .

R e p e a t i n g K e y s F o u r k e y s o t h C o m m o d o r e k e y b o a r d a u t o m a ti c a l l y r e p e a t i t h e y a r h e l d d o w n f o e v e n t h s h o r t e s t l e n g t h o f t i m e . T h e s ea r t h t w C R S R k e y s ( l e f t a n r i g h t , u p a n d d o w n ) , t h I N S T / D E L k e y ,a n t h S P A C E b a a t h b o t t o m o t h k e y b o a r d . T h i s w a d e s i g n e d i n t ot h m a c h i n e b e c a u s e t h e s e k e y s a r u s e d h e a v i l y d u r i n g e d i t i n g .

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

( D o n ' t b o t h e r p r e s s i n g t h R E T U R N k e a y o w o u l d w h e n t y p i n g o t y p e w r i t e r . T h e c o m p u t e r m i g h t n o u n d e r s t a n d w h a t y o u ' r e t r y i n g t s a

a n s i g n a l t h a t y o u ' v e m a d e m i s t a k e . )

T y p i n g o Q W E R T YM a n y p e o p l e h a v e t r o u b l e w i t h a n k i n d o f t y p e w r i t e r - l i k e k e y b o a r d .

Y o u r C o m m o d o r e c o m p u t e r ( a w e l l a a l m o s t e v e r y o t h e r p e r s o n a l c o p u t e r ) h a w h a t i c a l l e d Q W E R T Y k e y b o a r d , a f t e r t h a r r a n g e m e n t o t h t o r o o l e t t e r k e y s . T h a c t u a l t o p r o i Q W E R T Y U I O P . L e g e n d h a i t h a t i w a d e s i g n e d s t h a t s a l e s m e n w h s o l d t y p e w r i t e r s w h e n t h e y b e g a nt a p p e a r i 1 8 7 3 c o u l d t y p e t h w o r d " t y p e w r i t e r " o t h t o r o o k e y sa l o n e . ( L o o k c l o s e l y , i c a n b e d o n e . )

T h r e a l l o g i c b e h i n d t h c l u m s y Q W E R T Y k e y b o a r d , h o w e v e r , i t h a ti w a d e s i g n e d t a c t u a l l y s l o w d o w n t y p i n g s p e e d . B w i d e l y s e p a r a t i n gt h m o s t o f t e n u s e d k e y s , i t d e s i g n e r s m e a n t t i n s u r e t h a t t y p i s t s w o u l ds t a y c o n f u s e d a n t y p e s l o w l y e n o u g h s t h a t e a r l y , d e l i c a t e p r i n t i n g m e c h -

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 37/318

2 T y p i n g o Q W E R T Y

a n i s m s w o u l d n ' t j a u p O v e r 1 0 y e a r s l a t e r , w e ' r e s t i l l u s i n g t h e a n c i e n ta n i n c o n v e n i e n t Q W E R T Y k e y b o a r d , a n d , n o w , w i t h t h a d v e n t o p e r s o n a lc o m p u t e r s , t h i n v e n t o r s o Q W E R T Y h a v e e v e n f u r t h e r r e a s o n t c h u c k l ea u f r o m t h e i r g r a v e s . T h e r e a r m o r e Q W E R T Y s t h a n e v e r b e f o r e .

W h h a s n ' t s o m e o n e d o n e s o m e t h i n g a b o u t i t f e h a v e t r i e d . Q W E R T Yw a r e p l a c e d b k e y b o a r d s i a l p h a b e t i c a l o r d e r o s o m e o t h t i n y p o c k e tc o m p u t e r s s o l d i t h l a s t f e y e a r s . I t u r n e d o u t t h e y w e r e e v e n m o r ed i f f i c u l t t u s t h a n Q W E R T Y . A n o t h e r a l t e r n a t i v e w a t h D S ( f o r D v o r a kS i m p l i f i e d K e y b o a r d ) , w h i c h o r i g i n a t e d i 1 9 3 2 a f t e r t w d e c a d e s o f r e s e a r c h .T h D S b r o u g h t t h m o s t o f t e n u s e d l e t t e r s t t h " h o m e r o w " o k e y s( A S D F . . o t h Q W E R T Y ) . I w a c l a i m e d t h a t t h e 3 , 0 0 0 m o s t o f t e n u s e dw o r d s i t h E n g l i s h l a n g u a g e c o u l d b t y p e d o j u s t t h i s o n r o o k e y s .I n t h e l a s t d e c a d e , a a t t e m p t w a m a d e t i n t r o d u c e a o n e - h a n d e d k e y b o a r d ,w h e r e c o m b i n a t i o n s o f f i n g e r s w e r e u s e d t e n t e r a s i n g l e c h a r a c t e r . ( m i i a t u r e , h a n d - h e l d w o r d p r o c e s s o r s o l d i G r e a t B r i t a i n a l s o u s e s t h i s k e b o a r d . )

T h e d o m i n a n c e o Q W E R T Y , h o w e v e r , r e m a i n s v i r t u a l l y u n c h a l l e n g e d ,a n o t h e r k e y b o a r d s t y l e s h a v e b e e n a l b u f o r g o t t e n . F e t y p e w r i t e r s a r e q u i p p e d w i t h a l t e r n a t i v e s a n d , f o a l i n t e n t s a n p u r p o s e s , n p e r s o n a lc o m p u t e r s .

I o r d e r t c o m m u n i c a t e w i t h y o u r p e r s o n a l c o m p u t e r y o u w i l l n e e d t s t r u g g l e w i t h t h p o o r d e s i g n o t h t r a d i t i o n a l k e y b o a r d . O n s i d e b e n e f i to p e r s o n a l c o m p u t i n g i t h a t y o w i l l l e a r n t t y p e a l m o s t w i t h o u t e f f o r t —y o w i l l g r o w m o r e a n m o r e c o m f o r t a b l e a t h k e y b o a r d . O c o u r s e , a f t e rr e a d i n g t h s e c t i o n i t h i s b o o k o n w o r d p r o c e s s i n g , y o m a w o n d e r w h a n y o n e w o u l d w a n t t u s e a t y p e w r i t e r a n y w a y .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 38/318

S o m e E s s e n t i a l S k i l l s

W h e t h e r y o i n t e n d t p r o g r a m y o u r c o m p u t e r o u s i w i t h c o m m e r c i a lp r o g r a m s , y o u m u s t a c q u i r e a f e e s s e n t i a l s k i l l s . T h e s e w i l l a l l o w y o t L O A D a n S A V E p r o g r a m s t a n f r o m c a s s e t t e o d i s k a n t R U t h e m .Y o s h o u l d a l s o k n o w a b o u t s o m e p e c u l i a r i t i e s o e d i t i n g B A S I C p r o g r a m s ,h o t u s t h c o m p u t e r a c a l c u l a t o r , a n i t b u i l t - i n t i m e k e e p i n g f u n ct i o n s .

T h R E T U R N K e T h r o u g h o u t t h i s b o o k y o w i l l b e a s k e d t t y p e i p r o g r a m m i n g e x a m p l e s

a n d e m o n s t r a t i o n s o h o k e y b o a r d c o m m a n d s w o r k . I o r d e r t s e n d t h i si n f o r m a t i o n t t h c o m p u t e r , y o m u s t a l w a y s p r e s s t h l a r g e k e a t h r i g h t o f t h e k e y b o a r d m a r k e d R E T U R N . I y o d n o t , t h c o m p u t e r w i l lw a i t , t h i n k i n g t h a t m o r e i n s t r u c t i o n s a r c o m i n g . I s o m e p l a c e s , y o w i l lb r e m i n d e d t p r e s s t h i s k e y . I o t h e r s , h o w e v e r , i w i l l b a s s u m e d t h a ty o u ' v e l e a r n e d t h i s a l l - i m p o r t a n t s t e p . T h R E T U R N k e y s h o u l d a l w a y s b ep r e s s e d w h e n y o u ' v e f i n i s h e d e n t e r i n g B A S I C p r o g r a m l i n e , a f t e r y o u ' v ec h a n g e d s o m e t h i n g o l i n e , o w h e n y o w a n t t s e n d c o m m a n d d i r e c t l yf r o m t h k e y b o a r d .

2

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 39/318

2 L O A D i n g U

L O A D i n g U C o m p u t e r p r o g r a m s o r i g i n a t e b t y p i n g t h e m i n t o t h m a c h i n e ' s m e m o r y

f r o m t h k e y b o a r d . I w o u l d b i n c r e d i b l y l i m e - c o n s u m i n g , t h o u g h , t t y p ee v e r y p r o g r a m e a c h t i m e y o w a n t t u s i t I n s t e a d , t h c o m p u t e r c a S A V Ep r o g r a m s t c a s s e t t e t a p e o m a g n e t i c d i s k , a l s o c a l l e d " ( l o p p y d i s k . "( C o m p u l e r l o r e h a n a m e d i " f l o p p y " t d i s t i n g u i s h i f r o m a d i f f e r e n t k i n do d i s k s t o r a g e s y s t e m , r i g i d o " h a r d " d i s k w h i c h h o l d s e n o r m o u s a m o u n t so m e m o r y . )

A f t e r p r o g r a m i S A V E d t e i t h e r d i s k o t a p e , i c a l a t e r b r e c a l l e dt t h c o m p u t e r ' s m e m o r y w i t h t h L O A D c o m m a n d . B o t h S A V E a n L O A Df u n c t i o n s i m i l a r l y i t h a t t h e y c o p y t h p r o g r a m i n t o o o u o m e m o r y o o t h e r o u t s i d e s t o r a g e d e v i c e . W h e n y o S A V E p r o g r a m , c o p y i m a d e o t h t a p e o r d i s k , b u i i s t i l l i n s i d e t h e c o m p u l e r . L i k e w i s e , w h e n y o L O A D

p r o g r a m i n l o m e m o r y , i s l i l l e x i s t s o t h t a p e o d i s k .T h c o m p u t e r ' s m a i n r e a d - a n d - w r i t e m e m o r y c a l l e d R A ( f o r R a n d o m

A c c e s s M e m o r y ) , i t e m p o r a r y . A n y t h i n g p u h e r e — a p r o g r a m , d a t a , o r p i c t u r e — w i l l b l o s t a s o o n a t h p o w e r i t u r n e d o f f , e v e n f o f r a c t i o no f s e c o n d . L O A D t a k e s d i g i t a l s i g n a l s f r o m d i s k o a u d i o s i g n a l s f r o ml a p e a n s t o r e s t h e m i R A m e m o r y . S A V E c o n v e r t s t h c o n t e n t s o m e m o r yi n t o t h e s e s a m e k i n d s o f s i g n a l s a n s e n d s t h e m t t h l a p e o r d i s k .

L O A D a l w a y s c l e a r s t h e c o m p u t e r ' s m e m o r y a n t h e n l i l l s i w i t h t h n e p r o g r a m . ( Y o u c a n n o t u s L O A D t w i c e t a d o n p r o g r a m l a n o t h e r . )

L O A D F r o m T a p eT b e g i n L O A D i n g , y o u c a n u s t h t a p e y o c r e a t e d i y o f o l l o w e d t h

t e s t i n g d i r e c t i o n s i t h e s e c t i o n o f t h i s b o o k e n t i t l e d " S e t t i n g U p . " O r y o m a u s a n o t h e r t a p e t h a t c o n t a i n s p r e r e c o r d e d p r o g r a m .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 40/318

3 — S o m e E s s e n t i a l S k i l l s 2

L O A D c a b u s e d w i t h o w i t h o u t p r o g r a m n a m e . T y p e :L O A D [ a n d p r e s s t h e R E T U R N k e y ]

o

L O A D " P R O G R A M O N E " [ a n d R E T U R N ]T y p i n g L O A D a n p r e s s i n g t h R E T U R N k e w i l l a l w a y s c a u s e t h c o

p u t e r t r e s p o n d w i t h t h i s m e s s a g e o n t h v i d e o s c r e e n :P R E S S P L A Y O T A P EP r e s s i n g P L A Y o t h t a p e r e c o r d e r " b l a n k s " t h s c r e e n . A c t u a l l y , i t u r n s

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

F O U N DT h i s m e a n s t h t a p e r e c o r d e r h a l o c a t e d a p r o g r a m . I t h p r o g r a m h a n a m e , y o u w i l l s e i t t o o . T h n e x t m o v e i y o u r s . Y o m u s t p r e s s t h

C O M M O D O R E ( l o g o ) k e i t h l o w e r l e f t - h a n d c o r n e r o f t h e k e y b o a r d . I y o d i n o t u s e n a m e w h e n y o t y p e d L O A D , t h f i r s t p r o g r a m o n t h t a p ew i l l b L O A D e d .

I y o u s e d n a m e , t h c o m p u t e r w i l l i g n o r e a n p r o g r a m u n l e s s i i t h p r o g r a m y o u n a m e d . I w i l l s t o p a n d i s p l a y e a c h n a m e , a n y o m u s tp r e s s t h C O M M O D O R E k e t c o n t i n u e y o u r s e a r c h f o t h p r o p e r p r o g r a m .

O n c e t h p r o g r a m h a b e e n L O A D e d , t h s c r e e n r e t u r n s t n o r m a l a n s a y s :

R E A D Y .N o w , y o c a t y p e R U ( a n d p r e s s t h e R E T U R N k e y ) a n t h p r o g r a m

b e g i n s o p e r a t i n g .O e a r l i e r C o m m o d o r e c o m p u t e r s , i n c l u d i n g t h P E T , C B ( a u p g r a d e d

P E m o d e l ) , a n t h V I C , y o d i n o n e e d t p r e s s k e t L O A D t h p r o g r a m . B u t h v i d e o m i c r o c h i p i n s i d e t h e C o m m o d o r e 6 4 f a m i l y m a k e sn e d e m a n d s o t h s y s t e m , a n i b e c a m e n e c e s s a r y t b l a n k t h e s c r e e nw h e n p r o g r a m w a s b e i n g L O A D e d o S A V E d . I y o h a v e u s e d t h o s e e a r l i e rC o m m o d o r e m a c h i n e s , b e s u r e t r e m e m b e r t h i s e x t r a s t e p ; o t h e r w i s e , t h ec o m p u t e r w i l l n o L O A D y o u r p r o g r a m .

A n o t h e r w a t L O A D t h f i r s t p r o g r a m f r o m a t a p e i t h o l d d o w ne i t h e r S H I F T k e a n t h e n p r e s s t h e R U N / S T O P k e y . W h e n y o u d o t h i s , t h w o r d s L O A D a n P R E S S P L A Y O T A P E w i l l i n s t a n t l y a p p e a r . Y o s t i l lm u s t p r e s s t h e C O M M O D O R E k e w h e n F O U N D a p p e a r s . T h i s t i m e , t h o u g h ,t h p r o g r a m R U N s a u t o m a t i c a l l y — a h a n d y s h o r t c u t .

W h e n y o u s L O A D w i t h p r o g r a m n a m e , i i n s u r e s t h a t o n l y t h p r o g r a m w i t h t h a t n a m e w i l l b L O A D e d . T h n a m e m u s t a l w a y s b p r e c e d e db q u o t a t i o n m a r k ; h o w e v e r y o n e e d n o a l w a y s t y p e t h e n t i r e n a m e .

L e t ' s s a t h a t t h r e e p r o g r a m s , n a m e d P R O G R A M O N E , P R O G R A M T W O ,a n P R O G R A M T H R E E , a r a l s t o r e d o t h s a m e s i d e o f c a s s e t t e t a p e .T h c o m m a n d L O A D " P R O G R A M T H R E E " w i l l L O A D o n l y t h a t p r o g r a m .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 41/318

2 L O A D F r o m T a p e

T h C o m m o d o r e c o m p u t e r s u s t e c h n i q u e c a l l e d " p a t t e r n m a t c h i n g "t o i d e n t i f y t h p r o g r a m s t h e y s h o u l d L O A D . I y o u s e o n l y t h f i r s t l e t t e ro f t h e n a m e — L O A D " P — t h e c o m p u t e r w i l l L O A D a n p r o g r a m t h a t b e g i n sw i t h t h l e t t e r P — " P R O G R A M O N E , ' 1 " P R O G R A M T W O , " o e v e n " P I N GP O N G " ( i i w e r e o n t h t a p e ) . I y o u s t h f i r s t w o r d — L O A D " P R OG R A M — t h e c o m p u t e r w i l l L O A D e v e r y p r o g r a m t h a t b e g i n s w i t h t h a t w o r d ,a n s o o n .

F o p a t t e r n m a t c h i n g t w o r k , t h l a s t q u o t a t i o n m a r k m u s t n o b u s e d .I i i s t h c o m p u t e r t h i n k s o t h n a m e i q u o t e s a u n i q u e , a n w i l l o n l yL O A D p r o g r a m s t h a t m a t c h i e x a c t l y .

L O R D " P R OL O R D " P R O G R A M "T h f i r s t c o m m a n d w i l l L O A D a n p r o g r a m w i t h P R a t h f i r s t t h r e e

l e t t e r s o i t n a m e . T h s e c o n d w i l l L O A D o n l y t h e p r o g r a m n a m e d P R G R A M .

F r o m t i m e t t i m e , y o w i l l e n c o u n t e r p r o g r a m t h a t n e e d s t b L O A D e di p a r t i c u l a r m a n n e r . I n s t r u c t i o n s f o L O A D i n g w i l l l o o k s o m e t h i n g l i k et h i s :

L O A D " P R O G R A M N A M E " , 1 , W h a t d o e s t h i s m e a n ? T h e t w o n u m b e r s , a n 1 g i v e t h c o m p u t e r

u n i q u e i n s t r u c t i o n s . T h f i r s t n u m b e r s t a n d s f o t h d e v i c e n u m b e r o t h c a s s e t t e r e c o r d e r , w h i c h i a l w a y s 1 ( Y o u ' l l l e a r n m o r e a b o u t d e v i c e n u m b e r sa y o g a l o n g a n i t h e s e c t i o n e n t i t l e d " H o w t h C o m p u t e r S t o r e s I f o r m a t i o n . " ) T h i s i h o t h c o m p u t e r k n o w s y o a r u s i n g a c a s s e t t e r ec o r d e r . B u t , i L O A D i u s e d w i t h o u t a n y n u m b e r s f o l l o w i n g i t t h c o m p u t e ra s s u m e s y o a r u s i n g t h e r e c o r d e r .

T h s e c o n d n u m b e r t e l l s t h c o m p u t e r t L O A D t h p r o g r a m i s p e c i a lp l a c e . B e g i n n i n g w i t h t h V I C , C o m m o d o r e c o m p u t e r s i n c o r p o r a t e d s o m et h i n g c a l l e d " r e l o c a t i n g L O A D e r . " T h i s i p r o g r a m i t h m a c h i n e ' so p e r a t i n g s y s t e m t h a t a l l o w s m a n y B A S I C p r o g r a m s w r i t t e n f o t h C o m o d o r e P E a n C B c o m p u t e r s t b e u s e d w i t h t h V I C a n d 6 f a m i l y . I i n e c e s s a r y b e c a u s e o d i f f e r e n c e s i t h w a t h a t t h v a r i o u s c o m p u t e r ss t o r e p r o g r a m s .

U n l e s s t h i s s e c o n d n u m b e r i u s e d , t h c o m p u t e r w i l l a l w a y s b e g i nL O A D i n g p r o g r a m s i t h p l a c e w h e r e B A S I C p r o g r a m s a r s t o r e d . S o m ep r o g r a m s , h o w e v e r , a r n o t w r i t t e n i B A S I C b u i c o d e r e f e r r e d t a " m a c h i n e l a n g u a g e , " w h i c h o p e r a t e s m u c h , m u c h f a s t e r . O f t e n , y o w i l l b a s k e d t L O A D u s i n g " , 1 , 1 " t o i n s u r e t h a t t h e y L O A D p r o p e r l y .

M P r o g r a m W o n ' t L O A DT h e r e a r d o z e n s o r e a s o n s w h p r o g r a m s w o n ' t L O A D c o r r e c t l y . H e r e

a r e t h e f o u r m o s t c o m m o n .R e a s o n O n e : T h e r e ' s s o m e t h i n g w r o n g w i t h y o u r c a s s e t t e r e c o r d e r . I

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 42/318

3 — S o m e E s s e n t i a l S k i l l s 2

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

R e a s o n T w o : Y o u r r e c o r d e r i i w o r k i n g c o n d i t i o n e x c e p t f o o n t h i n g —i i o u o a l i g n m e n t . T h i s i m o s t o f t e n t h e c a s e i y o c a L O A D p r o g r a mc a s s e t t e s t h a t y o h a v e r e c o r d e d , b u h a v e t r o u b l e w i t h t a p e s r e c o r d e d b o t h e r s . T h s o l u t i o n i t a l i g n t h e r e c o r d i n g / p l a y b a c k h e a d . I i n o t , h o w e v e r ,

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

T h e r e i s m a l l h o l e l o c a t e d o t o o C o m m o d o r e ' s c a s s e t t e r e c o r d e r .W h e n y o p r e s s t h P L A Y k e y , y o c a p u t i n y j e w e l e r ' s s c r e w d r i v e rt h r o u g h t h i s h o l e t t u r n a a d j u s t m e n t s c r e w . O n c e y o f i t h s c r e w d r i v e ri n y o s h o u l d m e m o r i z e i t p o s i t i o n . T u r n i a q u a r t e r t u r n o r s o a n t r L O A D i n g t h c a s s e t t e . I t h a t d o e s n ' t w o r k , t r t u r n i n g i i t h o p p o s i t ed i r e c t i o n .

C a u t i o n : T r t h i s o n l y i y o f e e l c o n f i d e n t t h a t y o k n o w w h a t y o u ' r ed o i n g . I y o u d o n o r e m e m b e r t h e s c r e w ' s o r i g i n a l p o s i t i o n , o r t u r n i t o f a r , y o c o u l d m i s a l i g n t h r e c o r d e r f u r t h e r s o t h a t e v e n y o u r o w t a p e s w i l ln o L O A D .

I y o h a v e h a g o o d l u c k L O A D i n g o t h e r c a s s e t t e s f r o m v a r i e t y o s o u r c e s a n s h o u l d h a p p e n u p o n o n o t w t h a t d o n ' t L O A D c o r r e c t l y , y o u rr e c o r d e r i p r o b a b l y i g o o d s h a p e . T h p r o b l e m m a b w i t h t h r e c o r d e rt h a t t h o s e t a p e s w e r e m a d e o n n o y o u r s .

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

R e a s o n T h r e e : I y o h a v e t r o u b l e L O A D i n g w h e n a n o t h e r p r o g r a m i i t h m a c h i n e a n d h a b e e n r u n n i n g , t h f a u l t m a b n e i t h e r t h c o m p u t e r ' sn o t h t a p e r e c o r d e r ' s . S o m e p r o g r a m s c a n c h a n g e t h w a t h c o m p u t e rw o r k s t p r e v e n t y o f r o m m a k i n g c o p i e s o i t O t h e r p r o g r a m s m i g h t u s s p e c i a l f e a t u r e s t h a t c o u l d a f f e c t t h w a p r o g r a m s L O A D , t o o .

O n s i t u a t i o n l i k e l y t o c c u r w h e n u s i n g t a p e h a p p e n s w h e n p r o g r a m ,m o s t l i k e l y g a m e , u s e s ' ' s p r i t e " g r a p h i c s . ( S p r i t e s a r c o l o r e d o b j e c t s t h a ta r m o v e d a r o u n d t h s c r e e n , a n a r o n o f t h e m a n y g r a p h i c f e a t u r e s o ft h C o m m o d o r e 6 f a m i l y . ) S o m e t i m e s p r o g r a m m e r s w i l l u s a a r e a o m e m o r y c a l l e d t h e " c a s s e t t e b u f f e r " t s t o r e t h e s e p i c t u r e s . I t h e s e s p r i t e sa r v i s i b l e o t h s c r e e n , p r o g r a m s m a n o L O A D p r o p e r l y . T h e a s i e s t w a t g e r i d o f t h s p r i t e s i t p r e s s t h e R U N / S T O P a n R E S T O R E k e y s t g e t h e r .

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

R e a s o n F o u r : I t h p r o g r a m w i l l n o L O A D f r o m y o u r c a s s e t t e r e c o r d e ro a n o t h e r y o u ' v e t r i e d , i i p r o b a b l y b e c a u s e i w a r e c o r d e d o b a o d a m a g e d t a p e . T a p e q u a l i t y i d i f f i c u l t t h i n g t j u d g e . G e n e r a l l y , y o s h o u l du s e a g o o d g r a d e o c a s s e t t e t a p e , a l e a s t s u i t a b l e f o q u a l i t y v o i c e r e p r od u c t i o n . T o m u c h , h o w e v e r , h a s b e e n m a d e o t h e n e c e s s i t y t b u e x p e n s i v ec a s s e t t e s . S o m e d i s c o u n t s t o r e a n " o f f " b r a n d c a s s e t t e s w i l l w o r k p e r f e c t l y

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 43/318

3 M P r o g r a m W o n ' t L O A D

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

D a m a g i n g t h t a p e i n s i d e c a s s e t t e c a d e s t r o y p r o g r a m , t o o . S i n c et h p r o g r a m i s t o r e d a a u d i o i n f o r m a t i o n , t h s l i g h t e s t i n t e r r u p t i o n i t h s o u n d w i l l c a u s e a b a L O A D . I y o u d o d a m a g e c a s s e t t e , t h r o w i a w a yo d o r i ' t u s i a g a i n w i t h t h c o m p u t e r . D o n ' t e v e n t r t f i i o s m o o t ho u a w r i n k l e d p o r t i o n .

S A V E t T a p eS A V E i a l m o s t a l w a y s u s e d w i t h p r o g r a m n a m e .S A V E " P R O G R A M N A M E "T h i s c o m m a n d w i l l s t o r e B A S I C p r o g r a m o c a s s e t t e t a p e . I y o u d on o t u s e n a m e , t h p r o g r a m w i l l s t i l l b S A V E d , b u y o w i l l n o b a b l e

t i d e n t i f y i w h e n L O A D i n g . S A V E , l i k e L O A D , w i l l n o w o r k w i t h c e r t a i np r o g r a m s — t h o s e w h i c h h a v e b e e n p r o t e c t e d t a v o i d u n a u t h o r i z e d c o p i e s ,a n c e r t a i n p r o g r a m s t h a t a r n o t w r i t t e n i B A S I C .

W h e n y o t y p e S A V E a n p r o g r a m n a m e ( r e m e m b e r t p r e s s t h R T U R N k e y ) , t h c o m p u t e r w i l l r e s p o n d w i t h :

P R E S S R E C O R D A N P L A Y O T A P EW h e n y o p r e s s t h e s e t w k e y s o t h c a s s e t t e r e c o r d e r , t h e s c r e e n w i l l

g o b l a n k u n t i l t h p r o g r a m h a b e e n S A V E d o t a p e .Y o m u s t r e m e m b e r t p r e s s b o t h t h P L A Y a n R E C O R D k e y s w h e n

y o S A V E t t a p e . T h e c o m p u t e r c a n n o t a c t u a l l y t e l l i b o t h h a v e b e e np r e s s e d , a n w i l l a c t h s a m e e v e n i y o o n l y p r e s s P L A Y . ( I y o d o , o fc o u r s e , t h p r o g r a m w i l l n o b S A V E d . )

I y o w a n t t p r o t e c t t h i s c o p y f r o m a c c i d e n t a l e r a s u r e , r e m o v e t h l e f t m o s t s m a l l p l a s t i c t a o t h b a c k e d g e o f t h e c a s s e t t e . T h i s w i l l p r e v e n ty o u f r o m p r e s s i n g R E C O R D a n P L A Y t o g e t h e r o t h e r e c o r d e r . I y o c h a n g ey o u r m i n d , p i e c e o t a p e ( m a s k i n g t a p e o r t r a n s p a r e n t t a p e ) w i l l f i t h c a s s e t t e s y o c a r e c o r d o i a g a i n .

C h e c k i n g Y o u r W o r kI w o u l d b n i c e t k n o w i y o h a v e s u c c e s s f u l l y S A V E d y o u r p r o g r a m ,

w o u l d n ' t i t T h i s w o u l d i n s u r e t h a t t h p r o g r a m y o w r o t e i s a f e l y s t o r e do t a p e . T h V E R I F Y c o m m a n d d o e s j u s t t h i s . I c o m p a r e s w h a t i o t h t a p e t w h a t i s t o r e d i t h c o m p u t e r ' s m e m o r y .

I y o u s V E R I F Y w i t h p r o g r a m n a m e , t h c a s s e t t e r e c o r d e r w i l l g t h r o u g h a l p r o g r a m s o n t h t a p e , l o o k i n g f o t h p r o g r a m w i t h t h a t n a m et c o m p a r e . I y o u s V E R I F Y a l o n e , t h f i r s t p r o g r a m o t h t a p e w i l l b c o m p a r e d .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 44/318

3 — S o m e E s s e n t i a l S k i l l s 3

W h e n p r o g r a m i s u c c e s s f u l l y c h e c k e d , y o w i l l s e t h m e s s a g e " O K "a p p e a r o t h v i d e o s c r e e n . I t h p r o g r a m d o e s n o m a t c h , y o w i l l s e t h i sl i n e i n s t e a d :

V E R I F Y I N G E R R O RT h i s i n d i c a t e s t h a t t h e t a p e c o p y o t h p r o g r a m i n o t h s a m e a w h a t

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

V E R I F Y c a a l s o b e u s e d t f i n d y o u r p o s i t i o n o t a p e . S a t h a t y o h a v e t w p r o g r a m s , n a m e d " P R O G R A M O N E " a n " P R O G R A M T W O , " s t o r e do t h s a m e s i d e o f t h t a p e . Y o h a v e m a d e s o m e c h a n g e s i " P R O G R A MT W O , " w h i c h i i t h c o m p u t e r ' s m e m o r y , a n d w a n t t S A V E i a g a i n o t h t a p e . I y o L O A D e d " P R O G R A M O N E , " t h p r o g r a m i m e m o r y w o u l db d e s t r o y e d . Y o c a V E R I F Y " P R O G R A M O N E , " t h o u g h , a n t h t a p e w i l la d v a n c e t t h b e g i n n i n g o " P R O G R A M T W O " w i t h o u t d i s t u r b i n g t h p r g r a m i m e m o r y . Y o w i l l s t i l l s e t h a b o v e E R R O R m e s s a g e , b u y o c a i g n o r e i t A f t e r t h i s , y o c a S A V E " P R O G R A M T W O " a g a i n a n r e c o r d o v e rt h p r e v i o u s v e r s i o n , a l o n g a t h c h a n g e s h a v e n ' t d r a m a t i c a l l y a f f e c t e dt h l e n g t h o t h p r o g r a m . ( I t h p r o g r a m i t o l o n g , t h n e v e r s i o n w i l lb e g i n t r e c o r d o v e r t h n e x t p r o g r a m o t h t a p e . )

R U N n i n g t h P r o g r a mT h R U c o m m a n d s t a r t s p r o g r a m o p e r a t i n g . M o s t p r o g r a m s w i l l b

i n t e r r u p t e d w h e n t h R U N / S T O P k e i p r e s s e d .R U a l w a y s r e s e t s a l t h i n f o r m a t i o n i t h p r o g r a m . ( R e a d a b o u tv a r i a b l e s i C h a p t e r F o u r . ) T h i s m e a n s t h a t n u m b e r s , n a m e s , a n o t h e r d a t at h a t p r o g r a m i u s i n g w i l l b g o n e t h n e x t t i m e y o R U i t T h e r e a r t w w a y s t i n t e r r u p t a p r o g r a m a n d k e e p t h i n f o r m a t i o n i u s e s .

A f t e r u s i n g t h R U N / S T O P k e y — w h e t h e r y o u ' v e p r e s s e d i b m i s t a k eo o p u r p o s e — y o u c a t y p e t h c o m m a n d C O N T , w h i c h s t a n d s f o C O N -T i n u e . ( T y p e i d i r e c t l y f r o m t h k e y b o a r d a n p r e s s R E T U R N . ) T h e p r o g r a mw i l l r e s u m e a t h p l a c e w h e r e i l e f t o f f .

T h o t h e r w a t g e b a c k i n t o t h p r o g r a m i w i t h t h w o r d G O T O ,w h i c h m u s t b f o l l o w e d b t h n u m b e r o t h B A S I C l i n e y o w a n t t h p r o g r a m t b e g i n o p e r a t i n g f r o m . ( A g a i n , y o c a u s t h G O T O c o m m a n dd i r e c t l y f r o m t h k e y b o a r d b u r e m e m b e r t p r e s s R E T U R N . ) T u s G O T O ,y o s h o u l d h a v e a f i r m u n d e r s t a n d i n g o h o t h p r o g r a m w o r k s , e i t h e r b r e a d i n g R E ( R E M a r k ) s t a t e m e n t s i t h p r o g r a m o b b e i n g a b l e t r e a dB A S I C . D o n ' t e v e r t r y t o u s G O T O w i t h r a n d o m l i n e n u m b e r i y o d o n ' tk n o w t h c o r r e c t n u m b e r t u s e .

Y o c a a l s o u s R U w i t h n u m b e r . T h i s w i l l s t a r t t h p r o g r a m o e r a t i n g f r o m t h a t p a r t i c u l a r l i n e n u m b e r , b u i w i l l a l s o e r a s e a l t h e v a r i a b l ei n f o r m a t i o n , j u s t a u s i n g R U b i t s e l f w i l l .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 45/318

3 A b o u t C o m m o d o r e ' s D i s k D r i v e s

A b o u t C o m m o d o r e ' s D i s k D r i v e sT h C o m m o d o r e 1 5 4 1 d i s k d r i v e p l a y s b a c k a n s t o r e s i n f o r m a t i o n t

a n f r o m t h c o m p u t e r , j u s t l i k e t h e c a s s e t t e r e c o r d e r d o e s . I n f o r m a t i o n i s t o r e d o t h m a g n e t i c s u r f a c e o f l e x i b l e ( " f l o p p y " ) r o u n d d i s k e n c l o s e di s q u a r e b l a c k p l a s t i c e n v e l o p e . U n l i k e t h r e c o r d e r , t h d i s k d r i v e c a r a n d o m l y a c c e s s m a n y d i f f e r e n t p r o g r a m s , m u c h f a s t e r t h a n f r o m c a s s e t t e .( P r o g r a m s L O A D a b o u t s e v e n t i m e s f a s t e r f r o m d i s k t h a n c a s s e t t e . ) M o r e o v e r ,t h d i s k a l l o w s y o t s e l e c t p r o g r a m s a n d f i l e s o u o s e q u e n c e , a n e l i mi n a t e s t h e n e e d t e v e r h a v e t h e s e s t o r e d i a n p a r t i c u l a r o r d e r .

I t h u p p e r r i g h t - h a n d c o r n e r o t h b l a c k p l a s t i c e n v e l o p e i a n o t c h .T h i s n o t c h i u s e d t t e l l t h d i s k d r i v e w h e t h e r o n o i s h o u l d t r y t o r e c o r di n f o r m a t i o n o t h d i s k . I t h n o t c h i o p e n a n v i s i b l e , y o c a L O A D a n S A V E p r o g r a m s a n d d a t a o i t W h e n t h n o t c h i c o v e r e d ( u s u a l l y b o n o f t h e s m a l l a d h e s i v e t a b s t h a t c o m e w i t h f l o p p y d i s k s ) , i i " w r i t e p r t e c t e d . " T h a t i s y o c a L O A D f r o m t h d i s k , b u n o S A V E t i t

B l a n k d i s k s m u s t f i r s t b p r e p a r e d f o u s w i t h t h d i s k d r i v e . A l m o s ta n b l a n k d i s k c a b u s e d , b u m a k e s u r e t h a t t h d i s k s y o b u a r c l a b e l e d" s i n g l e - s i d e d d o u b l e d e n s i t y . " T h i s m e a n s t h a t o n l y o n s i d e o f t h d i s k c a b u s e d . ( S o m e d i s k d r i v e s r e c o r d o b o t h s i d e s — y o u r 1 5 4 1 d o e s n ' t . ) D o u b l ed e n s i t v i h o l d o v e r t e r m f r o m t h d a v s w h e n t h a m o u n t o i n f o r m a t i o n

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 46/318

3 — S o m e E s s e n t i a l S k i l l s 3

t h a t c o u l d b s t o r e d o d i s k w a g r o w i n g . Y o u r 1 5 4 1 d i s k d r i v e i s n ' t" d o u b l e d e n s i t y " d r i v e ( s t r i c t l y s p e a k i n g ) , b u y o s h o u l d u s t h i s t y p e o d i s k t a v o i d p r o b l e m s .

O t h e r t e r m s u s e d t i d e n t i f y t y p e s o b l a n k d i s k s a r " s o f t s e c t o r " o " h a r d s e c t o r . " Y o n e e d n ' t w o r r y a b o u t t h e s e . E i t h e r k i n d w i l l w o r k e q u a l l yw e l l i t h 1 5 4 1 . A n m a n u f a c t u r e r ' s b r a n d o f d i s k c a n b e u s e d . A s w i t hc a s s e t t e s , s h o p a r o u n d a n f i n d o n t h a t o f f e r s g o o d p e r f o r m a n c e a r e s o n a b l e p r i c e a n s t i c k w i t h i t

P r e p a r i n g d i s k i c a l l e d f o r m a t t i n g i t W h e n t h e d i s k i f o r m a t t e d ,s e v e r a l t h i n g s a r e d o n e . I i g i v e n n a m e a n t w o - c h a r a c t e r i d e n t i f i c a t i o nn u m b e r . p o r t i o n o t h d i s k i m a d e i n t o d i r e c t o r y , w h e r e t h n a m e s o p r o g r a m s a n o t h e r f i l e s w i l l b s t o r e d . F i n a l l y , 3 t r a c k s a r c o n s t r u c t e d o t h d i s k ' s s u r f a c e . E a c h o f t h e s e t r a c k s i u s e d f o s t o r i n g i n f o r m a t i o n ; o n p a r t i c u l a r t r a c k , n u m b e r 1 8 i u s e d f o t h d i r e c t o r y . E a c h t r a c k , i n t u r n , i d i v i d e d i n t o s e c t o r s , e a c h c o n t a i n i n g 2 5 b y t e s , o c h a r a c t e r s , o i n f o r m a t i o n .T h e s e s e c t o r s a r a l s o c a l l e d b l o c k s . T h t o t a l u s a b l e s t o r a g e s p a c e o d i s ki 6 6 b l o c k s , o a l m o s t 1 7 0 , 0 0 0 b y t e s o c h a r a c t e r s .

Y o s h o u l d u n d e r s t a n d , r i g h t f r o m t h s t a r t , t h a t y o c a n n o t u s e a d i s kp r e p a r e d o a n o t h e r t y p e o c o m p u t e r — a n A p p l e o A t a r i , f o i n s t a n c e — o ny o u r C o m m o d o r e 6 4 e v e n i f i t c o n t a i n s B A S I C p r o g r a m t h a t w i l l o p e r a t eo y o u r m a c h i n e . N o o n l y d o e s e v e r y c o m p u t e r h a v e d i f f e r e n t w a o u s i n ga n s t o r i n g B A S I C p r o g r a m s w i t h i n i t b u e a c h a l s o h a d i f f e r e n t w a o s t o r i n g i n f o r m a t i o n o t h e d i s k i t s e l f . ( T h e s a m e t h i n g g o e s f o r c a s s e t t e s .D o n ' t e v e n b o t h e r t r y i n g t L O A D c a s s e t t e p r e p a r e d o a n o t h e r c o m p u t e r . )

F l o p p y d i s k s s h o u l d b t r e a t e d v e r y g e n t l y . E v e n t h o u g h t h f r a g i l e n t u r e o f l o p p y d i s k s i u s u a l l y e x a g g e r a t e d ( t h e y d s t a n d u t e v e r y d a yh a n d l i n g q u i t e w e l l ) , i i e a s y t d a m a g e t h i n f o r m a t i o n o t h e d i s k i t s e l f .H a n d l i n g a n s t o r a g e t i p s a r p a c k e d w i t h m o s t c o m m e r c i a l b r a n d s o b l a n kd i s k s , b u f e a r a l w a y s w o r t h r e p e a t i n g .

N e v e r t o u c h t h e s u r f a c e o f t h e d i s k v i s i b l e i n e i t h e r o f t h e c u t - o u t h o l e si t h o u t s i d e p l a s t i c e n v e l o p e . B p a r t i c u l a r l y c a r e f u l o t h e h o l e o t h b o t t o m s i d e o f t h e d i s k ; t h a t ' s t h s i d e t h 1 5 4 1 r e c o r d s o n D o n ' te v e r b e n d t h d i s k , e i t h e r .W h e n n o u s i n g i t a l w a y s k e e p t h e d i s k i n s i d e i t p r o t e c t i v e p a p e re n v e l o p e . K e e p y o u r d i s k s i b o o o t h e r s t o r a g e c o n t a i n e r a n a w a y f r o m t o b a c c o s m o k e , d u s t , a n d i r t w h i c h c o u l d r u i n t h i n f o rm a t i o n s t o r e d o t h e m . M a k e s u r e t h a t d i s k s a r e s t o r e d i c o o l , d r p l a c e . ( N o t , f o e x a m p l e , i c a w i t h t h w i n d o w s r o l l e d u o s u m m e r d a y . )K e e p t h d i s k s a w a y f r o m m a g n e t s o a n s t r o n g m a g n e t i c f i e l d s l i k et h o s e g i v e n o f b e l e c t r i c a l t r a n s f o r m e r s i s t e r e o a m p l i f i e r s o t e e v i s i o n s e t s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 47/318

3 U s i n g t h D i s k D r i v e

U s i n g t h D i s k D r i v eO t h f r o n t o t h d i s k d r i v e a r t w c o l o r e d l i g h t s . ( T h e y ' r e a c t u a l l y

L E D s , o L i g h t E m i t t i n g D i o d e s . ) T h g r e e n l i g h t i n d i c a t e s t h a t t h e d i s k d r i v ei t u r n e d o n T h r e l i g h t t e l l s y o u t w o t h i n g s : I w i l l s t a y o o f l a s h o a n o f o c c a s i o n a l l y w h e n t h e d i s k d r i v e i L O A D i n g o S A V E i n g . W h e n t h r e l i g h t f l a s h e s o a n o i r e g u l a r l y a n t h m o t o r h a s t o p p e d r u n n i n g ( y o uw o n ' t h e a r i t f a m i l i a r w h i r r ) , i i n d i c a t e s a E R R O R . A l w a y s w a t c h t h i sl i g h t w h e n u s i n g t h d i s k d r i v e .

Y o s h o u l d h a v e t h d i s k t h a t c o m e s p a c k e d w i t h e a c h 1 5 4 1 d i s k d r i v e .I i c a l l e d V I C - 1 5 4 1 T E S T / D E M O . I a d d i t i o n t s o m e t e s t p r o g r a m s , i c o n t a i n s p r o g r a m c a l l e d " W e d g e " o D O M a n a g e r . T h i s p r o g r a m i s u s e f u l t h a t y o w i l l n o w a n t t b w i t h o u t i t ( T h e t e s t p r o g r a m s o t h i sd i s k a r a a b s o l u t e n e c e s s i t y , t o o . R U t h e m t e v a l u a t e y o u r d i s k d r i v ea n r e t u r n i t y o u r d e a l e r i t h d r i v e d o e s n o t p a s s t h e s e t e s t s . )

W e d g e l e t s y o e a s i l y L O A D p r o g r a m s , s e e t h e d i s k d i r e c t o r y , e r a s e ( s c r a t c h )p r o g r a m s a n f i l e s , f o r m a t t h d i s k , a n r e a d d i s k E R R O R s . l t i c a l l e d W e d g ef o t w r e a s o n s : I t c o m m a n d s a r " s h o e h o r n e d , " o w e d g e d i n t o t h c o p u t e r ' s o p e r a t i n g s y s t e m . I a l s o u s e s a s p e c i a l c h a r a c t e r — " > " — t h e " g r e a t e rt h a n " s i g n b e f o r e e a c h d i s k c o m m a n d . T h n a m e D O M a n a g e r c o m e s f r o m

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 48/318

3 — S o m e E s s e n t i a l S k i l l s 3

t h f a c t t h a t t h i s l i t t l e p r o g r a m m a n a g e s t h m a c h i n e ' s D i s k O p e r a t i n g S y st e m , a p r o g r a m t h a t r u n s t h w h o l e d i s k s h o w .

Y o c a d t h i n g s w i t h W e d g e t h a t a r e d i f f i c u l t t d u s i n g c o n v e n t i o n a ld i s k c o m m a n d s . A w g a l o n g , y o u ' l l s e t h p r o p e r B A S I C f o r m f o t h e s ec o m m a n d s .

T L O A D W e d g e , o p e n t h d o o r o t h e d i s k d r i v e , i n s e r t t h e d i s k w i t ht h l a b e l u a n t h o p e n w i n d o w s t t h r e a r , t h e n c a r e f u l l y c l o s e t h d o o rb g e n t l y p u l l i n g t h e t a b - l i k e l a t c h d o w n a n t o w a r d y o u . T h e n t y p e

L O A D » C - b < W E D G E " f [ a n d p r e s s t h e R E T U R N k e y ]T h e c o m p u t e r s h o u l d r e s p o n d w i t h :S E A R C H I N G F O C - f c < W E D G EL O A D I N GR E A D Y .Y o w i l l h e a r t h e d i s k d r i v e s p i n n i n g a n t h R E l i g h t w i l l c o m e o n I y o n o t i c e , L O A D i n g f r o m d i s k i a l m o s t e x a c t l y t h e s a m e a L O A D i n g

f r o m t a p e . T h e x c e p t i o n i t h a d d i t i o n o c o m m a a n t h n u m b e r 8 A l d e v i c e s l i k e c a s s e t t e r e c o r d e r s , d i s k d r i v e s , p r i n t e r s a n m o d e m s , o

t e l e p h o n e l i n k s a r g i v e n i d e n t i f y i n g n u m b e r s i C o m m o d o r e s y s t e m . T h e s en u m b e r s a r s e i n s i d e e a c h d e v i c e . T h c a s s e t t e r e c o r d e r i a l w a y s n u m b e r1 T h p r i n t e r i a l m o s t a l w a y s d e v i c e n u m b e r 4 T h d i s k d r i v e c o m e s f r o mC o m m o d o r e ' s f a c t o r y a s d e v i c e n u m b e r 8 S o w h e n y o t e l l t h c o m p u t e rt L O A D " C - 6 4 W E D G E " , 8 y o u ' r e t e l l i n g i t L O A D f r o m d e v i c e n u m b e r 8 t h d i s k d r i v e .

W h e n t h c o m p u t e r c o m e s b a c k w i t h R E A D Y , t y p e R U N . T h r e l i g h to t h e d i s k d r i v e s h o u l d c o m e o a g a i n , l e t t i n g y o k n o w t h a t a n o t h e r p r g r a m i b e i n g L O A D e d . ( T h e p u r p o s e o f t h e f i r s t p a r t o t h W e d g e p r o g r a mi t L O A D t h n e x t o n e . ) Y o w o n ' t n e e d t t y p e R U a g a i n . I n s t e a d , y o u ' l ls e m e s s a g e t h a t c o n f i r m s W e d g e h a b e e n L O A D e d . I w i l l s a y :

D O M A N A G E R ( t h e n v e r s i o n n u m b e r )B B O F A I R B A I R N

U n t i l t h e m a c h i n e i t u r n e d o f f , y o u ' l l h a v e W e d g e i t h m a c h i n e , s i t t i n gi p a r t o m e m o r y w h e r e i w i l l n o b d i s t u r b e d b y m o s t B A S I C p r o g r a m s .I w i l l c o n t i n u e t b i t h c o m p u t e r e v e n a f t e r y o r e s e t i u s i n g t h R U N /S T O P a n R E S T O R E k e y s .

T h D i s k D i r e c t o r yI y o w a l k i n t o b u i l d i n g a n d w a n t t k n o w w h e r e c e r t a i n o f f i c e i

l o c a t e d , y o l o o k a t h b u i l d i n g d i r e c t o r y . Y o c a s e w h a t i o d i s k b l o o k i n g a i t d i r e c t o r y , t o o . I t e l l s y o t h n a m e o t h d i s k , i t t w o - c h a r a c t e rI n u m b e r , t h p r o g r a m n a m e s , a n t h n u m b e r o e m p t y b l o c k s , o s e c t o r s ,l e f t o i t H e r e i s a m p l e o w h a t d i s k d i r e c t o r y l o o k s l i k e . ( I w i l l d i f f e r ,o f c o u r s e , f r o m d i s k t d i s k . )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 49/318

3

1

1 A 5

T h

" 1 S 4 1 T E S T / D E M 0" H O W T O t i S E "" H O W P A B T T W O "" V I C - E D W E D G E "" C - t < W E D G E "" D O S 5 . 1 "" M A I L "" D A T A B A S E "

B L O C K S F E E E

D i s k D i r e c t o r y

Z E P E P E P E P E P E S E P E

T h f i r s t n u m b e r o t h t o l i n e i t h d r i v e n u m b e r . T h i s i c a r r y o v e rf r o m a p r e v i o u s C o m m o d o r e d i s k d r i v e s y s t e m w h i c h h a d t w o d r i v e s w h i c hw e r e n u m b e r e d D r i v e 0 a n D r i v e 1 S i n c e t h C o m m o d o r e 6 s c l o s e l yr e s e m b l e s i t p r e d e c e s s o r s , i s t i l l t h i n k s o y o u r 1 5 4 1 d i s k d r i v e a D r i v e 0 R e m e m b e r t h i s b e c a u s e y o u ' l l f i n d t h i s d r i v e n u m b e r u s e f u l w i t h o t h e r d i s kc o m m a n d s .

N e x t o t h a t l i n e i t h n a m e o f t h e d i s k , i n t h i s c a s e 1 5 4 1 T E S T / D E M O . "T h n e x t t w l e t t e r s , Z X a r e t h e d i s k ' s I D T h i s i p a r t o t h e d i r e c t o r yr e q u i r e d b t h d i s k d r i v e . E a c h d i s k m u s t h a v e i t o w u n i q u e t w o - c h a r a c t e rI D T h 2 r e f e r s t o t h e v e r s i o n o C o m m o d o r e ' s d i s k o p e r a t i n g s y s t e m — t h ep r o g r a m t h a t r u n s t h e d i s k d r i v e — t h a t w r o t e t h d i s k . F o n o w , i t ' s u n i mp o r t a n t .

T h e n u m b e r s i t h l e f t - h a n d c o l u m n s h o w h o m a n y b l o c k s o r s e c t o r so t h e d i s k a r e u s e d f o e a c h p r o g r a m . I t h m i d d l e i t h p r o g r a m n a m e ,f o l l o w e d b t h r e e - l e t t e r a b b r e v i a t i o n . T h i s a b b r e v i a t i o n i n d i c a t e s w h e t h e ri i p r o g r a m o a n o t h e r k i n d o f i l e . O n l y p r o g r a m s w i t h t h a b b r e v i a t i o nP R c a b L O A D e d d i r e c t l y f r o m d i s k . I t h a b b r e v i a t i o n a f t e r t h n a m ei S E o R E ( f o r " s e q u e n t i a l " o " r e l a t i v e " f i l e s ) , i i a i n f o r m a t i o n f i l e ,n o t a p r o g r a m f i l e , a n m u s t b r e c a l l e d b a n o t h e r p r o g r a m s p e c i f i c a l l yd e s i g n e d t u s t h i s d a t a . ( S e e " H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n . " )

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

Y o c a s e t h e d i s k d i r e c t o r y u s i n g e i t h e r W e d g e o r B A S I C c o m m a n d .Y o h a v e a l r e a d y s e e n h o t L O A D p r o g r a m f r o m d i s k w h e n y o L O A D e dW e d g e . Y o u s L O A D w i t h p r o g r a m n a m e , f o l l o w e d b c o m m a a n t h n u m b e r ( " , 8 " ) . I y o r e m e m b e r , y o u s t h " g r e a t e r t h a n " s i g n ( " > " ) w i t h

W e d g e c o m m a n d . ( F o r y o u r c o n v e n i e n c e , y o c a a l s o u s a n o t h e r c h a ra c t e r , t h c o m m e r c i a l " a t " s y m b o l — " @ " — w i t h W e d g e . ) T y p e e i t h e r o f t h e s ed i s k d i r e c t o r y c o m m a n d s :

L O R D » $ " , f lo

> ( o @ $ B o t h o t h e s e d t h s a m e t h i n g — t h e y a l l o w y o t s e e t h e d i s k d i r e c t o r y .

W h e n y o u s t h B A S I C f o r m — L O A D " $ " , 8 — t h e d i r e c t o r y w i l l b L O A D e di n t o t h c o m p u t e r ' s m e m o r y . T o s e i t y o m u s t t y p e L I S T ( a n d p r e s s R T U R N ) . L O A D i n g d i r e c t o r y t h i s w a a l w a y s d e s t r o y s w h a t e v e r i i t h c o m p u t e r ' s m e m o r y , i n c l u d i n g a n B A S I C p r o g r a m t h a t m a b t h e r e .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 50/318

3 — S o m e E s s e n t i a l S k i l l s 3

I t i s b e t t e r , t h e n , t u s t h W e d g e v e r s i o n — > $ o @ $ — b e c a u s e W e d g et r a n s f e r s t h e d i r e c t o r y d i r e c t l y f r o m t h e d i s k t t h v i d e o s c r e e n w i t h o u td e s t r o y i n g t h p r o g r a m i m e m o r y .

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

P r e p a r i n g D i s kY o c a p r e p a r e n e d i s k u s i n g e i t h e r B A S I C o W e d g e . S i n c e t h 1 5 4 1

d i s k d r i v e i ' ' s m a r t " ( i h a i t o w m i c r o p r o c e s s o r c h i p , m e m o r y , a n p r o g r a m i n s i d e t h a t r u n s i t ) , i c a l o o k a g r o u p o c o m m a n d s a n p e r f o r mt h c o r r e c t d i s k o p e r a t i o n . T h c o m m a n d s a r l e t t e r s , p u n c t u a t i o n m a r k s ,a n n u m b e r s i n s i d e t h q u o t e m a r k s t h a t c o n t a i n t h p r o g r a m o d i s k n a m e .F o r e x a m p l e , t h i s i t h w a y o p r e p a r e d i s k u s i n g B A S I C c o m m a n d st y p e d f r o m t h k e y b o a r d :

O P E N 1 , 3 , 1 5P R I N T # 1 , » N D : D I S K N A M E , I D "T h f i r s t c o m m a n d t h a t y o t y p e d — O P E N 1 , 8 , 1 5 — i s t h w a t h a t y o

t e l l t h d i s k d r i v e t g e r e a d y f o s p e c i a l d i s k o p e r a t i o n , l i k e f o r m a t t i n ga n n a m i n g t h d i s k . T h f i r s t o f t h e t h r e e n u m b e r s a f t e r O P E N — 1 — i s c a l l e d

f i l e n u m b e r . T h o u g h i c a n b e a n n u m b e r b e t w e e n a n 2 5 5 , t h e r e ' s n r e a l r e a s o n t u s n u m b e r o t h e r t h a n i y o u ' r e j u s t p r e p a r i n g d i s k s . T h s e c o n d n u m b e r — 8 — i s t h d e v i c e n u m b e r . I m e a n s t h a t w e ' r e t a l k i n g t t h d i s k d r i v e . T h l a s t n u m b e r i c a l l e d s e c o n d a r y a d d r e s s . Y o u ' l l r e a dm o r e a b o u t s e c o n d a r y a d d r e s s e s i a n o t h e r p a r t o t h i s b o o k c a l l e d " H o wt h C o m p u t e r S t o r e s I n f o r m a t i o n . " F o t h t i m e b e i n g , h o w e v e r , y o s h o u l du n d e r s t a n d t h a t t h e n u m b e r 1 i a l w a y s u s e d b t h s y s t e m t t e l l t h d i s kt p r e p a r e f o s p e c i a l c o m m a n d .

I t i s g o o d i d e a t C L O S E t h f i l e y o h a v e O P E N e d a f t e r y o a r d o n ew i t h i t e s p e c i a l l y i y o w i l l b u s i n g i n f o r m a t i o n f i l e s i y o u r p r o g r a m s .J u s t t y p e :

C L O S EA g a i n , y o w i l l l e a r n m o r e a b o u t t h h o w ' s a n w h y ' s o O P E N a n C L O S E i " H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n . "I n s i d e t h e q u o t e s , t h e n u m b e r s a n l e t t e r s f o r m c o d e f o t h e d i s k d r i v e

t u n d e r s t a n d . " N t e l l s t h d i s k t h a t t h e s p e c i a l o p e r a t i o n w i l l b t p r e p a r eo f o r m a t N e d i s k . T h n e x t c h a r a c t e r i t h n u m b e r ( z e r o ) , w h i c h t e l l st h e d i s k d r i v e y o u ' l l b u s i n g d r i v e 0 ( I y o r e c a l l , y o u r d r i v e i a l w a y s d r i v e

s i n c e t h 1 5 4 1 i s i n g l e d i s k d r i v e u n i t . ) T h e c o l o n — " : " — i s n e c e s s a r yp u n c t u a t i o n m a r k t h a t s e p a r a t e s t h a t c o m m a n d f r o m t h e d i s k n a m e . ( H e r ec a l l e d D I S K N A M E . )

F o l l o w i n g a n o t h e r p u n c t u a t i o n m a r k , c o m m a , i t h d i s k ' s I m a r k ,t w o - c h a r a c t e r i d e n t i f i c a t i o n m a r k t h a t C o m m o d o r e d i s k s r e q u i r e . Y o s h o u l dt r t m a k e e a c h I m a r k u n i q u e . I t h e x a m p l e , t h I i o c o u r s e I D

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 51/318

3 P r e p a r i n g D i s k

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

> N D : D I S K N A M E , I DW i t h W e d g e , y o u d o n ' t n e e d e i t h e r t h O P E N , P R I N T # , o C L O S E c o

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

P r e p a r i n g d i s k t a k e s f e m i n u t e s . S i y o u r d i s k d r i v e s e e m s t b g o i n g f o r e v e r a n t h r e l i g h t s t a y s o n , d o n ' t w o r r y . E v e r y t h i n g i g o i n g a i s h o u l d . W h e n t h e d i s k d r i v e h a f i n i s h e d i t p r e p a r a t i o n s , t h e r e l i g h tw i l l g o u a n t h v i d e o s c r e e n w i l l s a R E A D Y . C h e c k y o u r d i s k b l o o k i n ga t h d i r e c t o r y . I s h o u l d l o o k l i k e t h i s :

" D I S K N A M E I E B L O C K S F R E E

O c o u r s e , t h e d i s k n a m e a n I m a r k y o c h o o s e w i l l b t h e r e i n s t e a do t h o n e s u s e d i t h i s e x a m p l e .

L O A D f r o m D i s kL O A D i n g p r o g r a m f r o m d i s k i a b o u t a s i m p l e a L O A D i n g f r o m

c a s s e t t e , w i t h f e e x c e p t i o n s . R e m e m b e r t h a t y o c a o n l y L O A D p r g r a m o f t h e d i s k i i r e a l l y i p r o g r a m , i n d i c a t e d b t h P R a b b r e v i a t i o n .Y o c a a l w a y s l o o k a t h d i s k d i r e c t o r y , t h e n u s t h i s c o m m a n d :

L O A D " D I S K N A M E » , f lI y o c h o o s e t t y p e i t h e n t i r e p r o g r a m n a m e , y o u m u s t t y p e i e x a c t l y

a i i s h o w n o t h d i r e c t o r y . I y o d n o t , t h c o m p u t e r w i l l r e s p o n d w i t hF I L E N O T F O U N D E R R O R a n t h r e l i g h t o t h f r o n t o f t h e d i s k d r i v e

w i l l f l a s h o a n o f r e g u l a r l y . I y o u ' r e l a z y — o r , i f a i r n e s s , j u s t w a n t t s a v e t i m e a n e f f o r t , l i k e e v e r y o n e e l s e — y o u c a u s e a s h o r t c u t .

J u s t a y o c a L O A D c a s s e t t e p r o g r a m w i t h o n l y t h f i r s t f e l e t t e r so f t h e n a m e , y o c a n d o t h s a m e w i t h d i s k p r o g r a m s . I n s t e a d o o m i t t i n gt h l a s t q u o t a t i o n m a r k , y o u ' l l u s a a s t e r i s k — " * " — a n d c l o s e t h e q u o t e s .

C o m m o d o r e ' s d e s i g n e r s w e r e v e r y c l e v e r i t h w a t h e y h a v e u s e d t h a s t e r i s k t m a k e u s i n g t h e d i s k d r i v e e a s i e r . H e r e a r e t h e r u l e s f o i t u s e :

W h e n y o b e g i n u s i n g t h e d i s k d r i v e , L O A D " * " , 8 w i l l L O A D t h f i r s tp r o g r a m l i s t e d o t h d i s k d i r e c t o r y . ( T h i s c a b e s p e c i a l l y h a n d y i t h f i r s t p r o g r a m i a l w a y s W e d g e , f o e x a m p l e . )

A f t e r L O A D i n g a n p r o g r a m , L O A D " * " , 8 w i l l a l w a y s L O A D t h a t p r g r a m a g a i n , e v e n i i w a n o t h f i r s t p r o g r a m .U s i n g t h a s t e r i s k i a n p r o g r a m n a m e w i l l h a v e t h e f f e c t o L O A D i n gt h f i r s t p r o g r a m o t h e d i r e c t o r y w h o s e n a m e m a t c h e s t h l e t t e r st h a t c o m e b e f o r e i t E x a m p l e : L O A D " P R O * " , 8 w i l l L O A D p r o g r a m s

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 52/318

3 — S o m e E s s e n t i a l S k i l l s 3

n a m e d P R O G R A M , P R O G R A M O N E , P R O G R A M T W O , P R O F E SS I O N A L , e t c .

W e d g e l e t s y o L O A D p r o g r a m s t w o d i f f e r e n t w a y s . ( Y o u c a a l w a y s u s t h a s t e r i s k w i t h W e d g e c o m m a n d s , t o o . )

T L O A D p r o g r a m , y o c a u s e :/ P R O G R A M N A M ET h c h a r a c t e r i " s l a s h , " f o u n d o t h s a m e k e a s t h e q u e s t i o n m a r k .

I L O A D s p r o g r a m a n w a i t s f o y o t t y p e R U t s t a r t i o p e r a t i n g .Y o c a a u t o m a t i c a l l y L O A D a n R U t h p r o g r a m w i t h a n o t h e r W e d g e

c o m m a n d :[ U p A r r o w ] P R O G R A M N A M E

Y o d o n ' t t y p e t h w o r d s " U A r r o w , " o f c o u r s e . I n s t e a d , y o p r e s s t h " u a r r o w " k e o t h k e y b o a r d , w h i c h i l o c a t e d i t h s e c o n d r o f r o mt h e t o p b e t w e e n t h a s t e r i s k a n R E S T O R E k e y s . W h e n B A S I C p r o g r a mi L O A D e d , t h c o m p u t e r w i l l t h e n i m m e d i a t e l y s t a r t t h p r o g r a m .

S o m e p r o g r a m s w i l l r e q u i r e L O A D i n g p r o c e d u r e t L O A D t h e m i s p e c i f i c p l a c e i t h c o m p u t e r ' s m e m o r y . U s u a l l y , t h e s e a r e p r o g r a m s t h a ta r n o t w r i t t e n i B A S I C . T h i s L O A D c o m m a n d l o o k s l i k e t h i s :

L O A D " P R O G R A M N A M E " , f l , lT h l a s t n u m b e r t e l l s t h c o m p u t e r t L O A D t h p r o g r a m , n o i t h

p l a c e w h e r e B A S I C p r o g r a m s a r u s u a l l y s t o r e d , b u i t h p l a c e i m e m o r yw h e r e t h e y m u s t r e s i d e t o p e r a t e p r o p e r l y . I y o h a v e u s e d C o m m o d o r eP E o C B c o m p u t e r , y o w i l l r e c o g n i z e t h a t t h i s i d i f f e r e n t p r o c e d u r ef r o m w h a t y o u ' r e u s e d t o ( W i t h t h o s e m a c h i n e s , n s p e c i a l L O A D c o m m a n di n e e d e d . P r o g r a m s a l w a y s L O A D i n t h e i r p r o p e r p l a c e . )

T h e q u i v a l e n t c o m m a n d i W e d g e l o o k s l i k e t h i s :" P R O G R A M N A M E "

I a l m o s t e v e r y c a s e , y o w i l l b s p e c i f i c a l l y t o l d t u s t h i s L O A Dc o m m a n d w i t h t h p r o g r a m s t h a t r e q u i r e i t I y o a r e n ' t t o l d t L O A D t h i sw a y , u s t h c o n v e n t i o n a l f o r m o W e d g e c o m m a n d s a b o v e .

S A V E a n V E R I F YY o S A V E p r o g r a m t d i s k j u s t l i k e y o S A V E p r o g r a m t o c a s s e t t e

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

S A V E " P R O G R A M N A M E " , f iI y o a r u s i n g W e d g e , S A V E p r o g r a m u s i n g t h " l e f t a r r o w " k e

f o u n d a t h t o l e f t c o r n e r o t h k e y b o a r d .[ P r e s s t h l e f t a r r o w k e y ] " P R O G R A M N A M E "

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 53/318

4 S A V E a n V E R I F Y

Y o c a a l s o u s t h e d r i v e n u m b e r ( 0 w h e n y o S A V E p r o g r a m .S A V E " D : P R O G R A M N A M E " , f iW i t h c a s s e t t e t a p e , y o c a a l w a y s r e w i n d t h t a p e a n r e c o r d n e

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

S A V E " @ : P R O G R A M N A M E " , f lo

S A V E " @ D : P R O G R A M N A M E " , f

Y o m u s t b c a r e f u l t t y p e t h n a m e e x a c t l y a i a p p e a r s o t h d i s kd i r e c t o r y , o y o w i l l n o S A V E o v e r t h o r i g i n a l p r o g r a m .

Y o c a c h e c k y o u r w o r k t m a k e s u r e t h e d i s k h a S A V E d a n p r o g r a mc o r r e c t l y . U s V E R I F Y w i t h t h p r o g r a m n a m e a n t h d e v i c e n u m b e r 8

V E R I F Y " P R O G R A M N A M E " , f lS i n c e t h a s t e r i s k c a b u s e d i n s t e a d o f t h e l a s t n a m e r e c o g n i z e d b

t h d i s k d r i v e , y o c a S A V E t h p r o g r a m w i t h t h p r o p e r n a m e , t h e n i m e d i a t e l y V E R I F Y i w i t h t h a s t e r i s k .

V E R I F Y " * " , f lI t h p r o g r a m h a n o b e e n S A V E d c o r r e c t l y , y o w i l l s e V E R I F Y

E R R O R m e s s a g e o t h v i d e o s c r e e n .

E r a s i n g D i s k F i l e sE v e n t h o u g h s i n g l e d i s k c a h o l d a l m o s t 1 7 0 , 0 0 0 b y t e s , y o u ' l l f i n d t h a t

d i s k s f i l l u q u i c k l y w i t h e a r l y v e r s i o n s o p r o g r a m s , m i s c e l l a n e o u s i n f o rm a t i o n f i l e s a n d p r o g r a m s t h a t y o j u s t d o n ' t w a n t a n y m o r e . Y o c a e r a s e —o " s c r a t c h " — t h e s e p r o g r a m s a n f i l e s t m a k e r o o m o t h d i s k f o o t h e r s .

L i k e f o r m a t t i n g o p r e p a r i n g a d i s k , s c r a t c h i n g p r o g r a m s a n f i l e s c a b d o n e e i t h e r f r o m B A S I C o w i t h W e d g e .

O P E N l , f l , 1 5P R I N T # 1 / " S D : P R O G R A M N A M E " , f l

o

> S D : P R O G R A M N A M E

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 54/318

3 — S o m e E s s e n t i a l S k i l l s 4

V a l i d a t e t h D i s kU n l i k e a c a s s e t t e t a p e , t h d i s k i c o m p l i c a t e d o r g a n i z a t i o n o i n f o r

m a t i o n w i t h p i e c e s o p r o g r a m s s c a t t e r e d a b o u t t r a c k s a n s e c t o r s , a n s o m et h i n g c a l l e d t h B l o c k A v a i l a b i l i t y M a ( B A M ) w h i c h m a i n t a i n s t h o v e r a l lo r d e r . O c c a s i o n a l l y , t h e t o t a l n u m b e r o b l o c k s u s e d f o p r o g r a m s a n d i f o r m a t i o n f i l e s a n t h n u m b e r o f r e e b l o c k s w o n ' t a d d u p t t h m a g i cn u m b e r o 6 6 b l o c k s o r s e c t o r s .

E s s e n t i a l l y , t h d i s k i m e s s y , e v e n t h o u g h i m a c o n t i n u e t w o r kp r o p e r l y . Y o r u t h r i s k , h o w e v e r , o f u r t h e r d i s o r g a n i z i n g i a n l o s i n gv a l u a b l e p r o g r a m o f i l e . T c l e a n u t h e d i s k a n r e s t o r e o r d e r , y o c a " v a l i d a t e " i t u s i n g e i t h e r B A S I C o W e d g e . I i g o o d i d e a t v a l i d a t e y o u rd i s k s f r o m t i m e t t i m e , o w h e n e v e r y o s p o t p o t e n t i a l p r o b l e m .

0 P E N l , f l , 1 5P R I N T # 1 , " V "

o P R I N T # 1 , » V D »W i t h W e d g e , u s t h i s c o m m a n d :>

o

> V

D i s k E R R O R SY o k n o w t h e r e i p r o b l e m w i t h t h e d i s k d r i v e w h e n e v e r t h r e l i g h t

f l a s h e s o a n o f r e g u l a r l y . d i s k E R R O R h a o c c u r r e d , a l t h o u g h y o c a n ' tt e l l w h a t k i n d o E R R O R i i s i n c e m e s s a g e d o e s n ' t a p p e a r o t h v i d e os c r e e n . A n d , t h l i g h t w i l l c o n t i n u e f l a s h i n g u n t i l y o f i n d o u w h a t t h E R R O R i s S h o d y o f i n d o u t ?

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

t h a t d o e s n ' t e x i s t .L O A D " M M F P L T S K » , f lU n l e s s y o a c t u a l l y h a v e p r o g r a m w i t h t h i s n a m e ( w h i c h i u n l i k e l y ) ,

t h r e d i s k l i g h t w i l l r e g u l a r l y f l a s h o a n o f f . N o t y p e i t h i s l i t t l ep r o g r a m e x a c t l y a i a p p e a r s a n R U i t

I O P E N 1 , 0 , 1 52 I N P U T # 1 , & $ , B $ , C $ , D $3 P R I N T f t $ , B $ , C $ , D $A C L O S E

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 55/318

4 D i s k E R R O R s

T h v i d e o s c r e e n s h o u l d l o o k l i k e t h i s :b F I L E N O F O U N D D D

T h f i r s t n u m b e r i t h E R R O R n u m b e r w h i c h i s p e l l e d o u t t h r i g h t ,F I L E N O F O U N D . T h n e x t t w n u m b e r s a r e t h e t r a c k a n s e c t o r n u m b e r sw h e r e t h E R R O R o c c u r r e d . ( T h e s e a r e n ' t u s e d f o t h F I L E N O F O U N DE R R O R . )

T y p i n g i t h i s p r o g r a m , h o w e v e r , i i n c o n v e n i e n t , a n s o m e t i m e s y o c a n ' t u s i b e c a u s e p r o g r a m i a l r e a d y i m e m o r y . T h b e s t w a t s e d i s k E R R O R s , t h e n , i t u s W e d g e . J u s t t y p e t h " g r e a t e r t h a n " ( " > " )s y m b o l a n y t i m e y o s e e t h e r e d i s k l i g h t f l a s h i n g o a n o f f . Y o w i l l s e t h s a m e i n f o r m a t i o n , t h E R R O R n u m b e r , E R R O R m e s s a g e , a n t r a c k a n s e c t o r n u m b e r s w h e r e t h E R R O R o c c u r r e d .

S o m e D i s k C a u t i o n sU s i n g C o m m o d o r e ' s d i s k d r i v e i m u c h m o r e c o n v e n i e n t t h a n u s i n g t h

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

N s y s t e m , h o w e v e r , i p e r f e c t , a n t h 1 5 4 1 d i s k d r i v e i n e x c e p t i o nt t h i s r u l e . f e c a u t i o n s w h e n u s i n g t h d i s k d r i v e a r i o r d e r .

I y o f o r g e t t c l o s e t h d o o r o t h d i s k d r i v e , y o w i l l s e F I L EN O T F O U N D E R R O R m e s s a g e o n t h v i d e o s c r e e n . E v e n a f t e r c l o s i n gt h d o o r , t r y i n g t L O A D t h s a m e p r o g r a m m a n o w o r k , a n y o u ' l ls e t h s a m e E R R O R . O p e n t h d o o r o t h d i s k d r i v e , t a k e t h d i s ko u t , a n r e i n s e r t i t T h i s u s u a l l y s o l v e s t h e p r o b l e m .I y o w a n t t u s t w d i s k d r i v e s , o n m u s t b a s s i g n e d a d e v i c en u m b e r o t h e r t h a n 8 U n l e s s y o h a v e e l e c t r o n i c e x p e r i e n c e , a s y o u rd e a l e r t c h a n g e t h d e v i c e n u m b e r f o y o u , s i n c e i r e q u i r e s c u t t i n g

p i e c e o t h e p r i n t e d c i r c u i t r y i n s i d e . O n c e y o u h a v e b o t h d r i v e sc o n n e c t e d t y o u r c o m p u t e r , a l w a y s r e m e m b e r t t u r n o t h p o w e rt t h c o m p u t e r l a s t . T h i s w a y , i w i l l p r o p e r l y r e c o g n i z e b o t h d r i v e s .I y o f o r g e t , p r e s s t h e R U N / S T O P a n R E S T O R E k e y s t o g e t h e r t " w a k e u p t h s y s t e m .B c a r e f u l w h e n u s i n g t h s a m e f l o p p y d i s k i b o t h y o u r 1 5 4 1 a n t h o r i g i n a l C o m m o d o r e 4 0 4 0 d u a l d i s k d r i v e u n i t s . A l t h o u g h t h e y a r es u p p o s e d t o b e , t h t w m a c h i n e s a r n o a l w a y s c o m p a t i b l e . T h p r o b l e m l i e s w i t h t h d i s k o p e r a t i n g s y s t e m i n s i d e s o m e 1 5 4 1 d r i v e s .T h i s c a n b e i d e n t i f i e d b a n y g o o d c o m p u t e r d e a l e r . U n t i l y o k n o wi y o h a v e 1 5 4 1 i w h i c h t h p r o b l e m h a b e e n c o r r e c t e d , n e v e rm i d i s k d r i v e s . I o t h e r w o r d s , i d i s k h a b e e n c r e a t e d o 1 5 4 1d r i v e , d o n ' t r e c o r d o t h s a m e d i s k i 4 0 4 0 d r i v e u n i t . I c o u l d s p e l ld i s a s t e r .

S o m e 1 5 4 1 d i s k d r i v e s c o m e f r o m t h C o m m o d o r e f a c t o r y s l i g h t l y o u o a d j u s t m e n t . T h p r o b l e m i u s u a l l y s p e e d . A l w a y s c h e c k y o u r d r i v e

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 56/318

3 — S o m e E s s e n t i a l S k i l l s 4

w i t h t h " P e r f o r m a n c e T e s t " p r o g r a m o t h e d i s k f u r n i s h e d w i t h y o u r1 5 4 1 . T h e n t r y o u r d i s k o a n o t h e r 1 5 4 1 . I i L O A D s s m o o t h l y , e e r y t h i n g i p r o b a b l y a l r i g h t . I i d o e s n ' t , y o m a h a v e a a d j u s t m e n tp r o b l e m . U s u a l l y t h i s h a t d w i t h t h s p e e d a w h i c h t h e d i s kr o t a t e s . T h o u g h i i p o s s i b l e t d t h j o y o u r s e l f ( t h e r e i " s t r o b e "p a t t e r n a n t i n y a d j u s t m e n t o t h b o t t o m o t h e d r i v e i t s e l f ) , y o s h o u l d t a k e t h e d i s k d r i v e b a c k t y o u r d e a l e r f o t h i s a d j u s t m e n t .I y o n e e d , f o a n r e a s o n , t b r i n g t h e 1 5 4 1 i n t o d e a l e r f o r e p a i ro a d j u s t m e n t , h a v e h i c h e c k t h m e t a l p u l l e y t h a t c o n n e c t s t h s p i n d l e t t h m o t o r w i t h b e l t . O s o m e d i s k d r i v e s , t h i s p u l l e y w i l lw o r k i t s e l f l o o s e a n f a l l o f f . I y o h a p p e n t b r e c o r d i n g a p r o g r a mo f i l e t t h d i s k w h e n t h i s h a p p e n s , i c o u l d r u i n y o u r d i s k a n d e s t r o yv a l u a b l e i n f o r m a t i o n . A s y o u r d e a l e r t m a k e c e r t a i n t h i s p u l l e y f i t st i g h t l y o h a v e h i m m a k e t h n e c e s s a r y r e p a i r s .

N e v e r b l o c k t h v e n t i l a t i o n h o l e s o t h p l a s t i c c a s e o t h 1 5 4 1 d r i v e .T h i s m e a n s d o n ' t p i l e p a p e r s a n b o o k s o t o p , c o v e r i n g t h v e n t s l o t s ,a n d o n ' t p u t h d r i v e o c a r p e t i n g o a n o t h e r s u r f a c e t h a t w i l lb l o c k t h e v e n t s u n d e r n e a t h . I i q u i t e e a s y f o t h e d r i v e t o v e r h e a ta n r u i n s e n s i t i v e e l e c t r o n i c p a r t s i n s i d e .

C o m m o d o r e L O A D C o m p a t i b i l i t yO n o f t h e n i c e s t f e a t u r e s o f t h C o m m o d o r e 6 f a m i l y i i t a b i l i t y t

u s p r o g r a m s w r i t t e n f o o t h e r C o m m o d o r e c o m p u t e r s , t h P E T , C B M , a n V I C . U n f o r t u n a t e l y , t h e c o m p u t e r s a r n o 1 0 0 % c o m p a t i b l e . P r o g r a m s t h a tw i l l n o R U o t h C o m m o d o r e 6 i n c l u d e :

M o s t p r o g r a m s w r i t t e n i l a n g u a g e o t h e r t h a n B A S I C .B A S I C p r o g r a m s w i t h m a c h i n e r e f e r e n c e s , u s u a l l y P E E K a n P O K Ec o m m a n d s .P r o g r a m s t h a t w e r e w r i t t e n f o t h V I C ' s 2 2 c h a r a c t e r - w i d e s c r e e n .P r o g r a m s w r i t t e n w i t h c o m m a n d s f r o m C o m m o d o r e 4 . B A S I C .

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

A m o n g t h p r o g r a m s w r i t t e n o C o m m o d o r e 6 c o m p u t e r t h a t w i l ln o w o r k c o r r e c t l y o P E T , V I C , o C B a r e :

M o s t p r o g r a m s w r i t t e n i l a n g u a g e o t h e r t h a n B A S I C .M a n y p r o g r a m s t h a t u s c o l o r c o m m a n d s , a n a l m o s t a l p r o g r a m st h a t u s 6 s o u n d t e c h n i q u e s .

I n a d d i t i o n :P r o g r a m s t h a t u s t h f u n c t i o n k e y s w i l l n o t r a n s f e r t t h P E a n C B M , b u m a w o r k o t h V I C .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 57/318

4 C o m m o d o r e L O A D C o m p a t i b i l i t y

P r o g r a m s w i t h s c r e e n w i d t h s w i d e r t h a n 4 0 c h a r a c t e r s w i l l n o t r a n s f e rt t h V I C .P r o g r a m s t h a t t a k e u p m o r e t h a n 3 2 o m e m o r y w o n ' t w o r k o t h V I ( e v e n w h e n i t m e m o r y i e x p a n d e d ) , C B M , o P E T .

F o L O A D i n g s o m e p r o g r a m s f r o m t h P E a n C B i n t o C o m m o d o r e6 4 c o m p u t e r , y o u ' l l n e e d l i t t l e p r o g r a m c a l l e d " P E T E m u l a t o r . " O n e ,w r i t t e n b B o F a i r b a i r n , i a v a i l a b l e t h r o u g h C o m m o d o r e . ( A p r e s s t i m e ,p r i c e a n m e t h o d o f d i s t r i b u t i o n w e r e u n c e r t a i n . ) F a i r b a i r n h a d e s i g n e d t h p r o g r a m s t h a t i R U N s P E s o f t w a r e w r i t t e n f o C o m m o d o r e 2 . B A S I C( w h i c h i c l o s e s t t t h e v e r s i o n i n s i d e t h 6 c o m p u t e r f a m i l y ) . T h e E m u l a t o rw i l l e v e n a l l o w t h 6 t u s e P E T - s t y l e s o u n d e f f e c t s , i n c l u d e s t h e W e d g eD O M a n a g e r p r o g r a m , a n L O A D s f r o m d i s k .

T h P E E m u l a t o r d o e s n o t a l l o w y o t R U a l e x i s t i n g P E s o f t w a r e ,t h o u g h . ( T w o o t h m o s t p o p u l a r P E T / C B M p r o g r a m s , " V i s i C a l c " a n " W o r d P r o " w i l l n o r u n . ) Y o u ' l l h a v e t e x p e r i m e n t t s e w h i c h p r o g r a m sw i l l w o r k .

T h r e e q u i c k c o m m a n d s a r a l t h a t a r e n e c e s s a r y t L O A D p r o g r a m sw r i t t e n o C o m m o d o r e 6 i n t o P E o C B c o m p u t e r . O t h P E o C B M , t y p e t h e s e :

P O K E 4 1 , &P O K E E D 4 f l , DN E T h e n L O A D y o u r 6 p r o g r a m . A g a i n , n o t e v e r y 6 p r o g r a m w i l l R U

c o r r e c t l y o t h P E a n C B M .

U s i n g Y o u r C o m p u t e r a C a l c u l a t o rI i p o s s i b l e t u s t h v e r y p o w e r f u l m a t h e m a t i c a l f e a t u r e s o f t h e C o

m o d o r e 6 a a c a l c u l a t o r w i t h o u t t h n e e d t w r i t e p r o g r a m . O c o v e n t i o n a l p o c k e t c a l c u l a t o r , y o s t a r t a e q u a t i o n f r o m t h b e g i n n i n g a n e n w i t h a e q u a l s i g n ( " ) l i k e t h i s :

1 2 + 4 8 4 . 2 5T h o n l y d i f f e r e n c e w h e n u s i n g t h c o m p u t e r i t h a t y o s k i p t h e e q u a l

s i g n a n d , i n s t e a d , a s f o t h a n s w e r w i t h t h P R I N T c o m m a n d .P R I N T 1 E 4 & 4 . 2 S [ a n d p r e s s R E T U R N ]

T h a n s w e r w i l l a p p e a r o t h n e x t l i n e o t h v i d e o s c r e e n .Y o c a a l s o u s v a r i a b l e s d i r e c t l y f r o m t h k e y b o a r d . I y o d o n ' t k n o w

w h a t v a r i a b l e s a r e , y o u ' l l l e a r n a b o u t t h e m i t h f i r s t c h a p t e r o B A S I Cp r o g r a m m i n g . T y p e t h i s :

P R I N T 1 2

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 58/318

3 — - S o m e E s s e n t i a l S k i l l s 4

U s t h s t a n d a r d p l u s ( + a n d m i n u s ( - s i g n s f o a d d i t i o n a n s u t r a c t i o n . U s t h a s t e r i s k ( * f o m u l t i p l i c a t i o n a n t h s l a s h m a r k ( / f o d i v i s i o n . N e g a t i v e n u m b e r s a r p r e c e d e d b m i n u s s i g n ; e x p o n e n t i a l n u b e r s b t h " u a r r o w " s y m b o l . S q u a r e r o o t i a v a i l a b l e w i t h t h w o r d S Q R .T h c o m p u t e r a l s o s u p p o r t s " l e s s t h a n " a n " g r e a t e r t h a n " s y m b o l s ( > ) a n s o - c a l l e d l o g i c a l o p e r a t o r s A N D , O R N O T . T h e r e a r a l s o t h e t r i g o n om e t r i c f u n c t i o n s S I ( s i n e ) , C O ( c o s i n e ) , T A ( t a n g e n t ) , A T ( a r c t a n g e n t )a n L O ( l o g a r i t h m ) . Y o u s t h e s e w o r d s w i t h o b j e c t n u m b e r s t h a t a r ee n c l o s e d i p a r e n t h e s e s . F o i n s t a n c e , y o c a g e t h s q u a r e r o o t o f b t y p i n g :

P R I N T S Q ( 2 P a r e n t h e s e s c a a l s o b u s e d , a i p a p e r m a t h e m a t i c s , t e n c l o s e

c o m p l e t e t h o u g h t w i t h i n a e q u a t i o n .P R I N T ( T h i s e q u a t i o n f i r s t a d d s 1 a n 4 8 4 . 2 5 t h e n m u l t i p l i e s i b 5 3 T w q u i c k c a u t i o n s : N e v e r u s c o m m a s i n u m b e r s m o r e t h a n t h r e e

d i g i t s ( 1 0 0 0 i n s t e a d o 1 , 0 0 0 ) ; a n d , d o n ' t t r y t o u s e q u a t i o n s l o n g e r t h a n 8 0c h a r a c t e r s , o t w s c r e e n l i n e s , d i r e c t l y f r o m t h k e y b o a r d .

I y o d n o p l a n t u s t h m a c h i n e a c a l c u l a t o r o p r o g r a m i f o " n u m b e r c r u n c h i n g , " d o n ' t b f r i g h t e n e d b t h e s e f u n c t i o n s . J u s t r e m e m b e rt h e y a r e t h e r e i y o n e e d t h e m .

s h o r t h a n d f o r m o f t h e w o r d P R I N T i a v a i l a b l e . T h q u e s t i o n m a r k( ? c a b u s e d i n s t e a d o t y p i n g o u t h e e n t i r e w o r d P R I N T e v e r y t i m e . T r i t Y o u ' l l h e a r a b o u t i a g a i n i t h f i r s t c h a p t e r o B A S I C p r o g r a m m i n g a n s e c a u t i o n a b o u t i i t h c h a p t e r a b o u t d a t a h a n d l i n g .

H o M u c h M e m o r y I L e f t ?Y o k n o w t h a t t h C o m m o d o r e 6 h a o v e r 6 4 , 0 0 0 b y t e s , o c h a r a c t e r s ,

o m e m o r y i n s i d e i t F r o m t h m e s s a g e y o s e w h e n y o t u r n t h m a c h i n eo n y o a l s o p r o b a b l y k n o w t h a t 3 8 , 9 1 1 o t h e s e a r e a v a i l a b l e f o p r o g r a mm i n g i B A S I C . ( T h e p r o g r a m m i n g t e c h n i q u e s a n n o B A S I C . )

W h i l e p r o g r a m m i n g , o a f t e r L O A D i n g p r o g r a m i n t o m e m o r y f r o mt a p e o d i s k , y o c a a s t h c o m p u t e r h o w m u c h o i t m e m o r y i s t i l la v a i l a b l e . Y o a s i t P R I N T t h n u m b e r o f r e e b y t e s .

P R I N T F R E ( D )T h w o r d F R m e a n s F R E e b y t e s . A n n u m b e r o l e t t e r c a b i n s i d e

t h p a r e n t h e s e s . ( S i n c e i m a k e s n d i f f e r e n c e , t h i s i c a l l e d " d u m m y . " )T h n u m b e r t h a t a p p e a r s o t h s c r e e n i t h n u m b e r o F R E e b y t e s m i n u s3 T h c o m m a n d P R I N T F R E ( 0 ) , y o s e e , t a k e s b y t e s b i t s e l f .

I t h n u m b e r y o s e o t h e s c r e e n i n e g a t i v e n u m b e r ( i i p r e c e d e db m i n u s s i g n ) , y o m u s t d l i t t l e a r i t h m e t i c a n s u b t r a c t i f r o m 6 5 5 3 6 .T h i s n u m b e r i a c t u a l l y t h e 6 4 y o h e a r a b o u t a l t h e t i m e , s i n c e I o m e m o r y ( c o m p u t e r j a r g o n f o t h o u s a n d b y t e s ) i a c t u a l l y 1 , 0 2 4 b y t e s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 59/318

4 B e w a r e t h Q u o t e M a r k s

( T h i s i a p p a r e n t l y t i n y m i s t a k e i t h d e s i g n o f t h e C o m m o d o r e 6 4 T h r o u t i n e t h a t r e t u r n s t h n u m b e r o F R E e b y t e s i t h s a m e a i t h P E T , b u t h 6 h a t w i c e t h m e m o r y . )

B e w a r e t h Q u o t e M a r k sg o o d w a t f a m i l i a r i z e y o u r s e l f w i t h t h C o m m o d o r e 6 e d i t i n g f u n c

t i o n s — t h e C R S R r i g h t a n l e f t k e y s a n I N S T / D E L k e y — i s t p r a c t i c e t y p i n go t h k e y b o a r d . A e v e n b e t t e r w a i t t y p e i a l t h B A S I C p r o g r a m m i n ge x a m p l e s a n p r o g r a m s i t h i s b o o k . P r a c t i c e i t h o n l y w a t g r o w a c u s t o m e d t t h e x c e l l e n t s c r e e n e d i t i n g s y s t e m b u i l t i n t o t h c o m p u t e r . ( I y o g e c h a n c e t u s o t h e r p e r s o n a l c o m p u t e r s , y o u ' l l s o o n r e a l i z e j u s th o g o o d t h 6 i s . )

I t ' s e a s y t g e t y o u r s e l f i n t o s i t u a t i o n w h e r e i l o o k s l i k e y o u ' r e s t u c ko y o u ' v e b r o k e n t h c o m p u t e r . ( Y o u ' r e n o a n y o h a v e n ' t . ) T h i s w i l l h a p p e na f t e r y o t y p e o n s e o q u o t e m a r k s ( " o a o d n u m b e r o q u o t e m a r k s .H e r e ' s w h a t h a p p e n s .

W h e n t y p i n g l i n e , y o t y p e t h q u o t e m a r k , i n t e n t i o n a l l y o u n i n t e nt i o n a l l y . Y o c h a n g e y o u r m i n d a n u s e a C R S R k e t m a k e c o r r e c t i o n .I n s t e a d , y o s e a f u n n y - l o o k i n g s y m b o l . W h a t ' s g o i n g o n

Y o u ' r e i s o m e t h i n g c a l l e d t h " q u o t e m o d e . " T h i s m e a n s t h a t s e v e n o t h e i g h t e d i t i n g f u n c t i o n s w o r k d i f f e r e n t l y . C L ( c l e a r t h s c r e e n ) , H O M E( " h o m e " t h c u r s o r ) , C R S R r i g h t , l e f t , u p d o w n , a n I N S T ( i n s e r t ) a l l e a v et h e s e o d s y m b o l s i n s t e a d o w o r k i n g a t h e y s h o u l d . O n l y D E ( d e l e t e ) w o r k st h s a m e a n a l l o w s y o t e r a s e t h q u o t e m a r k o a n y t h i n g e l s e y o u ' v et y p e d . T h r e a s o n f o t h i s i d i s c u s s e d i C h a p t e r o B A S I C p r o g r a m m i n ga b o u t t h w o r d P R I N T . I b r i e f , w h e n t h e s e e d i t i n g f u n c t i o n s a r e u s e d w i t h i nq u o t e s a n w i t h t h w o r d P R I N T i B A S I C p r o g r a m , t h e y w o r k a t h t i m et h p r o g r a m i R U N .

E v e n t h o u g h t h D E k e w i l l e r a s e w h a t y o u ' v e t y p e d b m i s t a k e , y o u ' l ls t i l l b i t h q u o t e m o d e . Y o w i l l r e m a i n t h a t w a u n t i l y o e i t h e r t y p ea n o t h e r q u o t e m a r k o p r e s s t h e R E T U R N k e y . O r , i y o d o n ' t w a n t t e n t e rw h a t y o u ' v e w r i t t e n i n t o t h e c o m p u t e r ' s m e m o r y , y o c a p r e s s t h S H I F Ta n R E T U R N k e y s t o g e t h e r . ( T h e c o m p u t e r w o n ' t r e c o g n i z e S H I F T a n R T U R N a s t h e s i g n a l t e n t e r t h l i n e . )

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

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 60/318

3 — S o m e E s s e n t i a l S k i l l s 4

W h a t T i m e I s I t ?T h e r e ' s c l o c k i n s i d e e a c h C o m m o d o r e 6 4 c o m p u t e r . I s t a r t s w h e n y o

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

" r e s e r v e d v a r i a b l e s " — v a r i a b l e s b e c a u s e t h e y s t a n d f o o t h e r i n f o r m a t i o n ,r e s e r v e d b e c a u s e y o c a n n o t u s e T I o T I i a n o t h e r w a y . T h c o m p u t e rt h i n k s o T a n u m b e r a n T I a s t r i n g o c h a r a c t e r s . ( Y o u ' l l l e a r n a b o u tv a r i a b l e s a n s t r i n g s i t h p a g e s a h e a d . )

T s e t h n u m b e r s i t h c o m p u t e r ' s c l o c k , t y p e t h i s :P R I N T T I Y o s h o u l d s e n u m b e r s i d i g i t s l o n g , s o m e t h i n g l i k e 0 1 2 2 3 6 , f o

e x a m p l e . W h a t d t h e y m e a n ?T h i n k o f t h e s e s i d i g i t s a s t h r e e g r o u p s o t w o n u m b e r s e a c h — 0 1 2 3 6

T h f i r s t t w n u m b e r s , 0 1 r e p r e s e n t t h n u m b e r o h o u r s s i n c e t h c o m p u t e rw a t u r n e d o n T h s e c o n d s e t , 2 2 r e p r e s e n t s t h m i n u t e s , a n t h e t h i r d s e t ,3 6 t h s e c o n d s . S t h c o m p u t e r h a b e e n o n h o u r 2 m i n u t e s a n 3 s e c o n d s .

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

T I $ = " 0 D D D D 0 "N o a s t h c o m p u t e r t P R I N T T I a g a i n . T h n u m b e r s y o s e s h o u l d

b c l o s e t 0 0 0 0 0 0 . T r t h i s :

T I $ = » D 2 D 5 1 D »W h e n y o t y p e P R I N T T I n o w , t h t i m e w i l l b e g i n a d v a n c i n g f r o m

h o u r s m i n u t e s a n 1 s e c o n d s b e c a u s e t h a t ' s w h a t y o u ' v e s e i t o Y o c a u s T I t h i s w a y , o i B A S I C p r o g r a m , r e a d i n g t h c l o c k a n

r e s e t t i n g i u n d e r p r o g r a m c o n t r o l . Y o m u s t r e m e m b e r t u s t h q u o t em a r k s s u r r o u n d i n g t h t i m e y o a r s e t t i n g t h e c l o c k t o o t h e r w i s e a E R R O Rm e s s a g e w i l l a p p e a r .

T h i s c l o c k i o f t e n r e f e r r e d t a s t h e " r e a l t i m e " c l o c k , b e c a u s e i k e e p sr e a l t i m e . T h a t ' s l o g i c a l , i s n ' t i t I i 2 4 - h o u r c l o c k , m e a n i n g t h a t i y o s e i t 0 0 0 0 0 a m i d n i g h t , i w o u l d r e a d 1 0 0 a o ' c l o c k p m a n 2 0 0 a 1 o ' c l o c k a n i g h t .

m a j o r c a u t i o n a b o u t t h r e a l t i m e c l o c k i t h a t i s t o p s w h i l e t h c a s s e t t er e c o r d e r i L O A D i n g o S A V E i n g p r o g r a m s o o t h e r i n f o r m a t i o n . A c t u a l l y ,t h e c l o c k s t o p s e a c h t i m e t h s c r e e n i b l a n k e d , f o w h a t e v e r r e a s o n . T h i sm e a n s t h a t y o s h o u l d o n l y u s e i b e t w e e n c a s s e t t e o p e r a t i o n s .

T h e r e ' s a n o t h e r c l o c k i n s i d e t h c o m p u t e r , t h o u g h i i l e s s u s e f u l f o t i m e k e e p i n g . I i c a l l e d t h e " j i f f y " c l o c k , s o - c a l l e d j i f f y b e i n g l / 6 0 t h o s e c o n d . I s t a r t s f r o m ( z e r o ) a n k e e p s g o i n g u n t i l i r e a c h e s 5 1 , 8 3 9 , 9 9 9j i f f i e s , t h e n r e s e t s t 0 I y o u s t h j i f f y c l o c k , d o n ' t b t o c o n c e r n e d t h a ti w i l l r e s e t i t h m i d d l e o s o m e t h i n g y o u ' r e k e e p i n g t r a c k o f F i f t y - o n em i l l i o n j i f f i e s i o v e r 2 3 h o u r s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 61/318

4 W h a t T i m e I I t

Y o c a s e t h t i m e i j i f f i e s b t y p i n g t h i s :P R I N T T T h n u m b e r t h a t a p p e a r s o t h s c r e e n i t h n u m b e r o j i f f i e s s i n c e t h

m a c h i n e w a t u r n e d o n I y o d i v i d e i b 6 0 y o u ' l l g e t h t o t a l n u m b e ro s e c o n d s t h m a c h i n e h a b e e n o n I y o d i v i d e i b 3 6 0 0 ( 6 t i m e s 6 0 ) ,y o u ' l l g e t h t o t a l n u m b e r o m i n u t e s , a n s o n

T h j i f f y c l o c k c a n n o t b r e s e t b m a k i n g T e q u a l t ( z e r o ) . I n s t e a d ,i t i s r e s e t b s e t t i n g T I t " 0 0 0 0 0 0 . "

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 62/318

P r o g r a m m i n g —A I n t r o d u c t i o n

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

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

T o d a y , p e o p l e w h c a p r o g r a m c o m p u t e r a r n l o n g e r c o n s i d e r e ds p e c i a l , o n l y s k i l l e d . M a n y m o r e p e o p l e c a p r o g r a m c o m p u t e r s t h a n t h o s ew h c h o o s e t m a k e t h e i r l i v i n g a t i t T h i s i s k i l l t h a t c a e n h a n c e y o u rl i f e a n c a n b e u s e d p e r s o n a l l y , a s w e l l a s p r o f e s s i o n a l l y . T a k e n s o l e l y a s a i n t e l l e c t u a l e x e r c i s e , t h e r e a r f e c h a l l e n g e s a r e w a r d i n g a l e a r n i n g t p r o g r a m .

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

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

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

L i n e s o B A S I C p r o g r a m m i n g a r o f f e r e d a s e x a m p l e s t h r o u g h o u t t h i sb o o k . E a c h t i m e y o w a n t t s e h o o n o t h e s e e x a m p l e s w o r k s , y o w i l l

4

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 63/318

5 4 — P r o g r a m m i n g — A n I n t r o d u c t i o n

n e e d t c l e a r t h e c o m p u t e r ' s m e m o r y a n m a k e i r e a d y f o n e p r o g r a m .U n l e s s y o a r t o l d o t h e r w i s e i t h t e x t , t y p e N E a n p r e s s t h e R E T U R Nk e f o e a c h n e e x a m p l e y o u w a n t t t r f o y o u r s e l f .

W h i l e y o a r e l e a r n i n g B A S I C y o a r a l m o s t c e r t a i n t m a k e m i s t a k e s .T h i s i n o r m a l p a r t o t h p r o c e s s a n y o s h o u l d n ' t g e f r u s t r a t e d b t h p r o b l e m s y o e n c o u n t e r . F o e v e r y m i s t a k e j u s t r e t y p e t h e x a m p l e a n t r a g a i n .

S c a t t e r e d t h r o u g h o u t t h n e x t f e s e c t i o n s o p r o g r a m m i n g ( a w e l l a o t h e r p a r t s o t h i s b o o k ) y o u ' l l f i n d i n f o r m a t i o n o E R R O R m e s s a g e s . E R R O Rm e s s a g e s a r t h c o m p u t e r ' s w a o t e l l i n g y o t h a t y o u ' v e m a d e m i s t a k e .E a c h E R R O R a n i t p o s s i b l e c a u s e s a r e d e s c r i b e d , a w e l l a s h i n t s f o c o r r e c t i n g i t T h r e a s o n s b e h i n d E R R O R s a r s o m e t i m e s v e r y s u b t l e a n y o u r b e s t c l u e t t h e m , o v e r a l l , i t h a t t h c o m p u t e r i l i t e r a l a n e x a c t i n gi i t d e m a n d s .

B a s i c a l l y B A S I CT h c o m p u t e r l a n g u a g e t h a t t h C o m m o d o r e c o m p u t e r s u s m o s t c o

m o n l y i c a l l e d B A S I C . I w a d e v e l o p e d b J o h n K e m e n y a n T h o m a s K u r t zi t h 1 9 6 0 s a n i n t r o d u c e d a D a r t m o u t h C o l l e g e t o o f f e r p e o p l e a a l t e rn a t i v e t c o m p u t e r l a n g u a g e s t h a t w e r e c o n s i d e r e d l e s s t h a n " h u m a n . " W i t hf e e x c e p t i o n s , i t w o r d s a r E n g l i s h w o r d s o c l e a r d e r i v a t i o n s o t h e m .

T h n a m e B A S I C i a a c r o n y m f o B e g i n n e r s ' A l l - p u r p o s e S y m b o l i cI n s t r u c t i o n C o d e . I i n o t h " b a s i c " c o m p u t e r l a n g u a g e o w h i c h o t h e r sa r b u i l t , b u r a t h e r c o l l e c t i o n o f s i m p l e , u s e f u l c o m m a n d s . N o i B A S I Ct h m o s t p o w e r f u l c o m p u t e r l a n g u a g e . T h e r e a r o t h e r s b e t t e r s u i t e d t c e r t a i n p a r t i c u l a r u s e s . O n c o m p u t e r l a n g u a g e , F O R T R A N , i e s p e c i a l l yg o o d f o r e c o r d k e e p i n g a n m a t h e m a t i c s . A n o t h e r , c a l l e d C O B O L , i s a i d t b g o o d f o c o m p i l i n g s t a t i s t i c a l i n f o r m a t i o n . T h l a n g u a g e k n o w n a L I S Pi w e l l s u i t e d f o k e e p i n g a n u p d a t i n g l i s t s a n f o a r t i f i c i a l i n t e l l i g e n c ee x p e r i m e n t s .

L i k e a n l a n g u a g e , B A S I C h a i t o w v o c a b u l a r y ( t h e B A S I C w o r d s ) a n s y n t a x , w h i c h i t h p r o p e r w a t u s t h e m .

B A S I C i g o o d f o i n t r o d u c i n g p e o p l e t c o m p u t e r s a n f o g e n e r a l p r g r a m m i n g . A l t h o u g h a l m o s t a n p r o g r a m c a b w r i t t e n i B A S I C , o t h e rl a n g u a g e s m a r e q u i r e l e s s e f f o r t , u s l e s s m e m o r y , o m a r u m o r e q u i c k l y .

w o r d a b o u t s p e e d : T h v e r s i o n o B A S I C i C o m m o d o r e c o m p u t e r s i c a l l e d a i n t e r p r e t e d B A S I C . T h i s m e a n s t h a t t h c o m p u t e r l o o k s a e a c h s t e pi t h p r o g r a m , i t e m b i t e m , a n d o e s w h a t i t i s t o l d . A n o t h e r k i n d o B A S I Ci c a l l e d c o m p i l e d B A S I C . T h p r o g r a m i c o n v e r t e d t a n o t h e r s e o n u m b e r st h a t t h e m a c h i n e c a e x e c u t e m u c h m o r e q u i c k l y . P r o g r a m s c o n v e r t e d w i t h

B A S I C c o m p i l e r r u m u c h f a s t e r t h a n w i t h t h v e r s i o n b u i l t i n t o y o u rC o m m o d o r e c o m p u t e r .

T f i n d o u m o r e a b o u t c o m p i l e d B A S I C f o t h C o m m o d o r e 6 f a m i l y ,l o o k a t h s e c t i o n o f t h i s b o o k e n t i t l e d " B e y o n d B A S I C . " I i n c l u d e s i n f o rm a t i o n o B A S I C c o m p i l e r a v a i l a b l e f o y o u r c o m p u t e r .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 64/318

B a s i c a l l y B A S I C 5

C o m m o d o r e B A S I C i v e r s i o n o t h l a n g u a g e o r i g i n a l l y w r i t t e n f o t h c o m p a n y b M i c r o s o f t , B e l l e v u e , W a s h i n g t o n p r o g r a m m i n g g r o u p . I w a f i r s t w r i t t e n f o t h M I T S A l t a i r , a e a r l y p e r s o n a l c o m p u t e r t h a t i n l o n g e r m a n u f a c t u r e d . S i n c e i t i n t r o d u c t i o n , M i c r o s o f t B A S I C h a g o n e o nt b e c o m e c l o s e s t t " s t a n d a r d " v e r s i o n o B A S I C f o t i n y c o m p u t e r s .

S t i l l , t h e r e a r e d i f f e r e n c e s i t h v e r s i o n s o B A S I C t h a t M i c r o s o f t h a d e s i g n e d f o t h T R S - 8 0 , t h A p p l e I I a n o t h e r m a c h i n e s . M o s t B A S I C w o r d sf u n c t i o n t h s a m e i a l t h e s e c o m p u t e r s , b u t h e r e a r s t i l l m a n y s i g n i f i c a n tv a r i a t i o n s f r o m m a c h i n e t m a c h i n e . S p r o g r a m w r i t t e n i t h C o m m od o r e v e r s i o n o M i c r o s o l t B A S I C w o n ' t n e c e s s a r i l y r u c o r r e c t l y o a A p p l e ,a n v i c e v e r s a . T h i s i s n ' t y o u r c o m p u t e r ' s f a u l t ; i i j u s t f a c t o l i f e .

A l B A S I C s a r n o e q u a l .

C o m m o d o r e h a a l s o m o d i f i e d i t s f i r s t M i c r o s o f t B A S I C o v e r t h e y e a r s ,a n e a c h g e n e r a t i o n o i t c o m p u t e r s u s e d s l i g h t v a r i a t i o n s o t h o r i g i n a l .F o r e x a m p l e , e a r l y C o m m o d o r e P E T c o m p u t e r s h a B A S I C w i t h c e r t a i na n n o y i n g m i s t a k e s , o r " b u g s " i i t W h e n C o m m o d o r e i n t r o d u c e d a u g r a d e d v e r s i o n o f t h e P E T , i a l s o u p g r a d e d t h B A S I C t f i s o m e o f t h e s eb u g s . T h v e r s i o n o C o m m o d o r e B A S I C u s e d i t h 6 f a m i l y i c l o s e s t t t h i s u p g r a d e d r e v i s i o n , c a l l e d V 2 , o r v e r s i o n # 2

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 65/318

5 4 — P r o g r a m m i n g — A n I n t r o d u c t i o n

P r o g r a m D e f i n e dc o m p u t e r p r o g r a m i l i s t o t h i n g s t h a t t h c o m p u t e r s h o u l d d o

R e m e m b e r t h a t t h p r o g r a m t a k e s a l a r g e t a s k a n b r e a k s i d o w n i n t os m a l l e r o n e s .

T a k e , a a e x a m p l e , t h l i s t o t h i n g s t d o — t h e " p r o g r a m " — f o r m a k i n gT d i n n e r .

1 P r e - h e a t t h o v e n t 4 0 d e g r e e s .2 T a k e t h f r o z e n d i n n e r o u o t h b o x .3 P u i i t h o v e n .4 W a i t 4 5 m i n u t e s .5 U n w r a p a n e a t .O a t l e a s t t h a t ' s w h a t i s a y s t d o t h b o x . I r e a l i t y , y o m a c h o o s e

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

S o t o o , c a c o m p u t e r p r o g r a m p e r f o r m t h e s e k i n d s o t e s t s , a s q u e st i o n s , a n m a k e d e c i s i o n s .

N u m b e r i n g a n L i s t i n gJ u s t l i k e t h T d i n n e r e x a m p l e , B A S I C p r o g r a m i n u m b e r e d l i s t

o i n s t r u c t i o n s . S i n c e B A S I C i l a n g u a g e , y o c a t h i n k o e a c h l i n e o i n s t r u c t i o n s a k i n d o s e n t e n c e . E a c h l i n e i n C o m m o d o r e B A S I C i g i v e n

n u m b e r f r o m t 6 3 9 9 9 . ( T h e c o m p u t e r w o n ' t a c c e p t p r o g r a m l i n e s n u b e r e d a n h i g h e r . )

Y o c a s e t h c o m p l e t e l i s t o p r o g r a m l i n e s i n s i d e t h c o m p u t e r b yt y p i n g t h w o r d L I S T a n p r e s s i n g t h R E T U R N k e y . T h l i n e s w i l l a p p e a ro n a f t e r a n o t h e r o t h s c r e e n , s q u i c k l y t h a t y o c a n ' t u s u a l l y r e a d t h e m .T s l o w d o w n t h L I S T , p r e s s t h e C T R L ( c o n t r o l ) k e y . T h L I S T w i l l c o n t i n u e ,b u i w i l l s l o w d o w n c o n s i d e r a b l y .

( W h i l e y o h a v e t h C T R L k e d e p r e s s e d , y o c a p r e s s t h S P A C E b a t s p e e d u t h L I S T i n g a g a i n . P r e s s i n g C T R L a l s o s l o w s t h s p e e d a w h i c hm o s t B A S I C p r o g r a m s R U N . )

P r e s s i n g t h R U N / S T O P k e w h i l e a p r o g r a m i L I S T i n g t t h s c r e e nw i l l f r e e z e t h e a c t i o n a l t o g e t h e r a n R E A D Y w i l l a p p e a r . ( Y o u ' l l n e e d t t y p eL I S T t g e g o i n g a g a i n . ) L I S T c a a l s o b u s e d t s e o n l y t h l i n e s o p o r t i o n s o f t h e p r o g r a m y o w a n t t s e e . S o m e e x a m p l e s :

T y p e T h e C o m p u t e r L i s t sL I S T A l p r o g r a m l i n e s i n c o m p u t e r m e m o r yL I S T 1 0 O n l y p r o g r a m l i n e 1 0 L I S T 1 0 1 5 A l p r o g r a m l i n e s n u m b e r e d b e t w e e n 1 0 a n 1 5 L I S T 1 5 A l p r o g r a m l i n e s u t a n i n c l u d i n g l i n e 1 5 L I S T 1 5 A l p r o g r a m l i n e s b e g i n n i n g w i t h l i n e 1 5

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 66/318

N u m b e r i n g a n L i s t i n g 5

I y o c a n ' t r e m e m b e r t h e x a c t n u m b e r s o t h p r o g r a m l i n e s y o u ' r el o o k i n g f o r , d o n ' t w o r r y . T h t h i r d , f o u r t h , a n f i f t h e x a m p l e s u s t h n u m b e r so n l y a r a n g e . S i t h e r e i n l i n e 1 0 0 o r 1 5 0 , L I S T w i l l s t i l l p r i n t o u l i n e s n u m b e r e d b e t w e e n 1 0 a n 1 5 0 , l i k e 1 0 o 1 4 9 .

U s u a l l y , w h e n w r i t i n g p r o g r a m , y o b e g i n w i t h l i n e n u m b e r h i g h e rt h a n s t h a t , i y o w i s h , y o c a l a t e r a d n e l i n e s b e f o r e t h e f i r s t o n y o w r o t e . L i k e w i s e , g o o d B A S I C p r o g r a m m e r s t e n d t l e a v e g a p s b e t w e e nn u m b e r s s t h a t o t h e r l i n e s c a a l w a y s b i n s e r t e d b e t w e e n e x i s t i n g l i n e sl a t e r o n I t i s g o o d i d e a t n u m b e r p r o g r a m l i n e s i n i n c r e m e n t s o t e n , s t h a t y o h a v e e n o u g h r o o m f o t h e s e k i n d s o i n s e r t i o n s .

E a c h l i n e o C o m m o d o r e B A S I C c a b l o n g e r t h a n s i n g l e l i n e o t h v i d e o s c r e e n . I n c l u d i n g t h l i n e n u m b e r , e a c h c a n b e u t 8 c h a r a c t e r sl o n g . ( S i n c e t h e v i d e o s c r e e n i 4 c h a r a c t e r s w i d e , t h i s i t h e q u i v a l e n t o t w l i n e s o t h s c r e e n . )

W h e n y o b e g i n p r o g r a m m i n g , m a k e s u r e t h e c o m p u t e r ' s m e m o r y i c l e a r . E i t h e r t y p e t h w o r d N E a n p r e s s t h e R E T U R N k e y , o t u r n t h m a c h i n e o f t h e n o a g a i n t e n t e r t h c o m m a n d . ( T r y t a v o i d t u r n i n g t h c o m p u t e r o n a n o f t o o f t e n . T h i s c a b h a r d o i t e l e c t r o n i c c o m p o n e n t s . )T h i s r e a d i e s t h e c o m p u t e r f o n e p r o g r a m a n d v o i d s a n p r e v i o u s p r o g r a mt h a t m a h a v e b e e n i t h m a c h i n e . S t a r t p r o g r a m l i n e w i t h n u m b e r ,f o l l o w e d b t h a p p r o p r i a t e B A S I C i n s t r u c t i o n s . P r e s s i n g t h e R E T U R N k e w i l l e n t e r t h a t l i n e i n t o m e m o r y . P r e s s i n g R E T U R N i e s s e n t i a l . U n t i l y o d s o t h p r o g r a m l i n e i o n l y o t h v i d e o s c r e e n .

W h i l e t y p i n g , y o c a g a n y w h e r e i t h p r o g r a m l i n e ( u t t w s c r e e nl i n e s l o n g ) a n e d i t i w i t h t h I N S T / D E L a n C R S R ( c u r s o r ) k e y s . T h s c r e e ne d i t o r b u i l t i n t o t h c o m p u t e r i d e s i g n e d t a l w a y s k e e p t r a c k o w h a t y o a r d o i n g .

O n c e R E T U R N i p r e s s e d a n t h l i n e i e n t e r e d i n t o m e m o r y , t h c u r s o rw i l l a u t o m a t i c a l l y m o v e t t h n e x t a v a i l a b l e l i n e o t h s c r e e n . I y o u h a v em a d e m i s t a k e o h a v e c h a n g e d y o u r m i n d a b o u t e n t e r i n g t h l i n e y o u ' r ew o r k i n g p n , e i t h e r m o v e t h c u r s o r t t h n e x t l i n e o t h s c r e e n o r h o l dd o w n t h S H I F T a n p r e s s R E T U R N . ( I y o p r e s s S H I F T a n R E T U R N , t h c u r s o r w i l l j u m p t t h n e x t l i n e , b u y o u ' l l " f o o l " t h c o m p u t e r a n t h l i n ew i l l n o b e n t e r e d . )

R e m e m b e r t h a t 8 c h a r a c t e r s i t h e l o n g e s t B A S I C l i n e y o c a e n t e r .I y o g o v e r t h i s l i m i t , t h c o m p u t e r w i l l n o t a c c e p t w h a t y o u ' v e t y p e d .

T e l i m i n a t e u n w a n t e d p r o g r a m l i n e s , t y p e t h l i n e n u m b e r a l b i t s e l f ,t h e n p r e s s R E T U R N . T g e r i o l i n e 1 0 0 , f o e x a m p l e , j u s t t y p e 1 D o b l a n k l i n e a n p r e s s R E T U R N . W h e n y o t r y t o L I S T t h a t l i n e , i w i l l n l o n g e r a p p e a r .

U s i n g t h v e r y p o w e r f u l e d i t i n g f e a t u r e s o f t h e C o m m o d o r e c o m p u t e r s ,y o c a a l s o d u p l i c a t e l i n e s o r p o r t i o n s o l i n e s . T y p e t h B A S I C l i n e :

I P R I N T " L I N E I D P r e s s R E T U R N t e n t e r i t N o m o v e t h c u r s o r b a c k u t t h l i n e a n

c h a n g e t h l i n e n u m b e r t o 2 0 , t h e n c h a n g e t h n u m b e r 1 ( i q u o t e s ) t o 2 0 ,a w e l l . P r e s s i n g R E T U R N w i l l e n t e r t h l i n e a i f i t w e r e b r a n d n e o n e .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 67/318

5 4 — P r o g r a m m i n g — A n I n t r o d u c t i o n

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

T h E N M a n y c o m p u t e r s t h a t u s B A S I C i n s i s t t h a t t h w o r d E N b e u s e d a

t h e n o p r o g r a m . T h p u r p o s e o t h i s w o r d i o b v i o u s : E N s i m p l ym a k e s t h p r o g r a m q u i t r u n n i n g . W h i l e i i p r o b a b l y g o o d p r o g r a m m i n gf o r m t u s E N D , C o m m o d o r e B A S I C d o e s n ' t r e q u i r e t h i s w o r d .

H o w e v e r , t h e r e a r e l o g i c a l r e a s o n s t u s E N o t h e r t h a n o t h l a s tl i n e o f t h e p r o g r a m . T h e s e w i l l b e x p l a i n e d a y o b e g i n t u n d e r s t a n d h o p r o g r a m s a r w r i t t e n a n h o B A S I C w o r k s .

V a r i a b l e s : H o t h C o m p u t e r K e e p s I t F a c t sS t r a i g h t

H o d o e s a c o m p u t e r k n o w w h a t w m e a n w h e n w e a s i f o t h t o t a lo a g r o c e r y b i l l , o w h e n w a s i f o t h a n s w e r t q u e s t i o n ? H o d o e si k n o w w h i c h f a c t s a r w h i c h ?

B A S I C p r o g r a m m u s t g i v e n a m e s t e v e r y p i e c e o i n f o r m a t i o n t h a tt h c o m p u t e r w i l l d e a l w i t h , w h e t h e r t h e y a r n u m b e r s , w o r d s , s e n t e n c e s ,o e v e n p i c t u r e s . T h e s e n a m e s a r c a l l e d v a r i a b l e n a m e s , b e c a u s e t h i n f o rm a t i o n t h e y s t a n d f o c a n a l w a y s b e c h a n g e d . V a r i a b l e s c o m e i t w v a r i e t i e s :N a m e s t h a t s t a n d f o n u m b e r s ( a n d n u m b e r s o n l y ) a n n a m e s t h a t s t a n d f o l e t t e r s a n o t h e r s y m b o l s . H e r e a r s o m e e x a m p l e s o f v a r i a b l e n a m e s :

A 1 0 . 2 0A = " T H I S I M C O M M O D O R E C O M P U T E R "A 4 0 9 6A B $ = " T H I S I A N O T H E R C O M P U T E R "A 4 5 . 5 0A 2 " 4 5 . 5 0 "

T h e c o m p u t e r k n o w s t h i n f o r m a t i o n o t h e r i g h t s i d e o t h e q u a l s i g n( = b t h n a m e g i v e n t i o t h l e f t s i d e . A s f o w h a t i s a n t h c o m p u t e rw i l l a n s w e r 1 0 . 2 0 . A s w h a t A B s t a n d s f o r , a n i w i l l g i v e y o t h s e n t e n c e" T H I S I A N O T H E R C O M P U T E R , " e t c .

N a m e s f o l e t t e r s a n n u m b e r s a r r e c o g n i z e d b C o m m o d o r e B A S I C a b e i n g o n o t w c h a r a c t e r s l o n g . T h f i r s t c h a r a c t e r m u s t a l w a y s b l e t t e r .T h s e c o n d c a n b n u m b e r o l e t t e r . S o v a r i a b l e n a m e c a b s i n g l el e t t e r ( 1 0 . 2 0 ) , t w l e t t e r s ( A 4 0 9 6 ) , o l e t t e r a n n u m b e r ( A 4 5 . 5 0 ) .F o o b v i o u s r e a s o n s — i t w o u l d c o n f u s e t h c o m p u t e r — a v a r i a b l e n a m e c a n o b t w n u m b e r s ( l i k e 2 2 5 ) .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 68/318

V a r i a b l e s : H o t h C o m p u t e r K e e p s I t F a c t s S t r a i g h t 5

N a m e s t h a t s t a n d f o n u m b e r s a r c a l l e d n u m e r i c v a r i a b l e s . ( A 1 0 . 2 0 ,A 4 0 9 6 a n d A 2 4 5 . 5 0 f r o m t h a b o v e l i s t . )

N a m e s t h a t s t a n d f o w o r d s , s e n t e n c e s , o r o t h e r s y m b o l s a r e c a l l e d s t r i n gv a r i a b l e s . T h e y a r a l w a y s f o l l o w e d b d o l l a r s i g n ( $ ) . ( A = " T H I S I M Y . . . / ' A B " T H I S I A N O T H E R . . . " a n d A 2 $ " 4 5 . 5 0 " f r o m t h l i s t . )

I s h o u l d b e o b v i o u s b l o o k i n g a t h e m t h a t s t r i n g s — c a l l e d t h a t b e c a u s et h c o m p u t e r s e e s t h e m s i m p l y a c h a r a c t e r s s t r u n g t o g e t h e r — a r e a l w a y se n c l o s e d i q u o t a t i o n m a r k s ( " ) . N u m b e r s c a b p a r t o s t r i n g , b u t h c o m p u t e r r e c o g n i z e s t h e m o n l y a a n o t h e r c h a r a c t e r , l e t t e r , o s y m b o l .

Q u o t e m a r k s a r u s e d b j o u r n a l i s t s t s e p a r a t e t h w o r d - f o r - w o r d c o m e n t s o n o t e d p e r s o n i a l o n g e r s e n t e n c e o r p a r a g r a p h i n e w s s t o r y .T h q u o t e m a r k s p e r f o r m r o u g h l y t h s a m e f u n c t i o n i B A S I C l i n e . T h e ya r t h o n l y w a t h c o m p u t e r k n o w s w h e r e a n s t r i n g b e g i n s a n e n d s . A n t h c o m p u t e r w i l l a l w a y s r e m e m b e r t h a t s t r i n g w o r d - f o r - w o r d w h e n q u o t e sa r p u a r o u n d i t

O n p o s s i b l e p o i n t o c o n f u s i o n i t h l a s t e x a m p l e o s t r i n g v a r i a b l ea b o v e — A 2 $ e q u a l s " 4 5 . 5 0 . " W h y , i t h i s i n u m b e r , i i s t r i n g ? T h c l u et t h a n s w e r i t h q u o t e m a r k s . B p u t t i n g q u o t e s a r o u n d i t w a r t e l l i n gt h c o m p u t e r t r e g a r d " 4 5 . 5 0 " a g r o u p o f c h a r a c t e r s , j u s t l i k e w o r d o s e n t e n c e , w i t h o u t c a r i n g a b o u t i t v a l u e .

R e m e m b e r , t h o u g h , t h a t A 2 " 4 5 . 5 0 " i n o t h s a m e a A 4 5 . 5 0 . T h f i r s t i s t r i n g , t h s e c o n d i n u m b e r .

N u m e r i c v a r i a b l e s a l l o w n u m b e r s t b m a n i p u l a t e d — a d d e d , s u t r a c t e d , m u l t i p l i e d a n d i v i d e d . I A s t a n d s f o 1 a n C s t a n d s f o 2 5 0 ,t h e n A p l u s C w o u l d e q u a l 2 6 0 . I n t h e s a m e w a y , C m i n u s A w o u l de q u a l 2 4 0 .

L i k e w i s e ( a n d p e r h a p s t y o u r a m a z e m e n t a n a m u s e m e n t ) , s t r i n g s c a b a d d e d s o m e t h i n g l i k e n u m b e r s . I A B s t a n d s f o " T H I S I M " a n d C D $s t a n d s f o " C O M M O D O R E C O M P U T E R , " t h e n A B p l u s C D w o u l d e q u a lt h s e n t e n c e " T H I S I M C O M M O D O R E C O M P U T E R . " T h i s a d d i n g o c o m b i n i n g o t w d i f f e r e n t s t r i n g s i s o m e t i m e s r e f e r r e d t a c o n c a t e n a t i o n ,

w o r d t h a t m e a n s t o l i n k t o g e t h e r t f o r m c h a i n . I B A S I C , t h i s i w r i t t e nl i k e t h i s :

I A B " T H I S I M E C D " C O M M O D O R E C O M P U T E R "3 E F A B C D

T h n e s t r i n g , E F $ , e q u a l s A B a n d C D $ , o t h e n t i r e s e n t e n c e .E v e n t h o u g h y o c a a d s t r i n g s t o g e t h e r t c o m b i n e w o r d s a n p h r a s e s ,

y o c a n n o t s u b t r a c t t h e m o d o a n y o t h e r k i n d o a r i t h m e t i c w i t h t h e m . N o c a y o u a d d n u m e r i c v a r i a b l e t s t r i n g v a r i a b l e . S o i A e q u a l s 4 5 . 5 0a n A 2 e q u a l s " 4 5 . 5 0 , " t h e y c a n n o t b e a d d e d t a r r i v e a t " 9 1 . 0 0 . " W h y ?B e c a u s e n u m b e r s a n s t r i n g s d o n ' t m i x . T h c o m p u t e r s e e s A a n u m b e ra n A 2 a s t r i n g o c h a r a c t e r s .

( T h e r e i w a t g e n u m b e r o u o s t r i n g , b u w e ' l l s a v e t h a t f o l a t e r . )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 69/318

5 4 — P r o g r a m m i n g — A n I n t r o d u c t i o n

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

T h i s k i n d o E R R O R i a l w a y s c a u s e d b t r y i n g t p u t a c h a r a c t e ri n t o n u m e r i c v a r i a b l e o r a a c t u a l n u m b e r i n t o s t r i n g v a r i a b l e .S t r i n g s a n n u m b e r s d o n ' t m i x . T r o u b l e s t a t e m e n t s l o o k l i k e t h i s :i d a $ q ( o r ) a $ o

I A = » E X f t M P L E " ( o r ) A * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

J u s t l i k e t h e d o l l a r s i g n , p e r c e n t s i g n ( % g i v e s s p e c i a l m e a n i n g t v a r i a b l e n a m e . T h e l e t t e r A a l b i t s e l f , c a b v i r t u a l l y a n y n u m b e r , i c l u d i n g n u m b e r s w i t h d e c i m a l p o i n t s . T h n u m b e r 1 0 . 5 i t h n u m b e r 1 p l u s f i v e t e n t h s ( o h a l f ) . N u m e r i c v a r i a b l e s f o l l o w e d b p e r c e n t s i g n ,s u c h a A % c a b u s e d b t h c o m p u t e r t n a m e o n l y w h o l e n u m b e r s , a l s oc a l l e d i n t e g e r s , b e t w e e n 3 2 7 6 8 a n 3 2 7 6 7 . I y o n e e d t u s n u m b e r s l a r g e ro s m a l l e r , y o c a n a l w a y s s t o r e t h e m a p l a i n o l n u m e r i c v a r i a b l e s , l i k e

3 6 5 0 0 0 .W h w o u l d y o u s s u c h i n t e g e r v a r i a b l e s ? F o o n t h i n g , p r o g r a m s

o p e r a t e s l i g h t l y f a s t e r . ( O n l y v e r y s l i g h t l y f a s t e r . D o n ' t e x p e c t a n d r a m a t i ci n c r e a s e i s p e e d . ) F o a n o t h e r , s t o r i n g w h o l e n u m b e r s a s i n t e g e r v a r i a b l e st a k e s u l e s s o t h c o m p u t e r ' s m e m o r y . I n t e g e r v a r i a b l e s c a a l s o b u s e dt t u r n n u m b e r s w i t h d e c i m a l s i n t o w h o l e n u m b e r s . T r y t h i s :

I f i l D 3 . q f l 75 P R I N T A W h e n y o R U t h i s e x a m p l e , A w i l l b P R I N T e d a 1 0 3 . Y o u ' l l n o t i c e

t h a t t h i s i s n ' t t r u e " r o u n d i n g . " N o r m a l l y , 1 0 3 . 9 8 7 w o u l d r o u n d o f t 1 0 4 ,n o 1 0 3 . S o m e p r o g r a m m e r s i n s i s t t h a t i i g o o d f o r m t a l w a y s u s i n t e g e rv a r i a b l e s f o w h o l e n u m b e r s . O t h e r s s e l d o m u s t h e m .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RI L L E G A L Q U A N T I T Y E R R O R

I n t e g e r v a r i a b l e s a r e r e c o g n i z e d b t h p e r c e n t s i g n ( % ) . I t h i sE R R O R o c c u r s i l i n e w i t h a i n t e g e r v a r i a b l e , c h e c k t s e e t h a tt h e v a r i a b l e d o e s n o s t a n d f o n u m b e r g r e a t e r t h a n 3 2 7 6 7 o l e s s t h a n - 3 2 7 6 8 . I t h E R R O R i n o i l i n e w i t h a i n t e g e rv a r i a b l e , c h e c k f o p r o b l e m s w i t h P O K E .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 70/318

V a r i a b l e s : H o t h C o m p u t e r K e e p s I t F a c t s S t r a i g h t 5

w i l l r e m e m b e r t h e n t i r e n a m e , b u w i l l o n l y r e c o g n i z e t h f i r s t t w l e t t e r s .S b c a u t i o u s o c o n f u s i n g t h c o m p u t e r . I f i a p r o g r a m , y o u s G A 2 5 . 8 7a n G A M E S 3 5 . 5 5 , t h c o m p u t e r w o n ' t k n o w t h d i f f e r e n c e b e t w e e n h o m u c h y o p a i d f o G A a n h o w m u c h y o s p e n t o G A M E S . T h v e r s i o no B A S I C i s o m e p e r s o n a l c o m p u t e r s ( p a r t i c u l a r l y t h A t a r i c o m p u t e r s ) w i l la l l o w t h e s e k i n d s o l o n g v a r i a b l e n a m e s . C o m m o d o r e B A S I C w i l l n o t .

F i n a l l y , y o s h o u l d k n o w t h a t C o m m o d o r e c o m p u t e r s c a n n o t u s f e p a r t i c u l a r v a r i a b l e n a m e s . T h e s e " f o r b i d d e n " n a m e s i n c l u d e I F T O O R , a n dG b e c a u s e t h e y a r i B A S I C . N e i t h e r T I n o T I c a b e u s e d b e c a u s e t h e ya r e r e s e r v e d f o u s w i t h t h i n t e r n a l c l o c k s b u i l t i n t o a l C o m m o d o r e c o p u t e r s . T h n a m e S T c a b u s e d f o r s t r i n g s , b u S c a n n o t b e u s e d t s t a n df o n u m b e r .

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

V a r i a b l e N a m e O k a y ? W h y ?A $ o A Y e A A $ , A o A A Y e 2 2 $ , 2 o 2 2 N A l $ , A l o r A l % Y e T I $ , T o T I N T O $ , T O o r T O % N S N S T Y e H O T E L $ o H O T E L Y e

H O M E $ o H O M E N

A n s i n g l e l e t t e r ( A - Z ) c a n b e u s e d .M o s t t w o - l e t t e r c o m b i n a t i o n s a r o k a y .T h f i r s t c h a r a c t e r m u s t b l e t t e r .C o m b i n a t i o n s o n u m b e r s a n l e t t e r s a r a c c e p ta b l e .U s e d b y c o m p u t e r ' s i n t e r n a l c l o c k .T i B A S I C w o r d .R e s e r v e d b B A S I C .J u s t a n o t h e r t w o - l e t t e r n a m e .N a m e s l o n g e r t h a n t w c h a r a c t e r s c a n b e u s e d ,b u o n l y t h f i r s t t w l e t t e r s w i l l b r e c o g n i z e d .C o n f u s i o n w i t h a b o v e e x a m p l e s .

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

l i m i t o n i n e d i g i t s . T h i s m e a n s , f o e x a m p l e , t h a t t h v a r i a b l e n a m e A c a e q u a l t h n u m b e r 9 9 9 9 9 9 9 9 9 , o t h n u m b e r . 9 9 9 9 9 9 9 9 9 , w h i c h i d e c i m a l f r a c t i o n .

( U n l i k e h u m a n s , t h c o m p u t e r d o e s n o t w a n t t s e n u m b e r s o m o r et h a n t h r e e d i g i t s w r i t t e n t h e w a y w e d o T h a t i s n e v e r u s c o m m a s i n u b e r s o v e r 9 9 9 . T h e c o m p u t e r e x p e c t s t s e t h e m w r i t t e n , f o i n s t a n c e , a 1 0 0 0 o 1 2 5 2 0 . )

N u m b e r s l a r g e r t h a n 9 9 9 , 9 9 9 , 9 9 9 a n s m a l l e r t h a n . 0 0 0 0 0 0 0 0 1 c a a l s ob s t o r e d , b u t h c o m p u t e r t h i n k s o t h e m i w a o t h e r t h a n a c o n v e nt i o n a l d i g i t s . M a k i n g A e q u a l t h n u m b e r 2 0 0 , 0 0 0 , 0 0 0 , 0 0 0 ( t w o h u n d r e db i l l i o n ) , t h e n a s k i n g t h c o m p u t e r f o t h v a l u e o A b r i n g s t h e r e s p o n s e :2 E + 1 1 .

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

I y o u ' r e i n t e r e s t e d , t h i s i b r i e f l y t h w a e x p o n e n t i a l n u m b e r s w o r k .T h n u m b e r 1 t i m e s i t s e l f , o r 1 0 s q u a r e d ( 1 0 2 o r 1 0 t t i i e 2 n p o w e r ) , i 1 0 0 . T e c u b e d ( 1 0 3 o 1 t t h 3 r p o w e r ) i 1 t i m e s 1 t i m e s 1 0 o 1 0 0 0 .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 71/318

5 4 — P r o g r a m m i n g — A n I n t r o d u c t i o n

I e a c h c a s e , t h n u m b e r o z e r o s b e h i n d t h n u m b e r i t h s a m e n u m b e ro t h e x p o n e n t o t e ( 1 0 n ) . T w h u n d r e d b i l l i o n ( 2 0 0 , 0 0 0 , 0 0 0 , 0 0 0 ) i f o l o w e d b y 1 z e r o s a n i t i m e s 1 0 1 1 ( 1 t t h e 1 1 t h p o w e r ) . E x p o n e n t s c a nb n e g a t i v e a w e l l . T h d e c i m a l n u m b e r . 0 0 0 0 0 0 0 0 0 0 0 2 i t i m e s 1 0 " n ( 1 t t h m i n u s 1 1 t h p o w e r ) .S i n c e t h C o m m o d o r e c o m p u t e r s c a n ' t d i s p l a y n u m b e r s t h a t l o o k l i k e2 1 1 , t h e y P R I N T t h r o o t n u m b e r ( i t h a b o v e e x a m p l e , f o l l o w e d b t h l e t t e r f o e x p o n e n t , t h e n t h e x p o n e n t i t s e l f f r o m - 3 t + 3 5 . T h f i n a le x p o n e n t i a l n u m b e r i s p o k e n t i m e s 1 t t h 1 1 t h .

( C o n f u s e d ? N e e d m o r e i n f o r m a t i o n ? f u l l e x p l a n a t i o n o e x p o n e n t i a ln u m b e r s a n d s c i e n t i f i c n o t a t i o n c a b f o u n d i m o s t a n h i g h s c h o o l m a t hb o o k . )

I y o a r n o t g o i n g t b u s i n g n u m b e r s s o g r e a t o s m a l l t h a t t h e y n e e dt b w r i t t e n e x p o n e n t i a l l y , y o s h o u l d n ' t w o r r y a b o u t n o u n d e r s t a n d i n gt h c o n c e p t o s c i e n t i f i c n o t a t i o n . T h o u s a n d s o u s e f u l p r o g r a m s h a v e b e e nw r i t t e n w i t h o u t r e g a r d f o t h e s e k i n d s o n u m b e r s .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RO V E R F L O W E R R O R

T h i s E R R O R o c c u r s w h e n y o a t t e m p t t w o r k w i t h t h l a r g e s tn u m b e r t h a t t h c o m p u t e r c a u s e , 1 . 7 0 1 4 1 8 8 4 E 3 8 o t h n u b e m u l t i p l i e d b f o l l o w e d b 3 z e r o s . T h s o l u t i o n ( n o t a l w a y sp o s s i b l e ) i t b r e a k u y o u r c a l c u l a t i o n s s o t h a t t h i s n u m b e r i n e v e r a c h i e v e d .

T h r u l e g o v e r n i n g t h l e n g t h o s t r i n g v a r i a b l e s i f a s i m p l e r . N s t r i n gc a n b e m o r e t h a n 2 5 5 c h a r a c t e r s l o n g . T h a t i n c l u d e s s t r i n g s t h a t a r e a d d e dt o g e t h e r o r c o n c a t e n a t e d .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RS T R I N G T O L O N G E R R O R

S t r i n g s c a o n l y b 2 5 c h a r a c t e r s l o n g . S t r i n g E R R O R s a r l i k e l yt o c c u r w h e n y o c o n c a t e n a t e , o r a d d , o n s t r i n g t a n o t h e r . C h e c kt h l e n g t h o e a c h s t r i n g w h e n l o o k i n g f o t h s o u r c e o t h i sE R R O R .

V e r y r a r e l y , y o u ' l l s e t h w o r d L E u s e d i B A S I C p r o g r a m . I i u s e dt d e f i n e v a r i a b l e . L E T , h o w e v e r , i u s e d o p t i o n a l l y i C o m m o d o r e B A S I C ,b u i d o e s a d t t h e r e a d a b i l i t y o f p r o g r a m . I t i s j u s t a s v a l i d t u s e i t h e rl i n e :

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 72/318

Q u a n t i t y E r r o r 5

I L E A o

1

B A S I C P u n c t u a t i o nS i n c e B A S I C i l a n g u a g e m a d e u o w o r d s a n d r u l e s a b o u t h o t h e y

a r e u s e d , w o u l d n ' t y o e x p e c t r u l e s o p u n c t u a t i o n , t o o ? T h e r e a r s u c h r u l e s ,j u s t a i E n g l i s h o a n o t h e r l a n g u a g e . T h r u l e s o p u n c t u a t i o n i B A S I C ,h o w e v e r , a r m u c h s i m p l e r t h a n i E n g l i s h .

J u s t a s s e v e r a l s h o r t E n g l i s h l a n g u a g e s t a t e m e n t s c a s h a r e s i n g l e l i n e ,s e v e r a l B A S I C s t a t e m e n t s c a s h a r e a p r o g r a m l i n e . I E n g l i s h , t h s t a t em e n t s — l e t ' s s a t w o - w o r d s e n t e n c e s — a r e s e p a r a t e d b p e r i o d s . F o e x a mp l e , t h l i n e :

G h o m e . E a l u n c h .T h p u n c t u a t i o n m a r k t s e p a r a t e s t a t e m e n t s i B A S I C l i n e i n o

p e r i o d , b u a c o l o n ( : ) . B A S I C l i n e w i t h m o r e t h a n o n s t a t e m e n t l o o k s l i k et h i s :

I P R I N T " T H I S I M C O M P U T E R " : G O T O I T h i m p o r t a n t t h i n g t n o t i c e a b o u t t h i s l i n e i h o t h c o l o n i u s e d ,

i t h i s c a s e t s e p a r a t e t w d i s t i n c t B A S I C s t a t e m e n t s . B A S I C p r o g r a ml i n e , i n c l u d i n g i t n u m b e r a n s p a c e s , c a o n l y b u t 8 c h a r a c t e r s , o t w s c r e e n l i n e s l o n g .

C o l o n s c a a l s o b u s e d t m a k e l i n e s o B A S I C m o r e r e a d a b l e . F o t h i sp u r p o s e , o n o m o r e c o l o n s c a n b e t h f i r s t c h a r a c t e r o r c h a r a c t e r s a f t e r t h l i n e n u m b e r t s e i a p a r t f r o m t h r e s t o p r o g r a m L I S T i n g . F o r e x a m p l e :

I P R I N T " T H I S I M C O M P U T E R "2 : G O T O I I y o n o t i c e , t h u s o f t h e t w c o l o n s p r o v i d e s f o a k i n d o i n d e n t a t i o n

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

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RS Y N T A X E R R O R

S y n t a x E R R O R s c a b e c a u s e d b d o z e n s o p r o b l e m s , b u t a l a r a s s o c i a t e d w i t h B A S I C " g r a m m a r . " T h e m o s t c o m m o n p r o b l e m sa r e m i s s p e l l i n g s a n m i s s i n g p u n c t u a t i o n m a r k s , p a r t i c u l a r l y c l o n s ( : a n c o m m a s ( , ) . A l s o l o o k f o u s o s e m i c o l o n s ( ; i p l a c eo f c o l o n s , a n m a k e c e r t a i n p a r e n t h e s e s a r c l o s e d . C h e c k r u l e s f o u s o p r o b l e m w o r d s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 73/318

6 4 — P r o g r a m m i n g — A n I n t r o d u c t i o n

O t h e r p u n c t u a t i o n m a r k s a r u s e d i B A S I C p r o g r a m m i n g , i n c l u d i n gt h c o m m a ( , ) , t h s e m i c o l o n ( ; a n t h q u o t e m a r k , w h i c h y o u h a v e a l r e a d yb e e n i n t r o d u c e d t o T h e s e a r u s e d m a i n l v w i t h t h B A S I C w o r d P R I N T .

P r o g r a m m i n g P R I N TP R I N T i o n o t h m o s t o f t e n u s e d w o r d s i t h B A S I C l a n g u a g e . B

i t s e l f , i i o n o f t h e e a s i e s t w o r d s t u n d e r s t a n d . W i t h t h a d d i t i o n o p u n c t u a t i o n m a r k s , t h o u g h , i c a b m a d e t w o r k i m a n y d i f f e r e n t w a y s .D o n ' t b e d i s c o u r a g e d i y o f i n d P R I N T c o n f u s i n g a f i r s t . S i n c e t h e r e a r e s om a n y m o r e v a r i a t i o n s t P R I N T t h a n t h e r e a r t o t h e r B A S I C w o r d s , i m a t a k e y o l o n g e r t l e a r n a b o u t i t p o s s i b i l i t i e s .

P R I N T t e l l s t h c o m p u t e r l p u s o m e t h i n g o t h v i d e o s c r e e n . I c a P R I N T w o r d s a n s e n t e n c e s , t h e r e s u l t s o c a l c u l a t i o n , a n e v e n p i c t u r e s .

Y o w e r e s h o w n s i m p l e p r o g r a m i t h e s e c t i o n o f t h i s b o o k a b o u ts e t t i n g u p a n d c h e c k i n g o u y o u r s y s t e m . I t f i r s t l i n e s a i d :

I P R I N T " T H I S I S M Y C O M M O D O R E C O M P U T E R "T h i s l i n e d o e s e x a c t l y w h a t i l o o k s l i k e i w o u l d d o P R I N T i u s u a l l y f o l l o w e d b t e l l i n g t h c o m p u t e r w h a t i i y o w a n t

i t P R I N T . I n t h i s c a s e , i i t h s e n t e n c e T H I S I M C O M M O D O R EC O M P U T E R . A y o c a s e e , t h s e n t e n c e i i q u o t a t i o n m a r k s i t h p r g r a m , b u t h q u o t e s v a n i s h w h e n i a p p e a r s o n t h s c r e e n . T h q u o t e m a r k so n l y i n d i c a t e t t h c o m p u t e r t h a t i s h o u l d P R I N T w h a t e v e r i b e t w e e n t h e m .

1 P R I N T " T H I S I M C O H H O D O R E C O M P U T E R 12 E N

T H I S I M C O M M O D O R E C O M P U T E RR E A D V .

T r r e t y p i n g t h a b o v e B A S I C l i n e w i t h o t h e r w o r d s i b e t w e e n t h q u o t e s . T h e n R U N . Y o s h o u l d s e w h a t e v e r y o u p u i n s i d e t h e q u o t e s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 74/318

P r o g r a m m i n g P R I N T 6

P R I N T c a a l s o b e u s e d t P R I N T t h n u m b e r s a n c h a r a c t e r s t h a tn u m e r i c a n s t r i n g v a r i a b l e s s t a n d f o r :

I 4 D q tE B $ = " T H I S I M C O M M O D O R E C O M P U T E R "3 P R I N T4 P R I N T B

S h o r t c u t L e t ' s t r y s h o r t c u t t h a t y o c a u s f r o m n o o n R e t y p et h p r o g r a m l i n e l i k e t h i s :

I " T H I S I M C O M M O D O R E C O M P U T E R "A f t e r t y p i n g t h l i n e t h i s w a ( w i t h q u e s t i o n m a r k i n s t e a d o t h w o r d

P R I N T ) , L I S T t h l i n e . E v e n t h o u g h y o d i d n o t t y p e t h w o r d P R I N T , t h c o m p u t e r u n d e r s t o o d w h a t y o m e a n t . I k n o w s t h a t t h s h o r t h a n d v e r s i o no t h P R I N T c o m m a n d i q u e s t i o n m a r k . D o n ' t a s s u m e t h a t i w i l l u d e r s t a n d a n y t h i n g e l s e , t h o u g h . I w i l l n o t . I o n l y k n o w s t h a t t h e q u e s t i o nm a r k i s u b s t i t u t e f o P R I N T . M o s t o t h t i m e , u n l e s s y o a r t o l d o t h e r w i s ei t h e i n s t r u c t i o n s i n t h i s b o o k , y o c a u s t h i s s h o r t h a n d m e t h o d i n s t e a do t y p i n g t h e n t i r e w o r d P R I N T .

P R I N T i n g B l a n k L i n e T r t e l l i n g t h m a c h i n e t P R I N T w i t ho u a n y t h i n g f o l l o w i n g t h c o m m a n d .

I P R I N T " T H I S I M C O M P U T E R "E P R I N T3 P R I N T " T H I S I M C O M P U T E R "Y o s h o u l d s e t h t w i d e n t i c a l s e n t e n c e s P R I N T e d o t h v i d e o s c r e e n ,

s e p a r a t e d b b l a n k l i n e . U s i n g t h w o r d P R I N T , b i t s e l f , i s o n w a t s k i p l i n e w h e n P R I N T i n g t t h v i d e o s c r e e n .

N o w , t r a n o t h e r w a o s a y i n g t h s a m e t h i n g , b u o j u s t o n p r o g r a ml i n e , s e p a r a t e d b t h B A S I C p u n c t u a t i o n m a r k , t h e c o l o n .

I P R I N T " T H I S I M C O M P U T E R " : P R I N T : P R I N T " T H I S I M C O M P U T E R "

T w o t h e r B A S I C p u n c t u a t i o n m a r k s , t h c o m m a ( , a n t h s e m i c o l o n( ; ) , a r o f t e n u s e d w i t h P R I N T s t a t e m e n t s . U s i n g e i t h e r o n a f f e c t s t h w a P R I N T w o r k s .

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

I P R I N T " T H I S I " E P R I N T " M C O M P U T E R "R U t h p r o g r a m a n s e w h a t h a p p e n s . I y o t y p e d i i c o r r e c t l y ,p a y i n g c l o s e a t t e n t i o n t t h s p a c e b e t w e e n t h w o r d " i s " a n t h l a s t q u o t e

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 75/318

6 4 — P r o g r a m m i n g — A n I n t r o d u c t i o n

m a r k i l i n e 1 a n t h s e m i c o l o n a t h e n o t h a t l i n e , i s h o u l d t y p e o u s e n t e n c e " T H I S I M C O M P U T E R . "

1 P R I N T2 P R I N T !

3 E N R U T H I S I M R E A D V .

T H I S I " M C O M P U T E R "

C O M P U T E R

T h s e m i c o l o n i w a o t e l l i n g t h c o m p u t e r w h e r e i s h o u l d b e g i nP R I N T i n g . O r d i n a r i l y , e v e r y t i m e P R I N T c o m m a n d i u s e d i p r o g r a mt h c o m p u t e r w i l l b e g i n P R I N T i n g o t h n e x t l i n e o t h v i d e o s c r e e n . T h s e m i c o l o n t e l l s t h c o m p u t e r n u t g t t h n e x t l i n e , b u t k e e p i t p l a c eo t h s c r e e n a n b e g i n P R I N T i n g i t h v e r y n e x t s p a c e . T h i s w a y , t w p a r t s o f s i n g l e s e n t e n c e o r g r o u p o c h a r a c t e r s c a b l i n k e d . I t i s q u i c kw a o l i n k i n g s e n t e n c e s a n t e x t t o g e t h e r o t h s c r e e n . ( T h i s o c c u r s o n l yo t h s c r e e n . S t r i n g s s t o r e d s e p a r a t e l y a v a r i a b l e s r e m a i n s e p a r a t e i m e o r y . )

T h s p a c e b e t w e e n t h w o r d " i s " i l i n e 1 0 a n t h l a s t q u o t e m a r ki t h s a m e l i n e i i m p o r t a n t . W i t h o u t i t t h s e n t e n c e w o u l d r e a d " T H I SI S M Y C O M P U T E R . "

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

I f E B 3 C 4 P R I N TI l i n e 1 y o a r p l u g g i n g i t h n u m b e r 1 0 f o t h e v a r i a b l e n a m e A

a n i l i n e 2 0 t h n u m b e r f o B R U N n i n g t h i s p r o g r a m w i l l f i r s t a s s i g nt h n a m e s t t h n u m b e r s , t h e n p r i n t o u t h s u o ( 1 0 0 ) p l u s ( 1 ) , o 1 0 1 .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 76/318

P r o g r a m m i n g P R I N T 6 3

W i t h o u t l o o k i n g a t h p r o g r a m , t h P R I N T e d r e s u l t o p l u s B m a ya p p e a r m e a n i n g l e s s . T i d e n t i f y i o t h v i d e o s c r e e n , w c a i n s t r u c t t h p r o g r a m t t e l l u w h a t t h i s n u m b e r i e a c h t i m e i i P R I N T e d . C h a n g e l i n e4 t t h i s : ( D o n ' t t y p e N E W ! )

A P R I N T " » ; T h i s m i g h t l o o k l i k e y o a r r e p e a t i n g y o u r s e l f , b u y o a r n o t . L i n e 4

f i r s t t e l l s t h c o m p u t e r t P R I N T = T h e n t h s e m i c o l o n t e l l s i t c o n t i n u e P R I N T i n g o t h s a m e l i n e . F i n a l l y , t h c o m p u t e r P R I N T s t h v a l u eo C t h s u o A B o 1 0 1 . I t h i s l i n e P R I N T s t w t h i n g s o t h s c r e e n ,t h s t a t e m e n t ( a n t h r e s u l t , w h i t h B A S I C w o r d P R I N T u s e do n l y o n c e ? T h c o m p u t e r m a k e s a i m p o r t a n t a s s u m p t i o n w h e n i s e e ss e m i c o l o n i l i n e . U n l e s s a c o l o n i e n c o u n t e r e d , t h c o m p u t e r a s s u m e st h a t i s h o u l d c o n t i n u e P R I N T i n g w h a t e v e r f o l l o w s .

Y o m a n o t i c e t h a t t h e n u m b e r 1 0 i s n ' t P R I N T e d e x a c t l y n e x t t t h e q u a l s i g n = T h i s i b e c a u s e t h s e m i c o l o n t r e a t s n u m b e r s s l i g h t l y d i f f e re n t l y t h a n i d o e s s t r i n g s . I P R I N T s t w s p a c e s a w a y f r o m t h l a s t t h i n gP R I N T e d . T h i s i n o t a m i s t a k e i B A S I C . I i d e s i g n e d t k e e p n u m b e r ss e p a r a t e f r o m e a c h o t h e r a a l t i m e s t a v o i d c o n f u s i o n . H e r e i v a r i a t i o no t h s a m e p r o g r a m :

I 1 D

A P R I N T A ; B ; CI P R I N T s t h n u m b e r v a l u e s o a l t h e v a r i a b l e s i t h p r o g r a m , s e p a

r a t e d b t w s p a c e s e a c h . T h i s k i n d o l o g i c a l s e p a r a t i o n a l s o h a p p e n s w h e ny o P R I N T s t r i n g a f t e r n u m b e r u s i n g t h s e m i c o l o n . T r t h i s :I 1 D 5 D 3 D C = A + BA P R I N T A ; B ; C ; " T H E S E A R T H V A L U E S o A , a n C

P R I N T w i t h C o m m a A n o t h e r p u n c t u a t i o n m a r k t h a t i u s e d w i t hP R I N T i t h c o m m a . I i u s e d i t h C o m m o d o r e 6 f a m i l y t o r g a n i z e t h v i d e o s c r e e n i c o l u m n s . H e r e i p r o g r a m t h a t w i l l g r a p h i c a l l y i l l u s t r a t eh o c o m m a s w o r k :

I D A $ " C O L U M N 1 E B » C O L U M N 5 3 C » C O L U M N 3 A D » C O L U M N A

7 f l O DR P R I N T A $ , B $ , C $ , D $l t l D P R I N T A , B , C , D

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 77/318

6 4 — P r o g r a m m i n g — A n I n t r o d u c t i o n

W h e n y o R U t h i s p r o g r a m , y o w i l l s e e t h a t t h 4 0 - c h a r a c t e r v i d e os c r e e n i d i v i d e d i n t o f o u r c o l u m n s , e a c h 1 s p a c e s w i d e . Y o s h o u l d a l s os e e t h e d i f f e r e n c e b e t w e e n P R I N T i n g s t r i n g s a n P R I N T i n g n u m b e r s i t h e s ec o l u m n s . S t r i n g s w i l l b e g i n P R I N T I N G i t h v e r y f i r s t p o s i t i o n i c o l u m n .( T h e s t r i n g c o l u m n s s t a r t o t h v i d e o s c r e e n a p o s i t i o n s 1 1 1 2 1 a n 3 1 w h e n y o c o u n t t h f i r s t p o s i t i o n a s n u m b e r 1 . N u m b e r s s k i p s p a c e a n b e g i n P R I N T i n g i t h s e c o n d s p a c e . ( S t a r t i n g l o c a t i o n s o f c o l u m n s c o t a i n i n g n u m b e r s a r s c r e e n l i n e p o s i t i o n s 2 1 2 2 2 a n 3 2 . )

l 2 3 4 5 > 7 8

9 L 8 R U

A B = C = D A B =

= t P R I HP R

C f i L l i H N

R E A D V

C O L U M NC O L U M NC O L U M NC O L U M N

3 4

A $ , B $ , C $ , D $H f t C C O L U M : ; - ■ ■ U O L U M W

C h a n g e l i n e 4 i t h p r o g r a m a b o v e t t h i s :4 D " T H I S I C O L U M N N U M B E R F O U R "R U t h p r o g r a m a g a i n . Y o w i l l s e w h a t h a p p e n s w h e n t h i n f o r

m a t i o n i c o l u m n t a k e s u m o r e t h a n t e s p a c e s ( n i n e s p a c e s w h e n n u m b e r sa l o n e a r u s e d ) o t h s c r e e n . T h e c o m p u t e r w i l l P R I N T i n t o t h n e x t c o l u m n ,t h e n a d v a n c e t t h e n e x t . T h e s e l o n g c o l u m n s c a d i s t u r b c a r e f u l l y o r g an i z e d s c r e e n , s o t a v o i d t h i s t r a p , i i w i s e t k n o w w h a t w i l l b P R I N T e df i r s t . Y o s h o u l d k e e p t r a c k o w h a t y o a r d o i n g e a c h t i m e y o u s t h s e m i c o l o n o t h c o m m a . U s i n g e i t h e r o n a t h e n o l i n e w i l l m e a n t h a tt h n e x t P R I N T s t a t e m e n t w i l l b e g i n P R I N T i n g i t h a p p r o p r i a t e p o s i t i o n —i t h n e x t s p a c e o t w i y o u s s e m i c o l o n , i t h n e x t c o l u m n i y o u s c o m m a . S o i t h l a s t c h a r a c t e r i P R I N T s t a t e m e n t i n o c o m m ao s e m i c o l o n , t h c u r s o r w i l l a u t o m a t i c a l l y m o v e t t h n e x t l i n e w h e n i P R I N T s a g a i n .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 78/318

P r o g r a m m i n g P R I N T 6

P R I N T E x a m p l e R e s u l t1 P R I N T A

1 P R I N T A ; B ; C ; D

1 P R I N T A , B , C , D

1 P R I N T A ; 2 P R I N T C ;

1 P R I N T A , 2 P R I N T C , 1 P R I N T A

1 P R I N T A $ ; B $ ; C $ ; D $

1 P R I N T A $ , B $ , C $ , D $

1 P R I N T A $ ; B $2 P R I N T C $ ; D $

1 P R I N T A $ , B $2 P R I N T C $ , D $

P R I N T s t h n u m b e r n a m e d A o t h s c r e e n — c u r s o rm o v e s t t h n e x t l i n e .P R I N T s t h n u m b e r s n a m e d A B a n n e x t t e a c ho t h e r o t h s a m e l i n e , e a c h s e p a r a t e d b 2 s p a c e s .P R I N T s t h n u m b e r s n a m e d A , B , a n i f o u r c o u m n s o n i n e s p a c e s e a c h .P R I N T s t h n u m b e r s n a m e d a n o o n l i n e , s e p ar a t e d b y t w o s p a c e s , t h e n P R I N T s t h n u m b e r s n a m e d

a n o t h n e x t l i n e i t h s a m e w a y .P R I N T s t h n u m b e r s n a m e d A B a n o n t w o l i n e si t h f i r s t t w s c r e e n c o l u m n s .P R I N T s t h s t r i n g n a m e d A $ — c u r s o r m o v e s t t h n e x t l i n e .P R I N T s t h s t r i n g s n a m e d A $ B $ C $ a n d D n e x t t e a c h o t h e r o t h s a m e l i n e w i t h o u t s p a c e s b e t w e e nt h e m .P R I N T s t h s t r i n g s n a m e d A $ B $ C $ a n d D i f o u rc o l u m n s o n t h s c r e e n , l e n g t h p e r m i t t i n g .P R I N T s t h s t r i n g s n a m e d A $ a n d B o o n l i n e , n e x tt e a c h o t h e r w i t h o u t s p a c e s , t h e n P R I N T s t h s t r i n g sn a m e d C $ a n d D o t h n e x t l i n e i n t h s a m e w a y .P R I N T s t h s t r i n g s n a m e d A $ B $ C $ a n d D o n t w ol i n e s i t h f i r s t t w s c r e e n c o l u m n s , l e n g t h p e r m i tt i n g .

P R I N T i n g D i r e c t l y F r o m t h K e y b o a r d I t h e v e n t t h a t y o w a n t a n i m m e d i a t e a n s w e r t w h a t t h n u m b e r s o s t r i n g s a r e t h a t a r e s t o r e db v a r i a b l e n a m e s , i i u n n e c e s s a r y t w r i t e p r o g r a m l i n e . P R I N T ( o t h s h o r t h a n d q u e s t i o n m a r k ) c a b e u s e d d i r e c t l y f r o m t h k e y b o a r d .

P R I N T [ o ? & [ t h e n p r e s s R E T U R N ]T h a b o v e l i n e w i l l p r i n t t h n u m b e r t h a t A s t a n d s f o r .P R I N T [ o ? A B [ t h e n p r e s s R E T U R N ]T h a b o v e l i n e w i l l p r i n t t h e s t r i n g o c h a r a c t e r s t h a t A B s t a n d s f o r , a

w e l l .P R I N T i n g S c r e e n F u n c t i o n s T h P R I N T c o m m a n d i a l s o u s e d

f o s e v e r a l s c r e e n f u n c t i o n s , i n c l u d i n g m o v i n g t h c u r s o r a r o u n d t h s c r e e n ,m o v i n g t h c u r s o r b a c k t " h o m e " ( t h e t o l e f t c o r n e r o t h s c r e e n ) , a n f o e r a s i n g e v e r y t h i n g o t h s c r e e n .

I n a d d i t i o n t m o v i n g t h e c u r s o r a r o u n d t h s c r e e n f r o m t h k e y b o a r d( w i t h t h e c u r s o r u a n d o w n , l e f t a n r i g h t k e y s ) , B A S I C p r o g r a m c a a l s o p o s i t i o n t h c u r s o r i s i m i l a r w a y . T h i s i a c c o m p l i s h e d b P R I N T i n gc u r s o r c o m m a n d s . T s e h o t h i s w o r k s , t y p e t h e s e l i n e s :

I P R I N T " L I N E # 1 "E P R I N T " [ p r e s s t h e C R S R D O W N k e f i v e t i m e s ] "A f t e r y o t y p e t h e f i r s t q u o t a t i o n m a r k , d o n ' t t y p e t h a b o v e s e n t e n c e ,

b u p r e s s t h e C R S R D O W N k e f i v e t i m e s . I n s t e a d o s e e i n g t h e c u r s o r m o v i n g

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 79/318

6 4 — P r o g r a m m i n g — A n I n t r o d u c t i o n

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

T y p e a n o t h e r s e o q u o t e m a r k s t c l o s e t h s t a t e m e n t . N o t y p e a n o t h e rl i n e :

3 P R I N T " L I N E # E »R U t h p r o g r a m . I w i l l P R I N T t h w o r d s L I N E # 1 t h e n f i v e b l a n k

l i n e s , t h e n L I N E # 2 A n c u r s o r c o m m a n d s ( u p , d o w n , l e f t , o r i g h t ) w i l l w o r k t h i s w a y . Y o

m a h a v e s o m e d i f f i c u l t y s i n c e t h e m o v e m e n t o t h c u r s o r i o f t e n d i f f i c u l tt o v i s u a l i z e . O n t i i t m a k e n o t e s w i t h p e n c i l a n p a p e r t k e e p t r a c ko w h e r e t h c u r s o r i m o v i n g . O n c e t h p r o g r a m i R U N n i n g , t h c u r s o r i i n v i s i b l e a n t h i n g s h a p p e n t o o q u i c k l y t a n a l y z e .

U s i n g t h s a m e p r o g r a m ( d o n ' t t y p e N E W ) , a d t h i s l i n e :

P R I N T " [ h o l d d o w n t h S H I F T k e y , t h e n p r e s s C L R / H O M E ] "

Y o s h o u l d s e a n o t h e r s y m b o l , h e a r t r e v e r s e d a g a i n s t t h e b a c k g r o u n d .R U t h p r o g r a m a g a i n . T h i s l i n e t e l l s t h c o m p u t e r t c l e a r t h v i d e o s c r e e nb e f o r e R U N n i n g t h p r o g r a m a o r i g i n a l l y w r i t t e n . I a l s o r e l o c a t e s t h c u r s o rt t h t o o t h s c r e e n .

I y o h a p r e s s e d t h C L R / H O M E k e w i t h o u t t h S H I F T , y o u w o u l dh a v e s e e n a d i f f e r e n t s y m b o l i n s i d e t h e q u o t e s , t h e l e t t e r " S r e v e r s e d a g a i n s tt h b a c k g r o u n d . I w o u l d h a v e r e l o c a t e d t h c u r s o r t t h t o p , b u w o u l d n o h a v e c l e a r e d t h s c r e e n . I t i s h a n d y t u s t h i s " h o m e " s y m b o l w h e n y o a r d o i n g c o m p l i c a t e d c u r s o r m o v e s . I a s s u r e s t h a t y o a r a l w a y s s t a r t i n g f r o mt h s a m e p l a c e , t h t o l e f t c o r n e r .

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

P R I N T " c l e a r t h s c r e e n " o r " h o m e t h c u r s o r " s t a t e m e n t , t h c u r s o r w i l l

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 80/318

P r o g r a m m i n g P R I N T 6

a l w a y s g t [ h a t s e c o n d l i n e . { T h i s i l o g i c a l , a n f o l l o w s t h r u l e s a b o u lu s i n g t h s e m i c o l o n a n c o m m a . )

P R I N T i n g t t h v i d e o s c r e e n i e n h a n c e d w h e n u s e d w i t h s i m i l a r S p e c i a lk e y s , t h R V O a n R V O F k e y s . T y p i n g q u o t e m a r k , t h e n p r e s s i n gC T R L ( c o n t r o l ) a n R V O t o g e t h e r , t e l l s t h c o m p u t e r t P R I N T w h a tf o l l o w s a r e v e r s e d c h a r a c t e r s a g a i n s t t h b a c k g r o u n d c o l o r . I t h g r a p h i cm o d e , y o w i l l s e s p e c i a l c h a r a c t e r , r e v e r s e d l e t t e r " R , " w h e n y o p r e s st h R V O k e a f t e r a q u o t e m a r k .

E A D Y .

> L O " £ U S O F K E V O F K E

P R I N T i n g w i l l a u t o m a t i c a l l y r e t u r n t n o r m a l a t h e n o l i n e w i t hR V O i i t O r y o c a t u r n o f t h r e v e r s e P R I N T i n g i n s i d e t h e l i n e b

t y p i n g a n o t h e r s p e c i a l c h a r a c t e r , R V O F F . T t u r n o f R V S , h o l d d o w n t h C T R L k e a n p r e s s R V O F F . I t h g r a p h i c m o d e , y o u w i l l s e s q u a r ew i t h l i n e n e a r t h b o t t o m , r e v e r s e d a g a i n s t t h b a c k g r o u n d . W h e n t h i sR V S O F F c h a r a c t e r a p p e a r s m i d - l i n e , b e t w e e n q u o t a t i o n m a r k s a n a f t e rR V O c h a r a c t e r , a n y t h i n g b e f o r e i w i l l b P R I N T e d i r e v e r s e , a n e e r y t h i n g a f t e r i w i l l b P R I N T e d n o r m a l l y .

I P R I N T " N O T I R E V E R S E [ p r e s s C T R L a n R V O N I R E V E R S E [ p r e s s C T R L a n R V O F F ] N O I R E V E R S E "

C o l o r k e y s a r e t r e a t e d i t h s a m e w a y , e a c h y i e l d i n g a d i f f e r e n t c o l o ro P R I N T i n g o s c r e e n w h e n u s e d i q u o t e m a r k s . T o b t a i n c o l o r , p r e s sC T R L a n t h d e s i r e d k e n u m b e r e d t h r o u g h 8 o t h C O M M O D O R E k e a n a n o t h s a m e k e y s . S e t h c h a r t s i t h e s e c t i o n e n t i t l e d " S e t t i n g U p f o a d e s c r i p t i o n o w h i c h k e y s p r o d u c e w h i c h c o l o r s .

A m a j o r d i f f e r e n c e w h e n u s i n g t h c o l o r k e y s a n t h e r e v e r s e k e y s i t h a tt h m a c h i n e w i l l c o n t i n u e t P R I N T i t h e c o l o r v o h a v e t o l d i t u n t i l

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 81/318

6 4 — P r o g r a m m i n g — A n I n t r o d u c t i o n

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

I P R I N T » [ p r e s s C T R L a n W H T ] T H I S W I L L C O N T I N U E T P R I N TI W H I T E 1 '

E P R I N T " U N T I L Y O I N D I C A T E [ p r e s s C O M M O D O R E k e a n B L U ] O T H E R W I S E "

I y o a r e t h i n k i n g t h a t u s i n g P R I N T i c o m p l i c a t e d , y o a r c o r r e c t .S i n c e i o f f e r s s m a n y p o s s i b i l i t i e s , t h e r e a r e a l a r g e n u m b e r o r u l e s t h a ta c c o m p a n y i t u s e . M o s t B A S I C w o r d s , h o w e v e r , d o n ' t h a v e a m a n y o p t i o n sa v a i l a b l e t t h e m a n a r c o n s i d e r a b l y e a s i e r t d e s c r i b e a n u n d e r s t a n d .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 82/318

P r o g r a m m i n gT h B i T e

A i a n s p o k e n l a n g u a g e , c e r t a i n B A S I C w o r d s f o r m i t c o r e . T h e s e a r w o r d s t h a t a r a m o n g t h m o s t u s e f u l . T h t e w o r d s y o u ' l l l e a r n a b o u t i t h i s c h a p t e r — I N P U T , G O T O , I a n T H E N , G E T , F O a n N E X T , G O S U Ba n R E T U R N , a h R E M — o f f e r g r e a t m a n y p o s s i b i l i t i e s . W i t h t h e s e ( a n dP R I N T f r o m t h p r e v i o u s c h a p t e r ) y o c a r e a l l y b e g i n t p r o g r a m . T h e s et e w o r d s a l s o i n t r o d u c e y o t n e c o r l c e p t s . G O T O , G O S U B a n R E T U R N ,f o e x a m p l e , h a v e t d w i t h t h o r d e r i w h i c h p r o g r a m d o e s t h i n g s .I N P U T a n G E i n v o l v e g i v i n g t h e c o m p u t e r i n f o r m a t i o n . W i t h I a n T H E N ,t h c o m p u t e r c a t e s t i n f o r m a t i o n a n m a k e s i m p l e d e c i s i o n s . R E l e t s y o a d c o m m e n t s t B A S I C p r o g r a m s , t m a k e t h e m m o r e u n d e r s t a n d a b l e . I y o l e a r n n o t h i n g m o r e t h a n t h e s e f e w o r d s , y o w i l l h a v e u n l o c k e d m u c ho y o u r m a c h i n e ' s p o w e r .

U s i n g I N P U T t A s f o I n f o r m a t i o nT h B A S I C w o r d I N P U T i s i m a n y w a y s , t h d i r e c t o p p o s i t e o t h w o r d

P R I N T . Y e t , t h i s w o r d f o l l o w s s o m e o t h s a m e r u l e s t h a t P R I N T d o e s .I N P U T i u s e d t t a k e i n f o r m a t i o n f r o m t h k e y b o a r d a n p u i i n t o

n a m e d v a r i a b l e . W h e n I N P U T i u s e d , t h p r o g r a m w i l l P R I N T q u e s t i o nm a r k o t h s c r e e n , p a u s e a n w a i t f o s o m e o n e t t y p e i a n a n s w e r (

6

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 83/318

7 5 — P r o g r a m m i n g — T h e B i T e

s t r i n g o n u m b e r ) a n p r e s s t h e R E T U R N k e y . T h e n , i t h e r e a r e p r o g r a ml i n e s f o l l o w i n g i t I N P U T w i l l g b a c k t R U N n i n g t h p r o g r a m .

I i t s i m p l e s t f o r m , I N P U T i u s e d w i t h o n l y v a r i a b l e .I I N P U TT h a b o v e l i n e P R I N T s q u e s t i o n m a r k , t h e n p a u s e s a n w a i t s f o s o m e

o n t t y p e i n u m b e r t b s t o r e d a s t h e v a r i a b l e n a m e d A I I N P U T A L i k e w i s e , t h i s l i n e a b o v e d o e s e x a c t l y t h e s a m e t h i n g , e x c e p t t h a t i w a n t s

s t r i n g o c h a r a c t e r s t s t o r e a " A $ . " O n p e c u l i a r i t y o f I N P U T i t h a t i w i l l n o a c c e p t s t r i n g a n s w e r s w i t h c o m m a s i t h e m . I a I N P U T s t a t e m e n ta s k s y o f o y o u r c i t y a n s t a t e , f o e x a m p l e , y o c a n n o t a n s w e r " F l i n t ,M i c h i g a n " o " A t l a n t a , G e o r g i a . " I N P U T w i l l a c c e p t w h a t i w r i t t e n b e f o r et h c o m m a a n i g n o r e e v e r y t h i n g a f t e r i t ( Y o u ' l l s e w h y . )

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RE X T R A I G N O R E D

T h i s i r e a l l y a E R R O R t h a t y o c a n n o t c o r r e c t , a n h a p p e n sw h e n y o u r a n s w e r t a I N P U T s t a t e m e n t c o n t a i n s c o m m a w h e r eo n d o e s n o t b e l o n g . C o m m a s a r u s e d b t h C o m m o d o r e c o mp u t e r s a s s p e c i a l c h a r a c t e r s . T h o n l y t i m e t h a t t h e y a r e a l l o w e dw i t h i n a n a n s w e r t o , I N P U T i w h e n t h p r o g r a m i l o o k i n g f o s e v e r a l a n s w e r s a o n c e . L i k e t h i s :I I N P U T A $ , B $ , C $C o m m a s i n s t r i n g s w i l l a l s o c a u s e p r o b l e m s w h e n t h e y a r e s t o r e da n r e c a l l e d t a n f r o m d i s k i n f o r m a t i o n f i l e s .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

U s i n g I N P U T t h i s w a y , s i m p l y a s k i n g f o i n f o r m a t i o n w i t h o u t f i r s tP R I N T i n g q u e s t i o n , i a w k w a r d . T m a k e t h p r o g r a m ' s r e q u e s t s c l e a r e r ,y o m a a s i t P R I N T s o m e t h i n g j u s t b e f o r e t h e q u e s t i o n m a r k i w i l la l w a y s p u t o t h s c r e e n . T y p e y o u r q u e s t i o n i q u o t a t i o n m a r k s , j u s t a y o w o u l d i y o w e r e P R I N T i n g i o t h v i d e o s c r e e n . F o r e x a m p l e :

1 I N P U T " W H A T I T H V A L U E O A T h i s l i n e P R I N T s W H A T I T H V A L U E O A ( T h e q u e s t i o n m a r k w a

P R I N T e d b I N P U T . ) Y o m u s t u s t h s e m i c o l o n , a a b o v e , t s e p a r a t e t h v a r i a b l e n a m e f r o m t h q u e s t i o n y o a r a s k i n g .

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

1 I N P U T " W H A T A R E T H E V A L U E S O A B C » ; A , B , CT h i s l i n e w i l l P R I N T t h q u e s t i o n W H A T A R T H V A L U E S O A B

C T h e n i w i l l w a i t f o t h p r o p e r r e s p o n s e s . W h e n I N P U T a s k s f o m o r e

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 84/318

U s i n g I N P U T t A s f o I n f o r m a t i o n 7

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

1 1 [ t h e n p r e s s R E T U R N ]S i n c e i i o f t e n u n c l e a r t t h p r o g r a m u s e r t h a t t h c o m p u t e r d e m a n d s

t h e s e c o m m a s , i i u s u a l l y s a f e r t u s e s e p a r a t e I N P U T l i n e s t h i s w a y :I I N P U T " W H A T I T H V A L U E O A E I N P U T " W H A T I T H V A L U E O B ; 3 I N P U T " W H A T I T H V A L U E O C ; I p r o g r a m l i k e t h e x a m p l e a b o v e a s k s f o n u m b e r s , n o t h i n g e l s e w i l l

b a c c e p t e d . I f f o t h q u e s t i o n W H A T I T H V A L U E O A ? y o t y p e t h a n s w e r T W O , t h c o m p u t e r w i l l s i g n a l t h a t y o h a v e m a d e m i s t a k e a n w i l l a s y o t r e - e n t e r t h a n s w e r a s t h e n u m b e r , r a t h e r t h a n t h w o r d .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RR E D O F R O M S T A R T

T h i s m e s s a g e a p p e a r s w h e n e v e r y o u a n s w e r a n I N P U T s t a t e m e n tw i t h s t r i n g , w h e n i e x p e c t s n u m b e r . C o r r e c t t h s i t u a t i o n b a n s w e r i n g w i t h n u m b e r .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

I a n q u e s t i o n p o s e d b y I N P U T i n o a n s w e r e d — n o n u m b e r o s t r i n gi t y p e d — a n d o n l y t h R E T U R N k e i p r e s s e d , I N P U T w i l l a s s u m e t h a t t h a n s w e r i e i t h e r ( f o r n u m b e r ) o r n o t h i n g a a l f o s t r i n g . T h i s e m p t ys t r i n g i o f t e n c a l l e d " n u l l " s t r i n g . S u c h s t r i n g , f o r i n s t a n c e , c a n b e w r i t t e nA " ( w i t h n s p a c e b e t w e e n t h q u o t e s ) . N u l l s t r i n g s c a b u s e f u l , a y o w i l l l e a r n .

( T h o s e w h h a v e u s e d a n p r o g r a m m e d t h e o r i g i n a l C o m m o d o r e P E c o m p u t e r s h o u l d b h a p p y t k n o w t h a t I N P U T n o a c c e p t s a n n u l l s t r i n g sa a n s w e r s . W i t h t h P E T , t h r e s p o n s e o j u s t p r e s s i n g t h R E T U R N k e w o u l d s u d d e n l y e n t h p r o g r a m . )

T b e t t e r l e a r n h o w I N P U T i u s e d , t y p e i t h e f o l l o w i n g s h o r t p r o g r a m :I I N P U T " W H A T I Y O U R N A M E " N A E I N P U T " H O W O L D & R E Y O U 1 1 ; A 3 P R I N T " Y O U R N A M E I N A A P R I N T " Y O U A R E " ; A G " Y E A R S O L D "T h i s p r o g r a m w i l l f i r s t P R I N T t h q u e s t i o n W H A T I Y O U R N A M E ?

T h e n i w i l l p a u s e a n w a i t f o y o u r r e s p o n s e . A f t e r t y p i n g i y o u r n a m e , i w i l l P R I N T t h s e c o n d q u e s t i o n , H O O L A R Y O U ? I w i l l w a i t , a g a i n ,f o y o u r r e s p o n s e , t h e n i m m e d i a t e l y P R I N T t w s e n t e n c e s : Y O U R N A M E I ( t h e n a m e y o t y p e d ) , a n Y O A R ( t h e n u m b e r y o t y p e d f o y o u r a g e )Y E A R S O L D .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 85/318

7 5 — P r o g r a m m i n g — T h e B i T e

I N P U T , a y o m a h a v e g u e s s e d , i r e l a t i v e l y s i m p l e a n u n c o m p l ic a t e d w o r d t u s e . E x c e p t f o u s i n g i o u t s i d e o p r o g r a m ( d i r e c t l y f r o mt h k e y b o a r d ) , t h e r e a r e f e w a y s t u s i i n c o r r e c t l y .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RI L L E G A L D I R E C T

W h i l e m a n y B A S I C w o r d s c a b t y p e d d i r e c t l y f r o m t h k e y b o a r da n u s e d o u t s i d e p r o g r a m , I N P U T c a n n o t . T h i s i l o g i c a l , c o s i d e r i n g i t u s e .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

G O T OA i m p o r t a n t i d e a c e n t r a l t c o m p u t e r p r o g r a m m i n g i t h a t p r o g r a m

n e e d n ' t n e c e s s a r i l y r u i t h o r d e r t h a t i i w r i t t e n . T h w o r d G O T O , o G T O i u s e d f o " b r a n c h i n g , " o t e l l i n g t h p r o g r a m w h i c h l i n e — o u t o s e q u e n c e — t o e x e c u t e n e x t . I i a l s o u s e d t p u p r o g r a m i " l o o p / ' s ot h a t i r u n s c o n t i n u o u s l y .

T h f i r s t p r o g r a m s e e n i t h i s b o o k i a e x a m p l e o l o o p .I P R I N T " T H I S I M C O M M O D O R E C O M P U T E R "E G O T O I T h s t a t e m e n t G O T O 1 0 o f c o u r s e , m e a n s G O T O l i n e 1 0 . T h i s i p e r f e c t

e x a m p l e o a e n d l e s s l o o p — o n c e s e t i n m o t i o n , t h i s p r o g r a m w i l l c o n t i n u e ,l i t e r a l l y , f o r e v e r .G O T O i s n ' t a l w a y s u s e d t c r e a t e l o o p s .I P R I N T " T H I S I M C O M P U T E R "E G O T O 4 3 P R I N T " T H I S L I N E D O E S N ' T W O R K "4 P R I N T " T H I S I M C O M P U T E R "E v e n t h o u g h t h e r e a r e t h r e e l i n e s t h a t w i l l P R I N T t t h v i d e o s c r e e n ,

l i n e 2 ( G O T O 4 0 t e l l s t h p r o g r a m t s k i p t h e l i n e t h a t s h o u l d P R I N T t h s e n t e n c e T H I S L I N E D O E S N ' T W O R K . ( A n d i d o e s n ' t , e i t h e r . )O c o u r s e , w r i t i n g p r o g r a m w i t h u n n e c e s s a r y l i n e s i p o i n t l e s s . B u i w c o u l d t e l l t h c o m p u t e r t m a k e d e c i s i o n b a s e d o o t h e r i n f o r m a t i o ni g e t s f r o m t h p r o g r a m , t h i s k i n d o b r a n c h i n g b e c o m e s p r a c t i c a l .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RU N D E F I N E D S T A T E M E N T E R R O R

Y o m u s t u s G O S U B a n G O T O w i t h l i n e n u m b e r s t h a t a r a t u a l l y u s e d i t h p r o g r a m . T h i s E R R O R o f t e n h a p p e n s w h e n y o e d i t p r o g r a m s o c h a n g e l i n e n u m b e r s a n d f o r g e t t c h a n g e t h

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 86/318

G O T O 7

G O T O a n G O S U B s t a t e m e n t s t h a t r e f e r t o t h e m . C h e c k l i n e n u b e r s i w h i c h t h E R R O R o c c u r s , t h e n t r y t o L I S T t h a t l i n e . S i n c eR U c a a l s o b u s e d w i t h l i n e n u m b e r s , U N D E F I N E D S T A T EM E N T E R R O R s c a o c c u r t h i s w a y , t o o .

I F T H E N , a n O M u c h o f t h e c o m p u t e r ' s p o w e r c o m e s f r o m i t a b i l i t y t o m a k e s i m p l e

d e c i s i o n s b a s e d o t h a n s w e r s t s i m p l e q u e s t i o n s o t e s t s . T h w o r d I c h e c k s f o c o n d i t i o n s a n a l l o w s t h e s e d e c i s i o n s t b m a d e . T H E N i a l w a y su s e d w i t h I t t e l l t h c o m p u t e r w h a t t d n e x t . U s i n g t h w o r d s y o ua l r e a d y k n o w , y o u c a w r i t e t h i s p r o g r a m .

I I N P U T " A N S W E R Y E O R N O D Y O L I K E C O M P U T E R S f t 5 I A $ = " Y E S " T H E N P R I N T " G O O D . K E E P L E A R N I N G A B O U T

T H E M . "3 I F A $ " N O " T H E N P R I N T " G O O D B Y E "T h i s p r o g r a m i t h f i r s t e x a m p l e i t h i s b o o k t h a t m a k e s d e c i s i o n . I

a s k s t h q u e s t i o n D Y O L I K E C O M P U T E R S ? , u s i n g I N P U T i l i n e 1 0 T h a n s w e r t t h q u e s t i o n — Y E S o N O — i s s t o r e d a t h e v a r i a b l e n a m e dA $

T h e n t h p r o g r a m m a k e s i t d e c i s i o n , w h i c h i a c t u a l l y o n o t h r e ep o s s i b i l i t i e s . I l i n e 2 0 , i a s k s i t h a n s w e r ( A $ ) i Y E S . I t h i s i t r u e , i P R I N T S t h e r e s p o n s e , G O O D . K E E P L E A R N I N G A B O U T T H E M . I t h a s w e r i n o t r u e , t h c o m p u t e r g o e s t t h n e x t l i n e a n a s k s i t h a n s w e ri N O I t h i s i t r u e , i r e s p o n d s w i t h c u r t G O O D B Y E . I t h a n s w e r i n e i t h e r Y E n o N O — a t h i r d p o s s i b i l i t y , s i n c e y o c o u l d h a v e a n s w e r e d t h q u e s t i o n w i t h a n y o t h e r w o r d — i t P R I N T s n r e s p o n s e a a l l .

Y o c a ( a n d o f t e n w i l l ) u s I w i t h n u m b e r s a w e l l a s t r i n g s . I a d d i t i o n t m a t c h i n g n u m b e r a n s w e r s w i t h q u e s t i o n s , y o c a a l s o t e s t f o

r a n g e o n u m b e r s b u s i n g s i g n s o t h e r t h a n t h e q u a l s i g n ) T h l e s s -t h a n s i g n ( < ) a n g r e a t e r - t h a n s i g n ( > ) a r u s e d f o t h i s p u r p o s e . I y o h a v et r o u b l e r e m e m b e r i n g w h i c h i w h i c h , t h i n k o f t h e o l t r i c k o l o o k i n g a t h e ml i k e y o w o u l d f u n n e l . M o r e a l w a y s g o e s i t h o p e n e n d . L e s s a l w a y sc o m e s o u t h s m a l l e r e n d .

I I N P U T " H O W O L D A R E Y O U "5 I A < l f l T H E N P R I N T " Y O U A R U N D E R I f Y E A R S O L D .3 I A > l f l T H E N P R I N T " Y O U A R O V E R I f Y E A R S O L D .L i k e t h o t h e r p r o g r a m , t h e s e r e s p o n s e s a r b a s e d o t h a n s w e r t

q u e s t i o n . U n l i k e t h Y E S / N O e x a m p l e , h o w e v e r , i a s k s t s e i t h a n s w e rf a l l s i n t o o n o t w b r o a d a g g r o u p s , u n d e r 1 8 y e a r s o l a n o v e r 1 y e a r so l d . L i n e 2 s a y s t h a t I ( t h e a n s w e r i n u m b e r s ) i l e s s t h a n 1 8 i P R I N T so n r e s p o n s e ; i i g r e a t e r t h a n 1 8 a n o t h e r .

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 87/318

7 5 — P r o g r a m m i n g — T h e B i T e

n r e s p o n s e a a l l , s i n c e t h e t e s t i f o n u m b e r s g r e a t e r t h a n 1 8 ( 1 9 a n o v e r )a n l e s s t h a n 1 8 ( 1 7 a n u n d e r ) .

O n s o l u t i o n i t a d a n o t h e r l i n e .4 D I F l f T H E N P R I N T " Y O U A R E E X A C T L Y I f Y E A R S O L D . "T h i s w a y , n n u m b e r c o u l d b t y p e d w i t h o u t g e t t i n g r e s p o n s e f r o mt h c o m p u t e r .T h e r e i a n o t h e r a l t e r n a t i v e . T h " < a n " > s i g n s c a n b e u s e d a l o n g

s i d e t h e q u a l s i g n w i t h y e a n o t h e r m e a n i n g .5 I A l f T H E N P R I N T " Y O U A R I f Y E A R S O L O

U N D E R . "3 I A l f T H E N P R I N T " Y O U A R I f Y E A R S O L O O V E R . "L i n e 2 i r e a d I i l e s s t h a n o r e q u a l t o 1 8 . L i n e 3 0 r e a d s I F i g r e a t e r

t h a n o e q u a l t 1 8 F i n a l l y , y o c a u s t w I F i s i n g l e s t a t e m e n t t t e s t t h e r a n g e .I I N P U T " H O W O L D A R E Y O U "E I A 1 A N I A i T H E N P R I N T " Y O U A R E

T E E N A G E R . "3 I A < 1 3 T H E N P R I N T " T O O Y O U N G .4 I A > i q T H E N P R I N T " T O O O L D .L i n e s 3 a n 4 s h o u l d b o b v i o u s . T h e y s i m p l y t e s t t s e w h e t h e r t h

a n s w e r ( A i l e s s t h a n 1 o g r e a t e r t h a n 1 9 t h d e f i n i t i o n o t e e n a g e r .L i n e 2 i r e a d I f y i g r e a t e r t h a n o e q u a l t 1 A N I i l e s s t h a n o e q u a l t 1 T H E N P R I N T . T h r e s p o n s e Y O A R T E E N A G E R w i l l n o a p p e a r u n l e s s b o t h o t h e s e c o n d i t i o n s a r e m e t . A N a l w a y s c h e c k s t s e t h a t a l I F a r t r u e . A n n u m b e r o A N D s c a b u s e d o t h s a m e I l i n e .

O c h e c k s t s e I e i t h e r ( o a n y ) o t w o m o r e t e s t s a r t r u e .I I N P U T " H O W O L D A R Y O U " ;E I A = 1 O A 2 T H E N P R I N T " Y O U A R N O

T E E N A G E R . "T h l a s t w a t h a t " < a n " > c a n b e u s e d i t o g e t h e r , a " > . T h i s

i t h o p p o s i t e o t h e q u a l s i g n a n m e a n s " n o t e q u a l / ' l i t t l e g u e s s i n g" g a m e " :

I P R I N T " I ' M T H I N K I N G O N U M B E R B E T W E E N A N 1 D D .E I N P U T " W H A T I I T " ;3 I A < > 5 b T H E N P R I N T " W R O N G " : G O T O I 4 I = 5 T H E N P R I N T " Y O U ' R E R I G H T ! "I n c a s e y o h a d n ' t n o t i c e d , t h " g a m e " i r i g g e d . ( T h e a n s w e r i a l w a y s

5 6 . ) I f i r s t t e l l s y o I ' T H I N K I N G O N U M B E R B E T W E E N A N 1 0 0 .T h I N P U T s t a t e m e n t a s k s W H A T I S I T ? t h e n w a i t s f o t h a n s w e r t b t y p e d . B u l i n e 3 t e l l s t h c o m p u t e r t h a t i s h o u l d s a y o a r W R O N G i t h n u m b e r y o p i c k e d ( A i n o t e q u a l t o 5 6 , a n g b a c k t t h b e g i n n i n go t h p r o g r a m . ( I t h n u m b e r i e x a c t l y 5 6 y o a r e c o n g r a t u l a t e d . )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 88/318

I F T H E N , a n O 7

I w o r k s i c o m p l e t e l y l o g i c a l w a y . I c a b e u s e d n o o n l y w i t h t h P R I N T a n G O T O e x a m p l e s h e r e , b u t r e d e f i n e v a r i a b l e s a n w i t h v i r t u a l l ya n o t h e r B A S I C c o m m a n d s . O n t h i n g t h a t b e f u d d l e s s o m e f i r s t - t i m e p r g r a m m e r s , h o w e v e r , i t h a t I t h c o n d i t i o n i n o t r u e , e v e r y t h i n g o t h s a m e p r o g r a m l i n e i i g n o r e d . I i v e r y i m p o r t a n t , t h e n , t r e m e m b e r n o t i n c l u d e a n y t h i n g o l i n e t h a t b e g i n s w i t h I t h a t d o e s n ' t d e p e n d o t h c o r r e c t r e s p o n s e t t e s t o q u e s t i o n .

I I N P U T " Y E S O N O » ; A $E I A $ = » Y E S » T H E N P R I N T " Y O U A N S W E R E D Y E S » : A = 1 D DW h e n t h a n s w e r i N O t h v a l u e o w i l l r e m a i n z e r o . W h e n t h a n s w e r

i Y E S , b e c o m e s 1 0 0 . S o m e t i m e s , p r o g r a m m e r s f o r g e t a b o u t t h I o l i n e a n i n c l u d e i m p o r t a n t s t a t e m e n t s . T h e s e w i l l a l w a y s b e i g n o r e d u n l e s st h l i n e p a s s e s w h a t e v e r t e s t I c r e a t e s . B e s p e c i a l l y c a r e f u l o f t h i s a t h e s ep r o b l e m s a r s o m e t i m e s v e r y d i f f i c u l t t o f i n d i p r o g r a m a n t h e r e i n E R R O R m e s s a g e t w a r n y o o y o u r m i s t a k e .

G E T t i n g M o r e I n f o r m a t i o nA n o t h e r w o r d , i a d d i t i o n t I N P U T , c a b u s e d t s t o r e i n f o r m a t i o n

t a k e n f r o m t h c o m p u t e r ' s k e y b o a r d . T h a t w o r d i G E T .L i k e I N P U T , i t e m p o r a r i l y s t o p s t h p r o g r a m u n t i l i h a t h i n f o r m a t i o n

i n e e d s . H o w e v e r , I N P U T w i l l a c c e p t m u l t i p l e c h a r a c t e r s o n u m b e r s , a n G E a c c e p t s o n l y o n a t i m e . A n w h i l e I N P U T w a i t s f o t h R E T U R Nk e t b p r e s s e d t s i g n a l t h a t t h i n f o r m a t i o n i c o m p l e t e , G E a u t o m a ti c a l l y g o e s b a c k t t h p r o g r a m a f t e r s i n g l e k e i p r e s s e d .

G E i a l w a y s f o l l o w e d b v a r i a b l e n a m e a n i a l m o s t a l w a y s u s e dw i t h t h w o r d I F

I P R I N T " P R E S S A N K E T E N D T H I S P R O G R A M "E G E C $ : I F C $ » T H E N G O T O E 3 P R I N T " P R O G R A M E N D E D "T h a b o v e e x a m p l e i u s e d v e r y o f t e n i B A S I C p r o g r a m s w r i t t e n f o t h

C o m m o d o r e c o m p u t e r s . I t f u n c t i o n i t p a u s e t h p r o g r a m u n t i l t h u s e rw a n t s i t c o n t i n u e . T h i s i h a n d y , f o i n s t a n c e , f o k e e p i n g P R I N T e d i s t r u c t i o n s o t h s c r e e n u n t i l t h e y a r e r e a d , o t g i v e p l a y e r s t i m e b e f o r es t a r t i n g g a m e .

I n t h e e x a m p l e , t h p r o g r a m f i r s t P R I N T s t h m e s s a g e P R E S S A N Y K E YT E N T H I S P R O G R A M . T h e n , G E p a u s e s t h p r o g r a m , a n l o o k s f o k e y — a n y k e y — t o b p r e s s e d . T h I s t a t e m e n t d o e s t h e a c t u a l c h e c k i n g . I a s k s I F t h v a l u e o C i " T h e s e t w q u o t e m a r k s w i t h o u t a n y t h i n gb e t w e e n t h e m ( n o t e v e n s p a c e ) a r e c a l l e d n u l l s t r i n g , o r s t r i n g o n o t h i n g ,i y o u r e m e m b e r . I C c o n t a i n s n o t h i n g , i T H E N g o e s b a c k t t h b e g i n n i n go t h s a m e l i n e a n t r i e s t G E k e c h a r a c t e r a g a i n . W h e n k e i p r e s s e d ,m a k i n g C $ a n y t h i n g o t h e r t h a n " " t h p r o g r a m l e a v e s t h G E l i n e a n c o n t i n u e s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 89/318

7 5 — P r o g r a m m i n g — T h e B i T e

P r e s s i n g c e r t a i n k e y s , t h o u g h , w i l l h a v e n o e f f e c t o t h i s u s o G E T .T h o s e k e y s i n c l u d e b o t h S H I F T k e y s , S H I F T L O C K , R E S T O R E , C T R L , a n t h C O M M O D O R E ( l o g o ) k e y . F o t h r e a s o n t h a t i w o u l d s t o p t h e p r o g r a ma l t o g e t h e r , t h R U N / S T O P k e c a n ' t b p r e s s e d e i t h e r .

T h m a i n p u r p o s e o G E T , o c o u r s e , i s n ' t j u s t t h i s l i t t l e p a u s e r o u t i n e .I i t o b t a i n v a l u e — a n u m b e r o s t r i n g — f o r t h v a r i a b l e n a m e t h a t i i u s e d w i t h .

I P R I N T " T Y P E F O Y E S , F O N O 5 G E A $ : I F & " T H E N G O T O E 3 D I F f t " Y T H E N P R I N T " Y O U R A N S W E R W A Y E S "A D I F A $ = " N " T H E N P R I N T " Y O U R A N S W E R W A N O 5 I A $ < > " Y " O I A $ > " N " T H E N G O T O I I t h i s c a s e , t h s t r i n g v a r i a b l e n a m e d A s t o r e s l e t t e r . E i t h e r " Y o

" N i w h a t t h p r o g r a m i l o o k i n g f o r , a n i m a k e s i t d e c i s i o n s b a s e d o e i t h e r o f t h o s e p o s s i b i l i t i e s . L i n e 5 r e j e c t s a n o t h e r c h o i c e . I i r e a d I A i n o r e q u a l t " Y O I A i n o e q u a l t " N T H E N G O T O l i n e 1 0 ( I t i st h l i n e t h a t a s k s f o " Y o " N . " )

Y o c a u s G E t c h o o s e a i t e m f r o m l i s t o t h v i d e o s c r e e n . S u c hl i s t i n i c k n a m e d ' ' m e n u " i c o m p u t e r j a r g o n . L e t ' s t r y m e n u o f o u r

d i f f e r e n t c h o i c e s . I n s t e a d o n u m b e r k e y s , h o w e v e r , w w i l l u s t h o s e s o m ew h a t p u z z l i n g , u n u s e d " f u n c t i o n " k e y s a t h r i g h t o t h m a c h i n e . T h k e y t o p s s a y " f l , " " f 3 , " " f 5 , " a n " f 7 . " T t h c o m p u t e r , t h e y l o o k j u s t l i k ea n o t h e r k e y , e v e n t h o u g h t h e y d o n ' t P R I N T a n y t h i n g w h e n p r e s s e d . W h e ne n t e r i n g t h i s e x a m p l e , d w h a t y o a r t o l d i n s i d e t h e s q u a r e b r a c k e t s " ] " D n o t y p e t h w o r d s a y o r e a d t h e m .

I P R I N T " [ H o l d d o w n t h S H I F T k e a n p r e s s C L R / H O M E ] "E P R I N T " C H O O S E A I T E M F R O M T H I S L I S T "3 P R I N T " P R E S S T H F U N C T I O N K E Y S N E X T T T H

K E Y B O A R D "A P R I N T " F 1 - - T H E Y E A R O T H F I R S T M O O N L A N D I N G "5 P R I N T " F 3 - - T H E H E I G H T O T H E I F F E L T O W E R "b P R I N T " F 5 - - T H E S P E E D O L I G H T "? P R I N T " F 7 - T H E T E M P E R A T U R E A W H I C H W A T E R B O I L S "f l G E C $ : I F C " T H E N f l R I C " [ P r e s s f k e y ] " T H E N P R I N T " l ^ b R "1 D I C $ " [ f 3 ] " T H E N P R I N T " R f l < F E E T "1 1 I C " [ f 5 ] " T H E N P R I N T " l f l b , E f l E M I L E S P E

S E C O N D "1 E I F C $ " [ f 7 ] " T H E N P R I N T " E 1 E D E G R E E S F A H R E N H E I T "1 3 P R I N T " P R E S S A N Y K E Y T C O N T I N U E "I A D G E T C $ I F C $ " T H E N I A 1 5 G O T O I I t h i s e x a m p l e , l i n e 1 f i r s t c l e a r s e v e r y t h i n g o f t h v i d e o s c r e e n . L i n e s

2 a n 3 g i v e t h e i n s t r u c t i o n s t c h o o s e a i t e m f r o m t h l i s t a n p r e s s t h a p p r o p r i a t e f u n c t i o n k e y . L i n e s 4 t h r o u g h 7 0 P R I N T t h m e n u . I l i n e 8 0 ,

p a u s e i s e u w i t h G E T , a i t h p r e v i o u s e x a m p l e .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 90/318

G e t t i n g M o r e I n f o r m a t i o n 7

( I y o n o t i c e d , t h e r e i s o m e t h i n g m i s s i n g f r o m l i n e s 8 a n 1 4 0 . I n s t e a do s a y i n g G O T O 8 0 , l i n e 8 o n l y s a y s I F C $ " T H E N 8 0 T h e c o m p u t e r i s m a r t e n o u g h t k n o w t h a t a n n u m b e r a f t e r T H E N i a l w a y s t h l i n e n u m b e ri s h o u l d G O T O . )

I l i n e 9 0 y o c a s e h o t h f u n c t i o n k e y s w o r k . N o r m a l l y , n c h a ra c t e r s a p p e a r o t h s c r e e n w h e n f u n c t i o n k e i p r e s s e d . B u w h e n y o t y p e a q u o t e m a r k f i r s t , y o w i l l s e u n i q u e c h a r a c t e r f o e a c h o n y o t y p e . F o k e y s a n f y o u ' l l s e r e v e r s e d b o w i t h h o r i z o n t a l l i n e t h r o u g hi t I y o p r e s s f a n f y o u ' l l s e s i m i l a r b o d i v i d e d w i t h v e r t i c a l l i n e .W h e n t h c o m p u t e r s e e s t h e s e c h a r a c t e r s i s t a t e m e n t s l i k e l i n e s 9 t 1 2 0 ,i t r e a t s t h e f u n c t i o n s k e y s j u s t l i k e a n o t h e r k e y .

W h e n f u n c t i o n k e i p r e s s e d , t h e p r o g r a m P R I N T s t h a p p r o p r i a t ei n f o r m a t i o n — t h e y e a r o t h m o o n l a n d i n g , t h e h e i g h t o t h E i f f e l t o w e r ,e t c . — t h e n i p a u s e s a g a i n a n w a i t s . T h e n t h i n s t r u c t i o n t P R E S S A N K E T O C O N T I N U E i P R I N T e d . P r e s s i n g a n k e w i l l s t a r t t h p r o g r a mo v e r a g a i n w i t h t h G O T O i t h l a s t l i n e .Y o c a G E n u m b e r s a w e l l a o t h e r c h a r a c t e r s b u s i n g a n u m e r i cv a r i a b l e n a m e , b u i i s l i g h t l y m o r e d i f f i c u l t . S i n c e t h w a w t e l l t h c o m p u t e r t w a i t u n t i l k e i p r e s s e d i t l o o k f o n u l l s t r i n g ( " ) w c a n n o t u s t h i s m e t h o d f o n u m b e r s . S t r i n g s a n n u m b e r s d o n ' t m i x , r m e m b e r ? S o y o m u s t u s I t t e s t f o t h r e s u l t s o e a c h p o s s i b l e n u m b e rt h a t y o a r l o o k i n g f o r .

I P R I N T " C H O O S E N U M B E R B E T W E E N A N f l E G E A : I F A < O A > f i T H E N E I l i n e 2 0 t h t e s t i m a d e t s e w h e t h e r t h n u m b e r p r e s s e d i l e s s

t h a n O g r e a t e r t h a n 8 . I f n n u m b e r i p r e s s e d , t h e p r o g r a m a s s u m e s t h a tt h v a l u e o i 0 S i n c e 0 i l e s s t h a n 5 i r e t u r n s t t h b e g i n n i n g o t h l i n e a n t r i e s t G E a g a i n u n t i l p r o p e r n u m b e r k e i p r e s s e d .

F O t h N E X T W o r d s . . .Y o u ' v e s e e n h o y o c a u s G O T O t m a k e c o m p u t e r p r o g r a m l o o p

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

T h e r e a r w a y s t c o n t r o l t h e n u m b e r o t i m e s p r o g r a m g o e s t h r o u g hl o o p . T h s i m p l e s t i b u s i n g a l o o p w i t h t h w o r d s F O a n N E X T .

I F O T E E P R I N T " T H I S I M C O M M O D O R E C O M P U T E R "3 N E X TT h i s s h o r t p r o g r a m i a l m o s t l i k e t h f i r s t p r o g r a m i t h i s b o o k . W h e r e

t h o r i g i n a l p r o g r a m t o l d t h c o m p u t e r t P R I N T t h s e n t e n c e T H I S I M C O M M O D O R E C O M P U T E R u n t i l y o p r e s s e d t h R U N / S T O P k e y , t h i s n e v e r s i o n P R I N T s i o n l y t w e n t y t i m e s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 91/318

7 5 — P r o g r a m m i n g — T h e B i T e

H o d o e s i w o r k ?I w a y , F O i l i k e L E ( b u t m u c h m o r e i m p o r t a n t ) . I d e f i n e s

n u m e r i c v a r i a b l e , i n t h i s c a s e n a m e d I I t h e n t e l l s t h c o m p u t e r t f i r s tp l u g i t h n u m b e r f o I W h e n t h c o m p u t e r s e e s t h w o r d N E X T , i g o e sb a c k t t h l i n e w i t h F O i i a n a d v a n c e s t h v a l u e o t t h N E X Tn u m b e r , i t h i s c a s e 2 t h e n 3 a n s o n T h i s l o o p i n g c o n t i n u e s u n t i l t h v a r i a b l e i t h F O s t a t e m e n t r e a c h e s t h n u m b e r o t h o t h e r s i d e o T O

T p r o v e t h a t t h v a r i a b l e n a m e d I i a d v a n c i n g , s u b s t i t u t e n e l i n ef o l i n e 2 i t h e x a m p l e .

2 P R I N T I " T H I S I M C O M M O D O R E C O M P U T E R "I w i l l n u m b e r e a c h l i n e e v e r y t i m e i i P R I N T e d o t h s c r e e n , u s i n g

t h v a l u e o I U s i n g t h s a m e i d e a , y o c a u s t h v a r i a b l e ' s v a l u e f o s o m e t h i n g

m e a n i n g f u l . T h f o l l o w i n g p r o g r a m P R I N T s m u l t i p l i c a t i o n t a b l e .I P R I N T " [ p r e s s S H I F T a n G L R / H O M E k e y ]

M U L T I P L I C A T I O N T A B L E F O I f l "E F O T E 3 P R I N T I " T I M E S I f E Q U A L S " ; I * l f l4 D N E X T IY o c a s e b t h i s e x a m p l e t h a t t h e v a r i a b l e I i u s e d b o t h a t h n u m b e r

t h a t 1 i m u l t i p l i e d b y , a s w e l l a t c a l c u l a t e t h n e c e s s a r y r e s u l t s , 1 * 1 8 .T h e s e k i n d s o F O R / N E X T l o o p s c a n b e w r i t t e n i n s i d e e a c h o t h e r . T h i s

i c a l l e d " n e s t i n g " t h l o o p s . ( T h i n k o a s k i n g s o m e o n e t c o u n t t t e n , t e t i m e s . T h a t ' s a n e s t e d l o o p . ) T h e y a r e u s u a l l y u s e d w h e n o n v a r i a b l e m u s ta d v a n c e i n d e p e n d e n t l y o a n o t h e r . W c a n m o d i f y t h a b o v e p r o g r a m t P R I N T a l t h e m u l t i p l i c a t i o n t a b l e s b e t w e e n a n 1 0 j u s t b a d d i n g a n o t h e rF O R / N E X T l o o p .

I F O T 1 D 5 P R I N T " [ p r e s s S H I F T a n C L R / H O M E k e y ]

M U L T I P L I C A T I O N T A B L E F O R " ;3 F O J = T E A P R I N T J ; " T I M E S " ; I ; " E Q O A L S " ; J * 5 N E X Tt P R I N T " P R E S S A N K E T C O N T I N U E "7 G E C $ : I F C " T H E N 7 f l N E X TT h e s e n e s t e d l o o p s m a l o o k b i c o n f u s i n g , b u t h e y r e a l l y a r e n ' t . I

l i n e 1 0 y o a r s e l e c t i n g t h n u m b e r o m u l t i p l i c a t i o n t a b l e s y o w a n t t h c o m p u t e r t P R I N T — y o u w a n t 9 o t h e m . I s e t s u t h f i r s t ( o o u t s i d e )l o o p , F O T 1 0 0 . L i n e 2 P R I N T s " h e a d l i n e " f o e a c h o n e . W h e ni 2 t h c o m p u t e r w i l l P R I N T t h l i n e M U L T I P L I C A T I O N T A B L E F O R , a n t h e n t h n u m b e r 2

L i n e 3 0 s e t s u t h s e c o n d ( o o u t s i d e ) l o o p , F O J T 2 0 T h i s w i l lb t h r a n g e o e a c h t a b l e . L i n e 4 P R I N T s e a c h l i n e , n u m b e r ( J T I M E S

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 92/318

F o t h N E X T W o r d s . . 7

t h n u m b e r o t h t a b l e ( I " E Q U A L S , " a n d f i n a l l y t h r e s u l t , t i m e s I L i n e5 i t h e n o t h s e c o n d l o o p .

I l i n e s 6 a n 7 0 w u s t h l i t t l e t r i c k u s i n g G E t p a u s e t h p r o g r a m .T h i s k e e p s t h t a b l e s o t h e s c r e e n s o t h a t t h e y c a n b e r e a d . I t h i s G E l i n ew a s n ' t h e r e , t h t a b l e s w o u l d P R I N T s q u i c k l y y o u ' d b a r e l y b a b l e t t e l lt h e m a p a r t .

T h l a s t l i n e , l i n e 8 0 , i t h e n o t h f i r s t l o o p . N E X T t e l l s t h c o m p u t e rt P R I N T a n o t h e r t a b l e , t h i s t i m e f o t h n e x t n u m b e r .

t h i r d l o o p c a b a d d e d t t h e " m u l t i p l i c a t i o n t a b l e " p r o g r a m t r e p l a c e t h e p a u s e s e c t i o n . R e m o v e l i n e s 6 a n 7 f r o m t h p r o g r a m . ( T y p ee a c h l i n e n u m b e r a n p r e s s R E T U R N . ) N o a d t h i s n e l i n e :

t F O T 1 D D D : N E X TN o t h e r e a r e t h r e e s e p a r a t e l o o p s w o r k i n g i n s i d e o n a n o t h e r . A y o

c a s e e , t h i s i a e m p t y l o o p t h a t s i m p l y i n c r e a s e s t h v a l u e o e a c h t i m ei c o m e s t N E X T K I t p u r p o s e ( c o m m o n o n u s i n g F O R / N E X T l o o p s ) i s i m p l y t a d d e l a y t t h p r o g r a m . N o y o h a v e a b o u t t w s e c o n d sb e t w e e n e a c h m u l t i p l i c a t i o n t a b l e t h a t i P R I N T e d . I i h a r d l y e n o u g h t i m et r e a d e a c h o n e , b u i k e e p s t h p r o g r a m a d v a n c i n g s l o w l y w i t h o u t t h n e e d t p r e s s k e y .

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

B t h w a y , y o w i l l n o t i c e t h a t t h v a r i a b l e s I J a n a r u s e d q u i t eo f t e n i o t h e r B A S I C p r o g r a m s w i t h F O R / N E X T l o o p s i t h e m . T h e s e l e t t e r sh a v e n p a r t i c u l a r m e a n i n g b t h e m s e l v e s . ( I n d e e d , a n l e g i t i m a t e v a r i a b l en a m e c a n b e u s e d . ) T h e s e a r e , h o w e v e r , p a r t o p r o g r a m m i n g l o r e t h a t h a s e p a r a t e d t h e m f r o m o t h e r v a r i a b l e n a m e s . V a r i a b l e s i l o o p s a r e " i n c r em e n t e d , " o m o v e d u b o n e , h e n c e t h l e t t e r I I i t h o u g h t t h a t a n w e r e u s e d f o t h i s p u r p o s e o n l y b e c a u s e t h e y f o l l o w e d i t h a l p h a b e t .

I i i m p o r t a n t t r e m e m b e r f e t h i n g s w h e n u s i n g F O R / N E X T l o o p s .F i r s t , k e e p t r a c k o w h a t y o a r d o i n g . Y o c a b e c o m e c o n f u s e d q u i c k l y ,e s p e c i a l l y w h e n u s i n g m o r e t h a n t w l o o p s i n s i d e e a c h o t h e r . S e c o n d , t r y t ok e e p G O T O a n o t h e r s t a t e m e n t s t h a t j u m p a r o u n d i n s i d e t h p r o g r a m o u o t h l o o p s . U s i n g t h e s e i a e a s y w a t g e c o m p l e t e l y t a n g l e d i y o u rw o r k .

w o r d t h a t i u s e d s o l e l y w i t h F O R / N E X T i S T E P . I t e l l s t h l o o p h o b i o S T E P t t a k e e a c h t i m e n e w n u m b e r i u s e d f o t h v a r i a b l e .

I F O T E S T E PE P R I N T I " T H I S I M C O M M O D O R E C O M P U T E R "3 N E X TH e r e , S T E P m e a n s t h a t t h e c o m p u t e r s h o u l d a d v a n c e b n u m b e r s

i n s t e a d o e a c h t i m e . W h e n y o R U t h i s e x a m p l e y o u ' l l s e t h a t i n u m b e r st h l i n e s 1 3 5 , 7 , a n s o n T r t h s a m e e x a m p l e s u b s t i t u t i n g d i f f e r e n tn u m b e r s a f t e r S T E P .

Y o c a a l s o S T E P b a c k w a r d t h r o u g h l o o p . C h a n g e l i n e 1 a b o v e t t h i s :

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 93/318

8 0 5 — P r o g r a m m i n g — T h e B i T e

I F O = E T S T E P - 1T h i s n e g a t i v e n u m b e r ( - 1 ) w i l l n u m b e r e a c h l i n e i d e s c e n d i n g o r d e r ,

f r o m 2 t 1

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RN E X T W I T H O U T F O E R R O R

U s i n g t h w o r d N E X T w i t h o u t o p e n i n g l o o p w i t h F O p r o d u c e st h i s m e s s a g e . T h i s w i l l h a p p e n i N E X T i u s e d w i t h t h w r o n gv a r i a b l e .I F O T I E N E X TN E R R O R m e s s a g e w i l l b g i v e n i t h e r e v e r s e h a p p e n s — F O R i u s e d w i t h o u t N E X T . I n s t e a d , t h l o o p w i l l s i m p l y n o t c o n t i n u e a i s h o u l d .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

G O S U B a n R E T U R NG O T O i a s t r a i g h t f o r w a r d B A S I C w o r d . I m e a n s t h a t t h p r o g r a m

s h o u l d G T a n o t h e r l i n e . G O S U B i a l m o s t a s i m p l e t u n d e r s t a n d . L i k eG O T O , i i u s e d w i t h l i n e n u m b e r a n d i r e c t s t h p r o g r a m t t h a t l i n e .U n l i k e G O T O , G O S U B a l s o k e e p s t r a c k o f w h e r e i w a i t h p r o g r a m a n dc a R E T U R N t t h a t s p o t a f t e r i i f i n i s h e d d o i n g w h a t e v e r i s h o u l d . T h w o r d G O S U B , i t s e l f , i s c o n t r a c t i o n , o s h o r t e n i n g , o f t h e w o r d s G t t h S U B r o u t i n e .

S u b r o u t i n e s a r a e s s e n t i a l p a r t o c o m p u t e r p r o g r a m m i n g . A t h n a m ei m p l i e s , s u b r o u t i n e s a r r o u t i n e s , o s h o r t p r o g r a m s , w i t h i n p r o g r a m s . E a c hs u b r o u t i n e u s u a l l y a c c o m p l i s h e s s m a l l t a s k t h a t m u s t b d o n e o v e r a n o v e r . T a v o i d w r i t i n g B A S I C l i n e s m a n y d i f f e r e n t t i m e s i d i f f e r e n t p l a c e st h r o u g h o u t p r o g r a m , t h e y a r w r i t t e n a s u b r o u t i n e o n l y o n c e . O r ,s u b r o u t i n e m a b m a j o r p o r t i o n o p r o g r a m w r i t t e n t h i s w a f o t h s a k e o o r g a n i z a t i o n .

W h e n e v e r t h c o m p u t e r e n c o u n t e r s a G O S U B i p r o g r a m , i m o v e s t t h f i r s t l i n e o t h s u b r o u t i n e a n d o e s i t j o b . W h e n i s e e s t h w o r d R T U R N , i d o e s j u s t t h a t , h o p p i n g b a c k t w h e r e i w a e v e n i t h a t w a i t h m i d d l e o a p r e v i o u s l i n e . ( T h e B A S I C w o r d R E T U R N h a a b s o l u t e l yn o t h i n g t d w i t h t h R E T U R N k e o t h k e y b o a r d — a n o t h e r c a s e f o c a l l i n g t h k e E N T E R . )

Y o c a p r o b a b l y s e e t h a t G O S U B i p o t e n t i a l l y p o w e r f u l c o m m a n d ,u s e f u l i w a t h a t G O T O c o u l d n e v e r b e

U s i n g m o s t o w h a t y o u ' v e r e a d a b o u t ( a n d l e a r n e d , w h o p e ! ) , l e t ' s t a k et h " m e n u " p r o g r a m f r o m t h e s e c t i o n o u s i n g t h w o r d G E a n w r i t e i u s i n g s u b r o u t i n e s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 94/318

G O S U B a n R E T U R N 8

F i r s t , h e r e i t h s u b r o u t i n e t c l e a r t h v i d e o s c r e e n a n P R I N T t h m e n u :

1 D P R I N T " [ H o l d d o w n t h S H I F T k e a n p r e s s C L R / H O M E ] "1 1 P R I N T " C H O O S E A I T E M F R O M T H I S L I S T "1 E P R I N T " P R E S S T H F U N C T I O N K E Y S N E X T T T H K E Y B O A R D "1 3 P R I N T " F l — T H E Y E A R O T H F I R S T M O O N L A N D I N G "1 < P R I N T " F 3 — T H E H E I G H T O T H E I F F E L T O W E R "1 5 P R I N T " F 5 — T H E S P E E D O L I G H T "l b P R I N T " F 7 — T H E T E M P E R A T U R E A W H I C H W A T E R B O I L S "1 7 R E T U R N

T h e s e l i n e s , b t h e m s e l v e s , c l e a r t h e s c r e e n a n P R I N T t h m e n u . T h e yw o u l d r u b t h e m s e l v e s a p r o g r a m i t h e y d i d n o t e n w i t h t h w o r dR E T U R N . ( I y o t r t r u t h s u b r o u t i n e w i t h R E T U R N a t h e n d y o uw i l l g e t a E R R O R m e s s a g e . )

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RR E T U R N W I T H O U T G O S U B

G O S U B a n R E T U R N w o r k t o g e t h e r . T h i s m e s s a g e w i l l a p p e a r i p r o g r a m e n c o u n t e r s R E T U R N w i t h o u t b e i n g t o l d t G O S U B . I

i m o s t o f t e n s e e n w h e n p r o g r a m l i n e i c a l l e d w i t h G O T Oi n s t e a d .

I y o n o t i c e , t h a b o v e s u b r o u t i n e e x a m p l e b e g i n s w i t h l i n e n u m b e r1 0 0 , n o l i n e 1 0 H e r e , w a r e t r y i n g t s e p a r a t e i f r o m t h m a i n b o d y o t h

p r o g r a m .A e x p l a i n e d , m o r e u s e f u l s u b r o u t i n e i o n t h a t s i m p l i f i e s p r o g r a m

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

E D G E C $ : I F C $ = " " T H E N E D E 1 R E T U R NN o w h a v e t w s u b r o u t i n e s : S u b r o u t i n e 1 0 t P R I N T t h m e n u a n

s u b r o u t i n e 2 0 t G E a c h a r a c t e r o r k e y . K n o w i n g t h l o c a t i o n s o t h e s et w o , w c a w r i t e t h m a i n b o d y o t h p r o g r a m . T o g e t h e r t h e y s h o u l d l o o kl i k e t h i s :

I G O S U B 1 D E G O S U B E D 3 I C " [ P r e s s f k e y ] " T H E N P R I N T " I R f c R "A Q I F C $ " [ f 3 ] " T H E N P R I N T " R f l ^ F E E T "5 I C " [ f 5 ] " T H E N P R I N T " l f l b , E f l E M I L E S P E S E C O N D "

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 95/318

8 5 — P r o g r a m m i n g — T h e B i T e

t I C " [ f 7 ] " T H E N P R I N T » S 1 2 D E G R E E S F A H R E N H E I T "7 P R I N T " P R E S S A N Y K E Y T C O N T I N U E "f l G O S U B E D R G O T O I

1 D P R I N T " [ H o l d d o w n t h S H I F T k e a n p r e s s C L R / H O M E ] "1 1 P R I N T " C H O O S E A I T E M F R O M T H I S L I S T "1 E P R I N T " P R E S S T H F U N C T I O N K E Y S N E X T T T H

K E Y B O A R D "1 3 P R I N T " F l — T H E Y E A R O T H F I R S T M O O N L A N D I N G "1 < P R I N T " F 3 — T H E H E I G H T O F T H E E I F F E L T O W E R "1 5 P R I N T " F 5 — T H E S P E E D O L I G H T "i b P R I N T " F 7 — T H E T E M P E R A T U R E A W H I C H W A T E R B O I L S1 7 R E T U R NE D G E C $ : I F C " T H E N E D E 1 R E T U R N

T h i s p r o g r a m R U N s e x a c t l y t h e s a m e a s t h e p r e v i o u s v e r s i o n o f " m e n u , "b u i i o r g a n i z e d d i f f e r e n t l y . T h m o s t h e l p f u l c h a n g e i t h a t t h e p r o g r a mG O S U B s t l i n e 2 0 e v e r y t i m e t h G E p a u s e i u s e d .

T h e r e i o n p o t e n t i a l d a n g e r i i n c l u d i n g s u b r o u t i n e s i p r o g r a m s . T h s u b r o u t i n e s m u s t b c l e a r l y s e p a r a t e d f r o m t h m a i n b o d y o t h p r o g r a mi t s e l f . T r R U N n i n g t h " m e n u " p r o g r a m a f t e r t a k i n g o u l i n e 9 0 ( T y p e t h l i n e n u m b e r a n p r e s s R E T U R N . ) Y o w i l l s e a E R R O R m e s s a g e a n t h p r o g r a m w i l l n o R U c o r r e c t l y .

T h i s i b e c a u s e t h c o m p u t e r d o e s n ' t k n o w w h e r e t s t o p . I n s t e a d o u n d e r s t a n d i n g t h a t t h s u b r o u t i n e s b e g i n a l i n e 1 0 0 , i j u s t g o e s o n a n d t r i e st o t r e a t t h e m a i t h e y w e r e m o r e o t h p r o g r a m .

T h b e s t w a t s e p a r a t e t h e m a i n b o d y o p r o g r a m f r o m i t s u b r o u t i n e si t u s t h w o r d E N D . T h i n k o i a s e t t i n g u a f e n c e b e t w e e n t h p r o g r a ma n s u b r o u t i n e s .

R D E N DN o w , t h " m e n u " p r o g r a m w i l l r u l o g i c a l l y , a l t h o u g h i w i l l n o w o r k

c o n t i n o u s l y a i d i b e f o r e . E N D , i y o r e c a l l , i n o u s u a l l y n e c e s s a r y i C o m m o d o r e B A S I C . T h i s i t h e e x c e p t i o n , b u r e a l p r a c t i c a l u s o t h w o r d .

D s u b r o u t i n e s j u s t g i v e u a n o t h e r w a t o r g a n i z e o u p r o g r a m s ? N o I a d d i t i o n t h e l p i n g k e e p t h n u m b e r o l i n e s i p r o g r a m t m i n i m u m ,G O S U B c a a l s o b e t h o u g h t o f a s w a t m a k e t h e m m o r e r e a d a b l e . E a c hs u b r o u t i n e i e a s i l y i d e n t i f i a b l e ; i s t a r t s w i t h t h l i n e n u m b e r f o l l o w i n gG O S U B a n e n d s w i t h R E T U R N .

B A S I C p r o g r a m s , i f a c t , a r o f t e n c r i t i c i z e d f o b e i n g d i f f i c u l t t r e a db a n y o n e o t h e r t h a n t h p r o g r a m m e r s w h w r o t e t h e m . O n c e i w h i l e ,i t ' s e v e n p o s s i b l e t w r i t e a p r o g r a m y o u r s e l f , t h e n n o b a b l e t r e a d i s i m o n t h s o r y e a r l a t e r . U s i n g s u b r o u t i n e s c a h e l p s o l v e t h i s p r o b l e m . W r i t i n gs u b r o u t i n e s w h e r e v e r p o s s i b l e a n p r a c t i c a l i s o m e t i m e s c a l l e d s t r u c t u r e d

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 96/318

C l o s i n g R E M a r k 8

p r o g r a m m i n g ( b e c a u s e i s u p p o s e d l y g i v e s s t r u c t u r e t p r o g r a m ) a n m a n yp r o g r a m m e r s b e l i e v e t h i s i g o o d B A S I C s t y l e .

C l o s i n g R E M a r kM a k i n g p r o g r a m s r e a d a b l e i g o o d g o a l f o p r o g r a m m e r s , e s p e c i a l l y

f i r s t - t i m e r s . G e t t i n g i n t o g o o d w r i t i n g h a b i t s i a i m p o r t a n t i B A S I C a i i i E n g l i s h . O n e w o r d i B A S I C , i f a c t , a l l o w s y o t i n c l u d e E n g l i s h ( o a n o t h e r l a n g u a g e t h a t c a n b e t y p e d f r o m t h k e y b o a r d ) i y o u r p r o g r a m s .T h w o r d i R E a n s t a n d s f o R E M a r k . S o m e p e o p l e t h i n k o i a t h w o r d R E M e m b e r , w a o R E M i n d i n g t h e m s e l v e s t h a t t h i s i n o t e . A l m o s ta n c o m m e n t c a b w r i t t e n i n t o p r o g r a m , a l o n g a i i s e p a r a t e d b R E M .

I R E M T H I S E N T I R E L I N E I R E M A R KT h w o r d R E c a a l s o b e u s e d a t h e n o p r o g r a m l i n e w h e n i i

s e p a r a t e d w i t h t h B A S I C p u n c t u a t i o n m a r k , t h c o l o n ( : ) . E v e r y t h i n g b e f o r et h c o l o n w i l l w o r k n o r m a l l y , a n w h e n t h c o m p u t e r s e e s R E M , i w i l li g n o r e a n c o m m e n t w h i c h f o l l o w s .

I P R I N T " R E M S A R A L W A Y S S E P A R A T E D B C O L O N S " : R E MJ U S T L I K E A N O T H E R W O R D

O n p e c u l i a r i t y o f C o m m o d o r e B A S I C i s i t s l i m i t a t i o n o u s i n g o n l yu n S H I F T e d l e t t e r s a n d n u m b e r s a f t e r R E M . Y o c a n d e m o n s t r a t e t h p r o bl e m s c a u s e d b s h i f t e d l e t t e r s b t y p i n g t h i s l i n e :

I R E [ p r e s s S H I F T a n A B C D E F G H I ]T y p e L I S T a n l o o k a t h l i n e .I R E A T N P E E K L E N S T R $ V A L A S C C H R $ L E F T $ R I G H T $I d o e s n ' t l o o k a n y t h i n g l i k e t h w a y o o r i g i n a l l y w r o t e t h R E M a r k ,

d o e s i t ( T h e c o m p u t e r m i s i n t e r p r e t s t h S H I F T e d l e t t e r s a f t e r R E a B A S I Cw o r d s . ) T h i s w o n ' t b e p r o b l e m a l o n g a y o r e m e m b e r t j u s t s t i c k t ou s i n g t h k e y b o a r d w i t h o u t S H I F T i n g . T h i s m e a n s u p p e r c a s e o n l y i t h g r a p h i c s m o d e / a n d l o w e r c a s e o n l y i t h t y p e w r i t e r m o d e .

J u s t f e s h o r t y e a r s a g o , c o m p u t e r m e m o r y c h i p s w e r e v e r y e x p e n s i v ea n o l i m i t e d c a p a c i t y . P e r s o n a l c o m p u t e r s c a m e e q u i p p e d w i t h r e l a t i v e l ys m a l l a m o u n t s o m e m o r y , a n d p r o g r a m m e r s w e r e o f t e n f o r c e d t u s e a c hb y t e c a r e f u l l y . S i n c e t h c o m m e n t s b e h i n d R E s t a t e m e n t s c a e a u l o t so m e m o r y ( o n e b y t e f o e a c h c h a r a c t e r , l e t t e r o n u m b e r ) t h e y w e r e n ' t u s e da f r e q u e n t l y a t h e y p r o b a b l y s h o u l d h a v e b e e n .

A l t h o u g h t h i s c o n s e r v a t i o n o m e m o r y i s s t i l l i m p o r t a n t f o v e r y l o n gp r o g r a m s , i i l e s s o a i s s u e t o d a y . T h C o m m o d o r e 6 f a m i l y o c o m p u t e r sa l l o w s y o t u s a l m o s t f i v e t i m e s t h B A S I C m e m o r y o t h e o r i g i n a l C o m o d o r e P E T . W i t h t h i s i n c r e a s e i c a p a c i t y c o m e s t h o p p o r t u n i t y t u s

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 97/318

8 4 5 — P r o g r a m m i n g — T h e B i T e

R E M a r k s m o r e o f t e n . I d o i n g s o y o m a m a k e y o u r p r o g r a m e a s i e r t u n d e r s t a n d f o o t h e r s a n p o s s i b l y e v e n y o u r s e l f .

R e m e m b e r , c o m p u t e r s a r m e a n t t m a k e b u l i v e s l e s s c o m p l i c a t e d ,n o m o r e . W h a t w o u l d w b l i k e i v a l u a b l e t e x t b o o k s , r e f e r e n c e m a n u a l s ,a n e n c y c l o p e d i c w o r k s w e r e i m p o s s i b l e t r e a d a n u n d e r s t a n d ? K e e p t h i si m i n d e a c h t i m e y o w r i t e c o m p u t e r p r o g r a m .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 98/318

P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e sI n f o r m a t i o n

I t ' s e a s y t s t o r e i n f o r m a t i o n i t h c o m p u t e r . ( Y o u a l r e a d y k n o w a b o u tv a r i a b l e s . ) I t ' s a n o t h e r m a t t e r t o r g a n i z e t h a t i n f o r m a t i o n , c h a n g e i t o b a b l e t g e i o u o f t h e m a c h i n e . T h a t i w h a t t h i s s e c t i o n i a l a b o u t .

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

T h c o m p u t e r s o t h C o m m o d o r e 6 f a m i l y a r e w e l l s u i t e d t t h e s et a s k s . T h e i r a m p l e m e m o r y i u s u a l l y e n o u g h f o m o s t p e r s o n a l i n f o r m a t i o nn e e d s . B u t , f o r s e r i o u s , p r o f e s s i o n a l u s e s , m o s t i n f o r m a t i o n s y s t e m s u s t h f l o p p y d i s k a s a e x t e n s i o n o t h a t m e m o r y . ( T h e c a p a c i t y o t h d i s k i m o r et h a n t r i p l e t h a t o t h e c o m p u t e r ' s . )

I t h i s s e c t i o n , w e ' l l l o o k a h o t h c o m p u t e r , t h f l o p p y d i s k d r i v e ,a n t h c a s s e t t e r e c o r d e r o r g a n i z e a n s t o r e i n f o r m a t i o n a f i l e s . Y o u ' l l b i n t r o d u c e d t n e k i n d s o v a r i a b l e s , t o o . S e v e r a l w o r d s o B A S I C a r u s e d

8

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 99/318

8 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

e s p e c i a l l y f o i n f o r m a t i o n h a n d l i n g . T h e y a r D A T A a n R E A D , D I M , P R I N T # ,I N P U T # , G E T # , O P E N , C L O S E , R E S T O R E , a n d C L R . H o a r t h e s e i n f o rm a t i o n - h a n d l i n g p r o g r a m s , o d a t a b a s e s a t h e y ' r e k n o w n , w r i t t e n ? Y o u ' l lu n d e r s t a n d t h e f u n c t i o n s o f s u c h p r o g r a m s a n d s e h o t h e y a r d e s i g n e df r o m s i m p l e d e m o n s t r a t i o n p r o g r a m t h a t y o c a e n t e r i n t o y o u r o w c o m p u t e r a n u s e .F i n a l l y , y o u ' l l l e a r n a b o u t f e o t h a d v a n t a g e s t h a t c o m m e r c i a l l ya v a i l a b l e d a t a b a s e p r o g r a m s o f f e r , a n w h a t t l o o k f o w h e n c o n s i d e r i n gt h e s e .

A n o t h e r K i n d o V a r i a b l eI y o u r e m e m b e r , v a r i a b l e s a r n a m e s t h a t i d e n t i f y i n f o r m a t i o n s t o r e d

i n s i d e t h e c o m p u t e r . L o o k a t h i s l i s t :A " A U T O M O B I L E S "B $ " B I R D S "C " C I T I E S "D $ = " D O G S "

W k n o w t h a t i i l i s t o s t r i n g v a r i a b l e s b e c a u s e e a c h i l e t t e rf o l l o w e d b d o l l a r s i g n . E a c h v a r i a b l e s t a n d s f o g r o u p o t h i n g s — A $ i f o a u t o s , B f o b i r d s , e t c . U n d e r e a c h o t h e s e v a r i a b l e n a m e s w m i g h tw a n t t s t o r e a d d i t i o n a l i n f o r m a t i o n : T y p e s o c a r s , b i r d s a n d o g s , o t h n a m e s o c i t i e s . B u t h e r e i n w a t s t o r e m o r e d a t a b e h i n d t h e s e b e c a u s ew e ' v e a l r e a d y u s e d t h n a m e s A $ B $ C $ a n d D $

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

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

A B 2 C 1 O o oT h e s e e x a m p l e s m e a n " t h e s i x t h t h i n g n a m e d A , " t h e t w e n t y - f i f t h t h i n g

n a m e d B , a n " t h e o n e - t h o u s a n d t h t h i n g n a m e d C . ( T h e o p p i o s i t e o s u b s c r i p t i s u p e r s c r i p t , w h i c h u s u a l l y i n d i c a t e s n u m b e r s m u l t i p l i e d b t h e m s e l v e s , l i k e 3 2 o t h n u m b e r s q u a r e d . ) T h e c o m p u t e r c a o r g a n i z ei n f o r m a t i o n w i t h t h e s e s u b s c r i p t s ; b u i c a n ' t r e c o g n i z e s u b s c r i p t s w r i t t e nw i t h n u m b e r u n d e r n e a t h t h e v a r i a b l e n a m e , s t h e y m u s t b w r i t t e n l i k et h i s :

A ( b ) B ( 2 5 ) C ( 1 D D D )T h p a r e n t h e s e s — ( ) — i n d i c a t e w h i c h v a r i a b l e s a r s u b s c r i p t e d o r i d e n

t i f i e d b y n u m b e r . W h e n p r o g r a m m e r s s p e a k a b o u t v a r i a b l e s l i k e t h e s e t h e yu s u a l l y u s t h w o r d " s u b " f o s u b s c r i p t . S A ( 6 ) b e c o m e s " s u 6 a n B ( 2 5 ) i s p o k e n a " s u 2 5 . "

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 100/318

A n o t h e r K i n d o V a r i a b l e 8

T r i u m p h H e r a l dM o r r i s M i n o rS u n b e a m A l p i n e

4 C i t r o e n C H o n d a C i v i cB u i c k C e n t u r yN a s h R a m b l e rN i s s a n S e n t r aJ e e p

1 C h e v e t t eA b o v e i l i s t o a u t o m o b i l e s , n u m b e r e d f r o m t 1 0 W c a c a l l e a c h

o t h e s e i n d i v i d u a l n a m e s A i w u s s u b s c r i p t s . T h p o s i t i o n o t h l i s tw i l l r e p r e s e n t i t s u b s c r i p t n u m b e r . W c o u l d m a k e A $ ( 7 ) e q u a l " N a s h R a b l e r " a n A $ ( 2 ) m e a n " M o r r i s M i n o r / '

S u b s c r i p t e d v a r i a b l e s c a n b e s t r i n g s , l i k e a b o v e , o r n u m b e r s , a n t h e yf o l l o w t h e r u l e s g o v e r n i n g v a r i a b l e s s t a t e d e a r l i e r ( S e e C h a p t e r 5 )

T y p e i n t h i s e x a m p l e t d e m o n s t r a t e s u b s c r i p t e d v a r i a b l e s t o y o u r s e l f :I A $ = " A O T O M O B I L E S "E A $ ( 1 ) " T R I U M P H H E R A L D "3 A $ ( 5 ) " M O R R I S M I N O R "A A $ ( 3 ) = " S U N B E A M A L P I N E "5 A $ ( 4 ) " C I T R 0 E N C V b A $ ( 5 ) " H O N D A C I V I C "7 A $ ( b ) = " B U I C K C E N T U R Y "f l A $ ( 7 ) " N A S H R A M B L E R "R A $ ( f i ) " N I S S A N S E N T R A "1 D A $ ( q ) = " J E E P "1 1 A $ ( 1 D ) " C H E V E T T E "1 E P R I N T " [ C L R ] "1 3 P R I N T A 1 A F O T I 1 5 P R I N T A $ ( I )

N E X T IT h i s p r o g r a m p l u g s i t h w o r d " A U T O M O B I L E S " f o t h e v a r i a b l e n a m e d

A $ t h e n , f r o m A $ ( l ) t A $ ( 1 0 ) , p u t s o u l i s t i e a c h o t h n u m b e r e d A $ v a r i a b l e s . N o t i c e t h a t A i n o t h s a m e a A $ ( l ) . W i t h o u t s u b s c r i p t n u m b e r ,A s t a n d s a l b i t s e l f a n i r e l a t e d t A $ ( l ) o a n o t h e r A $ ( ) v a r i a b l e i n a m e o n l y .

T h s u b s c r i p t n u m b e r s i n s i d e t h e p a r e n t h e s e s c a b e a n y p o s i t i v e n u m b e rb e t w e e n ( z e r o ) a n 3 2 7 6 7 . T h p a r e n t h e s e s c a a l s o h o l d n u m e r i c v a r i a b l e .

L i n e 1 4 s e t s u s i m p l e l o o p , F O 1 T 1 0 t h e n P R I N T S e a c h o t h a u t o n a m e s a c c o r d i n g t t h e i r s u b s c r i p t n u m b e r .

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 101/318

8 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

I F O T I E A ( I ) = I + E 53 N E X TT h l o o p F O T 1 p u t s t h n u m b e r s t h r o u g h 1 i n t o t h s u

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

P R I N T ( o ? A ( 5 )T h a n s w e r s h o u l d b 3 0 o w h a t e v e r n u m b e r i i t h p a r e n t h e s e s p l u s

2 5

A D I M V i e wT h a t ' s D I a i D I M e n s i o n . T u s s u b s c r i p t e d v a r i a b l e s , C o m m o d o r e

B A S I C d e m a n d s t h a t y o f i r s t d e t e r m i n e h o w m a n y o t h e m y o w a n t t o u s e .B u w a i t . D i d n ' t w j u s t s u c c e s s f u l l y u s e s u b s c r i p t e d v a r i a b l e s w i t h o u t

t e l l i n g t h c o m p u t e r h o m a n y ?A d t h i s l i n e t t h e a r l i e r p r o g r a m e x a m p l e w i t h t h a u t o n a m e s :1 1 5 A $ ( l l ) " T O Y O T f i T E R C E L "A n c h a n g e l i n e 1 4 t t h i s :1 A F O t 1 N o R U t h p r o g r a m . W h a t h a p p e n s ? Y o s h o u l d s e t h i s E R R O R

m e s s a g e .

? B A D S U B S C R I P T E R R O R I L I N E 1 1 T h e p r o g r a m i r e m i n d i n g u t h a t w m u s t t e l l i h o w m a n y s u b s c r i p t e d

v a r i a b l e s w w i l l b u s i n g . W h n o w ? W h n o b e f o r e ? T h a n s w e r i t h a tC o m m o d o r e B A S I C w i l l l e u u s u t 1 s u b s c r i p t e d v a r i a b l e s n u m b e r e df r o m t 1 b e f o r e w m u s t t e l l i h o w m a n y w i l l b u s e d .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RB A S U B S C R I P T E R R O R

b a s u b s c r i p t i j u s t w h a t i t n a m e i m p l i e s — a s u b s c r i p t n u m b e rt o o b i g f o t h s i z e o t h a r r a y D I M e n s i o n e d . I D I M e n s i o n l i n er e a d s D I A $ ( 1 0 0 ) , f o i n s t a n c e , t h e r e c a n b e n v a r i a b l e n a m e dA $ ( 1 0 1 ) . T h i s E R R O R a l s o h a p p e n s w h e n n D I s t a t e m e n t i u s e da a l a n v a r i a b l e s w i t h s u b s c r i p t n u m b e r s l a r g e r t h a n l a r u s e d . C h e c k v a r i a b l e s u s e d a s u b s c r i p t s f o t h p r o b l e m .

W t e l l t h c o m p u t e r a b o u t t h u s o s u b s c r i p t e d v a r i a b l e s w i t h t h D I s t a t e m e n t . I s t a n d s f o D I M e n s i o n , m e a n i n g t h e x t e n t t o w h i c h w w i l l

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 102/318

D I V i e w 8

n e e d t h v a r i a b l e s . W h e n w u s D I M , i s e t s u a a r r a y , t h a t i s d e f i n i t i o no h o w m a n y v a r i a b l e s t h e r e w i l l b e

I D I f t $ ( l D D )W a r a s k i n g B A S I C t r e s e r v e 1 0 n u m b e r e d p l a c e s f o t h s u b s c r i p t e d

v a r i a b l e n a m e d A $ ( ) . ( R e m e m b e r , z e r o c a n b e u s e d a s u b s c r i p t , t o o . ) W c a u s a f e o t h e s e a w w a n t , b u t n o n e c a b n u m b e r e d o v e r 1 0 0 . T h i si c a l l e d s e t t i n g u a o n e - D I M e n s i o n a l a r r a y . I h a o n l y o n D I M e n s i o nb e c a u s e i i l i s t o s i n g l e v a r i a b l e s l i k e t h i s :

A $ ( l ) , A $ ( 3 ) , A $ ( 3 ) A $ ( 1 D D )A a r r a y c a b s e u w i t h m o r e t h a n o n D I M e n s i o n , t o o .I D I A $ ( 1 D D , S )E a c h v a r i a b l e A $ ( ) n o c a r r i e s t w i n d e p e n d e n t n u m b e r s t o i d e n t i f y i t

T h e r e c a n s t i l l b 1 0 d i f f e r e n t v a r i a b l e s n a m e d A $ ( ) a n n u m b e r e d u t A $ ( 1 0 0 ) , b u f o e a c h o n e , t h e r e c a a l s o b u t m o r e . T h i n k o f t h e p r g r e s s i o n t h i s w a y . T h v a r i a b l e s a r n o n a m e d A $ ( l , 0 ) , A $ ( l , l ) , A $ ( l , 2 ) ,A $ ( l , 3 ) , A $ ( l , 4 ) a n A $ ( l , 5 ) . T h i s a r r a y h a b e c o m e t w D I M e n s i o n a l , w i t hh e i g h t a n w i d t h , i y o w i s h . Y o c a v i s u a l i z e t h l i s t l i k e t h i s :

A $ ( l , 5 ) , A $ ( S , S ) , A $ ( 3 , 5 ) A $ ( 1 D D , 5 )A $ ( l , 4 ) , A $ ( 5 , 4 ) , A $ ( 3 , < ) A $ ( 1 0 D , 4 )A $ ( l , 3 ) , A $ ( 5 , 3 ) , A $ ( 3 , 3 ) A $ ( 1 D D , 3 )A $ ( l , 2 ) , A $ ( 3 , 5 ) , A $ ( 3 , 5 ) A $ ( 1 0 D , 2 )A $ ( l , l ) , A $ ( 2 , l ) , A $ ( 3 , l ) A $ ( 1 D D , 1 )A $ ( 1 , D ) , A $ ( 2 , D ) , A $ ( 3 , D ) A $ ( 1 D D , O )I t h i s s e e m s c o n f u s i n g a f i r s t , d o n ' t b w o r r i e d . T h c o n c e p t o m u l t i -

D I M e n s i o n e d a r r a y s h a s e l u d e d m a n y f i r s t - t i m e p r o g r a m m e r s . T h i s k i n d o a r r a y i u s u a l l y u s e d t g e i n f o r m a t i o n f r o m t a b l e o n u m b e r s b c a l c ul a t i n g t w o m o r e v a r i a b l e s . F o i n s t a n c e , i i c a l c u l a t e d t b 3 a n c o m e s u p a 2 t h e n A $ ( X , Y ) m e a n s A $ ( 3 , 2 ) i n t h e x a m p l e a b o v e .

L e t ' s p u t w o - D I M e n s i o n a l a r r a y t w o r k b m a k i n g t a b l e . T h i f o r m a t i o n o t h t a b l e w i l l c o n s i s t o f m o n t h s , f r o m J a n u a r y t A p r i l , e a c hn u m b e r e d t 4 a n w e e k s o e a c h m o n t h , a l s o n u m b e r e d t 4 F o r e a c hw e e k o e a c h m o n t h , w w i l l n o t e h o m a n y t i m e s w e ' v e u s e d o u r p e r s o n a lc o m p u t e r .

W e e k J a n u a r y ( 1 / 2

2 / 1 93 / 1 34 / 1 5

F e b r u a r y ( 2 1

1

M a r c h ( 3 3 1

A p r i l ( 4 1 2

2

W e e k n u m b e r s a r r e a d d o w n , m o n t h s a c r o s s . W c a s t o r e t h e s e n u b e r s a t w o - D I M e n s i o n a l a r r a y .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 103/318

9 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

I D I M A ( 4 , 4 )E A ( 1 , 1 ) - = S 3 A ( 1 , E ) = 1 5A A ( l , 3 ) = 3 05 A ( l , 4 ) = 1 7E > A ( B , l ) = i q7 A ( E , E ) = bf l A ( E , 3 ) = 1 1R A ( E , 4 ) = E E1 D A ( 3 , l ) = 1 31 1 A ( 3 , E ) = 1 71 E A ( 3 , 3 ) = 51 3 A ( 3 , 4 ) = 31 5 A ( 4 / E ) = ql t D A ( 4 , 3 ) = f l1 7 k ( A , A ) = 5 1R U t h i s e x a m p l e . N o a s f o t h n u m b e r s f r o m t h e t a b l e w e ' v e c o

s t r u c t e d i m e m o r y .P R I N T ( o ? ( W e e k n u m b e r , M o n t h n u m b e r )I y o a r a s k i n g f o t h n u m b e r i t h f i r s t w e e k i F e b r u a r y , y o u ' d

t y p e P R I N T A ( l , 2 ) . T h a n s w e r y o u r e c e i v e s h o u l d b t h s a m e a f r o m t h p r i n t e d t a b l e .

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

S e v e r a l d i f f e r e n t v a r i a b l e s c a n b e D I M e n s i o n e d o s i n g l e l i n e , l i k e t h i s :I D I A $ ( 1 D D ) , B $ ( 1 D D ) , C $ ( 1 D D ) , D $ ( 1 D O )E a c h o f t h e v a r i a b l e s a b o v e — A $ ( ) , B $ ( ) , C $ ( ) , a n D $ ( ) — c a n n o s t o r e

p i e c e s o i n f o r m a t i o n n u m b e r e d f r o m t o 1 0 0 . W h e n s e t t i n g u t h e s e a r r a y s ,m a k e s u r e y o k n o w h o w m a n y p l a c e s y o w i l l a s B A S I C t r e s e r v e . Y o c a n n o t c h a n g e y o u r m i n d a n u s D I a g a i n t c h a n g e t h n u m b e r i a a r r a y .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RR E D I M ' D A R R A Y E R R O R

D I c a n b e u s e d o n l y o n c e t c r e a t e a a r r a y o v a r i a b l e . O n c et h a t a r r a y i c r e a t e d , i c a n n o t b D I M e n s i o n e d a g a i n , o r e D I M e n s i o n e d . T h i s w i l l o c c u r p r i m a r i l y w h e n e d i t i n g p r o g r a m s o t r y i n g t l i n k t w p r o g r a m s w i t h D I s t a t e m e n t s i t h e m t o g e t h e r .

Y o c a n , h o w e v e r , u s v a r i a b l e t e s t a b l i s h a a r r a y .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 104/318

R e a d i n g D a t a 9

I I N P U T " H O W M A N Y A U T O N A M E S ? " ;E D I A $ ( A )I t h i s e x a m p l e , t h p r o g r a m a s k s t h u s e r f o t h n u m b e r o a u t o m o b i l e

n a m e s i w i l l b u s i n g a n s t o r e s i a t h n u m e r i c v a r i a b l e A W h e n i D I M e n s i o n s t h e v a r i a b l e A $ ( ) i l i n e 2 0 , i u s e s t h a t n u m b e r f o t h s i z e o t h a r r a y .

R E A D i n g D A T Ap r e v i o u s p r o g r a m m i n g e x a m p l e d e m o n s t r a t e d h o l i s t o a u t o m o b i l e

n a m e s w a s s t o r e d a s u b s c r i p t e d s t r i n g v a r i a b l e s . T h w a t h e y w e r e s t o r e d —A $ ( l ) " T R I U M P H H E R A L D , " A $ ( 9 ) " J E E P , " e t c . — i s t h s i m p l e s t w a t d e f i n e t h e s e v a r i a b l e s . I i n o t , h o w e v e r , t h m o s t c o n v e n i e n t w a y . I w w e r e t c h a n g e t h n a m e s o t h l i s t , w w o u l d n e e d t c h a n g e m a n y , m a n yp r o g r a m l i n e s . Y o c a i m a g i n e h o i m p r a c t i c a l t h i s w o u l d b i w h a m u c h m o r e i n f o r m a t i o n .

T h d e s i g n e r s o B A S I C h a s o l u t i o n t t h i s p r o b l e m . W h a t i a l t h i n f o r m a t i o n w n e e d e d i p r o g r a m c o u l d b g r o u p e d i o n o m o r e p l a c e s ?T h e n a l t h e v a r i a b l e s c o u l d b f i l l e d f r o m t h i s l i s t .

T h B A S I C w o r d s D A T A a n R E A D d t h i s . L i n e s t h a t b e g i n w i t h D A T Aa r s e a s i d e t c o n t a i n t h i n f o r m a t i o n . R E A D t a k e s o n p i e c e o f i f r o m t h l i s t a n a s s i g n s i t a n v a r i a b l e , s t r i n g o n u m e r i c , s u b s c r i p t e d o r n o t .

E a c h i t e m , s t r i n g o n u m b e r o t h l i s t f o l l o w i n g t h e w o r d D A T A i s e p a r a t e d b c o m m a s . ( T h i s m e a n s , o c o u r s e , t h a t s t r i n g s c a n n o t c o n t a i nc o m m a s a s c h a r a c t e r s . ) T w e n t i r e s c r e e n l i n e s , o u t 8 c h a r a c t e r s i c l u d i n g t h l i n e n u m b e r a n t h w o r d D A T A , c a n b e u s e d f o e a c h B A S I Cl i n e o i n f o r m a t i o n . D A T A l i n e s l o o k l i k e t h i s :

I D A T A 1 , E , 3 , 4 , 5 , b , 7 / 0 , 1 , 1 0 , 1 1 , I E / 1 3o

I D A T A O P D O W N , R I G H T , L E F T , S I D E W A Y ST h w o r d R E A D i a l w a y s u s e d w i t h v a r i a b l e , e i t h e r s t r i n g o n u m e r i c ,

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

I F O T E R E A D A $ ( I )3 N E X T

o

I F O T 5 R E A D N 3 D A $ ( I ) = N $4 D N E X T I

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 105/318

9 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

U s i n g t h i s , w c a r e w r i t e o u p r o g r a m e x a m p l e w i t h t h l i s t o a u t om o b i l e s .

I D I f t $ ( l l )E F O T 1 3 R E & D N A A $ ( I ) = N $5 N E X Tf c F O T 1 ? P R I N T f i $ ( I )f l N E X T1 D D A T A T R I U M P H H E R A L D , M O R R I S M I N O R , S U N B E A M

A L P I N E1 1 D A T A C I T R O E N C V H O N D A C I V I C , B U I C K C E N T U R Y1 5 D A T A N A S H R A M B L E R , N I S S A N S E N T R A , J E E P , C H E V E T T E1 3 D A T A T O Y O T A T E R C E LW h i l e i i p o s s i b l e f o t h D A T A l i s t t h a v e m o r e i n f o r m a t i o n t h a n

n e c e s s a r y , i c a n n o t h a v e l e s s t h a n t h p r o g r a m n e e d s . I t h a b o v e e x a m p l e ,t h D A T A l i s t c o u l d h a v e c o n t a i n e d s e v e r a l m o r e a u t o n a m e s , b u t h p r o g r a mw i l l o n l y u s e t h f i r s t 1 1 I t h D A T A l i s t c o n t a i n e d o n l y 1 n a m e s , t h o u g h ,t h p r o g r a m w o u l d b i n t e r r u p t e d b y a n E R R O R m e s s a g e .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RO U O D A T A

C o u n t t h n u m b e r o p i e c e s o i n f o r m a t i o n i D A T A s t a t e m e n t s ,t h e n c h e c k t s e h o w m a n y t i m e s t h p r o g r a m u s e s R E A D . ( O n ew a i t l o o k f o F O R / N E X T l o o p s w i t h R E A D i t h e m . ) C h e c kt h D A T A s t a t e m e n t s i t h p r o g r a m L I S T i n g y o a r e n t e r i n gf r o m , o r c o m p a r e t h i n f o r m a t i o n u s e d t p r e p a r e t h D A T A s t a t em e n t s .

N u m b e r s a n s t r i n g s c a a l s o b m i x e d o t h D A T A l i s t , a l t h o u g h y o m u s t k e e p t r a c k o t h k i n d o i n f o r m a t i o n t h p r o g r a m w a n t s . ( R e m e m b e rt h a t s t r i n g c a n ' t b e p l u g g e d i n t o v a r i a b l e t h a t e x p e c t s n u m b e r . ) H e r e ' sa n o t h e r v e r s i o n o t h e x a m p l e w i t h a u t o n a m e s . I i t w w i l l m a k e a a r r a yo b o t h t h n a m e s a s w e l l a s t h p r i c e t h a t e a c h c a m i g h t h a v e o u s e dc a l o t ! T d s o w e ' l l a l t e r n a t e s t r i n g a n n u m e r i c i n f o r m a t i o n .

1 D I A $ ( 1 1 ) , A ( 1 1 )E F O T 1 3 R E A D A $ ( I ) , A ( 1 1 )4 N E X T5 P R I N T » [ C L R ] C A P R I C E "t F O T 1 ? P R I N T A $ ( I ) , » $ » ; A ( I )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 106/318

R e a d i n g D a t a 9

f l D N E X T I1 D D A T A T R I U M P H H E R A L D , 7 5 D , M O R R I S M I N O R , 5 D D D1 1 D A T A S U N B E A M A L P I N E , 5 5 D D , C I T R O E N C V 2 D D D1 E D A T A H O N D A C I V I C , 3 D D 0 , B U I C K C E N T U R Y , 4 5 D D1 3 D A T A N A S H R A M B L E R , 7 5 0 , N I S S A N S E N T R A , 4 D D D1 < D A T A J E E P , 5 D D , C H E V E T T E , E 7 D D , T O Y O T A T E R C E L ,4 D D 0L i n e 1 s e t s u p t w o a r r a y s , A $ ( l l ) , w h i c h w i l l h o l d 1 a u t o n a m e s a '

s t r i n g s , a n A ( l l ) , n u m e r i c v a r i a b l e a r r a y t t a k e u t 1 n u m b e r s , t h c o r r e s p o n d i n g p r i c e s o f t h e c a r s . L i n e s 2 t 4 R E A D i t h c a n a m e s a n n u m b e r s o f t h D A T A l i s t . L i n e 5 c l e a r s t h s c r e e n , t h e n P R I N T s t h w o r d sC A a n P R I C E . L i n e s 6 t 8 P R I N T t h n a m e o t h c a r — A $ ( ) — t h e nd o l l a r s i g n a n t h e p r i c e n e x t t i f o e a c h .

Y o a l s o s h o u l d k n o w t h a t t h e c o m p u t e r a l w a y s t a k e s c a r e o k e e p i n gi t p l a c e o t h D A T A l i s t , a n i w i l l r e c o g n i z e i n f o r m a t i o n e v e n i t h l i n e so f t h e D A T A l i s t a r w i d e l y s e p a r a t e d b o t h e r p r o g r a m l i n e s . T w o t h e rB A S I C w o r d s , R E S T O R E a n C L R , w i l l a f f e c t h o R E A D w o r k s , a n t h i n f o r m a t i o n c o n t a i n e d a s v a r i a b l e s .

R E S T O R E h a s n o t h i n g a a l t d w i t h t h k e o y o u r C o m m o d o r ek e y b o a r d m a r k e d R E S T O R E . I n s t e a d , i r e s e t s t h D A T A p r o c e s s s t h a tR E A D w i l l b e g i n R E A D i n g f r o m t h b e g i n n i n g o t h D A T A l i s t a g a i n .

C L i u s e d t e r a s e a l i n f o r m a t i o n s t o r e d a s v a r i a b l e s , e i t h e r s t r i n g o n u m e r i c . Y o m u s t u s C L c a u t i o u s l y , t h o u g h , b e c a u s e i i n o s e l e c t i v e .I w i l l e m p t y o u e v e r y v a r i a b l e , i n c l u d i n g t h o s e t h a t m i g h t b i m p o r t a n t t t h w a y o u r p r o g r a m R U N s . I y o o n l y w a n t t e r a s e p a r t i c u l a r v a r i a b l e ,y o c a n a l w a y s d o s o m e t h i n g l i k e t h i s :

I D A $ = » o

I o

I F O T I 5 A $ ( I ) » 3 N E X TB t h w a y , b s u r e n o t t c o n f u s e t h w o r d C L i s o m e o f t h e p r o g r a m

e x a m p l e s i t h i s b o o k f o t h C L R / H O M E k e y . I C L h a s s q u a r e b r a c k e t sa r o u n d i t — l i k e t h i s , [ C L R ] , i s t i l l m e a n s t p r e s s t h e C L R / H O M E k e y , n o t t y p e t h B A S I C w o r d C L R .

D i s k a n d T a p e F i l e s f r o m A r r a y sB e f o r e g e t t i n g i n t o t h i s t o p i c , b s u r e t h a t y o u ' v e r e a d e v e r y t h i n g a b o u t

u s i n g t h C o m m o d o r e d i s k d r i v e a n c a s s e t t e t a p e r e c o r d e r i C h a p t e r 3

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 107/318

9 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

O n c e i n f o r m a t i o n i e n t e r e d i n t o t h c o m p u t e r , t h e r e m u s t b s o m e w a o f s t o r i n g i o f l o p p y d i s k o o t a p e c a s s e t t e . O t h e r w i s e , i w o u l d a l b l o s t t h i n s t a n t t h a t t h e c o m p u t e r i t u r n e d o f f . O n w a o f s t o r i n g i n f o rm a t i o n o t a p e o r d i s k i t S A V E i w i t h t h B A S I C p r o g r a m . Y o u ' v e s e e nh o t d t h i s u s i n g D A T A s t a t e m e n t s . B u t , j u s t a D A T A s i m p l i f i e d t h ep r o c e s s o e n t e r i n g i n f o r m a t i o n f o v a r i a b l e s , a n o t h e r m e t h o d f u r t h e r s i p l i f i e s i n f o r m a t i o n h a n d l i n g .

T h 6 f a m i l y o c o m p u t e r s , l i k e p r e v i o u s C o m m o d o r e m a c h i n e s , a r c a l l e d f i l e - o r i e n t e d m a c h i n e s . T h a t i s t h c o m p u t e r s e n d s a n r e c e i v e s a l o u t s i d e i n f o r m a t i o n t a n f r o m t h e s e f i l e s . D i s k o t a p e f i l e s c a n b e O P E N e d ,C L O S E d , w r i t t e n t a n r e a d f r o m , j u s t l i k e p a p e r f i l e f o l d e r s . B A S I C a l s ot h i n k s o t h e p r i n t e r i a 6 s y s t e m a u s i n g t h e s e f i l e s , a n m a n y f i l e - h a n d l i n gc o m m a n d s a l s o a p p l y t i t N e w o r d s u s e d w i t h f i l e s a r r e a l l y v a r i a t i o n so w o r d s y o u a l r e a d y k n o w : P R I N T # , I N P U T # a n G E T # .

T h e r e a r s e v e r a l d i f f e r e n t t y p e s o f i l e s t h a t t h C o m m o d o r e 6 c a c o n s t r u c t o t a p e o r d i s k . I n f o r m a t i o n i m o s t c o m m o n l y s t o r e d a s s e q u e n t i a lf i l e s . T h e y a r c a l l e d s e q u e n t i a l b e c a u s e p i e c e s o i n f o r m a t i o n a r e s t o r e d i t h e m , o n a f t e r a n o t h e r . T h e s e k i n d s o f i l e s o t a p e o d i s k a r e d i f f e r e n t f r o mp r o g r a m s i t h a t t h e y c a n n o t b e L O A D e d i n t o t h c o m p u t e r b t h e m s e l v e s .

T h B A S I C w o r d t h a t s t a r t s t h f i l e p r o c e s s i O P E N . I i w o r d t h a tc a b e u s e d s e v e r a l w a y s ; b u t , i t h i s s e c t i o n w e ' l l s t i c k t d i s c u s s i o n o h o i i u s e d t c r e a t e s e q u e n t i a l f i l e s .

O P E N i u s e d w i t h f i l e n u m b e r , d e v i c e n u m b e r a n d s e c o n d a r y a d d r e s sn u m b e r .

I O P E N 1 , 6 , 3I t h i s e x a m p l e , i t h f i l e n u m b e r , i t h d e v i c e n u m b e r , a n i

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

f i l e s c a b O P E N a o n c e . T h d e v i c e n u m b e r i t h n u m b e r t h a t t h e c a s s e t t er e c o r d e r , d i s k d r i v e , a n p r i n t e r a r e e a c h g i v e n . ( T h e c o m p u t e r d o e s n ' t u d e r s t a n d w o r d s l i k e r e c o r d e r , d i s k a n p r i n t e r , s i " s e e s " t h e m a n u m b e r s . )T h e s e d e v i c e n u m b e r s a r s e f o y o u . T h c a s s e t t e r e c o r d e r i a l w a y s d e v i c en u m b e r 1 P r i n t e r s a r a l m o s t a l w a y s c a l l e d d e v i c e n u m b e r 4 . I f y o a r u s i n gt w p r i n t e r s ( o n e d o m a t r i x a n o n l e t t e r q u a l i t y , f o e x a m p l e ) , a s e c o n dp r i n t e r i u s u a l l y d e v i c e n u m b e r 5 D i s k d r i v e s c o m e f r o m t h C o m m o d o r ef a c t o r y s e a d e v i c e n u m b e r 8 T h i s n u m b e r c a b c h a n g e d , h o w e v e r , a n

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

n u m b e r s . I y o d o n ' t u s e a s e c o n d a r y a d d r e s s , t h c o m p u t e r a s s u m e s t h n u m b e r i ( z e r o ) , m e a n i n g t h a t t h f i l e i O P E N f o r e c a l l i n g i n f o r m a t i o nf r o m t a p e . S e c o n d a r y a d d r e s s n u m b e r m e a n s t h a t t h e f i l e i s O P E N t s e n di n f o r m a t i o n t t h c a s s e t t e r e c o r d e r . S e c o n d a r y a d d r e s s n u m b e r 2 w h e n u s e dw i t h t a p e , w r i t e s s p e c i a l m a r k t h a t i n d i c a t e s t h e n o t h t a p e . T h i s i d o n e s t h a t y o n e e d n ' t g a l t h w a t t h e n o c a s s e t t e s e a r c h i n g f o i n f o r m a t i o n t h a t ' s n o t h e r e . " E n d o T a p e " f i l e s c a b m a d e t c o n t a i n n i n f o r m a t i o n , j u s t t h i s m a r k .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 108/318

D i s k a n d T a p e F i l e s f r o m A r r a y s 9

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RN O I N P U T F I L E E R R O RN O O U T P U T F I L E E R R O R

C a s s e t t e t a p e f i l e s a r O P E N e d a s e i t h e r I N P U T o O U T P U T f i l e s ,d e p e n d i n g o n t h e i r s e c o n d a r y a d d r e s s . A a d d r e s s o m e a n s t h a tt h t a p e f i l e i O P E N e d f o r e c o r d i n g i n f o r m a t i o n t i t Y o c a n n o tu s I N P U T # o G E T # , o t h f i r s t E R R O R w i l l b s e e n . I n s e c o n d a r y a d d r e s s n u m b e r i u s e d w i t h t h c a s s e t t e r e c o r d e r , t h c o m p u t e r a s s u m e s t h a t i n f o r m a t i o n w i l l b r e c a l l e d f r o m i t U s i n gP R I N T # w i l l p r o d u c e t h s e c o n d E R R O R m e s s a g e .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

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

U s i n g C o m m o d o r e ' s 1 5 4 1 d i s k d r i v e , i i r e c o m m e n d e d t h a t y o u s o n l y t h n u m b e r s o a s e c o n d a r y a d d r e s s e s a n t r n o t O P E N m o r et h a n t w d i s k f i l e s a t i m e . T h i s i s n ' t r e a l l y l i m i t a t i o n , a n d y o u s h o u l db a b l e t d m o s t i n f o r m a t i o n h a n d l i n g w i t h o n l y o n O P E N d i s k f i l e .

S e c o n d a r y a d d r e s s n u m b e r 1 i u s e d f o s p e c i a l p u r p o s e , t s e n dc o m m a n d s t t h C o m m o d o r e d i s k d r i v e a n t r e a d t h m e a n i n g o t h e d i s kd r i v e ' s f l a s h i n g r e E R R O R l i g h t .

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

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RF I L E N O O P E N E R R O RF I L E O P E N E R R O R

W h e n u s i n g d a t a - h a n d l i n g w o r d s P R I N T # , I N P U T # , a n G E T # ,y o m u s t f i r s t O P E N f i l e , o t h e r w i s e F I L E N O O P E N E R R O Rw i l l o c c u r . T h i s a l s o h a p p e n s w h e n C M D , w o r d u s e d t t r a n s f e ri n f o r m a t i o n m e a n t t b P R I N T e d o t h v i d e o s c r e e n t p r i n t e ro d i s k d r i v e , i u s e d w i t h o u t O P E N i n g t h e c o r r e c t f i l e , a n w i t ht h w o r d C L O S E , a w e l l . F I L E O P E N E R R O R s w i l l b s e e n w h e ny o t r t O P E N f i l e t h a t h a b e e n O P E N e d b u n o C L O S E d .A l w a y s c h e c k t h f i l e s e q u e n c e t m a k e s u r e t h e f i l e i C L O S E da f t e r u s e .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

H e r e i s u m m a r y o h o O P E N i u s e d t h e l p y o u n d e r s t a n d h o t h i s B A S I C w o r d w o r k s . R e m e m b e r t h a t t h e s e a r e j u s t e x a m p l e s a n t h a tf i l e n u m b e r s a n s o m e s e c o n d a r y a d d r e s s e s a r y o u r o w c h o i c e .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 109/318

9 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

O P E N 2 , 1 , 1 , ' T E S T "O P E N s f i l e n u m b e r o c a s s e t t e ( d e v i c e 1 f o r e c o r d i n g s e q u e n t i a l f i l e

c a l l e d T E S T . F i l e n u m b e r i c h o s e n b t h u s e r .O P E N 3 , 1 , 0 / T E S T "

O P E N s f i l e n u m b e r o c a s s e t t e ( d e v i c e 1 f o r e c a l l i n g s e q u e n t i a l f i l ec a l l e d T E S T . F i l e n u m b e r i c h o s e n b t h u s e r .O P E N 1 ,

O P E N s f i l e n u m b e r o c a s s e t t e ( d e v i c e 1 f o r e c a l l i n g a n n e x t s q u e n t i a l f i l e o t a p e . F i l e n u m b e r i c h o s e n b t h u s e r .O P E N 2 , 1 , 2 , " E N D O T A P E "

O P E N s f i l e n u m b e r o c a s s e t t e ( d e v i c e 1 f o r e c o r d i n g f i l e c a l l e d E N O T A P E w i t h s p e c i a l E n o T a p e m a r k . F i l e n u m b e r i c h o s e n b t h u s e r .O P E N 1 , 8 , 2 , " T E S T , S E Q , W R I T E "

O P E N s f i l e n u m b e r o d i s k ( d e v i c e 8 f o r e c o r d i n g s e q u e n t i a l f i l e c a l l e dT E S T . F i l e n u m b e r a n s e c o n d a r y a d d r e s s a r c h o s e n b t h u s e r .O P E N 3 , 8 , 3 , " T E S T "

O P E N s f i l e n u m b e r o d i s k ( d e v i c e 8 f o r e c a l l i n g s e q u e n t i a l f i l e c a l l e dT E S T . F i l e n u m b e r a n s e c o n d a r y a d d r e s s a r c h o s e n b t h u s e r .O P E N 2 , 8 , 2 , A $ " S E Q , W R I T E "

O P E N s f i l e n u m b e r o d i s k ( d e v i c e 8 f o r e c o r d i n g s e q u e n t i a l f i l e w i t ha n n a m e s t o r e d a s t r i n g v a r i a b l e A $ . F i l e n u m b e r a n s e c o n d a r y a d d r e s sa r c h o s e n b t h u s e r .

O P E N 1 , 9 , 2 , " T E S T , S E Q , W R I T E "O P E N s f i l e n u m b e r o s e c o n d d i s k d r i v e ( d e v i c e 9 f o r e c o r d i n g s q u e n t i a l f i l e c a l l e d T E S T . F i l e n u m b e r a n s e c o n d a r y a d d r e s s a r c h o s e n b t h u s e r .O P E N 4 , 8 , l , " 0 : " A + ' S E Q , W R I T E "

O P E N s f i l e n u m b e r o d i s k ( d e v i c e 8 f o r e c o r d i n g s e q u e n t i a l f i l e w i t ha n n a m e s t o r e d a s t r i n g v a r i a b l e A o d i s k # o d u a l d r i v e s y s t e m .R e q u i r e s I E E E - 4 8 8 i n t e r f a c e a d a p t e r w i t h C o m m o d o r e 6 c o m p u t e r f a m i l y .F i l e n u m b e r a n s e c o n d a r y a d d r e s s a r c h o s e n b t h u s e r .

O P E N 1 , 8 , 1 , ' T E S T "O P E N s f i l e n u m b e r o d i s k ( d e v i c e 8 f o r e c a l l i n g s e q u e n t i a l f i l e c a l l e dT E S T . S e c o n d a r y a d d r e s s i c h o s e n b t h u s e r .O P E N 1 , 8 , 1 5

O P E N s f i l e n u m b e r o d i s k ( d e v i c e 8 f o s e n d i n g m e s s a g e t o o r e a d i n gE R R O R f r o m C o m m o d o r e d i s k c o m m a n d c h a n n e l . F i l e n u m b e r i c h o s e n b t h u s e r , b u t s e c o n d a r y a d d r e s s i s p e c i a l f o a c c e s s i n g t h i s c o m m a n d c h a nn e l .O P E N 1 , 4 , 3

O P E N s f i l e n u m b e r o p r i n t e r ( d e v i c e 4 f o p r i n t i n g t e x t . F i l e n u m b e ra n s e c o n d a r y a d d r e s s a r c h o s e n b t h u s e r .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 110/318

D i s k a n T a p e F i l e s f r o m A r r a y s 9

O P E N 4 , 4 , 7O P E N s f i l e n u m b e r o p r i n t e r ( d e v i c e 4 t s e n d s p e c i a l c o m m a n d

( s e c o n d a r y a d d r e s s ) t C o m m o d o r e p r i n t e r o s m a r t p r i n t e r i n t e r f a c e . F i l en u m b e r i c h o s e n b t h u s e r .

T h B A S I C w o r d t h a t s e n d s i n f o r m a t i o n t t h c a s s e t t e r e c o r d e r , d i s kd r i v e , o p r i n t e r i P R I N T # . T h e w o r d s P R I N T a n P R I N T # a r n o t h s a m e ,a l t h o u g h t h e y a c a l m o s t e x a c t l y a l i k e a n f o l l o w t h s a m e r u l e s o u s e .P R I N T p u t s i n f o r m a t i o n o t h v i d e o s c r e e n . P R I N T # s e n d s t h i n f o r m at i o n — s t r i n g s o r n u m b e r s — t o f i l e w i t h t h n u m b e r t h a t f o l l o w s i t

I y o a r a c c u s t o m e d t u s i n g t h s h o r t h a n d i n s t e a d o t y p i n g t h e n t i r e w o r d P R I N T , b c a r e f u l t h a t y o u s i o n l y f o P R I N T , n o P R I N T # .Y o c a n n o t u s ? a a a b b r e v i a t i o n f o P R I N T # . I y o m a k e t h m i s t a k eo t y p i n g ? # , t h e p r o g r a m w i l l b i n t e r r u p t e d b S Y N T A X E R R O R . W h e ny o L I S T t h l i n e w i t h t h E R R O R , P R I N T # w i l l l o o k c o r r e c t o t h s c r e e n .T t h c o m p u t e r , h o w e v e r , y o u ' v e s t i l l m a d e m i s t a k e . S o m e t i m e s , S Y N T A XE R R O R s c a u s e d t h i s w a a r e x t r e m e l y d i f f i c u l t t f i n d a n c o r r e c t .

J u s t a I N P U T i t h o p p o s i t e o P R I N T , I N P U T # i t h o p p o s i t e o P R I N T # . I N P U T # r e c e i v e s i n f o r m a t i o n f r o m f i l e o t h c a s s e t t e r e c o r d e ro d i s k d r i v e s t o r e d a s e q u e n t i a l f i l e . I r e c e i v e s s t r i n g s o n u m b e r s t h a ta r e s t o r e d a v a r i a b l e s , a n d , a g a i n , i u s e d w i t h f i l e n u m b e r .

A s w i t h I N P U T , y o s h o u l d t a k e c a r e n o t u s c o m m a s i s t r i n g s t a k e nf r o m t a p e o r d i s k f i l e s w i t h I N P U T # . T h c o m p u t e r a n d i s k d r i v e u s c o m a f o s p e c i a l p u r p o s e s , a n a n i n f o r m a t i o n a f t e r c o m m a w i l l b i g n o r e d .

G E T # , t o o , i r e l a t e d t G E T . G E a c c e p t s a s i n g l e k e y p r e s s e d d o w no t h k e y b o a r d . G E T # t a k e s o n p i e c e o i n f o r m a t i o n , s i n g l e c h a r a c t e rf r o m s t r i n g o n u m b e r s t o r e d o t a p e o r d i s k a s s e q u e n t i a l f i l e , a n s t o r e s i a v a r i a b l e . I y o m u s t u s c o m m a s i s e q u e n t i a l d i s k o t a p ef i l e s , u s G E T # . B f o r e w a r n e d t h a t u s i n g i s l o w s d o w n t h e f i l e - h a n d l i n gp r o c e s s .

W s t a r t u s i n g s e q u e n t i a l f i l e s w i t h t h B A S I C w o r d O P E N . I i o n l yl o g i c a l , t h e n , t h a t w C L O S E t h f i l e a f t e r w a r d o n e r e c a l l i n g a l t h i n f o r m a t i o n w n e e d f r o m i t C L O S E i u s e d w i t h t h s a m e f i l e n u m b e r w u s e d w i t h O P E N .

C a s s e t t e F i l e s S e q u e n t i a l i n f o r m a t i o n f i l e s a r r e c o r d e d o c a s s e t t et a p e l i k e p r o g r a m f i l e s , b u t , a s t a t e d e a r l i e r , t h e y c a n ' t b L O A D e d b t h e ms e l v e s . I n f o r m a t i o n i r e c o r d e d o t h t a p e , t h e n r e c a l l e d b t h c o m p u t e ri n e x a c t l y t h e s a m e s e q u e n c e . S t h l i n e s o B A S I C p r o g r a m m i n g t r e c a l li n f o r m a t i o n f r o m t h e t a p e a l m o s t a l w a y s l o o k s i m i l a r t t h l i n e s t h a t r e c o r dt h i n f o r m a t i o n .

L e t ' s s a t h a t w h a v e c a t e g o r y , f o l l o w e d b i n f o r m a t i o n g r o u p e d u n d e rt h a t n a m e . W c a u s t h p r e v i o u s e x a m p l e s o A $ w h i c h s t o o d f o a u t om o b i l e s , a n A $ ( ) , w h i c h c o n t a i n e d t h a c t u a l l i s t o n a m e s . T m a k e s u c h

s e q u e n t i a l t a p e f i l e , w w i l l f i r s t O P E N t h f i l e a n g i v e i n a m e . T h e nw w i l l r e c o r d t h c a t e g o r y n a m e , A $ w h i c h s t a n d s f o " A U T O M O B I L E S . "S u b s c r i p t e d s t r i n g v a r i a b l e s t h a t s t a n d f o t h 1 c a n a m e s a r r e c o r d e dn e x t .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 111/318

9 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

L e t ' s t r y i t T h f o l l o w i n g e x a m p l e w i l l r e c o r d t h i n f o r m a t i o n o c a s s e t t et a p e a s e q u e n t i a l f i l e .

I D I A $ ( l l ) : A $ = " A U T O M O B I L E S »E F O T 1 3 R E A D N 4 A $ ( I ) = N $5 N E X TL O P E N E , 1 , 1 , " L I S T "7 P R I N T # E , A $f l F O T 1 q P R I N T # E , A $ ( I )1 D N E X T1 1 C L O S EE D D A T A T R I U M P H H E R A L D , M O R R I S M I N O R , S U N B E A M

A L P I N EE 1 D A T A C I T R O E N C V H O N D A C I V I C , B U I C K C E N T U R YE E D A T A N A S H R A M B L E R , N I S S A N S E N T R A , J E E P , C H E V E T T EE 3 D A T A T O Y O T A T E R C E LT h f i r s t t h i n g t h a t h a p p e n s i t h i s p r o g r a m i t h a t a a r r a y f o A $ ( ) i

D I M e n s i o n e d t h o l d 1 p i e c e s o f i n f o r m a t i o n . T h e n A $ i d e f i n e d a b e i n g" A U T O M O B I L E S . " L i n e s 2 t 6 R E A D i t h l i s t o n a m e s o D A T A l i n e s2 0 t 2 3 0 .

N o t h p r o c e s s o s t o r i n g t h e i n f o r m a t i o n b e g i n s . O l i n e 6 0 f i l e n u m b e ri O P E N e d o t h c a s s e t t e r e c o r d e r ( d e v i c e 1 ) w i t h t h s e c o n d a r y a d d r e s s

n u m b e r 1 ( T h e n u m b e r s a y s t h a t t h e f i l e i b e i n g O P E N e d t s e n d i n f o rm a t i o n , r e m e m b e r ? ) T h f i l e i s n a m e d L I S T . A t t h i s p o i n t , t h c o m p u t e r p u t sa i n s t r u c t i o n u o t h v i d e o s c r e e n :

P R E S S R E C O R D P L A Y O T A P EW h e n y o b e g i n r e c o r d i n g , l i n e s 7 t 1 0 P R I N T # t h i n f o r m a t i o n f r o m

A $ ( l ) t A $ ( l l ) o t h t a p e . F i n a l l y , f i l e n u m b e r i C L O S E d i l i n e 1 1 0 .W e ' v e m a d e s e q u e n t i a l f i l e o t a p e . B u w c a n ' t L O A D t h t a p e , a n

t h e r e ' s n w a t l o o k a i t p r o v e t h a t t h i n f o r m a t i o n i t h e r e . T h o n l yw a t t e l l w h e t h e r o u r e x p e r i m e n t w a s u c c e s s f u l i t w r i t e a n o t h e r l i t t l ep r o g r a m t p u t h i n f o r m a t i o n b a c k i n t o t h c o m p u t e r . W e ' l l m i m i c w h a tw d i d a b o v e . ( B e s u r e t t y p e N E b e f o r e e n t e r i n g t h p r o g r a m a n d r e w i n dt h c a s s e t t e t a p e t h a t y o u ' v e r e c o r d e d . )

I D I J $ ( l l )E O P E N 1 , 3 I N P U T # 1 , J $A F O T 1 5 I N P U T # 1 , J $ ( I )t N E X T7 C L O S Ef l P R I N T " [ C L R ] »H P R I N T J

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 112/318

D i s k a n d T a p e F i l e s f r o m A r r a y s 9

1 D F O T 1 1 1 P R I N T J $ ( I )1 2 N E X TT h i s p r o g r a m g e t s r i g h t t w o r k . I D I M e n s i o n s a n a r r a y o 1 p l a c e s f o

J $ ( ) , t h e n O P E N s f i l e n u m b e r o t h c a s s e t t e r e c o r d e r . T h e r e i n s e c o n d a r ya d d r e s s n e c e s s a r y b e c a u s e t h f i l e i s b e i n g O P E N e d t o r e c a l l i n f o r m a t i o n .( T h e s e c o n d a r y a d d r e s s n u m b e r i a c t u a l l y 0 . L i n e 5 t a k e s t h e f i r s t p i e c eo i n f o r m a t i o n t h a t w r e c o r d e d o t h t a p e , t h w o r d A U T O M O B I L E S , a n c a l l s i J $ T h e n , l i n e s 4 t 6 0 p u t t h a p p r o p r i a t e i n f o r m a t i o n i n t o J $ ( l ) t J $ ( l l ) . T h f i l e i C L O S E d . F i n a l l y , t h p r o g r a m c l e a r s t h s c r e e n , P R I N T sJ $ f o l l o w e d b t h l i s t o n a m e s , t p r o v e t h a t e v e r y t h i n g w a r e c e i v e dc o r r e c t l y .

A y o c a s e e , t h f i l e O P E N e d w a d i f f e r e n t n u m b e r t h a n t h o n w O P E N e d w h e n w e c r e a t e d t h t a p e i t h o t h e r p r o g r a m . F i l e n u m b e r s d o n ' tn e e d t b t h s a m e a t h e y w e r e w h e n w m a d e t h s e q u e n t i a l f i l e s i n c et h e y a r e n ' t r e c o r d e d a p a r t o i t T h n u m b e r o n l y n e e d s t b t h s a m e a i t s e l f i n s i d e t h p r o g r a m w e ' r e u s i n g . I t h l a s t e x a m p l e , t h f i l e i s n u m b e r e d

t h r o u g h o u t . Y o c a a l s o s e e t h a t w a r u s i n g d i f f e r e n t v a r i a b l e n a m e s .I n t h e f i r s t p r o g r a m , w c a l l e d t h e v a r i a b l e s A a n A $ ) I n t h e s e c o n dp r o g r a m , t h e v a r i a b l e s a r e n a m e d J a n J $ ( ) . W c o u l d h a v e c a l l e d t h e ma n y t h i n g , a l o n g a o n w a s t r i n g v a r i a b l e a n t h o t h e r a s u b s c r i p t e ds t r i n g v a r i a b l e D I M e n s i o n e d f o r a t l e a s t 1 s p a c e s . V a r i a b l e n a m e s a r n o s t o r e d i s e q u e n t i a l f i l e , e i t h e r .

A " E n d o T a p e " m a r k w a m e n t i o n e d e a r l i e r . M a k i n g o n i s i m p l ea n y o n e e d n ' t e v e n w r i t e p r o g r a m . J u s t t y p e t h i s d i r e c t l y f r o m t h k e b o a r d :

O P E N 1 , 1 , 2 : C L O S E 1R e w i n d t h r e c o r d i n g m a d e b t h i s c o m m a n d , t h e n t y p e L O A D a n p r e s s

r e t u r n . W h e n t h c o m p u t e r f i n d s i t t h w o r d F O U N D w i l l a p p e a r . P r e s s t h eC O M M O D O R E k e y . A D E V I C E N O P R E S E N T E R R O R m e s s a g e w i l l a p p e a r .T h c a s s e t t e r e c o r d e r i o b v i o u s l y i p l a c e a n t u r n e d o n t h o u g h . T h i s i t h C o m m o d o r e 6 4 ' s r a t h e r s t r a n g e w a o t e l l i n g y o t h a t y o u ' v e e n c o u nt e r e d a " E n d o T a p e " m a r k .

T h m o s t i m p o r t a n t t h i n g t r e m e m b e r a b o u t m a k i n g s e q u e n t i a l t a p ef i l e s i a l w a y s t k e e p s t r a i g h t t h o r d e r i w h i c h i n f o r m a t i o n i r e c o r d e d ,t h e n d u p l i c a t e t h i s o r d e r w h e n y o w r i t e p r o g r a m l i n e s t h a t w i l l r e c a l l t h i n f o r m a t i o n . A l s o r e m e m b e r t C L O S E t h f i l e a f t e r y o a r t h r o u g h w i t hi t F i n a l l y , d o n ' t i n c l u d e c o m m a s i s t r i n g s w r i t t e n i s e q u e n t i a l f i l e s .

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

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

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 113/318

1 0 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

c a n b e L O A D e d a n R U a r l a b e l e d P R G . W h e n y o a d s e q u e n t i a l f i l et t h d i s k , i w i l l b i d e n t i f i e d w i t h t h l e t t e r s S E Q .

L i k e t h c a s s e t t e r e c o r d e r , t h C o m m o d o r e d i s k d r i v e n e e d s t b t o l dw h e n i s h o u l d m a k e s e q u e n t i a l f i l e . I n s t e a d o u s i n g a p a r t i c u l a r s e c o n d a r ya d d r e s s , t h o u g h , t h i s i d o n e a t h t i m e t h f i l e i O P E N e d w i t h s p e c i a ln a m i n g s e q u e n c e . O P E N i f o l l o w e d b f i l e n u m b e r ( y o u c h o o s e i t ) , d e v i c en u m b e r ( a l m o s t a l w a y s 8 f o r d i s k ) a n s e c o n d a r y a d d r e s s ( c h o o s e e i t h e r

o 3 ) T h e n t i r e n a m i n g s e q u e n c e s e n t t t h e d i s k l o o k s l i k e t h i s :I O P E N 1 , f l , 3 , " T E S T , S E Q , W R I T E "T h i s c o m m a n d t e l l s t h c o m p u t e r a n d i s k t O P E N f i l e n u m b e r o

d e v i c e 8 T h n a m e o f t h e f i l e i s T E S T a n i w i l l b s e q u e n t i a l f i l e . T h w o r d W R I T E t e l l s t h e d i s k t o p e n t h f i l e f o r e c o r d i n g i n f o r m a t i o n . F r o mt i m e t t i m e , y o u ' l l a l s o s e e t h i s k i n d o l i n e w r i t t e n l i k e t h i s :

I O P E N 1 , f l , 3 , " D : T E S T , S E Q , W R I T E "T h ( z e r o ) i n s i d e t h q u o t e s m e a n s t h a t t h e f i l e s h o u l d b e w r i t t e n t

t h e d i s k d r i v e i d e n t i f i e d a d r i v e 0 T h i s i c a r r y - o v e r f r o m t h o r i g i n a lC o m m o d o r e d i s k s y s t e m s , w h i c h h a t w d r i v e s , i n s t e a d o o n e , l i k e t h e 1 5 4 1 .A l t h o u g h t h e r e w e r e t w o d r i v e s , t h c o m p u t e r r e c o g n i z e d b o t h o t h e m a d e v i c e 8 T d i f f e r e n t i a t e , o n d r i v e w a n a m e d d r i v e 0 t h o t h e r d r i v e 1 A n d i s k c o m m a n d s l i k e t h i s , w i t h t h e d i s k d r i v e n u m b e r 0 w i l l s t i l l w o r kw i t h t h 1 5 4 1 . C o m m a n d s w i t h t h n u m b e r 1 h o w e v e r , w i l l n o t , u n l e s s y o a r u s i n g C o m m o d o r e d u a l d i s k d r i v e . ( T h i s a l s o r e q u i r e s a n I E E E - 4 8 8i n t e r f a c e . )

I y o u h a v e t w 1 5 4 1 d i s k d r i v e s , t h f i r s t o n w i l l b d e v i c e 8 a n t h s e c o n d m u s t b a s s i g n e d d i f f e r e n t d e v i c e n u m b e r . ( U s u a l l y t h i s o n w i l lb e c o m e d e v i c e 9 . Y o w i l l n o t , h o w e v e r , b e a b l e t t r e a t t h e s e t w a d r i v e

a n d r i v e 1 A m a t t e r o f o r m , a n t p r e v e n t u n a n t i c i p a t e d p r o b l e m s w i t h t h

1 5 4 1 d i s k d r i v e , i i g o o d i d e a t a l w a y s u s t h o p t i o n a l p r e f i x " 0 : " w h e nO P E N i n g d i s k f i l e s .

T c o n v e r t o u " a u t o n a m e s " p r o g r a m t s e q u e n t i a l d i s k f i l e w n e e dt c h a n g e o n l y o n l i n e . S u b s t i t u t e t h i s l i n e f o r l i n e 6 i t h e a r l i e r p r o g r a m :

f c O P E N E , f l , £ , " D : L I S T , S E Q , W R I T E "T m o d i f y t h p r o g r a m t h a t r e c a l l e d i n f o r m a t i o n f r o m t h t a p e f i l e , y o

a l s o n e e d t c h a n g e l i n e . T h i s l i n e r e p l a c e s l i n e 2 i t h e x a m p l e :E O P E N l , f l , 3 , " D : L I S T , S E Q "

W h a t i t h n a m e o t h f i l e i s n o a l w a y s t h s a m e ? Y o c a f i r s t u s I N P U T t a c c e p t s t r i n g a s t h n a m e , t h e n u s t h e v a r i a b l e i n s t e a d . T d s o y o m u s t c o n c a t e n a t e o r a d t h e v a r i a b l e t t h n a m i n g s e q u e n c e .

I I N P U T " W H A T I T H F I L E N A M E " ; N $E O P E N E , f l , E , N $ " , S E Q , W R I T E "

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 114/318

D i s k a n d T a p e F i l e s f r o m A r r a y s 1 0

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

Y o u ' l l n e e d t b p a r t i c u l a r l y c a r e f u l a b o u t C L O S E i n g s e q u e n t i a l d i s kf i l e s . Y o c a t e l l i d i s k f i l e i s l e f t O P E N b l o o k i n g a t h e d i s k d i r e c t o r y .I a a s t e r i s k ( " * " ) i n e x t t S E Q , t h f i l e h a b e e n l e f t O P E N . S u c h f i l ei u s e l e s s ( y o u c a n n o t a d i n f o r m a t i o n t i t a n e r a s i n g t h i s f i l e ( s e e " S o m eE s s e n t i a l S k i l l s " ) m a d a m a g e t h d a t a o t h d i s k . N p r o b l e m s s h o u l do c c u r , t h o u g h , i y o a l w a y s C L O S E t h f i l e a f t e r O P E N i n g i t s t o r e i n f o rm a t i o n .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R

F I L E N O T F O U N DT h i s m e s s a g e w i l l a p p e a r i y o t r y t o L O A D p r o g r a m o f i l ef r o m d i s k t h a t d o e s n o e x i s t . I y o a r s u r e t h a t y o u h a v e t h p r o g r a m , c h e c k t h e d i s k d i r e c t o r y t s e i i i o t h a t p a r t i c u l a rd i s k , o c h e c k y o u r s p e l l i n g . T h i s d i s k d r i v e e x p e c t s a b s o l u t e a c u r a c y w h e n a s k i n g f o p r o g r a m b y n a m e . A v o i d t h i s E R R O Rb u s i n g a a s t e r i s k f o p a t t e r n m a t c h i n g p u r p o s e s .

O n l a s t c a u t i o n a b o u t s e q u e n t i a l f i l e s o b o t h t a p e a n d i s k . Y o a l r e a d yk n o w a b o u t s t r i n g v a r i a b l e s t h a t c o n t a i n n i n f o r m a t i o n . T h e s e a r c a l l e d" n u l l s t r i n g s . " E v e n t h o u g h C o m m o d o r e B A S I C a l l o w s y o t u s s u c h e m p t ys t r i n g s , y o c a c o n f u s e s e q u e n t i a l f i l e s i y o t r t r e c o r d t h e m .

I A 5 O P E N l , f l , E , l f D : T E S T , S E Q , W R I T E "3 P R I N T # 1 , & $ , B $ , C $4 C L O S EW h e n t h i s e x a m p l e r e c o r d s t h s e q u e n t i a l f i l e i w i l l s k i p B b e c a u s e i

i n u l l s t r i n g . W h e n y o g b a c k t r e c a l l t h f i l e , t h s e c o n d p i e c e o i n f o r m a t i o n , B $ w i l l b e c o m e " N O , " i n s t e a d . O n e m e t h o d o e l i m i n a t i n g t h ep r o b l e m i t t e s t t s e w h e t h e r s t r i n g i e m p t y o n o t . I i i s a n o t h e rs t r i n g t h a t w i l l r e c o r d p r o p e r l y c a b s u b s t i t u t e d .

I A » Y E S l f : B $ = M : C " N O ME O P E N l , f l , 2 , " D : T E S T , S E Q , W R I T E "3 P R I N T # 1 , A $4 0 I F B $ = " " T H E N B f l * * * n5 P R I N T # 1 , B $b P R I N T # 1 , C $7 C L O S E

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 115/318

1 0 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

I t h e x a m p l e , l i n e 4 f i r s t t e s t s t s e i B i e m p t y . I i t i s , i s u b s t i t u t e sa s t e r i s k s — " * * * " — f o r t h e m p t y s t r i n g . T h a s t e r i s k s w e r e c h o s e n b

c a u s e t h e y w i l l p r o b a b l y n o i n t e r f e r e w i t h a n l e g i t i m a t e i n f o r m a t i o n a n r e c o r d p r o p e r l y . W c o u l d h a v e c h o s e n a n o t h e r s u b s t i t u t e — " F E F F " o " ? ? ? " —a e a s i l y a n l o g i c a l l y .

W h e n t h f i l e i s r e c a l l e d , w t e s t f o t h s u b s t i t u t e .I O P E N l , f l , E , " T E S T , S E Q »E I N P U T # 1 , A $3 I N P O T # 1 , B $4 I B M * * * l f T H E N B M 5 I N P U T # 1 , C $t C L O S EL i n e 4 a s k s i t h s t r i n g i " * * * " a n d , i i t i s , m a k e s B n u l l s t r i n g

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

P r i n t e r f i l e s I n t h e C o m m o d o r e 6 f a m i l y , a n i n f o r m a t i o n c a b p r i n t e d o p a p e r b O P E N i n g f i l e a n s e n d i n g i t t h p r i n t e r . S e c o n d a r ya d d r e s s e s c a p l a y a i m p o r t a n t p a r t i O P E N i n g t h e s e f i l e s , b u t h e s e n u b e r s s o m e t i m e s m e a n d i f f e r e n t t h i n g s t d i f f e r e n t p r i n t e r s . T h C o m m o d o r ep r i n t e r s , i n p a r t i c u l a r , u s s e c o n d a r y a d d r e s s e s t g f r o m t h g r a p h i c s t t h t e x t m o d e , a n t s e u o t h e r o p e r a t i n g c o n d i t i o n s . " S m a r t " p r i n t e ri n t e r f a c e s a l s o i n t e r p r e t s e c o n d a r y a d d r e s s n u m b e r s a o p e r a t i o n a l c o m a n d s . I y o a r u s i n g p r i n t e r o s m a r t i n t e r f a c e , m a k e s u r e t h a t y o r e a dt h m a n u a l s u p p l i e d w i t h i a n l e a r n a b o u t h o t h e s e s e c o n d a r y a d d r e s s e sa r e u s e d . A l s o s t u d y t h s e c t i o n o f t h m a n u a l t h a t c o v e r s s p e c i a l " c o n t r o l "c h a r a c t e r s a n n u m b e r s e q u e n c e s .

M o s t p r i n t e r s a r e c o n t r o l l e d b m i c r o p r o c e s s o r s t h a t e n a b l e v a r i e t yo s p e c i a l f e a t u r e s . N t w p r i n t e r s a r e e x a c t l y a l i k e , h o w e v e r , s i w o u l db i m p o s s i b l e t s u m m a r i z e t h e s e c o d e s .

p r i n t e r f i l e c a b O P E N e d w i t h o n l y t h f i l e n u m b e r a n d e v i c en u m b e r . P r i n t i n g o p a p e r i a l m o s t e x a c t l y l i k e P R I N T i n g o t h v i d e os c r e e n . Y o u s P R I N T # i n s t e a d , b u t p u n c t u a t i o n m a r k s l i k e c o m m a s a n s e m i c o l o n s b e h a v e t h s a m e w a o s c r e e n o r p a p e r .

I O P E N 1 , 5 P R I N T # 1 , " H E Y ! M Y P R I N T E R W O R K S ! "3 C L O S EO n p o t e n t i a l p r o b l e m i t h a t e x t r a , b l a n k l i n e s m a c r e e p i b e t w e e n

t h l i n e s y o a r p r i n t i n g . T h i s d o u b l e s p a c i n g i t h r e s u l t o b o t h t h c o m p u t e r a n d t h e p r i n t e r s e n d i n g " l i n e f e e d " c o m m a n d . T h e a s i e s t w a o t u r n i n g o f t h e e x t r a l i n e f e e d i t e l i m i n a t e i a t h p r i n t e r . ( S e e y o u rm a n u a l . ) S o m e s m a r t i n t e r f a c e s a l s o r e m o v e t h i s e x t r a l i n e f e e d b e f o r ei g e t s t t h p r i n t e r .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 116/318

C r e a t i n g M a i l i n g L i s t P r o g r a m 1 0

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

C r e a t i n g M a i l i n g L i s t P r o g r a md a t a b a s e p r o g r a m i o n e u s e d t s t o r e a n r e a d i n f o r m a t i o n . S u c h

p r o g r a m s r a n g e f r o m s i m p l e t c o m p l i c a t e d , d e p e n d i n g o t h e i r f e a t u r e s .T h o u g h t h p r o g r a m s a r o f t e n c a l l e d " d a t a b a s e s , 1 1 t h e y a r n o t , s t r i c t l ys p e a k i n g . D a t a b a s e s a r a c t u a l l y t h e i n f o r m a t i o n t h a t t h e s e p r o g r a m s a c u m u l a t e . l i s t o b a s e b a l l b a t t i n g a v e r a g e s i a d a t a b a s e . S a r e t h e c l o s i n gs t o c k p r i c e s t h a t a r e p u b l i s h e d i d a i l y n e w s p a p e r . E v e n c o o k b o o k c o u l db c o n s i d e r e d d a t a b a s e o f r e c i p e s . d a t a b a s e c a b e t h o u g h t o a a n o r g a n i z e d g r o u p o i n f o r m a t i o n .

A t h e n o t h i s c h a p t e r y o u ' l l f i n d s i m p l e d a t a b a s e p r o g r a m w r i t t e ni B A S I C t h a t y o c a e n t e r a n b e g i n u s i n g . I c a a c t a s a p e r s o n a l m a i l i n gl i s t . T h o u g h y o c a m a k e p r a c t i c a l u s o i t i i i n t e n d e d t s h o w y o h o

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

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

W h e n y o a r t y p i n g t h p r o g r a m i n t o t h e c o m p u t e r , d i l i t t l e a t i m e a n b c a r e f u l t c o p y e a c h l i n e e x a c t l y a i i p r i n t e d i t h b o o k . A w i t h t h e a r l i e r B A S I C e x a m p l e s , p r e s s t h k e y s s p e c i f i e d b t h w o r d s i n s i d et h s q u a r e b r a c k e t s [ l i k e t h e s e ] , n o t h w o r d s . A l s o , b a w a r e t h a t t h e p r g r a m u s e s b o t h u p p e r a n l o w e r c a s e t e x t , s p u t h c o m p u t e r i t h t y p ew r i t e r m o d e b p r e s s i n g t h C O M M O D O R E a n S H I F T k e y s t o g e t h e r , b e f o r ey o b e g i n t p r o g r a m .

W h e n e n t e r i n g t h i s o a n p r o g r a m , b s u r e t S A V E i t t a p e o d i s kf r e q u e n t l y . Y o u ' l l p r o t e c t y o u r s e l f a g a i n s t l o s i n g a l o y o u r w o r k i t h c o p u t e r s h o u l d b a c c i d e n t a l l y t u r n e d o f f . ( Y o u c a r e w i n d t h c a s s e t t e a n r e c o r d o v e r t h p r e v i o u s l y s t o r e d p o r t i o n , o S A V E o v e r y o u r p r e v i o u s w o r ko d i s k w i t h S A V E " @ : " . ) S e t h s e c t i o n o E s s e n t i a l S k i l l s i y o u ' r e n o s u r e a b o u t h o t d t h i s .

F i n a l l y , y o u ' l l p r o b a b l y m a k e s o m e m i s t a k e s w h i l e t y p i n g t h p r o g r a m .I y o g e a E R R O R m e s s s a g e , i w i l l m o s t l i k e l y b S Y N T A X E R R O R ,d u t h i t t i n g t h w r o n g k e y , o l e a v i n g p u c o l o n o o t h e r B A S I C p u n ct u a t i o n m a r k . S o m e t y p i n g m i s t a k e s , h o w e v e r , w i l l p r o d u c e o t h e r E R R O R sa w e l l . T r t o f i g u r e o u w h a t t h E R R O R i o y o u r o w n , b e f o r e c o m i n gb a g k t t h b o o k . I y o c a n ' t f i n d t h p r o b l e m , l o o k a t h E R R O R m e s s a g e ss c a t t e r e d t h r o u g h o u t t h t e x t , t h e n l o o k a t h l i n e i t h p r i n t e d p r o g r a mL I S T i n g t m a k e s u r e y o u ' v e t y p e d e v e r y t h i n g c o r r e c t l y .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 117/318

1 0 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

D e s i g n i n g t h P r o g r a mW h a t d w w a n t a m a i l i n g l i s t p r o g r a m t d o W s h o u l d h a v e p l a n

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

T h m a i l i n g p r o g r a m s h o u l d b e a b l e t o s t o r e n a m e s , a d d r e s s e s , a n t e l e p h o n e n u m b e r s . W s h o u l d b a b l e t r e a d t h e s e , c h a n g e t h e m i w w a n tt o a n r e c o r d t h e m o t a p e o r d i s k . W s h o u l d h a v e t h o p t i o n o p r i n t i n go u t h m a i l i n g l i s t o p a p e r . F i n a l l y , w s h o u l d b e a b l e t e r a s e a n i n d iv i d u a l p i e c e o i n f o r m a t i o n , o r a l o i t H e r e i m o r e d e t a i l e d d e s c r i p t i o no f t h e p a r t s o t h p r o g r a m :

E n t e r T h i s p o r t i o n o t h p r o g r a m w i l l t a k e i n f o r m a t i o n a n s t o r e i i t h p r o p e r p l a c e i n s i d e t h c o m p u t e r i t h c o r r e c t f o r m a t . I s h o u l d b ee a s y t o u s e , a n w i l l a s f o t h i n f o r m a t i o n b y n a m e , g i v i n g u l i t t l e" n u d g e " e a c h t i m e i w a n t s s o m e t h i n g . T h " E n t e r " p o r t i o n w i l l a l s o k e e pt r a c k o h o w m a n y n a m e / a d d r e s s e n t r i e s t h c o m p u t e r c a h o l d a n h o m a n y h a v e b e e n u s e d .

R e a d T h p u r p o s e o t h i s p r o g r a m i t b a b l e t s e t h n a m e s a n a d d r e s s e s i t h f i l e . S o m e t i m e s , w w i l l w a n t t r e a d a l o t h e i n f o r m a t i o n .A o t h e r t i m e s , w m i g h t o n l y w a n t t r e a d p a r t i c u l a r n a m e , o m a y b e j u s tt h r e c o r d s t h a t m a t c h w i t h Z I c o d e o p h o n e n u m b e r .

C h a n g e O u i n f o r m a t i o n w o n ' t a l w a y s r e m a i n c o r r e c t o c u r r e n t .( P e o p l e m a m o v e o c h a n g e t h e i r p h o n e n u m b e r . ) S t h i s p o r t i o n o t h p r o g r a m w i l l l e u c h a n g e w h a t w w a n t .

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

P r i n t W m a w a n t p a p e r c o p y o f t h e m a i l i n g l i s t . I i r e l a t i v e l ye a s y t a s k t t r a n s f e r t h i n f o r m a t i o n f r o m o u f i l e t t h p r i n t e r .

L o a d a n S v e E v e n t h o u g h w e ' l l c a l l t h e s e s e c t i o n s L o a d a n d S a v e ,w w o n ' t u s t h B A S I C w o r d s L O A D o S A V E . I n s t e a d , w w i l l b c r e a t i n gs e q u e n t i a l f i l e s o t a p e o d i s k , t h e n r e c a l l i n g t h e m .

M e n u T h e n t i r e p r o g r a m w i l l b o p e r a t e d f r o m m e n u s . T h i s w i l ls i m p l i f y i t u s a n a l l o w u t u s t h f u n c t i o n k e y s o t h k e y b o a r d . E a c ho f t h e m a j o r p o r t i o n s o t h p r o g r a m w i l l b e r e a c h e d t h r o u g h " m a i n m e n u . "

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 118/318

P r o g r a m m i n g C o n s i d e r a t i o n s 1 0

P r o g r a m m i n g C o n s i d e r a t i o n sC r e a t i n g m a i l i n g l i s t i s f a i r l y s i m p l e p r o j e c t , s i n c e t h p r o g r a m i

d e s i g n e d t o s t o r e s p e c i f i c k i n d o i n f o r m a t i o n — n a m e s , a d d r e s s e s , a n t e l ep h o n e n u m b e r s . W w i l l u s s i m p l e a r r a y s , o n f o e a c h p a r t i c u l a r p i e c e o i n f o r m a t i o n , n a m e s , s t r e e t n u m b e r s , c i t i e s , s t a t e s , Z I c o d e s a n p h o n e n u b e r s . W w i l l a l s o r e s e r v e n u m e r i c v a r i a b l e t k e e p t r a c k o f h o w m a n ye n t r i e s t h e r e a r e o t h l i s t . H e r e ' s h o t h i s i n f o r m a t i o n w i l l b o r g a n i z e d :N $ ( ) — N a m e sA $ ( ) — A d d r e s s e s ( S t r e e t N u m b e r s )C $ ( ) — C i t i e sS $ ( ) — S t a t e sZ $ ( ) — Z I P c o d e sP $ ( ) — P h o n e n u m b e r s

( T h e s e v a r i a b l e s w i l l a c t u a l l y a p p e a r i l o w e r c a s e , n o c a p i t a l , l e t t e r s i t h p r o g r a m p r i n t e d i t h b o o k a n o y o u r v i d e o s c r e e n . W h y ? W p u t h c o m p u t e r i t h t y p e w r i t e r m o d e a n a l w a y s u s u n S H I F T e d k e y s t e n t e rB A S I C w o r d s a n d v a r i a b l e s . F o t h i s d i s c u s s i o n , t h o u g h , y o u ' l l c o n t i n u e t s e t h e s e i c a p i t a l l e t t e r s . )

S e t t i n g t h a b o v e c a t e g o r i e s l i m i t s t h f l e x i b i l i t y o a n d a t a b a s e p r g r a m , b u m o r e g e n e r a l i z e d p r o g r a m w o u l d h a v e b e e n m a n y t i m e s l a r g e ra n m o r e c o m p l i c a t e d t h a n t h d e m o n s t r a t i o n t h a t w i l l b o f f e r e d h e r e .

W w i l l m a k e r o o m f o 1 0 t o t a l e n t r i e s b D I M e n s i o n i n g e a c h a r r a y t 1 0 0 . T h n u m e r i c v a r i a b l e " N w i l l c o u n t t h t o t a l n u m b e r o e n t r i e s . W s e t t h i s u w i t h t h i s l i n e :1 X = 1 D 1 : D I M N $ ( X ) , A $ ( X ) , C $ ( X ) , S $ ( X ) , Z $ ( X ) , P $ ( X )

: T h v a r i a b l e n a m e d " X 1 1 s t a n d s f o t h t o t a l n u m b e r o i t e m e n t r i e s t h a t

w i l l b s t o r e d , s D I N $ ( X ) i t h s a m e a D I N $ ( 1 0 1 ) . W h u s t h e v a r i a b l ei n s t e a d o 1 0 1 ? B c h a n g i n g w c a n a l w a y s c h a n g e t h t o t a l n u m b e r o p o s s i b l e e n t r i e s b j u s t c h a n g i n g o n e l i n e ( l i n e 1 2 0 ) , i n s t e a d o l o o k i n g f o o t h e r p l a c e s w h e r e t h n u m b e r i u s e d . ( E v e n t h o u g h w w i l l o n l y s t o r e 1 0 c o m p l e t e e n t r i e s , i 1 0 t a c c o m m o d a t e t h r o u t i n e t h a t e r a s e s a e n t r yi t h f i l e . )

S t a r t i n g T P r o g r a mT h s c r e e n c o l o r s c h o s e n b C o m m o d o r e m a k e t e x t o t h s c r e e n s o m e

w h a t d i f f i c u l t t r e a d . W c a c h o o s e o t h e r c o l o r s t h a t w i l l m a k e r e a d i n ge a s i e r .

5 P O K E 5 3 2 6 0 , 1 5 : R E M B O R D E R G R A Y3 P O K E 5 3 2 6 1 , 1 5 : R E M S C R E E N G R A Y

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 119/318

1 0 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

T h e s e n u m b e r s a r P O K E d i n t o t h a p p r o p r i a t e m e m o r y l o c a t i o n s i n s i d et h c o m p u t e r ' s v i d e o c h i p t c h a n g e t h c o l o r s . Y o c a n c h a n g e t h e s e t a n o t h e r c o l o r s t h a t y o p r e f e r b P O K E i n g i t h o t h e r n u m b e r s f r o m t 1 5 ( Y o u ' l l f i n d l i s t i t h s e c t i o n a b o u t c o l o r g r a p h i c s . )

E v e r y t h i n g i t h p r o g r a m w i l l b P R I N T e d o t h e s c r e e n i b l a c k . ( S e el i n e 6 0 . )

L i n e s 4 a n 5 p e r f o r m t w n i c e l i t t l e t r i c k s .A P R I N T C H R $ ( f l )5 P R I N T C H R $ ( 1 4 )I B A S I C , C H R $ ( ) i s p e c i a l w a o P R I N T i n g c h a r a c t e r s o t h s c r e e n .

E a c h c h a r a c t e r h a i t o w n u m b e r , t h n u m b e r i t h p a r e n t h e s e s o C H R $ ( ) .C H R $ ( 8 ) a n C H R $ ( 1 4 ) , t h o u g h , a r s p e c i a l c h a r a c t e r s t h a t d o n ' t a p p e a r o t h s c r e e n .

P R I N T i n g C H R $ ( 8 ) w i l l s w i t c h t h c o m p u t e r f r o m t h g r a p h i c s m o d e t t h t y p e w r i t e r m o d e , t h s a m e a p r e s s i n g t h e S H I F T a n C O M M O D O R Ek e y s t o g e t h e r . I t i s d o n e h e r e i t h p r o g r a m , s o t h a t t h e u s e r n e e d n ' t p r e s st h k e y s . B u w h a t i s o m e o n e p r e s s e s t h o s e t w k e y s t o g e t h e r d u r i n g t h p r o g r a m ? T h a t ' s w h a t C H R $ ( 1 4 ) i f o r . I d i s a b l e s t h S H I F T a n C O M O D O R E k e s o t h a t y o c a n ' t s w i t c h b e t w e e n t h g r a p h i c s a n t y p e w r i t e rm o d e s w i t h o u t r e s e t t i n g t h c o m p u t e r u s i n g t h R E S T O R E k e y .

S i n c e t h i s i m e n u - s t y l e p r o g r a m , a l o i t a c t i v i t i e s b r a n c h o f m a i nl o o p . T h i s l o o p d o e s o n l y t w t h i n g s : I P R I N T s t h m a i n m e n u , t h e n w a i t sf o f u n c t i o n k e t b p r e s s e d , i n d i c a t i n g w h a t y o w a n t t d o E v e r y t h i n gt h a t h a p p e n s i t h p r o g r a m c a a l w a y s b e t r a c e d b a c k t t h i s l o o p , w h i c hs t a r t s a l i n e 6 a n e n d s w i t h G O T O 6 i l i n e 2 2 0 . W h e n k e i p r e s s e d ,t h a p p r o p r i a t e s u b r o u t i n e i s e l e c t e d .

H e r e ' s w h a t t h m a i n m e n u l o o k s l i k e :f l — E n t e rf 3 — R e a df 5 — P r i n tf ? — E r a s ef a — L o a df t — S a v ef b — C h a n g eH e r e i l i s t o t h i m p o r t a n t s u b r o u t i n e s i t h p r o g r a m :

L i n e P u r p o s e o f S u b r o u t i n e1 0 0 0 0 E N T E R — R o u t i n e f o e n t e r i n g d a t a1 1 0 0 0 R E A D — R e a d s n a m e s / a d d r e s s e s1 2 0 0 0 P R I N T — P r i n t s l i s t t p r i n t e r1 3 0 ° 0 E R A S E — D e l e t e s n a m e s / a d d r e s s e s f r o m l i s t1 4 0 ° 0 L O A D — R e c a l l s f i l e f r o m d i s k o r t a p e1 5 0 0 0 S A V E — S t o r e s f i l e o d i s k o t a p e1 6 0 0 0 C H A N G E — C h a n g e s i n f o r m a t i o n i a e n t r y

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 120/318

U s i n g t h P r o g r a m 1 0

U s i n g t h P r o g r a mT h c h o i c e s o w h a t t h m a i l i n g l i s t p r o g r a m o f f e r s a r e q u i t e o b v i o u s

f r o m t h m a i n m e n u . P r e s s i n g t h p r o p e r k e y s w i l l t a k e y o u f r o m p l a c e t p l a c e w i t h i n t h p r o g r a m . T w w o r d s , s c a n a n m a t c h , a r u s e d t d e s c r i b eo t h e r o p t i o n s . S c a n l e t s y o l o o k t h r o u g h a l o f t h e i n f o r m a t i o n i t h n a m e /a d d r e s s f i l e , m a k i n g d e c i s i o n s a y o g a l o n g . M a t c h l e t s y o m a t c h n a m ew i t h o n e i t h f i l e .

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

T h m o s t i m p o r t a n t t h i n g t r e m e m b e r a b o u t u s i n g t h i s p r o g r a m i t h a ti i w r i t t e n i B A S I C a n s u b j e c t t i t l i m i t a t i o n s . T h m a j o r o n i t h a tB A S I C d o e s n o a l l o w y o t u s c o m m a s w h e n e n t e r i n g i n f o r m a t i o n i r e s p o n s e t a I N P U T s t a t e m e n t . F o r e x a m p l e , t h i s i n f o r m a t i o n :J e f f e r s o n S m i t h , A t t o r n e y1 4 I o t a C o u r tC h i c a g o , I l l i n o i s 6 0 6 0 13 1 2 - 5 5 5 - 1 2 1 2m u s t b g i v e n t t h p r o g r a m w i t h o u t t h c o m m a s , s o m e t h i n g l i k e t h i s :J e f f e r s o n S m i t h — A t t o r n e y1 4 I o t a C o u r tC h i c a g oI l l i n o i s6 0 6 0 13 1 2 - 5 5 5 - 1 2 1 2

Y o c a a l s o s k i p i n f o r m a t i o n , a n e n t e r b l a n k ( n u l l s t r i n g ) b j u s tp r e s s i n g R E T U R N .

B c a r e f u l g o i n g f r o m a c t i v i t y t o a c t i v i t y w i t h i n t h p r o g r a m . I s o m ec a s e s y o a r g i v e n a o p p o r t u n i t y t r e t u r n t t h m a i n m e n u b e f o r e c o t i n u i n g . I o t h e r c a s e s , y o m a p r o d u c e a e r r o r . I y o t r r e c a l l i n g t h n a m e / a d d r e s s f i l e f r o m d i s k o r t a p e w i t h o u t f i r s t c r e a t i n g o n e , y o w i l l p r d u c e a e r r o r o w a i t i n t e r m i n a b l y w h i l e t h c a s s e t t e p l a y e r l o o k s f o f i l et h a t i s n ' t t h e r e . I y o t r u s i n g t h p r i n t s e c t i o n w i t h o u t h a v i n g p r i n t e ra t t a c h e d , t h p r o g r a m w i l l s t o p . I e i t h e r c a s e , i y o u h a v e e n t e r e d v a l u a b l ei n f o r m a t i o n , a l o i w i l l b l o s t w h e n y o t y p e R U t g e t h p r o g r a mg o i n g a g a i n .

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

A n o t h e r l i m i t a t i o n i t h u s o s e q u e n t i a l f i l e s . T h e n t i r e f i l e i s s w a p p e db e t w e e n t h c o m p u t e r ' s m e m o r y a n t h d i s k o r t a p e . T h p r o g r a m i s e u t u s 6 0 s t r i n g v a r i a b l e s i D I M e n s i o n e d a r r a y s . S i n c e s t r i n g c a n b ea l a r g e a s 2 5 c h a r a c t e r s , t h i s m e a n s t h a t l o n g s t r i n g s w o u l d s w e l l t h ec o m p u t e r b e y o n d i t l i m i t s i a l 6 0 w e r e a c t u a l l y u s e d . T h C o m m o d o r ec o m p u t e r s c a n b u i l d a n o t h e r k i n d o d i s k f i l e , h o w e v e r , c a l l e d r e l a t i v e f i l e .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 121/318

1 0 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

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

( R e l a t i v e f i l e s a r v e r y c o m p l i c a t e d a n d i f f i c u l t t p r o g r a m . T h e y a r b e y o n d t h s c o p e o b o o k l i k e t h i s o n e , b u a r d i s c u s s e d i s o m e a d v a n c e dB A S I C t e x t s . )

C h o o s i n g D a t a B a s e P r o g r a mA l c o m m e r c i a l l y a v a i l a b l e d a t a b a s e p r o g r a m s a r n o a l i k e , a n d y o u

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

T h f i r s t c o n s i d e r a t i o n i s e l e c t i n g d a t a b a s e p r o g r a m s h o u l d b e t h l a n g u a g e t h a t i i w r i t t e n i n B A S I C i s e l d o m s u i t a b l e f o d a t a b a s e , a n a l l - B A S I C p r o g r a m s s h o u l d p r o b a b l y b a v o i d e d b e c a u s e t h e y w i l l b s l o wa n i n f l e x i b l e . M o s t g o o d d a t a b a s e p r o g r a m s a r w r i t t e n i m a c h i n e c o d e .

F l e x i b i l i t y i a a l l - i m p o r t a n t c o n s i d e r a t i o n . S o m e d a t a b a s e p r o g r a m sr e s t r i c t y o t t h t y p e , a m o u n t , a n l e n g t h o i n d i v i d u a l e n t r i e s . g o o dp r o g r a m , h o w e v e r , w i l l e v e n a l l o w y o t g b e y o n d s i n g l e s c r e e n o i f o r m a t i o n . O n p o i n t o r e f e r e n c e t k e e p i m i n d i t h a t y o s h o u l d b e a b l et d a l m o s t a n y t h i n g y o c a w i t h p a p e r f i l i n g s y s t e m .

A n g o o d d a t a b a s e p r o g r a m w i l l a l s o o f f e r f a s t s o r t i n g c a p a b i l i t i e s . I a d d i t i o n t b e i n g a b l e t o s o r t i n f o r m a t i o n i o n c a t e g o r y , y o s h o u l d a l s ob a b l e t s e l e c t i n f o r m a t i o n t h a t m a t c h e s m o r e t h a n o n c o n d i t i o n . S a y y o uh a v e l o n g m a i l i n g l i s t , a n t h l i s t a l s o c o n t a i n s n a m e s o c e r t a i n c l u bm e m b e r s o p r o f e s s i o n a l a s s o c i a t e s . Y o m a n o o n l y w a n t t s e l e c t t h o s ep e o p l e o y o u r m a i l i n g l i s t w h l i v e i F l o r i d a , b u a l s o t h o s e w h b o t h l i v ei t h a t s t a t e a n a r m e m b e r s o y o u r c l u b . f l e x i b l e , w e l l - w r i t t e n d a t a b a s ep r o g r a m w i l l l e y o u d o t h i s .

M o s t g o o d p r o g r a m s o t h i s t y p e a l s o l e y o p r i n t o u " r e p o r t s . " S i m p l ys t a t e d , r e p o r t i l i s t o t h i n f o r m a t i o n y o w a n t s e l e c t e d f r o m t h t o t a ld a t a b a s e . p o w e r f u l r e p o r t " g e n e r a t o r " w i l l o f f e r m o r e , t o o . I w i l l l e y o d e s i g n t h w a t h i n f o r m a t i o n w i l l b p r i n t e d o t h e p a g e , f i l l i p r e p r i n t e df o r m s , o m a e v e n o f f e r m a t h e m a t i c a l f e a t u r e s t h a t l e y o m a n i p u l a t en u m b e r s f r o m t h d a t a b a s e .

d a t a b a s e d e s i g n e d f o u s w i t h C o m m o d o r e c o m p u t e r s s h o u l d a l w a y su s r e l a t i v e f i l e s . T h o u g h i i p o s s i b l e t h a t s o m e d a t a b a s e p r o g r a m s w i l la p p e a r t h a t u s t h e i r o w u n i q u e t y p e o d i s k f i l e , a n p r o g r a m t h a t o n l yu s e s s e q u e n t i a l f i l e s i l i k e l y t b o l i m i t e d u s e , e x c e p t f o t h s i m p l e s t o a p p l i c a t i o n s .

F i n a l l y , y o u ' l l k n o w g o o d d a t a b a s e p r o g r a m w h e n y o s e o n e . B e c a u s et h e s e p r o g r a m s c a b a m o n g t h m o s t c o m p l e x , t h e y c a a l s o b t h m o s tc o n f u s i n g . Y o s h o u l d b a b l e t u s t h p r o g r a m y o s e l e c t w i t h o u t t h n e e df o a o p e n m a n u a l n e x t t y o a a l t i m e s . T h p r o g r a m s h o u l d b e l o g i c a l ,a n i t c o m m a n d s s h o u l d b e a s y t r e m e m b e r . I i u n d e r s t a n d a b l e t h a t

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 122/318

C h o o s i n g a D a t a B a s e P r o g r a m 1 0

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

S t o r i n g a n r e c a l l i n g i n f o r m a t i o n i a v a l u a b l e a n p r a c t i c a l u s f o a n c o m p u t e r , a n y o s h o u l d n ' t b e w i t h o u t p r o g r a m t h a t p e r f o r m s t h i s g e n e r a lt a s k . Y o m i g h t b s u r p r i s e d t d i s c o v e r , t h o u g h , t h a t w i t h l i t t l e t h o u g h ta n e f f o r t , y o m i g h t b a b l e t w r i t e y o u r o w f i l i n g a n r e c o r d k e e p i n gp r o g r a m s t a i l o r e d t y o u r o w i n d i v i d u a l n e e d s .1 r e * m a i l i n g l i s t p r o g r a m * 1 x = 1 0 1 : d i m n $ ( x ) , a $ ( x ) , c $ ( x ) , s $ ( x ) , z $ ( x ) , p $ ( x ) : n = 02 p o k e 5 3 2 8 0 , 1 2 : r e m b o r d e r g r a y3 p o k e 5 3 2 8 1 , 1 5 : r e s c r e e n g r a y

4 p r i n t c h r $ ( 1 4 ) : r e s w i t c h l o w e r c a s e5 p r i n t c h r $ ( 8 ) : r e d i s a b l e c o m m k e 6 p r i n t " [ c l r ] [ b l k ] [ r v s o n ] M a i l i n g L i s t "7 p r i r i t : p r i n t " [ r v s o n ] f l [ r v s o f f ] E n t e r "8 p r i n t " [ r v s o n ] f 3 [ r v s o f f ] R e a d "9 p r i n t " [ r v s o n ] f 5 [ r v s o f f ] P r i n t "1 0 p r i n t " [ r v s o n ] f 7 [ r v s o f f ] E r a s e "1 1 p r i n t : p r i n t " [ r v s o n ] f 2 [ r v s o f f ] L o a d "1 2 p r i n t " [ r v s o n ] f 4 [ r v s o f f ] S a v e "1 3 p r i n t " [ r v s o n ] f 6 [ r v s o f f ] C h a n g e "1 4 g e t c $ : i f c $ = " " t h e n 1 4 1 5 i f c $ = " [ f l ] " t h e n g o s u b 1 0 0 0 01 6 i f c $ = " [ f 3 ] " t h e n g o s u b 1 1 0 0 01 7 i f c $ = " [ f 5 ] " t h e n g o s u b 1 2 0 0 01 8 i f c $ = " [ f 7 ] " t h e n g o s u b 1 3 0 0 01 9 i f c $ = " [ f 2 ] " t h e n g o s u b 1 4 0 0 02 0 i f c $ = " [ f 4 ] " t h e n g o s u b 1 5 0 0 02 1 i f c $ = " [ f 6 ] " t h e n g o s u b 1 6 0 0 02 2 g o t o 6 1 0 0 0 0 r e m * e n t e r *

1 0 0 0 2 i n > = x - l t h e n r e t u r n1 0 0 0 4 p r i n t " [ c l r ] [ r v s o n ] f l [ r v s o f f ] C o n t i n u e "

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 123/318

1 1 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

1 0 0 0 5 p r i n t " [ r v s o n ] f 8 [ r v s o f f ] R e t u r n t M e n u "1 0 0 0 6 g e t c $ i c $ = n n t h e n 1 0 0 0 61 0 0 0 7 i c $ = " [ f l ] w t h e n 1 0 0 1 01 0 0 0 8 i c $ = " [ f 8 ] " t h e n r e t u r n1 0 0 0 9 g o t o 1 0 0 0 01 0 0 1 0 n = n + l1 0 0 2 0 p r i n t " [ c l r ] [ r v s o n ] E n t e r N a m e s / A d d r e s s e s "1 0 0 3 0 p r i n t " E n t r y # " ; n , - " o f " ? x - l1 0 0 4 0 i n p u t " N a m e " ; n $ ( n )1 0 0 5 0 i n p u t " A d d r e s s " ; a $ ( n )

1 0 0 6 0 i n p u t " C i t y " ; c $ ( n )1 0 0 7 0 i n p u t " S t a t e " ; s $ ( n )1 0 0 8 0 i n p u t f l Z I P " ; z $ ( n )1 0 0 9 0 i n p u t " P h o n e " ; p $ ( n )1 0 1 0 0 p r i n t : p r i n t " [ r v s o n ] A n o t h e r E n t r y ? ( Y / N ) "1 0 1 1 0 g e c $ : i f c $ = " " t h e n 1 0 1 1 01 0 1 1 5 i n > = x - l t h e n r e t u r n1 0 1 2 0 i c $ = " y " t h e n g o t o 1 0 0 1 01 0 1 3 0 i c $ = " n " t h e n r e t u r n1 0 1 4 0 g o t o 1 0 1 1 01 1 0 0 0 r e m * r e a d * 1 1 0 0 5 i n = 0 t h e n r e t u r n1 1 0 1 0 p r i n t 1 1 [ c l r ] [ r v s o n ] R e a d N a m e s / A d d r e s s e s "1 1 0 2 0 p r i n t1 1 0 3 0 p r i n t " [ r v s o n ] f l [ r v s o f f ] R e a d A l l "1 1 0 4 0 p r i n t " [ r v s o n ] f 3 [ r v s o f f ] M a t c h N a m e "1 1 0 5 0 g e t c $ s i f C $ 0 " ' 1 t h e n 1 1 0 5 01 1 0 6 0 i c $ = " [ f l ] " t h e n 1 1 0 9 01 1 0 7 0 i c $ = » [ f 3 ] " t h e n 1 1 2 2 01 1 0 8 0 g o t o 1 1 0 0 01 1 0 9 0 f o r i = l t

1 1 1 0 0 p r i n t " [ c l r ] E n t r y # " ; i ; " o f " , - n

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 124/318

C h o o s i n g a D a t a B a s e P r o g r a m 1 1

1 1 1 1 0 p r i n t " N a m e : " ; n $ ( i )1 1 1 2 0 p r i n t " A d d r e s s : " ; a $ ( i )1 1 1 3 0 p r i n t " C i t y : " ; c $ ( i )1 1 1 4 0 p r i n t " S t a t e : " ; s $ ( i )1 1 1 5 0 p r i n t " Z I P : " ; z $ ( i )1 1 1 6 0 p r i n t " P h o n e : " ; p $ ( i )1 1 1 7 0 p r i n t : p r i n t " [ r v s o n ] P r e s s A n K e t C o n t i n u e "1 1 1 8 0 g e t c $ : i f c $ = " " t h e n 1 1 1 8 01 1 2 0 0 n e x t1 1 2 1 0 r e t u r n

1 1 2 2 0 i n p u t " [ c l r ] M a t c h W h i c h N a m e " ; t $1 1 2 3 0 f o i = t 1 1 2 4 0 i n $ ( i ) = t $ t h e n g o t o 1 1 2 9 01 1 2 5 0 n e x t1 1 2 6 0 p r i n t : p r i n t " [ r v s o n ] N o S u c h N a m e i F i l e "1 1 2 7 0 p r i n t : p r i n t " P r e s s A n y K e y T R e t u r n t M a i n M e n u "1 1 2 8 0 g e t c $ : i f c $ = " " t h e n 1 1 2 8 01 1 2 8 5 r e t u r n1 1 2 9 0 p r i n t " [ c l r ] E n t r y # " ; i ; " o f " ; i1 1 3 0 0 p r i n t " N a m e : " ; n $ ( i )1 1 3 1 0 p r i n t " A d d r e s s : " ; a $ ( i )1 1 3 2 0 p r i n t " C i t y : " ; c $ ( i )1 1 3 3 0 p r i n t " S t a t e : " ; s $ ( i )1 1 3 4 0 p r i n t " Z I P : " ; z $ ( i )

1 1 3 5 0 p r i n t " P h o n e : " ; p $ ( i )1 1 3 6 0 p r i n t : p r i n t " [ r v s o n ] P r e s s A n y K e t R e t u r n t M a i n M e n u "1 1 3 7 0 g e t c $ i c $ = " " t h e n 1 1 3 7 01 1 3 8 0 r e t u r n1 2 0 0 0 r e m * p r i n t *

1 2 0 0 4 p r i n t " [ c l r l [ r v s o n ] f l [ r v s o f f ] C o n t i n u e "1 2 0 0 5 p r i n t " [ r v s o n ] f 8 [ r v s o f f ] R e t u r n t M e n u "1 2 0 0 6 g e t c $ i c $ = " " t h e n 1 2 0 0 6

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 125/318

1 1 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

1 2 0 0 7 i c $ = " [ f l ] " t h e n 1 2 0 1 01 2 0 0 8 i c $ = " [ f 8 ] " t h e n r e t u r n1 2 0 0 9 g o t o 1 2 0 0 01 2 0 1 0 p r i n t - [ c l r ] [ r v s o n ] P r i n t "1 2 0 2 0 o p e n 1 , 4 , 41 2 0 3 0 f o r i = l t 1 2 0 4 0 p r i n t # l , n $ ( i )1 2 0 5 0 p r i n t # l , a $ ( i )1 2 0 6 0 p r i n t # l , c $ ( i )1 2 0 7 0 p r i n t # l , s $ ( i )1 2 0 8 0 p r i n t # l , z $ ( i )1 2 0 9 0 p r i n t # l , p $ ( i )1 2 1 0 0 p r i n t # l , c h r $ ( 1 3 )1 2 1 1 0 n e x t1 2 1 2 0 c l o s e1 2 1 3 0 r e t u r n1 3 0 0 0 r e m * e r a s e *

1 3 0 0 2 i f n = 0 t h e n r e t u r n1 3 0 0 4 p r i n t " [ c l r ] [ r v s o n ] f l [ r v s o f f ] C o n t i n u e "1 3 0 0 5 p r i n t " [ r v s o n ] f 8 [ r v s o f f ] R e t u r n t M e n u "1 3 0 0 6 g e c $ i c $ = " " t h e n 1 3 0 0 61 3 0 0 7 i c $ = " [ f l ] " t h e n 1 3 0 1 01 3 0 0 8 i c $ = " [ f 8 ] " t h e n r e t u r n1 3 0 0 9 g o t o 1 3 0 0 01 3 0 1 0 p r i n t " [ c l r ] [ r v s o n ] E r a s e N a m e s / A d d r e s s e s "1 3 0 3 0 p r i n t " [ r v s o n ] f l [ r v s o f f ] S c a n A l l "1 3 0 4 0 p r i n t " [ r v s o n ] f 3 [ r v s o f f ] M a t c h N a m e "1 3 0 5 0 g e t c $ : i f c $ = " " t h e n 1 3 0 5 01 3 0 6 0 i c $ = " [ f l ] " t h e n 1 3 0 9 01 3 0 7 0 i c $ = " [ f 3 ] " t h e n 1 3 2 3 01 3 0 8 0 g o t o 1 3 0 0 01 3 0 9 0 f o i = t

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 126/318

C h o o s i n g D a t a B a s e P r o g r a m 1 1

1 3 1 0 0 p r i n t " [ c l r ] E n t r y # " ; i ; n o £ " ; n1 3 1 1 0 p r i n t " N a m e : M ; n $ ( i )1 3 1 2 0 p r i n t " A d d r e s s : " ; a $ ( i )1 3 1 3 0 p r i n t " C i t y : " ; c $ ( i )1 3 1 4 0 p r i n t " S t a t e : " ; s $ ( i )1 3 1 5 0 p r i n t " Z I P : " ; z $ ( i )1 3 1 6 0 p r i n t " P h o n e : f l ; p $ ( i )1 3 1 7 0 p r i n t : p r i n t " [ r v s o n ] f l [ r v s o f f ] C o n t i n u e "1 3 1 8 0 p r i n t : p r i n t " [ r v s o n ] f 8 [ r v s o f f ] E r a s e "1 3 1 9 0 g e t c $ : i f c $ = " " t h e n 1 3 1 9 01 3 2 0 0 i c $ = " [ f l ] " t h e n g o t o 1 3 2 2 51 3 2 1 0 i c $ = " [ f 8 ] " t h e n g o s u b 1 3 8 0 0 : g o t o 1 3 2 2 41 3 2 2 0 g o t o 1 3 1 9 01 3 2 2 4 n = n - l : i = i - l1 3 2 2 5 n e x t1 3 2 2 6 r e t u r n1 3 2 3 0 i n p u t " [ c l r ] M a t c h W h i c h N a m e " ; t $

1 3 2 4 0 f o i = t 1 3 2 5 0 i n $ ( i ) = t $ t h e n g o s u f c 1 3 8 0 0 : n = n - l : i = i - l1 3 2 6 0 n e x t1 3 2 6 5 r e t u r n1 3 2 7 0 p r i n t . - p r i n t " [ r v s o n ] N o S u c h N a m e i F i l e "1 3 2 8 0 p r i n t : p r i n t " P r e s s A n K e T R e t u r n t M a i n M e n u "1 3 2 9 0 g e t c $ : i f c $ = " " t h e n 1 1 2 8 01 3 8 0 0 f o r k = i t 1 3 8 1 0 n $ ( k ) = n $ ( k + l )1 3 8 2 0 a $ ( k ) = a $ ( k + l )1 3 8 3 0 c $ ( k ) = c $ ( k + l )1 3 8 4 0 s $ ( k ) = s $ ( k + l )1 3 8 5 0 z $ ( k ) = z $ ( k + l )1 3 8 6 0 p $ ( k ) = p $ ( k + l )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 127/318

1 1 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

1 3 8 7 0 n e x t1 3 8 8 0 r e t u r n1 4 0 0 0 r e * l o a d * 1 4 0 0 4 p r i n t " [ c l r ] [ r v s o n ] f l [ r v s o f f ] C o n t i n u e "1 4 0 0 5 p r i n t 1 1 [ r v s o n ] f 8 [ r v s o f f ] R e t u r n t M e n u "1 4 0 0 6 g e t c $ i c $ = " " t h e n 1 4 0 0 61 4 0 0 7 i c $ = " [ f l ] M t h e n 1 4 0 1 01 4 0 0 8 i c $ = " [ f 8 ] " t h e n r e t u r n1 4 0 0 9 g o t o 1 4 0 0 01 4 0 1 0 p r i n t " [ c l r ] [ r v s o n ] L o a d F i l e "1 4 0 2 0 p r i n t : p r i n t " [ r v s o n ] f l [ r v s o f f ] L o a d f r o m d i s k "1 4 0 3 0 p r i n t " [ r v s o n ] f 4 [ r v s o f f ] L o a d f r o m T a p e "1 4 0 4 0 g e c $ : i f c $ = " " t h e n 1 4 0 4 01 4 0 5 0 i c $ = " [ f l ] " t h e n 1 4 1 0 01 4 0 6 0 i c $ = " [ f 4 ] " t h e n 1 4 2 5 01 4 0 7 0 g o t o 1 4 0 4 0

1 4 1 0 0 o p e n l , 8 f 3 , " 0 : m a i l l i s t , s e q "1 4 1 4 0 i n p u t # l , n1 4 1 5 0 f o r i = l t 1 4 1 6 0 i n p u t # l , n $ ( i )1 4 1 7 0 i n p u t # l , a $ ( i )1 4 1 8 0 i n p u t # l , c $ ( i )1 4 1 9 0 i n p u t # l , s $ ( i )1 4 2 0 0 i n p u t # l , z $ ( i )1 4 2 1 0 i n p u t # l , p $ ( i )1 4 2 2 0 n e x t1 4 2 3 0 c l o s e1 4 2 4 0 r e t u r n1 4 2 5 0 o p e n 1 , 1 , 1 , " m a i l l i s t "1 4 2 6 0 g o t o 1 4 1 4 01 5 0 0 0 r e m * s a v e *

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 128/318

C h o o s i n g D a t a B a s e P r o g r a m 1 1

1 5 0 0 2 i n = 0 t h e n r e t u r n1 5 0 0 4 p r i n t 1 1 [ c l r ] [ r v s o n ] f l [ r v s o f f ] C o n t i n u e "1 5 0 0 5 p r i n t " [ r v s o n ] f 8 [ r v s o f f ] R e t u r n t M e n u "1 5 0 0 6 g e t c $ i c $ = " " t h e n 1 5 0 0 61 5 0 0 7 i c $ = " [ f l ] " t h e n 1 5 0 1 01 5 0 0 8 i c $ = " [ f 8 ] " t h e n r e t u r n1 5 0 0 9 g o t o 1 5 0 0 01 5 0 1 0 p r i n t " [ c l r ] [ r v s o n ] S a v e F i l e "1 5 0 2 0 p r i n t : p r i n t " [ r v s o n ] f l [ r v s o f f ] S a v e t D i s k 1 1

1 5 0 3 0 p r i n t " [ r v s o n ] f 4 [ r v s o f f ] S a v e t T a p e "

1 5 0 4 0 g e t c $ : i f c $ = " " t h e n 1 5 0 4 01 5 0 5 0 i c $ = " [ f l ] " t h e n 1 5 1 0 01 5 0 6 0 i c $ = " [ f 4 ] " t h e n 1 5 2 5 01 5 0 7 0 g o t o 1 5 0 4 01 5 1 0 0 o p e n 1 , 8 , 1 51 5 1 1 0 p r i n t # l , " s 0 : m a i l l i s t "1 5 1 2 0 c l o s e

1 5 1 3 0 o p e n l , 8 , 3 , " 0 : m a i l l i s t , s e q , w r i t e "1 5 1 4 0 p r i n t # l , n1 5 1 5 0 f o r i = l t 1 5 1 6 0 p r i n t # l , n $ ( i )1 5 1 7 0 p r i n t # l , a $ ( i )1 5 1 8 0 p r i n t # l , c $ ( i )1 5 1 9 0 p r i n t # l , s $ ( i )1 5 2 0 0 p r i n t # l , z $ ( i )1 5 2 1 0 p r i n t # l , p $ ( i )1 5 2 2 0 n e x t1 5 2 3 0 c l o s e1 5 2 4 0 r e t u r n1 5 2 5 0 o p e n 1 , 1 , 1 , " m a i l l i s t "1 5 2 6 0 g o t o 1 5 1 4 01 6 0 0 0 r e * c h a n g e *

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 129/318

1 1 6 — P r o g r a m m i n g — H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n

1 6 0 0 2 i n = 0 t h e n r e t u r n1 6 0 0 4 p r i n t " [ c l r ] [ r v s o n ] f l [ r v s o f f ] C o n t i n u e "1 6 0 0 5 p r i n t " [ r v s o n ] f 8 [ r v s o f f ] R e t u r n t M e n u "1 6 0 0 6 g e c $ i c $ = " " t h e n 1 6 0 0 61 6 0 0 7 i c $ = " [ f l ] " t h e n 1 6 0 1 01 6 0 0 8 i c $ = " [ f 8 ] " t h e n r e t u r n1 6 0 0 9 g o t o 1 6 0 0 01 6 0 1 0 p r i n t " [ c l r ] [ r v s o n ] C h a n g e E n t r y "1 6 0 2 0 p r i n t : p r i n t " [ r v s o n ] f l [ r v s o f f ] S c a n C h a n g e "1 6 0 3 0 p r i n t " [ r v s o n ] f 3 [ r v s o f f ] M a t c h "1 6 0 4 0 g e t c $ : i f c $ = " " t h e n 1 6 0 4 01 6 0 5 0 i c $ = " [ f l ] " t h e n 1 6 1 0 01 6 0 6 0 i c $ = " [ f 3 ] " t h e n 1 6 3 0 01 6 0 7 0 g o t o 1 6 0 4 01 6 1 0 0 f o r i = l t 1 6 1 1 0 p r i n t « [ c l r ] " ; n $ ( i )1 6 1 2 0 p r i n t a $ ( i )

1 6 1 3 0 p r i n t c $ ( i )1 6 1 4 0 p r i n t s $ ( i )1 6 1 5 0 p r i n t z $ ( i )1 6 1 6 0 p r i n t p $ ( i )1 6 1 7 0 p r i n t : p r i n t " [ r v s o n ] f l [ r v s o f f ] C o n t i n u e "1 6 1 8 0 p r i n t " [ r v s o n ] f 3 [ r v s o f f ] C h a n g e "1 6 1 9 0 g e t c $ : i f c $ = " " t h e n 1 6 1 9 01 6 2 0 0 i c $ = " [ f l ] " t h e n g o t o 1 6 2 3 01 6 2 1 0 i c $ = " [ f 3 ] " t h e n g o s u b 1 6 8 0 0 : g o t o 1 6 2 3 01 6 2 2 0 g o t o 1 6 1 9 01 6 2 3 0 n e x t1 6 2 4 0 r e t u r n1 6 3 0 0 p r i n t " [ c l r ] "1 6 3 1 0 i n p u t " M a t c h w i t h w h a t n a m e " ; m $1 6 3 2 0 f o r i = l t o n

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 130/318

C h o o s i n g a D a t a B a s e P r o g r a m 1 1

1 6 3 3 0 i f n $ ( i ) = m $ t h e n g o s u b 1 6 5 0 0 : r e t u r n1 6 3 4 0 n e x t1 6 3 5 0 p r i n t " [ r v s o n ] N o s u c h n a m e i f i l e "1 6 3 6 0 p r i n t " [ r v s o n ] P r e s s A n K e t R e t u r n t M a i n M e n u "1 6 3 7 0 g e t c $ : i f c $ = " " t h e n 1 6 3 7 01 6 3 8 0 r e t u r n1 6 5 0 0 p r i n t " [ c l r ] " ; h $ ( i

1 6 5 1 0 p r i n t a $ ( i )1 6 5 2 0 p r i n t c $ ( i )1 6 5 3 0 p r i n t s $ ( i )

1 6 5 4 0 p r i n t z $ ( i )1 6 5 5 0 p r i n t p $ ( i )1 6 8 0 0 p r i n t " l N a m e "1 6 8 1 0 p r i n t " 2 A d d r e s s "1 6 8 2 0 p r i n t " 3 C i t y "1 6 8 3 0 p r i n t " 4 S t a t e "1 6 8 4 0 p r i n t " 5 Z I P "1 6 8 5 0 p r i n t " 6 P h o n e "1 6 8 6 0 p r i n t : i n p u t " C h a n g e W h i c h " ; c1 6 8 7 0 o g o s u b 1 6 9 1 0 , 1 6 9 2 0 f 1 6 9 3 0 , 1 6 9 4 0 , 1 6 9 5 0 , 1 6 9 6 01 6 8 8 0 r e t u r n1 6 9 1 0 p r i n t : i n p u t " T o W h a t " ; d $ : n $ ( i ) = d $ : i = i - l : r e t u r n1 6 9 2 0 p r i n t : i n p u t " T o W h a t " ; d $ : a $ ( i ) = d $ : i = i - l : r e t u r n1 6 9 3 0 p r i n t : i n p u t " T o W h a t " ; d $ : c $ ( i ) = d $ : i = i - l : r e t u r n1 6 9 4 0 p r i n t : i n p u t " T o W h a t " ; d $ : s $ ( i ) = d $ : i = i - l : r e t u r n1 6 9 5 0 p r i n t : i n p u t " T o W h a t " ; d $ : z $ ( i ) = d $ : i = i - l : r e t u r n1 6 9 6 0 p r i n t : i n p u t " T o W h a t " ; d $ : p $ ( i ) = d $ : i = i - l : r e t u r n

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 131/318

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 132/318

P r o g r a m m i n g —T h R e s t o B A S I C

Y o u ' l l b s u r p r i s e d a t h n u m b e r o p r o g r a m s t h a t y o c a w r i t e w i t h t h B A S I C w o r d s y o u ' v e a l r e a d y l e a r n e d . T h e y a r n o a l t h w o r d s i t h c o p u t e r ' s v o c a b u l a r y , h o w e v e r .

I t h i s c h a p t e r , y o u ' l l l e a r n l i t t l e a b o u t h o t h r e s t o B A S I C w o r k s .Y o u ' l l k n o w w h a t P E E K a n P O K E , S Y a n U S R , C M D , S P a n T A B ,S T O P a n W A I T , a n O m e a n .

I y o a r i n t e r e s t e d i u s i n g t h c o m p u t e r f o m a t h , y o u ' l l w a n t t k n o wa b o u t t h m a t h e m a t i c a l f u n c t i o n s o I N T , A B S , S G N , S Q R , S I N , C O S , T A N ,A T N , D E a n F N

Y o u ' l l s e e h o s t r i n g s c a n b e t a k e n a p a r t a n p u b a c k t o g e t h e r a g a i nw i t h L E N , V A L , S T R $ , A S C , C H R $ . , L E F T $ , M I D $ , R I G H T $ .T h e s e , a l o n g w i t h e x p l a n a t i o n s o B A S I C w o r d s i o t h e r c h a p t e r s i t h i sb o o k , c o m p l e t e t h B A S I C s t o r y .

P E E K a n P O K ET h e t w o m o s t s t r a i g h t f o r w a r d w o r d s i B A S I C a r P E E K a n P O K E .

T h o u g h t h e i r n a m e s s o m e t i m e s e v o k e c h u c k l e s , t h t w o w o r d s a r c o m p l e t e l yd e s c r i p t i v e o f t h e i r f u n c t i o n s . P E E K l e t s y o l o o k a t h c o n t e n t s o l o c a t i o n

1 1

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 133/318

1 2 7 — P r o g r a m m i n g — T h e R e s t o B A S I C

i t h c o m p u t e r ' s m e m o r y . P O K E p u t s n u m b e r i n t o a n l o c a t i o n i m e o r y . T h t w o w o r d s a r o f t e n c a l l e d " m a c h i n e l e v e l 1 1 c o m m a n d s , s i n c e t h e yd e a l d i r e c t l y w i t h t h c o m p u t e r ' s m e m o r y .

P E E K a n P O K E w i l l l e y o p l a y w i t h t h m a c h i n e — k i n d o l i k e p l a y i n gw i t h t h i n s i d e s o a a u t o e n g i n e o r o t h e r m e c h a n i c a l d e v i c e . P O K E i a l s oe s s e n t i a l f o m a k i n g c o l o r g r a p h i c s a n s o u n d o n t h C o m m o d o r e 6 4 P u t t i n gc e r t a i n n u m b e r s i s p e c i f i c m e m o r y l o c a t i o n s c a e v e n a f f e c t t h w a t h c o m p u t e r w o r k s . ( Y o u c a n a l s o " c r a s h " t h c o m p u t e r s o t h a t i w i l l n l o n g e rr e s p o n d t y o u b y P O K E i n g t h w r o n g n u m b e r i n t o t h w r o n g m e m o r y l c a t i o n , b u d o n ' t w o r r y , y o c a n ' t d a m a g e i t J u s t t u r n t h c o m p u t e r o f t h e no a g a i n , a n e v e r y t h i n g w i l l b b a c k t n o r m a l . A n P E E K n e v e r a f f e c t st h c o m p u t e r a a l l . )

P O K E i a l w a y s f o l l o w e d b m e m o r y l o c a t i o n , c o m m a , t h e n n u m b e ro n u m e r i c v a r i a b l e t h a t w i l l b p u i n t o t h a t p l a c e i m e m o r y . T h o n l yn u m b e r s t h a t c a b P O K E d i n t o m e m o r y l o c a t i o n s a r t h o s e b e t w e e n( z e r o ) a n 2 5 5 . ( W a n t t k n o w w h y ? C h e c k t h " E x p l o r i n g " c h a p t e r s a t h b a c k o t h i s b o o k . ) T h C o m m o d o r e 6 4 h a s 6 4 K , o 6 5 , 5 3 6 d i f f e r e n t m e m o r yl o c a t i o n s t h a t y o c a P O K E n u m b e r s i n t o . T h n u m b e r i m m e d i a t e l y f o l o w i n g P O K E m u s t b w h o l e n u m b e r b e t w e e n a n 6 5 5 3 5 , o r n u m e r i cv a r i a b l e t h a t s t a n d s f o o n o f t h o s e n u m b e r s .

P O K E c a n b e u s e d i p r o g r a m l i n e , o d i r e c t l y f r o m t h k e y b o a r d .P O K E 5 3 5 7 E , 2 3

o

I P O K E S 3 S 7 3 , S 3I n t h e e x a m p l e a b o v e , P O K E i n g t h n u m b e r 2 i n t o m e m o r y l o c a t i o n

5 3 2 7 2 s w i t c h e s t h c o m p u t e r f r o m t h g r a p h i c c h a r a c t e r s e ( c a p i t a l l e t t e r sa n g r a p h i c s y m b o l s ) t t h t y p e w r i t e r c h a r a c t e r s e ( c a p i t a l a n l o w e r c a s el e t t e r s ) . P O K E i n g 2 i n t o 5 3 2 7 2 w i l l s w i t c h t h c o m p u t e r b a c k a g a i n . T h i sm e m o r y l o c a t i o n i i t h c o m p u t e r ' s V I v i d e o c o n t r o l l e r c h i p .

D i f f e r e n t n u m b e r s i d i f f e r e n t l o c a t i o n s d d i f f e r e n t t h i n g s . T u s P O K E ,s t u d y t h m e m o r y m a l o c a t e d n e a r t h e n o t h b o o k . M e a n w h i l e , t r P O K E i n g n u m b e r s ( z e r o ) t 1 5 i n t o m e m o r y l o c a t i o n s 5 2 3 8 0 a n 5 3 2 8 1a n s e w h a t h a p p e n s t t h v i d e o s c r e e n .

A l w a y s u s P E E K w i t h t h n u m b e r o l o c a t i o n i m e m o r y ( t 6 5 5 3 5 ) .T h i s n u m b e r s h o u l d b e e n c l o s e d i p a r e n t h e s e s — ( ) . Y o c a u s i e i t h e r i

p r o g r a m , o d i r e c t l y f r o m t h k e y b o a r d . U s u a l l y , y o P R I N T t h r e s u l t s o P E E K i y o a r t y p i n g d i r e c t l y o t h k e y b o a r d .

P R I N T P E E K ( 5 3 E 7 E )I p r o g r a m , y o c a a l s o s t o r e t h n u m b e r y o g e w i t h P E E K a

n u m e r i c v a r i a b l eI A = P E E K ( 5 3 E 7 E )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 134/318

P E E K a n P O K E 1 2

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RI L L E G A L Q U A N T I T Y E R R O R

W h e n t h i s E R R O R o c c u r s i p r o g r a m l i n e w i t h P O K E s t a t em e n t , c h e c k t s e t h a t n n u m b e r g r e a t e r t h a n 2 5 5 o l e s s t h a n( z e r o ) i b e i n g p u t i n t o l o c a t i o n i m e m o r y , I v a r i a b l e s a r e u s e d ,c h e c k t h n u m b e r s t h e y s t a n d f o r t o s e i t h e y w e r e c a l c u l a t e d t g r e a t e r t h a n 2 5 5 o l e s s t h a n 0

U s i n g P E E K a n P O K E c a m a k e p r o g r a m c o n f u s i n g , s i n c e w h a t y o a r d o i n g i n o o b v i o u s . A l s o , r e l y i n g o t o m a n y P E E K s a n P O K E s c a m a k e y o u r p r o g r a m i n c o m p a t i b l e w i t h o t h e r C o m m o d o r e c o m p u t e r m o d e l s ,s i n c e b o t h w o r d s m a k e u s o s p e c i f i c f e a t u r e s o e a c h c o m p u t e r m o d e l .S o m e t i m e s , t h o u g h , f o i n s t a n c e , i p r o g r a m m i n g g r a p h i c s a n s o u n d , y o j u s t c a n ' t g e a w a y f r o m u s i n g t h t w w o r d s .

S Y a n U S S Y s t a n d s f o t h w o r d S Y S t e m a n i u s e d t s w i t c h o u t o B A S I C

a n i n t o " m a c h i n e c o d e " p r o g r a m o s u b r o u t i n e . M a c h i n e c o d e i m o r er u d i m e n t a r y — t h o u g h m o r e d i f f i c u l t — m e a n s o p r o g r a m m i n g t h c o m p u t e r .I t a d v a n t a g e i s p e e d . M a c h i n e c o d e p r o g r a m s o f t e n r u h u n d r e d s o t i m e sf a s t e r t h a n t h e i r B A S I C c o u n t e r p a r t s .

S Y i f o l l o w e d b t h m e m o r y l o c a t i o n t h a t b e g i n s t h m a c h i n e c o d ep r o g r a m o r s u b r o u t i n e . I c a b e u s e d i p r o g r a m o d i r e c t l y f r o m t h k e y b o a r d . F o e x a m p l e :

S Y S ( E D b l )o

I S Y S ( E D t l )A f t e r m a c h i n e c o d e s u b r o u t i n e h a b e e n e x e c u t e d , t h e c o m p u t e r r e t u r n s

t i t B A S I C p r o g r a m .U S s t a n d s f o U S e R , a n d d o e s j u s t a b o u t t h s a m e t h i n g a S Y S , b u

w o r k s d i f f e r e n t l y . I i m o r e c o m p l i c a t e d , a n i u s e d i p r o g r a m s l e s s o f t e nt h a n S Y S .

1 D O S R ( 1 D )T h i s c o m m a n d s e n d s t h p r o g r a m t m a c h i n e c o d e s u b r o u t i n e t h a t

b e g i n s a t h a d d r e s s s t o r e d i m e m o r y l o c a t i o n s 7 8 a n 7 8 a n t r a n s f e r st h n u m b e r ( o v a l u e o t h n u m e r i c v a r i a b l e ) i p a r e n t h e s e s t p a r t o t h c o m p u t e r k n o w n a t h " f l o a t i n g p o i n t a c c u m u l a t o r . "

S i n c e b o t h S Y a n U S r e l a t e t t h u s o m a c h i n e c o d e p r o g r a m s ,t h e y a r e n ' t i n t e n d e d f o n o v i c e p r o g r a m m e r s . H o w e v e r , y o w i l l o c c a s i o n a l l yu s S Y S , i n s t e a d o R U N , t s t a r t m a c h i n e c o d e p r o g r a m o p e r a t i n g .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 135/318

1 2 7 — P r o g r a m m i n g — T h e R e s t o B A S I C

C M I t ' s n o q u i t e c l e a r w h a t C M s t a n d s f o r , b u i i p r o b a b l y s h o r t f o

C o M m a n D . C M p e r f o r m s s i m p l e f u n c t i o n — s w i t c h i n g i n f o r m a t i o n t h a tw o u l d o r d i n a r i l y b P R I N T e d o t h v i d e o s c r e e n t a n o t h e r d e v i c e l i k e t h c a s s e t t e r e c o r d e r o r d i s k d r i v e . U s u a l l y , C M i u s e d t s e n d i n f o r m a t i o n t

p r i n t e r . I i f o l l o w e d b a d e v i c e n u m b e r , w o r k s w i t h t h O P E N a n C L O S Es t a t e m e n t s ( s e e " H o w t h C o m p u t e r S t o r e s I n f o r m a t i o n 1 ' ) , a n i f o l l o w e db f i l e n u m b e r . I c a b u s e d i p r o g r a m o d i r e c t l y f r o m t h k e y b o a r d .

H e r e i t h m o s t c o m m o n e x a m p l e o h o C M i u s e d . T h i s p r o c e d u r eL I S T s B A S I C p r o g r a m o t h p r i n t e r . Y o c a e n t e r i d i r e c t l y f r o m t h k e y b o a r d , o r u s e i i p r o g r a m .

O P E N 1 , 4 , 4C M L I S TC L O S ET h s e q u e n c e O P E N s f i l e n u m b e r o d e v i c e n u m b e r ( t h e p r i n t e r ) ,

w i t h t h s e c o n d a r y a d d r e s s o 4 C M r e f e r s t o t h f i l e n u m b e r . L I S T w o u l do r d i n a r i l y P R I N T t h p r o g r a m L I S T i n g o n t o t h v i d e o s c r e e n , b u s i n c e C M s w i t c h e d i t t h p r i n t e r , i w i l l a p p e a r t h e r e i n s t e a d . C L O S E s h u t s f i l en u m b e r 1

S P a n T A B o t h o f t h e s e w o r d s a r u s e d w i t h P R I N T . S P s t a n d s f o S P a C e , a n

T A m e a n s t a b u l a t i o n ( s i m i l a r t o t y p e w r i t e r f u n c t i o n ) .I P R I N T S P C ( 1 7 ) " T E S T "

o

I P R I N T T A B ( 1 7 ) " T E S T "E a c h o f t h e s e c o m m a n d s w i l l m o v e t h c u r s o r 1 s p a c e s f r o m i t p r e s e n t

l o c a t i o n a n t h e n P R I N T t h w o r d T E S T . T A a n S P d i f f e r f r o m e a c ho t h e r i t h a t T A c a n n o t b e u s e d w i t h P R I N T # ( f i l e - h a n d l i n g w o r d ) , b u S P c a n . T A a l w a y s u s e s m e a s u r e s f r o m t h e l e f t m o s t s c r e e n p o s i t i o n ( c o lu m 1 ) W h e n e i t h e r w o r d i u s e d w i t h P R I N T , t h s p a c e s t h e y p u o t h s c r e e n a r e n o n d e s t r u c t i v e . T h a t i s t h e y d n o e r a s e w h a t w a t h e r e b e f o r e .I t h a t r e s p e c t , S P a n T A d o n ' t P R I N T s p a c e s a a l l .

S T O P a n W A I TS T O P i h a n d y w o r d f o r t e s t i n g p r o g r a m s . Y o c a b u r y i a n y w h e r e

i p r o g r a m t h e l p d e t e r m i n e h o i i w o r k i n g . A e x a m p l e : c e r t a i n

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 136/318

S T O P a n W A I T 1 2

p o r t i o n o y o u r p r o g r a m i n o p e r f o r m i n g c o r r e c t l y . Y o c a i n s e r t S T O Pi t h a r e a o f t h e l i n e s y o a r h a v i n g t r o u b l e w i t h . W h e n S T O P i e n c o u nt e r e d , i h a t h s a m e e f f e c t a p r e s s i n g t h e R U N / S T O P k e y . Y o u ' l l s e em e s s a g e o n t h v i d e o s c r e e n s o m e t h i n g l i k e t h i s :

B R E A K I L I N E 1 D ( o i w h i c h e v e r l i n e t h p r o g r a m f o u n d S T O P )T h i s w a y , y o u ' l l k n o w i t h p r o g r a m e v e r g o t t t h a t l i n e , a n d , i i d i d ,

t h a t i i w o r k i n g c o r r e c t l y u t t h a t p o i n t . R e s t a r t t h p r o g r a m b y t y p i n gC O N T . ( I y o u s R U N , t h p r o g r a m w i l l s t a r t f r o m t h b e g i n n i n g w i t h a l e m p t y v a r i a b l e s . )

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RC A N ' T C O N T I N U E E R R O R

C O N T c a b u s e d t c o n t i n u e a p r o g r a m a f t e r t h R U N / S T O P k e w a p r e s s e d o t h w o r d S T O P w a u s e d . I y o c h a n g e a n l i n ei t h p r o g r a m d u r i n g b r e a k , h o w e v e r , t h a b o v e E R R O R w i l la p p e a r . I w i l l a l s o b s e e n w h e n t h p r o g r a m h a n o b e e n R U a a l l . I e i t h e r c a s e , R U t h p r o g r a m ( a g a i n ) .

W A I T i c o m p l e t e l y d i f f e r e n t . I t i s u s e d w i t h p a t t e r n s o i n d i v i d u a l b i t si m e m o r y l o c a t i o n s . W h e n t h c o m p u t e r s e e s W A I T , i w i l l p a u s e u n t i l t h n u m b e r s t o r e d i p a r t i c u l a r l o c a t i o n m a t c h e s t h c o n d i t i o n s e u b W A I T .M a n y ( i n o m o s t ) p r o g r a m m e r s f i n d W A I T m y s t i f y i n g a n e v e n C o m m o d o r es u g g e s t s t h a t y o d o n ' t u s i t I y o a r u t t h e c h a l l e n g e , h o w e v e r , t a k e

l o o k a a n r e f e r e n c e w o r k o C o m m o d o r e B A S I C .

O T h i s i o n o t h m o s t i n t e l l i g e n t a n i n t r i g u i n g w o r d s i B A S I C , y e

m a n y p r o g r a m m e r s n e v e r u s i t M a y b e t h i s i b e c a u s e O l o o k s u n u s u a l i u s a n d p r o g r a m m e r s d o n ' t t a k e t i m e t l e a r n a b o u t i t I i e x t r e m e l y s i m p l et o u s e .

O i u s e d w i t h n u m e r i c v a r i a b l e a n o n o m o r e G O T O o G O S U Bs t a t e m e n t s . t y p i c a l O l i n e l o o k s l i k e t h i s :

E O G O S O B 1 Q D , 1 5 D , i f l D , E E W h e n t h n u m b e r t h a t s t a n d s f o i 1 t h p r o g r a m w i l l G O S U B t

l i n e 1 0 0 . W h e n i i 2 i w i l l G O S U B t o 1 5 0 . T h n u m b e r f o m a k e s t h p r o g r a m G O S U B t l i n e 1 8 0 , a n s o n

T r t h i s e x a m p l e :I I N P U T " T Y P E N U M B E R F R O M T 5 " E O G O S U B 1 D 0 , 1 5 D , I f l D , E E 3 G O T O I 1 D P R I N T " O N E "1 1 R E T U R N1 5 P R I N T " T W O 1 1l t R E T U R N

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 137/318

1 2 7 — P r o g r a m m i n g — T h e R e s t o B A S I C

i f l D P R I N T " T H R E E "i q R E T U R NE E P R I N T " F O U R "E 3 R E T U R NT h e p r o g r a m f i r s t P R I N T s T Y P E N U M B E R F R O M T 5 t h e n w a i t sf o y o t I N P U T n u m b e r a n p r e s s R E T U R N . T h a t n u m b e r b e c o m e s t h

n u m e r i c v a r i a b l e A I i l i n e 2 0 A 1 t h e n t h p r o g r a m G O S U B s t o l i n e1 0 0 , P R I N T s t h w o r d O N E , a n R E T U R N S . T h w h o l e t h i n g s t a r t s o v e ra g a i n a n i a s k s f o a n o t h e r n u m b e r . I y o t y p e a n u m b e r f r o m t 4 t h c o r r e c t s p e l l i n g o t h n u m b e r i P R I N T e d . I y o t y p e t h n u m b e r 5 o a n s w e r w i t h ( z e r o ) , t h O s t a t e m e n t i i g n o r e d .

I s o m e c a s e s , O c a n b e u s e d t r e p l a c e s e v e r a l I F / T H E N s t a t e m e n t s .L o o k f o p l a c e s i p r o g r a m s w h e r e I F l o o k s f o r s p e c i f i c n u m b e r s . H e r e ' s w h a tt h a b o v e e x a m p l e w o u l d l o o k l i k e i I a n T H E N w e r e u s e d i n s t e a d o O N

I I N P U T " T Y P E N U M B E R F R O M T 5 E I T H E N G O S U B 1 D 3 I f T H E N G O S U B 1 5 A I T H E N G O S U B I f l D5 I T H E N G O S U B E E f c G O T O I 1 D P R I N T " O N E "1 1 R E T U R N1 5 P R I N T " T W O "l f c D R E T U R Ni f l D P R I N T " T H R E E "I R R E T U R NE E P R I N T " F O U R "E 3 R E T U R f iU s i n g O i o n w a t h e l p m a k e y o u r p r o g r a m s m o r e " e l e g a n t , " o

m o r e c l e a n l y a n e f f i c i e n t l y w r i t t e n . I s a v e s p r o g r a m m i n g t i m e , a n t h o u g hy o m a n e v e r r u u a g a i n s t t h e c o m p u t e r ' s l i m i t s , s a v e s m e m o r y , t o o .

M a t h e m a t i c a l F u n c t i o n sO n o f t h e o b v i o u s u s e s f o c o m p u t e r i t h a v e i p e r f o r m r e p e t i t i v e ,

c o m p l i c a t e d m a t h . C o m p u t e r v e t e r a n s c a l l t h i s " n u m b e r c r u n c h i n g . "S i n c e t h i s i c o m p u t e r b o o k a n n o m a t h t e x t , o n l y s h o r t d e s c r i p t i o n s

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

I N s t a n d s f o I N T e g e r , a n d m a k e s w h o l e n u m b e r o u o d e c i m a lf r a c t i o n .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 138/318

M a t h e m a t i c a l F u n c t i o n s 1 2

I i t h m o s t o f t e n u s e d m a t h f u n c t i o n i B A S I C . L o o k a t h i s e x a m p l e :l D A = l D . E 5 f lE P R I N T I N T ( A )I N s i m p l y c h o p s o f t h f r a c t i o n a l p a r t o f t h e n u m b e r ( . 2 5 8 ) a n P R I N T s

t h n u m b e r 1 0 B c a u t i o u s , t h o u g h . I N c a n n o t b e u s e d f o r o u n d i n g n u b e r s . I o t h e r w o r d s , 1 0 . 5 6 8 w i l l n o b e c o m e l i A B m e a n s A B S o l u t e a n t a k e s t h e m i n u s s i g n o f n e g a t i v e n u m b e r s .

A B i u s e d l i k e t h i s :I A = - 1 DE P R I N T A B ( A S G s t a n d s f o S i G N . I d e t e r m i n e s w h e t h e r n u m b e r i p o s i t i v e o

n e g a t i v e . I t h n u m b e r i p o s i t i v e , S G w i l l b t h n u m b e r 1 I i i n e g a t i v e ,i w i l l b e - 1 . T r y t h i s :

1 A = - E D . E 5 f lE P R I N T S G N ( A )

O t h i s :I A = - E D . E 5 f iE I S G N ( A ) = 1 T H E N P R I N T " P O S I T I V E N U M B E R "3 I S G N ( A ) - T H E N P R I N T " N E G A T I V E N U M B E R "C h a n g e t h n u m b e r t h a t s t a n d s f o r t o s e h o S G w o r k s . ( B y t h

w a y , S G N ( 0 ) * = 0 . )S Q r e t u r n s t h s q u a r e r o o t o n u m b e r .I P R I N T S Q R ( E )S I N , C O a n T A r e t u r n t h e S I N e , C O S i n e a n d T A N g e n t o f a n g l e s ,

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

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

I P R I N T S I N ( E )E P R I N T C O S ( E )3 P R I N T T A N ( E )A P R I N T A T N ( E )D E m e a n s D E F i n e a n d F N m e a n s F u N c t i o n . T h e y a r u s e d t o s t o r e a

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

I D E F B ( D ) = X + Y + DE 5 3 F O T I 4 P R I N T F N B ( D )5 N E X T

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 139/318

1 2 7 — P r o g r a m m i n g — T h e R e s t o B A S I C

I n t h e a b o v e e x a m p l e , l i n e 1 D E F i n e s t h F u N c t i o n n a m e d B ( D ) a D I l i n e 2 0 b e c o m e s a n b e c o m e s 6 L i n e s 3 t 5 P R I N T

t e r e s u l t s o t h e q u a t i o n n a m e d B ( D ) — X D — o r n u m b e r s f r o m 1 t 2 a t h v a l u e o g o e s f r o m t 1 0

S t r i n g - H a n d l i n g W o r d sT h c o m p u t e r c a m a n i p u l a t e s t r i n g s a w e l l a n u m b e r s . Y o u V e a l r e a d y

s e e n t h a t s t r i n g s c a b a d d e d t o g e t h e r o r c o n c a t e n a t e d . ( Y o u c a n n o t s u b t r a c to n s t r i n g f r o m a n o t h e r , t h o u g h . )

S t r i n g - h a n d l i n g w o r d s a r a m o n g t h m o s t p o w e r f u l i C o m m o d o r e B A S I C .L E s t a n d s f o L E N g t h a n d e t e r m i n e s t h n u m b e r o c h a r a c t e r s i s t r i n g .V A m e a n s V A L u e a n c a t u r n s t r i n g c o n t a i n i n g n u m b e r s i n t o r e a l n u b e r s t h c o m p u t e r c a w o r k w i t h . S T R $ t u r n s a n n u m b e r i n t o s t r i n g . A S i s h o r t f o A S C I I , t h n u m b e r c o d e a l c h a r a c t e r s a r e r e p r e s e n t e d b y C H R $i u s e d t P R I N T c h a r a c t e r s c a l l e d b t h e i r A S C I I n u m b e r .

L E F T $ , M I D $ a n R I G H T $ a r w o r d s u s e d t e x t r a c t s p e c i f i c p o r t i o n so s t r i n g s .

L E N , V A a n S T R $s t r i n g c a b u t 2 5 c h a r a c t e r s l o n g . S o m e t i m e s i p r o g r a m , y o

m a n e e d t k n o w t h e x a c t n u m b e r o c h a r a c t e r s i s t r i n g . T h e m o s to b v i o u s w a o c o u n t i n g t h n u m b e r o c h a r a c t e r s i t P R I N T t h s t r i n g o t h s c r e e n a n c o u n t t h n u m b e r o p l a c e s i t a k e s u p . T h i s i s n ' t a l w a y sp o s s i b l e , s i n c e s o m e s t r i n g s a r u s e d t m a k e p i c t u r e s a n o t h e r s m a h a v eh i d d e n s p a c e s o r c u r s o r m o v e s b u r i e d i t h e m . A l s o , s t r i n g s m a v a r y i l e n g t h e a c h t i m e p r o g r a m i R U N . I s t r i n g i o b t a i n e d u s i n g I N P U T , f o e x a m p l e , y o h a v e n c o n t r o l o v e r t h n u m b e r o c h a r a c t e r s i w i l l c o n t a i n .

T h o n l y p r a c t i c a l w a i t u s t h B A S I C w o r d L E N , f o L E N g t h . I i a m a z i n g l y s i m p l e a n c a b e u s e d i p r o g r a m o d i r e c t l y f r o m t h k e y b o a r d .

P R I N T L E N ( A $ )o

I A $ = » A B C D 1 5 3 4 »2 0 L E N ( A $ )

I e i t h e r c a s e , t h a n s w e r t L E N ( A $ ) w i l l b 8 T h u s o L E w i l lb e c o m e m o r e a p p a r e n t t y o a y o r e a d o n

Y o k n o w t h a t s t r i n g s c a b a n y c o m b i n a t i o n o c h a r a c t e r s — l e t t e r s o t h e a l p h a b e t , s y m b o l s , c u r s o r m o v e s , e d i t i n g c o m m a n d s , a n e v e n n u m b e r s .F o e x a m p l e " 1 2 3 4 " i s t r i n g a n 1 2 3 4 i n u m b e r . Y o c a n n o t a d s t r i n g s

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 140/318

L E N , V A a n S T R $ 1 2

t n u m b e r s , b u y o c a t u r n s t r i n g i n t o n u m b e r . T d s o j u s t a s t h c o m p u t e r f o t h V A L u e o t h n u m b e r s i n s i d e t h e q u o t e s .

I A E B = 1 E 3 43 A = V A L ( A $ )4 P R I N TO n p o s s i b l e u s f o V A i t h e l p G E n u m b e r s f r o m t h k e y b o a r d . I

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

I G E C $ : I F C $ I M T H E N G O T O I E V A L ( C $ )3 P R I N T 1 D

T h G E c o m m a n d i u s e d t G E s t r i n g c a l l e d C $ W c a n ' t d o a n ya r i t h m e t i c w i t h C $ , s o w m a k e C e q u a l t t h V A L u e o C $ I C i a n o t h e r k e y — l i k e l e t t e r o c u r s o r k e y — C w i l l b e q u a l t 0 T h i s w o r k sw e l l , a y o c a s e e , f o n u m b e r s b e t w e e n a n 9 B u w h a t i y o n e e dn u m b e r b e t w e e n a n 9 9 H e r e ' s o n s o l u t i o n :

I P R I N T " E N T E R N U M B E R B E T W E E N A N q q E G E C $ : I F C » " T H E N G O T O E 3 P R I N T C $ A G E D $ : I F D " " T H E N G O T O A 5 P R I N T D f c D E $ C D 7 D V A L ( E $ )f l P R I N T E 1 D W e ' v e a d d e d s t e p h e r e , i y o n o t i c e . B P R I N T i n g C a n t h e n D

n e x t t i t w c a s e w h i c h k e y s w e ' v e p r e s s e d . T h e t w o s i n g l e - c h a r a c t e rs t r i n g s , C $ a n d D $ a r a d d e d t o g e t h e r t m a k e t w o - d i g i t n u m b e r , a n i t V A L u e i t a k e n . B e w a r e o f t h e n a t u r e o V A L , h o w e v e r . I y o p r e s s a n n o n - n u m b e r k e y , l i k e " M f o i n s t a n c e , t h V A L u e o E w i l l b 4 n o 4 0 A n d , i y o p r e s s n o n - n u m b e r k e f i r s t , t h V A L u e o E w i l l b 0 W h e nu s i n g t h i s k i n d o r o u t i n e , i m i g h t b g o o d i d e a t m a k e t e s t t s e e t h a te a c h k e y p r e s s e d i n u m b e r .

I f f o s o m e r e a s o n , y o h a v e n u m b e r t h a t y o w a n t t t u r n i n t os t r i n g , y o c a r e v e r s e t h e a b o v e p r o c e s s b u s i n g S T R $ .

I E D A $ S T R $ ( A )

W h w o u l d y o w a n t t t u r n n u m b e r i n t o s t r i n g ? O n r e a s o n m i g h tb t h d i f f e r e n c e i r u l e s c o n c e r n i n g t h w a n u m b e r s a n d s t r i n g s P R I N To t h s c r e e n . I y o r e m e m b e r , a n e x t r a s p a c e i a d d e d w h e n y o P R I N Tn u m b e r n e x t t s t r i n g o a n o t h e r n u m b e r u s i n g a s e m i c o l o n . B t u r n i n gt h n u m b e r i n t o s t r i n g , y o c a P R I N T n u m b e r s n e x t t o n a n o t h e r w i t ho u s p a c e s .

W h e n w s a t h a t V A a n S T R $ t u r n s t r i n g s i n t o n u m b e r s a n d v i c e

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 141/318

1 2 7 — P r o g r a m m i n g — T h e R e s t o B A S I C

v e r s a , w r e a l l y d o n ' t d a n y t h i n g t t h o r i g i n a l v a r i a b l e , e i t h e r s t r i n g o n u m e r i c . I w e m a d e n e n u m e r i c v a r i a b l e n a m e d E o u o E E $ , t h o r i g i n a l s t r i n g v a r i a b l e ( E E $ ) w i l l s t i l l c o n t i n u e t e x i s t . T h s a m e t h i n g g o e sf o u s i n g S T R $ .

A S a n C H R $A S C , a s t a t e d e a r l i e r , s t a n d s f o A S C I I , t h n a m e g i v e n t t h n u m b e r

c o d e f o e a c h c h a r a c t e r t h a t t h C o m m o d o r e c o m p u t e r s c a u s e . A S C , w i t ht h c h a r a c t e r i p a r e n t h e s e s a n q u o t a t i o n m a r k s , r e t u r n s t h a t c h a r a c t e r ' su n i q u e n u m b e r .

P R I N T A S C ( » 5 " )

T h a n s w e r y o u w i l l s e o t h v i d e o s c r e e n w i l l n o b 5 b u 5 3 W h a t ' sg o i n g o n T h n u m b e r 5 i a n A S C I I c o d e n u m b e r t h a t s t a n d s f o t h c h a r a c t e r

n u m b e r e d 5 3 A S C I I i a a c r o n y m t h a t s t a n d s f o A m e r i c a n S t a n d a r d C o d ef o I n f o r m a t i o n I n t e r c h a n g e , a n i p r o n o u n c e d A S K - E E . A l m o s t a l c o p u t e r s b u i l t t o d a y u s A S C I I t r e p r e s e n t c h a r a c t e r s a n t c o m m u n i c a t ew i t h o n a n o t h e r o v e r t e l e p h o n e l i n e s .

C o m m o d o r e c o m p u t e r s d o n o t u s e t r u e A S C I I c o d e s . T h e y m u s t u s t h e i ro w v e r s i o n o A S C I I b e c a u s e t h n u m b e r o c h a r a c t e r s u s e d b t h c o p u t e r — g r a p h i c s y m b o l s , l o w e r c a s e l e t t e r s , c u r s o r a n e d i t i n g s y m b o l s ,c o l o r c o d e s , e t c . — i s m u c h g r e a t e r t h a n t h o r i g i n a l 1 2 8 c h a r a c t e r s d e f i n e da b e i n g t r u e A S C I I . E v e r s i n c e t h e f i r s t P E c o m p u t e r , C o m m o d o r e m a c h i n e sh a v e u s e d v a r i a t i o n n i c k n a m e d P E A S C I I . H o d i f f e r e n t i P E A S C I I ?W e l l , s o m e c h a r a c t e r s a r e t h e s a m e n u m b e r s a t r u e A S C I I , o t h e r s a r d i f e r e n t ; a n s i n c e t h e r e a r e 2 5 P E A S C I I c h a r a c t e r c o d e n u m b e r s , t h e r e a r 1 2 n u m b e r s t h a t d o n ' t c o r r e l a t e t a n o t h o r i g i n a l t r u e A S C I I n u m b e r s .

H o m u c h o p r o b l e m i t h i s ? N o b i p r o b l e m , a l o n g a y o k n o wt h a t P E A S C I I e x i s t s . M a n y p r o g r a m m e r s , e s p e c i a l l y n o v i c e s , d o n ' t e v e nw o r r y a b o u t i t I d o e s b e c o m e a i s s u e w h e n y o g o u t s i d e o f t h e m a c h i n et c o m m u n i c a t e w i t h a n o t h e r c o m p u t e r o r p e r h a p s , p r i n t e r .

F o n o w , j u s t b a w a r e t h a t t h n u m b e r s t h a t A S g i v e s y o a r P E A S C I I n u m b e r s .

A S w i l l a l w a y s r e t u r n a c h a r a c t e r n u m b e r , o t h n u m b e r o t h v e r yf i r s t c h a r a c t e r i s t r i n g . F o e x a m p l e :

P R I N T A S C ( " 5 3 2 E l m w o o d D r i v e "

T h i s e x a m p l e w i l l a l s o r e t u r n t h n u m b e r 5 3 s i n c e i t h f i r s t c h a r a c t e ri t h s t r i n g .

W h e n u s i n g A S C ( ) , n u l l s t r i n g s a r n o a l l o w e d . I y o u s A S C ( " " ) o A S C ( A $ ) w h e n A " " t h p r o g r a m w i l l s t o p a n y o w i l l s e a I L L E G A LQ U A N T I T Y E R R O R .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 142/318

A S a n C H R $ 1 2

C H R $ c a n b e t h o u g h t o a s t h e r e v e r s e o A S C . I t a k e s P E A S C I In u m b e r a n P R I N T s i t c h a r a c t e r .

P R I N T C H R $ ( 5 3 )T h e r e ' s t h a t n u m b e r a g a i n . T h i s m e t h o d o P R I N T i n g m a s e e m b i

t e d i o u s . W h n o j u s t P R I N T 5 ? W e l l , s o m e c h a r a c t e r s a r e d i f f i c u l t , i n o i m p o s s i b l e t P R I N T . T r P R I N T i n g q u o t a t i o n m a r k , f o e x a m p l e .I A $ " " 5 P R I N T A N o t h a t w o n ' t w o r k a a l l . N o t r t h i s :I A $ C H R $ ( 3 4 )E P R I N T A T h a t P R I N T s q u o t e m a r k b e c a u s e 3 i t h c o d e n u m b e r f o t h a t c h a r

a c t e r . Y o c a n ' t P R I N T c a r r i a g e r e t u r n ( t h e s a m e a p r e s s i n g t h e R E T U R Nk e y ) , e i t h e r . B u t y o u c a P R I N T C H R $ ( 1 3 ) .

T h i s i h e l p f u l w h e n y o P R I N T # t p r i n t e r , f o i n s t a n c e . O t h e r c o d e sl i k e t h i s a r a l s o r e c o g n i z e d b p r i n t e r s a n w i l l p e r f o r m c e r t a i n s p e c i a lf u n c t i o n s w h e n s e n t t t h e m .

H e r e ' s l i s t o t h m o s t i n t e r e s t i n g C H R $ c o d e s i n s i d e y o u r C o m m o d o r e6 4

P R I N T C H R $ ( F U N C T I O ND i s a b l e s t h e S H I F T a n C O M M O D O R E k e c o m b i n a t i o n t h a t s w i t c h e s b e t w e e n t h g r a p h i c a n t y p e w r i t e r m o d e .E n a b l e s t h o s e k e y s a f t e r d i s a b l i n g t h e m .

1 P R I N T s c a r r i a g e r e t u r n , s a m e a p r e s s i n g R E T U R Nk e y ; m o v e s c u r s o r t n e x t l i n e .

1 S w i t c h e s f r o m t y p e w r i t e r t g r a p h i c m o d e .3 P R I N T s q u o t e m a r k .

1 4 S w i t c h e s f r o m g r a p h i c t t y p e w r i t e r m o d e .

O t h e r C H R $ c o d e s m o v e t h c u r s o r a r o u n d a n c h a n g e c h a r a c t e r c o l o r s ,t o o . L o o k i n t h e b a c k o t h i s b o o k f o c o m p l e t e l i s t o w h a t t h e s e c o d e sr e p r e s e n t . A l s o c h e c k y o u r p r i n t e r m a n u a l f o s u m m a r y o w h i c h C H R $c o d e s c o n t r o l i t f u n c t i o n s .

L E F T $ , M I D $ , R I G H T $T h e r e i n e a s y w a t u n d e r s t a n d t h e s e t h r e e v e r y v e r s a t i l e c o m m a n d s

e x c e p t t s i d o w n a t h c o m p u t e r a n d t r t h e m . E a c h i u s e d t p u l l a p a r ts t r i n g s a n e x t r a c t s p e c i f i c i n f o r m a t i o n f r o m t h e m . L E F T $ i u s e d t r e a dt h e l e f t m o s t c h a r a c t e r s i s t r i n g ; R I G H T $ i u s e d t r e a d c h a r a c t e r s t t h r i g h t . M I D $ c a p u l l o u c h a r a c t e r s f r o m t h m i d d l e o t h s t r i n g .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 143/318

1 3 7 — P r o g r a m m i n g — T h e R e s t o B A S I C

H e r e ' s w h e r e L E c o m e s i n t o o .I a $ E L = L E N ( A $ )3 F O T A P R I N T L E F T $ ( f i $ , I )5 N E X TI y o R U t h a b o v e e x a m p l e , y o s h o u l d s e t h i s :

1 1 2 1 2 3 41 2 3 4 51 2 3 4 5 61 2 3 4 5 6 71 2 3 4 5 6 7 81 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9 0

W h y ? L E F T $ , w i l l r e t u r n e v e r y t h i n g l e f t , b e g i n n i n g w i t h t h e p o s i t i o ni n d i c a t e d b t h n u m b e r i n s i d e t h e p a r e n t h e s e s . W e ' v e u s e d L E t d e t e rm i n e t h l a s t n u m b e r i t h F O R / N E X T l o o p s o t h a t w w o n ' t t r P R I N T i n ga n m o r e c h a r a c t e r s t h a n t h e r e a r e i t h s t r i n g . T y p e t h s a m e p r o g r a me x a m p l e , b u t u s R I G H T $ i n s t e a d o L E F T $ , t h i s t i m e . N o R U t h p r o g r a ma g a i n . Y o u ' l l s e e t h r e v e r s e o w h a t h a p p e n e d b e f o r e .

9 8 9 7 8 9 06 7 8 9 05 6 7 8 9 04 5 6 7 8 9 03 4 5 6 7 8 9 02 3 4 5 6 7 8 9 01 2 3 4 5 6 7 8 9 0

T h a t ' s b e c a u s e R I G H T $ r e t u r n s e v e r y t h i n g r i g h t , b e g i n n i n g w i t h t h p o s i t i o n i n d i c a t e d b t h n u m b e r i n s i d e t h p a r e n t h e s e s .

U s i n g M I D $ c a g e t r i c k y a n c o n f u s i n g i y o d o n ' t k e e p t r a c k o w h a ty o u ' r e d o i n g . Y o u ' l l n e e d t w n u m b e r s i n s i d e t h e p a r e n t h e s e s , n o j u s t o n e .

I A $ E P R I N T M I D $ ( A $ , 5 , S )

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 144/318

L E F T $ , M I D $ , R I G H T $ 1 3

F o m o r e t h o r o u g h d e m o n s t r a t i o n , e n t e r t h f o l l o w i n g e x a m p l e :I D A $ = " l S 3 < S t 7 f l . q "2 L = L E N ( A $ )3 F O R I T A F O R K T 5 P R I N T M I D $ ( & $ , I , K )t N E X T7 D N E X T IT g e b e t t e r l o o k a w h a t i g o i n g o n p r e s s t h C T R L k e t s l o w

d o w n t h a c t i o n w h i l e t h p r o g r a m i R U N n i n g . T h i s m a l o o k l i k e s o m e t h i n go p u z z l e , b u i i s n ' t . W h a t y o w i l l s e i c o m p l e t e l y l o g i c a l a n w i l lr e v e a l t h e s t r e n g t h b e h i n d M I D $ .

L e t ' s u s L E F T $ , M I D $ , a n d R I G H T $ i d e m o n s t r a t i o n o t h C o m o d o r e 6 r e a l - t i m e c l o c k . H e r e ' s s h o r t p r o g r a m t h a t p u t s t h c l o c k i t h u p p e r l e f t - h a n d c o r n e r o t h e s c r e e n . I t a k e s a p a r t T I a n r e a r r a n g e s i s t h a t i l o o k s l i k e t h e d i s p l a y o d i g i t a l c l o c k . B c h a n g i n g t h l i n e n u m b e r sa n u s i n g t h i s a s u b r o u t i n e , y o c a w r i t e p r o g r a m s t h a t k e e p t r a c k o t i m e w h i l e t h e y a r R U N n i n g .

I I N P U T " H O U R S " ; H $E I N P U T " M I N U T E S " ; M $3 T I = H $ + M " D D "A P R I N T " [ p r e s s C L R ] "5 P R I N T " [ p r e s s H O M E ] "t P R I N T " T I M E " ;7 P R I N T L E F T S ( T I $ , S ) ; " : " ; M I D $ ( T I $ , S , S ) ; " : " ;R I G H T $ ( T I $ , 4 )f l G O T O 5

Y o m u s t e n t e r t h e h o u r s , m i n u t e s , a n s e c o n d s i t w o - d i g i t f o r m . S o i t h t i m e i 1 : 0 3 , t y p e 0 i r e s p o n s e t H O U R S , a n 0 t M I N U T E S . T h p r o g r a m a s s u m e s t h a t t h e s e c o n d s w i l l b e g i n w i t h 0 0 I t a k e s t h e t w s t r i n g s ,H a n d M $ , a n a d d s t h e m t " 0 0 , " t h e n p u t s t h a t s t r i n g i p l a c e o T I t s e t h c l o c k . I t h m a i n l o o p o t h p r o g r a m , l i n e s 5 t 8 0 h e r e i w h a th a p p e n s : T h c u r s o r i s e n t b a c k t t h H O M E p o s i t i o n ( u p p e r l e f t - h a n dc o r n e r ) , s t a y s o t h a t l i n e a n b e g i n s P R I N T i n g . I P R I N T s , i t h i s o r d e r ,t h w o r d T I M E , s p a c e , t h e l e f t m o s t t w c h a r a c t e r s o T I ( t h e h o u r s ) ,c o l o n ( " : " ) , t h m i d d l e t w c h a r a c t e r s o T I ( t h e m i n u t e s ) , a n o t h e r c o l o n ,a n d , f i n a l l y , t h r i g h t m o s t t w c h a r a c t e r s o T I ( t h e s e c o n d s ) .

T h w h o l e p r o c e s s s t a r t s a g a i n w h e n t h p r o g r a m g o e s b a c k t l i n e 5 a n P R I N T s n e t i m e o v e r t h l a s t o n e . I n o p e r a t i o n , y o s e t h s e c o n d sc h a n g i n g a n t h p r o g r a m l o o k s l i k e i i R U N i n g a l e i s u r e l y s p e e d . I n s i d e ,h o w e v e r , t h c o m p u t e r i g o i n g l i k e c r a z y , P R I N T i n g t h l i n e o v e r a n o v e r ,e v e n i t h t i m e h a s n ' t c h a n g e d b s i n g l e s e c o n d . I y o w a n t t i n c o r p o r a t et h i s r o u t i n e i n t o o n o y o u r o w p r o g r a m s , y o m a c h o o s e t u s i a s u b r o u t i n e , s o m e p l a c e o u o t h w a f r o m t h m a i n p r o g r a m .

( T a k e o u t h G O T O s t a t e m e n t a n i n s e r t R E T U R N ; p u t h l i n e s t h a t

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 145/318

1 3 7 — P r o g r a m m i n g — T h e R e s t o B A S I C

s e t h c l o c k a t h b e g i n n i n g o y o u r p r o g r a m . E a c h t i m e y o w a n t t P R I N Tt h c l o c k o t h s c r e e n , h o w e v e r , y o w i l l n e e d t G O S U B t t h e s e l i n e s . I m i g h t n o b p r a c t i c a l t h e n t s h o w t h e s e c o n d s . )

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 146/318

W o r d P r o c e s s i n g : T h E l e c t r o n i c T y p e w r i t e r

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

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

E v e n t h s i m p l e s t p e r s o n a l c o m p u t e r s a r e x t r e m e l y p o w e r f u l . T h e y c a p e r f o r m l i g h t n i n g f a s t c a l c u l a t i o n s a n k e e p t r a c k o i n f o r m a t i o n f a b e t t e rt h a n h u m a n b e i n g c a n . B u n o a l o u n e e d t m a k e m i l l i o n s o c a l c ul a t i o n s o k e e p s m a n y r e c o r d s t h a t w c a n ' t o r g a n i z e t h e m s o m e o t h e r w a y .

E v e r y o n e o u s t h o u g h , h a w r i t t e n s o m e t h i n g a o n t i m e o a n o t h e r ,f r o m g r o c e r y l i s t s t t e r m p a p e r s , f r o m l e t t e r s t p r o f e s s i o n a l r e p o r t s . A p e o p l e , w a r e n ' t p e r f e c t . W m a k e m i s t a k e s a n d , i o u s e a r c h f o p e r f e c t i o n ,w c h a n g e o u r m i n d s . C o n s e q u e n t l y , w d o n ' t a l w a y s s a w h a t w m e a nw h e n w w r i t e .

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

t h a t h a v e t a k e n t h p l a c e o t y p e w r i t e r s i o f f i c e s . I n s i d e t h e s e b u s i n e s sm a c h i n e s a r s m a l l c o m p u t e r s , s o m e t i m e s n m o r e p o w e r f u l t h a n y o u r C o m o d o r e 6 4 T h d i f f e r e n c e i t h a t t h e s e c o m p u t e r s a r d e d i c a t e d t o n s i n g l et a s k — w o r d p r o c e s s i n g .

Y o m a h a v e s e e n o t h e r w o r d p r o c e s s o r s . M a n y , i n o m o s t , A m e r i c a nn e w s p a p e r s n l o n g e r h a v e t y p e w r i t e r s i n t h e i r c i t y r o o m s a n e d i t o r i a l

1 3

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 147/318

1 3 8 — W o r d P r o c e s s i n g : T h E l e c t r o n i c T y p e w r i t e r

o f f i c e s . I n s t e a d , r e p o r t e r s w r i t e o t h i n g s t h e y c a l l " V D T ' s , " f o V i d e o ( o V i s u a l ) D i s p l a y T e r m i n a l s . T h e s e a r r e a l l y j u s t t e r m i n a l s t h a t a r c o n n e c t e dt g i a n t c o m p u t e r w i t h s o u p e d - u p w o r d p r o c e s s i n g p r o g r a m . ( I m o s t o t h e s e s y s t e m s , t h c o m p u t e r a l s o m a n a g e s i n c o m i n g w i r e s e r v i c e r e p o r t s ,a n e v e n c o n t r o l s t y p e s e t t e r . )

O n o t h f i r s t w o r d p r o c e s s i n g p r o g r a m s f o l a r g e b u s i n e s s c o m p u t e rs y s t e m s w a A T M S ( f o r A u t o m a t e d T e x t M a n a g e m e n t S y s t e m ) , d e s i g n e d f o I B c o m p u t e r s i t h 1 9 7 0 s . f e y e a r s l a t e r , w h e n t h f i r s t p e r s o n a l c o p u t e r s b e g a n a p p e a r i n g , l a n d m a r k p r o g r a m c a l l e d " E l e c t r i c P e n c i l " i n t r od u c e d w o r d p r o c e s s i n g t i n d i v i d u a l u s e r s . I s t a r t e d r e v o l u t i o n t h a t h a p r o d u c e d d o z e n s o f e x c e l l e n t w o r d p r o c e s s o r s , i n c l u d i n g s e v e r a l f o t h C o m o d o r e 6 f a m i l y .

W h a t i W o r d P r o c e s s o r ?E s s e n t i a l l y , t h n a m e s a y s i a l l . w o r d p r o c e s s o r i p r o g r a m t h a t

p r o c e s s e s w o r d s . T h i s m e a n s w o r k i n g w i t h w o r d s — r e a r r a n g i n g a n r e o rg a n i z i n g t h e m .

T h e s e a r e t h e i m p o r t a n t f u n c t i o n s t h a t m a k e w o r d p r o c e s s o r .

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

E d i t i n g t e x t E d i t i n g i v a g u e t e r m , a b e s t . T h e m o s t i m p o r t a n te d i t i n g f e a t u r e s a r t h a b i l i t y t o i n s e r t a n e r a s e ( o d e l e t e ) w o r d s , s e n t e n c e s ,a n p a r a g r a p h s . T h e s e a r e t h e f u n c t i o n s m o s t o f t e n u s e d i a n w o r d p r c e s s o r . A l l t h r e s t a r f r o s t i n g o t h e c a k e , b u m a k e t h p r o g r a m m o r ef l e x i b l e a n t u r n i i n t o p r o f e s s i o n a l - q u a l i t y t o o l .

S t o r a g e a n r e t r i e v a l T h i s m e a n s t h a t w h a t y o w r i t e c a n b es t o r e d o d i s k ( o p e r h a p s c a s s e t t e t a p e ) , t h e n p l a y e d b a c k i n t o t h c o m p u t e rw h e n y o n e e d t r e a d o w o r k o w h a t e v e r y o u ' v e w r i t t e n . T h e r e p r o b a b l yh a s n ' t b e e n w o r d p r o c e s s i n g p r o g r a m w r i t t e n t h a t d o e s n ' t l e y o d t h i s .

P r i n t i n g t e x t T h e n r e s u l t o a n w o r d p r o c e s s o r i s e e i n g w h a ty o h a v e w r i t t e n o p a p e r . W i t h g o o d w o r d p r o c e s s o r p r o g r a m , y o s h o u l da l s o b a b l e t c h a n g e t h s h a p e ( o f o r m a t ) o f t h e p r i n t e d t e x t .

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

W h c a b e n e f i t m o s t f r o m w o r d p r o c e s s o r s ? A n y o n e w h h a n e e d t p u h i o h e t h o u g h t s d o w n o p a p e r . S t u d e n t s o f t e n d i s c o v e r f o t h f i r s tt i m e t h a t t h e y c a w r i t e . B u s i n e s s m e n a n o t h e r p r o f e s s i o n a l s f i n d t h a t t h e yc a i m p r o v e t h e i r p r o d u c t i v i t y b w r i t i n g r e p o r t s a n c o r r e s p o n d e n c e f a s t e ra n b e t t e r . P r o f e s s i o n a l w r i t e r s , a l w a y s p l a g u e d b d e a d l i n e s , r e g a r d t h

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 148/318

W h a t i W o r d P r o c e s s o r ? 1 3

w o r d p r o c e s s o r a g o d s e n d . ( T h i s b o o k w a w r i t t e n o C o m m o d o r e c o p u t e r u s i n g t w d i f f e r e n t w o r d p r o c e s s i n g p r o g r a m s . ) I y o u ' r e n o n e o f t h ea b o v e t y p e s , t a k e h e a r t . W i t h w o r d p r o c e s s o r y o u ' l l s o o n b e w r i t i n g t h l e t t e r s t h a t y o u ' v e b e e n i g n o r i n g f o m o n t h s , d a s h i n g o f n o t e s t f a m i l y a n f r i e n d s , a n d y o u m a e v e n t a c k l e t h a t i d e a f o n o v e l t h a t y o u ' v e h a f o y e a r s . W h e n w r i t i n g d u t y d o e s c a l l , y o u ' l l f i n d t h a t h a v i n g a c c e s s t w o r dp r o c e s s o r i t h n e x t b e s t t h i n g t h a v i n g s e c r e t a r y . W o r d p r o c e s s i n g i f u a n i m p r e s s i v e , t o o . W a t c h i n g y o u r i d e a s m o v i n g a r o u n d o t h s c r e e n c a b e n d l e s s l y f a s c i n a t i n g , a l b i t s e l f . ( J u s t d o n ' t f o r g e t t h a t t h i s i t o o l ,t h o u g h , n o t j u s t t o y . )

W h a t Y o u ' l l N e e d : P r i n t e r s a n D i s k sN a t u r a l l y , y o u ' r e g o i n g t n e e d p r i n t e r t b e g i n w o r d p r o c e s s i n g . I t ' s

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

P r i n t e r s p r i n t e r i u s e f u l i n v e s t m e n t f o r e a s o n s o t h e r t h a n w o r dp r o c e s s i n g . T h o u g h i i n e c e s s i t y f o w o r d p r o c e s s i n g , p r i n t e r c a a l s ob e u s e d t L I S T B A S I C p r o g r a m s o n p a p e r , a n w i t h a d a t a b a s e m a n a g e r ,s p r e a d s h e e t a n o t h e r p r o g r a m s .

T w t y p e s o c o m p u t e r p r i n t e r s a r e c o m m o n l y a v a i l a b l e : D o m a t r i xp r i n t e r s a n l e t t e r q u a l i t y p r i n t e r s .

D o m a t r i x p r i n t e r s p r o d u c e c h a r a c t e r s b s t r i k i n g t h p a p e r ( t h r o u g hr i b b o n ) w i t h g r o u p o f e l e c t r o n i c a l l y c o n t r o l l e d w i r e s . E a c h w i r e m a k e s

a d o t o t h p a g e ; e a c h g r o u p o d o t s f o r m s l e t t e r , n u m b e r , o r o t h e r s y m b o l .B e c a u s e t h c h a r a c t e r i m a d e u o d o t s a n i n o s o l i d , s o m e d o m a t r i xp r i n t e r s , p a r t i c u l a r l y e a r l y o n e s , p r o d u c e c o p y t h a t c a b c o m p a r a t i v e l yd i f f i c u l t t r e a d . S o m e o f t h e n e p r i n t e r s , o t h o t h e r h a n d , s p a c e t h e d o t sc l o s e r t o g e t h e r a n t h e i r p r i n t i n g l o o k s m u c h c l o s e r t t h a t o t y p e w r i t e r .T h i s i m p r o v e d d o m a t r i x p r i n t i n g i c a l l e d " c o r r e s p o n d e n c e q u a l i t y . "

• A

3 5 3 6 3 7 3 8 3 9

i : : : *

C . » ' i

. 5

} . . .

1 . . .

. i

r . ; : ' x : : :j . . . . t

N T

" \ L . 1 i

T T E Y

D t I

• . 1

I

- :

• »

: !

1

1 g o t o 9 0 0 0 : r e m ( c 2 g e t c $ : i f c $ g o t o 2 02 g e t c $ : i f c $ t h e n p r2 p r i n t " < c - l > " ; : g3 g e t # 1 , * c $ : x = 0 : i f c

T h s p e e d o d o m a t r i x p r i n t e r s r a n g e s f r o m a b o u t 8 t 1 6 c h a r a c t e r sp e s e c o n d . T h i s k i n d o f p r i n t e r u s u a l l y s e l l s f o a b o u t $ 3 0 0 t $ 1 0 0 0 d p e n d i n g o f e a t u r e s .

S o m e e x a m p l e s o d o m a t r i x p r i n t e r s a r e t h e E p s o n M X - 8 0 , M X - 1 0 0a n F s e r i e s , t h C I t o h P r o w r i t e r s , t h e S t a r M i c r o n i c s G e m i n i , a n p r i n t e r sb O k i d a t a a n N E C . C o m m o d o r e ' s o w d o m a t r i x p r i n t e r s a r e m o d e l s 1 5 1 5 ,

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 149/318

1 3 8 — W o r d P r o c e s s i n g : T h E l e c t r o n i c T y p e w r i t e r

1 5 2 5 E , 4 0 2 2 , a n 8 0 2 3 . ( N o t a l o t h e s e w i l l w o r k d i r e c t l y w i t h t h C o m o d o r e 6 4 c o m p u t e r s . M o r e a b o u t t h i s l a t e r . )

L e t t e r q u a l i t y p r i n t e r s a r s o m e t i m e s r e f e r r e d t a s s o l i d - f o n t p r i n t e r s ,b e c a u s e t h c h a r a c t e r s t h e y p r i n t a r s o l i d , l i k e t h o s e p r o d u c e d b y t y p ew r i t e r . S o m e e a r l y l e t t e r q u a l i t y p r i n t e r s u s e d i n t e r c h a n g e a b l e I B S e l e c t r i c *s t y l e " g o l f b a l l " t y p e e l e m e n t s . ( f e o t h e s e a r s t i l l a r o u n d a n f o s a l e . )T h e y w e r e s l o w , p r i n t i n g a b o u t 1 t 1 c h a r a c t e r s p e s e c o n d .

M o s t m o d e r n l e t t e r q u a l i t y p r i n t e r s u s t y p e e l e m e n t c a l l e d " d a i s yw h e e l . " T h i s i p l a s t i c , s o m e t i m e s m e t a l , w h e e l w i t h f l e x i b l e s p o k e s ( t h e" p e t a l s " ) . A t h e n o e a c h s p o k e i a p i e c e o t y p e f o o n l e t t e r . A t h w h e e l s p i n s , a e l e c t r o n i c a l l y c o n t r o l l e d h a m m e r h i t s t h a p p r o p r i a t e o n e ,p r i n t i n g t h c h a r a c t e r o p a p e r . T h e s e d a i s y w h e e l p r i n t e r s p r o d u c e c o p yt h a t c a n ' t b d i s t i n g u i s h e d f r o m p a g e s t y p e d o n a n e x c e l l e n t t y p e w r i t e r , a n d ,t h e r e f o r e , a r p r e f e r r e d f o w o r d p r o c e s s i n g . P r i n t i n g s p e e d s f o l e t t e r q u a l i t yp r i n t e r s r a n g e f r o m 1 5 t o 5 5 c h a r a c t e r s p e s e c o n d .

U n f o r t u n a t e l y , d a i s y w h e e l p r i n t e r s a r c o m p l i c a t e d a n a r t h e r e f o r em o r e e x p e n s i v e t h a n d o m a t r i x m a c h i n e s . T h e y b e g i n a a b o u t $ 4 0 0 a n a l t h o u g h p r i c e s h a v e d r o p p e d i t h l a s t f e y e a r s , s o m e s t i l l s e l l f o o v e r$ 2 0 0 0 . T h l e a s t e x p e n s i v e d a i s y w h e e l p r i n t e r s ( t h o s e s o l d b S m i t h - C o r o n a ^a n B r o t h e r ^ f o e x a m p l e ) a r s l o w — u n d e r 2 c h a r a c t e r s p e s e c o n d . M o r ee x p e n s i v e m o d e l s — Q u m e ^ D i a b l o ® a n C . I l o h S t a r w r i t e i 1 — a r e m u c h f a s t e r ,u t 5 5 c h a r a c t e r s p e r s e c o n d , a n o f f e r m a n y m o r e f e a t u r e s . ( R e l a t e d t d a i s y w h e e l p r i n t e r s a r t h N E S p i n w r i t e r s " J w h i c h u s p l a s t i c " t y p et h i m b l e " i n s t e a d o w h e e l . ) C o m m o d o r e s e l l s i t o w d a i s y w h e e l p r i n t e r ,t h m o d e l 8 3 0 0 , w h i c h i a v e r s i o n o D i a b l o m a c h i n e .

T h s p e e d s o b o t h d o m a t r i x a n l e t t e r q u a l i t y p r i n t e r s l o o k i m p r e ss i v e . E v e n 1 c h a r a c t e r s p e s e c o n d i f a s t e r t h a n t y p i s t w o r k i n g a 9 w o r d s p e r m i n u t e . d o u b l e - s p a c e d m a n u s c r i p t p a g e , f o e x a m p l e , i a b o u t1 5 0 0 c h a r a c t e r s a n t a k e s l i t t l e u n d e r m i n u t e t p r i n t o g o o d l e t t e r

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 150/318

W h a t Y o u ' l l N e e d : P r i n t e r s a n D i s k s 1 3

q u a l i t y p r i n t e r . I y o h a v e 1 0 0 - p a g e m a n u s c r i p t , t h a t ' s a b o u t a n h o u r a n h a l l .

I n t e r f a c e s M o s t l e t t e r q u a l i t y a n d o m a t r i x p r i n t e r s c a n ' t b u s e dd i r e c t l y w i t h t h C o m m o d o r e 6 4 T h e y r e q u i r e w h a t i k n o w n a a i n t e r f a c e .P e r s o n a l c o m p u t e r s s e n d i n f o r m a t i o n t p r i n t e r s i d i f f e r e n t w a y s . T h e s e a r k n o w n a d a t a s t a n d a r d s . P r i n t e r s s o l d b c o m p a n i e s o t h e r t h a n C o m m o d o r eu s u a l l y c o m e e q u i p p e d t w o r k w i t h o n o t h t w m o s t p o p u l a r d a t a s t a nd a r d s , p a r a l l e l o " C e n t r o n i c s p a r a l l e l " ( c a l l e d t h a t b e c a u s e C e n t r o n i c s ,p r i n t e r m a n u f a c t u r e r , p r o m o t e d t h s t a n d a r d ) , o r s e r i a l . S e r i a l p r i n t e r s t a k et h f o r m o d a t a c a l l e d R S - 2 3 2 , t h s a m e a m o s t m o d e m s , o r t e l e p h o n e l i n k s .S t i l l a n o t h e r d a t a s t a n d a r d i c a l l e d I E E E - 4 8 8 ( o " I - T r i p l e E " ) . T h i s i t h s t a n d a r d o r i g i n a l l y u s e d b t h C o m m o d o r e P E T a n C B c o m p u t e r s . E x c e p tf o t h m o d e l 1 5 1 5 a n 1 5 2 5 E p r i n t e r s , t h i s i t h s t a n d a r d t h a t C o m m o d o r ep r i n t e r s u s e .

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

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

C o m m o d o r e s a y s t h a t p r i n t e r s a n d i s k d r i v e s d e s i g n e d f o t h C o m o d o r e 6 4 d a t a s t a n d a r d s h o u l d n ' t b u s e d w i t h e q u i p m e n t d e s i g n e d f o C o m m o d o r e ' s e a r l i e r c o m p u t e r s . T h i s m e a n s y o c a n ' t u s s t a n d a r d 1 5 4 1d i s k d r i v e ( d e s i g n e d f o t h 6 f a m i l y ) , w i t h p r i n t e r o r i g i n a l l y i n t e n d e d t

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 151/318

1 3 8 — W o r d P r o c e s s i n g : T h E l e c t r o n i c T y p e w r i t e r

w o r k w i t h P E o C B c o m p u t e r . I a l s o m e a n s t h a t y o c a n ' t u s 1 5 2 5 Ep r i n t e r ( t h e 6 4 ' s ) w i t h 4 0 4 0 o 8 0 5 0 d i s k d r i v e s y s t e m ( t h e P E T ' s ) .

T h e a r l i e r C o m m o d o r e d i s k d r i v e s a n p r i n t e r s a r d e s i g n e d f o t h I E E E - 4 8 8 d a t a s t a n d a r d . T u s t h e s e , y o m u s t u s a I E E E - 4 8 8 i n t e r f a c ew h i c h u s u a l l y p l u g s i n t o t h e c a r t r i d g e p o r t . C o m m o d o r e m a k e s o n e s u c hi n t e r f a c e t h a t i " o f f i c i a l l y " s u p p o r t e d b t h c o m p a n y . T h a t i s C o m m o d o r eh a s d e s i g n e d i t o w s o f t w a r e t a l w a y s w o r k w i t h i t O t h e r m a n u f a c t u r e r sm a k e I E E E - 4 8 8 a d a p t e r s , t o o .

Y o c a m i s t a n d a r d C o m m o d o r e 1 5 4 1 d i s k d r i v e w i t h p a r a l l e l -s t y l e p r i n t e r v i s e v e r a l d i f f e r e n t i n t e r f a c e s . S e r i a l p r i n t e r s a r a n o t h e r s t o r y .A l t h o u g h s e r i a l p r i n t e r s c a a c c e p t R S - 2 3 2 d a t a w i t h c o n n e c t i o n t t h u s e r p o r t ( s o m e a d d i t i o n a l h a r d w a r e m a b r e q u i r e d ) , i i m o r e d i f f i c u l tt u s a n f e p r o g r a m s s e e m t b s u p p o r t i n g t h i s s c h e m e .

T h b e s t b e t f o u s i n g n o n - C o m m o d o r e p r i n t e r w i t h t h 6 f a m i l y s e e m st b t c h o o s e p a r a l l e l p r i n t e r — e i t h e r d o m a t r i x o l e t t e r q u a l i t y — i nc o n j u n c t i o n w i t h t h p r o p e r i n t e r f a c e . ( L o o k a t h e s e c t i o n o t h i s b o o k c a l l e d" B e y o n d B A S I C " f o r d e t a i l s a b o u t t h e s e . ) T h i s w i l l o f f e r y o t h m o s t f l e xi b i l i t y . O n a d d e d a d v a n t a g e i b u y i n g p a r a l l e l p r i n t e r i t h a t i w i l l h a v er e s a l e v a l u e t u s e r s o t h e r t h a n C o m m o d o r e o w n e r s i y o s h o u l d d e c i d e t u p g r a d e y o u r s y s t e m .

I a n c a s e , t h m o s t i m p o r t a n t t h i n g t c o n s i d e r i a s s e m b l i n g w o r dp r o c e s s i n g s y s t e m i t s h o p c a r e f u l l y a n a s q u e s t i o n s . M a k e c e r t a i n t h a tt h p r i n t e r , i n t e r f a c e , a n w o r d p r o c e s s o r p r o g r a m y o s e l e c t a r a l c o p a t i b l e w i t h e a c h o t h e r . A s f r i e n d s w h h a v e p u t o g e t h e r s y s t e m , t a k eu t h p r o b l e m a u s e r g r o u p m e e t i n g , o r a s f o d e m o n s t r a t i o n o f t h ea v a i l a b l e p r o g r a m s a c o m p u t e r s t o r e .

A d v a n c e d W o r d P r o c e s s i n g F u n c t i o n sA y o h a v e l e a r n e d , w o r d p r o c e s s o r l e t s y o w r i t e o t h c o m p u t e r ' s

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

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

w a t h i s u s u a l l y w o r k s i b s e t t i n g r a n g e w i t h i n t h l i n e s o t h v i d e os c r e e n . O c o m m a n d , y o c a m o v e w h a t e v e r i w i t h i n t h a t r a n g e — f r o ms i n g l e w o r d t s e v e r a l p a r a g r a p h s — a n y w h e r e e l s e i t h t e x t .

O n r e a s o n f o u s i n g a w o r d p r o c e s s o r i t s e n d m u l t i p l e , p e r s o n a l i z e dl e t t e r s u s i n g i n f o r m a t i o n f r o m n a m e a n a d d r e s s f i l e . S i n c e t h i s i n f o r m a t i o nv a r i e s f r o m l e t t e r t l e t t e r , i i o r g a n i z e d a v a r i a b l e b l o c k s . T h i s f u n c t i o n i a l s o k n o w a m a i l m e r g e i s o m e p r o g r a m s .

T h o p p o s i t e o v a r i a b l e t e x t i i n f o r m a t i o n t h a t o c c u r s r e p e a t e d l y f r o mo n e m a n u s c r i p t t a n o t h e r . T h i s k i n d o r e p e a t i n g i n f o r m a t i o n i c a l l e d b o i le r p l a t e . ( T h e t e r m c o m e s f r o m t h l e g a l p r o f e s s i o n , w h e r e i m e a n s t u s a n k i n d o s t a n d a r d c l a u s e i c o n t r a c t o a g r e e m e n t , a g a i n a n a g a i n . ) T h

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 152/318

A d v a n c e d W o r d P r o c e s s i n g F u n c t i o n s 1 3

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

M a n u s c r i p t p a g e s a r b e s t i d e n t i f i e d b h a v i n g c e r t a i n i n f o r m a t i o n a t h e t o p o r b o t t o m o e a c h p a g e . T h e s e l i n e s , w h i c h c o u l d i n c l u d e t h e a u t h o r ' sn a m e , t h t i t l e o t h m a n u s c r i p t , a n t h p a g e n u m b e r , a r c a l l e d h e a d e r s( i a t h t o p ) a n f o o t e r s ( a t h b o t t o m ) .F o v e r y l o n g m a n u s c r i p t s , s o m e w o r d p r o c e s s o r s c a m a k e n o t e s ( o f l o p p y d i s k ) t o t h e m s e l v e s . T h i s n o t e f i l e i s d e s i g n e d t b t a b l e o c o n t e n t so r w i t h e n o u g h n o t e s , a i n d e x f i l e . T h i s f e a t u r e i r e a l h e l p t a n y o n e w h h a e v e r h a t h t i m e - c o n s u m i n g j o o p r e p a r i n g a i n d e x t b o o k o o t h e rl o n g d o c u m e n t .

H a v e y o e v e r m i s s p e l l e d w o r d t h r o u g h o u t w h a t y o a r e w r i t i n g , o n l yt g o b a c k a n c o r r e c t i e a c h t i m e ? T h i s t a s k i t r i v i a l f o g o o d w o r dp r o c e s s o r . I i c a l l e d s e a r c h a n r e p l a c e . Y o m e r e l y g i v e t h e c o m p u t e r t h i n c o r r e c t a n c o r r e c t s p e l l i n g a n i g o e s t w o r k , f i n d i n g a r i d f i x i n g a l o t h m i s t a k e s .E v e r y w o r d p r o c e s s i n g p r o g r a m i l i m i t e d b t h a m o u n t o m e m o r y i c a u s t s t o r e w o r d s . S i n c e t h C o m m o d o r e 6 c o m p u t e r s h a v e 6 4 b y t e so R A m e m o r y , g o o d w o r d p r o c e s s o r c a s t o r e m a n y p r i n t e d p a g e s o t e x t . S t i l l , t h l e n g t h o m a n u s c r i p t m a b m o r e t h a n t h c a p a c i t y o t h c o m p u t e r . F o r t h i s r e a s o n , t h e f u l l t e x t w i l l b e b r o k e n d o w n i n t o l i n k e d d i s ko c a s s e t t e t a p e f i l e s . T h e s e m u l t i p l e f i l e s a r a l s o c a l l e d g l o b a l f i l e s .

O n c o m m o n c r i t i c i s m o f t h C o m m o d o r e 6 f a m i l y o c o m p u t e r s i t h e i r4 c h a r a c t e r - w i d e s c r e e n . s t a n d a r d t y p e w r i t t e n p a g e i 6 c h a r a c t e r s w i d e ,a n d o i n g a n k i n d o w r i t i n g w h e r e i i n e c e s s a r y t o r g a n i z e t h p a g e i n t oc o l u m n s c a n b e a m e s s . S o s o m e w o r d p r o c e s s o r s a l l o w t h s c r e e n t a c t u a l l yb e w i d e r t h a n t h n o r m a l 4 c h a r a c t e r s . H o i i d o n e ? T h s c r e e n m o v e sh o r i z o n t a l l y , l e f t a n r i g h t t r e a d t h l o n g e r l i n e s . T h i s v a r i a b l e s c r e e n w i d t hi h i g h l y d e s i r a b l e f e a t u r e . T h i s d o e s n o t m e a n , h o w e v e r , t h a t w o r dp r o c e s s o r t h a t i l i m i t e d t t h s t a n d a r d 4 0 - c h a r a c t e r s c r e e n i u s e l e s s . O t h c o n t r a r y , s o m e u s e r s ( t h i s a u t h o r i n c l u d e d ) p r e f e r t h i s s i z e s c r e e n o v e rw i d e r o n e s .

G o i n g h a n d - i n - h a n d w i t h w i d e r s c r e e n i t h a b i l i t y t o m a n i p u l a t ec o l u m n s b d u p l i c a t i n g a n m o v i n g t h e m . S o m e p r o g r a m s a l s o h a v e b u i l t -i a r i t h m e t i c f u n c t i o n s s o t h a t c o l u m n s o n u m b e r s c a b a d d e d o s u t r a c t e d . R e l a t e d i t h c a p a b i l i t y t o s o r t c o l u m n s . W i t h t h i s , y o c a o r g a n i z e

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

i l o o k s l i k e . T h i s f u n c t i o n i o f t e n c a l l e d o u t p u t t v i d e o . E v e n t h o u g h y o m a n o b a b l e t r e a d a l o t h t e x t o t h s c r e e n ( d u e t t h 4 0 - c h a r a c t e rw i d t h ) , y o c a g e a i d e a o w h e r e p a g e s b e g i n a n e n d . T h i s i u s e f u l w h e nw r i t i n g l e t t e r s , f o m a k i n g t a b l e s a n c h a r t s , a n f o s e p a r a t i n g i d e a s w i t h i n

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

t s e l e c t m a r g i n s ( w h e r e t h w o r d s b e g i n a n e n o t h l i n e ) , t y p e s i z e ( e . g . ," p i c a " o 1 0 - p i t c h t y p e , a n " e l i t e " o 1 2 - p i t c h ) , a n s p a c i n g ( s i n g l e o d o u b l es p a c e s b e t w e e n l i n e s ) . T h e p r o g r a m s h o u l d b c a p a b l e o j u s t i f y i n g ( m a k i n g

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 153/318

1 4 8 — W o r d P r o c e s s i n g : T h E l e c t r o n i c T y p e w r i t e r

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

F r o m t h s o u n d o s o m e o t h a b o v e f e a t u r e s , w o r d p r o c e s s o r s a r e d i f i c u l t t o u s e . W e l l , y e a n n o D e p e n d i n g o t h e i r d e g r e e o f l e x i b i l i t y , t h e r ec a b e d o z e n s o c o m m a n d s t l e a r n b e f o r e y o c a s t a r t u s i n g w o r dp r o c e s s i n g p r o g r a m . M o s t c o m m a n d s , h o w e v e r , a r c o m b i n a t i o n s o o n o t w k e y s a n g o o d p r o g r a m g i v e s y o v i s u a l , o n - s c r e e n c l u e s t h e l p y o a l o n g .

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

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

F o u r C o m m o d o r e 6 W o r d P r o c e s s o r sA t h t i m e o t h i s w r i t i n g , s e v e r a l w o r d p r o c e s s i n g p r o g r a m s h a b e e n

i n t r o d u c e d f o t h C o m m o d o r e 6 f a m i l y . F o u r o t h e s e h a v e b e e n s e l e c t e da g o o d e x a m p l e s . E a c h i r e a s o n a b l y p o w e r f u l p r o g r a m a n i w r i t t e n ,n o i B A S I C ( w h i c h w o u l d m a k e i t o s l o w f o p r a c t i c a l u s e ) , b u i m a c h i n ec o d e . A l f o u r p r o g r a m s a r u s e f u l t v a r i o u s d e g r e e s , a n e a c h i s l i g h t l yd i f f e r e n t i i t a p p r o a c h t t h e s s e n t i a l f u n c t i o n s o w o r d p r o c e s s o r .

Q u i c k B r o w n F o Q B i b e s t d e s c r i b e d a " m i n i " w o r d p r o c e s s o r , a n c o m e s s u p p l i e d

a c a r t r i d g e t h a t p l u g s i n t o t h b a c k o f t h e C o m m o d o r e 6 4 I n c l u d e d w i t ht h p a c k a g e a r l o o s e - l e a f i n s t r u c t i o n m a n u a l a n s e v e r a l p a g e s o n o t e so t h C o m m o d o r e v e r s i o n o f t h e p r o g r a m . ( O t h e r v e r s i o n s a r d e s i g n e d t o p e r a t e o t h I B M - P C a n C P / M s t y l e c o m p u t e r s . ) E v e r y t h i n g i p a c k a g e dl i k e a e x p e n s i v e b o o k i i t o w s l i p c a s e .

W h e n t h c o m p u t e r i t u r n e d o ( a l w a y s w i t h t h c a r t r i d g e i p l a c e t p r e v e n t d a m a g e ) , t h s c r e e n l o o k s l i k e t h i s :

Q u i c k B r o w n F o ( C

q u i c k t a o t h R E T U R N k e a n t h " m a i n m e n u " a p p e a r s .. . Q u i c k B r o w n F o

T y p eV i e wP r i n t

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 154/318

Q u i c k B r o w n F o x 1 4 1

B . V i e w6 . E d i tL . E d i tM o v eD e l e t eZ a M e m o r yS e n dR e c e i v eC l e r k . ?

T y p i n g t h f i r s t l e t t e r o a n w o r d l i s t e d o t h s c r e e n m a k e s t h c o p u t e r r e a d y f o t h a t a c t i v i t y . T y p e m e a n s t e n t e r t e x t i n t o m e m o r y . ( T h e r ea r 3 7 , 8 8 6 b y t e s a v a i l a b l e t w r i t e i n o a p p r o x i m a t e l y 2 d o u b l e - s p a c e dm a n u s c r i p t p a g e s . ) U n l i k e m o s t o t h e r w o r d p r o c e s s o r s , Q B i w h a t i k n o w na " l i n e - o r i e n t e d " e d i t o r . I t h T y p e m o d e , y o u c a o n l y e d i t t h l i n e y o a r w r i t i n g o n W h e n y o m o v e t t h n e x t l i n e , y o u m u s t u s a n o t h e r f u n c t i o no t h p r o g r a m t e d i t w h a t y o u ' v e w r i t t e n .

O n o Q B F ' s g o o d f e a t u r e s i t h f a c t t h a t i d o e s n o b r e a k u w o r d so t h s c r e e n . I n s t e a d , i a u t o m a t i c a l l y m o v e s t h c u r s o r t t h n e x t l i n e .( M a n y w o r d p r o c e s s o r s d o n ' t d t h i s , a n w o r d s a r a l m o s t a l w a y s b r o k e na t h e n o l i n e , s o m e t i m e s m a k i n g t h e m d i f f i c u l t t r e a d o t h s c r e e n . )

L . E d i t ( f o r l i n e e d i t ) i u s e d t o e d i t l i n e s o t e x t . T h l i n e s y o h a v ew r i t t e n a p p e a r a t h b o t t o m o t h s c r e e n . P r e s s i n g t h e C R S R D O W N k e b r i n g s t h n e x t l i n e . S o m e w h a t c o n f u s i n g l y , p r e s s i n g C R S R U w i l l d i s p l a y

n e l i n e — t h e p r e v i o u s o n e ! S t h s c r e e n l o o k s l i k e t h i s :o v e r t h e l a z y d o g .T h q u i c k b r o w n f o j u m p e dT h i s i t h w a Q B g o e s b a c k w a r d s a n f o r w a r d s i t h t e x t y o u ' r e

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

T h i s a l s o u n d s c o n f u s i n g , a n i t i s , a f i r s t . Y o d a d j u s t t t h i s a w k w a r ds c h e m e i v e r y l i t t l e t i m e , h o w e v e r . T h o t h e r E d i t f u n c t i o n i t h p r o g r a mi G . E d i t , t h e i n i t i a l o w h i c h s t a n d s f o " g l o b a l " e d i t i n g . B . V i e w l e t s y o r e a d a n c h a n g e " b o i l e r p l a t e " t e x t .

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

Z a M e m o r y i Q B F ' s w a o s a y i n g t e r a s e a l o f o c l e a r , e v e r y t h i n gi m e m o r y . Y o m u s t Z a p b e f o r e y o l o a d t e x t f r o m d i s k o t a p e , f o r e x a m p l e .

S e n d a n d R e c e i v e a r u n i q u e a m o n g t h w o r d p r o c e s s o r s r e v i e w e d f o t h i s b o o k . U s i n g m o d e m , y o c a n s e n d t e x t w r i t t e n w i t h Q B o v e r t h t e l e p h o n e l i n e s t o a n o t h e r c o m p u t e r u s i n g t h s a m e p r o g r a m . T h a c c o m -

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 155/318

1 4 8 — W o r d P r o c e s s i n g : T h E l e c t r o n i c T y p e w r i t e r

p a n y i n g m a n u a l o f f e r s s o m e c a u t i o n s , h o w e v e r . T h b o o k o n l y s a y s t h a t " T h eq u i c k e s t w a t f i n d o u a b o u t S e n d / R e c e i v e i t o t r y i t . "

C l e r k t a k e s c a r e o m a k i n g a n d r e a d i n g d i s k o r t a p e f i l e s o w h a t y o u ' v ew r i t t e n .

V i e w a n P r i n t a r e r e l a t e d ; V i e w l e t s y o s e w h a t y o w i l l p u o p a p e rb e f o r e i i p r i n t e d u s i n g t h e P r i n t c o m m a n d . T h e m a n u a l d o e s a g o o d j o o d e s c r i b i n g e m b e d d e d c o m m a n d s — s p e c i a l c o m b i n a t i o n s o l e t t e r s w i t h t h " # s i g n t h a t c h a n g e s p a c i n g a n m a r g i n s , s e t a b s ( l i k e o t y p e w r i t e r ) ,c e n t e r w o r d s a n d p h r a s e s , i n d e n t p a r a g r a p h s , a n p r i n t i h e a v y , b o l d f a c et y p e . S o m e o t h e s e c o m m a n d s , s a y s t h m a n u a l , w i l l w o r k o o n l y c e r t a i np r i n t e r s . I r e c o m m e n d s t h a t s p e c i f i c i n t e r f a c e , t h C a r d p r i n t ( s e e " B e y o n dB A S I C " ) , b e u s e d w i t h n o n - C o m m o d o r e p r i n t e r s . S o m e p r i n t e r s c a a l s o b a t t a c h e d t t h u s e r p o r t , a c c o r d i n g t t h m a n u a l . I i p r o b a b l y w i s e i d e at h a v e d e a l e r f i r s t d e m o n s t r a t e t h p r o g r a m w i t h t h e p r i n t e r a n i n t e r f a c ey o o w o i n t e n d t b u y .

Q B F ' s m a n u a l , i a e f f o r t t b " u s e r - f r i e n d l y , " m a k e s t h m i s t a k e o t r y i n g t b t o c u t e , s o m e t i m e s a t h e x p e n s e o f t h e f a c t s ; a n s o m e i n f o rm a t i o n n o c o m m o n t v e r s i o n s f o a l c o m p u t e r s i n o a l w a y s c l e a r . B u t ,s i n c e t h i s i n o t a c o m p l i c a t e d p r o g r a m , l e a r n i n g t u s i i s s t i l l r e l a t i v e l ys i m p l e . L e s s o n s i t h m a n u a l a l s o h e l p y o a l o n g .

H o u s e f u l i Q u i c k B r o w n F o x ? T h a t d e p e n d s o h o o f t e n y o w i l lu s i t h o m u c h w r i t i n g y o w i l l b d o i n g , a n h o w e l l y o a d j u s t t i t u n u s u a l e d i t i n g s t y l e . S o m e p e o p l e w i l l p r o b a b l y p i c k u t h " b a c k w a r d s "e d i t i n g q u i c k l y . O t h e r s w i l l s t r u g g l e .

O n n o t e t t h o s e w h d n o o w d i s k d r i v e : S i n c e t h p r o g r a m c o m e so c a r t r i d g e a n c a b u s e d w i t h c a s s e t t e r e c o r d e r , t h i s p r o g r a m m a b e y o u r b e s t b e t t g e i n t o w o r d p r o c e s s i n g . W h i l e f a f r o m p e r f e c t , i a p p e a r st d w h a t i a d v e r t i s e s .

( Q u i c k B r o w n F o x — Q u i c k B r o w n F o x , I n c . , 5 4 B r o a d w a y , S u i t e 4 F N e Y o r k , N 1 0 0 1 2 . )

W o r d P r o 3 P l u s / 6 4W o r d P r o i t h o r i g i n a l w o r d p r o c e s s i n g p r o g r a m f o C o m m o d o r e c o

p u t e r s . I w a d e s i g n e d b b r i g h t C a n a d i a n p r o g r a m m e r n a m e d S t e v eP u n t e r w h r e c o g n i z e d i t n e e d s e v e r a l y e a r s a g a n h a s i n c e p r o d u c e dm a n y u p g r a d e d v e r s i o n s . W h a t ' s i n a m e ? W o r d P r o " 3 m e a n s t h i s i t h t h i r d o f t h o s e v e r s i o n s . ( T h e r e ' s " 4 f o t h C B 8 0 3 2 p r o f e s s i o n a l c o p u t e r . ) T h " P l u s " m e a n s t h a t i w a u p g r a d e d a f t e r f i r s t b e i n g i n t r o d u c e df o t h o r i g i n a l C o m m o d o r e P E T .

T h i s v e r s i o n d i f f e r s l i t t l e f r o m i t P E c o u n t e r p a r t , w i t h f e e x c e p t i o n s .O n i t h a t t h e c o l o r s o f t h s c r e e n , b o r d e r , a n c h a r a c t e r s c a b c h a n g e dt s u i t y o u r o w t a s t e s . A n o t h e r i t h a t t h " C o n t r o l " k e y — w h i c h p u t s t h p r o g r a m i k i n d o " c o m m a n d " m o d e — w a s t h O F R V k e o t h P E T .O t h C o m m o d o r e 6 4 y o c a u s e i t h e r t h C O M M O D O R E k e y , t h C T R Lk e y , o F l f u n c t i o n k e y .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 156/318

W o r d P r o P l u s / 6 4 1 4

T h e p r o g r a m r e q u i r e s d i s k d r i v e a n o n o s e v e r a l d i f f e r e n t t y p e s o p r i n t e r s , s p e c i f i c a l l y C o m m o d o r e p r i n t e r s , t h N E S p i n w r i t e r , D i a b l o , Q u m e ,a n T E ( a l s o k n o w n a t h C I t o h S t a r w r i t e r ) . O t h e r p r i n t e r s c a n b e u s e d ,b u s o m e f e a t u r e s ( l i k e u n d e r l i n i n g ) m a n o t o p e r a t e c o r r e c t l y . A n i n t e r f a c ec a b u s e d , a l o n g a i d o e s n o t i a n w a c h a n g e t h t e x t s e n t t t h p r i n t e r . B o t h t h M i c r o W o r l d E l e c t r o n i x a n C a r d p r i n t i n t e r f a c e s h a v e b e e nt e s t e d w i t h W o r d P r o , a n b o t h w o r k w e l l . B e c a u s e t h C a r d p r i n t i " s m a r t "i n t e r f a c e c a p a b l e o o p e r a t i n g i s e v e r a l d i f f e r e n t w a y s , i m u s t b s e u f o W o r d P r o b f i r s t t y p i n g i f e w o r d s o B A S I C . T h i s i s i m p l e t a s k a n i t h o r o u g h l y e x p l a i n e d i t h e i n s t r u c t i o n s t h a t c o m e w i t h i t

W o r d P r o i g o o d s t a n d a r d b y w h i c h t j u d g e o t h e r C o m m o d o r e w o r dp r o c e s s o r s . I t i s p o w e r f u l , f a s t , a n m o d e r a t e l y e a s y t o u s e . T h W o r d P r om a n u a l , a l t h o u g h w o r d y , i p r o b a b l y t h e b e s t o f a n w o r d p r o c e s s o r m a n u a l sa n i n c l u d e s g o o d , t h o r o u g h l e s s o n s o h o t f a m i l i a r i z e y o u r s e l f w i t h t h p r o g r a m .

A f t e r L O A D i n g W o r d P r o f r o m d i s k , t h p r o g r a m a s k s f e q u e s t i o n s t " c u s t o m i z e " i t s e l f t y o u r s y s t e m . O n t h a t i a s k s i h o m a n y l i n e s s h o u l db e d e v o t e d t m a i n m e m o r y ? A m a x i m u m o 3 2 l i n e s i a l l o w e d . T h i s m e a n st h a t 1 3 , 1 6 0 b y t e s a r e a v a i l a b l e t w r i t e y o u r t e x t i n t h e q u i v a l e n t o a b o u t

d o u b l e - s p a c e d m a n u s c r i p t p a g e s . A n o t h e r " e x t r a " t e x t a r e a i a v a i l a b l e ( y o um u s t t a k e m e m o r y a w a y f r o m t h m a i n a r e a t u s i t ) , a n i u s u a l l y u s e df o v a r i a b l e b l o c k s i p r i n t i n g p e r s o n a l i z e d f o r m l e t t e r s . T h e x t r a t e x t a r e ac a a l s o b u s e d t s e d i s k d i r e c t o r y , i y o c h o o s e .

T h W o r d P r o s c r e e n h a s 2 3 l i n e s f o r e n t e r i n g t e x t . A t h t o o i t i s" s t a t u s l i n e " t h a t l o o k s l i k e t h i s :

W o r d P r o P l u s : X : I : S : C : N

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 157/318

1 4 8 — W o r d P r o c e s s i n g : T h E l e c t r o n i c T y p e w r i t e r

T h l e t t e r s g r o u p e d i t h m i d d l e o t h l i n e r e m i n d y o u o w h a t y o a r e d o i n g . s t a n d s f o " C o n t r o l . " Y o p r e s s o n o t h c o n t r o l k e y s t g e t W o r d P r o ' s f u n c t i o n s . W h e n y o p r e s s i t t h c o l o r o f t h ( i t h : X : I : S : C : N " )i r e v e r s e d . ( P r e s s i n g t h e s e c o n d t i m e a l w a y s c a n c e l s t h a t o r d e r , e x c e p tf o a s m a l l " b u g " i e a r l y v e r s i o n s o t h p r o g r a m . M o r e o t h a t l a t e r . )

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

a n a t h r i g h t o f t h l i n e a r a l w a y s f o l l o w e d b n u m b e r s t h a tt e l l y o u w h e r e t h c u r s o r i i r e l a t i o n t a v a i l a b l e m e m o r y . m e a n s c o l u m nn u m b e r ; m e a n s l i n e n u m b e r .

W o r d P r o ' s s c r e e n c a n b e t h o u g h t o a " w i n d o w " i n t o m e m o r y . W h a te v e r y o u d o o i w i l l a l s o b d o n e t t h t e x t i n m e m o r y . W h e n y o t y p em o r e t h a n t h s c r e e n w i l l h o l d ( 2 l i n e s ) , i w i l l m o v e u l i n e . U s i n g t h C R S R U a n D O W N k e y s , y o c a q u i c k l y " s c r o l l " i e i t h e r d i r e c t i o n ,f o r w a r d o b a c k w a r d t h r o u g h t h t e x t , c o r r e c t i n g o e d i t i n g a a n t i m e .T h e r e a r n s e p a r a t e T y p e a n E d i t f u n c t i o n s t s w i t c h b e t w e e n . U s i n g t h I N S T / D E L k e y , y o c a e r a s e w o r d s o s p r e a d t h e m a p a r t t o i n s e r t o t h e rw o r d s . ( I y o u h a v e l e a r n e d h o t u s t h C o m m o d o r e ' s e d i t i n g k e y s , y o u ' v ea l r e a d y g o j u m p o u s i n g W o r d P r o . )

T h e r e a r 4 d i f f e r e n t c o n t r o l k e f u n c t i o n s i W o r d P r o , t o m a n y t s u m m a r i z e h e r e . M a j o r o n e s , h o w e v e r , i n c l u d e d e l e t i n g w o r d s a n s e n t e n c e s( c o n t r o l - D ) , s e t t i n g a r a n g e o l i n e s a n t r a n s f e r r i n g t h e t e x t i r a n g e t a n o t h e r p l a c e ( c o n t r o l - R a n c o n t r o l - T ) , g e t t i n g d i s k d i r e c t o r y ( c o n t r o l - 0 ) ,e r a s i n g t h t e x t ( c o n t r o l - E ) a n p r i n t i n g o u t h t e x t o p a p e r ( c o n t r o l - O ) .

I a d d i t i o n t t h a b o v e c o n t r o l k e f u n c t i o n s , t h e r e a r e 2 d i f f e r e n tf o r m a t t i n g c o m m a n d s t h a t c a b a d d e d t t h t e x t t d e t e r m i n e i t s h a p e— m a r g i n s , j u s t i f i c a t i o n , c e n t e r i n g , b o l d f a c e p r i n t i n g , e t c . — w h e n p r i n t e do p a p e r .

W o r d P r o w a t h f i r s t w o r d p r o c e s s o r f o t h C o m m o d o r e c o m p u t e r s t o f f e r t h a b i l i t y t o d s i m p l e a r i t h m e t i c . N u m b e r s i t h t e x t c a b a d d e da n s u b t r a c t e d v e r y e a s i l y . M o r e c o m p l i c a t e d m a t h , t h o u g h , m u s t b d o n eo u t s i d e t h e p r o g r a m .

O n d i s a d v a n t a g e t W o r d P r o i t h e l a c k o w a t p r e v i e w w h a t h a b e e n w r i t t e n a i w i l l a p p e a r o p a p e r . T h i s " o u t p u t t v i d e o " f u n c t i o n i i v e r s i o n s o f t h e p r o g r a m f o t h C o m m o d o r e C B 8 0 3 2 c o m p u t e r ( w i t h a 8 0 - c h a r a c t e r s c r e e n ) , b u i m i s s i n g o b o t h t h P E a n 6 f a m i l y v e r s i o n s .

W o r d P r o ' s d e s i g n e r s m i s s e d a n o t h e r o p p o r t u n i t y o t h 6 v e r s i o n . L i k et h P E a n C B v e r s i o n s , W o r d P r o P l u s / 6 4 t a k e s u m e m o r y s p a c e u s u a l l yd e v o t e d t B A S I C p r o g r a m s . I d o e s n o t , h o w e v e r , m a k e u s o t h e a d d i t i o n a lm e m o r y a v a i l a b l e i t h 6 4 U s i n g t h i s w o u l d h a v e d r a m a t i c a l l y i n c r e a s e dt h m e m o r y a v a i l a b l e t w r i t e i n t o , c u t t i n g d o w n o t h n u m b e r o f l i n k e do g l o b a l f i l e s n e c e s s a r y f o l o n g m a n u s c r i p t s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 158/318

W o r d P r o P l u s / 6 4 1 4

T h e r e i a l s o b u i s o m e e a r l y v e r s i o n s o f t h e p r o g r a m . P r e s s i n g t h C T R L ( o o t h e r c o n t r o l k e y ) , f o l l o w e d b p u t s t h p r o g r a m i t h " e r a s e "m o d e . T o u c h i n g c o n t r o l k e a g a i n s h o u l d c a n c e l t h i s o r d e r , b u i d o e s n ' t .T h i s i p o t e n t i a l l y d i s a s t r o u s . P r o f e s s i o n a l S o f t w a r e , t h c o m p a n y t h a t s e l l st h p r o g r a m i t h U . S . , s a y s t h a t u s e r s w i t h t h e s e e a r l y v e r s i o n s s h o u l di n q u i r e a b o u t g e t t i n g a u p g r a d e d , c o r r e c t e d c o p y .F i n a l l y , t h p r o g r a m u s e s d i s k p r o t e c t i o n s c h e m e t h a t p r e v e n t s m a k i n gu n a u t h o r i z e d c o p i e s . I i c e r t a i n l y t h r i g h t o f s o f t w a r e a u t h o r o d i s t r i bu t o r t g u a r d a g a i n s t p i r a c y , b u t h i s a l s o e l i m i n a t e s t h p o s s i b i l i t y o m a k i n gb a c k - u p c o p i e s o t h p r o g r a m . I t h o r i g i n a l d i s k i d a m a g e d , i m u s t b s e n t b a c k t t h d i s t r i b u t o r a n n e d i s k c a b p u r c h a s e d f o h a n d l i n gf e e .

T h o u g h i i l i m i t e d i s o m e r e s p e c t s , W o r d P r o P l u s / 6 4 i g o o d w r i t i n gt o o l t h a t w i l l e v e n m e e t t h d e m a n d s o s o m e p r o f e s s i o n a l s . L e a r n i n g t u s a l o i t f u n c t i o n s c a b e t i m e - c o n s u m i n g , b u t a c o u p l e h o u r s o s t u d y i a l i s h o u l d t a k e t s t a r t u s i n g i t N o t e : A l t h o u g h W o r d P r o P l u s / 6 4 i a a d a p t a t i o n o a p r e v i o u s v e r s i o no f t h e p r o g r a m , n e o n e , s p e c i f i c a l l y d e s i g n e d t u s t h e f e a t u r e s o f t h eC o m m o d o r e 6 f a m i l y , i b e i n g p r e p a r e d .

( W o r d P r o P l u s / 6 4 — P r o f e s s i o n a l S o f t w a r e , I n c . , 5 F r e m o n t S t r e e t ,N e e d h a m , M 0 2 1 9 4 . )

E a s y S c r i p tE a s y S c r i p t i C o m m o d o r e ' s " o f f i c i a l " w o r d p r o c e s s o r f o t h 6 f a m i l y .

A p r e s s t i m e , t h e c o m p a n y i n d i c a t e d t h e p o s s i b i l i t y o i n c l u d i n g t h p r o g r a m( a n d o t h e r s ) w i t h t h p u r c h a s e o t h p o r t a b l e v e r s i o n o t h C o m m o d o r e 6 4 s y o m a a l r e a d y h a v e c o p y .

C r e a t e d f o C o m m o d o r e b P r e c i s i o n S o f t w a r e , B r i t i s h c o m p a n y , E a s yS c r i p t i v e r y s i m i l a r t W o r d P r o i d e s i g n , b u v e r y d i f f e r e n t i o p e r a t i o n .L i k e W o r d P r o , i t i s c h a r a c t e r - o r i e n t e d w o r d p r o c e s s o r i w h i c h t h v i d e os c r e e n a c t s a w i n d o w t t h m e m o r y w h e r e t e x t i s t o r e d . d i s k d r i v e ( o c a s s e t t e r e c o r d e r ) a n p r i n t e r a r e r e q u i r e d , a n d , t h o u g h e a r l y v e r s i o n s o t h p r o g r a m a p p e a r e d o d i s k , p l a n s c a l l f o i t u l t i m a t e l y b d i s t r i b u t e d o

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

T h a n k f u l l y , C o m m o d o r e h a s n ' t g o n e s f a a t r e s t r i c t t h p r o g r a m t w o r k o n l y w i t h i t o w p r i n t e r s . W h i l e a n y C o m m o d o r e p r i n t e r c a n b e u s e d ,i w i l l a l s o f u n c t i o n w i t h t h E p s o n , N E S p i n w r i t e r , Q u m e , D i a b l o , a n o t h e r p r i n t e r s . I n a d d i t i o n t p r i n t e r s c o n n e c t e d t h n o r m a l w a ( a t t a c h e dt t h s a m e c o n n e c t o r a s t h e d i s k d r i v e s ) , b o t h p a r a l l e l a n s e r i a l ( R S - 2 3 2 )p r i n t e r s c a b c o n n e c t e d t t h 6 4 ' s " u s e r p o r t " i y o h a v e t h p r o p e rc a b l e s .

p r e l i m i n a r y m a n u a l a n p r o g r a m u s e d f o t h i s r e v i e w i n d i c a t e t h a t7 6 s c r e e n l i n e s a r a v a i l a b l e f o w r i t i n g t e x t . T h a t i 3 0 , 5 6 0 b y t e s , o a b o u t2 d o u b l e - s p a c e d m a n u s c r i p t p a g e s . T e x t s p a c e i e x p a n d e d b u s i n g t h

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 159/318

1 4 8 — W o r d P r o c e s s i n g : T h E l e c t r o n i c T y p e w r i t e r

a d d i t i o n a l m e m o r y i t h 6 n o u s u a l l y a v a i l a b l e f o B A S I C p r o g r a m m i n g .T h i s c o m e s a w e l c o m e i m p r o v e m e n t t a n y o n e w h h a r u u a g a i n s tt h l i m i t s o f c o m p u t e r ' s m e m o r y w h e n w r i t i n g . M a n u s c r i p t s l o n g e r t h a n2 p a g e s , o f c o u r s e , c a b d i v i d e d i n t o l i n k e d , o g l o b a l , f i l e s .

U n l i k e m o s t o t h e r w o r d p r o c e s s o r s , E a s y S c r i p t m a k e s u s o t h 6 f a m i l y ' s f u n c t i o n k e y s t s i m p l i f y o p e r a t i o n . M o s t o f t e n u s e d a r e t h e F k e y ,w h i c h a c t s l i k e c o n t r o l k e t c h a n g e o p e r a t i n g m o d e s , a n F 4 w h i c h p u t st h p r o g r a m i t h " d i s k m o d e " t s t o r e a n r e t r i e v e w h a t y o u ' v e w r i t t e na w e l l a t s e d i s k d i r e c t o r i e s .

L i k e W o r d P r o , y o c a w r i t e a n e d i t s i m u l t a n e o u s l y , a n s t a t u s l i n ea t h e t o p o f t h e s c r e e n r e m i n d s y o o w h e r e y o a r i t h t e x t a n w h i c hp r o g r a m m o d e y o a r i n T w o t h e r g o o d f e a t u r e s a r e v a r i a b l e s c r e e n w i d t ha n t h a b i l i t y t p r e v i e w w h a t y o u r p r i n t e d m a n u s c r i p t w i l l l o o k l i k e . S c r e e nw i d t h c a n b e s e a n y w h e r e b e t w e e n 4 a n a a m a z i n g 2 4 c h a r a c t e r s w i d e .T h o u g h t h s c r e e n s t i l l s h o w s o n l y 4 c h a r a c t e r s a t i m e , y o c a m o v el e f t a n r i g h t ( i a d d i t i o n t u a n d d o w n ) f o w r i t i n g a n r e a d i n g l o n g l i n e s .U s i n g t h " o u t p u t t v i d e o " c o m m a n d , y o c a a c t u a l l y s e t h e n t i r e p a g e ,e x a c t l y a s i w i l l b p r i n t e d , a g a i n u s i n g t h C R S R k e y s t m o v e l e f t a n r i g h t . ( " q u i c k s c a n " f e a t u r e u s e s t h F k e t j u m p a r o u n d f o f a s t c h e c ki n g . )

S p e c i a l c o m m a n d s e m b e d d e d i t h t e x t a f f e c t t h f o r m a t o t h p r i n t e dp a g e s , a n E a s y S c r i p t ' s c o m m a n d s a r a l m o s t e x a c t l y l i k e W o r d P r o ' s .

l m l D : r m ? D : c n lT h a b o v e l i n e ( p r e c e d e d b c h e c k m a r k s y m b o l i W o r d P r o , r e v e r s e da s t e r i s k i n E a s y S c r i p t ) m e a n s t h s a m e t h i n g t b o t h p r o g r a m s : S e t h l e f t

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 160/318

E a s y S c r i p t 1 4

m a r g i n t 1 s p a c e s , t h r i g h t m a r g i n t 7 a n c e n t e r t h e l i n e o t h p a g e .O t h e r f o r m a t c o d e s , t o o , a r t h s a m e , b u t E a s y S c r i p t a n d W o r d P r o w i l l n o a c c e p t e a c h o t h e r ' s d i s k o r t a p e f i l e s . A n d , w h i l e t h e i r b a s i c f u n c t i o n s a r es i m i l a r , m o s t o E a s y S c r i p t ' s c o m m a n d s a r d i f f e r e n t , t h o u g h j u s t a b o u t a l o g i c a l a s W o r d P r o ' s .

T h f a c t t h a t C o m m o d o r e i s p o n s o r i n g E a s y S c r i p t m e a n s t h a t i s t a n d sg o o d c h a n c e o b e c o m i n g t h s t a n d a r d w o r d p r o c e s s o r f o t h 6 4 A g o o d

a i i s , i t s e e m s t l a c k f e f u n c t i o n s . ( T h e r e d o e s n ' t a p p e a r t b n u m e r i cm o d e o a r i t h m e t i c f u n c t i o n s . ) S t i l l , i i w e l l - w r i t t e n p r o g r a m s u i t a b l e f o b o t h a m a t e u r a n p r o f e s s i o n a l u s e r s a l i k e .

( E a s y S c r i p t — C o m m o d o r e B u s i n e s s M a c h i n e s , 1 2 0 0 W i l s o n D r i v e , W e s tC h e s t e r , P 1 9 3 8 0 . )

P a p e r c l i pP a p e r C l i p i k i n d o " d r e a m m a c h i n e " w o r d p r o c e s s o r t h a t h a i l s f r o m

B a t t e r i e s I n c l u d e d , C a n a d i a n s o f t w a r e c o m p a n y w i t h h u m o r o u s n a m e .( N b a t t e r i e s a r i n c l u d e d w i t h t h p r o g r a m , o a r e a c t u a l l y n e c e s s a r y . ) J u s ta b o u t e v e r y f e a t u r e y o c o u l d t h i n k o i w o r d p r o c e s s i n g p r o g r a m i h e r e .I f a c t , P a p e r C l i p i s p o w e r f u l t h a t i c a t a k e l o n g t i m e t l e a r n h o t f u l l y e x p l o i t i t m a n y , m a n y f e a t u r e s . T h e r e a r e n e a r l y 1 5 d i f f e r e n t o p e r a t i o na n f o r m a t c o m m a n d s ! Y e o n l y f e o t h e s e a r e n e c e s s a r y t s t a r t w o r k i n gw i t h i t

T h e p r o g r a m r e s e m b l e s b o t h W o r d P r o a n E a s y S c r i p t i i t o p e r a t i o na n c o m m a n d s . T h o u g h t h m a n u a l f a i l s t m e n t i o n i t P a p e r C l i p w i l l e v e na c c e p t d i s k f i l e s w r i t t e n b W o r d P r o a n d , w i t h s o m e m i n o r m o d i f i c a t i o n s ,E a s y S c r i p t . ( B e w a r e , t h o u g h . W o r d P r o w o n ' t a c c e p t P a p e r c l i p ' s f i l e s . ) Y o c a a l s o s t o r e t e x t o c a s s e t t e t a p e f i l e s a n p r o b a b l y L O A D t h P a p e r C l i pp r o g r a m i t s e l f f r o m t a p e . B u s i n c e i i e x t r e m e l y l o n g , u s i n g i w i t h o u td i s k d r i v e i i m p r a c t i c a l .

N e a r l y a n p r i n t e r c a n b e u s e d w i t h t h p r o g r a m d u t t h n o v e l w a P a p e r C l i p h a o c u s t o m i z i n g i t s e l f f o u s w i t h y o u r p r i n t e r a n i n t e r f a c e .M o r e t h a n d o z e n s t a n d a r d " p r i n t e r f i l e s " a r i n c l u d e d o t h s a m e d i s k a t h p r o g r a m . T h e s e a r d e s i g n e d t w o r k w i t h t h C o m m o d o r e , E p s o n , N E S p i n w r i t e r , T E ( C . I t o h ) , D i a b l o , a n d O l y m p i a p r i n t e r s , a n a r e n t e r e dw i t h P a p e r C l i p i t s e l f . I n o n e o t h s u p p l i e d f i l e s w o r k w i t h y o u r p r i n t e r ,y o c a b u i l d o n u s i n g a p r o g r a m t h a t ' s a l s o i n c l u d e d . I n s t e a d o f e n t e r i n gt h i s f i l e e a c h t i m e y o w a n t t p r i n t , y e a n o t h e r p r o g r a m w i l l m a k e n e v e r s i o n o P a p e r C l i p , w i t h y o u r p r i n t e r i n f o r m a t i o n p e r m a n e n t l y i n p l a c e .

L i k e E a s y S c r i p t , y o c a w r i t e o l i n e l o n g e r t h a n P a p e r C l i p ' s n o r m a l4 c h a r a c t e r s — u p t 1 2 c h a r a c t e r s . A g a i n , y o u s t h C R S R k e y s t m o v el e f t a n r i g h t , a w e l l a b a c k w a r d s a n f o r w a r d s t h r o u g h t e x t . Y o c a a l s op r e v i e w w h ^ i t y o u ' v e w r i t t e n b e f o r e i i p r i n t e d o p a p e r u s i n g a " o u t p u tt v i d e o " c o m m a n d . U n l i k e E a s y S c r i p t , h o w e v e r , P a p e r C l i p w i l l n o a l l o wy o t s e t h e n t i r e p a g e — t h e r i g h t s i d e i l i k e l y t b c h o p p e d o f f — d u e t t h l i m i t a t i o n s o s c r e e n w i d t h . T h i s i s t i l l u s e f u l f o s e e i n g w h e r e p a g e s

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 161/318

1 4 8 — W o r d P r o c e s s i n g : T h E l e c t r o n i c T y p e w r i t e r

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

F o j o b s w h e n c o l u m m s o i n f o r m a t i o n ( l i s t s , e t c . ) a r i m p o r t a n t , P a p e r C l i pw i l l m o v e t h e s e c o l u m n s , p e r f o r m s i m p l e a r i t h m e t i c ( a d d i t i o n a n s u b t r a ct i o n ) , a n e v e n s o r t n u m b e r s o w o r d s b y v a l u e s o r a l p h a b e t i c a l l y . T h i s m e a n sy o u c a n s e u a m a i l i n g l i s t , p u n e e n t r i e s a t t h b o t t o m , t h e n a s t h p r o g r a m t o i n s e r t t h e m i n t h e i r p r o p e r p l a c e s o t h l i s t .

t a b l e o c o n t e n t s , o i n d e x f i l e , c a a l s o b g e n e r a t e d a u t o m a t i c a l l y b t h p r o g r a m . T u s t h i s f e a t u r e , y o t y p e i s p e c i a l l i n e s i d e n t i f y i n g t h t o p i c s y o u ' r e d i s c u s s i n g . W h e n y o " o u t p u t t v i d e o , " P a p e r C l i p w i l l t a k et h e s e c o m m e n t s a n b u i l d n e d i s k f i l e t h a t i n d i c a t e s t h p a g e o n w h i c he a c h t o p i c a p p e a r s .

U n l i k e t h o t h e r w o r d p r o c e s s o r s i t h i s c h a p t e r , P a p e r C l i p c o m e s f u n i s h e d o a u n p r o t e c t e d d i s k s y o c a e a s i l y m a k e b a c k - u p c o p i e s t u s i t h o r i g i n a l d i s k i d a m a g e d o d e s t r o y e d . T p r o t e c t t h p r o g r a m a g a i n s tu n a u t h o r i z e d c o p i e s , a e l e c t r o n i c " k e y " i i n c l u d e d . I p l u g s i n t o t h c o p u t e r o c o n t r o l ( j o y s t i c k ) p o r t n u m b e r 1 a n P a p e r C l i p w o n ' t r u w i t h o u ti t T h i d e f r o m p r y i n g e y e s , t h e l e c t r o n i c c i r c u i t r y i n s i d e t h k e i e m b e dd e i r o c k - s o l i d e p o x y .

I t h e r e i o n c o m p l a i n t a b o u t P a p e r C l i p , i i i t i n s t r u c t i o n m a n u a l .T h i s p r o g r a m i e x t r e m e l y p o w e r f u l , y e t t h e b o o k d o e s n o g f a e n o u g h i e x p l a i n i n g t h m y r i a d o f e a t u r e s . P a r t i c u l a r l y p o o r a r t h e i n s t r u c t i o n s o h o t b u i l d p r i n t e r f i l e s a n m a k e c u s t o m c o p i e s o t h p r o g r a m . T h p r i n t e rf i l e s t h a t a r e s u p p l i e d o t h m a s t e r d i s k a r e n ' t i d e n t i f i e d w e l l , e i t h e r . T t o i o f f , t h b o o k w a w r i t t e n f o t h P E T / C B M v e r s i o n o P a p e r C l i p a n o n l y o n e p a g e i d e v o t e d t t h d i f f e r e n c e s b e t w e e n i a n t h 6 v e r s i o n .( B a t t e r i e s I n c l u d e d p r o m i s e s t o r e v i s e t h b o o k , a n s a y s t h a t a l o w n e r s o t h p r o g r a m w i l l b s e n t t h e n e e d i t i o n o u p d a t e n o t e s . )

D e s p i t e t h p o o r m a n u a l , t h i s i t e r r i f i c p r o g r a m t h a t s h o u l d s a t i s f yv i r t u a l l y a n y o n e w h u s e s i t I t f l e x i b i l i t y a n c o m p a t i b i l i t y w i t h o t h e rp r o g r a m s m a k e s i a i n v a l u a b l e a d d i t i o n t a n C o m m o d o r e 6 s y s t e m .

( P a p e r C l i p 6 4 — B a t t e r i e s I n c l u d e d , 7 1 M c C a u l S t r e e t , T o r o n t o , O n t a r i o ,C a n a d a M 5 T - 2 X 1 )

F e T i p sU s i n g w o r d p r o c e s s o r w i l l c h a n g e t h w a t h a t y o w r i t e . I n a d d i t i o n

t t h o p p o r t u n i t i e s y o h a v e t c o r r e c t e r r o r s , i c a a l s o i m p r o v e t h q u a l i t yo y o u r w r i t i n g . F o e x a m p l e , i y o u ' v e u s e d w o r d e a r l i e r t h a t i m o r es u i t a b l e i a n o t h e r p l a c e , d o n ' t h e s i t a t e t c h a n g e i t N o s h o u l d y o e v e rn e e d t e x c l u d e i d e a s j u s t b e c a u s e y o t h o u g h t o t h e m l a t e — g o b a c k a n i n s e r t t h e m w h e r e t h e y b e l o n g .

E v e r y o n e e s t a b l i s h e s t h e i r o w s y s t e m f o w o r k i n g , b u t h e r e a r f e t i p s t g e y o s t a r t e d :

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 162/318

F e T i p s 1 4

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

• O r g a n i z e y o u r d i s k s , o n f o l e t t e r s , o n f o s c h o o l w o r k , o n f o t h a tp e p r o j e c t y o u ' v e b e e n w o r k i n g o n e t c . T h a t w a y , y o u r w o r k w i l la l w a y s b e a s y t l o c a t e . O r o r g a n i z e d i s k s b t i m e , l a b e l i n g t h e m b m o n t h o e v e n w e e k f o e a s y r e f e r e n c e .

• T r y t p u t h t i t l e a t h t o o e a c h t e x t f i l e a a n o n - p r i n t i n g c o m e n t . Y o u ' l l n e v e r n e e d t w o r r y a b o u t s t o r i n g i o d i s k b t h w r o n gn a m e .

• A l w a y s m a k e b a c k - u p c o p i e s o y o u r f i l e s i w h a t y o u a r w o r k i n g o i i m p o r t a n t . T r u e m i s e r y i l o s i n g w e e k s o w o r k . U p d a t e t h b a c ku c o p i e s a y o r e w r i t e a n e d i t s t h a t t h e y c o n t a i n t h s a m e t e x ta s t h e m a s t e r s . S a v e y o u r w o r k t d i s k o r t a p e o f t e n , s o t h a t y o w o n ' tl o s e a l o i i y o m a k e a o p e r a t i n g m i s t a k e .M a k e c o p y o t h c o m m a n d s u m m a r y f r o m y o u r m a n u a l a n k e e pi i f r o n t o y o u n t i l y o k n o w t h p r o g r a m b a c k w a r d s a n f o r w a r d s . ,I t h e r e i n s u c h s u m m a r y , m a k e o n f o y o u r s e l f .W h i l e p r o o f r e a d i n g f r o m t h v i d e o s c r e e n i t e m p t i n g a n s a v e s p a p e r ,p r i n t o u t a c h e c k i n g c o p y . T h e r e ' s n o t h i n g l i k e s e e i n g w o r d s o p a p e rt c a t c h m i s t a k e s .B s u r e t s e u t h p l a c e w h e r e y o w i l l w o r k s o t h a t y o w i l l b c o m f o r t a b l e — c o m p u t e r a t h r i g h t h e i g h t , p l e n t y o r o o m f o w o r k i n gm a t e r i a l s , n g l a r e f r o m b a c k - l i g h t i n g . T a k e f r e q u e n t b r e a k s s t h a ty o u ' r e n o s t a r i n g a t t h e v i d e o s c r e e n f o l o n g p e r i o d s o t i m e .

• D o n ' t b t e m p t e d t r e w r i t e y o u r w o r k t d e a t h . T h o u g h w o r d p r c e s s o r s o f f e r t h c h a n c e t c o n t i n u a l l y i m p r o v e , t o m u c h r e w r i t i n gc a h u r t w h a t y o c r e a t e d . D o n ' t s p e n d m o r e t i m e t h a n i w o u l d t a k ey o t w r i t e o t y p e w r i t e r . W h e n t h j o i d o n e , t h w o r k i o v e r .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 163/318

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 164/318

C o l o r , G r a p h i c s , S o u n d ,a n G a m e s

S o m e p e r s o n a l c o m p u t e r o w n e r s n e v e r t a k e a d v a n t a g e o t h c o l o r , g r a p h i c s ,a n s o u n d f e a t u r e s o t h e i r m a c h i n e s . T o t h e r s t h e s e a r e a m o n g t h m o s ti m p o r t a n t a s p e c t s o a n c o m p u t e r . T h e r e a r e t h o s e w h w o u l d a r g u e t h a tt h e s e " f r i l l s " a r e n ' t i m p o r t a n t f o " s e r i o u s " c o m p u t i n g — m a t h , w o r d p r c e s s i n g , d a t a b a s e m a n a g e m e n t , e t c . T h e y p o i n t a f i n g e r a v i d e o g a m e s .

C e r t a i n l y a d v a n c e d g r a p h i c s a n a u d i o f e a t u r e s m a k e m a c h i n e p e r f e c tf o g a m e s , b u t h e y o f f e r e v e n g r e a t e r o p p o r t u n i t i e s . G r a p h i c s a r b e c o m i n gm o r e a n m o r e i m p o r t a n t a n t h c o m p u t e r i p r o v i d i n g n e w a y s o v s u a l i z i n g i n f o r m a t i o n . ( H a v e y o s e e n U S T o d a y , t h e n a t i o n a l n e w s p a p e r ?M a n y o i t c o l o r f u l " i n f o r m a t i o n g r a p h i c s " a r p r o d u c e d b c o m p u t e r . )R e c e n t , a d v a n c e d c o m p u t e r s l i k e t h X e r o x S t a r a n A p p l e L i s a a r e a l s ob r e a k i n g n e g r o u n d i t h u s o g r a p h i c s .

J u s t b e c a u s e c o m p u t e r c a n p r o d u c e t h b l e e p s a n y e l p s o f v i d e og a m e d o e s n ' t m e a n t h a t i a l i c a d o C o m p u t e r s c a b m u s i c a l , o r r p r o d u c e h u m a n s p e e c h w i t h s t a r t l i n g a c c u r a c y .

T h C o m m o d o r e 6 f a m i l y r e a l l y s h i n e s w h e n i c o m e s t i t g r a p h i ca n s o u n d c a p a b i l i t i e s . U n f o r t u n a t e l y u n l o c k i n g t h a t p o w e r c a n b e c o m p l e xa n t i m e - c o n s u m i n g . T h a t ' s b e c a u s e o u r o n l y c o n v e n i e n t l i n k t t h m a c h i n ei t h B A S I C p r o g r a m m i n g l a n g u a g e . M a k i n g p i c t u r e s a n s o u n d s w i t h B A S I Ci l i t t l e l i k e t r y i n g t d e s c r i b e s u n s e t o r s y m p h o n y w i t h o n l y f e w o r d s .T h e r e ' s l i t t l e c h a n c e f o p o e t r y , b u w c a n , w i t h d i f f i c u l t y , g e t h i d e a a c r o s s .

1 5

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 165/318

1 5 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

T h i s c h a p t e r w i l l i n t r o d u c e y o t c o l o r , g r a p h i c s , a n s o u n d o t h C o m m o d o r e 6 f a m i l y . I i s n ' t i n t e n d e d a c o m p l e t e t r e a t m e n t o f t h e s et o p i c s , b u o n l y t w h e t y o u r a p p e t i t e f o m o r e . M o r e i a v a i l a b l e , t o o , n e a rt h e n o t h i s b o o k i t w c h a p t e r s e n t i t l e d " E x p l o r i n g G r a p h i c s 1 ' a n " E x p l o r i n g S o u n d . " T h o s e c h a p t e r s w i l l r e q u i r e y o t c o m e t t h e m w i t h

g o o d u n d e r s t a n d i n g o o t h e r i d e a s i t h i s b o o k . E v e n t h e y c a n n o t t e a c hy o e v e r y t h i n g , t h o u g h . G r a p h i c s a n s o u n d d e s e r v e a b o o k a l t t h e m s e l v e s .

I t h i s c h a p t e r , y o w i l l l e a r n h o t m a k e y o u r p r o g r a m s m o r e a t r a c t i v e - l o o k i n g , a n h o t s t a r t u s i n g a f e g r a p h i c t r i c k s . Y o u ' l l l e a r nh o t h c o m p u t e r c a n b e t a u g h t t p l a y s i m p l e s o n g s . I y o a r i n t e r e s t e di g a m e s , y o m a w a n t t k n o w a b o u t t h c o m p u t e r ' s " r a n d o m n u m b e rg e n e r a t o r " — i t c a t o s s p a i r o f d i c e o s p i n a w h e e l o f f o r t u n e . F i n a l l y ,y o u ' l l l e a r n l i t t l e a b o u t t h " c o n t r o l p o r t s . " T h a t ' s w h e r e y o u p l u g i j o y s t i c k s a n g a m e p a d d l e s .

V i c t o r a n S I D n e yV I a n d S I D s o u n d l i k e c o u p l e o g u y s w h m i g h t i n h a b i t L a V e g a s

c a s i n o . I n t h e c a s e o t h C o m m o d o r e 6 4 c o m p u t e r s , t h o u g h , t h e y a r e t h en a m e s g i v e n t t w i n c r e d i b l y c a p a b l e m i c r o c h i p s t h a t c o n t r o l e v e r y t h i n gy o s e a n h e a r o t e l e v i s i o n s e o v i d e o m o n i t o r .

V I s t a n d s f o V i d e o I n t e r f a c e C o n t r o l l e r , a n S I i a a c r o n y m f o t h S o u n d I n t e r f a c e D e v i c e . I n s i d e t h e s e t w c h i p s a r e m o r e f e a t u r e s t h a nm o s t c o m p u t e r s c a b o a s t o f

V I o f f e r s v a r i e t y o g r a p h i c m o d e s . T h f i r s t o t h e s e i t h e c h a r a c t e rm o d e . I i t h o n t h a t t h e c o m p u t e r " c o m e s a l i v e " i a n i t h s i m p l e s tt o u s e . T h P R I N T c o m m a n d i u s e d t p u s o m e t h i n g o t h s c r e e n . T h o u g hi i a l s o t h m o s t l i m i t e d , c l e v e r p r o g r a m m e r s a r a l w a y s f i n d i n g n e w a y so m a k i n g a t t a c t i v e v i d e o p i c t u r e s i n t h i s m o d e .

O n w a o e n h a n c i n g t h a p p e a r a n c e o s c r e e n i t h c h a r a c t e r m o d ei t o r e d e f i n e t h c o m p u t e r ' s c h a r a c t e r s e t . T h V I c h i p c a n b e i n s t r u c t e dt c h a n g e f r o m i t s t a n d a r d a l p h a b e t , n u m b e r s , a n o t h e r s y m b o l s , t c h a ra c t e r s o f y o u r o w d e s i g n . S p e c i a l s y m b o l s f o m a t h a n s c i e n c e , o t h e r l a g u a g e s , e v e n m u s i c c a b p r o g r a m m e d a n e c h a r a c t e r s .

I t h c h a r a c t e r m o d e , t h v i d e o s c r e e n h a 1 , 0 0 0 i n d i v i d u a l p l a c e s ( 2 l i n e s o 4 c h a r a c t e r s ) , a n e a c h i r e p r e s e n t e d b b y t e o m e m o r y . I t o t a l ,1 , 0 0 0 b y t e s a r u s e d f o t h s c r e e n . S i n c e i c a a c c o m m o d a t e u p t 1 d i f f e r e n t c o l o r s o f c h a r a c t e r s o t h s c r e e n a o n t i m e , a d d i t i o n a l m e m o r ys t o r e s t h i s c o l o r i n f o r m a t i o n . F o i t c o l o r , e a c h c h a r a c t e r r e q u i r e s o n l y o n e -h a l f b y t e , o f o u r b i t s . ( T h i s m a s o u n d l i k e j o k e , b u i i s n ' t : T h e s e h a l f -b y t e s a r e c a l l e d " n y b b l e s . " ) A n o t h e r 5 0 b y t e s , t h e n , a r d e v o t e d t s c r e e nc o l o r .

A n o t h e r g r a p h i c m o d e , c a l l e d h i g h - r e s o l u t i o n g r a p h i c s , i u s e d t o v e rc o m e t h l i m i t a t i o n s o f t h e c h a r a c t e r m o d e . W i t h h i g h - r e s o l u t i o n g r a p h i c s ,t h s c r e e n i m a d e u c o m p l e t e l y o d o t s , c a l l e d p i x e l s , f o p i c t u r e e l e m e n t s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 166/318

V I C t o r a n S I D n e y 1 5

( Y o u c a n n o t u s t h P R I N T c o m m a n d , h e r e . ) E a c h d o r e p r e s e n t s s i n g l eb i i m e m o r y . T h d i m e n s i o n s o h i - r e s s c r e e n a r 3 2 d o t s a c r o s s b 2 0 d o w n . T h i s c o r r e s p o n d s t 8 , 0 0 0 b y t e s o m e m o r y .

T h e r e c a n b t w c o l o r s , o n c o l o r f o t h b a c k g r o u n d a n d a n o t h e r f o t h d o t s . O n v a r i a t i o n o t h i s m o d e a l l o w s y o t d e t e r m i n e d i f f e r e n t r e g i o n so t h s c r e e n , e a c h r e g i o n b e i n g a a r e a o f c h a r a c t e r - s i z e b l o c k s . Y o c a s e d i f f e r e n t b a c k g r o u n d a n d d o c o l o r w i t h i n r e g i o n f o c o l o r e d h i - r e ss c r e e n s , b u o n l y t w c o l o r s c a b e u s e d i e a c h r e g i o n .

Y o c a d o u b l e t h n u m b e r o c o l o r s u s e d o t h s c r e e n i y o u s a n o t h e rm o d e , c a l l e d m u l t i c o l o r . F o u r d i f f e r e n t c o l o r s c a n b e u s e d s i m u l t a n e o u s l y ,b u t h s c r e e n ' s r e s o l u t i o n i c u i h a l f . m u l t i c o l o r s c r e e n h a o n l y 1 6 0d o t s a c r o s s , b u t 2 0 0 d o w n . ( Y o u c a n ' t u s t h P R I N T c o m m a n d i m u l t i c o l o rm o d e , e i t h e r . )

S p r i t e s c a b u s e d i a n g r a p h i c m o d e . T h e s e a r e s m a l l , h i g h - r e s o l u t i o np i c t u r e s s t o r e d i v a r i o u s p l a c e s i m e m o r y . T h V I c h i p c a r e c o g n i z et h e s e p i c t u r e s a n p u t h e m o t h v i d e o s c r e e n , w h e r e y o u c a m o v e t h e ma r o u n d u s i n g B A S I C . s p r i t e i m a d e u o f a s m a n y a 5 4 d o t s — 2 4 a c r o s sb 2 d o w n — o r 6 b y t e s o m e m o r y . I c a n b e i a n o n o f t h e 6 4 ' s s i x t e e nc o l o r s , a n c a b d o u b l e d i w i d t h , h e i g h t o r b o t h . T h e s e s i n g l e - c o l o r s p r i t e sa r e t h e m o s t i m p r e s s i v e g r a p h i c d e v i c e t h a t i n e x p e r i e n c e d p r o g r a m m e r s c a u s e . A n o t h e r k i n d o s p r i t e i m u l t i c o l o r s p r i t e . L i k e t h m u l t i c o l o r h i - r e ss c r e e n , m u l t i c o l o r s p r i t e c a b f o u r c o l o r s , i n c l u d i n g t h b a c k g r o u n d c o l o ro t h s c r e e n . M u l t i c o l o r s p r i t e s a r m o r e d i f f i c u l t t u s a n p r o g r a m t h a ns i n g l e - c o l o r s p r i t e s .

S p r i t e s , r e d e f i n e d c h a r a c t e r s a n h i - r e s s c r e e n s a r e e x p l a i n e d i m o r ed e t a i l i " E x p l o r i n g G r a p h i c s . " I t h i s c h a p t e r , y o u ' l l l e a r n a b o u t c h a r a c t e rg r a p h i c s , a n h o t t u r n s p r i t e s o a n o f a n m o v e t h e m o t h s c r e e n .

V I i s n ' t t h o n l y c h i p t o f f e r c r e a t i v e p o s s i b i l i t i e s . W h a t V I d o e s f o y o u r e y e s , S I d o e s f o y o u r e a r s .

S o m e c o m p u t e r s c a n s q u e a k a n g r u n t . S I c a c r o o n , a n d , i t h n e a rf u t u r e , m a e v e n t a l k . ( P r o g r a m m e r s a r w o r k i n g o n s p e e c h s y n t h e s i z e r p r g r a m s f o S I r i g h t n o w . ) S I D ' s t h r e e v o i c e s a l l o w i t m a k e t h r e e d i s t i n c ts o u n d s s i m u l t a n e o u s l y . T h c h i e f d i f f e r e n c e b e t w e e n t h a u d i o c a p a b i l i t i e so f t h e 6 c o m p u t e r f a m i l y a n t h e i r p r e d e c e s s o r , t h e V I C - 2 0 , i i t h e q u a l i t yo s o u n d p r o d u c e d . ( T h e V I C - 2 0 h a n S I c h i p o i t o w n . )

T h c o m p o n e n t s o s o u n d , a u s e d b a e l e c t r o n i c m u s i c s y n t h e s i z e rf o i n s t a n c e , a r a t t a c k , d e c a y , s u s t a i n a n r e l e a s e ( A D S R ) . T h d i f f e r e n c e s i t h e s e a r e t h e p r i m a r y r e a s o n w h p i a n o s o u n d s d i f f e r e n t t h a n b a n j o , o rw h a p i p e o r g a n d o e s n ' t s o u n d l i k e a C h i n e s e g o n g . A t t a c k , d e c a y , s u s t a i na n r e l e a s e a r m e a s u r e d i t i m e — t i n y f r a c t i o n s o f s e c o n d . E a c h o S I D ' sv o i c e s c a h a v e d i f f e r e n t A D S R s e t t i n g s .

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

D e c a y c o m e s a f t e r a t t a c k a n i t h f a l l i n g a c t i o n . I p i a n o , t h e o r i gi n a l s o u n d i l o u d , b u g r a d u a l l y f a l l s o f t a " r i n g i n g " l e v e l .

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 167/318

1 5 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

T h e s e a r s i m p l e c o n c e p t s t h a t a r e o f t e n v e r y d i f f i c u l t t u n d e r s t a n d ,a n a r c o v e r e d i m o r e d e t a i l i t h c h a p t e r e n t i t l e d " E x p l o r i n g S o u n d . "F o r i g h t n o w , y o u ' l l l e a r n h o t g e S I t m a k e s o u n d , a n h o t h c o m p u t e r c a p l a y m u s i c a l n o t e s a n s i m p l e s o n g s .

T h s h a p e t h a t r e s u l t s f r o m s e t t i n g t h A D S R i c a l l e d a e n v e l o p e . I a d d i t i o n t o d i f f e r e n t A D S R s e t t i n g s , S I c a g i v e e a c h v o i c e d i f f e r e n t b a s i cs o u n d , o w a v e f o r m . T h i n k o f t h e w a v e f o r m a s t h e k i n d o c l o t h s h i r t i c u f r o m , a n t h s t y l e o t h s h i r t i t s e l f a t h e e n v e l o p e . T h s o u n d c a t h e n b f u r t h e r c h a n g e d b t h e f f e c t s o v a r i o u s f i l t e r s . I y o u ' r e f a m i l i a r w i t h e l e ct r o n i c m u s i c s y n t h e s i z e r s , y o u ' l l a l s o b i n t e r e s t e d t k n o w t h a t t h e r e i r i n g m o d u l a t o r i t h S I c h i p , a n t h a t y o c a a c t u a l l y m i " r e a l " s o u n df r o m t a p e r e c o r d e r , m i c r o p h o n e , o m u s i c a l i n s t r u m e n t w i t h t h S I s o u n d .( T h e r e ' s a i n p u t , p i n s n u m b e r e d a n 2 o t h A u d i o / V i d e o p l u g a t h b a c k o t h c o m p u t e r . D o n ' t t r c o n n e c t i n g a n y t h i n g t t h e s e u n l e s s y o k n o w w h a t y o u ' r e d o i n g . )

F i n a l l y , t h e r e a r n o n - a u d i o a n n o n - v i d e o f u n c t i o n s o S I D a n d V I C .I n s i d e V I a r m e m o r y l o c a t i o n s u s e d w i t h l i g h t p e n . I n t h e S I a r m e m o r yl o c a t i o n s u s e d t r e a d t h p o s i t i o n o g a m e p a d d l e s .

A m e n t i o n e d e a r l i e r , t h e r e a r n o w o r d s i B A S I C t h a t d e a l d i r e c t l yw i t h V I a n S I D . W c a c o m m u n i c a t e w i t h t h e s e c h i p s , t h o u g h , u s i n gP O K E t p u n u m b e r s i n t o m e m o r y l o c a t i o n s i n s i d e t h e m . T h e r e a r 2 m e m o r y l o c a t i o n s i V I C , n u m b e r e d 5 3 2 4 8 t 5 3 2 7 1 . I n s i d e S I a r 2 l c a t i o n s t h a t r e f e r t o s o u n d m a k i n g , n u m b e r e d 5 3 2 7 2 t 5 3 2 9 6 .

R a N D o m N o t e sB e f o r e w g a n f u r t h e r , l e t ' s t a k e l o o k a B A S I C w o r d y o u ' l l f i n d

i t w o f t h e p r o g r a m s i t h i s c h a p t e r . T h a t w o r d i R N D , f o R a N D o m . I p r o d u c e s r a n d o m n u m b e r s i a l t h C o m m o d o r e c o m p u t e r s , f r o m t h V I t t h m e m b e r s o t h 6 f a m i l y .

R a n d o m n u m b e r s a r a e s s e n t i a l p a r t o g a m e p l a y i n g . E v e r y t i m e y o r o l l d i c e , s p i n a w h e e l , o s h u f f l e c a r d s , y o g e r a n d o m n u m b e r s o r a n d o ms e q u e n c e o n u m b e r s . T h e y a r p r o d u c e d b t h c o m p u t e r w i t h m a t h em a t i c a l f o r m u l a c a l l e d r a n d o m n u m b e r g e n e r a t o r . T h e s e n u m b e r s a r a t u a l l y n o c o m p l e t e l y r a n d o m , b u t h w a t h f o r m u l a w o r k s i s o c l e v e rt h a t y o w o n ' t s e a n p a t t e r n .

R N i u s e d w i t h a " s e e d " n u m b e r , w h i c h d e t e r m i n e s h o t h r a n d o mn u m b e r i s e l e c t e d . Y o c a u s d i f f e r e n t s e e d n u m b e r s , a n e a c h i e n c l o s e di p a r e n t h e s e s f o l l o w i n g R N D . T u r n y o u r c o m p u t e r o f f , t h e n o a g a i n , a n t y p e t h i s e x a m p l e :

I F O T E P R I N T R N D ( l )3 N E X T

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 168/318

R a N D o m N o t e s 1 5

Y o w i l l s e f i v e n u m b e r s o t h s c r e e n .. 1 8 5 5 6 4 0 1 6. 0 4 6 8 9 8 6 3 4 8. 8 2 7 7 4 3 8 0 1. 5 5 4 7 4 9 2 2 6. 8 9 7 2 3 3 8 3 1

Y o m a n o s e t h i s p a r t i c u l a r s e q u e n c e , b u e a c h t i m e y o t u r n t h m a c h i n e o a n R U t h i s p r o g r a m , y o w i l l s e e t h e s a m e s e q u e n c e o n u b e r s . Y o m a a s w h t h i s s e q u e n c e i t h s a m e i r a n d o m n u m b e r s a r s u p p o s e d t b g e n e r a t e d ? G o o d q u e s t i o n .

H e r e ' s h o t h r a n d o m n u m b e r g e n e r a t o r w o r k s . W h e n t h c o m p u t e r i t u r n e d o n " s e e d " n u m b e r i a u t o m a t i c a l l y s e l e c t e d . T h i s s e e d g e n e r a t e sl i s t o n u m b e r s . E a c h t i m e t h R N f u n c t i o n i u s e d w i t h a n p o s i t i v e n u m b e ri p a r e n t h e s e s , t h n e x t n u m b e r f r o m t h l i s t i s r e t u r n e d . E a c h t i m e R N i u s e d w i t h d i f f e r e n t n e g a t i v e n u m b e r , n e l i s t o n u m b e r s i s e l e c t e d .I R N i u s e d w i t h ( z e r o ) r a n d o m n u m b e r i g e n e r a t e d , b a s e d o t h T c l o c k . H e r e ' s a e x a m p l e :

I X = R N D ( - 1 )5 F O T I 3 P R I N T R N D ( l )A N E X TE a c h t i m e y o R U t h i s p r o g r a m , y o w i l l s e t h s a m e s e q u e n c e o

n u m b e r s g e n e r a t e d b R N D ( l ) . I y o c h a n g e t h f i r s t n e g a t i v e s e e d , h o w e v e r ,y o w i l l s e d i f f e r e n t l i s t , b u t , a g a i n , t h e s a m e o n o v e r a n o v e r . T r i t C h a n g e R N D ( - 1 t R N D ( 2 )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 169/318

1 5 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

W h a t i t h e b e s t w a t g e n e r a t e r a n d o m n u m b e r s ? O n w a i t f i r s ts e l e c t n e g a t i v e s e e d n u m b e r a r a n d o m , u s i n g t h T c l o c k .

1 D N = T IE X = R N D ( - N )3 F O T I 4 P R I N T R N D ( l )W h e n R N i u s e d t h i s w a y , d i f f e r e n t n u m b e r ( n e g a t i v e T I i u s e d a

s e e d . E a c h t i m e t h p r o g r a m i R U N , i g e n e r a t e s a d i f f e r e n t l i s t .O r y o c a u s R N D ( O ) w h i c h a l s o g e n e r a t e s r a n d o m n u m b e r s b a s e d

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

s p e c i f i c s e e d n u m b e r , s i n c e T c h a n g e s e v e r y 1 / 6 0 o a s e c o n d .Y o u ' v e p r o b a b l y a l r e a d y n o t i c e d t h a t t h e n u m b e r s R N s p i t s o u a r e n ' t

e x a c t l y t h e k i n d o n u m b e r s y o u ' d w a n t t u s i g a m e . T g e w h o l en u m b e r s i n s t e a d o d e c i m a l p o i n t f r a c t i o n s , w w i l l u s e a m a t h f u n c t i o n ,I N T , f o I N T e g e r . T s e r a n g e o n u m b e r s , w w i l l m u l t i p l y t h R N n u m b e r . E v e n i y o u ' r e n o t g o o d a a r i t h m e t i c , y o u ' l l w a n t t f o l l o w a l o n g .T h e x a m p l e y o u ' l l s e i t h m o d e l f o a l m o s t a l u s e s o f t h e r a n d o m n u m b e rg e n e r a t o r .

L e t ' s s a t h a t w w a n t r a n d o m n u m b e r s b e t w e e n ( z e r o ) a n 1 0 I t ' se a s y .

I I N T ( 1 D * R N D ( D ) )E P R I N T3 G O T O I

W h e n y o R U t h i s e x a m p l e , y o u ' l l s e s t e a d y s t r e a m o n u m b e r sb e t w e e n a n 1 0 T h n u m b e r t h a t y o m u l t i p l y R N b a l w a y s s e t s i t r a n g e . I N t e l l s t h c o m p u t e r t t a k e t h e w h o l e n u m b e r a n e l i m i n a t e a n d e c i m a l f r a c t i o n . I s o m e c a s e s , y o m a n o w a n t t h n u m b e r 0 o n l y n u b e r s b e t w e e n a n t h l a s t n u m b e r i t h r a n g e . A l y o n e e d t d i a d 1 l i k e t h i s :

I N = I N T ( 1 0 * R N D ( 0 ) + l )E P R I N T3 G O T O I U s i n g R N D , b s u r e t h a t y o h a v e t y p e d t h e c o r r e c t n u m b e r o p a r e n

t h e s e s . I y o u h a v e o n t o m a n y o r n o t e n o u g h , t h c o m p u t e r w i l l g i v e y o S Y N T A X E R R O R m e s s a g e . J u s t r e m e m b e r t h a t t h e r e s h o u l d b e a e v e n

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

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

I P R I N T " [ C L E A R ] 1 'E D I M C A $ ( 5 E )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 170/318

R a N D o m N o t e s 1 5

3 F O T 1 3 : R E A D C A $ ( I ) : C A $ ( I = C A $ ( I O H E A R T S "

4 N E X T5 R E S T O R Et F O 1 T E t R E A D C A $ ( I ) C A ( I = C A $ ( I O

S P A D E S "7 N E X Tf l R E S T O R Eq F O E T 3 R : R E A D C A $ ( I ) : C A $ ( I = C A $ ( I O

C L U B S "1 0 N E X T1 1 R E S T O R E1 5 F O 4 T 5 E : R E A D C A $ ( I ) C A ( I = C A $ ( I O

D I A M O N D S "1 3 N E X T1 5 P R I N T " P R E S S A N Y K E Y T C U T H C A R D S "i b C A = I N T ( 5 5 * R N D ( 0 ) + l )1 7 G E C $ : I F C " " T H E N 1 7 1 B P R I N T C A $ ( C A )I R G O T O 1 5 1 D 0 D D A T A A C E , K I N G , Q U E E N , J A C K , 1 0 , R , f l , 7 , b , 5 , 4 , 3 , 5

T h i s p r o g r a m d o e s n ' t s h u f f l e t h e d e c k . I n f a c t , t h d e c k s t a y s j u s t a i l o o k s w h e n y o b r e a k o p e n n e p a c k , w i t h a l t h c a r d s i o r d e r . T h R N s t a t e m e n t p i c k s r a n d o m n u m b e r f r o m t 5 2 a n d i s p l a y s t h e c a r d f o w h i c h i s t a n d s . Y o c a s e h o R E S T O R E w o r k s , t o o . O n l y o n l i n e o D A T A i a l t h a t i r e q u i r e d ; i i R E A D f o u r d i f f e r e n t t i m e s . E a c h t i m e , t h es u i t — h e a r t s , s p a d e s , c l u b s a n d i a m o n d s — i s a d d e d t t h v a l u e o t h c a r d .

S c r e e n a n B o r d e r C o l o r sT w m e m o r y l o c a t i o n s i t h V I c h i p c o n t r o l t h c o l o r o t h v i d e o

s c r e e n a n i t b o r d e r . T h e s e a r s e b P O K E i n g a n o f 1 6 n u m b e r s b e t w e e na n 1 5 i n t o t h e s e l o c a t i o n s . P O K E 5 3 2 8 0 s e t s t h e c o l o r o t h b o r d e r , a n

P O K E 5 3 2 8 1 c h a n g e s t h e c o l o r o f t h s c r e e n .I P O K E 5 3 5 6 0 , 1 1 : P O K E 5 3 2 3 1 , 1 5T h i s l i n e s e t s t h s c r e e n t g r a y 3 t h l i g h t e s t g r a y ( a l m o s t w h i t e ) , a n

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 171/318

1 5 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

P O K E 5 3 2 8 0 5 3 2 8 1 C O L O RB l a c kW h i t eR e C y a n ( p o w d e r b l u e )P u r p l eG r e e nB l u eY e l l o wO r a n g eB r o w n

1 L i g h t R e ( h o t p i n k )1 G r a y ( d a r k g r a y )1 G r a y ( m e d i u m g r a y )1 L i g h t G r e e n1 L i g h t B l u e1 G r a y ( l i g h t g r a y )

O n w a a r o u n d t h j o o r e m e m b e r i n g e a c h o t h e s e c o l o r s a n m e m o r yl o c a t i o n s i t d e f i n e v a r i a b l e s a n u s t h e s e i n s t e a d o P O K E n u m b e r s .

I B O R D E R = 5 3 E f l O : S C R E E N 5 3 2 f l lE R E C O L O R S F O L L O W3 B D : W H l : R E 2 : C Y 3 : P 0 4 : G R 5 : B U f c : Y E

5 P O K E S C R E E N , R E : R E P O K E S C R E E N R E f c P O K E B O R D E R , G R : R E P O K E B O R D E R G R E E NT h i s i g o o d m e t h o d o k e e p i n g t r a c k o m e m o r y l o c a t i o n s i n s i d e V I

a n S I D . Y o m u s t b c a r e f u l , t h o u g h , t h a t y o u r a b b r e v i a t i o n s d o n ' t d u p l i c a t eo n a n o t h e r ( i y o n o t i c e B s t a n d s f o b l a c k b u B m e a n s b l u e ) a n t h a tt h e y a r n o B A S I C w o r d s o r r e s e r v e d v a r i a b l e s ( O s t a n d s f o o r a n g e , n o O R ) .

C h a r a c t e r C o l o r sY o k n o w t h a t p r e s s i n g t h C T R L ( c o n t r o l ) k e a n n u m b e r k e ( t

9 ) w i l l c h a n g e t h e c o l o r o t h c h a r a c t e r s y o t y p e o t h s c r e e n . Y o g e a n o t h e r e i g h t c o l o r s b p r e s s i n g t h e C O M M O D O R E k e a n n u m b e r k e t o g e t h e r . T h n a m e s o f t h e f i r s t s e o f e i g h t c o l o r s a r p r i n t e d o t h f r o n to e a c h n u m b e r k e y , b u t h n a m e s o t h s e c o n d s e a r n o t .

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

L i k e t h e d i t i n g k e y s — C R S R u p d o w n , l e f t , r i g h t , I N S T / D E L a n C L R /H O M E — t h e c o l o r k e y s w o r k w i t h P R I N T s t a t e m e n t s . U s i n g P R I N T a n q u o -

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 172/318

C h a r a c t e r C o l o r s 1 5

t a t i o n m a r k s a n d p r e s s i n g a c o l o r k e w i l l n o c h a n g e t h e c o l o r y o a r t y p i n gi n b u t , i n s t e a d , w i l l l e a v e c o m m a n d m a r k t h a t w i l l c h a n g e c o l o r s w h e nt h p r o g r a m i R U N n i n g . T h c o m m a n d m a r k i s y m b o l r e v e r s e d a g a i n s tt h b a c k g r o u n d .

T r t h i s : ( P r e s s t h k e y s n a m e d i n s i d e t h e s q u a r e b r a c k e t s ; d o n ' t t y p et h w o r d s t h e m s e l v e s . )

D P O K E 5 3 E f l l , l l : P O K E 5 3 5 3 0 , 1 5I P R I N T " [ C T R L a n B L K ] B L A C K [ C T R L a n W H T ] W H I T E "E P R I N T " [ C T R L a n R E D ] R E [ C T R L a n C Y N ] C Y N "3 P R I N T " [ C T R L a n d P U R ] P U R P L E [ C T R L a n G R N ] G R E E N "4 P R I N T " [ C T R L a n B L U ] B L U E [ C T R L a n d Y E L ] Y E L "5 P R I N T " [ C O M M a n B L K ] O R A N G E [ C O M M a n W H T ] B R O W N "f c P R I N T " [ C O M M a n R E D ] L R E [ C O M M a n C Y N ] G R A Y 1 7 P R I N T " [ C O M M a n P U R ] G R A Y [ C O M M a n G R N ] L T G R E E N "f i P R I N T " [ C O M M a n B L U ] L B L U E [ C O M M a n d Y E L ] G R A Y 3 A f t e r y o t y p e t h f i r s t q u o t a t i o n m a r k ( " ) , a n c o m b i n a t i o n o C T R L o

C O M M O D O R E a n c o l o r k e w i l l l e a v e i t c o m m a n d m a r k . I y o m a k em i s t a k e a n l e a v e t h i s " q u o t e m o d e " ( s e e " S o m e E s s e n t i a l S k i l l s " ) , t h c o l o rt h a t y o a r t y p i n g i w i l l c h a n g e i n s t e a d . T l e a v e c o l o r c o m m a n d m a r k ,y o m u s t g e b a c k i n t o t h q u o t e m o d e b c o r r e c t l y r e p o s i t i o n i n g t h e c u r s o ra n t y p i n g s i n g l e q u o t e m a r k .

W h e n y o R U t h a b o v e e x a m p l e , y o w i l l s e e a c h c o l o r n a m e P R I N T e di t h c o r r e c t c o l o r . O n c o l o r , g r a y 3 w i l l n o b P R I N T e d b e c a u s e i i t h s a m e c o l o r a t h b a c k g r o u n d . T r y c h a n g i n g t h n u m b e r s w i t h P O K E 5 3 2 8 1t s e w h i c h c h a r a c t e r c o l o r s w o r k w e l l w i t h s c r e e n c o l o r s .Y o w i l l a l w a y s c o n t i n u e t P R I N T i t h e c o l o r s e l e c t e d u n t i l y o i n d i c a t eo t h e r w i s e i y o u r p r o g r a m . T h i g h l i g h t a p a r t i c u l a r w o r d i t e x t , y o u m u s tc h a n g e c o l o r s t w i c e — o n c e f r o m t h o r i g i n a l c o l o r y o h a v e c h o s e n , t h e n o n c ea g a i n t g b a c k t t h a t c o l o r . A e x a m p l e :

I P R I N T " [ C T R L B L K ] I N [ C T R L R E D ] R E [ C T R L B L K ] A N B L A C K "

P R I N T i n g G r a p h i c sT h g r a p h i c s y m b o l s y o s e o t h f r o n t s o a l m o s t a l t h k e y s a r y o u r

c l u e s t a s i m p l e s y s t e m o P R I N T i n g s c r e e n g r a p h i c s . I n c o m b i n a t i o n , t h e s es y m b o l s c a n b e u s e d t c r e a t e b o r d e r s , b o x e s , v i s u a l h i g h l i g h t i n g , a n e p h a s i s , a n d , w i t h e n o u g h i m a g i n a t i o n , e v e n p i c t u r e s . T h t e c h n i q u e o m a i n g r a p h i c d i s p l a y s w i t h t h e s e s y m b o l s h a v a r i o u s n a m e s , i n c l u d i n g " b u i l d i n g -b l o c k g r a p h i c s , 1 1 a n " m o s a i c g r a p h i c s . " W e ' l l c o n t i n u e t c a l l t h e m c h a ra c t e r g r a p h i c s .

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

I P R I N T " [ C L R ] [ C R S R D N ] "E P R I N T " [ S P A C E ] [ S H I F T O ] [ C O M M Y ] [ C O M M Y ] [ S H I F T P ]

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 173/318

1 6 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

3 P R I N T » [ S P A C E ] [ C O M M H ] [ S P A C E ] [ S P A C E ] [ S H I F T N ] »4 P R I N T " t S P A C E ] [ S H I F T L ] [ C O M M P ] [ C O M M P ] [ S H I F T @ ] f l

W h e n y o R U t h e x a m p l e , s q u a r e b o s h o u l d a p p e a r i t h u p p e rl e f t - h a n d c o r n e r o f t h e s c r e e n . I s p a c e s w e r e n o P R I N T e d f i r s t i n l i n e s 2 t 4 0 o i t h C R S R d o w n ( D N ) i n l i n e 1 w a s n ' t t h e r e , t h e d g e s o t h b o w o u l d m e r g e w i t h t h b a c k g r o u n d c o l o r . U s C R S R d o w n t r e p o s i t i o n t h eb o o t h s c r e e n . C h a n g e l i n e 1 t o

I P R I N T » [ C L R ] [ 5 C R S R D N ] "I n s t e a d o t y p i n g s i n g l e C R S R d o w n , p r e s s t h e k e f i v e t i m e s . N o t h

b o w i l l b P R I N T e d l o w e r o t h s c r e e n . T r i n s e r t i n g s p a c e s i n t o l i n e s 2 t 4 0 a f t e r t h f i r s t q u o t e m a r k . I y o u ' v e i n s e r t e d e x a c t l y t h e s a m e n u m b e ro s p a c e s i e a c h l i n e , t h b o w i l l m o v e t t h r i g h t .

A y o c a s e e , t h b o t h a t w i l l b P R I N T e d i c l e a r l y v i s i b l e w h e n y o L I S T t h p r o g r a m l i n e s . B c a r e f u l , h o w e v e r . I t h l i n e n u m b e r j u m p s f r o m9 t o 1 0 0 , o f r o m 1 0 t 1 0 0 0 , t h e d i f f e r e n c e i s p a c i n g m a m i s l e a d y o u .C h a n g e l i n e 4 t l i n e 1 0 0 0 0 a n d L I S T a g a i n . E v e n t h o u g h t h b o l o o k sw r o n g i t h L I S T i n g , i w i l l c o n t i n u e t P R I N T c o r r e c t l y .

Y o c a s t o r e s o m e s m a l l s c r e e n g r a p h i c s a s t r i n g s , t o o . E a c h s t r i n gc a c o n t a i n g r a p h i c s y m b o l s a w e l l a C R S R m o v e s t h a t w i l l p u e a c hs y m b o l i i t c o r r e c t p l a c e .

S H I F T a n t h U I a n k e y s w i l l P R I N T t h g r a p h i c s y m b o l s u s e dt m a k e r o u n d e d c o r n e r s . I w p u a l f o u r o t h e m t o g e t h e r , w c a m a k e

b a l l . ( I w i l l b l i t t l e s q u a r e - l o o k i n g , t h o u g h . ) O n w a t p u t h b a l l o t h e s c r e e n i w i t h t w s e p a r a t e P R I N T s t a t e m e n t s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 174/318

P R I N T i n g G r a p h i c s

I P R I N T " [ S H I F T U ] [ S H I F T I ] "5 P R I N T " [ S H I F T J ] [ S H I F T K ]

1 6

S i n c e t h c u r s o r m o v e s d o w n a n g o e s t t h b e g i n n i n g o n e l i n ea f t e r P R I N T i n g t h t o h a l f o t h b a l l i n l i n e 1 0 t h b o t t o m h a l f i p o s i t i o n e dc o r r e c t l y b l i n e 2 0 W c a a c c o m p l i s h t h s a m e t h i n g b P R I N T i n g s t r i n gt h a t r e p r e s e n t s t h b a l l , c o m p l e t e w i t h t h c o r r e c t C R S R m o v e s . ( C R S R L Ti C R S R l e f t . )

I D A $ = " [ S H I F T U ] [ S H I F T I ] [ C R S R L T ] [ C R S R L T ] [ C R S R D N ] [ S H I F TJ ] [ S H I F T K ] "

E P R I N T " [ C L R ] " ; A $E r a s i n g s c r e e n g r a p h i c s i d o n e b y P R I N T i n g s p a c e s . I w w a n t e d t

e r a s e t h b a l l i n t h a b o v e e x a m p l e , w c o u l d d e f i n e a n o t h e r s t r i n g a a b l o c ko f o u r s p a c e s a n C R S R m o v e s . A d t h e s e l i n e s t t h e x a m p l e :

3 F O T 1 D D D : N E X T4 0 B $ = » [ S P A C E S ] [ 2 C R S R L T ] [ C R S R D N ] [ 2 S P A C E S ] "5 P R I N T " [ H O M E ] 1 1 ; B W h e n t h p r o g r a m g e t s t o l i n e 3 0 , i w i l l p a u s e s o t h a t y o c a s e t h

b a l l P R I N T e d . L i n e 4 d e f i n e s B a s t r i n g t h a t P R I N T s a b l o c k o f o u rs p a c e s , t h s a m e s i z e a t h b a l l . W h e n t h c u r s o r i p o s i t i o n e d e x a c t l y a s i w a w h e n t h b a l l w a P R I N T e d , B w i l l e r a s e i t

O n a d v a n t a g e o d e f i n i n g a g r a p h i c a s t r i n g i t h a t w c a n o P R I N Ti a n y w h e r e o t h e s c r e e n w i t h o u t w o r r y i n g a b o u t t h c o r r e c t s p a c i n g . C h a n g el i n e 2 t t h i s :

5 P R I N T " [ C L R ] [ C R S R D N ] [ C R S R R T ] " A

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 175/318

1 6 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

E x p e r i m e n t w i t h t h n u m b e r o C R S R r i g h t a n C R S R d o w n k e y s p r e s s e d .M a k e s u r e y o d o n ' t h a v e m o r e t h a n t h s c r e e n c a h a n d l e , 2 C R S R d o w n so 4 C R S R r i g h t s .

T h b e s t r u l e t f o l l o w w h e n c r e a t i n g g r a p h i c s i t c o u n t t h n u m b e ro s p a c e s a n n o n - P R I N T i n g c h a r a c t e r s ( l i k e C L R , C R S R m o v e s a n c o l o rc o m m a n d m a r k s ) t m a k e s u r e y o g e w h a t y o w a n t . M a k e d i a g r a m o np a p e r , f o l l o w i n g t h e m o v e m e n t o t h c u r s o r , i y o u n e e d h e l p . A n o t h e r g o o di d e a i t a l w a y s u s H O M E t p u t h c u r s o r b a c k a t h u p p e r l e f t - h a n dc o r n e r b e f o r e m a k i n g a n c o m p l i c a t e d m o v e s . T h i s b e c o m e s y o u r r e f e r e n c ep o i n t a n n e v e r c h a n g e s .

B p a r t i c u l a r l y c a r e f u l a b o u t i n c l u d i n g s e m i c o l o n s w h e r e t h e y b e l o n g .I y o a r e n ' t c l e a r w h a t s e m i c o l o n s d o r e a d a b o u t h o t h e y w o r k w i t h P R I N Ti C h a p t e r 4 S e m i c o l o n s a r i m p o r t a n t i a c c u r a t e l y p o s i t i o n i n g P R I N T e dc h a r a c t e r g r a p h i c s .

E v e n v e t e r a n p r o g r a m m e r s m a k e m i s t a k e s , h o w e v e r , a n P R I N T i n gg r a p h i c d i s p l a y r e q u i r e s c o n c e n t r a t i o n . P r o g r a m s w i t h g r a p h i c s i t h e m s e d o R U c o r r e c t l y t h e f i r s t t i m e . W r i t e a g r a p h i c p r o g r a m i s m a l l c h u n k s ,t e s t i n g e a c h s e c t i o n a s y o w r i t e i t

D i g i t a l D i c eW c a u s R N a n c h a r a c t e r g r a p h i c s i p r o g r a m t s i m u l a t e t h

r o l l o p a i r o d i c e . T h L I S T i n g o t h i s s i m p l e p r o g r a m f o l l o w s . E n t e r i i n t o t h c o m p u t e r , p r e s s i n g t h k e y s i n d i c a t e d w i t h i n t h s q u a r e b r a c k e t s .I t h s q u a r e b r a c k e t s c o n t a i n n u m b e r a n k e y — l i k e [ C R S R D N ] —t h e n p r e s s t h a t k e t h n u m b e r o t i m e s y o s e e , e i g h t C R S R d o w n k e y s i t h e c a s e o t h i s e x a m p l e . W h e n y o p r e s s t h g r a p h i c k e y s ( k e p l u s t h eS H I F T o C O M M O D O R E k e y ) , y o s h o u l d s e t h g r a p h i c s y m b o l s t h a t c o p r i s e t h p i c t u r e s o f e a c h d i e .

L i n e 1 o t h p r o g r a m P O K E s n u m b e r s i n t o m e m o r y l o c a t i o n s 5 3 2 8 0a n 5 3 2 8 1 t c h a n g e t h e c o l o r o t h s c r e e n t g r a y ( l i g h t g r a y ) w i t h g r a y

( d a r k g r a y ) b o r d e r . F O R / N E X T l o o p b e g i n s a l i n e 3 0 3 F O T E H e r e ' s w h a t h a p p e n s i n s i d e t h i s l o o p : T w r a n d o m n u m b e r s a r g e e r a t e d , n u m e r i c v a r i a b l e s D l a n d D 2 f o d i a n d i 2 E a c h n u m b e r h a

r a n g e o f r o m t 6 s i n c e t h a t i t h n u m b e r o p o s s i b i l i t i e s f o e a c h d i e .O n p i c t u r e o e a c h p o s s i b l e d i i s t o r e d a s u b r o u t i n e , b e g i n n i n g a l i n e1 1 0 0 .

T h c u r s o r i p o s i t i o n e d i n l i n e 6 b p l a c i n g i i t h H O M E p o s i t i o nf o r e f e r e n c e , t h e n m o v i n g i d o w n 1 l i n e s a n o v e r 1 s p a c e s . O i u s e di l i n e 7 t P R I N T t h a p p r o p r i a t e d i e . I D i 1 t h e n t h p i c t u r e o d i w i t h o n s p o t i P R I N T e d . I D = t h e n t h e p i c t u r e o f d i w i t h t w s p o t si P R I N T e d , a n s o n T h c u r s o r i r e p o s i t i o n e d i l i n e 8 0 t h e n t h s e c o n dd i i P R I N T e d a c c o r d i n g t i t v a l u e .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 176/318

D i g i t a l D i c e 1 6

D I C E

P R E S S f t M ¥ K E

Y o m i g h t n o t i c e t h a t e a c h d i i e x a c t l y a l i k e , e x c e p t f o t h p a t t e r n o i t s p o t s . W h e n d i c e a r P R I N T e d r a p i d l y , o n a f t e r a n o t h e r , t h e f f e c t o " r o l l " i s i m u l a t e d . T h i s i t h r e a s o n f o t h l o o p , F O 1 T 2 5 T h l a s ts e o r a n d o m n u m b e r s , t h 2 5 t h , i t h p a i r o n u m b e r s t h d i c e " l a n d " o n I l i n e 1 2 0 , G E s t a t e m e n t w a i t s f o a n k e t b p r e s s e d , t h e n " r o l l s "t h d i c e a g a i n .E n t e r i n g t h i s p r o g r a m i m u c h s i m p l e r t h a n i l o o k s . T s a v e t i m e a n e f f o r t , t y p e t h s u b r o u t i n e t h a t P R I N T s t h e p i c t u r e o f t h e d i w i t h t h v a l u eo 1 f r o m l i n e s 1 1 0 0 t 1 1 7 0 . U s t h S H I F T k e a n t h l e t t e r f o m a k i n gt h s p o t s . A f t e r y o t y p e t h s u b r o u t i n e o n c e , c h a n g e t h l i n e n u m b e r s b t y p i n g o v e r t h e m a n p r e s s i n g R E T U R N . T h e n m o v e t h c u r s o r t c h a n g et h v a l u e o t h d i f r o m t 2 a n p r e s s R E T U R N e a c h t i m e y o m a k ec h a n g e . D t h i s , c h a n g i n g t h l i n e n u m b e r s — 1 1 0 0 , 1 2 0 0 , 1 3 0 0 , 1 4 0 0 , 1 5 0 0a n 1 6 0 0 — u n t i l s u b r o u t i n e s f o a l s i d i c e a r c r e a t e d .

B c a r e f u l t h a t t h e c h a r a c t e r s i n s i d e e a c h s q u a r e ( t h e d i e ) a r s p a c e s ,n o C R S R c o m m a n d s . T h p i c t u r e s w i l l c h a n g e c o r r e c t l y o n l y i s p a c e s e r a s eo n d i v a l u e a n P R I N T t h n e x t ." D I G I T A L D I C E "1 P O K E 5 3 2 8 0 , 1 1 : P O K E 5 3 2 8 1 , 1 52 P R I N T 1 1 [ C L R ] [ B L K ] [ C R S R S D N ] [ 1 5 C R S R R T D I G I T A L D I C E 1 1

3 F O R I = 1 T O 2 54 D 1 = I N T ( 6 * R N D ( 0 ) + 1 )5 D 2 = I N T ( 6 * R N D ( 0 ) + 1 )6 P R I N T " [ % 0 & E ] [ 1 C R S R D N ] [ 1 5 C R S R R T ] " ;7 0 O N D G O S U B 1 1 0 0 , 1 2 0 0 , 1 3 0 0 , 1 4 0 0 , 1 5 0 0 , 1 6 0 0

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 177/318

1 6 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

8 P R I N T " [ H O M E ] [ 1 0 C R S R D N ] [ 2 1 C R S R R T

9 O D G O S U B 1 1 0 0 , 1 2 0 0 , 1 3 0 0 , 1 4 0 0 , 1 5 0 0 , 1 6 0 01 0 N E X T I1 1 P R I N T " [ H O M E ] [ 1 6 C R S R D N ] [ 1 4 C R S R R T ] P R E S S A N K E Y "1 2 G E C $ : I F C $ = " " T H E N 1 2 01 3 G O T O 3 01 1 0 0 P R I N T " [ S H I F T 0 ] [ C O M M Y ] [ C O M M Y ] [ C O M M Y ] [ S H I F T P ] [ C R S R L E F T ] [ C R S R L E F T ]

[ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;1 1 1 0 P R I N T " [ C O M M H ] [ 3 S P A C E S ] [ C O M M N ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ]

[ C R S R L E F T ] [ C R S 4 * - 4 . E F T ] p e ^ S R ^ D O W N ]1 1 2 0 P R I N T " [ C O M M f c ] 7 f [ S H I F T / [ C O M M N [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ]

[ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;1 1 5 0 P R I N T " [ C O M M H ] [ 3 S P A C E S ] [ C O M M N ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ]

[ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;

1 1 6 0 P R I N T " [ S H I F T L ] [ C O M M P ] [ C O M M P ] [ C O M M P ] [ C O M M 0 ] 1 1 7 0 R E T U R N

1 2 0 0 P R I N T " [ S H I F T 0 ] [ C O M M Y ] [ C O M M Y ] [ C O M M Y ] [ S H I F T P ] [ C R S R L E F T ] [ C R S R L E F T ][ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;

1 2 1 0 P R I N T " [ C O M M H ] [ S H I F T Q ] [ 2 S P A C E S ] [ C O M M N ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ]( C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;

1 2 2 0 P R I N T " [ C O M M H [ S P A C E S ] [ C O M M N [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ][ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;

1 2 5 0 P R I N T " [ C O M M H ] [ 2 S P A C E S ] [ S H I F T Q ] [ C O M M N ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ][ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;

1 2 6 0 P R I N T " [ S H I F T L ] [ C O M M P ] [ C O M M P ] [ C O M M P ] [ C O M M 0 ] 1 2 7 0 R E T U R N

1 3 0 0 P R I N T " [ S H I F T 0 ] [ C O M M Y ] [ C O M M Y ] [ C O M M Y ] [ S H I F T P ] [ C R S R L E F T ] [ C R S R L E F T ][ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;

1 3 1 0 P R I N T " [ C O M M H ] [ S H I F T Q ] [ 2 S P A C E S ] [ C O M M N ] [ C R S R L E F T ] ( C R S R L E F T ] [ C R S R L E F T ][ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;

1 3 2 0 P R I N T " [ C O M M H ] [ S P A C E ] [ S H I F T Q ] [ S P A C E ] [ C O M M N ] [ C R S R L E F T ] [ C R S R L E F T ][ C R S R L E F T 1 [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;

1 3 5 0 P R I N T " [ C O M M H ] [ 2 S P A C E S ] [ S H I F T Q ] [ C O M M N ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ][ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;

1 3 6 0 P R I N T " [ S H I F T L ] [ C O M M P ] [ C O M M P ] [ C O M M P ] [ C O M M 0 ] 1 3 7 0 R E T U R N

1 4 0 0 P R I N T " [ S H I F T 0 ] [ C O M M Y ] [ C O M M Y ] [ C O M M Y ] [ S H I F T P ] [ C R S R L E F T ] [ C R S R L E F T ][ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 178/318

D i g i t a l D i c e 1 6

1 4 1 0 P R I N T " [ C O M M H ] [ S H I F T Q ] [ S P A C E ] [ S H I F T Q ] [ C O M M N ] [ C R S R L E F T ] [ C R S R L E F T ][ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;

1 4 2 0 P R I N T " [ C O M M H ] [ 3 S P A C E S ] [ C O M M N ] ( C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ][ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;

1 4 5 0 P R I N T 1 1 [ C O M M H [ S H I F T Q [ S P A C E ] [ S H I F T Q [ C O M M N [ C R S R L E F T ] [ C R S R L E F T ][ C f t S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;

1 4 6 0 P R I N T 1 1 [ S H I F T L [ C O M M P [ C O M M P [ C O M M P [ C O M M 0 ] 1 4 7 0 R E T U R N1 5 0 0 P R I N T 1 1 [ S H I F T 0 [ C O M M Y [ C O M M Y [ C O M M Y [ S H I F T P [ C R S R L E F T ] [ C R S R L E F T ]

[ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;1 5 1 0 P R I N T " [ C O M M H ] [ S H I F T Q ] [ S P A C E ] [ S H I F T Q ] [ C O M M N ] [ C R S R L E F T ] [ C R S R L E F T ]

[ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;1 5 2 0 P R I N T " [ C O M M H ] [ S P A C E ] [ S H I F T Q ] [ S P A C E ] [ C O M M N ] [ C R S R L E F T ] [ C R S R L E F T ]

[ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;1 5 5 0 P R I N T " [ C O M M H ] [ S H I F T Q ] [ S P A C E ] [ S H I F T Q ] [ C O M M N ] [ C R S R L E F T ] [ C R S R L E F T ]

[ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;1 5 6 0 P R I N T " [ S H I F T L ] [ C O M M P ] [ C O M M P ] [ C O M M P ] [ C O M M 0 ] 1 5 7 0 R E T U R N1 3 0 0 P R I N T " [ S H I F T 0 ] [ C O M M Y ] [ C O M M Y ] [ C O M M Y ] [ S H I F T P ] [ C R S f c L E F T ] [ C R S R L E F T ]

[ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;1 6 1 0 P R I N T " [ C O M M H ] [ S H I F T Q ] [ S H I F T Q ] [ S H I F T Q ] [ C O M M N ] [ C R S R L E F T ] [ C R S R L E F T ]

[ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;1 6 2 0 P R I N T " [ C O M M H ] [ 3 S P A C E S ] [ C O M M N ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ]

[ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;1 6 5 0 P R I N T " [ C O M M H [ S H I F T Q [ S H I F T Q ] [ S H I F T Q [ C O M M N [ C R S R L E F T ] [ C R S R L E F T ]

[ C R S R L E F T ] [ C R S R L E F T ] [ C R S R L E F T ] [ C R S R D O W N ] " ;1 6 6 0 P R I N T " [ S H I F T L ] [ C O M M P ] [ C O M M P ] [ C O M M P ] [ C O M M 0 ] 1 6 7 0 R E T U R N

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 179/318

1 6 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

S p r i t e G r a p h i c s

S p r i t e g r a p h i c s a r m o r e d i f f i c u l t t p r o g r a m i B A S I C t h a n c h a r a c t e rg r a p h i c s . Y o d n o t u s e P R I N T t p u t a s p r i t e o t h v i d e o s c r e e n . I n s t e a d ,a l s p r i t e p r o g r a m m i n g i d o n e w i t h P O K E ( a r i d s o m e t i m e s P E E K ) . Y o u ' l ll e a r n m u c h m o r e a b o u t s p r i t e g r a p h i c s i " A p p e n d i x 2 E x p l o r i n g G r a p h i c s / 'b u h e r e i q u i c k d e s c r i p t i o n o h o t h e y w o r k , a l o n g w i t h s p r i t e d e o n s t r a t i o n p r o g r a m .

S p r i t e s a r o b j e c t s d e s c r i b e d b P O K E i n g v a l u e s i n t o b l o c k s i t h c o p u t e r ' s m e m o r y . E a c h s p r i t e r e q u i r e s 6 b y t e s o m e m o r y a n i 2 d o t sa c r o s s b 2 d o w n . E a c h s p r i t e b l o c k i n u m b e r e d , f r o m t 2 5 5 . T h V I c h i p c a i n t e r p r e t t h e s e b l o c k s o m e m o r y , c o l o r t h e m / p u t t h e m o t h v i d e os c r e e n , a n m o v e t h e m a r o u n d . T h V I c a a l s o e x p a n d t h s p r i t e s h o r iz o n t a l l y , v e r t i c a l l y , o i b o t h d i r e c t i o n s , a n m a k e t h e m a p p e a r t b i f r o n t o o b e h i n d c h a r a c t e r s P R I N T e d o t h s c r e e n .

E a c h s p r i t e i n u m b e r e d f r o m t 7 a n a l e i g h t s p r i t e s c a b o t h s c r e e n a o n c e . S p r i t e s p a s s o v e r o n a n o t h e r o t h v i d e o s c r e e n , l e n d i n gt h r e e - d i m e n s i o n a l e f f e c t w h e n i m o t i o n . T h l e v e l e a c h s p r i t e i o i d t e r m i n e d b i t n u m b e r . I o t h e r w o r d s , s p r i t e a l w a y s p a s s e s i n f r o n t o s p r i t e o t h s c r e e n . S p r i t e c a b s e e n b e h i n d s p r i t e i t h t w c r o s sp a t h s . M o r e a d v a n c e d s p r i t e f u n c t i o n s i n c l u d e w a y s t d e t e r m i n e w h e t h e ro n s p r i t e h a c o l l i d e d w i t h a n o t h e r , w i t h c h a r a c t e r , o r t h e b a c k g r o u n ds c r e e n ; A n o t h e r s p r i t e g r a p h i c s m o d e , c a l l e d t h m u l t i c o l o r s p r i t e m o d e , l e t sy o m a k e s p r i t e s o u t f o u r d i f f e r e n t c o l o r s , b u c u t s i h a l f t h n u m b e ro d o t s a c r o s s .

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

F i r s t , t h w a t h a t B A S I C u s e s t h c o m p u t e r ' s m e m o r y l i m i t s y o t o n l y t h r e e d i f f e r e n t s p r i t e s a t o n t i m e . T s o l v e t h e p r o b l e m , y o m u s t c h a n g et h i s B A S I C m e m o r y u s e . ( N o t a p r o b l e m , b u t t o u g h f o b e g i n n e r s t u n d e rs t a n d . ) Y o c a n , h o w e v e r , u s a l e i g h t s p r i t e s a o n c e , a l o n g a t h e y a r a l i d e n t i c a l .

S e c o n d , i i o n l y c o n v e n i e n t t m o v e s p r i t e a c r o s s p a r t o f t h e s c r e e n ,t h l e f t t w o - t h i r d s . E v e n t h o u g h t h e r e a r m o r e t h a n 3 0 s c r e e n p o s i t i o n s o w h i c h t p u s p r i t e s , a n p o s i t i o n o t h r i g h t t h i r d m e a n s P O K E i n g m o r et h a n o n m e m o r y l o c a t i o n . T h i s c a n b e c o m p l i c a t e d i B A S I C . A r e s u l t ,y o c a e x p e c t t s e m a n y p r o g r a m s t h a t l i m i t s p r i t e s t o t h l e f t s i d e .

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

s p r i t e e d i t o r . Y o u ' l l f i n d u s e f u l o n n e a r t h e n o t h i s b o o k .F o u r t h , s i n c e t h e r e a r n o w o r d s a a l i C o m m o d o r e B A S I C t h a n d l e

s p r i t e s , i i a l m o s t i m p o s s i b l e t r e a d B A S I C p r o g r a m w i t h s p r i t e s i n i t T h i s i r e m e d i e d b u s i n g s p e c i a l p r o g r a m m i n g t o o l s . M o r e a b o u t t h i s l a t e r .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 180/318

T h O l S h e l l G a m e

T h O l S h e l l G a m e1 6

Y o c a g e s o m e i d e a o h o s p r i t e s l o o k a n a r p r o g r a m m e d b e n t e r i n g a n s t u d y i n g t h f o l l o w i n g d e m o n s t r a t i o n . I i v e r s i o n o t h e o l ds h e l l g a m e . p e i h i d d e n u n d e r o n o t h r e e n u t s h e l l s a n t h s h e l l s a r s h u f f l e d . Y o m u s t g u e s s w h i c h s h e l l i h i d i n g i t S p r i t e s , h e r e , r e p r e s e n t t h n u t s h e l l s a n w i l l a l w a y s c o v e r a n c h a r a c t e r s P R I N T e d u n d e r t h e m o t h s c r e e n . T h a t ' s h o t h s h e l l s p r i t e s c o v e r t h " p e a , " a c h a r a c t e r t h a t i a c t u a l l y a g r e e n S H I F T e d Q

E X f t H P L E :W H E R E I I T

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 181/318

1 6 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

T h p r o g r a m i w o r t h y o t h c o m e w h m a d e t h e o l d s h e l l g a m e ( c l a s s i c r u s e ) f a m o u s . T h p e d o e s n ' t m o v e a a l l . I n s t e a d , r a n d o m n u m b e rb e t w e e n a n i g e n e r a t e d a n t h p e i P R I N T e d u n d e r o n o f t h e t h r e es h e l l s j u s t b e f o r e i i " l i f t e d . " T h i s i s n ' t r e a l l y g a m e i t h a t i R U N sc o n t i n o u s l y , s e l e c t i n g r a n d o m n u m b e r s a n d c h a l l e n g i n g y o t p i c k t h s h e l l .W i t h l i t t l e w o r k h o w e v e r — a n I N P U T o G E s t a t e m e n t c o u l d b e i n s e r t e d —y o c o u l d c h a n g e i t a i n t e r a c t i v e g u e s s i n g g a m e .

R E M a r k s t a t e m e n t s a r u s e d q u i t e h e a v i l y t h r o u g h o u t t h p r o g r a m t e x p l a i n w h a t i h a p p e n i n g . f e c o m m e n t s a r i o r d e r , h o w e v e r .

L i n e 3 0 " e n a b l e s " t h s p r i t e s . I t e l l s t h V I c h i p w h i c h s p r i t e s a n h o m a n y w i l l b u s e d . T h e p r o g r a m u s e s o n l y t h r e e s p r i t e s , a n e a c h i i d e n t i c a l .T h e i r d e s c r i p t i o n s a r e P O K E d i n t o o n s p r i t e b l o c k , n u m b e r 1 3 T h m e m o r yl o c a t i o n s 2 0 4 0 , 2 0 4 1 a n 2 0 4 2 a r n o i t h V I c h i p . I n s t e a d , V I l o o k s a t h e s e n u m b e r s f o t h i n f o r m a t i o n a b o u t w h e r e t h s p r i t e p i c t u r e s a r d e s c r i b e d .

L i n e s 6 0 7 a n 8 p o s i t i o n t h e s p r i t e s . T h i n k o t h e s c r e e n a w i n d o wt t h a r e a i w h i c h s p r i t e s m o v e . T h e r e a r a p p r o x i m a t e l y 3 4 4 h o r i z o n t a lp o s t i o n s a n 2 5 v e r t i c a l p o s i t i o n s w h e r e s p r i t e c a b p l a c e d . ( V a r i a b l e

i u s e d f o h o r i z o n a l , f o v e r t i c a l . ) I s o m e p o s i t i o n s , t h s p r i t e w i l l b i n v i s i b l e , h i d d e n b t h e d g e s o f t h e s c r e e n b o r d e r . P o s i t i o n n u m b e r s a r P O K E d i n t o t h e c o r r e c t p a i r s o f m e m o r y l o c a t i o n s b e g i n n i n g a 5 3 2 4 8 ( h o ri z o n t a l p o s i t i o n , s p r i t e 0 a n 5 3 2 4 9 ( v e r t i c a l p o s i t i o n , s p r i t e 0 ) R e m e m b e r ,t h o u g h , t h a t n u m b e r s g r e a t e r t h a n 2 5 5 c a n n o t b P O K E d . ( T h i s i t h p r o b l e mo m o v i n g s p r i t e e n t i r e l y a c r o s s t h s c r e e n . )

A n i m a t i n g t h s p r i t e s — l i f t i n g , d r o p p i n g , a n " s h u f f l i n g " t h e s h e l l s — i sa c c o m p l i s h e d b P O K E i n g o n n e v a l u e , h o r i z o n t a l o v e r t i c a l , f o r e a c hs p r i t e . Y o c a s e h o t h e s e w o r k i t h " r e v e a l " s u b r o u t i n e s a 1 3 0 0 0 ,1 3 1 0 0 , a n 1 3 2 0 0 , a n i t h e " s h u f f l e " s u b r o u t i n e b e g i n n i n g a l i n e 1 4 0 0 0 .

S H E L L1 P R I N T 1 1 [ C L R ] " P O K E 5 3 2 8 0 , 1 2 : P O K E 5 3 2 8 1 , 1 5 : R E M C O L O R S C R E E N L I G H T G R E Y

2 V = 5 3 2 4 8 : R E M B A S E O V I D E O C H I P3 P O K E V + 2 1 / 7 : R E M E N A B L E S P R I T E S 0 , 1 , 23 F O R I = 0 T O 6 2 : R E A D D : P O K E 8 3 2 + I , D : N E X T : R E M R E A D D A T A F O S P R I T E I N T O

B L O C K 1 4 P O K E 2 0 4 0 , 1 3 : P O K E 2 0 4 1 , 1 3 : P O K E 2 0 4 2 , 1 3 : R E M A L L S P R I T E S D E F I N E D B

B L O C K 1 5 P O K E V + 3 9 , 9 : P O K E V + 4 0 , 9 : P O K E V + 4 1 , 9 : R E M C O L O R A L L S P R I T E S B R O W N5 P O K E V + 2 3 , 7 : P O K E V + 2 9 , 7 : R E M E X P A N D A L L S P R I T E S I N A N D I R E C T I O N S6 P O K E V + 0 , 8 5 : P O K E V + 1 , 1 2 0 : R E M P U S P R I T E A T 8 5 , 1 2 07 P O K E V + 2 , 1 6 0 : P O K E V + 3 r 1 2 0 : R E M P U S P R I T E A 1 6 0 , 1 2 08 P O K E V + 4 , 2 3 5 : P O K E V + 5 , 1 2 0 : R E M P U S P R I T E A 2 3 5 , 1 2 0

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 182/318

T h O l S h e l l G a m e 1 6

9 P R I N T " [ B L U ] [ H O M E ] [ 1 5 C R S R D N [ S P A C E S ] W E L C O M E T T H O L D S H E L LG A M E "

1 0 G O S U B 3 0 0 0 0 : R E M D E L A Y1 1 G O S U B 1 5 0 0 0 : R E M C L E A R T E X T1 2 P R I N T " [ B L U ] [ H O M E ] [ 1 5 C R S R D N ] [ 6 S P A C E S ] T H E O B J E C T O F T H E G A M E

I T 1 3 P R I N T " [ B L U ] [ H O M E ] [ 1 5 C R S R D N ] [ 1 4 S P A C E S ] F I N D T H P E A "1 3 G O S U B 3 0 0 0 0 : R E M D E L A Y1 4 P R I N T " [ B L U ] [ H O M E ] [ 1 9 C R S R D N ] [ 1 3 S P A C E S ] P E A [ G R N ] [ S H I F T Q

[ B L U ] P E A "

1 4 G O S U B 3 0 0 0 01 5 G O S U B 1 5 0 0 0 : R E M C L E A R S C R E E N1 6 G O S U B 3 0 0 0 0 : R E M D E L A Y1 7 P R I N T " [ B L U ] [ H O M E ] [ 1 4 C R S R D N ] [ 1 6 S P A C E S ] E X A M P L E : "1 7 G O S U B 3 0 0 0 0 : R E M D E L A Y1 9 G O S U B 1 2 0 0 0 : R E M P U T P E A U N D E R C E N T E R

2 0 G O S U B 1 3 0 0 0 : R E M C E N T E R S H E L L R E V E A L2 5 G O S U B 3 0 0 0 0 : R E M D E L A Y2 7 G O S U B 1 4 0 0 0 : R E M S H U F F L E S H E L L S3 6 G O S U B 3 0 0 0 0 : R E M D E L A Y3 7 P R I N T " [ B L U ] [ H O M E ] ( 1 5 C R S R D N ] [ 1 4 S P A C E S ] W H E R E I I T ? "3 7 G O S U B 3 0 0 0 0 : R E M D E L A Y3 8 A = I N T ( 3 * ( R N D ( 0 ) ) + 1 ) :3 8 I F A = 1 T H E N G O S U B 1 2 0 0 0 : G O S U B 1 3 2 0 0 : G O S U B 1 3 1 0 0 : G O S U B 1 3 0 0 03 8 I F A = 2 T H E N G O S U B 1 2 0 5 0 : G O S U B 1 3 0 0 0 : G O S U B 1 3 1 0 0 : G O S U B 1 3 2 0 03 8 I F A = 3 T H E N G O S U B 1 2 1 0 0 : G O S U B 1 3 2 0 0 : G O S U B 1 3 0 0 0 : G O S U B 1 3 1 0 04 1 G O S U B 1 5 0 0 0 : R E M C L E A R T E X T4 2 G O S U B 3 0 0 0 0 : G O S U B 3 0 0 0 0 : G O S U B 3 0 0 0 0 : R E M T R I P L E D E L A Y9 9 R U 9 9 9 9 R E S P R I T E D A T A F O L L O W S1 0 0 0 0 D A T A 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 01 0 0 1 0 D A T A 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 183/318

1 7 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

1 0 0 2 0 D A T A 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 01 0 0 3 0 D A T A 1 , 2 5 4 , 0 , 7 , 2 5 5 , 1 2 8 , 1 5 , 2 5 5 , 1 9 21 0 0 4 0 D A T A 6 3 , 2 5 5 , 2 4 0 , 1 2 7 , 2 5 5 , 2 4 8 , 2 5 5 , 2 5 5 , 2 5 21 0 0 5 0 D A T A 2 5 5 , 2 5 5 , 2 5 2 , 1 2 7 , 2 5 5 , 2 4 8 , 3 1 , 2 5 5 , 2 2 41 0 0 6 0 D A T A 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 01 2 0 0 0 R E M ; P U T P E U N D E R C E N T E R S H E L L1 2 0 1 0 P R I N T " [ H O M E ] [ 1 2 C R S R D N [ 1 S P A C E S ] [ G R N ] [ S H I F T Q [ B L U ] [ 1 1 S P A C E S ] 1 1

1 2 0 2 0 R E T U R N1 2 0 5 0 R E M : P U P E U N D E R L E F T S H E L L1 2 0 6 0 P R I N T " [ H O M E ] [ 1 2 C R S R D N ] [ 1 0 C R S R R T ] [ G R N ] [ S H I F T Q ] [ B L U ] [ 3 0 S P A C E S ] "

1 2 0 7 0 R E T U R N1 2 1 0 0 R E M : P U T P E A U N D E R R I G H T S H E L L1 2 1 1 0 P R I N T " [ H O M E ] [ 1 2 C R S R D N ] [ 2 9 S P A C E S ] [ G R N ] [ S H I F T Q ] [ B L U ] "1 2 1 2 0 R E T U R N1 3 0 0 0 R E M : M I D D L E S H E L L R E V E A L1 3 0 1 0 F O R I = 1 2 0 T O 9 0 S T E P - 11 3 0 2 0 P O K E V + 2 , 1 6 0 : P O K E V + 3 , I

1 3 0 3 0 N E X T I1 3 0 4 0 F O R I = 1 T O 5 0 0 : N E X T1 3 0 5 0 F O R I = 9 0 T O 1 2 01 3 0 6 0 P O K E V + 2 , 1 6 0 : P O K E V + 3 , I1 3 0 7 0 N E X T I1 3 0 8 0 R E T U R N1 3 1 0 0 R E M : R I G H T S H E L L R E V E A L1 3 1 1 0 F O R I = 1 2 0 T O 9 0 S T E P - 11 3 1 2 0 P O K E V + 0 , 2 3 5 : P O K E V + 1 , I1 3 1 3 0 N E X T I1 3 1 4 0 F O R I = 1 T O 5 0 0 : N E X T1 3 1 5 0 F O R I = 9 0 T O 1 2 01 3 1 6 0 P O K E V + 0 , 2 3 5 : P O K E V + 1 , I

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 184/318

T h O l s h e l l G a m e 1 7

1 3 1 7 0 N E X T I1 3 1 8 0 R E T U R N1 3 2 0 0 R E M : L E F T S H E L L R E V E A L

1 3 2 1 0 F O R I = 1 2 0 T O 9 0 S T E P - 11 3 2 2 0 P O K E V + 4 , 8 5 : P O K E V + 5 , I1 3 2 3 0 N E X T I1 3 2 4 0 F O R I = 1 T O 5 0 0 : N E X T1 3 2 5 0 F O R I = 9 0 T O 1 2 01 3 2 6 0 P O K E V + 4 , 8 5 : P O K E V + 5 , I1 3 2 7 0 N E X T I1 3 2 8 0 R E T U R N1 4 0 0 0 R E M : S H U F F L E T H S H E L L S1 4 0 1 0 F O R I = 1 6 0 T O 8 51 4 0 2 0 P O K E V + 2 , I : P O K E V + 3 , 1 2 01 4 0 3 0 N E X T I

1 4 0 4 0 F O R I = 8 5 T O 2 3 51 4 0 5 0 P O K E V + 0 f I : P O K E V + 1 , 1 2 01 4 0 6 0 N E X T I1 4 0 7 0 F O R I = 2 3 5 T O 8 5 S T E P - 11 4 0 8 0 P O K E V + 4 , I : P O K E V + 5 , 1 2 01 4 0 9 0 N E X T I1 4 1 0 0 R E T U R N1 5 0 0 0 R E M : C L E A R T E X T F R O M S C R E E N1 5 0 1 0 P R I N T " [ B L U ] [ H O M E ] [ 1 4 C R S R D N ] [ 3 9 S P A C E S ] "1 5 0 2 0 P R I N T " [ B L U ] [ H O M E ] [ 1 5 C R S R D N ] [ 3 9 S P A C E S ] "1 5 0 3 0 P R I N T " [ B L U ] [ H O M E ] [ 1 C R S R D N [ 3 S P A C E S ] "1 5 0 4 0 P R I N T " [ B L U ] [ H O M E ] [ 1 7 C R S R D N ] [ 3 9 S P A C E S ] "1 5 0 5 0 P R I N T " [ B L U ] [ H O M E ] [ 1 8 C R S R D N ] [ 3 9 S P A C E S ] "1 5 0 6 0 P R I N T " [ B L U ] [ H O M E ] [ 1 9 C R S R D N ] [ 3 9 S P A C E S ] "1 5 0 7 0 R E T U R N3 0 0 0 0 R E M : D E L A Y L O O P3 0 0 1 0 F O R I = 1 T O 1 0 0 0 : N E X T3 0 0 2 0 R E T U R N

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 185/318

1 7 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

S I S o u n dS o u n d , l i k e g r a p h i c s , i r e a l c h a l l e n g e f o a n p r o g r a m m e r . L i k e t h

V I c h i p , t h e r e i n w a t c o m m u n i c a t e w i t h t h S I c h i p o t h e r t h a nP O K E i n g n u m b e r s i n t o i t i m p o r t a n t m e m o r y l o c a t i o n s . E v e n w o r s e , y o c a n n o t u s P E E K t s e e t h e n u m b e r s s t o r e d i t h e s e S I D l o c a t i o n s — P E E Kw i l l a l w a y s r e t u r n t h n u m b e r 0

H e r e a r f e f a c t s a b o u t h o S I D m a k e s i t s o u n d s . D o n ' t w o r r y a b o u ta b s o r b i n g a l o t h i s n o w . I t ' s o f f e r e d o n l y t g i v e y o a g e n e r a l u n d e r s t a n d i n g .

T p r o d u c e a n y s o u n d a a l l , t h m a s t e r v o l u m e c o n t r o l i t h S I c h i pm u s t b s e t . T h e r e a r s i x t e e n d i f f e r e n t v o l u m e l e v e l s , n u m b e r e d f r o m ( z e r o )t 1 5 w i t h a " o f f " a n 1 a s t h e l o u d e s t . T h i s i s e b P O K E i n g n u m b e ri n t o 5 4 2 9 6 .

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

A t t a c k a n d e c a y a r s e b a d d i n g t w n u m b e r s t o g e t h e r a n P O K E i n gt h e i r s u i n t o t h e c o r r e c t m e m o r y l o c a t i o n . T h a t t a c k n u m b e r y o s e l e c ts h o u l d b e e i t h e r 1 2 8 , 6 4 , 3 2 o r 1 6 o t h s u o a n o t h o s e n u m b e r s . A d t h a t t a c k n u m b e r t a n d e c a y n u m b e r o 8 4 o 1 o t h s u o a n o t h o s e n u m b e r s . T h l a r g e r t h e a t t a c k n u m b e r i s t h l o n g e r n o t e w i l l t a k et " f a d e u p . " I t h a t t a c k n u m b e r i 0 t h n o t e w i l l s o u n d i m m e d i a t e l y . T h l a r g e r t h d e c a y n u m b e r i s t h l o n g e r t h d e c a y w i l l b e . I t h d e c a y n u m b e ri 1 6 t h n o t e w i l l f a d e a s l o w e r s p e e d . U s i n g z e r o , t h e r e w i l l b n d e c a yt i m e .

T s e t h e a t t a c k a n d e c a y f o v o i c e 1 P O K E t h s u o t h e s e n u m b e r si n t o m e m o r y l o c a t i o n 5 4 2 7 7 . V o i c e s a n a r s e b P O K E i n g s i m i l a rn u m b e r i n t o 5 4 2 8 4 a n 5 4 2 9 1 .

S u s t a i n a n r e l e a s e a r s e t h s a m e w a a a t t a c k a n d e c a y . F o v o i c e1 t h s u o s u s t a i n a n r e l e a s e n u m b e r s i P O K E d i n t o m e m o r y l o c a t i o n5 4 2 7 8 . T h l o c a t i o n f o v o i c e i 5 4 2 8 5 , a n f o v o i c e i 5 4 2 9 2 .

T h p i t c h , o r f r e q u e n c y , o t h s o u n d p r o d u c e d i P O K E d i n t o t w l c a t i o n s , " h i g h " l o c a t i o n a n " l o w " l o c a t i o n . G e t h v a l u e s f o m u s i c a ln o t e s f r o m t h n o t e / f r e q u e n c y t a b l e y o w i l l f i n d a t t h e n o t h i s c h a p t e r .F o v o i c e 1 P O K E 5 4 2 7 2 w i t h t h " l o w " n u m b e r , a n d 5 4 2 7 3 w i t h t h " h i g h "n u m b e r . ( L o w a n d h i g h d o n ' t r e f e r t o n u m b e r g r e a t e r o l e s s t h a n t h o t h e r .L o a n h i g h a r t w s p e c i f i c n u m b e r s y o u ' l l s e o t h n o t e t a b l e . ) F o v o i c e 2 t h i s p a i r o f l o c a t i o n s i 5 4 2 7 9 a n 5 4 2 8 0 . F o v o i c e 3 t h e l o c a t i o n sa r 5 4 2 8 6 a n 5 4 2 8 7 .

Y o m u s t s e l e c t w a v e f o r m , o b a s i c s o u n d . A n o f o u r d i f f e r e n t w a v ef o r m s , e a c h w i t h d i f f e r e n t t o n e , c a n b e s e l e c t e d — t r i a n g l e , s a w t o o t h , p u l s e ,a n n o i s e . T h f i r s t t h r e e p r o d u c e t o n e s ; n o i s e i m o s t o f t e n u s e d f o " p e rc u s s i v e " s o u n d e f f e c t s , l i k e d r u m , r i f l e s h o t , " h i s s i n g " s o u n d s , o r t h r o a ro t h s u r f .

T h w a v e f o r m m e m o r y l o c a t i o n f o v o i c e i 5 4 2 7 6 .

P O K E 5 4 2 7 6 , 3 3 f o s a w t o o t h w a v e f o r m .P O K E 5 4 2 7 6 , 1 7 f o t r i a n g l e w a v e f o r m .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 186/318

S I S o u n d 1 7

P O K E 5 4 2 7 6 , 6 5 f o p u l s e w a v e f o r m .P O K E 5 4 2 7 6 , 1 2 9 f o r n o i s e .

V o i c e s a n a r s e b P O K E i n g t h s a m e n u m b e r s i n t o m e m o r yl o c a t i o n s 5 4 2 8 3 ( f o r v o i c e 2 a n 5 4 2 9 0 ( f o r v o i c e 3 )

W h e n a l t h i s i d o n e i p r o g r a m , n o t e s o u n d s c o n t i n u o u s l y . T s t o pt h s o u n d , P O K E a l t h e l o c a t i o n s f o e a c h v o i c e w i t h ( z e r o ) . W h e n t h p r o p e r i n f o r m a t i o n i P O K E d i n t o t h n e c e s s a r y l o c a t i o n s a g a i n , a n o t h e rn o t e w i l l s o u n d .

H e r e ' s a l i t t l e p r o g r a m t h a t w i l l m a k e j u s t o n s o u n d . B s u r e t h a t y o h a v e t h s o u n d o n y o u r t e l e v i s i o n t u r n e d u p o r i y o a r u s i n g a v i d e om o n i t o r , t h a t t h e s o u n d i c o n n e c t e d .

I V L = 5 4 E q b : R E V O L U M EE L O = 5 4 E 7 E : H I = 5 4 E 7 3 : R E P I T C H L O A N H 3 W F = 5 4 E 7 b : R E W A V E F O R MA A D = S 4 E 7 7 : R E A T T A C K / D E C A Y5 S R = 5 4 E 7 f l : R E S U S T A I N / R E L E A S Eb P O K E V L / 1 57 P O K E A D / l ^ D r P O K E S R , Df l P O K E W F , 3 3R P O K E L O , E f l : P O K E H I / 2 1 41 D F O 1 . T O 5 D D : N E X T I R E D U R A T I O N1 1 P O K E A D D : P O K E S S R , D : P O K E W F , D : P O K E V L , D

A y o c a s e e , m a k i n g s i n g l e s o u n d t a k e s q u i t e b i o w o r k . E x p e ri m e n t b c h a n g i n g t h e a t t a c k / d e c a y , s u s t a i n / r e l e a s e a n w a v e f o r m n u m b e r s .

P l a y i n g e v e n s i m p l e s o n g t h i s w a w o u l d r e q u i r e l o t s o p r o g r a m m i n g .W i t h l i t t l e i n g e n u i t y , w c a w r i t e p r o g r a m t h a t p l a y s o n n o t e a f t e ra n o t h e r . T h L I S T i n g f o s u c h p r o g r a m c a b f o u n d f o l l o w i n g f e w o r d sa b o u t h o i w o r k s . I c r e a t e s a r r a y s o p i t c h n u m b e r s , n o t e s i s o n g , a n t h d u r a t i o n e a c h n o t e s h o u l d p l a y . T h i s m u s i c a l i n f o r m a t i o n i s t o r e d a sD A T A s t a t e m e n t s .

T h D A T A s t a t e m e n t s t h a t b e g i n w i t h l i n e n u m b e r 1 0 0 0 0 c o n t a i n i n f o rm a t i o n i g r o u p s o t h r e e . T h f i r s t , C 4 i t h m u s i c a l n o t e — " C " ; — a n d t h o c t a v e , t h e f o u r t h o e i g h t p o s s i b l e o n e s . T h n e x t t w n u m b e r s a r e t h e h i g ha n l o p i t c h n u m b e r s . W h e r e v e r y o s e " # t h n o t e i h a l f - s t e p , o s h a r p . O n l y t w o o c t a v e s a r e n t e r e d a D A T A a p r e s e n t , b u y o c a a d t h r e m a i n i n g n o t e s b m a k i n g n e 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 g i v e nf o r m a n u s i n g n u m b e r s f r o m t h n o t e / f r e q u e n c y t a b l e .

A t h e n o t h D A T A s t a t e m e n t i n l i n e 1 0 0 4 0 y o u ' l l s e s o m e u n u s u a ll e t t e r s a n n u m b e r s . " R , 0 , 0 " s t a n d s f o m u s i c a l ' ' r e s t " w h e r e n o s o u n d i p r o d u c e d . T h R E A D s t a t e m e n t s i t h p r o g r a m n e e d t h a t h l a s t c h a ra c t e r i n o t e D A T A g r o u p t k n o w t h a t i i a t h e n o t h i s i n f o r m a t i o n .

T h D A T A s t a t e m e n t s b e g i n n i n g o l i n e 2 0 0 0 0 a r e t h e s o n g i n f o r m a t i o ni g r o u p s o t w o . T h f i r s t c o n t a i n s t h n o t e , t h s e c o n d t h e d u r a t i o n .d u r a t i o n o 1 r e p r e s e n t s " w h o l e n o t e , " " h a l f n o t e , " 4 a " q u a r t e r n o t e / 1a n s o o n .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 187/318

1 7 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

I n t h e L I S T i n g , t h s o n g t a b l e i r e a l l y j u s t t w o c t a v e s o t h e e i g h t - n o t em u s i c a l s c a l e . ( " D o - r e - m i , " e t c . ) B c h a n g i n g t h e n o t e s a n t h e i r d u r a t i o n s ,y o c a e n t e r s i m p l e , o n e - v o i c e s o n g s . T e m p o i c o n t r o l l e d b t h v a l u e o " T i l i n e 3 0 0 .S O N G1 S I D = 5 4 2 7 2 : R E M A D D R E S S O S I D C H I P2 D I N $ ( 9 4 ) , N L ( 9 4 ) , N H ( 9 4 ) , S $ ( 2 0 0 ) , D ( 2 0 0 ) , S H ( 2 0 0 ) , S L ( 2 0 0 )3 X = 1 : R E M X - W I L L B E C O M E N U M B E R O N O T E S I M E M O R Y4 R E A D N $ ( X ) : I F N $ ( X ) = W X " T H E N 6 0 : R E M C H E C K F O R E N D O N O T E D A T A5 R E A D N H ( X ) : R E A D N L ( X ) : X = X + 1 : G O T O 4 6 N = 1 : R E M N - W I L L B E C O M E N U M B E R O N O T E S I S O N G7 R E A D S $ ( N ) : I F S $ ( N ) = " X " T H E N G O T O 9

8 R E A D D ( N ) : N = N + 1 : G O T O 7

9 F O R I = 1 T O N - 11 0 F O R K = 1 T O X - 1 : I F S $ ( I ) = N $ ( K ) T H E N S L ( I ) = N L ( K ) : S H ( I ) = N H ( K ) : G O T O 1 2 01 1 N E X T K1 2 N E X T I3 0 V L = 5 4 2 7 2 : V H = 5 4 2 7 3 : A D = 5 4 2 7 7 : S R = 5 4 2 7 8 : C R = 5 4 2 7 6 : V O = 5 4 2 9 6 : T = 1 0 : P R I N T " [ C L R ]

3 1 P O K E V O , 1 5 : R E M F U L L V O L U M E3 2 F O R I = 1 T O N - 1 : R E M B E G I N N I N G O P L A Y L O O P3 3 0 P O K E V L , S L ( I ) : P O K E V H , S H ( I )3 4 P R I N T n P O K E S H , " ; S H ( I ) ; " P O K E S L , " ; S L ( I ) ; " D U R A T I O N " ; D ( I )3 5 P O K E A D , 9 0 : P O K E S R , 1 2 8 : P O K E C R , 1 73 6 F O R K = 1 T O T * D ( I ) : R E M D U R A T I O N L O O P3 7 N E X T3 8 P O K E A D , 0 : P O K E S R f 0 : P O K E C R , 0 : R E M T U R N O F F3 9 N E X T4 0 P O K E V O , 0 : R E M V O L U M E D O W N

9 9 9 9 R E M N O T E D A T A C 4 T O C 1 0 0 0 0 D A T A C 4 , 1 6 , 1 9 5 , C # 4 , 1 7 , 1 9 5 , D 4 , 1 8 , 2 0 9 , D # 4 , 1 9 , 2 3 91 0 0 1 0 D A T A E 4 , 2 1 , 3 1 , F 4 , 2 2 , 9 6 , F # 4 , 2 3 , 1 8 11 0 0 2 0 D A T A G 4 , 2 5 , 3 0 , G # 4 , 2 6 , 1 5 6 , A 4 , 2 8 , 4 9 , A # 4 , 2 9 , 2 3 3 , B 4 , 3 1 , 1 6 5 , C 5 , 3 3 , 1 3 5

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 188/318

S I S o u n d 1 7

1 0 0 3 0 D A T A C # 5 , 3 5 , 1 3 4 , D 5 , 3 7 , 1 6 2 , D # 5 , 3 9 , 2 3 3 , E 5 , 4 2 , 6 2 , F 5 , 4 5 , 1 9 8 , F # 5 ,

4 7 , 1 0 71 0 0 4 0 D A T A G 5 , 5 0 , 6 0 , G # 5 , 5 1 , 1 9 7 , A 5 , 5 6 , 9 9 , A # 5 , 5 9 , 1 9 0 , B 5 , 6 4 f 1 8 8 , C 6 , 6 8 ,

1 4 9 , R , 0 , 0 / X1 9 9 9 9 R E M S O N G D A T A , T W O C T A V E S2 0 0 0 0 D A T A C 4 , 1 6 , D 4 , 1 6 , E 4 , 1 6 , F 4 , 1 6 , G 4 , 1 6 , A 4 , 1 6 , B 4 , 1 6 , R , 1 6 , R , 1 62 0 0 1 0 D A T A C 5 , 1 6 , D 5 , 1 6 , E 5 , 1 6 , F 5 , 1 6 , G 5 , 1 6 , A 5 , 1 6 , B 5 , 1 6 , C 6 , 1 6 , X

M u s i c a l N o t e s a n F r e q u e n c i e sM U S I C A L N O T E

O C T A V E

C D F F G A

C D F F G A C C D

F G A

O S C I L L A T O R F R E Q U E N C Y

D E C I M A L

2 6 2 8 3 0 3 1 3 3 3 5 3 7 4 0 4 2 4 5 4 7 5 0 5 3 5 6 6 0 6 3 6 7 7 1 7 5 8 0 8 5 9 0 9 5

1 0 1 21 0 7 21 1 3 61 2 0 41 2 7 51 3 5 11 4 3 21 5 1 71 6 0 71 7 0 31 8 0 41 9 1 1

H L O

1 2 4 6 8

1 0 1 2 1 4 1 6 1 9 2 2 2 5

2 5 9

1 2 1 6 2 0 2 4

3 8

1 3 1 8 2 4

4 1 1 1 8 2 5

7 1 5 2 3

7 1 6

1 1 1

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 189/318

1 7 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

O C T A V EC C

D

F G A A C C

D

F G A

C D

F G A C C D

F G A

C D

F

D E C I M A L2 0 2 52 1 4 52 2 7 32 4 0 82 5 5 12 7 0 32 8 6 43 0 3 43 2 1 53 4 0 63 6 0 83 8 2 34 0 5 04 2 9 14 5 4 74 8 1 75 1 0 35 4 0 75 7 2 86 0 6 96 4 3 06 8 1 27 2 1 77 6 4 78 1 0 18 5 8 39 0 9 49 6 3 4

1 0 2 0 71 0 8 1 41 1 4 5 71 2 1 3 91 2 8 6 01 3 6 2 51 4 4 3 51 5 2 9 41 6 2 0 31 7 1 6 71 8 1 8 81 9 2 6 92 0 4 1 52 1 6 2 92 2 9 1 52 4 2 7 82 5 7 2 12 7 2 5 12 8 8 7 13 0 5 8 83 2 4 0 73 4 3 3 43 6 3 7 63 8 5 3 94 0 8 3 04 3 2 5 84 5 8 3 04 8 5 5 6

H 7

1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 4 4 4 5 5 5 5 6 6 7 7 7 8 8 9

1 0 1 0 1 1 1 1 1 2 1 3 1 4 1 5 1 5 1 6 1 7 1 8

L O 2 3

9 2 2 1 0 2 4 1 4

4 2 1 1 4

7 2

2 3 2 1 1 9 1 9 2 0 2 3 3

9 1 8

3 1 5

4 2 2 1 6 1 3 1 3 1 6 2 2 6 1 9 1 0

6 5 9

1 9 7 1 1 6

1 9 1 2 1 3 2 1 1 2 1 1 1 9 1 2 1 5

3 2

1 3 1 2 2 5

1 7

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 190/318

T h J o o J o y s t i c k s 1 7

M U S I C A L N O T E

O C T A V E

G A

D E C I M A L5 1 4 4 35 4 5 0 25 7 7 4 36 1 1 7 66 4 8 1 4

O S C I L L A T O R F R E Q U E N C Y

H 2 0 2 1 2 2 2 3 2 5

L O 2 4 2 3 1 4 2 4

4

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

p r o b a b l y w a n t t w r i t e y o u r o w g a m e s . T h m o s t p o p u l a r g a m e c o n t r o l l e ri t h j o y s t i c k . U s i n g o n e w i t h t h C o m m o d o r e 6 c o m p u t e r s i v e r y s i m p l e .

J o y s t i c k s a r n o t h i n g n e w . A a c o n t r o l l e r , t h e y o r i g i n a t e d i t h d a y so t h f i r s t a i r c r a f t a n w e r e a d o p t e d b y A t a r i w h e n t h c o m p a n y i n t r o d u c e dt h e i r v i d e o g a m e s i t h m i d - 1 9 7 0 s . T h A t a r i j o y s t i c k q u i c k l y b e c a m es t a n d a r d f o v i d e o p l a y a n a l m o s t a l o t o d a y ' s j o y s t i c k s w o r k j u s t l i k eA t a r i ' s .

T h A t a r i - s t y l e j o y s t i c k i s w i t c h - t y p e c o n t r o l l e r . ( A n o t h e r t y p e i c a l l e da " a n a l o g " j o y s t i c k , a n i i n c o m p a t i b l e w i t h s w i t c h - t y p e s t i c k s . ) I n s i d e a r ef i v e s w i t c h e s , f o u r f o d i r e c t i o n s — n o r t h ( u p ) , s o u t h ( d o w n ) , e a s t ( r i g h t ) a n w e s t ( l e f t ) — a n d o n f o " f i r e " b u t t o n . F o u r o t h e r d i r e c t i o n s — n o r t h w e s t ,n o r t h e a s t , s o u t h w e s t a n d s o u t h e a s t — c o m e f r o m t w s w i t c h e s b e i n g c l o s e da o n c e .

I y o h a v e a n A t a r i j o y s t i c k ( o o n t h a t w o r k s j u s t l i k e i t ) , p l u g i i n t oc o n t r o l p o r t o t h e r i g h t s i d e o t h c o m p u t e r . W h p o r t 2 ? C o n t r o l p o r t

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 191/318

1 7 9 — C o l o r , G r a p h i c s , S o u n d , a n G a m e s

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

B P E E K i n g a s p e c i f i c m e m o r y l o c a t i o n , w c a t e l l w h e t h e r t h j o y s t i c k i b e i n g p u s h e d i a n d i r e c t i o n .

I P R I N T P E E K ( 5 b 3 £ D ) : G O T O I W h e n y o R U t h i s l i n e , s t e a d y s t r e a m o n u m b e r s s h o u l d a p p e a r o

t h s c r e e n . T h n u m b e r s h o u l d b e 1 2 7 . N o p u s h t h j o y s t i c k u p W h a th a p p e n s ? S i n c e y o a r c l o s i n g s w i t c h i n s i d e , t h n u m b e r c h a n g e s . ( n u m b e r f r o m t 2 5 i m a d e u o e i g h t b i t s . F i v e o f t h e s e b i t s a r r e p r es e n t e d b t h s w i t c h e s i n s i d e t h j o y s t i c k . ) W c a u s t h n u m b e r s t o i nt e r p r e t c h a n g e s i n d i r e c t i o n .

I A = P E E K ( 5 b 3 E D )E I 1 E T H E N P R I N T " C E N T E R "3 I l E T H E N P R I N T " N O R T H "A D I F 1 E T H E N P R I N T " S O U T H "5 I 1 E T H E N P R I N T " W E S T "t I l i T H E N P R I N T " E A S T "7 D I F 1 2 T H E N P R I N T " N O R T H W E S T " ;f l I l l f l T H E N P R I N T " N O R T H E A S T "H I 1 1 T H E N P R I N T " S O U T H E A S T " ;1 D I 1 2 T H E N P R I N T " S O U T H W E S T " ; \ \ 1 1 B = P E E K ( 5 b 3 E D ) A N I \ 1 E I T H E N P R I N T " — F I R E " : G O T O I Q 1 3 P R I N T " " : G O T O I 4 T h r e s u l t s y o g e f r o m t h c o n t r o l p o r t c a n b e u s e d i p r o g r a m t

m a k e d e c i s i o n s a n c o n t r o l w h a t i P R I N T e d o t h s c r e e n . T h i n k o t h j o y s t i c k a k i n d o m i n i - k e y b o a r d w i t h o n l y f i v e k e y s . F o e x a m p l e , i n s t e a do u s i n g G E a n a s k i n g s o m e o n e t P R E S S A N K E Y , y o c o u l d P E E K ( 5 6 3 2 0 )a n l o o k f o t h f i r e b u t t o n t b p r e s s e d .

W h a t a b o u t t h o s e c o u s i n s o t h j o y s t i c k s , t h g a m e p a d d l e s y o h a v e i y o o w v i d e o g a m e ? P a d d l e s d n o h a v e s w i t c h e s ( t h e y d h a v e o n e ,f i r e b u t t o n ) . I n s t e a d , t h e y u s e p o t e n t i o m e t e r s , l i k e t h v o l u m e c o n t r o l o y o u rt e l e v i s i o n o s t e r e o . T h c o m p u t e r c a i n t e r p r e t t h e s e t o o , a l t h o u g h i i s n ' ta s i m p l e a u s i n g t h j o y s t i c k s . P a d d l e s r e t u r n n u m b e r s f r o m t 2 5 5 .T u r n i n g p a d d l e a l t h w a t t h r i g h t m a k e s t h n u m b e r 0 t u r n i n g i c o m p l e t e l y t t h l e f t r e t u r n s 2 5 5 .

I y o h a v e g a m e p a d d l e s , p l u g t h e m i n t o t h o t h e r s o c k e t , c o n t r o l p o r t1 N o P E E K a m e m o r y l o c a t i o n 5 4 2 9 7 .

I P R I N T P E E K ( 5 4 E q f l ) : G O T O I R U t h i s l i n e a n l o o k a t h s c r e e n . T u r n o n o t h p a d d l e s . T r t h

o t h e r p a d d l e i t h n u m b e r s d o n ' t c h a n g e f r o m t 2 5 5 . ( T h e p a d d l e f i r eb u t t o n s a r r e a d b P E E K i n g a n o t h e r l o c a t i o n , 5 6 3 2 1 . )

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 192/318

T h J o o J o y s t i c k s 1 7

B e c a u s e o t h i s i n a c c u r a c y , y o m u s t d s o m e a r i t h m e t i c t g e a a v e r a g en u m b e r . T h i s i w h p a d d l e s a r m o r e c o m p l i c a t e d t u s t h a n t h j o y s t i c k s .C o m m o d o r e , i f a c t , s u g g e s t s t h a t t h g a m e p a d d l e s b r e a d u s i n g m a c h i n ec o d e , n o B A S I C , s u b r o u t i n e .

W h a t ' s L e f t ?A l t h a t P E E K i n g a n P O K E i n g g e t s t e d i o u s , d o e s n ' t i t M u c h o t h i s

c h a p t e r m a h a v e l e f t y o a s k i n g w h a t y o u ' v e g o t t e n y o u r s e l f i n t o . F e a r n o t .H e l p i o t h w a y .

T h w a a r o u n d t h e s e p r e p o s t e r o u s P E E K s a n P O K E s i t u s p r g r a m m i n g t o o l d e s i g n e d f o g r a p h i c s a n s o u n d . S e v e r a l p r o g r a m p a c k a g e sa r s c h e d u l e d f o t h C o m m o d o r e 6 c o m p u t e r s , a n t h e s e a r m e a n t t s o l v es o m e o t h d e f i c i e n c i e s i n B A S I C .

C o m m o d o r e , i t s e l f , h a d e v e l o p e d p r o g r a m c a l l e d E a s y G r a p h i c s ( f o rm e r l y V S P , t h V i d e o S u p p o r t P a c k a g e ) . I i c a r t r i d g e p r o g r a m t h a t p l u g si n t o t h 6 m a c h i n e s a n a d d s n e w o r d s t B A S I C . A m o n g t h e s e a r c o m a n d s t h a t c h a n g e g r a p h i c m o d e s , f r o m c h a r a c t e r m o d e t o h i - r e s s c r e e n s ,t m u l t i c o l o r m o d e , e v e n s p l i t s c r e e n t h a t g i v e s y o b o t h c h a r a c t e r s a n h i g h - r e s o l u t i o n p i c t u r e s t o g e t h e r o t h s a m e s c r e e n .

W i t h t h b u i l t - i n s p r i t e e d i t o r i E a s y G r a p h i c s y o c a d e s i g n a n s a v es p r i t e s a n m u l t i c o l o r s p r i t e s . O t h e r s p r i t e c o m m a n d s m o v e t h e m a c r o s s t h es c r e e n ( w i t h o u t t h l i m i t a t i o n s o f u s i n g t h r i g h t s i d e ) a n d e t e c t w h e ns p r i t e c o l l i d e s w i t h a n o t h e r s p r i t e o c h a r a c t e r . J o y s t i c k s a n g a m e p a d d l e sa r e a s y t u s a n h a v e t h e i r o w c o m m a n d s .

M o s t i m p o r t a n t , p e r h a p s , i s e o h i - r e s c o m m a n d s t h a t d r a w c i r c l e s ,b o x e s a n o t h e r s h a p e s , e a c h o w h i c h c ^ b f i l l e d w i t h c o l o r s u s i n g t h P A I N T c o m m a n d . F o m u s i c f a n s , E a s y G r a p h i c s i n c l u d e s a p r e d e f i n e d s e o n i n e m u s i c a l v o i c e s , a w e l l a d e s i g n i n g y o u r o w " i n s t r u m e n t s , " a n c o m m a n d s f o e n t e r i n g a n p l a y i n g m u l t i p l e - v o i c e m u s i c .

C o m m o d o r e a l s o h a g r a p h i c a n s o u n d e n h a n c e m e n t s t B A S I C i a o t h e r c a r t r i d g e p r o g r a m c a l l e d S i m o n s ' B A S I C . D e v e l o p e d i t h U n i t e dK i n g d o m b y o u n g p r o g r a m m e r , S i m o n s ' B A S I C a d d s o t h e r u s e f u l f e a t u r e st h a t b r i n g t h t o t a l o n e B A S I C c o m m a n d s t 1 1 4 .

m u s i c c o m p o s e r c a r t r i d g e i m a r k e t e d b C o m m o d o r e i i t l i n e o v i d e o g a m e s . T h o u g h s o m e w h a t s i m p l e — i t u s e s c h a r a c t e r g r a p h i c d i s p l a ya n s t o r e s s o n g s o c a s s e t t e t a p e — t h i s c a r t r i d g e m i g h t h e l p y o f a m i l i a r i z ey o u r s e l f w i t h s i m p l e m u s i c a l i d e a s .

Y o n e e d n ' t w a i t f o t h e s e t o o l s , t h o u g h . I " A p p e n d i x 2 E x p l o r i n gG r a p h i c s , " P a u l F S c h a t z ' c o n t r i b u t i o n t t h i s b o o k , y o u ' l l f i n d g r a p h i c sp r o g r a m s y o u c a e n t e r i n t o y o u r c o m p u t e r a n u s r i g h t n o w . I n a d d i t i o nt s o m e f a s c i n a t i n g v i s u a l d e m o n s t r a t i o n s , t h e r e ' s a e a s y - t o - u s e s p r i t e e i t o r , a n s o m e r o u t i n e s t h a t l e y o d r a w o h i g h - r e s o l u t i o n s c r e e n s . I t h a t ' sn o e n o u g h , D r F r a n k C o v i t z o f f e r s h i o w v e r y t h o r o u g h e x p l a n a t i o n o m u s i c , s o u n d , a n t h S I c h i p i " A p p e n d i x 3 E x p l o r i n g S o u n d . " I i t y o u ' l l f i n d p r o g r a m t h a t p l a y s t h r e e - v o i c e m u s i c .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 193/318

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 194/318

B e y o n d B A S I C

Y o u r c o m p u t e r i p a r t o l a r g e r s y s t e m . A t i m e g o e s b y y o m a w a n t t b u i l d o i t j u s t a y o w o u l d s t e r e o o v i d e o s y s t e m . E a c h e x p a n s i o n w i l la d n e p o s s i b i l i t i e s a n n e p o w e r . T h i s c o m p u t e r i s n ' t j u s t t o y , a n d y o um i g h t b a m a z e d t s e h o w m u c h m o r e c a p a b l e i b e c o m e s a i g r o w s .Y o u r i n t e r e s t i n t h m a c h i n e a n d , o f c o u r s e , y o u r b u d g e t w i l l d i c t a t e h o a n w h e n y o e x p a n d .

I w h i c h d i r e c t i o n s h o u l d y o g o W h a t n e w o p p o r t u n i t i e s a r e t h e r e t s e i z e ? H o m u c h s h o u l d y o b u y ? T h o s e a r q u e s t i o n s o n l y y o c a a n s w e r .T h i s l a s t c h a p t e r i d e v o t e d t g l i m p s e o y o u r s y s t e m ' s f u t u r e , f r o m t h p r a c t i c a l t t h e x o t i c .

H a r d w a r e a n d E n h a n c e m e n t sI y o d o n ' t a l r e a d y h a v e o n e , t h e f i r s t t h i n g o y o u r " w i s h l i s t " s h o u l d

b C o m m o d o r e ' s 1 5 4 1 d i s k d r i v e . N o o n l y d p r o g r a m s L O A D a n S A V E t a n f r o m d i s k m u c h f a s t e r t h a n f r o m c a s s e t t e , b u t h d i s k d r i v e i p r a c t i c a l l y

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

I g o i n g f r o m t h o r i g i n a l P E a n C B t t h C o m m o d o r e 6 4 y o m a a l r e a d y h a v e m o d e l 2 0 3 1 , 4 0 4 0 , o 8 0 5 0 d u a l d i s k d r i v e . S i n c e t h e s e a r eb u i l t a r o u n d d i f f e r e n t d a t a s t a n d a r d , t h e y c a n n o t b e d i r e c t l y c o n n e c t e d t t h 6 4 T h s o l u t i o n i t u s d i s k i n t e r f a c e . S e v e r a l a r a v a i l a b l e . O n e ,

1 8

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 195/318

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 196/318

H a r d w a r e a n d E n h a n c e m e n t s 1 8

O n s u c h L A i s p e c i f i c a l l y d e s i g n e d f o l i n k i n g a m a n y a 3 C o m o d o r e 6 4 c o m p u t e r s , d i s k d r i v e s , a n p r i n t e r s . C a l l e d 6 4 N E T , i d o e s n o u s w i r e , b u r a t h e r h a i r - t h i n f i b e r o p t i c s t r a n d s . T h i n f o r m a t i o n i c o v e r t e d t o l i g h t a n t r a n s m i t t e d a l o n g t h f i b e r o p t i c , w h i c h c a n b e a l o n ga 1 0 0 0 f e e t f r o m t h n e t w o r k ' s c e n t r a l h u b , o " n o d e , " a i i c a l l e d . ( P r i c e sv a r y w i t h t h s i z e o t h i n s t a l l a t i o n . I n f o r m a t i o n a v a i l a b l e f r o m A m e r i c a nP h o t o n i c s , I n c . , M i l l t o w n O f f i c e P a r k , R o u t e 2 2 B r e w s t e r , N Y 1 0 5 0 9 . )

Y o c a a d t y o u r m a c h i n e i n s i d e a w e l l a o u t . S e v e r a l e n h a n c e m e n t st t h C o m m o d o r e 6 f a m i l y a r p a c k a g e d a c a r t r i d g e p r o g r a m s a n a d t t h c o m p u t e r ' s v e r s a t i l i t y . S o m e a d n e c o m m a n d s t B A S I C a n o t h e r sm a k e p r o g r a m m i n g s i m p l e r a n m o r e u n d e r s t a n d a b l e .

S k y l e s E l e c t r i c W o r k s ( 2 3 1 G S o u t h W h i s m a n R o a d , M o u n t a i n v i e w , C A 9 4 0 4 1 ) h a b e e n i t h b u s i n e s s o b e t t e r i n g C o m m o d o r e c o m p u t e r s f o s e e r a l y e a r s . O n o t h e i r p r o d u c t s i t h " V i c T r e e " ( n a m e d s b e c a u s e i w a o r i g i n a l l y d e s i g n e d f o t h V I C - 2 0 a n a d a p t e d t t h C o m m o d o r e 6 4 . ) T h i sp a c k a g e b o a s t s 4 a d d i t i o n a l B A S I C c o m m a n d s , i n c l u d i n g w o r d s f r o m C o m o d o r e ' s 4 . B A S I C ( f o u n d o t h C B s e r i e s ) w h i c h m a k e d e a l i n g w i t h t h d i s k d r i v e e a s i e r . " V i c T r e e " a l s o o f f e r s p r o g r a m m i n g a i w o r d s t h a t a u t om a t i c a l l y n u m b e r a n r e n u m b e r p r o g r a m l i n e s , d e l e t e l i n e s , a n s e a r c h B A S I Cp r o g r a m s f o w o r d s , n u m b e r s , a n s t a t e m e n t s . A n o t h e r S k y l e s p r o d u c t i a i m e d a c a s s e t t e u s e r s . " A r r o w " w i l l c u L O A D a n S A V E t i m e s t a n f r o mc a s s e t t e t a b o u t s i x t h o t h o r d i n a r y t i m e , a n h a i t o w s e o p r g r a m m i n g a i d s , a w e l l .

E n t e r t a i n m e n t P r o g r a m sB e c a u s e o f 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 , y o u ' r e

s u r e t s e h u n d r e d s o v e r y h i g h - q u a l i t y v i d e o g a m e s w r i t t e n f o i t A g a m e m a c h i n e , t h ' 6 h a f e e q u a l s .

B u m e n t i o n s h o u l d b m a d e o u n i q u e a n c h a l l e n g i n g s e r i e s o g a m e s .A c t u a l l y , t c a l l t h e m g a m e s a l m o s t d i m i n i s h e s t h e i r c r e a t i v i t y . T h e s e a r t h e " I n t e r l o g i c " p r o s e a d v e n t u r e s f r o m I n f o c o m ( 5 W h e e l e r S t r e e t , C a b r i d g e , M A 0 2 1 3 8 . ) T h e y a r e a c t u a l l y i n t e r a c t i v e s t o r i e s i n w h i c h y o u p a t i c i p a t e a n a f f e c t t h p l o t . A l t h o u g h t h g a m e s u s e o n l y t e x t ( r e a d f r o m t h v i d e o s c r e e n ) , t h e c r e a t o r s o t h s e r i e s o f t e n r e f e r t o t h u s o " t h e w o r l d ' sm o s t p o w e r f u l g r a p h i c s t e c h n o l o g y — y o u r i m a g i n a t i o n . "

T h r e e o t h g a m e s f o r m t h " Z o r k " t r i l o g y , a u n d e r g r o u n d a d v e n t u r eo m y t h o l o g i c a l t h e m e a n p r o p o r t i o n . A n o t h e r , " S t a r c r o s s , " i s c i e n c e -f i c t i o n a d v e n t u r e i t h w o r l d o m a m m o t h a l i e n s p a c e c r a f t . I " S u sp e n d e d , " a n o t h e r S o p u s , y o a r i c r y o g e n i c s u s p e n s i o n i t h m a s t e rc o n t r o l c o m p l e x o p l a n e t w h o s e m a s s t r a n s i t , f o o d p r o d u c t i o n , a n w e a t h e ra r y o u r r e s p o n s i b i l i t y . Y o m u s t l e a r n h o t c o n t r o l s i r o b o t s , e a c h w i t ht h e i r o w s p e c i a l i z e d s e n s e s , a n s o l v e t h r i d d l e o f h o t h c o m p u t e r i z e dc o m p l e x a c t u a l l y o p e r a t e s .

' ' D e a d l i n e " i I n f o c o m ' s h o m a g e t t h d e t e c t i v e t h r i l l e r s o t h 1 9 3 0 sa n ' 4 0 s . I i t y o a r e t h e s h a m u s , i n v e s t i g a t i n g t h m u r d e r o w e a l t h y

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 197/318

1 8 1 0 — B e y o n d B A S I C

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

E a c h o t h I n f o c o m g a m e s t a k e s l o n g t i m e t p l a y . T h c o m p a n ye s t i m a t e s 1 t 4 h o u r s , d e p e n d i n g o n t h g a m e a n l e v e l o y o u r s k i l l . Y o c o m m u n i c a t e w i t h o t h e r c h a r a c t e r s i t h e s e s t o r i e s i n n o r m a l E n g l i s h s e nt e n c e s , a n e a c h g a m e h a s a " v o c a b u l a r y " o o v e r 6 0 w o r d s . ( S t i l l , t h e r ea r t i m e s w h e n t h c o m p u t e r w o n ' t u n d e r s t a n d y o o w i l l a s y o t r p h r a s e a q u e s t i o n o c o m m a n d . )

T h I n f o c o m g a m e s a r a m o n g t h m o s t s o p h i s t i c a t e d c o m p u t e r a d v e nt u r e s y e t c r e a t e d a n a r a v a i l a b l e f o m o s t o t h e r p e r s o n a l c o m p u t e r s , a w e l l a s t h e C o m m o d o r e 6 4 c u l t h a f o r m e d q u i c k l y a r o u n d t h e s e , a n t h e r ei e v e n a " u s e r g r o u p " t h a t o f f e r s v i s u a l m a t e r i a l s ( m a p s , e t c . ) a n h i n t s .

S p r e a d s h e e t s a n d A d v a n c e d S o f t w a r eA l p r o g r a m s a r n o c r e a t e d e q u a l , a n w e l l - w r i t t e n p r o g r a m i j o

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

c o m p u t e r , a n t h C o m m o d o r e 6 f a m i l y s h o u l d p r o v e n e x c e p t i o n . S o m ep r o g r a m s , h o w e v e r , d n o l i v e u t t h e i r c l a i m s . G o o d p r o g r a m s , t o o , a r l i k e l y t b e x p e n s i v e , r e f l e c t i n g t h a m o u n t o t i m e a n e f f o r t n e c e s s a r y t w r i t e t h e m . g o o d g a m e i e a s y t s p o t — y o u e i t h e r l i k e i o y o d o n ' t . B u p r a c t i c a l p r o g r a m s a r m o r e d i f f i c u l t t e v a l u a t e .

Y o u ' v e a l r e a d y r e a d s o m e t i p s a b o u t t h e f e a t u r e s t l o o k f o r i n s e l e c t i n ga d a t a b a s e . R e v i e w s o f o u r w o r d p r o c e s s i n g p r o g r a m s a r i a n o t h e r c h a pt e r . S f a r , t h o u g h , t h e r e h a b e e n o n l y p a s s i n g m e n t i o n o a v e r y i m p o r t a n tt y p e o p r o g r a m , t h s p r e a d s h e e t .

S p r e a d s h e e t p r o g r a m s , l i k e w o r d p r o c e s s o r s , c a b g i v e n c r e d i t f o h e l p i n g t p o p u l a r i z e p e r s o n a l c o m p u t e r s . T h e s e a r p r o g r a m s t h a t h e l p y o d f i n a n c i a l c a l c u l a t i o n a n s c h e d u l i n g , b u d g e t i n g , a c c o u n t i n g , a n a n j o w h e r e n u m b e r s a r e t h e m a i n k i n d o i n f o r m a t i o n . I s h o r t , t h e y a l l o w y o t e n t e r t a b l e s o f n u m b e r s w h i c h d e p e n d o n o n a n o t h e r a n a s t h q u e s t i o n" w h a t i f ? " W h e n o n n u m b e r o t h t a b l e i c h a n g e d , o t h e r n u m b e r s t h a td e p e n d o n i d o t o o . T a b l e s a r e r e c a l c u l a t e d w i t h s t u n n i n g s p e e d . I n g o o ds p r e a d s h e e t p r o g r a m , t h t a b l e y o b u i l d c a n b e m u c h , m u c h l a r g e r t h a nt h v i d e o s c r e e n , w h i c h y o u s a " w i n d o w " m o v i n g a r o u n d t s e s m a l l e rs e c t i o n s a o n t i m e .

T h f i r s t o t h e s e p o p u l a r p r o g r a m s w a " V i s i C a l c " w h i c h s t a r t e d t h t r e n d . O t h e r " c a l c s " h a v e f o l l o w e d — - s o m e b e t t e r , s o m e w o r s e . ( A m o n g t h l e a s t p r a c t i c a l o f t h e s e a r t h s o - c a l l e d " m i n i " s p r e a d s h e e t s w h i c h l i m i t t h s i z e o t h t a b l e s . A l m o s t a l o f t h e s e a r e w r i t t e n i B A S I C — f a r t o s l o w f o

g o o d s p r e a d s h e e t . )O n e x c e l l e n t s p r e a d s h e e t f o t h C o m m o d o r e 6 f a m i l y i c a l l e d " C a l c

R e s u l t . " W r i t t e n i S w e d e n , i t a k e s f u l l a d v a n t a g e o t h c o m p u t e r ' s e x

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 198/318

S p r e a d s h e e t s a n d A d v a n c e d S o f t w a r e 1 8

p a n d e d m e m o r y a n c o l o r c a p a b i l i t i e s . A m a n y a 6 c o l u m n s o 2 2 n u m b e r" c e l l s " c o m p r i s e o n e " p a g e " ( o t a b l e ) , a n d u p t 3 d i f f e r e n t p a g e s c a n b eu s e d a o n c e . B e c a u s e o t h e s e m u l t i p l e p a g e s , " C a l c R e s u l t " i c a l l e d " t h r e e -d i m e n s i o n a l " s p r e a d s h e e t . N u m b e r s c a a c t u a l l y b p a s s e d f r o m p a g e t p a g e f o c a l c u l a t i o n .

N u m b e r c e l l s a n t h w o r d s t h a t d e s c r i b e t h e m c a b c o l o r e d . T h i s ,t o o , i p r o b a b l y t h o n l y m u l t i - l i n g u a l s p r e a d s h e e t . I t m a n y " h e l p " s c r e e n s —i n s t r u c t i o n s a n r e m i n d e r s y o c a c o n s u l t a l o n g t h w a y — c a n b r e a d i E n g l i s h , S p a n i s h , G e r m a n , F r e n c h , I t a l i a n , S w e d i s h ( n a t u r a l l y ) , D u t c h , a n F i n n i s h !

A l o t h i s m e a n s t h a t " C a l c R e s u l t " h a s e v e r a l d i s t i n c t a d v a n t a g e s o v e rt h o r i g i n a l " V i s i C a l c . " B u p e r h a p s t h e b e s t i m p r o v e m e n t i i t a b i l i t y t op r o d u c e b a r g r a p h s i c o l o r o t h v i d e o s c r e e n . ( T h e s e s a m e g r a p h s c a a l s o b p r i n t e d o C o m m o d o r e ' s 1 5 2 5 E p r i n t e r o i c o l o r o n e c o l o rp l o t t e r . ) T h b o o k t h a t c o m e s w i t h " C a l c R e s u l t " a n t e a c h e s y o t u s t h p r o g r a m i q u i t e g o o d , t h o u g h y o s h o u l d k n o w w h a t y o u ' r e g e t t i n g y o u r s e l fi n t o w h e n y o d e c i d e t b u a n s p r e a d s h e e t . " C a l c s " a r h i g h l y s o p h i s t i c a t e dp r o g r a m s w i t h m a n y f e a t u r e s , a n l e a r n i n g t u s o n t t h f u l l e s t e x t e n to i t p o w e r c a b a c h a l l e n g i n g a l e a r n i n g p r o g r a m m i n g l a n g u a g e .

" C a l c R e s u l t " i a v a i l a b l e f r o m C o m p u t e r M a r k e t i n g S e r v i c e s ( 3 0 0 W M a r l t o n P i k e , C h e r r y H i l l , N J 0 8 0 0 2 ) . I c o m e s p a c k a g e d a s e o o n d i s ka n c a r t r i d g e p r o g r a m . ( T h e d i s k c a b d u p l i c a t e d t m a k e b a c k - u p c o p i e s . )T h o u g h d i s k d r i v e i n e c e s s a r y f o t h i s " a d v a n c e d " v e r s i o n o t h p r o g r a m ,a n o t h e r a b r i d g e d v e r s i o n i a v a i l a b l e f o u s w i t h c a s s e t t e .

I y o u r p r o g r a m n e e d s r u t n u m b e r s , b u y o d o n ' t n e e d t h f l e x i b i l i t yo s p r e a d s h e e t , s h o p f o s o f t w a r e t h a t a c c o m p l i s h e s s p e c i f i c t a s k s . B u s i n e s ss o f t w a r e v a r i e s g r e a t l y i q u a l i t y h o w e v e r , a n y o s h o u l d a l w a y s a s f o d e m o n s t r a t i o n s w h e n i t h m a r k e t f o t h e s e . T h i s i e s p e c i a l l y t r u e o i v e n t o r y , g e n e r a l l e d g e r , a n p a y r o l l p r o g r a m s . S o m e b u s i n e s s p r o g r a m s a r l i m i t e d i t h e i r s c o p e , b u h i g h l y p r a c t i c a l f o c e r t a i n a p p l i c a t i o n s . O n g o o de x a m p l e i C o m m o d o r e ' s " E a s y F i n a n c e " p a c k a g e , w h i c h o f f e r s s e v e r a l d i f e r e n t k i n d s o f i n a n c i a l c a l c u l a t i o n s , i n c l u d i n g b u y / l e a s e , l o a n , a n n u i t y , p r o f i t ,a n d p a y b a c k a n a l y s i s .

O t h e r L a n g u a g e sH u m a n l a n g u a g e s p o s s e s s t h e i r o w a t t r i b u t e s . F r e n c h , f o e x a m p l e , i

c l a i m e d t b v e r y e x p r e s s i v e . T h c l a s s i c a l l a n g u a g e s — G r e e k a n d L a t i n —a r r e g a r d e d f o t h e i r p r e c i s i o n a n s t r i c t n e s s o f o r m . J a p a n e s e a n C h i n e s e ,w a r t o l d , a r e l e g a n t l y d e s c r i p t i v e .

I p a r a l l e l c a b d r a w n , t h e n B A S I C i t c o m p u t e r s w h a t E n g l i s h h a b e c o m e t t h w o r l d . I i s e r v i c e a b l e b u t c o m p l e x , w i t h a l m o s t a m a n ye x c e p t i o n s a r u l e s . A n i h a b e c o m e d f a c t o s t a n d a r d , a l e a s t f o p e r s o n a lc o m p u t e r s .

C o m p u t e r l a n g u a g e s a r l a r g e p r o g r a m s t h a t i n t e r p r e t d i f f e r e n t s t y l e so c o m m a n d s . S i n c e t h 6 f a m i l y h a t h e x t r a m e m o r y n e c e s s a r y t s t r

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 199/318

1 8 1 0 — B e y o n d B A S I C

: H I S T O R Y Q U I ZM I H A N O P R E S I D E N T ?' F O R D G R A N T E D I S O N

I E D I S O Nt s T Y : T H A T I C O R R E C T !1 9 T i l : N O E D I S O N M A A N I M U E T O R .

A M P L E O P R 0 6 R A H I P I L O T

n e l a n g u a g e s , t h e y a r i d e a l l y s u i t e d t " l e a r n i n g " n e l a n g u a g e s . ( T h eq u e s t i o n i s a r y o u ? )

P i l o t O n o t h e s e n e l a n g u a g e s i P i l o t , w h i c h m i g h t b e s t b e d es c r i b e d a t i n y b u p o w e r f u l , l i m i t e d i i t a p p l i c a t i o n b u t , s o m e s a y , p e r f e c t l ys u i t e d f o w h a t i w a d e s i g n e d f o r , e d u c a t i o n . I t i s b e c o m i n g i n c r e a s i n g l yp o p u l a r i c l a s s r o o m s , p a r t i c u l a r l y e l e m e n t a r y s c h o o l s , a n d , w i t h b o o k s a n m a g a z i n e c o l u m n s d e v o t e d t i t a s m a l l b u v o c a l c u l t o f d e v o t e e s h a f o r m e da r o u n d i t

P i l o t ' s d i s c i p l e s m o s t o f t e n c i t e i t d e c e p t i v e l y s i m p l e c o m m a n d s ( m o s to w h i c h a r s i n g l e l e t t e r s i n s t e a d o w o r d s ) a n i t a b i l i t y t o u n d e r s t a n d t h s o m e t i m e s b a l k y r e s p o n s e s o v e r y y o u n g c h i l d r e n . M a n y e d u c a t o r s t o u t t h el a n g u a g e ' s a p p e a l t y o u n g p r o g r a m m e r s , s o m e o w h o m c a n ' t y e t r e a d o w r i t e .

P i l o t , l i k e B A S I C , h a t a k e n m a n y d i f f e r e n t p a t h s i i t l i f e . T h m o s tp o p u l a r v e r s i o n s o m i c r o c o m p u t e r B A S I C , f o e x a m p l e , h a v e b e e n g r e a t l ye n h a n c e d s i n c e i t o r i g i n a l d e v e l o p m e n t a D a r t m o u t h C o l l e g e . O n e n h a n c em e n t t P i l o t h a b e e n t h a d d i t i o n o a g r a p h i c " t u r t l e , " g r a p h i c d e v i c ef o d r a w i n g o n t h s c r e e n . U n f o r t u n a t e l y , C o m m o d o r e 6 P i l o t h a n s u c ht u r t l e ( m a n y w i l l s e t h i s a a d r a w b a c k ) , b u t i d o e s t a k e a d v a n t a g e o t h 6 4 ' s u n i q u e c o l o r g r a p h i c a n s o u n d c a p a b i l i t i e s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 200/318

O t h e r L a n g u a g e s 1 8

E n t e r i n g C o m m o d o r e P i l o t , y o s o o n k n o w t h a t y o a r i n e k i n do c o m p u t e r c o m m u n i c a t i o n e n v i r o n m e n t . I i L O A D e d f r o m f l o p p y d i s k ,a n d , b e c a u s e o t h 6 4 ' s u n i q u e a r c h i t e c t u r e , t a k e s t h p l a c e o B A S I C . I a d d i t i o n t a e n t i r e l y n e c h a r a c t e r s e ( w i t h o n l y p a s s i n g r e s e m b l a n c e t t h 6 4 ' s r e s i d e n t a l p h a b e t a n n u m b e r s ) , y o n o t i c e t h f i r s t m a j o r d i f f e r e n c e .P i l o t h a f o u r d i s t i n c t m o d e s , o w a y s o o p e r a t i o n .

P i l o t a l w a y s b e g i n s i t h C o m m a n d m o d e . T h i s i l i k e c r o s s r o a d s ,w h e r e y o d e c i d e w h e r e y o u ' l l g n e x t . O n c h o i c e y o c a t a k e i t g t t h I m m e d i a t e m o d e , w h e r e y o u c a t e s t P i l o t ' s s i n g l e - l e t t e r c o m m a n d s , c a l l e d" O p - c o d e s " i " c o m p u t e r e s e . " O n c e f a m i l i a r w i t h t h c o m m a n d s , y o c a e n t e r t h E d i t m o d e , w h e r e p r o g r a m s a r c o m p o s e d . F i n a l l y , e n t e r i n g t h R u n m o d e p u t s y o u r P i l o t p r o g r a m i n t o a c t i o n .

W i t h o u t d e l v i n g i n t o t h e d e t a i l s , t h m o s t o b v i o u s a t t r a c t i o n o f P i l o t t e d u c a t o r s i i t s u i t a b i l i t y t c r e a t i n g c l a s s r o o m q u i z z e s f o c o m p u t e r - a i d e di n s t r u c t i o n . I t a d v a n t a g e s e e m s t b t h a b i l i t y t o d e c i p h e r t h c o r r e c ta n s w e r b y s e p a r a t i n g i f r o m a l o n g o j u m b l e d r e s p o n s e .T h i s i p a r t o P i l o t p r o g r a m :

T S r W h a t a r e t h e c o l o r s i t h C a n a d i a n f l a g ?A M : r e d w h i t eT h f i r s t l i n e f o r i n s t a n c e , t e l l s t h s c r e e n t T y p e ( l i k e P R I N T i B A S I C )

t h q u e s t i o n " W h a t a r e t h e c o l o r s i t h C a n a d i a n f l a g ? " ( F o r t h e c u r i o u s ,t h " S i " T S : " m e a n s t c l e a r t h e S c r e e n . ) T h s i n g l e l e t t e r " A , " f o A c c e p t ,w a i t s f o t h a n s w e r .

" M m e a n s M a t c h a n y a n s w e r w i t h " r e d " a n " w h i t e " i i t B m o d i f y i n gt h M a t c h c o m m a n d i w i l l u n d e r s t a n d t h a n s w e r o " w h i t e a n r e d " ( r v e r s e o r d e r ) o e v e n m i s s p e l l e d w o r d s l i k e " r e a d " a n " w i t e . "

E q u a l l y i n t e r e s t i n g i P i l o t ' s g r a p h i c c a p a b i l i t i e s . A l t h o u g h i w i l l a l l o wy o t u s t h 6 4 ' s h i g h - r e s o l u t i o n g r a p h i c s , i t u s o " s p r i t e s " — t h o s e m o a b l e g r a p h i c o b j e c t s o t h v i d e o s c r e e n — i s m o r e s t r a i g h t f o r w a r d .

I n s t e a d o u s i n g a " s p r i t e g e n e r a t o r " p r o g r a m , P i l o t l e t s y o s i m p l y d r a wp i c t u r e u s i n g s e v e r a l l i n e s o p r o g r a m . E a c h o t h 2 l i n e s o 2 d o t s i p r o g r a m r e p r e s e n t s t h a p p r o p r i a t e d a t a f o t h 6 4 ' s v i d e o c h i p t i n t e r p r e t

a p i c t u r e . L i k e w i s e , P i l o t a l l o w s t h m e m o r y l o c a t i o n s f o t h 6 4 ' s S I s o u n d s y n t h e s i z e r c h i p t b f i l l e d b s i n g l e p r o g r a m l i n e .

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

L O G O S o m e w i l l f i n d a n o t h e r n e l a n g u a g e , L O G O , m o r e e x c i t i n g .D e v e l o p e d a t h M a s s a c h u s e t t s I n s t i t u t e o f T e c h n o l g y , L O G O i o f t e n c a l l e d

" d i a l e c t " ( o f o r m o f L I S P , l a n g u a g e u s e d h e a v i l y b e x p e r i m e n t e r s i a r t i f i c i a l i n t e l l i g e n c e . T h i d e a b e h i n d L O G O i u n i q u e . I t c o m m a n d w o r d sa r c a l l e d " p r o c e d u r e s , " a n L O G O c o m e s w i t h r e l a t i v e l y s m a l l n u m b e ro t h e s e .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 201/318

1 8 1 0 — B e y o n d B A S I C

I t p o w e r , t h o u g h , c o m e s f r o m t h f a c t t h a t n e p r o c e d u r e s c a n b ec o n s t r u c t e d o u t o t h o r i g i n a l o n e s , a n t h e s e n e p r o c e d u r e s , t o o , c a b u s e d t c r e a t e o t h e r n e o n e s . B e c a u s e o t h i s , L O G O i o f t e n c a l l e d " r e c u rs i v e . " ( F o r a n e x a m p l e o s o m e t h i n g r e c u r s i v e , t h i n k o d r a w i n g o a a r t i s td r a w i n g p i c t u r e o h i m s e l f d r a w i n g p i c t u r e o f h i m s e l f . ) I i e x a c t l y t h i sa b i l i t y o " l e a r n i n g " n e w c o m m a n d s t h a t m a k e s L O G O s c l e v e r a n f a s c in a t i n g .

P e r h a p s t h m o s t p o p u l a r f e a t u r e o f L O G O i i t t u r t l e , t h n a m e g i v e nt t r i a n g u l a r c u r s o r t h a t d r a w s o n t h c o m p u t e r ' s h i g h - r e s o l u t i o n s c r e e n .T h c u r s o r ' s n a m e i n o a a t t e m p t t b c u t e . T h e m a c h i n e t h i n k s o t h t u r t l e a a i n t e l l i g e n t , m o v i n g t h i n g w i t h p e i i t b e l l y . W h e n t h p e i d o w n , i d r a w s l i n e . H e r e ' s w h a t s e q u e n c e t h a t d r a w s s q u a r e l o o k sl i k e :

T S Q U A R EP E N D O W NR E P E A T [ F O R W A R D 5 R I G H T q Q E N T h p r o c e s s i s i m p l e . T h t u r t l e p u t s i t p e d o w n t d r a w a n d m o v e s

f o r w a r d 5 u n i t s , e a c h u n i t e q u a l t d o o t h h i - r e s s c r e e n . T h e n t h t u r t l e t u r n s r i g h t , 9 d e g r e e s . T h i s i r e p e a t e d f o u r t i m e s t m a k e t h e s q u a r e .O n c e t h c o m p u t e r k n o w s h o t m a k e s q u a r e , y o n e e d n ' t r e p e a t t h s e q u e n c e , o n l y u s e t h w o r d S Q U A R E .

v i r t u a l c u l t h a f o r m e d a r o u n d L O G O a n i t i n n o v a t i v e c o n c e p t s .L O G O b u f f s h a v e e m b r a c e d i f o t e a c h i n g c o m p u t e r s t c h i l d r e n , w o r k i n gw i t h t h h a n d i c a p p e d , f o m u s i c , g r a p h i c a r t , a n t h d e s i g n i n g o " m i c r o -w o r l d s , " v i s u a l s i m u l a t i o n s o e v e r y d a y l i f e . C o m m o d o r e ' s L O G O w a w r i t t e nb T e r r a p i n , a a p t l y - n a m e d C a m b r i d g e , M a s s a c h u s e t t s s o f t w a r e h o u s e t h a ts p e c i a l i z e s i L O G O . A p r e l i m i n a r y c o p y u s e d f o t h i s p r e v i e w s h o w e dv e r s i o n s i m i l a r t T e r r a p i n L O G O f o t h A p p l e I I w i t h s e v e r a l e n h a n c em e n t s . N e w c o m e r s a n L O G O f a n s a l i k e a r s u r e t b p l e a s e d .

Y o w o n ' t b e a b l e t w r i t e w o r d p r o c e s s o r o r s p r e a d s h e e t i L O G O ,o d c o m p l e x m a t h e m a t i c s i P i l o t . T h e y a r e n ' t m e a n t a r e p l a c e m e n t s f o B A S I C a n h a v e p e r s o n a l i t i e s a l o t h e i r o w n . B o t h t h e s e l a n g u a g e s a p p e a lt t h i m a g i n a t i o n a n t h p o w e r o o u m i n d s .

F a s t B A S I C T h m o s t c o m m o n c o m p l a i n t a b o u t g o o d o l B A S I Ci t h a t i i s l o w . ( T c o m p u t e r p r o f e s s i o n a l s a n t h o s e a c c u s t o m e d t w o r k i n go l a r g e r m a c h i n e s , i i o f t e n i n t o l e r a b l e . ) F r o m p r o g r a m m i n g v i d e o g a m et w r i t i n g " n u m b e r c r u n c h i n g " r o u t i n e s , i i s e l d o m f a s t e n o u g h . W h i i s s l o w ?

M o s t p e r s o n a l c o m p u t e r s , y o u r 6 i n c l u d e d , s t o r e B A S I C w o r d s a s s i n g l ec h a r a c t e r s i m e m o r y . T h e c o m p u t e r m u s t i n t e r p e t w h a t t h c o m m a n d m e a n sa n l o o k f o t h n u m b e r s t h a t g a l o n g w i t h i t T h e n i g o e s t r o u t i n e s i t h B A S I C R O M s , a n d o e s w h a t i s h o u l d . T h i s a l t a k e s t i m e , a n i w h C o m m o d o r e B A S I C i c a l l e d a i n t e r p r e t e d B A S I C .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 202/318

O t h e r L a n g u a g e s 1 8

c o m p i l e r , h o w e v e r , t u r n s t h e l i n e s o B A S I C p r o g r a m i n t o f a s t e r -r u n n i n g , m o r e d i r e c t c o m p u t e r c o d e . T h o u g h s o m e c o m m a n d s d n o b e n e f i ta m u c h a o t h e r s , t h o r i g i n a l p r o g r a m o p e r a t e s d o z e n s o t i m e s f a s t e r .

O n s u c h c o m p i l e r f o t h C o m m o d o r e 6 f a m i l y i P e i s p e e d , B r i t i s hp r o g r a m t h a t o r i g i n a t e d o t h P E a n C B M , a n h a s i n c e b e e n a d a p t e d .I i a v a i l a b l e i t h U n i t e d S t a t e s f r o m S m a l l S y s t e m s E n g i n e e r i n g ( 1 0 5 6E l w e l l C o u r t , P a l o A l t o , C A 9 4 3 0 3 ) .

P e t s p e e d c o m e s p a c k a g e d o n d i s c a n w i t h a e l e c t r o n i c s e c u r i t y k e t h a t p l u g s i n t o c o n t r o l p o r t 2 ( T h e p r o g r a m w i l l n o r u w i t h o u t t h k e y ,w h i c h p r e v e n t s p i r a c y . ) W h e n o p e r a t i n g , i L O A D s t h B A S I C p r o g r a m t b c o m p i l e d a n b e g i n s t a k i n g i a p a r t , p i e c e b p i e c e . F o u r s e p a r a t e " p a s s e s "e v e n t u a l l y r e w r i t e t h p r o g r a m a c o m p i l e d , P e t s p e e d v e r s i o n w h i c h c a b L O A D e d , S A V E d a n R U n o r m a l l y . I c a n n o t , h o w e v e r , b e L I S T e d o e d i t e d . ( T h e B A S I C v e r s i o n r e m a i n s i n t a c t o t h s a m e d i s k , t h o u g h . )

I i t d e s i g n , P e t s p e e d i s o m e t h i n g o a s o f t w a r e e n g i n e e r i n g m a r v e l .T e n s o t h o u s a n d s o b y t e s o i n t e r m e d i a t e d i s k f i l e s a r g e n e r a t e d , a n t h w h o l e o p e r a t i o n t a k e s p l a c e i n s i d e t h c o m p u t e r a n d o s i n g l e d i s k . W h e nP e t s p e e d w o r k s , i w o r k s v e r y w e l l , i n d e e d . P r o g r a m s o p e r a t e n o t i c e a b l yf a s t e r . T h m a j o r p r o b l e m w i t h t h c o m p i l e r i t h a t i i q u i r k y . S o m e p r g r a m s c o m p i l e e a s i l y a n s m o o t h l y , w h i l e o t h e r s r e t u r n p u z z l i n g e r r o r m e s a g e s o r s i m p l y " c r a s h " t h c o m p u t e r . ( I t e s t i n g i t P e t s p e e d w o u l d e v e no c c a s i o n a l l y h a v e t r o u b l e w i t h p r o g r a m t h a t c o m p i l e d c o r r e c t l y m i n u t e sb e f o r e . )

P e t s p e e d a l s o h a t r o u b l e w i t h s o m e p r o g r a m s c o n t a i n i n g c h a r a c t e rg r a p h i c s , a n m a n y p r o g r a m s w i t h s p r i t e s r e q u i r e s o m e a d j u s t m e n t i t h w a t h e y u s m e m o r y s p a c e . O t h e r o d d i t i e s i n c l u d e r e s t r i c t i o n o t h n u m b e r o c h a r a c t e r s i p r o g r a m n a m e ( P e t s p e e d a l l o w s n a m e s o o n l y 1 l e t t e r s ) a n t h u s o v a r i a b l e s . ( U s i n g N E X T w i t h o u t v a r i a b l e i l e g a l i B A S I C i t h m e a n i n g i c l e a r . P e t s p e e d s o m e t i m e s d o e s n ' t l i k e t h i s . ) M o s ta g o n i z i n g i t h a t , w h i l e C o m m o d o r e B A S I C ' S I N P U T s t a t e m e n t w a f i x e d i t h V I C - 2 0 a n 6 4 P e t s p e e d s t i l l c o m p i l e s i a t h o u g h i w e r e n ' t . W i t hI N P U T , a n a n s w e r o n u l l s t r i n g ( " " ) b r e a k s t h p r o g r a m .

F i n a l l y , d e s p i t e t h s p e e d i a d d s t p r o g r a m , c o m p i l i n g i l o n g a n t e d i o u s p r o c e s s , d u i p a r t t t h s l o w 1 5 4 1 d i s k d r i v e . p r o g r a m t h l e n g t ho t h d a t a b a s e d e m o n s t r a t i o n i t h i s b o o k t o o k o v e r t w e n t y m i n u t e s t c o m p i l e w i t h t h d i s k d r i v e s p i n n i n g a w a y , g r i n d i n g f r o m t r a c k t o t r a c k . ( I i g e n u i n e e n d u r a n c e t e s t f o t h l i t t l e 1 5 4 1 . )

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

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

S i m o n s ' B A S I C C o m m o d o r e B A S I C i s n ' t b a l a n g u a g e . v e r s i o no M i c r o s o f t B A S I C , i h a v e r y f e p e c u l i a r i t i e s a n n o m a j o r " b u g s . " I t

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 203/318

1 9 1 0 — B e y o n d B A S I C

o n l y r e a l p r o b l e m i t h a t i d i d n ' t g r o w u p w i t h t h c o m p a n y ' s c o m p u t e r s .W h i l e i w a s e r v i c e a b l e f o t h o r i g i n a l 8 P E T , w h i c h h a n c o l o r , s o u n d ,o h i g h - r e s o l u t i o n g r a p h i c s , C o m m o d o r e B A S I C j u s t i s n ' t e n o u g h f o t h 6 4 w h i c h h a a l o t h o s e f e a t u r e s . P r o g r a m m i n g e v e n t h m o s t r u d i m e n t a r yg r a p h i c s a n s o u n d s o t h 6 i a e n d l e s s j o o P E E K i n g a n P O K E i n g .

S i m o n s ' B A S I C d o e s n ' t o n l y o f f e r s o l u t i o n t t h p r o b l e m , b u t a l m o s tm a k e s t h 6 i n t o a e n t i r e l y n e c o m p u t e r . T h 1 1 n e w c o m m a n d s a r e s oc o m p r e h e n s i v e t h a t t h e y m a k e S i m o n s ' B A S I C m o r e t h a n g o o d l a n g u a g ee x t e n s i o n .

T h o r i g i n o f S i m o n s ' B A S I C i i n t e r e s t i n g i i t s e l f . I t w a c r e a t e d b s i x t e e n - y e a r - o l d B r i t i s h p r o g r a m m e r n a m e d D a v i d S i m o n s , w h o s e p a r e n t s

g a v e h i h i f i r s t c o m p u t e r o n h i t h i r t e e n t h b i r t h d a y . A c c o r d i n g t t h o f f i c i a l c o m p a n y l e g e n d , S i m o n s s u r v e y e d o t h e r B A S I C s a n t h e i r e x t e n s i o n sa n p i c k e d f r o m a m o n g t h e i r f e a t u r e s .

S i m o n s ' B A S I C c o m e s p a c k a g e d a R O c a r t r i d g e a n i t n e c o m a n d s a r g r o u p e d i n t o s e v e r a l c a t e g o r i e s : P r o g r a m m i n g a i d s ( " t o o l k i t " c o m a n d s a n o t h e r c o n v e n i e n c e s ) ; n e B A S I C w o r d s f o i n p u t t i n g i n f o r m a t i o n ;a r i t h m e t i c a n m a t h e x t e n s i o n s ; d i s k f u n c t i o n s ; h i g h - r e s o l u t i o n g r a p h i c s ;s c r e e n m a n i p u l a t i o n ; s p r i t e g r a p h i c s w o r d s ; e r r o r t r a p p i n g s c h e m e s ; m u s i cn o t a t i o n , a n c o m m a n d s t h a t r e a d c o n t r o l l e r s ( l i g h t p e n s , j o y s t i c k s , p a d d l e s ,e t c . ) . F i n a l l y , a n o t h e r s e o n e w o r d s a r u s e d f o s t r u c t u r e d p r o g r a m m i n g ,a n c a m a k e t h i s B A S I C v e r y F O R T R A N - l i k e , i y o c h o o s e t u s t h e m .

S p a c e p r o h i b i t s g o i n g i n t o d e t a i l a b o u t S i m o n s ' B A S I C . ( I d e s e r v e sb o o k a l i t o w n . ) B u t h i s i o n o t h b e s t , m o s t c o m p r e h e n s i v e p i e c e s o s o f t w a r e a v a i l a b l e f o t h C o m m o d o r e 6 a n d , i f a c t , f o c o m p u t e r s i g e e r a l . I y o h a v e p i c k e d u t h e b a s i c s o B A S I C , y o u s h o u l d h a v e n t r o u b l eu n d e r s t a n d i n g t h n e c o m m a n d s . A p r e s s t i m e , n p r i c e s w e r e s e b C o m m o d o r e , w h w i l l s e l l t h S i m o n s ' B A S I C c a r t r i d g e . S t i l l , s h o r t o a e x o r b i t a n t p r i c e t a g , S i m o n s ' B A S I C i m u s t f o C o m m o d o r e 6 o w n e r s .

A s s e m b l y L a n g u a g e T r u e p r o g r a m s p e e d c o m e s u p o n e n t e r i n g t h ef i n a l r e a l m o p r o g r a m m i n g — m a c h i n e c o d e . I i p r o g r a m m e d i " a s s e m b l yl a n g u a g e , " w i t h t h u s o p r o g r a m c a l l e d a " a s s e m b l e r . " ( L o g i c a l l y , t h e q u i v a l e n t o L I S T i n g p r o g r a m i a s s e m b l y c o d e i c a l l e d " d i s a s s e m b l i n g "i t . ) T h e r e a r f e w e r c o m m a n d s i a s s e m b l y l a n g u a g e t h a n i B A S I C , a n e a c h o n i c a l l e d m n e m o n i c b e c a u s e i i t h r e e - l e t t e r a b b r e v i a t i o n f o t h c o m m a n d . H o w e v e r , p r o g r a m m i n g i m o r e d i f f i c u l t f o s e v e r a l r e a s o n s .C o n v e n t i o n a l , d e c i m a l n u m b e r s a r n o u s e d . I r e q u i r e s h e x a d e c i m a l n u b e r s — a n u m b e r s y s t e m w i t h a b a s e o 1 n u m b e r s i n s t e a d o 1 0 T h i s m a k e sa r i t h m e t i c , e s p e c i a l l y d e c i m a l p o i n t a r i t h m e t i c , t o u g h .

A s s e m b l y l a n g u a g e a l s o d e a l s w i t h t h m a c h i n e o n i t o w t e r m s , s y o m u s t c o m p l e t e l y u n d e r s t a n d w h e r e e v e r y t h i n g i n s i d e t h c o m p u t e r i l o c a t e d a n w h e r e p r o g r a m s c a a n c a n n o t b e s t o r e d . N o a r t h e r e a n E R R O R m e s s a g e s w h e n w r i t i n g p r o g r a m s t h i s w a y . W h e n a a s s e m b l y l a g u a g e p r o g r a m h a f l a w i i t t h c o m p u t e r o f t e n " c r a s h e s " w i t h o u t g i v i n g

c l u e a t w h y . P r o g r a m m i n g i B A S I C i l i k e d r i v i n g o n a n e x p r e s s w a y .A s s e m b l y l a n g u a g e i l i k e t a k i n g t h b a c k r o a d s a n s t o p p i n g i e v e r y l i t t l e

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 204/318

O t h e r L a n g u a g e s 1 9

t o w n a l o n g t h w a y . I i t h w a t l e a r n t h e c o u n t r y s i d e , b u i t a k e s l o n g e ra n d e m a n d s m o r e a t t e n t i o n t d e t a i l .

T h e r e ' s n r e a s o n t b s c a r e d a w a y f r o m t h e c h a l l e n g e , t h o u g h . M a n yn o v i c e p r o g r a m m e r s h a v e m a s t e r e d a s s e m b l y l a n g u a g e , a n t h o s e w h h a v ep r e f e r i t B A S I C f o m a n y t h i n g s . T h j o b s t h a t a r e a s i e r i B A S I C c a s t i l l b d o n e t h a t w a y , w i t h f a s t m a c h i n e c o d e p o r t i o n s b e i n g c a l l e d w i t h t h S Y c o m m a n d .

T w r i t e a s s e m b l y c o d e , y o u ' l l n e e d a a s s e m b l e r a n o t h e r a s s o c i a t e dp r o g r a m m i n g t o o l s . T h v e r s i o n s o l d b C o m m o d o r e i v e r y g o o d a n i u s e db t h c o m p a n y ' s o w s o f t w a r e d e v e l o p m e n t t e a m . A n o t h e r g o o d a s s e m b l e ri M A ( f r o m E a s t e r n H o u s e S o f t w a r e , 3 2 3 9 L i n d a D r i v e , W i n s t o n - S a l e m ,N C 2 7 1 0 6 ) . I t d e s i g n e r s b o a s t t h a t a v e r s i o n w a u s e d o N A S A ' s S p a c eS h u t t l e p r o j e c t .

H u m a n - t o - M a c h i n e I n t e r f a c i n gT h a t ' s c o m p u t e r j a r g o n f o w a y s t c o m m u n i c a t e w i t h t h m a c h i n e . T h

m o s t o f t e n u s e d w a o f t a l k i n g t a n c o m p u t e r i t h r o u g h t h k e y b o a r d , o c o u r s e . B u i t ' s n o t h o n l y w a y . Y o a l r e a d y k n o w t h a t y o c a u s j o y s t i c k sa n g a m e p a d d l e s . H a v e y o e v e r h e a r d o l i g h t p e n ?

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

L i g h t p e n s a r e s p e c i a l l y g o o d f o p r o g r a m s w h e r e c h o i c e s a r e a l w a y sm a d e f r o m m e n u . P o i n t i n g a y o u r c h o i c e k e e p s t h p r o g r a m m o v i n g a l o n g .L i g h t p e n s c a a l s o b g o o d f o g a m e s o e d u c a t i o n a l p r o g r a m s w h e r e c h i ld r e n c a n ' t b e x p e c t e d t t y p e o t h k e y b o a r d . F e c o m m e r c i a l p r o g r a m sa r w r i t t e n f o l i g h t p e n , b u y o c a e x p e c t t s e s o m e c o m e a l o n g . S o ,y o u ' l l n e e d t m o d i f y p r o g r a m s o r w r i t e t h e m y o u r s e l f , b u r e w r i t i n g s h o u l db e m i n i m a l . S i m p l e P E E K s t a t e m e n t s r e a d w h e r e t h p e i p o i n t i n g o t h s c r e e n . T h i s i e a s y o t h C o m m o d o r e 6 c o m p u t e r s s i n c e s p e c i a l l i g h t p e m e m o r y l o c a t i o n s a r b u i l t i n t o t h V I c h i p .N o a l l i g h t p e n s a r t h s a m e . D i f f e r e n c e s i t h s i z e a n b r i g h t n e s s o v i d e o s c r e e n s m a k e s o m e w o r k b e t t e r t h a n o t h e r s . O n v e r y g o o d l i g h t p e p r e v i e w e d f o t h i s b o o k i m a n u f a c t u r e d a n s o l d b M a d i s o n C o m p u t e r( 1 8 2 5 M o n r o e S t r e e t , M a d i s o n , W I , 5 3 7 1 1 ) . T h p e t e s t e d w a s t u r d y , r e l ia b l e , a n l o o k e d l i k e d e s k s e t , w i t h w o o d e n b a s e f o i w h e n n o i n u s e .I c o m e s w i t h s e v e r a l d e m o n s t r a t i o n p r o g r a m s , " O t h e l l o , " n o v e l " H a n gm a n " g a m e , a n d a n e x c e l l e n t r o u t i n e t c o p y p r o g r a m s a n f i l e s f r o m o n d i s k t a n o t h e r o s i n g l e 1 5 4 1 d i s k d r i v e .

L i g h t a l s o p l a y s a p a r t i c o m m u n i c a t i n g w i t h y o u r c o m p u t e r o n t o u c h -s e n s i t i v e v i d e o s c r e e n , m a y b e t h u l t i m a t e i c o m p u t e r c o m m u n i c a t i o n . N n e e d f o l i g h t p e h e r e . Y o j u s t t o u c h a o b j e c t o t h s c r e e n a n t h c o m p u t e r k n o w s w h a t y o u ' r e d o i n g . H o d o e s i w o r k ?

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 205/318

1 9 1 0 — B e y o n d B A S I CT h m o s t p o p u l a r s c h e m e f o t o u c h - s e n s i t i v i t y i t f r a m e t h v i d e o

s c r e e n w i t h l i g h t s o u r c e s a n l i g h t d e t e c t o r s . M o s t u s i n f r a r e d l i g h t , w h i c hi i n v i s i b l e , a n i n f r a r e d d e t e c t o r s o p p o s i t e t h l i g h t s o u r c e s . T h e y a r e a rr a n g e d i s u c h w a t h a t w h e n y o t o u c h t h s c r e e n , y o b r e a k t w b e a m so l i g h t — o n e f o t h e h o r i z o n t a l p o s i t i o n a n o n f o t h v e r t i c a l . T h c o p u t e r i n t e r p r e t s t h i s i n f o r m a t i o n a n m a k e s i t d e c i s i o n .

T h e m o s t v i s i b l e t o u c h - s e n s i t i v e v i d e o s c r e e n s i t h w o r l d a r e l o c a t e di E P C O T C e n t e r a W a l t D i s n e y W o r l d i O r l a n d o , F l o r i d a , w h e r e t h e y a r u s e d f o c o m p u t e r d e m o n s t r a t i o n s a n g a m e s , a n a p a r t o t h e x p o s i t i o n ' sW o r l d K e i n f o r m a t i o n s y s t e m . D o z e n s o o t h e r t o u c h s c r e e n s a r e b e h i n d -t h e - s c e n e s , c o n t r o l l i n g E P C O T ' s r i d e a n s h o w m e c h a n i s m s .

E P C O T ' s t o u c h s c r e e n s w e r e e n g i n e e r e d b C a r r o l l T o u c h T e c h n o l o g y( 2 9 0 2 F a r b e r D r i v e , C h a m p a i g n , I L 6 1 8 2 1 ) , p i o n e e r i t h t e c h n i q u e . C a r r o l ls e l l s k i t h a t y o c a n e x p e r i m e n t w i t h u s i n g y o u r C o m m o d o r e 6 o m o s ta n p e r s o n a l c o m p u t e r . I i f r a m e t h a t c a b m o u n t e d o t h s c r e e n o

1 2 - i n c h v i d e o m o n i t o r . T h f r a m e u s e s i n f r a r e d l i g h t t o s e n d p o s i t i o n i f o r m a t i o n b a c k t t h c o m p u t e r v i a R S - 2 3 2 d a t a c o n n e c t i o n . B e i n gp i o n e e r h a i t p r i c e , h o w e v e r . T h c o s t o f C a r r o l l ' s e x p e r i m e n t e r a n e v a lu a t i o n s y s t e m i o v e r $ 1 0 0 0 .

I t h b e g i n n i n g o t h i s b o o k y o u w e r e t o l d t h a t t h e r e w a w o r l d i n s i d et h c o m p u t e r y o h a v e b e f o r e y o u , a n t h a t t h e p o s s i b i l i t i e s w e r e p r a c t i c a l l yl i m i t l e s s . P e r h a p s y o b e l i e v e t h a t m o r e n o w . I i f u t t h i n k o t h e s ep o s s i b i l i t i e s i w o r l d t h a t i f i l l e d w i t h l i m i t a t i o n s , a n f u t b p a r t o t h g r o u n d - b r e a k i n g m o v e m e n t t h a t p e r s o n a l c o m p u t i n g a n d t e c h n o l o g y i t o d a y .

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 206/318

o E x p l o r i n g t h C o m m o d o r e 6 J i B u t t e r f i e l d

I n s i d e t h e C o m m o d o r e 6 t h e r e ' s w h o l e w o r l d t e x p l o r e . Y o c a l o o k a t h i n n e r w o r k i n g s o t h c o m p u t e r , a n e v e n t r c h a n g i n g t h i n g s a r o u n d t s e w h a t h a p p e n s .

Y o d o n ' t n e e d t o p e n u t h c o m p u t e r t d t h i s . Y o m a p e e k i n s i d et h c o m p u t e r ' s w o r k i n g s " l o g i c a l l y " — i n f a c t , y o u ' l l u s f u n c t i o n c a l l e dP E E K t l o o k a r o u n d . S i m i l a r l y , y o w o n ' t n e e d t o f i d d l e w i t h w i r e s i o r d e rt p o k e a r o u n d t h i n n a r d s a n c h a n g e t h w a t h i n g s w o r k — y o u h a v eP O K E c o m m a n d t m a k e t h c h a n g e s f o y o u .

W e ' l l g o a q u i c k t o u r o f t h e i n n e r w o r k i n g s o f t h e C o m m o d o r e 6 4 l o o k i n g a f e p o i n t s o i n t e r e s t o o u w a y . A f t e r o u f a m i l i a r i z a t i o n t o u r ,y o u ' l l b a b l e t e x p l o r e o y o u r o w n .

W h T i n k e r ?W h w o u l d y o w a n t t r u m m a g e a r o u n d a c o m p u t e r ' s i n s i d e s ? T h e r e

a r s e v e r a l r e a s o n s .1 9

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 207/318

1 9 A p p e n d i x

F i r s t , y o s o m e t i m e s n e e d — i n f a c t , y o u ' r e s o m e t i m e s i n s t r u c t e d — t o d t h i s . T h C o m m o d o r e 6 u s e r g u i d e , f o e x a m p l e , i n s t r u c t s y o t c h a n g e t h s c r e e n b o r d e r c o l o r w i t h P O K E 5 3 2 8 0 , X w h e r e i c o l o r c o d e n u m b e rf r o m t 1 5 Y o a r b e i n g t o l d t o c h a n g e s o m e t h i n g w i t h i n t h c o m p u t e r ' si n n a r d s . A y o g a i n m o r e e x p e r i e n c e , y o u ' l l d e v e l o p r o s t e r o f a d d r e s s e st h a t a r u s e f u l f o v a r i o u s j o b s .

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

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

T h C o m p u t e r ' s M e m o r yT h e c o m p u t e r u s e s i t m e m o r y f o j u s t a b o u t e v e r y t h i n g i d o e s . A l m o s t

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

M e m o r y c o n s i s t s o f c e l l s i w h i c h i n f o r m a t i o n c a b s t o r e d ; e a c h c e l lh a a " a d d r e s s . " T h e r e a r 6 5 5 3 6 c e l l s w h i c h m a b r e a c h e d i t h C o m o d o r e 6 4 t h a d d r e s s e s s t a r t a a n g u t 6 5 5 3 5 . E a c h c e l l m a c o n t a i na n v a l u e f r o m t 2 5 5 . V a r i o u s a r e a s o m e m o r y h a v e b e e n a s s i g n e d f o s p e c i f i c j o b s ; y o u ' l l g e t k n o w c e r t a i n a d d r e s s e s q u i t e w e l l a f t e r w h i l e .

T h e r e a r t h r e e k i n d s o m e m o r y d e v i c e s u s e d i c o m p u t e r ; o n e k i n di s n ' t r e a l l y m e m o r y a a l l . L e t ' s t a l k a b o u t t h e m a n w h e r e t h e y a r l o c a t e d .

K i n d s o M e m o r yR A i m e m o r y w c a w r i t e ( P O K E ) a n r e a d ( P E E K ) . I t ' s l i k e s t o r a g e

a r e a : w c a p u i n f o r m a t i o n t h e r e ; l a t e r , w c a n g o b a c k a n l o o k a t h i n f o r m a t i o n w h a v e s t o r e d . W h e n y o t y p e p r o g r a m i n t o t h C o m m o d o r e6 4 i i s t o r e d i R A M . W h e n y o u r p r o g r a m c a l c u l a t e s v a l u e s , t h e s e w i l l b s t o r e d i n t o ( a n d r e c a l l e d f r o m ) R A M . R A M , b t h w a y , s t a n d s f o R a n d o mA c c e s s M e m o r y ; t h a t ' s n o v e r y m e a n i n g f u l n a m e .

T h C o m m o d o r e 6 i i t u s u a l c o n f i g u r a t i o n h a R A a v a i l a b l e f r o ma d d r e s s t a d d r e s s 4 0 9 5 9 , a n f r o m a d d r e s s 4 9 1 5 2 t 5 9 1 5 1 . T h l o w e rb l o c k i u s e d f o B A S I C p r o g r a m s a n w o r k i n g v a l u e s ; t h u p p e r b l o c k i s n ' tu s e d a a l b y B A S I C . A w e ' l l d i s c u s s l a t e r , y o h a v e m o r e R A t h a n t h i sa v a i l a b l e w h i c h y o c a p u t w o r k i y o u r 6 i d e s i r e d .

R O i f i x e d m e m o r y ; y o c a r e a d i ( P E E K i t ) , b u y o c a n ' t s t o r ei n t o i t T h v a l u e s i R O h a v e b e e n s e a t h f a c t o r y , a n c a n ' t b c h a n g e d .R O s t a n d s f o R e a d O n l y M e m o r y , w h i c h i f a i r d e s c r i p t i o n . I m a s e e m

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 208/318

k i n d s o M e m o r y 1 9

l i m i t i n g t h a v e R O w h i c h c a n n o t b c h a n g e d , b u i y o d o n ' t l i k e w h a t ' si R O M , y o c a s w a p i o u a n p u R A i i t p l a c e . R O h o l d s t h m a i n l o g i c o t h c o m p u t e r : h o t c a l c u l a t e s q u a r e r o o t , f o r e x a m p l e , o h o t w r i t e i n f o r m a t i o n t c a s s e t t e t a p e . M o s t o t h " b u i l t - i n " f e a t u r e so a n c o m p u t e r a r e u s u a l l y b u i l t i n t o R O M .

T h C o m m o d o r e 6 u s u a l l y h a R O a v a i l a b l e f r o m a d d r e s s 4 0 9 6 0 t 4 9 1 5 1 a n f r o m 5 7 6 4 4 t 6 5 5 3 5 . T h f i r s t b l o c k t e l l s t h c o m p u t e r h o t r e c o g n i z e a n i m p l e m e n t t h B A S I C l a n g u a g e ; t h s e c o n d , h o t d i n p u t /o u t p u t a c t i v i t i e s s u c h a k e y b o a r d , s c r e e n , d i s k , o t a p e . T h e r e ' s t h i r d R O t u c k e d a w a y i n s i d e t h 6 w h e r e w c a n ' t u s u a l l y P E E K i . . . t h i s i t h c h a r a c t e r g e n e r a t o r , w h i c h s h o w s h o t d r a w e a c h c h a r a c t e r o t h s c r e e n .A n i y o p l u g i a v i d e o g a m e , c h a n c e s a r e y o u ' r e p l u g g i n g i a e x t r aR O M , c o n t a i n i n g i n s t r u c t i o n s o h o t p l a y t h g a m e .

T h t h i r d t y p e o m e m o r y d e v i c e i c a l l e d a I n t e r f a c e . T h e s e a r n o r e a l l y m e m o r y , s i n c e w c a n ' t b s u r e t h a t i n f o r m a t i o n s t o r e d h e r e w i l l b a v a i l a b l e f o u t o r e c a l l a l a t e r t i m e . T h e i r m a i n j o i t p e r f o r m i n t e rf a c i n g t t h i n g s o u t s i d e t h c e n t r a l c o m p u t e r . T h e r e ' s V i d e o I n t e r f a c e C h i pw h i c h c r e a t e s t h e i m a g e w s e o t h s c r e e n . T h e r e ' s S o u n d I n t e r f a c eD e v i c e w h i c h m a k e s t h s o u n d s t h a t w h e a r . A n t h e r e a r e t w C o m p l e xI n t e r f a c e A d a p t o r s w h i c h m a k e c o n n e c t i o n s t t h k e y b o a r d , t a n f r o md i s k , f r o m t h j o y s t i c k s . . a n p e r f o r m o t h e r f u n c t i o n s a w e l l , s u c h a t i m i n g .

T h V i d e o I n t e r f a c e C h i p i l o c a t e d a a d d r e s s e s 5 3 2 6 2 t 5 3 2 8 6 i t h C o m m o d o r e 6 4 T h S o u n d I n t e r f a c e D e v i c e i l o c a t e d a a d d r e s s e s 5 4 2 7 2 t 5 4 3 0 0 . A n t h t w C o m p l e x I n t e r f a c e A d a p t o r s a r l o c a t e d a 5 6 2 3 0 t 5 6 3 3 5a n 5 6 5 7 6 t 5 6 5 9 1 . L o c a t i o n s 0 a n h a v e s p e c i a l i n t e r f a c e f u n c t i o n s o t h e i r o w n : t h e i r m o s t i m p o r t a n t j o i t c o n t r o l t h w a t h o t h e r c h i p sa p p e a r i m e m o r y .

M e m o r y M a p sY o u ' l l f i n d s o m e l e n g t h y " m e m o r y m a p s " a t h e n o t h i s a p p e n d i x .

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

h a p p e n s . W e ' l l b r o w s e l i t t l e m o r e i R A i j u s t m o m e n t .W c a n ' t c h a n g e R O M , s i t s t r u c t u r e i o i n t e r e s t m o s t l y f o s t u d y

p u r p o s e s . I w w a n t t a n a l y z e i d e t a i l h o t h m a c h i n e w o r k s , w c a p e r u s e R O M . T d s o w e ' l l n e e d t u n d e r s t a n d n e t y p e o l a n g u a g e :6 5 0 2 m a c h i n e l a n g u a g e .

T h 6 5 0 2 i a v e r y c l o s e r e l a t i v e o t h 6 5 1 0 m i c r o p r o c e s s o r u s e d i t h C o m m o d o r e 6 4 T h i n s t r u c t i o n s i R O a r 6 5 0 2 - t y p e i n s t r u c t i o n s . i t ' s

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

l o c a t i o n s a r m e n t i o n e d i t h 6 U s e r ' s G u i d e . y o u ' l l n e e d t k n o w s o m eo t h e m i o r d e r t m a k e s o u n d s , o t c h a n g e s o m e o t h s c r e e n c h a r a ct e r i s t i c s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 209/318

1 9 A p p e n d i x

Y o m a n o t e t h a t t h i n t e r f a c e c h i p s a r d r a w n a c h a r t s . T h a t ' s b e c a u s em a n y i n t e r f a c e l o c a t i o n s c o n t r o l m o r e t h a n o n e a c t i v i t y . T h m e m o r y c e l l i c o m p o s e d o i n d i v i d u a l c o n t r o l e l e m e n t s , c a l l e d " b i t s , " w h i c h a r c o d e d u s i n gt h f o l l o w i n g n u m b e r s :

1 2 6 3 1 F o r e x a m p l e , i y o s e t h a t a g i v e n l o c a t i o n c o n t a i n s a v a l u e o 2 0

l i t t l e a r i t h m e t i c w i l l r e v e a l t h a t t h b i m a r k e d 1 a n t h b i m a r k e d a r " o n " a n a l t h o t h e r s a r o f f . N o t h e r c o m b i n a t i o n o b i t s g i v e s t o t a l o 2 0

W h e n y o r e f e r e n c e t h e I n t e r f a c e c h i p c h a r t s , y o u ' l l s e t h e i n d i v i d u a lb i t s a n s e h o t c o m b i n e t h e m t m a k e c o m p o s i t e c o n t r o l v a l u e .

R A M b l i n gR A m e m o r y i s m u c h f u t h a t i t ' s w o r t h t a l k i n g a b o u t l i t t l e m o r e .

W e ' l l l o o k t h r o u g h t h e a d d r e s s e s , a n p i c k o u t a f e i n t e r e s t i n g o n e s .A d d r e s s e s t 1 0 2 3 i w o r k a r e a f o t h c o m p u t e r ; i t ' s v e r y r i c h w i t h

i m p o r t a n t l o c a t i o n s . T h a r e a f r o m 2 t 2 5 i c a l l e d " z e r o p a g e " a n i t ' sj a m m e d w i t h t h c o m p u t e r ' s w o r k i n g v a l u e s . I y o c o m m a n d P R I N TP E E K ( 2 0 3 ) , f o e x a m p l e , y o u ' l l d i s c o v e r w h e t h e r k e i b e i n g h e l d d o w na t h m o m e n t o n o t : a v a l u e o 6 m e a n s t h a t n k e i b e i n g p r e s s e d . T h i si s n ' t m u c h u s a d i r e c t s t a t e m e n t : y o u ' d n e e d t b v e r y f a s t t t a k e y o u rh a n d f r o m t h R E T U R N k e b e f o r e t h e a n s w e r i p r i n t e d . B u w i t h i np r o g r a m , P E E K ( 2 0 3 ) c a t e l l y o t h a t s o m e o n e i h o l d i n g k e y . W h i c h k e y ?T h G E s t a t e m e n t w i l l t e l l y o u .

L o c a t i o n s 2 5 t 5 1 a r f a i r l y q u i e t . T h i s i u s e d f o a i n n e r c o m p u t e rw o r k a r e a c a l l e d t h " s t a c k " . y o w o n ' t g e m u c h u s e f u l a c t i o n i n t h i sa r e a .

L o c a t i o n s 5 1 t 6 7 a r e q u i t e b u s y . O n o m f a v o r i t e s h e r e i l o c a t i o n6 5 0 , w h i c h c o n t r o l s h o t h k e y b o a r d k e y s r e p e a t . Y o m a h a v e n o t i c e dt h a t c u r s o r k e y s a n t h s p a c e b a r e p e a t ; t r P O K E i n g 6 5 w i t h v a l u e s s u c ha s 2 5 5 , 1 2 7 , a n a n s e w h a t h a p p e n s .

L o c a t i o n s 7 6 t 8 1 a r s p e c i a l i z e d . T h e y c o n t a i n n u m b e r o f " l i n k "a d d r e s s e s w h i c h a l l o w m a c h i n e l a n g u a g e p r o g r a m m e r s t c h a n g e t h b h a v i o r o t h c o m p u t e r . T h e y d t h i s b c h a n g i n g t h a d d r e s s e s s t o r e d w i t h i nt h l i n k s t o n e a d d r e s s e s o f t h e i r o w n . T h i s w a y , t h e y c a m a k e t h c o m p u t e rd m a r v e l o u s n e t h i n g s . I y o d o n ' t h a v e m a c h i n e l a n g u a g e s k i l l s , a l y o u ' l ld o b y c h a n g i n g t h e s e l o c a t i o n s i c a u s e t h m a c h i n e t b e h a v e e r r a t i c a l l y. . o n o a a l l .

F r o m 8 2 t 1 0 1 9 , w h a v e c a s s e t t e b u f f e r a r e a . I y o u s c a s s e t t e t a p et s t o r e o r e c a l l i n f o r m a t i o n , t h i s m e m o r y a r e a w i l l c h a n g e a s t h e t a p e d a t ai h a n d l e d . I y o d o n ' t h a p p e n t b u s i n g t h c a s s e t t e , t h i s a r e a i f r e e a n a v a i l a b l e . i t ' s o f t e n p o p u l a r a a a r e a f o " s p r i t e s " t e n l i v e n s c r e e ng r a p h i c s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 210/318

R A M b l i n g 1 9

L o c a t i o n s 1 0 2 4 t 2 0 4 7 a r u s e d f o " s c r e e n m e m o r y . " H e r e ' s a f u n a r e a :P O K E i n g t t h i s a r e a w i l l c a u s e c h a r a c t e r t a p p e a r o t h s c r e e n — t r ya n v a l u e f r o m t 2 5 5 ; e a c h w i l l c r e a t e d i f f e r e n t s c r e e n c h a r a c t e r . I w o r k sb o t h w a y s : i p r o g r a m P E E K s o n o t h e s e a d d r e s s e s , i w i l l " s e e " w h a t ' so t h e s c r e e n i t h c o r r e s p o n d i n g l o c a t i o n . M a n y g a m e s P O K E a n P E E Kt h s c r e e n a r e a t c r e a t e l i v e l y a n i m a t i o n .F r o m 2 0 4 8 t 4 0 9 5 9 w h a v e t h m e m o r y w h e r e t h c o m p u t e r k e e p s t h B A S I C p r o g r a m t h a t w t y p e i n W h e n t h p r o g r a m r u n s , i t v a r i a b l e s a n a r r a y s a r e a l s o s t o r e d i t h s a m e a r e a . T h i s a r e a i b i h a r d t o u s e , s i n c eB A S I C u s e s i t b u y o m i g h t l i k e t e x p l o r e t h e w a p r o g r a m i s t o r e d . i t ' s m o r e c o m p l e x t h a n y o u m i g h t t h i n k .

2 0 4 8 t 4 0 9 6 9 i l a r g e a r e a , a n y o m i g h t n o n e e d i a l t h o l d y o u rB A S I C p r o g r a m . Y o c a t r i m i d o w n s a t r e l e a s e s p a c e f o r s p r i t e s o m a c h i n e l a n g u a g e p r o g r a m s . . w c a n ' t g i n t o t h d e t a i l s h e r e , b u i i n v o l v e s f i d d l i n g w i t h t h a d d r e s s e s s t o r e d i 4 a n 4 ( s t a r t - o f - B A S I C ) o i 5 a n 5 ( l i m i t o B A S I C ) . H o d y o r e a d a a d d r e s s s t o r e d i t w b y t e s ? W e l l , y o P E E K t h f i r s t b y t e , a n d a d d i t 2 5 t i m e s t h P E E K o t h s e c o n d b y t e . T h i s g e t s t r i c k y . . B A S I C p r o g r a m c a n ' t c h a n g e i t o w s t a r t a n e n a d d r e s s e s w h i l e i t i s r u n n i n g , o f c o u r s e . A w s a i d , w c a n ' tg i n t o t h d e t a i l s h e r e .

T h e r e ' s e x t r a R A u a a d d r e s s e s 4 9 1 5 2 t 5 3 2 4 7 a n n o r m a l l y n o b o d yu s e s i t I t ' s g r e a t p l a c e f o e x p e r i m e n t s . . e s p e c i a l l y t r y i n g o u m a c h i n el a n g u a g e p r o g r a m s t s e i t h e y w o r k .

T h G r e a t M e m o r y S h u f f l eI s e e m s t h a t w h a v e c l e a r l y i d e n t i f i e d t h e p i e c e s a n p l a c e s . B u w a i t —

t h C o m m o d o r e 6 h a s e c r e t . H i n t : i t ' s i t h n a m e .T h C o m m o d o r e 6 h a R A e v e r y w h e r e . 6 4 o i t i f a c t , w h i c h

a m o u n t s t 6 5 5 3 6 l o c a t i o n s . E v e n a a d d r e s s e s w h e r e w h a v e R O M , t h e r e ' sR A l u r k i n g b e h i n d i . . w a i t i n g t b u s e d .

F o e x a m p l e , i w e P R I N T P E E K ( 4 5 0 0 0 ) , w e ' l l g e t h c o n t e n t s o R O m e m o r y . i t ' s p a r t o f t h e B A S I C i n s t r u c t i o n s . B u i w P O K E 4 5 0 0 0 , 1 0 0t h c o m p u t e r k n o w s t h a t w c a n ' t s t o r e i n t o R O . . s i s t o r e s t h v a l u e ,1 0 0 , i n t o t h R A b e h i n d t h R O M . C a y o r e a d t h R A M ? N o w i t h t h R O i t h w a y : a n o t h e r P E E K t 4 5 0 0 0 w i l l j u s t s h o w u t h R O c o n t e n t s .B u w c a f l i p t h R O a w a y b u s i n g t h e c o n t r o l s i a d d r e s s 1

W a i t j u s t m o m e n t . I w f l i p t h R O a w a y , w e ' l l l o s e B A S I C . T h a t ' sb a d , b e c a u s e w n e e d i i o r d e r t g i v e c o m m a n d s . e v e n P O K E i B A S I Cc o m m a n d . I t h e r e a n w a w c a m o v e o u t h R O a n s t i l l k e e p B A S I C ?

I t ' s e a s y , o n c e y o t h i n k o i t J u s t c o p y t h R O i n t o t h R A b e n e a t h ,a n w h e n w e l e c t r o n i c a l l y m a k e t h R O d i s a p p e a r , B A S I C w i l l s t i l l b t h e r e i t h R A M . T h i s g i v e s u s o m e t h i n g n e w : w a t c h a n g e B A S I C .

L e t ' s c o p y B A S I C f r o m t h R O i n t o t h R A b e n e a t h . T y p e t h f o l o w i n g l i n e :

F O 4 D c l t D T ^ 1 5 1 : P O K E J , P E E K ( J : N E X T

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 211/318

1 9 A p p e n d i x

A f i r s t g l a n c e t h i s s e e m s l i k e n o n s e n s e . W a r P O K E i n g i n t o e a c h l c a t i o n t h s a m e i n f o r m a t i o n t h a t w h a v e j u s t f o u n d t h e r e . B u o n c e w u n d e r s t a n d t h a t i t ' s c o m i n g f r o m R O a n g o i n g i n t o R A M , t h w h o l e t h i n gm a k e s s e n s e . I w i l l t a k e a l i t t l e w h i l e f o t h c o m p u t e r t c o p y a l e i g h tt h o u s a n d o d b y t e s . W h e n i t ' s f i n i s h e d , t y p e :

P O K E " 1 , 5 4A n d B A S I C i n o o p e r a t i n g o u t o R A M . T r t h i s :P O K EY o u r m a c h i n e s h o u l d n o r e p l y B E A D Y i n s t e a d o R E A D Y . Y o u ' v e c h a n g e d

B A S I C . . i m i n o r w a y , b u i t ' s s t i l l g e n u i n e c h a n g e .Y o m a r e s t o r e t h B A S I C R O b t y p i n g P O K E 1 , 5 5 . B E A D Y w i l l

o n c e a g a i n b e c o m e R E A D Y .

S u m m a r yc a o n l y h i n t a t h t r e a s u r e s t h a t y o c a u n c o v e r i y o l i k e r a m b l i n g

t h r o u g h t h i n s i d e s o f y o u r m a c h i n e . Y o d o n ' t n e e d t o o f c o u r s e : t h 6 c a b e u s e d a s t h e s e n s i b l e , s t r a i g h t f o r w a r d m a c h i n e y o a l w a y s k n e w i w a s .B u i s n ' t i f u t t i n k e r s o m e t i m e s ?

C o m m o d o r e 6 M e m o r y M a p , C o m p i l e d b y J i B u t t e r f i e l d

H e 0 0 0 00 0 0 10 0 0 3 - 0 0 0 40 0 0 5 - 0 0 0 60 0 0 70 0 0 80 0 0 90 0 0 A0 0 0 Bo o o c0 0 0 D0 0 0 E0 0 0 F0 0 1 00 0 1 10 0 1 20 0 1 30 0 1 4 - 0 0 1 50 0 1 60 0 1 7 - 0 0 1 80 0 1 9 - 0 0 2 10 0 2 2 - 0 0 2 50 0 2 6 - 0 0 2 A0 0 2 B - 0 0 2 C0 0 2 D - 0 0 2 E

D e c i m a l

3 - 5 -

1 1 1 1 1 1 1 1 1 1 2 0 - 2 12 2 3 - 2 42 5 - 3 33 4 - 3 73 8 - 4 24 3 - 4 44 5 - 4 6

D e s c r i p t i o nC h i p d i r e c t i o n a l r e g i s t e rC h i p I / O ; m e m o r y t a p e c o n t r o lF l o a t - F i x e d v e c t o rF i x e d - F l o a t v e c t o rS e a r c h c h a r a c t e rS c a n - q u o t e s f l a gT A c o l u m n s a v e

L O A D , 1 = V E R I F YI n p u t b u f f e r p o i n t e r / # s u b s c r p tD e f a u l t D I f l a gT y p e : F F = s t r i n g , 0 0 n u m e r i cT y p e : 8 i n t e g e r , 0 f l o a t i n g p o i n tD A T A s c a n / L I S T q u o t e / m e m r y f l a gS u b s c r i p t / F N x f l a g

I N P U T ; $ 4 0 G E T ; $ 9 8 R E A DA T s i g n / C o m p a r i s o n e v a l f l a gC u r r e n t I / p r o m p t f l a gI n t e g e r v a l u eP o i n t e r : t e m p o r a r y s t r g s t a c kL a s t t e m p s t r i n g v e c t o rS t a c k f o t e m p o r a r y s t r i n g sU t i l i t y p o i n t e r a r e aP r o d u c t a r e a f o m u l t i p l i c a t i o nP o i n t e r : S t a r t - o f - B A S I CP o i n t e r : S t a r t - o f - V a r i a b l e s

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 212/318

S u m m a r y 1 9

C o m m o d o r e 6 M e m o r y M a c o n t i n u e dH e D e c i m a l D e s c r i p t i o n0 0 2 F - 0 0 3 00 0 3 1 - 0 0 3 20 0 3 3 - 0 0 3 40 0 3 5 - 0 0 3 60 0 3 7 - 0 0 3 80 0 3 9 - 0 0 3 A0 0 3 B - 0 0 3 C0 0 3 D - 0 0 3 E0 0 3 F - 0 0 4 00 0 4 1 - 0 0 4 20 0 4 3 - 0 0 4 40 0 4 5 - 0 0 4 60 0 4 7 - 0 0 4 80 0 4 9 - 0 0 4 A0 0 4 B - 0 0 4 C0 0 4 D0 0 4 E - 0 0 5 30 0 5 4 - 0 0 5 60 0 5 7 - 0 0 6 00 0 6 10 0 6 2 - 0 0 6 50 0 6 60 0 6 70 0 6 80 0 6 9 - 0 0 6 E0 0 6 F0 0 7 00 0 7 1 - 0 0 7 20 0 7 3 - 0 0 8 A0 0 7 A - 0 0 7 B0 0 8 B - 0 0 8 F0 0 9 00 0 9 10 0 9 20 0 9 30 0 9 40 0 9 50 0 9 60 0 9 70 0 9 80 0 9 90 0 9 A0 0 9 B0 0 9 C0 0 9 D0 0 9 E0 0 9 F0 0 A 0 - 0 0 A 20 0 A 30 0 A 40 0 A 50 0 A 60 0 A 7

4 7 - 4 84 9 - 5 05 1 - 5 25 3 - 5 45 5 - 5 65 7 - 5 85 9 - 6 06 1 - 6 26 3 - 6 46 5 - 6 66 7 - 6 86 9 - 7 07 1 - 7 27 3 - 7 47 5 - 7 67 7 8 - 8 38 4 - 8 68 7 - 9 69 9 8 - 1 0 1

1 0 1 0 1 0 1 0 5 - 1 1 01 1 1 1 1 1 3 - 1 1 41 1 5 - 1 3 81 2 2 - 1 2 31 3 9 - 1 4 31 4 1 4 1 4 1 4 1 4 1 4 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 6 0 - 1 6 21 6 1 6 1 6 1 6 1 6

P o i n t e r : S t a r t - o f - A r r a y sP o i n t e r : E n d - o f - A r r a y sP o i n t e r : S t r i n g - s t o r a g e ( m o v i n g d o w n )U t i l i t y s t r i n g p o i n t e rP o i n t e r : L i m i t - o f - m e m o r yC u r r e n t B A S I C l i n e n u m b e rP r e v i o u s B A S I C l i n e n u m b e rP o i n t e r : B A S I C s t a t e m e n t f o C O N TC u r r e n t D A T A l i n e n u m b e rC u r r e n t D A T A a d d r e s sI n p u t v e c t o rC u r r e n t v a r i a b l e n a m eC u r r e n t v a r i a b l e a d d r e s sV a r i a b l e p o i n t e r f o F O R / N E X TY - s a v e ; o p - s a v e ; B A S I C p o i n t e r s a v eC o m p a r i s o n s y m b o l a c c u m u l a t o rM i s c w o r k a r e a , p o i n t e r s , e t J u m p v e c t o r f o f u n c t i o n sM i s c n u m e r i c w o r k a r e aA c c u m # l : E x p o n e n tA c c u m # l : M a n t i s s aA c c u m # l : S i g nS e r i e s e v a l u a t i o n c o n s t a n t p o i n t e rA c c u m # l h i - o r d e r ( o v e r f l o w )A c c u m # 2 : E x p o n e n t , e t c .S i g n c o m p a r i s o n , A c c # l v # A c c u m # l l o - o r d e r ( r o u n d i n g )C a s s e t t e b u f f l e n / S c r i e s p o i n t e rC H R G E T s u b r o u t i n e ; g e B A S I C c h a rB A S I C p o i n t e r ( w i t h i n s u b r t n )R N s e e d v a l u eS t a t u s w o r d S K e y s w i t c h P I A : S T O P a n R V f l a g sT i m i n g c o n s t a n t f o t a p eL o a d 0 V e r i f y = S e r i a l o u t p u t : d e f e r r e d c h a r f l a gS e r i a l d e f e r r e d c h a r a c t e rT a p e E O r e c e i v e dR e g i s t e r s a v eH o m a n y o p e n f i l e sI n p u t d e v i c e , n o r m a l l yO u t p u t C M d e v i c e , n o r m a l l yT a p e c h a r a c t e r p a r i t yB y t e - r e c e i v e d f l a gD i r e c t $ 8 0 / R U N o u t p u t c o n t r o lT P a s s e r r o r l o g / c h a r b u f f e rT P a s s e r r l o g c o r r e c t e dJ i f f y C l o c k H M S e r i a l b i c o u n t / E O I f l a gC y c l e c o u n tC o u n t d o w n , t a p e w r i t e / b i t c o u n tT a p e b u f f e r p o i n t e rT p W r t l d c o u n t / R d p a s s / i n b i t

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 213/318

2 0 A p p e n d i x

C o m m o d o r e 6 M e m o r y M a c o n t i n u e dH e D e c i m a l D e s c r i p t i o n0 0 A 8 1 6 T W r n e b y t e / R d e r r o r / i n b i t c n Q 0 A 9 1 6 W r s t a r t b i t / R d b i t e r r / s t b i t0 0 A A 1 7 T S c a n ; C n t ; L d ; E n d / b y t e a s s y0 0 A B 1 7 W l e a d l e n g t h / R d c h e c k s u m / p a r i t y0 0 A C - 0 0 A D 1 7 2 - 1 7 3 P o i n t e r : t a p e b u f r , s c r o l l i n g0 0 A E - 0 0 A F 1 7 4 - 1 7 5 T a p e e n d a d d s / E n d o p r o g r a m0 0 B 0 - 0 0 B 1 1 7 6 - 1 7 7 T a p e t i m i n g c o n s t a n t s0 0 B 2 - 0 0 B 3 1 7 8 - 1 7 9 P n t r : s t a r t o t a p e b u f f e r0 0 B 4 1 8 = T t i m e r e n a b l e d ; b i c o u n t0 0 B 5 1 8 T p E O T / R S 2 3 2 n e x t b i t s e n d0 0 B 6 1 8 R e a d c h a r a c t e r e r r o r / o u t b y t e b u 0 0 B 7 1 8 c h a r a c t e r s i f i l e n a m e0 0 B 8 1 8 C u r r e n t l o g i c a l f i l e0 0 B 9 1 8 C u r r e n t s e c n d y a d d r e s s0 0 B A 1 8 C u r r e n t d e v i c e0 0 B B - 0 0 B C 1 8 7 - 1 8 8 P o i n t e r t f i l e n a m e0 0 B D 1 8 W s h i f t w o r d / R d i n p u t c h a r0 0 B E 1 9 b l o c k s r e m a i n i n g t W r / R d0 0 B F 1 9 S e r i a l w o r d b u f f e r0 0 C 0 1 9 T a p e m o t o r i n t e r l o c k0 0 C 1 - 0 0 C 2 1 9 3 - 1 9 4 I / s t a r t a d d r e s s0 0 C 3 - 0 0 C 4 1 9 5 - 1 9 6 K e r n e l s e t u p p o i n t e r0 0 C 5 1 9 L a s t k e p r e s s e d0 0 C 6 1 9 c h a r s i k e y b d b u f f e r0 0 C 7 1 9 S c r e e n r e v e r s e f l a g0 0 C 8 2 0 E n d - o f - l i n e f o i n p u t p o i n t e r0 0 C 9 - 0 0 C A 2 0 1 - 2 0 2 I n p u t c u r s o r l o g ( r o w , c o l u m n )0 0 C B 2 0 W h i c h k e y : 6 i n k e O O C C 2 0 f l a s h c u r s o r0 0 C D 2 0 5 C u r s o r t i m i n g c o u n t d o w n0 0 C E 2 0 C h a r a c t e r u n d e r c u r s o rO O C F 2 0 7 C u r s o r i b l i n k p h a s e0 0 D 0 2 0 I n p u t f r o m s c r e e n / f r o m k e y b o a r d0 0 D 1 - 0 0 D 2 2 0 9 - 2 1 0 P o i n t e r t s c r e e n l i n e0 0 D 3 2 1 P o s i t i o n o f c u r s o r o a b o v e l i n e0 0 D 4 2 1 d i r e c t c u r s o r , e l s e p r o g r a m m e d0 0 D 5 2 1 C u r r e n t s c r e e n l i n e l e n g t h0 0 D 6 2 1 R o w h e r e c u r s o r l i v e s0 0 D 7 2 1 L a s t i n k e y / c h e c k s u m / b u f f e r0 0 D 8 2 1 o I N S E R T S o u t s t a n d i n g0 0 D 9 - 0 0 F 2 2 1 7 - 2 4 2 S c r e e n l i n e l i n k t a b l e0 0 F 3 - 0 0 F 4 2 4 3 - 2 4 4 S c r e e n c o l o r p o i n t e r0 0 F 5 - 0 0 F 6 2 4 5 - 2 4 6 K e y b o a r d p o i n t e r0 0 F 7 - 0 0 F 8 2 4 7 - 2 4 8 R S - 2 3 2 R e p n t r0 0 F 9 - 0 0 F A 2 4 9 - 2 5 0 R S - 2 3 2 T p n t r0 0 F F - 0 1 0 A 2 5 6 - 2 6 6 F l o a t i n g t A S C I I w o r k a r e a0 1 0 0 - 1 0 3 E 2 5 6 - 3 1 8 T a p e e r r o r l o g0 1 0 0 - 0 1 F F 2 5 6 - 5 1 1 P r o c e s s o r s t a c k a r e a0 2 0 0 - 0 2 5 8 5 1 2 - 6 0 0 B A S I C i n p u t b u f f e r0 2 5 9 - 0 2 6 2 6 0 1 - 6 1 0 L o g i c a l f i l e t a b l e0 2 6 3 - 0 2 6 C 6 1 1 - 6 2 0 D e v i c e t a b l e0 2 6 D - 0 2 7 6 6 2 1 - 6 3 0 S e A d d s t a b l e0 2 7 7 - 0 2 8 0 6 3 1 - 6 4 0 K e y b d b u f f e r

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 214/318

S u m m a r y

C o m m o d o r e 6 M e m o r y M a c o n t i n u e d

2 0

H e 0 2 8 1 - 0 2 8 20 2 8 3 - 0 2 8 40 2 8 50 2 8 60 2 8 70 2 8 80 2 8 90 2 8 A0 2 8 B0 2 8 C0 2 8 D0 2 8 E0 2 8 F - 0 2 9 00 2 9 10 2 9 20 2 9 30 2 9 40 2 9 5 - 0 2 9 60 2 9 70 2 9 80 2 9 9 - 0 2 9 A0 2 9 B0 2 9 C0 2 9 D0 2 9 E0 2 9 F - 0 2 A 00 A 0 2 A 20 2 A 30 2 A 40 2 A 50 2 C 0 - 0 2 F E0 3 0 0 - 0 3 0 10 3 0 2 - 0 3 0 30 3 0 4 - 0 3 0 50 3 0 6 - 0 3 0 70 3 0 8 - 0 3 0 90 3 0 A - 0 3 0 B0 3 0 C0 3 0 D0 3 0 E0 3 0 F0 3 1 0 - 0 3 1 20 3 1 4 - 0 3 1 50 3 1 6 - 0 3 1 70 3 1 8 - 0 3 1 90 3 1 A - 0 3 1 B0 3 1 C - 0 3 1 D0 3 1 E - 0 3 1 F0 3 2 0 - 0 3 2 10 3 2 2 - 0 3 2 30 3 2 4 - 0 3 2 50 3 2 6 - 0 3 2 7

D e c i m a l6 4 1 - 6 4 26 4 3 - 6 4 46 4 6 4 6 4 6 4 6 4 6 5 6 5 6 5 6 5 6 5 6 5 5 - 6 5 66 5 6 5 6 5 6 6 6 6 1 - 6 6 26 6 6 6 6 6 6 6 6 6 6 6 6 7 6 7 1 - 6 7 26 7 6 7 6 7 6 7 6 7 7 0 4 - 7 6 67 6 8 - 7 6 97 7 0 - 7 7 17 7 2 - 7 7 37 7 4 - 7 7 57 7 6 - 7 7 77 7 8 - 7 7 97 8 7 8 7 8 7 8 7 8 4 - 7 8 57 8 8 - 7 8 97 9 0 - 7 9 17 9 2 - 7 9 37 9 4 - 7 9 57 9 6 - 7 9 77 9 8 - 7 9 98 0 0 - 8 0 18 0 2 - 8 0 38 0 4 - 8 0 58 0 6 - 8 0 7

D e s c r i p t i o nS t a r t o f B A S I C M e m o r yT o o B A S I C M e m o r yS e r i a l b u t i m e o u t f l a gC u r r e n t c o l o r c o d eC o l o r u n d e r c u r s o rS c r e e n m e m o r y p a g eM a s i z e o k e y b d b u f f e rR e p e a t a l k e y sR e p e a t s p e e d c o u n t e rR e p e a t d e l a y c o u n t e rK e y b o a r d S h i f t / C o n t r o l f l a gL a s t s h i f t p a t t e r nK e y b o a r d t a b l e s e t u p p o i n t e rK e y b o a r d s h i f t m o d e

s c r o l l e n a b l eR S - 2 3 2 c o n t r o l r e R S - 2 3 2 c o m m a n d r e B i t i m i n gR S - 2 3 2 s t a t u s

b i t s t s e n dR S - 2 3 2 s p e e d / c o d eR S - 2 3 2 r e c e i v e p o i n t e rR S - 2 3 2 i n p u t p o i n t e rR S - 2 3 2 t r a n s m i t p o i n t e rR S - 2 3 2 o u t p u t p o i n t e rI R s a v e d u r i n g t a p e I / C I ( N M I ) I n t e r r u p t C o n t r o lC I T i m e r c o n t r o l l o C I I n t e r r u p t L o C I T i m e r e n a b l e d f l a gS c r e e n r o m a r k e r( S p r i t e 1 1 E r r o r m e s s a g e l i n kB A S I C w a r m s t a r t l i n kC r u n c h B A S I C t o k e n s l i n kP r i n t t o k e n s l i n kS t a r t n e B A S I C c o d e l i n kG e a r i t h m e t i c e l e m e n t l i n kS Y A - r e g s a v eS Y X - r e g s a v eS Y Y - r e g s a v eS Y s t a t u s r e s a v eU S f u n c t i o n j u m pH a r d w a r e i n t e r r u p t v e c t o rB r e a k i n t e r r u p t v e c t o rN M i n t e r r u p t v e c t o rO P E N v e c t o rC L O S E v e c t o rS e t - i n p u t v e c t o rS e t - o u t p u t v e c t o rR e s t o r e I / v e c t o rI N P U T v e c t o rO u t p u t v e c t o r

( B 2 4 8 )( E A 3 1 )( F E 6 6 )( F E 4 7 )( F 3 4 A )( F 2 9 1 )( F 2 0 E )( F 2 5 0 )( F 3 3 3 )( F 1 5 7 )( F 1 C A )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 215/318

2 0 A p p e n d i x

C o m m o d o r e 6 M e m o r y M a c o n t i n u e dH e 0 3 2 8 - 0 3 2 90 3 2 A - 0 3 2 B0 3 2 C - 0 3 2 D0 3 2 E - 0 3 2 F0 3 3 0 - 0 3 3 10 3 3 2 - 0 3 3 30 3 3 C - 0 3 F B0 3 4 0 - 0 3 7 E0 3 8 0 - 0 3 B E0 3 C 0 - 0 3 F E0 4 0 0 - 0 7 F F0 8 0 0 - 9 F F F8 0 0 0 - 9 F F FA 0 0 0 - B F F FA O O O - B F F FC O O O - C F F FD 0 0 0 - D 0 2 ED 4 0 0 - D 4 1 CD 8 0 0 - D B F FD C O O - D C O F

D e c i m a l8 0 8 - 8 0 98 1 0 - 8 1 18 1 2 - 8 1 38 1 4 - 8 1 58 1 6 - 8 1 78 1 8 - 8 1 98 2 8 - 1 0 1 98 3 2 - 8 9 48 9 6 - 9 5 89 6 0 - 1 0 2 2

1 0 2 4 - 2 0 4 72 0 4 8 - 4 0 9 5 9

3 2 7 6 8 - 4 0 9 5 94 0 9 6 0 - 4 9 1 5 14 0 9 6 0 - 5 9 1 5 14 9 1 5 2 - 5 3 2 4 75 3 2 4 8 - 5 3 2 9 45 4 2 7 2 - 5 4 3 0 05 5 2 9 6 - 5 6 3 1 95 6 3 2 0 - 5 6 3 3 5

D D 0 0 - D D 0 F 5 6 5 7 6 - 5 6 5 9 1D 0 0 0 - D F F FE O O O - F F F FE O O O - F F F FF F 8 1 - F F F 5

F F C 6 -F F C 9 -F F C C -F F C F -F F D 2 -F F E 1F F E 4 -

5 3 2 4 8 - 5 3 2 9 45 7 3 4 4 - 6 5 5 3 55 7 3 4 4 - 6 5 5 3 56 5 4 0 9 - 6 5 5 2 5

S e I n p u t c h a n n e lS e O u t p u t c h a n n e lR e s t o r e d e f a u l t I / OI N P U TP R I N TT e s t S t o p k e G E

D e s c r i p t i o nT e s t - S T O P v e c t o rG E v e c t o rA b o r t I / v e c t o rW a r m s t a r t v e c t o rL O A D l i n kS A V E l i n kC a s s e t t e b u f f e r( S p r i t e 1 3 ( S p r i t e 1 4 ( S p r i t e 1 5 S c r e e n m e m o r yB A S I C R A m e m o r yA l t e r n a t e : R O p l u g - i n a r e aR O M : B A S I CA l t e r n a t e : R A R A m e m o r y , i n c l u d i n g a l t e r n a t eV i d e o C h i p ( 6 5 6 6 )S o u n d C h i p ( 6 5 8 1 S I D )C o l o r n y b b l e m e m o r yI n t e r f a c e c h i p 1 I R ( 6 5 2 6 C I A )I n t e r f a c e c h i p 2 N M ( 6 5 2 6 C I A )A l t e r n a t e : C h a r a c t e r s e R O M : O p e r a t i n g S y s t e mA l t e r n a t e : R A J u m p T a b l e , I n c l u d i n g :

c h a n n e l s

( F 6 E D )( F 1 3 E )( F 3 2 F )( F E 6 6 )( F 4 A 5 )( F 5 E D )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 216/318

$ 0 0 0 0

$ 0 0 0 1

S u m m a r y

P r o c e s s o r I / P o r t ( 6 5 1 0 )

I I O U T a p e

M o t o r

I T a p eS e n s e

O U T a p eW r i t e

O U D - R O MS w i t c h

O U E F R A M

S w i t c h

O U A B R A M

S w i t c h

2 0

D D R 0P

V o i c e$ D 4 0 0

$ D 4 0 1

$ D 4 0 2

$ D 4 0 3

$ D 4 0 4

$ D 4 0 5

$ D 4 0 6

V o i c e$ D 4 0 7

$ D 4 0 8

$ D 4 0 9

$ D 4 0 A

$ D 4 0 B

$ D 4 0 C

$ D 4 0 D

V o i c e$ D 4 0 E

$ D 4 0 F

$ D 4 1 0

$ D 4 1 1

$ D 4 1 2

$ D 4 1 3

$ D 4 1 4

S I ( 6 5 8 1 )

0

V o i c eN S E , P U L ,

A t t a c k2 m

S u s t a i ni

T y p e :S A W ,T i m e8 m L e v e l

F r e q u e n c y

P u l s e W i d t h

T R i D e c a y T i m e6 m 2 s e

R e l e a s e T i m e6 m 2 s e

K e

V o i c e V o i c e 2 V o i c e5 4 2 7 2 5 4 2 7 9 5 4 2 8 6

5 4 2 7 3 5 4 2 8 0 5 4 2 8 7

5 4 2 7 4 5 4 2 8 1 5 4 2 8 8

5 4 2 7 5 5 4 2 8 2 5 4 2 8 9

5 4 2 7 6 5 4 2 8 3 5 4 2 9 0

5 4 2 7 7 5 4 2 8 4 5 4 2 9 1

5 4 2 7 8 5 4 2 8 5 % 5 4 2 9 2V o i c e s ( w r i t e o n l y )

$ D 4 1 5

$ D 4 1 6

$ D 4 1 7

$ D 4 1 8 V o f f ,

0

F i l t e r F r e q u e n c yR e s o n a n c e

P a s s b a n d :H B L

F i l t e r V o i c e sV 3 V 2

M a s t e rV o l u m e

V

F i l t e r V o l u m e ( w r i t e o n l y )

P a d d l e ( A / D # 1

P a d d l e ( A / D # 2

N o i s e ( r a n d o m )

E n v e l o p e

S e n s e ( r e a d o n l y )

N o t e : S p e c i a l V o i c e F e a t u r e s( T E S T , R I N G M O D , S Y N C )a r o m i t t e d f r o m t h a b o v e d i a g r a m .

5 4 2 9 3

5 4 2 9 4

5 4 2 9 5

5 4 2 9 6

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 217/318

2 0 A p p e n d i x

C I ( I R Q ) ( 6 5 2 6 )

$ D C 0 0

$ D C 0 1

$ D C 0 2

$ D C 0 3

$ D C 0 4

$ D C 0 5

$ D C 0 6

$ D C 0 7

$ D C 0 D

$ D C 0 E

$ D C 0 F

S D D O O

$ D D 0 1

S D D 0 2

$ D D 0 3

$ D D 0 4

$ D D 0 5

$ D D 0 6

$ D D 0 7

$ D D 0 D

$ D D 0 E

$ D D 0 F

P a d d l e S e l lF i r e

J o y s t i c kR i g h t L e f t D o w n U

K e v b o a r d R o S e l e c t ( i n v e r t e d )

J o y s t i c kF i r e R i g h t L e f t D o w n U

K e y b o a r d C o l u m n R e a d

S F F - A I 1 O u t p u t

$ 0 0 - A l l I n p u t

T i m e r A

T i m e r

T a p eI n p u t

1

O n S h o tO n S h o t

O u M o d eO u M o d e

T i m e r I n t e r r u p t

T i m eP B O u

T i m eP B O u

T i m e rS t a r t

T i m e rS t a r t

S e r i a lI

D S I

C l o c kI

C T I

C I ( N M I ) ( 6 5 2 6 )S e r i a l

O U C l o c kO U D C D *

I

A T O U

R I I

R S - 2 3 2O U D T O U

V I I a d d r 1

R T O U

V I I a d d r 1 R S - 2 3 2

I

$ 3 F - S e r i a l

$ 0 0 - P . U . P . A l I n p u t o

T i m e r

T i m e r

$ 0 6 - R S - 2 3 I

R S - 2 3 2I

T i m e r I n t e r r u p t

1 1 1

1 1

T i m e rS t a r t

T i m e rS t a r t

P R 5 6 3 2 0

P R 5 6 3 2 1

D D R A 5 6 3 2 2

D D R B 6 5 3 2 3

T A 5 6 3 2 4

T A 5 6 3 2 5

T B 5 6 3 2 6

T B 5 6 3 2 7

I C 5 6 3 3 3

C R 5 6 3 3 4

C R 5 6 3 3 5

P R 5 6 5 7 6

P R 5 6 5 7 7

D D R A 5 6 5 7 8

D D R B 5 6 5 7 9

T A 5 6 5 8 0

T A 5 6 5 8 1

T B 5 6 5 8 2

T B 5 6 5 8 3

I C 5 6 5 8 9

C R 5 6 5 9 0

C R 5 6 5 9 1

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 218/318

S u m m a r y 2 0

V I D E O ( 6 5 6 6 )E X T .C O L O RM O D E

B I M A

D I S P L .E N A B L E

R O S E L E C T

R A S T E R R E G I S T E R

L I G H T P E N I N P U T

Y - S C R O L L5 3 2 6 5

5 3 2 6 6

5 3 2 6 7

5 3 2 6 8

R E S E T M U L T IC O L O R

C O S E L E C T

X - S C R O L L 5 3 2 7 0

I R I N T E R R U P T• S E N S E *

I N T E R R U P TE N A B L E - ^

L S S S B R S

L I G H T S P R I T E R A S T E RP E N C O L L I S I O N

C O L O R R E G I S T E R SE X T E R I O R

B A C K G R O U N D N o

B A C K G R O U N D N o

B A C K G R O U N D N o . 2

B A C K G R O U N D N o

S P R I T EM U L T I C O L O R N o

S P R I T EM U L T I C O L O R N o

5 3 2 7 2

5 3 2 7 3

5 3 2 7 4

5 3 2 8 0

5 3 2 8 1

5 3 2 8 2

5 3 2 8 3

5 3 2 8 4

5 3 2 8 5

5 3 2 8 6

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 219/318

2 0 A p p e n d i x

S P R I T E V I D E O

P O S I T I O N

[ ^ X ^ ] C O L O RS P R I T E N o —

7 6 1 X - P O S I T I O N H I G H

S P R I T E E N A B L E

Y - E X P A N D

B A C K G R O U N D P R I O R I T YM U L T I C O L O R

X - E X P A N DI N T E R R U P T : S P R I T E C O L L I S I O N

I N T E R R U P T : B A C K G R O U N DC O L L I S I O N

S P R I T E

5 3 2 4 8 .5 3 2 4 9 .

5 3 2 8 7

5 3 2 6 4

5 3 2 6 9

5 3 2 7 1

5 3 2 7 55 3 2 7 6

5 3 2 7 75 3 2 7 85 3 2 7 9

S P R I T E

. 5 3 2 6 2. 5 3 2 6 3

. . 5 3 2 9 4

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 220/318

E x p l o r i n g G r a p h i c s o t h C o m m o d o r e 6 P a u l F S c h a t z

T h C o m m o d o r e 6 4 h a s s o m e v e r y p o w e r f u l g r a p h i c s c a p a b i l i t i e s i n c l u d i n gh i g h - r e s o l u t i o n ( " b i t m a p " ) g r a p h i c s , s e v e r a l c o l o r d i s p l a y m o d e s , c h a r a c t e r st h a t y o c a r e d e f i n e , a n d m o v i n g c o l o r e d o b j e c t s c a l l e d s p r i t e s . D e s i g n i n ga n d p r o g r a m m i n g c o m p u t e r g r a p h i c s c a b c o m p l e x p r o c e s s , a n t h C o m m o d o r e 6 4 ' s f e a t u r e s c a n b e c o m b i n e d i s m a n y w a y s t h a t t h t a s k o e x p l a i n i n g a l t h o p t i o n s q u i c k l y b e c o m e s o v e r w h e l m i n g . M a k i n g i e v e nm o r e d i f f i c u l t i t h f a c t t h a t t h C o m m o d o r e 6 c o m e s o u o i t b o w i t h o u ta n g r a p h i c s c o m m a n d s i i t B A S I C .

U s i n g t h g r a p h i c s o t h C o m m o d o r e 6 r e q u i r e s m o r e f u n d a m e n t a lu n d e r s t a n d i n g o f j u s t h o t h c o m p u t e r w o r k s . T h i s c h a p t e r w i l l e x p l a i n i s i m p l e l a n g u a g e h o n u m b e r s s t o r e d i t h c o m p u t e r ' s m e m o r y a r t r a n sl a t e d i n t o p i c t u r e o t h v i d e o s c r e e n . Y o w i l l l e a r n s o m e t h i n g a b o u t t h r e es p e c i a l g r a p h i c s f e a t u r e s — s p r i t e s , p r o g r a m m a b l e c h a r a c t e r s , a n b i m a g r a p h i n g . E a c h w i l l b e x p l a i n e d a n d e m o n s t r a t e d w i t h s o m e s i m p l e p r og r a m s . W i t h w o r k i n g k n o w l e d g e o t h e s e f e a t u r e s , y o w i l l b a b l e t p r o g r a m s o m e i m p r e s s i v e p i c t u r e s .

2 0

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 221/318

2 0 A p p e n d i x

I I A l D o n e W i t h M i r r o r s ?T h k e t u n d e r s t a n d i n g t h g r a p h i c s i u n d e r s t a n d i n g h o n u m b e r s

i t h c o m p u t e r ' s m e m o r y a r u s e d t d e f i n e p i c t u r e . Y o w i l l h a v e t u n d e r s t a n d w h a t i m e a n t b t h t e r m b y t e . W h e n y o f i r s t t u r n o y o u rc o m p u t e r , o n l i n e o t h m e s s a g e w h i c h a p p e a r s o t h s c r e e n r e a d s :

R A S Y S T E M 3 f l R l l B Y T E S F R E ET h B Y T E S F R E E r e f e r s t t h n u m b e r o m e m o r y l o c a t i o n s , a l s o c a l l e d

r e g i s t e r s , t h c o m p u t e r h a f o s t o r i n g c h a r a c t e r s w h i c h m a k e u B A S I Cp r o g r a m . E a r l i e r i t h i s b o o k , b y t e s w e r e e q u a t e d w i t h c h a r a c t e r s . A n o n o 2 5 d i f f e r e n t c h a r a c t e r s c a n b e p l a c e d i n t o m e m o r y l o c a t i o n . T h e s ec h a r a c t e r s a r r e p r e s e n t e d b t h n u m b e r s t 2 5 5 . W h o n l y 2 5 c h a r a c t e r s ?W h n o m o r e ? O l e s s ? T h a n s w e r t o t h i s q u e s t i o n l i e s i h o t h c o m p u t e rs t o r e s n u m b e r s . E a c h m e m o r y l o c a t i o n c a n b e c o n s i d e r e d s e o f e i g h t s w i t c h e s ,n u m b e r e d t 7 w h i c h c a n b e t u r n e d o o o f f . I e a c h s w i t c h i a s s i g n e dn u m b e r , a s h o w n i F i g u r e 1 a n n u m b e r f r o m t 2 5 c a b r e p r e s e n t e db a d d i n g t h n u m b e r s o t h " o n " s w i t c h e s .S W I T C HN U M B E R 1 2 6 3 1

F i g u r e 1

T h c o n d i t i o n o t h s w i t c h e s c a n b e r e p r e s e n t e d b l ' a n 0 ' s , w i t hr e p r e s e n t i n g " o n " a n b e i n g " o f f . " T h s e r i e s o ' a n 0 ' i c a l l e d b i n a r yn u m b e r . I c a s t a n d f o m o r e c o n v e n t i o n a l d e c i m a l n u m b e r . ( T h e n u m b e r sw u s e e v e r y d a a r c a l l e d d e c i m a l s b e c a u s e t h e y u s t e d i f f e r e n t d i g i t s ,0 t h r o u g h 9 . I c o m p u t e r j a r g o n , t h e s e s w i t c h e s a r c a l l e d b i t s , a n b y t ei e i g h t o f t h e s e b i t s . F o e x a m p l e , t h n u m b e r 1 i r e p r e s e n t e d b s w i t c hf o u r t u r n e d o ( 1 a n a l t h o t h e r s w i t c h e s t u r n e d o f ( 0 ) .

S W I T C HO N / O F FN U M B E R 1 2 6 3 1

T h n u m b e r 1 2 i r e p r e s e n t e d w i t h s w i t c h e s z e r o a n s e v e n " o n , " a n s w i t c h e s s i x , f i v e , f o u r , t h r e e , t w o , a n o n " o f f . "

S W I T C HO N / O F FN U M B E R 1 2 6 3 1

T h l a r g e s t d e c i m a l n u m b e r t h a t c a b r e p r e s e n t e d b b y t e i 2 5 5 —a l e i g h t b i t s a r o n e , o " o . T a b l e g i v e s t h e i g h t - b i t b i n a r y n u m b e r sf o d e c i m a l n u m b e r s f r o m t 2 5 5 . T h i s w i l l b h a n d y r e f e r e n c e w h e np r o g r a m m i n g g r a p h i c s .

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 222/318

                           

        

         

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

                                          

               

                   

                                          

                                          

               

  

  

  

  

  

  

  

  

  

        

        

                                           

                                           

      

      

                                           

   

                                           

    

           

                                           

                                           

                 

   

  

  

  

  

           

                                             

                                             

                                             

                                             

                                             

 

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 223/318

2 1 A p p e n d i x

l e f t m o s t p i x e l o f s e o e i g h t p i x e l s i t h s a m e a b i n u m b e r o b y t e .W h e r e v e r a s w i t c h i t h b y t e i o n t h p i x e l i o n W h e r e v e r s w i t c h i o f f ,t h p i x e l i o f f . O n w a o l o o k i n g a t h b y t e i a i t h s w i t c h e s w e r ec o n t r o l l i n g r o o e i g h t l i g h t b u l b s . B p l a c i n g s e v e r a l r o w s o l i g h t b u l b sn e x t t o n a n o t h e r , p i c t u r e c a b c r e a t e d , j u s t l i k e t h e l a r g e e l e c t r i cb i l l b o a r d s i b a l l p a r k s .S p r i t e s , p r o g r a m m a b l e c h a r a c t e r s , a n b i m a g r a p h i c s a r a l s i m i l a ri t h a t t h i m a g e s a r m a d e f r o m r o w s o e i g h t p i x e l s d e f i n e d b t h c o n t e n t so m e m o r y l o c a t i o n s . T h g r a p h i c s f e a t u r e s d i f f e r i t h n u m b e r o m e m o r yl o c a t i o n s u s e d f o d i s p l a y i n g t h i m a g e a n i h o t h c o m p u t e r a r r a n g e st h r o w s o p i x e l s , e n t e n a n d / o r s i d e b s i d e .

W h o ' s P u l l i n g t h e S t r i n g s ?T h m e m o r y l o c a t i o n s a r u s e d f o c r e a t i n g a i m a g e , a n h o t h

i n f o r m a t i o n i d i s p l a y e d o t h e s c r e e n i d e t e r m i n e d b t h V i d e o I n t e r f a c eC o n t r o l l e r c h i p — t h e V I C c h i p . T h i s i t h s o p h i s t i c a t e d m i c r o c h i p i n s i d e t h eC o m m o d o r e 6 t h a t g e n e r a t e s t h v i d e o s i g n a l s . T h e V I C c h i p i n c r e a s e s t h ee f f i c i e n c y o t h c o m p u t e r i t e r m s o m e m o r y u t i l i z a t i o n a n p r o g r a m e e c u t i o n t i m e . M a n y o f t h e t a s k s p e r f o r m e d b t h V I C — s p r i t e s f o i n s t a n c e —c a b d o n e o n c o m p u t e r s w i t h c o m p l i c a t e d p r o g r a m s . B u p r o g r a m t h a td o e s w h a t t h V I d o e s w i t h s p r i t e s w i l l n e e d m e m o r y s p a c e a n r u s l o w e rt h a n m a k i n g a n c o n t r o l l i n g s p r i t e s w i t h c h i p .

T a n s w e r t h q u e s t i o n t h a t m i g h t a r i s e , t h i s c h i p n a m e d V I i n o t t h es a m e o n t h a t i i n s i d e C o m m o d o r e ' s w i l d l y s u c c e s s f u l c o m p u t e r , t h V I C -2 0 I i r e l a t e d , b u i n a m e o n l y . T h i s V I i m u c h , m u c h m o r e p o w e r f u lt h a n i t l i t t l e c o u s i n .

H o t h V I c h i p m a k e s i t p i c t u r e s i d e t e r m i n e d b w h a t ' s i n s i d e t h 4 m e m o r y l o c a t i o n s i n s i d e o f i t n u m b e r e d 5 3 2 4 8 t 5 3 2 9 4 . D r a m a t i c c h a n g e so t h s c r e e n c a n b e m a d e b c h a n g i n g t h v a l u e s i a n o t h e s e l o c a t i o n s .

S o m e o f t h e l o c a t i o n s a r g r o u p s o o n / o f f s w i t c h e s . F o e x a m p l e , l o c a t i o n5 3 2 6 9 c a n b c o n s i d e r e d e i g h t s w i t c h e s w h i c h t u r n o n a n d o f i n d i v i d u a ls p r i t e s . T h e r e a r a l s o s w i t c h e s f o c h a n g i n g g r a p h i c s m o d e s , s u c h a c h a ra c t e r , b i m a p , a n d e x t e n d e d b a c k g r o u n d c o l o r m o d e s . S t i l l o t h e r l o c a t i o n st e l l t h V I c h i p w h e r e v i d e o i n f o r m a t i o n i s t o r e d i t h c o m p u t e r ' s m e m o r y .B e f o r e c o n t i n u i n g , y o m u s t k n o w t h a t t h e V I c h i p h a s o m e l i m i t a t i o n s .T h e m o s t i m p o r t a n t o n i t h a t i c a o n l y l o o k a 1 6 , 3 8 4 ( 1 6 K ) m e m o r yl o c a t i o n s . A n v i d e o i n f o r m a t i o n m u s t b w i t h i n t h i s 1 6 b l o c k o m e m o r y .W h e n t h C o m m o d o r e 6 i t u r n e d o n t h V I c h i p i s e s t h a t t h e 1 6 b l o c k o m e m o r y i l o o k s a e x t e n d s f r o m l o c a t i o n t l o c a t i o n 1 6 3 8 3 . T h i sw i l l p l a c e s o m e c o n t r a i n t s o n w h e r e t h v i d e o d i s p l a y i n f o r m a t i o n i s t o r e ds i n c e c e r t a i n a r e a s o t h i s m e m o r y a r u s e d b t h c o m p u t e r f o o t h e r t a s k s .M o s t n o t a b l e a r l o c a t i o n s t 8 2 w h i c h a r u s e d b B A S I C a n t h o e r a t i n g s y s t e m f o s t o r i n g p o i n t e r s a n o t h e r n u m b e r s . A n o t h e r p o t e n t i a lc o n f l i c t i t h e s e c t i o n o m e m o r y w h e r e B A S I C p r o g r a m i s t o r e d . T h c o m p u t e r s t a r t s s t o r i n g B A S I C p r o g r a m a l o c a t i o n 2 0 4 8 a n c o n t i n u e s o

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 224/318

W h o ' s P u l l i n g t h S t r i n g s ? 2 1

u p M a n y p r o g r a m s a r s h o r t e n o u g h s o t h a t t h e r e i r o o m l e f t a t h e n o t h f i r s t 1 6 b l o c k f o s t o r i n g v i d e o d i s p l a y i n f o r m a t i o n . H o w e v e r , a l o n gp r o g r a m c a c o n s u m e a l o t h m e m o r y f r o m l o c a t i o n 2 0 4 8 t 1 6 3 8 3 . I t h i sc a s e , i i p o s s i b l e t t e l l t h V I c h i p t g e i t v i d e o i n f o r m a t i o n f r o md i f f e r e n t 1 6 b l o c k o m e m o r y . S i n c e t h i s i n t r o d u c t i o n i g o i n g t o t r y t k e e pt h i n g s s i m p l e , t h e t o p i c o f s w i t c h i n g t h v i d e o i n f o r m a t i o n t l o c a t i o n s o t h e rt h a n t 1 6 3 8 3 i g o i n g t b a v o i d e d .

H o D T a l k t V I C ?T h B A S I C w o r d s n e e d e d f o a l t e r i n g t h c o n t e n t s o f t h e V i d e o I n t e r f a c e

C o n t r o l l e r c h i p a r P E E K , P O K E , A N D , O R , a n d N O T . U n l e s s y o h a v e b e e np r o g r a m m i n g f o w h i l e , t h e s e m a b u n f a m i l i a r t y o u .

P E E K i u s e d f o l o o k i n g a t h c o n t e n t s o s p e c i f i c m e m o r y l o c a t i o n .T r t h i s :

P R I N T P E E K ( 5 3 E 7 E )T h c o m p u t e r r e s p o n d s b P R I N T i n g t h n u m b e r 2 1 T h c o n t e n t s o

m e m o r y l o c a t i o n 5 3 2 7 2 c o n t r o l w h e r e t h c h a r a c t e r s e i l o c a t e d . S w i t c h t t h o t h e r b u i l t - i n c h a r a c t e r s e b p r e s s i n g t h C O M M O D O R E k e w h i l eh o l d i n g t h S H I F T k e d o w n . P E E K a l o c a t i o n 5 3 2 7 2 a g a i n . T h e r e ' s d i f e r e n t n u m b e r i t h e r e n o w . T h e c o m p u t e r i g e t t i n g t h e c h a r a c t e r s f r o md i f f e r e n t s e c t i o n o m e m o r y .

P O K E i u s e d f o p u t t i n g n u m b e r s i n t o s p e c i f i c m e m o r y l o c a t i o n s . A o t h e r w a o c h a n g i n g t h c h a r a c t e r s e i w i t h t h P O K E c o m m a n d .

P O K E 5 3 5 7 2 , E W h i c h c h a r a c t e r s e i t h c o m p u t e r u s i n g ? C h a n g e t h c h a r a c t e r s e

a g a i n w i t hP O K E 5 3 E 7 E , E O n l y w h o l e n u m b e r s b e t w e e n a n 2 5 c a n b e P O K E d i n t o m e m o r y

l o c a t i o n s . A n o t h e r w i l l p r o d u c e a I L L E G A L Q U A N T I T Y E R R O R m e s s a g e .U n f o r t u n a t e l y , t h e x p l a n a t i o n o t h w o r d s A N D , O R a n N O i n o

a s t r a i g h t f o r w a r d a s t h a t f o P E E K a n P O K E . T h e s e w o r d s a r c a l l e d l o g i c a lo p e r a t o r s w h i c h , i g r a p h i c s , a r u s e ; d f o t u r n i n g o a n o f s p e c i f i c s w i t c h e s ,o b i t s , w i t h o u t c h a n g i n g a n y o t h o t h e r b i t s . L e t ' s l o o k a h o t h e y a r u s e d . O i u s e d f o s e t t i n g b i t s . F o r e x a m p l e , t t u r n o b i o f l o c a t i o n5 3 2 7 2 w i t h o u t a f f e c t i n g a n o t h o t h e r b i t s , w u s t h i s c o m m a n d :

P O K E 5 3 E 7 E , P E E K ( 5 3 E 7 S ) O P E E K g e t s t h e c h a r a c t e r s t o r e d a l o c a t i o n 5 3 2 7 2 . T h n u m b e r f o l l o w i n g

O d e t e r m i n e s w h i c h b i t s a r s e t . O s e t s b i t i t h b i n a r y n u m b e r t o n e . P O K E p u t s t h n e n u m b e r b a c k i n t o l o c a t i o n 5 3 2 7 2 .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 225/318

2 1 A p p e n d i x

S W I T C HO N / O F FN U M B E R 1 2 6 3 1

T h a t ' s t h n u m b e r 2 a b o v e . S i n c e t h o n l y " o n " s w i t c h i n u m b e r 2 i s e t s t h a t b i i a n n u m b e r i i u s e d w i t h . M o r e t h a n o n b i c a n b e s e t a tt i m e . F o e x a m p l e , O 1 2 w i l l s e b o t h b i a n b i o b y t e t l ' s .S W I T C HO N / O F FN U M B E R 1 2 6 3 1

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

B i t s a r c l e a r e d u s i n g a c o m b i n a t i o n o t h A N a n N O c o m m a n d s .F o e x a m p l e , t c l e a r b i o l o c a t i o n 5 3 2 7 2 , e n t e r t h e c o m m a n d

P O K E 5 3 E 7 E , P E E K ( 5 3 2 7 E ) f i N D N O T h P E E K c o m m a n d g e t s t h e c h a r a c t e r . B i i c l e a r e d w i t h t h A N N O

c o m m a n d , a n t h n e c h a r a c t e r i p u b a c k i n t o l o c a t i o n 5 3 2 7 2 .

S p r i t e sO n o t h m o s t e x c i t i n g f e a t u r e s o t h C o m m o d o r e 6 i i t s p r i t e

g r a p h i c s . S p r i t e s a r p i c t u r e s y o c r e a t e w h i c h t h c o m p u t e r t r e a t s s e p ar a t e l y f r o m t h r e s t o i t g r a p h i c s . T h e s e l i t t l e p i c t u r e s a r e d e f i n e d i 6 b y t e s o m e m o r y a n c a b m o v e d a r o u n d t h v i d e o s c r e e n w i t h B A S I Cp r o g r a m m i n g c o m m a n d s . B p l a c i n g n u m b e r s i n t o s p e c i f i c m e m o r y l o c at i o n s i t h V I c h i p , u t e i g h t o b j e c t s c a b m a d e t a p p e a r a n d i s a p p e a r ,c h a n g e c o l o r a n s i z e , a n c h a n g e s h a p e a n l o c a t i o n . T h i s m a k e s i p o s s i b l et g e s m o o t h a n d i m p r e s s i v e a n i m a t i o n i B A S I C p r o g r a m .

s p r i t e p i c t u r e i d e f i n e d b t h c o n t e n t s o a b l o c k o 6 m e m o r yl o c a t i o n s . T h f i r s t r o o t h s p r i t e i d e f i n e d b t h c o n t e n t s o t h f i r s tt h r e e m e m o r y l o c a t i o n s , t h s e c o n d r o b t h c o n t e n t s o f t h e n e x t t h r e em e m o r y l o c a t i o n s , a n s o n s p r i t e h a 2 r o w s . S i n c e e a c h m e m o r yl o c a t i o n c o n t r o l s e i g h t p i x e l s , a n s p r i t e r o c o n t a i n s 2 p i x e l s , t h e r e s ol u t i o n o f s p r i t e i 2 d o t s a c r o s s b 2 1 d o t s d e e p . F i g u r e s h o w s t h a r r a n g e m e n t o c h a r a c t e r s , o b y t e s , i t h m e m o r y l o c a t i o n s .B Y T E B Y T E B Y T EB Y T E B Y T E B Y T EB Y T E B Y T E B Y T E

B Y T E 5 B Y T E 5 B Y T E 5 B Y T E 5 B Y T E 5 B Y T E 6 B Y T E 6 B Y T E 6 B Y T E 6

F i g u r e 2 M e m o r y M a o S p r i t e .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 226/318

S p r i t e s 2 1

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

1 D e s i g n s p r i t e p i c t u r e .2 C o n v e r t t h s p r i t e p i c t u r e i n t o n u m b e r s .3 S t o r e t h n u m b e r s i t h c o m p u t e r ' s m e m o r y .4 T e l l t h c o m p u t e r w h e r e t h s p r i t e p i c t u r e n u m b e r s a r s t o r e d .5 D e f i n e t h e c o l o r o f t h e s p r i t e .6 T e l l t h c o m p u t e r w h e r e t h s p r i t e s h o u l d b e o t h s c r e e n .7 T u r n o n t h s p r i t e .H o d y o g o a b o u t d e t e r m i n i n g w h i c h n u m b e r s a r r e q u i r e d t p r

d u c e d e s i r e d s p r i t e i m a g e ? F i r s t , y o n e e d t h p r o p e r t o o l s : a s h e e t o g r a p hp a p e r , p e n c i l , a n a e r a s e r — a B I e r a s e r . G r a p h p a p e r w i t h e i g h t t t e s q u a r e s p e r i n c h i g o o d s i z e b e c a u s e t h e r e i e n o u g h r o o m t w r i t e n u m b e r sb e t w e e n t h l i n e s . N e x t , o u t l i n e a a r e a 2 s q u a r e s h o r i z o n t a l l y a n 2 s q u a r e sv e r t i c a l l y o t h g r a p h p a p e r . T h 5 0 s q u a r e s w i t h i n t h o u t l i n e d a r e ar e p r e s e n t t h 5 0 p i x e l s ( 6 b y t e s ) t h a t m a k e u t h s p r i t e i m a g e .

C r e a t e t h s p r i t e p i c t u r e b f i l l i n g i t h e s q u a r e s . U s u a l l y t h e r e w i l l b l o t s o r e d r a w i n g , s m a r k l i g h t l y a f i r s t . A f t e r y o a r s a t i s f i e d w i t h t h i m a g e , y o a r r e a d y t f i g u r e o u t h n u m b e r s t h c o m p u t e r w i l l n e e d t d i s p l a y t h e s p r i t e . T h g r i d i d i v i d e d i n t o t h r e e v e r t i c a l c o l u m n s o f e i g h ts q u a r e s e a c h . T h c o l u m n s c o r r e s p o n d t t h c o l u m n s o b y t e s i F i g u r e 2 T h b i n a r y n u m b e r s o e a c h s e o e i g h t p i x e l s a r f o u n d b s u b s t i t u t i n g ' f o f i l l e d s q u a r e s a n 0 ' f o e m p t y s q u a r e s . Y o c a l o o k u t h d e c i m a ln u m b e r s i T a b l e 1

s p e c i f i c e x a m p l e o c r e a t i n g s p r i t e f r o m n u m b e r s i i l l u s t r a t e d w i t ht h h o r s e - s h a p e d s p r i t e i F i g u r e 3 A a s t e r i s k r e p r e s e n t s a " o n " p i x e l a n

p e r i o d r e p r e s e n t s a " o f f " p i x e l .

0 0 0 0 0 0 0

0 0 0 1 0 6 0 1 2 0 2 5 1 2 5

0 1 2 7 , 2 4 3 2 5 5 , 2 4 3 2 5 5 , 2 4 4 2 5 5 , 2 4 0 2 5 5 , 2 4 0 2 2 4 , 6 1 9 6 2 2 1 9 2 ,2 1 2 8 ,2 1 2 8 ,

1 2 1 2 8 ,0 1 2 8 ,0 1 9 2 ,0 6 4

1 1

* *

* * *

*

* * * * * * ** * * * * * * ** * * * * * * ** * * * * * * ** * * * * * * ** * . *

*

*

* * * * * *

# * * * * * ** * * * * * * ** * * * * * * * * * # * * * * . . . .* * * * . . . .* * * * # # * * * *m # * * * * #

* *

F i g u r e 3 H o r s e S p r i t e .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 227/318

2 1 A p p e n d i x

I y o l o o k c l o s e l y a n s t u d y t h e x a m p l e , y o u ' l l s e e t h a t t h n u m b e r si t h h o r s e s p r i t e d i n d e e d d e s c r i b e t h e p i c t u r e . F o r e x a m p l e , t h l a s tm e m o r y l o c a t i o n i t h t h i r d r o s h o w s t h a t b i a n b i a r o a n t h r e s t o t h b i t s a r o f f . T h i s c o r r e s p o n d s t d e c i m a l n u m b e r s e i g h t a n f o u rw h i c h a d d u t t w e l v e .

N o w e ' v e g o t o f i n d 6 m e m o r y l o c a t i o n s i t h c o m p u t e r ' s m e m o r yw h e r e t h s p r i t e d a t a c a n b e s t o r e d . T h V I c h i p d i v i d e s t h e 1 6 g r a p h i c sm e m o r y b l o c k i n t o 2 5 s p r i t e m e m o r y b l o c k s . T h b l o c k s a c t u a l l y c o n t a i n6 l o c a t i o n s b e c a u s e i i e a s i e r f o t h c o m p u t e r t t h i n k o t h e m t h a t w a y .T h l a s t m e m o r y l o c a t i o n i s p r i t e d a t a b l o c k i n e v e r u s e d . T h e s e s p r i t eb l o c k s a r n u m b e r e d t 2 5 5 . Y o m u s t b c a r e f u l t h a t n o n e o t h b l o c k so v e r l a p o t h e r g r a p h i c s d a t a t h a t y o u ' l l l e a r n a b o u t , l i k e s c r e e n s , c h a r a c t e rs e t s , a n b i m a p s .

T h n u m b e r o f t h e f i r s t m e m o r y l o c a t i o n i a n s p r i t e b l o c k i a l w a y sm u l t i p l e o t h n u m b e r 6 4 ( L o c a t i o n s 6 4 1 2 8 , 1 9 2 , e t c . ) I y o a r n o u s i n g

m o r e t h a n t h r e e s p r i t e s , a c o n v e n i e n t p l a c e t s t o r e s p r i t e p i c t u r e s i i a a r e a u s e d b t h c a s s e t t e r e c o r d e r , c a l l e d t h e c a s s e t t e b u f f e r . I i l o c a t e d i m e m o r y l o c a t i o n s 8 2 t 1 0 2 3 . T h s p r i t e b l o c k s i n t h i s b u f f e r a r e c a l l e dn u m b e r 1 3 ( l o c a t i o n s 8 3 t o 8 9 5 ) , n u m b e r 1 ( l o c a t i o n s 8 9 t 9 5 9 ) , a n n u m b e r 1 5 ( l o c a t i o n s 9 6 t 1 0 2 3 ) .

T h i s l i m i t a t i o n o f t h r e e s p r i t e d a t a b l o c k s d o e s n o m e a n t h a t t h n u m b e ro s p r i t e s i l i m i t e d t o t h r e e . T h e r e c a n s t i l l b u t e i g h t s p r i t e s , b u t o n l yt h r e e d i f f e r e n t s p r i t e s h a p e s . I m o r e t h a n t h r e e d i f f e r e n t s p r i t e s h a p e s a r u s e d i p r o g r a m , i i n e c e s s a r y t m o v e s p e c i a l p o i n t e r s a n r e s e r v e R A s p a c e a t h e n o t h g r a p h i c s b l o c k , o m o v e t h p l a c e w h e r e B A S I Cp r o g r a m s a r s t o r e d . W e ' l l l e a v e t h a t f o n o w , a n t a k e i u a g a i n l a t e r ,w h e n w t a l k a b o u t p r o g r a m m a b l e c h a r a c t e r s a n b i m a p s .

T h n e x t s t e p a f t e r d e s i g n i n g t h s p r i t e a n d e c i d i n g w h e r e t p l a c e i i m e m o r y i t w r i t e a f e p r o g r a m l i n e s t h a t R E A D a n s t o r e t h D A T Ai t h s e l e c t e d l o c a t i o n s . T h e s e l i n e s w i l l s t o r e t h n u m b e r s f o t h h o r s es p r i t e f r o m t h D A T A s t a t e m e n t s i n t o s p r i t e b l o c k 1 3

1 D R E A D S B I S B < D T H E N 1 D D D1 1 S S B * t 41 E F O T b E R E A D S 1 3 P O K E S S I S D N E X T1 4 G O T O 1 D 1 5 D A T A 1 l b D D A T A D , D 0 D , D , 0 D , D , I 1 7 D A T A D , D , b E D , D , l E b , D , D , E 5 i f l D D A T A D , 1 , E 5 1 , 1 1 E 7 , E 4 1 , 3 E 5 5 , E 1 R 0 D A T A 3 , E 5 5 , E 4 D , A E 5 5 , E 5 5 , D E 5 5 , E 4 E D D A T A D 2 2 4 , b D 1 R b E D E 1 R 2 , I E 1 0 D A T A E , l E f l , I D E l E f l , A I E l E f l ,E E O D A T A D , l E f l , D , D , I R E , D , D , b 4

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 228/318

S p r i t e s 2 1

D A T A - 1 D D D R E M : S T A R T P R O G R A ML i n e 1 0 0 R E A D s t h f i r s t D A T A s t a t e m e n t . T h i s i t h s p r i t e b l o c k n u m b e r

a n i u s e d t c a l c u l a t e t h e n u m b e r o i t s f i r s t m e m o r y l o c a t i o n ( l i n e 1 1 0 ) .L i n e s 1 2 a n 1 3 R E A D t h n e x t 6 n u m b e r s f r o m t h D A T A s t a t e m e n t sa n s t o r e t h e m i 6 3 c o n s e c u t i v e m e m o r y l o c a t i o n s , s t a r t i n g a t h e l o c a t i o nc a l c u l a t e d i s t a t e m e n t 1 1 0 , l o c a t i o n 8 3 2 .

A f t e r 6 n u m b e r s a r R E A D , t h c o m p u t e r i t o l d b l i n e 1 4 t g b a c kt o l i n e 1 0 w h e r e i R E A D s t h n u m b e r i t h D A T A s t a t e m e n t f o l l o w i n g t h s p r i t e d a t a . I t h i s i a n o t h e r s p r i t e b l o c k n u m b e r , t h p r o g r a m c a l c u l a t e ss t a r t i n g l o c a t i o n f o a n o t h e r s p r i t e d a t a b l o c k . I t h e n R E A D s a n s t o r e s t h n e x t 6 3 n u m b e r s i t h a t d a t a b l o c k . I t h n u m b e r s t a t e m e n t 1 0 R E A D s i

n e g a t i v e n u m b e r , t h p r o g r a m b r a n c h e s t t h n e x t p a r t o t h p r o g r a m .T h n e g a t i v e n u m b e r i w a t t e l l t h p r o g r a m t h e r e i n m o r e s p r i t ed a t a t R E A D .

T h V I c h i p h a t k n o w w h i c h d a t a b l o c k t u s f o d r a w i n g s p r i t e .T h C o m m o d o r e 6 u s e s t h l a s t e i g h t m e m o r y l o c a t i o n s o s c r e e n R A m e m o r y a p o i n t e r s t t h s p r i t e b l o c k s . T h s p r i t e b l o c k p o i n t e r s f o r s p r i t e s

t a r l o c a t i o n s 2 0 4 0 t 2 0 4 7 , r e s p e c t i v e l y . C o n t i n u i n g w i t h t h h o r s es p r i t e p r o g r a m , s p r i t e s 0 - c a b t o l d t o a p p e a r a h o r s e s w i t h t h s t a t em e n t s

1 D 1 D F O T 1 D E D P O K E 2 D 4 D I 1 3 N E X TI y o n o t i c e , w c a n h a v e m o r e t h a n o n s p r i t e , e v e n t h o u g h o n l y o n

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

t i o n s 5 3 2 8 7 t 5 3 2 9 4 . T h e s e c o n t r o l t h e c o l o r s o f t h e e i g h t s p r i t e s n u m b e r e dt 7

1 D 3 0 P O K E 5 3 2 6 7 , D R E S P R I T E B L A C K1 D 4 D P O K E 5 3 5 3 3 , 1 R E S P R I T E W H I T E1 D 5 D P O K E S 3 2 f l q , * \ R E S P R I T E B R O W NI D b D P O K E 5 3 E q D , I E R E S P R I T E M E G R A YE i g h t s p r i t e s n u m b e r e d t a r t u r n e d o o o f b s e t t i n g ( l ' s ) o

c l e a r i n g ( 0 ' s ) t h c o r r e s p o n d i n g b i t s i l o c a t i o n 5 3 2 6 9 . B i t u r n s o s p r i t e0 b i t u r n s o s p r i t e 1 e t c . F o r e x a m p l e , t t u r n o s p r i t e 1 t h n u m b e r

( 0 0 0 0 0 0 1 0 ) i p l a c e d i l o c a t i o n 5 3 2 6 9 . T a b l e i a g a i n u s e f u l f o d e t e rm i n i n g t h d e c i m a l n u m b e r t b P O K E d i l o c a t i o n 5 3 2 6 9 . U t e i g h ts p r i t e s c a b t u r n e d o a t h s a m e t i m e . H e r e ' s w h a t y o u ' d d t t u r n o f o u r s p r i t e s :

1 D 7 D P O K E 5 3 5 ^ , 1 5 R E T U R N O S P R I T E ST h e m o s t c o m p l i c a t e d a s p e c t o u s i n g t h s p r i t e s i p l a c i n g t h e m a

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 . E a c h s p r i t e u s e s t w m e m o r y l o c a t i o n s p l u sp a r t o t h i r d m e m o r y l o c a t i o n t d e f i n e i t p o s i t i o n o t h d i s p l a y . C o p l i c a t i n g t h i n g s e v e n m o r e , t h v i d e o " m a p " o n w h i c h t h s p r i t e s a r d i s -

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 229/318

2 1 A p p e n d i x 2

p l a y e d i l a r g e r t h a n t h s c r e e n ! ( T h i s w a y , s p r i t e s c a b s m o o t h l y m o v e do n t o t h s c r e e n f r o m t h e d g e s , b e h i n d t h s c r e e n b o r d e r . )

T h u p p e r l e f t c o r n e r o v i s u a l s p r i t e b l o c k i u s e d f o i t p o s i t i o n o t h s c r e e n . T h a v e f u l l s p r i t e a p p e a r o t h s c r e e n , t h v e r t i c a l p o s i t i o nm u s t b 5 o r g r e a t e r b u n o g r e a t e r t h a n 2 2 9 . T h h o r i z o n t a l p o s i t i o nn u m b e r m u s t b e 2 4 o g r e a t e r b u n o g r e a t e r t h a n 3 2 0 . T h V I r e g i s t e r sw h i c h d e f i n e t h e p o s i t i o n s a r g i v e n i T a b l e 2

T A B L E 2 S p r i t e P o s i t i o n R e g i s t e r sS p r i t e V e r t i c a l P o s i t i o n

5 3 2 4 95 3 2 5 15 3 2 5 35 3 2 5 55 3 2 5 75 3 2 5 95 3 2 6 15 3 2 6 3

H o r i z o n t a l P o s i t i o n5 3 2 4 8 b i o 5 3 2 6 45 3 2 5 0 4 b i o 5 3 2 6 45 3 2 5 2 b i 2 o 5 3 2 6 45 3 2 5 4 b i o 5 3 2 6 45 3 2 5 6 b i o 5 3 2 6 45 3 2 5 8 b i 5 o 5 3 2 6 45 3 2 6 0 b i o 5 3 2 6 45 3 2 6 2 b i o 5 3 2 6 4

S i n c e t h v e r t i c a l p o s i t i o n i n e v e r g r e a t e r t h a n 2 5 5 o n l y o n r e g i s t e rp e s p r i t e i n e e d e d f o t h i s . H o w e v e r , t h h o r i z o n t a l p o s i t i o n d o e s e x c e e d2 5 a n s e c o n d m e m o r y l o c a t i o n i n e e d e d t r e p r e s e n t n u m b e r s g r e a t e rt h a n 2 5 5 . T h e x t r a n u m b e r i n e v e r g o i n g t b m o r e t h a n 1 s b i t s i m e m o r y l o c a t i o n 5 3 2 6 4 a r u s e d t i n d i c a t e t h a t 2 5 n e e d s t b a d d e d t t h n u m b e r i s p r i t e ' s h o r i z o n t a l p o s i t i o n m e m o r y l o c a t i o n . T h i s g e t s t r i c k y .B u s i n g t h e e x t r a b i t , n u m b e r s f o t h e h o r i z o n t a l p o s i t i o n c a b a l a r g ea 5 1 1 . ( Y o u w o n ' t s e e t h e s p r i t e i t h h o r i z o n t a l p o s i t i o n n u m b e r i m o r et h a n 3 4 4 , t h o u g h . ) T r e m o v e s o m e o t h e c o n f u s i o n , t h h o r i z o n t a l p o s i t i o n so t h s p r i t e s i n o u f i r s t e x a m p l e w i l l n o b g r e a t e r t h a n 2 5 5 . A d t h f o l l o w i n g c o m m a n d s t t h p r o g r a m t p o s i t i o n t h e h o r s e s a r o u n d t h s c r e e n .

I D f l D P O K E 5 3 5 4 f l , 1 5 P O K E 5 3 5 4 R , b D R E S P R I T EP O S I T I O N

l D ^ D P O K E 5 3 5 5 0 , i b D : P O K E 5 3 5 5 1 , 1 5 D : R E S P R I T EP O S I T I O N

H D P O K E 5 3 5 5 5 , 5 5 5 : P O K E 5 3 5 5 3 , t t < = l : R E S P R I T EP O S I T I O N

H I P O K E 5 3 5 5 4 , 1 D D : P O K E 5 3 5 5 5 , 5 3 5 : R E S P R I T EP O S I T I O N

1 1 5 D P O K E 5 3 5 f l l , 1 3 R E L I G H T G R E E N S C R E E N1 1 3 D P R I N T » [ C L R ] »

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 230/318

S p r i t e s 2 1

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

A i n t e r e s t i n g e x p e r i m e n t i t p o s i t i o n t h e s p r i t e s s t h a t t h e y o v e r l a po n a n o t h e r b v a r i o u s a m o u n t s . N o t i c e t h a t i s p r i t e 0 t h b l a c k h o r s e ,o v e r l a p s a n o t h o t h e r s p r i t e s , i i s p r i t e w h i c h i s e e n i i t e n t i r e t y .S i m i l a r l y , s p r i t e 1 t h w h i t e h o r s e , h a p r i o r i t y o v e r s p r i t e s 2 - 7 . T h i s r a n k i n gc o n t i n u e s u n t i l s p r i t e w h i c h a p p e a r s b e h i n d a l t h o t h e r s p r i t e s .

T r l i s t i n g t h p r o g r a m w h i l e t h s p r i t e s a r s t i l l o t h s c r e e n . N o t i c et h a t t h e c h a r a c t e r s a p p e a r b e h i n d t h s p r i t e s . T h p r i o r i t y o t h s p r i t e sr e l a t i v e t o t h c h a r a c t e r s ( o f o r e g r o u n d o b i m a p ) i d e t e r m i n e d b t h c o n t e n t s o l o c a t i o n 5 3 2 7 5 . T h i s i a n o t h e r o f t h o s e r e g i s t e r s w h e r e e a c h b i s e l e c t s t h m o d e o t h c o r r e s p o n d i n g s p r i t e . I b i i s e t t o 1 t h c o r r es p o n d i n g s p r i t e w i l l a p p e a r b e h i n d c h a r a c t e r s . c l e a r b i a s s i g n s t h e s p r i t ep r i o r i t y o v e r c h a r a c t e r s . E n t e r P O K E 5 3 2 7 5 , 1 5 N o a l t h s p r i t e s a p p e a ri b a c k o f t h e c h a r a c t e r s o f t h e l i s t i n g . I t h v a l u e P O K E d i 3 s p r i t e s a n

a p p e a r b e h i n d t h e c h a r a c t e r s a n s p r i t e s a n a p p e a r i f r o n t o t h c h a r a c t e r s .

I t h e r e i c o n f l i c t o p r i o r i t i e s , t h s p r i t e o v e r s p r i t e p r i o r i t y t a k e sp r e c e d e n c e . F o r e x a m p l e , i s p r i t e i d e f i n e d a h a v i n g p r i o r i t y o v e r c h a ra c t e r s a n s p r i t e i d e f i n e d t a p p e a r b e h i n d c h a r a c t e r s , a o v e r l a p o a l t h r e e w i l l r e s u l t i n t h c h a r a c t e r s a p p e a r i n g i f r o n t o f s p r i t e 0 I s p r i t ei m o v e d a w a y , t h c h a r a c t e r s w i l l d i s a p p e a r , l e a v i n g s p r i t e 1 I s p r i t e i n o m o v e d a w a y , t h c h a r a c t e r s w i l l r e a p p e a r .

T h d i m e n s i o n s o t h s p r i t e s c a n b e e x p a n d e d b o t h h o r i z o n t a l l y a n v e r t i c a l l y . b i t s e t t i l o c a t i o n 5 3 2 7 1 e x p a n d s t h c o r r e s p o n d i n g s p r i t ev e r t i c a l l y . b i t s e t t i l o c a t i o n 5 3 2 7 7 e x p a n d s t h c o r r e s p o n d i n g s p r i t eh o r i z o n t a l l y . T r t h f o l l o w i n g e x p e r i m e n t . M o d i f y s t a t e m e n t s 1 0 8 0 , 1 0 9 0 ,1 1 0 0 , 1 1 1 0 i t h h o r s e s p r i t e p r o g r a m .

I D f l D P O K E 5 3 2 4 f i , 3 D P O K E 5 3 2 4 R , 7 D R E S P R I T EP O S I T I O N

1 D R D P O K E 5 3 2 5 D , 2 D D : P O K E 5 3 2 5 1 , 7 D R E S P R I T EP O S I T I O N

H D P O K E 5 3 2 5 2 , 3 D P O K E 5 3 5 5 3 , 1 7 D : R E S P R I T EP O S I T I O N

H I P O K E 5 3 2 5 4 , 2 D D : P O K E 5 3 2 5 5 , 1 7 D : R E S P R I T EP O S I T I O NR U t h p r o g r a m a n t h e f o u r h o r s e s a p p e a r o t h s c r e e n . I n t h e d i r e c t

m o d e e n t e r P O K E 5 3 2 7 1 , 1 0 P O K E 5 3 2 7 7 , 1 2 T h s p r i t e s w i l l c h a n g e i a p p e a r a n c e . S p r i t e i u n c h a n g e d f r o m b e f o r e , s p r i t e i d o u b l e d i h e i g h t ,s p r i t e i d o u b l e d i w i d t h , a n s p r i t e i d o u b l e d i b o t h w i d t h a n h e i g h t .

S f a w h a v e k e p t t h i n g s s i m p l e b n o t u s i n g h o r i z o n t a l p o s i t i o ng r e a t e r t h a n 2 5 5 . H o w e v e r , a f t e r y o s t a r t t u s s p r i t e s y o w i l l n o w a n tt b l i m i t e d t t h i s r a n g e . T h f o l l o w i n g p r o g r a m d e m o n s t r a t e s h o t m o v e

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 231/318

2 1 A p p e n d i x

h o r s e . E a c h t i m e t h s p r i t e i m o v e d , s p r i t e d a t a b l o c k p o i n t e r , m e m o r yl o c a t i o n 2 0 4 0 , i c h a n g e d . T h e p r o g r a m t e s t s t s e i t h l a s t d a t a b l o c k i b e i n g u s e d . I i t i s , s p r i t e d a t a b l o c k p o i n t e r i i n i t i a l i z e d t o t h f i r s t b l o c ko f t h e s e t .

T m o v e s p r i t e b e y o n d t h 2 5 5 t h h o r i z o n t a l p o s i t i o n o t h s c r e e nr e q u i r e s t h e u s o m e m o r y l o c a t i o n 5 3 2 6 4 . T h i s l o c a t i o n k e e p s t r a c k o w h i c hs p r i t e s a r d i s p l a y e d o t h r i g h t - h a n d p o r t i o n o t h s c r e e n . I t h b i c o r e s p o n d i n g t a d i s p l a y e d s p r i t e i o n e , t h e n t h c o m p u t e r a d d s 2 5 6 t t h n u m b e r i t h s p r i t e ' s h o r i z o n t a l p o s i t i o n m e m o r y l o c a t i o n a n u s e s t h er e s u l t i n g n u m b e r t p o s i t i o n t h e s p r i t e o t h s c r e e n . I t h e n t i r e h o r i z o n t a lr a n g e i g o i n g t b u s e d , a p r o g r a m w i l l h a v e t m a k e s u r e t h b i i l o c a t i o n5 3 2 6 4 i z e r o i t h e h o r i z o n t a l p o s i t i o n i l e s s t h a n 2 5 6 , a n o n i t h h o r iz o n t a l p o s i t i o n i 2 5 o g r e a t e r . S t a t e m e n t s 1 0 9 0 t 1 1 0 0 a r u s e d f o p s i t i o n i n g s p r i t e 0

L e u e x a m i n e i d e t a i l h o s p r i t e i p o s i t i o n e d o t h s c r e e n . T h v e r t i c a l p o s i t i o n ( m e m o r y l o c a t i o n 5 3 2 4 9 ) i k e p t c o n s t a n t . T h v a r i a b l ec o r r e s p o n d s t t h h o r i z o n t a l p o s i t i o n . I s t a t e m e n t 1 0 9 0 , t h h o r i z o n t a lp o s i t i o n i A N D e d w i t h 2 5 a n p l a c e d i l o c a t i o n 5 3 2 4 8 . T h A N 2 5 a d j u s t s t h e h o r i z o n t a l p o s i t i o n v a l u e s t h a t t h e n u m b e r p l a c e d i l o c a t i o ni b e t w e e n a n 2 5 5 . A t t e m p t i n g t p l a c e n u m b e r o u t s i d e t h i s r a n g e i m e m o r y l o c a t i o n c a u s e s t h c o m p u t e r t r e s p o n d w i t h a e r r o r m e s s a g e . I t h h o r i z o n t a l p o s i t i o n i l e s s t h a n 2 5 6 , t h r e s u l t o A N 2 5 i e q u a l t X I t h e h o r i z o n t a l p o s i t i o n i g r e a t e r t h a n 2 5 6 , t h r e s u l t o A N 2 5 i e q u a l t 2 5 6 - X . T h p r o g r a m c h e c k s t s e i t h e h o r i z o n t a l p o s i t i o n i g r e a t e rt h a n 2 5 5 . I i t i s , b i i s e t o n i l o c a t i o n 5 3 2 6 4 a n t h p r o g r a m s k i p st t h n e x t p r o g r a m s t a t e m e n t . T h n e x t s t a t e m e n t ( s t a t e m e n t 1 1 0 0 ) i c a r r i e d

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 232/318

S p r i t e s 2 1

o u i t h h o r i z o n t a l p o s i t i o n o t h s p r i t e i l e s s t h a n 2 5 6 . T h i s s t a t e m e n tc l e a r s b i o f l o c a t i o n 5 3 2 6 4 t o z e r o .

" G f t L L O P "1 P O K E 5 2 , 6 2 : P O K E 5 6 , 6 2 : C L R : R E M O V E T O O B A S I C2 R E A D S B I S B < 0 T H E N 1 0 0 0 : R E M R E A D S P R I T E D A T A L O C A T I O N3 S S = S B * 6 44 F O T 6 2 R E A D S 5 P O K E S S + I , S D

6 N E X T7 G O T O 2

1 0 D A T A 2 4 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 0 , 0 , 0 0 , 0 , 0 , 1 2 0

1 1 D A T A 3 0 0 , 0 , 6 2 0 , 1 2 4 , 2 5 5 , 1 , 2 5 5 , 2 4 3 , 3 , 2 5 5 , 2 4 0 , 6 , 2 5 5 , 2 4 0 , 1 1 2 D A T A 2 5 5 , 2 2 4 , 0 , 2 3 9 , 2 2 4 , 1 , 2 3 1 , 1 9 2 , 1 , 1 9 3 , 1 9 2 , 2 , 1 2 9 , 6 4 2 , 1 3 0 , 6 1 3 D A T A 4 , 1 4 0 , 6 4 0 0 6 4 0 , 0 , 6 4 0 , 0 , 3 2 , 2 4 9 , 0 0 0

1 4 D A T A 0 , 0 , 0 , 0 , 9 6 0 0 , 2 4 0 , 0 1 , 2 4 0 , 0 1 , 2 4 8 , 0 , 2 5 5 , 2 0 01 5 D A T A 3 , 2 5 5 , 1 9 2 , 2 , 2 5 5 , 1 2 8 , 4 , 2 5 5 , 1 2 8 , 1 2 , 2 5 5 , 1 2 8 , 8 , 1 2 7 , 0 0 5 1 6 D A T A 1 2 8 , 0 5 1 , 6 4 , 0 5 1 3 2 0 4 9 , 6 4 , 0 3 1 , 1 9 2 , 0 1 2 0

1 7 D A T A 8 0 0 4 , 0 , 0 , 0 , 0 , 2 5 0 , 0 , 0 , 0 0 0 , 0 , 0 ,1 8 D A T A 9 6 0 0 , 2 4 0 , 0 1 , 2 4 0 , 0 1 , 2 4 8 , 0 , 1 9 9 , 2 0 0 , 1 , 2 5 5 , 1 2 8 ,1 9 D A T A 2 5 5 , 1 2 8 , 1 5 , 2 5 5 , 1 2 8 , 2 5 , 2 5 5 , 1 2 8 , 4 9 , 2 5 5 , 1 2 8 , 1 , 2 2 3 , 1 9 2 , 0 , 1 9 4 , 6 2 0 D A T A 0 , 1 9 3 , 6 4 0 , 2 2 9 , 6 4 0 , 1 4 7 , 6 4 0 , 1 3 6 , 6 4 0 6 8 0 0 6 2 1 D A T A 0 , 0 , 3 2 0 , 2 5 1 , 0 0 , 0 , 0 , 0 , 0 , 0 0 0 0 0 3 2 2 D A T A 0 f 0 , 6 2 0 0 , 1 2 7 , 0 0 , 2 5 1 , 0 6 3 , 2 4 9 , 1 , 2 5 5 , 2 4 0 , 3 , 2 5 52 3 D A T A 2 4 0 , 7 , 1 2 7 , 2 4 0 , 4 , 1 2 7 , 2 4 0 , 0 , 1 1 5 , 2 4 8 , 0 , 2 4 0 , 8 0 , 1 7 6 , 8 2 4 D A T A 1 6 0 , 1 2 1 3 2 1 0 1 3 2 1 , 1 , 1 6 0 1 1 6 0 0 , 1 3 6 ,2 5 D A T A 2 5 2 , 0 , 0 , 0 0 0 0 0 0 1 2 0 , 0 , 6 2 0 0 , 1 2 6 ,2 6 D A T A 0 , 2 5 4 , 0 1 , 2 5 1 , 0 , 1 2 7 , 2 4 1 , 3 , 2 5 5 , 2 4 0 , 3 , 2 5 5 , 2 4 0 , 4 , 2 5 5 , 2 4 02 7 D A T A 0 , 2 5 5 , 2 4 0 , 0 , 2 2 4 , 6 0 1 9 6 2 0 2 , 1 9 2 , 1 8 2 , 1 2 8 , 1 0 2 , 1 2 82 8 D A T A 1 0 1 2 , 1 2 8 , 4 0 , 1 2 8 , 2 0 , 1 9 2 , 0 0 6 4 0 , 2 5 3 , 0 , 0 ,

2 9 D A T A 0 , 0 , 0 , 0 , 0 , 0 0 0 , 0 , 0 0 2 8 0 0 , 1 2 6 , 0 3 0 D A T A 2 5 4 , 0 , 1 1 5 , 2 5 1 , 3 , 2 5 5 , 2 4 3 , 6 , 2 5 5 , 2 4 0 , 1 2 , 2 5 5 , 2 4 0 , 0 , 2 5 5 , 2 2 4 ,3 1 D A T A 2 5 5 , 2 2 4 , 3 , 1 9 3 , 2 4 0 , 7 , 1 2 8 , 7 2 , 3 1 , 0 6 8 2 0 6 6 2 , 0 , 3

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 233/318

2 2 A p p e n d i x

3 2 D A T A 2 0 3 2 2 0 3 2 2 , 0 , 1 6 , 2 5 4 , 0 0 0 0 0 , 0 ,

3 3 D A T A 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 8 0 , 0 , 6 2 0 0 , 1 2 6 , 0 , 2 5 5 , 2 5 13 4 D A T A 3 , 2 5 5 , 2 4 1 , 6 , 2 5 5 , 2 4 0 , 1 2 , 2 5 5 , 2 4 0 , 0 , 2 5 5 , 2 2 4 , 1 , 1 9 9 , 2 2 4 , 3 , 1 9 33 5 D A T A 2 4 0 , 3 0 , 1 4 4 , 1 4 0 , 1 3 6 , 2 0 , 1 3 2 , 4 0 , 1 3 0 , 1 2 1 , 1 ,

3 6 D A T A 1 0 0 0 , 1 2 8 , 2 5 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0

3 7 D A T A 1 2 0 , 0 , 2 8 0 0 6 2 0 , 1 2 0 , 2 5 4 , 3 , 2 5 5 , 2 4 7 , 6 , 2 5 5 , 2 4 1 , 1

3 8 D A T A 2 5 5 , 2 2 4 , 0 , 2 5 5 , 2 2 4 , 1 , 2 5 5 , 2 2 4 , 1 , 1 9 5 , 2 2 4 , 3 1 9 6 2 1 3 3 9 D A T A 4 2 3 2 8 2 1 6 0 , 4 , 1 6 0 , 4 , 1 6 0 4 , 8 , 0

4 0 D A T A 8 , - 11 0 0 0 P R I N T " [ C L R ] »1 0 1 0 P O K E 5 3 2 8 7 , 9 R E M S P R I T E 0 B R O W N1 0 2 0 P O K E 5 3 2 6 9 , 1 R E M E N A B L E S P R I T E 01 0 3 0 P O K E 5 3 2 4 9 , 1 5 0 : R E S P R I T E 0 - P O S I T I O N1 0 4 0 P O K E 5 3 2 7 7 , 1 R E D O U B L E W I D T H S P R I T E1 0 5 0 P O K E 5 3 2 8 1 , 1 3 R E L I G H T G R E E N S C R E E N1 0 6 0 S D = 2 4 8 : P O K E 2 0 4 0 , S D R E S E L E C T B L O C K1 0 7 0 F O X T O 3 4 5 S T E P 6 R E M M O V E A C R O S S S C R E E N

1 0 8 0 F O R T 5 0 N E X T T R E D E L A Y L O O P1 0 9 0 P O K E 5 3 2 4 8 , A N 2 5 5 : I X > 2 5 5 T H E N P O K E 5 3 2 6 4 , 1 G O T O 1 1 1 01 1 0 0 P O K E 5 3 2 6 4 ,

1 1 1 0 S S D + 1 : I S D = 2 5 6 T H E N S D = 2 4 8 : R E C H A N G E S H A P E1 1 2 0 P O K E 2 0 4 0 , S 1 1 3 0 N E X T1 1 4 0 G O T O 1 0 7 0

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

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 234/318

S u m m a r y o f S p r i t e R e g i s t e r s 2 2

T A B L E 3 E i g h t - B i t S p r i t e R e g i s t e r sS p r i t e H o r i z o n t a l P o s i t i o n

( B i t s 0 - 7 )5 3 2 4 85 3 2 5 05 3 2 5 25 3 2 5 45 3 2 5 65 3 2 5 85 3 2 6 05 3 2 6 2

V e r t i c a l P o s i t i o n

5 3 2 4 95 3 2 5 15 3 2 5 35 3 2 5 55 3 2 5 75 3 2 5 95 3 2 6 15 3 2 6 3

C o l o r

5 3 2 8 75 3 2 8 85 3 2 8 95 3 2 9 05 3 2 9 15 3 2 9 25 3 2 9 35 3 2 9 4

T h s e c o n d t y p e u s e s o n r e g i s t e r t s t o r e i n f o r m a t i o n f o a l e i g h t s p r i t e s( o n e s p r i t e / b i t ) . E a c h b i c o n t r o l s t h m o d e o t h c o r r e s p o n d i n g s p r i t e . T h e s er e g i s t e r s a r l i s t e d i T a b l e 4

T A B L E 4 O n e - B i t S p r i t e R e g i s t e r sR e g i s t e r F u n c t i o n5 3 2 6 4 H o r i z o n t a l p o s i t i o n g r e a t e r t h a n 2 5 55 3 2 6 9 T u r n o a n o f s p r i t e s5 3 2 7 1 V e r t i c a l d o u b l i n g5 3 2 7 5 P r i o r i t y o v e r c h a r a c t e r s5 3 2 7 7 H o r i z o n t a l d o u b l i n g

s e l e c t e d b i i s e t t o b O R i n g t h e x i s t i n g v a l u e i r e g i s t e r w i t h t h a p p r o p r i a t e n u m b e r . b i i c l e a r e d t b A N D i n g t h e e x i s t i n g v a l u e w i t ht h c o m p l e m e n t o t h n u m b e r u s e d t o s e t t h b i t . T h g e n e r a l f o r m o t h s t a t e m e n t t s e b i i

P O K E [ l o c a t i o n ] O B T h g e n e r a l f o r m t c l e a r b i i

P O K E [ l o c a t i o n ] , P E E K ( [ l o c a t i o n ] ) A N D N O T B I n t h e s e s t a t e m e n t s , [ l o c a t i o n ] r e f e r s t t h o n b i s p r i t e r e g i s t e r a n B d e p e n d s o t h s p r i t e n u m b e r ( s e e F i g u r e 1 )

D e s i g n i n g a n e n t e r i n g s p r i t e s c a b e c o m e q u i t e l a b o r i o u s . s p r i t e e i t o r p r o g r a m c a e l i m i n a t e m u c h o f t h e d r u d g e r y w h i l e g i v i n g t h e u s e r d i r e c tv i s u a l f e e d b a c k a s t h e s p r i t e i b e i n g c r e a t e d . T h f o l l o w i n g p r o g r a m i s p r i t e e d i t o r t h a t a l l o w s y o t c r e a t e s p r i t e , s e h o i l o o k s o t h s c r e e n ,a n t h e n l i s t t h c o m m a n d s f o c r e a t i n g t h e s p r i t e i n p r o g r a m . T h p r o g r a md i v i d e s t h e v i d e o d i s p l a y i n t o t h r e e a r e a s . T h l a r g e 2 b 2 c h a r a c t e r g r i di f o e d i t i n g t h e s p r i t e . A t h s p r i t e i c r e a t e d , i w i l l a p p e a r i a o u t l i n e da r e a i t h u p p e r r i g h t o t h s c r e e n . E x p a n d e d s p r i t e s a r d i s p l a y e d i a o u t l i n e d a r e a i t h l o w e r r i g h t . T h c u r s o r m o d e i i n d i c a t e d b l e t t e r . I t h d r a w i n g m o d e , D p i x e l s a r t u r n e d o w h e r e v e r t h c u r s o r m o v e s . I t h e r a s e m o d e , E , p i x e l s a r t u r n e d o f w h e r e v e r t h c u r s o r m o v e s . I t h

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 235/318

2 2 A p p e n d i x 2

n o r m a l m o d e , N c u r s o r m o v e m e n t h a n e f f e c t o t h p i x e l s . A f t e r s p r i t eh a b e e n c r e a t e d , t h c o m m a n d s a n D A T A s t a t e m e n t s t h a t w o u l d c r e a t et h s p r i t e i p r o g r a m c a n b e l i s t e d t o t h s c r e e n o t p r i n t e r . T h s p r i t ee d i t o r c o m m a n d s a r l i s t e d i n T a b l e 5

T A B L E 5 S p r i t e E d i t o r C o m m a n d sK e F u n c t i o n

T u r n o p i x e l a c u r s o rs p a c e T u r n o f p i x e l a c u r s o rc u r s o r l e f t M o v e c u r s o r l e f tc u r s o r r i g h t M o v e c u r s o r r i g h tc u r s o r u M o v e c u r s o r u c u r s o r d o w n M o v e c u r s o r d o w nr e t u r n M o v e c u r s o r t l e f t e d g eh o m e M o v e c u r s o r t u p p e r l e f t c o r n e rc l e a r C l e a r s c r e e n a n h o m e c u r s o r

E x p a n d s p r i t e h o r i z o n t a l l yE x p a n d s p r i t e v e r t i c a l l yE x p a n d s p r i t e b o t h w a y sL i s t c o m m a n d s

F S e l e c t b a c k g r o u n d c o l o rF S e l e c t s p r i t e c o l o rF S e l e c t c u r s o r m o d e

Q u i t p r o g r a m

" S P R I T E "C S = 2 : B G = 1 : P L = 0 : R E M W H I T E B A C K G R O U N D , R E D S P R I T EP M ( 0 ) = 1 4 : P M ( 1 ) = 4 : P M ( 2 ) = 5

1 P O K E 5 3 2 8 0 , 6 : P O K E 5 3 2 8 1 , 1 : R E M B L U E B O R D E R , W H I T E S C R E E N2 S C = 1 0 2 4 : S P = 8 3 2 : C R = 5 5 2 9 6 : R E M S C R E E N A N D C O L O R R A 3 R E C O L O R R A M T O G I V E C Y A N P O K E D C H A R A C T E R S4 P R I N T " [ C L R ] " : F O R I = 0 T O 9 9 9 : P O K E C R + I , 3 : N E X T5 P R I N T " [ H O M E ] [ B L U ] [ R V S O N S P R I T E E D I T O R B P A U L S C H A T Z [ R V S O F F ] 16 R E O U T L I N E W O R K I N G A R E A

7 P O K E S C + 8 1 , 1 1 2 : P O K E S C + 1 0 6 , 1 1 0 : P O K E S C + 9 6 1 , 1 0 9 : P O K E S C + 9 8 6 , 1 2 58 F O I = 0 T O 2 3 : P O K E S C + 8 2 + I , 1 1 4 : P O K E S C + 9 6 2 + I , 1 1 3 : N E X T9 F O I = 0 T O 2 0 : P O K E S C + 1 2 1 + ( 4 0 * 1 ) , 1 0 7 : P O K E S C + 1 4 6 + ( 4 0 * I ) , 1 1 5 : N E X T1 0 R E C O L O R W O R K I N G A R E A R E 1 1 F O I = 0 T O 2 0 : F O R J = 0 T O 2 3 : P O K E C R + 1 2 2 + ( 4 0 * 1 ) + J , 2 : N E X T J , 1 1 G O S U B 1 7 0 0 : R E M C O L O R S P R I T E A R E A S1 2 R E O U T L I N E F O S P R I T E1 3 0 P O K E S C + 1 1 0 , 1 1 2 : P O K E S C + 1 1 5 , 1 1 0 : P O K E S C + 2 7 0 , 1 0 9 : P O K E S C + 2 7 5 , 1 2 5

1 4 F O I = 0 T O 3 : P O K E S C + l l l + I , 6 4 : P O K E S C + 2 7 1 + I , 6 4 : N E X T I1 5 F O R I = 0 T O 2 : P O K E S C + 1 5 0 + ( 4 0 * 1 ) , 9 3 : P O K E S C + 1 5 5 + ( 4 0 * 1 ) , 9 3 : N E X T

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 236/318

S u m m a r y o S p r i t e R e g i s t e r s 2 2

1 6 F O R I = 0 T O 2 : F O R J = 0 T O 3 : P O K E S C + 1 5 1 + ( 4 0 * I ) + J , 1 6 0 : N E X T J , I1 7 P R I N T " [ H O M E ] [ C R S R D O W N ] [ C R S R D O W N ] [ 2 8 C R S R R T ] S [ C R S R D O W N ]

[ C R S R L E F T ] P [ C R S R D O W N ] [ C R S R L E F T ] R [ C R S R D O W N ] [ C R S R L E F T ] I[ C R S R D O W N ] [ C R S R L E F T ] T [ C R S R D O W N ] [ C R S R L E F T ] E "

2 0 0 R E M O U T L I N E F O E X P A N S I O N S2 1 P O K E S C + 7 1 0 , 1 1 2 : P O K E S C + 7 1 8 , 1 1 0 : P O K E S C + 9 9 0 , 1 0 9 : P O K E S C + 9 9 8 , 1 2 52 2 0 F O R I = 0 T O 6 : P O K E S C + 7 1 1 + I , 6 4 : P O K E S C + 9 9 1 + I , 6 4 : N E X T I

2 3 F O I = 0 T O 5 : P O K E S C + 7 5 0 + ( 4 0 * 1 ) , 9 3 : P O K E S C + 7 5 8 + ( 4 0 * 1 ) , 9 3 : N E X T4 F O R I = 0 T O 5 : F O R J = 0 T O 6 : P O K E S C + 7 5 1 + ( 4 0 * I ) + J , 1 6 0 : N E X T J , I

2 5 P R I N T " [ H O M E ] [ 1 C R S R D N ] [ 2 8 C R S R R T 2 6 P R I N T " [ C R S R D O W N ] E [ C R S R D O W N ] [ C R S R L E F T ] X [ C R S R D O W N ] [ C R S R L E F T ] P

[ C R S R D O W N ] [ C R S R L E F T ] A [ C R S R D O W N ] [ C R S R L E F T ] N [ C R S R D O W N ] [ C R S R L E F T ] D[ C R S R D O W N ] [ C R S R L E F T ] E [ C R S R D O W N ] [ C R S R L E F T ] D [ H O M E ] "

3 0 0 R E M C O M M A N D T A B L E

3 0 P R I N T " [ H O M E ] [ 7 C R S R D N ] [ 3 0 C R S R R T ] C U R S O R : " : P R I N T3 1 P R I N T " [ 2 8 C R S R R T ] C O M M A N D S : "3 2 P R I N T " [ 2 9 C R S R R T ] [ L T R E D ] L [ B L U ] 1 S T "3 3 P R I N T " [ 2 9 C R S R R T ] [ L T R E D ] Q [ B L U ] U I T "3 4 P R I N T " [ 2 9 C R S R R T ] E X P A N D [ L R E D ] X [ B L U ] "3 5 0 P R I N T " [ 2 C R S R R T ] E X P A N D [ L R E D ] Y [ B L U ] "3 6 P R I N T " [ 2 9 C R S R R T ] E X P A N D [ L R E D ] B [ B L U ] O T H "3 7 P R I N T " [ C R S R U P ] [ 2 9 C R S R R T ] [ L T R E D ] F 1 F F 7 [ B L U ] "3 8 P O K E S C + 3 1 8 , P M ( P L ) : P O K E C R + 3 1 8 , 1 04 0 R E M O V E S P R I T E D A T A T S C R E E N4 1 G O S U B 1 0 0 04 2 R E P U S P R I T E I B O

4 3 G O S U B 1 2 0 04 4 0 R E M H O M E A N T U R N O C U R S O R4 5 P R I N T " [ R E D ] [ H O M E ] [ C R S R D O W N ] [ C R S R D O W N ] " : P O K E 2 1 1 , 2 : P O K E 2 0 4 , 05 0 R E G E C O M M A N D5 1 G E T A $ : I F A $ = " " T H E N 5 1 05 2 I A $ = " Q " T H E N P O K E 5 3 2 6 9 , 0 : P R I N T " [ C L R ] " : E N D5 3 I F A $ = " L " T H E N G O S U B 2 0 0 0 : G O T O 4 05 4 I F A $ = " X " T H E N G O S U B 1 4 0 05 5 I F A $ = " Y " T H E N G O S U B 1 5 0 05 6 I F A $ = " B " T H E N G O S U B 1 6 0 05 7 I F A $ = " [ H O M E ] " T H E N G O S U B 1 3 0 0 : G O T O 4 5 05 8 I F A $ = " [ C L R ] " T H E N G O S U B 1 1 0 0 : G O S U B 9 0 0 : G O T O 4 5 05 9 I F A $ = " [ C R S R U P ] " T H E N G O S U B 3 0 0 06 0 I F A $ = " [ C R S R D O W N ] " T H E N G O S U B 3 1 0 0

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 237/318

2 2 A p p e n d i x

6 1 I F A $ = " [ C R S R L E F T ] " T H E N G O S U B 3 2 0 06 2 I F A $ = n [ C - R ] " T H E N G O S U B 3 3 0 06 3 I F A $ = C H R $ ( 1 3 ) T H E N G O S U B 3 4 0 06 4 0 I F A $ = " " T H E N G O S U B 3 5 0 0 : G O S U B 3 3 0 0

6 5 I F A $ = " * " T H E N G O S U B 3 6 0 0 : G O S U B 3 3 0 06 6 I F A $ = " [ F l ] ° T H E N B G = B G + 1 : G O S U B 1 7 0 06 7 I F A $ = " [ F 3 ] " T H E N C S = C S + 1 : G O S U B 1 8 0 06 8 I F A $ = " [ F 7 ] " T H E N P L = P L + 1 : I F P L > 2 T H E N P L = 0

6 9 P O K E S C + 3 1 8 , P M ( P L )7 0 G O T O 5 1 09 0 0 R E M C L E A R S C R E E N9 0 5 P O K E 2 0 4 , 1 : R E M T U R N O F F C U R S O R9 1 0 F O R I = 0 T O 2 0 : F O R J = 0 T O 2 3 : P O K E S C + 1 2 2 + ( 4 0 * I ) + J , 3 2 : N E X T J r 9 2 R E T U R N1 0 0 0 R E M S U B R O U T I N E M O V E S P R I T E T O S C R E E N1 0 0 5 P O K E 2 0 4 , 1 : R E M T U R N O F F C U R S O R1 0 1 0 F O R I o 0 T O 2 0 : F O R J » 0 T O 2 : F O R K » 7 T O 0 S T E P - l1 0 2 0 C H ° 3 2 : I F ( P E E K ( S P + ( 3 * I ) + J ) A N D ( 2 [ U P A R R O W ] K ) ) T H E N C H = 2 0 41 0 3 0 P O K E ( S C + 1 2 2 + ( 4 0 * I ) + ( 8 * J ) + ( 7 - K ) ) , C H1 0 4 0 N E X T K , J , I : R E T U R N1 1 0 0 R E S U B R O U T I N E C L E A R S P R I T E1 1 1 0 F O I » 0 T O 6 2 : P O K E 8 3 2 + I , 0 : N E X T I : R E T U R N1 2 0 0 R E M S U B R O U T I N E S P R I T E T S C R E E N1 2 1 0 P O K E 2 0 4 0 , 1 3 : R E M S P R I T E D A T A I L O C A T I O N S 8 3 2 - 8 9 4 ( 6 4 * 1 3 = 8 3 2 )1 2 2 0 P O K E 5 3 2 4 8 , 2 0 : P O K E 5 3 2 6 4 , 1 : R E M C O O R D I N A T E O S P R I T E1 2 3 0 P O K E 5 3 2 4 9 , 7 5 : R E M C O O R D I N A T E O S P R I T E1 2 4 0 P O K E 5 3 2 8 7 , C S : R E M C O L O R O S P R I T E1 2 5 0 P O K E 5 3 2 6 9 , 1 : R E M E N A B L E S P R I T E1 2 6 0 R E T U R N1 3 0 0 R E M O V E C U R S O R R E P L A C E C H A R A C T E R1 3 1 0 L O = S C + ( 4 0 * P E E K ( 2 1 4 ) ) + P E E K ( 2 1 1 ) : R E M G E T P O S I T I O N1 3 2 0 C H = 3 2 : P O K E 2 0 4 , 1 : R E M T U R N O F C U R S O R1 3 3 0 I F ( P E E K ( L O ) A N D 1 2 7 ) O 3 2 T H E N C H = 2 0 41 3 4 0 P O K E L O , C H : R E T U R N1 4 0 0 R E E X P A N D1 4 1 0 P O K E 2 0 4 1 , 1 3 : R E S P R I T E D A T A 8 3 2 - 8 9 41 4 2 0 P O K E 5 3 2 7 7 , 2 : R E M E X P A N D O S P R I T E1 4 3 0 P O K E 5 3 2 7 1 , 0 : R E M N E X P A N S I O N

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 238/318

S u m m a r y o S p r i t e R e g i s t e r s 2 2

1 4 4 0 P O K E 5 3 2 5 0 , 2 0 : P O K E 5 3 2 6 4 , P E E K ( 5 3 2 6 4 ) O R 2 : R E M C O O R D I N A T E O S P R I T E1 4 5 0 P O K E 5 3 2 5 1 , 1 9 7 : R E M C O O R D I N A T E O S P R I T E1 4 6 0 P O K E 5 3 2 8 8 , C S : R E M C O L O R O S P R I T E1 4 7 0 P O K E 5 3 2 6 9 , 3 : R E M E N A B L E S P R I T E A N D S P R I T E ( 2 + 1 - 3 )

1 4 8 0 R E T U R N1 5 0 0 R E E X P A N D1 5 1 0 P O K E 2 0 4 1 , 1 3 : R E S P R I T E D A T A 8 3 2 - 8 9 41 5 2 0 P O K E 5 3 2 7 7 , 0 : R E M N E X P A N S I O N1 5 3 0 P O K E 5 3 2 7 1 , 2 : R E M E X P A N D O S P R I T E1 5 4 0 P O K E 5 3 2 5 0 , 2 0 : P O K E 5 3 2 6 4 , P E E K ( 5 3 2 6 4 ) O R 2 : R E M C O O R D I N A T E O S P R I T E1 5 5 0 P O K E 5 3 2 5 1 , 1 9 7 : R E M C O O R D I N A T E O S P R I T E1 5 6 0 P O K E 5 3 2 8 8 , C S : R E M C O L O R O S P R I T E1 5 7 0 P O K E 5 3 2 6 9 , 3 : R E M E N A B L E S P R I T E A N S P R I T E ( 2 + 1 = 3 )

1 5 8 0 R E T U R N1 6 0 0 R E M E X P A N D A N 1 6 1 0 P O K E 2 0 4 1 , 1 3 : R E S P R I T E D A T A 8 3 2 - 8 9 41 6 2 0 P O K E 5 3 2 7 7 , 2 : R E M E X P A N D O S P R I T E1 6 3 0 P O K E 5 3 2 7 1 , 2 : R E M E X P A N D O S P R I T E1 6 4 0 P O K E 5 3 2 5 0 , 2 0 : P O K E 5 3 2 6 4 , P E E K ( 5 3 2 6 4 ) O R 2 : R E M C O O R D I N A T E O S P R I T E1 6 5 0 P O K E 5 3 2 5 1 , 1 9 7 : R E M C O O R D I N A T E O S P R I T E1 6 6 0 P O K E 5 3 2 8 8 , C S : R E M C O L O R O S P R I T E1 6 7 0 P O K E 5 3 2 6 9 , 3 : R E M E N A B L E S P R I T E A N D S P R I T E ( 2 + 1 = 3 )

1 6 8 0 R E T U R N1 7 0 0 R E C O L O R B A C K G R O U N D F O S P R I T E A R E A S1 7 1 0 I F B G > 1 5 T H E N B G = 01 7 2 0 F O R I = 0 T O 2 : F O R J = 0 T O 3 : P O K E C R + 1 5 1 + ( 4 0 * I ) + J , B G : N E X T J , I1 7 3 0 F O R I = 0 T O 5 : F O R J = 0 T O 6 : P O K E C R + 7 5 1 + ( 4 0 * 1 ) + J , B G : N E X T J , I : R E T U R N1 8 0 0 R E C O L O R S P R I T E S1 8 1 0 I F C S > 1 5 T H E N C S = 01 8 2 0 P O K E 5 3 2 8 7 , C S : P O K E 5 3 2 8 8 , C S : R E T U R N2 0 0 0 R E M L I S T R O U T I N E2 0 1 0 P O K E 2 0 4 , 1 : P O K E 5 3 2 6 9 , 0 : R E M D I S A B L E S P R I T E2 0 2 0 I N P U T " [ C L R ] [ C R S R D O W N ] [ B L U ] W H I C H S P R I T E " ; S : I F S > 7 O R S < 0 T H E N 2 0 2 02 0 3 0 I N P U T " W H I C H D A T A B L O C K " ; 2 0 4 0 I N P U T " T O [ R V S O N ] P [ R V S O F F ] R I N T E R O [ R V S O N ] S [ R V S O F F J C R E E N " ;

B $ : P R I N T " [ C L R ] "2 0 5 0 O D = 3 : I F B $ = " P " T H E N O D = 42 0 6 0 O P E N 1 , O D : I F O D = 4 T H E N G O S U B 2 5 0 02 0 7 0 V C = 5 3 2 4 8 : B P = 2 0 4 0

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 239/318

2 2 A p p e n d i x 2

2 0 8 0 P R I N T # 1 , " 1 0 0 0 P O K E 5 3 2 6 9 P E E K ( 5 3 2 6 9 ) 0 R " ; 2 [ U P A R R O W j S ;2 0 8 5 P R I N T # 1 , " : R E M E N A B L E S P R I T E " ; S ; C H R $ ( 1 3 ) ;2 0 9 0 P R I N T # 1 , " 1 0 1 0 P O K E " ; B P + S ; " , " ; B ;2 0 9 5 P R I N T # 1 , " : R E M S P R I T E " ; S ; " D A T A A T " ; B * 6 4 ; " T O " ; B * 6 4 + 6 2 ; C H R $ ( 1 3 ) ;2 1 0 0 P R I N T # 1 , " 1 0 2 0 F O 1 0 T O 6 2 : R E A D D T P O K E " ; B * 6 4 ; " + I , Q : N E X T I "

C H R $ ( 1 3 ) ;2 1 0 5 P R I N T # 1 , " 1 0 3 0 I A B S ( X / 2 5 6 ) T H E N P O K E 5 3 2 6 4 , P E E K ( 5 3 2 6 4 ) O R " ;2 1 0 7 P R I N T # 1 , 2 [ U P A R R O W ] S ; " : X = X - 2 5 6 " ; C H R $ ( 1 3 ) ;2 1 1 0 P R I N T # 1 , " 1 0 4 0 P O K E " ; V C + 2 * S ; " , : R E M C O O R D I N A T E O S P R I T E " ; S ;

C H R $ ( 1 3 ) ;2 1 2 0 P R I N T # 1 , " 1 0 5 0 P O K E " ; V C + 1 + 2 * S ;2 1 2 5 P R I N T # 1 , " , : R E M C O O R D I N A T E O S P R I T E " ; S ; C H R $ ( 1 3 ) ;2 1 3 0 P R I N T # 1 , " 1 0 6 0 P O K E " ; 5 3 2 8 7 + S ; " , " ; C S ; " : R E M C O L O R O S P R I T E " ; S ; C H R $ ( 1 3 ) ;2 1 4 0 P R I N T # 1 , " 1 0 7 0 P O K E 5 3 2 7 7 P E E K ( 5 3 2 7 7 ) O R " ; 2 [ U P A R R O W J S ;2 1 4 5 P R I N T # 1 , " : R E M E X P A N D O S P R I T E " ; S ; C H R $ ( 1 3 ) ;2 1 5 0 P R I N T # l , n 1 0 8 0 P O K E 5 3 2 7 1 P E E K ( 5 3 2 7 1 ) O R " ; 2 [ U P A R R O W j S ;2 1 5 5 P R I N T # 1 , " : R E M E X P A N D O S P R I T E " ; S ; C H R $ ( 1 3 ) ;2 1 6 0 I F O D « 3 T H E N P R I N T # 1 , C H R $ ( 1 3 ) ; M [ R V S O N ] P R E S S A N Y K E Y T C O N T I N U E [ R V S O F F ] " I

G O S U B 2 3 0 02 1 7 0 F O R I = 0 T O 62 1 8 0 P R I N T # 1 , 1 0 9 0 + I * 1 0 ; " D A T A » ;2 1 9 0 F O R J = 0 T O 7 : P R I N T # 1 , P E E K ( S P + I * 9 + J ) ; " , " ; : N E X T J2 2 0 0 P R I N T # l , P E E K ( S P + I * 9 + 8 ) ; C H R $ ( 1 3 ) ; : N E X T I2 2 1 0 P R I N T # 1 : C L O S E 1 : P R I N T : P R I N T " [ R V S O N ] P R E S S A N Y K E Y T O R E T U R N T E D I T O R

[ R V S O F F ] "2 3 0 0 G E T C $ : I F C $ = " " T H E N 2 3 0 02 3 1 0 R E T U R N2 5 0 0 R E S U B R O U T I N E P R I N T S P R I T E I M A G E2 5 0 5 O P E N 4 , 4 , 42 5 1 0 P R I N T # 4 , " S P R I T E I M A G E " ; C H R $ ( 1 3 ) ; C H R $ ( 1 3 ) ;

2 5 2 0 P R I N T # 4 , ; C H R $ ( 1 3 )2 5 3 0 F O 0 T O 2 0 : L N $ = " "2 5 4 0 F O R J = 0 T O 2 : F O R K = 7 T O 0 S T E P - 12 5 5 0 C A $ = " " : I F ( P E E K ( S P + ( 3 * I ) + J ) A N D ( 2 [ U P A R R O W ] K ) ) T H E N C A $ = n * "2 5 6 0 L N $ = L N $ + C A $ : N E X T K , J2 5 7 0 P R I N T # 4 / " . " ; L N $ ; n . M ; C H R $ ( 1 3 ) ; : N E X T2 5 8 0 P R I N T # 4 , " ; C H R $ ( 1 3 )

2 5 8 5 P R I N T # 4 , C H R $ ( 1 3 ) ; C H R $ ( 1 3 ) ;2 5 9 0 R E T U R N3 0 0 0 R E M M O V E U

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 240/318

S u m m a r y o S p r i t e R e g i s t e r s 2 2

3 0 1 0 I P E E K ( 2 1 4 ) < 4 T H E N R E T U R N3 0 1 2 I F P L = 2 T H E N G O S U B 3 5 0 03 0 1 4 I F P L - 1 T H E N G O S U B 3 6 0 03 0 2 0 G O S U B 1 3 0 0 : C M = P E E K ( 2 1 1 ) : R O = P E E K ( 2 0 9 ) - 4 03 0 2 5 I R O < 0 T H E N R O = 2 5 6 + R O : P O K E 2 1 0 , P E E K ( 2 1 0 ) - 13 0 3 0 P O K E 2 0 9 , R O : P O K E 2 1 1 , C M : P O K E 2 0 4 , 0 : R E M M O V E C U R S O R A N D T U R N O F L A S H3 0 4 0 P O K E 2 1 4 , P E E K ( 2 1 4 ) - 1 : P O K E 2 0 1 , P E E K ( 2 0 1 ) - 1 : R E T U R N3 1 0 0 R E M M O V E D O W N3 1 1 0 I P E E K ( 2 1 4 ) > 2 2 T H E N R E T U R N3 1 1 2 I F P L = 2 T H E N G O S U B 3 5 0 03 1 1 4 I F P L = 1 T H E N G O S U B 3 6 0 03 1 2 0 G O S U B 1 3 0 0 : C M = P E E K ( 2 1 1 ) : R O = P E E K ( 2 0 9 ) + 4 03 1 2 5 I R O > 2 5 5 T H E N R O = R O - 2 5 6 : P O K E 2 1 0 , P E E K ( 2 1 0 ) + 13 1 3 0 P O K E 2 0 9 , R O : P O K E 2 1 1 , C M : P O K E 2 0 4 , 0 : R E M M O V E C U R S O R A N D T U R N O F L A S H3 1 4 0 P O K E 2 1 4 , P E E K ( 2 1 4 ) + 1 : P O K E 2 0 1 , P E E K ( 2 0 1 ) + l : R E T U R N3 2 0 0 R E M M O V E L E F T3 2 1 0 I P E E K ( 2 1 1 ) < 3 T H E N R E T U R N3 2 1 2 I F P L = 2 T H E N G O S U B 3 5 0 03 2 1 4 I F P L = 1 T H E N G O S U B 3 6 0 03 2 2 0 G O S U B 1 3 0 03 2 3 0 P O K E 2 1 1 , P E E K ( 2 1 1 ) - 1 : P O K E 2 0 4 , 0 : R E M M O V E C U R S O R A N D T U R N O F L A S H3 2 4 0 R E T U R N3 3 0 0 R E M M O V E R I G H T3 3 1 0 I P E E K ( 2 1 1 ) > 2 4 T H E N R E T U R N3 3 1 2 I F P L = 2 T H E N G O S U B 3 5 0 03 3 1 4 I F P L « 1 T H E N G O S U B 3 6 0 03 3 2 0 G O S U B 1 3 0 03 3 3 0 P O K E 2 1 1 , P E E K ( 2 1 1 ) + 1 : P O K E 2 0 4 , 0 : R E M M O V E C U R S O R A N D T U R N O F L A S H3 3 4 0 R E T U R N3 4 0 0 R E M R E T U R N3 4 1 0 G O S U B 1 3 0 03 4 2 0 P O K E 2 1 1 , 2 : P O K E 2 0 4 , 03 4 3 0 R E T U R N3 5 0 0 R E C L E A R B I 3 5 1 0 L O = S C + ( 4 0 * P E E K ( 2 1 4 ) ) + P E E K ( 2 1 1 )

3 5 2 0 P O K E L O , 3 23 5 3 0 J = I N T ( ( P E E K ( 2 1 1 ) - 2 ) / 8 ) : K = 9 - P E E K ( 2 1 1 ) + ( J * 8 )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 241/318

2 2 A p p e n d i x

3 5 4 0 I = P E E K ( 2 1 4 ) - 33 5 5 0 P 0 K E ( S P + ( 3 * I ) + J ) , P E E K ( S P + ( 3 * 1 ) + J ) A N D ( 2 5 5 - ( 2 [ U P A R R O W ] K ) )3 5 7 0 R E T U R N3 6 0 0 R E S E B I 3 6 1 0 L O = S C + ( 4 0 * P E E K ( 2 1 4 ) ) + P E E K ( 2 1 1 )3 6 2 0 P O K E L O , 2 0 43 6 3 0 J = I N T ( ( P E E K ( 2 1 1 ) - 2 ) / 8 ) : K - 9 - P E E K ( 2 1 1 ) + ( J * 8 )3 6 4 0 I * P E E K ( 2 1 4 ) - 33 6 5 0 P O K E ( S P + ( 3 * I ) + J ) , P E E K ( S P + ( 3 * I ) + J ) O R ( 2 [ U P A R R O W ] K )3 6 7 0 R E T U R N

C h a r a c t e r sT h C o m m o d o r e 6 h a t w b u i l t - i n s e t s o c h a r a c t e r s , e a c h c o n t a i n i n g

2 5 c h a r a c t e r s . I i p o s s i b l e t a l t e r n a t e b e t w e e n t h c h a r a c t e r s e t s b p r e s si n g t h e s h i f t k e a n t h C o m m o d o r e k e s i m u l t a n e o u s l y . W h e n t h C o m o d o r e 6 i t u r n e d o n t h u p p e r c a s e / g r a p h i c s c h a r a c t e r s e i u s e d . T h a l t e r n a t e c h a r a c t e r s e h a l o w e r a n u p p e r c a s e l e t t e r s . T h c h a r a c t e r s e w h i c h i d i s p l a y e d i d e t e r m i n e d b t h c o n t e n t s o b i t s 1 - o f r e g i s t e r 5 3 2 7 2 .T r t h i s e x p e r i m e n t . T u r n o t h c o m p u t e r a n e n t e r

P R I N T P E E K ( 5 3 2 7 2 )

T h v a l u e r e t u r n e d w i l l b 2 1 N o p r e s s t h e s h i f t a n C o m m o d o r e k e y s t c h a n g e t t h o t h e r c h a r a c t e r s e t . P E E K l o c a t i o n 5 3 2 7 2 a g a i n . T h v a l u er e t u r n e d w i l l b 2 3

t s e w h a t c h a r a c t e r s a r e i n c l u d e d i e a c h s e t , e n t e r t h e f o l l o w i n gp r o g r a m .

I P O K E 5 3 5 6 1 , 0 : R E W H I T E S C R E E NE S C = 1 0 2 4 : C R = 5 5 2 f l b : R E S C R E E N A N C O L O R R A L O C A T I O N S3 P R I N T " [ C L R ] [ B L K ] » : R E C L E A R S C R E E N4 F O T O 2 5 55 P O K E S C f i 2 * 1 , 1 : P O K E C f l 2 * 1 , D N E X Tb P O K E 5 3 2 7 2 2 1 R E T U R N O G R A P H I C S C H A R A C T E R S E 7 P R I N T » [ H O M E ] G R A P H I C S C H A R A C T E R S E T "f l G E A $ I A ' ! T H E N f l R P O K E 5 3 2 7 2 , 2 3 R E T U R N O U / C A S E C H A R A C T E R S E 1 D P R I N T » [ H O M E ] U / L C A S E C H A R A C T E R S E T "1 1 G E A $ I A $ • • ■ • T H E N 1 1 1 2 G O T O t

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 242/318

C h a r a c t e r s 2 2

A l 2 5 c h a r a c t e r s a r d i s p l a y e d o t h s c r e e n . P r e s s i n g a n k e t o g g l e sb e t w e e n t h t w s e t s .

B e s i d e s u s i n g e i t h e r o f t h e s e c h a r a c t e r s e t s , y o c a d e f i n e c o m p l e t e l yn e c h a r a c t e r s e t . T h u s , a p e r s o n a l i z e d s e o c h a r a c t e r s c a b c r e a t e d f o f o r e i g n l a n g u a g e s , a n i m a t i o n , d r a f t i n g , e t c . T h c h a r a c t e r d e s c r i p t i o n s o t h c u s t o m i z e d c h a r a c t e r s a r e s t o r e d i R A M . T h a m o u n t o R A r e q u i r e d f o 2 5 c h a r a c t e r s i 2 0 4 8 l o c a t i o n s . T h c o n t e n t s o b i t s 1 - o f r e g i s t e r 5 3 2 7 2p o i n t t t h s t a r t o 2 R A b l o c k c o n t a i n i n g t j i e c h a r a c t e r s e t . B i t s 4 - 7o 5 3 2 7 2 p o i n t t t h s t a r t o s c r e e n R A M , t h e r e f o r e i i i m p o r t a n t t c h a n g eb i t s 1 - w i t h o u t a l t e r i n g t h h i g h e r b i t s . T h i s i a c c o m p l i s h e d w i t h t h s t a t em e n t

P O K E 5 3 E 7 E , ( P E E K ( 5 3 2 7 2 ) A N B A D ) O C T h v a l u e s f o C a r g i v e n i T a b l e 6 V a l u e s t h a t r e s u l t i n c o n f l i c t s w i t hB A S I C o t h o p e r a t i n g s y s t e m a r n o i t h t a b l e .

T A B L E 6 C h a r a c t e r S e t P o i n t e rS t a r t o c h a r a c t e r s e C

4 0 9 66 1 4 48 1 9 2

1 0 2 4 01 2 2 8 81 4 3 3 6

( G r a p h i c s c h a r a c t e r s )( U p p e r / l o w e r c a s e )

1 1 1

N o t i c e t h a t t h d e s c r i p t i o n s o t h b u i l t - i n c h a r a c t e r s e t s a r a l o c a t i o n s4 0 9 6 a n 6 1 4 4 . B e c a u s e o t h m a n n e r i w h i c h t h C o m m o d o r e 6 a c c e s s e st h c h a r a c t e r d e s c r i p t i o n s , t h e s e l o c a t i o n s c a n n o t b u s e d f o u s e r d e f i n e dc h a r a c t e r s t o r a g e . T h e s e R A l o c a t i o n s d n o a c t u a l l y h a v e t h e c h a r a c t e rd e s c r i p t i o n s . J u s t b e f o r e t h c o m p u t e r i r e a d y t d i s p l a y a c h a r a c t e r o t h s c r e e n , t h c o m p u t e r s w i t c h e s o R O w h i c h t h v i d e o c h i p t h i n k s i a d d r e s s e d a 4 0 9 6 . T h R O w h i c h c o n t a i n s t h c h a r a c t e r d e s c r i p t i o n s i a c t u a l l y l o c a t e d f r o m 5 3 2 4 8 t 5 7 3 4 3 .

T l e a r n h o t d e f i n e a c h a r a c t e r s e t , i i u s e f u l t f i r s t e x a m i n e h o a c h a r a c t e r i c r e a t e d . E a c h c h a r a c t e r i t h C o m m o d o r e 6 i a d o t p a t t e r nb u i l t o n a n m a t r i x . F o e x a m p l e , c h a r a c t e r 0 t h @ i p a t t e r n o p i x e l s a s h o w n i F i g u r e 4

6 1 0 1 1 1 1 9 9 6

*

* •

* *

*

*

F i g u r e 4 P i x e l p a t t e r n o C H R $ ( 0 ) ( " @ " ) .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 243/318

2 3 A p p e n d i x

T h r e p r e s e n t s a n o n p i x e l a n t h r e p r e s e n t s a o f p i x e l . T h c o p u t e r s t o r e s t h i s p i c t u r e i e i g h t c o n s e c u t i v e m e m o r y l o c a t i o n s . E a c h n u m b e ri d e s c r i p t i o n o t h d o t p a t t e r n f o a r o w , a n t h n u m b e r s a r o r d e r e df r o m t h t o r o d o w n . T h e n u m b e r s u s e d t d e s c r i b e r o a r d e r i v e df r o m t h b i b i n a r y r e p r e s e n t a t i o n o t h a t n u m b e r . T h e i g h t n u m b e r s t d e s c r i b e a r 6 0 , 1 0 2 , 1 1 0 , 1 1 0 , 9 6 , 9 8 , 6 0 , a n 0 T h e s e n u m b e r s a r e s t o r e di e i g h t s e q u e n t i a l m e m o r y l o c a t i o n s . T h d e s c r i p t i o n o c h a r a c t e r 1 t h l e t t e r A i s t o r e d i t h n e x t e i g h t m e m o r y l o c a t i o n s . W h e n t h c o m p u t e r i c o m m a n d e d t d i s p l a y c h a r a c t e r z e r o , t h v i d e o d i s p l a y c h i p t a k e s t h e i g h tn u m b e r s f r o m t h m e m o r y l o c a t i o n s a s s i g n e d t c h a r a c t e r z e r o a n r e c o ns t r u c t s t h o t h s c r e e n . W h e n c o m m a n d e d t d i s p l a y t h e l e t t e r A t h s e c o n d g r o u p o f e i g h t n u m b e r s i u s e d .

T h f i r s t s t e p i d e f i n i n g n e c h a r a c t e r i t c o n s t r u c t a d o t p i c t u r eo i o a m a t r i x . G e o u s o m e g r a p h p a p e r a n o u t l i n e a a r e a e i g h ts q u a r e s b e i g h t s q u a r e s . C r e a t e a c h a r a c t e r b f i l l i n g i t h s q u a r e s . E a c ho t h r o w s i t r a n s l a t e d i n t o b i n a r y n u m b e r b s u b s t i t u t i n g o n e s f o f i l l e ds q u a r e s a n z e r o e s f o e m p t y s q u a r e s . T h d e c i m a l n u m b e r e q u i v a l e n t s a r f o u n d i T a b l e 1

O n c e y o a r s a t i s f i e d w i t h t h s e o c h a r a c t e r s y o h a v e d e s i g n e d , y o a r r e a d y t b e g i n p r o g r a m m i n g . F i r s t , y o m u s t r e s e r v e t h e m e m o r y s p a c ef o t h c h a r a c t e r s e t p r o t e c t i f r o m b e i n g c l o b b e r e d b t h B A S I C s y s t e m .T h i s i a c c o m p l i s h e d b m o v i n g t h e n o m e m o r y a n t h b e g i n n i n g o s t r i n g p o i n t e r s . E n t e r t h s t a t e m e n t

I P O K E 5 2 , 5 b : P O K E 5 b , 5 b : C L RT h a b o v e s t a t e m e n t w i l l n o a l l o w B A S I C t u s t h l o c a t i o n s a b o v e 1 4 3 3 6 .T h c h a r a c t e r s e t , l o c a t e d i R A l o c a t i o n s 1 4 3 3 6 t 1 6 3 8 3 , w i l l n o b d i s t u r b e d .

I t i s g o o d i d e a t m o v e t h c h a r a c t e r s f r o m t h c h a r a c t e r g e n e r a t o rR O i n t o t h r e s e r v e d s p a c e . T h i s e n s u r e s t h a t t h e r e w i l l b c h a r a c t e rd e s c r i p t i o n f o e v e r y c h a r a c t e r n u m b e r . I i e a s i e s t t m o v e d o w n 2 5 6 c o nt i g u o u s c h a r a c t e r s . T a l l o w t h c o m p u t e r t a c c e s s t h e m e m o r y l o c a t i o n si t h c h a r a c t e r R O f o a n y t h i n g o t h e r t h a n d i s p l a y i n g c h a r a c t e r s , i i n e c e s s a r y t t u r n o f t h k e y b o a r d a n s w i t c h o t h c h a r a c t e r R O M . T h f o l l o w i n g c o d e m o v e s t h e n t i r e g r a p h i c s c h a r a c t e r s e i n t o n e l o c a t i o n .

I P O K E 5 2 , 5 k : P O K E 5 b , 5 k : C L HE P O K E 5 b 3 3 4 , P E E K ( 5 b 3 3 4 ) A N 2 5 3 P O K E 1 P E E K ( l ) A N D 2 5 1A F O R I T O 2 D 4 75 P O K E 1 4 3 3 b , P E E K ( 5 3 2 4 f l I t N E X T I7 P O K E 1 P E E K ( l ) O f l P O K E 5 E . 3 3 4 , P E E K ( 5 b 3 3 4 ) O

S t a t e m e n t s 2 0 a n 3 0 a l l o w a c c e s s t t h c h a r a c t e r R O l o c a t i o n s . S t a t em e n t s 7 a n 8 r e s t o r e t h e c o m p u t e r t i t o r i g i n a l s t a t e . T h v a l u e o t h P E E K d e t e r m i n e s w h i c h c h a r a c t e r s a r t r a n s f e r r e d . T a b l e s h o w s w h i c hg r o u p s o c h a r a c t e r d e s c r i p t i o n s s t a r t a t d i f f e r e n t l o c a t i o n s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 244/318

C h a r a c t e r s 2 3

I t i s p o s s i b l e t o s e l e c t i v e l y m o v e i g r o u p s o c h a r a c t e r s o i n d i v i d u a lc h a r a c t e r s . F o e x a m p l e , t h f o l l o w i n g c o d e w o u l d b u i l d c h a r a c t e r s e s u c ht h a t s c r e e n c h a r a c t e r s t 1 2 a r t h u p p e r / l o w e r c a s e c h a r a c t e r s , s c r e e nc h a r a c t e r s 1 2 t 1 9 a r t h g r a p h i c s c h a r a c t e r s , a n s c r e e n c h a r a c t e r s 1 9 2t 2 5 a r e t h e r e v e r s e f i e l d g r a p h i c s c h a r a c t e r s .

I P O K E 5 5 , 5 b : P O K E 5 b 5 b C L E P O K E 5 b 3 3 4 , P E E K ( 5 b 3 3 4 ) A N 2 5 3 P O K E 1 P E E K ( l ) A N E 5 A F O R I = D T O 1 D E 3 : P O K E 1 4 3 3 b , P E E K ( 5 5 2 q b I

N E X T5 F O R I T 5 1 1 : P O K E 1 5 3 b D , P E E K ( 5 3 ? b O I )

N E X Tb F O R I T 5 1 1 : P O K E 1 5 f l ? 2 , P E E K ( 5 4 7 f l 4 I )

N E X T7 P O K E 1 P E E K ( l ) O f l P O K E 5 b 3 3 4 , P E E K ( 5 b 3 3 4 ) O

T A B L E 7 C h a r a c t e r R O L o c a t i o n sP E E K C h a r a c t e r S e t T r a n s f e r r e d S c r e e n D i s p l a y C o d e

5 3 2 4 8 U p p e r c a s e l e t t e r s 0 6 5 3 7 6 0 G r a p h i c c h a r a c t e r s 6 4 - 1 2 75 4 2 7 2 R e v e r s e f i e l d u p p e r c a s e 1 2 8 - 1 9 15 4 7 8 4 R e v e r s e f i e l d g r a p h i c s 1 9 2 - 2 5 55 5 2 9 6 L o w e r c a s e l e t t e r s 0 6 5 5 8 0 8 U p p e r c a s e l e t t e r s 6 4 - 1 2 75 6 3 2 0 R e v e r s e f i e l d l o w e r c a s e 1 2 8 - 1 9 15 6 8 3 2 R e v e r s e f i e l d u p p e r c a s e 1 9 2 - 2 5 5

c o n v e n i e n t m e t h o d f o p l a c i n g t h e d e s c r i p t i o n o c u s t o m c h a r a c t e r s i n t ot h r e s e r v e d R A i t u s e a F O R / N E X T l o o p t R E A D D A T A a n t P O K Et h v a l u e s i n t o t h a p p r o p r i a t e m e m o r y l o c a t i o n s . T h f o l l o w i n g B A S I C c o d ea c c o m p l i s h e s t h i s .

R R E A D C N I C N < D T H E N 1 D D D1 D F O D T O 7 : R E A D C 1 1 P O K E 1 4 3 3 b f l * C N I C D N E X T1 E G O T O R 1 3 D D A T & D , A D 1 b 1 4 b , E 1 4 , E S A , 2 3 b , I R f l ,1 A D A T A e t c .

q q q D A T A - i1 D Q D P O K E 5 3 5 7 E , ( P E E K ( 5 3 E 7 E ) A N D E 4 D ) O 1 R E S T A R T

O P R O G R A MS t a t e m e n t 9 R E A D s t h f i r s t n u m b e r o t h D A T A s t a t e m e n t s . T h i s i t h c h a r a c t e r n u m b e r o t h c h a r a c t e r t b d e f i n e d . I a l s o s e r v e s a s f l a g t s i g n a l w h e n t h e r e i n m o r e D A T A t b r e a d . T h l a s t D A T A s t a t e m e n t

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 245/318

2 3 A p p e n d i x

c o n t a i n s c h a r a c t e r n u m b e r w h i c h i n e g a t i v e a n t h p r o g r a m b r a n c h e st p a r t o t h p r o g r a m w h i c h u t i l i z e s t h n e c h a r a c t e r s . S t a t e m e n t 1 0 R E A D s t h n e x t e i g h t v a l u e s i D A T A s t a t e m e n t . I s t a t e m e n t 1 1 t h c h a r a c t e r n u m b e r , C N , a n d t h r o i n d e x , I a r u s e d t c a l c u l a t e t h m e m o r yl o c a t i o n w h e r e t h r o d e s c r i p t o r w i l l b p l a c e d . S t a t e m e n t 1 2 s e n d s t h p r o g r a m b a c k t s t a t e m e n t 9 0 w h e r e n e c h a r a c t e r n u m b e r i r e a d . S t a t em e n t 1 0 0 0 i t h s t a r t o f t h e p r o g r a m w h i c h u s e s t h n e c h a r a c t e r s e t . T h c h a r a c t e r s e p o i n t e r i l o c a t i o n 5 3 2 7 2 i r e s e t a t h s t a r t o t h p r o g r a m .

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

R R E A D C N I C N < D T H E N 1 D D D1 D F O 1 T R E A D C D 1 1 B 1 4 3 3 b 4 f l * C N I P O K E B Y , D1 5 F O J T 1 3 I M I D $ ( C D $ , l 1 ) • ■ G O T O 1 5 1 4 P O K E B Y P E E K ( B Y ) O ( 7 - J )1 5 N E X T J N E X Ti b G O T O R 1 7 D D A T A D1 7 1 7 1 7 1 7 1 7 1 1 7 1 7 f l

D A T AD A T AD A T AD A T AD A T AD A T AD A T AD A T A

i * i

i i i i * * * » i * * * * * * *i i * * * * * i i * *i

*

i

i

i

i

i

» i

i

d a t a - i1 D D D P O K E 5 3 E 7 E , ( P E E K ( 5 3 2 7 E ) A N E 4 D ) O R 1 T h e r e a r s o m e l i m i t a t i o n s i n h e r e n t i t h p r e v i o u s m e t h o d s o i n c o r

p o r a t i n g n e c h a r a c t e r s . T h e m o s t s e r i o u s l i m i t a t i o n i t h a m o u n t o m e o r c o n s u m e d w i t h t h c h a r a c t e r d e f i n i n g p r o g r a m a n t h e a s s o c i a t e d D A T As t a t e m e n t s . I o n l y f e c h a r a c t e r s a r r e d e f i n e d a n t h r e s t o f t h e p r o g r a mi f a i r l y s h o r t , t h a m o u n t o m e m o r y l e f t m a n o b c o n s t r a i n t . H o w e v e r ,i l o o c h a r a c t e r s a r e r e d e f i n e d o r i t h p r o g r a m u s i n g t h c h a r a c t e r s e i s i z e a b l e , a n o t h e r m e t h o d f o R E A D i n g i t h c h a r a c t e r s e w i l l h a v e t b u s e d . E v e n w i t h b e t t e r m e t h o d , a n p r o g r a m w i t h r e d e f i n e d c h a r a c t e r sg o b b l e s u 2 0 4 8 b y t e s o f t h e R A a r e a t s t o r e t h e c h a r a c t e r s .

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 246/318

C h a r a c t e r s 2 3

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

T h f o l l o w i n g p r o g r a m l o a d s i a c h a r a c t e r s e w h i c h r e p l a c e s t h e l e t t e r st o f t h e g r a p h i c s c h a r a c t e r s e w i t h t h c o r r e s p o n d i n g G o t h i c s t y l e

l e t t e r s . N o t i c e t h a t b e s i d e s r e p l a c i n g c h a r a c t e r s t h r o u g h 2 6 t h c h a r a c t e r s1 2 t h r o u g h 1 5 a r r e p l a c e d . T h e s e a r t h r e v e r s e f i e l d c h a r a c t e r s f o t Z

€ 6 $ O C f > * € C f i f c R A C C E R S E f i & 5 B E E * L O W D E D

" G O T H I C C H A R "1 P O K E 5 2 , 5 6 P O K E 5 6 , 5 6 : C L R : R E M M O V E T O O B A S I C2 P O K E 5 6 3 3 4 , P E E K ( 5 6 3 3 4 ) A N 2 5 3 P O K E 1 P E E K ( l ) A N 2 5

4 F O T 5 1 5 P O K E 1 4 3 3 6 , P E E K ( 5 3 2 4 8 + 1 6 N E X T I R E T R A N S F E R C H A R A C T E R S E 7 P O K E 1 P E E K ( l ) O 8 P O K E 5 6 3 3 4 , P E E K ( 5 6 3 3 4 ) O 9 R E A D C N : I F C N < 0 T H E N 1 0 0 0

1 0 F O 1 T 7 R E A D C 1 1 P O K E 1 4 3 3 6 8 C I C 1 2 P O K E 1 4 3 3 6 ( 1 2 8 C N I 2 5 5 - C D : N E X T1 3 G O T O 9 0 R E D E F I N E N E C H A R A C T E R S

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 247/318

2 3 A p p e n d i x

1 4 P O K E 5 6 3 3 4 , P E E K ( 5 6 3 3 4 ) O 1 5 R E A D C N I C N < 0 T H E N 1 0 0 01 6 F O 1 T 7 R E A D C 1 7 P O K E 1 4 3 3 6 8 C I C D P O K E 1 4 3 3 6 + 8 * N E X T1 8 G O T O 1 5 0 : R E D E F I N E N E W C H A R A C T E R S2 0 D A T A 1 4 8 7 2 , 2 0 , 3 4 6 2 3 4 , 6 5 ,2 0 D A T A 2 9 2 , 3 4 , 6 6 , 1 2 4 , 6 6 3 4 9 2 2 0 D A T A 3 2 8 3 4 , 8 4 , 8 0 , 8 0 , 3 4 2 8

2 0 D A T A 4 8 8 1 0 0 , 6 6 6 6 , 6 6 , 1 0 0 , 8 8 2 0 D A T A 5 9 2 , 3 4 , 6 4 , 1 1 2 , 6 4 , 3 4 , 9 2 ,

2 1 D A T A 6 9 2 , 3 4 , 3 2 1 2 0 , 3 2 3 2 6 4 2 1 D A T A 7 2 8 3 4 , 6 4 , 9 4 , 9 8 , 6 2 , 2

2 1 D A T A 8 2 8 3 4 3 2 6 0 , 3 4 , 3 4 3 6 2 1 D A T A 9 2 6 0 , 7 2 , 8 1 0 , 6 0 , 6 4 ,

2 1 D A T A 1 0 1 2 , 2 , 2 3 4 6 8 5 6

2 2 D A T A 1 1 6 6 , 3 6 , 4 0 , 1 1 2 , 4 0 3 6 6 6

2 2 D A T A 1 2 , 2 4 , 3 6 , 3 2 , . 3 2 , 3 2 , 3 3 , 9 4

2 2 D A T A 1 3 8 4 , 4 2 , 4 2 , 1 0 6 , 4 2 , 4 2 , 6 4 ,2 , 2 6 D A T A 1 4 6 6 , 5 0 , 4 2 , 1 0 6 , 4 2 , 4 2 , 6 8 2 2 D A T A 1 5 , 2 8 , 3 4 , 8 1 8 1 8 1 3 4 , 2 8 ,2 3 D A T A 1 6 9 2 3 4 , 3 4 , 1 2 4 , 3 2 3 2 6 4

2 3 D A T A 1 7 , 5 6 , 8 4 3 4 2 1 2 2 6 1 2 4 ,2 3 D A T A 1 8 , 9 2 , 3 4 , 3 4 , 1 2 0 , 3 6 , 3 4 , 6 6 ,

2 3 D A T A 1 9 2 6 0 6 4 6 0 2 6 0 , 6 4 ,

2 3 D A T A 2 0 1 1 2 6 , 4 8 , 8 0 , 8 0 , 3 3 3 0 2 4 D A T A 2 1 3 3 8 2 1 8 , 1 8 , 1 8 1 8 1 2

2 4 D A T A 2 2 , 7 6 , 1 7 8 , 3 4 , 3 4 , 3 4 , 2 0 , 8

2 4 D A T A 2 3 1 2 8 , 9 2 , 8 2 , 8 2 8 2 , 8 4 , 4 0

2 4 D A T A 2 4 , 3 4 , 8 4 , 1 2 , 8 2 4 , 3 7 , 6 6 ,

2 4 D A T A 2 5 6 6 1 6 4 , 3 6 , 3 6 , 2 6 , 6 6 , 6 0 ,2 5 D A T A 2 6 1 2 6 , 2 4 , 8 , 1 6 , 3 2 , 6 4 , 1 2 9 9 D A T A -

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 248/318

C h a r a c t e r s 2 3

1 0 0 0 P O K E 5 3 2 7 2 f ( P E E K ( 5 3 2 7 2 ) A N D 2 4 0 ) O 1 1 0 1 0 P O K E 5 3 2 8 1 , 1 : P R I N T " [ C L R ] «1 0 2 0 P R I N T " [ B L K ] T H E G O T H I C C H A R A C T E R S E H A B E E N L O A D E D . "

1 0 3 0 N E

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

I I D S $ = " [ w h i t e ] A i

1 D 5 D P R I N T " [ c l e a r ] " ; S $ ; " [ h o m e ] " ;1 D 3 D F O T 3 f 1 D 4 D P R I N T " O [ c u r s o r l e f t ] " ;1 0 5 D F O T O 1 D D : N E X TI D b D P R I N T C [ c u r s o r l e f t ] "1 D 7 D F O R T 1 D D : N E X TI D f l D N E X T

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

I P O K E 5 S , 5 b : P O K E 5 b , 5 k : C L R5 P O K E 5 b 3 3 4 , P E E K ( 5 b 3 3 4 ) A N 2 5

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 249/318

2 3 A p p e n d i x

3 P O K E 1 P E E K ( l ) A N 5 5 4 F O R I = Q t o 5 0 4 75 P O K E 1 4 3 3 b , P E E K ( 5 3 5 4 f l I b N E X T I? P O K E 1 P E E K ( l ) O f l P O K E S b 3 3 4 , P E E K ( 5 b 3 3 4 ) O < = \ Q R E A D C N I C N < 0 T H E N 1 D D D1 D F O 1 T 7 R E A D C D 1 1 0 B Y 1 4 3 3 b f l * C N I P O K E B Y , 01 5 F O J T 1 3 I M I D $ ( C D $ , J l , 1 ) " G O T O 1 5 1 4 P O K E B Y P E E K ( B Y ) O ( 7 - J )1 5 N E X T J N E X Ti b G O T O R 1 7 D A T A 1 R E R E D E F I N E1 7 D A T A * * * * * i 1 7 D A T A " * * * * * * * ■ 1 7 D A T A » 1 7 D A T A » 1 7 D A T A t i * * * * * * *1 7 D A T A i i * * * * * * * i 1 7 D A T A i i * i 1 7 i f l OI f l lI f l 51 6 1 6 1 6 1 6 1 6 1 6 i q i q I R

Q

D A T AD A T AD A T AD A T AD A T AD A T AD A T AD A T AD A T AD A T AD A T AD A T AD A T A

7 r p 7 \

I

3 i

i

1 R E R E D E F I N E

* * * * * * *

i i * * * *i i * *M * * * *I

I

I

* * * * ** *

1 5 R E i

i

i i

* * * * * * *

I

I

I

I

I

I

I

I

R E D E F I N Ei

i

i

1 C 1 4 D A T A i i * * * * * * * i 1 R D A T A i i * * * * * * * i I R D A T A * * * * * I 1 R D A T A * * i q f l D A T A5 0 D A T A 4 b R E R E D E F I N E P E R I O D5 0 D A T A » 5 0 D A T A • 5 0 D A T A " 5 0 D A T A * 5 0 D A T A *

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 250/318

C h a r a c t e r s 2 3

E D D A T A " E D D A T AE D f l D A T A l 1 D D D P O K E 5 3 E 7 E , 3 D1 D 1 D S " [ w h i t e ]

1 D E D P R I N T " [ c l e a r ] ' 1 ; S " [ h o m e ] "1 D 3 D F O T 3 f 1 D 4 D P R I N T " O [ c u r s o r l e f t ] "1 D 5 D F O t o 1 D D : N E X TI D t D P R I N T C [ c u r s o r l e f t ] " ;1 D 7 D F O T O 1 D D : N E X TI D f l D N E X T

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

P O K E 5 3 E 7 E , E

B i M a G r a p h i c sT h C o m m o d o r e 6 i c a p a b l e o d i s p l a y i n g 6 4 , 0 0 0 d o t s o t h s c r e e n .

I i s i m p l e m a t t e r t c o n f i r m t h i s b c a l c u l a t i o n . A w a m e n t i o n e d i t h s e c t i o n o p r o g r a m m a b l e c h a r a c t e r s , e a c h c h a r a c t e r o t h s c r e e n i m a d e u o d o t s i a b m a t r i x . S i n c e r o i 4 c h a r a c t e r s l o n g a n t h e r e a r e 2 r o w s , t h c o m p u t e r i d i s p l a y i n g 3 2 d o t s i t h e h o r i z o n t a ld i r e c t i o n a n 2 0 d o t s i t h v e r t i c a l d i r e c t i o n . T h s t a t e ( o f f o o n o e a c h

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 251/318

2 3 A p p e n d i x

d o o t h s c r e e n c o r r e s p o n d s t t h s t a t u s o f b i t ( 0 o 1 i t h c o m p u t e r ' sm e m o r y . I n t h e b i m a m o d e , e a c h d o o t h s c r e e n c a n b e i n d i v i d u a l l yt u r n e d o a n o f f . T h d i s p l a y o t h s c r e e n i a i m a g e o s e c t i o n o t h c o m p u t e r ' s R A M . S i n c e t h e r e a r e 6 4 , 0 0 0 d o t s o t h s c r e e n a n t h e r e a r eb i t s i b y t e , t h e b i m a r e q u i r e s a b l o c k o 8 , 0 0 0 m e m o r y l o c a t i o n s .

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

C h a r a c t e rC o l u m nR o

C h a r a c t e r r o w s

2

3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2

2 - 2 37 6 8 07 6 8 17 6 8 27 6 8 37 6 8 47 6 8 57 6 8 67 6 8 7

1 1 1 1 1 1

3 2 3 2 3 3 3 3 3 3 3 3 3 3 3 3

7 6 8 87 6 8 97 6 9 07 6 9 17 6 9 27 6 9 37 6 9 47 6 9 5

. . . .1 1 1 1 2 2 2 2

3 3 3 3 3 3 3 3 3 4 3 4 3 4 3 4

7 6 9 67 6 9 77 6 9 87 6 9 97 7 0 07 7 0 17 7 0 27 7 0 3

3 3 0 3 0 3 0 3 0 3 0 3 0 3 1 3 1 6 2 6 2 6 2 6 2 6 2 6 2 6 3 6 3

7 9 8 47 9 8 57 9 8 67 9 8 77 9 8 87 9 8 97 9 9 07 9 9 1

3 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3

7 9 9 27 9 9 37 9 9 47 9 9 57 9 9 67 9 9 77 9 9 87 9 9 9

V e r t i c a lP o s i t i o n

1 1 1 1 1 1

1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9

H o r i z o n . 0 - 7 - 1 5 1 6 - 2 3 3 0 4 - 3 1 1 3 1 2 - 3 1 9

F i g u r e 5 A r r a n g e m e n t o B i M a p .

I t h e h o r i z o n t a l a n v e r t i c a l p o s i t i o n s o p i x e l o t h b i m a a r d e s i g n a t e d a P a n P Y r e s p e c t i v e l y , a e q u a t i o n t c a l c u l a t e t h s p e c i f i cm e m o r y l o c a t i o n , M L w h i c h c o n t a i n s t h c o r r e s p o n d i n g b i t , c a n b e d e r i v e d .T h c h a r a c t e r r o w , R W a n c h a r a c t e r c o l u m n , C L o t h m e m o r y l o c a t i o na r o b t a i n e d b d i v i d i n g t h h o r i z o n t a l a n v e r t i c a l c o o r d i n a t e s . T h q u t i e n t s a r t h c h a r a c t e r r o a n c h a r a c t e r c o l u m n .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 252/318

B i M a G r a p h i c s 2 3

C I N T ( P X / f l )R I N T ( P Y / f l )T h f i r s t m e m o r y l o c a t i o n i t h c h a r a c t e r b l o c k o s p e c i f i c r o a n

c o l u m n , F M L , i d e f i n e d b t h e f o l l o w i n g r e l a t i o n s h i p .F M f l * C L 3 2 D * R WF M f l * ( C L 4 D * R W )A o f f s e t i n t o t h c h a r a c t e r b l o c k h a t b a d d e d t t h f i r s t m e m o r y

l o c a t i o n o t h c h a r a c t e r b l o c k t o b t a i n t h e l o c a t i o n w h i c h c o n t a i n s t h d e s i g n a t e d p i x e l . T h o f f s e t , O Y i t h r e m a i n d e r w h e n i d i v i d e d i n t o P Y T h f o l l o w i n g r e l a t i o n s h i p d e t e r m i n e s O Y

O P f l * I N T ( P Y / f l )O P f l * R W

T h m e m o r y l o c a t i o n w h i c h c o n t a i n s t h p i x e l a ( P X , P Y i e q u a l t t h f i r s t m e m o r y l o c a t i o n o t h c h a r a c t e r b l o c k p l u s t h e o f f s e t . S u b s t i t u t i n gf o O a n c o l l e c t i n g s i m i l a r t e r m s , w g e

M f l * ( C L 4 D * R W ) O M f l * ( C L 4 D * R W ) P - f l * R WM f l * ( C L 3 R * R W ) P S u b s t i t u t i n g f o C a n R W t h r e l a t i o n s h i p b e c o m e sM f l * I N T ( P X / f l ) + 3 S * ( I N T ( P Y / f l ) ) + P T h i s a s s u m e s b i m a s t a r t i n g a t a d d r e s s 0 T h l o c a t i o n o f t h e b i m a c a v a r y d e p e n d i n g o h o i i s e u p T h a d d r e s s o t h b y t e i t h

b i m a i d e t e r m i n e d b a d d i n g a o f f s e t e q u a l t t h s t a r t i n g a d d r e s s o t h b i m a p .

M S f l * I N T ( P X / f l ) 3 q * ( I N T ( P Y / f l ) ) + P T h l o c a t i o n o t h b i i t h b y t e w h i c h c o n t r o l s t h p i x e l i t h r

m a i n d e r w h e n P i d i v i d e d b 8 T h r e m a i n d e r i t h o f f s e t t t h r i g h t .

o f f s e t t r i g h t = P f l * I N T ( P X / f l )F o r e x a m p l e , i P 1 9 t h r e m a i n d e r a f t e r d i v i d i n g b e i g h t i t h r e e .

T h b i t b s e i t h r e e b i t s t t h r i g h t o f t h e l e f t m o s t b i t . T h b i a r r a n g em e n t o t h e s c r e e n h a t h e h i g h e s t b i o m e m o r y l o c a t i o n , b i t 7 i t h l e f t m o s t p o s i t i o n . I n t h e e x a m p l e , t h e t h i r d b i t t o t h r i g h t i b i 4 T h n u m b e r o t h b i t b s e o r c l e a r e d f o s p e c i f i c P i d e s c r i b e d b t h r e l a t i o n s h i p

B ( P X - f l * I N T ( P X / f l ) )p i x e l i t u r n e d o n b y O R i n g t h e x i s t i n g c o n t e n t s o l o c a t i o n w i t h

t t h b i p o w e r . p i x e l i t u r n e d o f b A N D i n g t h e x i s t i n g c o n t e n t s o l o c a t i o n w i t h t h c o m p l e m e n t o t t h b i p o w e r . T h p r o c e d u r e f o p l o t t i n go r e r a s i n g p o i n t o t h b i m a c a n b e s u m m a r i z e d a f o l l o w s :

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 253/318

2 4 A p p e n d i x 2

1 F i n d t h m e m o r y l o c a t i o n a n b i r e f e r r e d t b t h p i x e l c o o r d i n a t e s ,P a n P Y

M S f f l * ( I N T ( P X / f l ) 3 q * I N T ( P Y / f l ) P B ( P X - f l * I N T ( P X / f l ) )2 P l o t p o i n t ,P O K E M L P E E K ( M L ) O ( 5 | B T )

o e r a s e p o i n t ,P O K E M L P E E K ( M L ) A N N O ( 5 | B T )T h c o l o r s o f t h f o r e g r o u n d ( p i x e l o n a n b a c k g r o u n d ( p i x e l o f f ) d i

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

I a r e a o R A M . T h c o n t e n t s o e a c h b y t e i t h e c o l o r m a d e f i n e t h ef o r e g r o u n d a n b a c k g r o u n d c o l o r s o a b r e g i o n o t h s c r e e n . T h p o s i t i o n o f e a c h r e g i o n c o r r e s p o n d s t t h e p o s i t i o n c h a r a c t e r w o u l d o c c u p yo t e x t s c r e e n . T h c o l o r b y t e i d i v i d e d i n t o t w p a r t s . B i t s 0 - d e f i n e t h s c r e e n c o l o r a n b i t s 4 - d e f i n e t h e f o r e g r o u n d c o l o r . A l l 1 c o l o r s a v a i l a b l et t h C o m m o d o r e 6 c a b u s e d i a n c o m b i n a t i o n . T h o n l y l i m i t a t i o ni t h a t n m o r e t h a n t w c o l o r s c a b e w i t h i n a n b c o l o r r e g i o n . T a b l e

l i s t s t h v a l u e s f o a l t h e c o l o r c o m b i n a t i o n s .T h b i m a m o d e i s e l e c t e d b t h c o n d i t i o n o b i o l o c a t i o n 5 3 2 6 5 .

T h c o m m a n d t t u r n o t h b i m a i P O K E 5 3 5 b 5 , P E E K ( 5 3 5 b 5 ) O 3 T h b i m a i t u r n e d o f w i t hP O K E 5 3 5 t 5 , P E E K ( 5 3 5 b 5 ) A N D N O T 3 T h f o l l o w i n g p r o g r a m d e m o n s t r a t e s t h b i m a g r a p h i c s m o d e . F i r s t ,

t h a r e a t b u s e d f o t h b i m a m u s t b p r o t e c t e d f r o m B A S I C . T h i s i a c c o m p l i s h e d b c h a n g i n g t h e n o B A S I C a n t h s t a r t o f s t r i n g p o i n t e r s .

I P O K E 5 5 , 3 5 : P O K E 5 b , 3 5 C L T h b i m a a n c o l o r m a l o c a t i o n s a r s e l e c t e d . T h b i m a i l o c a t e d

f r o m 8 1 9 2 t 1 6 3 8 3 a n t h c o l o r m a i l o c a t e d f r o m 1 0 2 4 t 2 0 2 3 . T h b i m a i t h e n t u r n e d o n

5 S S I R S : S 1 D 5 43 P O K E 5 3 5 7 5 , 5 R E M B I T M f i P A N C O L O R M A L O C A T I O N SA P O K E 5 3 5 b 5 , P E E K ( 5 3 5 t 5 ) O 3 5 R E T U R N O B I T M A PN e x t , t h e c o l o r m a i f i l l e d w i t h o n e s . T h i s g i v e s w h i t e s c r e e n a n

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

5 G O S U B 5 3 D : R E C O L O R S C R E E Nt G O S O B 5 5 D : R E C L E A R S C R E E N

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 254/318

                       

                                               

    

    

      

     

    

   

     

     

    

      

      

        

        

       

       

                                         

                                         

                                         

                                          

                                           

                                          

                                           

                                          

                                           

                                           

                                              

   

                                             

                                                

                                              

                                               

                                               

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 255/318

2 4 A p p e n d i x 2

5 3 F O = S T S C + q q q : P O K E I , 1 : N E X T5 4 R E T U R N5 5 F O S T S f 7 c l c m : P O K E I D : N E X T5 b R E T U R N

T h f i r s t p o i n t i p l o t t e d i t h m i d d l e o f t h e b i m a p . T h e p o i n t p l o t t i n gi w r i t t e n a s u b r o u t i n e .

? D P X 1 5 = 1 : P q q G O S U B 2 7 : R E M P L O T P O I N TE 7 M S A f l * ( I N T ( P X / f l ) 3 q * I N T ( P Y / f l ) P 5 f i O B - ( P X f l * I N T ( P X / f l )5 q P O K E M L P E E K ( M L ) O ( 5 | B T )3 D R E T U R N

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

f l G O S U B 1 1 0 : I F J = 1 T H E N f l D : R E R E f i D J O Y S T I C K9 G O S U B 5 7 0 : R E P L O T N E P O I N T1 D G O T O f l

1 1 P E E K ( 5 t 3 S 0 ) A N 1 1 5 I ( A N f l = T H E N P P 1 R E R I G H T1 3 I ( A N A T H E N P P X - 1 : R E L E F T1 4 I ( A N 5 ) = D T H E N P Y P 1 R E D O W N1 5 I ( A N 1 ) = D T H E N P P Y - 1 : R E U l b i P Y > i q q t h e n p = i q q1 7 I P Y < D T H E N P i f l D I P X > 3 i q T H E N P 3 i i q I P X < D T H E N P 5 0 G E A $ I A $ » [ C L R ] » T H E N G O S U B 5 5 0 : G O S U B 5 7 0 :

R E C L E A R S C R E E N5 1 I A $ " [ F 7 ] " T H E N 3 1 0 : R E E X I T O F 5 5 R E T U R N

I t h C L R / H O M E k e i p r e s s e d w h i l e t h s h i f t k e i h e l d d o w n , t h b i m a i c l e a r e d . P r e s s i n g t h e F k e t u r n s o f t h b i m a a n e n d s t h p r g r a m .

3 1 P O K E 5 3 5 7 5 , 5 1 R E N O R M A L S C R E E N A N C H A R A C T E R S3 5 P O K E 5 3 5 t 5 , P E E K ( S 3 5 f c S ) A N D N 0 T 3 5 : R E T U R N O F F

B I T M A P3 3 E N

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 256/318

B i M a G r a p h i c s 2 4

T h i s p r o g r a m t u r n s y o u r C o m m o d o r e 6 i n t o j o y s t i c k - c o n t r o l l e d s k e t c hp a d .

T h d e s c r i p t i o n o t h e h i g h - r e s o l u t i o n g r a p h i c s u t t h i s p o i n t h a b e e nv e r y l i m i t e d i s c o p e . F o o n t h i n g , a n B A S I C p r o g r a m i l i m i t e d t 6 i s i z e b t h m e m o r y a n g r a p h i c s c o n f i g u r a t i o n . F u r t h e r m o r e , t h c o m m a n d su s e d t e n a b l e t h b i m a a n p l o t p o i n t s o i a r c u m b e r s o m e . T h e s es h o r t c o m i n g s c a n b r e m e d i e d u s i n g t h f o l l o w i n g p r o g r a m , M I N I G R A P H .T h e p r o g r a m l o a d s s e o m a c h i n e l a n g u a g e r o u t i n e s i n t o m e m o r y l o c a t i o n s3 6 8 8 3 t 3 7 6 8 1 . E n a b l i n g t h b i m a a n p l o t t i n g o i a r r e d u c e d t s i n g l ec o m m a n d s . T h b i m a i l o c a t e d o u t s i d e t h B A S I C p r o g r a m R A l o c a t i o n sl e a v i n g 3 3 o R A f o w r i t i n g p r o g r a m s . A n a a a d d e d b o n u s , t h r o t i n e s a r e x e c u t e d v e r y r a p i d l y s i n c e t h e y a r w r i t t e n i m a c h i n e c o d e . W h e ne n t e r i n g t h n u m b e r s i t h D A T A s t a t e m e n t s , i i e x t r e m e l y i m p o r t a n t t b a c c u r a t e . A i n c o r r e c t n u m b e r c a s e n d t h c o m p u t e r i n t o n e v e r - n e v e rl a n d . I t h a t h a p p e n s , t h o n l y w a t r e g a i n c o n t r o l i t t u r n t h c o m p u t e ro f f . T h i s r e s u l t s i n t h l o s s o t h p r o g r a m i t h m e m o r y a t h e t i m e .

E n t e r t h p r o g r a m a n s a v e i o t a p e o d i s k . T h i s i u t i l i t y p r o g r a mt h a t w i l l b l o a d e d i n t o t h c o m p u t e r a n d r u b e f o r e a n o t h e r p r o g r a m t h a tu s e s t h e r o u t i n e s i l o a d e d . T h r o u t i n e s a r e c a l l e d w i t h S Y c o m m a n d .S Y c o m m a n d s e n d s t h c o m p u t e r t t h d e s i g n a t e d l o c a t i o n i t h m e m o r ya n e x e c u t e s t h m a c h i n e c o d e t h e r e . A f t e r e x e c u t i n g t h r o u t i n e , t h c o p u t e r r e t u r n s c o n t r o l t t h B A S I C p r o g r a m . T h b i m a i e n a b l e d w i t ht h c o m m a n d

S Y 5 0 1 ^ 5T h b i m a i d i s a b l e d w i t h

S Y S D l R f l

T h b i m a i c l e a r e d , i . e . , a l t h b i t s a r z e r o , w i t h

S Y 5 D E D 7

T h c o l o r s d i s p l a y e d o t h b i m a a r s e w i t hS Y 5 D E 1 D , F

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

S Y 5 0 5 0 1 , X , Y ,

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 257/318

2 4 A p p e n d i x

a n a r e t h e h o r i z o n t a l a n v e r t i c a l p o s i t i o n s o t h p o i n t . T h h o r i z o n t a lp o s i t i o n c a b f r o m t 3 1 a n t h v e r t i c a l p o s i t i o n c a b f r o m t 1 9 9 .T h u p p e r l e f t c o r n e r i 0 , 0 . T h l a s t v a r i a b l e , M s e t s t h p l o t t i n g m o d e . I t h v a l u e o i o n e , p o i n t i p l o t t e d i t h f o r e g r o u n d c o l o r . I i t w o ,a p o i n t i p l o t t e d i t h b a c k g r o u n d c o l o r . I i z e r o , t h c o l o r o t h p o i n ti f l i p p e d . I t h p o i n t a t h a t l o c a t i o n i i t h f o r e g r o u n d c o l o r , i i c h a n g e dt t h b a c k g r o u n d c o l o r , a n v i c e v e r s a . l i n e i d r a w n w i t h t h c o m m a n d

S Y S 5 D E D 4 , X Y

a n a r e t h e h o r i z o n t a l a n v e r t i c a l p o s i t i o n s o f t h e e n p o i n t o t h l i n e . T h s t a r t i n g p o i n t o t h l i n e i d e f i n e d b e i t h e r t h p o i n t p l o t t i n gc o m m a n d o b t h e n p o i n t o t h l a s t l i n e d r a w n . T h d r a w i n g m o d e i t h s a m e a i t h p o i n t p l o t t i n g r o u t i n e . V a l u e s o u t s i d e t h a l l o w e d r a n g e sf o X Y M F a n w i l l c a u s e a I L L E G A L Q U A N T I T Y E R R O R .

N O T E : T h i s l i n e d r a w i n g c o m m a n d m u s t a l w a y s b e i t h e r t h l a s t i s t r u c t i o n i B A S I C p r o g r a m l i n e , o m u s t b a l o n e o i t o w l i n e . I n o t ,y o w i l l s e a E R R O R m e s s a g e . I S Y N T A X a n I L L E G A L E R R O R s b e g i na p p e a r i n g i a n p r o g r a m t h a t u s e s M I N I G R A P H , c h e c k f o t h i s u n i q u ep r o b l e m .

T h p r o g r a m f o l l o w i n g M I N I G R A P H d e m o n s t r a t e s h o t u s t h r o t i n e s t o d r a w s e v e r a l g e o m e t r i c s h a p e s o t h b i m a s c r e e n . T e x i t t h p r o g r a m , h o l d d o w n a n k e y .

M I N I G R A P H . D A T C O M M O D O R E 6

1 P R I N T " [ C L R ] M I N I G R A P H L O A D E R B P A U L S C H A T Z "2 P R I N T " P L E A S E W A I T . . . "3 0 F O 5 0 1 9 5 T O 5 0 9 7 5 : R E A D B 4 P O K E I B Y B Y N E X T5 I A O 9 5 6 1 9 T H E N P R I N T " E R R O R I D A T A S T A T E M E N T S " : S T O P6 P R I N T " [ C L R ] M I N I G R A P H I N S T R U C T I O N S "7 P R I N T " [ C R S R D O W N ] T U R N O B I T M A P - S Y S 5 0 1 9 5 "8 P R I N T " T U R N O F B I T M A P - S Y S 5 0 1 9 8 "9 P R I N T " C L E A R B I T M A P - S Y S 5 0 2 0 7 "1 0 P R I N T " C O L O R B I T M A P - S Y S 5 0 2 1 0 , F , B "

1 1 P R I N T " P L O T P O I N T X , - S Y S 5 0 2 0 1 , X , Y , M "

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 258/318

B i M a G r a p h i c s 2 4 1 2 P R I N T M D R A W L I N E T O X , Y - S Y S 5 0 2 0 4 , X , Y , M "1 3 P R I N T 1 1 [ C R S R D O W N ] F F O R E G R O U N D B A C K G R O U N D "1 4 P R I N T " X T 3 1 T 1 9 9 "1 5 P R I N T " M 0 1 O ( F L I P , D R A W , O R E R A S E )

1 6 N E 2 0 D A T A 7 6 , 2 4 4 , 1 9 8 , 7 6 7 , 1 9 9 , 7 6 3 7 , 1 9 6 , 7 6 , 1 1 4 , 1 9 7 , 7 6 3 0 , 1 9 7 , 7 6 , 6 62 1 D A T A 1 9 7 , 1 6 9 , 0 , 1 4 1 , 4 , 1 9 6 , 3 2 , 2 5 3 , 1 7 4 , 3 2 , 2 3 5 , 1 8 3 , 2 2 4 , 2 0 0 , 1 4 4 , 3 7 2 2 D A T A 2 6 , 1 9 9 , 1 4 2 , 3 , 1 9 6 , 1 6 6 , 2 0 , 1 6 5 , 2 1 , 2 4 0 , 8 , 2 0 1 , 1 , 2 0 8 , 2 4 0 , 2 2 4 , 6 2 3 D A T A 1 7 6 , 2 3 6 , 1 4 1 , 2 , 1 9 6 , 1 4 2 , 1 , 1 9 6 , 3 2 , 2 5 3 , 1 7 4 , 3 2 , 1 5 8 , 1 8 3 , 2 2 4 , 3 , 1 7 62 4 D A T A 2 2 0 , 1 4 2 , 0 , 1 9 6 , 1 7 3 , 0 , 1 9 6 , 2 4 0 , 2 7 7 4 , 1 4 4 , 1 2 3 2 , 1 7 4 , 1 9 6 , 3 2 , 1 3 5

2 5 D A T A 1 9 6 , 2 9 , 1 5 8 , 1 9 6 , 1 4 5 , 2 5 1 , 9 6 3 2 , 1 7 4 , 1 9 6 , 3 2 , 1 3 5 , 1 9 6 , 6 1 , 1 6 6 , 1 9 6 , 1 4 52 6 0 D A T A 2 5 1 , 9 6 3 2 , 1 7 4 , 1 9 6 , 3 2 , 1 3 5 , 1 9 6 , 9 3 , 1 5 8 , 1 9 6 , 1 4 5 , 2 5 1 , 9 6 , 1 7 3 , 1 , 1 9 62 7 D A T A 4 1 7 , 1 7 0 , 1 2 0 , 1 6 0 , 5 2 , 1 3 2 , 1 , 1 6 0 , 0 , 1 7 7 , 2 5 1 , 1 6 0 , 5 5 , 1 3 2 , 1 8 2 8 D A T A 1 6 0 , 0 9 6 , 1 2 8 , 6 4 , 3 2 , 1 6 , 8 4 2 1 , 1 2 7 , 1 9 1 , 2 2 3 , 2 3 9 , 2 4 7 , 2 5 12 9 D A T A 2 5 3 , 2 5 4 , 1 6 9 , 0 , 1 3 3 , 2 5 1 , 1 6 9 , 2 2 4 , 1 3 3 , 2 5 2 , 1 7 3 , 1 , 1 9 6 , 4 1 , 2 4 8 , 2 4 , 1 0 13 0 D A T A 2 5 1 , 1 3 3 , 2 5 1 , 1 7 3 , 2 , 1 9 6 , 1 0 1 , 2 5 2 , 1 3 3 , 2 5 2 , 1 7 3 , 3 , 1 9 6 , 7 2 , 4 1 , 7 2 3 1 D A T A 1 0 1 , 2 5 1 , 1 3 3 , 2 5 1 , 1 4 4 , 2 , 2 3 0 , 2 5 2 , 1 0 4 , 7 4 7 4 , 7 4 , 1 0 , 1 7 0 , 1 8 9 , 2 3 6 , 1 9 6

3 2 D A T A 2 4 , 1 0 1 , 2 5 1 , 1 3 3 , 2 5 1 , 1 8 9 , 2 3 7 , 1 9 6 , 1 0 1 , 2 5 2 , 1 3 3 , 2 5 2 , 9 6 0 , 0 , 6 4 3 3 D A T A 1 2 8 , 2 , 1 9 2 , 3 , 0 , 5 , 6 4 6 , 1 2 8 , 7 , 1 9 2 , 8 , 0 , 1 0 6 4 1 1 , 1 2 83 4 D A T A 1 2 , 1 9 2 , 1 3 0 1 5 6 4 1 6 , 1 2 8 , 1 7 , 1 9 2 , 1 8 0 2 0 , 6 4 , 2 1 , 1 2 8 , 2

3 5 D A T A 1 9 2 , 2 3 0 2 5 6 4 2 6 , 1 2 8 , 2 7 , 1 9 2 , 2 8 0 3 1 3 , 1 6 2 , 3 2 , 1 6 9 , 2 2 4 , 1 3 33 6 D A T A 2 5 2 , 1 6 9 , 0 , 1 3 3 , 2 5 1 , 1 6 8 , 1 4 5 , 2 5 1 , 2 0 0 , 2 0 8 , 2 5 1 , 2 3 0 , 2 5 2 , 2 0 2 , 2 0 8 , 2 4 6 , 9 3 7 D A T A 3 2 , 2 5 3 , 1 7 4 , 3 2 , 1 5 8 , 1 8 3 , 2 2 4 , 1 6 , 1 4 4 , 3 7 6 2 6 , 1 9 9 , 9 6 , 1 6 9 , 1 9 2 , 1 3 33 8 D A T A 2 5 2 , 1 6 9 , 0 , 1 3 3 , 2 5 1 , 3 2 5 2 , 1 9 7 , 1 3 8 , 1 0 , 1 0 , 1 0 1 0 , 1 4 1 , 9 , 1 9 6 , 3 3 9 D A T A 5 2 , 1 9 7 , 1 3 8 , 1 3 9 , 1 9 6 , 1 6 2 , 2 , 1 6 0 , 0 , 1 4 5 , 2 5 1 , 2 0 0 , 2 0 8 , 2 5 1 , 2 3 0 , 2 5 24 0 0 D A T A 2 0 2 , 1 6 , 2 4 6 , 1 4 5 , 2 5 1 , 2 0 0 , 1 9 2 , 2 3 2 , 1 4 4 , 2 4 9 , 9 6 , 1 6 9 , 0 , 1 4 1 , 8 , 1 9 6 , 1 4 14 1 D A T A 1 0 , 1 9 6 , 3 2 , 2 5 3 , 1 7 4 , 3 2 , 2 3 5 , 1 8 3 , 2 2 4 , 2 0 0 , 1 4 4 , 3 7 6 2 6 , 1 9 9 , 1 4 2 ,4 2 D A T A 1 9 6 , 1 6 6 , 2 0 , 1 6 5 , 2 1 , 2 4 0 , 8 , 2 0 1 , 1 , 2 0 8 , 2 4 0 , 2 2 4 , 6 4 , 1 7 6 , 2 3 6 , 1 4 1 ,4 3 D A T A 1 9 6 , 1 4 2 , 5 , 1 9 6 , 3 2 , 2 5 3 , 1 7 4 , 3 2 , 1 5 8 , 1 8 3 , 2 0 1 , 3 , 1 7 6 , 2 2 0 , 1 4 2 , 0 , 1 9 64 4 0 D A T A 1 7 3 , 5 , 1 9 6 , 5 6 , 2 3 7 , 1 , 1 9 6 , 1 4 1 , 1 2 , 1 9 6 , 1 7 3 , 6 , 1 9 6 , 2 3 7 , 2 , 1 9 6 , 1 4 14 5 D A T A 1 3 , 1 9 6 , 1 6 2 0 , 2 0 6 , 1 0 , 1 9 6 , 5 6 , 1 6 9 , 0 , 2 3 7 , 1 2 , 1 9 6 , 1 4 1 , 1 2 , 1 9 6 , 1 6 94 6 D A T A 0 , 2 3 7 , 1 3 , 1 9 6 , 1 4 1 , 1 3 , 1 9 6 , 1 6 9 , 0 , 1 4 1 , 1 1 , 1 9 6 , 1 7 3 , 7 , 1 9 6 , 5 6 , 2 3 74 7 D A T A 3 , 1 9 6 , 1 4 1 , 1 4 , 1 9 6 , 1 7 3 , 8 , 1 9 6 , 2 3 7 , 4 , 1 9 6 , 1 4 1 , 1 5 , 1 9 6 , 1 6 2 0 , 2 0 6

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 259/318

2 4 A p p e n d i x 2

4 8 D A T A 1 1 , 1 9 6 , 5 6 , 1 6 9 , 0 , 2 3 7 , 1 4 , 1 9 6 , 1 4 1 , 1 4 , 1 9 6 , 1 6 9 , 0 , 2 3 7 , 1 5 , 1 9 6 , 1 4 14 9 D A T A 1 5 , 1 9 6 , 1 6 9 , 0 , 1 4 1 , 1 8 , 1 9 6 , 1 7 3 , 1 4 , 1 9 6 , 5 6 , 2 3 7 , 1 2 , 1 9 6 , 1 7 3 , 1 5 , 1 9 65 0 D A T A 2 3 7 , 1 3 , 1 9 6 , 1 4 4 , 2 7 , 1 7 4 , 1 4 , 1 9 6 , 1 7 3 , 1 2 , 1 9 6 , 1 4 1 , 1 4 , 1 9 6 , 1 4 2 , 1 2 , 1 9 65 1 D A T A 1 7 4 , 1 5 , 1 9 6 , 1 7 3 , 1 3 , 1 9 6 , 1 4 1 , 1 5 , 1 9 6 , 1 4 2 , 1 3 , 1 9 6 , 2 0 6 , 1 8 , 1 9 6 , 1 7 3 , 1 5 2 D A T A 1 9 6 , 1 4 1 , 1 6 , 1 9 6 , 1 7 3 , 1 3 , 1 9 6 , 1 4 1 , 1 7 , 1 9 6 , 3 2 9 1 , 1 9 6 , 1 7 3 , 1 8 , 1 9 6 , 2 0 85 3 D A T A 1 8 , 1 7 3 , 1 , 1 9 6 , 2 0 5 , 5 , 1 9 6 , 2 0 8 , 2 7 , 1 7 3 , 2 , 1 9 6 , 2 0 5 , 6 , 1 9 6 , 2 0 8 , 1 5 4 D A T A 2 4 0 , 1 6 , 1 7 3 , 3 , 1 9 6 , 2 0 5 , 7 , 1 9 6 , 2 0 8 , 9 , 1 7 3 , 4 , 1 9 6 , 2 0 5 , 8 , 1 9 6 , 2 0 85 5 D A T A 1 9 6 , 1 7 3 , 1 8 , 1 9 6 , 2 0 8 , 6 3 2 , 1 9 2 , 1 9 8 , 7 6 , 1 1 8 , 1 9 8 , 3 2 , 2 1 8 , 1 9 8 , 3 5 6 D A T A 1 5 2 , 1 9 8 , 3 2 , 1 5 2 , 1 9 8 , 1 6 2 0 , 1 7 3 , 1 8 , 1 9 6 , 2 0 8 , 6 3 2 , 2 1 8 , 1 9 8 , 7 6 , 1 4 05 7 D A T A 1 9 8 , 3 2 , 1 9 2 , 1 9 8 * , 3 2 , 1 7 2 , 1 9 8 , 3 2 , 1 7 2 , 1 9 8 , 3 2 9 1 , 1 9 6 , 7 6 6 4 , 1 9 8 , 1 7 35 8 D A T A 1 6 , 1 9 6 , 5 6 , 2 3 7 , 1 4 , 1 9 6 , 1 4 1 , 1 6 , 1 9 6 , 1 7 3 , 1 7 , 1 9 6 , 2 3 7 , 1 5 , 1 9 6 , 1 4 1 , 1 5 9 D A T A 1 9 6 , 9 6 , 1 7 3 , 1 6 , 1 9 6 , 2 4 , 1 0 9 , 1 2 , 1 9 6 , 1 4 1 , 1 6 , 1 9 6 , 1 7 3 , 1 7 , 1 9 6 , 1 0 9 , 1 6 0 D A T A 1 9 6 , 1 4 1 , 1 7 , 1 9 6 , 9 6 , 1 7 3 , 1 0 , 1 9 6 , 2 0 8 , 9 , 2 3 8 , 1 , 1 9 6 , 2 0 8 , 3 , 2 3 8 ,6 1 D A T A 1 9 6 , 9 6 , 1 7 3 , 1 , 1 9 6 , 2 0 8 , 3 , 2 0 6 , 2 , 1 9 6 , 2 0 6 , 1 , 1 9 6 , 9 6 , 1 7 3 , 1 1 , 1 9 66 2 D A T A 2 0 8 , 9 , 2 3 8 , 3 , 1 9 6 , 2 0 8 , 3 , 2 3 8 , 4 , 1 9 6 , 9 6 , 1 7 3 , 3 , 1 9 6 , 2 0 8 , 3 , 2 0 66 3 D A T A 4 , 1 9 6 , 2 0 6 , 3 , 1 9 6 , 9 6 , 1 7 3 , 0 , 2 2 1 , 4 1 , 2 5 2 , 1 4 1 , 0 , 2 2 1 ^ 1 6 9 , 5 9 , 1 4 16 4 D A T A 1 7 , 2 0 8 , 1 6 9 , 8 , 1 4 1 , 2 4 , 2 0 8 , 9 6 , 1 7 3 , 0 , 2 2 1 , 9 3 , 1 4 1 , 0 , 2 2 1 , 1 6 9

6 5 D A T A 2 7 , 1 4 1 , 1 7 , 2 0 8 , 1 6 9 , 2 1 , 1 4 1 , 2 4 , 2 0 8 , 9 6 3 2 7 , 1 9 9 , 7 6 7 2 , 1 7 8

I H N I G R A P H I N S T R U C T I O H S

M I N I G R A P H . D E M O1 P R I N T " [ C L R ] M I N I G R A P H D E M O "2 P R I N T " B Y P A U L S C H A T Z "3 G O S U B 1 0 0 0 : R E M P A U S E4 S Y S 5 0 2 0 7 : R E M C L E A R B I T M A P

C O M M O D O R E 6

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 260/318

B i M a G r a p h i c s 2 4

5 S Y S 5 0 2 1 0 , 1 , 2 : R E C O L O R B I T M A P6 S Y S 5 0 1 9 5 : R E M T U R N O B I T M A P7 N l = 3 0 : N 2 = 3 3 : R E M D R A W S Q U A R E S8 F O R I = 0 T O 1 2 : X 1 = N 1 - 2 * I : X 2 = N 2 + I [ U P A R R O W ] 29 S Y S 5 0 2 0 1 , X 1 , X 1 , 1 : R E P L O T P O I N T1 0 S Y S 5 0 2 0 4 , X 2 , X 1 , 1

1 1 S Y S 5 0 2 0 4 r X 2 , X 2 , l1 2 S Y S 5 0 2 0 4 , X 1 , X 2 , 11 3 S Y S 5 0 2 0 4 , X 1 , X 1 , 11 4 N E X T1 5 G O S U B 1 0 0 01 6 S Y S 5 0 2 1 0 , 5

1 7 0 S Y S 5 0 2 0 71 8 F P = 1 : A 1 = 7 7 : B = 2 3 : D = 9 : C = 1 9 F O = T 4 0 : C = C + D L : A 1 * C * / 1 8 0 : = B 1 * C * / 1 8 02 0 = I N T ( 1 0 0 * S I N ( A ) + 1 6 0 . 5 )2 1 I N T ( 8 0 * C O S ( B ) + 1 0 0 . 5 )2 2 I F P = 1 T H E N F = 0 S Y S 5 0 2 0 1 , X , Y , 0 : G O T O 2 4 2 3 0 S Y S 5 0 2 0 4 , X , Y ,2 4 N E X T2 5 G O S U B 1 0 0 02 6 0 S Y S 5 0 2 1 0 , 7

2 7 0 S Y S 5 0 2 0 72 8 X 0 X 3 1 2 9 F O T O 1 9 93 0 Y I Y 1 9 9 - 13 1 S Y 5 0 2 0 1 , X I Y l 3 2 S Y 5 0 2 0 4 , X 2 , Y 2 ,3 3 N E X T3 4 Y 1 9 9 : Y = 3 5 F O 1 = T 3 1 3 6 X 1 = I : X 2 = 3 1 9 - I3 7 0 S Y S 5 0 2 0 1 , X I , Y l ,

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 261/318

A p p e n d i x 2

3 8 S Y S 5 0 2 0 4 , X 2 , Y 2 ,3 9 N E X T

4 0 G O S U B 1 0 0 04 1 0 S Y S 5 0 2 1 0 , 0 1 4 2 0 S Y S 5 0 2 0 74 3 P P = 1 : A 1 = 1 3 : B = 2 6 : D = 6 = 4 4 F O = T 8 0 : C = C + D L : A A 1 * C * / 1 8 0 : = B 1 * C * / 1 8 04 5 = I N T ( 1 0 0 * C O S ( A ) + 1 6 0 . 5 )4 6 Y I N T ( 8 0 * S I N ( B ) + 1 0 0 . 5 )4 7 I F P » 1 T H E N F = 0 S Y S 5 0 2 0 1 , X , Y , 1 : G O T O 2 4 4 8 S Y 5 0 2 0 4 , X Y 4 9 N E X T5 0 G O S U B 1 0 0 05 1 0 S Y S 5 0 2 1 0 , 1 5 1 5 2 S Y 5 0 2 0 75 3 F O T 3 1 5 4 Y = I N T ( 1 0 0 + 7 0 * S I N ( X / 1 0 ) )

5 5 S Y S 5 0 2 0 1 , 1 6 0 , 1 0 , 15 6 S Y S 5 0 2 0 4 , X Y 5 7 N E X T9 0 G E A $ : I F A $ = n t l T H E N 3

9 1 S Y S 5 0 1 9 89 2 E N 1 0 0 0 F O I = 0 T O 2 0 0 0 : N E X T I : R E T U R N

F e C o n c l u d i n g R e m a r k sT h i s c h a p t e r i a v e r y b r i e f a n b a s i c i n t r o d u c t i o n t t h C o m m o d o r e

6 g r a p h i c s . H o p e f u l l y i w i l l g i v e y o s t a r t i n g p o i n t f o i n c o r p o r a t i n g t h g r a p h i c s f e a t u r e s i n t o y o u r o w p r o g r a m s . T a b l e l i s t s a l 4 m e m o r y l c a t i o n s w h i c h c o n t r o l t h e V I c h i p . T h l a s t c o l u m n i n d i c a t e s t h g r a p h i c sf e a t u r e e a c h l o c a t i o n a f f e c t s , f o s p r i t e s , f o r b i t m a m o d e , a n f o c h a r a c t e r m o d e . T h i s t a b l e w i l l b h a n d y r e f e r e n c e w h e n y o a r r e a d y t e x p e r i m e n t w i t h f u r t h e r g r a p h i c f e a t u r e s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 262/318

F e C o n c l u d i n g R e m a r k s 2 4

T A B L E 9 V i d e o I n t e r f a c e C o n t r o l l e r M e m o r y L o c a t i o n sL o c a t i o n V i d e o O p e r a t i o n

5 3 2 4 85 3 2 4 95 3 2 5 05 3 2 5 15 3 2 5 25 3 2 5 35 3 2 5 45 3 2 5 55 3 2 5 65 3 2 5 75 3 2 5 85 3 2 5 95 3 2 6 05 3 2 6 15 3 2 6 25 3 2 6 35 3 2 6 45 3 2 6 5

5 3 2 6 65 3 2 6 75 3 2 6 85 3 2 6 95 3 2 7 0

5 3 2 7 15 3 2 7 2

5 3 2 7 35 3 2 7 45 3 2 7 55 3 2 7 65 3 2 7 75 3 2 7 85 3 2 7 95 3 2 8 05 3 2 8 15 3 2 8 25 3 2 8 35 3 2 8 45 3 2 8 55 3 2 8 65 3 2 8 75 3 2 8 85 3 2 8 95 3 2 9 05 3 2 9 15 3 2 9 25 3 2 9 3

B i t s 0 - 7B i t s 0 - 2B i B i B i B i B i

B i t s 0 - 7B i t s 0 - 2B i B i B i t s 0 - 7B i t s 1 - B i B i t s 4 - 7

B i t s 0 - B i t s 0 - B i t s 0 - 7B i t s 0 - 7B i t s 0 - 7B i t s 0 - B i t s 0 - B i t s 0 - B i t s 0 - 3B i t s 0 - B i t s 0 - 3B i t s 0 - 3B i t s 0 - B i t s 0 - B i t s 0 - B i t s 0 - 3B i t s 0 - B i t s 0 - B i t s 0 -

S p r i t e O h o r i z o n t a l p o s i t i o n ( l o w b y t e )S p r i t e O v e r t i c a l p o s i t i o nS p r i t e h o r i z o n t a l p o s i t i o n ( l o w b y t e )S p r i t e v e r t i c a l p o s i t i o nS p r i t e 2 h o r i z o n t a l p o s i t i o n ( l o w b y t e )S p r i t e 2 v e r t i c a l p o s i t i o nS p r i t e 3 h o r i z o n t a l p o s i t i o n ( l o w b y t e )S p r i t e 3 v e r t i c a l p o s i t i o nS p r i t e 4 h o r i z o n t a l p o s i t i o n ( l o w b y t e )S p r i t e 4 v e r t i c a l p o s i t i o nS p r i t e 5 h o r i z o n t a l p o s i t i o n ( l o w b y t e )S p r i t e 5 v e r t i c a l p o s i t i o nS p r i t e 6 h o r i z o n t a l p o s i t i o n ( l o w b y t e )S p r i t e 6 v e r t i c a l p o s i t i o nS p r i t e 7 h o r i z o n t a l p o s i t i o n ( l o w b y t e )S p r i t e 7 v e r t i c a l p o s i t i o nH i g h o r d e r b i o h o r i z o n t a l p o s i t i o n s p r i t e s 0 - V e r t i c a l p o s i t i o n f o s c r o l l i n g B S e l e c t n u m b e r o r o w s ( 2 o 2 5 B B l a n k s c r e e nS e l e c t b i t m a p m o d e < S e l e c t e x t e n d e d b a c k g r o u n d c o l o r m o d eH i g h o r d e r b i o r a s t e r p o s i t i o nR a s t e r p o s i t i o nH o r i z o n t a l p o s i t i o n l i g h t p e V e r t i c a l p o s i t i o n l i g h t p e T u r n o n a n d o f s p r i t e s 0 - H o r i z o n t a l p o s i t i o n f o s c r o l l i n g B S e l e c t n u m b e r o c o l u m n s ( 3 o 4 0 B S e l e c t m u l t i c o l o r m o d e B D o u b l e h e i g h t — s p r i t e s 0 - C h a r a c t e r s e p o i n t e rB i t m a p p o i n t e rC h a r a c t e r s c r e e n o c o l o r m a p p o i n t e r B I n t e r r u p t r e g i s t e rI n t e r r u p t r e g i s t e rP r i o r i t y r e g i s t e r f o r s p r i t e s 0 - S e l e c t m u l t i c o l o r s p r i t e s 0 - D o u b l e w i d t h s p r i t e s 0 - S p r i t e w i t h s p r i t e c o l l i s i o n sS p r i t e w i t h c h a r a c t e r c o l l i s i o nB o r d e r c o l o r B S c r e e n c o l o rC h a r a c t e r m u l t i c o l o rC h a r a c t e r m u l t i c o l o rS p r i t e m u l t i c o l o rS p r i t e m u l t i c o l o rS p r i t e O c o l o rS p r i t e c o l o rS p r i t e 2 c o l o rS p r i t e 3 c o l o rS p r i t e 4 c o l o rS p r i t e 5 c o l o rS p r i t e 6 c o l o rS p r i t e 7 c o l o r

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 263/318

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 264/318

E x p l o r i n g S o u n da n M u s i cD r F r a n k H C o v i t z

O t h h u m a n s e n s e s , s o u n d i p r o b a b l y s e c o n d o n l y t s i g h t i n i m p o r t a n c e .( " p i c t u r e i w o r t h 1 0 0 0 w o r d s . " ) C e r t a i n l y t h a m o u n t o i n f o r m a t i o nr e c e i v e d b t h e a a n p r o c e s s e d b t h b r a i n i p r o d i g i o u s . T h i n k a b o u t i f o a m i n u t e : A l s p e e c h , i n c l u d i n g t h i d e n t i t y o t h s p e a k e r i a l p o s s i b l es p o k e n l a n g u a g e s . A l t h c o n t e n t o p a s t , p r e s e n t , a n f u t u r e m u s i c , i n c l u d i n gs u b t l e t i e s s u c h a o r c h e s t r a t i o n , p l a y i n g s t y l e s , a n v a r i o u s m u s i c a l i n s t r um e n t s . T h a l m o s t i n f i n i t e l y v a r i e d n a t u r a l s o u n d s f r o m t h r u s h o f s u r f t t h s o n g o c a n a r y .

J u s t a i c a t a k e m a n y w r i t t e n w o r d s t d e s c r i b e p i c t u r e , y o c a e x p e c t s o m e d i f f i c u l t y i u s i n g w o r d s t d e s c r i b e s o u n d s , p a r t i c u l a r l y i o u g o a l i t u n d e r s t a n d t h e m w e l l e n o u g h t b c r e a t i v e . T h S I ( S o u n dI n t e r f a c e D e v i c e ) c h i p i t h C o m m o d o r e 6 i c a p a b l e o p r o d u c i n g w i d ev a r i e t y o s o u n d s w i t h h i g h - f i d e l i t y q u a l i t y . T u s t h i s r e s o u r c e t a n e x t e n ta p p r o a c h i n g i t f u l l c a p a b i l i t y , l e t ' s f i r s t a g r e e o s o m e p r i n c i p l e s w w i l ln e e d t u n d e r s t a n d d e s c r i p t i o n s o s o u n d .

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

2 5

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 265/318

2 5 A p p e n d i x

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

V i b r a t i o n s c a n b e r e p r e s e n t e d i f o r m s o t h e r t h a n a c t u a l p r e s s u r e f l u ct u a t i o n s i t h a i r . W w i l l u s t h o s e f o r m s w h i c h a r e t h e m o s t c o n v e n i e n t .F o r e x a m p l e , t h o u g h t h i n f o r m a t i o n r e c o r d e d o a u d i o m a g n e t i c t a p e s ( m a gn e t i c f l u c t u a t i o n s ) o p h o n o g r a p h r e c o r d s ( s u r f a c e f l u c t u a t i o n s ) i n o s o u n di i t s e l f , i c a n b e e a s i l y c o n v e r t e d i n t o s o u n d b y a m p l i f i e r s a n s p e a k e r s .F o o u s p e c i f i c p u r p o s e s , t h i n f o r m a t i o n n e e d e d t c o n s t r u c t s o u n d w i l lb i t h f o r m o n u m b e r s s t o r e d i o u c o m p u t e r ' s m e m o r y . W h a t t h e s en u m b e r s m e a n , w h e r e t h e y g o a n h o t h e y b e c o m e s o u n d w i l l b d i s c u s s e dl a t e r .

T h q u e s t i o n s a r t w o : 1 W h a t a r e t h e f u n d a m e n t a l c h a r a c t e r i s t i c s o ft h e v i b r a t i o n s w h i c h m a k e u s o u n d ? 2 H o c a w u s t h e s e c h a r a c t e r i s t i c st " c r e a t e " p a r t i c u l a r s o u n d ?

T h F u n d a m e n t a l s o T o n e sL e t ' s f i r s t c o n s i d e r t h c a s e o f t h e r e l a t i v e l y s i m p l e s o u n d s w c a l l t o n e s .

F o o u p u r p o s e , a t o n e i a s t e a d y s o u n d w i t h d e f i n i t e p i t c h . B s t e a d y ,m e a n t h a t i d o e s n ' t c h a n g e i q u a l i t y w i t h t i m e ( e x c e p t o c o u r s e t h a t i h a

b e g i n n i n g a n a e n d ) . T h t e r m p i t c h i s o m e w h a t s u b j e c t i v e , b u i c a m e a n t h a t t h e s o u n d h a d o m i n a n t f r e q u e n c y w i t h w h i c h , f o e x a m p l e , w c o u l d w h i s t l e a l o n g " i n t u n e . "

F r e q u e n c y i n u m b e r w h i c h s p e c i f i e s t h r a t e o f c h a n g e o v i b r a t i o n .T h u n i t s o f f r e q u e n c y w e r e o n c e c a l l e d c y c l e s - p e r - s e c o n d , b u t , i h o n o r o t h p i o n e e r i n g c o n t r i b u t i o n s o H e i n r e i c h R u d o l p h H e r t z i t h f u n d a m e n t a l so e l e c t r o m a g n e t i c w a v e s a n r e l a t e d p h e n o m e n a , t h n a m e H e r t z ( a b b r ev i a t e d a H z h a b e e n u n i v e r s a l l y a d o p t e d .

S i n c e i i s i m p o r t a n t t h a v e g o o d u n d e r s t a n d i n g o t h m e a n i n g o f r e q u e n c y , l e t ' s u s e a c o u p l e o e x a m p l e s . T h i n k a b o u t t h m o t i o n o t h p e n d u l u m i g r a n d f a t h e r c l o c k . T h f r e q u e n c y o f t h a t m o t i o n s h o u l d b v e r y c l o s e t e x a c t l y 1 / H ( e a c h h a l f - s w i n g t a k e s o n s e c o n d ) . I t h i s c a s e ,y o c a a c t u a l l y s e a n c o u n t t h v i b r a t i o n s ; f o s o u n d , t h f r e q u e n c i e s a r m u c h t o h i g h t s e t h e i n d i v i d u a l c y c l e s , e x c e p t w i t h t h e a i d o f s o m e t h i n gl i k e a o s c i l l o s c o p e . L e t ' s g o a n o t h e r s t e p h i g h e r a n t a k e t h e c a s e o a o r d i n a r y f l a t k n i f e r e s t i n g h a l f o a n h a l f o f t h e d g e o t a b l e . B h o l d i n gt h f l a t e d g e f i r m l y a g a i n s t t h e t a b l e a n " p l u c k i n g " t h o v e r h a n g i n g p a r t ,y o w i l l s e i i n t o v i b r a t i o n w i t h f r e q u e n c y o a b o u t 1 H z

F o a u d i b l e s o u n d s , t h f r e q u e n c y l i m i t s o f h u m a n h e a r i n g a r e u s u a l l y2 H t 2 0 , 0 0 0 H z a l t h o u g h t h a v e r a g e p e r s o n w i l l n o b a b l e t h e a rm u c h a b o v e 1 5 , 0 0 0 H o b e l o w 3 0 H z . ( Y o u c a s t i l l " f e e l " t h e s e l o f r q u e n c i e s , h o w e v e r . ) W a i t j u s t a m i n u t e ! ! I w c a o n l y h e a r d o w n t a b o u t2 H z h o c o m e w c a e a s i l y h e a r t h e t a b l e k n i f e v i b r a t i o n , w h i c h j u s ts a i d h a f r e q u e n c y a b o u t 1 H z W h a t y o a r r e a l l y h e a r i n g i t h s o u n d

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 266/318

T h F u n d a m e n t a l s o T o n e s 2 5

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

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

T h p e n d u l u m ' s m o t i o n i p u r e i t h a t t h e r e i n p o i n t i i t t r a v e lw h e r e e i t h e r t h e s p e e d o d i r e c t i o n c h a n g e s a b r u p t l y . T h s o u n d o a t u n i n gf o r k i c l o s e t p u r e t o n e . A l t h o u g h p u r e t o n e s a r v e r y r a r e i n n a t u r e , w n e e d t u n d e r s t a n d t h e m , s i n c e a n t o n e c a b c o n s t r u c t e d b y m i x i n g p u r et o n e s o f t h e r i g h t f r e q u e n c i e s a n a m p l i t u d e s . S i n c e p u r e t o n e s a r e e a s y t g e n e r a t e b e l e c t r o n i c s , t h e y f o r m t h b a s i s f o a r t i f i c i a l l y s y n t h e s i z i n g a n a n a l y z i n g s o u n d s .

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

s t i f f r o d , a i t h g r a n d f a t h e r c l o c k , i m a g i n e t h a t o u p e n d u l u m c o n s i s t so b u c k e t o s a n d s u s p e n d e d b f l e x i b l e s t r i n g . T h s a n d w i l l b a l l o w e dt t r i c k l e o u o a s m a l l h o l e i t h b o t t o m o t h b u c k e t . I w w e r e t o s e tt h i s p e n d u l u m i m o t i o n , w h i l e p u l l i n g a l o n g s h e e t o f p a p e r u n d e r n e a t h ,w w o u l d s e t h s a n d f o r m i n g p a t t e r n ; s o m e t h i n g l i k e t h a t s h o w n i t h f o l l o w i n g f i g u r e :

F i g u r e 1 S a n d p e n d u l u m

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 267/318

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 268/318

T h F u n d a m e n t a l s o T o n e s 2 5

m a t i c a l p r o c e d u r e k n o w n a " F o u r i e r a n a l y s i s ' 1 ) i n t o c o m p o n e n t s , c a l l e dh a r m o n i c s . E a c h o t h e s e c o m p o n e n t s w o u l d h a v e t h s i n e w a v e f o r m s h a p e( e a c h w i t h i t o w a m p l i t u d e ) , a n e a c h w o u l d h a v e f r e q u e n c y w h i c h i a i n t e g e r m u l t i p l e o t h l o w e s t f r e q u e n c y c o m p o n e n t .

T h i s l o w e s t f r e q u e n c y c o m p o n e n t , f o t h m o s t p a r t , i w h a t g i v e s t h t o n e i t p i t c h , a n t h r e l a t i v e a m o u n t s o f t h e h i g h e r o n e s , c a l l e d h a r m o n i c s ,g i v e i i t t i m b r e . S p e c i f i c a l l y , i i e a s i e r ( b u t s t i l l v e r y d i f f i c u l t ) t u n d e rs t a n d , p r e d i c t , a n m o d i f y s o u n d s b a s e d o n k n o w l e d g e o t h h a r m o n i c c o t e n t , c o m p a r e d t e x a m i n i n g i t w a v e f o r m .

H a e n o u g h o t h i s t e c h n i c a l j a r g o n ? L e t ' s j u s t l o o k a t h f o l l o w i n g t a b l et m a k e s u r e w a r t a l k i n g t h s a m e l a n g u a g e b e f o r e g o i n g o t p u t t i n gt h a m a z i n g S I D c h i p t w o r k a n c r e a t i n g s o m e t o n e s .T e c h n i c a l T e r m A u d i b l e E q u i v a l e n tF r e q u e n c y P i t c hA m p l i t u d e L o u d n e s sH a r m o n i c c o n t e n t T i m b r e

A d d r e s s i n g S I T h i n k o t h S I c h i p a h o u s e w i t h r o o m s a n f l o o r s , a n o u e x p l o

r a t i o n o i a a a d v e n t u r e g a m e . T g e t i n t o p a r t i c u l a r r o o m , w n e e d t k n o w t h a d d r e s s o t h h o u s e a w e l l a s t h e n a m e o t h r o o m . A t h i s s t a g e ,w a r o n l y g o i n g t e x p l o r e t h r o o m s h a v i n g t d w i t h f r e q u e n c y a n a m p l i t u d e ( o p i t c h a n l o u d n e s s ) . A f a a s t h e c o m p u t e r ' s m i c r o p r o c e s s o ri c o n c e r n e d , t h S I i a c c e s s e d j u s t l i k e a n o t h e r p i e c e o m e m o r y , s w a r g o i n g t u s P O K E s t g e d a t a i n t o S I D . T h e S I D c h i p h a s 2 9 r e g i s t e r s( r e g i s t e r t o t h S I i t h s a m e a m e m o r y l o c a t i o n ) l o c a t e d a a d d r e s s e ss t a r t i n g a l o c a t i o n 5 4 2 7 2 . R a t h e r t h a n c o n s t a n t l y k e y i n g i o r e m e m b e r i n gt h a t f o r m i d a b l e n u m b e r , l e t ' s u s t h c o m p u t e r t d m u c h o t h r e m e mb e r i n g b e n t e r i n g t h i s p r o g r a m l i n e :

I S I 5 4 E 7 E( R e m e m b e r t h a t t h C o m m o d o r e B A S I C l o o k s o n l y a t h f i r s t t w c h a r

a c t e r s o f v a r i a b l e n a m e , s w s h o u l d n ' t u s a n o t h e r v a r i a b l e n a m es t a r t i n g w i t h S I ) . S I c a h a n d l e t h r e e s e p a r a t e s o u n d s , w h i c h w w i l l c a l lv o i c e s . ( F o r a d d r e s s i n g p u r p o s e s , t h i n k o t h e m a t h r e e s e p a r a t e f l o o r s o t h h o u s e ) . E a c h v o i c e n e e d s f r e q u e n c y , s o w n e e d t k n o w w h e r e t p u t h e p i t c h i n f o r m a t i o n :

E F S I F S I F S I 1 F o s t a r t e r s , l e t ' s o n l y d e a l w i t h o n v o i c e , s w w i l l s i l e n c e v o i c e s t w

a n t h r e e b p u t t i n g z e r o e s i t h e i r f r e q u e n c y r e g i s t e r s :3 F O T P O K E F I , P O K E F I , N E X T

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 269/318

2 5 A p p e n d i x

I t a k e s t w P O K E s p e v o i c e t g e t h f r e q u e n c y d a t a i n t o t h r e g i s t e r s .T h i s i b e c a u s e t h n u m b e r r e p r e s e n t i n g t h f r e q u e n c y h a r a n g e t 6 5 5 3 5 ,w h i c h i g r e a t e r t h a n c a b P O K E d i n t o a n s i n g l e m e m o r y l o c a t i o n . S I s o l v e s t h i s b u s i n g t w a d j a c e n t m e m o r y l o c a t i o n s , t h f i r s t r e p r e s e n t i n gt h l o p a r t o t h n u m b e r ( t h i n k o i a f r a c t i o n ) , a n t h s e c o n d r e r e s e n t i n g t h h i g h p a r t ( t h i n k o f i a w h o l e n u m b e r ) .

S u p p o s e w h a v e n u m b e r , F i t h r a n g e t 6 5 5 3 5 t h a t w w a n t t p u i n t o S I D . W u s t h e s e f o r m u l a s : F I N T ( F / 2 5 6 ) a n F F - 2 5 6 * F H .F a n F m e a n F r e q u e n c y H i g h a n d F r e q u e n c y L o w . q u i r k o t h 6 4 ; sm i c r o p r o c e s s o r r e q u i r e s t h e s e d o u b l e n u m b e r s t b s t o r e d i n t o r e g i s t e r sw i t h t h l o p a r t f i r s t a n t h h i g h p a r t s e c o n d . S o f o e x a m p l e , w w o u l dp u t h i s n u m b e r i n t o f r e q u e n c y r e g i s t e r v i a : P O K E F 1 J F L P O K E F 1 , F H( r e m e m b e r t h a t F a n F a r e t h e a d d r e s s e s o t h r e g i s t e r s , a n F a n F a r e t h e n u m b e r s t h a t g i n t o t h r e g i s t e r s . )

I t h n u m b e r w j u s t p u i n t o t h e f r e q u e n c y r e g i s t e r s t h f r e q u e n c y w w i l l g e w h e n w e s t a r t t h s o u n d g o i n g ? N o T h f r e q u e n c y , i H z i r e l a t e dt t h n u m b e r i t h r e g i s t e r , F b t h f o l l o w i n g e q u a t i o n :

H Z * 1 6 . 4 0 4 3 9L e t ' s g i v e v o i c e f r e q u e n c y o 1 0 0 0 H z . I B A S I C w s h o u l d e n t e r :4 H Z 1 D D D l b . 4 D 4 3 R5 H Z * Cf c F I N T ( F / E 5 b )7 F F - E 5 b * F Hf l P O K E F 1 , F L P O K E F 1 1 , F HI y o a c t u a l l y e n t e r e d t h i s e x a m p l e , y o w o u l d n ' t g e a n s o u n d . T h a t ' s

b e c a u s e t h S I s t i l l d o e s n ' t k n o w e n o u g h a b o u t w h a t y o w a n t . S I n e e d st k n o w a l e a s t m o r e t h i n g s b e f o r e i c a m a k e s o u n d — t h e o v e r a l l v o l u m e( l o u d n e s s o a l v o i c e s ) , t h a m p l i t u d e e n v e l o p e ( r e g i s t e r s f o r e a c h v o i c e )a n t h w a v e f o r m t y p e ( r e g i s t e r f o e a c h v o i c e ) . T h e s e w i l l b e x p l a i n e di n d e t a i l l a t e r , b u f o n o l e t ' s j u s t l i s t t h a d d r e s s e s o f t h e s e r e g i s t e r s :

H H F l W F W F R E M F O R W A V E F O R MT Y P E1 D A F : & = F A 3 = F 3 + R E F O A T T A C K /

D E C A Y1 1 D S 1 F : S F S 3 = F 3 R E F O S U S T A I N /R E L E A S E

1 E V O S I E R E T O T A L V O L U M EW i t h o u t w o r r y i n g a b o u t t h n u m b e r s t h a t g i n t o t h e s e r e g i s t e r s ( t h a t

w i l l c o m e l a t e r ) , j u s t a d t h f o l l o w i n g p r o g r a m l i n e s :1 3 P O K E V O L , 1 . 1 4 P O K E A l , f l 5 P O K E S 1 , Q 51 5 W & > P O K E W 1 , W Vi f c D F O T 1 D D D N E X T1 7 P O K E W l / W V

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 270/318

A d d r e s s i n g S I 2 5

I y o u h a v e e n t e r e d t h e s e n e l i n e s i n t o t h c o m p u t e r a n R U t h e m ,y o s h o u l d f i n a l l y ( w h e w ! ) h a v e p r o d u c e d s o u n d f r o m S I D . N o w i l l b g o o d p o i n t t S A V E t h p r o g r a m f r o m l i n e s 1 0 - 1 2 0 s i n c e w w i l l b u s i n gt h e m a g a i n . A f t e r S A V E i n g , f e e l f r e e t e x p e r i m e n t w i t h n u m b e r s t h a t g i n t o A a n S ( l i n e 1 4 0 ) , t h v a l u e f o W i l i n e 1 5 ( u s e 1 2 8 , 6 4 , 3 2 , o 1 f o n o w ) , a n t h l o o p e n v a l u e i l i n e 1 6 0 . Y o m a g e s o m e f e e l i n gf o w h a t ' s h a p p e n i n g a t h i s p o i n t , b u i n o t , t a k e h e a r t , t h n e x t s e c t i o nw i l l c l a r i f y a n m y s t e r i e s o A l S I a n W l a n m o r e .

r e v i e w o t h a d d r e s s e s w h a v e u s e d u t n o a n t h e i r m e a n i n g i i o r d e r :

N a m e A d d r e s s M e a n i n g

B a s e a d d r e s s f o S I F r e q u e n c y , l o p a r tF r e q u e n c y , h i g h p a r tW a v e f o r m / c o n t r o l r e g i s t e rA t t a c k / d e c a y r e g i s t e rS u s t a i n / r e l e a s e r e g i s t e r

F r e q u e n c y , l o p a r tF r e q u e n c y , h i g h p a r tW a v e f o r m / c o n t r o l r e g i s t e rA t t a c k / d e c a y r e g i s t e rS u s t a i n / r e l e a s e r e g i s t e r

F r e q u e n c y , l o p a r tF r e q u e n c y , h i g h p a r tW a v e f o r m / c o n t r o l r e g i s t e rA t t a c k / d e c a y r e g i s t e rS u s t a i n / r e l e a s e r e g i s t e r

V o l u m e 0 - 1 5 r e g i s t e r

B A S I C P R O G R A M T S E U S I A D D R E S S E SI S I S 4 E 7 E R E B A S E A D D R E S SE l b . 4 D 4 3 R R E M F O R C O N V E R T I N G H T R E G I S T E R

V A L U E3 F S I F S I F S I 1 R E

F R E Q U E N C Y R E G I S T E R S4 W F l W E F W = F 3 + R E W A V E F O R M /

C O N T R O L R E G I S T E R S5 A l = F l A F A = F R E M A T T A C K / D E C A Y

R E G I S T E R Sb S I = F l + S F S = F R E M S U S T A I N /

R E L E A S E R E G I S T E R S7 V O S I E R E O V E R A L L V O L U M E F R O M T 1

V o i c e # 1 :S I F

W A S V o i c e # 2 :F

W A S V o i c e # 3 F

W A S A l V o i c e s :V O

5 4 2 7 2S I F F l + 4F l + 5F

S I F 2 + 1F F F

S I D + 1 4F 3 + 1F F F

S I D + 2

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 271/318

2 5 A p p e n d i x

s t r o n g l y u r g e y o t e n t e r t h i s p r o g r a m p i e c e i y o h a v e n ' t a l r e a d yd o n e s o a n S A V E i t s i n c e i w i l l a l w a y s b e u s e d a a o p e n i n g p r o c e d u r ef o s e t t i n g u f o S I p r o g r a m s .

M o v i n g o t D y n a m i c sA t h i s p o i n t , y o s h o u l d h a v e s o m e u n d e r s t a n d i n g a b o u t t h n a t u r e o

s o u n d , t h g e n e r a l m e a n i n g o f r e q u e n c y , p i t c h , a n t i m b r e , a w e l l a t h s p e c i f i c S I r e g i s t e r s d e a l i n g w i t h f r e q u e n c y . N o w , w w i l l g o v e r t h S I r e g i s t e r s h a v i n g t d w i t h w a v e f o r m t y p e a n c o n t r o l , t h r e g i s t e r s d e a l i n gw i t h a t t a c k , d e c a y , s u s t a i n , r e l e a s e , a n t h r e g i s t e r s a s s o c i a t e d w i t h v o l u m ea n f i l t e r i n g .

W a v e f o r m / C o n t r o l R e g i s t e r T h r e g i s t e r s w h a v e b e e n c a l l i n gW l , W 2 , a n W 3 h a v e d u a l p u r p o s e , a h a v e s e v e r a l o t h e r S I r e g i s t e r s .A n m e m o r y l o c a t i o n i y o u r c o m p u t e r c a o n l y h o l d n u m b e r b e t w e e na n 2 5 5 . T h i s n u m b e r i m a d e u o e i g h t i n d i v i d u a l b i t s — e a c h o w h i c hc a n b e s e t t o o n o z e r o , " o n " o " o f f . " B i t s a r n u m b e r e d f r o m z e r o ( t h eb i f a r t h e s t t t h r i g h t ) t s e v e n ( l e f t m o s t ) . T h i n d i v i d u a l b i t s o t h w a v ef o r m / c o n t r o l r e g i s t e r h a v e t h s p e c i f i c m e a n i n g s a f o l l o w s :B i W e i g h t M e a n i n g

1 2 S e l e c t n o i s e w a v e f o r m6 S e l e c t p u l s e w a v e f o r m3 S e l e c t s a w t o o t h w a v e f o r m1 6 S e l e c t t r i a n g l e w a v e f o r m

3 R e s e t v o i c e o u t p u tR i n g m o d u l a t i o n o S y n c h r o n i z a t i o n o S t a r t A S D R

T h " w e i g h t " n u m b e r s a r a d d e d t o g e t h e r f o e a c h b i y o " s e t " t g e n u m b e r f r o m t 2 5 5 . T h i s g i v e s u t h t e c h n i q u e f o c o n t r o l l i n g t h e

i n d i v i d u a l b i t s . F o r e x a m p l e , l e t ' s u s t h e v a r i a b l e W t r e p r e s e n t t h c o t e n t s o f t h e w a v e f o r m c o n t r o l r e g i s t e r f o v o i c e # ( t h i s w a l a b e l e d W i o u p r e v i o u s s e c t i o n ) . I w s t a r t o f f w i t h W w h a t e v e r , a n w a n t t t u r no o n l y o n b i t , s a b i 7 w w o u l d d o

W W C O R l E f l : P O K E W 1 , W CT h r e a s o n f o u s i n g W i t h a t P E E K w o n ' t w o r k w i t h t h S I r e g i s t e r s .

W i v a r i a b l e t h a t s t a n d s f o t h c o n t e n t s o m e m o r y l o c a t i o n W l W c a c a l l t h S I r e g i s t e r s " w r i t e o n l y , " s i n c e o n c e w P O K E i n u m b e r ,w c a n ' t r e a d i t

T t u r n o f o n l y b i 7 w w o u l d d o W W C A N D E 5 4 : P O K E W 1 , W C

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 272/318

M o v i n g o t D y n a m i c s 2 5

I y o f i n d t h i s c o n f u s i n g , y o s h o u l d r e - r e a d t h e s e c t i o n i A p p e n d i xa b o u t A N a n O R S e v e r a l o t h S I r e g i s t e r s a r b i t - o r i e n t e d , s y o w i l ln e e d t k n o w h o t c o n t r o l i n d i v i d u a l b i t s i y o a r g o i n g t f u l l y u n d e rs t a n d S I p r o g r a m m i n g .

E a c h S I D v o i c e m u s t b a s s i g n e d a w a v e f o r m t y p e c o n s i s t i n g o f e i t h e rt r i a n g l e , s a w t o o t h , p u l s e , o n o i s e ( s e e f i g u r e b e l o w ) a s c o n t r o l l e d b t h e c o r r e c tb i t s .

T R I A N G L E ( 1 6 )

S A W T O O T H ( 3 2 )

- P U L S E - * *W I D T H

P U L S E ( 6 4 )

N O I S E ( 1 2 8 )

F i g u r e 4 T h S I w a v e f o r m s

L e t ' s b r i e f l y d i s c u s s t h e q u a l i t y , o r t i m b r e , o f t h e s e w a v e f o r m s . T h s i m p l e s t a n p u r e s t i t h t r i a n g l e w a v e f o r m ( b i t # 4 ) , o n c y c l e o w h i c hc o n s i s t s o s m o o t h s t r a i g h t l i n e o i n c r e a s i n g v a l u e u t i t m a x i m u m ,f o l l o w e d b s t r a i g h t l i n e o t h o p p o s i t e s l o p e g o i n g d o w n t i t m i n i m u mv a l u e , a t h n a m e s u g g e s t s . A l t h o u g h t h s l o p e c h a n g e s a b r u p t l y a t h t o

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 273/318

2 6 A p p e n d i x

a n b o t t o m , t h a c t u a l v a l u e s a l o n g t h w a v e f o r m h a v e n o s u c h a b r u p tc h a n g e .

T h n e x t w a v e f o r m t h S I c a n p r o d u c e i t h s a w t o o t h w a v e f o r m ( b i t# 5 ) , w h i c h , a t h n a m e s u g g e s t s , c o n s i s t s o s t r a i g h t l i n e s l o p e f r o m i t m i n i m u m v a l u e t i t m a x i m u m , a n a t h s t a r t o i t n e x t c y c l e t h e a p l i t u d e d r o p s a b r u p t l y b a c k t t h m i n i m u m . T h i s a b r u p t c h a n g e i a m p l it u d e r e s u l t s i n m u c h r i c h e r s o u n d t h a n t h t r i a n g l e a n m o r e " b r i l l i a n t "t i m b r e .

T h l a s t p e r i o d i c w a v e f o r m t h S I c a n p r o d u c e i t h p u l s e w a v e f o r m( b i t # 6 ) , w h i c h c o n s i s t s o p a r t i a l c y c l e d u r i n g w h i c h t h a m p l i t u d e h a s ac o n s t a n t n e g a t i v e v a l u e , a n t h e n a c o n s t a n t p o s i t i v e a m p l i t u d e f o t h r m a i n d e r o i t c y c l e . A n o t h e r n u m b e r i n e e d e d t d e s c r i b e t h e p u l s e w a v ef o r m — a d u t y c y c l e .

C h a n g e s i t h d u t y c y c l e a f f e c t t h h a r m o n i c s o f t h e s o u n d a n i t o v e r a l lc h a r a c t e r i s t i c s . B c h a n g i n g t h d u t y c y c l e , y o c a n p r o d u c e s q u a r e w a v ef o r m , w h i c h i l e s s r i c h t h a n t h s a w t o o t h , b u m u c h r i c h e r t h a n t h t r i a n g l ew a v e f o r m , a n h a c h a r a c t e r i s t i c " m e t a l l i c " o r " r e e d y " s o u n d . A y o m o v et h d u t y c y c l e t v a l u e o z e r o , t h p u l s e w a v e f o r m s o u n d s v e r y h a r s h a n " b u z z y . " T h e S I D c h i p a l l o w s y o t c h a n g e t h i s d u t y c y c l e w h i l e s o u n di i p r o g r e s s , a c h i e v i n g a s t r i k i n g d y n a m i c t i m b r e — w e w i l l e x p e r i m e n t w i t ht h i s e f f e c t l a t e r .

T h n o i s e w a v e f o r m ( b i t # 7 i a l s o a v a i l a b l e f o e a c h o t h t h r e e S I v o i c e s . N o i s e i t h p r e s e n c e o m a n y f r e q u e n c i e s , a n t h e n o i s e w a v e f o r mc r e a t e s s o u n d w i t h o u t p i t c h . N e v e r t h e l e s s , n o i s e c a h a v e v a r i e t y o t i m b r e s ,d e p e n d i n g p r i m a r i l y o t h e d i s t r i b u t i o n o f r e q u e n c i e s . E m p h a s i z i n g t h h i g hf r e q u e n c i e s g i v e s i " h i s s y " c h a r a c t e r , w h i l e e m p h a s i z i n g t h l o w s g i v e s i

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

L e t ' s r e v i e w : B e f o r e S I v o i c e c a b p l a y e d , i m u s t b a s s i g n e dw a v e f o r m t y p e — n o i s e , p u l s e , s a w t o o t h , o r t r i a n g l e d e p e n d i n g o t h s e t t i n go b i t s # 7 , 6 , 5 , a n o t h w a v e f o r m / c o n t r o l r e g i s t e r . E a c h h a i t c h a r a ct e r i s t i c t i m b r e , a n t h t i m b r e s o t h p u l s e a n n o i s e w a v e f o r m s c a n b ec o n t r o l l e d d y n a m i c a l l y . B e f o r e m o v i n g o n r e m e m b e r o n m o r e i m p o r t a n tp o i n t . O n l y o n o f t h e w a v e f o r m t y p e s s h o u l d b s e l e c t e d a t i m e . E a c hv o i c e , h o w e v e r , c a n h a v e i t o w w a v e f o r m .

O t h o t h e r b i t s i t h w a v e f o r m / c o n t r o l r e g i s t e r s ( W 1 , W 2 , a n W 3 ) ,b i t s # 3 , 2 , a n w o n ' t c o n c e r n u y e t ; b i i l i t e r a l l y t h " k e y " t s e t t i n gt h S I c h i p i n t o a c t i o n . W h e n t h i s b i t i " o n " t h s o u n d b e g i n s . W h e n t h i sb i i " o f f , " t h s o u n d s t a r t s t d i o u t . S o a s s u m i n g y o h a v e s e W t v a l i d w a v e f o r m t y p e ( 1 2 8 , 6 4 , 3 2 , o 1 6 ) , y o w o u l d a c t i v a t e v o i c e # w i t hP O K E W 1 , W C + 1 a n r e l e a s e v o i c e # w i t h P O K E W l / W C . Y o c a a l s os i l e n c e v o i c e a a n t i m e b s e t t i n g i t f r e q u e n c y r e g i s t e r t w i t h P O K EF 1 , 0 : P O K E F + 1 , 0 f o v o i c e # 1 e t c .

A D S R W a r n o r e a d y t d e l v e i n t o s o m e t h i n g c a l l e d A D S R . A t a c k , D e c a y , S u s t a i n a n R e l e a s e c o m p r i s e t h p a r t i c u l a r w a t h a t t h e a m

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 274/318

M o v i n g o t D y n a m i c s 2 6

p l i t u d e , o l o u d n e s s , o s o u n d c h a n g e s w i t h t i m e . M a n y s o u n d s , p a r t i c u l a r l ym u s i c a l o n e s , c a n b e s i m u l a t e d b a a m p l i t u d e " e n v e l o p e " c o n s i s t i n g o t h p h a s e s j u s t m e n t i o n e d . W i t h t h S I c h i p , y o c a c o n t r o l t h r a t e , o l e n g t h o t i m e , a t t a c k , d e c a y , a n r e l e a s e t a k e . T h v a l u e o s u s t a i n i a p l i t u d e , o l o u d n e s s , n o r a t e o t i m e . E a c h o n o t h e s e A D S R p h a s e s c a h a v e o 1 v a l u e s , n u m b e r f r o m t 1 r e p r e s e n t e d w i t h b i t s . E a c hS I c h i p i e i g h t b i t s , s A D S R p h a s e s a r p a i r e d a a t t a c k / d e c a y a n s u s t a i n /r e l e a s e . E a c h f o u r b i t s i c a l l e d n y b b l e .

T h a t t a c k a n d e c a y n y b b l e s g i n t o r e g i s t e r s A l A 2 a n d A 3 ( e a c h v o i c ec a h a v e i t o w A D S R ) , a n t h s u s t a i n , a m p l i t u d e , a n r e l e a s e n y b b l e s g i n t o r e g i s t e r s S I S 2 a n S 3 T h b e g i n n i n g o s o u n d c a n b e l i k e n e d t o p e n i n g g a t e , s i i r e f e r r e d t a " g a t i n g o n t h s o u n d . H e r e i t h s e q u e n c e o e v e n t s t h a t t a k e s p l a c e w h e n v o i c e i " g a t e d o n b s e t t i n g b i

o t h w a v e f o r m / c o n t r o l r e g i s t e r ( s e e a b o v e ) :T h a m p l i t u d e , o l o u d n e s s , o f t h e s o u n d r i s e s f r o m z e r o t m a x i m u m

a r a t e g o v e r n e d b t h a t t a c k n y b b l e . I t h e n d e c a y s , o r b e g i n s t f a d e o u t ,a r a t e g o v e r n e d b t h d e c a y n y b b l e u n t i l t h l o u d n e s s r e a c h e s t h v a l u es p e c i f i e d b t h e s u s t a i n n y b b l e . T h v o i c e r e m a i n s a t h e s u s t a i n a m p l i t u d eu n t i l i i " g a t e d o f f " b t u r n i n g o f f b i t o t h w a v e f o r m / c o n t r o l r e g i s t e r .T h e n t h l o u d n e s s f a d e s t z e r o a r a t e g i v e n b t h r e l e a s e n y b b l e .

F i g u r e 5 A D S R e n v e l o p e

H e r e i t a b l e t h a t g i v e s y o t h e r a t e s f o t h 1 d i f f e r e n t n y b b l e s( m m i l l i s e c o n d s , s e c o n d s ) :

N y b b l e A t t a c k D e c a y / R e l e a s e

1 1 1 1 1 1

m m

1 m 2 m 3 m 5 m 6 m 8 m

1 0 m 2 5 m 5 0 m 8 0 m

3 5 8

m 2 m 4 m 7 m

1 1 m 1 6 m 2 0 m 2 4 m 3 0 m 7 5 m

1 . 2 .

3 9

1 2

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 275/318

2 6 A p p e n d i x 3

A t t a c k a n d e c a y r a t e s g i n t o r e g i s t e r s A l , A 2 , a n d A 3 ( e a c h v o i c e c a h a v e i t o w A D S R ) , a n d t h s u s t a i n a m p l i t u d e a n r e l e a s e r a t e g i n t or e g i s t e r s S I S 2 a n S 3 T h e s e h a v e o n l y t b s e o n c e , a n n o e a c h t i m e

s o u n d i t b p l a y e d . L e t ' s g i v e a c o n c r e t e e x a m p l e t m a k e s u r e w u n d e r s t a n d w h a t i n e c e s s a r y t g e p a r t i c u l a r A D S R . " b l o w n " s o u n d ,f o e x a m p l e a i t r u m p e t n o t e , h a f a s t a t t a c k a n d e c a y r a t e , r e l a t i v e l yl o u d s u s t a i n , a n f a i r l y r a p i d r e l e a s e r a t e . L e t ' s u s 1 m a t t a c k r a t e ,7 m d e c a y r a t e , s u s t a i n a m p l i t u d e o 1 2 a n r e l e a s e r a t e o f 1 1 m s W i t h t h h e l p o f t h e t a b l e a b o v e , w h a v e :

A ( a t t a c k / d e c a y ) = 1 6 * 2S ( s u s t a i n / r e l e a s e ) = 1 6 * 1 2

F i g u r e 6 B l o w n s o u n d

F o v o i c e 1 w d P O K E 1 , 3 5 : P O K E S I 1 9 6 . N s o u n d , r i g h t ? R m e m b e r , w a l s o h a v e t s p e c i f y w a v e f o r m t y p e a n f r e q u e n c y , a n t h e ng a t e t h e v o i c e o n A l s o , k e e p i m i n d t h a t t h r e l e a s e d o e s n ' t h a p p e n u n t i ly o g a t e t h e v o i c e o f f . H e r e a r f e s e t s o A D S R s t g i v e y o b e t t e r f e e lf o w h a t ' s n e e d e d . E x p e r i m e n t w i t h t h w a v e f o r m t y p e t g e t t h e t i m b r e y o w a n t . F i r s t n u m b e r s a r e a t t a c k / d e c a y , s e c o n d a r s u s t a i n / r e l e a s eP e r c u s s i o n — 9 , 8 v e r y f a s t a t t a c k ( 1 6 * 0 ) , m o d e r a t e d e c a y ( 9 ) , z e r o s u s t a i na m p l i t u d e ( 1 6 * 0 ) , a n m e d i u m r e l e a s e ( 8 ) . ( T r y n o i s e w a v e f o r m . )

F i g u r e 7 P e r c u s s i o n

P i a n o — 1 0 , 4 8 v e r y f a s t a t t a c k ( 1 6 * 0 ) , m e d i u m r e l e a s e ( 1 0 ) , l o s u s t a i na m p l i t u d e ( 1 6 * 4 ) , a n v e r y f a s t r e l e a s e ( 0 ) . ( T r y s a w t o o t h w a v e f o r m . )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 276/318

M o v i n g o n t D y n a m i c s 2 6

F i g u r e 8 P i a n o

O r g a n — 0 , 2 4 0 v e r y f a s t a t t a c k ( 1 6 * 0 ) , n d e c a y ( 0 ) , h i g h s u s t a i n a m p l i t u d e( 1 5 * 1 6 ) , a n v e r y f a s t r e l e a s e ( 0 ) . ( T r y p u l s e w a v e f o r m . )

g a t e ]

F i g u r e 9 O r g a n

V i o l i n — 1 3 3 , 1 6 5 m o d e r a t e l y s l o w a t t a c k ( 8 * 1 6 ) , m e d i u m d e c a y ( 5 ) , m d i u m s u s t a i n a m p l i t u d e ( 1 0 * 1 6 ) , a n m e d i u m r e l e a s e ( 5 ) . ( T r y p u l s e w a v ef o r m . )

F i g u r e 1 0 V i o l i n

K e e p i m i n d t h a t t h e S I c h i p ' s m a i n v e r s a t i l i t y i i c r e a t i n g s o u n d sn o e a s i l y m a d e b r e a l i n s t r u m e n t s . F o r e x a m p l e , o n e c o u l d e a s i l y r e v e r s et h n o r m a l t y p e A D S R ' s t c r e a t e p r e t t y s t r a n g e s o u n d .

A s w e ' v e s e e n , t h S I h a m a n y r e g i s t e r s a n f u n c t i o n s , a n i w i l l b h e l p f u l , i n o e s s e n t i a l , t o k e e p t h e s e o r g a n i z e d i w a r t u s i t i t f u l lc a p a b i l i t y . T h S I f u n c t i o n s c a b c o n v e n i e n t l y g r o u p e d i n t o t w c a t eg o r i e s : T h o n e s t h a t a f f e c t i n d i v i d u a l v o i c e s , a n t h o n e s t h a t a f f e c t a l o t h e v o i c e s a o n c e . S t a r t i n g a t h b a s e a d d r e s s f o S I D , t h f i r s t t h r e e g r o u p so s e v e n a r f o i n d i v i d u a l v o i c e s . T h n e x t f o u r c o n t r o l t h e f i l t e r a n o v e r a l lv o l u m e o t h c h i p , a n t h r e m a i n i n g f o u r a r e s p e c i a l . ( W h a v e n ' t g o t t e nt t h e s e y e t . ) L e t ' s l i s t t h r e g i s t e r s a n t h e i r c o n t e n t s :

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 277/318

2 6 A p p e n d i x 3

R e g i s t e r M e a n i n g0 , 7 , 1 41 , 8 , 1 52 , 9 , 1 63 , 1 0 , 1 74 , 1 1 , 1 8

5 , 1 2 , 1 96 , 1 3 , 2 02 2 2

2

T h f o l l o w i n g a r e r e a d - o n l y :2 2 2 2

F r e q u e n c y ( l o w b y t e )F r e q u e n c y ( h i g h b y t e )P u l s e w i d t h ( l o w b y t e )P u l s e w i d t h ( b i t s 0 - a r h i g h n y b b l e )C o n t r o l r e g i s t e rB i O - g a t e ( s t a r t , r e l e a s e )B i 1 — s y n c b i B i 2 — r i n g m o d u l a t i o n b i B i 3 — t e s t b i B i 4 — t r i a n g l e w a v e f o r mB i 5 — s a w t o o t h w a v e f o r mB i 6 — p u l s e w a v e f o r mB i 7 — n o i s e w a v e f o r mA t t a c k / D e c a y r e g i s t e rS u s t a i n / R e l e a s e r e g i s t e rF i l t e r f r e q u e n c y ( b i t s 0 , 1 , 2 f o r m l o p a r t )F i l t e r f r e q u e n c y ( h i g h b y t e )R e s o n a n c e / F i l t e r R e g i s t e rB i 0 — c o n n e c t v o i c e t h r o u g h f i l t e rB i 1 — c o n n e c t v o i c e t h r o u g h f i l t e rB i 2 — c o n n e c t v o i c e t h r o u g h f i l t e rB i 3 — c o n n e c t e x t e r n a l s i g n a l t h r o u g h

f i l t e ri i i i e rB i t s 4 - 7 — f i l t e r r e s o n a n c eM o d e / V o l u m eB i t s 0 - 3 — o v e r a l l v o l u m eB i 4 — s e l e c t l o w - p a s s f i l t e rB i 5 — s e l e c t b a n d - p a s s f i l t e rB i 6 — s e l e c t h i g h - p a s s f i l t e rB i 7 — d i s c o n n e c t v o i c e f r o m a u d i o

o u t p u t

P O T XP O T YO u t p u t o o s c i l l a t o r 3E n v e l o p e o f v o i c e

F o r e l a t i v e l y s i m p l e s o u n d s ( l i k e t h o n e s u s e d f o m u s i c , a o p p o s e dt t h o n e s u s e d f o s o u n d e f f e c t s ) , t h i m p o r t a n t r e g i s t e r s w e ' v e d i s c u s s e d —a S I t 2 0 — s e t u p t h e f r e q u e n c y , w a v e f o r m t y p e , ( a n d p u l s e w i d t h , i w e ' v e s e l e c t e d p u l s e w a v e f o r m ) , e n v e l o p e , a n w h e t h e r t o s t a r t v o i c e g o i n g( g a t e b i 1 o t r e l e a s e i ( g a t e b i 0 ) T h e l o w n y b b l e o f r e g i s t e r 2 c o n t r o l s t h o v e r a l l v o l u m e . F o r m u s i c a l s o u n d s t h e r e i a s a n e w a t h a n d l ea l t h e s e p i e c e s o f i n f o r m a t i o n , a n t h a t i j u s t w h a t w w i l l d i s c u s s i t h n e x t s e c t i o n .

T h W e l l - T e m p e r e d C o m p u t e rU t n o w , w e ' v e n o h e a r d t o m u c h f r o m S I D ; w e ' v e m a i n l y d i s c u s s e d

t h e o r y o s o u n d a n S I o r g a n i z a t i o n . W e ' l l j u s t t a k e m o m e n t t c o n s i d e r

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 278/318

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 279/318

2 6 A p p e n d i x

5 3 D I M N ( 1 E ) R E M T O H O L D P A R A M E T E R S2 4 F O T R E A D N ( I ) R E R E A D S O U N D

P A R A M E T E R S F O E A C H V O I C E5 5 D N E X T IS t D R E M F O L L O W I N G D A T A A R E X A M P L E S O N L Y , F E E L F R E E

T O U S E Y O U R O W 2 D A T A l b , I t , I t R E W A V E F O R M T Y P E F O E A C H

V O I C EE & D A T A 5 5 , 5 5 , 5 5 R E M A T T A C K / D E C A Y F O R E A C H V O I C E2 R D A T A 5 5 , 5 5 , 5 5 R E S U S T A I N / R E L E A S E F O E A C H

V O I C E3 0 P O K E W 1 , N ( 1 ) P O K E W S , N ( 2 ) P O K E W 3 N ( 3 ) R E

I N S T A L L A D S R3 1 P O K E A 1 , N ( < ) P O K E A 2 , N ( S ) P O K E A 3 , N ( t )3 5 P O K E S 1 , N ( ? ) P O K E S 2 , N ( f l ) P O K E S 3 , N ( R )3 3 F O T R E T A K E C A R E O P U L S E3 4 R E A D N ( R ) = W * 4 0 q f c3 b N E X T3 7 D A T A . 5 , . 5 , . R E M U S T B F R A C T I O N B E T W E E N

A N . 3 f l D P O K E F 3 , I N T ( N ( l D ) / 5 5 b ) : P O K E F 5

N ( 1 0 ) - E 5 b * I N T ( N ( 1 0 ) / E 5 f c )3 R P O K E F B + 3 , I N T ( N ( l l ) / 5 5 b ) P O K E F 2

N ( l l ) - E 5 k * I N T ( N ( l l j / E 5 k )4 0 P O K E F 3 3 , I N T ( N ( l S ) / 5 5 t ) : P O K E F 3 5

N ( 1 2 ) - 2 5 & , * I N T ( N ( 1 2 ) / 2 5 f c , )

( R e m e m b e r , t h p u l s e w i d t h w i l l a f f e c t t h s o u n d o n l y i y o h a v e s l e c t e d t h e p u l s e w a v e f o r m w i t h 6 4 a t h w a v e f o r m t y p e . )

I y o i n t e n d t o t r y y o u r h a n d a m u s i c p r o g r a m m i n g , S A V E t h w h o l ep r o g r a m f o r l a t e r u s e : l i n e s 1 0 - 7 0 ( s e t s u S I a d d r e s s e s ) , l i n e s 1 0 0 - 1 6 0( c a l c u l a t e s t h t o o c t a v e o t h e q u a l - t e m p e r a m e n t s c a l e ) , a n l i n e s 2 0 o n w a r d . ( W m a c h a n g e t h i s l a s t s e c t i o n l a t e r . ) T h S I c h i p i n o s e t p l a y m u s i c i w g i v e i s o m e d a t a . L e t ' s s t a r t o f s i m p l y b u s i n g o n l y o n v o i c e , b u f e e l f r e e t c h a n g e t h w a v e f o r m t y p e a n A D S R d a t a .

< R R E T E M P O C O N S T A N T5 D R E A D T R E R E A D N O T E D U R A T I O N5 1 I T T H E N q q q q R E D O N E I T 5 5 I T M < D T H E N q q q q R E D O N E I T M < D5 3 T = T I + S * T M R E T H I S T E L L S U W H E N T S T O P

P L A Y I N G N O T E5 4 0 R E A D N , 0 R E M R E A D N O T E A N O C T A V E5 5 F F ( N ) / ( 5 * O ) R E C A L C U L A T E F R E Q U E N C Y F O S I 5 E . D F I N T ( F R / 5 5 t ) F F R - 5 5 b * F H5 7 D P O K E F 1 , F L P O K E F 1 , F H R E I N S T A L L F R E Q U E N C Y

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 280/318

T h W e l l - T e m p e r e d C o m p u t e r 2 6

S f l D P O K E W 1 , N ( 1 ) + 1 R E A T T A C K B E G I N S5 R I T K T H E N S R R E W A I T F O N O T E T E N t D P O K E W 1 , N ( 1 ) R E R E L E A S E B E G I N Sf c l D G O T O 5 D R E G E M O R E D A T A

7 D D A T A 4 0 , 4 , 27 1 D A T A 4 D , b , a7 2 D A T A 4 D , f l , 27 3 D A T A 4 D , R , 2? 4 D A T A 4 0 , 1 1 , 2I S O D A T A 4 0 , 1 , 17 t D A T A 4 D , 3 , 17 7 D A T A 4 0 , 4 , 17 f l D D A T A D

q q q q f o r t a p o k e s i d + i , d n e x t e n r e S I L E N C E S I D , A N E N N o R U t h p r o g r a m — p r e t t y n e a t , r i g h t ? T h i s i g o o d p o i n t t

e x p e r i m e n t b i w i t h w a v e f o r m t y p e s a n A S D R s f o o u v o i c e p i e c e . T r t h p u l s e w a v e f o r m ( p u t 6 a t h 1 s n u m b e r i n l i n e 2 7 0 ) , a n u s d i f f e r e n tp u l s e w i d t h s ( f i r s t n u m b e r i n l i n e 3 7 0 ) . N o f o b i m o r e e x p l a n a t i o n . T h v a r i a b l e T u s e d i l i n e 5 9 i s p e c i a l . I t i s t h c o m p u t e r ' s i n t e r n a l t i m e r ,j u s t l i k e T I $ , e x c e p t i i n u m b e r ( n o t s t r i n g l i k e T I $ ) , a n i i m e a s u r e di u n i t s o l / 6 0 t h o f a s e c o n d . S t h 4 0 ' s i t h D A T A s t a t e m e n t s b e g i n n i n go l i n e 7 0 m e a n 4 0 / 6 0 t h s o s e c o n d , o a b o u t . 6 s e c o n d .

L i n e 5 9 i t h k e t a c c u r a t e t i m i n g , s i n c e i d o e s n ' t d e p e n d o t h t i m e i t a k e s B A S I C t e x e c u t e s t a t e m e n t l i k e t h F O R / N E X T l o o p w p r e v i o u s l y u s e d t g e d e l a y . I y o s t u d y t h p r o g r a m , y o u ' l l s e e t h a t t h er e a s o n f o r t e s t i n g t h v a r i a b l e T f o b o t h z e r o a n n e g a t i v e n u m b e r s ( l i n e s5 1 a n 5 2 0 ) i t l o o k f o t w c o n d i t i o n s . A f t e r p l a y i n g f o w h i l e , y o m a w a n t t c h a n g e t h w a v e f o r m o A D S R , f o e x a m p l e , b R E A D i n g i m o r eD A T A a n P O K E i n g i n t o t h e r i g h t p l a c e . I T e q u a l s z e r o , t h p r o g r a m w i l l" b r a n c h " t l e y o u d o t h a t . n e g a t i v e v a l u e f o T m e a n s y o a r c o m p l e t e l yf i n i s h e d . I o u r e x a m p l e , b o t h c a s e s t o o k u s t o l i n e 9 9 9 9 , t h e n o t h p r o g r a m .

T h e r e a r s e v e r a l w a y s w c o u l d h a v e e n c o d e d o u n o t e s — f o r e x a m p l eu s i n g s t r i n g v a l u e s l i k e A 2 , C # 3 , B b l . . . o a c t u a l l y u s i n g f r e q u e n c y v a l u e sl i k e 8 8 0 , 2 1 1 3 , 9 8 7 . 2 . . . . o d o , r e , m i . . . . o p e r h a p s e v e n g r a p h i c a l l y a i m u s i c a l s c o r e . W o b v i o u s l y c o u l d h a v e d o n e s o m e t h i n g s i m i l a r w i t h d r a t i o n s . H o w e v e r , t h w a h a v e o u t l i n e d i g o o d c o m p r o m i s e b e t w e e nr e a d a b i l i t y a n s p e e d o d e c o d i n g . I t i s c e r t a i n l y n o s a c r e d , s i y o l a t e rf e e l m o r e c o m f o r t a b l e w i t h o t h e r n o t a t i o n s , g t i a n t r y o u r h a n d a p r o g r a m m i n g t h e m . F o n o w , s t i c k w i t h i a n u s t h f o l l o w i n g t a b l e a n f i g u r e t h e l p y o t r a n s l a t e :

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 281/318

2 6 A p p e n d i x

N o t e * M u s i c s y m b o l

1 1 1

l o ( l e ) o A o B

t o r d o r

( d i ) o C o D r o ( r a ) o D o E

m o f o

( f i ) o F o G s o o

( s i ) o G o A

C O D E N O T A T I O N3 ,

1 1 , 2 *

f 8 , 4 , 1 , 9 , 6 , 3 ,

1 1 , 48 , 4 , 1 , 9 , 6 , 5 "

1 , 9 , 6 , 3 ,

1 1 , 38 , 4 , 1 , 9 ,

6 , 3 ,

1 1 , 58 ,

M U S I C N O T A T I O N

D

G

T R E B L EO

C L E F

T O S H A R P ( # N O T E , A D T F L A T ( N O T E , S U B T R A C T

S n o y o k n o w w h y w e u s e d t h s e q u e n c e 4 , 6 , 8 , 9 , 1 1 , 1 , 3 , 4 f o r o u n o t ec o d e s t p l a y C - s c a l e , a n w h y w e s w i t c h e d f r o m t w o c t a v e s d o w n t o n o c t a v e b e t w e e n 1 a n 1 I c o n v e n t i o n a l m u s i c n o t a t i o n , d u r a t i o n s a r i n d i c a t e d e i t h e r d i r e c t l y a s f r a c t i o n s o w h o l e n o t e , s u c h a l n o t e , V n o t e ,e t c . , o b m e a n s o g r a p h i c s y m b o l s . I w a r b i t r a r i l y c a l l 1 6 0 6 0 t h o s e c o n d t h d u r a t i o n v a l u e f o w h o l e n o t e , t h e n a w h o l e n o t e i e n c o d e dw i t h 1 6 0 , V n o t e w i l l h a v e t h v a l u e 8 0 l n o t e g e t s t h v a l u e 4 0 e t c .T h i s t e c h n i q u e a l l o w s y o t h a v e " o d d b a l l " d u r a t i o n s s u c h a x n o t e5 ( 1 6 % ) , o r a d o t t e d q u a r t e r n o t e 6 ( 4 o n h a l f o 4 0 ) . O c o u r s e , y o d o n ' t h a v e t f o l l o w t h i s c o n v e n t i o n , a n y o c o u l d h a v e a n r e a s o n a b l et i m i n g c o n s t a n t y o l i k e . I a n c a s e , h e r e i t a b l e t h a t w i l l t a k e y o u f r o mc o n v e n t i o n a l n o t a t i o n t w h a t w e ' r e u s i n g a d u r a t i o n v a l u e s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 282/318

T h W e l l - T e m p e r e d C o m p u t e r 2 6

N A M E

D O T T E DW H O L E

W H O L E

D O T T E DH A L F

H A L F

D O T T E DQ U A R T E R

Q U A R T E R

S Y M B O L

J

V A L U E

2 4

1 6

1 2

8

6

4

N A M E

D O T T E DE I G H T H

Q U A R T E RT R I P L E T

E I G H T H

E I G H T HT R I P L E T

S I X T E E N T H

T H I R T Y -S E C O N D

S Y M B O L

j V A L U E

3

2

2

1

1

A i r e a l l i f e e v e r y t h i n g i r e l a t i v e , s o t h e v a l u e f o ( i l i n e 4 9 0 ) i s c a l e f a c t o r w h i c h m u l t i p l i e s t h t i m e v a l u e , a n i o u w a o p e r m i t t i n gt e m p o ( o v e r a l l s p e e d o f t h e m u s i c ) c o n t r o l w i t h s i n g l e n u m b e r . I S w e r e2 t h e n t h t e m p o w o u l d b t i m e s s l o w e r ; i i w e r e V z t h t e m p o w o u l db t i m e s f a s t e r . T r s e t t i n g a n . t o v e r i f y t h a t i w o r k s t h w a y o e x p e c t . A t h i s p o i n t , y o s h o u l d d e f i n i t e l y t r y y o u r h a n d w i t h t h n o t eD A T A s t a t e m e n t s t g e d i f f e r e n t t u n e s e n c o d e d , w h i c h w i l l g i v e y o p r a c t i c ei g e t t i n g t h d u r a t i o n s a n n o t e v a l u e s c o r r e c t .

O K a s s u m i n g y o u ' v e e x p e r i m e n t e d w i t h s i n g l e v o i c e t u n e s , w e ' l l g o t s o m e t h i n g e v e n m o r e f u n , m u l t i p l e - v o i c e m u s i c . t h i n k y o c a s e h o w w i l l p r o c e e d . O u D A T A s t a t e m e n t s w i l l n o c o n s i s t o t h r e e s e t s o i n f o r m a t i o n i n s t e a d o o n e . W c o u l d d t h r e e s e t s o P O K E s t g e t h S I c h i p a c t i v a t e d . T h i s w o u l d b f i n e i a l n o t e s a l w a y s s t a r t e d a n f i n i s h e da t h s a m e t i m e , b u t h i s i n o u s u a l l y t h e c a s e i m o s t m u s i c .

I m u c h m u s i c , t h e n o t e s f r e q u e n t l y d o n ' t " l i n e u p . " T h i s g i v e s i i t m u l t i p l e - v o i c e s o u n d . T w g e n e r a l t e c h n i q u e s a r p r e v a l e n t i e n c o d i n g m s i f o c o m p u t e r s . O n i c a l l e d ' ' h o r i z o n t a l , " w h i c h s i m p l y h a t h t i m i n ga n f r e q u e n c y v a l u e s f o e a c h v o i c e i a s e p a r a t e t a b l e ( a y o w o u l d r e a de a c h v o i c e i s c o r e b s c a n n i n g i h o r i z o n t a l l y ) . T h i s w o u l d b r e l a t i v e l ye a s y t u s i w h a s e p a r a t e t i m e r f o e a c h v o i c e .

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 283/318

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 284/318

T h W e l l - T e m p e r e d C o m p u t e r 2 7

b 4 I T I > T T H E N 5 0 R E G E T M O R E D A T Ab 5 G O T O b 4 R E W A I T F O T I M E RT h i s i s l i g h t l y d i f f e r e n t i n s t y l e f r o m o u p r e v i o u s m u s i c p r o g r a m . W

g a v e v a r i a b l e n a m e s t o u m o s t h e a v i l y u s e d c o n s t a n t s — 2 5 6 , 1 , 0 , a n 1 i o r d e r t g a i n s p e e d , s i n c e B A S I C d o e s n ' t h a v e t r e p e a t e d l y m a k e c o v e r s i o n s . W a l s o ^ r e c a l c u l a t e d t h o c t a v e d i v i s o r s i n t o a r r a y 0 ( 1 ) , a n t h e n t i r e f r e q u e n c y t a b l e i F H ( I , J ) a n F L ( I , J ) . ( Y o u s h o u l d d e l e t e t h R E M a r k sa n e x t r a s p a c e s f r o m y o u r w o r k i n g v e r s i o n . ) S p e e d i m o r e c r i t i c a l n o s i n c e s e t s o p a r a m e t e r s h a v e t b i n s t a l l e d i n t o S I i n s t e a d o f o n e , a n o c o u r s e t h e a i v e r y s e n s i t i v e t t i m i n g d i f f e r e n c e s w h e n t h r e e s o u n d sa r s u p p o s e d t s o u n d s i m u l t a n e o u s l y . A b e f o r e , y o s h o u l d d e f i n i t e l y S A V Et h i s p i e c e o t h p r o g r a m ( c a l l i S I D M U S I C 3 i y o w a n t t o b e f o r e p r c e e d i n g .

N o e n t e r t h i s s e t o D A T A s t a t e m e n t s :f l D D D A T A 0 , 0 4 , 2 , 0 4 , 1 , 0 0 , 0B I D A T A 0 , 0 ^ , 2 , 0 3 , 1 , 0 0 , 0f l 2 0 D A T A D , D f l , 5 , 0 1 , 5 , 0 0 , 0f l 3 0 D A T A 0 , a q , 2 , l l , 2 , 0 a , 0f l D A T A 4 0 1 1 2 O R 2 0 0 , 0f i 5 0 D A T A 4 0 , 0 1 , 1 , 0 3 , 2 , 0 0 , 0f l t O D A T A 0 0 3 , 1 , 0 b , 2 0 0 , 0f l ? 0 D A T A 4 D 0 4 , 1 , 0 4 , 2 , 0 0 , 0f l f l O D A T Aq q q q F O R T 2 f P O K E S I D + 1 , 0 N E X T E N D : R E M

S I L E N C E S I D , W E ' R E D O N EA f t e r y o R U t h i s , y o w i l l s e t h a t t h e " e v e n t s " h e r e a r v e r y s i m p l e ,

s i n c e e a c h o t h t w v o i c e s w e r e s y n c h r o n i z e d , o n p l a y i n g C - s c a l e u p a n t h o t h e r p l a y i n g i d o w n . N o l e t ' s g e j u s t l i t t l e m o r e c o m p l e x , a n y o w i l l s e w h w n e e d t h e x t r a c o n d i t i o n ( I N 1 > Z i t h p r o g r a m ) .

f l O O D A T A 0 , 0 4 , 2 , 0 4 , 1 , 0 0 , 0f i l O D A T A 4 0 0 b 2 , 0 D , 0 , 0 0 , 0f l 2 0 D A T A 0 , 0 3 , 2 , 0 1 , 2 , 0 0 , 0f l 3 0 D A T A 0 O S 2 0 0 0 , 0 0 , 0f l 4 0 D A T A 4 0 , 1 1 , 2 , 0 q , 2 , 0 0 , 0f l 5 0 D A T A 0 , 0 1 , 1 , 0 0 , 0 , 0 0 , 0f l t O D A T A 4 0 , 0 3 , l , 0 b , 2 , 0 D , 0f i D A T A 0 , 0 4 , 1 , 0 0 , 0 , 0 0 , 0T h 0 ' f o t h n o t e I i t h s e c o n d v o i c e m e a n s " d o n ' t d a n y t h i n g " ;

i . e . , k e e p s u s t a i n i n g . S o , w e n o w h a v e s e r i e s o l n o t e s i v o i c e 1 p l a y i n ga g a i n s t s e r i e s o V n o t e s i v o i c e 2 D y o s e t h a t p l a y i n g s i n g l e V n o t e i n o t h s a m e a p l a y i n g t w l n o t e s ? R e m e m b e r , e a c h t i m e w " p l a y "

n o t e i g o e s i n t o a a t t a c k m o d e . T r y a d d i n g t h f o l l o w i n g l i n e s t m a k es u r e y o u n d e r s t a n d t h s i g n i f i c a n c e . ( D e l e t e l i n e 8 8 0 , f i r s t . )

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 285/318

2 7 A p p e n d i x

R O D A T A 4 0 , 0 4 , 5 , 0 4 , 1 , 0 0 , Dq i D A T A 4 0 , 0 b , 5 , 0 4 , 1 , 0 0 , 0q a d a t a 0 , o a , 2 , 0 1 , 5 , 0 0 , 0^ D A T A 4 0 , 0 ^ , 5 , 0 1 , 5 , 0 0 , 0R D A T A 0 , 1 1 , 5 O R 5 0 0 , 0q S D A T A 0 , 0 1 , 1 , 0 ^ , 5 , 0 0 , 0R b D A T A 0 , 0 3 , 1 , 0 b , 5 0 0 , 0R D A T A 0 , 0 4 , 1 , 0 b , 5 , 0 0 , 0H f l O D A T AM a k e s d i f f e r e n c e , r i g h t ? N o w , s u p p o s e i n s t e a d o w a n t i n g t p l a y l

n o t e s a g a i n s t V n o t e s , w w a n t t m a k e t h s e c o n d v o i c e t a l s o p l a y l n o t e sb u t w i t h l A " r e s t 1 1 i b e t w e e n ? I o u v o i c e p r o g r a m t h e r e w a n p r o v i s i o nf o r e s t s , i c a s e y o d i d n ' t a l r e a d y n o t i c e i t I m u s i c , r e s t s a r e q u i t e i p o r t a n t e v e n t h o u g h , o b e t t e r y e t , b e c a u s e t h e y f o r c e s i l e n c e . T t a k e c a r eo t h i s c a s e , w a r g o i n g t u s i o u n o t e c o d e t i n d i c a t e t h a t w w a n tt h a t v o i c e t r e l e a s e w i t h o u t i m m e d i a t e l y a t t a c k i n g . A n t h a t ' s w h w n e e d e dt h e e x t r a c o n d i t i o n a l s . S t r t h f o l l o w i n g t h e a r t h e f f e c t .

q O D A T A 0 , 0 4 , 5 , 0 4 , 1 , 0 0 , 0R I D A T A 4 0 0 b , 5 , - 1 , 0 , 0 0 , 0R 5 D A T A 4 0 , 0 f l , 5 , 0 1 , 5 , D 0 , 0R 3 D A T A 4 0 , 0 ^ , 5 , - 1 , 0 , 0 0 , 0R D A T A 4 0 , 1 1 , 5 , O R , 5 , 0 0 , 0R 5 D A T A 4 0 , 0 1 , 1 , - 1 , 0 , 0 0 , 0R b D A T A 4 0 , 0 3 , 1 , 0 b , 5 0 0 , 0R D A T A 4 0 , 0 4 , 1 , - 1 , 0 , 0 0 , 0q a d a t aM a k e s d i f f e r e n c e , r i g h t ? N o l e t ' s p u i a l t o g e t h e r w i t h s o m e r e a l

m u s i c . W h a t c o u l d b b e t t e r s u i t e d t t h 3 - v o i c e S I t h a n B a c h 3 - p a r tS i n f o n i a ? T h f i r s t f e w m e a s u r e s o t h S i n f o n i a # 1 a r r e p r o d u c e d b e l o w ,s y o c a f o l l o w a l o n g w i t h t h e n c o d i n g .

S i n f o n i a 1 0 s b a c h )

F i g u r e 1 3 S a m p l e m u s i c a l s c o r e

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 286/318

T h W e l l - T e m p e r e d t r n p u t e r 2 7

H e r e ' s t h p r o g r a m c o d e f o t h f i r s t m e a s u r e :R E M E A S U R E

f l O O D A T A 2 0 , 0 0 , 0 , 0 0 , 0 , 1 1 , 5f l O 2 D A T A 2 0 , 1 1 , 3 , 0 0 , 0 , 0 0 , 0f l O 4 D A T A 1 0 , 0 D , 0 , 0 0 , 0 , 0 3 , 4f l O b D A T A 1 0 , 1 0 , 3 , 0 0 , 0 , 0 0 , 0f l O f l D A T A 1 0 , 1 1 , 3 , 0 0 , 0 , 0 0 , 0f l l O D A T A 1 0 , 0 1 , 5 , 0 0 , 0 , 0 0 , 0f l l S D A T A 1 0 , 0 3 , 2 , 0 0 , 0 , 1 1 , 5S 1 D A T A 1 0 , 0 4 , 2 , 0 0 , 0 , 0 0 , 0f l i t D A T A 1 0 , O b , 2 0 0 0 , 0 0 , 0f i l f i D A T A 1 0 , 0 3 , 2 , 0 0 , 0 , 0 0 , 0

D A T AT r R U N n i n g t h i s l i t t l e b i b e f o r e y o c o n t i n u e t h p r o g r a m m i n g .

s u g g e s t y o R U a n l i s t e n a f t e r e n t e r i n g e a c h m e a s u r e .f i l R R E M E A S U R Ef l 2 0 D A T A 2 0 , 0 3 , 2 , 0 0 , 0 , 0 4 , 4f l 2 2 D A T A 2 0 , O b , 2 0 0 0 , 0 0 , 0f i 2 4 D A T A 2 0 , 0 4 , 2 , 0 0 , 0 , 0 0 , 0f l 2 b D A T A 2 0 , 0 3 , 2 , 0 0 , 0 , 0 0 , 0f l 2 f l D A T A 2 0 , 0 1 , 2 , 0 0 , 0 , D b , 4f l 3 0 D A T A 2 0 , 1 1 , 3 , 0 0 , 0 , 0 0 , 0f l 3 2 D A T A 2 0 , 1 0 , 3 , 0 0 , 0 , 0 0 , 0f l 3 4 D A T A 2 0 , O S , 3 , 0 0 , 0 , 0 0 , 0f l 3 b D A T A 2 0 , O b , 3 0 0 , 0 , O b f l 3 f l D A T A 2 0 , 0 4 , 2 , 0 0 , 0 , 0 0 , 0f l 4 0 D A T A 2 0 , 0 3 , 2 , 0 0 , 0 , 0 0 , 0f l 4 2 D A T A 2 0 , 0 1 , 2 , 0 0 , 0 , 0 0 , 0

V o i c e s t i l l h a s n ' t m a d e i t a p p e a r a n c e y e t , b u w i l l i t h f o l l o w i n gm e a s u r e ; e v e n t s t r u c t u r e l i k e m e a s u r e 1

f l 4 4 R E M E A S U R Ef l 4 b D A T A 0 , 0 3 , 2 , 0 0 , 0 , 1 1 , 5f l 4 f l D A T A 0 , 0 0 , 0 , 0 b , 3 0 0 , 0f l 5 0 D A T A 2 0 , 0 0 , 0 , 0 0 , 0 , 1 1 , 4f l 5 2 D A T A 2 0 , 0 1 , 2 , 0 5 , 3 , 0 0 , 0f l 5 4 D A T A 2 0 , 0 3 , 2 O b 3 0 0 , 0f i 5 t D A T A 2 0 , 0 5 , 2 , 0 6 , 3 , 0 0 , 0f i 5 f l D A T A 2 0 O b 2 , 1 0 , 3 , 1 0 , 4f l b O D A T A 2 0 , 0 0 , 0 , 1 1 , 3 , 0 0 , 0f l b 2 D A T A 2 0 , O D , 0 , 0 1 , 2 0 0 , 0f l b 4 D A T A 2 0 , 0 0 , 0 , 1 0 , 3 , 0 0 , 0f l b b R E M E A S U R Ef l b f i D A T A 1 0 , 0 0 , 0 , 0 3 , 2 , 1 1 , 4f l D A T A 1 0 , 0 0 , 0 , 0 1 , 2 , 0 0 , 0f l ? 2 D A T A 1 0 , 0 0 , 0 , 1 1 , 3 , 0 0 , 0

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 287/318

2 7 A p p e n d i x

f l ? 4 D A T A 1 0 , 0 0 , 0 , 1 0 , 3 , 0 0 , 0f l ? b D A T A 1 0 , 0 0 , 0 , D o , 3 , 0 1 , 3f l ? f l D A T A 1 0 , 0 0 , 0 , 0 b , 3 , 0 0 , 0Q f l O D A T A 1 0 , 0 0 , 0 , 0 5 , 3 , 0 0 , 0f l f l 5 D A T A 1 0 , 0 0 , 0 , 0 3 , 3 , 0 0 , 0f l f l 4 D A T A 1 0 , 0 5 , 2 , 0 1 , 3 , 0 1 , 4f l f l b D A T A 1 0 , 0 0 , 0 , 1 1 , 3 , 0 0 , 0f l f l f l D A T A 1 0 , 0 0 , 0 , 1 0 , 3 , 0 0 , 0a q d a t a i o , o o , o , o a , 3 , o o , oN o t i c e t h e f o r c e d r e s t ( - 1 , 0 ) f o v o i c e i t h 5 t h e v e n t o f t h e f o l l o w i n g

m e a s u r eR E M E A S U R E

f l q 4 D A T A 1 0 O f c , 5 , 1 0 , 3 0 b D A T A 1 0 , 0 0 , 0 , 0 1 , 3 , 0 0 , 0D A T A 1 0 , 0 0 , 0 , 0 3 , 3 , 0 0 , 0

R O D A T A 1 0 , 0 0 , 0 , 0 5 , 3 , 0 0 , 0q O D A T A 1 0 , 0 0 , 0 , 0 b , 3 - 1 , 0q O D A T A 1 0 , 0 5 , 5 , 0 0 , 3 , 0 0 , 0q O D A T A 1 0 0 b 5 , 1 0 , 3 0 0 , 0q o d a t a i o , o a , a , i i , 3 , 0 0 , 0R I D A T A 1 0 , 1 0 , 5 0 1 S 0 0 , 0

D A T A 1 0 , 1 1 , 5 , 0 3 , 2 , 0 0 , 0D A T A 1 0 , 0 1 , 1 , 0 4 , 5 , 0 0 , 0

R i D A T A 1 0 , 1 0 , 5 , 0 1 , 5 , 0 0 , 0q i f l R E M E A S U R Eq S D A T A 1 0 0 3 , 1 , 0 b , 5 0 0 , 0R 5 D A T A 1 0 , 0 1 , 1 , 0 0 , 0 , 0 0 , 0q 5 D A T A I D 1 1 5 0 3 5 0 0 , 0q 5 D A T A 1 0 , 1 0 , 5 0 0 D 0 0 q 5 f l D A T A 1 0 , D f l , a , l l , 3 , 0 0 , Dq 3 D A T A 1 0 , O b , 5 O D 0 , 0 0 , 0q 3 D A T A 1 0 , 0 4 , 5 , 0 3 , 3 , 0 0 , 0R 3 D A T A 1 0 , 0 3 , 5 , 0 0 , 0 , 0 0 , 0q 3 D A T A 1 0 , 0 4 , 5 , 0 1 , 5 , 0 0 , 0q 3 f i D A T A 1 0 , 1 1 , 5 , 0 0 , 0 , 0 0 , 0q D A T A 1 0 , 1 0 , 2 0 0 , 0 , D O q 4 D A T A 1 0 , 0 5 , 5 , 0 0 , 0 , 0 0 , 0V o i c e c o m e s b a c k a g a i n i t h f o l l o w i n g m e a s u r e , a n p i c k s u t h

t h e m e .q 4 R E M E A S U R Eq 4 D A T A 1 0 O b 5 0 0 0 , ^ 0 0 , 0q 4 f i D A T A 1 0 , 0 0 , 0 , 0 4 , 5 , 0 0 , 0q 5 D A T A 1 0 D D , 0 , 0 3 , 2 , 1 1 , 4q 5 D A T A 1 0 , 0 0 , 0 , 0 1 , 5 , 0 0 , 0q 5 D A T A 1 0 , 0 0 , 0 , 0 3 , 5 , 0 0 , 0

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 288/318

S o u n d s f r o m H y p e r s p a c e 2 7

D A T A l D , D b , a , D D , D , l D , 4D A T A l Q , D f i , E , D D , D , l l , 4D A T A I Q / D q / B / D D / D / D l / a

R f c E D A T A 1 D , 1 1 , E , P D , D , Q 3 , 3D A T A 1 D , D D , D , D 1 , E , D 4 , 3D A T A 1 D / D D / D > D 3 ' / 5 / D E i # 3D A T A 1 D , D D , Q , 1 1 , 3 , D 3 , 3

M a k e s y o f e e l l i k e c o n t i n u i n g , d o e s n ' t i t h o p e y o u ' v e g o t h h a n g o i t T r y c h a n g i n g t h n a t u r e o t h v o i c e s , a n a d j u s t t h t e m p o u n t i l i s u i t sy o u . f e w s u g g e s t i o n s — i n " l i v e " m u s i c t h d u r a t i o n s c a n n o t b p r e c i s e ( n o rs h o u l d t h e y b e e l s e y o w i l l g e a n " o r g a n g r i n d e r " e f f e c t ) . Y o c a g e m o r e " h u m a n " s o u n d i y o v a r y t h d u r a t i o n v a l u e s b s l o w l y i n c r e a s i n g ,t h e n d e c r e a s i n g t h d u r a t i o n v a l u e s . T h a t ' s o n o t h r e a s o n s w c h o s e t h i sp a r t i c u l a r w a o c o d i n g — i t d o e s n ' t r e s t r i c t y o t e x a c t V s , l A , e t c . , d u r at i o n s — e v e n t h o u g h w d i d n ' t d i i o u e x a m p l e . ( S o m e c o m p o s e r s w i l lg i v e y o s p e c i f i c i n s t r u c t i o n s o t e m p o c h a n g e s ; r i t . f o r e t a r d ; a c e , f o a c e l e r a t e ; t e m p o f o " g o b a c k t o r i g i n a l t e m p o ; " a n o t h e r s . ) Y o s h o u l da l s o t r y o u r h a n d a p r o g r a m m i n g m o r e c o n v e n i e n t w a y s o e n c o d i n g t h m u s i c a n d w a y s o S A V E i n g j u s t t h D A T A . ( H i n t — y o u c a R E A D t h d a t a ,t h e n P R I N T t t a p e o r d i s k a n I N P U T w h e n y o w a n t i b a c k . ) A n o t h e rs u g g e s t i o n f o a d v a n c e d p r o g r a m m e r s a n d / o r m u s i c i a n s : T r y e x p e r i m e n t i n gw i t h d i f f e r e n t t e m p e r a m e n t s , o r o t h e r t h a n 1 2 - t o n e s c a l e s .

S o u n d s f r o m H y p e r s p a c eT h i s s e c t i o n i f u n . Y o c a n ' t g w r o n g w i t h s o u n d e f f e c t s , s i n c e y o

d e c i d e w h a t t h e " r u l e s " a r e . O n o t h m o s t v e r s a t i l e s o u n d e f f e c t f e a t u r e so S I i t h e n o i s e w a v e f o r m , w h i c h h a s n ' t b e e n u s e d y e t . A l t h o u g h i i t r u et h a t n o i s e d o e s n o h a v e d e f i n i t e p i t c h , i d o e s h a v e " c o l o r a t i o n " w h i c hc a b c o n t r o l l e d . S I c r e a t e s n o i s e b o u t p u t t i n g r a n d o m n u m b e r s a i t " w a v e f o r m , " b u t h r a t e a w h i c h i d o e s t h i s d e p e n d s o w h a t h a b e e ns t o r e d i t h f r e q u e n c y r e g i s t e r . A l o r a t e s , t h e n o i s e w i l l s o u n d " s t a t i c k y , "a h i g h r a t e s " h i s s y . " T h q u a l i t y c a b 2 5 f u r t h e r c o n t r o l l e d b t h f i l t e r( w h i c h w h a v e n ' t u s e d y e t ) , a n o c o u r s e , v o i c e U s e d w i t h n o i s e s t i l l h a c o n t r o l l a b l e A D S R . S l e t ' s p u s o m e o t h e s e i n t o e f f e c t . L O A D i t h o p e n i n gp r o g r a m ( l i n e s 1 0 0 - 1 9 0 ) t d e f i n e s o m e o t h S I a d d r e s s e s .

1 D P O K E V O L / 1 5 R E M S E T V O L U M E T M A X I M U Ml i W V = 1 2 f l R E N O I S E W A V E F O R M1 3 D A T = 11 3 D f 1 ' A U S U = f l

R E A T T A C K R A T ER E D E C A Y R A T ER E S U S T A I N A M P L I T U D E

I S R E 1 R E R E L E A S E R A T El t F R 1 D D D R E F R E Q U E N C Y I H 1 7 T R E M T I M E I S E C O N D Si f l D

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 289/318

2 7 A p p e n d i x

F I N T ( F R / E 5 b ) F L = F R - E 5 b * F H R E M G E TH I G H A N L O W B Y T E

E D T I $ = » Q Q D D D D » T M = T M * b D R E T I M E I J I F F I E SE 1 E E D P O K E A l , l b * A T D R E I N S T A L L A T T A C K / D E C A Y R A T E SE 3 D P O K E S l , l b * S U R R E I N S T A L L S U S T A I N A M P L I T U D E

A N R E L E A S E R A T EE 0 P O K E F 1 / F L P O K E F , F R E I N S T A L L F R E Q U E N C YE 5 E f c D T = T I + T M P O K E W 1 , W V + 1 R E S T A R T T H S O U N DE 7 I T K T H E N E 7 R E K E E P N O T E G O I N GE f l D P O K E H l / W V R E R E L E A S ER U t h i s r e p e a t e d l y , f i r s t t r y i n g o u d i f f e r e n t v a l u e s f o F R ( c a n n o t b

h i g h e r t h a n 3 9 0 0 H z ) , t h e n w i t h d i f f e r e n t n u m b e r s f o A T D E S U a n R E ( N o t e t h a t i T i t o s m a l l , t h r e l e a s e h a p p e n s b e f o r e t h e s u s t a i n i r e a c h e d ,w h i c h c a g i v e y o t h e f f e c t o c o n t r o l l i n g t h v o l u m e . ) T r y b o t h v e r y l o f r e q u e n c i e s ( a r o u n d 2 0 H z ) a w e l l a v e r y h i g h f r e q u e n c i e s ( a r o u n d 3 0 0 0H z ) . W i t h f a s t a t t a c k ( A 0 ) a n n s u s t a i n ( S 0 y o c a g e g u n s h o t s ,d o o r s l a m s , f o o t s t e p s , a n v a r i o u s " i m p u l s e " t y p e s o u n d s . W i t h m e d i u ma t t a c k a n d e c a y , m e d i u m s u s t a i n a m p l i t u d e s , a n l o n g r e l e a s e s , y o c a g e w i n d , s u r f , d i s t a n t e x p l o s i o n s , t h u n d e r a n o t h e r t y p e s o " r u s h i n g s o u n d s . "

T h e r e a r a l s o f i l t e r s i n s i d e t h S I D w h i c h l e y o " c o l o r " t h s o u n d sp r o d u c e d b t h c h i p . T h u s o t h f i l t e r s c a b c o m p l i c a t e d , e s p e c i a l l yp r o g r a m m i n g S I f r o m B A S I C . Y o c a n , h o w e v e r , s t u d y t h f o l l o w i n g s o u n de f f e c t e x a m p l e s a n c h a n g e t h n u m b e r s P O K E d i n t o t h r e g i s t e r s f o r t h f i l t e r t h a t w h a v e n ' t d i s c u s s e d . A t h n a m e s s u g g e s t , t h h i g h p a s s f i l t e ra l l o w s o n l y f r e q u e n c i e s h i g h e r t h a n t h r e s o n a n c e f r e q u e n c y t p a s s t h r o u g h ;t h l o p a s s f i l t e r a l l o w s o n l y f r e q u e n c i e s l o w e r t h a n t h r e s o n a n c e f r e q u e n c yt p a s s t h r o u g h ; a n t h b a n d p a s s f i l t e r a l l o w s o n l y f r e q u e n c i e s s o m e w h a ta b o v e a n b e l o w t h r e s o n a n c e f r e q u e n c y t p a s s t h r o u g h .

F R E Q U E N C YH I G H P A S S ( 6 4 )

F R E Q U E N C YB A N D P A S S ( 3 2 )

F R E Q U E N C YL O P A S S ( 1 6 )

F i g u r e 1 4 F i l t e r m o d e s

T p l a y w i t h t h f i l t e r , a d t h e f o l l o w i n g l i n e s t t h s o u n d e f f e c t a b o v e :1 7 M O D E = 3 R E F I L T E R M O D E1 7 R S = 1 5 R E F U L L R E S O N A N C E1 7 R F R Q 1 D D D D R E F I L T E R F R E Q U E N C Y

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 290/318

S o u n d s f r o m H y p e r s p a c e 2 7

1 7 f l R = ( R F R Q - 3 D ) / 5 . f l : R H I N T ( R F / f l ) : R L = R F - f l * R HR E R E S O N A N C E F R E Q U E N C YP O K E S I E 3 , l b * R S R E I N S T A L L R E S O N A N C E ,C O N N E C T V O I C E T F I L T E RP O K E S I D + S 1 , R H P O K E S I D + E 2 , R L R E I N S T A L LF I L T E R F R E Q U E N C YP O K E V O L , M O + 1 R E I N S T A L L F I L T E R M O D E ,V O L U M E T M A X I M U M

R U t h i s , e x p e r i m e n t i n g w i t h M O D E ( l i n e 1 7 2 ) , v a l u e s 6 ( h i g h p a s s ) ,3 ( b a n d - p a s s ) , a n 1 ( l o w p a s s ) . A l s o , c h e c k o u t h e f f e c t s o c h a n g i n g F R ( l i n e 1 6 0 ) a n R F R Q ( l i n e 1 7 6 ) . Y o w i l l f i n d t h a t , i g e n e r a l , t h o v e r a l lv o l u m e i d i m i n i s h e d , s i n c e t h f i l t e r i m a n y c a s e s r e m o v e s l o o t h " e n e r g y ' 1 i t h s o u n d . A l s o e x p e r i m e n t , o c o u r s e , w i t h t h e a t t a c k / d e c a y a n s u s t a i n / r e l e a s e v a l u e s .

T h f u l l e f f e c t o t h f i l t e r c a b e t t e r b e h e a r d b c h a n g i n g i t r e s o n a n c ef r e q u e n c y w h i l e t h s o u n d i s u s t a i n i n g . Y o c a n d o t h i s s i m p l y b c h a n g i n g /a d d i n g t h f o l l o w i n g l i n e s :

2 7 D M L 1 . R E F A C T O R W H I C H C H A N G E S R E S O N A N C EF R E Q U E N C Y

E f l D f l : W l : H I S D D Q : L O 5 0 R E C O N S T A N T S T S P E E D C O M P U T A T I O N S

E H I T I > T M T H E N 3 b S T O P W H E N T I M E R E X C E E D S . T M3 D D R F R F * M L3 1 I R F > H I A N M L > W T H E N M W / M L R R F * M L R E

M A K E S R R E V E R S EB E I R F < L O A N M L < W T H E N M L W / M L R R F * M L3 3 D R H I N T ( R F / E ) R R E * R H R E C A L C U L A T E

L O W , H I G H P A R T S3 4 P O K E S I E 1 , R L P O K E S I + E R R E I N S T A L L

R E S O N A N C E F R E Q U E N C Y3 5 G O T O 3 D 3 t P O K E W 1 , W V R E G I N T O R E L E A S E P H A S EN o y o h a v e s o m e f i l t e r d y n a m i c s t p l a y w i t h . T r y c h a n g i n g M ( l i n e

2 7 0 ) w h i c h c o n t r o l s t h e r a t e o f t h f i l t e r f r e q u e n c y s w e e p . S A V E t h i s p r o g r a m ,c a l l e d S I D N O I S E .

Y o p r o b a b l y a l r e a d y g u e s s e d t h a t n o o n l y c a n o i s e b " t a i l o r e d " b t h f i l t e r , b u s c a t h o t h e r w a v e f o r m t y p e s . Y o w i l l f i n d t h a t t h s a w t o o t ha n p u l s e w a v e f o r m s a r e t h e b e s t o n e s t u s s i n c e t h e y a r r i c h i h a r m o n i c s ,a n a r t h e r e f o r e m o s t a f f e c t e d b f i l t e r i n g . S t r t h e f f e c t o W 6 a n W 3 i o u p r e v i o u s p r o g r a m .

F i n a l l y , h e r e i s e o s o u n d e f f e c t s t h a t i l l u s t r a t e m a n y o t h e p r i n c i p l e sw h a v e b e e n d i s c u s s i n g . A u s u a l , a s s u m e y o h a v e o u r o p e n i n g p r o g r a m( l i n e s 1 0 - 9 0 ) a l r e a d y L O A D e d i n T h t i t l e a n R E M s s h o u l d b e s u f f i c i e n t f o y o t o f i g u r e o u w h a t i g o i n g o n a n y o c a n e x p e r i m e n t l i b e r a l l y .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 291/318

2 7 A p p e n d i x

G U N S H O T

1 0 P O K E F l , 2 0 0 P O K E F l + 1 , 4 0 R E F R E Q U E N C Y , V O I C E1 1 P O K E A l , 0 + 1 5 R E F A S T A T T A C K , S L O W D E C A Y1 2 P O K E S 1 , 0 R E N S U S T A I N , F A S T R E L E A S E1 3 F O 1 T S T E P - R E 1 S T E P S1 4 P O K E W l , 1 2 8 + 1 R E N O I S E W A V E F O R M F O V O I C E 1 S T A R T A T T A C K1 5 P O K E V O L , I R E D Y N A M I C V O L U M E I O K F O R N O I S E W A V E F O R M1 6 N E X T1 7 P O K E W 1 , 0 R E R E L E A S E V O I C E

D O L L C R Y I N G

1 0 P O K E V O L , 1 5 R E V O L U M E T M A X I M U M1 1 P O K E A l , 1 5 R E F A S T A T T A C K , S L O W D E C A Y1 2 P O K E S 1 , 0 R E N O S U S T A I N , F A S T R E L E A S E1 3 P O K E F l + 1 , 4 0 R E F R E Q . H I G H F O V O I C E D O E S N ' T C H A N G E1 4 P O K E W l , 3 2 + 1 R E S A W T O O T H W A V E F O R M F O V O I C E 1 S T A R T A T T A C K1 5 F O 2 0 T S T E P - R E F R E Q U E N C Y S W E E P D O W N1 6 P O K E F 1 , I R E S W E E P F R E Q U E N C Y L O 1 7 N E X T1 8 F O 1 5 T S T E P - R E S E C O N D F R E Q U E N C Y S W E E P1 9 P O K E F 1 , I2 0 N E X T2 1 P O K E W 1 , 0 R E L E A S E V O I C E

V I B R A T O

1 0 P O K E S I D + 3 , 4 R E 2 5 P U L S E W I D T H1 1 P O K E A l , 2 * 1 6 + 9 P O K E S I , 5 * 1 6 + 9 R E M S E T A D S R F O R V O I C E

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 292/318

S o u n d s f r o m H y p e r s p a c e 2 7

1 2 P O K E F 3 , 1 2 0 R E F R E Q . F O R V O I C E I 7 . H

1 3 P O K E W 3 f 1 6 R E T R I A N G L E W A V E F O R M F O V O I C1 4 P O K E V O L f 1 2 8 + 1 5 R E V O I C E D I S C O N N E C T E D , M A X I M U M V O L U M E1 5 R E A D F R , D R R E R E A D F R E Q U E N C Y , D U R A T I O N1 6 I F R = 0 T H E N E N D

1 7 P O K E W l , 6 4 + 1 R E V O I C E A T T A C K1 8 F O T D R * 3 R E O C Y C L E S1 9 F F R + P E E K ( S I D + 2 7 ) / 2 R E R E A D V O I C E O U T P U T , A D J U S T

F R E Q U E N C Y2 0 0 F H I N T ( F Q / 2 5 6 ) F F A N 2 5 R E F R E Q U E N C Y H I G H , L O W2 1 P O K E F 1 , F L P O K E F 1 + 1 , F H2 2 N E X T2 3 P O K E W l , 6 4 R E R E L E A S E V O I C E2 4 G O T O 1 5 R E G O F O R M O R E D A T A2 5 2 6 D A T A 4 8 1 7 , 2 , 5 1 0 3 , 2 , 5 4 0 7 , 22 7 D A T A 8 5 8 3 , 4 , 5 4 0 7 , 2 , 8 5 8 3 , 42 8 D A T A 5 4 0 7 , 4 , 8 5 8 3 , 1 2 , 9 6 3 4 , 22 9 D A T A 1 0 2 0 7 , 2 , 1 0 8 1 4 , 2 , 8 5 8 3 , 23 0 D A T A 9 6 3 4 , 4 , 1 0 8 1 4 , 2 , 8 5 8 3 , 23 1 D A T A 9 6 3 4 , 4 , 8 5 8 3 , 1 23 2 D A T A 0 ,

S I R E N

1 0 R S I D + 2 7 R E V R E A D1 1 B Y T E = 2 5 6 3 . R E C O N S T A N T S

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 293/318

2 8 A p p e n d i x

1 1 P O K E F 3 , 5 R E V F R E Q U E N C Y 1 / H 1 1 P O K E W 3 , 1 6 R E V I T R I A N G L E1 2 P O K E F l + 3 , 2 R E 1 2 V D U T Y C Y C L E1 3 P O K E V O L , 1 2 8 + 1 5 R E V 3 O F F , V O L U M E S E T T O M A X I M U M1 4 P O K E S I , 1 5 * 1 6 + 0 R E V M A X I M U M S U S T A A I N , F A S T R E L E A S E1 5 P O K E A 1 , 0 R E V F A S T A T T A C K , F A S T D E C A Y1 6 P O K E W l , 6 4 + 1 R E V A T T A C K W I T H P U L S E W A V E F O R M1 7 F 7 0 0 0 R E V F R E Q 4 4 H

1 8 F O T 4 0 R E F R E Q . S W E E P1 9 F F + K P E E K ( R 3 ) A D J U S T F R E Q U E N C Y2 0 F I N T ( F Q / B Y ) F F Q - B Y * F H2 1 P O K E F 1 , F L P O K E F 1 + 1 , F H R E I N S T A L L N E F R E Q U E N C Y2 2 N E X T2 3 P O K E W 1 , 0 R E L E A S E V O I C E

H A M M E R I N G

1 0 R S I D + 2 3 R E R E S O N A N C E / F I L T E R1 1 0 F C S I D + 2 1 R E F I L T E R C U T - O F F1 2 P O K E F l + 1 , 3 0 R E V F R E Q 4 8 H

1 3 P O K E A l , 0 + 6 R E V F A S T A T T A C K , M E D I U M D E C A Y1 4 P O K E S 1 , 0 R E V N S U S T A I N , F A S T R E L E A S E1 5 P O K E F C + 1 , 1 5 0 R E F I L T E R F R E Q .1 6 P O K E R F , 0 + 1 R E M N O R E S O N A N C E , V C O N N E C T E D T F I L T E R1 7 P O K E V O L , 6 4 + 1 5 R E H I G H - P A S S M O D E , M A X I M U M V O L U M E

1 8 F O T 1 R E O C L A P S1 9 P O K E W l , 1 2 8 + 1 R E A T T A C K W I T H V N O I S E2 0 F O J T 2 0 N E X T R E D E L A Y2 1 P O K E W l , 1 2 8 R E R E L E A S E V

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 294/318

S o u n d s f r o m H y p e r s p a c e 2 8

2 2 F O J T O 1 0 0 N E X T R E D E L A Y

2 3 N E X T2 4 E N

M O S Q U I T O

1 0 P O K E F l + 1 , 1 0 0 R E V F R E Q . 1 6 0 0 H

1 1 P O K E A l , 1 3 * 1 6 + 1 3 R E V S L O W A T T A C K , S L O W D E C A Y1 2 P O K E S 1 , 0 R E V N O S U S T A I N , F A S T R E L E A S E

1 3 P O K E F 3 + l , 2 8 R E V F R E Q . 4 5 H 1 4 P O K E V O L , 1 5 R E M A X I M U M V O L U M E1 5 P O K E W l , 1 6 + 2 + 1 R E V I T R I A N G L E , S Y N C W I T H V 3 A T T A C K1 6 F O T O 5 0 0 0 N E X T R E D E L A Y1 7 P O K E W l , 1 6 + 2 R E R E L E A S E V O I C E1 8 F O T 1 0 0 0 N E X T R E D E L A Y1 9 P O K E W 1 , 0 : R E M R E L E A S E V

2 0 E N

C L O C K C H I M E

1 0 P O K E F l + 1 , 1 3 0 R E V F R E Q 2 0 0 0 H

1 1 P O K E A l , 0 + 9 R E V F A S T A T T A C K / M E D I U M D E C A Y1 2 P O K E F 3 + l , 3 0 R E V F R E Q 4 8 H

1 3 P O K E V O L , 1 5 R E M A X I M U M V O L U M E1 4 F O T 1 R E 1 C H I M E S1 5 P O K E W l , 1 6 + 4 + 1 R E V I T R I A N G L E , R I N G M O D U L A T E W I T H

V 3 A T T A C K1 6 F O = T O 5 0 0 N E X T R E D E L A Y1 7 P O K E W l , 1 6 + 4 R E R E L E A S E V

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 295/318

2 8 A p p e n d i x 3

1 8 F O T O 1 0 0 N E X T R E D E L A Y1 9 N E X T R E N E X T C H I M E2 0 0 P O K E W 1 , 0 R E R E L E A S E V 2 1 E N

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 296/318

E r r o r M e s s a g e s

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RB A S U B S C R I P T E R R O R

b a s u b s c r i p t i j u s t w h a t i t n a m e i m p l i e s — a s u b s c r i p t n u m b e rt o b i f o t h s i z e o t h a r r a y D I M e n s i o n e d . I D I M e n s i o n l i n er e a d s D I A $ ( 1 0 0 ) , f o i n s t a n c e , t h e r e c a b n v a r i a b l e n a m e dA $ ( 1 0 1 ) . T h i s E R R O R a l s o h a p p e n s w h e n n D I s t a t e m e n t i u s e da a l a n v a r i a b l e s w i t h s u b s c r i p t n u m b e r s l a r g e r t h a n 1 a r u s e d . C h e c k v a r i a b l e s u s e d a s u b s c r i p t s f o t h p r o b l e m .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RC A N ' T C O N T I N U E E R R O R

C O N T c a b u s e d t c o n t i n u e p r o g r a m a f t e r t h R U N / S T O P k e w a p r e s s e d o t h w o r d S T O P w a u s e d . I y o c h a n g e a n l i n ei t h p r o g r a m d u r i n g b r e a k , h o w e v e r , t h a b o v e E R R O R w i l la p p e a r . I w i l l a l s o b s e e n w h e n t h p r o g r a m h a n o b e e n R U a a l l . I e i t h e r c a s e , R U t h p r o g r a m ( a g a i n ) .

2 8

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 297/318

2 8 A p p e n d i x 4

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RE X T R A I G N O R E D

T h i s i r e a l l y a E R R O R t h a t y o c a n n o t c o r r e c t , a n h a p p e n sw h e n y o u r a n s w e r t a I N P U T s t a t e m e n t c o n t a i n s c o m m a w h e r eo n d o e s n o t b e l o n g . C o m m a s a r u s e d b t h C o m m o d o r e c o p u t e r s a s s p e c i a l c h a r a c t e r s . T h o n l y t i m e t h a t t h e y a r a l l o w e dw i t h i n a a n s w e r t I N P U T i w h e n t h p r o g r a m i l o o k i n g f o s e v e r a l a n s w e r s a o n c e . L i k e t h i s :I I N P U T f i $ , B $ , C $C o m m a s i s t r i n g s w i l l a l s o c a u s e p r o b l e m s w h e n t h e y a r s t o r e da n r e c a l l e d t a n f r o m d i s k i n f o r m a t i o n f i l e s .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RF I L E N O T F O U N D

T h i s m e s s a g e w i l l a p p e a r i y o t r y t o L O A D p r o g r a m o f i l ef r o m d i s k t h a t d o e s n o e x i s t . I y o a r s u r e t h a t y o h a v e t h p r o g r a m , c h e c k t h e d i s k d i r e c t o r y t o s e e i i i o t h a t p a r t i c u l a rd i s k , o c h e c k y o u r s p e l l i n g . T h d i s k d r i v e e x p e c t s a b s o l u t e a cc u r a c y w h e n a s k i n g f o p r o g r a m b y n a m e . A v o i d t h i s E R R O Rb u s i n g a a s t e r i s k f o p a t t e r n m a t c h i n g p u r p o s e s .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RF I L E N O O P E N E R R O RF I L E O P E N E R R O R

W h e n u s i n g d a t a - h a n d l i n g w o r d s P R I N T # , I N P U T # a n G E T # ,y o m u s t f i r s t O P E N f i l e , o t h e r w i s e F I L E N O O P E N E R R O Rw i l l o c c u r . T h i s a l s o h a p p e n s w i t h C M D , w o r d u s e d t t r a n s f e ri n f o r m a t i o n m e a n t t b P R I N T e d o t h v i d e o s c r e e n t p r i n t e ro d i s k d r i v e , i u s e d w i t h o u t O P E N i n g t h c o r r e c t f i l e , a n w i t ht h w o r d C L O S E , a w e l l . F I L E O P E N E R R O R s w i l l b s e e n w h e ny o t r t O P E N f i l e t h a t h a b e e n O P E N e d b u n o C L O S E d .A l w a y s c h e c k t h f i l e s e q u e n c e t m a k e s u r e t h f i l e i C L O S E da f t e r u s e .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 298/318

E r r o r M e s s a g e s 2 8

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RI L L E G A L D I R E C T

W h i l e m a n y B A S I C w o r d s c a n b e t y p e d d i r e c t l y f r o m t h k e y b o a r da n u s e d o u t s i d e p r o g r a m , I N P U T c a n n o t . T h i s i l o g i c a l , c o s i d e r i n g i t u s e .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RI L L E G A L Q U A N T I T Y E R R O R

W h e n t h i s E R R O R o c c u r s i p r o g r a m l i n e w i t h P O K E s t a t em e n t , c h e c k t s e e t h a t n n u m b e r g r e a t e r t h a n 2 5 5 o l e s s t h a n( z e r o ) i b e i n g p u i n t o l o c a t i o n i m e m o r y . I v a r i a b l e s a r e u s e d ,c h e c k t h n u m b e r s t h e y s t a n d f o t s e i t h e y w e r e c a l c u l a t e d t g r e a t e r t h a n 2 5 5 o l e s s t h a n 0

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R

I L L E G A L Q U A N T I T Y E R R O RI n t e g e r v a r i a b l e s a r e r e c o g n i z e d b t h p e r c e n t s i g n ( ' % ' ) • I t h i sE R R O R o c c u r s i l i n e w i t h a i n t e g e r v a r i a b l e , c h e c k t s e e t h a tt h v a r i a b l e d o e s n o s t a n d f o n u m b e r g r e a t e r t h a n 3 2 7 6 7 o l e s s t h a n - 3 2 7 6 8 . I t h E R R O R i n o i l i n e w i t h a i n t e g e rv a r i a b l e , c h e c k f o p r o b l e m s w i t h P O K E .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RN E X T W I T H O U T F O R E R R O R

U s i n g t h w o r d N E X T w i t h o u t o p e n i n g l o o p w i t h F O p r o d u c e st h i s m e s s a g e . T h i s w i l l a l s o h a p p e n i N E X T i u s e d w i t h t h w r o n gv a r i a b l e .I F O T I 5 N E X TN E R R O R m e s s a g e w i l l b g i v e n i t h e r e v e r s e h a p p e n s — F O R i u s e d w i t h o u t N E X T . I n s t e a d , t h l o o p w i l l s i m p l y n o c o n t i n u e a i s h o u l d .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 299/318

2 8 A p p e n d i x

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RN O I N P U T F I L E E R R O RN O O U T P U T F I L E E R R O R

C a s s e t t e t a p e f i l e s a r O P E N e d a s e i t h e r I N P U T o O U T P U T f i l e s ,d e p e n d i n g o t h e i r s e c o n d a r y a d d r e s s . A a d d r e s s o m e a n s t h a tt h t a p e f i l e i s O P E N e d f o r e c o r d i n g i n f o r m a t i o n t i t Y o c a n n o tu s I N P U T # o G E T # , o t h f i r s t E R R O R w i l l b s e e n . I n s e c o n d a r y a d d r e s s n u m b e r i u s e d w i t h t h c a s s e t t e r e c o r d e r , t h c o m p u t e r a s s u m e s t h a t i n f o r m a t i o n w i l l b r e c a l l e d f r o m i t U s i n gP R I N T # w i l l p r o d u c e t h s e c o n d E R R O R m e s s a g e .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RO U T O F D A T A

C o u n t t h n u m b e r o p i e c e s o i n f o r m a t i o n i D A T A s t a t e m e n t s ,t h e n c h e c k t s e h o w m a n y t i m e s t h p r o g r a m u s e s R E A D . ( O n ew a i t l o o k f o F O R / N E X T l o o p s w i t h R E A D i t h e m . ) C h e c kt h D A T A s t a t e m e n t s i t h p r o g r a m L I S T i n g y o a r e n t e r i n gf r o m , o r c o m p a r e t h i n f o r m a t i o n u s e d t p r e p a r e t h D A T A s t a t em e n t s .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RO V E R F L O W E R R O R

T h i s E R R O R o c c u r s w h e n y o a t t e m p t t w o r k w i t h t h l a r g e s tn u m b e r t h a t t h c o m p u t e r c a u s e , 1 . 7 0 1 4 1 8 8 4 E 3 8 o t h n u b e m u l t i p l e d b f o l l o w e d b 3 z e r o e s . T h s o l u t i o n ( n o t a l w a y sp o s s i b l e ) i t b r e a k u y o u r c a l c u l a t i o n s s o t h a t t h i s n u m b e r i n e v e r a c h i e v e d .

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

# % # % # * W % W * W 9 W » w * w w w w * » » w w » » » » - - - - - - - - - - - - -

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RR E D I M ' D A R R A Y E R R O R

D I c a n b e u s e d o n l y o n c e t c r e a t e a a r r a y o v a r i a b l e . O n c et h a t a r r a y i c r e a t e d , i c a n n o t b D I M e n s i o n e d a g a i n , o r e D I M e n s i o n e d . T h i s w i l l o c c u r p r i m a r i l y w h e n e d i t i n g p r o g r a m s o t r y i n g t l i n k t w p r o g r a m s w i t h D I s t a t e m e n t s i t h e m t o g e t h e r .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 300/318

E r r o r M e s s a g e s 2 8

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RR E D O F R O M S T A R T

T h i s m e s s a g e a p p e a r s w h e n e v e r y o u a n s w e r a I N P U T s t a t e m e n tw i t h s t r i n g , w h e n i e x p e c t s a n u m b e r . C o r r e c t t h s i t u a t i o n b a n s w e r i n g w i t h n u m b e r .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RR E T U R N W I T H O U T G O S U B

G O S U B a n R E T U R N w o r k t o g e t h e r . T h i s m e s s a g e w i l l a p p e a r i p r o g r a m e n c o u n t e r s R E T U R N w i t h o u t b e i n g t o l d t G O S U B . I

i m o s t o f t e n s e e n w h e n p r o g r a m l i n e i c a l l e d w i t h G O T O i s t e a d .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RS T R I N G T O L O N G E R R O R

S t r i n g s c a o n l y b e 2 5 5 c h a r a c t e r s l o n g . S t r i n g E R R O R s a r l i k e l yt o c c u r w h e n y o c o n c a t e n a t e , o a d d , o n s t r i n g t o a n o t h e r . C h e c kt h e l e n g t h o e a c h s t r i n g w h e n l o o k i n g f o t h s o u r c e o t h i s E R O R .

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RS Y N T A X E R R O R

S y n t a x E R R O R s c a b c a u s e d b d o z e n s o p r o b l e m s , b u a l a r a s s o c i a t e d w i t h B A S I C " g r a m m a r . " T h e m o s t c o m m o n p r o b l e m sa r e m i s s p e l l i n g s a n m i s s i n g p u n c t u a t i o n m a r k s , p a r i c u l a r l y c l o n s ( ' : ' ) a n c o m m a s ( ' , ' ) • A l s o l o o k f o u s o s e m i c o l o n s ( ' ; ' ) i p l a c e o f c o l o n s , a n m a k e c e r t a i n p a r e n t h e s e s a r c l o s e d . C h e c kt h r u l e s f o u s o p r o b l e m w o r d s .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 301/318

2 8 A p p e n d i x

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

T h i s k i n d o E R R O R i a l w a y s c a u s e d b t r y i n g t p u c h a r a c t e ri n t o n u m e r i c v a r i a b l e o a a c t u a l n u m b e r i n t o s t r i n g v a r i a b l e .S t r i n g s a n n u m b e r s d o n ' t m i x . T r o u b l e s t a t e m e n t s l o o k l i k e t h i s :I A ( o r ) A o

I A = » E X A M P L E " ( o r ) = A

E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O R E R R O RU N D E F I N E D S T A T E M E N T E R R O R

Y o m u s t u s G O S U B a n G O T O w i t h l i n e n u m b e r s t h a t a r e a t u a l l y u s e d i t h p r o g r a m . T h i s E R R O R o f t e n h a p p e n s w h e n y o e d i t p r o g r a m s o c h a n g e l i n e n u m b e r s a n f o r g e t t c h a n g e t h G O T O a n G O S U B s t a t e m e n t s t h a t r e f e r t t h e m . C h e c k l i n e n u b e r s i w h i c h t h E R R O R o c c u r s , t h e n t r t L I S T t h a t l i n e . S i n c eR U c a a l s o b e u s e d w i t h l i n e n u m b e r s , U N D E F I N E D S T A T EM E N T E R R O R S c a o c c u r t h i s w a y , t o o .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 302/318

A S C I I / C H R $ C o d e sB a s e C o n v e r s i o n T a b l e

D I S A B L E S

S W I T C H T L O W E R C A S E

M S

P R I N T S C H R $ P R I N T S C H R $ P R I N T S C H R $ P R I N T S C H R $

I E N A B L E S H (

1

1 1 1 1 1

1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3

3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5

<

5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6

2 8

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 303/318

  

  

     

      

     

  

 

  

 

  

 

  

  

 

 

 

 

  

  

 

  

 

 

 

 

 

 

 

 

 

 

  

 

 

  

   

 

 

 

 

 

 

      

 

 

 

 

 

  

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

z   

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 304/318

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 305/318

2 9

B A S E C O N V E R S I O N T A B L E ( C o n t i n u e d )B I

1 1 0 1 0 1 01 1 0 1 0 1 11 1 0 1 1 0 01 1 0 1 1 0 11 1 0 1 1 1 01 1 0 1 1 1 11 1 1 0 0 0 01 1 1 0 0 0 11 1 1 0 0 1 01 1 1 0 0 1 11 1 1 0 1 0 01 1 1 0 1 0 11 1 1 0 1 1 01 1 1 0 1 1 11 1 1 1 0 0 01 1 1 1 0 0 11 1 1 1 0 1 01 1 1 1 0 1 11 1 1 1 1 0 01 1 1 1 1 0 11 1 1 1 1 1 01 1 1 1 1 1 1

1 0 0 0 0 0 0 01 0 0 0 0 0 0 11 0 0 0 0 0 1 01 0 0 0 0 0 1 11 0 0 0 0 1 0 01 0 0 0 0 1 0 11 0 0 0 0 1 1 01 0 0 0 0 1 1 11 0 0 0 1 0 0 01 0 0 0 1 0 0 11 0 0 0 1 0 1 01 0 0 0 1 0 1 11 0 0 0 1 1 0 01 0 0 0 1 1 0 11 J 0 0 0 1 1 1 01 0 0 0 1 1 1 11 0 0 1 0 0 0 01 0 0 1 0 0 0 11 0 0 1 0 0 1 01 0 0 1 0 0 1 11 0 0 1 0 1 0 01 0 0 1 0 1 0 11 0 0 1 0 1 1 01 0 0 1 0 1 1 11 0 0 1 1 0 0 01 0 0 1 1 0 0 11 0 0 1 1 0 1 01 0 0 1 1 0 1 11 0 0 1 1 1 0 01 0 0 1 1 1 0 11 0 0 1 1 1 1 0

D E 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5

H E 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8

9 9 9 9 9 9 9 9 9 9 9 9 9 9

B I 1 0 0 1 1 1 1 11 0 1 0 0 0 0 01 0 1 0 0 0 0 11 0 1 0 0 0 1 01 0 1 0 0 0 1 11 0 1 0 0 1 0 01 0 1 0 0 1 0 11 0 1 0 0 1 1 01 0 1 0 0 1 1 11 0 1 0 1 0 0 01 0 1 0 1 0 0 11 0 1 0 1 0 1 01 0 1 0 1 0 1 11 0 1 0 1 1 0 01 0 1 0 1 1 0 11 0 1 0 1 1 1 01 0 1 0 1 1 1 11 0 1 1 0 0 0 01 0 1 1 0 0 0 11 0 1 1 0 0 1 01 0 1 1 0 0 1 11 0 1 1 0 1 0 01 0 1 1 0 1 0 11 0 1 1 0 1 1 01 0 1 1 0 1 1 11 0 1 1 1 0 0 01 0 1 1 1 0 0 11 0 1 1 1 0 1 01 0 1 1 1 0 1 11 0 1 1 1 1 0 01 0 1 1 1 1 0 11 0 1 1 1 1 1 01 0 1 1 1 1 1 11 1 0 0 0 0 0 01 1 0 0 0 0 0 11 1 0 0 0 0 1 01 1 0 0 0 0 1 11 1 0 0 0 1 0 01 1 0 0 0 1 0 11 1 0 0 0 1 1 01 1 0 0 0 1 1 11 1 0 0 1 0 0 01 1 0 0 1 0 0 11 1 0 0 1 0 1 01 1 0 0 1 0 1 11 1 0 0 1 1 0 01 1 0 0 1 1 0 11 1 0 0 1 1 1 01 1 0 0 1 1 1 11 1 0 1 0 0 0 01 1 0 1 0 0 0 11 1 0 1 0 0 1 01 1 0 1 0 0 1 1

D E 1 5 1 6 1 6 1 6 1 6 1 6 1 6 1 6 1 6 1 6 1 6 1 7 1 7 1 7 1 7 1 7 1 7 1 7 1 7 1 7 1 7 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 1 2 1

H E 9 A A A A A A A A A A A A A A A A B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C D D D D

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 306/318

2 9

B A S E C O N V E R S I O N T A B L E ( C o n t i n u e d )B I

1 1 0 1 0 1 0 01 1 0 1 0 1 0 11 1 0 1 0 1 1 01 1 0 1 0 1 1 11 1 0 1 1 0 0 01 1 0 1 1 0 0 11 1 0 1 1 0 1 01 1 0 1 1 0 1 11 1 0 1 1 1 0 01 1 0 1 1 1 0 11 1 0 1 1 1 1 01 1 0 1 1 1 1 11 1 1 0 0 0 0 01 1 1 0 0 0 0 11 1 1 0 0 0 1 01 1 1 0 0 0 1 11 1 1 0 0 1 0 01 1 1 0 0 1 0 11 1 1 0 0 1 1 01 1 1 0 0 1 1 11 1 1 0 1 0 0 01 1 1 0 1 0 0 1

D E 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 3 2 3 2 3

H E D D D D D D D D D D D D E E E E E E E E E E

B I 1 1 1 0 1 0 1 01 1 1 0 1 0 1 11 1 1 0 1 1 0 01 1 1 0 1 1 0 11 1 1 0 1 1 1 01 1 1 0 1 1 1 11 1 1 1 0 0 0 01 1 1 1 0 0 0 11 1 1 1 0 0 1 01 1 1 1 0 0 1 11 1 1 1 0 1 0 01 1 1 1 0 1 0 11 1 1 1 0 1 1 01 1 1 1 0 1 1 11 1 1 1 1 0 0 01 1 1 1 1 0 0 11 1 1 1 1 0 1 01 1 1 1 1 0 1 11 1 1 1 1 1 0 01 1 1 1 1 1 0 11 1 1 1 1 1 1 01 1 1 1 1 1 1 1

D E 2 3 2 3 2 3 2 3 2 3 2 3 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 5 2 5 2 5 2 5 2 5 2 5

H E E E E E E E F F F F F F F F F F F F F F F F

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 307/318

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 308/318

A r r a y — A g r o u p i n g o i n f o r m a t i o n s t o r e d b t h c o m p u t e r i i t m e m o r y ,u s u a l l y o r g a n i z e d a s u b s c r i p t e d v a r i a b l e s .A S C I I — A c o d e o 1 2 n u m b e r s w h e r e e a c h s t a n d s f o c h a r a c t e r , l e t t e r ,n u m b e r , s y m b o l o s i g n a l . C o m m o d o r e c o m p u t e r s u s v a r i a t i o n c a l l e d P E A S C I I , w i t h 2 5 5 c o d e n u m b e r s . A m e r i c a n S t a n d a r d C o d e f o I n f o r m a t i o nI n t e r c h a n g e .B A S I C — B e g i n n e r s A l l - p u r p o s e S y m b o l i c I n s t r u c t i o n C o d e . p r o g r a m m i n gl a n g u a g e t h a t h a b e c o m e t h s t a n d a r d f o p e r s o n a l c o m p u t e r s .B i t — T h e s i m p l e s t d i v i s i o n o m e m o r y , w h i c h c a c o n t a i n o n l y o 0 l i k e n e d t s w i t c h t h a t i e i t h e r o o o f f . E i g h t o t h e s e b i t s c o m p r i s eb y t e .B r a n c h i n g — W h e n c o m p u t e r p r o g r a m g o e s f r o m o n e p a r t o i t s e l f t a o t h e r , o u o s e q u e n c e .B y t e — T h e s t a n d a r d d i v i s i o n o f m e m o r y . C a c o n t a i n n u m b e r s f r o m t 2 5 5 . E i g h t b i t s .C a s s e t t e B u f f e r — T h a t a r e a i m e m o r y u s e d f o t e m p o r a r y s t o r a g e a n t r a n sf e r r i n g i n f o r m a t i o n f r o m t h e c a s s e t t e p l a y e r t t h c o m p u t e r ' s m a i n m e m o r y .C o l d S t a r t — A c o m p l e t e r e s e t t i n g o f t h m a c h i n e i w h i c h m e m o r y i c l e a r e da n p r o g r a m s a r d e s t r o y e d .C o m p i l e d B A S I C — T h e p r o g r a m t h a t t r a n s l a t e s B A S I C i n t o i n t e r m e d i a t ec o d e o m a c h i n e c o d e t h a t r u n s m a n y t i m e s f a s t e r t h a n i n t e r p r e t e d B A S I C .C o n c a t e n a t e — T o a d o n t h i n g t a n o t h e r , u s u a l l y s t r i n g s w h e n u s e d i c o m p u t i n g .

2 9

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 309/318

2 9 G l o s s a r y

C o p y P r o t e c t — A s c h e m e t p r e v e n t u n a u t h o r i z e d c o p i e s o p r o g r a m .C r a s h — W h e n c o m p u t e r q u i t s o p e r a t i n g , a p p a r e n t l y i n e x p l i c a b l y .C u r s o r — T h e m a r k o t h s c r e e n t h a t i n d i c a t e s a t y p i n g l o c a t i o n . F r o m t h F r e n c h w o r d .D a t a — A n y i n f o r m a t i o n .D a t a B a s e — A n o r g a n i z e d c o l l e c t i o n o f i n f o r m a t i o n a c c e s s e d b p r o g r a mc a l l e d D a t a B a s e M a n a g e r .D e c r e m e n t — D e c r e a s e n u m b e r b o n o s o m e o t h e r r e g u l a r s t e p .D O S — A D i s k O p e r a t i n g S y s t e m , t h p r o g r a m t h a t c o n t r o l s d i s k s t o r a g ed e v i c e .E x p o n e n t — A n u m b e r t h a t t e l l s h o w m a n y t i m e s a n u m b e r i m u l t i p l i e d b i t s e l f .F l o p p y D i s k — A f l e x i b l e p l a s t i c d i s k o n w h i c h i n f o r m a t i o n i r e c o r d e d m a n e t i c a l l y .G a r b a g e C o l l e c t i o n — A f u n c t i o n o C o m m o d o r e B A S I C i w h i c h t h c o m p u t e rh a l t s t r e o r g a n i z e t h m e m o r y u s e d f o s t o r i n g v a r i a b l e s , e s p e c i a l l y s t r i n g s .G l o b a l — R e f e r s t s e v e r a l d i f f e r e n t t a p e o d i s k f i l e s t h a t a r a l p a r t o l a r g e r f i l e . w o r d p r o c e s s i n g f i l e , f o i n s t a n c e , c a n b e m u c h l o n g e r t h a n t h c o m p u t e r c a c o n t a i n a o n t i m e , a n i b r o k e n d o w n i n t o s m a l l e r , l i n k e dp a r t s c a l l e d g l o b a l f i l e s .G r a p h i c M o d e — W h e n t h c o m p u t e r d i s p l a y s u p p e r c a s e l e t t e r s a n g r a p h i cs y m b o l s .H a c k e r — A c o m p u t e r e n t h u s i a s t i d e n t i f i e d b h i o h e t i r e l e s s d e v o t i o n t p r o g r a m m i n g a n l e a r n i n g a b o u t t h m a c h i n e .I n c r e m e n t — I n c r e a s e n u m b e r b o n o s o m e o t h e r r e g u l a r s t e p .I n t e g e r — A w h o l e n u m b e r , o n u m b e r m i n u s i t d e c i m a l f r a c t i o n .I n t e r f a c e — A n e l e c t r o n i c c i r c u i t t h a t c o n n e c t s o n d e v i c e t a n o t h e r . U s u a l l yu s e d t c o n n e c t c o m p u t e r s t p r i n t e r s a n d i s k d r i v e s d e s i g n e d f o d i f f e r e n td a t a s t a n d a r d .I n t e r p r e t e d B A S I C — M e t h o d o s t o r i n g B A S I C a i n d i v i d u a l c o m m a n d s t h a ta r i n t e r p r e t e d b t h c o m p u t e r o n b o n e . T h a c t u a l o p e r a t i n g c o d e i c o n t a i n e d i l a r g e r p r o g r a m , c a l l e d B A S I C .J i f f y — A 6 0 t h o s e c o n d a u s e d b t h c o m p u t e r ' s c l o c k . ( T I )K — F r o m " k i l o , " f o r o n t h o u s a n d . O n e " K " o m e m o r y i a c t u a l l y 1 , 0 2 4b y t e s .L a n g u a g e — A s e o i n s t r u c t i o n s , r u l e s , a n w o r d s f o c o m m u n i c a t i n g w i t ht h c o m p u t e r .

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 310/318

G l o s s a r y 2 9

L o o p — A n u m b e r o p r o g r a m l i n e s t h a t f o r m r e p e t i t i v e p a t t e r n , u s u a l l yw i t h G O T O o F O R / N E X T .M a c h i n e C o d e — T h e m o s t e l e m e n t a l c o d e o l a n g u a g e t h c o m p u t e r ' s m c r o p r o c e s s o r u n d e r s t a n d s . A l s o c a l l e d m a c h i n e l a n g u a g e a n d , o c c a s i o n a l l y ,a s s e m b l y l a n g u a g e .M e m o r y M a p — A k e t t h e l o c a t i o n s i t h c o m p u t e r ' s m e m o r y ; d e s c r i b e st h f u n c t i o n o v a r i o u s p o r t i o n s o t h m e m o r y .M e n u — A s c r e e n l i s t o c h o i c e s o f f e r e d b p r o g r a m .M i c r o c h i p — A n e l e c t r o n i c i n t e g r a t e d c i r c u i t ( I C ) , m i n i a t u r i z e d t m i c r os c o p i c p r o p o r t i o n s a n m a n u f a c t u r e d o t h m e t a l , s i l i c o n .M i c r o p r o c e s s o r — A n e l e c t r o n i c i n t e g r a t e d c i r c u i t w i t h i t o w s e o i n s t r u ct i o n s t h a t c a b p r o g r a m m e d f o v a r i o u s a c t i v i t i e s a n f u n c t i o n s .M o d e m — A d e v i c e t h a t c o n v e r t s d i g i t a l i n f o r m a t i o n t a u d i o s i g n a l s s t h e yc a b s e n t o v e r t h t e l e p h o n e l i n e s .N e s t i n g — W h e n o n l o o p i i n s i d e a n o t h e r .N u l l S t r i n g — A n e m p t y s t r i n g , i n d i c a t e d b q u o t a t i o n m a r k s t h a t e n c l o s e n c h a r a c t e r s — " " .N u m b e r C r u n c h i n g — S l a n g f o a n c o m p l i c a t e d , r e p e t i t i v e m a t h e m a t i c a la c t i v i t y .

N y b b l e — F o u r b i t s ; h a l f b y t e .O p e r a t i n g S y s t e m — T h e m a s t e r p r o g r a m t h a t o v e r s e e s t h e f u n c t i o n s o c o m p u t e r , ( O S )P a r a l l e l — T h e d a t a s t a n d a r d i w h i c h e i g h t b i t s o i n f o r m a t i o n a r s e n t a o n c e , o v e r e i g h t d i f f e r e n t w i r e s . p r i n t e r s t a n d a r d a l s o c a l l e d " C e n t r o n i c sP a r a l l e l . "P a t t e r n M a t c h i n g — A t e c h n i q u e u s e d b t h C o m m o d o r e c o m p u t e r s t i d e nt i f y t a p e a n d i s k p r o g r a m s o f i l e s .

P i x e l — A p i c t u r e e l e m e n t , o o n o m a n y d o t s t h a t c o m p r i s e a n i m a g e o nh i g h - r e s o l u t i o n s c r e e n .P r o g r a m — A l i s t o i n s t r u c t i o n s w r i t t e n i c o m p u t e r l a n g u a g e t h a t b r e a k sd o w n p r o b l e m i n t o s m a l l e r , e a s i e r - t o - s o l v e p i e c e s .R A M — R a n d o m A c c e s s M e m o r y ; m e m o r y t h a t c a s t o r e i n f o r m a t i o n a n b e r a s e d . U s u a l l y l o s e s t h a t i n f o r m a t i o n w h e n p o w e r i i n t e r r u p t e d .R a n d o m N u m b e r — A n y n u m b e r s e l e c t e d a r a n d o m . A n u m b e r g e n e r a t e d b

f o r m u l a u s e d t s i m u l a t e r a n d o m n e s s i s t r i c t l y s p e a k i n g " p s e u d o r a n d o m . 1 'R e a l T i m e ^ T i m e m e a s u r e d i h o u r s , m i n u t e s , a n s e c o n d s . C a b 2 4 - h o u rn o t a t i o n i n s t e a d o a a n p m

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 311/318

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 312/318

I n d e xA B S , 1 2 A d d r e s s , 1 9 4 , 1 9

s e c o n d a r y , 3 9 9 4 - 9 6 , 1 0 0 , 1 0 A D S R , 1 5 3 , 2 6 0 - 2 6 3A m d e k C o l o r - I , 1 A N l o g i c a l o p e r a t o r , 2 1 1 - 2 1 2 , 2 1 A n i m a t i o n , 2 1 A p p e n d i n g , 1 3 9A p p l e , 3 3 3 5 A r r a y , 8 9 - 9 0 , 9 3 9 8 - 9 9 , 1 0 5 , 2 9 A S C I I , 1 2 8 , 2 9 5

c o d e s , 2 8 9 - 2 9 0A s s e m b l y l a n g u a g e , 1 9 A t a r i , 5 7 1 7 A T N , 1 2 A u d i o - v i d e o c o n n e c t o r , 1

B a b b a g e , C h a r l e s ,B A M , 4 B a g r a p h s , 1 8 B a s e C o n v e r s i o n T a b l e , 2 9 1 - 2 9 3B A S I C , 1 9 2 5 3 0 - 3 1 , 3 5 , 4 0 , 4 3

2 9 c o m p i l e d , 5 0 , 1 8 9 , 2 9 F a s t , 1 8 8 - 1 8 9M i c r o s o f t , 5 1 1 8 p u n c t u a t i o n , 5 9 - 6 0S i m o n ' s , 1 7 9 , 1 8 9 - 1 9 0V 2 1 4 5

B i n a r y n u m b e r , 2 0 d e c i m a l c o n v e r s i o n , 2 0 9 , 2 9 h e c o n v e r s i o n , 2 9 1

B i t s , 1 2 3 , 1 5 2 , 1 9 6 , 2 0 8 , 2 1 8 - 2 1 9 , 2 9 s e t t i n g , 2 1 B l o c k , 3 3 3 5 - 3 6 , 4 1 1 9

A v a i l a b i l i t y M a p , 4 c h a r a c t e r , 2 3 s p r i t e , 1 6 v a r i a b l e , 1 3 8 , 1 4

B o i l e r p l a t e , 1 3 8 , 1 4 B r a n c h i n g , 7 2 2 9 B u t t e r f i e l d , J i m , 1 9 B y t e , 1 4 3 3 4 0 , 4 5 , 1 5 2 , 2 0 8 , 2 9

C a l c R e s u l t , 1 8 4 - 1 8 5C a l c u l a t o r , 4 4 - 4 5

C a r t r i d g e p o r t , 1 2 1 3 C a s s e t t e

b u f f e r , 2 9 , 1 9 6 , 2 9 f i l e s , 9 7 - 9 9p o r t , 1 1r e c o r d e r , 1 5 - 1 8 , 2 8 - 2 9 , 3 5 , 9 4 , 9 6 ,

1 2 t a p e , 2 6 , 9

C h a r a c t e r s e t , 2 2 8 - 2 3 7C h i p s , 2 - 4 , 9 1 2 1 5 2 - 1 5 4

i n t e r f a c e , 1 9 5 - 1 9 6v i d e o , 1 0 6 , 1 2 0 , 2 2 9s e a l s o m i c r o p r o c e s s o r , S I D , V I

C H R $ , 1 0 6 , 1 2 8 - 1 2 9c o d e s , 2 8 9 - 2 9 0

C l o c k , 4 r e a l t i m e , 1 3

C L O S E c o m m a n d , 3 7 , 9 4 , 9 7 - 9 8 , 1 0 1 ,1 2

C L s t a t e m e n t , 9 C L R / H O M E k e y , 2 2 , 4 6 , 9 w i t h P R I N T c o m m a n d , 6

C M D , 1 2 C O B O L , 5 C o l d s t a r t , 2 2 2 9 C o l o n u s a g e , 5 C O L O R , 9 1 0 2 1 , 6 7 , 1 0 5 , 2 4

b y t e s , 2 4 c h a r a c t e r , 1 5 m a p , 2 4 0m o n i t o r , 1 0r e v e r s e m o d e , 2 o s c r e e n , 1 5 2 - 1 5 3 , 1 5 7o s p r i t e , 2 2

C o m m a s , 9 w i t h D A T A s t a t e m e n t , 9 w i t h I N P U T s t a t e m e n t , 7 0 1 0 w i t h n u m b e r s , 4 5 5 w i t h P R I N T c o m m a n d , 6 3 - 6 4

C O M M O D O R E k e y , 1 9 - 2 0 , 2 7 6 7 1 0 3 ,1 0 6 , 1 4 2

C o m m o d o r e B u s i n e s s M a c h i n e s , 3 - 4 ,c o m p a t i b i l i t y , 4 3 - 4 4

C o n c a t e n a t e , 5 5 1 0 0 , 1 2 6 , 2 9 C O N T c o m m a n d , 3 1 1 2 C O S , 1 2

2 9

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 313/318

3 0 I n d e x

C o v i t z , D r F r a n k , 1 7 9 , 2 5 C R S R k e y s , 2 2 - 2 3 , 4 6 , 5 3 , 6 C T R L k e y , 2 0 , 5 2 , 7 6 , 1 4 C u r s o r , 1 4 - 1 5 , 2 2 , 4 6 , 2 9 6

w i t h P R I N T c o m m a n d , 6 5 - 6 6w i t h s p r i t e e d i t o r , 2 2 w i t h T A B , 1 2 t r i a n g u l a r , 1 8

D a t ab a s e s , 8 6 1 0 3 , 1 0 8 , 2 9 r e a d i n g , 9 1 - 9 3R S - 2 3 2 , 1 3 7 - 1 3 8 , 1 9 s t a n d a r d s , 1 3 s t o r a g e , 8 5 , 1 0 1 , 1 0

D A T A s t a t e m e n t , 9 1 - 9 3 , 9 D E F , 1 2 D e v i c e n u m b e r , 2 8 , 3 7 , 9 4 , 9 5 , 1 0 2 , 1 2 D i c e p r o g r a m , 1 6 3 - 1 6 5D I M e n s i o n , 8 8 - 9 1 , 9 8 - 9 9 , 1 0 5D i s k , 1 6 3 2 , 3 4 , 3 8 - 4 1

1 5 4 1 , 3 2 - 3 3 , 3 6 - 3 7 , 4 2c a u t i o n s , 4 2 - 4 3d i r e c t o r y , 1 7 3 3 - 3 8 , 1 0 1 , 1 4 d r i v e , 1 3 , 1 6 , 9 4 , 9 6 , 1 0 1 , 1 2 2 , 1 3 7 -

1 3 C o m m o d o r e ' s , 3 2 - 3 5 , 9 5 1 0 0 , 1 8 1 -

1 8 d u a l , 4 2 , 9 i n t e r f a c e , 1 8 s p e e d , 1 7 , 4 2

e r a s i n g , 4 e r r o r s , 4 1 - 4 2f i l e s , 9 5 9 9 - 1 0 2f l o p p y , 7 1 6 , 3 2 - 3 3 , 8 5 , 9 4f o r m a t t i n g , 1 6 3 3 3 7 - 3 8o p e r a t i n g s y s t e m , 3 5

D O m a n a g e r , 3 4 - 3 5 , 4 4 2 9 D o m a t r i x p r i n t e r , 1 3 D r i v e n u m b e r , 3

E a s y G r a p h i c s , 1 7 E a s y S c r i p t , 1 4 5 - 1 4 7E d i t i n g

c o m m a n d s , 1 2 k e y s , 2 2 , 4 6 , 5 t e x t , 1 3

E N c o m m a n d , 5 4 8 o t a p e , 9 4 9

E r r o rd i s k , 4 1 - 4 2l i g h t , 3 4 , 3 7 , 4 m e s s a g e s , 2 8 3 - 2 8 8p r o g r a m m i n g , 5 0 1 0 q u a n t i t y , 5

s y n t a x , 5 9 , 9 7 , 1 0 v e r i f y i n g , 3

E x p o n e n t i a l n u m b e r s , 5 8

F a i r b a i r n , B o b , 3 5 4 F i b e r o p t i c , 1 8 F i l e , 8 5 9 3 - 9 4

c a s s e t t e , 9 d i s k , 9 5 9 9 - 1 0 2g l o b a l , 1 3 i n d e x , 1 3 9 , 1 4 8i n f o r m a t i o n , 3 6 8 I N P U T , 9 l i n k e d , 1 3 n u m b e r , 3 7 9 4 - 9 8 , 1 2 O U T P U T , 9 p r i n t e r , 1 0 2 - 1 0 3p r o g r a m , 3 r e l a t i v e , 1 0 7 - 1 0 8s e q u e n t i a l , 9 4 9 6 - 1 0 0 , 2 9 t a p e , 9 4 9 7 - 9 9

F l o a t i n g p o i n t a c c u m u l a t o r , 1 2 F N 1 2 F O R , 7 7 - 8 0F O R / N E X T l o o p s , 9 2 2 3 F O R T R A N , 5 F u n c t i o n

k e y s , 2 1 , 4 3 , 7 6 , 1 4 m a t h e m a t i c a l , 1 1 9 , 1 2 4 - 1 2 5 , 1 3

G a m e s , 1 8 3 - 1 8 4d i c e , 1 6

G E T , 7 5 - 7 7 , 9 4 - 9 5 , 9 7 1 2 G E T # , 9 G O S U B c o m m a n d , 7 2 8 0 - 8 2 , 1 2 G O T O c o m m a n d , 3 1 7 2 - 7 3 , 1 2 G r a p h i c s , 1 5 1 , 2 0 7

b i t m a p , 2 1 0 , 2 1 4 , 2 3 7 - 2 4 8c h a r a c t e r , 1 5 2 , 1 5 9 , 2 2 8c o l o r , 1 2 h i g h - r e s o l u t i o n , 1 5 2 - 1 5 3 , 1 7 9 , 2 4 m o d e , 1 9 1 0 2 , 1 2 0 , 1 5 2s c r e e n , 1 5 9 - 1 6 1s p r i t e , 2 9 1 6 6 - 1 7 1 , 2 1 2 - 2 2 8s y m b o l s , 1 9t u r t l e , 1 8 6 , 1 8

H e r t z , H e i n r e i c h R u d o l p h , 2 5 2H o l l e r i t h , H e r m a n ,H z 2 5

I B M , 1 1 3 I s t a t e m e n t 7 3 - 7 5

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 314/318

I n d e x 3 0

I F / T H E N s t a t e m e n t s , 1 2 I N P U T , 6 9 - 7 2 , 9 5 9 7 , 1 0 7 , 1 2 I N P U T # , 9 I N S T / D E L k e y , 2 2 - 2 3 , 4 6 5 I N T , 1 2 4 , 1 5 I n t e g e r s , 5 6 2 9 I n t e r f a c e s , 1 3 7 - 1 3 8 , 1 4 2 - 1 4 3 , 1 4 c h i p s , 1 9

d i s k , 1 8 I E E E - 4 8 8 , 1 0 0 , 1 3 7 - 1 3 8p a r a l l e l p r i n t e r , 1 8

I n t e r f e r e n c e , 8 - 9 , 1 I n t e r p r e t e d B A S I C , 5 0 1 8 8 , 2 9

J o b s , S t e p h e n ,J o y s t i c k s , 1 2 1 5 2 , 1 7 7 - 1 7 9J u n c t i o n b o x , 8

K e m e n y , J o h n , 5 K e y b o a r d , 1 4 1 8 - 2 4K u r t z , T h o m a s , 5

L a n g u a g e s , 1 8 5 - 1 9 2L e f t $ , 1 2 9 - 1 3 1L E N , 1 2 6 , 1 3 0L E c o m m a n d , 5 8 - 5 9L e t t e r q u a l i t y p r i n t e r , 1 3 5 - 1 3 6L i n e f e e d c o m m a n d , 1 0 L I S P , 5 0 1 8 L I S T c o m m a n d , 1 7 3 6 5 L O A D c o m m a n d , 1 5 - 1 6 , 3 5 3 6 9

f r o m d i s k , 3 8 - 3 9f r o m t a p e , 2 6 - 3 0

L o a d c o m p a t i b i l i t y , 4 3 - 4 4L o c a l A r e a N e t w o r k , 1 8 L o g i c a l o p e r a t o r s , 2 1 L O G O , 1 8 7 - 1 8 8L o o p , 7 2 7 7 - 7 8 , 2 3 1 , 2 9 7

M a c h i n ec o d e , 1 0 8 , 1 2 1 , 1 4 0 , 1 9 0 , 2 9 7l a n g u a g e , 2 8 1 9 5 , 2 4 3

M a t h e m a t i c a l f u n c t i o n s , 1 1 9 , 1 2 4 - 1 2 5 ,1 3

M e m o r y , 2 1 5 , 1 8 , 3 7 4 5 - 4 6 , 5 3 , 5 6 , 8 3 ,8 5 1 9 4 - 2 0 2 , 2 3 2 , 2 9 7

l o c a t i o n , 1 2 0 , 1 2 3 , 1 5 4 , 2 3 8 - 2 3 9m a p s , 1 9 5 - 1 9 6 , 1 9 8 - 2 0 2 , 2 1 s c r e e n , 1 9 s e a l s o R A M , R O M , V I

M i c r o p r o c e s s o r , 3 1 0 2 , 2 9 6 5 0 2 c h i p , 3 -

M I D $ , 1 2 9 , 1 3 M o d e , 1 9 1 2 g r a p h i c , 1 0 2 , 1 0 6 , 1 2 0 , 1 5

t e x t , 1 0 2 - 1 0 3t y p e , 1 4 t y p e w r i t e r , 1 0

M o d e m , 7 - 8 , 1 2 3 5 1 3 7 , 1 8 2 , 2 9 M u s i c s y n t h e s i z e r , 1 5 3 - 1 5 4

N e s t i n g , 7 8 2 9 N E c o m m a n d , 5 0 5 N E X T c o m m a n d , 7 8 - 8 0N O l o g i c a l o p e r a t o r , 2 1 1 - 2 1 2N u l l , 7 1 , 7 5 1 2 8 , 2 9 N y b b l e , 1 5 2 , 2 6 1 , 2 6 4 , 2 9 7

O c o m m a n d , 1 2 3 - 1 2 4O P E N c o m m a n d , 3 7 9 4 - 1 0 3 , 1 2 O p e r a t i n g s y s t e m , 4 3 5 - 3 6 , 2 9 O l o g i c a l o p e r a t o r , 2 1 1 - 2 1 2O v e r l o a d i n g ,O v e r s c a n n i n g ,

P a t t e r n m a t c h i n g , 2 8 2 9 P a r e n t h e s e s , 8 6 1 2 P e d d l e , C h u c k ,P E E K c o m m a n d , 4 3 , 1 1 9 - 1 2 1 , 1 9 3 - 1 9 4 ,

2 3 P E T , 3 - 4 , 2 7 - 2 8 , 3 9 , 4 3 - 4 4 , 5 1 , 7 1 , 8 3 , 1 3 7 ,

1 4 e m u l a t o r , 4

P i l o t l a n g u a g e , 1 8 6 - 1 8 7P i x e l s , 1 5 2 , 2 0 8 , 2 1 0 , 2 1 2 - 2 1 3 , 2 2 2 , 2 3 0 ,

2 3 9 , 2 9 P L A Y k e y , 1 5 , 2 9 , 3 0P O K E c o m m a n d , 4 3 - 4 4 , 1 0 5 - 1 0 6 , 1 1 9 -

1 2 1 , 1 9 3 - 1 9 4 , 2 3 1P o r t s , 1 1 - 1 2

c o n t r o l , 1 2 1 5 2 , 1 7 7 - 1 7 8P r o c e s s o r I / O , 2 0

P o w e rs t r i p ,s u p p l y , 5 8 1

P R G , 3 6 , 3 8 , 1 0 P R I N T c o m m a n d , 6 0 - 6 8 , 9 5 , 9 7 , 1 2

w i t h c a l c u l a t o r , 4 4 - 4 5w i t h c o m m a , 6 F R E e m e m o r y , 4 f r o m k e y b o a r d , 6 r e v e r s e d c h a r a c t e r s , 6 w i t h s c r e e n f u n c t i o n s , 6 5 - 6 8w i t h s e m i c o l o n , 6

P r i n t e r 1 3 , 3 5 , 9 4 9 6 , 1 2 2 , 1 3 5 - 1 3 8 , 1 4 2 ,1 4 3 , 1 4 5 , 1 4

d a i s y w h e e l , 1 3 d o m a t r i x , 1 3 5 - 1 3 6f i l e s , 1 0 2 - 1 0 3

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 315/318

3 0 I n d e x

i n t e r f a c e , 1 8 l e t t e r q u a l i t y , 1 3 5 - 1 3 6p a r a l l e l , 1 3 7 - 1 3 8 , 2 9 s e r i a l , 1 3 7 - 1 3 8

P R I N T # , 9 7 - 9 8 , 1 0 2 , 1 2 2 , 1 2 P r o g r a m , 5 2 1 0 3 , 2 9 7

d e s i g n i n g , 1 0 l i s t i n g , 5 s a m p l e m a i l i n g l i s t , 1 0 9 - 1 1 7s p r e a d s h e e t , 1 8 4 - 1 8 5

P u n t e r , S t e v e , 1 4

Q B F , 1 4 0 - 1 4 2Q u e s t i o n m a r k , 6

a p r i n t c o m m a n d , 9 Q u o t e m o d e , 4 Q W E R T Y , 2 3 - 2 4

R a d i a n s , 1 2 R a d i o f r e q u e n c y , 8 1 R A M , 3 1 4 2 6 , 1 3 9 , 1 9 4 - 1 9 8 , 2 2 9 , 2 3 R a n d o m n u m b e r s , 1 5 4 - 1 5 7 , 2 7 5 , 2 9

g e n e r a t o r , 1 5 2 , 1 5 R E A D c o m m a n d , 9 1 - 9 3 , 9 R e a l t i m e , 4 7 2 9 R E C O R D k e y , 1 5 3 R e c o r d k e e p i n g , 8 R E L , 3 R e l a t i v e f i l e , 1 0 7 - 1 0 8R E M , 3 1 , 8 3R e p e a t i n g k e y s , 2 3 , 1 2 4 , 1 2 R e p o r t g e n e r a t o r , 1 0 R e s e r v e d

v a r i a b l e s , 4 w o r d s , 5

R E S T O R E k e y , 2 1 - 2 2 , 2 9 , 7 6 , 1 0 R E S T O R E s t a t e m e n t , 9 R E T U R N k e y , 1 4 - 1 6 , 1 8 2 2 2 5 , 5 3 , 1 0 7 ,

1 2 4 , 1 2 9R E T U R N s t a t e m e n t , 8 R e v e r s e m o d e , 2 R m o d u l a t o r , 1 2 1 R G m o n i t o r s , 1 R I G H T S , 1 2 9 - 1 3 1R N D , 1 5 4 - 1 5 7 , 1 6 R O M , 4 , 1 9 0 , 1 9 4 - 1 9 5 , 1 9 7 - 1 9 8 , 2 2 9 - 2 3 1 ,

2 9 R o u n d i n g n u m b e r s , 5 6 1 2 R U c o m m a n d , 2 7 , 3 1 , 3 5 , 4 6 , 1 2 1 , 1 2 R U N / S T O P k e y , 1 5 , 1 8 , 2 1 , 2 7 , 2 9 , 3 1 , 5 2 ,

7 6 1 2 R V S , 2 0 6

S A V E c o m m a n d , 1 5 - 1 6 , 2 6 9 4 1 0 t d i s k , 3

t t a p e , 3 S c h a t z , P a u l , F . 1 7 9 , 2 0 7 , 2 2 S c i e n t i f i c n o t a t i o n , 5 S c r e e n , 5 3 1 2 0 , 1 3 9 , 1 9 2

c o l o r , 1 5 2 - 1 5 3 , 1 5 g r a p h i c s , 1 5 9 - 1 6 1

S e c o n d a r y a d d r e s s , 3 7 9 4 - 9 6 , 1 0 0 , 1 0 S e c t o r s , 3 3 3 5 - 3 6 , 4 1S e e d , 1 5 4 - 1 5 6S e m i c o l o n w i t h P R I N T , 6 1 - 6 3S E Q , 3 6 , 9 6 , 1 0 0 , 1 0 S e q u e n t i a l f i l e , 9 4 - 1 0 1 , 2 9 S e r i a l p o r t , 1 S G N , 1 2 S H I F T k e y , 1 4 1 8 - 2 0 , 2 2 , 7 6 , 8 3 1 0 S H I F T L O C K k e y , 1 8 2 2 7 S I D , 1 5 2 - 1 5 4 , 1 5 8 , 2 0 3 , 2 5 1 , 2 5 5 - 2 8 5

r e g i s t e r s , 2 6 S i g n a l

R F , 8v i d e o ,

S i m o n s , D a v i d , 1 9 S I N , 1 2 S o r t , 1 0 7 , 1 0 8 , 1 3 9 , 1 4 8 , 2 9 8S o u n d , 1 2 0 - 1 2 1 , 1 5 3 , 1 7 2 - 1 7 5 ,

2 5 1 - 2 8 2a n f i l t e r s , 2 7 5 - 2 7 6f r e q u e n c y , 1 7 2 , 2 5 2 , 2 5 4 , 2 5 7 , 2 6 t e m p o , 2 6

S P A C E b a r , 2 3 5 S P C , 1 2 S p r i t e , 2 9 1 5 3 , 1 9 6 , 2 1 0 , 2 1 2 - 2 2 8 , 2 9

b l o c k , 1 6 6 , 2 1 4 - 2 1 5e d i t o r , 1 6 6 , 2 2 1 - 2 2 8g r a p h i c s , 1 6 6 - 1 7 1p o s i t i o n r e g i s t e r s , 2 1 6 , 2 2 0 - 2 2 2

S Q R , 4 5 , 1 2 S T E P , 7 S T O P , 1 2 2 - 1 2 3S t r i n g v a r i a b l e s , 5 5 - 5 6 , 2 9

h a n d l i n g , 1 2 6 - 1 2 8n u l l , 7 1 , 7 5 , 1 0 1 , 1 2 8 , 2 9

S t r u c t u r e d p r o g r a m m i n g , 8 2 - 8 3 , 2 9 S T R $ , 1 2 6 - 1 2 8S u b s c r i p t , 8 6 - 9 0S u b r o u t i n e s , 8 0 1 0 6 , 2 9 S u p e r s c r i p t , 8 S Y c o m m a n d , 1 2 1 , 2 4 3

T A B , 1 2 T A N , 1 2 T a p e , 1 5 1 6 , 2 6 , 2 9 , 3 0 , 9

r e c o r d e r ,T e l e v i s i o n , 7 - 8 , 1

c o n n e c t o r , 1 2T H E N s t a t e m e n t , 7 3 - 7 5 , 7

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 316/318

I n d e x 3 0

T i m e , 4 r e a l , 1 3

T o n e s , 2 5 2 - 2 5 3T r a c k s , 3 T r a m i e l , J a c k , 3T r i g o n o m e t r i c f u n c t i o n s , 4 T y p e w r i t e r m o d e , 1 9 2 9

V i d e oc a b l e , 5 1 d i s p l a y t e r m i n a l s , 1 3 m o n i t o r , 7 9 1 s c r e e n , 5 3 1 2 0 , 1 3 9 , 1 9 1 - 1 9 2s i g n a l ,V i s i C a l c , 4 4 , 1 8

U S R , 1 2

V A L , 1 2 6 - 1 2 7V a r i a b l e s , 4 4 5 4 - 5 9 , 8 6 9 1 - 9 3

i n l o o p s , 7 n a m e s , 5 n u m e r i c , 5 5 - 5 6 , 8 6 1 2 3 , 1 2 l i m i t , 5 r e s e r v e d , 4 s t r i n g , 5 5 - 5 6 , 8 6 , 9 6 , 1 2 6 - 1 2 7s u b s c r i p t e d , 8 6 - 9 0

V E R I F Y c o m m a n d , 3 0 - 3 1V i b r a t i o n s , 2 5 1 - 2 5 2V I C , 1 5 2 - 1 5 4 , 1 5 8 , 1 9 1 , 2 1 0 - 2 1 2 , 2 1 5 -

2 1 6 , 2 4 8m e m o r y l o c a t i o n s , 2 4

W A I T , 1 2 W a r m s t a r t , 2 2 2 9 W a v e f o r m , 1 5 4 , 1 7 2 - 1 7 3 , 2 5 4 , 2 5

c o n t r o l r e g i s t e r , 2 5 n o i s e , 2 7 p u l s e , 2 6 0 , 2 6 s a w t o o t h , 2 6 t r i a n g l e , 2 5

W e d g e , 3 4 - 4 2 , 4 W o r d P r o , 4 4 1 4 2 - 1 4 5W o r d p r o c e s s i n g , 2 3 1 0 8 , 1 3 3 - 1 4 9 , 2 9

E a s y S c r i p t , 1 4 5 - 1 4 7P a p e r C l i p , 1 4 7 - 1 4 8Q B F , 1 4 0 - 1 4 2W o r d P r o , 4 4 1 4 2 - 1 4 5

W o z n i a k , S t e v e , 3W r i t e p r o t e c t e d , 3

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 317/318

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

M a n y t h a n k s t M r S t e v e M u n i , M r B o F a i r b a i r n , a n M s . D i a n eL e B o l d o C o m m o d o r e B u s i n e s s M a c h i n e s . T h e i r c o o p e r a t i o n w a v i t a l .

g r e a t l y a p p r e c i a t e t h e t i m e s p e n t b t h o s e w h r e v i e w e d t h c o t e n t o t h b o o k , p a r t i c u l a r l y M r G e n e S t r e i t m a t t e r , w h o s e i n s i g h t f u lc o m m e n t s w e r e b o t h v a l u a b l e a n e n c o u r a g i n g .

T h a n k s , t o o , t M r M i c h a e l R i c h t e r , w h o s e p r o g r a m w a u s e d i p r e p a r i n g t h l i s t i n g s i t h b o o k , a n t M r W i l l i a m S e i l e r f o h i f r i e n d s h i p , e n o r m o u s t e c h n i c a l k n o w l e d g e , a n h i s t o r i c a l p e r s p e c t i v e .

M c o n t r i b u t o r s D r . F r a n k C o v i t z , M r J i B u t t e r f i e l d a n d , i p a t i c u l a r , M r P a u l S c h a t z , e a c h a d d e d t t h s c o p e o t h i s b o o k . T h e ya r g o o d c o m p a n y .

T h a n k y o t t h p e r s o n n e l a t h R o b e r t J B r a d y d i v i s i o n o P r e n t i c e - H a l l : M e s s r s . H a r r y G a i n e s , D a v i d C u l v e r w e l l a n T e r r yA n d e r s o n , a n t M s L a u r a D y s a r t M a r c y w h b r o u g h t t h i s b o o k t t h c o m p a n y ' s a t t e n t i o n .

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

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

8/6/2019 Commodore 64 Getting the Most From It

http://slidepdf.com/reader/full/commodore-64-getting-the-most-from-it 318/318