tricks and tips for the commodore 64

290
8/6/2019 Tricks and Tips for the Commodore 64 http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 1/290

Upload: cubemanpdx

Post on 08-Apr-2018

227 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 1/290

Page 2: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 2/290

Page 3: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 3/290

T R I C K S T I P SF O T H C O M M O D O R E 6

B Y K l a u s G e r i t sL o t h a r E n g l i s c hM i c h a e l A n g e r h a u s e n

D A T A B E C K E R B O O K

A b a c u s B I S o f t w a r eP . O . B O 7 2 1 1 G R A N D R A P I D S , M I C H . 4 9 5 1 0

Page 4: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 4/290

S e c o n d E n g l i s h E d i t i o n , N o 1 9 8 4P r i n t e d i U . S . A .C o p y r i g h t ( O 1 9 8 3 D a t a B e c k e r G m b H

M e r o w i n g e r s t r . 3 4 0 0 0 D u s s e l d o r f W G e r m a n y

C o p y r i g h t ( O 1 9 8 4 A b a c u s S o f t w a r eP . O . B o 7 2 1 1G r a n d R a p i d s , M 4 9 5 1 0

T h i s b o o k s i c o p y r i g h t e d . N p a r t o 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 , s t o r e d i r e t r i e v a l s y s t e m , o t r a n s m i t t e di a n f o r m o r b y a n m e a n s , e l e c t r o n i c , m e c h a n i c a l ,p h o t y c o p y i n g , r e c o r d i n g , o o t h e r w i s e , w i t h o u t t h p r i o rw r i t t e n p e r m i s s i o n o A B A C U S S o f t w a r e , I n c .

I S B N 0 - 9 1 6 4 3 9 - 0 3 - 8

Page 5: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 5/290

T a b l e o C o n t e n t s

1 I n t r o d u c t i o n

2 A d v a n c e d G r a p h i c s

2 . G r a p h i c s o t h C o m m o d o r e 6 2 . 1 . 1 G r a p h i c s o t h k e y b o a r d2 . 1 . 2 U s i n g s p r i t e s

2 . 3 g r a p h i c s B A S I C p r o g r a m2 . C o l o r l i n e g r a p h i c s 1 2 . D e f i n i n g c h a r a c t e r s e 2 2 . M o d i f y i n g t h c h a r a c t e r s e w i t h j o y s t i c k 2 2 . D i v i d i n g t h s c r e e n 3 2 . S o f t s c r o l l i n g 3 2 . C h a n g i n g t h k e y b o a r d l a y o u t 4

3 E a s y D a t a I n p u t

3 . C u r s o r p o s i t i o n i n g a n d e t e r m i n i n gc u r s o r p o s i t i o n 4

3 . T u r n i n g t h c u r s o r o a n o f 4 3 . R e p e a t f u n c t i o n f o a l k e y s 4 3 . 4 T h e W A I T c o m m a n d : w a i t i n g f o k e y s t r o k e 5 3 . F u n c t i o n k e l a y o u t 5 3 . A e a s y i n p u t r o u t i n e 5 3 . T h " m o u s e " o f t h e 6 4 S i m u l a t i o n w i t h t h

j o y s t i c k 6

Page 6: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 6/290

4 A d v a n c e d B A S I C

4 . C r e a t i n g B A S I C l i n e i B A S I C 7 4 . C o p y i n g t h B A S I C i n t e r p r e t e r i n t o R A 8 4 . N m o r e n e g a t i v e n u m b e r s w i t h t h F R f u n c t i o n . . 8 34 . R e t u r n i n g t B A S I C p r o g r a m a f t e r L I S T 8 4 . G O T O , G O S U B , A N D R E S T O R E w i t h c a l c u l a t e d l i n e

n u m b e r s 8 4 . E n h a n c i n g t h M I D $ c o m m a n d 9 4 . 7 I N S T R a n d S T R I N G $ f u n c t i o n s 9 4 . A u t o m a t i c l i n e n u m b e r i n g 1 0 4 . 9 U s e r d e f i n e d f u n c t i o n s D E F 1 0 4 . 1 0 U s i n g H A R D C O P Y r o u t i n e w i t h

c o m m e r c i a l p r o g r a m s 1 1

5 F o r t h : A a l t e r n a t i v e t B A S I C

5 P r o g r a m m i n g i F o r t h 1 1 5 . c o m p a r i s o n o F o r t h a n B A S I C 1 1

6 C P / M o t h C o m m o d o r e 6

6 . I n t r o d u c t i o n t C P / M 1 2 6 . T h r e l a t i o n s h i p s o t h i n d i v i d u a l

C P / M p r o g r a m s 3 4 6 . A d a p t i n g s t a n d a r d C P / M p r o g r a m s t t h 6 4 1 4 66 . 4 T h e m e m o r y m a n a g e m e n t o t h e Z 8 0

m i c r o p r o c e s s o r 1 4 6 . D i s k m a n a g e m e n t u n d e r C P / M 1 5 6 . T h i n t e r a c t i o n b e t w e e n t h 6 5 1 0 a n Z 8 1 5 6 . I m p l e m e n t i n g y o u r o w n I / O f u n c t i o n s i B I O S . . . . 1 5 4

Page 7: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 7/290

6 . T r a n s f e r r i n g p r o g r a m s a n d a t a b e t w e e n C P / Ma n C o m m o d o r e B A S I C 1 5

7 I n t e r f a c e a n e x p a n s i o n o p t i o n s

7 . 1 T h e U S E R p o r t : I n t e r f a c i n g C e n t r o n i c s p r i n t e r s . 1 6 07 . T r a n s f e r r i n g d a t a b e t w e e n c o m p u t e r s o v e r t h

U S E R p o r t 1 6 7 . T h C P / M c a r t r i d g e a n t h e x p a n s i o n p o r t :

c a s e s t u d y 1 7 7 . S y n t h e s i z e r i s t e r e o 1 8

8 D a t a m a n a g e m e n t

8 . I n t r o d u c t i o n 1 8 8 . C a s s e t t e - D i s k e t t e 1 8 8 . 3 T h e p r i n c i p l e b e h i n d d a t a m a n a g e m e n t :

S e q u e n t i a l f i l e s 1 9 8 . C o p y i n g f i l e s o n e a n t w d r i v e s 2 1 8 . F a s t e r a c c e s s : R e l a t i v e f i l e s 2 1 78 . A n o t h e r m e t h o d : D i r e c t a c c e s s . . . . 2 3 48 . R e s c u i n g a i m p r o p e r l y c l o s e d f i l e 2 3

9 P O K E s a n o t h e r u s e f u l r o u t i n e s

9 . 1 T h e c a s s e t t e b u f f e r a p r o g r a m s t o r a g e 2 4 9 . S o r t i n g s t r i n g s 2 4 9 . M i n i m u m a n m a x i m u m o n u m e r i c f i e l d s 2 5 9 . D U M P P r i n t i n g v a r i a b l e s a n t h e i r v a l u e s 2 5 9 . U S f u n c t i o n t r e a d " h i d d e n " R A M a n d

Page 8: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 8/290

c h a r a c t e r g e n e r a t o r 2 6 9 . M u l t i - t a s k i n g o t h C o m m o d o r e 6 4 . < < . . . ; . • . . . . . . 2 6 69 . P O K E s a n t h z e r o p a g e 2 7

Page 9: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 9/290

T r i c k s T i p s

C h a p t e r I n t r o d u c t i o n

T h C o m m o d o r e 6 w i n s t h o u s a n d s o n e w f r i e n d s e v e r yd a a l o v e r t h w o r l d . T h a t i h a r d l y s u r p r i s i n g s i n c e t h 6 o f f e r s n o o n l y e x c e l l e n t p e r f o r m a n c e , b u t a l s o a e x c e l l e n t p r i c e t p e r f o r m a n c e r a t i o . O n e c a n n o w p u r c h a s eC o m m o d o r e 6 c o m p l e t e w i t h d i s k d r i v e f o u n d e r 5 0 d o l l a r s .T h 6 c a r r i e s t h p r i c e o a i n t r o d u c t o r y c o m p u t e r , b u i o f f e r s f a m o r e t h a n j u s t g a m e p l a y i n g o a i n t r o d u c t i o n t c o m p u t i n g . I o f f e r s t h h o b b y i s t a a l m o s t b o u n d l e s s t o o lw i t h w h i c h t w o r k a n d c a n a l s o b u s e d f o s m a l l b u s i n e s sa n s c i e n t i f i c a p p l i c a t i o n s .

H e r e t h e n i T r i c k s & T i g s , o u r f o u r t h b o o k f o r t h eC o m m o d o r e 6 4 O u e x p e r i e n c e d t e a m o a u t h o r s c o n s i s t i n g o K l a u s G e r i t s , L o t h a r B n g l i s c h , a n d M i c h a e l A n g e r h a u s e n h a a g a i n f i l l e d t h i s b o o k w i t h p r o g r a m m i n g t r i c k s . T h a u t h o r sh o p e t p r o v i d e i d e a s f o r y o u r o w p r o g r a m s t h r o u g h t h u s o c o u n t l e s s e x a m p l e s a n d m o d e l p r o g r a m s . T h i s b o o k i i n t e n d e d t h e l p y o u , t h p r o g r a m m e r , g e m o r e o u o f y o u rC o m m o d o r e 6 4

Page 10: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 10/290

T r i c k s & T i p s

C h a p t e r A d v a n c e d G r a p h i c s

2 . G r a p h i c s o t h C o M o d o r e 6

S o o n e r o l a t e r e v e r y C o m m o d o r e 6 u s e r h a s t h e d e s i r et w o r k w i t h t h b u i l t - i n g r a p h i c s c a p a b i l i t i e s o t h i sc o m p u t e r . U n f o r t u n a t e l y , t h i n s t r u c t i o n m a n u a l s a y s l i t t l ea b o u t t h c a p a b i l i t i e s a n p o s s i b i l i t i e s t h a t t h e C o m m o d o r e6 o f f e r s .

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

F i r s t o n m u s t d i s t i n g u i s h b e t w e e n t h n o r m a l g r a p h i c s ,i . e . t h s y m b o l s o w h i c h a r s h o w n o t h k e y s ( t h e b l o c ko l i n e g r a p h i c s ) , t h h i g h - r e s o l u t i o n g r a p h i c s , a n d t h s p r i t e s . S o m e c o m p u t e r s o f f e r b l o c k g r a p h i c s a n h i g h -r e s o l u t i o n g r a p h i c s , b u t h s p r i t e s a r s o m e t h i n g t r u l y n e wo t h C o m m o d o r e 6 4 T h e s e s p r i t e s w e r e p r e v i o u s l y f o u n do n l y o v i d e o a r c a d e g a m e s . A n n o t h e s e s a m e c a p a b i l i t i e sa r o f f e r e d t u b t h C o m m o d o r e 6 4

O t h n e x t p a g e s w w a n t t g o v e r t h t h r e e g r a p h i c sm o d e s . W w i l l o c o u r s e h e l p y o u b y i l l u s t r a t i n g t h t h e o r yw i t h m a n y e x a m p l e s .

Page 11: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 11/290

T r i c k s T i p s

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

T h i s m e t h o d o c r e a t i n g g r a p h i c s o t h C o m m o d o r e 6 i t h s i m p l e s t a n d e a s i e s t . N a d d r e s s e s h a v e t b c a l c u l a t e dn o a t t e n t i o n p a i d t a n y r e g i s t e r s . O n e c a c r e a t e g r a p h i c sd i r e c t l y f r o m t h k e y b o a r d a n p l a c e t h e m i t h p r o g r a mw h i l e b o t h a r b e i n g d e v e l o p e d . I t i s u s u a l l y n e c e s s a r y t p r e s s t w k e y s t o b t a i n t h e s e s y m b o l s . I y o l o o k a t h k e y b o a r d c l o s e l y , y o u w i l l s e t h a t a l m o s t e v e r y k e h a s t w og r a p h i c s s y m b o l s o i i a d d i t i o n t t h n o r m a l l e t t e r . T h s y m b o l o g r a p h i c s c h a r a c t e r o t h l e f t s i d e o t h k e i o b t a i n e d b f i r s t p r e s s i n g t h C o m m o d o r e ( C = ) k e y , h o l d i n gt h i s d o w n , a n t h e n p r e s s i n g t h c o r r e s p o n d i n g k e w i t h t h d e s i r e d g r a p h i c s c h a r a c t e r .

T h e s e c h a r a c t e r s c a a l w a y s b e e n t e r e d w i t h i n P R I N To I N P U T s t a t e m e n t . O n m i g h t w r i t e

1 0 P R I N T

f o e x a m p l e , a n d t h e n p r e s s t h k e y s C a n A Y o n o s e t h u p p e r r i g h t - h a n d c o r n e r o f r a m e o t h s c r e e n . T c r e a t e a e n t i r e f r a m e , t h e f o l l o w i n g i n p u t i n e c e s s a r y( s t i l l i l i n e 1 0 0 ) :

Page 12: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 12/290

T r i c k s f T i p s

P r e s s t h s h i f t a n d k e y s 3 8 t i n e s . Y o s e s t r a i g h tl i n e e x t e n d i n g f r o m t h c o r n e r o t h f r a m e o t h s a m eh o r i z o n t a l l i n e . I a d d i t i o n , y o u h a v e a l s o l e a r n e d t h a t y o c a e n t e r t h g r a p h i c s c h a r a c t e r s h o w n o t h r i g h t s i d e o

k e b p r e s s i n g S H I F T a l o n g w i t h t h a t k e y . N o w p r e s s t h k e y s C a n t c o m p l e t e t h e t o p p a r t o t h f r a m e . A t t h e n o l i n e 1 0 0 , e n t e r t h f o l l o w i n g :

a n d p r e s s t h e R E T U R N k e y

T h e n e x t l i n e c a b e n t e r e d a f o l l o w s :

1 1 P R I N T

A f t e r t h i s , p r e s s S H I F T a n o n t i m e , t h s p a c e b a r 3 t i m e s , a n S H I F T a n o n c e a g a i n . A t h e n d , e n t e r

a n d p r e s s t h R E T U R N k e a g a i n .

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

1 2 P R I N T

a n t h e n C a n Z S H I F T a n 3 8 t i m e s , t h e n C a n X N o w h a v e t h c o m p l e t e f r a m e c o n s i s t i n g o t h r e e l i n e s . E n t e rt h e s e l i n e s :

-

Page 13: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 13/290

Page 14: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 14/290

T r i c k s T i p s

1 1 R E M F I R S T L I N E O T H F R A M E1 1 Z 2 $ = H 2 $1 1 F O 1 = T O 3 81 1 Z 2 $ = Z 2 $ + H 3 $1 1 N E X T1 2 Z 2 $ = Z 2 $ + H 2 $1 2 R E M S E C O N D L I N E O F T H F R A M E1 2 Z 3 $ = A 3 $1 2 F O 1 = T O 3 81 2 Z 3 $ = Z 3 $ + H 1 $1 2 N E X T1 2 Z 3 $ = Z 3 $ + A 4 $1 2 R E T H I R D L I N E O F T H F R A M E1 2 P R I N T Z l $ ;1 2 P R I N T Z 2 $ ;1 3 P R I N T Z 3 $ ;

W h e n y o e n t e r t h e s e n e w l i n e s a n d r u t h p r o g r a m , y o w i l l g e t t h e s a m e r e s u l t a b e f o r e . T h e a d v a n t a g e l i e s i t h f a c t t h a t p r o g r a m s w r i t t e n w i t h s u c h C H R $ f u n c t i o n s a r e a s i e r t r e a d a n c h a n g e .2 . 1 . 2 T h e u s e o f s p r i t e s

Y o u r C o m m o d o r e 6 c a d m o r e t h a t j u s t d r a w s i m p l el i n e s o f r a m e s . I o f f e r s y o u g r a p h i c s c a p a b i l i t i e s t h a t w eh a v e o n l y b e g u n t d e s c r i b e , c a p a b i l i t i e s p r e v i o u s l y f o u n do n l y o c o i n - o p e r a t e d v i d e o g a m e s .

T h C o m m o d o r e 6 h a e i g h t m o v a b l e g r a p h i c s o b j e c t sc a l l e d " s p r i t e s . " E a c h o t h e s e e i g h t s p r i t e s c a b e m o v e d ,e r a s e d , o r e d e f i n e d v i a P O K E c o m m a n d s , i n d e p e n d e n t o t h o t h e r s p r i t e s . I o r d e r t g e t t h e m o s t o u o s p r i t eg r a p h i c s , o n m u s t b a c q u a i n t e d w i t h t h c o r r e s p o n d i n gr e g i s t e r s i t h C o m m o d o r e 6 4 T h c o m p l e t e r e g i s t e r l a y o u t

6

Page 15: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 15/290

Page 16: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 16/290

Page 17: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 17/290

T r i c k s & T i p s

g r a p h i c s m o d e i s e l e c t e d i l i n e 4 3 0 . T h e l i n e s 4 5 0 t 5 6 d r a w t h a x e s a n s c a l e s . T h l i n e s 6 8 t 7 9 d r a w t h p o l a r r e p r e s e n t a t i o n a n l i n e s 8 2 0 t 9 7 d r a w t h r e c t a n g u l a r g r a p h .

T h t h r e e - d i m e n s i o n a l p l o t t i n g r o u t i n e s t a r t s a l i n e1 0 1 0 . Y o c a a g a i n s e l e c t t h v a l u e s f o s c a l e a n p o s i t i o n . F o r n o w , e n t e r t h s u g g e s t e d v a l u e s o 2 a n 9 0 T h t h r e e - d i m e n s i o n a l r e p r e s e n t a t i o n r e q u i r e s t h a t t h ef u n c t i o n i l i n e 1 0 b c a l c u l a t e d m o r e t h a n t e t h o u s a n dt i m e s ; t h e p r o g r a m t a k e s b e t w e e n o n h a l f o a h o u r t s e v e r a l h o u r s t o d o t h i s .

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

1 0 D B F R ( Q ) C O ( 2 * Q ) C O ( ( B B ) / 1 6 )1 0 D B F N R ( Q ) S Q ( A B S ( . 5 * ( 1 6 - Q * Q ) ) l / ( Q + 4 )1 0 D B F N R ( Q ) C O ( 4 * Q ) 2 0 / ( Q * Q 3

I y o d n o h a v e U L T R A B A S I C - 6 4 , y o m u s tf o l l o w i n g c h a n g e s a n a d d i t i o n s t t h p r o g r a m :

m a k e t h

L i n e P O K E 5 6 , 3 2 C L L i n e 4 3 0 a n d 1 4 0 0 G O S U B 2 0 0 0L i n e 4 7 0 F O R A l = 0 T 1 9 A X = F : A Y = A 1 : G O S U B 3 0 0 0

F O A l = 0 T 3 1 F O A 1 = E - 1 T F O A 1 = E - 1 T E + F O A 1 = F - 1 T F + F O A 1 = F - 1 T O F + l

L i n e 4 8 L i n e 5 0 L i n e 5 2 L i n e 5 4 0L i n e 5 6 0L i n e 7 7 L i n e 9 0

N B X TA X = A 1 : A Y = E : G O S U B 3 0 0 0 N E X T

A X = Y R : A Y = A 1 : G O S U B 3 0 0 0 N E X TA X = X L : A Y = A 1 : G O S U B 3 0 0 0 N E X T

A Y = Y D : G O S U B 3 0 0 0 N E X TA Y = Y U : G O S U B 3 0 0 0 N E X T

A X = A 1 :A X = A 1 :

A X = X X : A Y = Y Y : G O S U B 3 0 0 0A X = G : A Y = Y Y : G O S U B 3 0 0 0

L i n e 1 6 0 0 A X = X 1 : A Y = Y 1 : G O S U B 3 0 0 0

- 9

Page 18: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 18/290

T r i c k s T i p s

L i n e 1 6 2 0 G O S U B 4 0 0 0 R E T U R NL i n e 2 0 0 0 F O R A l = 8 1 9 2 T 1 6 1 9 1 P O K E A l , 0 N E X TL i n e 2 0 1 0 F O A l = 1 0 2 4 T 2 0 2 3 P O K E A l , 1 6 : N E X TL i n e 2 0 2 0 P O K E 5 3 2 4 8 + 1 7 , 2 7 + 3 2 P O K E 5 3 2 4 8 + 2 4 , 1 6 + 8L i n e 2 0 3 0 R E T U R NL i n e 3 0 0 0 O Y = 3 2 0 * I N T ( A Y / 8 ) + ( A Y A N D 7 )L i n e 3 0 1 0 O X = 8 * I N T ( A X / 8 )L i n e 3 0 2 0 M A = 2 " ( ( 7 - A X ) A N D 7 )L i n e 3 0 3 0 A V = 8 1 9 2 + O Y + O XL i n e 3 0 4 0 P O K E A V , P E E K ( A V ) O R M R E T U R NL i n e 4 0 0 0 F O A 1 = Y 1 + 1 T 1 9 9 : A X = X 1 : A Y = A 1 : O O S U B 5 0 0 0 : R E T U R NL i n e 5 0 0 0 O Y = 3 2 0 * I N T ( A Y / 8 ) + ( A Y A N D 7 )L i n e 5 0 1 0 O X = 8 * I N T ( A X / 8 )L i n e 5 0 2 0 M A = 2 ~ ( ( 7 - A X ) A N D 7 )L i n e 5 0 3 0 A V = 8 1 9 2 + O Y + O XL i n e 5 0 4 0 P O K E A V , P E E K ( A V ) A N D ( 2 5 5 - M A ) : R E T U R N

P r o g r a m m i n g t h g r a p h i c s f u n c t i o n s i B A S I C m a k e s t h p r o g r a m c o n s i d e r a b l y s l o w e r a c o m p a r e d t p r o g r a m m i n g u s i n gU L T R A B A S I C - 6 4 f o e x a m p l e .

- 1

Page 19: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 19/290

T r i c k s f T i p s

1 P R I N T " C C L R 3 - C C / D N 3 - G R A P H I C R E P R E S E N T A T I O N O F U N C T I O N S C C /D N 3 -2 P R I N T D E F I N E D I L I N E K K K C / D N *4 P R I N T " - C C / D N } C A R T E S I A N P L O T "5 P R I N T " C C / D N 3 - P O L A R C O O R D I N A T E S "6 P R I N T " C C / D N 3 - 3 3 P L O T "7 I N P U T " C C / D N 3 - C H O I C E S G C / L F 3 - C C / L F > C C / L F 3 - " P 1 0 D E F N R ( Q ) = C O S Q ) + C O S 2 * Q > + C O S 5 * Q )2 1 I P L = 3 T H E N 1 0 1 02 5 P R I N T : P R I N T2 6 I N P U T " F U N C T I O N I N C R E M E N T " ? I K2 7 I N P U T " C C / D N 3 F A C T 0 R F O R X - A X I S " S S 12 8 I N P U T " C C / D N 3 - F A C T O R F O Y - A X I S " ; S 23 7 P R I N T " L E F T O R I G H T S H I F T "3 8 I N P U T " N U M B E R F R O M - 1 3 0 T 1 3 0 " ; C4 0 P R I N T " U P O D O W N S H I F T "4 1 I N P U T " N U M B E R F R O M - 9 0 T O 9 " ; 4 3 H I R E S 2 3 4 5 E = 1 0 0 + D a a F 1 6 0 + C4 7 D R A W F - . O - . F , , 1 9 9 , 14 8 D R A W 0 , E , 3 1 9 , E , l4 9 0 F O R X R = F T 3 1 9 S T E P 1 9 * S 15 0 D R A W X R , E - i , X R , E + i , i N E X T5 1 0 F O R X L = F T S T E P - 1 9 * S 15 2 0 D R A W X L , E - l , X L , E + i , 1 N E X T5 3 0 F O R Y D = E T 1 9 S T E P 1 5 * S 25 4 D R A W F - l , , Y D p F + l ; , Y D , N E X T5 5 0 F O R Y U = E T S T E P - 1 5 * S 25 6 D R A W F - l , Y U , F + i , Y U , i N E X T5 8 I P L = 1 T H E N 8 2 6 1 R E M P O L A R P L O T6 2 R D = - n / 1 8 0 F O R G = 0 T 3 6 0 S T E P I T = G * R D7 1 X = F N R < T ) * C O S ( T ) : Y = F N R ( T ) * S I N ( T )7 3 X X = X * ( 1 9 * S 1 ) + F Y Y = - Y * ( 1 5 * S 2 ) + E7 4 I X X < 0 O X X > 3 1 9 T H E N 7 8 7 5 I Y Y < 0 O Y Y M 9 9 T H E N 7 8 7 7 0 D O T X X , 1 9 9 - Y Y , 17 8 0 N E X T7 9 0 E N D8 2 0 R E M C A R T E S I A N P L O T8 3 F O G = 0 T O 3 1 S T E P I 8 4 X = ( G - F ) / < 1 9 * S 1 ) Y = F N R ( X )8 5 Y Y « E - < Y * 1 5 * S 2 )8 6 I Y Y < 0 O Y Y > 1 9 9 T H E N 9 6 9 0 0 D O T G 5 1 9 9 - Y Y , 19 6 0 N E X T9 7 0 E N D1 0 1 0 R E 3 P L O T1 0 2 0 P R I N T " C C L R > C C / D N 3 - C C / D N J - - C C / D N 3 - C C / R T > < C / R T > - C C / R T 3 - V E R T I C A L

A S P E C T "1 0 3 0 I N P U T " C C / D N > C C / D N 3 - C C / R T > { : C / R T > L C / R T > - 4 0 T O 4 0 T Y P I C A L L2 " ; ; N 1

- 1

Page 20: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 20/290

T r i c k s T i p s

1 0 4 0 P R I N T " < C / D N > { C / D N 1 < C / D N > C C / R T 3 - < C / R T > t C / R T * V E R T I C A L O F F SE T 1 0 5 0 I N P U T " { C / D N > < : C / D N M C / R T } - C C / R T } - C C / R T } - 5 0 T O 1 5 0 ; , T Y P I C A LL 9 0 " 5 N 21 2 6 0 R E C O N S T A N T S A , B , C , D ? E , F , G1 2 8 0 A = 1 4 4 5 B = 2 n 2 5 : C = N 1 S D « . 0 3 2 7 : E = 1 6 0 S F = N 2 : G = 1 9 91 4 0 0 H I R E S 2 S 1 4 1 0 F O H = ~ A T S T E B1 4 2 0 A A = I N T < . 5 + S Q R ( A * A ~ H * H ) )1 4 3 0 F O B B = - A A T A A S C C = S Q R < B B * B B + H * H > * D1 4 4 0 D 1 = F N R < C C > D D = D 1 * C : G 0 S U B 1 5 2 0 : N E X T 2 N E X T S E N 1 4 5 0 G O T O 1 4 5 01 5 2 0 X = B B + H / B + E Y = D D - H / B + F1 5 3 0 X l = I N T < n 8 5 * X ) : Y 1 = I N T ( . 9 * < G - Y ) ) S I F Y < 0 0 R Y > 1 9 9 T H E N R E T U R N1 6 0 0 D O X I 1 . 9 9 - Y 1 ,1 6 2 0 R E T U R N : M O D E D R A W X I , 1 9 9 - Y 1 - 1 , X I , 0 3 1 M O D E R T U R NR E A D Y .

1

Page 21: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 21/290

T r i c k s & T i p s

2 . C o l o r l i n e g r a p h i c s

T h f o l l o w i n g m a c h i n e l a n g u a g e p r o g r a m d r a w s v e r t i c a lo h o r i z o n t a l l i n e s i c o l o r . T h i s a l l o w s d a t a t b r e p r e s e n t e d o t h s c r e e n w i t h e a s i l y u n d e r s t a n d a b l eg r a p h i c s . B e c a u s e t h g r a p h i c s a r c r e a t e d w i t h t h n o r m a ls c r e e n c h a r a c t e r s , t e x t a n g r a p h i c s m a y b e m i x e d o t h s c r e e n , a l l o w i n g y o t l a b e l g r a p h s , f o i n s t a n c e . T h l i n e s a r e e i g h t p o i n t s w i d e , j u s t l i k e c h a r a c t e r .

T h m a c h i n e l a n g u a g e p r o g r a m i d e s i g n e d s u c h t h a t t h el e n g t h o h e i g h t a n c o l o r o t h e l i n e c a n b e a s i l yc o n t r o l l e d . T h l i n e i d r a w n a t h c u r r e n t c u r s o rp o s i t i o n . I o r d e r t s i m p l i f y t h r e p r e s e n t a t i o n o c o m p l e t e g r a p h i c s i m a g e , t h e c u r s o r i m o v e d o n p o s i t i o n t t h r i g h t a f t e r t h o u t p u t o v e r t i c a l l i n e s t h a t t h en e x t l i n e c a b d r a w n i m m e d i a t e l y ( i d i f f e r e n t c o l o r i n e c e s s a r y ) . A f t e r d r a w i n g h o r i z o n t a l l i n e , t h c u r s o ra u t o m a t i c a l l y m o v e s o n e l i n e d o w n .

T h r o u t i n e i c a l l e d t h r o u g h a e x p a n d e d S Y S c o m m a n d :

S Y H L o S Y V L

w h e r e a n a r t h s t a r t i n g a d d r e s s e s f o t h r o u t i n e s t d r a w h o r i z o n t a l a n v e r t i c a l l i n e s , r e s p e c t i v e l y . i t h l e n g t h o t h e l i n e i p i x e l s ( u p t o 3 2 f o h o r i z o n t a ll i n e a n 2 0 f o v e r t i c a l l i n e ) , a n d i t h c o l o r c o d e( t o 1 5 ) .

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

- 1 3 -

Page 22: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 22/290

Page 23: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 23/290

0 0 5 1 C 0 2 C0 L 0 R R A M0 0 5 2 C 0 2 F0 0 5 3 C 0 3 1

C O L O R0 0 5 4 C 0 3 40 0 5 5 C 0 3 50 0 5 6 C 0 3 70 0 5 7 C 0 3 90 0 5 8 C 0 3 A0 0 5 9 C 0 3 B0 0 6 0 C 0 3 C0 0 6 1 C 0 3 E0 0 6 2 C 0 4 00 0 6 3 C 0 4 20 0 6 4 C 0 4 30 0 6 5 C 0 4 60 0 6 6 C 0 4 80 0 6 7 C 0 4 B0 0 6 8 C 0 4 D0 0 6 9 C 0 5 00 0 7 0 C 0 5 30 0 7 1 C 0 5 70 0 7 2 C 0 5 B0 0 7 3 C O S E0 0 7 4 C 0 6 10 0 7 5 C 0 6 30 0 7 6 C 0 6 50 0 7 7 C 0 6 70 0 7 8 C 0 6 90 0 7 9 C 0 6 A0 0 8 0 C 0 6 B0 0 8 1 C 0 6 C0 0 8 2 C 0 6 E0 0 8 3 C 0 7 00 0 8 4 C 0 7 20 0 8 5 C 0 7 40 0 B 6 C 0 7 60 0 8 7 C 0 7 7C O L U M N0 0 8 8 C 0 7 90 0 8 9 C 0 7 B0 0 9 0 C 0 7 D0 0 9 1 C 0 7 F0 0 9 2 C 0 8 10 0 9 3 C 0 8 30 0 9 4 C 0 8 50 0 9 5 C 0 8 7L O A D D R0 0 9 6 C 0 8 A0 0 9 7 C 0 8 C0 0 9 8 C 0 8 E0 0 9 9 C 0 9 0

C O L O R

2

A 2 8 C 1 6 A 6 C B 2 A B A 2 A 4 4 2 6 2 2 A D 8 A 4 4 4 8 A 2 8 A 1 6 8 A 6 8 A A F 2 A 9 A 9

2 A I

D F

2 O 0

5 2 I 1 1 4 6 F F E 1 E 2 1

2 1 0 2 D

D F D 0 F 0 2 2 C A F 2 F

E

E

C E E B 7 E A B

C

T

T

D O N EI L

J S R S E T C O LL D # * 2 0 + * 8 0J S S E T C H RD E C P Y C U R C O LB P L T 2P L T A P L C P Y # 4 0B C D O N EA N D # 7T A L D A T A B L E , XL D X X R E 6J S R S E T C H RL D # 1 J M P S C R O U TJ M I L L Q U A

7 T A B L E B Y T * 2 0 , * 6 5E

V P L O T

T

B Y * 6 1 , * F 6J S C H K C O MJ S 6 E T C 0 RL D A H B Y TB N I L S T X R E 6L D A L B Y TL S L S L S S T A T M PL D L B Y TA N D # 7S T T M P 1L D C H R A D RC L A D C U R C O LS T A D L D C H R A D R + 1A D C # 0S T A A D R + 1L D Y # 0L D T M B E Q T 3J S C L L D # $ 2 0 + * 8 0S T < A D R ) , YL D A X R E GS T ( C O L O R ) , Y

T r i c k s T i p s; P O I N T E R T O; R E V E R S E B L A N; S E T C H A R A N D

; C U R S O R D O W N

, * 7 4 f * 7 5, * E A , * E 7

; C O L O R

; L I N E A D D R E S S; P L U S C U R S O R

; C A L C U L A T E C

; C O L O R; S E T C H A R A N

- 1

Page 24: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 24/290

T r i c k s T i p s

0 1 0 00 1 0 10 1 0 20 1 0 30 1 0 40 1 0 50 1 0 60 1 0 7C H E D0 1 0 80 1 0 90 1 1 00 1 1 10 1 1 20 1 1 30 1 1 40 1 1 50 1 1 60 1 1 70 1 1 8

C 0 9 2C 0 9 4C 0 9 5C 0 9 7C 0 9 9C 0 9 BC 0 9 DC 0 9 FC 0 A 1C 0 A 3C 0 A 5C 0 A 7C O A AC O A CC O A FC 0 B 1C 0 B 3C 0 B 5C 0 B 7

S T C O L ?0 1 1 90 1 2 00 1 2 10 1 2 20 1 2 30 1 2 40 1 2 50 1 2 60 1 2 7

C 0 B 9C O B BC O B EC O B FC 0 C 3C 0 C 7C 0 C 9C O C BC O C D

A 3 E 8 B C A C 9 C D 2 A B 9 A 9 A C F 4 6 2 6 A 8 A 4

F 2 F 0 F F 0 1 2 E C 2 B F 2 F D D 0 3 6 F F F F 2

C C

A 6 F

E

T

T

T

T 7 T A B 2E

C L

L D S E S B S T B C D E L D C M B C D E B N J S L D L D S T L D S T L D C M B E J M R T

A D # 4 ; N E X T L I N EA D T A D R + 1A D R + 1# ; T O P L I N E R E T T M T C L T M P 1T A B 2 , X( A D R ) , Y

X R E G ; C O L O R( C O L O R ) , Y

C U R C O LL I N E L N ; C U R S O R I L T C U R R I G ; C U R S O R R I G H T

B Y * 2 0 , * 6 4 , * 6 F , * 7 9B Y * 6 2 , * F 8 , * F 7 , * E 3

L D S T L D J M

A D C O L O RA D R + 1S E T C O L + 6

A S S E M B L Y C O M P L E T E .

1

Page 25: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 25/290

T r i c k s & T i p s

H e r e i l o a d e r p r o g r a m i B A S I C f o t h o s e w h d n o h a v ea a s s e m b l e r o m o n i t o r a t h e i r d i s p o s a l .

1 0 F O R 1 = 4 9 1 5 2 T 4 9 3 5 91 1 R E A D X

P O K E I , X :

N E X T1 2 D A T A 3 2 , 2 5 3 , 1 7 4 , 3 2 , 2 3 5 , 1 8 3 , 1 3 4 , 3 6 , 1 6 5 , 2 1 , 2 0 1 , 21 3 D A T A 1 7 6 , 6 6 , 1 0 , 1 0 , 1 0 , 1 0 , 1 0 , 1 3 3 , 3 5 , 1 6 5 , 2 0 , 7 21 4 D A T A 7 4 , 7 4 , 7 4 , 2 4 , 1 0 1 , 3 5 , 1 0 1 , 2 1 1 , 7 2 , 1 6 8 , 1 9 7 , 2 1 11 5 D A T A 2 4 0 , 1 9 , 2 0 1 , 3 9 , 1 4 4 , 2 , 1 6 0 , 3 9 , 3 2 , 3 6 , 2 3 4 , 1 6 91 6 D A T A 1 6 0 , 3 2 , 3 0 , 2 3 4 „ 1 3 6 „ 1 9 6 , 2 1 1 , 1 6 , 2 4 3 , 1 0 4 , 1 6 8 , 1 0 41 7 D A T A 1 9 2 , 4 . , 1 7 6 , 1 1 , 4 1 , 7 1 7 0 , 1 8 9 , 8 3 , 1 9 2 , 1 6 6 , 3 1 8 D A T A 3 2 , 3 0 , 2 3 4 , 1 6 9 , 1 7 , 7 6 , 2 2 , 2 3 1 , 7 6 , 7 2 , 1 7 8 , 3 21 9 D A T A 1 i . 1 1 1 1 7 , 9 7 2 4 6 , 2 3 4 , 2 3 1 , 3 2 2 5 3 , 1 7 4 , 3 2 , 2 3 2 0 D A T A 1 8 3 , 1 6 5 . , 2 1 2 0 8 , 2 3 5 , 1 3 4 , 3 6 , 1 6 5 , 2 0 , 7 4 , 7 4 , 7 42 1 0 D A T A 1 3 3 , 3 5 , 1 6 5 , 2 0 , 4 1 , 7 , 1 3 3 , 3 7 , 1 6 5 , 2 0 9 , 2 4 , 1 0 12 2 D A T A 2 1 1 , 1 3 3 , 2 5 3 , 1 6 5 , 2 1 0 , 1 0 5 , 0 , 1 3 3 , 2 5 4 , 1 6 0 , 0 , 1 6 62 3 0 D A T A 3 5 , 2 4 0 3 3 2 , 3 2 , 1 9 9 , 1 9 2 H 1 6 9 , 1 6 0 , 1 4 5 , 2 5 3 , 1 6 5 , 3 62 4 0 D A T A 1 4 5 , 2 4 3 , 1 6 5 , 2 5 3 , 5 6 , 2 3 3 , 4 0 , 1 3 3 , 2 5 3 , 1 7 6 , 8 , 1 9 82 5 0 D A T A 2 5 4 , 1 6 5 , 2 5 4 . , 2 0 1 , 4 , 1 4 4 , 1 8 , 1 9 8 , 3 5 , 2 0 8 , 2 2 4 , 3 2 6 D A T A 1 9 9 , 1 9 2 , 1 6 6 , 3 7 , 1 8 9 , 1 9 1 , 1 9 2 , 1 4 5 , 2 5 3 . , 1 6 5 , 3 6 1 4 2 7 D A T A 2 4 3 , 1 6 5 , 2 1 1 , 1 9 7 . , 2 1 3 „ 2 4 0 , 3 7 6 5 9 1 7 1 , 9 6 3 2 8 0 D A T A 1 0 0 , 1 1 1 , 1 2 1 , 9 8 , 2 4 8 , 2 4 7 , 2 2 7 , 1 6 5 , 2 5 3 , 1 3 3 , 2 4 3 , 1 62 9 0 D A T A 2 5 4 , 7 6 , 4 2 , 2 3 43 0 I S O 2 6 6 9 6

T H E N P R I N T " E R R O R I D A T A ! ! " :E N

3 1 P R I N T " O K "

- 1

Page 26: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 26/290

T r i c k s T i p s

L e u t a k e l o o k a p o s s i b l e u s f o t h e s e g r a p h i c sr o u t i n e s . T h i s e x a m p l e r e p r e s e n t s s a l e s s t a t i s t i c sg r a p h i c a l l y .

1 0 R E T H M O N T H - E N D T O T A L S F O R T H E Y E A R1 1 R E A R I T H D A T A S T A T E M E N T S1 2 D I U ( 1 2 )1 3 R E R E A D T H D A T A1 4 F O 1 T 1 R E A D U ( I ) N E X T1 5 R E M D E T E R M I N E M A X I M U M V A L U E1 6 M A = 1 7 F O 1 T 1 1 8 I F U ( I ) M A T H E N M A U ( I )1 9 N E X T2 0 V 1 2 * 4 0 9 6 + 5 * 1 6 + 1 1 R E M A D D R E S S O F T H E M L R O U T I N E2 2 P R I N T C H R $ ( 1 4 7 ) R E E R A S E S C R E E N2 3 F O 1 T 2 P R I N T C H R $ ( 1 7 ) ; N E X T R E C U R S O R2 4 R E M D R A W G R A P H I C S2 5 F O 1 T 1 2 6 P R I N T S P C ( 2 ) ; S Y V U ( I ) / M A X 1 8 2 7 N E X T2 8 P R I N T P R I N T2 9 R E M W R I T E M O N T H N U M B E R3 0 F O 1 = T 1 3 1 P R I N T R I G H T $ ( " " + S T R $ ( I ) , 3 ) ;3 2 N E X T3 3 G E A I A $ = t l t f T H E N 3 3 4 0 0 R E M S A L E S D A T A4 1 D A T A 1 2 0 0 0 , 1 3 5 0 0 , 1 1 0 0 0 , 8 0 0 0 , 1 4 0 0 0 , 9 0 0 04 2 0 D A T A 1 3 8 0 0 , 1 4 0 0 0 , 1 2 7 5 0 , 1 4 0 0 0 , 1 3 8 0 0 , 1 7 2 0 0

1

Page 27: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 27/290

T r i c k s T i p s

N o l e t ' s e x a m i n e f u n c t i o n w i t h h o r i z o n t a l l i n eg r a p h i c s .

T h c o l o r c o d e c a b e n t e r e d i l i n e 1 0 0 . T h s c r e e ni t h e n e r a s e d , t h e b a c k g r o u n d c o l o r s e t b l a c k , a n t h c u r s o r p l a c e d i t h s e c o n d c o l u m n . T h e f u n c t i o n i c a l c u l a t e d f r o m - 2 . 2 t 2 . i l i n e s 1 2 a n 1 3 0 , e x p a n d e dt o a n e a s i l y r e p r e s e n t a b l e s i z e , a n f i n a l l y p l o t t e d w i t ht h S Y c o m m a n d .

1 0 I N P U T " C O L O R " ; C : I F C < O C > 1 5 T H E N 1 0 1 1 H = 1 2 * 4 0 9 6 P R I N T C H R $ ( 1 4 7 ) T A B ( 2 ) ; P O K E 5 3 2 8 1 , 01 2 F O R I = - 2 . 2 T O 2 . 2 S T E P . 1 3 S Y H , E X P ( - I * I ) * 3 0 0 , C N E X T

1

Page 28: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 28/290

T r i c k s T i p s

2 . D e f i n i n g c h a r a c t e r s e

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

H o i c h a r a c t e r d e f i n e d ?

T h s h a p e o e a c h c h a r a c t e r i d e t e r m i n e d b s o m e t h i n gc a l l e d t h c h a r a c t e r m a t r i x , a a r r a y o e i g h t b y e i g h tp i x e l s . E a c h m a t r i x p o i n t i d e t e r m i n e d b b i i t h c h a r a c t e r g e n e r a t o r . E a c h c h a r a c t e r r e q u i r e s 6 b i t s o e i g h t b y t e s f o c o m p l e t e d e f i n i t i o n . I b i i z e r o ,t h e n t h c o r r e s p o n d i n g p o i n t i t h m a t r i x i n o s e t , w h i l e

s e b i i n d i c a t e s s e p o i n t i t h m a t r i x . I b i i t h m a t r i x i s e t , t h e n i a p p e a r s o t h s c r e e n . T h f o l l o w i n g p r o g r a m d i s p l a y s t h m a t r i x o c h a r a c t e r o t h s c r e e n . T h e p r o g r a m u s e s t h m o d i f i e d P E E K f u n c t i o n f r o mS e c t i o n 9 . 5 — l o a d o e n t e r t h p r o g r a m f o u n d t h e r e b e f o r ey o e n t e r t h i s o n e .

1 0 P R I N T C H R $ ( 1 4 7 ) : P R I N T : P R I N T : P R I N T1 1 I N P U T " P L E A S E E N T E R C H A R A C T E R " ; A $1 2 P R I N T C H R $ ( 1 9 ) A $ : B = P E E K ( 1 0 2 4 )1 3 P R I N T : P R I N T : P R I N T : P R I N T1 4 C 1 3 * 4 0 9 6 R E M S T A R T O F T H E C H A R A C T E R G E N E R A T O R1 5 R E D E T E R M I N E I U P P E R / G R A P H I C S O U P P E R / L O W E R M O D E1 6 ( P E E K ( 5 3 2 4 8 + 2 4 ) A N 2 1 0 2 41 7 F O 1 = T 1 8 U S R ( C G + B + 8 * C + I ) R E M G E T M A T R I X L I N E A T I M E1 9 F O J = T S T E P - 2 0 A N 2 ~

2

Page 29: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 29/290

Page 30: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 30/290

T r i c k s T i p s

g e n e r a t o r f r o m R O t R A a n d t h e n i n f o r m t h o p e r a t i n gs y s t e m w h e r e t h n e c h a r a c t e r g e n e r a t o r i s T h s c r e e nm e m o r y a a d d r e s s $ C 4 0 0 ( d e c i m a l 5 0 1 7 6 t 5 1 1 7 5 ) i s h i f t e da t h s a m e t i m e . T h i s c a n b a c c o m p l i s h e d i B A S I C w i t hP O K B l o o p . W w i l l a g a i n u s e t h U S f u n c t i o n f r o m S e c t i o n9 . 5 .

1 0 F O 1 = 1 3 * 4 0 9 6 T 1 4 * 4 0 9 6 - 11 1 P O K B 1 + 4 0 9 6 , U S R ( I ) N E X T1 2 P O K B 5 3 2 7 2 , 2 4 P O K E 5 6 5 7 6 , 1 4 8 P O K E 6 4 8 , 1 9 6

A f t e r R U N n i n g t h i s p r o g r a m y o c a d e f i n e y o u r o w c h a r a c t e r s w i t h t h f o l l o w i n g p r o g r a m . T h p r o g r a m p r o m p t sy o f o t h c h a r a c t e r t b m o d i f i e d . Y o u c a n t h e n e n t e r t h c h a r a c t e r m a t r i x , t h e r e b y r e d e f i n i n g t h c h a r a c t e r t h a t i t b e d i s p l a y e d . A a s t e r i s k i n d i c a t e s s e p o i n t a n p e r i o d m e a n s t h p o i n t i n o s e t . W h e n y o u a r f i n i s h e dd e f i n i n g c h a r a c t e r s , e n t e r t h w o r d " E N D " a t h c h a r a c t e r .

1 0 R E C H A R A C T E R D E F I N I T I O N1 1 C G = 1 4 * 4 0 9 6 :

R E M B A S E O T H C H A R A C T E R G E N E R A T O R2 0 I N P U T " C C S D t C D D I I C D ^ n C D J L C R l C C R J C C R ^ C H A R A C T E R " ; A « :

I A U G E N D "T H E N E N

2 1 P R I N T n C C H 3 " ; A *2 2 O P E E K ( 1 2 * 4 0 9 6 + 1 0 2 4 )2 3 0 P R I N T " L C D 3 L C D 3 C C D 3 C C D D C C D 3 C C D 3 C C D 3 C C R 3 C C R 3 C C R 3 C C R 3 C C R 3

0 1 2 3 4 5 6 7 "3 0 0 F O R 1 = T 3 1 P R I N T I ;

I N P U T A * ( I ) :I L E N ( A $ ( I > ) < > 8T H E N P R I N T " C C U 3 C C U 3 " :

G O T O 3 1 03 2 0 N E X T4 0 B = ( P E E K ( 5 3 2 4 8 + 2 4 ) A N D 2 ) * 1 0 2 4 :

R E U P P E R C A S E / G R A P H I C S M O D E4 0 A D = C G + B + C * 8

- 2

Page 31: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 31/290

T r i c k s T i p s

4 1

4 2 4 3 4 4 4 5

4 6

4 7 4 8

F O 1 = T 7 2 = F O J = T

Z = Z - * i M 1 D * A 1 ' . , B - 1 N E X Tp o k e ; a d - i - j : . , z R E C H A R A C T E RP O K E A D + 1 0 2 4 + I , 2 S 5 - Z SR E R V S - C H A R A C T E R

N E X TG O T O 2 0

2 3

Page 32: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 32/290

T r i c k s T i p s

2 . M o d i f y i n g t h c h a r a c t e r s e w i t h j o y s t i c k

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

W h e n y o u h a v e s u i t a b l e a p p l i c a t i o n , y o u c a f i r s td r a w y o u r c h a r a c t e r s i r a s t e r r e p r e s e n t a t i o n o p i e c e o g r a p h p a p e r a n d t h e n P O K E t h a p p r o p r i a t e v a l u e s i n t o t h ed u p l i c a t e o f t h e c h a r a c t e r g e n e r a t o r , b u t h i s i r a t h e rt e d i o u s .

H e r e i s m a l l p r o g r a m w h i c h e a s e s t h e d e v e l o p m e n t a n d e f i n i t i o n o c h a r a c t e r s . I i n e c e s s a r y t u s j o y s t i c ki c o n t r o l p o r t i o r d e r t u s t h p r o g r a m .

T h p r o g r a m m a k e s t w c o p i e s o t h b u i l t - i n c h a r a c t e rg e n e r a t o r i n t o R A M . c h a r a c t e r i t a k e n f r o m t h e f i r s t c o p ya n d i s p l a y e d a s p r i t e , o n c e i r e g u l a r s i z e a n a g a i n i d o u b l e s i z e s t h a t i t i s e a s i e r t o r e a d .

f l a s h i n g p o i n t ( w h i c h w e c a l l t h m i c r o c u r s o r a n w h i c h y o c a m o v e w i t h t h j o y s t i c k ) a p p e a r s o t h e s c r e e n .

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

O n c e t h c h a r a c t e r i d e s i g n e d t y o u r s a t i s f a c t i o n ,p r e s s t h F k e y . T h i s n e w c h a r a c t e r i p l a c e d i n t o t h a l t e r n a t e c h a r a c t e r s e ( s e c o n d c o p y ) . T a c c e p t t h c h a r a c t e r a n l e a v e i u n c h a n g e d , p r e s s t h 6 k e y . N o y o c a w o r k o t h n e x t c h a r a c t e r . A f t e r y o u h a v e e d i t e d a l 5 1 c h a r a c t e r s t h p r o g r a m e n d s .

2

Page 33: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 33/290

T r i c k s & T i p s

W h 5 1 c h a r a c t e r s ?T h e r e a r e 1 2 8 p r i n t a b l e c h a r a c t e r s i e a c h d i s p l a y

m o d e , u p p e r / l o w e r c a s e o u p p e r / g r a p h i c s m o d e . T h s a m ec h a r a c t e r s d i s p l a y e d i r e v e r s e b r i n g t h e t o t a l u p t o 2 5 6 .T h i s g i v e s g r a n d t o t a l o f 5 1 2 c h a r a c t e r s f o t h e t w od i s p l a y m o d e s . T h p o s i t i o n s o t h c h a r a c t e r s w i t h i n t h c h a r a c t e r g e n e r a t o r c a b e f o u n d o p a g e 1 3 o f t h e u s e r ' sg u i d e f o r t h e C 6 4 .

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

F i r s t t h e v a r i a b l e s :

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

C b a s e a d d r e s s o f t h e t r a n s f e r r e d c h a r a c t e r i t h s e c o n dc o p y

C c h a r a c t e r p o s i t i o n c o u n t e r i t h r a n g e 0 - 5 1 1J c o n d i t i o n o f t h e b u t t o n o n t h e j o y s t i c kJ p o s i t i o n o f t h e j o y s t i c kJ a d d r e s s o c o n t r o l p o r tM c o u n t e r f o r t h e o p e r a t i n g m o d eP m i c r o c u r s o r p o s i t i o n w i t h i n t h a d d r e s s e d b y t eP a d d r e s s o t h m i c r o c u r s o r w i t h i n t h s p r i t e d a t a o f t h e

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

b t h j o y s t i c kS b a s e a d d r e s s o t h s p r i t e d a t a

b a s e a d d r e s s o t h v i d e o c o n t r o l l e rp o s i t i o n o t h s p r i t e s o t h s c r e e n

X p o s i t i o n o f t h e m i c r o c u r s o rp o s i t i o n o t h s p r i t e o t h s c r e e n

2

Page 34: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 34/290

T r i c k s T i p s

Y p o s i t i o n o f t h e n i c r o c u r s o r

T h e a d d r e s s e s :

5 h i g h b y t e o t h p o i n t e r t t o o m e m o r y6 4 p o i n t e r t o t h e s t a r t o v i d e o r a 8 3 s t a r t a d d r e s s o t h c a s s e t t e b u f f e r

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

5 0 1 9 6 p o i n t e r f o s p r i t e5 0 1 7 0 p o i n t e r f o s p r i t e5 3 2 7 2 p o i n t e r f o v i d e o r a a n c h a r a c t e r g e n e r a t o r w i t h i n

t h v i d e o c o n t r o l l e r5 6 5 7 6 T h i s l o c a t i o n c o n t a i n s t h e t w o b i t s w h i c h d e t e r m i n e

t h 1 6 r a n g e f o r t h e m e m o r y a d d r e s s e d b t h v i d e oc o n t r o l l e r .

H e r e i s t e p - b y - s t e p d e s c r i p t i o n o f t h e p r o g r a m :

1 T h t o p o f m e m o r y i l o w e r e d b e c a u s e t h f i r s td u p l i c a t e o t h c h a r a c t e r s e w i l l b l o a d e dh e r e .

3 0 - 2 3 3 S p r i t e s a r t u r n e d o a n d t h e i r c o l o r i s e t . T h s p r i t e p o i n t e r s a r l o a d e d a n s p r i t e

i s w i t c h e d t d o u b l e s i z e .T h s p r i t e d a t a a r f i r s t e r a s e d a n t h s p r i t e s a r p o s i t i o n e d i t h a p p r o x i m a t em i d d l e o t h s c r e e n .

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

2

Page 35: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 35/290

T r i c k s T i p s

S E L D S T L O S T S T S T L D S T L D S T L D S T J S L D S T C L R E

# $ 3 3

# $ 5 $ 5 $ 5 # $ D 0$ 6 # $ F 0$ 5 # $ E 0$ 5 $ A 3 B F# $ 3 7

1 0 2 0 - 1 0 4 0

1 0 6 0

2 0 0 0 - 2 3 6 0

2 3 8 0

d i s a b l e i n t e r r u p t s

m a k e c h a r a c t e r g e n e r a t o r a v a i l a b l e

o l b l o c k - s t a r t l o o l b l o c k - e n d l o n e b l o c k - e n d l o

o l b l o c k - s t a r t h i g h

n e b l o c k - e n d h i g h

o l b l o c k - e n d h i g hb l o c k s h i f t r o u t i n e

a l l o w i n t e r r u p t sb a c k t B A S I C

m a c h i n e l a n g u a g e p r o g r a m i p u t i n t o t h c a s s e t t e b u f f e r a n e x e c u t e d — t w o d u p l i c a t e sa r m a d e o f t h e c h a r a c t e r g e n e r a t o r .T h o p e r a t i n g s y s t e m i i n f o r m e d o t h c h a n g e sm a d e . T h p o s i t i o n s o t h c h a r a c t e r g e n e r a t o ra n v i d e o R A M a r e c h a n g e d ( n e c e s s a r y b e c a u s e o t h h a r d w a r e ) . T h c h a r a c t e r s y o n o s e o t h s c r e e n a r a l r e a d y c o m i n g f r o m c o p y 2 T h c h a r a c t e r s a r c o n v e r t e d t s p r i t e s o n a f t e r t h o t h e r a n d c a n b e c h a n g e d .A f t e r w o r k i n g o n a l l o f t h c h a r a c t e r s , t h e t o po m e m o r y i r a i s e d a g a i n b e c a u s e c o p y i n l o n g e r n e e d e d .

2

Page 36: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 36/290

T r i c k s & T i p s

4 0 0 0 - 4 0 7 0 T h j o y s t i c k i p o l l e d a n d p r o g r a m e x e c u t i o nb r a n c h e s d e p e n d i n g o n t h e p o s i t i o n o f t h ej o y s t i c k a n c o n d i t i o n o t h f i r e b u t t o n .

5 0 0 0 - 1 2 0 4 0 T h c u r s o r p o s i t i o n i M o d i f i e d b a s e d o t h p o s i t i o n o t h e j o y s t i c k .

1 3 0 0 0 - 1 3 2 0 0 T h p o s i t i o n o t h j o y s t i c k i u s t m o d i f yt h p o s i t i o n o f t h e m i c r o c u r s o r a n d t h i s p o i n ti a l t e r n a t e l y f l a s h e d o a n o f f .

2 0 0 0 0 - 2 0 0 8 0 C h a r a c t e r s s u c c e s s f u l l y c o m p l e t i n g e d i t i n g a r h e r e t r a n s f e r r e d t t h s e c o n d c o p y .

O n e f e a t u r e o t h i s p r o g r a m t n o t e i t h a t t h em o d i f i e d c h a r a c t e r g e n e r a t o r d o e s n o t t a k e u a n y B A S I Cs t o r a g e s p a c e . I t i s p l a c e d i R A M u n d e r t h k e r n a l ( t h a t i t b e t a k e n v e r b a t i m s i n c e R A M a n d R O M o v e r l a p e a c h o t h e r i t h C 6 4 ) .

T h v i d e o R A h a b e e n m o v e d t a d d r e s s 4 9 1 5 2 , a a d d r e s s y o s h o u l d k e e p i m i n d i y o d a n P O K B i n g t t h v i d e o R A M . I t i s u n f o r t u n a t e l y d e t e r m i n e d b t h h a r d w a r e o t h C o m m o d o r e 6 t h a t t h s h i f t i n g o t h v i d e o R A M m u s ta c c o m p a n y r e l o c a t i o n o f t h e c h a r a c t e r g e n e r a t o r . T h i sp r o b l e m i e x p l a i n e d i d e t a i l i o u b o o k T h A n a t o m y , o t h C o m m o d o r e 6 4

1 P O K E 5 6 , 1 4 4 :C L 2 V - 5 3 2 4 8 :P O K E 5 3 2 8 1 , 0

3 P O K E V + 2 1 , 6 :P O K E V + 4 0 . I SP O K E V + 4 1 , 1

4 P O K E 5 0 1 6 9 , 1 6 :P O K E 5 0 1 7 0 . , 1 6

4 P O K E V + 2 3 , 4 :P O K E V + 2 9 , 4

5 F O 1 = 0 T O 6 2 P O K E 5 0 1 7 6 + 1 . , 0 :

N E X T

2

Page 37: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 37/290

Page 38: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 38/290

T r i c k s T i p s

T H E N M A = O4 0 4 0 O N J R

G O T O 5 0 0 0 , 6 0 0 0 , 4 0 2 0 „ 7 0 0 0 , S O O O „ 9 0 0 0 , 4 0 2 0 , 1 0 0 0 0 „ 1 1 0 00 , 1 2 0 0 0

4 0 4 5 I P E E K ( 2 0 3 ) 0 4T H E N 4 0 6 64 0 5 0 P R I N T C H R * ( 1 9 ) C H R * ( 1 4 5 ) C H R * ( 1 8 ) " S A V E " :G O S U B 2 0 0 0 0

4 0 5 5 R E T U R N4 0 6 6 I M A = 1

T H E N P R I N T C H R * ( 1 4 5 ) C H R * ( 1 4 5 ) C H R * ( 1 8 ) " S E T "4 0 6 7 I M A = 2

T H E N P R I N T C H R * < 1 4 5 ) C H R * ( 1 4 5 ) C H R * ( I B ) " C L R "4 0 6 8 I P E E K ( 2 0 3 ) = 2 6

T H E N R E T U R N

4 0 6 9 I M A = OT H E N P R I N T C H R * ( 1 4 5 ) C H R * ( 1 4 5 ) "4 0 7 0 G O S U B 1 3 0 0 0 :

G O T O 4 0 2 05 0 0 0 R E U 5 0 2 0 Y J = Y J - l :

I Y J < 0T H E N Y J = O

5 0 4 0 G O S U B 1 3 0 0 0 :G O T O 4 0 2 0

6 0 0 0 R E M D O W N6 0 2 0 Y J = Y J + l :

I Y J > 7T H E N Y J = 7

6 0 4 0 G O S U B 1 3 0 0 0 :G O T O 4 0 2 0

7 0 0 0 R E L E F T7 0 2 0 X J = X J - 1 " .

I X J < 0T H E N X J = O

7 0 4 0 G O S U B 1 3 0 0 0 :G O T O 4 0 2 0

8 0 0 0 R E L E F T U 8 0 2 0 X J = X J - 1 . "I X J < 0

T H E N X J = O8 0 4 0 G O T O 5 0 0 09 0 0 0 R E M L E F T D O W N9 0 2 0 X J = X J - l :

I X J < 0T H E N X J = O

9 0 4 0 G O T O 6 0 0 01 0 0 0 0 R E M R I G H T1 0 0 2 0 X J = X J + i :

I X J > 7T H E N X J = 7

- 3

Page 39: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 39/290

Page 40: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 40/290

Page 41: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 41/290

T r i c k s T i p s

a w h i c h t h i n t e r r u p t i t t a k e p l a c e ( b s e t t i n g t h v a l u e i r e g i s t e r 1 8 ) .

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

L I N E

0 0 0 10 0 0 20 0 0 30 0 0 4

A D D R

0 3 3 C0 3 3 C0 3 3 C0 3 3 C

C O D E

E I N T E R R U P T0 0 0 5L L E R0 0 0 60 0 0 7O L O R0 0 0 8

0 3 3 CI N T E R R U P T M A S K0 3 3 C0 3 3 C0 3 3 C

E I N T E R R U P T0 0 0 9 0 3 3 CI N T E R R U P T0 0 1 00 0 1 10 0 1 20 0 1 30 0 1 4F E 0 0 1 50 0 1 60 0 1 70 0 1 80 0 1 90 0 2 00 0 2 1F O 0 0 2 20 0 2 3I 0 0 2 40 0 2 5

0 3 3 C0 3 3 C0 3 3 C0 3 3 C0 3 3 C

0 3 3 C0 3 3 D0 3 3 F0 3 4 20 3 4 40 3 4 70 3 4 9

7 A 8 A 8 A 8

5 1 0 1 F 1

I N T E R R U P T0 3 4 C0 3 4 F0 3 5 10 3 5 4

R A S T E R0 0 2 60 0 2 70 0 2 8

0 3 5 60 3 5 90 3 5 A

A 2

8 A

8 5 6

1 7

1 8

1

0

0

D

D

D

D

L A B E L

I R Q O L DI R Q V E CR A S T E RI R Q R E G

M A S K -

B O R D E RC O L O R

I C

R E T I R QL I N E 1L . T N E 2C O L O R 1C 0 L 0 R 2

S E T U P

O P

E Q E Q E Q E Q

E Q

E Q E Q

E Q

E Q

E Q E Q E Q E Q O R

S E L D S T L D S T L D S T

L D A N S T L D

S T C L R T

O P E R A N D

* E A 3 1$ 3 1 4* D 0 1 2* D 0 1 9

* D 0 1 A

* D 0 2 0* D 0 2 i* D C O D$ F E B C

* F * F $ F * F 8 2

4 K I R Q N E WI R Q V E C# > I R Q N E WI R Q V E C + 1L I N E 1R A S T E RR A S T E R - 1# * 7 FR A S T E R - 1# * 8 1

M A S K

C O M M E N T S

R A S T E R L I N EF L A G F O R V I D

V I D E O C O N T R O

B O R D E R C O L O RB A C K G R O U N DF L A G F O R T I M

; R E T U R N F R O M

; C A S S E T T E B U

R A S T E R L I N E

C L E A R H I G H

P E R M I T I R

3

Page 42: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 42/290

T r i c k s f T i p s

0 0 2 9 0 3 5 B0 0 3 0 0 3 5 B A 1 D I R Q N E W L D A I R Q R E G0 0 3 1 0 3 5 E 8 1 D S T A I R Q R E GU P F L A G0 0 3 2 0 3 6 1 2 0 A N # 0 0 3 3 0 3 6 3 D O 0 7 B N E S C R E E N

R A S T E R L I N E ?0 0 3 4 0 3 6 5 A D O D D C L D I C U P T F L A G0 0 3 5 0 3 6 8 5 C L

I N T E R R U P T0 0 3 6 0 3 6 9 4 3 E J M P I R Q O L D0 0 3 7 0 3 6 C0 0 3 8 0 3 6 C A 1 D S C R E E N L D R A S T E RL I N E0 0 3 9 0 3 6 F C 5 F C C M L I N E 20 0 4 0 0 3 7 1 B O O D B C S E C O N D

O E Q U A L S E C O N D V A L U E ?0 0 4 1 0 3 7 3 A 5 F D L D A C O L O R 10 0 4 2 0 3 7 5 8 2 D O S T A B O R D E R0 0 4 3 0 3 7 8 8 2 D S T C O L O R0 0 4 4 0 3 7 B A 5 F C L D A L I N E 2P A 2 N L I N E0 0 4 5 0 3 7 D 4 C 8 A 0 J M E X I T0 0 4 6 0 3 8 0 A F S E C O N D L D C 0 L 0 R 20 0 4 7 0 3 8 2 8 2 0 D O S T B O R D E R0 0 4 8 0 3 8 5 B 2 D O S T A C O L O R0 0 4 9 0 3 8 8 A 5 F B L D L I N E 1P 0 0 5 0 0 3 8 A 8 1 D E X I T0 0 5 1 0 3 8 D 4 C B C F E

A S S E M B L Y C O M P L E T E .

S T R A S T E RJ M R E T I R Q

C L E A R I N T E R R

I N T E R R U P T B

C L E A R I N T E R RA L L O W R A S T E R

R E A D R A S T E R

G R E A T E R T H A N

; S E T C O L O RN E X T I N T E R R U

S E C O L O RN E X T I N T E R R U

; A L I N E

1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0

F O R E A DD A T AD A T AD A T AD A T AD A T AD A T AD A T AI F P R I N T

8 2 T 9 1 P O K E I , S = S + X N E X T

1 2 0 , 1 6 9 , 9 1 , 1 4 1 , 2 0 3 , 1 6 9 , 3 , 1 4 1 , 2 1 3 , 1 6 52 5 1 , 1 4 1 , 1 8 , 2 0 8 , 1 7 3 , 1 7 , 2 0 8 , 4 1 , 1 2 7 , 1 4 1 , 1 7 , 2 0 81 6 9 , 1 2 9 , 1 4 1 , 2 6 , 2 0 8 , 8 8 9 6 , 1 7 3 , 2 5 , 2 0 8 , 1 4 1 , 2 2 0 8 , 4 1 1 , 2 0 8 , 7 , 1 7 3 , 1 3 , 2 2 0 , 8 8 7 6 4 9 , 2 3 41 7 3 , 1 8 , 2 0 8 , 1 9 7 , 2 5 2 , 1 7 6 , 1 3 , 1 6 5 , 2 5 3 , 1 4 1 , 3 2 , 2 0 81 4 1 . , 3 3 , 2 0 8 , 1 6 5 , 2 5 2 , 7 6 , 1 3 8 , 3 , 1 6 5 , 2 5 4 , 1 4 1 , 3 2 0 8 , 1 4 1 , 3 3 , 2 0 8 , 1 6 5 , 2 5 1 , 1 4 1 , 1 8 , 2 0 9 , 7 6 , 1 8 8 , 2 5 4< 1 0 6 7 8 T H E N P R I N T " E R R O R I D A T A ! ! " E N

" O K "

3

Page 43: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 43/290

T r i c k s T i p s

A a e x a m p l e , w e h a v e d e v e l o p e d p r o g r a m w h i c h a l l o w sy o t d i s p l a y o n p o r t i o n o t h s c r e e n w i t h d i f f e r e n tb a c k g r o u n d c o l o r . T h i s a l l o w s y o t e m p h a s i z e o n o m o r el i n e s o t h s c r e e n . I o r d e r t k e e p t h p r o g r a m a g e n e r a la p o s s i b l e , i a l l o w s y o t s e l e c t t h c o l o r o f t h ee m p h a s i z e d a r e a a w e l l a t h b a c k g r o u n d c o l o r o t h e r e s to f t h e s c r e e n w i t h P O K E c o m m a n d s . T h e r a s t e r l i n e a w h i c ht h s w i t c h t t h s e c o n d b a c k g r o u n d c o l o r o c c u r s c a b s e i t h s a m e m a n n e r . T h i s a l s o a p p l i e s t t h n u m b e r o t h r a s t e r l i n e a w h i c h t h s w i t c h b a c k t t h f i r s t b a c k g r o u n dc o l o r i m a d e .

T h i s p r o g r a m a l s o a l l o w s y o u t m o v e c o l o r e d l i n ew i t h w i d t h o s t a n d a r d s c r e e n l i n e ( r a s t e r l i n e s ) o nt h s c r e e n b p r e s s i n g t h c u r s o r - u p a n c u r s o r - d o w n k e y s .T h f u n c t i o n k e y s c a b u s t c h a n g e t h c o l o r o t h l i n ea n t h r e m a i n i n g b a c k g r o u n d .

1 0 L I = 2 5 1 :L 2 = L i + i :C l " = L 2 * l :C 2 - C 1 + 1

1 1 L = 5 0 :S Y 8 2 8 :R E I N I T 1 A L I Z 1 N T E R R U P T S

1 2 P O K E L l . L :P O K E L 2 , L + 8 :P O K E C 1 9 6 :P O K E C 2 , 8

1 5 G E M > I A * = I l nT H E N I S

. 1 . 6 0 I A * = C H R * ( 1 7 >T H E N G O S U B 2 0

1 7 I A * = C H R * < 1 4 5 )T H E N G O S U B 3 0 0

1 8 I A * - C H R * < 1 3 3 )T H E N G O S U B 4 0

1 9 I A * = C H R * < 1 3 4 )T H E N G G S U B 5 0

1 9 G O T O 1 5

3 5

Page 44: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 44/290

T r i c k s f T i p s

2 0 I L < 2 4 0T H E N F O R 1 = T 7

L - L + l :P O K E L 1 « L :P O K E L 2 « L + B :

N E X T2 1 R E T U R N3 0 I L > 5 0

T H E N F O 1 * T 7 L « L - i :P O K E L 1 , L :P O K E L 2 j , L + 8 ;

N E X T3 1 R E T U R N4 0 0 P O K E C . I . , P E E K < C ) + A N I S

R E T U R N

5 0 P O K E C 2 , P E E K ( C 2 > + 1 A N 1 5 R E T U R N

Y o c a c h a n g e t h p r o g r a m t s u i t y o u r o w p u r p o s e s b yc h a n g i n g t h r a s t e r l i n 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 2 5 t h r o u g h 2 5 4 . T h i s a l l o w s y o t c h a n g e t h e p o i n t a w h i c ht h s w i t c h t t h s e c o n d c o l o r o c c u r s a n t h r a s t e r l i n e a w h i c h t h s w i t c h i m a d e b a c k t t h o r i g i n a l c o l o r( l o c a t i o n s 2 5 a n 2 5 2 , r e s p e c t i v e l y ) . T h e n e x t t w oa d d r e s s e s , 2 5 a n 2 5 4 , c o n t a i n t h e c o l o r c o d e s o t h e f i r s ta n s e c o n d c h a r a c t e r s .

R a s t e r l i n e 5 0 c o r r e s p o n d s t o t h e u p p e r s c r e e n b o r d e r( t h e p o i n t w h e r e t h b o r d e r b e g i n s ) , w h i l e t h b e g i n n i n g o t h l o w e r b o r d e r c o r r e s p o n d s t r a s t e r l i n e 2 5 0 . s c r e e nl i n e i d i v i d e d i n t o r a s t e r l i n e s . Y o c a a l s o p l a c e t h b o r d e r b e t w e e n t h t w d i f f e r e n t c o l o r s i t h m i d d l e o s c r e e n l i n e .

3

Page 45: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 45/290

T r i c k s & T i p s

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

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

W i t h t h i s t e c h n i q u e , y o u c a a l s o o b t a i n e f f e c t s w h i c ha r e n o t o t h e r w i s e p o s s i b l e w i t h t h C o m m o d o r e 6 4 F o e x a m p l e , t h r a s t e r i n t e r r u p t m a k e s i p o s s i b l e t d i s p l a ym o r e t h a n s p r i t e s a o n t i m e . Y o c a d i s p l a y e i g h ts p r i t e s i t h u p p e r h a l f o t h s c r e e n . W h e n c e r t a i nr a s t e r l i n e i r e a c h e d , y o u s i m p l y r e s e t t h e s p r i t e p o i n t e r sa n c o o r d i n a t e s a n y o c a d i s p l a y e i g h t m o r e s p r i t e s i t h l o w e r h a l f o f t h e s c r e e n . N a t u r a l l y , y o c a a l s o d i v i d et h s c r e e n i n t o m o r e t h a n t w o p a r t s .

3

Page 46: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 46/290

T r i c k s T i p s

2 . S m o o t h s c r o l l i n g

S c r o l l i n g i t h t e r m g i v e n t t h a c t i o n t h s c r e e np e r f o r m s w h e n a l l o f t h e i n f o r m a t i o n o i i m o v e d i o n d i r e c t i o n ( g e n e r a l l y u p ) . W h e n t h e s c r e e n s c r o l l s u p l i n ei l e f t b l a n k a t h b o t t o m s t h a t m o r e i n f o r m a t i o n c a n b ep r i n t e d .

B " s m o o t h " s c r o l l i n g w m e a n t h a b i l i t y t d i s p l a yn e l i n e o t h s c r e e n g r a d u a l l y w h i l e t h o l l i n eg r a d u a l l y d i s a p p e a r s . T h v i d e o c o n t r o l l e r a l l o w s u t h i sp o s s i b i l i t y u s i n g r e g i s t e r 1 7 T h e t h r e e l e a s t - s i g n i f i c a n tb i t s a l l o w t h s c r e e n t s c r o l l u t e i g h t r a s t e r l i n e s a

t i m e , w h i c h c o r r e s p o n d s e x a c t l y t s c r e e n l i n e . I o r d e rt d i s p l a y n e l i n e o t h s c r e e n , w e c a n t e l l t h v i d e oc o n t r o l l e r t d i s p l a y o n l y 2 l i n e s . T h i s i t h c a s e w h e nb i o r e g i s t e r 1 7 i s c l e a r e d t o z e r o .

F i r s t w s w i t c h t h s c r e e n o v e r t 2 l i n e s a n t h e np o s i t i o n t h e r e s t o f t h e s c r e e n c o n t e n t s s t h a t t h e u p p e r2 l i n e s w i l l b d i s p l a y e d . N o w w c a w r i t e s o m e t h i n g t t h i n v i s i b l e 2 5 t h l i n e a n d s h i f t t h v i s i b l e p o r t i o n o f t h es c r e e n u r a s t e r l i n e s s c r e e n l i n e . T h i s c a u s e s t h t o l i n e t d i s a p p e a r .

I a d d i t i o n t s c r o l l i n g u ( o d o w n ) , t h e v i d e oc o n t r o l l e r i a b l e t s m o o t h - s c r o l l h o r i z o n t a l l y , t t h r i g h t o l e f t . T h e t h r e e l e a s t - s i g n i f i c a n t b i t s o r e g i s t e r2 a p p l y t t h c o l u m n - w i s e s h i f t i n g , w h i l e b i f o r c e s t h c o n t r o l l e r t d i s p l a y i 3 c o l u m n s .

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

3

Page 47: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 47/290

T r i c k s & T i p s

2 F O J = T . 1 0 0 :N E X T

1 0 V I D E 0 = 5 3 2 4 81 1 L I N E = V I D E 0 + 1 71 1 X * = C H R $ ( 1 9 > :

F O 1 = T 2 4 X * = X $ + C H R * < 1 7 > :

N E X T1 2 P O K E L I N E , P E E K ( L I N E ) A N D N O T1 3 P O K E L I N E , P E E K ( L I N E ) A N D 2 4 8 O 1 4 N « N + l :

A * = " L I N E " + S T R * ( N ) . "G O S U B 2 0 0 :G O T O 1 4

2 0 P R I N TP R I N T X * A * ;

2 1 F O 1 = T S T E P - 2 2 P O K E L I N E , P E E K ( L I N E ) A N D 2 4 8 O 2 3 0 F O R J = T 2 5 0 :

N E X T2 4 0 N E X T

R E T U R N

1 1 s t r i n g i d e f i n e d c o n s i s t i n g o f o n e " c u r s o r -h o n e " a n d 2 4 " c u r s o r - d o w n " c h a r a c t e r s f o p o s i t i o n i n g t h c u r s o r i t h 2 5 t h l i n e .

1 2 0 B i t i r e g i s t e r 1 o t h v i d e o c o n t r o l l e r i e r a s e d , s w i t c h i n g t h d i s p l a y t 2 l i n e s .

1 3 B i t s t h r o u g h a r s e t . T h i s d i s p l a y s t h u p p e r2 4 l i n e s o f t h e s c r e e n w h i l e t h 2 5 t h r e m a i n si n v i s i b l e a t h e l o w e r s c r e e n b o r d e r .

1 4 T h c o u n t e r i i n c r e m e n t e d . T h e t e x t f o r t h el i n e t b p r i n t e d i p l a c e d i A f o r t h e

3

Page 48: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 48/290

T r i c k s f T i p s

s u b r o u t i n e a 2 0 0 , a n d t h i s s u b r o u t i n e i c a l l e d .2 0 T h s c r e e n i s h i f t e d u o n l i n e b t h P R I N T

c o m m a n d . T h e t e x t i t h e n p r i n t e d o t h l a s tl i n e .

2 1 0 - 2 4 0 T h i s l o o p s h i f t s t h s c r e e n u r a s t e r l i n e s . T h d e l a y l o o p c o n t r o l s r a t e a w h i c h t h s c r o l l i n gw i l l o c c u r .

4

Page 49: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 49/290

Page 50: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 50/290

T r i c k s & T i p s

C o 1 R o

D E R E T U R N C U R R I G H T F

P O U N DA R R O W

F F

H O N E S H I F T R I G H TC T R L S P A C E C

F C U R D O W NS H I F T L

S T O P

T h e f i r s t a s s i g n m e n t t a b l e g i v e s t h A S C I I c o d e w h e nt h k e i p r e s s e d a l o n e . T h s e c o n d t a b l e c o n t a i n s t h c o d e s f o w h e n t h k e i p r e s s e d a l o n g w i t h t h S H I F T k e y ,t h t h i r d t a b l e f o w h e n t h C o m m o d o r e k e i p r e s s e d , a n dt h f o u r t h a n d f i n a l t a b l e i f o r t h e c o n t r o l k e y . A e n t r yo $ F F = 2 5 5 i t h i s t a b l e m a r k s a i l l e g a l e n t r y . T h e k e y sS H I F T , C O M M O D O R E , a n C T R L a r h a n d l e d d i f f e r e n t l y ; t h c o r r e s p o n d i n g e n t r i e s i t h f i r s t t a b l e a r 1 2 a n 4 T h i s s t a t u s i s a v e d i $ 2 8 D = 6 5 3 . B i t s 0 1 a n c o r r e s p o n d t t h e s e t h r e e k e y s .

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

t a b l e i s t o r e d i R O M , i i n o p o s s i b l e t c h a n g e i d i r e c t l y . T h C o m m o d o r e 6 h a R A a w e l l a R O a v a i l a b l et i i t h s a m e a d d r e s s r a n g e , h o w e v e r , a l l o w i n g t h k e r n a l t b c o p i e d t t h " u n d e r l y i n g " R A M a n t h e r ec h a n g e d . T h i s c a n b e d o n e w i t h s m a l l B A S I C p r o g r a m . A t h s a m e t i m e , B A S I C i t s e l f m u s t a l s o b c o p i e d i n t o t h u n d e r l y i n g R A M .

4

Page 51: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 51/290

Page 52: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 52/290

Page 53: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 53/290

T r i c k s & T i p s

C h a p t e r 3 E a s y D a t a B n t r y

3 . C u r s o r p o s i t i o n i n g a n d d e t e r m i n i n g c u r s o r p o s i t i o n

F o e a s y i n p u t a n d o u t p u t o n t h e s c r e e n , i t i s v e r yu s e f u l t b a b l e t s e t h c u r s o r d i r e c t l y t a n d e s i r e ds p o t o n t h e d i s p l a y . T h e C o m m o d o r e 6 h a c o m m a n d f o p o s i t i o n i n g t h c u r s o r o l i n e , t h e T A B c o m m a n d a n t h P O f u n c t i o n f o d e t e r m i n i n g t h c o l u m n , b u n c o m m a n d s f o m o v i n g t h c u r s o r d i r e c t l y t a n s p o t o t h s c r e e n a n d i i o n l y p o s s i b l e t m o v e f o r w a r d w i t h t h T A c o m m a n d .

T h k e r n a l a l r e a d y c o n t a i n s r o u t i n e s f o a r b i t r a r i l yp o s i t i o n i n g t h c u r s o r , h o w e v e r . T w o m e m o r y l o c a t i o n s i p a g e z e r o a r r e s e r v e d f o t h r o w a n d c o l u m n o t h c u r s o rp o s i t i o n . B r e a d i n g t h e s e v a l u e s w i t h P E E K w e c a n d e t e r m i n et h c u r s o r p o s i t i o n a a n t i m e .

1 0 P R I N T " T H E C U R S O R I S I N L I N E " P E B K ( 2 1 4 ) " C O L U M N " P E E K ( 2 1 1 )

I w w a n t t o s e t t h e c u r s o r , i t i s n o e n o u g h t j u s tP O K E t h a p p r o p r i a t e v a l u e s i a d d r e s s e s 2 1 a n 2 1 1 . T h k e r n a l m u s t s t i l l c a l c u l a t e t h r e q u i r e d p o i n t e r f o s c r e e na n d c o l o r R A M b a s e d o t h c u r s o r p o s i t i o n . T h e r e i

r o u t i n e i t h k e r n a l t h a t w i l l d t h i s f o r u s

4

Page 54: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 54/290

T r i c k s f T i p s

1 0 R E S E C U R S O R1 1 I N P U T f l R O W f l ; R1 2 I N P U T " C O L U M N " ; C1 3 P O K E 2 1 4 , R1 4 P O K E 2 1 1 , C1 5 S Y 5 8 6 4 01 6 P R I N T " T E S T " ;

C a l l i n g 5 8 6 4 0 w i t h S Y 5 8 6 4 0 s e t s t h c u r s o r a t h p o s i t i o n d e t e r m i n e d b l o c a t i o n s 2 1 a n 2 1 1 .

T h c o m b i n a t i o n o t h e s e t w p r o c e d u r e s g i v e s u n e c a p a b i l i t i e s f o p r o g r a m m i n g . Y o c a p r o v i d e s t a t u s l i n e si y o u r p r o g r a m s , f o i n s t a n c e , i w h i c h i n f o r m a t i o n c a n b eg i v e n t t h u s e r f r o m t i m e t t i m e . S a n o t d i s t u r bt h e r e s t o t h s c r e e n , s a v e t h c u r r e n t p o s i t i o n b e f o r em o v i n g t h c u r s o r t t h s t a t u s l i n e . T h e n p r i n t t h m e s s a g eo t h s t a t u s l i n e , s e t h c u r s o r p o s i t i o n b a c k t t h o r i g i n a l v a l u e , a n d c o n t i n u e w i t h t h e x e c u t i o n o f t h ep r o g r a m . p r o g r a m f r a g m e n t m i g h t l o o k l i k e t h i s :

3 0 R = P E E K ( 2 1 4 ) : R E M R O W3 1 C = P E E K ( 2 1 1 ) : R E C O L U M N3 2 P O K E 2 1 4 , 0 : R E C U R S O R I R O 3 3 P O K E 2 1 1 , 1 0 : R E C U R S O R I C O L U M N 1 3 3 S Y 5 8 6 4 03 4 P R I N T " P L E A S E I N S E R T D I S K "3 5 P O K E 2 1 4 , R : R E M R E S T O R E R O 3 6 P O K E 2 1 1 , C : R E C O L U M N3 7 0 S Y S 5 8 6 4 0

T h e r o w s a r n u m b e r e d f r o m t 2 a n t h c o l u m n s f r o mt 3 9

4

Page 55: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 55/290

T r i c k s f T i p s

3 . T u r n i n g t h c u r s o r o a n d o f f

T h c u r s o r m a r k i n g t h c u r r e n t s c r e e n p o s i t i o n o t h C o m m o d o r e 6 4 i s a u t o m a t i c a l l y t u r n e d o w h e n t h c o m p u t e r i e x p e c t i n g i n p u t . T h i s i t h c a s e w h e n a I N P U T c o m m a n d i e x e c u t e d , f o r e x a m p l e . W h e n y o u p e r f o r m i n p u t w i t h G E T ,h o w e v e r , n c u r s o r a p p e a r s . T h e r e a r t i m e s h o w e v e r w h e n i w o u l d b n i c e t h a v e t h c u r s o r f l a s h i n g w h e n u s i n g G E T s t h a t t h u s e r i a w a r e t h a t t h p r o g r a m i e x p e c t i n g i n p u t .

T h C o m m o d o r e 6 h a m e m o r y l o c a t i o n ( 2 0 4 ) t h a tf u n c t i o n s a f l a g f o r t h e c u r s o r . I t h i s l o c a t i o nc o n t a i n s t h v a l u e ( o a n o t h e r v a l u e n o e q u a l t z e r o ) ,t h c o m p u t e r k n o w s t h a t t h c u r s o r i t u r n e d o f a n j u m pi m a d e ( d u r i n g t h i n t e r r u p t ) t t h c o r r e s p o n d i n g l o c a t i o ni t h k e r n a l . v a l u e o f z e r o t e l l s t h c o m p u t e r t f l a s ht h c u r s o r .

W c a m a k e u s e o f t h i s f a c t w h e n w e w a n t t t u r n t h c u r s o r o a n d o f f u n d e r p r o g r a m c o n t r o l . W c a n , f o e x a m p l e , t u r n t h e c u r s o r o b e f o r e G E T c o m m a n d , t h e n w a i tf o k e p r e s s a n d t u r n t h c u r s o r o f f .

1 0 P O K E 2 0 4 , 0 R E C U R S O R O 1 1 G E A $ : I F A M T H E N 1 1 0 : R E W A I T F O R K E Y P R E S S1 2 P O K E 2 0 4 , 1 : R E C U R S O R O F 1 3 P R I N T A $

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

4

Page 56: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 56/290

Page 57: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 57/290

T r i c k s T i p s

3 . R e p e a t f u n c t i o n f o r a l l k e y s

Y o h a v e n d o u b t n o t i c e d w h i l e w o r k i n g w i t h y o u rC o m m o d o r e 6 t h a t t h c u r s o r c o n t r o l k e y s a n d t h s p a c e b a r e p e a t w h e n h e l d d o w n . T h i s i e s p e c i a l l y u s e f u l f o p o s i t i o n i n g t h c u r s o r a n e d i t i n g p r o g r a m s . W i t h j u s ts i m p l e P O K E c o m m a n d , t h r e p e a t f u n c t i o n c a b e x t e n d e d t a l k e y s . T h i s i p a r t i c u l a r l y h e l p f u l f o s u c h t h i n g s a w o r d p r o c e s s i n g . T h s w i t c h c a b m a d e i t h d i r e c t m o d eo r i n p r o g r a m a n c a a l s o b s w i t c h e b a c k b y e i t h e r o t h e s e m e t h o d s . T h a d d r e s s u s e d t m a k e t h s w i t c h i 6 5 0 .v a l u e o m e a n s t h a t o n l y t h c u r s o r k e y s a r e a u t o m a t i c a l l yr e p e a t e d . I y o u w r i t e t h v a l u e 1 2 i n t o m e m o r y l o c a t i o n6 5 w i t h P O K E , a l k e y s w i l l r e p e a t . I t i s a l s o p o s s i b l e t t u r n t h e r e p e a t f u n c t i o n o f f e n t i r e l y b p l a c i n g t h v a l u e6 i a d d r e s s 6 5 0 .

1 0 P O K E 6 5 0 , 1 2 8 : R E R E P E A T F O A L K E Y S

2 0 P O K E 6 5 0 , 0 R E R E P E A T F O C U R S O R O N L Y

3 0 P O K E 6 5 0 , 6 4 R E T U R N R E P E A T O F F

T h r e p e a t d e l a y a n d r e p e a t r a t e v a l u e s a r f o u n d i l o c a t i o n s 6 5 a n 6 5 2 , r e s p e c t i v e l y . T h e s e v a l u e s a r e a l w a y sr e n e w e d b y t h e k e r n a l , s c h a n g e s a r o n l y p o s s i b l e b m o v i n g t h k e r n a l t R A ( s e e s e c t i o n s 2 . a n 4 . 2 ) .

4

Page 58: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 58/290

T r i c k s T i p s

3 . 4 T h e W A I T c o m a a n d : W a i t i n g f o k e y p r e s s

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

W A I T A ,

T h i s c o m m a n d g e t s 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 A ( a si n P E E K c o m m a n d ) , a n d A N D s t h i s v a l u e w i t h B I t h r e s u l t i n o z e r o , p r o g r a m e x e c u t i o n c o n t i n u e s . I t i sa s s u m e d i t h i s d e s c r i p t i o n t h a t t h e v a l u e o A i e i t h e rt h a d d r e s s o a I / p o r t o s o m e o t h e r p e r i p h e r a l , o t h a tt h v a l u e o A i c h a n g e d b a i n t e r r u p t . O t h e r w i s e t h c o m m a n d w i l l e i t h e r w a i t f o r e v e r o n o a a l l .

T h e m o s t i n t e r e s t i n g u s i w a i t i n g f o c e r t a i n k e p r e s s . M e m o r y l o c a t i o n 6 5 3 , f o e x a m p l e , c o n t a i n si n f o r m a t i o n a b o u t w h e t h e r o r n o t t h e S H I F T , C O M M O D O R E , o C T R L k e y s h a v e b e e n p r e s s e d . Y o u c a n u s e t h e W A I T c o m m a n d t w a i t u n t i l o n e o f t h e s e k e y s h a b e e n p r e s s e d .

1 0 P R I N T " P R E S S T H C O N T R O L K E Y "1 1 W A I T 6 5 3 , 4 : R E W A I T F O C T R L1 2 . .

I l i n e 1 1 t h p r o g r a m w a i t s u n t i l t h c o n t r o l k e i p r e s s e d . Y o c a n w a i t f o t h s h i f t a n d C o m m o d o r e k e y s w i t ht h f o l l o w i n g W A I T c o m m a n d s :

W A I T 6 5 3 , 1 : R E M W A I T F O S H I F T

W A I T 6 5 3 , 2 : R E W A I T F O C O M M O D O R E K E

5

Page 59: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 59/290

Page 60: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 60/290

T r i c k s T i p s

3 . A s s i g n i n g t h f u n c t i o n k e y s

T h C o m m o d o r e 6 h a s , i a d d i t i o n t i t a l p h a n u m e r i ck e y s , f o u r f u n c t i o n k e y s , e a c h o w h i c h h a s t w o f u n c t i o n s .T h e s e k e y s c a n b e u s e d f o m e n u c o n t r o l , f o i n s t a n c e , i o r d e r t s e l e c t c e r t a i n p a r t o p r o g r a m . T h e s e k e y s c a b p o l l e d w i t h G E T a n d t h e n e x e c u t i o n c a n b e t r a n s f e r r e dd e p e n d i n g o t h k e p r e s s e d . T h f u n c t i o n k e y s h a v e t h f o l l o w i n g A S C I I c o d e s :

f l = > 1 3 f = 1 3 f = 1 3 f = 1 3

P r e s s i n g t h s h i f t k e y a t h e s a m e t i m e i n c r e m e n t s t h A S C I Iv a l u e b y f o u r :

f = 1 3 f = 1 3 f = 1 3 f = 1 4

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

1 0 G E A I A $ = " " T H E N 1 0 1 1 A S C ( A $ )1 2 I F 1 3 T H E N 1 1 0 0 R E F 1 3 0 I F A 1 3 T H E N 1 2 0 0 R E F 1 4 I F 1 3 T H E N 1 3 0 0 R E F 1 5 I 1 3 T H E N 1 4 0 0 R E F 1 6 I F 1 3 T H E N 1 5 0 0 R E F

5

Page 61: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 61/290

T r i c k s T i p s

1 7 I F 1 3 T H E N 1 6 0 0 R E F 1 8 I F 1 3 T H E N 1 7 0 0 R E F 1 9 I F 1 4 T H E N 1 8 0 0 R E F 2 0 G O T O 1 0

C o n t r o l i p a s s e d t t h a p p r o p r i a t e l i n e b a s e d o t h f u n c t i o n k e t h a t w a s p r e s s e d . T h i s c a n b a c c o m p l i s h e d i m o r e e l e g a n t f a s h i o n w i t h a O . . G O T O s t a t e m e n t .

1 0 G E A I A $ = " " T H E N 1 0 1 1 0 A A S ( A $ ) I A < 1 3 3 O A > 1 4 0 T H E N 1 0 1 2 O A - 1 3 2 G O T O 1 1 0 0 , 1 2 0 0 , 1 3 0 0 , 1 4 0 0 , 1 5 0 0 , 1 6 0 0 , 1 7 0 0 , 1 8 0 0

T h i s t e c h n i q u e c a b u s e d w i t h i n p r o g r a m . W w o u l dn o l i k e t p r e s e n t t y o p r o g r a m w h i c h a l l o w s s t r i n go c h a r a c t e r s t b a s s i g n e d t e a c h f u n c t i o n k e y a n w h i c hw i l l d i s p l a y t h i s s t r i n g o t h s c r e e n w h e n e v e r t h f u n c t i o nk e i p r e s s e d . T h e f u n c t i o n k e y s c o u l d b a s s i g n e d w i t hB A S I C c o m m a n d w o r d s , f o i n s t a n c e . I t i s a l s o p o s s i b l e t a s s i g n w o r d f o l l o w e d b R E T U R N t f u n c t i o n k e y . T h i sa l l o w s t h c o m m a n d t b e x e c u t e d d i r e c t l y . I f f o e x a m p l e ,t h s t r i n g " L I S T " , f o l l o w e d b t h c o d e f o r R E T U R N , i a s s i g n e d t t h F k e y , t h e n t h p r o g r a m c u r r e n t l y i m e m o r yw i l l b l i s t e d w h e n e v e r t h F k e i p r e s s e d . T h m a x i m u ml e n g t h o f t h e s t r i n g a s s i g n e d t o f u n c t i o n k e i s 1 0c h a r a c t e r s , t h l e n g t h o f t h e k e y b o a r d i n p u t b u f f e r .

W i t h o u r p r o g r a m , y o u c a a s s i g n n o j u s t e i g h td i f f e r e n t s t r i n g s t t h f u n c t i o n k e y s ( d u a l a s s i g n m e n t —w i t h o w i t h o u t t h e s h i f t k e y ) , b u t s i x t e e n . T h e C o m m o d o r ea n c o n t r o l k e y s a r u s e d a l o n g w i t h t h s h i f t k e t s e l e c tt h d e s i r e d f u n c t i o n f r o m a m o n g t h e f o u r k e y s . W h a v ec h o s e n t h f o l l o w i n g a s s i g n m e n t s f o t h k e y s :

5

Page 62: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 62/290

T r i c k s T i p s

f f f f f f f f f f l f l f l f l f l f l f l

f f f f f f f f f f f f f f f f

p l u sp l u sp l u sp l u sp l u sp l u sp l u sp l u sp l u sp l u sp l u sp l u s

S H I F TS H I F TS H I F TS H I F TC O M M O D O R EC O M M O D O R EC O M M O D O R EC O M M O D O R EC T R LC T R LC T R LC T R L

H e r e i t h m a c h i n e l a n g u a g e p r o g r a m w h i c h a l l o w s t h a s s i g n m e n t o f t h e f u n c t i o n k e y s . T h s t r i n g s w i l l b p l a c e di m e m o r y b B A S I C p r o g r a m .0 0 0 1 0 3 3 C ? F U N C T I O N K E

F O R C B M 6 0 0 0 2 0 3 3 C0 0 0 3 0 3 3 C0 0 0 4 0 3 3 C O R G 8 2 8 C A S S E T T E B U F E 0 0 0 5 0 3 3 C K E Y V E C E Q U * 2 8 F V E C T O R F O E Y B O A R D D E C O D I N G0 0 0 6 0 3 3 C K E Y P N T E Q $ F P O I N T E R T E C O D E R T A B L E0 0 0 7 0 3 3 C B U F F E R E Q $ 2 7 7 K E Y B O A R D B U F E 0 0 0 8 0 3 3 C N O K E Y S E Q U $ C 6 N U M B E R O F C HA R A C T E R S I K E Y B O A R D B U F F E R0 0 0 9 0 3 3 C S H I F T E Q U * 2 8 D ; F L A G F O S H F T / C B M / C T R L0 0 1 0 0 3 3 C K E Y N O E Q U * C B ; M A T R I X N U M B E

F O P R E S S E D K E 0 0 1 1 0 3 3 C L S T K E Y E Q U * C 5 N U M B E R O F L AS K E 0 0 1 2 0 3 3 C T E M P E Q U L S T K E Y

5

Page 63: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 63/290

Page 64: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 64/290

Page 65: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 65/290

Page 66: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 66/290

Page 67: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 67/290

T r i c k s f T i p s

i n t e n d e d .

P e r h a p s y o u o b j e c t , s a y i n g t h a t s u c h i n p u t e r r o r s a r t h e x c e p t i o n a n n o t t h e r u l e a n d t h a t g e t t i n g t h w r o n ga n s w e r n o a n t h e n i n o o m u c h c o n s e q u e n c e i p e r s o n a lc o m p u t i n g .

W a r o t h o p i n i o n , h o w e v e r , t h a t i s h o u l d b y o u rg o a l t p r o d u c e " b o m b - p r o o f " p r o g r a m s , t a k i n g i n t oc o n s i d e r a t i o n t h a t y o u m a h a v e t h o p p o r t u n i t y t w r i t ep r o g r a m s w h i c h a r n o j u s t f o y o u r o w u s e .

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

F i r s t , t h m e a n i n g s o t h v a r i a b l e s a n m e m o r yl o c a t i o n s u s e d i t h p r o g r a m a r e x p l a i n e d . T h f o l l o w i n gv a r i a b l e s m u s t b e i n i t i a l i z e d b e f o r e t h s u b r o u t i n e i c a l l e d :

M N = 0 P u r e l y n u m e r i c a l i n p u t i d e s i r e d .M N = 1 T h e i n p u t m a b a l p h a n u m e r i c .M L = 0 T h l e n g t h g i v e n i I i m a n d a t o r y .M L = 1 T h l e n g t h g i v e n i I i t h m a x i m u m .I M a n d a t o r y o m a x i m u m l e n g t h o f t h e i n p u t

F u r t h e r m o r e , t h r o u t i n e u s e s t h f o l l o w i n g v a r i a b l e s :C N u m b e r o v a l i d c h a r a c t e r s i I N C C u r r e n t c u r s o r c o l u m nC C u r r e n t c u r s o r l i n eC L e n g t h c r e a t e d b i n s e r t i n g a n i n p u t f i e l dM H i g h e s t c u r s o r c o l u m n d u r i n g i n p u t

5

Page 68: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 68/290

T r i c k s T i p s

G C o n t a i n s t h c h a r a c t e r f r o m t h e l a s t G E I N T h c o m p l e t e i n p u t i r e t u r n e d i t h i s v a r i a b l e

M e m o r y l o c a t i o n s u s e d :2 0 4 = 0 T u r n c u r s o r o 2 0 4 = 1 T u r n c u r s o r o f 2 0 C o u n t e r f o r t h e f l a s h f r e q u e n c y o t h c u r s o r2 0 7 = 0 C u r s o r i O F p h a s e2 0 7 = 1 C u r s o r i O p h a s e2 1 C u r s o r c o l u m n2 1 C u r s o r l i n e

O n a d d i t i o n a l p r e p a r a t i o n n e c e s s a r y f o u s i n g t h i sr o u t i n e i o p e n i n g t h s c r e e n w i t h O P E N 1 , 3 . T h i s i r e q u i r e d b e c a u s e t h c r e a t e d i n p u t i r e a d f r o m t h e s c r e e nb m e a n s o G E T # 1 i l i n e 3 5 6 8 0 .

N o t h i n d i v i d u a l p r o g r a m s t e p s :

3 5 0 2 0 T h e v a r i a b l e s a r i n i t i a l i z e d a n t h c u r s o rp o s i t i o n i s a v e d f o t h G E T # 1 i l i n e 3 5 6 8 0 .

3 5 0 6 0 c h a r a c t e r i r e a d f r o m t h k e y b o a r d .3 5 0 8 0 I t h i s c h a r a c t e r i R E T U R N , t h e i n p u t i

e n d e d d e p e n d i n g o t h l e n g t h a n t h v a l u e i M L

3 5 1 0 0 - 3 5 1 3 0 I t h D E L E T E k e w a u s e d , t h l e n g t h a n p o s i t i o n c o u n t e r s a r a c t u a l i z e d i t h e i n p u tf i e l d c o n t a i n s o n l y l e g a l c h a r a c t e r s ( C P = 0 ) o i i w a e n l a r g e d w i t h I N S E R T .

3 5 1 4 0 I N S E R T i o n l y e x e c u t e d i t h l e n g t h i I w i l ln o b e e x c e e d e d .

3 5 1 6 0 - 3 5 1 8 0 E n s u r e s t h a t t h e c u r s o r d o e s n o t l e a v e t h e i n p u tf i e l d w h e n C R S R R I G H T a n d L E F T a r e u s e d .

6

Page 69: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 69/290

T r i c k s T i p s

3 5 2 0 0 E n t r y p o i n t o t h d a t a f i l t e r d e p e n d i n g o N N 3 5 2 2 0 - 3 5 2 4 0 I t h c u r s o r i w i t h i n t h d a t a f i e l d a n

p u r e l y n u m e r i c a l v a l u e w i l l b e e n t e r e d , t h c h a r a c t e r s w i l l b e a c c e p t e d . T h e l e g a l r a n g e ,h e r e s e a v a l u e s 4 t h r o u g h 5 8 c a b c h a n g e da d e s i r e d .I o u e x a m p l e t h e s e v a l u e s f o r m t h b o r d e r s f o t h r e p r e s e n t a b l e d i g i t s 0 - 9 . Y o c a f i n d t h a p p r o p r i a t e v a l u e s f o r t h e b o r d e r o y o u rc h o o s i n g o p a g e 1 3 5 f f o f t h C o m m o d o r e 6 4 ' su s e r ' s g u i d e .F o r o u r e x a m p l e t h a t m e a n s t h a t 4 c o r r e s p o n d sw i t h t h c h a r a c t e r a n 5 s t a n d s f o t h c h a r a c t e r 9 A l c h a r a c t e r s i b e t w e e n ( 0 - 9 ) a r a l s o l e g a l .

3 5 3 0 0 - 3 5 3 8 0 H e r e t h s a m e t h i n g h a p p e n s , b u t h e l e g a lr a n g e i e x p a n d e d t i n c l u d e t h l e t t e r s o f t h ea l p h a b e t .

3 5 4 0 0 I t h i n p u t i n o l o n g e n o u g h ( a n d M L = 0 ) ,i n p u t w i l l n o b e n d e d .

3 5 6 0 0 - 3 5 6 9 0 T h i n p u t f i e l d i t a k e n f r o m t h s c r e e n a n d p u i n t o I N u n t i l e i t h e r t h l e n g t h g i v e n i I i r e a c h e d o n m o r e d a t a i f o u n d o t h e s c r e e n .B e f o r e t h i s c a n h a p p e n , t h c u r s o r i r e s e t t t h p o s i t i o n i h a a t h b e g i n n i n g o t h r o u t i n e s t h a t t h e G E T # 1 s t a r t s a t h b e g i n n i n g o t h f i e l d .

3 6 0 0 0 - 3 6 0 6 0 T h c u r s o r i t u r n e d o f f a n t h c h a r a c t e r i G i d i s p l a y e d o t h s c r e e n .

T h e l i n e n u m b e r i n g o t h r o u t i n e w a c h o s e na r b i t r a r i l y . T h r o u t i n e m a y s t a r t w i t h 1 0 0 0 , 5 0 0 0 0 , o s o m eo t h e r n u m b e r o y o u r o w c h o o s i n g . R e m e m b e r , h o w e v e r , t

6

Page 70: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 70/290

Page 71: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 71/290

T r i c k s & T i p s3 5 1 8 0 I G = 1 5 7 A N D P E E K ( 2 1 1 ) > C S

T H E N G O S U B 3 6 0 0 0 :G O T O 3 5 0 6 0 :R E C U R S O R L E F T

3 5 2 0 0 O M G O T O 3 5 3 0 0

3 5 2 2 0 I G > 4 7 A N D G < 5 8 A N D C C < I L A N D P E E K ( 2 1 1 ) < = C S + I L - 1T H E N C C = C C + l :

G O S U B 3 6 0 0 0 :G O T O 3 5 3 6 0

3 5 2 3 0 G O T O 3 5 3 6 03 5 2 4 0 I G > 4 7 A N D G < 5 8 A N D P E E K ( 2 1 1 ) < = C S + I L

T H E N G O S U B 3 6 0 0 0 :G O T O 3 5 3 6 0

3 5 3 0 0 I G < 4 8 O R ( G > 5 7 A N G < 6 5 ) O ( G > 9 0 A N G < 1 9 3 ) O G > 2 1 8T H E N 3 5 0 6 0

3 5 3 2 0 I C C < I L A N P E E K ( 2 1 1 ) < = C S + I L ~ 1H E C O C C + l :G O S U B 3 6 0 0 0 :

G O T O 3 5 3 6 03 5 3 4 0 I P E E K ( 2 1 1 K C S + I L

T H E N G O S U B 3 6 0 0 03 5 3 6 0 I C P > 0

T H E N C P = C P - 13 5 3 8 0 G O T O 3 5 0 6 03 5 4 0 0 I C C O I L

T H E N 3 5 0 6 03 5 6 0 0 P O K E 2 0 5 , 23 5 6 2 0 I P E E K ( 2 0 7 ) 0 0

T H E N 3 5 6 2 03 5 6 4 0 P O K E 2 0 4 , 13 5 6 6 0 P O K E 2 1 1 , C S :

P O K E 2 1 4 , C Z3 5 6 7 0 I C O

T H E N R E T U R N3 5 6 8 0 G E T # 1 , G * . "

I G $ = C H R $ < 1 3 )T H E N I N * = L E F T * ( I N * + "

R E T U R N

3 5 6 8 2 I N $ = I N $ + G *3 5 6 8 4 I L E N ( I N * X I L

T H E N 3 5 6 8 03 5 6 9 0 R E T U R N

3 6 0 0 0 P O K E 2 0 5 , 23 6 0 2 0 I P E E K < 2 0 7 ) 0 0

T H E N 3 6 0 2 03 6 0 4 0 P R I N T G * 5 :

I P E E K ( 2 1 1 ) > M ST H E N M S - P E E K ( 2 1 1 ) - C S

3 6 0 6 0 R E T U R N

1 1 I

6

Page 72: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 72/290

T r i c k s T i p s

H o d y o u s t h i s p r o g r a m ?S u p p o s e y o u w a n t t e n t e r a i t e m n u m b e r f o a

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

1 O P E N 1 , 1 0 I L = 6 : M N = 0 : M L = 01 1 P R I N T " P A R T N U M B E R " ; : G O S U B 3 5 0 0 01 2 I N = V A L ( I N $ )

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

A l o n g w i t h t h p r e v i o u s l y e n t e r e d i t e m n u m b e r y o u a l s on e e d t h d e s c r i p t i o n o f t h e p a r t . S i n c e y o u h a v e s e t u pf i l e w i t h r e c o r d s o p r e d e t e r m i n e d l e n g t h , t h i sd e s c r i p t i o n m a b e n o l o n g e r t h a n c e r t a i n v a l u e , s a 1 c h a r a c t e r s . T h i s i t h m a x i m u m l e n g t h ; i t i s n o o b l i g a t o r y .

6

Page 73: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 73/290

T r i c k s & T i p s

T h a p p r o p r i a t e p r o g r a m l i n e s l o o k l i k e t h i s :

2 0 I L = 1 0 : M N = l : M L = l2 1 P R I N T " D E S C R I P T I O N " ; : G O S U B 3 5 0 0 0

T h d e s c r i p t i o n i n o w c o n t a i n e d i I N a n d , i f l e s st h a n 1 c h a r a c t e r s l o n g , p a d d e d w i t h b l a n k s a t h e n d .

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

3 0 I L = 8 : M N = 0 : M L = l3 1 P R I N T M P R I C E " ; : G O S U B 3 5 0 0 03 2 I N = V A L ( I N $ )

T h e n u m b e r , c o n s i s t i n g o m a x i m u m o e i g h t d i g i t s , i n o i I a n y o c a p r o c e e d w i t h t h i n p u t o f t h q u a n t i t ya n s o n

W h o p e t h a t t h i s s m a l l r o u t i n e t a k e s c a r e o f t h ep r o b l e m s y o m a h a v e h a w i t h s y n t a c t i c a l l y i n c o r r e c t d a t ai n p u t . F e e l f r e e t m a k e u s o t h e s p e c i a l f e a t u r e s u s e d i t h s u b r o u t i n e i r e g a r d t t h c u r s o r p o s i t i o n i n g a n t h i n p u t f r o m t h s c r e e n ( G E T # 1 ) i y o u r o w p r o g r a m s .

6

Page 74: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 74/290

T r i c k s T i p s

3 . " m o u s e " f o t h C B 6

n e b u z z w o r d h a i n f i l t r a t e d t h w o r l d o p e r s o n a lc o m p u t e r s : t h " M O U S E "

W h a t i b e h i n d t h i s i n t r i g u i n g e x p r e s s i o n ?Y o u a r e p r o b a b l y a c q u a i n t e d w i t h d e v i c e s c a l l e d t r a c k

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

I c o n t r a s t t j o y s t i c k s w h o s e h a n d l e s c a b m o v e d i o n o o n l y e i g h t d i r e c t i o n s , t h t r a c k b a l l a l l o w s r o t a t i o ni a l d i r e c t i o n s s i n c e i e m p l o y s f r e e - m o v i n g b a l lw i t h o u t a x e s , w h o s e m o v e m e n t i c o n v e r t e d i n t o t w o a n g l e sf o t h a n Y a x e s . O v i d e o g a m e s t h i s b a l l i o p e r a t e dw i t h t h e p a l m .

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

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

H o d o e s o n m a k e s e r i o u s u s o m o u s e ?

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

6

Page 75: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 75/290

T r i c k s & T i p s

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

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

E x p e r t s i e r g o n o m i c s h a v e d i s c o v e r e d t h a t t h eo p e r a t i o n s i n v o l v e d i m a k i n g c h o i c e c a n b e a c c o m p l i s h e dm o r e c o m f o r t a b l y a n m o r e c e r t a i n l y w h e n o n d o e s n o h a v et s e a r c h f o r t h e a p p r o p r i a t e k e o t h k e y b o a r d b u r a t h e rw h e n o n i r e s t i n g c o m f o r t a b l y i a e a s y c h a i r . W i t h t h m o u s e , t h e m o v e m e n t s o f t h e c u r s o r o t h s c r e e n c o r r e s p o n dd i r e c t l y t t h o s e o t h d e v i c e o t h t a b l e . R e a c h i n g t h d e s i r e d f i e l d i s i g n a l e d b p r e s s i n g b u t t o n o t o o f t h em o u s e .

I o r d e r t g i v e y o t h o p p o r t u n i t y t e x p e r i m e n t w i t ht h i s c h a r m i n g l i t t l e a n i m a l w i t h o u t r e q u i r i n g t h p u r c h a s eo a e x p e n s i v e t r a c k b a l l , w e h a v e d e v e l o p e d t h f o l l o w i n gp r o g r a m w h i c h w o r k s w i t h t h c o n v e n t i o n a l j o y s t i c k i c o n t r o l p o r t o y o u r C o m m o d o r e 6 4

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

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

6

Page 76: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 76/290

Page 77: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 77/290

Page 78: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 78/290

T r i c k s & T i p s

5 0 2 0 - 5 1 4 0 T h c u r s o r i s a v e d a n t u r n e d o f f , s e t p o s i t i o n 0 a n d t u r n e d o a g a i n .

5 1 6 0 T h v a l u e o b t a i n e d f o r m t h j o y s t i c k o c o n t r o lp o r t i p u t i n t o J

5 1 7 0 D e l a y l o o p — m a k e s t h c u r s o r e a s i e r t c o n t r o l .5 1 8 0 - 5 3 4 0 T h c u r s o r i m o v e d a c c o r d i n g t t h p o s i t i o n o

t h j o y s t i c k .I t h j o y s t i c k b u t t o n w a p r e s s e d ( 5 2 6 0 ) , t h c h a r a c t e r u n d e r t h c u r s o r ( a 6 0 1 0 ) i p u i n t oA $

6 0 1 0 - 6 1 6 0 T h a r r a y A ( X , Y ) i a d d r e s s e d w i t h t h c u r s o rp o s i t i o n o t h j o y s t i c k a n t h r e s u l t i n g v a l u ei p l a c e d i A ( 6 0 6 0 ) .B e c a u s e t h C 6 h a d o u b l e - l i n e o r g a n i z a t i o n ,t h a t i s t h c o l u m n c o u n t e r c a g u t 8 p o s i t i o n s a l t h o u g h t h s c r e e n i o n l y 4 c o l u m n sw i d e , t h c o l u m n v a l u e i c o r r e c t e d f o p r o p e r l yi n d e x i n g t h a r r a y i l i n e 6 0 5 0 .

T h i s p r o g r a m i q u i t e s i m p l e t u s e . A f t e r t y p i n g R U N ,t h c u r s o r a p p e a r s 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 d i s p l a y * Y o u c a n m o v e i a b o u t w i t h j o y s t i c k p l u g g e d i n t oc o n t r o l p o r t 2 W h e n y o u c o m e t c h a r a c t e r t h a t y o w o u l dl i k e t p u i B $ s i m p l y p r e s s t h f i r e b u t t o n o t h j o y s t i c k t d s o A a c k n o w l e d g m e n t , t h c h o s e n c h a r a c t e ra p p e a r s s e v e r a l l i n e s d o w n . N o w y o u c a g o o n t o t h n e x tc h a r a c t e r .

A f t e r s e l e c t i n g R E T U R N , t h e l i n e i c o m p l e t e i B a n y o c a p r o c e s s i a d e s i r e d .

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

7

Page 79: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 79/290

T r i c k s & T i p s

T h p r o g r a m l i s t i n g :

D R = P E E K ( 5 6 3 2 2 )P O K E 5 6 3 2 2 , 2 2 4 :R 0 * = C H R * ( 1 8 )R F * = C H R * ( 1 4 6 )

P R I N T C H R * ( 1 4 7 ) :G O S U B 1 0 G O T O 6

1 P R I N T C H R * < 1 9 ) " 2 6 S "

2 P R I N T K " 3 P R I N T " M N O P Q R S T U V W X Y Z " 4 P R I N T 1 1 R O * " R E T l l R F * n I I R O * I I D E L " R F * " " R O * " F 1 " R F * U

0 * I I F 3 " R F * 1 1 1 I R 0 * l l F 5 " R F * S4 P R I N T " R Q * " F 7 " R F $ "5 R E T U R N6 D I A ( 4 5 4 0 )1 0 F O 1 = T 1 1 2 A ( 0 , 1 * 2 + 1 ) = 1 + 4 41 4 N E X T1 8 F O 1 = T 1 2 0 A ( 1 , I * 2 + 2 ) « I + 6 42 2 N E X T2 6 0 F O R 1 = T 1 2 8 A ( 2 , 1 * 2 + 1 ) = 1 + 7 73 0 N E X T3 4 F O 1 = T 3 6 A ( 3 , I ) = 1 33 8 N E X T4 2 0 F O R 1 = T 4 4 A ( 3 , I ) = 2 04 6 0 N E X T5 0 0 F O R 1 = T 5 2 A ( 3 , 1 * 2 + 9 ) = 1 + 1 3 35 6 N E X T5 8 P R I N T

P R I N T6 0 B * a " » :

X = F R E ( O )6 4 G O S U B 5 0 0 0 :

R E G E C H A R A C T E R6 8 P R I N T A $ 7 0 0 S Y S 5 8 6 4 3 :

P Z = P E E K ( 2 i l ) :P S = P E E K ( 2 1 4 )

7 2 G O S U B 1 7 6 P O K E 2 1 1 , P Z :

P O K E 2 1 4 , P S :R E S Y S 5 8 6 3 67

Page 80: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 80/290

Page 81: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 81/290

Page 82: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 82/290

T r i c k s f T i p s

C h a p t e r A d v a n c e d B A S I C

4 . C r e a t i n g B A S I C l i n e i B A S I C

H a v e y o e v e r t r i e d t w r i t e u n i v e r s a l c o m p u t e rp r o g r a m ? B u n i v e r s a l w m e a n p r o g r a m w h i c h c a b e x e c u t e d w i t h a n d e s i r e d a r i t h m e t i c o p e r a t i o n s w i t h a n v a r i a b l e s o c o n s t a n t s . t f

O c o u r s e n o t , y o w i l l a n s w e r . T h o p e r a t i o n o p r o g r a m d e p e n d s o n t h e p r e v i o u s l y e n t e r e d a l g o r i t h m s . T h i si t r u e , b u i m a g i n e f o m o m e n t t h a t y o u w a n t t w r i t ew o r d p r o c e s s o r t h a t a l l o w s c a l c u l a t i o n s . W i t h i n t h e t e x ta r n u m e r i c f i e l d s o w h i c h t h m a t h e m a t i c a l o p e r a t i o n s a r t b e p e r f o r m e d . S u c h p r o g r a m m i g h t c o m b i n e t h f e a t u r e so w o r d p r o c e s s o r w i t h t h o s e o s p r e a d - s h e e t p r o g r a m .

Y o c o u l d w r i t e v e r s i o n o f t h i s p r o g r a m t h a t w a s e u t o d o o n l y c e r t a i n c a l c u l a t i o n s , s u c h a b a l a n c i n gc h e c k b o o k o s o m e t h i n g s i m i l a r . I c o u l d n o p e r f o r mg e n e r a l c a l c u l a t i o n s f o w h i c h i w a s n o t s p e c i f i c a l l yd e s i g n e d , h o w e v e r . T p e r f o r m o t h e r o p e r a t i o n s , n e v e r s i o n o t h p r o g r a m w o u l d h a v e t b w r i t t e n . I w o u l db m o r e p r a c t i c a l t h a v e v e r s i o n w h i c h w o u l d a l l o w a n c a l c u l a t i o n s t b e p e r f o r m e d .

T h i s i w h a t w w a n t t p r e s e n t t o y o u , p r o c e d u r ew h i c h a l l o w s y o t s p e c i f y t h v a r i a b l e s o w h i c ha r i t h m e t i c o p e r a t i o n s a r t b p e r f o r m e d a n d w h a to p e r a t i o n s a r t b e x e c u t e d 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 i o n l y p o s s i b l e i w e c a n g e n e r a t e B A S I C l i n ec o n t a i n i n g t h d e s i r e d f o r m u l a w i t h i n t h e x e c u t i n g p r o g r a m .W w i l l s h o w y o u h o w t h i s c a n b e d o n e .

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

7

Page 83: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 83/290

T r i c k s & T i p s

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

F i r s t t h e v a r i a b l e s :

T C o n t a i n s t h l a s t a d d r e s s i m e m o r yV L e a s t - s i g n i f i c a n t b y t e o t h a d d r e s s " v a r i a b l e s t a r t "V A a b o v e , b u t m o s t - s i g n i f i c a n t b y t eV T A s a b o v e , b u t o t a l v a l u eB A d d r e s s o t h l i n e i n p u t b u f f e rB I n d e x v a r i a b l e f o f i l l i n g t h b u f f e rC A V a r i a b l e c o n t a i n i n g t h c a l c u l a t i o nR C o n t a i n s t h r e s u l t 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 m e m o r y l o c a t i o n s u s e d :

4 5 - 4 6 P o i n t e r t t h s t a r t o t h v a r i a b l e t a b l e4 7 - 4 8 P o i n t e r t t h s t a r t o t h a r r a y s4 9 - 5 0 P o i n t e r t t h s t a r t o t h s t r i n g s

5 M o s t - s i g n i f i c a n t b y t e o f t h e p o i n t e r t t h e n o B A S I C R A M

4 0 4 4 8 T h c r e a t e d B A S I C l i n e 5 0 1 0 0 i p l a c e d h e r e .4 0 7 0 4 A d d r e s s o f t h e r o u t i n e w h i c h c r e a t e s B A S I C l i n e f r o m

t h c o n t e n t s o f t h e i n p u t b u f f e r a n d p u t s i i 4 0 4 4 8

S t e p - b y - s t e p d e s c r i p t i o n o t h p r o g r a m o p e r a t i o n :

T h t o p - o f - m e m o r y i s e t 4 0 4 4 8 . M e m o r y a b o v e t h i sp o i n t w i l l b u s e d f o r t h e m a c h i n e l a n g u a g e r o u t i n ea n l a t e r f o t h c r e a t e d B A S I C l i n e .

7

Page 84: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 84/290

T r i c k s T i p s

2 - 6 T h e p o i n t e r f o r t h e s t a r t o f t h e v a r i a b l e t a b l e i r a i s e d b e c a u s e t h c o n n e c t i n g l i n e 5 0 0 9 9 w i l l b ei n s e r t e d h e r e .

1 0 - 1 4 L i n e s 5 0 1 0 0 a n 5 0 1 1 0 a r e s t a b l i s h e d s t h a t t h e s ea r a v a i l a b l e a a l t i m e s i c a s e j u m p i m a d e t t h e m w i t h o u t h a v i n g p r e v i o u s l y p l a c e d a o p e r a t i o nt h e r e . T h l i n e s c o n t a i n P R I N T a n R E T U R N .

2 0 - 3 0 T h e c o n n e c t i n g l i n e 5 0 0 9 9 i p l a c e d a t h e n o t h B A S I C p r o g r a m . T h c o n t i n u a t i o n a d d r e s s o f t h i s l i n ep o i n t s t t h e l i n e 5 0 1 0 0 a a d d r e s s 4 0 4 4 9 .

3 2 - 5 0 T h e s e l i n e s c o n t a i n t h m a c h i n e l a n g u a g e p r o g r a m w h i c hw i l l b e x a m i n e d i g r e a t e r d e t a i l l a t e r .

6 0 - 7 0 T h m a c h i n e l a n g u a g e p r o g r a m i p l a c e d i m e m o r y a 4 0 7 0 4 .

5 0 0 4 0 T h B A S I C l i n e i r e a d i f r o m t h k e y b o a r d i n t o C A $ .M a k e s u r e t h a t o n l y f u n c t i o n s a r e e n t e r e d .

5 0 0 5 0 T h i n p u t i t a k e n f r o m C A $ a n d p l a c e d i t h l i n ei n p u t b u f f e r ( u p t o 5 0 0 7 5 ) .

5 0 0 8 0 T h m a c h i n e l a n g u a g e p r o g r a m t c r e a t e t h e l i n e i c a l l e d .

5 0 0 9 5 H e r e t h c r e a t e d c a l c u l a t i o n i c a l l e d . T h e r e s u l tw i l l b r e t u r n e d i n R E .

F o t h o s e w h o a r i n t e r e s t e d , h e r e i t h m a c h i n e l a n g u a g ep r o g r a m :

L D $ 7 s a v e B A S I C p o i n t e rS T A $ 9 F F FL D $ 7 S T A $ 9 F F EL D $ 1 S T A $ 9 F F DL D $ 1

7

Page 85: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 85/290

T r i c k s T i p s

X

Y

S T L D S T J S L D L D B B S T I N B N L D S T L D S T L D S T S T S T L D S T L D S T L D S T L D S T R T

$ 9 F F C# $ 0 B

$ 7 $ A 5 7 9# $ 0 2 0 0 , XY $ 9 E 0 5 , X

X # $ 3 A$ 9 K 0 5 , X# $ 8 E$ 9 E 0 6 , X# $ 9 E 0 7 , X$ 9 B 0 8 , X$ 9 E 0 9 , X$ 9 F F F$ 7 $ 9 F F E$ 7 $ 9 F F D$ 1 $ 9 F F C$ 1

o f f s e t t i n p u t b u f f e r

c a l l t h r o u t i n e " C R U N C H "

t r a n s f e r l i n e t 4 0 4 5 3j u m p o u w h e n d o n e

b e h i n d t h e l i n e

a p p e n d R E T U R N

o a r k t h e n d - o f - l i n e

r e l o a d B A S I C p o i n t e r

b a c k t B A S I C

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

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

7

Page 86: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 86/290

T r i c k s T i p s

a n n o t b e m o v e d t o t h e r l i n e n u m b e r s , o t h e r w i s e y o u rv a r i a b l e s w i l l b d e s t r o y e d i l i n e s a n 6

T h s e c o n d p a r t o t h p r o g r a m m a k e s B A S I C l i n e o u o t h f o r m u l a e n t e r e d i C A a n e x e c u t e s t h i s . T h r e s u l ti r e t u r n e d i n R E .

T h l i n e n u m b e r s o f t h e p r o g r a m i w h i c h t h e s e r o u t i n e sa r p l a c e d m a y n o e x c e e d 4 9 9 9 9 . T h l i n e s a 5 0 0 0 0 m u s ta b s o l u t e l y b t h e l a s t i t h p r o g r a m .

T h o n l y r e s t r i c t i o n w h e n u s i n g t h e s e r o u t i n e s i t h a ty o m u s t o n l y e n t e r f u n c t i o n s , t h o u g h t h e s e m a y b e o a n t y p e , s u c h a 7 5 / 2 * V l - V 2 + S Q R ( V 3 ) . T h a s s i g n m e n t o f t h er e s u l t t o R E i a l r e a d y d o n e i l i n e 5 0 0 5 0 .

W A R N I N G ! O n c e t h p r o g r a m h a b e e n s t a r t e d , i m a n o t b ec h a n g e d . Y o u s h o u l d e n t e r N E W , r e l o a d t h e p r o g r a m , a n d t h e nc h a n g e i t T h i s i n e c e s s a r y b e c a u s e t h c r e a t e d l i n e s a r n o p l a c e d d i r e c t l y b e h i n d t h B A S I C p r o g r a m b u h i g h i m e m o r y . A s r e s u l t , t h e c o m p u t e r m a y c r a s h i y o u t r y t e d i t , i n s e r t , o d e l e t e l i n e .

H e r e i t h p r o g r a m l i s t i n g :

P O K E 5 6 , i 5 8 :C L I F - " P E E K < 4 5 > + 2 > 2 5 5T H E N P O K E 4 5 , 2 - < 2 5 6 - P E E K ( 4 5 > > :

P O K E 4 6 , P E E K ( 4 6 ) + 1 :B O T OP O K E 4 5 , P E E K ( 4 5 ) + 2P O K E 4 7 , P E E K ( 4 5 )P O K E 4 8 , P E E K ( 4 6 )P O K E 4 9 , , P E E K ( 4 5 )P O K E ( 5 0 ) , P E E K ( 4 6 )T M - 4 0 4 4 Q

1 P O K E T M , O :P O K E T M + J . , 7 P O K E T M + - 2 , 1 5 8 :P O K E T M + 3 , 1 8 0 1 'P O K E T M + 4 . 1 9 5

7

Page 87: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 87/290

T r i c k s & T i p s

1 P O K E T M + 5 , 1 5 3 :P O K E T M + 6 , 0 :P O K E T M + 7 , 1 3 P O K E T M + 8 , 1 5 8 :P O K E T M + 9 , 1 9 0

1 P O K E T M + 1 0 , 1 9 5 :P O K E T M + 1 1 , 1 4 2 :P O K E T M + 1 2 , 0 :P O K E T M + 1 3 , 0 :P O K E T M + 1 4 , 0

2 V L « = P E E K < 4 5 ) " .V H = P E E K < 4 6 ) :V T = V H * 2 5 6 + V L

3 P O K E V T - 4 , l :P O K E V T - 3 , 1 5 8 :P O K E V T - 2 , 1 7 9 :P O K E V T ~ 1 , 1 9 5

3 D A T A 1 6 5 , 1 2 2 , 1 4 1 , 2 5 5 , 1 5 9 , 1 6 5 , 1 2 3 , 1 4 1 , 2 5 4 , 1 5 9 , 1 6 5 , 20 , 1 4 1 , 2 5 3 , 1 5 9 , 1 6 5 , 2 13 D A T A 1 4 1 , 2 5 2 , 1 5 9 , 1 6 9 , 1 1 , 1 3 3 , 1 2 2 , 3 2 , 1 2 1 , 1 6 53 D A T A 1 6 2 , 0 , 1 8 9 , 0 , 2 , 2 4 0 , 6 , 1 5 7 , 5 , 1 5 8 , 2 3 2 , 2 0 8 , 2 4 5 , 1 6 9

, 5 8 , 1 5 7 , 5 , 1 5 83 D A T A 1 6 9 , 1 4 2 , 1 5 7 , 6 , 1 5 8 , 1 6 9 , 0 , 1 5 7 , 7 , 1 5 8 , 1 5 7 , 8 , 1 5 8 , 1

5 7 , 9 , 1 5 84 D A T A 1 7 3 , 2 5 5 , 1 5 9 , 1 3 3 , 1 2 2 , 1 7 3 , 2 5 4 , 1 5 95 D A T A 1 3 3 , 1 2 3 , 1 7 3 , 2 5 3 , 1 5 9 , 1 3 3 , 2 0 , 1 7 3 , 2 5 2 , 1 5 9 , 1 3 3 , 2 1

, 9 6 F O R 1 = 4 0 7 0 4 T 4 0 7 8 57 R E A D M C

P O K E I , M C :N E X T

5 0 0 0 0 R E M C A L C U L A T O R * • * * * * * ■ * * * * * # *5 0 0 4 0 B U = 5 2 3 :

I N P U T " C A L C ' S C A *5 0 0 5 0 P O K E B U , A B C < " R " ) :

P O K E B U + l j A S C C ' E " )P O K E B U + 2 , A S C < " I I B U = B U + 2

5 0 0 6 0 F O 1 = T O L E N < C A * >5 0 0 7 0 P O K E B U + 1 , A S C ( M I D * < C A $ , 1 , 1 ) ) :

N E X T5 0 0 7 3 B C = L E N ( C A * ) + 15 0 0 7 5 P O K E B U + B C ? O S

P O K E B U + B C + 1 , 0 :P O K E B U + B C + 2 , 0

5 0 0 8 0 S Y S 4 0 7 0 45 0 0 9 5 G O S U B 5 0 1 0 05 0 0 9 7 R E T U R N

7

Page 88: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 88/290

T r i c k s & T i p s

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

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

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

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

I s h o u l d b n o t e d t h a t t h e m a c h i n e l a n g u a g e p r o g r a md o e s n o t a l w a y s t r a n s f e r t h c r e a t e d l i n e t t h s a m e p o i n ti m e m o r y b u t a d d r e s s d e p e n d i n g o t h l e n g t h o t h p r e v i o u s l y c r e a t e d l i n e . I a d d i t i o n , t h c o n t i n u a t i o np o i n t e r ( t h e f i r s t t w b y t e s a t h b e g i n n i n g o f t h e l i n e )m u s t b e t a k e n c a r e o f s o m e t h i n g w o m i t t e d i o u e x a m p l eb e c a u s e t h r e t u r n c o m m a n d w a p l a c e d d i r e c t l y w i t h i n t h c r e a t e d l i n e .

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

8

Page 89: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 89/290

Page 90: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 90/290

T r i c k s T i p s

F O I = T P O K E I P E E K ( I ) N E X T

i t h b e g i n n i n g a d d r e s s a n t h e e n d a d d r e s s . F o B A S I Ct h e s e a d d r e s s e s a r 4 0 9 6 0 ( $ A 0 0 0 ) a n 4 9 1 5 1 ( $ B F F F ) ; t h k e r n a l l i e s f r o m 5 7 3 4 4 ( $ E 0 0 0 ) t 6 5 5 3 5 ( $ F F F F ) .

T h i s P O K E l o o p c o p i e s t h c o n t e n t s o t h R O i n t o t h eu n d e r l y i n g R A M . B A S I C c o n t i n u e s t r u i R O M , h o w e v e r . W m u s t t e l l t h e c o m p u t e r t s w i t c h o v e r t t h R A M .

M e m o r y l o c a t i o n 1 t h p r o c e s s o r p o r t , i u s e d f o r t h i sp u r p o s e . N o r m a l l y t h i s l o c a t i o n c o n t a i n s t h v a l u e 5 5 . I fy o u w a n t t r u B A S I C i R A M , y o u m u s t s e l e c t t h R A w i t hP O K E 1 , 5 4 . N o t e : Y o m a o n l y e x e c u t e t h i s P O K E a f t e r y o uh a v e c o p i e d B A S I C f r o m 4 0 9 6 0 t 4 9 1 5 1 i n t o R A o r t h ec o m p u t e r w i l l " c r a s h . " I y o u a l s o w a n t t c o p y t h k e r n a lt o R A M , t h i s m u s t b d o n e t o g e t h e r w i t h t h B A S I C R O Mb e c a u s e t h s e l e c t i o n o f t h i s R A a u t o m a t i c a l l y s e l e c t s t h R A M u n d e r t h B A S I C R O a w e l l ( s e e s e c t i o n 2 . 6 ) . T h P O K Ec o m m a n d t m a k e t h i s s w i t c h i P O K E 1 , 5 3 . I y o w a n t t m a n i p u l a t e t h B A S I C i n t e r p r e t e r , f i r s t c o p y t h R O M , m a k et h d e s i r e d c h a n g e s , a n t h e n s a v e t h e p r o g r a m w i t h w h i c hy o m a d e t h c h a n g e s a n s w i t c h o v e r w i t h P O K E I y o h a v e m a d e a e r r o r y o u r c o m p u t e r m a y " h a n g u p a n d y o u m u s ts t a r t o v e r f r o m t h b e g i n n i n g . R e l o a d y o u r p r o g r a m , c o r r e c tt h e r r o r a n d r u n i a g a i n u n t i l i w o r k s a d e s i r e d .

8

Page 91: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 91/290

T r i c k s & T i p s

4 . 3 N o m o r e n e g a t i v e n u m b e r s w i t h t h F E f u n c t i o n

H a v e y o u e v e r f o u n d i s u r p r i s i n g t h a t w h e n t u r n o y o u r C o m m o d o r e 6 i a n n o u n c e s t h a t i h a 3 8 9 1 1 b y t e s f r e eb u w h e n y o u i s s u e t h c o m m a n d

P R I N T F R E ( O )

i r e s p o n d s w i t h - 2 6 6 2 7 ?

I o n r e c e i v e s n e g a t i v e n u m b e r , o n e m u s t a d t t h 1 6 t h p o w e r ( o 6 5 5 3 6 ) t t h v a l u e i o r d e r t g e t t h ep r o p e r ( p o s i t i v e ) v a l u e . T h i s i n o o v e r l y d i f f i c u l t b u i i i n c o n v e n i e n t . W h a t i t h c a u s e o f t h i s ?

W m u s t e x a m i n e t h c o r r e s p o n d i n g l o c a t i o n s i t h R O l i s t i n g t d e t e r m i n e t h a n s w e r ( a d d r e s s $ B 3 7 D : T h A n a t o m yo t h C o m m o d o r e 6 4 ) . T h e r e , a f t e r t h s t r i n g s w h i c h a r n l o n g e r n e e d e d a r r e m o v e d a n t h e i r m e m o r y l o c a t i o n s m a d ef r e e ( g a r b a g e c o l l e c t i o n ) , t h f r e e m e m o r y a r e a i c a l c u l a t e d : T h e s t a r t o f t h e s t r i n g s ( $ 3 3 / $ 3 4 ) m i n u s t h e n o f t h e a r r a y s ( $ 3 1 / $ 3 2 ) . T h i s 1 6 - b i t i n t e g e r i c o n v e r t e di n t o f l o a t i n g - p o i n t f o r m a t a n d r e t u r n e d . H e r e i t h e e r r o r .T h i n t e g e r v a l u e i t r e a t e d a s i g n e d n u m b e r j u s t l i k et h i n t e g e r v a r i a b l e s ( * ) , w h i c h c a o n l y c o n t a i n v a l u e sf r o m - 3 2 7 6 8 t 3 2 7 6 7 . I t h e s e n u m b e r s w e r e t r e a t e d a p o s i t i v e v a l u e s , t h e y c o u l d c o n t a i n v a l u e s i t h r a n g e t 6 5 5 3 5 . W i t h t h 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 t h e r e w a s n e v e rm o r e t h a n 3 2 7 6 7 b y t e s o m e m o r y f r e e s t h a t t h i s e r r o r w a n e v e r e n c o u n t e r e d . W m u s t t h e r e f o r e c h a n g e t h F R r o u t i n es t h a t t h c o n v e r s i o n t f l o a t i n g - p o i n t n u m b e r t r e a t s t h i n t e g e r a p o s i t i v e v a l u e . T h i s i t h c a s e w i t h l i n e

8

Page 92: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 92/290

T r i c k s T i p s

n u m b e r s w h i c h m a y a l s o b l a r g e r t h a n 3 2 7 6 7 .

T h e s e a r t h c h a n g e s w h i c h a r n e c e s s a r y . H e r e w h a v ep l a c e d t h a d d i t i o n a l c o d e i a u n u s e d a r e a o f t h e B A S I Ci n t e r p r e t e r .

B 3 8 D 4 C 5 5 B J M P $ B F 5 5B 3 9 0 E N O

B F 5 5B F 5 7B F 5 9B F 5 BB F 5 DB F 5 FB F 6 1B F 6 3

A E A 8 8 8 A 4

3 3 0 0 6 6 9 4 B

L D S B L D S T S T S T L D J M

$ 3 $ 3 # $ 0 0$ 0 $ 6 $ 6 # $ 9 0$ B C 4 9

T h c h a n g e s c a n b e m a d e w i t h s m a l l P O K E l o o p .

1 0 F O 1 = 4 0 9 6 0 T 4 9 1 5 11 1 P O K E I P E E K ( I ) N E X T1 2 A = l l * 4 0 9 6 + 3 * 2 5 6 + 8 * 1 6 + 1 31 3 F O I = T O A + 31 4 R E A D P O K E I , N E X T1 5 A = l l * 4 0 9 6 + 1 5 * 2 5 6 + 5 * 1 6 + 51 6 F O R I = A T O A + 1 61 7 R E A D P O K E I , N E X T1 8 P O K E 1 , 5 42 0 D A T A 7 6 , 8 5 , 1 9 1 , 2 3 42 1 D A T A 1 6 5 , 5 2 , 2 2 9 , 5 0 , 1 6 2 , 0 , 1 3 4 , 1 3 , 1 3 3 , 9 8 , 1 3 2 , 9 92 2 D A T A 1 6 2 , 1 4 4 , 7 6 , 7 3 , 1 8 8

8

Page 93: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 93/290

T r i c k s T i p s

4 . R e t u r n i n g t B A S I C p r o g r a m a f t e r L I S T c o m m a n d

W h e n o n p u t s L I S T c o m m a n d w i t h i n B A S I C p r o g r a m ,e x e c u t i o n a l w a y s r e t u r n s t t h c o m m a n d m o d e a f t e r t h L I S Tc o m m a n d i c a r r i e d o u t . T h i s i i n c o n v e n i e n t w h e n y o u w a n tt o u t p u t c e r t a i n l i n e s s u c h a t h o s e w h i c h c o n t a i n f u n c t i o nd e f i n i t i o n s u s i n g D E F N Y o u a r e a l s o p r o h i b i t e d f r o mo u t p u t t i n g m o r e t h a n o n e c o p y o p r o g r a m l i s t i n g , e v e nf r o m l o o p i t h d i r e c t m o d e , s u c h a s

F O 1 = T L I S T N E X T

T h r e m e d y t t h i s p r o b l e m i a f o l l o w s : P l a c e j u m pt t h B A S I C w a r m - s t a r t a t h e n o t h L I S T f u n c t i o n b m e a n s o r e t u r n c o m m a n d . I a d d i t i o n , t h p o i n t e r t t h p r o g r a m t e x t m u s t b s a v e d b e f o r e c a l l i n g t h L I S T f u n c t i o nb e c a u s e t h i s w i l l b c h a n g e d d u r i n g t h L I S T .

W n e e d s m a l l r o u t i n e w h i c h c a r r i e s o u t h e s e t a s k sa n j u m p s b a c k t t h B A S I C i n t e r p r e t e r . S i n c e t h i s r e q u i r e s

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

W h a v e p l a c e d t h i s r o u t i n e i t h c a s s e t t e b u f f e r .A f t e r e n t e r i n g o l o a d i n g , i i e x e c u t e d w i t h S Y 8 2 8 a n di m m e d i a t e l y a l l o w s t h u s o t h e L I S T c o m m a n d w i t h o u tp r o g r a m i n t e r r u p t i o n .

8

Page 94: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 94/290

T r i c k s & T i p s0 0 0 1 0 3 3 CF E 0 0 0 2 0 3 3 CT E 0 0 0 3 0 3 3 CR A C T E R0 0 0 4 0 3 3 C0 0 0 5 0 3 3 C1 S R O U T I N E0 0 0 6 0 3 3 CP O I N T E R0 0 0 7 0 3 3 CE M E N T0 0 0 8 0 3 3 C0 0 0 9 0 3 3 C A 2 2 00 0 1 0 0 3 3 E A 9 A OT A R T O B A S I C0 0 1 1 0 3 4 0 A 0 0 0 1 2 0 3 4 2 8 2 0 0 1 3 0 3 4 4 8 2 0 0 1 4 0 3 4 6 B 2

0 0 1 5 0 3 4 8 9 2 0 0 1 6 0 3 4 A C 0 0 1 7 0 3 4 B D F 0 0 1 8 0 3 4 D E 6 2 30 0 1 9 0 3 4 F C 0 0 2 0 0 3 5 0 D F 0 0 2 1 0 3 5 2 A 6 0 0 2 2 0 3 5 4 8 1 A 0 0 2 3 0 3 5 7 A 9 E A0 0 2 4 0 3 5 9 8 B B A 60 0 2 5 0 3 5 C 8 D B C A 60 0 2 6 0 3 5 F A 6 E L I S T F U N C T I O N0 0 2 7 0 3 6 1 8 D 4 2 A O0 0 2 8 0 3 6 4 A 0 0 0 2 9 0 3 6 6 8 4 A 0 0 3 0 0 3 6 9 A 3

0 0 3 1 0 3 6 B 8 0 0 0 3 2 0 3 6 D 6 0 0 3 3 0 3 6 E A 5 7 A0 0 3 4 0 3 7 0 4

P O I N T E R0 0 3 5 0 3 7 1 A 5 7 0 0 3 6 0 3 7 3 4 0 0 3 7 0 3 7 4 2 7 0 R A C T E R0 0 3 8 0 3 7 7 2 9 C A 60 0 3 9 0 3 7 A 2 0 D 7 A A0 0 4 0 0 3 7 D 6 0 0 4 1 0 3 7 E 8 7 0 0 4 2 0 3 8 0 6 P O I N T E R B A C K

O R G 8 2 8C H R P T R E Q U $ 7 A

C H R G O T E Q U $ 7 9L I S T E Q U $ A 6 9 CL S T V E C E Q $ A 0 4 2N E X T S T E Q U $ A 8 F 8

C R L F E Q UL D L D L D S T S T

L O O P L D S T

N B N I N

D E B N L D S T L D S T S T L D S T L D S T L D

S T R T

N E W L S T L D AP H L D P H J S J S J S P L S T P L

$ A A D 7# 3 # $ A 0# $ 2 $ 2 ( $ 2 2 ) P Y

< $ 2 2 ) 9 V

L O O P$ 2

L O O P# $ 6 0$ A 7 1 4# $ E A$ A 6 B B$ A 6 B C# $ 6 D

L S T V E C# $ 0 3L S T V E C + 1# $ 3 6

C H R P T R

C H R P T R + 1C H R G O TL I S TC R L F

C H R P T R + 1

? C A S S E T T E B U

P R O G R A M P O I N

G E L A S T C H

S L I S T R O U T I N EP O I N T E R T S E P R O G R A MT N E X T S T A TO U T P U T C

S C O P Y 3 P A G EP O I N T E R T

T R A N S F E R L O O

; R T S C O D E? N O P C O D E

P O I N T E R T

S W I T C H T O R A

S A V E P R O G R A M

G E L A S T C H AE X E C U T E L I S T

; O U T P U T C R

G E P R O G R A M8

Page 95: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 95/290

Page 96: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 96/290

T r i c k s & T i p s

4 . C a l c u l a t e d l i n e n u m b e r s w i t h G O T O , G O S U B , a n d R E S T O R E

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

1 0 P R I N T " L I N E N U M B E R f l 1 1 G O T O

T h i s c o u l d b d o n e w i t h a e x t e n s i v e s e o O . . G O T Os t a t e m e n t s , a n d t h e s a m e a p p l i e s t t h G O S U B c o m m a n d , b u ti w o u l d b m u c h e a s i e r i c a l c u l a t e d l i n e n u m b e r s w e r ea l l o w e d .

A n o t h e r u s e f u l e x t e n s i o n w o u l d b t a l l o w l i n en u m b e r i t h R E S T O R E c o m m a n d . I o n h a s e v e r a l d i f f e r e n tb l o c k s o d a t a w h i c h a r t b r e a d s e v e r a l t i m e s , o n e c a no n l y r e s e t t h e R E A D / D A T A p o i n t e r t t h b e g i n n i n g o t h d a t a a n d t h e n r e a d o v e r q u a n t i t y o u n w a n t e d d a t a u n t i lt h d e s i r e d d a t a a r r e a c h e d . R E S T O R E w i t h l i n e n u m b e ra l l o w s t h e d a t a p o i n t e r t b s e t t o a n d e s i r e d l i n e .

T h m o d i f i c a t i o n o t h G O T O c o m m a n d c a n b ea c c o m p l i s h e d w i t h f e w P O K E s . W e n e e d o n l y r e p l a c e t h c a l lt g e t t h e l i n e n u m b e r w i t h r o u t i n e t h a t w i l l g e a n e v a l u a t e n u m e r i c e x p r e s s i o n . I d o i n g s w a l s o c h a n g et h G O S U B r o u t i n e , s i n c e G O S U B c a l l s t h G O T O r o u t i n e .

8

Page 97: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 97/290

T r i c k s & T i p s

A 8 A 0 2 C 0 J S $ 0 2 C 0

0 2 C 0 2 8 A A D0 2 C 3 4 F B

J S $ A D 8 AJ M $ B 7 F 7

H e r e w h a v e p l a c e d t h a d d i t i o n a l c o d e a $ 0 2 C 0w h i c h i f r e e s l o n g a s p r i t e 1 1 i s n o t u s e d .

( 7 0 4 ) ,

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

1 0 F O 1 = 4 0 9 6 0 T 4 9 1 5 11 1 P O K E I P E E K ( I ) N E X T1 2 A = 1 0 * 4 0 9 6 + 8 * 2 5 6 + 1 0 * 1 61 3 F O I = A T O A + 1 4 R E A D P O K E I , N E X T1 5 A = 7 0 41 6 F O I = T A + 1 7 R E A D P O K E I , N E X T2 0 D A T A 3 2 , 1 9 2 , 22 1 D A T A 3 2 , 1 3 8 , 1 7 3 , 7 6 , 2 4 7 , 1 8 3

N o w h a v e t a k e n c a r e o f t h e G O T O a n d G O S U B c o m m a n d s .T h R E S T O R E c o m m a n d i s o m e w h a t m o r e c o m p l i c a t e d b e c a u s et h e r e i n o r m a l l y n l i n e n u m b e r a s s o c i a t e d w i t h i t W e m u s td i s t i n g u i s h b e t w e e n p l a i n R E S T O R E c o m m a n d a n R E S T O R Ec o m m a n d w i t h l i n e n u m b e r . A i t u r n s o u t , t h i s i n o d i f f i c u l t .

0 2 C 6 D 0 0 2 C 8 4 I A 0 2 C B 2 C 0 0 2 C E 2 1 A

B N $ 0 2 C 8 ; a d d i t i o n a l c h a r a c t e r s ?J M P $ A 8 1 D ; t o l R E S T O R E c o m m a n dJ S $ 0 2 C 0 ; g e t l i n e n u m b e rJ S $ A 6 1 3 ; c a l c u l a t e a d d r e s s o f t h e

l i n e n u m b e r

8

Page 98: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 98/290

T r i c k s & T i p s

0 2 D 1 3 S B 0 2 0 2 A 5 L D A $ 5 F ; a d d r e s s l o w0 2 D 4 E 0 S B C # $ 0 1 { s u b t r a c t o n 0 2 D 6 A 6 L D $ 6 ; a d d r e s s h i g h0 2 D 8 4 2 A J M P $ A 8 2 4 ; c o n t i n u e a p e o l R E S T O R E

A g a i n , w c a p l a c e t h c o d e i m e m o r y w i t h s m a l l B A S I Cp r o g r a m :

3 0 A = 2 * 2 5 6 + 1 2 * 1 6 + 63 1 F O T A + 2 03 2 R E A D P O K E I , N E X T3 3 D A T A 2 0 8 , 3 , 7 6 , 2 9 , 1 6 8 , 3 2 , 1 9 2 , 2 , 3 2 , 1 9 , 1 6 63 4 D A T A 5 6 , 1 6 5 , 9 5 , 2 3 3 , 1 , 1 6 4 , 9 6 , 7 6 , 3 6 , 1 6 8

N o w w e m u s t t e l l t h e i n t e r p r e t e r w h e r e t h e n e w R E S T O R Er o u t i n e i l o c a t e d . A d d t h e s e l i n e s t t h o t h e r s a b o v e :

4 0 0 P O K E 4 0 9 9 6 , 1 9 P O K E 4 0 9 9 7 ,4 1 0 P O K E 1 , 5 4

L i n e 4 1 0 s w i t c h e s o v e r t t h R A M . Y o c a n o u s t h R E S T O R E c o m m a n d i t h r e e d i f f e r e n t w a y s :

F i r s t , w i t h o u t t h l i n e n u m b e r , a b e f o r e , s e c o n d w i t hl i n e n u m b e r , o r t h i r d , w i t h a e x p r e s s i o n w h i c h w i l l y i e l dl i n e n u m b e r o n c e e v a l u a t e d . I l i n e n u m b e r i s p e c i f i e d ,

t h n e x t R E A D c o m m a n d w i l l r e a d t h f i r s t D A T A e l e m e n t o t h l i n e s p e c i f i e d . I t h i s l i n e d o e s n o e x i s t , n e r r o rm e s s a g e w i l l b e g i v e n a n d t h p o i n t e r w i l l b e s e t t h n e x t l i n e . T h f o l l o w i n g p r o g r a m s t r u c t u r e i n o w p o s s i b l e .

9

Page 99: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 99/290

T r i c k s T i p s

1 0 G O T O 2 0

2 0 R E S T O R E 1

5 0 R E S T O R E

8 0 G O S U B A * 2 + 1 0 0

9 0 R E S T O R E X * 1 0 0 + 5 0 0

9

Page 100: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 100/290

T r i c k s T i p s

4 . T h N I D $ c o n n a n d

Y o a r e n o d o u b t f a m i l i a r w i t h t h M I D $ f u n c t i o n ,s t r i n g f u n c t i o n w h i c h i s o l a t e s p a r t o f a a l p h a n u m e r i cs t r i n g . T h e f o l l o w i n g p r o g r a m f r a g m e n t

1 0 0 A $ " T E S T S T R I N G "1 1 0 B $ M I D $ ( A $ , 5 , 3 )1 2 P R I N T B

p r o d u c e s t h e o u t p u t

S T

I t h i s s e c t i o n w e o f f e r a e n h a n c e m e n t o t h e M I D $f u n c t i o n w h i c h a l l o w s n o o n l y e x t r a c t i n g p a r t s o f s t r i n gb u a l s o a s s i g n m e n t s t p a r t s o s t r i n g . W i t h t h n e c o m m a n d t h f o l l o w i n g t y p e o p r o g r a m m i n g i p o s s i b l e :

1 0 0 A $ " T E S T S T R I N G 1 11 1 M I D $ ( A $ , 5 , 3 ) " 1 2 3 "1 2 P R I N T A

H e r e t h r e e c h a r a c t e r s a p o s i t i o n f i v e a r e r e p l a c e d w i t h t h s t r i n g " 1 2 3 " ; t h e r e s u l t i

T E S T 1 2 3 I N G

W i t h o u t t h i s n e w M I D $ c o m m a n d , t h s t r i n g w o u l d h a v e t b d i v i d e d i n t o t w o p a r t s a n d t h e n t h e p a r t s r e c o m b i n e d w i t ht h s t r i n g t b i n s e r t e d :

9

Page 101: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 101/290

T r i c k s T i p s

1 0 A " T E S T S T R I N G "1 1 0 A $ L E F T $ ( A $ , 4 ) " 1 2 3 " M I D $ ( A $ , 7 , 3 )1 2 P R I N T A

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

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

N I D $ c o m m a n d .

T h c o m m a n d i a g a i n i m p l e m e n t e d t h r o u g hl a n g u a g e p r o g r a m .

s m a l l m a c h i n e

0 0 0 i 0 3 3 CE U D O V A R I A B L E0 0 0 2 0 3 3 C0 0 0 3 0 3 3 CA R I A B L E , P O S I T I O N , L E N G T H )0 0 0 4 0 3 3 CA R I A B L E , P O S I T I O N )0 0 0 5 0 3 3 C0 0 0 6 0 3 3 C0 0 0 7 0 3 3 CT A T E M E N T E X E C U T I O N0 0 0 8 0 3 3 C0 0 0 9 0 3 3 C0 0 1 0 0 3 3 C0 0 1 1 0 3 3 C0 0 1 2 0 3 3 C0 0 1 3 0 3 3 C0 0 1 4 0 3 3 C0 0 1 5 0 3 3 C0 0 1 6 0 3 3 C0 0 1 7 0 3 3 CE S I S0 0 1 8 0 3 3 CH E S I S0 0 1 9 0 3 3 C0 0 2 0 0 3 3 C0 0 2 1 0 3 3 C0 0 2 2 0 3 3 C0 0 2 3 0 3 3 C0 0 2 4 0 3 3 C0 0 2 5 0 3 3 C0 0 2 6 0 3 3 C0 0 2 7 0 3 3 C0 0 2 8 0 3 3 C

S T R I N G

M I D C O DE X E C U T

C H R G E TC H R G O TE X E C O LV A R N A MV A R A D RD E S C R PT E B T B TG E T V A RS E T S T RC H K O P NC H K C L Q

C H K C O MT E S TG E T B Y TF R M E V LI L L Q U AF R E S T RL E N G T HP O S I T NV A R S T RE Q U A L

S T R I N G E X P R E S S I O NE X P R E S S I O N

E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q

E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q

$ C * 3 0 8* 7 C H R G E T + 6$ A 7 E 7$ 4 $ 4 $ 6 $ A D 8 F$ B 0 8 B$ A A 5 2$ A E F A$ A E F 7

* A E F D* A E F F$ B 7 9 E$ A D 9 E$ B 2 4 8* B 6 A 3$ 0 * O $ 0 $ B

; M I D * A P

5 M I D * ( S T R I N G V5 M I D * < S T R I N G V

V E C T O R F O R

O P E N P A R E N T H? C L O S E P A R E N T

; C O M M A

9

Page 102: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 102/290

T r i c k s & T i p s0 0 2 90 0 3 00 0 3 10 0 3 20 0 3 30 0 3 40 0 3 50 0 3 60 0 3 70 0 3 80 0 3 90 0 4 00 0 4 1

0 3 3 C0 3 3 C0 3 3 C0 3 3 C0 3 3 E0 3 4 00 3 4 30 3 4 60 3 4 70 3 4 A

0 3 4 C0 3 4 E0 3 5 1

A A 8 8 6 2 C

F 2 4

4 0 0 0

7 C 0 7 E

0 0

0

0 A

P 0 I N T 2 E Q

O R I N I T L D

L D S T S T R T

M I D T E S J S C M

B E J S J M

$ 5

8 2 # < M I D T E S# > M I D T E SE X E C U TE X E C U T + 1

C H R G E T# M I D C O DM I D S T RC H R G O TE X E C G L

A S T A T E M E N T0 0 4 2 0 3 5 4 2 E 0 0 4 3 0 3 5 7 2 0 0 4 4 0 3 5 A 2 0 0 4 5 0 3 5 D 8 0 0 4 6 0 3 5 F 8 0 0 4 7 0 3 6 1 8 0 0 4 8 0 3 6 3 8 0 0 4 9 0 3 6 5 2 0 0 5 0 0 3 6 8 A 0 0 5 1 0 3 6 A B 0 0 5 2 0 3 6 C 4 0 0 5 3 0 3 6 D F 0 0 5 4 0 3 6 F 2 I N T R A 0 0 5 5 0 3 7 2 A 0 0 5 6 0 3 7 4 B 0 0 5 7 0 3 7 6 8

A D D R E S S0 0 5 8 0 3 7 8 C 0 0 5 9 0 3 7 9 B 0 0 6 0 0 3 7 B 8 0 0 6 1 0 3 7 D 2 0 0 6 2 0 3 8 0 2 0 0 6 3 0 3 8 3 8 A0 0 6 4 0 3 8 4 F 0 0 6 5 0 3 8 6 C 0 0 6 6 0 3 8 7 8 0 0 6 7 0 3 8 9 2 0 0 6 8 0 3 8 C C S S I O N ?0 0 6 9 0 3 8 E D 0 0 7 0 0 3 9 0 A 0 0 7 1 0 3 9 2 D 0 0 7 2 0 3 9 4 2 0 0 7 3 0 3 9 7 2 0 0 7 4 0 3 9 A 8 0 0 7 5 0 3 9 B D 0 0 7 6 0 3 9 D 4 0 0 7 7 0 3 A 0 8

7 3 0 0 M I D S T R J S C H R G E T

F 8 6 6 4 4 A 0 6

2 5

0 4 0

4 0 F 9

1

0 7 2

0 F O F 9

0 4 0

A B

B

A

A B

0

A N E X TB

B I L S T O R E

J S J S S T S T S T S T J S L D L D P H B E J S

L D L D S T

N L D S T J S J S T X B E D E S T J S C M B N L D B N J S J S T X B N J M S T

9

C H K O P NG E T V A RD E S C R PD E S C R P + 1V A R A D RV A R A D R + 1F R E S T R# ( D E S C R P ) ? Y

I L S E T S T R# ( V A R A D R ) , Y

V A R S T R

( V A R A D R ) , YV A R S T R + 1C H K C O MG E T B Y TI L

P O S I T NC H R G O T# )

N E X T# * F FS T O R EC H K C O MG E T B Y T

S T O R EI L L Q U AL E N G T H

C O D E F O R M I D

Y E

E X E C U T E N O R MN E X T C H A R A C T

; O P E N P A R E NG E V A R I A B L E

L E N G T H

; T R A N S F E R S I R

? S A V E V A R I A B L

G E P O S I T I O N

? E N D O E X P R E

M A X . L E N G T H

G E L E N G T H

Page 103: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 103/290

T r i c k s T i p s

0 0 7 80 0 7 90 0 8 00 0 8 10 0 8 20 0 8 30 0 8 40 0 8 50 0 8 60 0 8 7O 0 0 8 80 0 8 90 0 9 00 0 9 10 0 9 20 0 9 30 0 9 40 0 9 50 0 9 60 0 9 7R R O R0 0 9 80 0 9 90 1 0 00 1 0 10 1 0 20 1 0 30 1 0 40 1 0 50 1 0 60 1 0 70 1 0 80 1 0 9

0 3 A 20 3 A 30 3 A 40 3 A 60 3 A 80 3 A A0 3 A C0 3 A F0 3 B 10 3 B 40 3 B 70 3 B A0 3 B C0 3 B E0 3 C 00 3 C 10 3 C 30 3 C 50 3 C 60 3 C 80 3 C A0 3 C C0 3 C E0 3 D 00 3 D 20 3 D 30 3 D 50 3 D 70 3 D 90 3 D B0 3 D D0 3 D E

O S T R I N G0 1 1 0 0 3 E 0

6 3 E C B 8 2 A 2 2

2 A B 8 8 B 8 8 B F

C B 8 A 1 6 8 9 E A 8 B

0 0 0 0 F B F 9

A 0 6 5

6 5

6 D

0 0 0 0 0 0 0 0 0

5

A

A A B

O

O K

L O O P

E X P R E S S I O N9 0

S T R I N G V A R I A B L E0 1 1 10 1 1 20 1 1 3

0 3 E 20 3 E 40 3 E 6

C D 4

0 F A A

P L S E S B C M B C S T J S L D J S J S J S L D L D S T D E L D S T D E L D B E

C M B C S T L D C L A D S T B C I N L D D E L D

S T C P B N J M

P O S I T NL E N G T HO L E N G T HC H K C L O# E Q U A LT E S TF R M E V LF R E S T R# ( D E S C R P ) j , P 0 I N T 2 + 1 '< D E S C R P > , Y

P 0 I N T 2( D E S C R P ) , YI L

L E N G T HO K L E N G T HV A R S T RP O S I T NV A R S T RL O O PV A R S T R + 1L E N G T H

( P 0 I N T 2 ) , ,

( V A R S T R ) , Y# L O O P$ A 7 A E

E L O O PA S S E M B L Y C O M P L E T E .

C L O S E P A R E N

G E E X P R E S S I

Z E R O , T H E N

? C H A R A C T E R F T R A N S F E R T

T I N T E R P R E T

9

Page 104: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 104/290

Page 105: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 105/290

Page 106: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 106/290

T r i c k s T i p s

4 . 7 I N S T R a n S T R I N G $ f u n c t i o n s

M a n y o t h e r c o m p u t e r s h a v e t w v e r y u s e f u l s t r i n gf u n c t i o n s w h i c h t h C o m m o d o r e 6 l a c k s . T h f i r s t f u n c t i o n ,u s u a l l y c a l l e d S T R I N G $ , c r e a t e s s t r i n g o d e s i r e d l e n g t hf i l l e d w i t h a n g i v e n c h a r a c t e r . T h e s e c o n d , o f t e n c a l l e dI N S T R , c h e c k s t s e i g i v e n s t r i n g i c o n t a i n e d w i t h i na n o t h e r .

W i t h k n o w l e d g e o t h B A S I C i n t e r p r e t e r a n t h s t r i n g m a n a g e m e n t o f t h e C o m m o d o r e 6 4 , i t i p o s s i b l e t i m p l e m e n t t h e s e f u n c t i o n s o t h 6 a w e l l . W e w i l l u s e t h e x i s t i n g c o m m a n d w o r d s " P O S " a n d " S T R $ " f o t h e s e f u n c t i o n s ,d i f f e r e n t i a t e d f r o m t h c u r r e n t B A S I C c o m m a n d s w i t hp r e c e d i n g H ! w .

T h e I N S T R f u n c t i o n h a t h f o l l o w i n g s y n t a x :

I = ! P O S ( A $ , B $ , P )

A i t h s t r i n g t b s e a r c h e d , B i t h s t r i n g w h o s eo c c u r r e n c e i A y o w i s h t c h e c k f o r , a n P i t h p o s i t i o n a w h i c h t h s e a r c h w i l l s t a r t . T h e r e s u l t i a s s i g n e d t t h v a r i a b l e I a n i z e r o , t h e n t h s o u g h t -a f t e r s t r i n g w a n o t f o u n d . I t h s e c o n d s t r i n g w a f o u n di t h f i r s t , c o n t a i n s t h p o s i t i o n a w h i c h i w a f o u n d .T h e i n p u t o f t h e p o s i t i o n P i o p t i o n a l ; i i i n o g i v e n ,t h s e a r c h s t a r t s a t h b e g i n n i n g o t h s t r i n g .E x p r e s s i o n s o f u n c t i o n s m a b u s e d i p l a c e o f t h ev a r i a b l e s .

9

Page 107: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 107/290

Page 108: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 108/290

T r i c k s T i p s

P R I N T ! S T R $ ( 2 0 , 6 5 )A A A A A A A A A A A A A A A A A A A A

A ! S T R $ ( 1 0 , M * " ) P R I N T A

T h m a c h i n e l a n g u a g e p r o g r a m i p l a c e d i f r e e m e m o r y a n b e g i n s a a d d r e s s 5 1 2 0 0 .0 0 0 30 0 0 40 0 0 50 0 0 60 0 0 70 0 0 80 0 0 90 0 1 00 0 1 10 0 1 20 0 1 30 0 1 40 0 1 50 0 1 60 0 1 70 0 1 80 0 1 90 0 2 00 0 2 10 0 2 20 0 2 30 0 2 40 0 2 50 0 2 60 0 2 70 0 2 80 0 2 90 0 3 00 0 3 10 0 3 20 0 3 30 0 3 40 0 3 50 0 3 60 0 3 70 0 3 80 0 3 9

C 8 0 0C 8 0 0C 8 0 0C 8 0 0C B O OC 8 0 0C B O OC 8 0 0C 8 0 0C 8 0 0C B O OC 8 0 0C 8 0 0C 8 0 0C B O OC 8 0 0C 8 0 0C 8 0 0C 8 0 0C 8 0 0C B O OC 8 0 0C 8 0 0C 8 0 0C 8 0 0C 8 0 0C 8 0 0C 8 0 0C 8 0 2C 8 0 4C 8 0 7C 8 0 AC 8 0 BC 8 0 DC 8 0 FC 8 1 2C 8 1 4

A A 8 8 6 A 8 2 C F

O C O A 0 3O B 0 3

0 O 7 3 0 02 0

C H K O P NC H K C L OC H K C O MF R M E V LC H K S T RF R E S T RY F A CC H R G E TC H R G O TG E T B Y TI N T E G ED E S C R PS T R A D RA D D R 2A D D R 1L E N 1L E N 2N U M B E RS T A R TT Y P F L GS T R C O DI L L Q U AS Y N T A XP O S C O DV E C T O RT E M P

T E S T I N

O R E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q L D L D S T S T R T L D S T J S C M B E

4 C 8 0 0* A E F A* A E F 7* A E F D* A D 9 E* A D 8 F$ B 6 A 3* B 3 A 2$ 7 C H R G E T + 6* B 7 9 B* B 1 A A$ 6 $ 6 * F * F B + 2

1 $ C * B 2 4 8$ A F 0 8* B * 3 0 AL E N 1# < T E S T I N# > T E S T I NV E C T O RV E C T O R + 1# T Y P F L GC H R G E T# T E S T 2

1 0

Page 109: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 109/290

T r i c k s T i p s

0 0 4 00 0 4 10 0 4 20 0 4 30 0 4 40 0 4 50 0 4 60 0 4 70 0 4 80 0 4 90 0 5 00 0 5 1O 0 0 5 20 0 5 30 0 5 4

C 8 1 6C 8 1 9C 8 1 CC 8 1 FC 8 2 1C 8 2 3C 8 2 5C 8 2 7C 8 2 AC 8 2 DC 8 3 0C 8 3 3C 8 3 6C 8 3 9C 8 3 B

2 4 2 C F C D 4 4 2 2 2 2 A 4

S O N S T A C K0 0 5 50 0 5 60 0 5 70 0 5 8

0 0 5 90 0 6 00 0 6 10 0 6 20 0 6 30 0 6 40 0 6 50 0 6 6

C 8 3 CC 8 3 EC 8 3 FC 8 4 2

C 8 4 5C 8 4 8C 8 4 AC 8 4 CC 8 4 EC 8 5 0C 8 5 1C 8 5 2

A D D R E S S0 0 6 70 0 6 80 0 6 90 0 7 00 0 7 10 0 7 2

C 8 5 3C 8 5 6C 8 5 8C B 5 AC 8 5 CC 8 5 E

A 4 2 2

2 F 8 8 8 6 A 6

2 F 8 8 8 A

7 8 7 B O C 0 B 0 7 F 9 8 6

6

F 9

A 6 0 F F

A 5 0 F F 0

T H I R D P A R A M E T E R0 0 7 30 0 7 40 0 7 50 0 7 60 0 7 7O 0 0 7 80 0 7 90 0 8 0

C 8 6 0C 8 6 3C 8 6 5C 8 6 7C 8 6 A

C 8 6 BC 8 6 DC 8 6 E

2 C D 2 8

F C 8

O I S T R I N G0 0 8 10 0 8 20 0 8 30 0 8 40 0 8 50 0 8 6

C 8 7 0C 8 7 3C 8 7 5C 8 7 6C 8 7 8C 8 7 A

2 A 3 E 9 6

7 2 0 9

4

0

F 0

0 2 0

0 A 0 T E S T 2

C A L B 0 0 I N S T RA A

A

A A

B

B

0

B

L

A

J S J M J S C M B E C M B N J M J M J S J S J S

J S L D P H L D P H J S J S J S B E S T S T S T P L T A P L

J S B E S T S T S T L D

J S C M B N J S T X

B E D E S T

J S L D S E S B B C

C H R G O T* A E 8 DC H R G E T# P O S C O DI N S T R# S T R C O DL B S T R I N GS Y N T A XC H R G E TC H K O P NF R M E V LC H K S T RD E S C R P

D E S C R P + 1C H K C O MF R M E V LF R E S T RI L L E N 2A D D R 2A D D R 2 + 1

F R E S T R + 7I L

L E N 1A D D R 1A D D R 1 + 1#

C H R G O T

L G E T B Y T

I L

S T A R T

C H K C L OL E N 1

L E N 2E N

A D C ^ O

O P E N P A R E NG E E X P R E S S I

? T E S T S T R I N GS T R I N G A D D R E

C O M M AS E C O N D S T R I N

L E N G T H = O

F I R S T S T R I N G

D E F A U L T F O

S T A R T P O S I T I

S T A R T P O S I T I

3 L E N 2 > L E N 1; R E S U L T 0

1 0

Page 110: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 110/290

T r i c k s & T i p s0 0 8 7 C 8 7 C 8 5 0

0 0 8 8 C 8 7 E A 5 0 60 0 8 9 C 8 8 0 1 U S T A R T P O S I T I O N0 0 9 0 C 8 8 1 6 5 F D0 0 9 1 C 8 8 3 8 F 0 0 9 2 C 8 8 5 9 0 0 0 9 3 C 8 8 7 E 6 F E0 0 9 4 C 8 8 9 A 0 0 0 9 5 C 8 8 B B F 0 0 9 6 C 8 8 D D F A C T E R S0 0 9 7 C 8 8 F D O X P O S I T I O N0 0 9 8 C 8 9 1 C 0 0 9 9 C 8 9 2 C 4 0 4R S O F S T R I N G 2 T E S T E D ?0 1 0 0 C 8 9 4 9 F 0 1 0 1 C 8 9 6 A 0 0 1 0 2 C 8 9 8 C 0 1 0 3 C 8 9 9 4 C A B 0 1 0 4 C 8 9 C E 6 0 60 1 0 5 C 8 9 E C 0 0 1 0 6 C 8 A 0 D 0 0 1 0 7 C 8 A 2 A O 0 E R 0 1 0 8 C 8 A 4 F O F 30 1 0 9 C 8 A 6 E 6 F D0 1 1 0 C 8 A 8 D D R I N G 2 A D D R E S S0 1 1 1 C 8 A A E 6 F E0 1 1 2 C 8 A C D O D B0 1 1 3 C 8 A E 4 4 B 0 1 1 4 C 8 B 10 1 1 5 C 8 B 1T I O N0 1 1 6 C 8 B 10 1 1 7 l C 8 B l 2 0 7 3 0 00 1 1 8 C 8 B 4 2 0 F A A E0 1 1 9 C 8 B 7 2 0 9 E B 70 1 2 0 C 8 B A 8 0 1 2 1 C 8 B B 4 0 1 2 2 C 8 B C 2 F D A E0 1 2 3 C 8 B F 2 0 9 E A D0 1 2 4 C 8 C 2 2 O 0 1 2 5 C 8 C 4 3 O 0 1 2 6 C 8 C 6 2 A B 0 1 2 7 C 8 C 9 A 6 0 1 2 8 C 8 C B D E 0 1 2 9 C 8 C D A S 6 5N G T H0 1 3 0 C 8 C F 4 C D B C 80 1 3 1 C 8 D 2 2 0 8 2 B L T N U M E R I C

L L

L L

E N

L

I L

S T L D C L

A D S T B C I N L D L D C M B N

N C P

B C L D

N J M I N D E B N L D B E D .I N B N

I N B N J M

N U M B E RS T A R T

A D D R 1A D D R 1L A D D R 1 + 1# ( A D D R 2 ) , Y( A D D R l ) j , Y

L

L E N 2

L S T A R TY F A CS T A R TN U M B E RL # L A D D R 1L

A D D R 1 + 1L I L L Q U A

; 0 T H S H I F T

; A D D R E S S P

S T R I N G J S J S J S T X P H J S J S B I B M J S L D B N L D J M

S T J S

C H R G E TC H K O P NG E T B Y T + 3

C H K C O MF R M E V LT Y P F L GS T I N T E G ED E S C R PI L D E S C R P + 1S T R 2* B 7 8 2

c o m p a r e c h a r; s e a r c h a t n

; a l l c h a r a c t e

; R E S U L T

N O D O N E ?; N O T F O U N D ,

I N C R E M E N T S

5 S T R I N G * F U N C

; O P E N P A R E N

S A V E L E N G T H

S T R I N GH I G H B Y T E> 2 5 5L O B Y T E , L

5 S E T S T R , T Y P F

1 0

Page 111: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 111/290

T r i c k s T i p s

0 1 3 2 C 8 D 5 F D 0 1 3 3 C 8 D 7 A O 0 00 1 3 4 C 8 D 9 B T E 0 1 3 5 C 8 D B 8

2 0

0 1 3 6 C 8 D D 6 0 1 3 7 C 8 D E 2 7 B 0 1 3 8 C 8 E 1 A 0 1 3 9 C 8 E 2 F 0 0 1 4 0 C 8 E 4 A 5 0 30 1 4 1 C 8 E 6 8 0 1 4 2 C 8 E 7 9 6

0 1 4 3 C 8 E 9 D F 0 1 4 4 C 8 E B 2 0 C A B

D E S C R I P T O R S T A C K0 1 4 5 C 8 E E 4 C F 7 A E

A S S E M B L Y C O M P L E T E .

B E I L L D # L D < * 2 2 > . , Y

S T R 2 S T A T E M PP L J S * B 4 7 DT A B E Q S T R 3L D T E M P

L O O P D E S T A ( S T R A D R ) S YB N E L O O P

S T R 3 J S R * B 4 C AJ M C H K C L O

L E N G T H Z E R OF I R S T C H A R A C

L E N G T HS F R E S T R

C R E A T E S T R I N

P U S T R I N G

1 0

Page 112: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 112/290

T r i c k s T i p s

1 0 F O 1 = 5 1 2 0 0 T 5 1 4 4 01 1 R E A D X

P O K E I , X :s = s + x :

N E X T1 2 D A T A 1 6 9 , 1 1 , 1 6 0 , 2 0 0 , 1 4 1 , 1 0 , 3 , 1 4 0 , 1 1 , 3 , 9 6 , 1 6 91 3 D A T A 0 , 1 3 3 , 1 3 , 3 2 , 1 1 5 , 0 , 2 0 1 , 3 3 , 2 4 0 , 6 , 3 2 , 1 2 11 4 D A T A 0 , 7 6 , 1 4 1 , 1 7 4 , 3 2 , 1 1 5 , 0 , 2 0 1 , 1 8 5 , 2 4 0 , 1 0 , 2 0 11 5 D A T A 1 9 6 , 2 0 8 , 3 , 7 6 , 1 7 7 , 2 0 0 , 7 6 , 8 , 1 7 5 , 3 2 , 1 1 5 , 01 6 D A T A 3 2 , 2 5 0 , 1 7 4 , 3 2 , 1 5 8 , 1 7 3 , 3 2 , 1 4 3 , 1 7 3 , 1 6 5 , 1 0 0 , 7 21 7 D A T A 1 6 5 , 1 0 1 , 7 2 , 3 2 , 2 5 3 , 1 7 4 , 3 2 , 1 5 8 , 1 7 3 , 3 2 , 1 6 3 , 1 8 21 8 D A T A 2 4 0 , 1 0 0 , 1 3 3 , 4 , 1 3 4 , 2 5 1 , 1 3 2 , 2 5 2 , 1 0 4 , 1 6 8 , 1 0 4 , 3 21 9 D A T A 1 7 0 , 1 8 2 , 2 4 0 , 8 6 , 1 3 3 , 3 , 1 3 4 , 2 5 3 , 1 3 2 , 2 5 4 , 1 6 2 , 62 0 D A T A 3 2 , 1 2 1 , 0 , 2 0 1 , 4 4 , 2 0 8 , 7 , 3 2 , 1 5 5 , 1 8 3 , 1 3 8 , 2 4 02 1 D A T A 6 5 , 2 0 2 , 1 3 4 , 6 , 3 2 , 2 4 7 , 1 7 4 , 1 6 5 , 3 , 5 6 , 2 2 9 , 42 2 0 D A T A 1 4 4 , 4 0 , 1 0 5 , 0 , 1 3 3 , 5 , 1 6 5 , 6 , 2 4 , 1 0 1 , 2 5 3 , 1 3 32 3 D A T A 2 5 3 , 1 4 4 , 2 , 2 3 0 , 2 5 4 , 1 6 0 , 0 , 1 7 7 , 2 5 1 , 2 0 9 , 2 5 3 , 2 0 82 4 D A T A 1 1 , 2 0 0 , 1 9 6 , 4 , 1 4 4 , 2 4 5 , 1 6 4 , 6 , 2 0 0 , 7 6 , 1 6 2 , 1 7 92 5 D A T A 2 3 0 , 6 , 1 9 8 „ 5 , 2 0 8 , 4 , 1 6 0 , 0 , 2 4 0 , 2 4 3 , 2 3 0 , 2 5 32 6 D A T A 2 0 8 , 2 2 3 , 2 3 0 , 2 5 4 , 2 0 8 , 2 1 9 , 7 6 , 7 2 , 1 7 8 , 3 2 , 1 1 5 , 02 7 D A T A 3 2 , 2 5 0 , 1 7 4 , 3 2 , 1 5 8 , 1 8 3 , 1 3 8 , 7 2 , 3 2 , 2 5 3 , 1 7 4 , 3 22 8 D A T A 1 5 8 , 1 7 3 , 3 6 , 1 3 , 4 8 , 1 2 , 3 2 , 1 7 0 , 1 7 7 , 1 6 5 , 1 0 0 , 2 0 82 9 D A T A 2 2 5 , 1 6 5 , 1 0 1 , 7 6 , 2 1 9 , 2 0 0 , 3 2 , 1 3 0 , 1 8 3 , 2 4 0 , 2 1 5 , 1 6 03 0 D A T A 0 , 1 7 7 , 3 4 , 1 3 3 , 3 , 1 0 4 , 3 2 , 1 2 5 , 1 8 0 , 1 6 8 , 2 4 0 , 73 1 0 D A T A 1 6 5 , 3 , 1 3 6 , 1 4 5 , 9 8 , 2 0 8 , 2 5 1 , 3 2 , 2 0 2 , 1 8 0 , 7 6 , 2 4 73 2 D A T A 1 7 3 3 I S O 3 0 1 1 9

T H E N P R I N T " E R R O R I D A T A ! ! " :E N

3 4 0 S Y S 5 1 2 0 0 :P R I N T " O K "

1 0

Page 113: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 113/290

T r i c k s T i p s

4 . A u t o m a t i c l i n e n u m b e r i n g

I t h i s s e c t i o n w w a n t t p r e s e n t u s e f u l c o m m a n d f o t h C o m m o d o r e 6 w h i c h m a k e s i m u c h e a s i e r t e n t e rp r o g r a m s . T h i s c o m m a n d , s i m i l a r t t h " A U T O " c o m m a n d f o u n do o t h e r c o m p u t e r s , w i l l a u t o m a t i c a l l y c r e a t e l i n e n u m b e r sf o y o s t h a t y o d o n o t h a v e t t y p e t h e m i y o u r s e l f .Y o u c a n s e t b o t h t h s t a r t i n g l i n e n u m b e r a n t h i n c r e m e n tb w h i c h e a c h s u c c e s s i v e l i n e n u m b e r w i l l b e i n c r e a s e d . I i q u i t e s i m p l e t u s e t h i s n e c o m m a n d :

T t u r n o t h a u t o m a t i c l i n e n u m b e r i n g , e n t e r t h f o l l o w i n g c o m m a n d :

S Y 8 2 8 , s t a r t n u m b e r , i n c r e m e n t

E x S Y 8 2 8 , 1 0 0 , 1 0

T h i n c r e m e n t m a b a i n t e g e r v a l u e u t o 2 5 5 . A f t e re n t e r i n g t h S Y c o m m a n d , t h f i r s t l i n e n u m b e r i p r i n t e da n t h c u r s o r i p l a c e d b e h i n d i t Y o c a e n t e r t h p r o g r a m l i n e d i r e c t l y a n d p r e s s R E T U R N w h e n d o n e . N o t h n e x t l i n e n u m b e r w i l l b d i s p l a y e d a u t o m a t i c a l l y , l i n e 1 1 i o u r e x a m p l e .

1 0 I N P U T " I N P U T " ; A $1 1

T e n d t h e A U T O c o m m a n d , s i m p l y p r e s s R E T U R N w i t h o u tt y p i n g a n y t h i n g e l s e o l i n e . I f y o l a t e r w a n t t c o n t i n u e e n t e r i n g l i n e s , y o n e e d o n l y e n t e r

1 0

Page 114: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 114/290

T r i c k s T i p s

S Y 8 2

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

T h m a c h i n e l a n g u a g e p r o g r a m i s t o r e d i t h c a s s e t t eb u f f e r . F o l l o w i n g t h i s a s s e m b l y l a n g u a g e l i s t i n g i a g a i nl o a d e r p r o g r a m i B A S I C .

0 0 0 1F E 0 0 0 20 0 0 30 0 0 4

0 3 3 C

0 3 3 C0 3 3 C0 3 3 C

N A C C U M U L A T O R0 0 0 5U R 0 0 0 60 0 0 70 0 0 8

0 3 3 C

0 3 3 C0 3 3 C0 3 3 C

L O A T I N G P O I N T0 0 0 9N 0 0 1 00 0 1 10 0 1 20 0 1 30 0 1 40 0 1 50 0 1 60 0 1 70 0 1 80 0 1 90 0 2 00 0 2 10 0 2 2

0 3 3 CA S C I I0 3 3 C0 3 3 C0 3 3 C0 3 3 C0 3 3 C0 3 3 C0 3 3 C0 3 3 C0 3 3 C0 3 3 C0 3 3 C0 3 3 C0 3 3 C 2

H A R A C T E R S ?0 0 2 30 0 2 40 0 2 5-

0 0 2 60 0 2 70 0 2 80 0 2 9

0 3 3 F F 0 3 4 1 2 00 3 4 4 2

0 3 4 7 8 0 3 4 9 A 0 3 4 B 8 0 3 4 D A

7 9 0 0

1 F A E B B 7

F 1 F 1

L H F A

C

L I N EN C

I N T F L T

F L T A S CV E C T O RI N P U TP R I N TB U F F IB U F F 2M N L O O PG O O NC O N TC H R G O TO L D V E CG E T P A RC H K C O M

O R

E Q L IE Q E Q E Q E Q E Q E Q E Q

E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q J S B E J S J S S I L D S T L D

8 2

$ 1 L O + 1$ 6

1

2 5 L I N E + 2$ B C 4 9

$ B D D D$ 3 0 2$ F F C F* F F D 2$ 1 0 1$ 2 0 0$ A 4 8 6$ A 5 6 9$ A 5 7 6$ 7 $ A 4 8 3$ B 7 E B$ A E F DC H R G O TL C H K C O MG E T P A R

N C L L I N EH

i C A S S E T T E B U

S F L O A T I N G - P O I{ C A R R I A G E R E

S L I N Ei I N C R E M E N T; I N T E G E R T

! F L O A T I N G P O

S L I N E I N P U T

A D D I T I O N A LN C O M M A ?G E P A R A M E T E

A N S A V E

1 0

Page 115: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 115/290

0 0 3 00 0 3 10 0 3 2C T O R0 0 3 30 0 3 40 0 3 50 0 3 60 0 3 70 0 3 60 0 3 90 0 4 00 0 4 10 0 4 20 0 4 30 0 4 40 0 4 50 0 4 6

0 3 4 F0 3 5 10 3 5 3

0 3 5 60 3 5 80 3 5 B0 3 5 C0 3 5 C0 3 5 F0 3 6 20 3 6 20 3 6 40 3 6 60 3 6 80 3 6 A0 3 6 C0 3 6 D

P O I N T0 0 4 70 0 4 S0 0 4 90 0 5 00 0 5 1F E 0 0 5 20 0 5 30 0 5 40 0 5 50 0 5 60 0 5 70 0 5 80 0 5 90 0 6 00 0 6 10 0 6 20 0 6 30 0 6 40 0 6 50 0 6 60 0 6 70 0 6 8M B E R0 0 6 90 0 7 00 0 7 10 0 7 20 0 7 30 0 7 40 0 7 50 0 7 6

0 3 7 00 3 7 30 3 7 50 3 7 80 3 7 A

0 3 7 D0 3 8 00 3 8 10 3 8 30 3 8 50 3 8 60 3 8 80 3 8 A0 3 8 C0 3 8 E0 3 9 00 3 9 30 3 9 60 3 9 80 3 9 A0 3 9 D0 3 9 F0 3 A 10 3 A 30 3 A 50 3 A 70 3 A 9O 3 A 3 B0 3 A E0 3 B 1

8 A 8

A S 6

2 4

A A 8 8 A 3 2

2 A B F 9 2 E D A 1 6 8 9 E A 2 2 C F 4 A E

8 B C A A 8 8 4

F 5 0

0 0

6 8

F F 6 6 9

4

D 0 0 0 0

D

F F

F F 0 F 2 D C O 0 6 F F

F 0 F 8 A 0 0 7

0

0

0 A

B

B

0

0

F

F F

A

0 0 A

L

A U T O

A U T N U M

L

L

L

L

L

S T L D S T

L D S T R T J S J M

L D L D S T S T L D S E J S J S L D L D B E S T

J S N

B N L D C L A D S T B C I N L D J S J S C M B E J M L D S B

S T B C D E L D L D S T S T J M

L I N E + 14 K A U T QV E C T O R# > A U T OV E C T O R + 1

A U T N U MM N L Q D PL I N EL I N E + 1F A C + 1F A # * 9 0

I N T F L TF L T A S C# B U F F I , XL B U F F 2 , XP R I N TL L I N E

N C L I N EL L I N E + 1# 3 P R I N TI N P U T# C L G O O NL I N EI . N C R

L I N EL L I N E + 1# < G L D V E C# > O L D V E CV E C T O RV E C T O R + 1C O N T

T r i c k s & T i p s

§ S E T I N P U T V E

. 3 L I N E N U M B E R

j i T O F L O A T I N GT O A S C I I

G E D I G I T S5 , B A S I C B U S A N D O U T P U T

S L I N E N U M B E R

; O U T P U T S P A C E

E M P T Y I N P U TS Y E S; C O N T I N U E

N E X T L I N E N

P U T O L D: ; V E C T O R B A C K

A S S E M B L Y C O M P L E T E .

1 0

Page 116: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 116/290

T r i c k s T i p s

1 0 F O 8 2 T O 9 4 71 1 R E A D P O K E I , S = S + X N E X T1 2 D A T A 3 2 , 1 2 1 , 0 2 4 0 , 1 6 . 3 2 , 2 5 3 , 1 7 4 , 3 2 , 2 3 5 , 1 8 3 , 1 3 41 3 D A T A 2 5 3 , 1 6 5 , 2 0 , 1 3 3 , 2 5 1 , 1 6 5 , 2 1 , 1 3 3 , 2 5 2 , 1 6 9 , 9 2 , 1 4 11 4 D A T A 2 , 3 , 1 6 9 , 3 , 1 4 1 , 3 , 3 , 9 6 , 3 2 , 9 8 , 3 7 1 5 D A T A 1 3 4 , 1 6 4 , 1 6 5 , 2 5 1 , 1 6 6 , 2 5 2 , . 1 . 3 3 , 9 9 , 1 3 4 , 9 8 , 1 6 2 , 1 4 41 6 D A T A 5 6 , , 3 2 7 3 , 1 8 8 , 3 2 , 2 2 1 , 1 8 9 , 1 6 2 , 0 , 1 8 9 , 1 1 7 D A T A 2 4 0 , 9 , 1 5 7 , 0 2 3 2 , 2 1 0 , 2 5 5 , 2 3 2 , 2 0 8 , 2 4 2 , 1 6 51 8 D A T A 2 5 1 , 2 4 , 1 0 1 , 2 5 3 , 1 3 3 , 2 5 1 , 1 4 4 , 2 , 2 3 0 , 2 5 2 , 1 6 9 , 3 1 9 D A T A 3 2 , 2 1 0 , 2 5 5 , 3 2 , 2 0 7 , 2 5 5 , 2 0 1 , 1 3 , 2 4 0 , 3 7 6 , 1 0 52 0 D A T A 1 6 5 , 1 6 5 , 2 5 1 , 2 2 9 , 2 5 3 , 1 3 3 , 2 5 1 5 , 1 7 6 , 2 , 1 9 8 , 2 5 2 , 1 6 92 1 D A T A 1 3 1 , 1 6 0 , 1 6 4 , 1 4 1 , 2 3 , 1 4 0 , 3 3 7 6 , 1 1 8 , 1 6 52 2 I F < > 1 5 4 9 5 T H E N P R I N T " E R R O R I D A T A ! ! " E N 2 3 P R I N T " O K "

1 0

Page 117: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 117/290

T r i c k s T i p s

4 . U s e r - d e f i n e d f u n c t i o n s — D E F F

M a n y p r o g r a m m e r s p r e f e r t a d m o r e l i n e s o s u b r o u t i n e s t t h e i r p r o g r a m i n s t e a d o s i m p l y d e f i n i n gt h e i r f u n c t i o n s . A d m i t t e d l y , t h i s t e c h n i q u e i n o w e l l -d e s c r i b e d i t h u s e r ' s g u i d e , s w w i l l t r t c l a r i f y i t u s e . I a d d i t i o n t t h l a c k o e m p h a s i s i t h d o c u m e n t a t i o n , t h e r e i a n o t h e r r e a s o n w h y t h i s t e c h n i q u e i n o t u s e d : T h f u n c t i o n d o e s n o a p p e a r v e r y p o w e r f u l , a l e a s t a f i r s t g l a n c e , b e c a u s e o n l y o n a r g u m e n t m a b p a s s e d t t h u s e r - d e f i n e d f u n c t i o n s .

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

f u n c t i o n d e f i n i t i o n i c o n s t r u c t e d i t h f o l l o w i n gm a n n e r :

D E F n a m e ( f u n c t i o n v a r i a b l e ) a r i t h m e t i c e x p r e s s i o n

E x a m p l e :

D E F A ( X ) 2 *

O u f u n c t i o n h a s t h e n a m e a n f u n c t i o n v a r i a b l e X W h e n t h f u n c t i o n i c a l l e d , t h e x p r e s s i o n b e t w e e n t h p a r e n t h e s e s ( i n e e d n o t b o e v e n v a r i a b l e ) w i l l b s u b s t i t u t e d f o i t h a r i t h m e t i c e x p r e s s i o n . A n v a r i a b l e s w i t h t h n a m e o w i l l r e m a i n u n d i s t u r b e d . T h f u n c t i o n v a r i a b l e i u s e d o n l y a p l a c e h o l d e r f o t h

1 0

Page 118: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 118/290

T r i c k s T i p s

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

A s a n e x a m p l e , w w i l l d e f i n e f o r m u l a w h i c h w i l lr o u n d - o f f v a l u e t t h n e a r e s t h u n d r e t h — a f u n c t i o n u s e f u lf o w o r k i n g w i t h d o l l a r a m o u n t s . A y o k n o w , t h e t h i r dd e c i m a l p l a c e d e t e r m i n e s t h e r o u n d i n g . I t h i s v a l u e i o g r e a t e r , t h s e c o n d d e c i m a l p l a c e i i n c r e a s e d b o n ( r o u n d e d u p ) , e l s e t h n u m b e r i m e r e l y t r u n c a t e d a t h s e c o n d d e c i m a l p l a c e ( r o u n d e d d o w n ) .

M o s t p r o g r a m m e r s w o u l d p l a c e t h i s r o u n d i n g f u n c t i o nd i r e c t l y i n t o t h p r o g r a m :

I N ( B * 1 0 0 + . 5 ) / 1 0 0

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

F N X ( B )

F i r s t , h o w e v e r , t h e f u n c t i o n m u s t b e d e f i n e d :

1 D B F R ( B ) I N T ( B * 1 0 0 + . 5 ) / 1 0 0

1 0 F N R ( B )

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

1 1

Page 119: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 119/290

Page 120: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 120/290

Page 121: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 121/290

Page 122: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 122/290

T r i c k s T i p s

c h a r a c t e r s i t h C o m m o d o r e 6 a r s t o r e d i m e m o r y u s i n gr a n g e o c o d e s s t a r t i n g w i t h 1 I s t a n d a r d A S C I I h o w e v e r ,

t h i s c h a r a c t e r r a n g e s t a r t s w i t h 6 5 t h e r e f o r e , a l n u m b e r sl e s s t h a n 3 a r i n c r e m e n t e d b y 6 4 t o a l l o w t h e m t b p r i n t e d c o r r e c t l y .

1 1

Page 123: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 123/290

T r i c k s T i p s

C h a p t e r F o r t h

5 . P r o g r a m m i n g i F o r t h

W h a t i F o r t h ? T h i s i q u e s t i o n o f t e n a s k e d b y t h o s ew h o h a v e o n l y p r o g r a m m e d i B A S I C o a s s e m b l y l a n g u a g e u t t h i s p o i n t . C e r t a i n l y m a n y o y o w i l l s a y " W h y s h o u l dl e a r n a n o t h e r p r o g r a m m i n g l a n g u a g e w h e n m C o m m o d o r e h a g o o d v e r s i o n o B A S I C ? 1 ' T h i s o b j e c t i o n m a y s e e m j u s t i f i e d a f i r s t , b u a f t e r c l o s e r l o o k , o n m u s t c o n s i d e r i i r e a l l y i j u s t i f i e d , e s p e c i a l l y w h e n c o m p u t e r c a n s p e a km o r e t h a n o n e l a n g u a g e .

O n c e y o u h a v e p r o g r a m m e d i B A S I C f o w h i l e , y o u w i l lc o m e a c r o s s t h i n g s w h i c h e i t h e r c a n n o t b d o n e a a l o a r v e r y d i f f i c u l t t d o O l a r g e r c o m p u t e r s , o n e h a s t h ea b i l i t y t s w i t c h t o t h e r l a n g u a g e s . T h e r e i F O R T R A N f o m a t h e m a t i c a l a p p l i c a t i o n s , C O B O L f o c o m m e r c i a l p u r p o s e s ,a s s e m b l y l a n g u a g e f o t i m e - c r i t i c a l t a s k s , B A S I C f o g e n e r a lp r o b l e m s o l v i n g a n s o n T h e n t h e r e a r l a n g u a g e s d e s i g n e dt f o r c e s t r u c t u r e d p r o g r a m m i n g s u c h a P a s c a l a n E L A N .E a c h l a n g u a g e h a i t s t r e n g t h s a n w e a k n e s s e s .

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

1 1

Page 124: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 124/290

Page 125: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 125/290

T r i c k s T i p s

p r o g r a m m i n g o w h o w n s R e v e r s e P o l i s h N o t a t i o n( R P N ) c a l c u l a t o r . W e w i l l c o m e b a c k t t h i sl a t e r .

T h s t a c k u s e s t h l a s t - i n / f i r s t - o u t ( L I F O )m e t h o d o d a t a s t o r a g e . V i r t u a l l y a l o p e r a t i o n sw o r k w i t h t h e s t a c k .

3 I N T E R P R E T E R : F o r t h , l i k e B A S I C , i a i n t e r p r e t e r . T h i s m e a n s t h a t o n f i r s t c r e a t e sF o r t h p r o g r a m w i t h t h e d i t o r a n d t h e n s t a r t s t h p r o g r a m w i t h t h a p p r o p r i a t e c o m m a n d . E r r o rc h e c k i n g o c c u r s w h i l e t h p r o g r a m i r u n n i n g .T h e r e i n t e d i o u s w a i t i n g w h i l e t h p r o g r a mc o m p i l e s ; i c a n b e s t a r t e d i m m e d i a t e l y . T h i s h a t h r e s u l t t h a t i n t e r p r e t e d p r o g r a m s a r t y p i c a l l y s l o w e r t h a n c o m p i l e d p r o g r a m s . T h e t i m ef a c t o r d i f f e r e n c e i n o a g r e a t w i t h F o r t h . T h ei n t e r p r e t e r i d i v i d e d i n t o t e x t i n t e r p r e t e ra n a a d d r e s s i n t e r p r e t e r . T h e t e x t i n t e r p r e t e rc h e c k s t h w o r d s i t h d i c t i o n a r y , a n w h e n t h w o r d i f o u n d , t h a d d r e s s i n t e r p r e t e r i a c t i v a t e d . T h i s i n t e r p r e t e r w o r k s w i t h a b s o l u t ea d d r e s s e s , c a l l i n g i t u r n e a c h o f t h e w o r d sw h i c h m a k e u u s e r - d e f i n e d o h i g h e r - l e v e lF o r t h w o r d . T h e s e a d d r e s s e s a r " c o m p i l e d " i n t ow o r d ' s d i c t i o n a r y e n t r y a t h t i m e i t i sd e f i n e d .

4 A S S E M B L E R : M a n y F o r t h i n t e r p r e t e r s c o n t a i n a a s s e m b l e r . T h i s a s s e m b l e r c a b u s e d t d e f i n ew o r d s w h i c h w i l l t h e n e x e c u t e m a c h i n e l a n g u a g er o u t i n e s w h e n c a l l e d . T h i s m e t h o d o p r o g r a m m i n gi s o m e t i m e s r e q u i r e d f o I / O — e s t a b l i s h i n g

1 1

Page 126: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 126/290

T r i c k s T i p s

c o n t a c t w i t h t h e x t e r n a l w o r l d . F o r t h i t s e l fb e a r s c e r t a i n r e s e m b l a n c e t a s s e m b l y l a n g u a g e ;i t i s q u i t e f a s t , b u f a e a s i e r t l e a r n .

5 M E M O R Y : M e m o r y i i m p o r t a n t f o a n p r o g r a m m i n g l a n g u a g e , a n d n o l e s s s f o r F o r t h ,a l t h o u g h i t y p i c a l l y r e q u i r e s f a r l e s s t h a no t h e r p r o g r a m m i n g l a n g u a g e s . I F o r t h , m e m o r y c a b t r e a t e d l i k e b l o c k s o d i s k d r i v e , a n d , t oc e r t a i n e x t e n t , b l o c k s o d i s k d r i v e c a n b et r e a t e d l i k e m e m o r y .

1 1

Page 127: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 127/290

Page 128: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 128/290

T r i c k s T i p s

A f t e r t h " + k e i p r e s s e d , t h a d d i t i o n i c a r r i e do u t . T h " + o p e r a t i o n r e m o v e s t h t o t w v a l u e s f r o m t h s t a c k , a d d s t h e m , a n d t h e m p u s h e s t h r e s u l t b a c k o n t o t h s t a c k . T h e s t a c k n o l o o k s l i k e t h i s :

T O

B O T T O M

P r e s s i n g t h " 4 k e p u s h e s t h d o w n o n p l a c e a n p u t st h o t o p :

T O

B O T T O M

E n t e r i n g t h n u m b e r m o v e s t h o l a n t h o n p l a c ed o w n o t h e s t a c k :

1 2

Page 129: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 129/290

Page 130: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 130/290

T r i c k s T i p s

a n c o m p u t e r w o r k s o t h i s p r i n c i p l e . O H e w l e t t - P a c k a r dc a l c u l a t o r s , a i F o r t h , t h i s p r o c e s s i m a d e e x p l i c i t .T h o s e w h h a v e d o n e s o m e p r o g r a m m i n g i a s s e m b l y l a n g u a g ew i l l b a b l e t l e a r n F o r t h w i t h f e d i f f i c u l t i e s , b u e v e nt h n o v i c e l e a r n i n g F o r t h w i l l h a v e f e w e r p r o b l e m s t h a n h em i g h t t h i n k . T h g r e a t e s t o b s t a c l e t l e a r n i n g F o r t h i t h a ti t i s s d i f f e r e n t f r o m m o s t o t h e r l a n g u a g e s , n o t t h a t i t i ss d i f f i c u l t t u n d e r s t a n d o n i t s o w n .

W e w i l l n o p r e s e n t s m a l l F o r t h p r o g r a m w h i c h w i l lc l a r i f y t h o p e r a t i o n o t h s t a c k a n d a l s o i l l u s t r a t e t h p r o c e s s o d e f i n i n g n e w o r d s a n a d d i n g t h e m t t h F o r t hv o c a b u l a r y . T h p r o g r a m t a k e s t h e c u b e o n u m b e r ; s i n c et h e r e i n c o m m a n d t p e r f o r m t h i s c a l c u l a t i o n , w e m u s td e f i n e o n e :

C U B E T H I S W O R D I B E I N G D E F I N E DD U P D U P C O P Y T H N U M B E R T W I C E O N S T A C K

M U L T I P L I E S T O P T W O S T A C K V A L U E S 2

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

C U B E

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

O

1 2

Page 131: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 131/290

T r i c k s T i p s

T h w o r d C U B E i n o p a r t o o u F o r t h d i c t i o n a r y a n w c a u s i d i r e c t l y o w i t h i n p r o g r a m . I w i l l r e m a i ns o n l y a l o n g a t h c o m p u t e r i t u r n e d o n u n l e s s w s a v ei o n t o d i s k .

T h c o m m a n d D U m a k e s c o p y o t h v a l u e a t h t o p o ft h s t a c k a n p u t s t h i s c o p y b a c k o t h e s t a c k . S i n c e w w a n t n o t t h e s q u a r e b u t t h e c u b e o f t h e n u m b e r , w e m u s t m a k et w c o p i e s o t h e n u m b e r . I t h n u m b e r w a a t h t o p o ft h e s t a c k , t h e s t a c k w o u l d n o l o o k l i k e t h i s :

T O

B O T T O M

N o w m u s t m u l t i p l y t h n u m b e r s t o g e t h e r . t o t a l o t w m u l t i p l i c a t i o n s a r n e c e s s a r y . F o r t h u s e s t h u s u a l " * s y m b o l f o m u l t i p l i c a t i o n . A f t e r w h a v e p e r f o r m e d t h m u l t i p l i c a t i o n s , t h c u b e w i l l b a t h t o p o f t h s t a c k ,a n d w e c a e n d o u r d e f i n i t i o n . N o t e t h a t d u r i n g c o l o nd e f i n i t i o n n o n e o t h e s e o p e r a t i o n s a r a c t u a l l y c a r r i e do u t . T h e c o l o n p l a c e s F o r t h i w h a t i c a l l e d t h c o m p i l em o d e , w h e r e i s e a r c h e s f o e a c h w o r d i t h d e f i n i t i o n a n m a k e s n o t e o f t h a t w o r d ' s a d d r e s s w i t h i n t h d i c t i o n a r y ,w h i c h i p l a c e s i t h d e f i n i t i o n f o t h n e w o r d . W h e n w n o w u s e t h i s n e w o r d , c o l o n r u n - t i m e r o u t i n e c a l l s e a c ho t h w o r d s i t u r n , t h e r e b y e x e c u t i n g t h n e c o m m a n d .H e r e a r e s o m e e x a m p l e s o o u n e w c o m m a n d ( t h e " . t e l l s

1 2

Page 132: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 132/290

T r i c k s T i p s

F o r t h t p r i n t t h e v a l u e a t h t o o t h s t a c k ) :

Y o e n t e r :

C U B EC U B E

- 1 C U B E

F o r t h r e s p o n d s :

1 . 2 5 O O

- 3 3 7 5 O

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

N o l e t ' s c o m p a r e F o r t h a n B A S I C . T h p r o g r a m w w i l lu s c a l c u l a t e s t h c u b e s o f t h e i n t e g e r s f r o m z e r o t t e n .T h F o r t h p r o g r a m w i l l m a k e u s o f o u r n e w l y d e f i n e d w o r dC U B E .

1 F o r t h

C U B E N U N B E R S1 F R O M T 1 L I F O ! !D S T A R T O L O O P

C C U B EP R I N T N U M B E R ( I A N C U B E

L O O P E N D O F L O O P

C U B E N U M B E R S0

2

1 2

Page 133: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 133/290

T r i c k s T i p s

2 B A S I C

6 1 2 2 1 3 4 5 1 7 2 O

1 R E N C A L C U L A T E C U B E S2 M I N = 0 M A X = 93 F O I = M I N T M A P R I N T 1 , 1 * 1 * 14 N E X T5 E N

R U

R E A D Y

2 6 1 2 2 1 3 4 5 1 7 2

B o t h p r o g r a m s r e q u i r e a p p r o x i m a t e l y t h s a m e n u m b e r o l i n e s , b u t h F o r t h p r o g r a m r e q u i r e s f a r l e s s s t o r a g e s p a c et h a n d o e s t h B A S I C p r o g r a m . E f f i c i e n t u s o m e m o r y i n o t .

1 2

Page 134: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 134/290

Page 135: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 135/290

Page 136: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 136/290

T r i c k s T i p s

C h a p t e r C P / M o t h C o m m o d o r e 6

6 . I n t r o d u c t i o n t C P / M

C P / M i o n e o f t h e m o s t w i d e l y - u s e d m i c r o c o m p u t e ro p e r a t i n g s y s t e m . I h a b e c o m e t h " s t a n d a r d " o p e r a t i n gs y s t e m , i n a s m u c h a s u c h t h i n g e x i s t s . C P / M h a w i t h s t o o dt h t e s t o f t i m e , s o m e t h i n g w h i c h c a n n o t b s a i d o m a n yo t h e r m i c r o c o m p u t e r o p e r a t i n g s y s t e m s . M o s t o f t h e b u g s h a v eb e e n w o r k e d o u a n t h s y s t e m i r e a s o n a b l y t r u s t w o r t h y .

W h a t c a n t h e C o m m o d o r e 6 u s e r g a i n f r o m t h i s o p e r a t i n gs y s t e m ? H i u s e d t B A S I C 2 . a n t h C o m m o d o r e D O S , w h a n o t h e r o p e r a t i n g s y s t e m ? T h i s q u e s t i o n i n o o f t e n f o u n do u t s i d e o C o m m o d o r e u s e r s w h o h a v e n o s e e n m u c h o f t h er e s t o f t h e c o m p u t e r w o r l d . T h e r e o n f i n d s a u n d r e a m e d - o fq u a n t i t y o s o f t w a r e . N o t h a t t h 6 d o e s n o h a v es i g n i f i c a n t a m o u n t o s o f t w a r e a v a i l a b l e f o i t b u i i n o t h i n g c o m p a r e d t t h s h e e r v o l u m e a v a i l a b l e f o r C P / M .

N o o n l y c a t h u s e r p r o f i t f r o m t h a v a i l a b i l i t y o C P / M s o f t w a r e , b u t t h e p r o g r a m m e r a w e l l . H e c a n w r i t e h i s o f t w a r e f o m u c h l a r g e r b o d y o u s e r s t h a n e v e r b e f o r ep o s s i b l e . W r i t i n g p r o g r a m s p e c i f i c a l l y f o r t h e C o m m o d o r e6 l i m i t s t h e p o t e n t i a l u s e r s t 6 o w n e r s , b u t m a n yd i f f e r e n t c o m p u t e r s c a n u s e C P / M , s w r i t i n g p r o g r a m t r u u n d e r C P / M g r e a t l y i n c r e a s e s t h p o t e n t i a l m a r k e t f o p r o g r a m . M a n y p r o g r a m m e r s w r i t i n g f o a " e x o t i c " o p e r a t i n gs y s t e m h a v e h e a r d " A n d w h e n w i l l t h p r o g r a m b a v a i l a b l e o C P / M ? "

1 2

Page 137: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 137/290

T r i c k s T i p s

A t h i s p o i n t w m u s t p o i n t o u o n m a j o r p r o b l e m w i t he v e r y C P / M s y s t e m :

C P / M I N O T H S A M E A C P / M !

U n f o r t u n a t e l y , m o s t c o m p u t e r m a n u f a c t u r e r s u s t h e i ro w m o d i f i e d v e r s i o n o C P / M . D e s p i t e t h a p p a r e n tc o m p a t i b i l t y , i t i s n o p o s s i b l e t i n t e r c h a n g e p r o g r a m s o t r a n s f e r d a t a . T h C P / M f o r t h e C o m m o d o r e 6 a l s o h a s i t p e c u l i a r i t i e s . F o e x a m p l e , t h I / b y t e o C P / M i n o i m p l e m e n t e d , t h 6 c a d i s p l a y o n l y 4 c h a r a c t e r s p e r l i n eo t h v i d e o d i s p l a y , a n d e v e n t h d i s k f o r m a t i n o c o m p a t i b l e w i t h o t h e r c o m p u t e r s . W e w i l l r e t u r n t t h e s ep r o b l e m s a n h o t s o l v e t h e m l a t e r .

C P / M h a c e r t a i n s t a n d a r d s , s o m e o w h i c h w h a v e a l r e a d ym e n t i o n e d :

1 T h c o m p u t e r o w h i c h i r u n s m u s t h a v e a l e a s t 4 8 o R A M .

2 C P / M o c c u p i e s t h e f r e e m e m o r y a a d d r e s s$ 0 1 0 0 .

3 M o s t p r o g r a m s r e q u i r e v i d e o d i s p l a y c a p a b l eo d i s p l a y i n g 2 ( o 2 5 l i n e s o 8 c h a r a c t e r s .

4 M u c h C P / M s o f t w a r e i a v a i l a b l e o n l y o i n c hd i s k s .

L e t ' s t a k e b r i e f l o o k a t h e s e s t a n d a r d s . F i r s t , t h ec o m p u t e r m u s t h a v e a l e a s t 4 8 o f R A M . V i r t u a l l y a l c u r r e n t l y p r o d u c e d c o m p u t e r s c a b e x p a n d e d t 4 8 o R A M ,

1 2

Page 138: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 138/290

T r i c k s T i p s

a n t h C o m m o d o r e 6 a l r e a d y c o m e s w i t h m o r e t h a n t h i s . T h a b i l i t y o f t h e 6 t s w i t c h t h R O M s o u i a l s o i m p o r t a n tf o i m p l e m e n t i n g C P / M a n o t h e r p r o g r a m s w h i c h c o u l d n o t b eu s e d o c o m p u t e r s w i t h o u t t h i s c a p a b i l i t y . C P / M c a b p l a c e d w h e r e i t i s s u p p o s e d t g o , a t a d d r e s s $ 0 1 0 0 .

T h e f i r s t p r o b l e m w i t h i m p l e m e n t i n g C P / M o t h 6 i t h l i m i t e d s c r e e n s i z e . C P / M p r o g r a m s s u c h a W o r d s t a r ,D a t a s t a r , a n d o t h e r s r e q u i r e a n 8 0 c o l u m n d i s p l a y f o p r o p e ro p e r a t i o n . T h C o m m o d o r e 6 4 h a s o n l y 4 c h a r a c t e r s , a l t h o u g ht h e r e i s s o l u t i o n w h i c h w w i l l s a y m o r e a b o u t i s e c t i o n6 . 3 .

T h l a s t p r o b l e m c o n c e r n s t h d i s k d r i v e . W m e n t i o n e dt h a t m u c h o t h C P / M s o f t w a r e i a v a i l a b l e o i n c h d i s k s .T h 1 5 4 1 d i s k d r i v e u s e s 1 / i n c h d i s k s . M o r e a n m o r ec o m p u t e r m a n u f a c t u r e r s a r u s i n g t h 1 / i n c h d i s k d r i v e sa n s m o r e C P / M s o f t w a r e i b e i n g m a d e a v a i l a b l e f o t h e s ef o r m a t s . U n f o r t u n a t e l y , n o n e i y e a v a i l a b l e i t h e 1 5 4 1f o r m a t .

W h a t d o e s C P / M c o n s i s t o f

C P / M i a o p e r a t i n g s y s t e m c o m p o s e d o s e v e r a l p a r t s . M o r ee x a c t l y , i c o n s i s t s o f o u r m a j o r p a r t s .

1 B I O S ( B a s i c I n p u t / O u t p u t S y s t e m ) : A t h n a m ei m p l i e s , t h B I O S i c o n c e r n e d w i t h c o m m u n i c a t i n gw i t h t h o u t s i d e w o r l d . I t i s u s e d t s e n di n f o r m a t i o n t t h p r i n t e r , t h t e r m i n a l( s c r e e n ) , t t h d i s k d r i v e , a n s o n T h e B I O Sh a n u m b e r o f u n c t i o n c a l l s w h i c h t e l l t h o p e r a t i n g s y s t e m h o w t h i s c o m m u n i c a t i o n w i l l t a k e

1 3

Page 139: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 139/290

T r i c k s T i p s

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

2 B D O S ( B a s i c D i s k O p e r a t i n g S y s t e m ) : T h i s p a r tc o n t r o l s t h d i s k d r i v e s — t h e m a n a g e m e n t o f t h ed i r e c t o r y a n t h a c t u a l r e a d a n d w r i t e c o m m a n d s .T h e s e p r o c e d u r e s a r a l s o c o n t r o l l e d b i n d i v i d u a l f u n c t i o n c a l l s .

3 C C ( C o n s o l e C o m m a n d P r o c e s s o r ) : T h o p e r a t i n gs y s t e m m u s t b t o l d w h a t i i y o w a n t i t d o T h i s i g e n e r a l l y d o n e v i a t h C o m m o d o r e 6 4 ' sk e y b o a r d . T h e C C P t r a n s m i t s y o u r c o m m a n d s t t h C P / M s y s t e m .

4 T P ( T r a n s i e n t P r o g r a m A r e a ) : T h i s i t h f r e ep r o g r a m a r e a w h i c h i a v a i l a b l e t t h e u s e r . T h i ss t o r a g e a r e a i u s e d w h e n y o u w r i t e o u s p r o g r a m .

T h i s i t h l a y o u t o t h B I O S , B D O S , C C P , a n d T P A i m e m o r y :

N a m e : A d d r e s s :

F D O S ( B I O S B D O S ) $ 9 C 0 0

C C P $ 9 4 0 0

T P $ 0 1 0 0

S y s t e m p a r a m e t e r s $ 0 0 0 0

1 3

Page 140: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 140/290

Page 141: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 141/290

T r i c k s T i p s

2 W r i t e t s e q u e n t i a l f i l e2 C r e a t e f i l e2 C h a n g e f i l e n a m e ( R E N A M E )2 4 I n p u t p o s s i b l e d r i v e s2 R e a d c u r r e n t d r i v e n u m b e r2 6 S e t D M a d d r e s s2 R e a d a d d r e s s2 8 S e t w r i t e p r o t e c t2 R e a d r e a d / w r i t e p o i n t e r3 S e r e a d / w r i t e p o i n t e r3 R e a d a d d r e s s o f d i s k p a r a m e t e r s3 R e a d / s e t u s e r i 3 R e a d f r o m r a n d o m f i l e3 W r i t e t r a n d o m f i l e3 C a l c u l a t e p r o g r a m l e n g t h3 R e a d a d d r e s s o r e c o r d

A l o t h e s e f u n c t i o n s a r c a l l e d i s p e c i f i cp a t t e r n . I o r d e r t c l a r i f y t h i s , w e m u s t l e a r n l i t t l eb i t a b o u t 8 0 8 0 m a c h i n e l a n g u a g e . B e c a u s e C P / M w a d e v e l o p e do t h i s p r o c e s s o r a n t h Z - 8 0 m i c r o p r o c e s s o r w h i c h i f o u n di t h C o m m o d o r e C P / M m o d u l e a l s o u n d e r s t a n d s t h 8 0 8 0m a c h i n e l a n g u a g e , C P / M a p p l i c a t i o n s a r w r i t t e n i i t I y o u a r e n o f a m i l i a r w i t h t h i s m a c h i n e l a n g u a g e , b u t y o uw o u l d l i k e t d e l v e d e e p e r i n t o C P / M , w s t r o n g l y r e c o m m e n dt h a t y o g e C P / M h a n d b o o k s u c h a R o d n e y Z a k s C P / MH a n d b o o k a n g o o d b o o k o Z - 8 0 o 8 0 8 0 m a c h i n e l a n g u a g e .

W h a t d t h e s e f u n c t i o n c a l l s l o o k l i k e ?

A a e x a m p l e , w w i l l r e a d t h v e r s i o n n u m b e r o t h C o m m o d o r e C P / M ( 2 . 2 ) w i t h t h f o l l o w i n g r o u t i n e :

1 3

Page 142: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 142/290

T r i c k s T i p s

M V C A L LC P

C , 1 20 0 0 52 0

; F U N C T I O N 1 ; J U M P T D D O S; $ 2 0 I N D I C A T E S C P / M . 2 . 0

F i r s t t h r e g i s t e r i l o a d e d w i t h t h v a l u e 1 2 t h f u n c t i o n n u m b e r f o r e a d i n g t h C P / M v e r s i o n n u m b e r . T h i sr e g i s t e r i a l w a y s l o a d e d w i t h t h f u n c t i o n n u m b e r b e f o r et h b r a n c h i m a d e t a d d r e s s 0 0 0 5 . C P / M n o k n o w s t h a t w w a n t t f i n d o u t h v e r s i o n n u m b e r , a n d b r a n c h e sa u t o m a t i c a l l y t t h p o i n t i t h C P / M s y s t e m w h e r e t h v e r s i o n n u m b e r w i l l b e r e a d . B D O S t h e n j u m p s b a c k t o u r o u t i n e a f t e r p l a c i n g t h v e r s i o n n u m b e r i t h a c c u m u l a t o r .I t h v a l u e i $ 2 0 t h e n w e k n o w t h a t t h e v e r s i o n n u m b e r i a l e a s t 2 . 0 . T h i s i n f o r m a t i o n i v e r y i m p o r t a n t i w w a n tt w r i t e p r o g r a m w h i c h u s e s r a n d o m f i l e a c c e s s b e c a u s e a l C P / M v e r s i o n s b e f o r e 2 . c a w o r k o n l y w i t h s e q u e n t i a l f i l e s( s e e c h a p t e r 8 ) I w w a n t o u p r o g r a m t r u o C P / Mc o m p u t e r o t h e r t h a n t h C o m m o d o r e 6 4 w c a e a s i l yd e t e r m i n e i i w i l l r u o n o b r e a d i n g t h v e r s i o nn u m b e r a n c h e c k i n g t s e t h a t i t i s 2 . o g r e a t e r .

T h v a r i o u s r e g i s t e r s p l a y a i m p o r t a n t r o l e i t h C P / M f u n c t i o n c a l l s . T h e f i r s t t m e n t i o n i t h r e g i s t e rw h i c h c o n t a i n s t h f u n c t i o n n u m b e r p r i o r t t h B D O S / B I O Sc a l l . A f t e r t h e x e c u t i o n o t h a p p r o p r i a t e r o u t i n e , t h o t h e r r e g i s t e r s c o n t a i n t h d e s i r e d i n f o r m a t i o n . S o m ef u n c t i o n s d o n o t r e t u r n a n y i n f o r m a t i o n , r a t h e r t h e y o u t p u ti n f o r m a t i o n t s o m e d e v i c e , o i n f o r m t h o p e r a t i n g s y s t e mi t s e l f o s o m e t h i n g . F o t h e s e t y p e s o c a l l s , t h a p p r o p r i a t e r e g i s t e r o r e g i s t e r s a r l o a d e d w i t h t h i n f o r m a t i o n , t h r e g i s t e r i l o a d e d w i t h t h f u n c t i o nc o d e , a n t h e n c a l l i m a d e .

1 3

Page 143: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 143/290

Page 144: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 144/290

T r i c k s T i p s

D I B d i s p l a y s t h e n t i r e d i r e c t o r yl i s t i n g o f t h e d i s k e t t e i d r i v e ( 1 ) . " A n a b u s e d i p l a c e o B c a u s i n g t h d i r e c t o r y o f t h e d i s k i d r i v e ( 0 t b d i s p l a y e d .D I R < n a m e . e x t > o n l y i n d i c a t e s w h e t h e r o n o t t h e g i v e n f i l e i o t h d i s k e t t e . T h n a m e m a b u t e i g h t c h a r a c t e r s l o n g ,m u s t s t a r t w i t h l e t t e r , a n m a y c o n t a i nn s p e c i a l c h a r a c t e r s ( p u n c t u a t i o n ) e x c e p tt h e x t e n s i o n s e p a r a t o r , t h p e r i o d , " e x t "i t h r e e - l e t t e r e x t e n s i o n o t h p r o g r a mn a m e . I i n o r m a l l y u s e d t i n d i c a t e t h t y p e o p r o g r a m . F o e x a m p l e , o n l y p r o g r a m sw h i c h e n i C O M m a y b e x e c u t e d d i r e c t l y .T X i n d i c a t e s t h a t t h e f i l e c o n t a i n s t e x t ,B A i n d i c a t e s B A S I C p r o g r a m , a n d s o n D I R < * . e x t > d i s p l a y s a l p r o g r a m s e n d i n gw i t h e x t . D I * . C O M w o u l d d i s p l a y a l p r o g r a m s e n d i n g w i t h . C O M , i . e . a l d i r e c t l y - e x e c u t a b l e p r o g r a m s .

S e e t h e C P / M m a n u a l f o o t h e r o p t i o n s w i t ht h D I R c o m m a n d .

H e r e i t h f o r m a t o f t h e d i r e c t o r y l i s t i n g w h e nu s i n g t h D I c o m m a n d o t h C o m m o d o r e 6 4

A > D I RA A A A

M O V C P MS U B M I TE D D

C O C O C O C O

P I X S U BA S L O A D

C O C O C O C O

1 3

Page 145: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 145/290

Page 146: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 146/290

T r i c k s T i p s

5 S A V E : T h i s c o m m a n d a p p e a r s q u i t e c o m p l i c a t e da f i r s t . I i n o r m a l l y u s e d t s a v e p r o g r a mm o d i f i e d w i t h D D T , o r f o s a v i n g m o d i f i e d C P / Mv e r s i o n . T h f o r m a t i s

S A V E < n u m b e r o p a g e s > < n a m e . e x t >

T h n u m b e r o p a g e s i t h n u m b e r o 2 5 6 - b y t e" p a g e s " t b s a v e d . T h c o m m a n d

S A V E 5 T E S T . C O M

p u t s t h c o n t e n t s o m e m o r y f r o m a d d r e s s $ 0 1 0 0( s t a r t o f t h e T P A ) t a d d r e s s $ 3 2 F F u n d e r t h n a m e T E S T . C O M . T h e l e n g t h i 5 0 * 2 5 6 .

6 U S E R : T h i s c o m m a n d a l l o w s t h d i r e c t o r y t b d i v i d e d u f o d i f f e r e n t u s e r s . I t i s p o s s i b l e t p r o t e c t c e r t a i n a r e a s o f t h e d i r e c t o r y f r o ma c c e s s b y o t h e r u s e r s ( o o t h e r c o m p u t e r s ) . T h i sc o m m a n d h a n r e a l v a l u e o t h C o m m o d o r e 6 4 h o w e v e r . T h f o r m i s

U S E R u s e r n u m b e r

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

T h e s e a r t h c o m m a n d s w h i c h e v e r y c o m p u t e r u s i n g t h C P / M o p e r a t i n g s y s t e m u n d e r s t a n d s . O n l y t h U S E R c o m m a n d i

1 3

Page 147: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 147/290

T r i c k s T i p s

n e s i n c e v e r s i o n 2 . 0 . A l o t h e r s b e l o n g t t h s t a n d a r dC P / M c o m m a n d s e t . I t h e n e x t p a g e s w w i l l p r e s e n t s h o r to v e r v i e w o f t h e s t a n d a r d C P / M p r o g r a m s : P I P , E D D D T , a n S T A T . T h e y a r s u p p l i e d o e v e r y C P / M s y s t e m d i s k e t t e , b u tt h e y a r e p r o g r a m s , n o c o m m a n d s . T h e y s e r v e t e x p a n d t h c o m m a n d s a v a i l a b l e o C P / M , b u t h e y m u s t b e f i r s t l o a d e d i f r o m d i s k .

1 3

Page 148: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 148/290

T r i c k s T i p s

6 . 2 T h e i n d i v i d u a l C P / M p r o g r a m s

W h a t w o u l d C P / M b w i t h o u t i t f r a m e w o r k o u t i l i t yp r o g r a m s ? D i g i t a l R e s e a r c h , t h p r o d u c e r o f C P / M , h a m a d es u r e t h a t t h e u s e r c a s t a r t p r o g r a m m i n g i m m e d i a t e l y . ( N o t et C o m m o d o r e 6 u s e r s : N o v e r s i o n o B A S I C c o m e s w i t h t h C o m m o d o r e C P / M a l t h o u g h o n m a b a d d e d l a t e r ) .

T h f o l l o w i n g p r o g r a m s b e l o n g t t h C P / M s t a n d a r d :

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

A S M . C O M

L 0 A D . C O M

T h i s i a a s s e m b l e r p r o v i d e d f o p r o g r a m m i n gi 8 0 8 0 a s s e m b l y l a n g u a g e .

T h i s p r o g r a m s m a k e s r e a d y - t o - r u n p r o g r a m s o u o a s s e m b l e d p r o g r a m s ( p r o g r a m s w i t h t h e x t e n s i o n . H E X ) .

D U M P . C O M W i t h t h i s p r o g r a m p r o g r a m ( . C O M ) c a b d i s p l a y e d o t h s c r e e n i r e a d a b l eh e x a d e c i m a l f o r m a t .

P I P . C O M P I i p r o g r a m t e x c h a n g ed i f f e r e n t p e r i p h e r a l d e v i c e s .

d a t a b e t w e e n

E D . C O M T h C P / M t e x t e d i t o r . T h i s p r o g r a m i u s e f u lf o c r e a t i n g t e x t , a s s e m b l y l a n g u a g e s o u r c ep r o g r a m s a n s o n

1 4

Page 149: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 149/290

T r i c k s T i p s

S Y S G E N . C O M P I c a o n l y c o p y f i l e s , s S Y S G E N i n e e d e dt w r i t e t h i n d i v i d u a l B I O S t r a c k s o t h d i s k a n d t h e r e b y g e n e r a t e n e w B I O S ( s e es e c t i o n 6 . 3 ) .

M 0 V C P M . C O M T h i s p r o g r a m f i t s t h s t a n d a r d C P / M t y o u rs p e c i a l t y p e o c o m p u t e r ( s e e s e c t i o n 6 . 3 ) .

S U B M I T . C O M I o f t e n h a p p e n s t h a t t h s a m e i n p u t m u s t b e n t e r e d r e p e a t e d l y . T h e S U B M I T c o m m a n d a l l o w sy o t c r e a t e f i l e o t h i s i n p u t w h i c h i w i l l e n t e r a t h a p p r o p r i a t e t i m e ( s u c h a s e t t i n g c e r t a i n s t a r t - u p p a r a m e t e r s ) .

X S U B . C O M T h i s p r o g r a m a l s o e a s e s t h w o r k o e n t e r i n gr e p e a t e d l y o c c u r r i n g c o m m a n d s . I i o n l yc o m b i n a t i o n w i t h S U B M I T . I a l l o w s m a n u a li n p u t , o v e r t h k e y b o a r d , d u r i n g t h o p e r a t i o n o S U B M I T .

A t h i s p o i n t w c a n n o t d e a l w i t h a l l o f t h e s e p r o g r a m si d e t a i l . W e s h a l l l i m i t o u r p r e s e n t a t i o n t b r i e fi n t r o d u c t i o n t t h r e e o t h m o s t c o m m o n l y u s e d p r o g r a m s .M o r e i n f o r m a t i o n c a b o b t a i n e d f r o m t h C P / M m a n u a l .

S T A T

S T A T i o n o t h m o r e i m p o r t a n t C P / M p r o g r a m s . I m i g h t a l s o b e c a l l e d t h S T A T U S p r o g r a m b e c a u s e o n c a o b t a i n g r e a t d e a l o i n f o r m a t i o n a b o u t t h c o n d i t i o n o

1 4

Page 150: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 150/290

T r i c k s T i p s

t h e n t i r e s y s t e m f r o m i t S T A T n o o n l y g i v e s t h r e m a i n i n gs p a c e o n t h e d i s k e t t e a n d t h e l e n g t h o f t h e f i l e s , b u i c a a l s o a l t e r t h r e a d / w r i t e p o i n t e r w h i c h i n d i c a t e sw h e t h e r t h d i s k c a n b e w r i t t e n t a n r e a d f r o m , o r m a o n l y b e r e a d f r o m . T h e r e i o n l i m i t a t i o n w h e n u s i n g t h C o m m o d o r e 6 v e r s i o n o f C P / M . T h e I / b y t e i n o i m p l e m e n t e d w h i c h m e a n s t h a t t h e i n d i v i d u a l a s s i g n m e n t sc a n n o t b c h a n g e d . T h i s s h o u l d n o t b e p r o b l e m i n o r m a lu s e , h o w e v e r .

A e x a m p l e o f t h e S T A T p r o g r a m :

A > S T A T V A L :

T B M P R / 0 D I S K : D : = R / OS E T I N D I C A T O R : D : F I L E N A M E . T Y P $ R / 0 $ R / W $ S Y S $ D I RD I S K S T A T U S D S K : D : D S K :U S E R S T A T U S U S R :I O B Y T E A S S I G N :

C O N : T T Y : C R T : B A T : U C 1 :R D R : T T Y : P T R : U R 1 : U R 2 :P U N : T T Y : P T P : U P 1 : U P 2 :L S T : T T Y : C R T : L P T : U L 1 :

H e r e w c a f i n d o u w h i c h v a l u e s a n d i w h a t f o r m w e c a n( t h e o r e t i c a l l y ) c h a n g e , b u a a l r e a d y m e n t i o n e d , t h v a l u e s

u n d e r I O B Y T E c a n n o t b c h a n g e d o t h C o m m o d o r e 6 4

I w w a n t t p l a c e w r i t e p r o t e c t o d i s k , f o e x a m p l e , w e e n t e r S T A T A : R / 0 . T h i s w r i t e p r o t e c t r e m a i n s a l o n g a t h d e v i c e i t u r n e d o n T f i n d o u t t h e C P / M d e v i c e

1 4

Page 151: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 151/290

T r i c k s T i p s

a s s i g n m e n t s , e n t e r S T A T A : D E V : . O n t h e 6 4 t h e r e s u l t w i l lb e

A > S T A T D E V :C O N : I T T Y :R D R : I T T Y :P U N : I T T Y :L S T : I T T Y :

C h a n g i n g a n o t h e s e a s s i g n m e n t s w i l l h a v e n e f f e c t o t h C o m m o d o r e 6 4

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

A > S T A T D S K :

A D R I V E C H A R A C T E R I S T I C S1 0 8 8 : 1 2 B Y T E R E C O R D C A P A C I T Y

1 3 6 : K I L O B Y T E D R I V E C A P A C I T Y6 4 3 B Y T E D I R E C T O R Y B N T R I E S6 4 C H E C K E D D I R E C T O R Y E N T R I E S

1 2 8 : R E C O R D / E X T E N T8 R E C O R D / B L O C K

3 4 S E C T O R S / B L O C K2 R E S E R V E D T R A C K S

1 4

Page 152: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 152/290

T r i c k s T i p s

P I

P I i u n i v e r s a l p r o g r a m f o c o p y i n g f i l e s . N o o n l yc a i c o p y b e t w e e n d i f f e r e n t d i s k d r i v e s , i c a a l s o s e n dd a t a i n t e n d e d f o r t h e s c r e e n t t h p r i n t e r . T h i s h a s t h ea d v a n t a g e t h a t t h e p r o g r a m s t h e m s e l v e s d n o h a v e t b c h a n g e d i o r d e r t h a v e t h e m p r i n t o u r e s u l t s o t h p r i n t e r . I o r d e r t c o p y e n t i r e d i s k e t t e , t h f o r m P I PB : = A : * . * i u s e d . T h i s c o m m a n d c o p i e s a l t h e f i l e s f r o md r i v e t d r i v e B T s e n d d a t a t t h e p r i n t e r , w e w o u l du s c o m m a n d s u c h a P I L S T : = D U M P . A S M . N o w , p r o v i d e d t h a tt h p r i n t e r i c o n n e c t e d , t h e n t i r e p r o g r a m D U M P . A S M w i l lb p r i n t e d .

E

T h t e x t e d i t o r a l l o w s i n p u t o t e x t o p r o g r a m s w h i c hw i l l b l a t e r c o m p i l e d o a s s e m b l e d , s u c h a F O R T R A N , C O B O L ,o a s s e m b l y l a n g u a g e p r o g r a m s . W o r k i n g w i t h E r e q u i r e s s o m ep r a c t i c e ; i w i l l a p p e a r s o m e w h a t c o m p l i c a t e d t C o m m o d o r eu s e r s b u i w i l l n o t a k e l o n g t b e c o m e f a m i l i a r w i t h t h i ss i m p l e e d i t o r . A e x a m p l e :

A > E D T E S T . T X TN E F I L E* T H I S I T H F I R S T T E X T L I N EA N D T H I S I T H S E C O N D< C T R L > - Z p r e s s t h C T R L a n t h k e

a t h s a m e t i m e* A

1 4

Page 153: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 153/290

T r i c k s T i p s

T h e s e c o m m a n d s w r i t e t h t w o l i n e s o f t e x t s h o w n b e n e a t h t h " * I " t o d i s k f i l e c a l l e d T E S T . T X T . T h M * t f i t h e d i t o r ' sc o m m a n d p r o m p t . E n t e r i n g t h c o m m a n d e n d s t h e d i t i n gs e s s i o n a n s a v e s t h f i l e t d i s k , r e t u r n i n g y o t C P / Ma n t h A p r o m p t . T h i s f i l e c a b l i s t e d b e n t e r i n g T Y P ET E S T . T X T , O t h e r e d i t i n g c o m m a n d s f o c h a n g i n g a n m a n i p u l a t i n g t h f i l e f r o m w i t h i n E a r a l s o a v a i l a b l e ;c o n s u l t y o u r C P / M m a n u a l f o r d e t a i l s .

1 4

Page 154: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 154/290

T r i c k s T i p s

6 . A d a p t i n g s t a n d a r d C P / M s o f t w a r e t t h 6

W h a t m u s t b t a k e n i n t o c o n s i d e r a t i o n w h e n a d a p t i n gC P / M s o f t w a r e t t h h a r d w a r e o t h C o m m o d o r e 6 4 F i r s t y o B u s t r e m e m b e r t h a t t h e s c r e e n i o n l y 4 c o l u m n s a c r o s s .B e c a u s e m o s t C P / M s o f t w a r e i w r i t t e n f o a 8 c o l u m ns c r e e n , y o u w i l l n e e d a 8 c o l u m n c a r d o s o m e s o r t . I a d d i t i o n , l a r g e , f a s t d i s k d r i v e w o u l d b u s e f u l f o w o r k i n g w i t h C P / M .

T a d a p t C P / M t s p e c i f i c c o m p u t e r , t h e o p e r a t i n gs y s t e m h a s t w o p r o g r a m s a i t d i s p o s a l : M O V C P M a n S Y S G E N .M O V C P M s e t s u t h o p e r a t i n g s y s t e m f o s p e c i f i c m e m o r yc o n f i g u r a t i o n . I t i s p o s s i b l e t m a k e u s o t h m a x i m u mm e m o r y c a p a c i t y t h i s w a y . W h e n s t a r t i n g u t h C P / M s y s t e m ,t h c o m p u t e r r e s p o n d s w i t h t h m e s s a g e 4 4 C P / M . I i p o s s i b l e , h o w e v e r , t u s t h e n t i r e m e m o r y f o r C P / M . W h a v e m e n t i o n e d b e f o r e t h a t R A c a o c c u p y t h e n t i r e a d d r e s ss p a c e o t h C o m m o d o r e 6 4

T h C P / M s y s t e m c a b c o p i e d o n t o y o u r o w d i s k e t t e sw i t h S Y S G E N , a l l o w i n g y o t c r e a t e " b o o t " d i s k e t t e s , d i s kw h i c h y o c a u s t i n i t i a l i z e o " b o o t - u p " t h e C P / Ms y s t e m .

T h p r o b l e m o t r a n s f e r r i n g e x i s t i n g C P / M p r o g r a m s t t h V I C - 1 5 4 1 d i s k f o r m a t i o n e t h e g r e a t e s t o b s t a c l e s t u s i n g C P / M o t h C o m m o d o r e 6 4 I s e c t i o n 6 . w w i l lp r e s e n t m e t h o d f o t r a n s f e r r i n g s t a n d a r d C o m m o d o r e f i l e s( D O S 2 . 6 f i l e s ) t C P / M . T h i s c a n b e u s e d , t o g e t h e r w i t h a R S - 2 3 2 s e r i a l i n t e r f a c e a n t e r m i n a l p r o g r a m w h i c h a l l o w sf i l e s t b d o w n - l o a d e d t t h 6 4 t d o w n - l o a d p r o g r a m s

1 4

Page 155: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 155/290

T r i c k s & T i p s

f r o m a n o t h e r C P / M c o m p u t e r f o w h i c h s o f t w a r e i a v a i l a b l ei t h a p p r o p r i a t e f o r m a t . T h e c o n n e c t i o n b e t w e e n t h e t w om a b m a d e d i r e c t l y u s i n g s o m e t h i n g c a l l e d n u l l - m o d e mc a b l e o o v e r t h p h o n e l i n e s v i a m o d e m s . O n c e t h p r o g r a mi s a v e d a D O S 2 . 6 f i l e , i c a b t r a n s f e r r e d t C P / M a d e s c r i b e d i s e c t i o n 6 . 9 .

1 4

Page 156: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 156/290

T r i c k s T i p s

6 . 4 T h e M e m o r y m a n a g e m e n t o f t h e Z - 8 0 p r o c e s s o r

T h Z - 8 0 p r o c e s s o r o t h C P / M c a r d c a a d d r e s s t h e n t i r e 6 4 b y t e s o f t h e C o m m o d o r e 6 4 S i n c e t h Z - 8 0r e q u i r e s a d d r e s s z e r o a t h r e s e t a d d r e s s ( t h e a d d r e s s a w h i c h e x e c u t i o n w i l l s t a r t u p o n r e s e t o p o w e r - u p ) , a n t h i sa d d r e s s i a s s i g n e d a t h p r o c e s s o r p o r t o f t h 6 5 1 0 , t h ea d d r e s s i n g o f t h e m e m o r y t h r o u g h t h Z - 8 0 m i c r o p r o c e s s o r i h a n d l e d d i f f e r e n t l y t h a n t h a d d r e s s i n g t h r o u g h t h 6 5 1 0 .T h C P / M c a r d c o n t a i n s t h h a r d w a r e t c r e a t e a o f f s e t w h e na d d r e s s i n g t h m e m o r y t h r o u g h t h Z - 8 0 . T h e o f f s e t i e q u a lt $ 1 0 0 0 o 4 0 9 6 . T h i s r e s u l t s i t h f o l l o w i n g s i t u a t i o n :W h e n t h Z - 8 0 w a n t s a d d r e s s z e r o , t h h a r d w a r e m a n i p u l a t i o n so t h a d d r e s s l i n e s r e s u l t i a a d d r e s s w h i c h i e q u i v a l e n t t a d d r e s s $ 1 0 0 0 f o t h 6 5 1 0 . T o c a l c u l a t e t h c o r r e s p o n d i n g Z - 8 0 a d d r e s s f r o m 6 5 1 0 a d d r e s s , s i m p l ys u b t r a c t $ 1 0 0 0 . A l t e r n a t i v e l y , y o c a a l s o a d $ F 0 0 0 a n i g n o r e t h o v e r f l o w . T h r o u g h t h i s t r i c k , a a r e a o 4 K b y t e sf r o m a d d r e s s t $ 0 F F F o t h 6 5 1 0 i p l a c e d a t h e n o t h a d d r e s s r a n g e o f t h e Z - 8 0 ( $ F 0 0 0 - $ F F F F ) . T h i s m e m o r ya r e a c o n t a i n s t h z e r o p a g e , t h s t a c k , a n t h s c r a t c h p a dm e m o r y o f t h e 6 5 1 0 a w e l l a t h v i d e o R A M . T h o t h e r 2 f r o m $ 8 0 0 t $ F F F i u s e d b y t h C P / M c a r d t t r a n s m i t d a t ab e t w e e n t h 6 5 1 0 a n d t h e Z - 8 0 , a w e l l a p r o g r a m s t o r a g ef o r t h e 6 5 1 0 i n p u t / o u t p u t r o u t i n e s . T h Z - 8 0 d e l e g a t e s a l o f t h e i n p u t / o u t p u t t t h 6 5 1 0

L a b e l 6 5 1 0 Z 8 D e s c r i p t i o n

H S T B U F $ 0 8 0 0 0 F 8 0 0 H 2 5 6 - b y t e d i s k b u f f e rC M $ 0 9 0 0 0 F 9 0 0 H c o m m a n d r e g i s t e r f o t h 6 5 1 0D A T A $ 0 9 0 1 0 F 9 0 1 H d a t a r e g i s t e r

1 4

Page 157: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 157/290

T r i c k s T i p s

S E C T O RT R A C KD I S K N OK E Y C H A RM O D E S WI O T Y P E

$ 0 9 0 2$ 0 9 0 3$ 0 9 0 4$ 0 9 0 5$ D E O O$ 0 C F F

0 F 9 0 2 H0 F 9 0 3 H

0 F 9 0 4 H0 F 9 0 5 H0 C E 0 0 HO F C F F H

s e c t o r r e g i s t e rt r a c k r e g i s t e rr e g i s t e r f o d r i v e n u m b e rn u m b e r o t h p r e s s e d k e s w i t c h f o 6 5 1 0 / Z 8 0I / c o n f i g u r a t i o n

6 5 1 0

$ F F F F

$ D 0 0 0

$ C 0 0 0

$ 1 0 0 0

$ 0 0 0 0

6 5 1 0O P E R A T I N G

S Y S T E M

4 8

4 4

C P / M

6 5 1 0 Z 8

Z 8

O E F F F H O F F F F H

0 C 0 0 0 H

0 B 0 0 0 H

0 F 9 0 0 H

0 F 8 0 0 H

0 F 4 0 0 H

0 0 0 0 0 H

O F F F F H 0 F 0 0 0 H

B I 0 S 6 5

D I S K B U F F E R

V I D E O R A M

6 5 1 0W O R K S T O R A G E

6 5 1 0

$ O F F F

$ 0 9 0 0

$ 0 8 0 0

$ 0 4 0 0

$ 0 0 0 0

1 4

Page 158: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 158/290

Page 159: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 159/290

T r i c k s T i p s

C P / M . T h p r o g r a m " C P M " l o a d s t h e s e t h r e e s e c t o r s a a d d r e s s e s $ 0 A 0 0 t $ 0 E F F . F r o m t h e r e t h b l o c k f r o m $ 0 E 0 0 t $ 0 B F F i t r a n s f e r r e d t a d d r e s s $ 1 0 0 0 t $ 1 0 F F . T h i s i Z - 8 0a d d r e s s z e r o , a w h i c h t h c o l d - s t a r t l o a d e r w i l l b et r a n s f e r r e d . F i n a l l y , t h 6 5 1 0 s w i t c h e s i t s e l f o f w h i l es w i t c h i n g t h Z - 8 0 o n T h e Z - 8 0 b e g i n s e x e c u t i n g t h p r o g r a ma a d d r e s s z e r o , w h i c h l o a d s t h C P / M o p e r a t i n g s y s t e m f r o md i s k . T h e C C P a n d t h B D O S ( C o m m a n d C o n t r o l P r o c e s s o r a n B a s i c D i s k O p e r a t i n g S y s t e m ) o c c u p y 2 s e c t o r s o t r a c k s o n ea n t w o , f r o m t r a c k s e c t o r t t r a c k s e c t o r 1 0 T h e s es e c t o r s a r a l s o l o a d e d i o w a r m s t a r t w i t h c o n t r o l - C ;s t a r a p p e a r s o t h s c r e e n f o e a c h s e c t o r l o a d e d i n T h B I O S , w h i c h i l o a d e d i o n l y o c o l d s t a r t , o c c u p i e s f i v es e c t o r s f r o m t r a c k s e c t o r 1 t s e c t o r 1 6 T h d i r e c t o r yo c c u p i e s s e c t o r s t h r o u g h o t r a c k t h r e e .

W i t h t h C P / M u t i l i t y p r o g r a m C O P Y , o n l y t h n e c e s s a r ys e c t o r s a r e c o p i e d , d e p e n d i n g o t h o p t i o n s e l e c t e d . F o e x a m p l e , s e l e c t i n g " s y s t e m t r a c k s o n l y " c o p i e s o n l y s e c t o r s

a n a w e l l a 1 a n d t r a c k f o t h C P / M d i r e c t o r y .

I y o w a n t t c o n n e c t d i f f e r e n t d i s k d r i v e , u s i n gt h e I E E E b u f o e x a m p l e , y o u m u s t k n o w t h t r a c k a n s e c t o rl a y o u t o f t h e d r i v e . N o a d a p t a t i o n i n e c e s s a r y f o r t h e 4 0 4 0d r i v e b e c a u s e i i c o m p l e t e l y c o m p a t i b l e w i t h t h e 1 5 4 1 . T om a k e u s o t h g r e a t e r s t o r a g e c a p a c i t y o f t h e 8 0 5 0 o 8 2 5 0d u a l d r i v e s , i i n e c e s s a r y t m a k e s o m e c h a n g e s t t h " d i s k p a r a m e t e r b l o c k " o f t h e B I O S . T h e r e a r e t h v a l u e s f o t h s e c t o r s p e r t r a c k ( 2 f o r t h e 8 0 5 0 ) a n t h d i s kc a p a c i t y . I a d d i t i o n , t h e t r a c k s 3 a n 3 m u s t b s e a s i d e i n s t e a d o t r a c k 1 b e c a u s e t h d i r e c t o r y i s t o r e dt h e r e o t h 8 0 5 0 . T h e s e c h a n g e s m u s t a l s o b m a d e i t h C O P Y p r o g r a m .

1 5

Page 160: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 160/290

T r i c k s T i p s

6 . 6 T h e i n t e r a c t i o n b e t w e e n t h 6 5 1 0 a n d t h e Z - 8 0

W h e n y o u w o r k w i t h C P / M o t h C o m m o d o r e 6 4 t h t w m i c r o p r o c e s s o r s s h a r e t h w o r k . W h i l e t h Z - 8 0 s e r v e s t h a c t u a l C P / M , t h e 6 5 1 0 i b r o u g h t i n t o p l a y t h a n d l e t h i n p u t / o u t p u t o p e r a t i o n s s i n c e t h C o m m o d o r e 6 a l r e a d y h a t h e s e r o u t i n e s i i t k e r n a l R O M . T h Z - 8 0 d e l e g a t e s t h f o l l o w i n g t a s k s t t h e 6 5 1 0 :

C o m m a n d n u m b e r O p e r a t i o nr e a d s e c t o r f r o m t h d i s kw r i t e s e c t o r t t h d i s kr e a d t h k e y b o a r dd i s p l a y c h a r a c t e r o t h s c r e e ng e t h p r i n t e r s t a t u so u t p u t c h a r a c t e r t t h p r i n t e rf o r m a t t h d i s k e t t e

7 - r e s e r v e d f o f u t u r e e x p a n s i o n , s u c h a s e r i a l I /

T h t w p r o c e s s o r s c a n n o t o p e r a t e s i m u l t a n e o u s l y . T h a d d r e s s $ D E 0 0 o f t h e 6 5 1 0 ( 0 C B 0 0 H o n t h e Z - 8 0 ) i u s e d t s w i t c h b e t w e e n t h t w o . W h e n t h Z - 8 0 w a n t s t h 6 5 1 0 t e x e c u t e a I / f u n c t i o n , i s e n d s t h 6 5 1 0 t h n u m b e r o t h d e s i r e d c o d e f r o m t h a b o v e t a b l e a n s w i t c h e s i t s e l f o f w h i l e s w i t c h i n g t h 6 5 1 0 o n I d o e s t h i s b w r i t i n g M l t a d d r e s s 0 C E 0 0 H . T h e 6 5 1 0 f e t c h e s t h c o m m a n d c o d e ,e x e c u t e s t h a p p r o p r i a t e c o m m a n d , a n d s w i t c h e s o v e r t t h Z - 8 0 b y w r i t i n g M 0 t a d d r e s s $ D E 0 0 . T h Z - 8 0 c a t h e nc o n t i n u e w i t h i t p r o g r a m a t h e p o i n t w h e r e i h a p a s s e dc o n t r o l t t h 6 5 1 0 . B e c a u s e o c e r t a i n h a r d w a r er e q u i r e m e n t s , t h e f i r s t c o m m a n d e x e c u t e d a f t e r s w i t c h i n g

1 5

Page 161: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 161/290

6 5 1 0$ 0 9 0 0$ 0 9 0 1$ 0 9 0 2$ 0 9 0 3$ 0 9 0 4$ 0 9 0 5

Z - 8 00 F 9 0 0 H0 F 9 0 1 H0 F 9 0 2 H0 F 9 0 3 H0 F 9 0 4 H0 F 9 0 5 H

T r i c k s T i p s

f r o n t h 6 5 1 0 t t h Z - 8 0 m u s t b e N O ( N O p e r a t i o n ) .

S i m e m o r y l o c a t i o n s a a d d r e s s $ 9 0 0 ( 0 F 9 0 0 H f o r t h e Z -8 0 a r u s e d t t r a n s m i t p a r a m e t e r s .

P a r a m e t e rc o m m a n d n u m b e rd a t a f o r i n p u t o o u t p u ts e c t o r n u m b e rt r a c k n u m b e rd i s k n u m b e rk e n u m b e r

T h m e m o r y f r o m $ 8 0 0 t $ 8 F F ( 0 F 8 0 0 H t 0 F 8 F F H ) i u s e da b u f f e r t h o l d s e c t o r t b w r i t t e n t t h d i s k o o n w h i c h h a j u s t b e e n r e a d f r o m t h d i s k e t t e . R e a d i n g a n w r i t i n g d i s k s e c t o r s i p e r f o r m e d w i t h t h d i r e c t a c c e s sB l o c k - R e a d a n B l o c k - W r i t e c o m m a n d s .

T h k e y b o a r d p o l l i n g y i e l d s o n l y t h n u m b e r o t h d e p r e s s e d k e y . T h a s s i g n m e n t o a A S C I I v a l u e t k e h a p p e n s i t h B I O S u s i n g 2 5 6 - b y t e t a b l e a a d d r e s s $ D 0 0( 0 F D 0 0 H ) . t a b l e a a d d r e s s $ C 0 0 ( 0 F C 0 0 H ) c o n t a i n s t h a d d r e s s e s o t h c h a r a c t e r s t r i n g s a s s i g n e d t t h f u n c t i o n sk e y s . T h d e f i n i t i o n s t h e m s e l v e s s t a r t a a d d r e s s $ C 1 0( 0 F C 1 0 H ) a n d m a y c o n s i s t o f u p t 1 c h a r a c t e r s e a c h . T h e s ea s s i g n m e n t s m a y b c h a n g e d w i t h t h p r o g r a m C O N F I G .

1 5

Page 162: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 162/290

T r i c k s T i p s

6 . I m p l e m e n t i n g y o u r o w I n p u t / O u t p u t r o u t i n e s i B I O S

T h C P / M B I O S c o n t a i n s t w r o u t i n e s c a l l e d P U N C H a n R E A D E R , w h i c h a r n o u s e d i t h C o m m o d o r e 6 v e r s i o n o C P / M . T h R E A D E R r o u t i n e c u r r e n t l y r e t u r n s c o n t r o l - Z , t h m a r k e r f o t h e n o f t h e f i l e . W c a n u s e i a n t h P U N C Hv e c t o r f o r o u r o w n p u r p o s e s . T h P U N C H r o u t i n e c o u l d b u s e dt d r i v e p r i n t e r w i t h C e n t r o n i c s - t y p e p a r a l l e li n t e r f a c e , f o i n s t a n c e , a d e s c r i b e d i s e c t i o n 7 . 1 . T h d r i v e r r o u t i n e c a b f o r m u l a t e d i 6 5 1 0 c o d e , a n w c a u s t h c o m m a n d c o d e s a n w h i c h b r a n c h t l o c a t i o n s $ E 0 0a n $ F 0 0 , r e s p e c t i v e l y , t c a l l o u r d r i v e r s . T h c a l l w o u l dl o o k s o m e t h i n g l i k e t h i s :

P U N C H : ; o u t p u t c h a r a c t e r t P U N : C e n t r o n i c s p r i n t e r; c h a r a c t e r i a c c u m u l a t o r; i n t o t r a n s f e r r e g i s t e r; c o d e f o r o u r r o u t i n e

; c a l l 6 5 1 0 r o u t i n e

O u 6 5 1 0 d r i v e r m u s t b l o c a t e d a a d d r e s s $ E 0 0 ; w h a v e 2 5 b y t e s a v a i l a b l e t u s S i n c e t h r o u t i n e n e e d o n l yh a n d l e o u t p u t t i n g t h d a t a t t h e p o r t a n t h h a n d s h a k i n g ,t h i s w i l l b p l e n t y o f r o o m .

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

M O S T M V S T C A L LR E

A , D A T AA , C M 1 0 6 5 1 0

1 5

Page 163: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 163/290

T r i c k s & T i p s

M V S T C A L LL D A N R E

A , C M 1 0 6 5 1 0D A T A7 F

R E A D E R : ; g e t c h a r a c t e r f r o m R D R :; c o d e f o r o u r r o u t i n e

; c a l l 6 5 1 0 r o u t i n e; g e t c h a r a c t e r; e r a s e p a r i t y b i

T h c o m m a n d c o d e e x p e c t s t h e i n p u t r o u t i n e t b a a d d r e s s $ F 0 0 ; h e r e t o w h a v e 2 5 b y t e s a v a i l a b l e t u s Y o c a d e f i n e y o u r f a v o r i t e i n p u t d e v i c e a R D R : , s u c h a t h c a s s e t t e r e c o r d e r , a n o t h e r d i s k d r i v e , o r a n i n t e r f a c et t r a n s f e r d a t a f r o m o t h e r c o m p u t e r s . T h e R E A D E R r o u t i n ee x p e c t s t e x t d a t a i s t a n d a r d A S C I I f o r m a t . T h e n d - o f - f i l ei i n d i c a t e d b c o n t r o l - Z , a u s u a l .

1 5

Page 164: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 164/290

T r i c k s T i p s

6 . T r a n s f e r r i n g C P / M p r o g r a m s a n d d a t a t a n f r o iC o m m o d o r e B A S I C

W h e n o n w o r k s w i t h C P / N o t h C o m m o d o r e 6 4 o n n o r m a l l y d o e s n o h a v e t h a b i l i t y t l a t e r u s e p r o g r a m s o d a t a i t h n o r m a l B A S I C m o d e o f t h e 6 4 T h e s e f i l e s a r o n l y a c c e s s i b l e i t h C P / M m o d e . I t i s p o s s i b l e t t r a n s f e rf i l e s , h o w e v e r , w i t h s m a l l c h a n g e t t h B I O S .

I C P / N y o c a s e n d d a t a t t h p r i n t e r . T h i s i d o n ei B I O S 6 5 w i t h t h a p p r o p r i a t e O P E N a n P R I N T * c o m m a n d s . A t h i s p o i n t w e c a n g i a n d s i m p l y c h a n g e t h d e v i c e n u m b e ro n t h e O P E N c o m m a n d . I w s e t h n u m b e r t o o n e , a l l t h ed a t a i n t e n d e d f o t h p r i n t e r w i l l b s e n t t o t h e c a s s e t t er e c o r d e r i n s t e a d . W e m u s t e n t e r o n e a t h s e c o n d a r y a d d r e s s

w e l l , s t h a t t h t a p e f i l e w i l l b e o p e n e d f o w r i t i n g . W c a m a k e t h i s c h a n g e u s i n g t h C P / N p r o g r a m D D T . E n t e r t h f o l l o w i n g c o m m a n d s t m a k e t h c h a n g e s ( y o u r i n p u t i u n d e r l i n e d ) :

D D - S F A C 7F A C 7 0 0 F A C 8 2 - S F A D DF A D D 0 0 F A D E A - S F A E 6F A E 6 0 0 F A E 7 2

1 5

Page 165: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 165/290

Page 166: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 166/290

T r i c k s T i p s

a n a s s e m b l e i

A S T A P E . A A X

T h e n m a k e . C O N f i l e o u o i

L O A D T A P E

N o y o c a m a k e t h c h a n g e s b s i m p l y t y p i n g t h p r o g r a mn a m e T A P E f r o m C P / N .

I t i s a l s o p o s s i b l e t t r a n s f e r d a t a t h o t h e r w a y ,f r o m t h C o m m o d o r e B A S I C m o d e t C P / M . T t r a n s f e r f i l e ,i m u s t b s a v e d a p r o g r a m f i l e w i t h l o a d a d d r e s s $ 1 1 0 0 .T h i s i e q u i v a l e n t t t h Z - 8 0 a d d r e s s 1 0 0 H , t h s t a r t o t h T r a n s i e n t P r o g r a m A r e a ( T P A ) . T h f o l l o w i n g p r o g r a m w i l ls a v e f i l e a s p r o g r a m w i t h l o a d a d d r e s s o f $ 1 1 0 0 :

1 0 I N P U T " N A M E O F T H E F I L E H ; N $1 1 O P E N 2 , 8 , 2 , N 1 2 O P E N 1 , 8 , 1 , N $ + t ( . C P M " : R E M O P E N P R O G R A M F I L E1 3 P R I N T # 1 , C H R $ ( 0 ) C H R $ ( 1 7 ) ; R E S T A R T A D D R E S S $ 1 1 0 01 4 6 E T # 2 , A $ I S T = 6 4 T H E N C L O S E 1 : C L O S E 2 E N 1 5 P R I N T # 1 , A $ ; : G O T O 1 4

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

2 " N A M E . C P M " P R

R e m e m b e r t h n u m b e r 2 5 N o w l o a d t h p r o g r a m f i l e .

1 5

Page 167: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 167/290

T r i c k s T i p s

L O A D " N A M E . C P M " , 8 , 1

I n s e r t t h C P / M d i s k e t t e a n d e n t e r C P / M a u s u a l . W h e n C P / Mi l o a d e d , w e c a s a v e t h e f i l e u n d e r C P / M .

S A V E 2 N A M E . T X T

H e r e t h n u m b e r 2 g i v e s t h e n u m b e r o 2 5 6 - b y t e b l o c k s t b s a v e d , b u t i i d e n t i c a l t t h n u m b e r o b l o c k s g i v e n i t h C o m m o d o r e d i r e c t o r y . T h e r e m a b p r o b l e m s w i t hu p p e r / l o w e r c a s e r e v e r s a l w h e n t r a n s f e r r i n g t e x t f i l e s . I t h i s i t h e c a s e , t h e c o n v e r s i o n t s t a n d a r d A S C I I c a b m a d e t o A $ i l i n e 1 4 0 .

1 5

Page 168: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 168/290

T r i c k s T i p s

C h a p t e r 7 I n t e r f a c e a n d e x p a n s i o n o p t i o n s

7 . T h U S E R p o r t : A i n t e r f a c e f o C e n t r o n i c s p r i n t e r

T h C o m m o d o r e 6 h a a i n t e r f a c e w h i c h i n o n o r m a l l yu s e d b t h o p e r a t i n g s y s t e m , a n d w h i c h i a v a i l a b l e f o y o u r o w n d e v i c e s . T h i s i n t e r f a c e c o n s i s t s o a 8 - b i t p o r ta n t w h a n d s h a k e l i n e s . T h 8 - b i t p o r t c a n b e u s e d f o i n p u t a w e l l a o u t p u t ; e a c h b i m a b s w i t c h e di n d e p e n d e n t l y .

T h i s i n t e r f a c e i i d e a l l y s u i t e d f o i m p l e m e n t i n gp r i n t e r i n t e r f a c e . H e r e i s h o r t i t h p r o c e d u r e :

T h b i t s o b y t e a r s e n t i p a r a l l e l o v e r e i g h td a t a l i n e s . T o i n s u r e t h a t n d a t a a r l o s t d u r i n g t h t r a n s m i s s i o n , t w s o - c a l l e d " h a n d s h a k e l i n e s " a r e u s e d .B e f o r e t h c o m p u t e r s e n d s d a t a b y t e t t h p r i n t e r , i c h e c k s t h B U S Y l i n e t o s e e i t h p r i n t e r i r e a d y t r e c e i v e t h e d a t a . I t h B U S Y l i n e i h i g h , t h e p r i n t e r i n o r e a d y a n t h c o m p u t e r m u s t w a i t . W h e n t h p r i n t e r i r e a d y , t h e c o m p u t e r s e n d s t h d a t a o v e r t h p o r t a n s i g n a l st h p r i n t e r b m e a n s o t h S T R O B E l i n e t h a t i i s e n d i n gt h d a t a . T h p r i n t e r a c c e p t s t h d a t a a n d s e t s t h B U S Yl i n e h i g h u n t i l i t i s r e a d y t r e c e i v e a n o t h e r c h a r a c t e r .N o t h n e x t b y t e c a n b e t r a n s m i t t e d , a n s o n T h i sp r o c e s s e n s u r e s t h a t t h e p r i n t e r a c t u a l l y r e c e i v e s e a c h b y t es e n t b y t h c o m p u t e r .

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

M o s t o f t h e p r i n t e r s w i t h C e n t r o n i c s - t y p e i n t e r f a c e

1 6

Page 169: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 169/290

T r i c k s T i p s

u s t h s t a n d a r d A S C I I c h a r a c t e r s e t , w h i c h i d i f f e r e n tf r o m t h e C o m m o d o r e 6 4 ' s c h a r a c t e r s e t . W m u s t c o n v e r t t h c o d e s u s e d b y t h c o m p u t e r t t h e q u i v a l e n t c o d e s u s e d b t h p r i n t e r . I a d d i t i o n , i t i s a l s o n e c e s s a r y t b a b l e t s e n d d a t a t t h p r i n t e r e x a c t l y a t h c o m p u t e r s e n d s i t T h i s i r e q u i r e d w h e n d o i n g t h i n g s l i k e g r a p h i c s o t h p r i n t e r .

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

g i v e n a l o n g w i t h t h O P E N c o m m a n d , t h d a t a w i l l b ec o n v e r t e d f r o m t h C o m m o d o r e c o d e s t t h a p p r o p r i a t e A S C I Ic o d e s . I s e c o n d a r y a d d r e s s o f o n e i g i v e n , t h e d a t a w i l lb s e n t t t h p r i n t e r w i t h o u t a l t e r a t i o n . T h d e v i c ea d d r e s s w a s c h o s e n . T h i s a d d r e s s i n o r m a l l y u s e d f o r t h eR S 2 3 2 i n t e r f a c e , b u s i n c e t h i s i n t e r f a c e c a n n o t b u s e d i c o n j u n c t i o n w i t h o u i n t e r f a c e ( i a l s o u s e s t h U S E R p o r t ) ,t h i s p r e s e n t s n p r o b l e m s .

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

O P E N 1 , C M L I S T

A f t e r t h c u r s o r r e a p p e a r s , e n t e r

P R I N T # 1 C L O S E

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

1 6

Page 170: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 170/290

T r i c k s * T i p s

O P E N 1 , 2 , 1P R I N T * 1 C L O S E

F o t h h a r d w a r e p o r t i o n o t h e i n t e r f a c e , a l t h a t i n e e d e d i c a b l e w i t h U S E R p o r t s o c k e t o o n e e n d a n dC e n t r o n i c s s o c k e t o t h e o t h e r . T h p i l a y o u t o f t h e c a b l ei g i v e n a t h e n o f t h e a s s e m b l y l i s t i n g . W h e n c o n n e c t i n gt h e p r i n t e r , a t t a c h t h c a b l e b e t w e e n t h p r i n t e r a n c o a p u t e r , t u r n t h c o m p u t e r o n a n t h e n t u r n t h p r i n t e ro n L o a d t h m a c h i n e l a n g u a g e p r o g r a m a n i n i t i a l i z e i w i t hS Y S 1 2 * 4 0 9 6 .

0 0 0 1 C 0 0 0N T E R F A C E D R I V E R F O R0 0 0 2 C 0 0 0E C T E D T U S E R P O R T0 0 0 3 C 0 0 00 0 0 4 C 0 0 0

T H I / V E C T O R S0 0 0 5 C O O O0 0 0 6 C O O O0 0 0 7 C O O O0 0 0 8 C O O O0 0 0 9 C O O O0 0 1 0 C O O O0 0 1 1 C O O OR E G I S T E R0 0 1 2 C O O O0 0 1 3 C O O OI O N S0 0 1 4 C O O O0 0 1 5 C O O O0 0 1 6 C O O O0 0 1 7 C O O OO 0 0 1 8 C O O O0 0 1 9 C O O ON T R O L R E G I S T E R0 0 2 0 C O O O0 0 2 1 C O O O0 0 2 2 C O O O0 0 2 3 C O O O0 0 2 4 C O O O0 0 2 5 C O O O0 0 2 6 C O O O

C B 6

Q P E N V E Q $ 3 1 AC L O S E V E Q U $ 3 1 CC H K I N V E Q U $ 3 I EC H K O T V E Q $ 3 2 0B S O U T V E Q U $ 3 2 6X R E G E Q $ 9

P O R T A E Q U $ D D O OP O R T B E Q $ D D 0 1D D R A E Q U $ D D 0 2D D R BI C

L S F N M B F L SL F T A BF A T A BS A T A B

E Q E Q

E Q E Q E Q E Q E Q E Q E Q

$ D D 0 3$ D D O D

$ B $ B $ B $ 9 $ 2 5 9$ 2 6 3$ 2 6 D

C E N T R O N I C SP R I N T E R C O N N

^ D E F I N I T I O N

S T O R A G E F O

P O R T D E F I N I T

5 C I A 2 P O R T

D A T A D I R E C T I

S I N T E R R U P T C

1 6

Page 171: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 171/290

T r i c k s f T i p s

0 0 2 70 0 2 80 0 2 9O 0 0 3 00 0 3 10 0 3 20 0 3 30 0 3 40 0 3 50 0 3 60 0 3 70 0 3 80 0 3 90 0 4 00 0 4 10 0 4 20 0 4 30 0 4 40 0 4 50 0 4 60 0 4 70 0 4 80 0 4 90 0 5 00 0 5 10 0 5 20 0 5 3T P U T0 0 5 40 0 5 50 0 5 60 0 5 70 0 5 80 0 5 9

C O O OC O O OC O O O

C O O OC O O OC O O OC 0 0 2C 0 0 4C 0 0 7C O O AC O O CC O O Ec o C 1 C 1 C 1 C I C I C 0 2 0C 0 2 2C 0 2 5C 0 2 8C 0 2 AC 0 2 CC 0 2 FC 0 3 2C 0 3 4

C 0 3 7C 0 3 AC 0 3 CC 0 3 FC 0 4 0C 0 4 0

H A N D S H A K E0 0 6 0

0 0 6 1

0 0 6 2

C 0 4 0

C 0 4 0

C 0 4 0A G T O I C R0 0 6 30 0 6 40 0 6 5

C 0 4 0C 0 4 0C 0 4 3

A G B I 0 0 6 60 0 6 70 0 6 80 0 6 90 0 7 00 0 7 10 0 7 2

C 0 4 5C 0 4 8C 0 4 AC 0 4 DC 0 4 FC 0 5 2C 0 5 4

A A 8 8 A A 8 S A A 8 8 A A 8 8 A A 8 8 A 8

A 0 8

6

8 A

2 F A 2 8 0 8

5 C 1 I S C 1 I A C I I B C 2 2 D C 2 2 F 0

0 0 0

0 1

O F 0 F 0

0 0

0 0

0 0

0 0

0 0

0 0

D

D

D

D

D

D

D

D

S R C H F L E Q U

O R L D L D S T S T L D L D S T S T L D L D S T S T L D L D S T S T L D L D S T S T L D S T L D O R S T R T

O U T P U T S T L D

T S T B S Y B I TB E L D A N S T

O R S T 1 6

$ F 3 0 F

$ C 0 0 0# < O P E N# > O P E NO P E N VO P E N V + 1# < C L O S E# > C L O S EC L O S E VC L O S E V + 1# < C H K I N# > C H K I NC H K I N VC H K I N V + 1# < C H K O U T# > C H K O U TC H K O T VC H K O T V + 1# < B S O U T# > B S O U TB S O U T VB S O U T V + 1# $ F FD D R B

D D R A# $ 0 4D D R A

P O R T B# $ 1 0I C T S T B S YP O R T A# $ F BP O R T A

# $ 0 4P O R T A

5 I N I T I A L I Z A T I!

S P O R T A S O U

3 P A 2 A O U T P U

; O U T P U T W I T H; d a t a t p o r t

S T R O B E O N P A

S B U S Y O V E R F

3 O U T P U T D A T AM A S K F O ? F

E R A S E S T R O B E

S E S T R O B E

Page 172: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 172/290

T r i c k s f T i p s0 0 7 3 C 0 5 7 6 0 R T S0 0 7 4 C 0 5 80 0 7 5 C 0 5 8 A B O P E N L D L

N U M B E R0 0 7 6 C 0 5 A F 0 0 0 7 7 C 0 5 C 2 O F I L N U M B E R0 0 7 8 C 0 5 F D O 0 0 0 7 9 C 0 6 1 4 C F E F 6R R O R ?0 0 8 0 C 0 6 4 A 9 E F I L E S0 0 8 1 C 0 6 6 E O O A0 0 8 2 C 0 6 8 9 0 0 30 0 8 3 C 0 6 A 4 C F B F 6L E E R R O R 70 0 8 4 C 0 6 D E 6 9 80 0 8 5 C 0 6 F A B 0 0 8 6 C 0 7 1 9 D 5 9 0 20 0 8 7 C 0 7 4 A B 0 0 8 8 C 0 7 6 0 9 6 00 0 8 9 C 0 7 8 9 D 6 D 0 20 0 9 0 C 0 7 B A 5 B 0 0 9 1 C 0 7 D 9 6 3 0 20 0 9 2 C 0 8 0 C 9 0 20 0 9 3 C 0 8 2 D O 0 20 0 9 4 C 0 8 4 1 0 0 9 5 C 0 8 5 6 0 0 9 6 C 0 8 6 C 9 0 00 0 9 7 C 0 8 8 4 7 F 0 0 9 8 C 0 8 B0 0 9 9 C 0 8 B 2 1 F O G I C A L F I L E N U M B E R0 1 0 0 C 0 8 E F O 0 20 1 0 1 C 0 9 0 1 0 1 0 2 C 0 9 1 6 00 1 0 3 C 0 9 2 2 I F 3 L B 4A M E T E R S0 1 0 4 C 0 9 5 8 0 1 0 5 C 0 9 6 4 0 1 0 6 C 0 9 7 A 5 B A0 1 0 7 C 0 9 9 C 9 0 20 1 0 8 C 0 9 B F 0 0 1 0 9 C 0 9 D 4 9 F N U 0 1 1 0 C O A O 4 C F F I T A B L E0 1 1 1 C 0 A 30 1 1 2 C 0 A 3 2 O F I L N U M B E R0 1 1 3 C 0 A 6 F O 0 30 1 1 4 C 0 A 8 4 0 F E N E R R O R ?0 1 1 5 C O A B 2 I F L B J S R * F 3 1 FA M E T E R S

B E J S

B N O P N E R R J M L B L D

C P B C J M

L B I N L D S T L D O R S T L D S T C M B N C L R T

L B 3 C M PJ M

O P N E R RS R C H F LL B * F 6 F EN M B F L S# 1 L B * F 6 F BN M B F L SL L F T A B , XS # * 6 0S A T A B , XF F A T A B , X# L B

# * F 3 7 7

C L O S E J S R $ F 3 1 4B E C L R T J S

T X P H L D C M B E J M J M

L B

* F 3 1 F

F # L B * F 2 9 D* F 2 F 1L B

C H K I N J S R S R C H F L

B E L B J M $ F 7 0 1

L O G I C A L F I L E

; S E A R C H F O

5 ' F I L E O P E NN U M B E R O O

; ' T 0 0 M A N Y F

; D O N E

S E A R C H F O R

D O N E; S E T F I L E P A

N O R M A L C O N T I? E R A S E E N T R Y

S E A R C H F O R

> F I L E N O O

S S E T F I L E P A R

1 6

Page 173: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 173/290

Page 174: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 174/290

T r i c k s & T i p s0 1 6 0 C 1 0 E I B 1 C I B Y $ 1 B , $ 1 C , $ 1 D0 1 6 1 C l l l I E I F 2 0 B Y T $ 1 E , $ 1 f ! , $ 2 00 1 6 2 C 1 1 4 2 2 2 3 B Y T $ 2 1 , $ 2 2 , $ 2 30 1 6 3 C 1 1 7 2 4 2 5 2 6 B Y $ 2 4 , $ 2 5 , $ 2 60 1 6 4 C 1 1 A 2 7 2 8 2 9 B Y $ 2 7 , $ 2 8 , $ 2 90 1 6 5 C U 2 2 B 2 C B Y $ 2 A , $ 2 b ! , $ 2 C0 1 6 6 C 1 2 0 2 D 2 E 2 B Y $ 2 D , $ 2 E , $ 2 F0 1 6 7 C 1 2 3 3 3 3 B Y $ 3 0 , $ 3 1 , $ 3 20 1 6 8 C 1 2 6 3 3 3 5 B Y T $ 3 3 , $ 3 4 , $ 3 50 1 6 9 C 1 2 9 3 3 7 3 8 B Y $ 3 6 , $ 3 7 , $ 3 80 1 7 0 C 1 2 C 3 9 3 A 3 B B Y T $ 3 9 , $ 3 A ] , $ 3 0 1 7 1 C 1 2 F 3 C 3 D 3 E B Y T $ 3 C , $ 3 d ! , $ 3 E0 1 7 2 C 1 3 2 3 4 6 B Y $ 3 F , $ 4 0 , $ 6 10 1 7 3 C 1 3 5 6 6 6 B Y $ 6 2 , $ 6 3 , $ 6 40 1 7 4 C 1 3 8 6 5 6 6 6 B Y $ 6 5 , $ 6 6 , $ 6 70 1 7 5 C 1 3 B 6 6 6 A B Y T $ 6 8 , $ 6 9 , $ 6 A0 1 7 6 C 1 3 E 6 B 6 C 6 B Y $ 6 B , $ 6 C , $ 6 D0 1 7 7 C 1 4 1 6 E 6 7 0 B Y T $ 6 E , $ 6 F ' $ 7 00 1 7 8 C 1 4 4 7 7 7 B Y $ 7 1 , $ 7 2 , $ 7 30 1 7 9 C 1 4 7 7 4 7 5 7 6 B Y T $ 7 4 , $ 7 5 , $ 7 60 1 8 0 C 1 4 A 7 7 7 8 7 9 B Y $ 7 7 , $ 7 8 , $ 7 90 1 8 1 C 1 4 D 7 A 7 B 7 C B Y T $ 7 A , $ 7 B ^ $ 7 C0 1 8 2 C 1 5 0 7 7 5 F B Y T $ 7 D , $ 7 E , $ 5 F0 1 8 3 C 1 5 3 6 6 6 2 B Y T $ 6 0 , $ 6 1 , $ 6 20 1 8 4 C 1 S 6 6 6 6 5 B Y T $ 6 3 , $ 6 4 , $ 6 50 1 8 5 C 1 5 9 6 6 6 7 6 8 B Y $ 6 6 ! , $ 6 7 , $ 6 0 1 8 6 C 1 5 C 6 9 6 A 6 B Y $ 6 9 , $ 6 A , $ 6 B0 1 8 7 C 1 5 F 6 6 6 B Y $ 6 C , $ 6 D , $ 6 E0 1 8 8 C 1 6 2 6 F 7 0 7 B Y $ 6 F , $ 7 0 , $ 7 10 1 8 9 C 1 6 5 7 2 7 3 7 B Y $ 7 2 , $ 7 3 , $ 7 40 1 9 0 C 1 6 8 7 5 7 6 7 7 B Y $ 7 5 , $ 7 6 , $ 7 70 1 9 1 C 1 6 B 7 8 7 9 7 A B Y $ 7 8 , $ 7 9 , $ 7 A0 1 9 2 C 1 6 E 7 B 7 C 7 D B Y $ 7 B , $ 7 C , $ 7 D0 1 9 3 C 1 7 1 7 7 F 8 0 B Y $ 7 E , $ 7 F , , $ 8 00 1 9 4 C 1 7 4 8 8 2 8 3 B Y $ 8 1 , $ 8 2 , $ 8 30 1 9 5 C 1 7 7 8 8 8 B Y $ 8 4 , $ 8 5 , $ 8 60 1 9 6 C 1 7 A 8 8 8 8 9 B Y $ 8 7 , $ 8 8 , $ 8 90 1 9 7 C 1 7 D 8 8 B 8 C B Y $ 8 A , $ 8 B , $ 8 C0 1 9 8 C 1 8 0 8 D 8 E 8 F B Y $ 8 D , $ 8 E , $ 8 F0 1 9 9 C 1 8 3 9 9 9 B Y $ 9 0 , $ 9 1 , $ 9 20 2 0 0 C 1 8 6 9 3 9 4 9 B Y $ 9 3 , $ 9 4 , $ 9 50 2 0 1 C 1 8 9 9 6 9 7 9 8 B Y $ 9 6 , $ 9 7 , $ 9 80 2 0 2 C 1 8 C 9 9 9 A 9 B B Y $ 9 9 , $ 9 A , $ 9 B0 2 0 3 C 1 8 F 9 C 9 D 9 B Y $ 9 C , $ 9 D , $ 9 E0 2 0 4 C 1 9 2 9 F A O A B Y $ 9 F , $ A O , $ A 10 2 0 5 C 1 9 5 A A A B Y $ A 2 , $ A 3 , $ A 40 2 0 6 C 1 9 8 A 5 A 6 A 7 B Y $ A 5 , $ A 6 , $ A 70 2 0 7 C 1 9 B A A A A B Y T $ A 8 , $ A 9 , $ A A0 2 0 8 C 1 9 E A A C A D B Y $ A B , $ A C , $ A D0 2 0 9 C 1 A 1 A A F B O B Y $ A E , $ A f ! , $ B O0 2 1 0 C 1 A 4 B B 2 B 3 B Y $ B 1 , $ B 2 , $ B 30 2 1 1 C 1 A 7 B B B B Y $ B 4 , $ B 5 , $ B 60 2 1 2 C l A A B B B B Y $ B 7 , $ B 8 , $ B 90 2 1 3 C l A D B A B B B B Y $ B A , $ B B , $ B C0 2 1 4 C 1 B 0 B D B E B F B Y $ B D , $ B E , $ B F

1 6

Page 175: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 175/290

Page 176: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 176/290

Page 177: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 177/290

T r i c k s T i p s

7 . T r a n s f e r r i n g d a t a b e t w e e n c o m p u t e r s u s i n g t h U S E R p o r t

I m a g i n e t h f o l l o w i n g : Y o o w n , i a d d i t i o n t y o u rC o m m o d o r e 6 4 C B 8 0 3 2 . W o u l d n ' t i b n i c e t b a b l e t d i r e c t l y t r a n s f e r d a t a f r o m t h 8 0 3 2 t y o u r 6 w h e r e y o c a w o r k w i t h i i c o l o r ? O m a y b e y o l i k e t b a b l e t s e n d i n f o r m a t i o n f r o m t h 6 t t h 8 0 3 2 , w h e r e y o u c a n s e ei i 8 c o l u m n s . Y o u c o u l d d t h i s w i t h c a s s e t t e ,a s s u m i n g y o h a v e o n e , b u t h i s i s t e d i o u s a n d b o t h e r s o m ep r o c e s s .

W h a v e c h o s e n t h i s e x a m p l e t i l l u s t r a t e t h u s o t h C o m m o d o r e 6 4 ' s U S E R p o r t , a n d w e h a v e w r i t t e n s m a l lp r o g r a m w h i c h a l l o w s t h 6 t b o t h s e n d a n r e c e i v e d a t a .I o u c a s e , t h e d e v i c e t w h i c h w e w i l l b e s e n d i n g d a t a ( o f r o m w h i c h w e w i l l b r e c e i v i n g i t ) i s C B 8 0 3 2 . I i a l s o p o s s i b l e t u s e t h e s a m e p r o c e d u r e f o c o m m u n i c a t i n gw i t h o t h e r c o m p u t e r s w h i c h h a v e a i n t e r f a c e s i m i l a r t t h u s e r p o r t .

T h p r o g r a m s ( o n e f o t h C o m m o d o r e 6 a n d o n e f o r t h eC B 8 0 3 2 ) w h i c h w i l l b g i v e n s h o r t l y n a t u r a l l y r e q u i r e t h a p p r o p r i a t e c o n n e c t i o n b e t w e e n t h t w c o m p u t e r s . T h p i a s s i g n m e n t s a n n e c e s s a r y c o n n e c t i o n s c a n b e f o u n d f o l l o w i n gt h e l i s t i n g . F i r s t , h o w e v e r , w w i l l p r e s e n t d e t a i l e da c c o u n t o f t h e v a r i a b l e s a n m e m o r y l o c a t i o n s u s e d i e a c ho t h p r o g r a m s a w e l l a s t e p - b y - s t e p d e s c r i p t i o n o t h p r o g r a m s t h e m s e l v e s .

1 6

Page 178: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 178/290

T r i c k s T i p s

T h v a r i a b l e s ( b o t h p r o g r a m s ) :

A S C I I v a l u e o s e n t o r e c e i v e d b y t eT o p e r a t i n g s y s t e m c l o c k ; c o u n t s i 1 / 6 0 s e c o n d s t e p s0 c o m p o s i t e s t r i n g o d a t a r e c e i v e d o t b e s e n t

M e m o r y l o c a t i o n s u s e d o t h C B 8 0 3 2 :

5 9 4 5 7 D a t a r e g i s t e r o t h u s e r p o r t5 9 4 5 9 U s e r p o r t d a t a d i r e c t i o n r e g i s t e r . A y o m a y a l r e a d y

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

5 9 4 6 8 B i o t h i s a d d r e s s c o n t r o l s t h C B l i n e o f t h u s e r p o r t . W h e n s e n d i n g , t h i s l i n e w i l l i n d i c a t e t h v a l i d i t y o f t h e d a t a . W h e n r e c e i v i n g , t h i s l i n e ss e r v e s a t h a c k n o w l e d g e m e n t s i g n a l , i n d i c a t i n g t h a tt h d a t a w a r e c e i v e d . T h e s e s i g n a l s a r r e q u i r e d t e n s u r e t h a t n d a t a a r l o s t .

5 9 4 6 9 B i g i v e s t h c o n d i t i o n o t h C A 1 l i n e o f t h e u s e rp o r t . W h e n s e n d i n g d a t a , t h i s b i w i l l b m o n i t o r e df o r t h e a c k n o w l e d g e m e n t s i g n a l o f t h e r e c e i v i n gd e v i c e , w h i l e w h e n r e c e i v i n g , i i m o n i t o r e d a t h d a t a r e a d y o v a l i d s i g n a l .

M e m o r y l o c a t i o n s u s e d o t h C o m m o d o r e 6 4

5 6 5 7 6 B i c o n t r o l s t h P A 2 l i n e o f t h u s e r p o r t . T h i sl i n e i u s e d i t h e s a m e m a n n e r a t h e C B 2 l i n e o t h C B 8 0 3 2 ( s e e d e s c r i p t i o n o l o c a t i o n 5 9 4 6 8 ) .

5 6 5 7 7 U s e r p o r t d a t a r e g i s t e r .

1 7

Page 179: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 179/290

Page 180: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 180/290

T r i c k s T i p s

2 0 4 0 - 2 0 5 0 T h c o m p u t e r w a i t s f o t h d a t a v a l i d s i g n a l . I i t i s r e c e i v e d , t h b y t e i i a d d e d t o D $ .

2 0 6 0 - 2 0 8 0 A a c k n o w l e d g e m e n t t h a t t h e d a t a b y t e w a sr e c e i v e d , t h c o r r e s p o n d i n g l i n e i s e t z e r oa n d t h e l o o p r e t u r n s t w a i t f o r t h e n e x tc h a r a c t e r .

T h e s e p r o g r a m s c o n s i s t o n l y o f t w o s u b r o u t i n e s , o n f o s e n d i n g d a t a a n d o n e f o r r e c e i v i n g i t T h e y s h o u l d b i n s e r t e d i n t o y o u r o w p r o g r a m s . W h e n y o u w a n t t s e n dc h a r a c t e r s , p l a c e t h e m i D a n d Q O S U B 1 0 0 0 . T r e c e i v ed a t a , c a l l l i n e 2 0 0 0 ( G O S U B 2 0 0 0 ) a n d u p o n r e t u r n , D w i l lc o n t a i n t h c h a r a c t e r s r e c e i v e d .

T h f i r s t l i s t i n g i f o t h C B 8 0 3 2 a n t h s e c o n d i f o t h C o m m o d o r e 6 4 T h e y a r i d e n t i c a l i s t r u c t u r e ,a l t h o u g h t h a d d r e s s e s o f t h e u s e r p o r t s a r d i f f e r e n t i e a c h c a s e . T h o n l y o t h e r d i f f e r e n c e o c c u r s i l i n e 2 0 1 0 . I c o n s i d e r a t i o n f o t h d i f f e r e n t w a y i w h i c h t h C 6 k e r n a lo p e r a t e s , j u m p m u s t b i n s e r t e d .

1 7

Page 181: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 181/290

Page 182: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 182/290

T r i c k s T i p s

C o m m o d o r e 6 v e r s i o n

9 9 r e s u b r o u t i n e s f o t r a n s f e r r i n g d a t a o v e r t h u s e rp o r t

9 9 6 r e m C B 6 v e r s i o n f o r 6 5 2 6 a a d d r e s s 5 6 5 7 69 9 8 r e m9 9 r e s e n d s t r i n g1 0 0 0 p o k e 5 6 5 7 9 , 2 5 5 r e s e d a t a d i r e c t i o n t o u t p u t1 0 1 0 f o r i = l t o l e n ( d $ ) r e s e n d l o o p f o d 1 0 2 0 x = a s c ( m i d $ ( d $ , i , l ) ) p o k e 5 6 5 7 7 , x r e m o u t p u t d a t a1 0 3 0 p o k e 5 6 5 7 6 , 1 4 7 r e m p a 2 l o 1 0 4 0 w a i t 5 6 5 8 9 , 1 6 r e w a i t u n t i l d a t a r e c e i v e d1 0 5 0 p o k e 5 6 5 7 6 , 1 5 1 : r e p a h i g h1 0 6 0 n e x t1 0 7 0 p o k e 5 6 5 7 7 , 0 p o k e 5 6 5 7 9 , 0 r e m r e s e t p o r t1 0 8 0 r e t u r n1 9 9 6 r e 1 9 9 7 r e r e c e i v e i n t o d 1 9 9 8 r e m1 9 9 9 r e m2 0 0 0 w a i t 5 6 5 8 9 , 1 6 r e w a i t f o s t a r t o t r a n s m i s s i o n2 0 1 0 d $ = " " g o t o 2 0 5 0 r e i n i t i a l i z e d 2 0 2 0 t i $ = " 0 0 0 0 0 0 "2 0 3 0 i t i > 1 2 0 t h e n 2 0 9 02 0 4 0 i ( p e e k ( 5 6 5 8 9 ) a n 1 6 ) = 0 t h e n 2 0 3 0 r e w a i t f o

d a t a b y t e2 0 5 0 x = p e e k ( 5 6 5 7 7 ) d $ = d $ + c h r $ ( x )2 0 6 0 p o k e 5 6 5 7 6 , 1 4 7 r e p a l o 2 0 7 0 p o k e 5 6 5 7 6 , 1 5 1 r e p a h i g h r e c e i v e c o n f i r m a t i o n2 0 8 0 g o t o 2 0 2 02 0 9 0 r e t u r n

1 7

Page 183: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 183/290

T r i c k s T i p s

s h o r t e x a m p l e w i l l c l a r i f y t h u s o t h e s e r o u t i n e s :A s s u m i n g t h a t y o u h a v e l o a d e d t h a p p r o p r i a t e r o u t i n e s

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

1 D $ = H t e s t " G O S U B 1 0 0 0 E N

a n t h f o l l o w i n g t t h r e c e i v e r

1 G O S U B 2 0 0 0 P R I N T D E N

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

( a s s u m i n g b o t h

T h d i a g r a m b e l o w s h o w s t h c o n s t r u c t i o n o f t h ec o n n e c t i n g c a b l e . W e r e c o m m e n d 1 0 - w i r e s h i e l d e d c a b l e . T h s h i e l d i c o n n e c t e d t t h e G N D p i n o b o t h s i d e s . I t i s b e s tt l i m i t t h e l e n g t h o t h c a b l e t n m o r e t h a n 1 f e e t . I

l o n g e r c a b l e i r e q u i r e d , l i n e d r i v e r s m a y h a v e t b u s e dt i n s u r e t h a t n d a t a i l o s t d u r i n g t r a n s m i s s i o n . N o i s ec r e a t e d b e l e c t r i c m o t o r s ( w a s h i n g m a c h i n e , v a c u u m c l e a n e r )o o t h e r l a r g e e l e c t r i c a l d e v i c e s c a s c r a m b l e t h d a t ab e i n g t r a n s m i t t e d . Y o s h o u l d h a v e n p r o b l e m s a a l i t h l e n g t h i k e p t u n d e r 1 f e e t . T e n f e e t s h o u l d a l s o b ec o n s i d e r e d a a b s o l u t e m a x i m u m w h e n u s i n g a u n s h i e l d e dc a b l e .

t M A M SF L A & XP A P

s

A

5 H I E L D

P I

A

L A

B O S ZA / M

C 8 C A P A

5

1 7

Page 184: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 184/290

T r i c k s T i p s

7 . 3 T h e C P / M c a r t r i d g e o t h e x p a n s i o n p o r t : c a s e s t u d y

I t h i s s e c t i o n , w e d e s c r i b e h o c l e v e r p i e c e o h a r d w a r e c a m a k e o p t i m a l u s e o f t h e x p a n s i o n s l o t o t h C o m m o d o r e 6 4 F o b e t t e r u n d e r s t a n d i n g o f t h e m a t e r i a lt h a t w e p r e s e n t , k n o w l e d g e o f t h e m a t e r i a l i t h c o r r e s p o n d i n g c h a p t e r o f o u r b o o k T h A n a t o m y o f t h eC o m m o d o r e 6 i a a d v a n t a g e .

F i r s t o a l l , w h a t i i t h C P / M c a r t r i d g e ?

T h C P / M c a r t r i d g e i m o d u l e d e v e l o p e d b C o m m o d o r ew h i c h c o n t a i n s Z - 8 0 m i c r o p r o c e s s o r a n d t h e n e c e s s a r y l o g i ct c o m m u n i c a t e w i t h t h C 6 4 . T h m o d u l e m a k e s i p o s s i b l e t u s e t h e p o p u l a r C P / M o p e r a t i n g s y s t e m o t h 6 a n s g a i na c c e s s t t h w i d e r a n g e o s o f t w a r e a v a i l a b l e f o r C P / M .

T h t o p i c w w i s h t e x a m i n e m o r e c l o s e l y i t h t e c h n i q u e o u s i n g t w p r o c e s s o r s i t h s a m e c o m p u t e r . A t h e n o f t h i s s e c t i o n y o u w i l l f i n d b l o c k d i a g r a m o t h C P / M c a r t r i d g e . N o a l l o f t h e c o n n e c t i o n s a r s h o w n i o r d e r t k e e p t h d i a g r a m a s i m p l e a p o s s i b l e . T h f o l l o w i n g d i s c u s s i o n c e n t e r s a r o u n d t h i s d i a g r a m a n p r e s e n t s t h f u n c t i o n g r o u p s t o g e t h e r w i t h t h e i rd e s i g n a t i o n s . W h a v e t r i e d t m a k e t h i s d i s c u s s i o n s i m p l ee n o u g h s t h a t y o u n e e d n o t b e h a r d w a r e e x p e r t i o r d e r t u n d e r s t a n d i t

F i r s t , w p r e s e n t d e s c r i p t i o n o t h e x p a n s i o n p o r tl i n e s w h i c h p l a y r o l e i t h i s c o n t e x t :

C D O - 7 S y s t e m b u s d a t a l i n e s .T h e s e c a b c o n t r o l l e d b t h 6 5 1 0 w i t h i n t h 6 o n l y a l o n g a D M A = 1 a n B A = 1 .

1 7

Page 185: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 185/290

Page 186: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 186/290

Page 187: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 187/290

Page 188: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 188/290

T r i c k s & T i p s

H o d o e s o n e r e t u r n f r o m t h Z - 8 0 m o d e ? I t h B A S I Ci n t e r p r e t e r i l o a d e d , y o c a r e s e t F b e n t e r i n g P O K E5 2 7 3 6 , 0 . T h i s h a t h a d d i t i o n a l e f f e c t o s e t t i n g B U S R E Q t 0 h a l t i n g t h Z - 8 0 w h i l e s e t t i n g D M t 1 w h e r e u p o n t h 6 5 1 0 r e s u m e s e x e c u t i o n a t h p o i n t a w h i c h i l e f t o f f .

T h a d d r e s s m u s t a c t u a l l y b 4 0 9 6 l e s s t h a n t h e 6 5 1 0a d d r e s s s i n c e t h i s v a l u e w i l l b a d d e d b a c k i b A D D . I t i sn o r e c o m m e n d e d t p r o c e e d i t h i s m a n n e r , h o w e v e r , s i n c et h 6 5 1 0 w i l l n o f i n d p r o g r a m w h i c h i c a n r u n u p o nr e t u r n s i n c e t h m e m o r y c o n t a i n s p r o g r a m s i n t e n d e d f o r t h eZ - 8 0 , a n t h c o m p u t e r w i l l c r a s h .

B i o n l y h e l p s i g n a l w h i c h c o n t r o l s t h t r a f f i c o t h b u s . I h a p r o f o u n d e f f e c t o t h C P / M m o d u l e ,h o w e v e r , s i n c e t h Z - 8 0 h a l t s e x e c u t i o n w h e n e v e r B A = 0 o r t h eo u t p u t o F i z e r o . I w e t a k e c l o s e r l o o k a t h o r i g i no B A w w i l l d i s c o v e r w h y t h i s i s o

1 8

Page 189: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 189/290

T r i c k s T i p s

B i s i g n a l c r e a t e d b t h v i d e o c o n t r o l l e r i t h C o m m o d o r e 6 4 B e c a u s e t h v i d e o c o n t r o l l e r m u s t a c c e s s t h v i d e o R A c y c l i c a l l y f o r e f r e s h i n g t h s c r e e n , t h s y s t e mb u m u s t n o b u s e d b a n y o t h e r d e v i c e . N o r m a l l y t h i s d o e sn o r e q u i r e h a l t i n g t h u s u a l b u t r a f f i c ; t h v i d e oc o n t r o l l e r m a k e s u s o t h e " h o l e s " i t h m i c r o p r o c e s s o ra c c e s s c y c l e s d u r i n g w h i c h t h p r o c e s s o r i n o u s i n g t h s y s t e m b u s . T h e r e a r e x c e p t i o n s , h o w e v e r , s u c h a w h e n t h s p r i t e s a r b e i n g d i s p l a y e d . H e r e t h e s e h o l e s w i l l n o s u f f i c e s i n c e t h m e m o r y m u s t b a c c e s s e d s e v e r a l t i m e s i s u c c e s s i o n . T h e v i d e o c o n t r o l l e r s i g n a l s t h i s c o n d i t i o n b s e t t i n g B t z e r o a n a l o t h e r d e v i c e s ( i n c l u d i n g t h Z - 8 0a n t h 6 5 1 0 ) m u s t g i v e u t h b u s .

W e h a v e p u r p o s e l y k e p t t h b l o c k d i a g r a m o t h n e x tp a g e s i m p l e a l t h o u g h t h c i r c u i t r y i t h a r e a o d a t ab u f f e r i m o r e c o m p l e x t h a n t h a t s h o w n . I i s u f f i c i e n th o w e v e r t e x p l a i n t e x p l a i n t h i n t e r a c t i o n b e t w e e n t h e Z -8 a n d t h e 6 5 1 0 .

1 8

Page 190: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 190/290

T r i c k s T i p s

S $

1 8

Page 191: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 191/290

T r i c k s T i p s

7 . S y n t h e s i z e r i s t e r e o

I y o u u s e t h e s y n t h e s i z e r i y o u r C o m m o d o r e 6 o f t e n ,y o h a v e p r o b a b l y w i s h e d f o s o m e t h i n g b e t t e r t h a n t h e t i n n ys o u n d o y o u r T s p e a k e r . W i t h t h h e l p o s t e r e o r e c e i v e ro a m p l i f i e r w c a p r o d u c e c o n s i d e r a b l y b e t t e r s o u n d .B e c a u s e t h s t e r e o h a t w c h a n n e l s a i t d i s p o s a l , w m u s tc o n s i d e r h o t d i v i d e t h s i n g l e - c h a n n e l o u t p u t o f t h es y n t h e s i z e r b e t w e e n t h e m . U n f o r t u n a t e l y , t h e i n d i v i d u a lv o i c e s o f t h e d e v i c e d n o h a v e s e p a r a t e o u t p u t s , o w c o u l d m a k e t h d i v i s i o n e a s i l y .

W h a v e m a d e c e r t a i n a l l o w a n c e s , h o w e v e r , a n d h a v ed i v i d e d t h t o n e s i g n a l i n t o t w o f r e q u e n c y r a n g e s . T h ed i v i s i o n o c c u r s a 3 0 H z T h i s s p l i t s t h r a n g e o t h s y n t h e s i z e r n e a r l y i t h m i d d l e a f a a t h e a i c o n c e r n e d , w i t h t h r e e o c t a v e s b e l o w ( d o w n t 3 H z a n f o u ro c t a v e s a b o v e ( u t 4 8 0 0 H z 3 0 H z

T h i s i a c c o m p l i s h e d w i t h t w d o u b l e - T f i l t e r s w i t h a a t t e n u a t i o n o 6 d B / o c t a v e a n c u t - o f f f r e q u e n c y o f 3 0 0 H ( l o w p a s s ) a n k H ( h i g h p a s s ) . Y o c a c h a n g e t h c u t - o f ff r e q u e n c i e s a d e s i r e d b y u s i n g d i f f e r e n t c a p a c i t o r s , b u ty o s h o u l d l e a v e t h v a l u e s o f t h e r e s i s t o r s a t h e y a r s i n c e t h e y w e r e c a l c u l a t e d t m a t c h t h i m p e d a n c e o t h c o n n e c t e d d e v i c e .

G i v e n t h c u t - o f f f r e q u e n c y , t h r e q u i r e d v a l u e o f t h ec a p a c i t o r c a n b e f o u n d w i t h t h f o r m u l a C = l / ( 3 3 0 0 * F ) . I y o h a v e s o m e c a p a c i t o r s a l r e a d y a n w a n t t k n o w w h a t c u t - o f ff r e q u e n c y t h e y w o u l d g i v e , u s t h f o r m u l a F = l / ( 3 3 0 0 * C ) . T h v a l u e s t h a t w e h a v e c h o s e n a r o p t i m i z e d f o r t h i s p r o j e c tb a s e d o n u m e r o u s m e a s u r e m e n t s a n l i s t e n i n g t e s t s .

I f a n a t t e n u a t i o n o 3 d B / o c t a v e i g o o d e n o u g h f o y o u ,t h c o m p o n e n t s R 2 C 2 , C 4 , a n R c a b e l i m i n a t e d . T h i s

1 8

Page 192: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 192/290

T r i c k s T i p s

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

W n o w w a n t t p r e s e n t p r o g r a m w h i c h w i l l p r o d u c e" s w e e p " u s i n g t h t r i a n g l e w a v e . T h i s w i l l a l l o w y o t c l e a r l y h e a r h o w t h t o n e m o v e s f r o m o n s p e a k e r t t h o t h e r . W h a v e c h o s e n t h t r i a n g l e w a v e b e c a u s e i i r e l a t i v e l y f r e e o o v e r t o n e s a n d w i l l a l l o w t h e f f e c t t n o t i c e d b e t t e r . W i t h m o r e c o m p l e x s o u n d s , r i c h i o v e r t o n e s ,s u c h a t h s a w t o o t h , t h o v e r t o n e s w i l l a p p e a r o o n c h a n n e l w h i l e t h f u n d a m e n t a l w a v e w i l l b e h e a r d o t h o t h e r , p r o v i d e d t h a t t h f u n d a m e n t a l d o e s n o e x c e e d 3 0 H z

1 8

Page 193: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 193/290

T r i c k s & T i p s

1 V l = 5 4 2 7 22 V 2 = 5 4 2 7 93 V 3 = 5 4 2 8 66 R S = 5 4 2 9 57 P L = 5 4 2 9 68 P O K E V l + 4 , 0 P O K E V 2 + 4 , 0 P O K E V 3 + 4 , 01 0 A = S = R = H = 3 01 1 P O K E R S , 0 P O K E P L , 1 51 2 P O K E V 3 + 5 , 1 6 * A + D P O K E V 3 + 6 , 1 6 * S + R1 3 P O K E V 3 + 4 . 1 71 4 F O 1 = t o P O K E V 3 + 1 , P E E K ( 5 4 3 0 0 ) N E X T1 5 P O K E V 3 + 4 . 1 61 6 F O 1 = t R * P O K E V 3 + 1 , P E E K ( 5 4 3 0 0 ) N E X T

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

s t e r e o

6 4 f t

3 . 5 K

1 8

Page 194: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 194/290

T r i c k s T i p s

C h a p t e r D a t a M a n a g e m e n t

8 . I n t r o d u c t i o n

T h e f f e c t i v e a n e f f i c i e n t m a n a g e m e n t a n p r o c e s s i n go d a t a i o n o f t h e m o s t b a s i c t h e m e s i c o m p u t i n g . A l p r o g r a m s d i t s o m e d e g r e e , b u p r o g r a m s d e s i g n e ds p e c i f i c a l l y f o s t o r a g e a n r e t r i e v a l o l a r g e q u a n t i t i e so v a r i o u s d a t a a r a m o n g t h m o s t c o m p l e x i p r o g r a m m i n g .I t i s t h s a m e i B A S I C , F O R T R A N , P a s c a l o o t h e rl a n g u a g e s — d a t a m a n a g e m e n t , a n e v e r y t h i n g e l s e t h a t h a s t d w i t h d a t a , i v e r y i m p o r t a n t p r o b l e m . O n e w o u l dt h e r e f o r e e x p e c t t h a t c o m p u t e r m a n u a l s o p r o g r a m m i n g b o o k sw o u l d p r o v i d e d e t a i l e d i n f o r m a t i o n a b o u t t h i s t o p i c .U n f o r t u n a t e l y , t h e s e b o o k s d i s c u s s d a t a m a n a g e m e n t o n l y v e r yb r i e f l y , i a a l l .

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

d a t a m a n a g e m e n t o t h C o m m o d o r e 6 4 W w i l l n o m e r e l yp r e s e n t d r y t h e o r y , b u w e w i l l a l s o p r e s e n t e x a m p l e s w h i c hw i l l h o p e f u l l y a l l o w y o t u n d e r s t a n d y o u r C o m m o d o r e 6 b e t t e r a n t u s i m o r e e f f e c t i v e l y . F i r s t , h o w e v e r , w m u s t b e g i n b c l a r i f y i n g f e f u n d a m e n t a l s o d a t am a n a g e m e n t .

F I L E

T h w h o l e w o r l d t a l k s a b o u t d a t a p r o c e s s i n g a n f i l e s —b u w h a t a c t u a l l y a r f i l e s ? T h e a s i e s t w a y t c l a r i f y t h i st e r m i t r e p l a c e i w i t h a n o t h e r , o n w h i c h e v e r y o n e i f a m i l i a r w i t h : C A R D C A T A L O G . A y o k n o w , c a r d c a t a l o g ,s u c h a t h o s e f o u n d i l i b r a r i e s , c o n s i s t s o n u m b e r o f i l i n g c a r d s . O t h e s e c a r d s i i n f o r m a t i o n c o n c e r n i n g

1 8

Page 195: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 195/290

T r i c k s T i p s

p a r t i c u l a r i t e m o p e r s o n . T h c a r d s m u s t b o r g a n i z e da c c o r d i n g t s p e c i f i c p a t t e r n . T h m o s t c o m m o n m e t h o d o o r g a n i z a t i o n i a l p h a b e t i c s o r t i n g . A n o t h e r p o s s i b i l i t y i s o r t i n g b t h i t e m n u m b e r o s o m e o t h e r d a t u m . A l l o f t h c a r d s t o g e t h e r m a k e u c a r d c a t a l o g . f i l e u s e s t h s a m ep r i n c i p l e . f i l e c o n s i s t s o n u m b e r o d a t a r e c o r d s w h i c hc o n t a i n t h i n d i v i d u a l p i e c e s o i n f o r m a t i o n — j u s t l i k ef i l i n g c a r d .

T h e g r e a t a d v a n t a g e o d a t a f i l e o v e r c a r d f i l e i t h a m a z i n g f l e x i b i l i t y o t h d a t a f i l e . T h e t i m e s a v i n g sw h e n s e a r c h i n g a n s o r t i n g a r e m o s t i m p o r t a n t , b u t t h s p a c es a v i n g s a l s o p l a y s l a r g e r o l e t o d a y . M i c r o c o m p u t e r s c a n o b e q u i p p e d w i t h m i l l i o n s o c h a r a c t e r s o d a t a s t o r a g e .C a n y o u i m a g i n e h o w m a n y f i l i n g c a r d s w o u l d b r e q u i r e d t s t o r e s m u c h i n f o r m a t i o n ?

D A T A R E C O R D

A w m e n t i o n e d b e f o r e , d a t a r e c o r d c a b c o m p a r e dt f i l i n g c a r d i c a r d c a t a l o g . W i t h i n t h i s d a t a r e c o r da r a l t h d a t a t h a t w o u l d b o t h f i l i n g c a r d , d i v i d e di n t o o n o m o r e F I E L D S .

F I E L D

H e r e t o w e c a n u s e t h e e x a m p l e o t h c a r d c a t a l o g . I

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

F I L E - D A T A R E C O R D - F I E L D

1 8

Page 196: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 196/290

T r i c k s & T i p s

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

F I L E :

R e c :R e c :R e c :

A D D R E S S F I L E

F I E L DL A S T

J o n e sS m i t hG r e e n

F I E L DF I R S T

T o J o h nJ o

F I E L DS T R E E T

1 2 M a i n4 5 6 P a r k7 8 9 K i n g s

S t P I

C t

F I E L DC I T Y

A n y t o w n ,N o w h e r e ,C B M C i t y

A C

T

F I E L DZ I C O D E

5 5 5 5 58 6 5 2 16 8 5 1 3

I t h i s e x a m p l e o n e c a n c l e a r l y s e t h d i f f e r e n c e s a n r e l a t i o n s h i p s b e t w e e n f i l e , d a t a r e c o r d , a n f i e l d . T h e s et e r m s s h o u l d b e w e l l u n d e r s t o o d b e f o r e o n b e g i n s w r i t i n gd a t a m a n a g e m e n t p r o g r a m s . W w i l l n o m o v e o t v a r i o u sa c c e s s a n s t o r a g e m e t h o d s , b u t h b a s i s f o r t h i sp r e s e n t a t i o n w i l l b e t h e m a t e r i a l w h a v e d i s c u s s e d s f a r .

1 8

Page 197: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 197/290

T r i c k s T i p s

8 . C a s s e t t e D i s k e t t e

A f t e r t h i s s o m e w h a t l e n g t h y i n t r o d u c t i o n w e w a n t t a c t u a l l y w r i t e d a t a m a n a g e m e n t p r o g r a m s . W s h o u l d f i r s te x a m i n e t h d e v i c e s w h i c h a r a o u d i s p o s a l f o s t o r a g e o t h C o m m o d o r e 6 4 t h d a t a s e t t e a n d d i s k d r i v e .

H o a r t h e s e t w d e v i c e s a n t h e i r m e d i a d i f f e r e n t ?H o c a t h e y b u s e d ? I o r d e r t c l a r i f y t h e s e q u e s t i o n s w w i l l f i r s t m a k e a e x c u r s i o n i n t o t h b e g i n n i n g s o d a t ap r o c e s s i n g .

N o s m a n y y e a r s a g o , t e r m s s u c h a " f l o p p y " o " m a g n e t i c p l a t t e r " w e r e u n h e a r d . B u e v e n t h e n o n c o u l d n o d w i t h o u t s o m e s o r t o s t o r a g e m e d i u m , d e v i c e t h a t c o u l ds a v e a n d r e c a l l d a t a . P u n c h c a r d s w e r e d e v e l o p e d f o r t h i sp u r p o s e . W i t h t h e s e o n h a s i m p l e a n c o s t - e f f e c t i v em e a n s o s a v i n g a n r e t r i e v i n g d a t a . s e r i o u s d i s a d v a n t a g eo t h d e v i c e s r e q u i r e d f o w o r k i n g w i t h t h p u n c h c a r d s ,t h c a r d p u n c h e r a n r e a d e r , s o o n b e c a m e a p p a r e n t . B o t h w e r ep u r e l y m e c h a n i c a l d e v i c e s a n f a t o s l o w . F a s t e r a n m o r er e l i a b l e s t o r a g e d e v i c e s h a v e a l w a y s b e e n i d e m a n d , s s o m e t h i n g b e t t e r h a t b e d e v e l o p e d . T h r e s u l t W a s t h m a g n e t i c t a p e , w h i c h w e c a n c o m p a r e t o t h e p r e s e n t c a s s e t t e ,s i n c e t h p r i n c i p l e i m u c h t h s a m e a t h a t u s e d b y t h m u c h l a r g e r r e e l - t o - r e e l t a p e d r i v e s u s e d o m a i n f r a m ec o m p u t e r s .

T h p r i n c i p l e o t h c a s s e t t e a s t o r a g e m e d i u m i r e a l l y q u i t e s i m p l e . T h e C o m m o d o r e 6 h a s p e c i f i c d e v i c ea s s i g n m e n t f o t h c a s s e t t e , d e v i c e n u m b e r 1 T h c o m m a n df o w r i t i n g i a l s o 1 T o p e n f i l e o n t h e c a s s e t t er e c o r d e r , t h f o l l o w i n g c o m m a n d m i g h t b u s e d :

O P E N 1 1 1 " C B M 6 F I L E "

1 8

Page 198: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 198/290

Page 199: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 199/290

T r i c k s T i p s

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

A f t e r w h i l e , m a g n e t i c t a p e s n l o n g e r s u f f i c e d ( w w i l l d i s c u s s t h r e a s o n s w h y l a t e r ) , s t h s t o r a g et e c h n i q u e s w e r e r e f i n e d . M a g n e t i c p l a t t e r s w e r e u s e d . H e r et o t h C o m m o d o r e 6 h a s i m i l a r m e t h o d o s t o r a g ea v a i l a b l e . H e r e o n e c a n c o n n e c t o n o m o r e d e v i c e s c a l l e dd i s k d r i v e s . T h e c o r r e s p o n d i n g m e d i u m , t h d i s k e t t e , c a n b ec o m p a r e d t p h o n o g r a p h r e c o r d . O b o t h m e d i a t h e r e a r v a r i o u s " t r a c k s , " a l t h o u g h a l o t h m a t e r i a l o t h d i s k e t t e i m a g n e t i c a n t h e r e f o r e t h t r a c k s a r i n v i s i b l e .T h i s a l l o w s t h " r e c o r d " t n o o n l y b r e a d f r o m b u t a l s ow r i t t e n t o T h s y n t a x o f t h e c o m m a n d f o w r i t i n g o r e a d i n g

f i l e u s i n g t h d i s k l o o k s l i k e t h i s :

O P E N 2 , 8 , 2 , " 0 : C B M 6 F I L E , S , W "

o

O P E N 2 , 8 , 2 , " 0 : C B M 6 F I L E , S , R "

T h f i r s t " 2 i a g a i n t h i n t e r n a l f i l e n u m b e r , " 8 i t h u s u a l d e v i c e n u m b e r f o d i s k d r i v e ( b u t i c a n a l s o b e 9 1 2 ) , a n t h s e c o n d " 2 i t h c h a n n e l n u m b e r . T h e m o s ti n t e r e s t i n g p a r t , h o w e v e r , i t h e n a m e . H e r e w e f i n d f i r s tt h n u m b e r o f t h e d i s k d r i v e ( o 1 ) t h e n t h f i l e n a m e ,t h e n a n " S " f o " s e q u e n t i a l f i l e " ( m o r e a b o u t t h i s l a t e r ) ,a n f i n a l l y e i t h e r " W f o w r i t e o a n " R " f o r e a d .

1 9

Page 200: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 200/290

Page 201: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 201/290

T r i c k s T i p s

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

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

1 9

Page 202: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 202/290

T r i c k s T i p s

T h d a t a s e t t e , o H O D T H B I T S G E T O T H T A P E ?

N o t h a t w h a v e c l a r i f i e d t h p r i n c i p l e s b e h i n d f i l e s( a n d y o u h a v e h o p e f u l l y u n d e r s t o o d t h e m ) , w e w a n t t e x p l a i nh o t h i n f o r m a t i o n i a c t u a l l y p l a c e d o t h t a p e . T h d i s c u s s i o n w i l l b e c o m e b i t e c h n i c a l , b u y o m a f i n d t h i n f o r m a t i o n u s e f u l n o n e t h e l e s s .

T h m e t h o d C o m m o d o r e u s e s f o r e p r e s e n t i n g t h i n f o r m a t i o n ( b i t s ) o t h c a s s e t t e t a p e i c a l l e d P P M o P u l s e P o s i t i o n M o d u l a t i o n . T h i s m e a n s t h a t t h e C o m m o d o r e 6 4 j u s t l i k e i t o t h e r C o m m o d o r e b r o t h e r s , w r i t e s t h d i g i t a ls i g n a l s d i r e c t l y , a n d n o i t h f o r m o t o n e f r e q u e n c i e s ,t t h t a p e . T h e s e d i g i t a l s i g n a l s a r t r a n s m i t t e d i t h r e ed i f f e r e n t l e n g t h s : s h o r t ( S ) , l o n g ( L ) , a n m e d i u m ( N ) . F r o mt h e s e t h r e e l e n g t h s , t h r e e d i f f e r e n t c o m b i n a t i o n s a r f o r m e d , w h i c h h a v e t h f o l l o w i n g m e a n i n g s :

L L M M B Y T E t h i s c o m b i n a t i o n p r e c e d e s e v e r y b y t eM M S SS S M M

T h e l e t t e r " A w o u l d b r e p r e s e n t e d o t h e t a p e i t h f o l l o w i n g f o r m :

L L M M M M S S S S M M S S M M S S M M S S M M S S M M M M S S S S M M M M S SB Y T E 1 0 0 0 0 0 1 0 1B I T * 0 1 2 3 4 5 6 7 p a r i t y O D

T h e f o r m a t o f t h e w h o l e p r o g r a m o f i l e o t h t a p e l o o k sl i k e t h i s :

P r o g r a m s D a t a f i l e s

1 9

Page 203: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 203/290

T r i c k s T i p s

P r o g r a m h e a d e rS t a r t e n a d d r e s s e s , n a m eP r o g r a m h e a d e r ( a g a i n )P r o g r a m ( b l o c k )P r o g r a m ( a g a i n )E n b l o c k

F i l e h e a d e rN a m eF i l e h e a d e r ( a g a i n )D a t a b l o c kD a t a b l o c k ( a g a i n )E n b l o c k

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

P r o g r a m s

S t a r t a d d r e s s ( x x x x )E n a d d r e s s ( x x x x )P r o g r a m n a m e ( 1 c h a r a c t e r s )P a d d i n g c h a r s , ( f o r p r g . n a m e )

D a t a f i l e s

S t a r t a d d r e s s ( 0 0 0 0 )E n a d d r e s s ( 0 0 0 0 )F i l e n a m e ( 1 c h a r s . )P a d d i n g c h a r s , ( f o rf i l e n a m e )

b l o c k c o n s i s t s o f ( p r o g r a m s a n d a t a f i l e s )

a p p r o x i m a t e l y s e c o n d s o l e a d e r

9 - b y t e c o u n t d o w n ( $ 8 9 $ 8 8 $ 8 7 $ 8 $ 8 $ 8 $ 8 3 $ 8 2 $ 8 1 )f o r f i r s t b l o c k

( $ 0 9 $ 0 8 $ 0 7 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 1 )f o r e p e t i t i o n

d a t a

c h e c k s u m ( E X O R c h e c k s u m f o r a l l d a t a )

e n m a r k e r ( L L S S S S S S S S S S S S S S S S S S )

1 9

Page 204: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 204/290

Page 205: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 205/290

Page 206: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 206/290

T r i c k s T i p s

r e c o r d b r e c o r d u n t i l w e h a v e r e a d t h e c o r r e c t S M I T H .N a t u r a l l y , t h i s h a s c e r t a i n t i m e e x p e n s e s : w i t h 2 0 0 0 r e c o r d si f i l e o n e c a n h a v e n i c e c u o c o f f e e o w a l k t h d o w h i l e t h e f i l e i b e i n g p r o c e s s e d . B u t o n e c a n s t i l l u s e t h c a s s e t t e r e c o r d e r f o w o r k i n g w i t h s m a l l a m o u n t s o f d a t a ,e s p e c i a l l y s i n c e i t i s v e r y c o s t - e f f e c t i v e f o s u c ha p p l i c a t i o n s .

T h o s e w h o o w c a s s e t t e s b u w h w o u l d l i k e t p r o c e s st h e i r d a t a q u i c k l y a n e f f i c i e n t l y s h o u l d m a k e u s e o f t h f o l l o w i n g p r o c e d u r e : F o r m a l o y o u r f i l e s s u c h t h a t t h e yw i l l f i i n t o t h e f r e e m e m o r y o t h C o m m o d o r e 6 4 B e f o r ey o u c h a n g e , e r a s e , i n s e r t , o s i m p l y d i s p l a y a n o t h d a t ai t h f i l e , l o a d t h w h o l e t h i n g i n t o m e m o r y f r o m t h c a s s e t t e . N o t h d a t a a c c e s s e s a r n o d e p e n d e n t o t h s p e e d o f t h e c a s s e t t e , r a t h e r , y o c a m a k e u s o t h p r o c e s s i n g s p e e d o y o u r c o m p u t e r . W h e n y o u a r d o n e w o r k i n gw i t h t h f i l e , s a v e t h e n t i r e f i l e b a c k t t a p e . T h i ss i m p l e a n e f f e c t i v e p r o c e d u r e c a a l s o b e u s e d f o l a r g e rf i l e s . F o r e x a m p l e , y o u c a d i v i d e a e x t e n s i v e a d d r e s s f i l ei n t o g r o u p s o n a m e s , o n e t a p e f o t h o s e w h o s e l a s t n a m e ss t a r t w i t h A - C , a n o t h e r f o r D - F , a n s o n s t h a t t h p a r t s e a c h f i i n t o t h e 6 4 ' s m e m o r y . W i t h s o m e s k i l l a n do r g a n i z a t i o n t a p e r e c o r d e r c a n b e u s e d t m a n a g e l a r g ea m o u n t o f d a t a .

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

S e q u e n t i a l f i l e s a r e a l s o a v a i l a b l e a m e t h o d o d a t as t o r a g e o t h d i s k d r i v e . S e q u e n t i a l f i l e s c a n b e f o u n dq u i c k l y a n d i r e c t l y w i t h o u t s e a r c h i n g s i n c e t h d r i v e

1 9

Page 207: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 207/290

T r i c k s T i p s

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

H o d w h a n d l e s e q u e n t i a l f i l e o t h C o m m o d o r e 6 4 F i r s t w m u s t o p e n t h e f i l e . W n e e d t h f i l e n u m b e r , d e v i c en u m b e r , c h a n n e l n u m b e r , a n d f i l e n a m e . O n c e w e h a v e o p e n e df i l e , w c a r e a d o w r i t e i t h f i l e w i t h o n e c o m m a n d , b u tn e v e r b o t h a o n c e .

W i t h o u t d o i n g s o m e t h i n g a d d i t i o n a l w c a n n o t w r i t e t f i l e w h i c h a l r e a d y e x i s t s . I f f o e x a m p l e , y o u o p e n t h f i l e " C B M 6 F I L E " w i t h t h c o m m a n d

O P E N 2 , 8 , 2 , " 0 : C B M 6 F I L E , S , W "

a n f i l e w i t h t h s a m e n a m e a l r e a d y e x i s t s o t h d i s k e t t e , y o u w i l l r e c e i v e t h e r r o r m e s s a g e F I L E E X I S T S .T h c o m m a n d m u s t t h e r e f o r e b m o d i f i e d b p l a c i n g a a t - s i g n( " © " ) i f r o n t o f t h e d r i v e n u m b e r . T h c o m m a n d i t h e n

w o r d e d

O P E N 2 , 8 , 2 " @ 0 : C B M 6 F I L E , S , W "

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

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

1 9

Page 208: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 208/290

Page 209: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 209/290

T r i c k s T i p s

1 W r i t i n g t h d a t a

1 R E * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *2 R E W R I T I N G F I R S T A N L A S T N A M E S T T A P E3 R E V E R S I O N F O D A T A S E T T E C O M M O D O R E 6 4 R E * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *5 P R I N T C H R $ ( 1 4 7 ) R E M E R A S E S C R E E N5 P R I N T " O P E N I N G F I L E F O W R I T I N G "5 P R I N T5 O P E N 1 , 1 , 1 , " C B M 6 F I L E "6 I N P U T " L A S T N A M E " ; L N $7 I N P U T " F I R S T N A M E " ; N $8 P R I N T9 P R I N T " W R I T I N G L A S T N A M E " ; L N $

1 0 P R I N T F I R S T N A M E " ; N $1 1 P R I N T1 2 P R I N T # 1 , L N $1 3 P R I N T # 1 , N $1 4 P R I N T1 5 I N P U T " M O R E ( Y / N ) " ; Y N $1 5 P R I N T1 6 0 I F Y N $ = " Y " T H E N 6 1 7 I Y N $ = " N " T H E N 2 0 1 8 P R I N T " I N V A L I D I N P U T ! "1 9 G O T O 1 4

2 0 C L O S E2 1 E N

T h i s p r o g r a m w i l l s a v e d e s i r e d n u m b e r o f i r s t a n l a s t n a m e s t t a p e . N o t e t h a t t h i s p r o g r a m c a o n l y 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 n e x t p r o g r a m i t h " o p p o s i t e "o f t h e f i r s t . I r e a d s t h d a t a i n t o t h e 6 a n d i s p l a y s i

2 0

Page 210: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 210/290

Page 211: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 211/290

T r i c k s & T i p s

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

5 O P E N 4 , 9 P R I N T # 4 , " R E A D I N G L A S T N A M E " ; L N $

1 0 P R I N T # 4 , " F I R S T N A M E f t N 1 1 P R I N T # 41 3 P R I N T # 4 , " E N D O F F I L E L A S T N A M E " ; L N $1 4 P R I N T # 4 , " F I R S T N A M E " ; N $1 5 C L O S E

T h e r e i y e a n o t h e r p o s s i b i l i t y , n a m e l y t h a d d i t i o no d a t a . A w m e n t i o n e d e a r l i e r , t h e r e i n s i m p l e w a y t a p p e n d d a t a t t h e e n d o c a s s e t t e - b a s e d s e q u e n t i a l f i l ea t h e r e i f o s u c h f i l e o d i s k . T h f i l e m u s t b e r e a di n t o m e m o r y i i t e n t i r e t y , t h e t a p e r e w o u n d , t h e f i l eo p e n e d a g a i n f o w r i t i n g , a n d t h p r e v i o u s l y r e a d d a t aw r i t t e n b a c k t t h t a p e . A t h e n y o m a a d t h n e d a t a . T h e s a m e p r o c e d u r e w o u l d a l s o a l l o w y o t c h a n g e o e r a s e i n d i v i d u a l d a t a .

2 0

Page 212: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 212/290

T r i c k s T i p s

3 A d d i n g d a t a

1 R E * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *2 R E A D D I N G F I R S T A N L A S T N A M E S T T A P E3 R E V E R S I O N F O D A T A S E T T E C O M M O D O R E 6 4 R E * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *5 P R I N T C H R $ ( 1 4 7 ) R E C L E A R S C R E E N5 P R I N T " O P E N I N G F I L E F O R E A D I N G "5 P R I N T5 O P E N l , l , 0 , " C B M 6 F I L E "6 D I L N $ ( 1 0 0 ) , N $ ( 1 0 0 ) 1 = R E 1 0 N A M E S M A X .7 I N P U T # 1 , L N $ : L N $ ( I ) = L N $8 I N P U T # 1 , N $ N $ ( I ) = N $9 0 I F S A N 6 T H E N 1 3

1 0 I 1 = 1 0 0 T H E N 1 3 1 1 1 = 1 + 11 2 G O T O 7 1 3 E N = I1 3 P R I N T1 4 P R I N T " P L E A S E R E W I N D T H T A P E . "1 5 P R I N T1 6 I N P U T " D O N E ( Y / N ) " ; Y N $1 7 I Y N $ = " N " T H E N 1 3 1 8 I Y N $ = " Y " T H E N 2 1 1 9 P R I N T " I N V A L I D I N P U T ! "2 0 G O T O 1 5 2 1 P R I N T " O P E N I N G F I L E F O A P P E N D I N G "2 2 P R I N T2 3 O P E N 1 , 1 , 1 , " C B M 6 F I L E "2 4 0 F O R 1 = 1 T O E 2 5 P R I N T # 1 , L N $ ( I )2 6 P R I N T # 1 , N $ ( I )2 7 N E X T

2 0

Page 213: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 213/290

T r i c k s T i p s

2 8 P R I N T " A D D D A T A : "2 9 P R I N T3 0 I N P U T " L A S T N A M E " ; L N $3 1 I N P U T " F I R S T N A M E " ; N $3 2 P R I N T3 3 P R I N T " W R I T I N G L A S T N A M E " ; L N $3 4 P R I N T F I R S T N A M E " ; N $3 5 P R I N T3 6 P R I N T * 1 , L N $3 7 P R I N T # 1 , N $3 8 P R I N T3 9 I N P U T " M O R E ( Y / N ) " ; Y N $4 0 I Y N $ = " Y " T H E N 3 0 4 1 I Y N $ = " N " T H E N 4 4 4 2 P R I N T " I N V A L I D I N P U T ! "4 3 G O T O 3 8 4 4 C L O S E4 5 0 E N D

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

W s h a l l n o t u r n t s e q u e n t i a l f i l e m a n a g e m e n t o n t h ed i s k d r i v e . H e r e t o o w e w i l l o f f e r t h t h r e e e x a m p l e s w h i c hw e g a v e f o r t h e d a t a s e t t e . T h i s w i l l a l l o w y o u t c o m p a r ea n c o n t r a s t t h t w o .

2 0

Page 214: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 214/290

T r i c k s T i p s

1 W r i t i n g t h d a t a

1 R E * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *2 R E W R I T I N G F I R S T A N L A S T N A M E S T D I S K3 R E M V E R S I O N F O V I C - 1 5 4 1 C O M M O D O R E 6 4 R E * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *5 P R I N T C H R $ ( 1 4 7 ) R E C L E A R S C R E E N5 P R I N T " O P E N I N G F I L E F O W R I T I N G "5 P R I N T5 O P E N 2 , 8 , 2 , " C B M 6 F I L E , S , W "6 I N P U T " L A S T N A M E " ; L N $7 I N P U T " F I R S T N A M E " ; N $8 P R I N T9 P R I N T " W R I T I N G L A S T N A M E " ; L N $

1 0 P R I N T F I R S T N A M E " ; N $1 1 P R I N T1 2 P R I N T # 2 , L N $1 3 P R I N T # 2 , N $1 4 P R I N T1 5 I N P U T " M O R E ( Y / N ) " ; Y N $1 5 P R I N T1 6 I Y N $ = " Y " T H E N 6 1 7 I Y N $ = " N " T H E N 2 0 1 8 P R I N T " I N V A L I D I N P U T ! "1 9 G O T O 1 4 2 0 C L O S E2 1 E N

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

2 0

Page 215: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 215/290

T r i c k s T i p s

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

T h V I C - 1 5 4 1 d i s k d r i v e c a s t o r e t o t a l o 1 7 4 , 8 4 8b y t e s ( c h a r a c t e r s ) o d i s k e t t e . W e c a u s t h f o l l o w i n ga m o u n t s f o r f i l e s :

S e q u e n t i a l f i l e s 1 6 8 , 6 5 6 c h a r a c t e r sR e l a t i v e f i l e s 1 6 7 , 1 3 2 c h a r a c t e r s

m a x i m u m o f 1 4 4 p r o g r a m s a n f i l e s c a n b e s a v e d .

L e t ' s a s s u m e t h a t w e h a v e w r i t t e n c o m p l e t e a d d r e s sm a n a g e r . F o t h e s a k e o e x a m p l e , a s s u m e o u p r o g r a m e x p e c t st h f o l l o w i n g d a t a :

F i e l d L e n g t h

N u m b e rF i r s t n a m eL a s t n a m eS t r e e t a d d r e s sC i t yS t a t eZ i c o d eT e l e p h o n e n u m b e rN o t e s

2 2 2 2

1 5

O u d a t a r e c o r d i 1 6 c h a r a c t e r s l o n g . T t h i s w e a d t h R E T U R N c h a r a c t e r s f o r t h e e n d o f t h e f i e l d s ( C H R $ ( 1 3 ) ) . W em u s t a d d o n e m o r e c h a r a c t e r f o e a c h f i e l d . T h i s y i e l d s

2 0

Page 216: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 216/290

T r i c k s T i p s

t o t a l o f 1 7 3 c h a r a c t e r s . H o w m a n y r e c o r d s c a w s t o r e o o n d i s k e t t e ?

T h c a l c u l a t i o n w n e e d h e r e l o o k l i k e t h i s :

M A B Y T E S F O S E Q U E N T I A L F I L E S L E N G T H O R E C O R D

o i o u r e x a m p l e :

1 6 8 , 6 5 6 1 7 9 7 4 . 8 9 0 1 7 3 4

S i n c e i w i l l b l i t t l e d i f f i c u l t t m a k e u s o 9 7 4 . 8 9 0 1 7 3 4 d a t a r e c o r d s , a n d l i t t l e s p a c e o t h d i s k e t t en e v e r h u r t s , w c o u l d s t o r e u t a b o u t 9 6 r e c o r d s . T h i sn u m b e r s h o u l d s u f f i c e f o m o s t a p p l i c a t i o n s . I f h o w e v e r ,y o n e e d t s t o r e m o r e r e c o r d s , y o u m u s t e i t h e r w r i t e t h p r o g r a m i s u c h w a s t h a t i c a m a k e u s o m u l t i p l ed a t a d i s k s o u s l a r g e r d i s k d r i v e . I o u r e x a m p l e , u s i n g

C o m m o d o r e 8 2 5 0 d r i v e w o u l d i n c r e a s e t h s t o r a g e c a p a c i t yb f a c t o r o p e d r i v e . T h i s w o u l d m e a n t h a t t h 8 2 5 0c o u l d s t o r e m o r e t h a n 5 5 0 0 a d d r e s s e s .

T h i s p o s s i b i l i t y i a v a i l a b l e t t h C o m m o d o r e 6 4 A l t h a t y o n e e d i t h d i s k d r i v e i t s e l f a n a I E E E - 4 8 8i n t e r f a c e f o t h 6 4

2 R e a d i n g t h d a t a

N o o t r e a d i n g t h d a t a . T h p r o g r a m i v i r t u a l l yi d e n t i c a l t t h c a s s e t t e v e r s i o n . F o r t h e s a k e o c o m p l e t e n e s s w w i l l p r e s e n t t h i s p r o g r a m a g a i n :

2 0

Page 217: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 217/290

T r i c k s T i p s

1 R E * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *2 R E M R E A D I N G F I R S T A N L A S T N A M E S F R O M D I S K3 R E V E R S I O N F O V I C - 1 5 4 1 C O M M O D O R E 6 4 R E * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *5 P R I N T C H R $ ( 1 4 7 ) R E C L E A R S C R E E N5 P R I N T " O P E N I N G F I L E F O R R E A D I N G "5 P R I N T5 O P E N 2 , 8 , 2 , " C B M 6 F I L E , S , R "6 I N P U T # 2 , L N $7 I N P U T # 2 , N $8 I S T A N D 6 T H E N 1 3 R E E N O F F I L E ?9 P R I N T " R E A D I N G L A S T N A M E " L N

1 0 P R I N T F I R S T N A M E " ; N $1 1 P R I N T1 2 G O T O 6 1 3 P R I N T " E N D O F F I L E L A S T N A M E " ; L N $1 4 P R I N T F I R S T N A M E " ; N $1 5 C L O S E1 6 E N

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

2 0

Page 218: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 218/290

T r i c k s T i p s

3 A d d i n g d a t a

1 R E * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *2 R E A D D I N G F I R S T A N D L A S T N A M E S T F I L E3 R E M V E R S I O N F O V I C - 1 5 4 1 C O M M O D O R E 6 4 R E * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *5 P R I N T C H R $ ( 1 4 7 ) R E C L E A R T H S C R E E N5 P R I N T " O P E N I N G F I L E F O A P P E N D I N G "5 P R I N T5 O P E N 2 , 8 , 2 , " C B M 6 F I L E , S , A "6 I N P U T " N A M E " ; L N $7 I N P U T " ; N $8 P R I N T9 P R I N T " W R I T I N G L A S T N A M E " ; L N $

1 0 P R I N T F I R S T N A M E " N 1 1 P R I N T1 2 P R I N T # 2 , L N $1 3 P R I N T # 2 , N $1 4 P R I N T1 5 I N P U T " M O R E ( Y / N ) " ; Y N $1 5 P R I N T1 6 I Y N $ = " Y " T H E N 6 1 7 I Y N $ = " N " T H E N 2 0 1 8 P R I N T " I N V A L I D I N P U T ! "1 9 G O T O 1 4 2 0 C L O S E2 1 0 E N D

A y o u h a v e n o t i c e d , t h i s p r o g r a m b e a r s s t r o n gr e s e m b l a n c e t t h p r o g r a m f o w r i t i n g t h d a t a — w i t h o n e x c e p t i o n : T h O P E N c o m m a n d w a c h a n g e d f r o m

2 1

Page 219: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 219/290

T r i c k s & T i p s

O P E N 2 , 8 , 2 , " C B M 6 F I L E , S , W W

t

O P E N 2 , 8 , 2 , " C B M 6 F I L E , S , A M

T h i s a b i l i t y o t h d i s k a l l o w s r e l a t i v e l y e a s y m a n i p u l a t i o no s e q u e n t i a l f i l e s .

A t h c l o s e o t h i s s e c t i o n , w e w o u l d l i k e t c l a r i f yt h r a n g e o a p p l i c a t i o n s o s e q u e n t i a l f i l e s . F o r d a t am a n a g e m e n t w h e r e f a s t a c c e s s a n e a s y a l t e r a t i o n o d a t a i i m p o r t a n t , s e q u e n t i a l f i l e s a r u s e d o n l y u n d e r c e r t a i nc o n d i t i o n s . S e q u e n t i a l f i l e s f i l e s a r u s e d p r i m a r i l y w h e nf i l e i t b c r e a t e d f o c l e a r l y d e f i n e d p u r p o s e i c l e a r l y d e f i n e d f o r m . A e x a m p l e i d a t a e x c h a n g e b e t w e e nc o m p u t e r s . S e q u e n t i a l f i l e s c a n , i p r i n c i p l e , b r e a d b a n c o m p u t e r p r o v i d e d t h c h a r a c t e r s e t s ( g e n e r a l l y A S C I I )a r c o m p a t i b l e . W i t h r e l a t i v e f i l e s o d i r e c t a c c e s s , t h ev a r i o u s d i s k o p e r a t i n g s y s t e m s u s d i f f e r e n t m e a n s o m a n a g i n g t h f i l e s a n d s u c h a e x c h a n g e i g e n e r a l l y n o p o s s i b l e . A n o t h e r e x a m p l e i r e g i s t e r f i l e s w h i c h a r c r e a t e d o n c e a n d t h e n n e v e r c h a n g e d , s u c h a t h b o o kk e e p i n g j o u r n a l i a c c o u n t i n g .

2 1

Page 220: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 220/290

T r i c k s T i p s

8 . C o p y i n g f i l e s w i t h o n e a n d t w d i s k d r i v e s

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

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

W e w i l l f i r s t d i s c u s s c o p y i n g f i l e s . I o u r e x a m p l e , w a s s u m e t h a t t h e f i l e h a s b e e n s a v e d s e q u e n t i a l l y . T h e r e a r s e v e r a l w a y s o c o p y i n g t h i s f i l e . F i r s t , w c o u l d r e a d t h e n t i r e f i l e i n t o t h e 6 4 f s m e m o r y i o r d e r t c o p y t h r e c o r d s i n t o t h e n e f i l e . T h i s m e t h o d e i t h e r r e q u i r e s

v e r y l a r g e a m o u n t o m e m o r y ( t h e d i s k e t t e c a c o n t a i n u t 1 7 0 , 0 0 0 c h a r a c t e r s w h i l e t h C o m m o d o r e 6 c a h o l d o n l ya b o u t 3 0 , 0 0 0 a l o n g w i t h B A S I C a n d p r o g r a m ) o i l i m i t e d t s m a l l f i l e s . " c o m p r o m i s e " i p o s s i b l e w h e r e c e r t a i nn u m b e r o r e c o r d s a r r e a d i b y b l o c k s a n d t h e n w r i t t e nb a c k t t h d i s k e t t e . W e w i l l k e e p t t h s i m p l e s t m e t h o dh o w e v e r a n r e a d e a c h r e c o r d i a n t h e n w r i t e i b a c k .

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

2 1

Page 221: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 221/290

T r i c k s T i p s

5 0 0 0 0

5 0 0 1 0s 0 :

5 0 0 2 05 0 0 3 05 0 0 4 05 0 0 4 55 0 0 5 0

5 0 0 6 05 0 0 7 05 0 0 8 05 0 0 9 05 0 1 0 05 0 1 1 0

5 0 1 1 2

5 0 1 1 5

5 0 1 2 0

5 0 1 3 05 0 1 4 05 0 1 4 55 0 1 5 05 0 1 6 05 0 1 7 0

5 0 1 8 0

5 0 1 9 05 0 2 0 05 0 2 1 05 0 2 2 0

5 0 2 3 0

5 0 2 4 05 1 0 0 05 1 0 1 05 1 0 2 0

5 1 0 3 05 1 0 4 05 1 0 5 0

A D * = n a R I 6 I N A L F I L E 1 1 . 1 :R E M N A M E O T H F I L E ( C H A N G E A S N E E D E D )N F * ~ " N E W F I L E " :R E N A M E O N E F I L EN F * = l l G i : I I + N F * + " S W R E W R I T E N E W F I L EI N P U T " H O W M A N Y F I E L D S P E R E C O R D • ' N F N F = V A L ( N F $ )D I M F T * < N F > :R E D I M E N S I O N F I E L D T I T L E SD I D F * < N F > :R E D I M E N S I O N D A T A F 1 L E D SF O 1 = T A F

R E M I N P U T A L L F I E L D T I T L E SI N P U T F T * ( I )

N E X TP R I N TP R I N T " C O P Y I N G I P R O G R E S S . , "O P E N 1 , 8 , 2 h A F * :R E M O P E N F I L E F O R R E A D I N GO P E N 2 , B ! , 3 , N F 1 ^R E O P E N F I L E F O R W R I T I N GR N = =R E B E G I N W I T H R E C O R DP R I N T " R E A D I N G R E C O R D N O " R I M :P R I N TF O I ~ T N F . "

R E R E A D A L F I E L D SI N P U T 4 t l . D F * < I )P R I N T " F T * < 1 ) " ; D F * ( DD L « S T :R E D F I L E S T A T U S

N E X TP R I N TP N W T I M G R E C O R D N O N R " .P R I N TF O I « T N F

R E W R I T E A L F I E L D SP R I N T # 2 , D F * ( I )

N E X TP R I N TI D A N 6

T H E N 5 1 0 0 0 :R E E N O T H F I L E ?

D R - D R + l r .R E N E X T R E C O R DG O T O 5 0 1 1 3P R I N T " A L L R E C O R D S ( J U R I E D . "P R I N Tc l o s e ; ; ■ . :R E C L O S E T H F I L E SC L O S LP R I N T " E N D . "E N

2 1

Page 222: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 222/290

Page 223: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 223/290

Page 224: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 224/290

T r i c k s T i p s

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

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

2 1

Page 225: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 225/290

T r i c k s T i p s

8 . F a s t e r a c c e s s : R e l a t i v e f i l e s

O t h e r C o m m o d o r e c o m p u t e r s w i t h B A S I C 4 . 0 a n d C o m m o d o r e6 4 ' s e q u i p p e d w i t h I E E E e x p a n d e r s w i t h B A S I C 4 . o M A S T E R6 h a v e m u c h e a s i e r m e t h o d s o m a n a g i n g r e l a t i v e f i l e s t h a nd o e s a u n a i d e d C o m m o d o r e 6 4 . I n r e l a t i v e f i l e , e a c hr e c o r d c a r r i e s n u m b e r w h i c h , b a s e d o i t p o s i t i o n , i r e l a t i v e t t h b e g i n n i n g o f t h e f i l e . T h i s a l l o w s y o u t c o n s t r u c t d a t a m a n a g e m e n t p r o g r a m u s i n g o n o f t w o b a s i co p t i o n s :

1 Y o u u s e t h o r d e r i n g c r i t e r i u m o f t h e r e l a t i v ef i l e , n a m e l y t h g i v e n r e c o r d n u m b e r , a t h a c c e s s k e y f o y o u r r e c o r d . U s i n g t h i s , y o u c o u l ds e t t h e a c c o u n t n u m b e r i a a c c o u n t f i l e e q u a lt t h r e c o r d n u m b e r . T h i s m a k e s p o s s i b l ef a s t e r , m o r e d i r e c t a c c e s s t t h d e s i r e da c c o u n t . T h e s a m e a p p l i e s f o r p a r t n u m b e r s a n o t h e r n u m e r i c k e y s w h i c h y o u m a y w a n t t u s e .

2 Y o b u i l d t a b l e w h i c h c o n t a i n s t h k e y si n d e x e d t t h r e c o r d n u m b e r s . I f f o e x a m p l e ,y o h a v e o r d e r e d y o u r a d d r e s s f i l e b y n a m e s a n w a n t t s e a r c h f o a a d d r e s s w i t h t h n a m eS M I T H , y o f i r s t s e a r c h t h t a b l e f o r t h e n a m eS M I T H a n t h e n u s i n g t h r e c o r d n u m b e r a s s o c i a t e dw i t h t h e n a m e , a c c e s s t h i s r e c o r d d i r e c t l y . T h i sp r o c e d u r e i c o n s i d e r a b l y f a s t e r a n m o r e e l e g a n tt h a n r e a d i n g t h r o u g h s e q u e n t i a l f i l e u n t i l t h n a m e i f o u n d .

U n f o r t u n a t e l y , u s e r s o s e r i a l - o r i e n t e d C o m m o d o r e 6 4 ' sw h o h a v e n o a d d e d B A S I C 4 . c a p a b i l i t y t t h e i r m a c h i n e s

2 1

Page 226: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 226/290

T r i c k s T i p s

c a n n o t n o r m a l l y m a k e u s o t h e s e e f f i c i e n t r e l a t i v e f i l e s .T h V I C - 1 5 4 1 d i s k d r i v e ' s o p e r a t i n g s y s t e m i a b l e t w o r kw i t h r e l a t i v e f i l e s , b u t h n e c e s s a r y c o m m a n d s a r n o a v a i l a b l e i t h 6 4 ' s C o m m o d o r e B A S I C 2 . 0 . W w o u l d l i k e t s h o w y o u w a i w h i c h o n c a u s r e l a t i v e f i l e s o t h C o m m o d o r e 6 i s p i t e o f t h i s l i m i t a t i o n .

T h p o s s i b i l i t y e x i s t s t i n f o r m t h e d i s k d r i v e u s i n gC H R $ c o m m a n d s w h i c h r e c o r d i t b w r i t t e n o r r e a d . T h w h o l e p r o c e d u r e c o n s i s t s o t w o p a r t s :

1 O p e n i n g t h r e l a t i v e f i l e w i t h t h u s u a l O P E N c o m m a n d :

O P E N f i l e n u m b e r , d e v i c e a d d r e s s , c h a n n e l n u m b e r ," n a m e , L , " + C H R $ ( l e n g t h )

T h f i r s t p a r t o f t h i s O P E N c o m m a n d i t h s a m e a t h a t f o s e q u e n t i a l f i l e s . A f t e r t h d e c l a r a t i o n o f t h e n a m e c o m e s a " L " . T h i s s t a n d s f o L E N G T H — - t h e d i s k d r i v e n o w k n o w s t h a ti t i s s u p p o s e d t o p e n r e l a t i v e f i l e . N e x t c o m e s v e r yi m p o r t a n t C H R $ c o m m a n d . T h i s c o m m a n d t e l l s t h d i s k d r i v et h l e n g t h o t h d a t a r e c o r d s i o u f i l e . I o u p r e v i o u se x a m p l e o t h a d d r e s s f i l e , w w o u l d e n t e r 1 7 h e r e a t h r e c o r d l e n g t h . T h C o m m o d o r e 6 a n t h d i s k o p e r a t i n gs y s t e m a l l o w m a x i m u m r e c o r d l e n g t h o f 2 5 4 c h a r a c t e r s . I r e c o r d r e q u i r e s m o r e t h a n 2 5 c h a r a c t e r s , e i t h e r a n o t h e rf i l e m u s t b o p e n e d a n d t h e r e c o r d d i v i d e d i n t o t w o m o r es m a l l e r r e c o r d s o y o u c a n w r i t e i t h s a m e f i l e a n d m a k en o t e o t h e f a c t t h a t e v e r y s e c o n d r e c o r d i t h s e c o n d p a r to t h " m e t a - r e c o r d . "

2 1

Page 227: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 227/290

T r i c k s T i p s

2 P o s i t i o n i n g t h r e c o r d p o i n t e r :

P R I N T * c h a n n e l n u m b e r , " P " + C H R $ ( c h a n n e l n u m b e r ) +C H R $ ( l o w ) + C H R $ ( h i g h )

T h s p e c i a l p a r t o t h i s c o m m a n d b e g i n s a f t e r t h d e c l a r a t i o n o f t h e f i l e n u m b e r . T h W P m e a n s P O S I T I O N a n t e l l s t h o p e r a t i n g s y s t e m t h a t t h f o l l o w i n g C H R $ c o m m a n d sa r t s e t t h e r e c o r d p o i n t e r t h r o u g h t h i n p u t o L O a n H I G H ( w w i l l s h o w y o u l a t e r h o w t c a l c u l a t e L O a n H I G H ) .

T h c o m m a n d c a n b e e x p a n d e d e v e n f a r t h e r . I y o a d a n o t h e r C H R $ c o m m a n d t t h e e n d o f t h e c u r r e n t s t r i n g , t h i sw i l l d e s i g n a t e t h p o s i t i o n w i t h i n d a t a r e c o r d . T h i s a l l o w sy o t s e t h r e c o r d p o i n t e r t s p e c i f i c c h a r a c t e r .

T h e r e i o n e v e r y i m p o r t a n t c h a r a c t e r i s t i c o r e l a t i v ef i l e s w h i c h m u s t b e n o t e d :

t e r m i n a t i n g c h a r a c t e r ( C H R $ ( 1 3 ) ) m u s t b w r i t t e n t t h r e c o r d a f t e r e a c h F I E L D i w r i t t e n . W i t h o u t t h i ss e p a r a t i n g c h a r a c t e r , t h c o m p u t e r w i l l n o b e a b l e t d i s t i n g u i s h b e t w e e n s u c c e s s i v e f i e l d s . F o r t h i s r e a s o n w eh a v e a l w a y s p l a c e d t h P R I N T * c o m m a n d s o d i f f e r e n t l i n e s s t h a t c a r r i a g e r e t u r n , C H R $ ( 1 3 ) , i a u t o m a t i c a l l y s a v e db e t w e e n t h r e c o r d s .

T h i s w i l l a l b m a d e c l e a r e r t h r o u g h a e x a m p l e .T h e r e f o r e , w h a v e i n c l u d e d c o m p l e t e l y f u n c t i o n a li n v e n t o r y c o n t r o l p r o g r a m a t h e n o t h i s s e c t i o n s t h a ty o u c a n s e e t h e p r o c e d u r e s d i s c u s s e d i t h s e c t i o n a c t u a l l yu s e d i p r o g r a m . W b e l i e v e t h a t t h e t r o u b l e o t y p i n gt h i s p r o g r a m i w i l l b w e l l w o r t h i t s i n c e w i t h o n l y m i n o rc h a n g e s i c a b u s e d a s a n a d d r e s s m a n a g e r , t a p e a n r e c o r d c a t a l o g u e r , a n d m o r e .

2 1

Page 228: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 228/290

T r i c k s T i p s

B u f i r s t t t h a b o v e - m e n t i o n e d H I G H a n d L O W n u m b e r s .T h e s e H I G H a n L O n u m b e r s t o g e t h e r g i v e t h a c t u a l d a t ar e c o r d n u m b e r . T h f o r m u l a f o c a l c u l a t i n g t h r e c o r d n u m b e r

r e c o r d n u m b e r H I G H 2 5 L O

T h i s a l l o w s u a c c e s s t r e c o r d s w i t h n u m b e r s g r e a t e r t h a n2 5 5 . T o r e a d t h 7 8 t h r e c o r d , f o i n s t a n c e , w e m u s t f i r s tc a l c u l a t e H I G H a n L O W :

H I G H I N ( r e c o r d n u m b e r 2 5 6 )

L O r e c o r d n u m b e r H I G H 2 5

o i c o n c r e t e e x a m p l e

H B = I N T ( 7 8 / 2 5 6 ) : L B = 7 8 - H B * 2 5 6

w h i c h y i e l d s t h v a l u e s

H 0 L 7

T h i s c a l c u l a t i o n i r a t h e r t r i v i a l f o r e a d i n g r e c o r dw h o s e n u m b e r i l e s s t h a n 2 5 6 , b u t t h i s e x a m p l e s h o w s h o wa l l o f t h c a l c u l a t i o n s c a n b e m a d e .

T h i s r e s u l t m u s t n o b u s e d i t h c o m m a n d t s e t t h er e c o r d p o i n t e r . T s e t t h e p o i n t e r t t h 7 8 t h r e c o r d , t h c o m m a n d i

P R I N T # c h a n n e l n u m b e r , " P M + C H R $ ( c h a n n e l n u m b e r ) + C H R $ ( 0 ) + C H R $ ( 7 8 )

I o u i n v e n t o r y m a n a g e m e n t p r o g r a m , y o w i l l f i n d t h

2 2

Page 229: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 229/290

T r i c k s T i p s

f o l l o w i n g s t r u c t u r e :

P R I N T # 1 5 , " P " + C H R $ ( 3 ) + C H R $ ( 2 3 1 ) + C H R $ ( 3 ) + C H R $ ( 1 )

T h i s c o m m a n d w i l l s e t t h e p o i n t e r t t h f i r s t c h a r a c t e rw i t h i n t h 9 9 9 t h d a t a r e c o r d o f t h e f i l e .

B e f o r e t h f i l e c a b u s e d , i m u s t f i r s t b p r e p a r e df o r e l a t i v e o p e r a t i o n . T h i s i d o n e b y s e t t i n g t h r e c o r dp o i n t e r t r e c o r d a n d t h e n w r i t i n g t t h i s r e c o r d w i t h t h c h a r a c t e r C H R $ ( 2 5 5 ) . T h i s c h a r a c t e r t e l l s t h e o p e r a t i n gs y s t e m t h a t a e x i s t i n g d a t a r e c o r d l i e s a t h i s p o i n t , i w h i c h n o t h i n g h a s y e t b e e n w r i t t e n . I o u r e x a m p l e , a l l o ft h 9 9 r e c o r d s a r e m a r k e d w i t h t h i s c h a r a c t e r .

N o w e c a n w r i t e t h r e c o r d i t h i s f i l e , b u n m o r et h a n w e h a v e d e c l a r e d w h e n w o p e n e d t h e f i l e . I o n e t r i e st w r i t e r e c o r d w h i c h l i e s o u t s i d e o t h a l l o w e d r a n g e ,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 t h e r r o r m e s s a g e R E C O R D N O P R E S E N T , s i n c e t h i s d a t a r e c o r d d o e s n o t e x i s t .

I o u p r o g r a m , a f t e r y o s t a r t i w i t h R U N , y o u w i l lb a s k e d i t h d i s k d r i v e i c o n n e c t e d . T h i s m e s s a g e w i l la p p e a r u n t i l y o u p r e s s t h k e y . A f t e r t h i s , y o w i l l b a s k e d i y o w a n t t u s n e d i s k . " N e w " m e a n s o n l y t h a tt h d i s k i u n f o r m a t t e d o t h a t i h a n o b e e n i n i t i a l i z e df o t h f i l e . B e c a r e f u l , t h o u g h , b e c a u s e t h d i s k w i l l b f o r m a t t e d i a n e v e n t , s d o n ' t u s e d i s k w h i c h c o n t a i n sa n y t h i n g y o m i g h t w a n t t o k e e p . W h e n t h i s i d o n e , t h e m a i nm e n u w i l l a p p e a r . F r o m t h i s p o i n t , y o c a n c a l l u s i p o s s i b l e f u n c t i o n s .

W h e n y o w a n t t c o n s t r u c t r e c o r d , r e m e m b e r t h a t t h ei n p u t m a b n l o n g e r t h a n t h l e n g t h g i v e n i t h d a t al i n e s ( 3 0 - 8 2 ) . T h e s e l i n e s a r c o n s t r u c t e d s u c h t h a t t h en a m e i e n t e r e d f i r s t a n t h e n t h l e n g t h o f t h e f i e l d . T d e l e t e a e x i s t i n g r e c o r d , g o t o t h r o u t i n e C H A N G E a n

2 2

Page 230: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 230/290

T r i c k s T i p s

e n t e r a n @ a s t h f i r s t c h a r a c t e r i t h D E S C R I P T I O N f i e l d .T h i s w i l l m a r k t h r e c o r d a e r a s e d .

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

W h e n f i r s t e n t e r i n g p a r t , o n l y t h e p a r t n u m b e r a n d e s c r i p t i o n a r e n t e r e d . T e n t e r a i n i t i a l q u a n t i t y , y o m u s t e n t e r t h i s q u a n t i t y a s a l e s s l i p . A t h i s t i m e y o uw i l l a l s o h a v e t o p p o r t u n i t y t s e t c o s t a n d p r i c e o f t h ei t e m . T h i s m u s t a l s o b e d o n e w h e n r e c e i v i n g i t e m s . T o u p d a t et h i n v e n t o r y ( w h e n g o o d s a r s o l d ) , e n t e r t h q u a n t i t y s o l da n e g a t i v e n u m b e r w h e n e n t e r i n g t h s a l e s s l i p . Y o d n o h a v e t r e - e n t e r t h c o s t a n d p r i c e e a c h t i m e — j u s tp r e s s R E T U R N w h e n a s k e d .

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

p r i n t e r , y o u m u s t r e w r i t e t h p r o g r a m . L i n e s c o n t a i n i n gP R I N T # 4 c o m m a n d s m u s t b c h a n g e d s i n c e t h e s e a r e t h e l i n e sw h i c h s e n d t h d a t a t t h p r i n t e r .

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

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

2 2

Page 231: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 231/290

T r i c k s T i p s1 1

2

3 3 3 3 3 4 4 5

5 5 6 7

7 7 8 8 1 0 1 1 1 2 1 3 1 4

1 5 1 6

1 7

1 8 1 9

2 0

C L M E ( l ) = 1 . 0 6 5 :M E ( 2 ) = 1 . 1 3 :M E ( 3 ) = 1 . 0 7 :M E ( 4 > = 1 . 1 4F O 1 = T 7

R E A D T D * ( I ) , T D ( I ) :N E X TD A T A " 1 P A R T N U M B E RD A T A " 2 D E S C R I P T I O ND A T A " 3 Q U A N T I T YD A T A " 4 C O S T / E A C HD A T A M 5 T O T A L C O S TD A T A " 6 P R I C E / E A C HD A T A " 7 T O T A L P R I C EF O 1 = T 3

R E A D T I * < I ) , T I ( I ) :N E X TD A T A " 1 P A R T N U M B E RD A T A " 2 D E S C R I P T I O ND A T AF O 1 = T 4

R E A D T T * < I ) , T T < I > :N E X TD A T A " 1 B R A N C H N U M B E RD A T A " 2 D A T ED A T A H 3 A C C O U N T N U M B E RD A T A " 4 R E C E I P T N U M B E RP R I N T C H R * ( 1 4 7 )

" " 2

: "

" " " 5

: " , 3: " 2 : " , l

" : " , 8: " , 8: %

P R I N T " * # # # # * * * # * * * * * # * * # # * * * * # • * * ■ * * * * ■ * * * * * * * * * • * ' "P R I N T " D A T A M A N A G E M E N T P R O G R A M 1 . * " P R I N T ■ * ■ * * • * * # * * * • * • * • * ■ # * • • * *P R I N TP R I N TP R I N T " D I S K D R I V E C O N N E C T E D ? " G E A * I A $ = " "T H E N 1 6 I A H K > " Y "T H E N 1 6 P R I N T A O P E N 1 5 , 8 , 1 5 , " 1 0 " :C L O S E 1 P R I N T " N E W D I S K E T T E ? ( Y / N ) "

2 1 0 G E T A * I A $ « " "T H E N 2 1

2 2 I A $ O " Y "T H E N 3 0

2 2 P R I N T A 2 3 O P E N 1 5 , 8 , 1 5 , " N : D A T A D I S K E T T E , A H "2 4 O P E N 1 , 8 , 3 , , 0 I M V D A T , L + C H R * ( 6 4 )2 5 P R I N T # 1 5 , " P " + C H R * ( 3 + - C H R * ( 2 3 1 ) + C H R * ( 3 + C H R $ 1 2 6 P R I N T # 1 , C H R $ ( 2 5 5 ) ! i2 7 R M = I N T ( 1 6 7 1 3 2 / 6 4 )

2 2

Page 232: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 232/290

Page 233: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 233/290

T r i c k s T i p s1 0 9 31 0 9 5

1 1 0 01 1 0 2

1 1 1 01 1 2 0

1 1 3 01 1 4 01 1 5 01 2 0 0

1 2 2 02 0 0 0

2 0 0 22 0 0 52 0 1 02 0 2 02 0 3 02 0 4 02 0 5 0

2 0 5 52 0 6 02 0 7 02 0 8 02 0 9 0

2 1 0 0

2 1 1 02 1 2 0

2 1 3 02 1 4 02 1 4 2

2 1 5 02 1 6 02 1 7 02 1 8 02 1 9 0

2 2 0 0

2 2 1 02 2 2 02 2 3 02 2 4 0

F O 1 = T I L E N ( T E * < I > > > T I ( IT H E N 1 0 6 5

N E X TF O 1 = T 8

T E * < I ) « " " SN E X TR N = V A L < T E * ( 1 ) )I R N < 1 O R N > 9 9 9T H E N 1 0 0 5B O S U B 1 0 0 0 0G O S U B 1 0 0 7 0G O T O 1 0 0 5C L O S E 8 C L O S E 1 G O T O 3 0 O P E N 1 5 , 8 , 1 5 :O P E N 8 , 8 , 8 , " O : I N V D A T "G O S U B 1 2 0 0 0P R I N T C H R * < 1 4 7 )P R I N TP R I N TP R I N T

1 D A T A M A N A G E M E N T P R O G R A M 1 - * « * ^ * # * * * # * * * # # * * * * # * * * # * * * * * * * * * * * * * * * * * #

P R I N TP R I N TP R I N T T A B < 8 " C H A N G E P A R T 1 1 :P R I N TP R I N TT E * < 1 > « I M IP R I N T T I * < 1 > 5I N P U T T E * ( 1 )P R I N TI T E $ ( 1 ) = " E N D "T H E N 2 4 0 0I L E N ( T E $ ( 1 > ) > T I ( 1 )T H E N 2 0 5 5R N = V A L ( T E * < 1 ) )I R N < 1 O R R N > 9 9 9T H E N 2 0 0 5G O S U B 1 0 0 0 0G O S U B 1 0 0 3 0I V A L ( T E $ ( 1 ) ) < > R NT H E N 2 0 0 5P R I N T C H R * ( 1 4 7 >P R I N T " * * * * # * # # * # * # * * * * * * * # # # * * # * # * * * * * * * * * ■ * * * * "P R I N T " D A T A M A N A G E M E N T P R O G R A M 1 . * P R I N T " * * # * # * * # * * * *P R I N TP R I N TP R I N T T A B ( 8 ) " C H A N G E P A R T " :P R I N TP R I N TF O 1 = T

P R I N T T I * < I ) 5 " ? " P R I N T T E * ( I )P R I N T C H R * U 4 5 ) 2 2

Page 234: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 234/290

T r i c k s T i p s2 2 5 0 P R I N T T I * ( I ) 52 2 6 0 I N P U T T E * ( I )2 2 7 0 P R I N T2 2 8 0 I T E * < i ) » " E N D "

T H E N 2 4 0 02 2 9 0 I L E N ( T E * < I ) ) > T I < I )

T H E N 2 2 5 02 3 0 0 N E X T2 3 1 0 R N = V A L < T E * ( 1 > )2 3 2 0 I R N < 1 O R N > 9 9 9

T H E N 2 0 0 52 3 3 0 G O S U B 1 0 0 0 02 3 4 0 G O S U B 1 0 0 7 02 4 0 0 C L O S E 4

C L O S E 8 C L O S E 1

2 4 3 0 G O T O 3 0 02 5 3 0 G O T O 3 0 0 53 0 0 0 O P E N 1 5 , 8 , 1 5 :

O P E N 8 , 8 , 8 , O I I M V D A T3 0 0 1 O P E N 4 , 4 :

D V « 13 0 0 2 G O S U B 1 2 0 0 03 0 0 5 P R I N T C H R * < 1 4 7 >3 0 1 0 P R I N T ' ' * * # * * * * * * * * # * * * * ■ * # * # * # * # # * ■ * * * * * * * # * ■ * # ■ * * *3 0 2 0 P R I N T " D A T A M A N A G E M E N T P R O G R A M 1 . 3 0 3 0 P R I N T n * * * * * * # # * * * * * * • * * # * * * # * * * * # * * * * * * * * # * * * * #3 0 4 0 P R I N T

P R I N T3 0 5 0 P R I N T T A B ( 7 ) " E N T E R S A L E S S L I P " :

P R I N TP R I N T3 0 6 0 T E * U ) « " "3 0 7 0 P R I N T T I * < i ) ;3 0 8 0 I N P U T T E * < 1 >3 0 9 0 P R I N T3 1 0 0 I T E * ( 1 ) « " E N D 1 1

T H E N 3 7 0 03 1 1 0 1 L E N ( T E * < 1 ) ) > T 1 ( 1 )

T H E N 3 0 6 03 1 2 0 R N » V A L ( T E * < 1 ) )3 1 3 0 I R N < 1 O R R N > 9 9 9

T H E M 3 0 0 53 1 3 2 I D W = 1 A N D R N > 7 9 9

T H E N 3 0 0 53 1 3 4 I D W = 2 A N D R N < 8 0 0

T H E N 3 0 0 03 1 4 0 G O S U B 1 0 0 0 03 1 5 0 G O S U B 1 0 0 3 03 1 5 2 I V A < T E * < 1 > ) < > R

T H E N 3 0 0 53 1 5 4 I L E F T * ( T E * ( 2 ) „ 1 ) = " © "

T H E N 3 0 0 53 1 6 0 P R I N T C H R * < 1 4 7 )3 1 7 0 P R I N T l ' * * ^ # * * * # # * * * * # * * *3 1 8 0 P R I N T " D A T A M A N A G E M E N T P R O G R A M 1 .

2 2

Page 235: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 235/290

T r i c k s T i p s3 1 9 0 P R I N T l ' * # * * * * # * * * * # * * * * * # * * # * * * * * # * * * * * * * * * # # * * ' '3 2 0 0 P R I N T

P R I N T3 2 1 0 P R I N T T A B < 7 ) " E N T E R S A L E S S L I P " :

P R I N TP R I N T

3 2 1 2 F O R 1 = T 3 2 1 4 T H I = * T E * ( 1 + 3 )3 2 1 6 N E X T3 2 2 0 F O 1 = T 3 2 3 0 P N T D I ' T E ( I 3 2 3 5 T X * ( I ) = T E * ( I )3 2 4 0 P R I N T3 2 5 0 N E X T3 2 5 5 T X * ( 3 ) = T E * ( 3 >3 2 6 0 P R I N T T D * < 3 ) 33 2 7 0 I N P U T T X * ( 4 >3 2 7 5 T E * ( 4 ) = T X * < 4 )3 2 8 0 P R I N T3 2 8 5 I V A L ( T E * < 4 ) ) < - 9 9 9 O V A L ( T E * ( 4 ) ) > 9 9 9

T H E N 3 2 6 03 2 8 7 I L E N ( T E * ( 4 ) ) > T D ( 3 )

T H E N 3 2 6 03 2 9 0 P R I N T T D * ( 4 >3 2 9 5 T E * ( 5 > = " "3 3 0 0 I N P U T T X * ( 5 >3 3 0 5 T E * ( 5 > = T X * ( 5 )3 3 1 0 P R I N T3 3 1 5 I L E N ( T E * ( 5 ) ) > T D ( 4 )

T H E N 3 2 9 03 3 2 0 P R I N T T D * ( 6 > " ,3 3 2 5 T E * < 7 ) = n i >3 3 3 0 I N P U T T X * < 7 >3 3 3 5 T E < 7 ) = T X * ( 7 )3 3 4 0 P R I N T3 3 4 5 I L E N ( T E * ( 7 ) > > T D ( 6 )

T H E N 3 3 2 03 3 4 6 T H = V A L ( T E * ( 4 ) )3 3 4 7 T H = T H + V A L ( T H * ( 1 ) )3 3 4 8 T E $ ( 4 ) = S T R * ( T H )3 3 5 0 T H = V A L < T E $ ( 5 ) ) ^ V A L ( T E $ < 4 ) )3 3 5 1 T X * ( 6 ) = S T R * < T H )3 3 5 5 T E * ( 6 > = S T R * < T H >3 3 6 0 T H = V A L < T E * < 7 ) ) * V A L < T E * ( 4 ) )3 3 6 1 T X * ( 8 ) = S T R * < T H )3 3 6 5 T E * ( 8 ) = S T R * ( T H )3 3 7 0 T H = = V A ( T E * ( 5 3 3 7 1 I V A L ( T E * ( 4 ) ) < 1

T H E N T H — T H3 3 7 5 T E * ( 5 ) = S T R * ( T H )3 3 8 0 T H « V A L ( T E * ( 7 ) )3 3 8 1 I V A L ( T E * ( 4 ) X

T H E M T H « - T H3 3 8 5 T E * ( 7 ) = S T R * < T H 3 4 6 0 R N « V A L ( T E * ( 1 ) )

4 7 0 B 1 0 0 0 02 2

Page 236: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 236/290

T r i c k s & T i p s3 4 8 0 G O S U B 1 0 0 7 03 4 8 5 F O R 1 = T 8

T E * ( I ) = : T X * ( I )T X $ < I ) = " " :

N E X T3 4 9 0 I D W = O A N D V A < T E * i X 8 0 0

T H E N D W = l :G O S U B 5 3 6 0 SG O T O 3 5 1 0

3 5 0 0 I D W = O A N V A L < T E * < 1 ) ) > 7 9 9T H E N D W = 2 :

G O S U B 7 0 0 5 :G O T O 3 5 2 0

3 5 1 0 I D W = 1T H E N G O S U B 5 5 2 0 :

G O T O 3 5 3 03 5 2 0 I D W * 2

T H E N G O S U B 7 1 2 03 5 3 0 G O T O 3 0 0 53 7 0 0 I D W = 1

T H E N G O S U B 5 5 9 0 :G O T O 3 8 0 0

3 7 1 0 I D W = 2T H E N G O S U B 7 1 9 0

3 8 0 0 D W = O :D V = O

3 9 9 9 C L O S E 4 C L O S E 8 C L O S E 1 5 G O T O 3 0

4 0 0 0 O P E N 1 5 , 8 , 1 5 :O P E N 8 , 8 , 8 , " O r l N V D A T "

4 0 0 2 G O S U B 1 2 0 0 04 0 0 5 P R I N T C H R * ( 1 4 7 )4 0 1 0 P R I N T " * * * * * * * * * * * * # * * * # * * * * * * # # # # * * # * * * * * # * * # * " ;4 0 2 0 P R I N T " D A T A M A N A G E M E N T P R O G R A M 1 . » " 4 0 3 0 P R I N T " * * * * * * * * * * * * * * * * * * * # * * * * * * * * * * * * * # # # # * # * » i j4 0 4 0 P R I N T

P R I N T4 0 5 0 P R I N T T A B ( S ) " P R I N T P A R T S L I S T " :

P R I N TP R I N T

4 0 6 0 F O R 1 = T 4 0 7 0 T E $ ( I ) = " "4 0 8 0 P R I N T T T * ( I ) 54 0 9 0 I N P U T T E $ < I )4 1 0 0 P R I N T4 1 1 0 I T E * ( 1 ) = " E N D "

T H E N 4 9 9 94 1 2 0 I L E < T E * < I ) ) > T T < I

T H E M 4 0 7 04 1 3 0 N E X T4 1 3 5 T E * < 3 > = " " :

T E * ( 4 > = I l l f4 1 4 0 I D V = 1

T H E N R E T U R N2 2

Page 237: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 237/290

Page 238: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 238/290

T r i c k s f i T i p sP R I N TP R I N T

5 0 6 0 F O 1 = T 5 0 7 0 T E * < I ) = " "5 0 8 0 P R I N T T T $ ( I ) 55 0 9 0 I N P U T T E * < I )5 1 0 0 P R I N T5 1 1 0 I T E * ( 1 ) = " E N D 1 1

T H E N 5 9 9 95 1 2 0 I L E N < T E * < I ) ) > T T ( I )

T H E N 5 0 7 05 1 2 5 I D V = O A N 1 =

T H E N 1 = 5 1 3 0 N E X T5 1 4 0 I D V = 1

T H E N R E T U R N5 2 0 0 P R I N T C H R * < 1 4 7 )5 2 1 0 P R I N T " * * * * * # * * * * * * # * * * * * * * * * * * * * * * * * * * * * * * * * * * " ;5 2 2 0 P R I N T " D A T A M A N A G E M E N T P R O G R A M 1 . * " 5 2 3 0 P R I N T " * * * * * # * * * * * * * * * # # * * * * * * * * * * * * * * * * * * * * * * * " 55 2 4 0 P R I N T

P R I N T5 2 5 0 P R I N T T A B < 9 ) " P R I N T E V A L U A T I O N " :

P R I N TP R I N T

5 2 5 2 S A = O :S E = O :S G = O . "S F = O :S H = O5 2 5 5 F O I * = l T 4

M l ( I ) = 0 :M 2 ( I ) = 0 :

N E X T5 2 6 0 P R I N T " I T H P R I N T E R T U R N E D O N < Y / N ) " 5 2 7 0 G E A *

I A * = " "T H E N 5 2 7 0

5 2 8 0 I A * O " Y "T H E N 5 2 7 0

5 2 9 0 P R I N T A 5 3 0 0 O P E N 4 , 5 3 1 0 P R I N T # 4 , " B R A N C H N O " ? T E * ( 1 ) 55 3 3 0 P R I N T # 4 ? C H R * ( 1 6 ) 5 " 2 0 " 5 " D A T E " T E * ( 2 ) ;5 3 3 5 I D V = O

T H E N P R I N T # 4 SG O T O 5 3 5 0

5 3 4 0 P R I M T # 4 , C H R * ( 1 6 ) 5 " 4 0 " ? " A C C O U N T N O " T E * ( 3 ) 55 3 4 5 P R I N T # 4 , C H R * ( 1 6 > ; " 6 0 " 5 " R E C E I P T M O " T E * ( 4 )3 3 5 0 P R I N T # 4S 3 5 5 I D V = 1

T H E N R E T U R NS 3 6 0 P R I N T # 4 , " P A R T N O . " 55 3 7 0 P R I N T # 4 , C H F ; ; : * ( 1 6 ) " 1 0 " " Q U A . "

2 3

Page 239: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 239/290

Page 240: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 240/290

7 9 9 98 0 0 08 0 1 08 0 2 08 0 3 08 0 4 0

' 1 5 "

! " 1 5 " ; '! " 4 0 " ; (i " 6 0 " ; '

" D E S C " 5" E X P E N D I T U R E S "" R E C E I P T S "

. . . .

T r i c k s T i p sC L O S E 8 C L O S E 1 5 G O T O 3 0 C L O S E 4 C L O S E 8 C L O S E 1 P R I N T C H R * ( 1 4 7 >E N S 1 = O :S 2 = 0P R I N T # 4 , " P A R T N O . 'P R I N T # 4 , C H R $ ( 1 6 ) 5 'P R I N T # 4 , C H R * U 6 > 5 " 4 0 " 5 'P R I N T # 4 , C H R * ( 1 6 ) 5 " 6 0 " ; 'P R I N T # 4 , " P R I N T # 4 , C H R $ ( 1 6 ) jP R I N T # 4 , C H R * ( 1 6 ) jP R I N T # 4 j , C H R * < 1 6 )I D V = 1T H E N R E T U R NF O R N = 8 0 0 T 9 9

G O S U B 1 0 0 0 0G O S U B 1 0 0 3 0I V A L ( T E * < 1 ) ) < > R NT H E N 7 1 8 0P R I N T # 4 : , T E * ( 1 )P R I N T # 4 , C H R * ( 1 6 ) iP R I N T # 4 , C H R * < 1 6 > !P R I N T # 4 , C H R $ ( 1 6 ) iS 1 « S 1 + V A L < T E $ < 5 ) :S 2 = S 2 + V A L ( T E $ ( 7 ) ]I D V = 1T H E N R E T U R N

N E X TP R I N T # 4 , " P R I N T # 4 , C H R $ ( 1 6 ) ;P R I N T # 4 , C H R * ( 1 6 ) ;P R I N T # 4 , C H R * < 1 6 ) 5P R I N T # 4 , " T O T A L S : " .P R I N T # 4 , C H R $ < 1 6 ) 5 'P R I N T # 4 , C H R * ( 1 6 ) ; 'F O 1 = T 3

P R I N T # 4 :N E X TF O 1 = T 3

P R I N T # 4 :N E X TR E T U R NP R I N T C H R * < 1 4 7 )P R I N T " * * * * * # * # * * * * * * * * # * * * * * * * * * * * * # * * * # * * * * * * " 5

D A T A M A N A G E M E N T P R O G R A M 1 . * " ; ;

6 0 0 0

6 0 3 06 0 4 07 0 0 07 0 0 57 0 1 07 0 2 07 0 3 07 0 4 07 0 5 07 0 6 07 0 7 07 0 7 57 0 8 07 0 9 07 1 0 07 1 1 07 1 2 07 1 3 07 1 4 07 1 5 07 1 6 07 1 7 07 1 7 57 1 8 07 1 9 07 2 0 07 2 1 07 2 2 07 2 3 07 2 4 07 2 5 07 2 6 0

7 3 8 0

1 1 1 5 " T E ( 2 " 4 0 " ; T E * < S ) Si i 6 0 " ; T E * < 7 )

" 1 5 "" 4 0 "" 6 0 "

" 3 9 "" 5 9 "

" - •

i

S ; S

8 0 5 0

P R I N TP R I N TP R I N TP R I N TP R I N T T A B ( 7 ) ; " E N T E R S A L E S S L I P " :P R I N TP R I N T

Page 241: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 241/290

8 0 6 0 S A - 0 : T r i c k s T i p sS E = 0 :S G - 0 :S F = o :S H » 0 :S l « o :8 2 - 0

8 0 7 0 F O R 1 = T 8 0 7 2 M 1 ( I ) » O8 0 7 4 M 2 ( I ) = 08 0 7 6 N E X T8 0 8 0 P R I N T " I T H P R I N T E R T U R N E D O N ( Y / N ) " 8 0 9 0 G E T A *

I A * « I 1 HT H E N 8 0 9 0

8 1 0 0 I A $ O " Y "T H E N 8 0 9 0

8 1 1 0 P R I N T A 8 1 2 0 O P E N 4 , 8 1 3 0 R E T U R N8 5 0 0 P R I N T C H R * ( 1 4 7 )8 5 1 0 P R I N T " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ♦ * * * * * * * * " ;8 5 2 0 P R I N T " D A T A M A N A G E M E N T P R O G R A M 1 . * " 8 5 3 0 P R I N T " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * " ;8 5 4 0 P R I N T

P R I N T8 5 5 0 P R I N T T A B ( 7 ) 3 " E N T E R S A L E S S L I P " :

P R I N TP R I N T

8 5 6 0 G O S U B 5 0 6 08 5 7 0 G O S U B 5 3 1 08 5 8 0 R E T U R N1 0 0 0 0 H B = I N T ( R N / 2 5 6 ) :

L B = R N - H B * 2 5 61 0 0 1 0 P R I N T # 1 5 , " P " + C H R * ( 8 ) + C H R * ( L B ) + C H R * ( H B ) + C H R $ < 1 )1 0 0 1 5 G O S U B 1 2 0 0 01 0 0 2 0 R E T U R N1 0 0 3 0 I N P u r # S s , T E * ( l ) , T E * < 2 ) 9 T E * < 3 ) , T E * < 4 ) , T E * < 5 ) , T E * < 6 )

T E * < 7 > , T E * ( 8 )1 0 0 6 0 R E T U R N1 0 0 7 0 T E * = T E * ( 1 ) + C H R * ( 1 3 ) + T E * ( 2 ) + C H R * < 1 3 ) + T E * < 3 > + C H R * ( 1 3

) + T E * ( 4 ) + C H R * ( 1 3 )1 0 0 7 2 T E * = T E * h - T E * ( 5 ) + C H R $ ( 1 3 ) + T E * ( 6 ) + C H R * ( 1 3 ) + T E * ( 7 ) + C H R* < 1 3 ) + T E * < 8 )1 0 0 8 0 P R I N T # 8 , T E *1 0 1 1 0 R E T U R N1 2 0 0 0 I M P U T # 1 5 ? X X * j , Y * Z J . 2 0 1 0 I X O

T H E N 1 2 0 3 01 2 0 2 0 R E T U R N

1 2 0 3 0 P R I N T X ; x $ ; Y $ ; z $ :C L O S E 8 C L O S E 1

1 2 0 4 0 F O T 6 0 0 0 " .N E X T

1 2 0 6 0 G O T O 1 0 2 3

Page 242: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 242/290

T r i c k s T i p s

8 . A n o t h e r m e t h o d : D i r e c t a c c e s s

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

1 A c c e s s i n g f i l e s r a n d o m f i l e s

T h i s m e t h o d h a s o m e t h i n g t d w i t h s e q u e n t i a l f i l em a n a g e m e n t , b u w i t h o u t t h d i s a d v a n t a g e s , a n d a l s o h a ss o m e t h i n g i c o m m o n w i t h r e l a t i v e f i l e s .

2 A c c e s s i n g i n d i v i d u a l t r a c k s o t h e d i s k

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

1 R a n d o m f i l e s

I c o n t r a s t t t h s e q u e n t i a l a n r e l a t i v e f i l e s ,s i n g l e b l o c k i r a n d o m f i l e i 2 5 b y t e s l o n g , a n t o t a lo 6 6 s u c h b l b c k s c a n b e s t o r e d o d i s k e t t e . Y o u c a a l s os t o r e s h o r t e r r e c o r d s , s u c h a 6 4 - b y t e r e c o r d s i b l o c k .T h e t a s k o f c o r r e c t l y a c c e s s i n g t h e x a c t l o c a t i o n w i t h i nt h b l o c k f a l l s n o w t t h p r o g r a m m e r . T u s r a n d o m f i l e ,y o m u s t f i r s t o p e n s e q u e n t i a l f i l e i o r d e r m a k e n o t e o t h t r a c k s i w h i c h y o h a v e s t o r e d t h d a t a . Y o u w i l l n e e d

t o t a l o t h r e e f i l e s :

2 3

Page 243: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 243/290

Page 244: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 244/290

T r i c k s T i p s

t h c o m m a n d c h a n n e l . I t h e r r o r c o d e h a t h v a l u e 6 5 w k n o w t h a t t h b l o c k w a s n o t f r e e . O n c e t h c o m p u t e r f i n d sf r e e b l o c k , i t h e n w r i t e s t h d a t a s t o r e d i t h d a t ab u f f e r i t h p r o p e r b l o c k o t h d i s k e t t e . A f t e r t h i s , i w r i t e s t h a d d r e s s o f t h e b l o c k t t h s e q u e n t i a l f i l e s t h a t t h e r e c o r d c a b f o u n d a g a i n l a t e r . A t h s a m e t i m e ,t h o p e r a t i n g s y s t e m a l s o m a k e s n o t e o t h i s b l o c k s t h a ti w i l l n o b o v e r w r i t t e n b o t h e r f i l e s . T h e f i l e s a r ec l o s e d a n t h p r o g r a m e n d s .

E q u a l l y i n t e r e s t i n g i t h r e t r i e v a l o f t h e d a t a :

1 O P E N 4 , 8 , 4 , " C B M 6 F I L E "2 O P E N 1 5 , 8 , 1 53 O P E N 5 , 8 , 5 , " # M4 I N P U T # 4 , T , S : R E R E A D T H A D D R E S S E S5 P R I N T # 1 5 , t t B - R : " ; 5 , 0 , T , S6 I N P U T # 5 , T E $ , R E7 P R I N T # 1 5 , t t B - F : " ; 0 , T , S8 C L O S E9 C L O S E

1 0 P R I N T # 1 5 , " S : C B M 6 F I L E "1 1 C L O S E 1

A f t e r t h f i l e i o p e n e d , t h e a d d r e s s ( t r a c k a n ds e c t o r ) o t h b l o c k i w h i c h t h d a t a i s a v e d i r e a d i n T h b l o c k i t s e l f i r e a d , a n t h b l o c k i f r e e d o n c e a g a i nw i t h t h B l o c k - F r e e c o m m a n d i l i n e 7 0 T h i s i t b d o n eo n l y w h e n t h b l o c k i t b e d e l e t e d . F i n a l l y , t h s e q u e n t i a l a n d a t a f i l e s a r e c l o s e d , t h e s e q u e n t i a l f i l e i s c r a t c h e d , a n d t h e c o m m a n d c h a n n e l i c l o s e d .

2 3

Page 245: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 245/290

T r i c k s T i p s

2 D i r e c t d i s k a c c e s s

T h i s a c c e s s m a k e s i p o s s i b l e , a t h n a m e s u g g e s t s , t d i r e c t l y a c c e s s a n y d e s i r e d t r a c k s a n d s e c t o r s o t h e d i s k ,t h a t i s t r e a d f r o m a n d w r i t e t t h d i s k w i t h o u t o p e n i n ga n f i l e s . T h i s a l l o w s y o t r e a d t h d i r e c t o r y , f o e x a m p l e , w i t h o u t u s i n g t h L O A D " $ " , 8 c o m m a n d a n t h e r e b yd e s t r o y i n g a n p r o g r a m i m e m o r y . O r y o c o u l d c h a n g ep r o g r a m o t h d i s k e t t e w i t h o u t h a v i n g t l o a d i t e v e nd e s t r o y e d p r o g r a m s c a n , u n d e r c e r t a i n c i r c u m s t a n c e s , b r e p a i r e d .

T h i s m e t h o d o a c c e s s i a l s o q u i t e d a n g e r o u s , s w w o u l d l i k e t w a r n a l t h o s e a g a i n s t i w h d o n o t p o s s e s sg o o d w o r k i n g k n o w l e d g e o f t h e c o n s t r u c t i o n o f t h e d i s k e t t e ,t h d i r e c t o r y , a n d t h B A M . E n t i r e f i l e s a n e v e n t h w h o l ed i s k c a n b e d e s t r o y e d v e r y e a s i l y w i t h t h i s c o m m a n d . T f i n do u m o r e a b o u t t h e s e c o m m a n d s , w r e f e r y o u t t h V I C - 1 5 4 1u s e r ' s g u i d e o r t o t h b o o k T h A n a t o m y o f t h e 1 5 4 1 D i s k5 r . i y . § « I y o w a n t t e x p e r i m e n t w i t h t h e s e c o m m a n d s , b s u r e t o d o i o d i s k w h i c h d o e s n o c o n t a i n a n y d a t a o p r o g r a m s y o u m i g h t w a n t t k e e p .

H e r e i l i s t o f t h e c o m m a n d s w h i c h c a n b e u s e d t d i r e c t l ya c c e s s t h b l o c k s o t h d i s k e t t e :

N a m e U s

B l o c k - R e a d " B - R : " ; c h a n n e l ; d r i v e ; t r a c k j b l o c kB l o c k - W r i t e " B - W : " ; c h a n n e l ; d r i v e ; t r a c k j b l o c kB l o c k - A l l o c a t e " B - A : " ; d r i v e ; t r a c k ; b l o c kB l o c k - F r e e " B - F : " ; d r i v e ; t r a c k j b l o c kB u f f e r - P o i n t e r " B - P : " ; c h a n n e l ; p o s i t i o n

2 3

Page 246: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 246/290

Page 247: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 247/290

T r i c k s T i p s

8 . R e s c u i n g a i m p r o p e r l y c l o s e d f i l e

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

W h a t i " i t " ?B " i t " w m e a n s o m e t h i n g l i k e t h f o l l o w i n g :W i t h m u c h e f f o r t y o u h a v e o r g a n i z e d y o u r r e c o r d

c o l l e c t i o n a n w o u l d l i k e t s t o r e t h t i t l e s o d i s k s t h a t y o c a f i n d t h e m q u i c k l y . T h u s u a l m e t h o d s i m p l yi n v o l v e s s a v i n g t h r e c o r d t i t l e s a n d a r t i s t s ' o c o m p o s e r s 'n a m e s i o n e o r m o r e s e q u e n t i a l f i l e s . Y o u a r e n o w i t h c o u r s e o e n t e r i n g t h d e s i r e d d a t a v i a t h e k e y b o a r d a n a r a l m o s t d o n e ( y o u h a v e a l r e a d y e n t e r e d 5 0 t i t l e s ) w h e n y o u rs p o u s e t r i p o v e r t h p o w e r c o r d . " D o e s n ' t m a t t e r , " y o t h i n k , " T h e d a t a ' s s a f e o t h d i s k e t t e . "

Y o u r e t u r n t y o u r p r o g r a m , c h a n g e t h O P E N c o m m a n d f o y o u r s e q u e n t i a l f i l e t A P P E N D ( i n s t e a d o W a n d t r y t c o n t i n u e , b u t t h e r e d l i g h t o t h e d i s k b e g i n s t f l a s h ,i n d i c a t i n g a e r r o r ! P u z z l e d , a n d b i w o r r i e d , y o u r e a dt h e r r o r c h a n n e l a n f i n d t h m e s s a g e " W R I T E F I L E O P E N " .W h e n y o l i s t t h e d i r e c t o r y , y o u f i n d a n " * " i f r o n t o f t h t y p e d e s i g n a t i o n . T h i s m e a n s t h a t t h e f i l e i s t i l l o p e n f o rw r i t i n g s i n c e n C L O S E f o l l o w e d t h w r i t e a c c e s s e s . T h s a m et h i n g h a p p e n s w h e n y o r e m o v e d i s k f r o m t h d r i v e w i t h o u tf i r s t c l o s i n g a l o t h w r i t e f i l e s .

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

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

2 3

Page 248: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 248/290

Page 249: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 249/290

T r i c k s T i p s

T h e s e a r e f i r s t s e a r c h e d f o r t h e d e s i r e d f i l e n a m eb e f o r e t h e n e x t s e c t o r i r e a d i n

1 7 H e r e t h f i l e n a m e i i s o l a t e d f r o m t h e n t r y a n p l a c e d i X $

2 0 0 - 2 1 0 T h e e n d c r i t e r i u m f o t h a c t u a l l e n g t h o f t h ef i l e n a m e i C H R $ ( 1 6 0 ) ( s h i f t e d s p a c e ) . H e r e t h f i l e n a m e i r e m o v e d a n p l a c e d b a c k i n t o X $

2 2 0 - 2 3 0 I t h f i l e n a m e i f o u n d , e x e c u t i o n b r a n c h e s t l i n e 3 0 0 , o t h e r w i s e t h o t h e r e n t r i e s i t h s e c t o ra r s e a r c h e d .

2 4 0 - 2 6 0 A t h b e g i n n i n g o e a c h s e c t o r s t a n d s t h t r a c ka n s e c t o r a d d r e s s e s o t h f o l l o w i n g b l o c k , o i t h e r e i n o n e ( e n d o t h d i r e c t o r y ) , t h t r a c kn u m b e r i z e r o .

3 0 0 - 3 1 0 T h f i l e t y p e ( t h e b y t e f r o m w h i c h t h f i l e t y p ef o t h s c r e e n i g e n e r a t e d ) i i s o l a t e d a n p l a c e di T w h i l e t h n u m e r i c v a l u e i p l a c e d i T

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

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

3 7 T h e n t i r e s e c t o r , i n c l u d i n g m a r k e r f o c l o s e df i l e , i r e c o n s t r u c t e d .

3 9 0 - 4 1 0 N o w t h b u f f e r p o i n t e r i t h d r i v e i r e s e t , t h s e c t o r i p l a c e d i n t o t h e b u f f e r , a n t h b u f f e rc o n t e n t s a r w r i t t e n b a c k t t h d i s k .

4 2 0 - 4 9 0 T h e s e l i n e s s e r v e t r e m i n d y o h o t p r o c e e d w i t hr e s c u i n g t h f i l e .

2 4

Page 250: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 250/290

T r i c k s T i p s

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

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

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

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

2 4

Page 251: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 251/290

Page 252: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 252/290

Page 253: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 253/290

T r i c k s T i p s

C h a p t e r P O K E ' s a n o t h e r u s e f u l r o u t i n e s

9 . U s i n g t h c a s s e t t e b u f f e r a p r o g r a m s t o r a g e

I o n w a n t s t u s s m a l l m a c h i n e l a n g u a g e p r o g r a m i c o n j u n c t i o n w i t h B A S I C , t h e q u e s t i o n a l w a y s a r i s e sc o n c e r n i n g w h e r e s u c h p r o g r a m s s h o u l d b p l a c e d i m e m o r y .s e c t i o n o m e m o r y m u s t b e c h o s e n w h i c h w i l l n o b o v e r w r i t t e n b B A S I C p r o g r a m s o v a r i a b l e s . F r o m t h i sv i e w p o i n t t h e r e a r e t w p o s s i b i l i t i e s .

T h e f i r s t p o s s i b i l i t y i t h a t s e c t i o n o m e m o r y c a b c h o s e n w h i c h B A S I C d o e s n o t u s a a l l , a n t h s e c o n d i t h a t t h e s t a r t o e n d o f t h B A S I C p r o g r a m s t o r a g e a r e a c a b c h a n g e d . T h r e e a r e a s a r e u n u s e d b B A S I C . T h e f i r s t i t h c a s s e t t e b u f f e r . I l i e s f r o m a d d r e s s 8 2 t 1 0 1 9 ( $ 0 3 3 Ct $ 0 3 F B ) . T h i s a r e a i u s e d b p r o g r a m o n l y w h e n d a t a i s a v e d t o o r r e a d f r o m t h c a s s e t t e r e c o r d e r . I w o r k s v e r yw e l l f o r m a c h i n e l a n g u a g e p r o g r a m s u t o 1 9 2 b y t e s l o n g . I fs p r i t e 1 3 , 1 4 , o 1 5 i s u s e d , t h c a s s e t t e b u f f e r w i l l b u s e d t s t o r e t h e s e . A n o t h e r s m a l l a r e a i f r o m a d d r e s s 7 0 t 7 6 7 ( $ 0 2 C 0 t $ 0 2 F F ) w h i c h i u s e d f o s p r i t e 1 ( 6 b y t e s ) . l a r g e 4 K - b y t e a r e a a b o v e t h B A S I C i n t e r p r e t e r i l o c a t e d f r 4 9 1 5 2 t 5 3 2 4 7 ( $ C 0 0 0 t $ C F F F ) , w h i c h s h o u l ds u f f i c e f o r e v e n t h e l o n g e s t m a c h i n e l a n g u a g e p r o g r a m s .

I f e m e m o r y l o c a t i o n s a r n e e d e d , t h e r e a r 1 b y t e s " b e h i n d " t h s c r e e n m e m o r y w h i c h c a n b e u s e d . T h e 6 4h a I 1 0 2 4 b y t e s o m e m o r y f o t h s c r e e n , b u o n l y 4 0 * 2 5

1 0 0 0 a r e u s e d f o r t h e v i d e o R A M . 2 4 b y t e s a r t h e n l e f to v e r , o w h i c h a r u s e d a p o i n t e r s f o r t h e s p r i t e s .S i x t e e n b y t e s r e m a i n w h i c h y o c a u s f o y o u r o w p u r p o s e s . T h e s e a r l o c a t e d f r o m 2 0 2 4 t 2 0 3 9 ( h e x a d e c i m a l$ 0 7 E 9 t $ 0 7 F 8 ) .

2 4

Page 254: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 254/290

T r i c k s T i p s

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

T h e B A S I C i n t e r p r e t e r h a s t w o p o i n t e r s w h i c h p o i n t t t h e s t a r t a n d e n o t h B A S I C s t o r a g e . T h e s t a r t - o f - B A S I Cp o i n t e r i l o c a t e d a 4 3 / 4 4 ( $ 2 B / $ 2 C ) , t h e e n d a 5 5 / 5 6( $ 3 7 / $ 3 8 ) . T h e s e v a l u e s c a b r e a d w i t h

P R I N T P E E K ( 4 3 ) + 2 5 6 * P E E K ( 4 4 )P R I N T P E E K ( 5 5 ) + 2 5 6 * P E E K ( 5 6 )

T h v a l u e s a r n o r m a l l y 2 0 4 9 a n 4 0 9 6 0 . T m a k e r o o m f o 1 0 0 0 b y t e m a c h i n e l a n g u a g e p r o g r a m , w e c a n l o w e r t h e n o B A S I C b y 1 0 0 0 , l e a v i n g i a 3 9 9 6 0 . W c a n s e t t h e n e w v a l u ew i t h P O K E s t a t e m e n t s .

H I N ( 3 9 9 6 0 / 2 5 6 ) L 3 9 9 6 0 H B * 2 5 6P O K E 5 5 , L B P O K E 5 6 , H B C L

T h C L R c o m m a n d i n e c e s s a r y t e n s u r e t h a t y o d n o g e f a l s e v a r i a b l e v a l u e s . T m o v e t h s t a r t t 3 0 4 9 , t h ef o l l o w i n g c o m m a n d s a r n e c e s s a r y :

H I N ( 3 0 4 9 / 2 5 6 ) L 3 0 4 9 H B * 2 5 6P O K E 4 3 L P O K E 4 4 , H B P O K E 3 0 4 9 - 1 , 0 N E

H e r e t h N E c o m m a n d i n e c e s s a r y t p r o p e r l y r e s e t t h o t h e r B A S I C p o i n t e r s .

2 4

Page 255: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 255/290

Page 256: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 256/290

T r i c k s T i p s0 0 0 1 0 3 3 C0 0 0 2 0 3 3 C A O 0 00 0 0 3 0 3 3 E B 2 0 0 0 4 0 3 4 0 3 0 O D0 0 0 5 0 3 4 2 C 0 0 0 6 0 3 4 3 B 2

0 0 0 7 0 3 4 50 0 0 8 0 3 4 70 0 0 9 0 3 4 90 0 1 0 0 3 4 B0 0 1 1 0 3 4 D0 0 1 2 0 3 4 F0 0 1 3 0 3 5 00 0 1 4 0 3 5 10 0 1 5 0 3 5 30 0 1 6 0 3 5 50 0 1 7 0 3 5 70 0 1 8 0 3 5 90 0 1 9 0 3 5 B0 0 2 0 0 3 5 D0 0 2 1 0 3 5 F0 0 2 2 0 3 6 1

D O N E0 0 2 3 0 3 6 30 0 2 4 0 3 6 50 0 2 5 0 3 6 60 0 2 6 0 3 6 80 0 2 7 0 3 6 B0 0 2 8 0 3 6 B0 0 2 9 0 3 6 D0 0 3 0 0 3 6 F0 0 3 1 0 3 7 10 0 3 2 0 3 7 30 0 3 3 0 3 7 50 0 3 4 0 3 7 70 0 3 5 0 3 7 80 0 3 6 0 3 7 A0 0 3 7 0 3 7 C0 0 3 8 0 3 7 E0 0 3 9 0 3 8 00 0 4 0 0 3 8 20 0 4 1 0 3 8 40 0 4 2 0 3 8 60 0 4 3 0 3 8 8T 0 0 4 4 0 3 8 AE N G T H0 0 4 5 0 3 8 C0 0 4 6 0 3 8 E0 0 4 7 0 3 9 0T 0 0 4 8 0 3 9 20 0 4 9 0 3 9 3

1 0 A 0 B 2 C 0 F 0 6 1 A 5 2 F6 0 8 6 A 5 3 06 0 8 6 A O 0 0B 6 F O E C

8 5 2 2C B 6 9 2 0

C O 0 2D O F 6A 6 8 7 A 5 6 F8 7 1

A 7 6 9 0 38 7 9 0 0 2E 7 A 0 B l 7 1F O 3 D8 4

C 5 2 2

9 0 A 5 2 28 5 5 5

C B l 7 1

L L

L

O R G 8 2 8L D Y # 0L D < * 2 F ) , YB M L

N L D ( $ 2 F ) , , Y

B P L L D Y # 4L D < * 2 F ) , YC M # B E L R T C L L D A $ 2 FA D # S T A $ 6 EL D A $ 3 0A D # S T A $ 6 FL D Y # 0L D A < $ 6 E ) 9 YB E L

F I R S T L E T T E R

: S E C O N D L E T T E

D I M E N S I O N

S A R R A Y S T A R TP L U S

L E N G T H Z E R O j ,

S T A $ 2 2L N

L D A ( $ 6 E ) 3 YB Y $ 9 9 , , $ 2 $ 0

§ L D A $ 2 2 , 0 P O I N T E R T S T R I N GC R Y # 2B N E L 4L D A $ 6 ES T $ 7 L D A $ 6 FS T A $ 7 2

L C L L D $ 7 A D C # 3 A D T H R E ES T $ 7 B C L I N $ 7

L L D # L D < * 7 i ) s YB E Q L 1 3S T A $ 4 D C O M P A R E L E N G

L

L

C M P $ 2 2

B C L L D A $ 2 2S T $ 5

N L D ( $ 7 : 1 ) ?

; W I T H F I R S T

C O M P A R E L E N G

2 4

Page 257: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 257/290

Page 258: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 258/290

T r i c k s T i p s

1 0 F O 8 2 8 T O 9 7 71 1 R E A D P O K E I , S = S + X N E X T1 2 D A T A 1 6 0 , 0 , 1 7 7 , 4 7 , 4 8 , 1 3 , 2 0 0 , 1 7 7 , 4 7 1 6 8 , 1 6 01 3 D A T A 4 , 1 7 7 , 4 7 , 2 0 1 , 1 , 2 4 0 , 1 9 6 2 4 , 1 6 5 , 4 7 , 1 0 51 4 D A T A 7 , 1 3 3 , 1 1 0 , 1 6 5 , 4 8 , 1 0 5 , 0 , 1 3 3 , 1 1 1 , 1 6 0 , 0 , 1 7 71 5 D A T A 1 1 0 , 2 4 0 , 2 3 6 , 1 3 3 , 3 4 , 2 0 0 , 1 7 7 , 1 1 0 , 1 5 3 , 3 4 0 , 1 9 21 6 D A T A 2 ^ , 2 0 8 , 2 4 6 , 1 6 5 ^ , 1 1 0 , 1 3 3 , 1 1 3 , 1 6 5 , 1 1 1 , 1 3 3 , 1 1 4 , 2 1 7 D A T A 1 6 5 ! , 1 1 3 , 1 0 5 , 3 , 1 3 3 * 1 1 3 , 1 4 4 , 2 , 2 3 0 , 1 1 4 , 1 6 0 ,1 8 D A T A 1 7 7 , 1 1 3 , 2 4 0 , 6 1 , 1 3 3 , 7 7 , 1 9 7 , 3 4 , 1 4 4 , 2 , 1 6 5 , 3 1 9 D A T A 1 3 3 , 8 5 , 2 0 0 , 1 7 7 , 1 1 3 , 1 5 3 , 7 7 0 , 1 9 2 , 2 , 2 0 8 , 2 4 62 0 D A T A 1 6 0 , 0 , 1 7 7 , 3 5 , 2 0 9 , 7 8 , 2 4 0 , 4 , 1 7 6 , 1 1 , 1 4 4 , 2 0 72 1 D A T A 2 0 0 , 1 9 6 , 8 5 , 2 0 8 , 2 4 1 , 1 9 6 , 3 4 , 1 7 6 , 1 9 8 , 1 6 0 , 2 , 1 7 72 2 D A T A 1 1 0 , 1 7 0 , 1 7 7 , 1 1 3 , 1 4 5 , 1 1 0 , 1 5 3 , 3 4 0 , 1 3 8 , 1 4 5 , 1 1 32 3 D A T A 1 3 6 , 1 6 , 2 4 0 , 4 8 , 1 7 8 , 2 4 , 1 6 5 , 1 1 0 , 1 0 5 , 3 , 1 3 3 , 1 1 02 4 D A T A 1 4 4 , 1 4 3 , 2 3 0 , 1 1 1 , 2 0 8 , 1 3 92 5 I < 1 7 6 6 3 T H E N P R I N T " E R R O R I D A T A ! ! 1 1 E N 2 6 0 P R I N T " O K "

W c a d e m o n s t r a t e t h s p e e d o t h m a c h i n e l a n g u a g e p r o g r a mw i t h s m a l l t e s t p r o g r a m .

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

1 0 I N P U T " N U M B E R , L E N G T H " ; N , L1 1 D I A $ ( N ) N = N - 11 2 F O 1 = T 1 3 F O J = T R N D ( 1 ) * 11 4 A $ ( I ) A $ ( I ) + C H R $ ( R N D ( l ) * 2 6 + 6 5 )1 5 N E X T N E X T1 6 F O 1 = 0 T O P R I N T A $ ( I ) N E X T1 7 T = T I S Y 8 2 T = T I - T1 8 P R I N T " S O R T T I M E = T / 6 0 " S E C O N D S "1 9 F O 1 = 0 t o P R I N T A $ ( I ) N E X T

2 5

Page 259: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 259/290

T r i c k s T i p s

R u t h i s p r o g r a m w i t h v a r i o u s l e n g t h s a n d n u m b e r s o s t r i n g s a n d m a k e n o t e o f t h e s o r t t i m e s . 1 0 s t r i n g s c a b s o r t e d i l e s s t h a n o n e s e c o n d . c o m p a r a b l e B A S I C p r o g r a mw o u l d r e q u i r e m i n u t e s .

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

2 5

Page 260: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 260/290

T r i c k s T i p s

9 . M i n i m u m a n m a x i m u m o n u m e r i c f i e l d s

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

1 0 D I A ( N )

2 0 G O S U B 1 0 0 0

1 0 0 0 M I A ( 0 )1 0 1 0 F O 1 = 1 T O1 0 2 0 I A ( I ) M I T H E N M I A ( I )1 0 3 0 N E X T1 0 4 0 R E T U R N

f i e l d i d i m e n s i o n e d f r o m t N B c a l l i n g t h s u b r o u t i n e a l i n e 1 0 0 0 , t h m i n i m u m i c a l c u l a t e d a n r e t u r n e d i t h v a r i a b l e M I N . I t h m a x i m u m i d e s i r e d , o n en e e d o n l y r e p l a c e l i n e 1 0 2 0 w i t h

1 0 2 0 I A ( I ) M A X T H E N M A A ( I )

a m L i n e 1 0 0 0 w i t h

1 0 0 0 M A A ( 0 )

T h m a c h i n e l a n g u a g e p r o g r a m h a a n o t h e r a d v a n t a g e o v e r i t

2 5

Page 261: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 261/290

T r i c k s T i p s

B A S I C c o u n t e r p a r t i t h a t i i n o r e s t r i c t e d t s i n g l ev a r i a b l e ( o u r e x a m p l e a b o v e i l i m i t e d t t h v a r i a b l e A ) T h p r o g r a m w i l l w o r k w i t h r e a l n u m b e r s a w e l l a i n t e g e ra r r a y s a n d r e s i d e s a a d d r e s s $ C 8 0 0 .

S M I N / M A X F U N CF L A G F O I N

P O I N T E R T P O I N T E R T

V A R I A B L E N A M

P O I N T E R T O; G E T C O N S T A N T

C O M P A R E C O N S

S T O R A G E F O I N T E G E R T O

P O I N T E R T

R U N N I N G P O I N

E N O A R R A Y

F I R S T L E T T E R

C O M P A R E W I T H

C O M P A R E S E C O

0 0 0 1T I O N0 0 0 2E G E R0 0 0 30 0 0 4R R A Y0 0 0 5N O 0 0 0 6t 0 0 0 70 0 0 8I R S T0 0 0 9

I 0 0 1 0T A N T S0 0 1 10 0 1 2

C 8 0 0C 8 0 0V A R I A B L EC 8 0 0C 8 0 0T A B L EC 8 0 0

A R R A Y SC 8 0 0

C 8 0 0C 8 0 0A R R A YC 8 0 0F A C 8 0 0

W I T HC 8 0 0C 8 0 0

E L E M E N T

F A

I N T E G E R V A R I A B L E0 0 1 3A 0 0 1 40 0 1 50 0 1 6T A R T0 0 1 70 0 1 8T E 0 0 1 90 0 2 00 0 2 1

C 8 0 0

C 8 0 0C 8 0 0C 8 0 2

A A

O A R R A YC 8 0 4C 8 0 6

C 8 0 8C 8 0 AC 8 0 C

T A B L E ?0 0 2 20 0 2 30 0 2 4

C 8 0 EC 8 1 0C 8 1 2

8 8

C D E

F A B

O T H E N A M E0 0 2 50 0 2 6

C 8 1 4C 8 1 5

C C

D E S I R E D N A M E0 0 2 70 0 2 80 0 2 9

C 8 1 7C 8 1 9C 8 1 B

D A D N C H A R A C T E R

2 3

T A B L E5 6

3 0 3

I 0 5

4

0 4 5

I N T F L G

S T O R EA R R T A BA R R E N D

V A R N A MT E M PS E T A R R

M E M F A CC M P A R E

E R R O U TI N

I N T F L T

M I N M A X

L

L

E Q

E Q E Q E Q

E Q

E Q E Q E Q

E Q

E Q E Q E Q

O R L D L D S T S T

C M B N C P

B E L D L D

N C M B N L D C M

2 5

1

$ 2 * 2 * 3

* 4 * 5 * B 1 9 6

* B B A 2* B C 5 B* A 4 4 5$ 1

* B 3 9 1

* C 8 0 0A R R T A BA R R T A B + 1

T E M PT E M P + 1A R R E N D + 1L A R R E N D

N O T F N D# < T E M P ) 3 Y

V A R N A ML V A R N A M + i( T E M P ) j Y

Page 262: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 262/290

T r i c k s & T i p s

0 0 3 0 C 8 1 D F 1 0 0 3 1 C 8 1 F C 80 0 3 2 C S 2 0 B 5 0 0 3 3 C 8 2 2 1 0 0 3 4 C 8 2 3 6 5 5 FO N E X T A R R A Y0 0 3 5 C 8 2 5 A A0 0 3 6 C 8 2 6 C 0 0 3 7 C 8 2 7 B 5 0 0 3 8 C 8 2 9 6 6 0 0 3 9 C 8 2 B 9 0 D 70 0 4 0 C 8 2 D A B R R O R M E S S A G E0 0 4 1 C 8 2 F 8 2 0 0 4 2 C 8 3 1 A 9 C 80 0 4 3 C 8 3 3 4 C 4 5 A

M E S S A G E0 0 4 4 C 8 3 6 C 80 0 4 5 C 8 3 7 1 0 0 4 6 C 8 3 8 B 5 0 0 4 7 C 8 3 A 6 5 0 0 4 8 C 8 3 C 8 5 2 0 0 4 9 C 8 3 E C 0 0 5 0 C 8 3 F B 5 0 0 5 1 C 8 4 1 6 5 6 00 0 5 2 C 8 4 3 8 5 2 N D O F T H E A R R A Y0 0 5 3 C 8 4 5 C 0 0 5 4 C 8 4 6 B 5 0 0 5 5 C 8 4 8 2 0 9 6 B I R S T A R R A Y E L E M E N T0 0 5 6 C 8 4 B 8 5 5 0 0 5 7 C 8 4 D 8 4 6 00 0 5 8 C 8 4 F 2 4 O E0 0 5 9 C 8 5 1 3 2 0 0 6 0 C 8 5 3 1 0 0 0 6 1 C 8 5 5 2 0 5 B B

E L E M E N T S0 0 6 2 C 8 5 8 1 0 0 0 6 3 C 8 5 A A 5 5 0 0 6 4 C 8 5 C A 6 0 0 6 5 C 8 5 E 2 0 A 2 B BL E M E N T A M I N / M A X0 0 6 6 C 8 6 1 1 0 0 6 7 C 8 6 2 A 5 5 0 0 6 8 C 8 6 4 6 9 0 5E X E L E M E N T0 0 6 9 C 8 6 6 8 5 0 0 7 0 C 8 6 8 9 0 0 0 7 1 C 8 6 A E 6 6 00 0 7 2 C 8 6 C A 4 6 0

B E F O U N DL N

L D < T E M P ) 3 YC L A D C T E M PT A

N L D < T E M P > i , YA D C T E M P + 1B C C L 3

N O T F N D L D # < E R R M S G

S T A * 2 2L D # > E R R M S GJ M P E R R O U T

F O U N D

L

L P

L O O P

L

N C L L D < T E M P ) S YA D C T E M PS T S T O R E

N L D A < T E M P > ? YA D T E M P + 1S T S T O R E + 1

N L D < T E M P ) , YJ S S E T A R RS T A T E M PS T Y T E M P + 1B I T I N T F L GB M I N T G E RB P L P J S C M P A R EB P L O O PL D T E M PL D Y T E M P + 1J S M E M F A CC L L D T E M PA D C # 5

S T T E M PB C L I N T E M P + 1L D Y T E M P + 1

; F O U N D ?

A D D O F F S E T

P O I N T E R T

O U T P U T E R R O R

; P O I N T E R T

D I M E N S I O NP O I N T E R T

S A V E P O I N T E RT E S T T Y P E

S C O M P A R E A R R A

S A V E A R R A Y

P O I N T E R T

2 5

Page 263: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 263/290

0 0 7 3R R A Y0 0 7 40 0 7 50 0 7 60 0 7 70 0 7 80 0 7 90 0 8 00 0 8 10 0 8 20 0 8 3L U 0 0 8 40 0 8 50 0 8 60 0 8 7

C 8 6 EC 8 7 0C 8 7 2C 8 7 4C 8 7 6C 8 7 7C 8 7 9C 8 7 BC 8 7 CC 8 7 DC 8 7 F

C

D C D 6 A B A C B 8

[ I N C 8 8 1C 8 8 3C 8 8 4C 8 8 6

8 1 A 6

E X E L E M E N T0 0 8 80 0 8 90 0 9 00 0 9 10 0 9 20 0 9 30 0 9 40 0 9 50 0 9 6

C 8 8 8C 8 8 AC 8 8 CC 8 8 EC 8 9 0C 8 9 2C 8 9 4C 8 9 6C 8 9 8

V A L U E0 0 9 70 0 9 8A 0 0 9 90 1 0 00 1 0 1

C 8 9 AC 8 9 CC 8 9 FC 8 A 1C 8 A 3

B Y T E0 1 0 20 1 0 30 1 0 40 1 0 5B Y T E0 1 0 60 1 0 7A T E R0 1 0 80 1 0 9L L E R0 1 1 00 1 1 10 1 1 2

0 1 1 3

C 8 A 5C 8 A 7C 8 A 8C 8 A A

C 8 A CC 8 A EC 8 B 0C 8 B 2C 8 B 4C 8 B 6C 8 B 8

C 8 C 6

8 9 E C D A C D A

A 4

A B C D C B E

F A

9 A

3 1

4 4 4 2 5 C

2

E 2 D

0 5

5 1

1

5 0 5 0 6 2 O 6 2 0 1

1 9

0 5 1

0

5 1

D 0

0 F

C C 5 5 4 4 4

B

5 2 5 4

I N T G E R

L 1

L 1

L l

L 1

L 1

E R R M S G

C M B N C P B N R T L D L D T A

N L D S T

S T C L L D A D S T B C I N C M B N L D C M B N L D

L D J M L D L D C M B N

N L D S B

B E L D B C L D

B M B P A S

B Y

S T O R EL S T O R E * iL

# < T E M P ) , Y

( T E M P ) , YI N T + 1

I N

T E M P# T E M PL 1 T E M P + 1S T O R EL l T E M P + 1S T O R E + 1L l I N

I N T + 1I N T F L T

# ( T E M P ) , YI N L 1

< T E M P ) , YI N T + 1

L 1 #

L 1 # $ F F

I N T G E RL 1 ? A R R A Y N O T

* C 2 5

T r i c k s T i p s; e n d o f t h e

I N T E G E R A R R A

; G E T F I R S T V

; P O I N T E R T

E N R E A C H E D ?G E I N T E G E R

C O N V E R T T

C O M P A R E H I G H

C O M P A R E L O W

F L A G F O R G R E

F L A G F O R S M A

F O U N *

Page 264: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 264/290

Page 265: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 265/290

T r i c k s T i p s

C 8 5 8 f r o m $ 1 t $ 3 C 8 B 4 f r o m $ 3 t o $ 1 0C 8 B 6 f r o m $ 1 t $ 3

T u s t h f u n c t i o n , y o u m u s t f i r s t s e t t h e a d d r e s s f o r t h eU S R f u n c t i o n :

P O K E 7 8 5 , 0 P O K E 7 8 6 , 2 0 0

N o y o c a c a l l t h e f u n c t i o n w i t h P R I N T U S R ( A ) i w h i c h i t h n a m e o t h a r r a y . T h U S f u n c t i o n c a n b ec a l l e d a a n o t h e r , f o e x a m p l e X U S R ( A S ) * S I N ( 3 ) .

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

1 0 P O K E 7 8 5 , 0 P O K E 7 8 6 , 2 0 01 1 I N P U T " A R R A Y S I Z E " ; 1 2 D I A ( N )1 3 F O 1 = T 1 4 A ( I ) R N ( l ) * 1 0 0 01 5 P R I N T A ( I )1 6 N E X T1 7 P R I N T1 8 P R I N T U S R ( A )

T h s w i t c h f r o m M A X t M I f u n c t i o n s c a n b e m a d e b c h a n g i n gt h t h r e e p r e v i o u s l y - m e n t i o n e d v a l u e s w i t h P O K E s t a t e m e n t s :

P O K E 5 1 2 8 8 , 4 8 ( o b a c k t 1 6 P O K E 5 1 3 8 0 , 1 6 ( o b a c k t 4 8 P O K E 5 1 3 8 2 , 4 8 ( o b a c k t 1 6

2 5

Page 266: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 266/290

Page 267: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 267/290

Page 268: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 268/290

T r i c k s T i p s

0 0 7 6 0 3 C C 4 C D 2 0 30 0 7 7 0 3 C F 2 0 A 6 B B- P O I N T V A R I A B L E0 0 7 8 0 3 D 2 2 D D B DS C I I S T R I N G0 0 7 9 0 3 D 5 A C I A 0 0 8 0 0 3 D 8 2 0 F 7 0 3G Q U O T E0 0 8 1 0 3 D B A O 0 0 0 8 2 0 3 D D B 2 0 0 8 3 0 3 D F 8 5 2 50 0 8 4 0 3 E 1 8 80 0 8 5 0 3 E 2 B 2 0 0 8 6 0 3 E 4 8 2 0 0 8 7 0 3 E 6 8 0 0 8 8 0 3 E 7 B 2 0 0 8 9 0 3 E 9 8 5 2 60 0 9 0 0 3 E B F O O A0 0 9 1 0 3 E D B 2 C T E R S0 0 9 2 0 3 E F 2 0 D 2 F 0 0 9 3 0 3 F 2 C 0 0 9 4 0 3 F 3 C 4 2 60 0 9 5 0 3 F 5 D F 0 0 9 6 0 3 F 7 A 9 2 20 0 9 7 0 3 F 9 4 C D 2 F

L 1 L 1

L 1

L 1

L 1 L 1

J M J S J S

J M J S L D L D S T D E L D S T D E L D S T B E L D J S I N

C P B N L D J M

L 1 $ B B A 6* B D D D

* A B 1 EL 1 # ( * 2 2 ) ,

$ 2 < * 2 2 ) ,

$ 2 ( $ 2 2 ) ,

$ 2 L 1 < * 2 4 > ,

* F F D 2$ 2 L 1 # * 2 2$ F F D 2

; a n d o u t p u tG E F L O A T I N GC O N V E R T T

S A N D O U T P U TO U T P U T S T R I N

S A D D R E S S H I G H

A D D R E S S L O

L E N G T H

O U T P U T C H A R AO S T R I N GS T R I N G D O N E ?Q U O T EO U T P U T

1 0 F O 8 2 8 T O 1 0 1 91 1 R E A D P O K E I „ S = S + X1 2 D A T A 1 6 5 , 4 5 , 1 6 4 , 4 6 , 1 3 3 ,1 3 D A T A 1 9 7 ; , 4 7 , 1 7 6 , 2 4 , 1 0 5 ,1 4 D A T A 3 5 3 2 , 1 3 0 , 3 3 2 " ,1 5 D A T A 3 7 6 , 1 1 3 , 3 * 9 6 1 6 D A T A 1 1 3 , 3 3 2 , 2 1 6 ^ 3 1 7 D A T A 1 6 4 , 2 1 2 4 , l O S i l 1 8 D A T A 1 7 7 , 2 0 , 1 7 0 , 4 1 , 1 2 7 * ,1 9 D A T A 4 1 , 1 2 7 , 2 4 0 ^ , 3 3 2 2 0 0 D A T A 1 0 , 1 6 9 , 3 3 3 2 , 2 1 0 ,2 1 D A T A 3 7 , 2 0 8 , 7 8 , 1 5 2 , 1 6 2 2 0 D A T A 2 1 0 , 2 5 5 , 1 6 9 , 3 2 , 3 2 i2 3 D A T A 0 , 1 7 7 , 3 4 , 1 7 0 , 2 0 0 ^2 4 D A T A 7 6 , 2 1 0 , 3 3 2 , 1 6 6 ,2 5 D A T A 3 2 , 2 4 7 , 3 1 6 0 * . 2 * 2 6 0 D A T A 1 3 3 , 3 6 , 1 3 6 , 1 7 7 , 3 4 2 7 D A T A 2 1 0 , 2 5 5 , 2 0 0 , 1 9 6 , 3 8 2 8 I F < 2 0 9 8 8 T H E N P R I N T *2 9 P R I N T " O K "

N E X T2 0 , 1 3 2

2 1 4 1 8 2 ,1 5 2 , 4 1 6 9 , 1 1 4 4 , 1 9 3

3 2 , 2 1 02 1 0 , 2 5 52 5 5 , 1 0 44 1 6 2 1 0 , 2 5 51 7 7 , 3 1 8 7 ,1 7 7 , 3 1 3 3 , 3 2 0 8 , 2 4 61 E R R O R

' 2 1 , 1 9 6 ,1 , 2 0 0 ,

, 1 3 8 , 1 6 3 2

: 3 2 , 2 1 0 ,, 2 0 0 , 1 7 6 ,

2 5 5 , 2 0 0 ,, 1 3 8 , 1 6 , 1 0 4 , 7 6 3 6 , 2 0 8 ,, 1 6 9 , 6 1 , 1 6 8 , 1 3 8 ,

: , 2 2 1 , 1 8 9 ,, 1 3 3 , 3 7 , 2 4 0 , 1 0 , 1 6 9 , 3 4 I D A T A ! !

4 8 , 2 0 8 ,1 3 3 , 3 4 , 1 3 2

7 3 2 , 1 9 12 0 7 , 3 7 2 5 5 , 1 6 5 , 2 01 9 0 , 1 6 0 ,1 7 7 , 2 0 , 1 6 8

1 7 , 1 5 2 , 4 1 1 3 , 3 , 1 6 97 1 9 6 3

2 0 8 , 5 8 , 1 6 03 2 , 1 4 9 , 1 7 97 6 3 0 , 1 7 1

1 3 6 , 1 7 7 , 3 41 7 7 , 3 6 3

7 6 , 2 1 0 , 2 5 5E N

2 6

Page 269: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 269/290

Page 270: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 270/290

T r i c k s T i p s

9 . M o d i f i e d P E E K f u n c t i o n

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

T h m e m o r y a r e a s f r o m $ A 0 0 0 t $ B F F F ( 4 0 9 6 0 t 4 9 1 5 1 )a n $ E 0 0 0 t $ F F F F ( 5 7 3 4 4 t 6 5 5 3 5 ) a r e d o u b l y a l l o c a t e d :F i r s t w i t h 8 B A S I C R O M a n d 8 k e r n a l R O M , r e s p e c t i v e l y , a n t h e n w i t h 8 o R A e a c h . T h e s e 1 6 b y t e s o R A M c a n n o t b u s e d f r o m B A S I C w i t h o u t m o d i f i c a t i o n . P O K E c o m m a n d s w r i t ed i r e c t l y t t h R A M , b u r e a d a t t e m p t w i t h P E E K a l w a y sr e a d s f r o m t h R O M . H e r e w r e p l a c e t h P E E K f u n c t i o n w i t ho u o w n U S R f u n c t i o n . T h e f u n c t i o n m u s t d o t h e f o l l o w i n g :B e f o r e t h v a l u e o m e m o r y l o c a t i o n i r e a d , t h m e m o r yc o n f i g u r a t i o n m u s t b c h a n g e d s t h a t t h R A " b e n e a t h " t h R O i a c t i v a t e d . N o w t h v a l u e c a n b e r e a d . F i n a l l y , t h o l c o n f i g u r a t i o n m u s t b r e s t o r e d . I a d d i t i o n , w w o u l dl i k e t b a b l e t r e a d t h c h a r a c t e r g e n e r a t o r w h i c hr e s i d e s f r o m l o c a t i o n $ D 0 0 0 t $ D F F F . T h e r o u t i n e c h e c k s t s e i t h P E E K a d d r e s s l i e s b e t w e e n $ D 0 0 0 a n d $ D F F F . I s o t h m e m o r y c o n f i g u r a t i o n w i l l b s e s u c h t h a t t h c h a r a c t e rg e n e r a t o r c a b r e a d . T h v a l u e i t h e n r e a d a n t h m e m o r yc o n f i g u r a t i o n r e t u r n e d t n o r m a l .

2 6

Page 271: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 271/290

T r i c k s f T i p s

0 0 0 1 0 3 3 C0 0 0 2 0 3 3 CE S 0 0 0 3 0 3 3 C0 0 0 4 0 3 3 C0 0 0 5 0 3 3 CF E 0 0 0 6 0 3 3 C A 1 0 0 0 7 0 3 3 E 4

A D D R E S S0 0 0 8 0 3 3 F A 1 0 0 0 9 0 3 4 1 4 0 0 1 0 0 3 4 2 2 F 7 B 7T A D D R E S S F O R M A T0 0 1 1 0 3 4 5 A 0 0 0 1 2 0 3 4 7 4 R A T I O N0 0 1 3 0 3 4 8 A 1 0 0 1 4 0 3 4 A C D

* D 0 0 00 0 1 5 0 3 4 C 9 0 0 70 0 1 6 0 3 4 E C E

t E O O O0 0 1 7 0 3 5 0 B 0 0 0 1 8 0 3 5 2 A 3 A R A C T E R G E N E R A T O R0 0 1 9 0 3 5 4 2 0 0 2 0 0 3 5 5 A 3

0 0 2 1 0 3 5 7 7 0 0 2 2 0 3 5 8 8 0 O N F I G U R A T I O N0 0 2 3 0 3 5 A A O 0 00 0 2 4 0 3 5 C B l 1 40 0 2 5 0 3 5 E A 0 0 2 6 0 3 5 F 6 0 0 2 7 0 3 6 0 8 0 A T I O N0 0 2 8 0 3 6 2 5 0 0 2 9 0 3 6 3 6 0 0 3 0 0 3 6 4 8 1 0 0 3 1 0 3 6 6 6 B A C K0 0 3 2 0 3 6 7 8 1 0 0 3 3 0 3 6 9 4 A B

F A

A D E Q * 1

F A C A D R E Q UY F A C E Q

O R

L D P H L D P H J S

L D P H L D C M B C C M B C L D B Y

R A M L D AS E S T L D L D T A P L S T C L P L S T P L S T J M

* B 7 F 7* B 3 A 28 2

A D

A D R + 1F A C A D R

A D R + 1# * D O

R A # * E OR A # * 3 1* 2 # * 3 4

# ( A D R ) ,

A D R + 1

A D Y F A C

; U S R P E E KI N T E G E R A D D R

; C A S S E T T E B U F

S A V E I N T E G E R

; C O N V E R T F A C

; S A V E C O N F I G U

; S M A L L E R T H A T

G R E A T E R T H A N

R E A D F R O M C

R E A D F R O M R A

S E M E M O R Y

; R E A D B Y T E

; G E T C 0 N F I 6 U R

G E A D D R E S S

C O N V E R T T

2 6

Page 272: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 272/290

T r i c k s T i p s

T h p r o g r a m i s t o r e d i t h c a s s e t t e b u f f e r a a d d r e s s 8 2 8 .O n c e y o h a v e e n t e r e d o l o a d e d t h p r o g r a m , t h s t a r ta d d r e s s o t h p r o g r a m m u s t b a s s i g n e d t t h U S v e c t o r .T h i s i d o n e w i t h t w P O K E s :

P O K E 7 8 5 , 8 2 8 A N D 2 5 P O K E 7 8 6 , 8 2 2 5

F o t h o s e w h o d n o h a v e a a s s e m b l e r , w h a v e a g a i np r o v i d e d l o a d e r p r o g r a m i B A S I C , w h i c h a l s o i n i t i a l i z e st h U S v e c t o r f o y o u .1 0 F O 8 2 T 8 7 1 1 R E A D P O K E I , S = S + X N E X T1 2 D A T A 1 6 5 , 2 0 7 2 , 1 6 5 , 2 1 , 7 2 , 3 2 , 2 4 7 , 1 8 3 , 1 6 5 , 1 7 1 3 D A T A 1 6 5 , 2 1 , 2 0 1 , 2 0 8 , 1 4 4 , 7 , 2 0 1 „ 2 2 4 , 1 7 6 , 3 , 1 6 9 , 4 1 4 D A T A 4 4 , 1 6 9 , 5 2 , 1 2 0 , 1 3 3 , 1 , 1 6 0 , 0 , 1 7 7 , 2 0 , 1 6 8 , 1 0 41 5 D A T A 1 3 3 , 1 8 8 , 1 0 4 , 1 3 3 , 2 1 , 1 0 4 , 1 3 3 , 2 0 7 6 , 1 6 2 , 1 7 91 6 I F < 5 0 8 5 T H E N P R I N T " E R R O R I N D A T A ! ! 1 1 E N 1 7 P O K E 7 8 5 , 8 2 A N 2 5 P O K E 7 8 6 3 8 2 8 / 2 5 61 8 P R I N T " O K "

N o w , i y o u w a n t t r e a d f r o m t h R A o c h a r a c t e rg e n e r a t o r , y o s i m p l y r e p l a c e t h P E E K f u n c t i o n w i t h t h U S f u n c t i o n . T r e a d t h c h a r a c t e r m a t r i x o c h a r a c t e r , f o e x a m p l e , y o c o u l d u s e t h e f o l l o w i n g p r o g r a m :

1 0 C G = 1 3 * 4 0 9 61 1 ( P E E K ( 5 3 2 4 8 + 2 4 ) A N 2 1 0 2 41 2 I N P U T " C H A R A C T E R C O D E " ; 1 3 F O 1 = 0 T O1 4 P R I N T I U S R ( C G + A + 8 * C + I ) N E X T1 5 G O T O 1 1

2 6

Page 273: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 273/290

T r i c k s T i p s

L i n e 1 1 c h o o s e s b e t w e e n t h u p p e r o l o w e r h a l f o f t h ec h a r a c t e r g e n e r a t o r w h i c h s e l e c t s b e t w e e n t h u p p e rc a s e / g r a p h i c s s e t o r t h u p p e r / l o w e r c a s e s e t .

T h i s n e " P E E K " f u n c t i o n g i v e s y o u u t 1 6 K o f R A w h i c h y o c a u s t s t o r e d a t a i B A S I C o w h a t e v e r e l s ey o l i k e .

2 6

Page 274: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 274/290

T r i c k s T i p s

9 . M u l t i - t a s k i n g o n t h e C o m m o d o r e 6

M u l t i - t a s k i n g i t e r m o r i g i n a l l y a s s o c i a t e d w i t hm a i n f r a m e c o m p u t e r s a n r e f e r s t t h a b i l i t y o c o m p u t e rt e x e c u t e s e v e r a l p r o g r a m s s i m u l t a n e o u s l y . H o w d o e ss o m e t h i n g l i k e t h i s w o r k ?

E v e n m a i n f r a m e c a o n l y d o n t h i n g a t i m e , s a n o t h e r t r i c k i u s e d :

I f f o e x a m p l e , t h e c o m p u t e r i s u p p o s e d t r u f i v ep r o g r a m s a o n c e , i w i l l s t a r t e x e c u t i n g t h f i r s t t h

p r o g r a m a n a f t e r c e r t a i n l e n g t h o t i m e ( f r a c t i o n o s e c o n d ) w i l l s t o p e x e c u t i n g i t s a v e t h v a r i a b l e s , a n s t a r t e x e c u t i n g t h e n e x t p r o g r a m . T h i s p r o g r a m t o w i l l b i n t e r r u p t e d a f t e r s h o r t t i m e a n t h c o m p u t e r w i l lc o n t i n u e e x e c u t i n g t h n e x t o n e . O n c e a l o f t h e p r o g r a m sh a v e b e e n e x e c u t e d o n c e , t h e v a r i a b l e s f r o m t h f i r s tp r o g r a m a r f e t c h e d a n t h e x e c u t i o n o f t h i s p r o g r a mc o n t i n u e s . T h c o m p u t e r ' s t i m e i d i v i d e d u i n t o " t i m es l i c e s " a m o n g t h v a r i o u s p r o g r a m s . T h e t e r m " t i m e - s h a r i n g "i a l s o u s e d t d e s c r i b e t h i s .

I l i m i t e d s e n s e , t h i s s o r t o t h i n g i a l s o p o s s i b l eo t h C o m m o d o r e 6 4 T w p r o g r a m s w i t h i n t h 6 r u s i m u l t a n e o u s l y : t h B A S I C i n t e r p r e t e r a n t h s o - c a l l e di n t e r r u p t s e r v i c e r o u t i n e w h i c h i c a l l e d a n d e x e c u t e d 6 t i m e s p e r s e c o n d . W h i l e y o u r B A S I C p r o g r a m i b e i n ge x e c u t e d , i i b e i n g i n t e r r u p t e d 6 t i m e s s e c o n d i o r d e rt e x e c u t e t h i s i n t e r r u p t r o u t i n e . T h i s r o u t i n e t a k e s c a r eo s u c h t h i n g s a r e a d i n g t h k e y b o a r d .

H e r e w e c a n a t t a c h o u r o w n r o u t i n e a n p e r f o r ma d d i t i o n a l t a s k s o o u r o w n d u r i n g t h i n t e r r u p t . O n e u s e o t h i s m i g h t b t o u t p u t t e x t o t h p r i n t e r . A e a c hi n t e r r u p t c h a r a c t e r c o u l d b f e t c h e d f r o m b u f f e r a n s e n t t t h p r i n t e r . T h u s e r c o u l d t h e n c o n t i n u e w i t h h i

2 6

Page 275: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 275/290

T r i c k s T i p s

B A S I C p r o g r a m a u s u a l .A a e x a m p l e o t h i s p r o c e d u r e w h a v e w r i t t e n

p r o g r a m w h i c h d i s p l a y s t h t i m e , i n c l u d i n g t e n t h s o s e c o n d , o t h e s c r e e n , e v e n w h i l e a n o t h e r p r o g r a m i r u n n i n g . T h p r o g r a m u s e s t h C o m m o d o r e 6 4 * s r e a l - t i m ec l o c k . T h e t i m e i a u t o m a t i c a l l y a n c o n s t a n t l y d i s p l a y e d 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 e s c r e e n . T h e p r o g r a m i w r i t t e n i m a c h i n e l a n g u a g e b u t c a n a l s o b e e n t e r e d u s i n gt h B A S I C l o a d e r p r o g r a m l i s t e d a f t e r t h a s s e m b l y l a n g u a g es o u r c e c o d e .0 0 0 1 C 8 0 00 0 0 2 C 8 0 0S S ? , C O L O R0 0 0 3 C 8 0 00 0 0 4 C 8 0 0P R E S S I O N0 0 0 5 C 8 0 00 0 0 6 C 8 0 0M M 0 0 0 7 C 8 0 00 0 0 8 C 8 0 0R E S S I O N0 0 0 9 C 8 0 0N T I T Y '0 0 1 0 C 8 0 00 0 1 1 C 8 0 0C O L O R V A L U E0 0 1 2 C 8 0 0

R A 0 0 1 3 C 8 0 00 0 1 4 C 8 0 00 0 1 5 C 8 0 00 0 1 6 C 8 0 0E C T O R0 0 1 7 C 8 0 00 0 1 8 C 8 0 0O C C I 0 0 1 9 C 8 0 00 0 2 0 C 8 0 00 0 2 1 C 8 0 00 0 2 2 C 8 0 00 0 2 3 C 8 0 0R 0 0 2 4 C 8 0 00 0 2 5 C 8 0 0 A D O E D C0 0 2 6 C 8 0 3 0 9 8 0

F R M E V L

F R E S T RC H K C O MC H R G O TG E T B Y TI L L Q U A

A D C O L O RV I D E O

T E M PI R P N I R Q V E C

C L T E N T H SS E C O N DM I N U T EH O U R ST R I G E RS E

E Q

E Q E Q

E Q E Q E Q E Q E Q E Q E Q E Q E Q E Q

E Q E Q

E Q E Q E Q E Q E Q O R L D O R

* A D 9 E* B 6 A 3* A E F D$ 7 * B 7 9 E* B 2 4 8

* 2 $ 2 A 7

* 2 8 8

$ F $ 3 1 4* F * E A 3 1

* D 8 0 0* D C 0 8

T E N T H S * 1S E C O N D + 1M I N U T E + 1H O U R S + 3T R I G E R + 1$ C 8 0 0T R I G E R# * 8 0

T I M E D I S P L A YS S Y S A D ? H H M M

G E B A S I C E

C H E C K F O R C

G E B Y T E E X

' I L L E G A L Q U A

S T O R A G E F O

S H B Y T E V I D E

I R V E C T O RN O R M A L I R

; C O L O R R A MR E A L T I M E C

5 0 / 6 0 H ? S E T T I M E / A L A

; 5 0 H Z M O D E2 6

Page 276: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 276/290

T r i c k s T i p s0 0 2 70 0 2 80 0 2 90 0 3 00 0 3 1O D E ?0 0 3 20 0 3 30 0 3 40 0 3 50 0 3 60 0 3 7T I T Y0 0 3 80 0 3 90 0 4 00 0 4 10 0 4 20 0 4 30 0 4 40 0 4 50 0 4 60 0 4 70 0 4 80 0 4 90 0 5 00 0 5 10 0 5 20 0 5 30 0 5 40 0 5 50 0 5 60 0 5 7

0 0 5 80 0 5 90 0 6 00 0 6 10 0 6 20 0 6 30 0 6 40 0 6 50 0 6 60 0 6 70 0 6 80 0 6 90 0 7 00 0 7 10 0 7 20 0 7 30 0 7 40 0 7 50 0 7 60 0 7 7

C 8 0 5C 8 0 8C 8 0 BC 8 0 DC 8 1 0

C 8 1 3C 8 1 5C 8 1 8C 8 1 BC 8 1 EC 8 2 0

C 8 2 2C 8 2 4C 8 2 6C 8 2 7C 8 2 9C 8 2 BC 8 2 DC 8 2 EC 8 2 FC 8 3 0C 8 3 1C 8 3 3C 8 3 4C 8 3 6C 8 3 7C 8 3 9C 8 3 BC 8 3 DC 8 3 FC 8 4 1

C 8 4 3C 8 4 5C 8 4 7C 8 4 9C 8 4 BC 8 4 DC 8 4 EC 8 4 FC 8 5 1C 8 5 2C 8 5 4C 8 5 7C 8 5 AC 8 5 DC 8 6 0C 8 6 3C 8 6 5C 8 6 8C 8 6 BC 8 6 D

8 A 2 8 2 F 2 2 2 C

D

A B 3 E C B O O O O 8 C B 3 E C B 0 D A

D C B C 9 3 F E D 0 8 2 8 2 8 A 8 2 F 2

O O 7 O 7 6 F 9 A 0

6

0 2

3 0 6

F 2

3 O 5 F 0 9

O 2 4 1

0

1

8 O F O F 0 0 0 7 O F

D D D 0

A A B

D C D C D

D 0

A

S T L D A N S T J S B E J S J S J S C M B N L D L D S E S B C M B C A S A S A S A S S T

N L D S E S B C M B C O R B N L D

B N N O T N U L C M

B C C M B C S E S E S B C L O R

S E T S T D S T J S S T J S S T L D S T J S B E J S

T R I G E RS E # * 7 FS E C H R G O TC H G I R QC H K C O MF R M E V LF R E S T R#

I L

# ( A D R ) J .

# ? 0 ?# I L

T E M P( A D R ) ? Y

# ? 0 ?# 1 I L T E M PN O T N U L# * 9 2

S E T S T D# $ 2 4I L # $ 1 3S E T S T D

# $ 1 2# * 8 0H O U R SG E T 5 9M I N U T EG E T 5 9S E C O N D# T E N T H SC H R G O TC H G I R QC H K C O M

2 6

S E T T I M EA D D I T I O N A LS W I T C H C L O C KG E S T R I N GP A R A M E T E R

C H A R A C T E R SI L L E G A L Q U A N

T O H E X

1 O ' C L O C K

S E T P M

G E M I N U T E S

? S T A R T C L O C K

Page 277: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 277/290

0 0 7 80 0 7 90 0 8 00 0 8 1O D 0 0 8 2

C 8 7 0C 8 7 3C 8 7 5C 8 7 7

C 8 7 AV E C T O R S

0 0 8 30 0 8 4

C 8 7 BC 8 7 E

T I M I R Q0 0 8 50 0 8 60 0 8 7

C 8 8 0C 8 8 3C 8 8 6

T I M I R Q0 0 8 80 0 8 90 0 9 00 0 9 10 0 9 2I N 0 0 9 30 0 9 40 0 9 50 0 9 60 0 9 7

C 8 8 8C 8 8 BC 8 8 CC 8 8 DC 8 9 0C 8 9 0C 8 9 2C 8 9 3C 8 9 5C 8 9 6

V I D E O R A 0 0 9 80 0 9 90 1 0 0

D E 0 1 0 10 1 0 20 1 0 30 1 0 40 1 0 50 1 0 60 1 0 70 1 0 80 1 0 90 1 1 00 1 1 10 1 1 20 1 1 30 1 1 40 1 1 50 1 1 60 1 1 70 1 1 8T E 0 1 1 90 1 2 0N D 0 1 2 10 1 2 2

C 8 9 9C 8 9 BC 8 9 DR A C 8 9 FC 8 A 1C 8 A 4C 8 A 6C 8 A 8C 8 A AC 8 A CC 8 A EC 8 B 0C 8 B 2C 8 B 3C 8 B 4C 8 B 6C 8 B 7C 8 B 9C 8 B BC 8 B EC 8 C 1

C 8 C 4C 8 C 7

C 8 C AC 8 C D

2 E B 8

7 A 4

8 A 4

8 5 6 4

A 4 A 4 A

8 A 8

A A C F C 9 2 C F F 1 6 D D A 2

A 2

A 2

A 0

9 1 1 A

1 A

1 1 2

1

4

F

F

8

F 0 F

I O 1 1 8 O 7 1

0

1

0 0 D

O D

0 D

0 3

B

0

0

0 0

0

B

0

D

C

D C

D C

D

C H G I R Q

I L

T I M I R Q

Z E R O C KS T D O U T

J S C P B C S T

S E

L D E O S T L D E O S T C L R T J M

L D P H L D P H L D S T L D S T

L D L D C M B E C M B C A N C M B E S E C L A D C L B N L D J S

L D J S

L D J S

L D O R

G E T B Y T# 1 I L C O L O R

I R # * A 1I R I R Q + 1

# * 2 2I R Q + i

I L L Q U A

P N P N T + 1

V I D E OP N T + 1# P N

# 3 H O U R S# * 1 2Z E R O C K# * 8 0S T D O U T# $ 7 F# * 1 2S T D O U T

# $ 1 2S T D O U T# P R I N TM I N U T EP R I N T

S E C O N DP R I N T

T E N T H St t ' O 3

2 6

T r i c k s T i p s; C O L O R

S A V E C O L O R; E X C H A N G E I R

3 # < I R Q V E C E O R

5 # > I R Q V E C E O

D I S P L A Y R O U T

; S A V E P O I N T E R; H I G H B Y T E O

P O I N T E R T

3 O T H C O L U M N

S A

I S D I S P L A Y H O U R

D I S P L A Y M I N U

D I S P L A Y S E C O

Page 278: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 278/290

T r i c k s T i p s

0 1 2 3H 0 1 2 40 1 2 50 1 2 6B A C K0 1 2 70 1 2 80 1 2 90 1 3 00 1 3 10 1 3 20 1 3 30 1 3 40 1 3 50 1 3 60 1 3 70 1 3 80 1 3 90 1 4 00 1 4 10 1 4 20 1 4 30 1 4 40 1 4 50 1 4 60 1 4 70 1 4 80 1 4 90 1 5 00 1 5 10 1 5 20 1 5 30 1 5 40 1 5 50 1 5 60 1 5 70 1 5 80 1 5 90 1 6 00 1 6 10 1 6 20 1 6 30 1 6 40 1 6 50 1 6 60 1 6 7

C 8 C F

C 8 D 2C 8 D 3C 8 D 5

C 8 D 6C 8 D 8C 8 D BC 8 D CC 8 D EC 8 D FC 8 E 0C 8 E 1C 8 E 2C 8 E 3C 8 E 5C 8 E 8C 8 E 9C 8 E BC 8 E CC 8 E EC 8 F 1C 8 F 3C 8 F 5C 8 F 8C 8 F BC 8 F CC 8 F DC 8 F EC 9 0 0C 9 0 1C 9 0 3C 9 0 5C 9 0 7C 9 0 8C 9 0 9C 9 0 AC 9 0 BC 9 0 DC 9 0 EC 9 1 0C 9 1 1C 9 1 3C 9 1 5C 9 1 7C 9 1 9

2

6 8 6 8 4 4 2 4 4 4 4 1 6 2 6 2 I

6 2 A 9 A 9 C 6 C B 3 E C B O O O O 8 C B 3 E C B 0 6

F

F

F 3

F

3 F

O

3 F 3 F A 0

2

3 0 8

F 2

3 O E F

C

E

C

C

0 D

J S

P L S T P L S T J M

P R I N T P H A N L S L S L S L S C L A D J S P L A N C L A D J S L D

P R I N T 1 S T L D S T

N R T

G E T 5 9 I N L D S E S B C M

I L L 1 B C A S A S A S A S S T

N L D S E S B C M B C O R R T

P R I N T 1

P N T + 1

P N I R Q V E C# * F 0

P R I N T 1# * 0 F

# ? 0 ?P R I N T 1#

( P N T ) ,c o l o r 'C L R , Y

< A D R ) , Y# ? o -# I L

T E M P< A D R ) ? Y

# 1 I L L 1T E M P

D I S P L A Y T E N T

G E P O I N T E R

T O L I R ? D I S P L A Y

! i C H A R A C T E R

A N C O L O R

2 7

Page 279: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 279/290

T r i c k s T i p s

1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7

F O 5 1 2 0 0 T O 5 1 4 8 1R E A D P O K E 1 S = S + X N E X T -D A T A 1 7 3 , 1 4 , 2 2 0 , 9 , 1 2 8 , 1 4 1 , 1 4 , 2 2 0 , 1 7 3 , 1 5 , 2 2 0 , 4 D A T A 1 2 7 , 1 4 1 , 1 5 , 2 2 0 , 3 2 , 1 2 1 , 0 , 2 4 0 , 1 0 1 , 3 2 , 2 5 3 , 1 7 4D A T A 3 2 , 1 5 8 , 1 7 3 , 3 2 , 1 6 3 , 1 8 2 , 2 0 1 , 6 , 2 0 8 , 1 0 7 , 1 6 0 ,D A T A 1 7 7 , 3 4 , 5 6 , 2 3 3 , 4 8 , 2 0 1 , 3 , 1 7 6 , 9 6 1 0 , 1 0 , 1 D A T A 1 0 , 1 3 3 , 2 5 1 , 2 0 0 , 1 7 7 , 3 4 5 6 , 2 3 3 , 4 8 , 2 0 1 , 1 0 , 1 7 6D A T A 8 0 5 , 2 5 1 , 2 0 8 , 4 , 1 6 9 , 1 4 6 , 2 0 8 , 1 5 , 2 0 1 , 3 6 , 1 7 6D A T A 6 8 , 2 0 1 , 1 9 , 1 4 4 , 7 5 6 , 2 4 8 , 2 3 3 , 1 8 , 2 1 6 , 9 , 1 2 8D A T A 1 4 1 , 1 1 , 2 2 0 , 3 2 , 2 5 3 , 2 0 0 , 1 4 1 , 1 0 , 2 2 0 , 3 2 , 2 5 3 , 2 0 0D A T A 1 4 1 , 9 , 2 2 0 , 1 6 9 , 0 , 1 4 1 , 8 , 2 2 0 , 3 2 , 1 2 1 , 0 , 2 4 0

1 3 3 2 , 2 5 3 , 1 7 4 , 3 2 , 1 5 8 , 1 8 3 , 2 2 4 , 1 6 , 1 7 6 , 2 2 , 1 4 22 , 1 2 0 , 1 7 3 , 2 0 3 7 3 , 1 6 1 , 1 4 1 , 2 0 3 , 1 7 33 7 3 3 4 , 1 4 1 , 2 1 3 8 8 9 6 7 6 7 2 , 1 7 8

D A T A 1 6 5 , 2 5 1 , 7 2 , 1 6 5 , 2 5 2 , 7 2 , 1 7 3 , 1 3 6 , 2 , 1 3 3 , 2 5 2 , 1 6 9D A T A o \ 1 3 3 , 2 5 1 , 1 6 0 , 3 0 , 1 7 3 , 1 1 , 2 2 0 , 2 0 1 , 1 8 , 2 4 0 , 1 D A T A 2 0 l " 1 2 8 , 1 4 4 , 1 5 4 1 , 1 2 7 , 2 0 1 , 1 8 , 2 4 0 , 9 , 2 4 8 , 2 4D A T A 1 0 5 , 1 8 , 2 1 6 , 2 0 8 , 2 , 1 6 9 , 0 3 2 , 2 1 9 , 2 0 0 , 1 7 3 , 1 D A T A 2 2 0 , 3 2 , 2 1 9 , 2 0 0 , 1 7 3 , 9 , 2 2 0 , 3 2 , 2 1 9 , 2 0 0 , 1 7 3 ,D A T A 2 2 0 , 9 4 8 3 2 , 2 4 3 , 2 0 0 , 1 0 4 , 1 3 3 , 2 5 2 , 1 0 4 , 1 3 3 , 2 5 1D A T A 7 6 4 9 , 2 3 4 , 7 2 4 1 , 2 4 0 , 7 4 7 4 7 4 , 7 4 , 2 4 , 1 0 5D A T A 4 8 3 2 , 2 4 3 , 2 0 0 , 1 0 4 , 4 1 1 5 2 4 , 1 0 5 , 4 8 3 2 , 2 4 3D A T A 2 0 0 , 1 6 9 , 5 8 , 1 4 5 , 2 5 1 , 1 7 3 , 1 6 7 , 2 , 1 5 3 , 0 , 2 1 6 , 2 0 0D A T A 9 6 , 2 0 0 , 1 7 7 , 3 4 5 6 , 2 3 3 , 4 8 , 2 0 1 , 6 , 1 7 6 , 1 3 4 , 1 D A T A 1 0 , 1 0 , 1 0 , 1 3 3 , 2 5 1 , 2 0 0 , 1 7 7 , 3 4 5 6 , 2 3 3 , 4 8 , 2 0 1D A T A 1 0 , 1 7 6 , 2 3 8 , 5 , 2 5 1 , 9 6I F < 3 2 9 7 0 T H E N P R I N T " E R R O R I D A T A ! ! " E N P R I N T " O K "

D A T AD A T A 1 6 7 ,D A T A 2 1

2 7

Page 280: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 280/290

T r i c k s T i p s

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

S Y 5 1 2 0 0 , " H H M M S S " , C O L O R

w h e r e " H H M M S S " i t h c u r r e n t t i m e ( H o u r s , M i n u t e s , S e c o n d s )a n C O L O R i t h e c o l o r c o d e f o t h t i m e d i s p l a y ( f r o m t 1 5 ) . T o s e t t h e c l o c k t 2 : 3 0 P . M . ( s i n c e t h i s i 2 4 - h o u rc l o c k w e m u s t e n t e r 1 4 : 3 0 ) a n d 1 s e c o n d s , w i t h t h t i m ed i s p l a y e d i y e l l o w , w e w o u l d u s t h f o l l o w i n g c o m m a n d :

S Y 5 1 2 0 0 , " 1 4 3 0 1 5 " , 7

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

S Y 5 1 2 0 0

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

S Y 5 1 2 0 0

a n t h t i m e w i l l a p p e a r a g a i n .

I p r i n c i p l e t h e r e a r e t w m e t h o d s f o i n s e r t i n g t h s e c o n d " j o b " i m u l t i - t a s k i n g :

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

2 7

Page 281: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 281/290

T r i c k s & T i p s

c h a n g i n g t h i n t e r r u p t v e c t o r s t h a t i p o i n t s t o u r o u t i n e . O u r r o u t i n e t h e n e n d s w i t h j u m p t t h o r i g i n a li n t e r r u p t r o u t i n e s t h a t t h c o m p u t e r c a c o m p l e t e i t o p e r a t i o n s .

T h s e c o n d m e t h o d g i v e s t h e u s e r r o u t i n e i t o w i n t e r r u p t . T h i s c o u l d b e d o n e w i t h t h o u t p u t t t h p r i n t e r , f o e x a m p l e . T h e B U S Y l i n e o f t h p r i n t e r c o u l d b u s e d a t h i n t e r r u p t s o u r c e . B a c h t i m e t h e p r i n t e r i r e a d yt r e c e i v e c h a r a c t e r i i n i t i a t e s a i n t e r r u p t . T h ei n t e r r u p t r o u t i n e s e n d s c h a r a c t e r t t h p r i n t e r t h e nc o n t i n u e w i t h t h n o r m a l p r o g r a m . O n c e t h e p r i n t e r h a p r i n t e d t h c h a r a c t e r , i g e n e r a t e s a n o t h e r i n t e r r u p t ,f o r c i n g t h c o m p u t e r t s e n d i a n o t h e r c h a r a c t e r . T h u s e ro t h c o m p u t e r n o t i c e s n o t h i n g o t h i s .

Y o u w i l l n e e d t k n o w q u i t e b i t a b o u t t h o p e r a t i n gs y s t e m o f t h e 6 t i m p l e m e n t t h e s e r o u t i n e s , i n f o r m a t i o nw h i c h y o w i l l f i n d i t h b o o k T h A n a t o m y o f t h e C o m m o d o r e6 4

2 7

Page 282: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 282/290

T r i c k s T i p s

9 . P O K E s a n z e r o p a g e

A y o h a v e s u r e l y n o t i c e d , t h e r e a r v a r i o u s a d d r e s s e sw h i c h a r e o f u s i p r o g r a m m i n g i B A S I C a w e l l a i m a c h i n e l a n g u a g e . H e r e i s h o r t l i s t o f s o m e o t h a d d r e s s e s ( a l l o f t h e p o i n t e r s a r s t o r e d i L S B , M S o r d e r ) :

A d d r e s s :

0 0 0 0 - 0 0 0 1

( p o s s i b l e ) A p p l i c a t i o n :

s p e c i f i c a r e a o m e m o r y c a b s w i t c h e d o n o r o f b P O K E i n g t o n o b o t h o t h e s e l o c a t i o n s .

0 0 4 3 - 0 0 4 4 T h e s e a d d r e s s e s p o i n t t t h s t a r t o t h u s e r s t o r a g e , t h s t a r t o t h B A S I Cp r o g r a m . P E E K ( 4 3 ) + 2 5 6 * P E E K ( 4 4 ) w i l l s h o wy o u t h i s v a l u e . Y o c a s e t h b e g i n n i n g h i g h e r b p o k i n g t t h e s el o c a t i o n s a n u s t h l o w e r m e m o r y a r e af o t h e r e s t o f t h s p r i t e s .

0 0 4 5 - 0 0 4 6 I t h e s e a d d r e s s e s y o f i n d t h s t a r t o t h n u m e r i c v a r i a b l e t a b l e . T h i s t a b l eu s u a l l y l i e s d i r e c t l y b e h i n d t h B A S I Cs t o r a g e .

0 0 4 7 - 0 0 4 8 C o n t a i n t h a d d r e s s o t h s t a r t o t h a r r a y s t o r a g e . A l f i e l d s ( a r r a y s ) a r ep l a c e d i t h i s a r e a .

0 0 4 9 - 0 0 5 0 T h c o n t e n t s o t h e s e a d d r e s s e s p o i n t t t h e n o t h a r r a y s t o r a g e .

2 7

Page 283: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 283/290

Page 284: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 284/290

T r i c k s & T i p s

I y o u w a n t t l e a r n m o r e a b o u t t h " i n s i d e s " o t h C o m m o d o r e 6 4 w r e c o m m e n d t h A b a c u s b o o k T h A n a t o m y o t h C o m m o d o r e 6 4 T h e r e y o w i l l l e a r n m o r e a b o u tp r o g r a m m i n g i m a c h i n e l a n g u a g e a n t h c o n s t r u c t i o n o f t h e6 4 * s R A M a n d R O M . W e n c o u r a g e y o t e x p e r i m e n t w i t h t h v a r i o u s a d d r e s s e s o f t h e C o m m o d o r e 6 4 T h e r e i m u c h h i d d e ni y o u r c o m p u t e r — i t o n l y n e e d s t b e d r a w n f o r t h .

2 7

Page 285: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 285/290

H A C K E R S T h u l t i m a t e s o u r c ef o C o m m o d o r e - 6 4C o m p u t e r i n f o r m a t i o n

O T H E R B O O K S A V A I L A B L E S O O N

T H A N A T O M Y O T H C - 6 4i t h i n s i d e r s g u i d e t t h l e s s e r k n o w n f e a t u r e s o t h C o m m o d o r e 6 I n c l u d e s c h a p t e r s o g r a p h i c s ,s o u n d s y n t h e s i s , i n p u t / o u t p u t c o n t r o l , s a m p l e p r o g r a m su s i n g t h k e r n a l r o u t i n e s , m o r e F o t h o s e w h n e e d t k n o w , i i n c l u d e s t h e c o m p l e t e d i s a s s e m b l e d a n dd o c u m e n t e d R O l i s t i n g sI S B N - 0 - 9 1 6 4 3 9 - 0 0 - 3 3 0 0 P D $ 1 9 . 9 5T H A N A T O M Y O T H 1 5 4 1D I S K D R I V Eu n r a v e l s t h m y s t e r i e s o u s i n g t h m i s u n d e r s t o o d d i s kd r i v e D e t a i l s t h e u s o p r o g r a m , s e q u e n t i a l , r e l a t i v ea n d i r e c t a c c e s s f i l e s I n c l u d e m a n y s a m p l e p r o g r a m sF I L E P R O T E C T . D I R E C T O R Y D I S K M O N I T O R . B A C K U P .M E R G E . C O P Y , o t h e r s D e s c r i b e s i n t e r n a l s o f D O w i t hc o m p l e t e l y d i s a d d e m b i e d a n c o m m e n t e d l i s t i n g s o t h 1 5 4 1 R O M SI S B N - 0 - 9 1 6 4 3 9 - 0 1 - 1 3 2 0 p p $ 1 9 . 9 5

M A C H I N E L A N G U A G E F O C - 6 4i a i m e d a t h o s e w h w a n t t p r o g r e s s b e y o n d B A S I CW r i t e f a s t e r , m o r e m e m o r y e f f i c i e n t p r o g r a m s i m a c h i n el a n g u a g e T e s t i s p e c i f i c a l l y g e a r e d t C o m m o d o r e 6 L e a r n s a l 6 5 1 0 i n s t r u c t i o n s I n c l u d e s l i s t i n g s f o f u l ll e n g t h p r o g r a m s A S S E M B L E R . D I S A S S E M B L E R a n a m a z i n g 6 5 1 0 S I M U L A T O R s y o c a s e t h o p e r at i o n o f t h 6 I S B N - 0 - 9 1 6 4 3 9 - 0 2 - X 2 0 0 p p $ 1 4 . 9 5

T R I C K S T I P S F O T H C - 6 4i c o l l e c t i o n o e a s y - t o - u s e p r o g r a m m i n g t e c h n i q u e s t o t h e ' 6 4 p e r f e c t c o m p a n i o n f o t h o s e w h h a v e r u u a g a i n s t t h o s e h a r d t s o l v e p r o g r a m m i n g p r o b l e m sC o v e r s a d v a n c e d g r a p h i c s , e a s y d a t a i n p u t . B A S I Ce n h a n c e m e n t s . C P / M c a r t r i d g e o t h e 6 4 . P O K E s . u s e rd e f i n e d c h a r a c t e r s e t s . i o y s t i c k / m o u s e s i m u l a t i o n , t r a n sf e r n n g d a t a b e t w e e n c o m u t e r s . m o r e t r e a s u r e c h e s tI S B N - 0 - 9 1 6 4 3 9 - 0 3 - 8 2 5 0 p p $ 1 9 . 9 5

G R A P H I C S B O O K F O T H C - 6 4t a k e s y o u f r o m t h f u n d a m e n t a l s o g r a p h i c t a d v a n c e d t o p i c s s u c h a c o m p u t e r a i d e d d e s i g n S h o w sy o h o t p r o g r a m n e c h a r a c t e r s e t s , m o v e s p r i t e s ,d r a w i H I R E S a n M U L T I C O L O R , u s a l i g h t p e n ,h a n d l e I R Q s . d 3 g r a p h i c s , p r o j e c t i o n s , c u r v e s a n da n i m a t i o n I n c l u d e s d o z e n s o s a m p l e sI S B N - 0 - 9 1 6 4 3 9 - 0 5 - 4 2 8 0 p p $ 1 9 . 9 5

A D V A N C E D M A C H I N EL A N G U A G E F O T H C - 6 4g i v e s y o a i n t e n s i v e t r e a t m e n t o t h p o w e r f u l 6 f e a t u r e s A u t h o r L o t h a r E n g l i s c h d e l v e s i n t o a r e a s s u c ha i n t e r r u p t s , t h v i d e o c o n t r o l l e r , t h e t i m e r , t h e r e a lt i m e c l o c k p a r a l l e l a n s e r i a l I / e x t e n d i n g B A S I C a n t i p s a n t r i c k s f r o m m a c h i n e l a n g u a g e , m o r eI S B N - 0 - 9 1 6 4 3 9 - 0 6 - 2 2 0 0 p p $ 1 4 . 9 5

I D E A S F O U S O Y O U R C - 6 4i l o t h o s e w h w o n d e r w h a t y o u c a n d o w i t h y o u r ' 6 I t i w r i t t e n l o t h n o v i c e a n p r e s e n t s d o z e n s o p r o g r a m l i s t i n g t h m a n y , m a n y u s e s f o y o u rc o m p u t e r T h e m e s i n c l u d e a u t o e x p e n s e s , e l e c t r o n i cc a l c u l a t o r , r e c i p e f i l e , s t o c k l i s t s , c o n s t r u c t i o n c o s te s t i m a t o r p e r s o n a l h e a l t h r e c o r d d i e t p l a n n e r s t o r ew i n d o w a d v e r t i s i n g , c o m p u t e r p o e t r y , p a r t y i n v i t a t i o n sa n m o r eI S B N - 0 - 9 1 6 4 3 9 - 0 7 - 0 2 0 0 p p $ 1 2 . 9 5

P R I N T E R B O O K F O T H C - 6 4f i n a l l y s i m p l i f i e s y o u r u n d e r s t a n d i n g o t h 1 5 2 5 .M P S / 8 0 1 . 1 5 2 0 . 1 5 2 6 a n E p s o n c o m p a t i b l e p r i n t e r sP a c k e d w i t h e x a m p l e s a n u t i l i t y p r o g r a m s , y o u ' l l l e a r nh o t m a k e h a r d c o p y o t e x t a n g r a p h i c s , u s s e c o nd a r y a d d r e s s e s , p l o t 3 - D . a n m u c h m o r e I n c l u d e sc o m m e n t e d l i s t i n g o l M P 8 0 R O M sI S B N - 0 - 9 1 6 4 3 9 - 0 8 - 9 3 5 0 p p . $ 1 9 . 9 5

S C I E N C E / E N G I N E E R I N GO T H C - 6 4i a i n t r o d u c t i o n t t h w o r l d o c o m p u t e r s i s c i e n c eD e s c r i b e s v a r i a b l e t y p e s , c o m p u t a t i o n a l a c c u r a c y ,v a r i o u s s o n a l o g n t h m s T o p i c s i n c l u d e l i n e a r a n n o n l i n e a r r e g r e s s i o n . C H I - s q u a r e d i s t r i b u t i o n , F o u r i e ra n a l y s i s , m a t r i x c a l c u l a t i o n s , m o r e P r o g r a m s f r o mc h e m i s t r y , p h y s i c s , b i o l o g y , a s t r o n o m y a n e l e c t r o n i c sI n c l u d e s m a n y p r o g r a m l i s t i n g sI S B N - 0 - 9 1 6 4 3 9 - 0 9 - 7 2 5 0 p p $ 1 9 . 9 5

C A S S E T T E B O O K F O R T H E C - 6 4( o V i c 2 0 ) c o n t a i n s a l t h i n f o r m a t i o n y o n e e d t k n o w a b o u t u s i n g a n p r o g r a m m i n g t h C o m m o d o r eD a t a s e t t e I n c l u d e s m a n y e x a m p l e p r o g r a m s A l s o c o t a i n s n e o p e r a t i n g s y s t e m f o r f a s t l o a d i n g , s a v i n ga n f i n d i n q o f i l e sI S B N - 0 - 9 1 6 4 3 9 - 0 4 - 6 1 8 0 p p . $ 1 2 . 9 5

D E A L E R I N Q U I R I E S A R I N V I T E DI C A N A D A C O N T A C T :T h e B o o k C e n t r e , 1 1 4 0 B e a u l a c S t r e e tM o n t r e a l . Q u e b e c H 4 R 1 R 8 P h o n e : ( 5 1 4 ) 3 2 2 - 4 1 5 4

A V A I L A B L E A C O M P U T E R S T O R E S , O W R I T E :

A b a c u s I S o f t w a r eP . O . B O 7 2 1 1 G R A N D R A P I D S , M 4 9 5 1 0

E x c l u s i v e U . S . D A T A B E C K E R P u b t l s t w r aF o r p o s t a g e h a n d l i n g , a d $ 4 . 0 0 ( U . S . a n C a n a d a ) . a d d S 6 . 0 0 f o f o r e i g n . M a k e p a y m e n ti U . S . d o l l a r s b c h e c k , m o n e y o r d e r o c h a r g e c a r d . ( M i c h i g a n R e s i d e n t s a d 4 s a l e s t a x . )

F O Q U I C K S E R V I C E P H O N E ( 6 1 6 ) 2 4 1 - 5 5 1 0C o m m o d o r e 6 i r a g . T . M . o C o m m o d o r e B u s m e n M a c h i n e s

Page 286: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 286/290

S E R I O U S 6 S O F T W A R E

A M

P A S C A L - 6 4T h i s f u l l c o m p i l e r p r o d u c e s f a s t 6 5 0 2m a c h i n e c o d e . S u p p o r t s m a j o r d a t a T y p e s :R E A L . I N T E G E R , B O O L E A N . C H A R ,m u l t i p l e d i m e n s i o n a r r a y s . R E C O R D . F I L E .S E a n p o i n t e r . O f f e r s e a s y s t r i n g h a n d li n g , p r o c e d u r e s f o s e q u e n t i a l a n r e l a t i v ed a t a m a n a g e m e n t a n a b i l i t y t w r i t e I T E R R U P T r o u t i n e s P a s c a l ! E x t e n s i o n si n c l u d e d f o h i g h r e s o l u t i o n a n s p r i t eg r a p h i c s . L i n k t A S S E M / M O N m a c h i n el a n g u a g e . D I S K $ 3 9 . 9 5

D A T A M A T - 6 4T h i s p o w e r f u l d a t a b a s e m a n a g e r h a n d l e su t 2 0 0 0 r e c o r d s p e r d i s k . Y o s e l e c t t h s c r e e n f o r m a t u s i n g u t 5 f i e l d s p e r e c o r d . D A T A M A T 6 c a s o r t o m u l t i p l ef i e l d s i a n c o m b i n a t i o n . C o m p l e t e r e p o r tw r i t i n g c a p a b i l i t i e s t a l C O M M O D O R E o A S C I I p r i n t e r s . D | S K $ 3 g A v a i l a b l e N o v e m b e r

T E X T O M A T - 6 4T h i s c o m p l e t e w o r d p r o c e s s o r d i s p l a y s 8 c o l u m n s u s i n g h o r i z o n t a l s c r o l l i n g . I m e m o r y e d i t i n g u t 2 4 . 0 0 0 c h a r a c t e r r sp l u s c h a i n i n g o l o n g e r d o c u m e n t s .C o m p l e t e t e x t f o r m a t t i n g , b l o c k o p e r a t i o n s ,f o r m l e t t e r s , o n - s c r e e n p r o m p t i n g .

A v a i l a b l e N o v e m b e r D I S K $ 3 9 . 9 5

A S S E M B L E RM O N I T O R - 6 4T h i s c o m p l e t e l a n g u a g e d e v e l o p m e n tp a c k a g e f e a t u r e s m a c r o a s s e m b l e r a n e x t e n d e d m o n i t o r . T h e m a c r o a s s e m b l e ro f f e r s f r e e f o r m i n p u t , c o m p l e t e a s s e m b l e rl i s t i n g s w i t h s y m b o l t a b l e ( l a b e l ) , c o n d it i o n a l a s s e m b l y .T h e x t e n d e d m o n i t o r h a a l t h s t a n d a r dc o m m a n d s p l u s s i n g l e s t e p , q u i c k t r a c eb r e a k p o i n t , b a n k s w i t c h i n g a n m o r e .

D I S K $ 3 9 . 9 5

B A S I C - 6 4T h i s i f u l l c o m p i l e r t h a t w o n t b r e a k y o u rb u d g e t . I c o m p a t i b l e w i t h C o m m o d o r e 6 B A S I C . C o m p i l e s t o f a s t m a c h i n e c o d e .P r o t e c t y o u r v a l u a b l e s o u r c e c o d e b c o p i l i n g w i t h B A S I C 6 4 A v a i l a b l e D e c e m b e r

O T H E R N E S O F T W A R E C O M I N G S O O N IA l s o f t w a r e p r o d u c t s f e a t u r e d a b o v eh a v e i n s i d e d i s k s t o r a g e p o c k e t s ,a n h e a v y 3 - r i n g - b i n d e r f o m a x im u d u r a b i l i t y a n e a s y r e f e r e n c e .

D I S K $ 3 9 . 9 5

A D T R A I N I N G C O U R S ET h i s p a c k a g e i a i n t r o d u c t i o n t A D A . t h o f f i c i a l l a n g u a g e o t h D e p a r t m e n t o D e f e n s e a n d t h p r o g r a m m i n g l a n g u a g e o t h f u t u r e . I n c l u d e s e d i t o r , s y n t a xc h e c k e r / c o m p i l e r a n 1 1 p a g e s t e p b s t e p m a n u a l d e s c r i b i n t t h l a n g u a g e .A v a i l a b l e N o v e m b e r

D I S K $ 7 9 . 9 5

D E A L E R I N Q U I R I E S I N V I T E DA V A I L A B L E A C O M P U T E R S T O R E S , O W R I T E :

A b a c u s H S o f t w a r eP . O . B O 7 2 1 1 G R A N D R A P I D S , M 4 9 5 1 0

E x c l u s i v e U . S . D A T A B E C K E R P u b t o h e i *F o p o t t a g e h a n d l i n g , a d $ 4 . 0 0 ( U . S . a n C a n a d a ) , a d $ 6 . 0 0 t o f o r e i g n . M a k a p a y m e n ti U . S . d o l l a r s b c h e c k , m o n e y o r d e r o c h a r g e c a r d . ( M i c h i g a n R e s i d e n t s a d 4 s a l e s t a x . )

F O Q U I C K S E R V I C E P H O N E ( 6 1 6 ) 2 4 1 - 5 5 1 0

C o m m o d o r e 0 r i g . T . M . o C o

Page 287: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 287/290

G E T H M O S T O U T O t i

W I T H A B A C U S S O F T W A R E

X R E F - 6 4 B A S I C C R O S S R E F E R E N C ET h i s t o o l a l l o w s y o t l o c a t e t h o s e h a r d - t o - f i n d v a r i a b l e s i y o u r p r o g r a m s .C r o s s - r e f e r e n c e s a l t o k e n s ( k e y w o r d s ) , v a r i a b l e s a n c o n s t a n t s i s o r t e do r d e r . Y o c a n e v e n a d y o o w t o k e n s f r o m o t h e r s o f t w a r e s u c h a U L T R A B A S I C o V I C T R E E . L i s t i n g s t s c r e e n o a l A S C I I p r i n t e r s .

D I S K $ 1 7 . 9 5S Y N T H Y - 6 4T h i s i r e n o w n e d a t h f i n e s t m u s i c s y n t h e s i z e r s a v a i l a b l e a a n p r i c e .O t h e r s m a h a v e l o o o n s c r e e n f r i l l s , b u S Y N T H Y - 6 4 m a k e s m u s i c b e t t e rt h a n t h e m a l l . N o t h i n g c o m e s c l o s e t t h p e r f o r m a n c e o t h i s p a c k a g eI n c l u d e s m a n u a l w i t h t u t o r i a l , s a m p l e m u s i c

D I S K $ 2 7 . 9 5 T A P E $ 2 4 . 9 5U L T R A B A S I C - 6 4T h i s p a c k a g e a d d s 5 p o w e r f u l c o m m a n d s ( m a n y f o u n d i V I D E O B A S I C ,a b o v e ) H I R E S . M U L T I . D O T . D R A W . C I R C L E . B O X . F I L L . J O Y . T U R T L E .M O V E . T U R N . H A R D . S O U N D . S P R I T E . R O T A T E , m o r e . A l c o m m a n d sa r e a s y t u s e . I n c l u d e s m a n u a l w i t h t w o - p a r t t u t o r i a l a n d e m o .

D I S K $ 2 7 . 9 5 T A P E $ 2 4 . 9 5C H A R T P A K - 6 4T h i s f i n e s t c h a r t i n g p a c k a g e d r a w s p i e . b a a n l i n e c h a r t s a n d g r a p h s f r o my o u r d a t a o D I F . M u l t i p l a n a n B u s i c a l c f i l e s . C h a r t s a r d r a w n i a n o

f o r m a t s . C h a n g e f o r m a t a n b u i l d a n o t h e r c h a r t i m m e d i a t e l y . H a r d c o p yt M P S 8 0 1 , E p s o n . O k i d a t a . P r o w n t e r . I n c l u d e s m a n u a l a n d t u t o r i a l

D I S K $ 4 2 . 9 5C H A R T P L O T - 6 4S a m e a C H A R T P A C K - 6 4 f o h i g h e s t q u a l i t y o u t p u t t m o s t p o p u l a r p e p l o t t e r s . D I S K $ 8 4 . 9 5

D E A L E R I N Q U I R I E S A R I N V I T E D

C A D P A K - 6 4T h i s a d v a n c e d d e s i g n p a c k a g e h a o u t s t a n d i n g f e a t u r e s t w H i r e ss c r e e n s ; d r a w L I N E s . R A Y s . C I R C L E S . B O X E s ; f r e e h a n d D R A W ; F I L L w i t hp a t t e r n s ; C O P Y a r e a s ; S A V E / R E C A L L p i c t u r e s , d e f i n e a n u s i n t r i c a t eO B J E C T S , i n s e r t t e x t o s c r e e n ; U N D O l a s t f u n c t i o n . R e q u i r e s h i g h q u a l i t yl i g h t p e n . W r e c o m m e n d M c P e n . I n c l u d e s m a n u a l w i t h t u t o r i a l .D I S K $ 4 9 . 9 5 M c P e n l i g h t p e n $ 4 9 . 9 5

M A S T E R 6 T h i s p r o f e s s i o n a l a p p l i c a t i o n d e v e l o p m e n t p a c k a g e a d d s 1 0 p o w e r f u lc o m m a n d s t B A S I C i n c l u d i n g f a s t I S A M i n d e x e d f i l e s ; s i m p l i f i e d y e s o p h i s t i c a t e d s c r e e n a n p r i n t e r m a n a g e m e n t ; p r o g r a m m e r ' s a i d ; B A S I C4 . c o m m a n d s ; 2 2 - d i g i t a r i t h m e t i c ; m a c h i n e l a n g u a g e m o n i t o r . R u n t i m ep a c k a g e f o r o y a l t y - f r e e d i s t r i b u t i o n o y o u r p r o g r a m s . I n c l u d e s 1 5 0 p p .m a n u a l .

D I S K $ 3 9 . 9 5V I D E O B A S I C - 6 4T h i s s u p e r b g r a p h i c s a n d s o u n d d e v e l o p m e n t p a c k a g e l e t s y o w r i t e s o f tw a r e f o d i s t r i b u t i o n w i t h o u t r o y a l t i e s . H a h i r e s , m u l t i c o l o r , s p r i t e a n t u r t l e g r a p h i c s ; a u d i o c o m m a n d s f o s i m p l e o c o m p l e x m u s i c a n d s o u n de f f e c t s , t w s i z e s o h a r d c o p y t m o s t d o m a t r i x p r i n t e r s ; g a m e f e a t u r e ss u c h a s p r i t e c o l l i s i o n d e t e c t i o n , l i g h t p e n . g a m e p a d d l e , m e m o r ym a n a g e m e n t f o m u l t i p l e g r a p h i c s s c r e e n s , s c r e e n c o p y , e t c .

D I S K $ 5 9 . 9 5T A S - 6 4 F O S E R I O U S I N V E S T O R ST h i s s o p h i s t i c a t e d c h a r t i n g s y s t e m p l o t s m o r e t h a n 1 t e c h n i c a l i n d i c a t o r so s p l i t s c r e e n , m o v i n g a v e r a g e s ; o s c i l l a t o r s ; t r a d i n g b r a n d s ; l e a s t s q u a r e s ;t r e n d l i n e s , s u p e r i m p o s e g r a p h s ; f i v e v o l u m e i n d i c a t o r s ; r e l a t i v e s t r e n g t h ;v o l u m e s , m o r e O n l i n e d a t a c o l l e c t i o n D J N R / S o W a r n e r . 1 7 5 p p . m a n u a l .T u t o r i a l D I S K $ 6 4 . 9 5

F R E E C A T A L O G A s f o l i s t i n g o o t h e rA b a c u s S o f t w a r e f o C o m m o d o r e - 6 4 l o r V l c - 2 0D I S T R I B U T O R SG r e a t l i t t a l a : l i l i u l m : F r m n :A O A M S O f T I n t e r S a n t o s M I C R O A P P L I C A T I O N1 6 N o r w i c h A v A V G u f l a u m s 3 0 1 4 A v e n u e P a u M J o u n w f f i SR o c h d a l e . L a n e s . B r u s M l 1 1 6 0 , B t l g u l m R u e i M a l m a l s o n . F r a n c e g f f i J j S7 0 6 - 5 2 4 3 0 4 2 4 6 0 - 1 4 4 7 1 7 3 2 - 9 2 5 4 6 3 - 8 8 4 9 6W t t t Q t r m a t y : S w t t f t n : A u s t r a l i a :D A T A B E C K E R T I A L T R A D I N G C E L E C T R O N I C SM t f o w h Q t n t f 3 P 5 1 4 1 6 L o g a n R o a d4 0 0 0 D u s s e l d O f f 3 4 3 0 0 A b n h u l t B r i s b a n e . Q u e e n s0 2 1 1 / 3 1 2 0 8 5 4 7 6 - 1 2 3 0 4 0 7 - 3 9 7 - 0 8 O 6

C o m m o d o r e 6 i r e g . T . M . 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

A V A I L A B L E A C O M P U T E R S T O R E S , O W R I T E :

A b a c u s 1 1 S o f t w a r eP . O . B O 7 2 1 1 G R A N D R A P I D S . M I C H . 4 9 5 1 0F o p o s t a g e h a n d l i n g , a d 1 4 . 0 0 ( U . S . a n C a n a d a ) , a d $ 6 . 0 0f o r f o r e i g n . M a k e p a y m e n t i U . S . d o l l a r s b c h e c k , m o n e y o r d e ro c h a r g e c a r d . ( M i c h i g a n R e s i d e n t s a d 4 s a l e s t a x ) .F O Q U I C K S E R V I C E P H O N E 6 1 6 - 2 4 1 - 5 5 1 0

Page 288: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 288/290

Page 289: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 289/290

Page 290: Tricks and Tips for the Commodore 64

8/6/2019 Tricks and Tips for the Commodore 64

http://slidepdf.com/reader/full/tricks-and-tips-for-the-commodore-64 290/290