commodore 128 book 3 tips and tricks

322

Upload: cubemanpdx

Post on 08-Apr-2018

223 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 1/322

Page 2: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 2/322

Page 3: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 3/322

T r i c k s a e T i p sf o t h

C - 1 2 8B T o b i a s W e l t n e r , R a l f H o m i g a n J e n s T r a p p

D a t a B e c k e r B o o k

P u b l i s h e d b y

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

Page 4: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 4/322

F i r s t E d i t i o n , N o v e m b e r , 1 9 8 5P r i n t e d i U . S . A .C o p y r i g h t 1 9 8 5 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 e s t G e r m a n y

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

T h i s b o o k i c o p y r i g h t e d . N p a r t o t h i s b o o k 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 r t r a n s m i t t e d i a n f o r m o b a n y m e a n s ,e l e c t r o n i c , m e c h a n i c a l , p h o t o 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 r w 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 o D a t a B e c k e r , G m b H .

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

Page 5: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 5/322

T A B L E O C O N T E N T S

1 G r a p h i c s o t h C o m m o d o r e 1 2 1 . S w i t c h i n g 4 0 / 8 0 C o l u m n s1 . T h 4 0 - C h a r a c t e r s c r e e n1 . T h 4 0 - C o l u m n C h a r a c t e r G e n e r a t o r

1 . 3 . 1 C h a n g i n g t h C h a r a c t e r S e 1 1 . 3 . 2 C h a r a c t e r E d i t o r 1

1 . M o v i n g S c r e e n M e m o r y 1 1 . 4 . 1 W o r k i n g w i t h S e v e r a l S c r e e n s 1

1 . T h 8 0 - C o l u m n S c r e e n 1 61 . S c r e e n a n C o l o r R A 1 1 . R e g i s t e r s o t h 8 0 - C o l u m n C o n t r o l l e r 1 1 . T h V i d e o D i s p l a y C o n t r o l l e r ( V D C ) 1 1 . 9 P r a c t i c a l V i d e o R A A c c e s s 2 1 . 1 0 P o k e S i m u l a t i o n 2 1 . 1 1 T h C h a r a c t e r G e n e r a t o r 2 1 . 1 2 R e a d i n g t h C h a r a c t e r G e n e r a t o r 2 1 . 1 3 B i S c r i p t w i t h S t r i n g s 2 1 . 1 4 P r i n t i n g B a n n e r s a H o m e 2 1 . 1 5 D e f i n i n g Y o u r O w C h a r a c t e r S e t 3 1 . 1 6 8 C o l u m n C h a r a c t e r E d i t o r 3 1 . 1 7 W o r k i n g w i t h M u l t i p l e S c r e e n s 3 1 . 1 8 M a n i p u l a t i n g t h V D 8 5 6 3 4 1 . 1 9 M a n i p u l a t i n g S c r e e n F o r m a t 4 1 . 2 0 F o M o n o c h r o m e M o n i t o r s O w n e r s 4 1 . 2 1 T h 8 X 1 6 C h a r a c t e r M a t r i x 4 1 . 2 2 T o t a l 1 6 X 8 M a t r i x M a n i p u l a t i o n 4 1 . 2 3 D o u b l e - h e i g h t C h a r a c t e r s 4 1 . 2 4 M o v i n g t h V i d e o R A 5 1 . 2 5 C o l o r f o t h 8 0 - C o l u m n S c r e e n 5 1 . 2 6 C u s t o m C h a r a c t e r E d i t o r 5 1 . 2 7 S y s t e m R o u t i n e s 6 1 . 2 8 H i g h - r e s o l u t i o n G r a p h i c s 6 1 . 2 9 C h a r a c t e r G e n e r a t o r s A g a i n 6

2 B A S I C 7 . G r a p h i c s C o m m a n d s 6 2 . T h C i r c l e C o m m a n d 7 2 . P i e C h a r t s 7 2 . B a G r a p h s 7 52 . F u n c t i o n P l o t t e r 7

Page 6: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 6/322

2 . W i n d o w s 7 2 . 5 . 1 H o t d W i n d o w s 7 2 . 5 . 2 R e a d i n g W i n d o w C o o r d i n a t e s 7 2 . 5 . 3 S e t t i n g u A l t e r n a t e W i n d o w s 7 2 . 5 . 4 V e r t i c a l S c r o l l i n g 8 2 . 5 . 5 T h W i n d o w a a I n p u t L i n e 8 12 . 5 . 6 P R I N T A w i t h W i n d o w s 8 2 . 5 . 7 C l e a r i n g P a r t i a l S c r e e n 8 2 . 5 . 8 S e c u r i n g W i n d o w C o n t e n t s 8 2 . 5 . 9 S i m u l a t i n g S e v e r a l W i n d o w s 8

2 . S p r i t e H a n d l i n g 9 2 . 6 . 1 D e s i g n i L i s t i n g 9 2 . 6 . 2 C o m f o r t a b l e S p r i t e E d i t i n g 9

9 1 0 1 0 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 3

1 3 1 3 1 3 1 3 1 4 1 4 1 4 1 4 1 4 1 4 1 4

3 3 . 3 . 3 . 3 . 3 . 3 . 3 . 3 . 3 . 3 . 1 0

4 4 . 4 . 4 . 4 . 4 .

4 . 4 .

U s e f u l P r o g r a m sE r r o r H a n d l i n gL i s t e r L i s t i n g U t i l i t yO L

L i t t l e M u s i c o t h S i d e . . .R e a l - t i m e C l o c k o t h C - 1 2 8A n a l o g C l o c kL L I S TD o - i t - y o u r s e l f W o r d P r o c e s s i n gM o d i f i e d I N P U TW a r n i n g T o n e

S o f t w a r e P r o t e c t i o n o t h C - 1 2 8P r o t e c t i o n w i t h C o l o n sL i n e N u m b e r R o u l e t t eM a n i p u l a t i n g L i n e - l i n k sC r e a t i v e C o n t r o l C h a r a c t e r s : M a k i n g G r e m l i n sP r o t e c t i o n w i t h P O K E S4 . 5 . 1 L I S T D i s a b l i n g4 . 5 . 2 D i s a b l i n g R U N - S T O P / R E S T O R E4 . 5 . 3 D i s a b l i n g S A V ED i s k C o p y P r o t e c t i o nL O A D " $ "

Page 7: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 7/322

5 5 . 5 . 5 .

6 6 . 6 . 6 . 6 . 6 . 6 .

7 7 . 7 . 7 . 7 . 7 .

7 . 7 . 7 . 7 .

8 8 . 8 . 8 . 8 .

S e l f M o d i f y i n g P r o g r a m sL i n e I n s e r t i o nF o r m u l a E n t r yD A T A S t a t e m e n t G e n e r a t o r

T h e D A T A S E T T ES o f t w a r e C o n t r o l f o r t h e D A T A S E T T ER e a d i n g T a p e K e y sD o i n g U n u s u a l t h i n g s w i t h t h D D A n o t h e r C o p y P r o t e c t i o n S c h e m e" L O F T T h D A T A S E T T E a M u s i c B o S a v i n g t C a s s e t t e - - S o r t o

T h K e y b o a r dK e y b o a r d A s s i g n m e n tC h a n g i n g K e A s s i g n m e n t sH E X - K e y b o a r d f o t h C - 1 2 8S H I F T , C = A L K e A s s i g n m e n t sT h A u x i l i a r y K e y s7 . 5 . 1 U s i n g t h A u x i l i a r y K e y sE i g h t A d d i t i o n a l F u n c t i o n K e y sK e y b o a r d B e e pP r o g r a m P a u s eH E L P R U N / S T O P K E A s s i g n m e n t

C o m m a n d E x t e n s i o n sW h a t i t h C H R G E T R o u t i n e ?C h a n g i n g t h C H R G E T R o u t i n eT h " B e h a v i o u r " o t h N e C o m m a n d sS e v e r a l A d d i t i o n a l C o m m a n d s

1 4 1 4 1 5 1 5

1 5 1 5 1 5 1 5 1 6 1 6 1 6

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

1 9 1 9 1 9 2 0 2 0

Page 8: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 8/322

9 B a n k i n g 2 0 9 . T h e o r e t i c a l B a s i c s 2 1 9 . B a n k i n g w i t h t h C - 1 2 8 2 1 9 . S w i t c h i n g t h B a n k s w i t h t h M M 2 1

1 0 A u t o s t a r t 2 1 1 0 . 1 A u t o s t a r t f r o m t h D I S K D R I V E 2 1

1 0 . 1 . 1 T h B O O T - C A L L R o u t i n e 2 2 1 0 . 1 . 2 U s i n g t h B O O T - C A L L 2 3

1 0 . 2 A u t o s t a r t b C a r t r i d g e 2 3

1 1 C - 1 2 8 M e m o r y 2 4 1 1 . 1 I m p o r t a n t A d d r e s s e s 2 4 1 1 . 2 J u m p T a b l e 2 6

1 1 . 2 . 1 K E R N A L 2 6 1 1 2 . 2 V e c t o r - L o a d - T a b l e 2 7 1 1 . 2 . 3 K E R N A L C a l l s 2 7

1 1 . 3 F r e e M e m o r y 2 8 1 1 . 3 . 1 F r e e Z e r o P a g e M e m o r y 2 8 1 1 . 3 . 2 M e m o r y f o M a c h i n e L a n g u a g e 2 8

1 2 C h a n g i n g t h O p e r a t i n g S y s t e m 2 8

1 3 T h C - 6 4 M o d e o t h C o m m o d o r e 1 2 2 8 1 3 . 1 H i g h - s p e e d o t h C - 6 4 2 9

1 3 . 1 . 1 R e g i s t e r 4 8 P r o c e s s o r C l o c k 2 9 1 3 . 2 8 0 - C o l u m n C o n t r o l l e r A c c e s s 2 9 1 3 . 3 D e c i m a l K e y p a d o t h C - 6 4 2 9

1 4 T o k e n T a b l e 2 9

Page 9: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 9/322

F O R E W O R D

W e ' v e w r i t t e n t h i s b o o k f o e v e r y C o m m o d o r e 1 2 o w n e r w h w a n t s t m a k e b e t t e r u s e o f h i o h e m a c h i n e . W h e t h e r y o w a n t t o c r e a t e y o u ro w c h a r a c t e r s e t , u s t h h i g h e r c o m p u t i n g s p e e d ( C - 1 2 8 F A S T m o d e ) i y o u r C - 6 4 p r o g r a m s , o u s t h R O r o u t i n e s , y o u ' l l f i n d t h i s b o o k f u l l o p r a c t i c a l i n f o r m a t i o n . S o m e o t h t o p i c s c o v e r e d i t h i s b o o k i n c l u d e :B a n k i n g a n m e m o r y c o n f i g u r a t i o n s ; V T C - I X c h i p r e g i s t e r s ; w i n d o w s ;m u l t i t a s k i n g ; c o m m a n d e x t e n s i o n s ; i m p o r t a n t m e m o r y l o c a t i o n s ; a n m a n y ,m a n y s a m p l e p r o g r a m s .

W e ' v e t e s t e d a n d e b u g g e d a l o t h B A S I C p r o g r a m s , a w e l l a t h B A S I C l o a d e r s t h a t m a t c h t h m a c h i n e l a n g u a g e l i s t i n g s . A o p t i o n a lc o m p a n i o n d i s k i a v a i l a b l e c o n t a i n i n g a l o t h p r o g r a m s i t h i s b o o k . S e t h o r d e r i n g i n s t r u c t i o n s a t h e n o t h i s b o o k f o d e t a i l s . W u s e dm o d i f i e d v e r s i o n o t h L I S T I N G C O N V E R T E R p r o g r a m ( f o u n d i c h a p t e r3 t t r a n s f e r t h p r o g r a m l i s t i n g s f r o m t h C - 1 2 8 t t h c o m p u t e r t h i s b o o kw a e d i t e d w i t h . T h e r e s h o u l d b n e r r o r s a s f a r a s t h e l i s t i n g s t h e m s e l v e sa r c o n c e r n e d . T h t e x t p r o p e r w i l l d e s c r i b e t h o p e r a t i o n o t h p r o g r a m s .B e f o r e w g i n t o t h d e p t h s o t h C - 1 2 8 , w e ' l l j u s t r e m i n d y o o M u r p h y ' s L a w s o P r o g r a m m i n g * :

1 O n c e r u n n i n g v e r s i o n o p r o g r a m i r e a d y , i t ' s a l r e a d yo b s o l e t e .

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

i w a w r i t t e n t h a t w a o n o 6 T h v a l u e o p r o g r a m i p r o p o r t i o n a t e t t h t i m e t a k e n i

m a s s - p r o d u c i n g i t

Page 10: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 10/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

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

H a v e f u n .

T h A u t h o r sR i n t e l n , G e r m a n y , A u g u s t 1 9 8 5

* S o u r c e : A B l o c h , " W h y W h a t C a G W r o n g , W I L L " , G o l d m a n , 1 9 7 7

Page 11: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 11/322

Page 12: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 12/322

Page 13: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 13/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

G R A P H I C S O T H C O M M O D O R E 1 2

G r a p h i c s a r a i n t r i g u i n g s u b j e c t , p a r t i c u l a r l y w h e n w e ' r e t a l k i n g a b o u th i g h - r e s o l u t i o n g r a p h i c s ( a o p p o s e d t t h g r a p h i c s y m b o l s b u i l t i n t o t h C - 1 2 8 c h a r a c t e r s e t ) . F o t h o s e w h w e r e s t o p p e d f r o m w r i t i n gp r o f e s s i o n a l s o f t w a r e f o t h C o m m o d o r e 6 b e c a u s e o i t 4 0 - c o l u m ns c r e e n , t h i s n e m a c h i n e o f f e r s a n o t h e r p o s s i b i l i t y . I f y o l o o k o t h b a c ko t h c o m p u t e r , y o u ' l l s e t w j a c k s m a r k e d R a n V I D E O ; t h e s e a l l o wy o t c o n n e c t t h C - 1 2 8 t t e l e v i s i o n s e ( R F ) a n c o m p o s i t e m o n i t o r( s u c h a t h C o m m o d o r e 1 7 0 1 ) . T h e s e t w j a c k s g i v e y o u 4 0 c o l u m n s , a w i t h t h C - 6 4 , b u t h 1 2 h a o n m o r e j a c k a i n t e r f a c e m a r k e d R G B !A R G m o n i t o r ( R e d G r e e n B l u e ) i m u c h m o r e e x p e n s i v e w h e nc o m p a r e d t o s a y , t h 1 7 0 1 , b u t w i t h t h R G m o n i t o r y o g e b e t t e rp i c t u r e q u a l i t y , h i g h e r r e s o l u t i o n a n d , m o s t i m p o r t a n t l y , a 8 0 - c o l u m ns c r e e n .

T h n e x t f e p a g e s d i s c u s s e x a c t l y w h a t c a b d o n e w i t h t h g r a p h i c ss c r e e n . N u m e r o u s s a m p l e p r o g r a m s i l l u s t r a t e t h e s e d i s c u s s i o n s .R e m e m b e r t h a t o n m a j o r d i f f e r e n c e e x i s t s b e t w e e n t h C - 6 4 a n C - 1 2 8g r a p h i c s : t h C - 1 2 8 a l l o w s t w c o m p l e t e l y i n d e p e n d e n t s c r e e n s , w h i c hw e ' l l d i s c u s s n e x t .

Page 14: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 14/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . S W I T C H I N G : 4 0 / 8 0 C O L U M N S

B e f o r e g o i n g i n t o a n d e t a i l , w s h o u l d t a k e l o o k a s w i t c h i n g b e t w e e n t h 4 0 - c o l u m n a n d 8 0 - c o l u m n s c r e e n s . T h s e t t i n g o t h 4 0 / 8 0 D I S P L A Y k e o t h u p p e r s e c t i o n o t h k e y b o a r d d e t e r m i n e s t h s c r e e n m o d e w h e np o w e r e d o n A f t e r p o w e r - u p , t h s w i t c h i i n o p e r a t i v e u n l e s s t h r e s e tb u t t o n i p r e s s e d . T s w i t c h m o d e s w i t h i n p r o g r a m u s t h f o l l o w i n gc o m m a n d s :

E S C + X ( s w i t c h e s d i r e c t m o d e o n P R I N T C H R $ ( 2 7 ) + " X " ( s w i t c h e s m o d e o u t s i d e p r o g r a m )S Y 4 9 1 9 4 ( w o r k s l i k e t h s w i t c h i n g f r o m B A S I C ,

b u a l s o w o r k s i m a c h i n e l a n g u a g e )

1 . T H 4 0 - C H A R A C T E R S C R E E N

T h 4 0 c o l u m n s c r e e n i c o n t r o l l e d b t h V I 8 5 6 4 c h i p . T h V I 8 5 6 4 i s i m i l a r t t h V I 6 5 6 4 c h i p i t h 6 4 b u i c o n t a i n s a a d d i t i o n a l t w r e g i s t e r s ( m o r e o t h i s l a t e r ) . W h e n u s i n g t h 4 c o l u m n m o d e , t h s c r e e nc a b d i s p l a y e d o e i t h e r t e l e v i s i o n o c o m p o s i t e m o n i t o r , b u t N O o a R G m o n i t o r .

V i d e o R A a n c o l o r m e m o r y u s t h s a m e m e m o r y r a n g e s a t h o s e i t h 6 4

Page 15: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 15/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

S C R E E N R A $ 0 4 0 0 $ 0 7 F F ( d e c i m a l 1 0 2 4 2 0 2 3 )C O L O R R A $ D 8 0 0 $ D B F F ( d e c i m a l 5 5 2 9 6 - 5 6 2 9 5 )

B o t h r a n g e s a r i n o r m a l a d d r e s s s p a c e , a n c a n b e m a n i p u l a t e d u s i n gP E E K a n P O K E :

1 F O A = 0 T O 2 5 2 P O K E 1 0 2 4 + A , A3 N E X T4 5 F O A = T 2 5 6 X = I N T ( R N D ( 1 ) * 1 6 ) : R E M R A N D O M N U M B E R ( C O L O R )7 P O K E 5 5 2 9 6 + A , X8 N E X T

T h s t a t e m e n t :

P O K E 1 0 2 4 + c o l u m n + ( 4 0 * l i n e ) , 0 - 2 5 5

p u t s c h a r a c t e r o n t o f o r t y - c o l u m n s c r e e n ; w h i l e t h e s t a t e m e n t :

P O K E 5 5 2 9 6 + c o l u m n + ( 4 0 * l i n e ) 0 - 1 5

p u t s c o l o r i n t o t h m a t c h i n g m e m o r y l o c a t i o n . I e i t h e r s t a t e m e n t ,c o l u m n c a r a n g e i v a l u e f r o m t 3 a n l i n e c a r a n g e f r o m 0 t 2 4

A i t h C - 6 4 , s c r e e n m e m o r y c a b m o v e d i I s t e p s , b u t c o l o rm e m o r y i n o r e l o c a t a b l e .

Page 16: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 16/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . T H 4 0 - C O L U M N C H A R A C T E R G E N E R A T O R

T h a c t u a l d e s i g n o f c h a r a c t e r i s t o r e d i R O k n o w n a t h c h a r a c t e rg e n e r a t o r . T h c h a r a c t e r g e n e r a t o r i f o u n d i m e m o r y a $ D 0 0 0 t $ D F F F .Y o c a n ' 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 b n o r m a l m e a n s , s i n c e i l i e s i R O M , a n y o c a n ' t w r i t e t i a a l l .

T h i n t e r n a l d i v i s i o n s o t h e c h a r a c t e r g e n e r a t o r l o o k l i k e t h i s :

C H A R A C T E R S E ( U P P E R C A S E a n B L O C K G R A P H I C S )

$ D 0 0 0 $ D F U p p e r c a s e l e t t e r s$ D 2 0 0 $ D 3 F F B l o c k c h a r a c t e r s$ D 4 0 0 $ D 5 F F R e v e r s e u p p e r c a s e l e t t e r s$ D 6 0 0 $ D 7 F F R e v e r s e b l o c k g r a p h i c s

C H A R A C T E R S E ( U P P E R C A S E a n L O W E R C A S E )

$ D 8 0 0 $ D 9 F F L o w e r c a s e l e t t e r s$ D A 0 0 $ D B F F U p p e r c a s e l e t t e r s$ D C 0 0 $ D D F F L o w e r c a s e r e v e r s e d$ D E 0 0 $ D F F F U p p e r c a s e r e v e r s e d

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

Page 17: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 17/322

Page 18: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 18/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 R E C O P Y C H A R G E N $ D 0 0 0 T $ 2 0 0 02 B A N K 1 R E R E A D O U T C H A R G E N3 F O X = 0 T O 4 0 9 54 P O K E D E C ( " 2 0 0 0 " ) + X , P E E K ( D E C ( " D 0 0 0 " ) + X )5 N E X T6 B A N K 1 R E N O R M A L C O N F I G .

H e r e ' s w h e r e w s e h o s l o w B A S I C i s t h e n t i r e p r o c e d u r e t a k e s m o r et h a n m i n u t e ! T h p r o g r a m m o v e s t h c h a r a c t e r g e n e r a t o r f r o m R O t t h R A a r e a n e a r t h s t a r t o B A S I C .

N o t h c h a r a c t e r g e n e r a t o r i i R A M . W k n o w t h i s , b u t h c o m p u t e rd o e s n ' t ; y o u ' l l h a v e t t e l l t h c o m p u t e r t u s t h c o p i e d c h a r a c t e r s e ( 6 f a n s w i l l n o t e t h a t t h a d d r e s s 5 3 2 7 2 i t h s a m e ) . T h m e m o r y c o n t e n t s o t h i s l o c a t i o n d e t e r m i n e s t h s t a r t i n g a d d r e s s e s o t h e c h a r a c t e r g e n e r a t o r a n s c r e e n R A M . W e l l s k i p t h l a t t e r f o r t h e m o m e n t , a n h a v e l o o k a t h c h a r a c t e r g e n e r a t o r i t s e l f . H e r e ' s a o v e r v i e w o p o s s i b l e s t a r t i n gc o m b i n a t i o n s :S C R E E N M E M O R YO O O O x x x xO O O l x x x xO O l O x x x xO O l l x x x xO l O O x x x xO l O l x x x xO l l O x x x xO l l l x x x xl O O O x x x xl O O l x x x xI O I O x x x xl O l l x x x xH O O x x x xH O l x x x xl l l O x x x xl l l l x x x x

1 0 2 42 0 4 83 0 7 24 0 9 65 1 2 06 1 4 47 1 6 88 1 9 29 2 1 6

1 0 2 4 01 1 2 6 41 2 2 8 81 3 3 1 21 4 3 3 61 5 3 6 0

C H A R A C T E R S E x x x x O O O xx x x x O O l xx x x x O l O xx x x x O l l xx x x x l O O xx x x x l O l xx x x x l l O xx x x x l l l x

2 0 4 84 0 9 66 1 4 48 1 9 2

1 0 2 4 01 2 2 8 81 4 3 3 6

Page 19: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 19/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h c h a r a c t e r s e c a b m o v e d i 2 i n c r e m e n t s . T h i s h a s t w d i s a d v a n t a g e s : F i r s t , t h e c h a r a c t e r s e c a o n l y b m o v e d w i t h i n t h f i r s t1 6 o m e m o r y . S e c o n d , t h n o r m a l R O c h a r a c t e r s e i l o c a t e d a 6 1 4 4 ,b u t h a t ' s n o r m a l B A S I C R A M . H o c a t h a t b e

T h V I c h i p c a n o n l y a d d r e s s 1 6 K , w h i c h i t h i s c a s e i t h f i r s t 1 6 o m e m o r y . T h a d d r e s s 6 1 4 4 r e p r e s e n t s t h e o f f s e t w i t h i n t h i s 1 6 b l o c k .W c a d e t e r m i n e w h i c h 1 6 b l o c k i i n v o l v e d b c h a n g i n g t h e c o n t e n t s o a d d r e s s 5 6 5 7 6 :1 6 r a n g e :

$ 0 0 0 0$ 4 0 0 0$ 8 0 0 0$ C 0 0 0

$ 3 F F F$ 7 F F F$ B F F F$ F F F F

1 6 3 8 43 2 7 6 84 9 1 5 2

1 6 3 8 33 2 7 6 74 9 1 5 16 5 5 3 5

P O K EP O K EP O K EP O K E

5 6 5 7 6 , 1 9 95 6 5 7 6 , 1 9 85 6 5 7 6 , 1 9 75 6 5 7 6 , 1 9 6

W h e n t h l a s t 1 6 b l o c k ( $ C 0 0 0 - $ F F F F ) i u s e d ( d e f a u l t ) , t h c h a r a c t e rg e n e r a t o r r e s i d e s a 4 9 1 5 2 4 0 9 6 5 3 2 4 8 ( $ D 0 0 0 ) . I y o c h e c k t h f i r s tt a b l e , y o u ' l l s e t h a t t h n o r m a l c h a r a c t e r s e ( u p p e r c a s e / g r a p h i c s ) b e g i n s a $ D 0 0 0 . T h f i r s t t w b i t s i 5 6 5 7 6 r e p r e s e n t a d d r e s s b i t s 1 a n 1 o t h c h a r a c t e r g e n e r a t o r .

K e e p i m i n d t h a t t h s c r e e n m e m o r y i a l s o m o v e d i 1 6 s t e p s . T h h i g hb y t e o f s c r e e n R A h a t b m o v e d :

P O K E 2 6 1 9 , 4 + X * 6 4

X = 0 - 3 ( m a t c h e s 1 b a n k s 0 - 3 )

Page 20: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 20/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T l e t h c o m p u t e r k n o w t h a t t h n e c h a r a c t e r s e i a $ 2 0 0 0 , y o u ' l l h a v et c h a n g e t h c o n t e n t s o f 5 3 2 7 2 ; h e r e w f i n d s u b s t a n t i a l d i f f e r e n c eb e t w e e n t h C - 1 2 8 a n t h C - 6 4 . W h e r e t h C - 6 4 r e q u i r e d o n l y a s i m p l eP O K E , h e r e w d o n ' t h a v e t h a t l u x u r y w h a t y o u P O K E w i l l b r e s e t b t h C - 1 2 8 o p e r a t i n g s y s t e m . S o , t g e a r o u n d t h i s , w e ' l l h a v e t d e a l w i t h

b y t e i z e r o - p a g e m e m o r y :

$ 0 A 2 C ( 2 6 0 4 ) V I T E X T S C R E E N / C H A R B A S E P O I N T E R

T h i s l o o k s m o r e c o m p l i c a t e d t h a n i a c t u a l l y i s P O K E i n g i n t o 5 3 2 7 2 o t h C - 6 4 i e q u i v a l e n t t P O K E i n g i n t o 2 6 0 4 o n t h C - 1 2 8 . T h c o n t e n t s o t h i s a d d r e s s a u t o m a t i c a l l y w r i t e s t o 5 3 2 7 2 .

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

P O K E 2 6 0 4 , P E E K ( 2 6 0 4 ) A N D N O T 2 + 4 + 8 O

I o t h e r w o r d s , b i t s t ( c o n t r o l l i n g t h p o s i t i o n o t h c h a r a c t e rg e n e r a t o r ) a r c l e a r e d , a n b i i s s e t . S o , a d d r e s s 5 3 2 7 2 g i v e s u t h e s ec o n t e n t s : x x x x l O O x

T h i s s t a t e m e n t s e t s t h n e c h a r a c t e r g e n e r a t o r a 8 1 9 2 . B e a r i m i n d t h a ta l w e ' v e d o n e i m o v e t h c h a r a c t e r s e a r o u n d ; t h p r o c e d u r e i s n ' tf i n i s h e d . N o t i c e h o o d t h e c h a r a c t e r s l o o k o t h s c r e e n .

1

Page 21: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 21/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . 3 . 1 C H A N G I N G T H E C H A R A C T E R S E

N o w , t y p e i t h f o l l o w i n g B A S I C p r o g r a m :1 R E S I G N T O S Q U A R E2 F O T 7 R E B Y T E S P E R C H A R A C T E R3 R E A D C 4 P O K E 8 1 9 2 + 0 * 8 + X , C 05 N E X T6 D A T A 2 5 5 , 1 2 9 , 1 2 9 , 1 2 9 , 1 2 9 , 1 2 9 , 1 2 9 , 2 5 5

T h s i g n c h a n g e s b e f o r e o u r e y e s t s q u a r e ( s e e " D e f i n i n g y o u r O w C h a r a c t e r s " i t h 8 0 - c o l u m n s e c t i o n f o m o r e i n f o r m a t i o n ) .

1 . 3 . 2 4 0 - C O L U M N C H A R A C T E R E D I T O R

F o r t u n a t e l y , y o d o n ' t n e e d t d e s i g n y o u r n e 4 0 - c o l u m n c h a r a c t e r s e b h a n d : W i t h f e s m a l l c h a n g e s , y o c a u s t h 8 0 - c o l u m n c h a r a c t e re d i t o r ( C h a p t e r 1 . 1 6 . 1 ) . F i r s t m o v e t h s t a r t o B A S I C t p r o t e c t y o u rc h a r a c t e r s e f r o m o v e r w r i t i n g y o u r B A S I C p r o g r a m . I d i r e c t m o d e , e n t e r :

P O K E 4 6 , 5 8 : P O K E 1 4 8 4 8 , 0 ; N E W

T h e n c h a n g e t h f o l l o w i n g l i n e s o t h 8 0 - c o l u m n c h a r a c t e r e d i t o r :

4 0 0 O B A N K 1 4 0 1 0 F O T 4 0 9 64 0 2 0 P O K E D E C ( " 2 0 0 0 " ) + X , P E E K ( D E C ( " D 0 0 0 " ) = X )4 0 3 0 N E X T4 0 5 0 P O K E 2 6 1 9 , 4

1

Page 22: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 22/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

4 0 6 0 P O K E 5 6 7 6 , 1 9 94 0 7 0 P O K E 2 6 0 4 , P E E K ( 2 6 0 4 ) A N N O 2 + 4 + 8 O 4 0 8 0 B A N K 1 5 0 0 5 5 0 4 5 D E L E T E5 0 6 5 A D = 8 1 9 2 + 8 * A + Y5 0 7 0 P O K E A D , W5 0 7 5 D E L E T E

E d i t t h c h a r a c t e r s , t h e n e x i t t h p r o g r a m a n d R U 4 0 0 0 0 t e n a b l e y o u rc u s t o m c h a r a c t e r s e

1 . M O V I N G S C R E E N M E M O R Y

S c r e e n m e m o r y n o r m a l l y r e s i d e s i $ 0 4 0 0 $ 0 7 F F ( 1 0 2 4 2 0 2 3 ) , b u i c a n b e r e l o c a t e d . R e m e m b e r t h e s e t w a d d r e s s e s :

6 0 V I T E X T S C R E E N / C H A R B A S E P O I N T E R2 6 1 9 V I C T E X T S C R E E N B A S E

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

1

Page 23: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 23/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . 4 . 1 W O R K I N G W I T H S E V E R A L S C R E E N S

A t h t i t l e s u g g e s t s , y o h a v e t h o p t i o n o u s i n g s e v e r a l s c r e e n s a o n c e( c a l l e d " p a g e - f l i p p i n g " ) i 4 0 - c o l u m n m o d e . W e ' l l i l l u s t r a t e t h i s u s i n g t h r e es c r e e n s . S i n c e t h e s e t h r e e s c r e e n s w i l l u s p a r t o n o r m a l B A S I C m e m o r y ,y o u m u s t m o v e t h s t a r t o B A S I C s t h a t y o u r p r o g r a m s d o n ' t o v e r w r i t et h n e s c r e e n m e m o r y . I d i r e c t m o d e , e n t e r t h e f o l l o w i n g s t a t e m e n t s :

P O K E 4 6 , 4 0 : P O K E 1 0 2 4 0 , 0 : N E

T h f o l l o w i n g B A S I C p r o g r a m P O K 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 n t om e m o r y w h i c h c a b u s e d t " p a g e f l i p " b e t w e e n t h r e e s c r e e n s b u s i n gt h < F 1 > , < F 3 > , a n d < F 5 > k e y s .2 0 0 0 F O R X = 4 8 6 4 T 4 9 5 02 0 1 0 R E A D C S = C S + A : P O K E X , 2 0 2 0 N E X T2 0 3 0 I C < 7 8 5 7 T H E N P R I N T C H R $ ( 7 ) ; L I S T2 0 4 0 D A T A 1 2 0 , 1 6 9 , 2 4 , 1 4 1 , 2 0 , 3 , 1 6 9 , 1 9 , 1 4 1 , 2 1 , 3 ,

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

1 6 6 , 2 1 3 , 2 2 4 , 4 , 2 0 82 0 6 0 D A T A 1 3 , 1 6 9 , 2 0 , 1 4 1 , 4 4 , 1 0 , 1 6 9 , 4 , 1 4 1 , 5 9 ,

1 0 , 7 6 , 8 0 , 1 9 , 2 2 4 , 52 0 7 0 D A T A 2 0 8 , 1 3 , 1 6 9 , 1 3 2 , 1 4 1 , 4 4 , i p , 1 6 9 , 3 2 ,

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

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

H e r e ' s a l i s t i n g o 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 h a t i P O K E d i n t om e m o r y b t h a b o v e B A S I C p r o g r a m :

1

Page 24: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 24/322

A b a c u s

1 3 0 01 3 0 11 3 0 31 3 0 61 3 0 81 3 0 B1 3 0 D1 3 1 01 3 1 31 3 1 61 3 1 7

S o f t w a r e

7 A 8 A 8 A 8 8 8 5 6

N E I R Q :

1 3 1 81 3 1 91 3 1 A1 3 1 B1 3 1 D1 3 1 F1 3 2 11 3 2 31 3 2 61 3 2 81 3 2 B1 3 2 E1 3 3 01 3 3 21 3 3 41 3 3 71 3 3 91 3 3 C1 3 3 F1 3 4 11 3 4 31 3 4 51 3 4 81 3 4 A1 3 4 D1 3 5 01 3 5 11 3 5 21 3 5 3

4 8 4 A E D A 8 A 8 4 E D A 8 A 8 4 E D A 8 A 8 4 6 A 6 4

1 1 1 1 0 0 0 0

D 0 O 1 2 0 3 5 0 O 8 2 2 3 5 0 O 9 2 2 3 5

6

0 0

1 1 1

O O 1

O O 1

O O 1

F

S E L D S T L D S T L D S T S T S T C L R T

P H T X P H L D C P B N L D S T L D S T J M C P B N L D S T L D S T J M C P B N L D S T L D S T J M P L T A P L J M

# $ 1 8$ 0 3 1 4# $ 1 3$ 0 3 1 5# $ 0 0$ 1 0 0 0$ 1 0 0 2$ 1 0 0 4

$ D # $ 0 4$ 1 3 2 E# $ 1 4$ 0 A 2 C# $ 0 4$ 0 A 3 B$ 1 3 5 0# $ 0 5$ 1 3 3 F# $ 8 4$ 0 A 2 C# $ 2 0# $ 0 A 3 B$ 1 3 5 0# $ 0 6$ 1 3 5 0# $ 9 4# $ 0 A 2 C# $ 2 4$ 0 A 3 B$ 1 3 5 0

$ F A 6 5

T r i c k s a n T i p s f o t h C - 1 2 8

: i n t e r r u p t o f f: l o w - b y t e o f n e I R : s t o r e l o w - b y t e: h i g h - b y t e o n e I R s t o r e i : L e n g t h o f u n c t i o n k e y s: F o : F o : F o : i n t e r r u p t a g a i n p e r m i t t e d: b a c k t B A S I C

: p u t a c c u: a n d X - r e g: o s t a c k: l o a d w p r e s s e d k e m o t h e n r e a d n e x t: n e w s t a r t i n g a d d r e s sr a n d s e t: n e w s c r e e n a $ 0 4 0 0: a n d s e t i : e n d F l: F 3 ?: n o , t h e n r e a d n e x t: n e w s t a r t i n g a d d r e s sr a n d s e tm e s c r e e n a $ 2 0 0 0r a n d s e tr e n d F r F 5 ?m o t h e n r e a d ym e s t a r t i n g a d d r e s sr a n d s e tm e s c r e e n a $ 2 4 0 0r a n d s e tr e n d F 5r P u t b a c k o l dr X - r e g a n r a c c u m u l a t o r v a l u e s ,r a n d r e t u r n n o r m a l I R

1

Page 25: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 25/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h p r i n c i p l e i t h s a m e f o 8 0 - c o l u m n m o d e ( s e e C h a p t e r 1 . 1 7 ) .

A f t e r R U N n i n g t h p r o g r a m , y o h a v e y o u r c h o i c e o t h r e e i n d e p e n d e n ts c r e e n p a g e s , c a l l e d b F l F a n F 5 T h e s e s c r e e n s w i l l i n i t i a l l y b f u l l o s t r a n g e c h a r a c t e r s c l e a r t h i n d i v i d u a l s c r e e n s w i t h :

P R I N T C H R $ ( 1 4 7 ) ( o w i t h P R I N T 1 { C L R / H O M E } 1 1 )

Y o c a s w i t c h s c r e e n s i p r o g r a m m o d e w i t h P O K E t a d d r e s s 2 1 3 :

P O K E 2 1 3 , 4 ( n o r m a l s c r e e n )P O K E 2 1 3 , 5 ( 2 n d s c r e e n a t $ 2 0 0 0 )P O K E 2 1 3 , 6 ( 3 r d s c r e e n a t $ 2 4 0 0 )

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

S C l ( n o r m a l ) S C S C S t a r t o s c r e e n m e m o r yE n o s c r e e n m e m o r yC o l o r R A s t a r t

C o l o r R A M - e n dB A S I C s t a r t

$ 0 4 0 0$ 0 7 F F$ D 8 0 0$ D B F F$ 2 8 0 0

$ 2 0 0 0$ 2 3 F F$ D 8 0 0$ D B F F$ 2 8 0 0

$ 2 4 0 0$ 2 7 F F$ D 8 0 0$ D B F F$ 2 8 0 0

P r e s s F F F

1

Page 26: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 26/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . T H 8 0 - C O L U M N S C R E E N

T h C - 1 2 8 i s n ' t j u s t f o r g a m e s . T m a k e i m o r e p r a c t i c a l m a c h i n e , i h a 8 0 - c o l u m n c a p a b i l i t y , t h a n k s t s p e c i a l g r a p h i c p r o c e s s o r c a l l e d t h e V D 8 5 6 3 ( V i d e o D i s p l a y C o n t r o l l e r ) . W s h o u l d m e n t i o n t h a t t h i s c h i p d i s p l a y s8 0 c o l u m n s o n l y o R G m o n i t o r . W e ' l l t a l k a b o u t t h a t l a t e r .

1 . 6 . S C R E E N A N C O L O R R A

N o w e n t e r c o m p l e t e l y n e t e r r i t o r y . W h i l e s c r e e n a n c o l o r R A f o 4 0 - c o l u m n m o d e i i n o r m a l R A M , a n c a n b e c o n t r o l l e d b P E E K i n g a n P O K E i n g , 8 0 - c o l u m n v i d e o R A i o u t s i d e o n o r m a l R A M , a n c a n ' t b c h a n g e d u s i n g n o r m a l P E E K s a n P O K E s ! D o n ' t p a n i c y e t h n e x tc o u p l e o p a g e s s h o w h o w c a g a i n c o n t r o l o 8 0 - c o l u m n v i d e oc o n t r o l l e r . O t h n e x t p a g e i l i s t o r e g i s t e r s f o t h 8 0 - c o l u m nc o n t r o l l e r ; w e l l c o v e r e a c h r e g i s t e r i d e t a i l .

1

Page 27: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 27/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . R E G I S T E R S O T H 8 0 - C O L U M N C O N T R O L L E R

0 R E A D : S t a t u s , L P , V B l a n k , - , - , - , - , -W R I T E : B i t s 0 - o d e s i r e d r e g i s t e r

0 C h a r a c t e r s p e r l i n e0 S h i f t s c r e e n w i n d o w ( h o r i z o n t a l / c h a r a c t e r - w i s e )0 S h i f t s c r e e n w i n d o w ( h o r i z o n t a l / p i x e l - w i s e )0 V e r t i c a l s y n c h r o n i z a t i o n0 V e r t i c a l t o t a l0 L i n e s p e r s c r e e n p a g e0 S h i f t s c r e e n w i n d o w ( v e r t i c a l / l i n e - w i s e )0 I n t e r f a c e m o d e0 M a t r i x r e g i s t e r v e r t i c a l1 C u r s o r m o d e b e g i n s c a n1 E n s c a n1 S c r e e n m e m o r y s t a r t a d d r e s s H 1 L O o f 1 1 C u r s o r p o s i t i o n H 1 L o 1 1 L i g h t p e v e r t i c a l1 L i g h t p e n h o r i z o n t a l1 C h a n n e l a d d r e s s H 1 L o 1 2 A d d r i b u t e - R A M s t a r t a d d r e s s H 2 L o 2 2 M a t r i x r e g i s t e r / d i s p l a y h o r i z o n t a l2 M a t r i x d i s p l a y v e r t i c a l2 S m o o t h - s c r o l l v e r t i c a l2 S m o o t h - s c r o l l h o r i z o n t a l

C o l o r2 A d d r e s s s h i f t i n g2 C h a r a c t e r g e n e r a t o r b a s i c a d d r e s s H U n d e r l i n e - C u r s o r - S c a n - L i n e3 R e p e a t r e g i s t e r3 C h a n n e l , b y t e r e a d / w r i t e i v i d e o R A 3 B l o c k s t a r t a d d r e s s H 3 L O o f 3 3 S t a r t o s c r e e n r e p r e s e n t a t i o n3 E n o s c r e e n r e p r e s e n t a t i o n3 r e f r e s h - r a t e

1

Page 28: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 28/322

A b a c a s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . T H V I D E O D I S P L A Y C O N T R O L L E R ( V D C )

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

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

A = D E C ( " D 6 0 0 " )P O K E A , 2 6 : P R I N T P E E K ( A + 1 )

T h r e g i s t e r n u m b e r i w r i t t e n i n t o r e g i s t e r ( $ D 6 0 0 ) ; r e g i s t e r ( $ D 6 0 1 )a c t s a t h c h a n n e l f o r w r i t i n g t o o r e a d i n g f r o m t h d e s i r e d r e g i s t e r :

1 I N P U T " R E G I S T E R " ; R2 I N P U T " V A L U E " ; V3 P O K E D E C ( " D 6 0 0 " ) , R4 P O K E D E C ( " D 6 0 1 ) , V

A c c e s s t t h V i d e o R A

A a l r e a d y m e n t i o n e d , t h V D v i d e o h a 1 6 o R A o u t s i d e o t h n o r m a l a d d r e s s r a n g e . T a c c e s s t h V D v i d e o R A M , u s t h f o l l o w i n gm e t h o d :

1 B = D E C ( " D 6 0 0 " )1 1 I N P U T " A D D R E S S O T H V I D E O R A M " ; V1 2 I N P U T " V A L U E " ; W1 3 H I N T ( V / 2 5 6 ) : L O V - ( 2 5 6 * H I )1 4 P O K E B A 1 8 P O K E B A + 1 , H 1 5 P O K E B A 1 9 P O K E B A + 1 , L 1 6 P O K E B A 3 1 P O K E B A + 1 ,

1

Page 29: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 29/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 7 W A I T B A , 3 21 8 P O K E B A 3 0 P O K E B A + 1 ,

P r o g r a m e x p l a n a t i o n :

1 0 S t o r e t h b a s e a d d r e s s o t h V D i B 1 1 P r o m p t f o d e s i r e d v i d e o R A a d d r e s s ( V 1 2 P r o m p t f o v a l u e y o w a n t w r i t t e n i n t o v i d e o R A ( W 1 3 S e p a r a t e i n t o l o w a n d h i g h b y t e s1 4 P u h i g h b y t e d e s i r e d a d d r e s s i n t o r e g i s t e r 1 1 5 0 P u t l o b y t e i n t o r e g i s t e r 1 1 6 0 B y t e v a l u e i n t o r e g i s t e r 3 1 7 W a i t c o m m a n d u n t i l w r e a c h m e m o r y a d d r e s s B 1 8 R e g i s t e r 3 f i l l e d w i t h ( c h a r a c t e r o u t p u t )

H e r e i t h v i d e o R A l a y o u t o p o w e r - u p :

$ 0 0 0 0 $ 0 7 F F S c r e e n r e f r e s h m e m o r y ( S C R - R A M )( d e c . 0 - 2 0 4 7 )

$ 0 8 0 0 $ 0 F F F A t t r i b u t e R A ( e . g . c o l o r m e m o r y )( d e c . 2 0 4 8 - 4 0 9 5 )

$ 1 0 0 0 - $ 1 F F F f r e e( d e c . 4 0 9 6 - 8 1 9 1 )

$ 2 0 0 0 $ 3 B F F c h a r a c t e r g e n e r a t o r( d e c . 8 1 9 2 - 1 6 3 8 5 )

1

Page 30: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 30/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

N o w e ' l l t r t w r i t e t v i d e o R A M . S t a r t t h a b o v e B A S I C p r o g r a m a n i n p u t a t h d e s i r e d a d d r e s s ; t h e n e n t e r a v a l u e b e t w e e n a n 2 5 5 .c h a r a c t e r s h o u l d a p p e a r 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 8 0 - c o l u m ns c r e e n t h c h a r a c t e r d i s p l a y e d d e p e n d s u p o n t h v a l u e y o e n t e r .

T t e l l y o t h t r u t h , t h i s m e t h o d o a c c e s s i n g v i d e o R A i p r e t t yu n r e l i a b l e , b u y o c a r e p e a t e d l y w r i t e t t h i s R A ( a l o n g a i t ! s w i t h i nb o u n d s ! ) . O t h o t h e r h a n d , t h i s i s n ' t m e t h o d f o s e r i o u s p r o g r a m m e r .W e l l g i v e y o a n o t h e r m e t h o d i t h n e x t s e c t i o n .

1 . P R A C T I C A L V I D E O R A A C C E S S

W h a t d o e s t h o p e r a t i n g s y s t e m d w h e n k e i p r e s s e d w h i l e i 8 0 - c o l u m n m o d e ? I s e e m s t w o r k p e r f e c t l y . W e l l , l e t ' s e x p l o r e h o t h o p e r a t i n g s y s t e m t r e a t s c h a r a c t e r s i t h i s m o d e . O p a r t i c u l a r i n t e r e s t i R O r o u t i n e w h i c h y o c a e a s i l y c a l l y o u r s e l f . H e r e i i s

S Y 9 1 5 5 , C H A R A C T E R , C O L O R

C H A R A C T E R = c h a r # ( 0 - 2 5 5 )C O L O R = c h a r . c o l o r ( 0 - 1 6 )

U n l i k e t h p r e v i o u s B A S I C r o u t i n e , t h i s r o u t i n e a l w a y s w o r k s . P l u s , t h i sr o u t i n e w o r k s f o b o t h t h 4 0 a n 8 0 - c o l u m n s c r e e n s . T h i s m e a n s t h a t i t ' sp o s s i b l e t p r o g r a m f o b o t h s c r e e n s a o n c e ( o t w s e p a r a t e m o n i t o r s ) .

2

Page 31: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 31/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

O n c e t h n o v e l t y o t h a b o v e r o u t i n e w e a r s o f f , y o m a w o n d e r h o t p u t h e s e c h a r a c t e r s o d i f f e r e n t l i n e s o t h s c r e e n . T h p o s i t i o n o t h c h a r a c t e r i r e a d f r o m m e m o r y l o c a t i o n s 2 2 4 a n d 2 2 5 ( c u r r e n t c u r s o rp o s i t i o n ) . I y o w a n t c h a r a c t e r i s p e c i f i c p l a c e , y o u ' l l h a v e t p l a ya r o u n d b i w i t h t h e s e m e m o r y l o c a t i o n s :

1 A D C L M N P E E K ( 2 3 8 ) * L I N E2 S P E E K ( 2 2 4 ) : S 2 P E E K ( 2 2 5 )3 H ( A D / 2 5 6 ) : L A D - ( 2 5 6 * H I )4 P O K E 2 4 4 , L O P O K E 2 2 5 , H 5 S Y 4 9 1 5 5 , C H A R A C T E R , C O L O R6 P O K E 2 2 4 , S I P O K E 2 2 5 , S 27 E N

C L M N : 0 - 7 9 ( 0 - 3 9 )L I N E : 0 - 2 4

2 3 M a x i m u m l e n g t h o s c r e e n2 2 C u r s o r p o s i t i o n - L O 2 2 C u r s o r p o s i t i o n H I G H4 9 1 5 5 S t a r t a d d r e s s R O r o u t i n e

1 . 1 0 P O K E S I M U L A T I O N

T h i s m a c h i n e l a n g u a g e r o u t i n e d o e s a w a y w i t h a l t h c o m p r o m i s e s o t h p r e v i o u s t e c h n i q u e s ; w c a l l i a " m o d i f i e d P O K E c o m m a n d " . B a s i c a l l y ,i t ' s p s e u d o - P O K E f o 8 0 - c o l u m n v i d e o R A M .1 8 0 01 8 0 11 8 0 21 8 0 31 8 0 41 8 0 5

4 8 4 9 4 A 0

P H T X P H T Y P H L D # $ 0 2

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

2

Page 32: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 32/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 8 0 71 8 0 A1 8 0 C1 8 0 D1 8 1 01 8 1 11 8 1 21 8 1 51 8 1 71 8 1 8

8 A 6 2 E 6 2 A 6 4

2 1

I

I I

I

0

1

1

1

S T L D P L J S I N P L J S L D P L J M

$ 0 A 2 8# $ 1 2$ 1 8 1 B

$ 1 8 1 B# $ 1 F$ 1 8 1 B

: s e t: V D C: g e t: s e t: V D C: g e t: s e t: V D C: g e t: s e t

c u r s o r f l a gr e g i s t e rh i g h b y t er e g i s t e rr e g i s t e rb a c k l o r e g i s t e rr e g i s t e r

1 b a c k

1 b y t e3

b a c k c h a r a c t e rr e g i s t e r r e a d y

1 8 1 B 8 0 D S T $ D 6 0 01 8 1 E 2 C 0 D 6 B I T $ D 6 0 01 8 2 1 1 F B B P L $ 1 C 8 E1 8 2 3 8 0 D S T $ D 6 0 11 8 2 6 6 R T

: r e g i s t e r: b i t s e t ?: n t h e n t e s t a g a i n: g i v e v a l u e i D 6 0 1

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

R E 1 . 1 0 A1 F O 6 1 4 4 T 6 1 8 22 R E A D A C S = C S A P O K E X , 3 N E X T4 I C > 3 4 1 1 T H E N P R I N T C H R $ ( 7 ) ; : L I S T5 D A T A 7 2 , 1 3 8 , 7 2 , 1 5 2 , 7 2 , 1 6 9 , 2 , 1 4 1 , 4 0 , 1 0 , 1 6 2 , 1 86 D A T A 1 0 4 , 3 2 , 2 7 , 2 4 , 2 3 2 , 1 0 4 , 3 2 , 2 7 , 2 4 , 1 6 2 , 3 1 , 1 0 47 D A T A 7 6 , 2 7 , 2 4 , 1 4 2 , 0 , 2 1 4 , 4 4 , 0 , 2 1 4 , 1 6 , 2 5 1 , 1 4 18 D A T A 1 , 2 1 4 , 9 6

N o y o h a v e a e x t e n d e d P O K E c o m m a n d a y o u r d i s p o s a l , w h i c h u s e st h f o l l o w i n g f o r m a t :

S Y D E C ( " 1 8 0 0 " ) , C H R , L O , H I

2

Page 33: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 33/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

C H c h a r a c t e r T b y t e - v a l u e ( 0 - 2 5 5 )L l o b y t e o d e s i r e d a d d r e s sH I h i g h b y t e o d e s i r e d a d d r e s s

T r t h i s :

1 I N P U T " A D D R E S S " ; A D2 H I = I N T ( A D / 2 5 6 ) : L O = A D - ( 2 5 6 * H I )3 S Y D E C ( " 1 8 0 0 " ) , 3 , L O , H I

G i v e n a a d d r e s s o 0 i m m e d i a t e l y a " C ( s c r e e n c o d e C a p p e a r s a t h H O M E a r e a o t h 8 0 - c o l u m n s c r e e n . R e s t a r t t h r o u t i n e , a n i n p u t v a l u eo 2 0 4 8 n o t h " C i i c y a n ; y o u ' v e w r i t t e n i t o a t t r i b u t e R A ( 2 0 4 8 - 3 0 4 7 ) .

O n b y t e o a t t r i b u t e R A i c o n f i g u r e d a s f o l l o w s :

B I b r i g h t n e s sB I b l u eB I g r e e nB I r e B I T 4 b l i n kB I u n d e r l i n eB I r e v e r s e v i d e oB I 2 n c h a r a c t e r s e

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

2

Page 34: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 34/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

J u s t f o r f u n , p u t h i s n e l i n e i n t o t h e p r o g r a m w j u s t t y p e d i n

3 S Y D E C ( " 1 8 0 0 " ) , 2 A 0 + 2 A 3 + 2 A 4 , L O , H I

N o w h e n y o i n p u t 2 0 4 8 f o A D t h f i r s t c h a r a c t e r o s c r e e n b l i n k s p i n k( l i g h t r e d ) ! Y o c a a l s o p u c h a r a c t e r s i n t o r e v e r s e v i d e o o u n d e r s c o r et h e m b s e t t i n g b i o b i ( r e s p e c t i v e l y ) . B i l e t s y o c h a n g e c h a r a c t e rs e t s , j u s t a s < S H I F T / C = > d o e s . O t h 8 0 - c o l u m n s c r e e n i t ' s p o s s i b l e t h a v e B O T H c h a r a c t e r s e t s o n s c r e e n a t h s a m e t i m e , u n l i k e i 4 0 - c o l u m nm o d e . T h i s m e a n s t h a t y o h a v e 5 1 c h a r a c t e r s t w o r k w i t h !

1 . 1 1 T H C H A R A C T E R G E N E R A T O R

H a v i n g 5 1 2 c h a r a c t e r s a y o u r f i n g e r t i p s m a s e e m l i k e l o t , b u f o r s p e c i a lp u r p o s e s ( g a m e s , m a t h c h a r a c t e r s , s p e c i a l a l p h a b e t s , e t c . ) , t h i n - h o u s ec h a r a c t e r s e j u s t i s n ' t e n o u g h . S o y o h a v e t g i a n d e s i g n t h m i s s i n g c h a r a c t e r s o y o u r o w n . T h i s i s o m e w h a t e a s i e r t d i 8 0 - c o l u m n m o d e , s i n c e t h c h a r a c t e r g e n e r a t o r i a l r e a d y i R A M , a n c a b c h a n g e d f r o m t h e r e w i t h o u t h a v i n g t c o p y i f r o m R O o m o v i n g t h s t a r t o B A S I C .

2

Page 35: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 35/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . 1 2 R E A D I N G T H E C H A R A C T E R G E N E R A T O R

N o w e ' l l r e a d o u t h e c h a r a c t e r g e n e r a t o r f r o m v i d e o R A M :2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6

B 8 1 9 2D E

F O A D B H I N P O K E A , 1 8P O K E A , 1 9P O K E A , 3 1

F O I C P R I N T " N E X TP R I N TN E X T

G O T O 4

V a r i a b l e s u s e d :

B

A H L C

( " D 6 0 0 " ) :T

W I A 1 6 3 8 3( A 2 5 6 ) : L = A ( 2 5 C

P O K E B , H IP O K E B , L O

C P E E K ( B T S T E P

T H E N C C " ; E L S E P R I N T " . " ;

: B a s e o c h a r a c t e r g e n e r a t o r: B a s e o f V D C: C u r r e n t a d d r e s s i c h a r a c t e r g e n e r a t o r: H i g h b y t e o f A : L o w b y t e o f A : R e a d - o u t v a l u e o c h a r a c t e r l i n e: C o u n t e r

T H E N E N h i

Y

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

2

Page 36: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 36/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

c h a r a c t e r . A l s o n o t e t h a t t h 8 0 - c o l u m n c h a r a c t e r g e n e r a t o r o t h C - 1 2 8 i q u i t e d i f f e r e n t f r o m t h o s e o t h V I C - 2 0 , o e v e n t h C - 6 4 .

Y o s e e , e v e r y c h a r a c t e r i m a d e u o 1 b y t e s , a s o p p o s e d t t h e i g h tb y t e s o t h V I o 6 4 C o n t r a r y t t h w a i s o u n d s , t h e r e i n w a s t eh e r e ; n o r m a l c i r c u m s t a n c e s g i v e e i g h t b y t e s p e c h a r a c t e r u n u s e d . T h e s e" e m p t y b y t e s ' 1 s e r v e s p e c i f i c p u r p o s e t h V D 8 5 6 3 c a n p r o d u c ec h a r a c t e r m a t r i c e s i n e i t h e r 8 o 1 f o r m a t ; s e t h e f i g u r e b e l o w .

R O

$ D 0 0 0$ D 0 0 8$ D 0 1 0

$ 2 0 0 0$ 2 0 0 8$ 2 0 1 0

R A o V D

2

Page 37: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 37/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . 1 3 B I S C R I P T W I T H S T R I N G S

H e r e i a n o t h e r u s e f u l p r o g r a m u s i n g t h " C h a r a c t e r G e n e r a t o r " . T h e r e ' sn o t h i n g s t o p p i n g u f r o m m a k i n g e n l a r g e d c h a r a c t e r s . T r t h i s p r o g r a m .

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

Z » * » : G O S U B 6 0 0 0 0 : P R I N T Z $ E N A S ( Z $ ) Z " " I A N 1 2

T H E N X A N 1 2 O 6 4 G O T O 6 0 0 4 0I N O A N 6 T H E N X Z G O T O 6 0 0 4 0I A N 3 T H E N A N 9 5 G O T O 6 0 0 4 0

A N 6 L U F O T L L C H R $ ( 1 5 7 )U U C H R $ ( 1 4 5 )N E X TD C H R $ ( 1 7 )R E C H A R A C T E R G E N E R A T O R S E L E C T I O N

= D E C ( " D 6 0 0 " ) : B =F O T 7 R E B Y T E SA 8 1 9 2 1 H = I N T ( A 2 5 6 ) : L = A ( 2 5 6 H I P O K E A , 1 8 :P O K E A , 1 9 :P O K E A , 3 1 :

P O K E B , H IP O K E B , L O

P E E K ( B

F O T S T E P 1 R E P I X E LL I N E S / C H A R A C T E RI F > T H E N Y Z E Z E " * " : E L S E Z E Z E " { S P A C E } "N E X TZ Z Z E L D $ Z E " N E X TZ L E F T $ ( Z $ , L E ( Z $ ) 9 U R E T U R N

2

Page 38: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 38/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 S

1 . 1 4 P R I N T I N G B A N N E R S A H O M E

N o t h a t w h a v e e n l a r g e d c h a r a c t e r s o t h e s c r e e n , w m i g h t a w e l l p r i n tt h e m t t h p r i n t e r . T h i s p r o g r a m w i l l l e y o p r i n t b a n n e r s a n p o s t e r s o a n l e n g t h . Y o h a v e c h o i c e o f s i z e s f r o m t 8 t i m e s l a r g e r t h a nn o r m a l :

1 S " * " : L 2 R E B A N N E R - P R I N T E R3 4 P R I N T " { C L R H O M E } { R V S O N B A N N E R - P R I N T E R { R V S

O F 5 P R I N T " { C R S R D O W N } { C R S R D O W N } T H I S P R O G R A M

D E M O N S T R A T E S T H 6 P R I N T " { C R S R D O W N } U S E O F T H E P R I N T E R F O R

V E R T I C A L P R I N T I N G "7 P R I N T " { C R S R D O W N } { C R S R D O W N } T O P R I N T

L E T T E R f 8 P R I N T " { C R S R D O W N } T Y P E I S I Z E A N T H E N H I

' R E T U R N ' . 8 P R I N T P R I N T T A B ( 7 ) " { C R S R D O W N } { C R S RD O W N } { C R S R D O W N J H I T A N K E T C O N T I N U E "

9 G E T K E Y A 1 0 O P E N 4 , 1 1 P R I N T " { C L R H O M E } { R V S O N S I D E W A Y S - P R I N T E R

{ R V S O F F } "1 2 P R I N T " { C R S R D O W N } { C R S R D O W N } E N T E R S I Z E :

{ C R S R D O W N } { C R S R D O W N } "1 3 I N P U T " { C R S R D O W N } { C R S R D O W N } H E I G H T ( 1 - 1 0 )

" H 1 4 I N P U T " W I D T H ( 1 - . . . ) " ; B R1 5 P R I N T " A C O L O N - T Y P E L E T T E R T P R I N T "1 5 P R I N T " H I T [ R E T U R N ] T O S T O P "1 6 P R I N T " " ; P O K E 2 0 8 , 0 : G E K E Y A $ : P R I N T A $ 1 6 I A $ C H R $ ( 1 3 ) T H E N E N 1 7 1 8 A A S ( A $ )1 9 I A C A N D 1 2 T H E N C O A A N 1 2 O 6 4

G O T O 2 3

2

Page 39: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 39/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 0 I N O A C A N D 6 T H E N C A C G O T O 2 3 2 1 I A C A N D 3 T H E N C O A A N 9 5 G O T O 2 3 2 2 C A C A N D 6 2 3 R E * C H A R C O D E S * 2 4 B A N K 1 2 5 F O T 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3

C H ( A ) =N E X TB A N K 1

P E E K

R E * C H A RF O K ( A ) = N E X TF O F O I F C H ( A )

B = K ( 7N E X T B ,

T

T T

( 5 3 2 4 8 (

R O T A T E *

> B

R E * C H A RF O 1 = Q $ " F O

T

T

S T E P

T H E N C H ( A )

O U T P U T *

S T E P

C O ) + A

C H ( A ) W K (

4 4 W K ( I ) A N 4 5 I W T H E N F O U T H O Q Q S $

N E X T U G O T O 4 7 6 F O T H O Q $ Q L $ N E X T

4 7 N E X T4 8 R E * D E L E T E U N N E C E S S A R Y B E G I N N I N G S P A C E S * 4 9 L = L E N ( Q $ )5 0 I R I G H T $ ( Q $ , l ) T H E N Q = L E F T $

( Q $ , L X ) : G O T O 4 9 5 1 F O T B 5 2 P R I N T * 4 , Q $5 3 N E X T5 4 N E X T5 5 G O T O 1 6

2

Page 40: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 40/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . 1 5 D E F I N I N G Y O U R O W C H A R A C T E R S E T S

N o w e ' l l r e d e f i n e t h b u i l t - i n c h a r a c t e r s e u s i n g o u p s e u d o P O K Ep r o g r a m f r o m C h a p t e r 1 . 1 0 . T h e l p y o u , w e ' v e s u p p l i e d t h f o l l o w i n gp r o g r a m .

N o r m a l l y , e v e r y c h a r a c t e r i b u i l t w i t h i n a m a t r i x . g o o d m o n i t o rw i l l a l l o w y o t s e t h e s e i n d i v i d u a l p o i n t s . T h " A c h a r a c t e r l o o k s l i k et h i s w h e n e n l a r g e d :

7 6 5 4 3 2 1 0. . . * * . . .

. * * * * . . . * * . . * * . 2# * * * * * * _. * * . . * * . 4. * * . . * * . 5. * * . . * * . 6

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

R U t h f o l l o w i n g p r o g r a m , w h i c h t u r n s t h " @ s i g n i n t o s q u a r e :1 D E C ( " D 6 0 0 " ) : B = A + l2 B 8 1 9 2 : Z E 3 F O T 4 A B ( 8 * Z E )5 H I N T ( A D / 2 5 6 ) L O = A D ( H I * 2 5 6 )

3

Page 41: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 41/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

6 R E A D C 7 S Y ( " D E C 1 8 0 0 " ) , C H , L O , H I8 N E X T9 E N 1 0 D A T A 2 5 5 , 1 2 9 , 1 2 9 , 1 2 9 , 1 2 9 , 1 2 9 , 1 2 9 , 2 5 5

N o f o a e x p l a n a t i o n o w h a t h a p p e n s :

1 A = b a s e i V D C , B = r e g i s t e r2 A = b a s e o c h a r , g e n e r a t o r , Z E c h a r a c t e r t b a l t e r e d

( A = l , B = 2 , e t c . )3 c h a n g e b y t e s4 b y t e a d d r e s s = b a s e o c h a r , g e n + b y t e n u m b e r + 8 * c h a r . n u m b e r5 A c o n v e r t e d i n t o l o b y t e / h i g h b y t e f o r m a t6 r e a d n e b y t e v a l u e s7 m o d i f i e d P O K E r o u t i n e P O K E s v a l u e i n t o v i d e o R A 1 0 D A T A f o r s q u a r e :

7 6 5 4 3 2 1 0* * * * * * * * 0 2 5 ( 2 A 7 + 2 A 6 + 2 A 5 + 2 A 4 + 2 A 3 + 2 A 2 + 2 A l + 2 A 0 )

* 1 2 ( 2 A 7 + 2 A 0 )* 1 2 ( 2 A 7 + 2 A 0 )* 1 2 ( 2 A 7 + 2 A 0 )* 1 2 ( 2 A 7 + 2 A 0 )* 1 2 ( 2 A 7 + 2 A 0 )* 1 2 ( 2 A 7 + 2 A 0 )

* * * * * * * * 7 2 5 ( 2 A 7 + 2 A 6 + 2 A 5 + 2 A 4 + 2 A 3 + 2 A 2 + 2 A l + 2 A 0 )N o w , c h a n g e l i n e 1 0 t t h i s

1 0 D A T A 6 0 , 6 6 , 1 5 7 , 1 6 1 , 1 6 1 , 1 5 7 , 6 6 , 6 0o t h i s :

1 0 D A T A 6 6 , 1 5 7 , 1 6 1 , 1 6 1 , 1 6 1 , 1 6 1 , 1 5 7 , 6 6a n p r e s s t h e " @ k e y .

3

Page 42: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 42/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . 1 6 8 0 - C O L U M N C H A R A C T E R E D I T O R

Y o c o u l d r e d e f i n e t h e n t i r e c h a r a c t e r s e b h a n d , a n P O K E i i n t om e m o r y . Y o d o n ' t n e e d t o t h o u g h ; u s e t h i s p r o g r a m i n s t e a d .

Z = 5 1 0 0M D I D ( M A ) , W $ ( M A )

1 D " 2 R E C H A R A C T E R - E D I T O R ( 8 0 - C O L U M N - C H A R S E T )3 F O T 7 D ( Y ) 0 N E X T3 P R I N T " { C L R H O M E H R V S O N { W H T } 8 0 - C O L U M N

C H A R S E T E D I T O R - E D I T C H A R A C T E R { R V S O F F } "3 M 4 P R I N T5 P R I N T " E N T E R C H A R A C T E R T E D I T , T H E N

' R E T U R N ' — > " ; : G E K E C 5 P R I N T C $ P R I N T6 A A S ( C $ )7 I A C A N D 1 2 T H E N C O A A N 1 2 7 : G O T O 1 1 8 I N O A C A N D 6 T H E N C O A C G O T O 1 1 9 I A A N 3 T H E N C A C A N D 9 5 G O T O 1 1 1 0 C A A N 6 1 1 A 5 3 2 4 8 C * 1 2 0 C $ " 1 3 1 4 P R I N T " { C R S R D O W N } { R V S O N } { G R N } O R I G I N A L

{ R V S O F F } { R V S O N } { L G R N } U S E R{ R V S O F F } "

1 5 B A N K 1 1 6 F O T M 1 7 C P E E K ( A X ) I T H E N C 1 8 F O Y T S T E P1 9 I C Z T H E N C C + " { W H T } * { G R N } "

C C - Y E L S E C C " . 2 0 N E X T2 1 P R I N T " { G R N } " ; C $ ; X ; T A B ( 1 6 ) ; " { L G R N } " ; :

P R I N T U S I N G " # # " ; X ;2 1 P R I N T T A B ( 1 9 ) ; D $

3

Page 43: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 43/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 2 2 3 2 3 2 3 2 4 2 6 2 7 2 7 2 8 2 9 3 0 3 0 3 0 3 1 3 1 3 2 3 3 3 4 3 5 3 5 3 6 3 7 3 8 3 9 4 0 1 0 0 01 0 1 01 0 2 01 0 3 01 0 3 11 0 3 21 0 3 91 0 4 01 0 5 01 0 6 01 0 7 0

C " N E X TP R I N T " { R V S O N H G R N }{ R V S O N } { L G R N }

B A N K 1

{ R V S O F F }{ R V S O F F } "

R E E D I T O R - R O U T I N EP R I N T " { W H T } " ;O P E N 1 , F O T M C H A R , 1 6 , 7P R I N T - > " ;W I N D O W 1 9 , 7 Y , 2 7 , 7 Y , M FP O K E 2 4 4 , 1 : I N P U T * 1 , W $ ( Y )W $ ( Y ) L E F T $ ( W $ ( Y ) , 8 )W I N D O W 0 , 0 , 3 9 , 2 4 : R E 0 , 0 , 7 9 , 2 4 F O 8 C O L U M NF O T I M I D $ ( W $ ( Y ) , X , 1 ) " * T H E N D ( Y ) D ( Y )

( X N E X TN E X TC L O S EC H A R , 0 , 2 2 : P R I N T " C O R R E C T I O N S ( Y / N ) ? " ; :G E K E A I A $ " Y T H E N M 0 F O T 7 D ( Y ) = 0 N E X T Y G O T O 2 6 P R I N T P R I N T " U S E C H A R A C T E R ( Y / N ) ? " / :G E T K E Y A I A $ " N T H E N 3 R E U S C H A R A C T E RP R I N T " { C L R H O M E H C R S R D O W N } { C R S R D O W N } " ;Z Z 1 P R I N T Z N ; " D A T A " ; C O ; " , " ;F O T M A P R I N T D ( X ) ; " { C R S RL E F T } , " ; : N E X TP R I N T " { C R S R L E F T }P R I N T Z 1 0 ; " D A T A - 1 P R I N T P R I N T " G O T O 3 0 P R I N T " { H O M E } " ;F O Y = 8 4 2 T 8 5 P O K E Y , 1 3 : N E X TP O K E 2 0 8 , 4E N

3

Page 44: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 44/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

P R I N T C H R $ ( 7 ) : L I S T

5 0 0 0 R E M B A S I C - L O A D E R C H A R A C T E R D E F I N I T I O N5 0 0 5 F O X 6 1 4 4 T 6 1 8 25 0 1 0 R E A D5 0 1 5 C S = C S5 0 2 0 P O K E X , 5 0 2 5 N E X T5 0 3 0 I C 3 4 1 1 T H E N

5 0 3 5 5 0 5 0 : E N 5 0 3 5 D A T A 7 2 , 1 3 8 , 7 2 , 1 5 2 , 7 2 , 1 6 9 , 2 , 1 4 1 , 4 0 , 1 0 , 1 6 2 , 1 85 0 4 0 D A T A 1 0 4 , 3 2 , 2 7 , 2 4 , 2 3 2 , 1 0 4 , 3 2 , 2 7 , 2 4 , 1 6 2 , 3 15 0 4 5 D A T A 1 0 4 , 7 6 , 2 7 , 2 4 , 1 4 2 , 0 , 2 1 4 , 4 4 , 0 , 2 1 4 , 1 6 , 2 5 15 0 4 6 D A T A 1 4 1 , 1 , 2 1 4 , 9 65 0 5 0 R E A D A I T H E N E N D5 0 5 5 F O T 5 0 6 0 R E A D5 0 6 5 A 8 1 9 2 1 5 0 7 0 H I = I N T ( A 2 5 6 ) : L A ( 2 5 6 H I 5 0 7 5 S Y S D E ( " 1 8 0 0 " ) , W , L O , H I5 0 8 0 N E X T5 0 8 5 G O T O 5 0 5 05 1 1 0 D A T A 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 05 1 2 0 D A T A 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 05 1 3 0 D A T A -

V a r i a b l e s :

Z N M A D ( x ) :

f i r s t l i n e n u m b e r o D A T A s t a t e m e n t sm a t r i x 8 * M A + 1D A T A u s e d t c a l c u l a t e c h a r a c t e r

W $ ( x ) : g i v e n c h a r a c t e r l i n eC $ A C C O C Z C S

c h a r a c t e r t b e c h a n g e dA S C E c o d e o f C Ss c r e e n c o d e o A S C I I c h a r a c t e rr e a d - o u t R O d a t ac h e c k s u m

3

Page 45: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 45/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

P r o g r a m d e s c r i p t i o n :

D o n ' t l e t h s i z e o t h i s p r o g r a m t h r o w y o o f f ; f o w e l l - e q u i p p e dc h a r a c t e r e d i t o r , i t ' s r e a l l y v e r y s h o r t p r o g r a m ! B s u r e t S A V E t h p r o g r a m b e f o r e r u n n i n g i t

O n c e s t a r t e d , t h g e n e r a t o r w i l l a s f o t h f i r s t c h a r a c t e r t h a t y o w a n tc h a n g e d ; j u s t p r e s s t h e d e s i r e d k e y . T w 8 X c h a r a c t e r m a t r i c e s w i l la p p e a r ; t h e l e f t m a t r i x w i l l c o n t a i n t h e o r i g i n a l c h a r a c t e r , w h i l e t h r i g h tm a t r i x i f o y o t d y o u r " p a p e r w o r k " . A s t e r i s k s ( " * " ) r e p r e s e n t s e p o i n t s , a n p e r i o d s ( " . " ) s t a n d f o n p o i n t .

W h e n y o u V e f i n i s h e d m o d i f y i n g e a c h l i n e , p r e s s t h e < R E T U R N > k e y .O n c e t h c h a r a c t e r i d o n e , y o h a v e t h o p t i o n o f g o i n g i n t o m a k ec o r r e c t i o n s . I y o w i s h t d s o p r e s s " Y " , a n m a k e y o u r c o r r e c t i o n s .I e v e r y t h i n g i r i g h t , j u s t p r e s s < R E T U R N > .

A s s u m i n g t h a t t h f i n i s h e d c h a r a c t e r i t y o u r s a t i s f a c t i o n , t h c h a r a c t e re d i t o r f i g u r e s o u t h D A T A s t a t e m e n t s f o y o u . O n c e a l t h e c h a r a c t e r s a r c h a n g e d , s t o p t h e p r o g r a m w i t h t h < R U N / S T O P > k e y , a n t y p e i n

D E L E T E - 5 0 0 0 .

T h e d i t o r / g e n e r a t o r i d e l e t e d , l e a v i n g y o w i t h a B A S I C l o a d e r s t a r t i n g a tl i n e 5 0 0 0 ( y o u m i g h t w a n t t c h a n g e t h n u m b e r i n g n o w , u s i n g t h R E N U M B E R c o m m a n d ) . T h i s l o a d e r g o e s i n t o y o u r p r o g r a m , c h a n g i n go n l y t h c h a r a c t e r s y o w i s h e d t c h a n g e t h e o t h e r c h a r a c t e r s a p p e a r a n o r m a l .

3

Page 46: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 46/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

5 0 - 1 2 0 C o m m o d o r e - s p e c i f i c s c r e e n c o d e i s t o r e d i C ( v e r yd i f f e r e n t f r o m t h A S C I I c o d e ) .

1 4 2 3 S c r e e n m a s k i d e s i g n e d . T h m e m o r y c o n f i g u r a t i o n i s w i t c h e d w i t h B A N K 1 4 b y w h i c h t h R O c h a r a c t e rs e a $ D 0 0 0 c a b r e a d . F i n a l l y , c h a r a c t e r i r e a d o u b i t - b y - b i t , a n t h b i t s a r s e t . A f t e r r e a d i n g R O M ,c o n f i g u r a t i o n s w i t c h e s b a c k t B A N K 1 5

2 6 0 - 3 5 1 E d i t o r r o u t i n e : S c r e e n i o p e n e d f o d a t a , u s i n g I N P U Tw i t h o u t q u e s t i o n m a r k . E v e r y i n p u t l i n e o t h u s e rm a t r i x i d e f i n e d i w i n d o w .

3 6 4 0 P r o m p t s : A n c o r r e c t i o n s ? I f s o , M w i l l b s e t 0 t h w i n d o w w i l l r e m a i n u n c l e a r e d . D ( Y ) w i l l b c l e a r e d .

1 0 0 0 - 1 0 3 9 D A T A l i n e o t h l a s t c h a r a c t e r w i l l b p r i n t e d o u i C H A R . C O D E , N U M B E R S f o r m a t . L a s t D A T As t a t e m e n t w i l l b - 1

1 0 4 0 - 1 0 7 0 K e y b o a r d b u f f e r f i l l s w i t h < R E T U R N > s , a n l i n e i r e w r i t t e n . F o m o r e i n f o r m a t i o n o h o t h i s w o r k s , s e C h a p t e r 5

5 0 0 0 5 0 8 5 S t a r t o t h B A S I C l o a d e r b e i n g p r o d u c e d , w i t h t h m o d i f i e d P O K E i m p l e m e n t e d i l i n e s 5 0 0 5 - 5 0 4 5 . T h i ss e c t i o n a l s o c o n t a i n s a r e a d l o o p f o t h c h a r a c t e r D A T As t i l l t b a d d e d .

3

Page 47: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 47/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . 1 7 W O R K I N G W I T H M U L T I P L E S C R E E N S

V i d e o R A l a y o u t :

$ 0 0 0 0 $ 0 7 F F s c r e e n R A ( d e c . 2 0 4 7 )$ 0 8 0 0 $ 0 F F F c o l o r R A M , e t c . ( d e c . 2 0 4 8 4 0 9 5 )$ 1 0 0 0 $ 1 F F F f r e e ( 4 0 9 6 8 1 9 1 )$ 2 0 0 0 $ 3 F F F c h a r a c t e r g e n e r a t o r ( 8 1 9 2 - 1 6 3 8 5 )

N o t i c e t h m e m o r y f r o m $ 1 0 0 0 t $ 1 F F F . T h i s 4 i t h m i d d l e o f v i d e oR A i u n u s e d . Y o c a m a k e g o o d u s e o f t h i s a r e a - 4 i e q u a l t 2 * 2 K , a n y o c a s e t h a t t h s c r e e n m e m o r y ( $ 0 0 0 0 - $ 0 7 F F ) i 2 i s i z e . T h i s f r e e a r e a g i v e s u s s p a c e t s t o r e t w a d d i t i o n a l s c r e e n " p a g e s " i a d d i t i o n t n o r m a l o n d i s p l a y e d o t h m o n i t o r . T h e r e a r n u m b e r o u s e s f o t h i s . F o e x a m p l e , y o c a h a v e a i n v i s i b l e s c r e e n o w h i c hg r a p h i c s a r d r a w n , w h i l e y o w o r k o t h v i s i b l e s c r e e n , a n f l i p b a c k a n df o r t h b e t w e e n s c r e e n s . O r o n s c r e e n c a h a v e p r o g r a m l i s t i n g , t h s e c o n d d i s k d i r e c t o r y , a n t h t h i r d t h p r o g r a m r u n o f t h l i s t i n g o t h f i r s t s c r e e n .

I m p l e m e n t a t i o n :

T h s c r e e n m e m o r y i n o r m a l l y f o u n d a $ 0 0 0 0 i v i d e o R A M , b u t h i si s n ' t h a r d a n f a s t r u l e . R e g i s t e r s 1 a n 1 3 o f t h V D c o n t a i n t h h i g ha n l o b y t e o f s c r e e n m e m o r y ' s s t a r t i n g a d d r e s s . T h r e e a d d r e s s e s m u s tb e c h a n g e d t m o v e s c r e e n m e m o r y :

V D r e g i s t e r 1 2 : h i g h b y t e o t h n e s t a r t i n g a d d r e s sV D r e g i s t e r 1 3 l o b y t e o t h n e s t a r t i n g a d d r e s s

3

Page 48: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 48/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

A d d r e s s 2 6 0 6 ( $ 0 A 2 E ) : h i g h b y t e n e s t a r t i n g a d d r e s s

L e t ' s s a w w a n t t m o v e t h s t a r t o s c r e e n m e m o r y f r o m $ 0 0 0 0 t $ 1 0 0 0 . T h h i g h b y t e o t h i s a d d r e s s i 1 ( 1 * 4 0 9 6 / 2 5 6 ) :

1 A = D E C ( " D 6 0 0 " ) : B = A + 12 H I = 1 6 : L O = 03 P O K E A , 1 2 : P O K E B , H I4 P O K E A , 1 3 : P O K E B , L O5 P O K E 2 6 0 6 , H I

T h s c r e e n w i l l b f i l l e d w i t h g a r b a g e ; t h i s i n o r m a l . C l e a r t h s c r e e n w i t hP R I N T C H R $ ( 1 4 7 ) . N o y o c a u s t h i s s c r e e n a y o n o r m a l l y w o u l d .W h e n y o w a n t t r e t u r n t y o u r o l s c r e e n , c h a n g e l i n e 2 t t h i s :

2 H I = 0 : L O = 0

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

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 l o w u s e s a l o t h f r e e v i d e o m e m o r y t g i v e y o t h r e e s c r e e n s . I u s e s t h i n t e r r u p t , a n s t a r t s i m m e d i a t e l y a f t e re x e c u t i o n :

I n i t i a l i z a t i o n :1 B 0 01 B 0 11 B 0 31 B 0 51 B 0 81 B 0 B1 B 0 C

7 A A 8 8 5 A

1 1 1 1

0

0 0

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

# $ 1 C# $ 1 8$ 0 3 1 5$ 0 3 1 4# $ 0 0

i g n o r e i n t e r r u p t

c h a n g e i n t e r r u p t p n t r ( l o ): c h a n g e i n t e r r u p t p n t r ( h i )

l e a v e i n t e r r u p t

1 B 0 E 8 0 1 S T $ 1 0 0 0 : F c l e a r e d3

Page 49: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 49/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 B 1 1 8 0 2 1 0 S T $ 1 0 0 2 : F c l e a r e d1 B 1 4 8 0 1 S T $ 1 0 0 4 : F c l e a r e dI B 1 7 6 R T : r e a d yN e I n t e r r u p t

1 B 1 81 B 1 91 B 1 A1 B 1 BI B I D1 B 1 F1 B 2 11 B 2 31 B 2 51 B 2 71 B 2 91 B 2 B1 B 2 D1 B 2 F1 B 3 11 B 3 41 B 3 61 B 3 91 B 3 B1 B 3 E1 B 4 11 B 4 41 B 4 61 B 4 91 B 4 C1 B 4 E1 B 5 01 B 5 31 B 5 61 B 5 81 B 5 B1 B 5 C1 B 5 D1 B 5 E

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

D 5 3 O 0 0 0 0 0 2 0 3 1 3 1 3 0 0 F 0 2 0 0 0 0 F 0

6

I

I

I D D D O

D D D

F

P H T X P H L D C M B E L D C M B E C M B E C M B N L D J M L D J M L D J M S T B I B P S T S T L D L D S T B I B P S T P L T A P L J M

$ D # $ 5 8$ 1 C 5 F# $ 0 C# $ 0 4$ 1 C 3 8# $ 0 5$ 1 C 3 D# $ 0 6$ 1 C 5 F# $ 0 0$ 1 B 3 E# $ 1 0$ 1 1 B 3 E# $ 1 8$ 1 B 3 E$ D 6 0 0$ D 6 0 0$ 1 C 4 5$ D 6 0 1$ D 6 0 1# $ 0 D# $ 0 0$ D 6 0 0$ D 6 0 0$ 1 C 5 7$ D 6 0 1

$ F A 6 5

: s a v e a c c u m u l a t o r: s a v e r e g i s t e r: r e a d k e y b o a r d: n k e y ? T h e n g : t n o r m a l I R r o u t i n e: V D C r e g i s t e r 1 : F 1 ?: y e s t h e n g o t o $ 1 C 3 8: F 3 ?: y e s t h e n g o t o $ 1 C 3 D: F 5 ? N t h e n: g o t o n o r m a l I R r o u t i n e: s c r e e n a $ 0 0 0 0: s e t r e g i s t e r

s c r e e n a $ 1 0 0 0: s e t r e g i s t e r

s c r e e n a $ 1 8 0 0: s e t r e g i s t e r: d e s i r e d r e g i s t e r i R E : b i t s e t ?: w a i t . W r i t e v a l u e: i v i d e o R A i n t o R E : s e t p o i n t e r i z e r o p a g e: V D C r e g i s t e r 1 : l o w b y t e = : s e t r e g i s t e r: b i t s e t ?: w a i t . W r i t e b y t e: i v i d e o R A i n t o R E : r e t u r n X r e g i s t e r: r e t u r n a c c u m u l a t o r: b a c k t I R r o u t i n e

F O B A S I C p r o g r a m m e r s h e r e i t h B A S I C l o a d e r .

3

Page 50: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 50/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 F O 6 9 1 2 T 7 0 0 82 R E A D A C S = C S A P O K E X , 3 N E X T X4 I C < 9 3 1 8 T H E N P R I N T C H R $ ( 7 ) ; L I S T4 S Y 6 9 1 25 D A T A 1 2 0 , 1 6 9 , 2 7 , 1 6 0 , 2 4 , 1 4 1 , 2 1 , 3 , 1 4 0 , 2 0 , 3 , 8 86 D A T A 1 6 9 , 0 , 1 4 1 , 0 , 1 6 , 1 4 1 , 2 , 1 6 , 1 4 1 , 4 , 1 6 , 9 67 D A T A 7 2 , 1 3 8 , 7 2 , 1 6 5 , 2 1 3 , 2 0 1 , 8 8 , 2 4 0 , 5 8 , 1 6 2 , 1 2 , 2 0 18 D A T A 4 , 2 4 0 , 1 3 , 2 0 1 , 5 , 2 4 0 , 1 4 , 2 0 1 , 6 , 2 0 8 , 4 4 , 1 6 99 D A T A 0 , 7 6 , 6 2 , 2 7 , 1 6 9 , 1 6 , 7 6 , 6 2 , 2 7 , 1 6 9 , 2 4 , 7 61 0 D A T A 6 2 , 2 7 , 1 4 2 , 0 , 2 1 4 , 4 4 , 0 , 2 1 4 , 1 6 , 2 5 1 , 1 4 1 , 11 1 D A T A 2 1 4 , 1 4 1 , 4 6 , 1 0 , 1 6 2 , 1 3 , 1 6 9 , 0 , 1 4 2 , 0 , 2 1 4 , 4 41 2 D A T A 0 , 2 1 4 , 1 6 , 2 5 1 , 1 4 1 , 1 , 2 1 4 , 1 0 4 , ' 1 7 0 , 1 0 4 , 7 6 , 1 0 11 3 D A T A 2 5

R U N n i n g t h i n i t i a l i z a t i o n p r o g r a m c a u s e s o u I R v e c t o r ( I n t e r r u p tR e q u e s t v e c t o r ) i t h s e c o n d h a l f o t h e r o u t i n e t b e a d d e d t t h n o r m a lI R r o u t i n e ( t h e I R i w h a t t h c o m p u t e r e x e c u t e s e v e r y 1 / 6 0 s e c o n d ) .T h i s r o u t i n e t h e n g i v e s y o t h r e e s e p a r a t e 8 c o l u m n s c r e e n s t w o r k w i t h .Y o c a s h i f t s c r e e n s i p r o g r a m m o d e ( b p r e s s i n g F l F o F 5 b s u r et c l e a r e a c h n e s c r e e n b e f o r e u s e ) , o i d i r e c t m o d e ( P O K E 2 1 3 , 4 ;P O K E 2 1 3 , 5 ; o P O K E 2 1 3 , 6 , r e s p e c t i v e l y ) .

1 . 1 8 M A N I P U L A T I N G T H E V D C 8 5 6 3

H e r e ' s a n o t h e r f e a t u r e o t h n e 8 0 - c o l u m n d i s p l a y c o n t r o l l e r . T s h o wy o t h a t w e ' r e n o p r a i s i n g t h i s c h i p t o m u c h , t h e r e i d e m o n s t r a t i o np r o g r a m b e l o w w h i c h w i l l s h o w y o j u s t h o v e r s a t i l e t h V D 8 5 6 3 i s A t h i s p o i n t , y o m a w a n t t r e v i e w t h V D r e g i s t e r l i s t i n g i C h a p t e r1 . 7 .

4

Page 51: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 51/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

W h e n w m a n i p u l a t e t h e d i s p l a y c o n t r o l l e r , t h e n t i r e n o r m a l s c r e e nr e p r e s e n t a t i o n i p u o t h s t a c k . I y o u r e x p e r i m e n t s , y o s h o u l dr e m e m b e r c o m p l e t e r e c o v e r y o t h V D c o n t r o l l e r i o f t e n p o s s i b l e o n l yb s w i t c h i n g t h c o m p u t e r o f f . B t h s a m e t o k e n , y o w o n ' t c a u s e a n i n t e r n a l d a m a g e f r o m p l a y i n g w i t h t h r e g i s t e r s .

M o v i n g t h S c r e e n W i n d o w s

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

0 S h i f t s s c r e e n w i n d o w h o r i z o n t a l l y c h a r a c t e r - w i s eS h i f t s s c r e e n w i n d o w v e r t i c a l l y l i n e - w i s e

L e t f s t r i o u t :

1 R E M O V I N G T H S C R E E N W I N D O W2 A = D E C ( " D 6 0 0 " ) : B = A + 13 F O X = 0 T O 2 5 4 P O K E A , 2 : P O K E B , 5 P O K E A , 7 : P O K E B , 6 N E X T7 E N

T h i s l i s t i n g w i l l m a k e t h s c r e e n w a n d e r d i a g o n a l l y . Y o c a r e t u r n i t n o r m a l b p r e s s i n g < R U N - S T O P / R E S T O R E > .

4

Page 52: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 52/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

S i m u l a t i n g a e x p l o s i o n m a b m o r e t y o u r t a s t e s . T h q u a l i t y o g a m eo f t e n d e p e n d s o i t r e a l i s m ; t r t h i s p r o g r a m o u t . W l e a v e t h s o u n de f f e c t s t y o u r d i s c r e t i o n .

1 R E E X P L O S I O N S S I M U L A T I O N1 = D E C ( " D 6 0 0 " ) :2 F O R X T 5 3 0 = I N T R N ( 1 ) * 2 1 0 4 I N R N ( 1 ) * 2 + 3 5 P O K E A , 2 : P O K E B , 6 P O K E A , 7 : P O K E B 7 N E X T8 P O K E A , 2 : P O K E B , 1 0 29 P O K E A , 7 : P O K E B , 3 2

1 . 1 9 M A N I P U L A T I N G S C R E E N F O R M A T

Y o u ' r e p r e s e n t l y i 8 0 - c o l u m n m o d e w h i c h , a s t h e n a m e i m p l i e s , h a 8 c h a r a c t e r s p e l i n e , a n d 2 5 l i n e s p e s c r e e n p a g e . L e t ' s s a t h a t w w a n t t c h a n g e t h i s f o r m a t f o n o w . T h i s i r e l a t i v e l y e a s y t a s k , u s i n g V D r e g i s t e r s a n 6

0 C h a r a c t e r s p e l i n e ( d e f a u l t 8 0 0 L i n e s p e s c r e e n p a g e ( d e f a u l t 8 0

N O T E : Y o u c a n ' t g e a n m o r e t h a n 8 c o l u m n s . O u g o a l , h e r e , i t i n c r e a s e t h n u m b e r o l i n e s o t h e s c r e e n u s i n g t h i s f o r m u l a :

( n e w n u m b e r o c o l u m n s ) ( n e w n u m b e r o l i n e s ) 2 0 0 0

4

Page 53: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 53/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

I t h t o t a l i g r e a t e r o l e s s t h a n 2 0 0 0 , w m a r u i n t o t r o u b l e . T r t h i s ,u s i n g 3 l i n e s 6 c h a r a c t e r s :

1 R E M N E W S C R E E N F O R M A T 6 3 2 A = D E C ( " D 6 0 0 " ) : B = A + 13 P O K E A , 1 : P O K E B , 6 24 P O K E A , 6 : P O K E B , 3 05 E N

A l t h i s p r o g r a m d o e s i c h a n g e t h s c r e e n f o r m a t t 3 6 2 Y o c a d e s i g n a n f o r m a t i p r i n c i p l e w i t h t h i s p r o g r a m . P e r h a p s y o c a m a k eu s e o f t h i s i g a m e s s i m u l a t i n g m i n e s h a f t , o d e e p w e l l , o h a v i n g s p r i t em o v e o f f s c r e e n .

1 . 2 0 F O M O N O C H R O M E M O N I T O R O W N E R S

I y o u ' r e t h e l u c k y o w n e r o f " g r e e n s c r e e n " ( o a m b e r , o w h a t e v e r ) , y o o b v i o u s l y c a n ' t t a k e a d v a n t a g e o t h C - 1 2 8 f s c o l o r s . A b e s t , y o g e t w s h a d e s o f m o n i t o r c o l o r . W h a t d o y o u n e e d t h a t 2 o a t t r i b u t e R A f o r ?I t ' s t h e r e f o r s c r e e n d e v e l o p m e n t , b u i t h c a s e o m o n o c h r o m e o u t p u t ,i t ' s j u s t c o l l e c t i n g d u s t , s t s p e a k . I w w a n t t u s t h a t R A M , w c o n s u l t V D r e g i s t e r 2 5

2 S m o o t h S c r o l l h o r i z o n t a l

B i o t h i s r e g i s t e r d e c l a r e s w h e t h e r a t t r i b u t e R A i o o n o t :

1 R E D E A C T I V A T I N G A T T R I B U T E R A M2 A = D E C ( " D 6 0 0 " ) : B = A + 13 P O K E A , 2 5 : P O K E B , P E E K ( B ) A N D N O T 6

4

Page 54: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 54/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h i s b r i e f r o u t i n e s w i t c h e s o f a t t r i b u t e R A ( $ 0 8 0 0 $ 0 F F F ) , a n t u r n s i o v e r t y o t u s f o s c r e e n m e m o r y . N a t u r a l l y , t h i s r o u t i n e c a a l s o b u s e d b R G m o n i t o r o w n e r s w h w i s h t d w i t h o u t c o l o r .

T h C u r t a i n F a l l s . . . .

N o r m a l l y , t h s c r e e n w i n d o w s i t s w i t h i n p r e s c r i b e d b o r d e r . T h e s e e d g e sc a n b e a d j u s t e d b V D r e g i s t e r s 3 a n 3 5

S t a r t o s c r e e n r e p r e s e n t a t i o nE n o s c r e e n r e p r e s e n t a t i o n

R a t h e r t h a n g i n t o l e n g t h l y e x p l a n a t i o n s , h e r e ' s d e m o p r o g r a m :

1 D E ( " D 6 0 0 1 1 )2 I N P U T X , 3 P O K E A , 3 4 : P O K E B , 4 P O K E A , 3 5 : P O K E B , 6 G O T O 2

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

1 D E ( " D 6 0 0 " ) :2 F O R X T 4 3 P O K E A , 3 4 : P O K E B , 4 P O K E A , 3 5 : P O K E B , 5 F O T 1 0 N E X T6 N E X T

4

Page 55: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 55/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . 2 1 T H 8 x 1 6 C H A R A C T E R M A T R I X

Y o p l a y e d a r o u n d w i t h c u s t o m c h a r a c t e r s f e p a g e s a g o ; y o u ' l l r e c a l lt h a t e a c h c h a r a c t e r i b u i l t i n t o a m a t r i x :

7 6 5 4 3 2 1 0

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

L e t ' s p e e k i n t o t h r e g i s t e r s t h a t c o n t r o l m a t r i x s i z e ( r e g i s t e r s 2 a n 2 3 ) :

2 M a t r i x d i s p l a y ( h o r i z o n t a l )M a t r i x d i s p l a y ( v e r t i c a l )

4

Page 56: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 56/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

R e l a t i v e C h a n g i n g o t h M a t r i x

E a c h r e g i s t e r l i s t s h o m a n y p i x e l s a r e i c h a r a c t e r m a t r i x ; d e f a u l t o b o t hr e g i s t e r s i e i g h t , g o v e r n e d b t h f i r s t f o u r b i t s o r e g i s t e r 2 a n t h f i r s tf i v e b i t s o r e g i s t e r 2 3

1 D E ( " D 6 0 0 " ) :2 F O X T 3 P O K E A , 2 2 : P O K E B P E E K ( B A N D N O T O 4 F O T 1 0 0 : N E X T5 N E X T6 F O T 7 P O K E A , 2 3 : P O K E B , 7 F O T 1 0 0 : N E X T8 N E X T9 E N

H e r e ' s n e a t l i t t l e a r r a n g e m e n t f o g a m e u s e :

1 D E ( " D 6 0 0 " ) : B2 F O T 3 P O K E A , 2 2 : P O K E B P E E K ( B A N N O O R 4 P O K E A 2 3 P O K E B , 5 F O T 2 0 0 : N E X T6 N E X T7 E N

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

4

Page 57: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 57/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . 2 2 T O T A L 1 6 X 8 M A T R I X M A N I P U L A T I O N

L e t ' s t r d e v e l o p i n g 1 6 X 8 m a t r i x . I n o t h e r w o r d s , w e ' l l c r e a t e a 8 - c o l u m n m a t r i x o 1 l i n e s . W e ' l l f i n d t h n e e d e d n u m b e r s a r e g i s t e r sa n o t h V D C :

0 V e r t i c a l s y n c h r o n i z a t i o nV e r t i c a l m a t r i x r e g i s t e r

R e g i s t e r d e c l a r e s t h e n u m b e r o l i n e s i c h a r a c t e r . T r a i s e t h m a t r i x t 1 p o i n t s , w e ' l l h a v e t d o u b l e t h a m o u n t i n r e g i s t e r 9 a n c h a n g e t h s y n c h r o n i z a t i o n i 0 4

1 R E 1 M A T R I X2 A = D E C ( " D 6 0 0 " ) : B = A + 13 P O K E 2 2 8 , 1 64 R E A D5 0 I F X = - l T H E N E N 6 R E A D7 P O K E A , X : P O K E B , Y8 G O T O 2 9 1 0 D A T A 9 , 1 51 1 D A T A 6 , 1 71 2 D A T A 2 3 , 1 51 3 D A T A 4 , 1 91 4 D A T A 7 , 1 91 5 D A T A -

A f t e r s t a r t i n g t h p r o g r a m , t h s c r e e n l o o k s f u n n y ; t h e r e ' s b i s p a c eb e t w e e n t h s c r e e n l i n e s , b u t h c h a r a c t e r s a r e s t i l l c l e a r . T h a t s p a c e i d u t t h e n l a r g e d m a t r i x ; t h e s p a c e i t h e a d d i t i o n a l p i x e l s ( s e e C h a p t e r1 . 1 2 ) .

4

Page 58: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 58/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T y p e P R I N T C H R $ ( 2 7 ) + t f R M i n d i r e c t m o d e ; t h i s r e v e r s e s t h s c r e e nc o n t e n t s , a n l e t s y o s e t h s c o p e o t h c h a r a c t e r e x p a n s i o n . T h i s p r o j e c tg i v e s y o 1 l i n e s o 8 c h a r a c t e r s , w i t h a 1 8 m a t r i x . L e t ' s f i g u r e o u t h t o t a l r e s o l u t i o n :

P R I N T 1 7 * 8 0 * ( 1 6 * 8 )

T h i s g i v e s y o 1 7 4 , 0 8 0 p i x e l s ! ! S i n c e t h v i d e o R A i l i m i t e d t 1 6 K ,t h e s e p o i n t s c a n ' t b e a s i l y s e ( e . g . , b i t - m a p p i n g ) .

P r o g r a m E x p l a n a t i o n :

1 A = V D C , B = R E G 0 2 B o t t o m w i n d o w b o r d e r i s e t k e e p c u r s o r f r o m s c r o l l i n g

o f f s c r e e n .3 V D l o a d e d w i t h n e v a l u e .6 R e a d D A T A7 S w i t c h c h a r a c t e r s i z e f r o m t 1 p i x e l s .8 L i m i t t 1 l i n e s p e s c r e e n .9 1 6 X 8 p i x e l s p e c h a r a c t e r .1 0 2 l i n e s ( b o r d e r ) i n s t e a d o 4 0 1 1 B r i n g u s c r e e n c o n t e n t s i p r o p e r f o r m a t .

4

Page 59: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 59/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . 2 3 D O U B L E - H E I G H T C H A R A C T E R S

S o w h a t c a w d w i t h t h a t 1 6 X 8 m a t r i x ? W c a c r e a t e d o u b l e - h e i g h tc h a r a c t e r s , a n t h i s n e x t p r o g r a m l e t s y o d j u s t t h a t .

1 R E M P O K E - R O U T2 F O 6 1 4 4 T 6 1 8 23 R E A D A C C A P O K E X , 4 N E X T5 0 I F C 3 4 1 1 T H E N P R I N T " D A T A - E R R O R " : E N D6 D A T A 7 2 , 1 3 8 , 7 2 , 1 5 2 , 7 2 , 1 6 9 , 2 , 1 4 1 , 4 0 , 1 0 , 1 6 2 , 1 87 D A T A 1 0 4 , 3 2 , 2 7 , 2 4 , 2 3 2 , 1 0 4 , 3 2 , 2 7 , 2 4 , 1 6 2 , 3 1 , 1 0 48 D A T A 7 6 , 2 7 , 2 4 , 1 4 2 , 0 , 2 1 4 , 4 4 , 0 , 2 1 4 , 1 6 , 2 5 18 D A T A 1 4 1 , 1 , 2 1 4 , 9 69 R E C O P Y1 0 F O T 2 5 5 : R E 2 5 C H A R S1 1 F O T 7 R E L I N E S E A C H1 2 A D = 5 3 2 4 81 3 B A N K 1 4 K ( K ) P E E K ( A D ) : B A N K 1 1 4 N E X T K1 5 F O R K T 1 5 R E 1 L I N E S E 1 6 A = 8 1 9 2 1 1 7 0 H I I N ( A 2 5 6 ) : L = A ( 2 5 6 H I 1 8 S Y D E ( " 1 8 0 0 " ) , K ( I N ( 2 ) ) , L O , H I1 9 N E X T K2 0 N E X T

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

0 B 0 0 A 0 L D # $ 0 3 : R e a d l o o p0 B 0 2 B 4 0 L D A 0 B 4 1 , X : L o a d s t a r t i n g a d d r e s s0 B 0 5 9 F S T $ F A , X : i n t o f r e e z e r o p a g e0 B 0 7 D E : E v e r y t h i n g r e a d i n 0 B 0 8 1 F B P $ 0 B 0 2 : N c o n t i n u e0 B 0 A A 0 L D # $ 0 1 : S e t b a n k0 B 0 C 8 0 F S T $ F F 0 0 : c o n f i g u r a t i o n0 B 0 F A 0 0 L D # $ 0 0 : t 0 + v e c t o r

4

Page 60: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 60/322

A b a c u s

0 B 1 10 B 1 30 B 1 4O B 1 6O B 1 90 B 1 B0 B 1 D0 B 2 00 B 2 20 B 2 40 B 2 60 B 2 70 B 2 90 B 2 B0 B 2 E0 B 3 00 B 3 20 B 3 40 B 3 60 B 3 80 B 3 A0 B 3 C0 B 3 E0 B 4 00 B 4 10 B 0 B 4 70 B 4 80 B 4 90 B 4 A0 B 4 B0 B 4 D0 B 5 00 B 5 20 B 5 30 B 5 60 B 5 70 B 5 80 B 5 B0 B 5 D0 B 5 E0 B 6 10 B 6 4

S o f t w a r e

B 4 A 8 A A 2 E D E 6 A A 2 E D E E D E A C 9 6 0 4 8 4 9 4 A 8 A 6 2 E 6 2 A 6 4 8 2

F

0 0 F F 4 F 0 F

F F 4 F 0 F F 0 F F E C

D

0 2 1

6

6 I

6 0 0

F

O

O

0

O

O

O

O D D

L D P H L D S T L D L D J S I N B N I N P L L D L D J S I N B N I N I N B N I N L D C P B C R T

( $ F A ) , Y# $ 0 0$ F F 0 0$ F $ F $ 0 B 4 6$ F $ 0 B 2 6$ F $ F $ F $ 0 B 4 6$ F $ 0 B 3 4$ F $ F $ 0 B 3 A$ F $ F # $ E 0$ 0 B 0 A

2 0 0 0P H T X P H T Y P H L D S T L D P L J S I N P L J S L D P L J M S T B I

# $ 0 2$ 0 A 2 8# $ 1 2$ 0 B 6 1

$ 0 B 6 1# $ 1 F$ 0 B 6 1$ D 6 0 0$ D 6 0 0

T r i c k s a n T i p s f o t h C - 1 2 8

: R e a d i s t a r t a d d r e s s: G e t i t: S e t b a n k: c o n f i g u r a t i o n: L o w v i d e o R A a d d r e s s: H i g h v i d e o R A a d d r e s s: P O K E s u b r o u t i n e: L o w = L o w + l: L o w g r e a t e r t h a n: L o w = 0 : H i g h = H i g h + l: G e t H i g h R O : L o w v i d e o R A a d d r e s s: H i g h v i d e o R A a d d r e s s: P O K E s u b r o u t i n : L o w = L o w + l: L o w g r e a t e r t h a n: L o w = 0 : H i g h = H i g h + l: L o w R O M = L o w R O M + 1

S t i l l > 0 N O : H i g h R O M = H i g h R O M + 1: L o a d: R e a c h e d e n o R O : y e t ? N O — g o o : R e t u r n t B A S I C: P n t r s t a r t i n g a d d r e s s: G e t c h a r a c t e r: G e t l o b y t e: G e t h i g h b y t e: S e t c u r s o r f l a g: V D C R E 1 : S e t l o w b y t e o : r e g i s t e r: V D C R E 1 : S e t h i g h b y t e: o r e g i s t e r: V D C R E 3 : C h a r a c t e r: R e g i s t e r s e t , r e a d y: D e s i r e d r e g i s t e r g i v e n: B i t s e t ?

5

Page 61: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 61/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

0 B 6 7 1 F B P $ 0 B 6 40 B 6 9 8 0 D S T $ D 6 0 10 B 6 C 6 R T

: N O — t h e n w a i t: f o r g i v e n v a l u e: R e t u r n

T h e r e i s o c o u r s e , m a t c h i n g B A S I C l o a d e r :

5 0 0 0 F O X 2 8 1 6 T 2 9 2 45 0 1 0 R E A D A C = C A P O K E X , 5 0 2 0 N E X T5 0 3 0 I C < 1 3 6 8 9 T H E N P R I N T C H R $ ( 7 ) ; : L I S T5 0 4 0 D A T A 1 6 2 , 3 , 1 8 9 , 6 5 , 1 1 , 1 4 9 , 2 5 0 , 2 0 2 , 1 6 , 2 4 8 , 1 6 2 , 15 0 5 0 D A T A 1 4 2 , 0 , 2 5 5 , 1 6 0 , 0 , 1 7 7 , 2 5 0 , 7 2 , 1 6 2 , 0 , 1 4 2 , 05 0 6 0 D A T A 2 5 5 , 1 6 6 , 2 5 2 , 1 6 4 , 2 5 3 , 3 2 , 7 0 , 1 1 , 2 3 0 , 2 5 2 , 2 0 8 , 25 0 7 0 D A T A 2 3 0 , 2 5 3 , 1 0 4 , 1 6 6 , 2 5 2 , 1 6 4 , 2 5 3 , 3 2 , 7 0 , 1 1 , 2 3 0 , 2 5 25 0 8 0 D A T A 2 0 8 , 2 , 2 3 0 , 2 5 3 , 2 3 0 , 2 5 0 , 2 0 8 , 2 , 2 3 0 , 2 5 1 , 1 6 4 , 2 5 15 0 9 0 D A T A 1 9 2 , 2 2 4 , 1 4 4 , 2 0 2 , 9 6 , 0 , 2 0 8 , 0 , 3 2 , 0 , 7 2 , 1 3 85 1 0 0 D A T A 7 2 , 1 5 2 , 7 2 , 1 6 9 , 2 , 1 4 1 , 4 0 , 1 0 , 1 6 2 , 1 8 , 1 0 4 , 3 25 1 1 0 D A T A 9 7 , 1 1 , 2 3 2 , 1 0 4 , 3 2 , 9 7 , 1 1 , 1 6 2 , 3 1 , 1 0 4 , 7 6 , 9 75 1 2 0 D A T A 1 1 , 1 4 2 , 0 , 2 1 4 , 4 4 , 0 , 2 1 4 , 1 6 , 2 5 1 , 1 4 1 , 1 , 2 1 45 1 3 0 D A T A 9

D e f i n i n g t h 1 6 X 8 M a t r i x

L e t ' s c o n t i n u e b d e f i n i n g s o m e 1 6 X 8 c h a r a c t e r s . T h i s p r o c e d u r e h a a l r e a d y b e e n c o v e r e d i t h c h a p t e r o " D e s i g n i n g y o u r o w C h a r a c t e r s " .M a k e t h f o l l o w i n g c o r r e c t i o n s i t h 8 c o l u m n c h a r a c t e r e d i t o r p r o g r a m :

M A = 1 55 0 5 5 F O Y = T 1

5

Page 62: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 62/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . 2 4 M O V I N G T H V I D E O R A

V i d e o R A i d i v i d e d i n t o f o u r s e c t i o n s :

$ 0 0 0 0 2 S c r e e n m e m o r y$ 0 8 0 0 2 A t t r i b u t e R A $ 1 0 0 0 F r e e$ 2 0 0 0 8 C h a r a c t e r g e n e r a t o r

Y o u ! l l f i n d t h e p u r p o s e o t h f r e e 4 ( $ 1 0 0 0 ) i C h a p t e r l . 1 7 ; f o r t h em o m e n t , w e ' r e t a l k i n g a b o u t t h e o t h e r t h r e e a r e a s . I t ' s p o s s i b l e t m o v ea t t r i b u t e R A a n s c r e e n R A i 2 5 6 - b y t e s t e p s , w h i l e t h c h a r a c t e rg e n e r a t o r c a o n l y b m o v e d 8 a t i m e . H e r e a r e t h e V D C ' s r e g i s t e r s f o c o n t r o l l i n g t h i s :

1 H i g h b y t e o f s c r e e n m e m o r y1 L O b y t e o s c r e e n m e m o r y2 H i g h b y t e a t t r i b u t e R A 2 L O b y t e - a t t r i b u t e R A 2 H i g h b y t e c h a r a c t e r g e n e r a t o r ( b i t s 5 - 7 )

M o v i n g A t t r i b u t e R A

T h p r o g r a m b e l o w m o v e s a t t r i b u t e R A i n t o a n a r e a o v i d e o R A M .P l e a s e n o t e t h a t y o a r e l i m i t e d t 2 5 6 - b y t e s t e p s .

5

Page 63: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 63/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 R E M A T T R I B U T E R A M S H I F T E R2 I N P U T " N E W S T A R T I N G A D D R E S S " ; A D $2 A D = D E C ( A D $ )3 I A D / 2 5 6 = I N T ( A D / 2 5 6 ) T H E N 4 0 : E L S E P R I N T

" 2 5 6 K S T E P S ! " : G O T O 2 4 H I = I N T ( A D / 2 5 6 ) : L O = A D - ( 2 5 6 * H I )5 A = D E C ( " D 6 0 0 " ) : B = A + 16 P O K E A , 2 0 : P O K E B / H I7 P O K E A , 2 1 : P O K E B , L O8 P O K E 2 6 0 7 , H I

T h v a l u e a l i n e 8 i s p e c i a l n u m b e r ; i t ' s n o e n o u g h t s i m p l y c h a n g et h V D r e g i s t e r s o r t h e y w i l l r e m a i n u n c h a n g e d . A t h s a m e t i m e ,s p e c i f i e d a d d r e s s i z e r o p a g e w i l l b l o a d e d w i t h t h h i g h - b y t e o t h n e s t a r t i n g a d d r e s s :

6 0 : H X g h b y t e o s c r e e n R A 6 0 r f f l g h b y t e o a t t r i b u t e R A

T r t h a d d r e s s " 1 0 0 0 " ; a t t r i b u t e R A i m o v e d t t h f r e e a r e a . T y p ef e d i f f e r e n t c h a r a c t e r s o t h s c r e e n a n s e w h a t y o g e t . N o w , r u t h a t t r i b u t e R A s h i f t e r r o u t i n e a g a i n , a n s p e c i f y " 8 0 0 " a s t a r t i n g a d d r e s s .T h c h a r a c t e r s t a k e o n o r m a l c o l o r a g a i n .

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

W s u g g e s t t h a d d r e s s e s b e t w e e n " 1 0 0 0 " a n " 1 8 0 0 " a s t h e m o s t s u i t a b l e .

J u s t t s h o w y o w h a t h a p p e n s w h e n y o e n t e r a i l l e g a l a d d r e s s , r u t h a t t r i b u t e R A s h i f t e r p r o g r a m a g a i n , a n e n t e r " 0 0 0 0 " , w h i c h w i l l p u a t t r i b u t e R A i t h s a m e r a n g e a s c r e e n R A M . T h r e s u l t : e v e r yc h a r a c t e r h a i t o w c o l o r a n s h a p e !

5

Page 64: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 64/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

O e n t e r " 2 0 0 0 " , w h i c h p u t s u i t h e c h a r a c t e r g e n e r a t o r ; c e r t a i n c h a r a c t e r sl o s e t h e i r n o r m a l a p p e a r a n c e .

M o v i n g S c r e e n R A

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

W b e l i e v e t h a t s h i f t i n g s c r e e n R A i u s e f u l e x t r a , s i n c e i a l l o w s y o t p e r f o r m t h p a g e - f l i p p i n g t r i c k ( s e e C h a p t e r 1 . 1 7 ) .

1 . 2 5 C O L O R F O R T H E 8 0 - C O L U M N S C R E E N

C o l o r ? Y o b e t ! 8 0 - c o l u m n m o d e g i v e s y o c h o i c e o 1 c h a r a c t e rc o l o r s , b u s i n g < C T R L l - 8 > a n < C l - 8 > . F o n o w , t h o u g h , w e l lc o n c e r n o u r s e l v e s w i t h c h a n g i n g t h b o r d e r a n d b a c k g r o u n d c o l o r s . T h e r et o w h a v e 1 c o l o r s t c h o o s e f r o m , b u w e l l h a v e t P O K E t h c o l o r si n I 4 0 - c o l u m n m o d e a d d r e s s e s 5 3 2 8 0 a n d 5 3 2 8 1 a r u s e d ; 8 0 - c o l u m nm o d e u t i l i z e s r e g i s t e r 2 o t h V D f o b a c k g r o u n d . H e r e ' s w h a t y o d t c h a n g e r e g i s t e r 2 6

P O K E D E C ( " D 6 0 0 " ) , 2 6 : P O K E D E C ( " D 6 0 1 " ) , X [ X = C O L O R ]

Y o c o u l d u s c o l o r c o n t r o l c h a r a c t e r s w i t h i n a P R I N T s t a t e m e n t , b u i t ' sn o t h e b e s t m e t h o d . P O K E i n g t h c o l o r i n t o a d d r e s s 2 4 i b e t t e r

m e t h o d :5

Page 65: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 65/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

P O K E 2 4 1 , X [ X = C O L O R N U M B E R F R O M T 1 5

L o o k f o m o m e n t a t h l a s t b i t s o b y t e i a t t r i b u t e R A M :

B I 4 b l i n k i n gB I 5 u n d e r s c o r e dB I 6 r e v e r s e v i d e oB I 7 2 n c h a r a c t e r s e

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

T w m e t h o d s o a c c e s s i n g t h s e c o n d c h a r a c t e r s e a r t p r e s s < C = > a n S H I F T s i m u l t a n e o u s l y , o t u s e a P R I N T c h a r a c t e r s t r i n g . T h e s e o t h e rf u n c t i o n s s t i l l a r e n ' t v e r y s i m p l e t g e a t b u p r o g r a m m i n g t h e m h a g o t t e n

l o e a s i e r !

P O K E 2 4 1 , P E E K ( 2 4 1 ) O 2 A 4 : P R I N T " T H I S L I N E B L I N K S ! "

P O K E 2 4 1 , P E E K ( 2 4 1 ) O R 2 * 5 : P R I N T " U N D E R S C O R E D ! "

H e r e ' s s a m p l e p r o g r a m :1 P R I N T " T H I S M A T T E R I " 2 P O K E 2 4 1 , P E E K ( 2 4 1 ) O R 2 A 3 P R I N T " I M P O R T A N T " ;4 P O K E 2 4 1 , P E E K ( 2 4 1 ) A N D N O T 2 A 5 P R I N T " ! "6 E N

5

Page 66: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 66/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h e w o r d I M P O R T A N T w i l l b l i n k i y o r e p l a c e 2 A w i t h 2 M U s i n g" 2 A 5 + 2 A 4 " i n s t e a d o 2 A a l o n e w i l l s i m u l t a n e o u s l y u n d e r l i n e A N b l i n kt h w o r d . N a t u r a l l y , 2 ^ w i l l b r i n g u r e v e r s e v i d e o , a n 2 A w i l l c a l l t h s e c o n d c h a r a c t e r s e t .

1 . 2 6 C U S T O M C H A R A C T E R G E N E R A T O R

E a r l i e r i t h i s s e c t i o n , w e x p l a i n e d t h d e s i g n o t h c h a r a c t e r g e n e r a t o ru s e d b t h 8 0 - c o l u m n c o n t r o l l e r . Y o u ' l l a l s o r e m e m b e r o u r m e n t i o n i n gt h a t e a c h c h a r a c t e r h a s a 1 m a t r i x . W h a v e a l r e a d y u s e d t h e s e 1 b y t e s i 1 d e f i n i t i o n . W e ' d l i k e t t a k e t h a t s t e p f u r t h e r .

L e t ' s a s s u m e t h a t y o s t a r t w i t h n o r m a l 8 X m a t r i x . O n l y 8 b y t e s a r u s e d i c h a r a c t e r d e f i n i t i o n , w i t h t h r e m a i n i n g b y t e s h i d i n g s o m e w h e r ei t h b a c k g r o u n d . T h m a c h i n e l a n g u a g e r o u t i n e b e l o w ( w e c a l l i " S w a p p e r " ) t r a d e s o f o n s e o b y t e s f o t h o t h e r s e t . T h i s m e a n s t h a ty o c a d e s i g n a n o t h e r c h a r a c t e r s e t , a n s w i t c h o f b e t w e e n " s t a n d a r d " a n y o u r o w c u s t o m c h a r a c t e r s .

0 B 0 0 A 0 L D # $ 0 0 : S t o r e f i r s t l o b y t e0 B 0 2 8 4 S T $ 4 C : p o i n t e r0 B 0 4 A 2 L D # $ 2 0 : S t o r e f i r s t h i g h b y t e0 B 0 6 8 4 S T $ 4 : p o i n t e r0 B 0 8 A 0 L D # $ 0 8 : S t o r e s e c o n d l o b y t e0 B 0 A 8 4 S T # $ 4 E r p o i n t e r0 B 0 C A 2 L D # $ 2 0 : S t o r e s e c o n d h i g h b y t eO B O E 8 5 4 F S T $ 4 : p o i n t e r0 B 1 0 A 0 L D # $ 0 7 : b y t e s0 B 1 2 9 T Y 0 B 1 3 4 P H : o s t a c k0 B 1 4 A 4 L D $ 4 : L o w b y t e o f i r s t p o i n t e r

5

Page 67: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 67/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o r t h e C - 1 2 8

0 B 1 6 A 0 B 1 8 2 0 B 1 B 4 0 B 1 C A 50 B 1 E A 0 B 2 0 2 0 B 2 3 A 0 B 2 5 A 0 B 2 7 2 0 B 2 A 6 0 B 2 B A 0 B 2 D A 0 B 2 F 2 0 B 3 2 E 0 B 3 4 D O0 B 3 6 E 0 B 3 8 E 0 B 3 A D 0 B 3 C E 0 B 3 E 6 0 B 3 F A 80 B 4 0 8 0 B 4 1 1 0 B 4 3 A 0 B 4 5 C 90 B 4 7 B O0 B 4 9 A 0 B 4 B 6 0 B 4 D 8 0 B 4 F A 90 B 5 1 6 0 B 5 3 8 0 B 5 5 A 0 B 5 7 6 0 B 5 9 8 0 B 5 B A 90 B 5 D 6 0 B 5 F 8 0 B 6 1 4 0 B 6 4 6 0 B 6 5 4 0 B 6 6 8 0 B 6 7 4

4 8 C O B4 4 8 O 4 4 6 O 4 4 6 O 4 0 4 4 0 4

C 4 4 I 0 4 4 0 4 4 0 4 4 0 4 4 1 O

L D J S P H L D L D J S L D L D J S P L L D L D J S I N B N I N I N B N I N P L T A D E B P L D C M B C L D A D S T L D A D S T L D A D S T L D A D S T J M R T P H T X P H

$ 4 $ 0 B 8 C$ 4 $ 4 $ 0 B 8 C$ 4 $ 4 $ 0 B 6 5$ 4 $ 4 $ 0 B 6 5$ 4 $ 0 B 3 E$ 4 $ 4 $ 0 B 3 E$ 4

$ 0 B 1 2$ 4 # $ 4 0$ 0 B 6 4# $ 0 8$ 4 $ 4 # $ 0 0$ 4 $ 4 # $ 0 8$ 4 $ 4 # $ 0 0$ 4 $ 4 $ 0 B 1 0

: H i - b y t e o f f i r s t p o i n t e r: P E E K s u b r o u t i n e: P u t c h a r , o s t a c k: L o - b y t e o f s e c o n d p o i n t e r: H i - b y t e o f s e c o n d p o i n t e r: P E E K s u b r o u t i n e: L o w b y t e o f f i r s t p o i n t e r: H i - b y t e o f f i r s t p o i n t e r: P O K E s u b r o u t i n e: R e a d c h a r a c t e r

L o - b y t e o s e c o n d p o i n t e rH i - b y t e o s e c o n d p o i n t e rP O K E s u b r o u t i n eL o w b y t e l = L o w b y t e 1 +

: N O - - H i g h l = H i g h 1 + : L o w b y t e 2 = L o w b y t e 2 + : N O — H i g h 2 = H i g h 2 + : B a c k t r e a d - i n v a l u e

: C o p y m o r e: H i - b y t e o f s e c o n d p o i n t e rr r e a c h e d $ 4 0 0 0 y e t ?: Y E S ~ r e a d y: L o w = L o w + c h a r , b y t e s: a d d e d: S t o r e s o m e m o r e: a d d: a d d c a r r y: S t o r e s o m e m o r e: L o w 2 = L o w 2 + 8 c h a r , b y t e s: a d d e d: S t o r e s o m e m o r e: a d d: a d d c a r r y: S t o r e s o m e m o r e: L o o p: G b a c k t B A S I C: H o l d c h a r .: G e t l o b y t e

5

Page 68: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 68/322

A b a c u s

0 B 6 80 B 6 90 B 6 A0 B 6 C0 B 6 F0 B 7 10 B 7 20 B 7 50 B 7 60 B 7 70 B 7 A0 B 7 C0 B 7 D0 B 8 00 B 8 30 B 8 60 B 8 80 B 8 B0 B 8 C0 B 8 D0 B 8 E0 B 8 F0 B 9 10 B 9 20 B 9 50 B 9 60 B 9 70 B 9 A0 B 9 C0 B 9 F0 B A 20 B A 40 B A 70 B A 9

S o f t w a r e

9 4 A 8 A 6 2 E 6 2 A 6 4 8 2 1 8 6 4 8 4 A 6 2 E 6 2 A 8 2 1 A 8 6

0 2 1 8

8 I

8 0 0 F 0

1

8

8 I 0 0 F 0 F

0

O

O

O D D D

O

O D D D

T Y P H L D S T L D P L J S I N P L J S L D P L J M S T B I B P S T R T P H T X P H L D P L J S I N P L J S L D S T B I B P L D S T R T

# $ 0 2$ 0 A 2 8# $ 1 2$ 0 B 8 0

$ 0 B 8 0# $ 1 F$ 0 B 8 0$ D 6 0 0$ D 6 0 0$ 0 B 8 3$ D 6 0 1

# $ 1 2$ 0 B 8 0

$ 0 B 8 0# $ 1 F$ D 6 0 0$ D 6 0 00 B 9 F$ D 6 0 1$ F

T r i c k s a n T i p s f o t h C - 1 2 8

: G e t h i g h b y t e: S e t c u r s o r f l a g: V D C R E 1 : P u t b a c k h i g h b y t e: S e t r e g i s t e r: V D C R E 1 : G e t l o w - b y t e: S e t r e g i s t e r: V D C R E 3 : G e t b y t e: R e a d y ; s e r e g i s t e r: R E G s e t: W a i t: W a i t e d l o n g e n o u g h ?: V a l u e g i v e n: R e a d y: G e t l o b y t e: G e t h i g h b y t e: R E G 1 V D : H i g h b y t e i a c c u m u l a t o r: S e t r e g i s t e r: R E G 1 V D : L o w b y t e i a c c u m u l a t o r: S e t r e g i s t e r: R E G 3 V D : S e t r e g i s t e r: W a i t: L o n g e n o u g h ?: R e a d v a l u e f r o m v i d e o R A : P u t o : R e a d y

5

Page 69: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 69/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

H e r e ' s t h m a t c h i n g B A S I C l o a d e r .5 0 0 0 F O X = 2 8 1 6 T O 2 9 8 55 0 1 0 R E A D A C C + A P O K E X , 5 0 2 0 N E X T5 0 3 0 I C < 1 7 0 5 7 T H E N P R I N T C H R $ ( 7 ) ; : L I S T5 0 4 0 D A T A 1 6 9 , 0 , 1 3 3 , 7 6 , 1 6 9 , 3 2 , 1 3 3 , 7 7 , 1 6 9 , 8 , 1 3 3 , 7 85 0 5 0 D A T A 1 6 9 , 3 2 , 1 3 3 , 7 9 , 1 6 0 , 7 , 1 5 2 , 7 2 , 1 6 5 , 7 6 , 1 6 6 , 7 75 0 6 0 D A T A 3 2 , 1 4 0 , 1 1 , 7 2 , 1 6 5 , 7 8 , 1 6 6 , 7 9 , 3 2 , 1 4 0 , 1 1 , 1 6 65 0 7 0 D A T A 7 6 , 1 6 4 , 7 7 , 3 2 , 1 0 1 , 1 1 , 1 0 4 , 1 6 6 , 7 8 , 1 6 4 , 7 9 , 3 25 0 8 0 D A T A 1 0 1 , 1 1 , 2 3 0 , 7 6 , 2 0 8 , 2 , 2 3 0 , 7 7 , 2 3 0 , 7 8 , 2 0 8 , 25 0 9 0 D A T A 2 3 0 , 7 9 , 1 0 4 , 1 6 8 , 1 3 6 , 1 6 , 2 0 7 , 1 6 5 , 7 9 , 2 0 1 , 6 4 , 1 7 65 1 0 0 D A T A 2 7 , 1 6 9 , 8 , 1 0 1 , 7 6 , 1 3 3 , 7 6 , 1 6 9 , 0 , 1 0 1 , 7 7 , 1 3 35 1 1 0 D A T A 7 7 , 1 6 9 , 8 , 1 0 1 , 7 8 , 1 3 3 , 7 8 , 1 6 9 , 0 , 1 0 1 , 7 9 , 1 3 35 1 2 0 D A T A 7 9 , 7 6 , 1 6 , 1 1 , 9 6 , 7 2 , 1 3 8 , 7 2 , 1 5 2 , 7 2 , 1 6 9 , 25 1 3 0 D A T A 1 4 1 , 4 0 , 1 0 , 1 6 2 , 1 8 , 1 0 4 , 3 2 , 1 2 8 , 1 1 , 2 3 2 , 1 0 4 , 3 25 1 4 0 D A T A 1 2 8 , 1 1 , 1 6 2 , 3 1 , 1 0 4 , 7 6 , 1 2 8 , 1 1 , 1 4 2 , 0 , 2 1 4 , 4 45 1 5 0 D A T A 0 , 2 1 4 , 1 6 , 2 5 1 , 1 4 1 , 1 , 2 1 4 , 9 6 , 7 2 , 1 3 8 , 7 2 , 1 6 25 1 6 0 D A T A 1 8 , 1 0 4 , 3 2 , 1 2 8 , 1 1 , 2 3 2 , 1 0 4 , 3 2 , 1 2 8 , 1 1 , 1 6 2 , 3 15 1 7 0 D A T A 1 4 2 , 0 , 2 1 4 , 4 4 , 0 , 2 1 4 , 1 6 , 2 5 1 , 1 7 3 , 1 , 2 1 4 , 1 3 35 1 8 0 D A T A 2 5 4 , 9 6

R U N n i n g t h e r o u t i n e b t y p i n g S Y D E C ( " 0 B 0 0 " ) t u r n s t h s c r e e n b l a c k ,a f t e r w h i c h t h c u r s o r r e a p p e a r s .

T h c h a r a c t e r g e n e r a t o r w i l l b s w i t c h e d i t h n o r m a l m a n n e r . T h s e c o n ds e o e i g h t b y t e s p e c h a r a c t e r w o u l d n o r m a l l y r e a d n u l l . S o s w i t c h i n g t h c h a r a c t e r g i v e s y o s p a c e s t d e f i n e . Y o c a c a l l b a c k t h o r i g i n a lc h a r a c t e r s e b c a l l i n g t h e r o u t i n e a g a i n . N o l o a d t h c h a r a c t e r e d i t o r i C h a p t e r 1 . 1 6 ; y o c a p r o d u c e n e c h a r a c t e r s t y o u r h e a r t ' s c o n t e n t . O n s m a l l c h a n g e w i l l h a v e t b m a d e i t h B A S I C p r o g r a m , t h o u g h , a l i n e5 0 6 5 :

5 0 6 5 A D = 8 1 9 2 + 1 6 * A + Y + 8

5

Page 70: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 70/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

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

1 . 2 7 S Y S T E M R O U T I N E S

M a y b e y o u V e b e e n l o o k i n g f o s p e c i a l r o u t i n e s t u s e w i t h 8 0 - c o l u m nm o d e , l i k e i n s t a n t a c c e s s t v i d e o R A M , o c o n t r o l l e r i n i t i a l i z a t i o n . W e l l ,t h b u i l t - i n R O r o u t i n e s f o r t h 4 0 - c o l u m n s c r e e n a r e n ' t l i m i t e d t t h a tm o d e ( t h e o p e r a t i n g s y s t e m w o r k s o b o t h s c r e e n s ) . I t ' s p o s s i b l e , t h e n , t ou s t h b u i l t - i n R O r o u t i n e s i 8 0 - c o l u m n m o d e t h r o u g h p r o g r a m m i n g .

N o w , o t t h e r o u t i n e s t h e m s e l v e s . E a c h r o u t i n e h a t w a d d r e s s e s ; t h ef i r s t i t h j u m p t a b l e f o r t h e e d i t o r , w h i l e t h s e c o n d i t h s t a r t i n g a d d r e s so t h r o u t i n e p r o p e r . W h i c h a d d r e s s y o u s i u t y o u .

S c r e e n I n i t i a l i z a t i o n

T h f o l l o w i n g r o u t i n e i n i t i a l i z e s t h e s c r e e n , s o m e w h a t a k i n t u s i n g< R U N - S T O P / R E S T O R E > :

S Y 4 9 1 5 2 / S Y S 4 9 2 7 5

6

Page 71: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 71/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

C o l o r O u t p u t o a C h a r a c t e r

T h i s w a m e n t i o n e d i C h a p t e r 1 . 9 . i c o n n e c t i o n w i t h t h 8 0 - c o l u m ns c r e e n . T h r o u t i n e s i m p l y p r i n t s c h a r a c t e r o f s p e c i f i e d c o l o r o t h s c r e e n , w i t h t h e p o s i t i o n d e p e n d i n g o t h c o n t e n t s o l o c a t i o n s 2 2 a n 2 2 5 :

S Y 9 1 5 5 , C H A R , C O L O RS Y 5 2 2 7 6 , C H A R , C O L O R

C H A R : ( 0 - 2 5 5 ) C h a r a c t e r i s c r e e n c o d e ( A = l , B = 2 , e t c . )C O L O R : ( 0 - 1 5 ) C o l o r t h c h a r a c t e r s h o u l d b ( 0 = b l a c k , l = w h i t e , e t c . )

8 0 - c o l u m n m o d e a l s o a l l o w s v a l u e s f r o m t 2 5 5 . T h a d d i t i o n a l b i t s h a v e t h e s e m e a n i n g s :

B I 4 B I 5 B I 6 B I 7

A S C I I O u t p u t

B l i n k i n gU n d e r s c o r eR e v e r s e v i d e o2 n c h a r a c t e r s e

T h p r e c e d i n g s u b s e c t i o n m e n t i o n e d t h " s c r e e n c o d e " . T h i s c o d e i C o m m o d o r e - s p e c i f i c , a n N O s t a n d a r d ; b u y o c a g e A S C I I o u t p u t l i k et h i s :

S Y 4 9 1 6 4 , A S C I I c o d eS Y S 5 0 9 8 9 , A S C I I c o d eP R I N T C H R $ ( A S C I I c o d e )

6

Page 72: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 72/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

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

P R I N T A S C ( " K " )

w h i c h w o u l d g i v e u s t h A S C I I c o d e n u m b e r f o K

P R I N T A S i m u l a t i o n

B a s i c a l l y , t h i s r o u t i n e l e t s y o f o r m a t t h i n g s o s c r e e n ( c a l l e d P R I N T A i s o m e B A S I C v e r s i o n s ) . H e r e i c o m m a n d w h i c h w o r k s i c o n j u n c t i o nw i t h t h m a c h i n e l a n g u a g e c a l l C H A R :

S Y 9 1 6 , A , c o l u m n , r o w : P R I N T . . .S Y S 5 2 3 3 0 , A , c o l u m n , r o w : P R I N T . . .

Y o c o u l d c o n c e i v a b l y u s t h i s t d i s p l a y c o m m a n d l i n e o n s c r e e n ( w i t hw a r n i n g s a n s y s t e m s t a t u s a d d r e s s e d t o t h e u s e r ) . Y o s e t h i s l o o p r o f e s s i o n a l s o f t w a r e ; n o y o c a h a v e i i u s e r - f r i e n d l y a t m o s p h e r e .

I y o w a n t t s e j u s t w h e r e t h P R I N T A c o m m a n d h a w r i t t e n a i t e m ,c h e c k t h e s e l o c a t i o n s :

1 R E P R I N T A W I T H R E T U R N2 S P = P E E K ( 2 3 6 ) : R E M C U R R E N T C O L U M N S T O R E D3 Z E = P E E K ( 2 3 5 ) : R E M C U R R E N T R O S T O R E D4 5 S Y 4 9 1 7 6 , 0 , 5 , 1 0 : P R I N T " C O M M A N D L I N E "6 7 S Y 4 9 1 7 6 , 0 , S P , Z E : R E M B A C K A G A I N8 P R I N T " B A C K T H E R E "9 E N

6

Page 73: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 73/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

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

D e f i n i t i o n o C h a r a c t e r S e t s

T h i s r o u t i n e i f o t h 8 0 - c o l u m n m o d e o n l y . I f b s o m e c h a n c e , y o d o n ' t l i k e y o u r c u s t o m c h a r a c t e r s e t , o i d o e s n ' t w o r k v e r y w e l l , t h i sr o u t i n e c o p i e s t h e o r i g i n a l c h a r a c t e r s e i n t o t h V D C s v i d e o R A M .

S Y 4 9 1 9 1 S Y S 5 2 7 4 8

4 0 / 8 0 - C o I u m n T o g g l i n g

W e V e m e n t i o n e d t h i s l i t t l e t r i c k b e f o r e :

S Y 4 9 1 9 4 S Y 5 2 5 2 6

F o m o r e i n f o r m a t i o n o t h e s e r o u t i n e s , p l e a s e s e e C h a p t e r 1 1 . 2 : T h K e r n a l .

6

Page 74: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 74/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . 2 8 H I G H - R E S O L U T I O N G R A P H I C S

T h C - 1 2 8 h a n e B A S I C ( B A S I C 7 . 0 ) , w i t h h o s t o g r a p h i cc o m m a n d s t m a k e h i - r e s p r o g r a m m i n g e a s i e r . T r o u b l e i s t h h i - r e sc o m m a n d s o n l y o p e r a t e i 4 0 - c o l u m n m o d e . W d o n ! t u n d e r s t a n d w h y o c a n f t u s t h e m i 8 0 - c o l u m n m o d e ; t h d o u b l e d r e s o l u t i o n ( 6 4 0 * 2 0 0p i x e l s ) w o u l d c o m e i h a n d y .

T h f o l l o w i n g p a g e s w i l l s h o w y o h o t d 8 0 - c o l u m n h i - r e s g r a p h i c s ,a n h o t u s t h i s i y o u r p r o g r a m s . I y o u ' r e w i t h o u t a R G m o n i t o r ,y o u ' l l h a v e t a m u s e y o u r s e l f w i t h s t a n d a r d g r a p h i c c o m m a n d s .

B i t - M a p M o d e

T h o s e o y o f o r m e r C - 6 4 a n V I C - 2 0 o w n e r s p r o b a b l y r e m e m b e r! t b i t - m a p m o d e " i h i g h - r e s o l u t i o n p r o g r a m m i n g : E s s e n t i a l l y , i s w i t c h e st h s c r e e n f r o m n o r m a l t h i g h - r e s o l u t i o n m o d e . V i d e o R A i n l o n g e rd i v i d e d i n t o s c r e e n m e m o r y , a t t r i b u t e R A a n t h e c h a r a c t e r g e n e r a t o r .T h c o m p u t e r w o r k s b i t - f o r - b i t w i t h v i d e o R A M . I o t h e r w o r d s , f o e v e r ys e ( o n ) b i t , p o i n t i w r i t t e n t t h s c r e e n .

O u 8 0 - c o l u m n s c r e e n w o u l d g i v e u r e s o l u t i o n a l o n g t h l i n e s o f

1 6 0 0 0 B Y T E S B I T S 1 2 8 , 0 0 0 S C R E E N P O I N T S

- w h i c h y o c a h a v e e i t h e r s e o u n s e t .

6

Page 75: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 75/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

S w i t c h i n g o t h b i t - m a p m o d e i a c c o m p l i s h e d b r e g i s t e r s 2 0 a n d 2 5

A t t r i b u t e R A s t a r t i n g a d d r e s s ( H I G H )2 B i 7 H i - R e s O n / O f f

L e t ' s t u r n t h e b i t - m a p o w i t h t h i s l i t t l e p r o g r a m :1 A = D E C ( " D 6 0 0 " ) : B = A + 12 P O K E A , 2 0 : P O K E B , 3 P O K E A , 2 5 : P O K E B , 1 2 8

I m m e d i a t e l y , t h s c r e e n i j u m b l e o p o i n t s a n l i n e s . T h e r e i m e t h o d t t h i s m a d n e s s , t h o u g h : e v e r y b i i t h 1 6 o v i d e o R A h a b e e ns w i t c h e d O N U s i n g t h m o d i f i e d P o k e r o u t i n e f r o m C h a p t e r 1 . 1 0 , t r t h i s :

S Y D E C ( " 1 8 0 0 " ) , 1 2 8 , 0 , 0

T h a t t u r n s o n p o i n t o a t h u p p e r l e f t - h a n d c o r n e r o t h e s c r e e n . N o t h a t y o h a v e t h p r i n c i p l e , h e r e ' s p r o g r a m t h a t d r a w s s i n e w a v e o t h s c r e e n . T h P L O T r o u t i n e w o r k s f a s t e r t h a n s o m e m a c h i n e c o d e r o u t i n e s ; i m a n a g e s t h i s t h r o u g h a t h m o d i f i e d P O K E ( s e e " P O K E S i m u l a t i o n " ) , b t h m o d i f i e d P E E K , a n c E R A S E ( c l e a r i n g t h g r a p h i c s c r e e n ) .

T y p e t h i s p r o g r a m i f i r s t a n s t a r t i t i t ' s t h g r a p h i c s i n i t i a l i z a t i o n r o u t i n e .1 F O = 6 1 4 4 T 6 1 8 22 R E A D C = C P O K E X 3 N E X T4 0 I F C < > 3 4 1 1 T H E N P R I N T " D A T A E R R O R I N 4 0 "5 D A T A 7 2 1 3 8 , 7 2 , 1 5 2 , 7 2 , 1 6 9 , 2 , 1 4 1 , 4 0 , 1 0 , 1 6 2 , 1 86 D A T A 1 0 4 , 3 2 , 2 7 , 2 4 , 2 3 2 , 1 0 4 , 3 2 , 2 7 , 2 4 , 1 6 2 , 3 1 , 1 0 47 D A T A 7 6 , 2 7 , 2 4 , 1 4 2 , 0 , 2 1 4 , 4 4 , 0 , 2 1 4 , 1 6 , 2 5 1 , 1 4 18 D A T A 1 , 2 1 4 , 9 6

6

Page 76: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 76/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

8 C 9 F O R X 6 6 5 6 T 6 6 9 71 0 R E A D A C C + A P O K E X , 1 1 N E X T1 2 I C < 4 3 5 6 T H E N P R I N T " D A T A E R R O R I 1 2 0 "1 3 D A T A 7 2 , 1 3 8 , 7 2 , 1 6 2 , 1 8 , 1 0 4 , 3 2 , 3 0 , 2 6 , 2 3 2 , 1 0 4 , 3 21 4 D A T A 3 0 , 2 6 , 1 6 2 , 3 1 , 1 4 2 , 0 , 2 1 4 , 4 4 , 0 , 2 1 4 , 1 6 , 2 5 11 5 D A T A 1 7 3 , 1 , 2 1 4 , 1 3 3 , 2 5 4 , 9 6 , 1 4 2 , 0 , 2 1 4 , 4 4 , 0 , 2 1 41 6 D A T A 1 6 , 2 5 1 , 1 4 1 , 1 , 2 1 4 , 9 61 6 C 1 7 F O R X 6 4 0 0 T 6 4 5 31 8 R E A D A C C + A P O K E X , 1 9 N E X T2 0 I C < 6 4 2 6 T H E N P R I N T " D A T A E R R O R I 2 0 0 "2 1 D A T A 1 6 2 , 6 4 , 1 6 9 , 0 , 1 6 0 , 0 , 1 3 3 , 2 5 4 , 7 2 , 1 3 8 , 7 2 , 1 6 22 2 D A T A 1 8 , 1 6 5 , 2 5 4 , 3 2 , 4 2 , 2 5 , 2 3 2 , 1 5 2 , 3 2 , 4 2 , 2 5 , 1 6 22 3 D A T A 3 1 , 1 6 9 , 0 , 3 2 , 4 2 , 2 5 , 1 0 4 , 1 7 0 , 1 0 4 , 2 0 0 , 2 0 82 4 D A T A 2 2 8 , 2 3 0 , 2 5 4 , 2 0 2 , 2 0 8 , 2 2 3 , 9 6 , 1 4 2 , 0 , 2 1 4 , 4 42 5 D A T A 0 , 2 1 4 , 1 6 , 2 5 1 , 1 4 1 , 1 , 2 1 4 , 9 6

A n n o f o t h s i n e w a v e :8 C O S I N E W A V E P L O T P R O G R A MD E ( " D 6 0 0 " ) : BP L O T : S Y S D E C ( " 1 8 0 0 " ) , B Y T E , L O , H IE R A S E : S Y S D E C ( " 1 9 0 0 " )P E E K : S Y S D E C ( " 1 A 0 0 " ) , L O , H I :P R I N T P E E K ( 2 5 4 ) ;

6 7 P O K E A , 2 5 : P O K E B , 1 2 8 : P O K E A , 2 0 : P O K E B , 8 S Y D E ( " 1 9 0 0 " )1 1 F O R X T 6 3 1 2 Y - I N T S I ( 1 0 1 0 0 ) 1 0 1 3 G O S U B 1 7 1 4 N E X T1 5 E N 1 7 R E P L O T1 8 A 8 1 9 0 Z l I N ( 8 2 0 A = A + Z l : H = I N T ( A D / 2 5 6 ) : L O = A D - 2 5 6 H 2 1 S Y D E ( " 1 A 0 0 " ) , L O , H I2 2 P E P E E K ( 2 5 4 ) O A ( ( Z * 8

6

1 2 3 4 5

R E R E R E R E

Page 77: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 77/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 3 S Y D E ( " 1 8 0 0 " ) , P E , L O , H I2 4 R E T U R N

T h m o d i f i e d P O K E h a b e e n d e s c r i b e d p r e v i o u s l y . H e r e i t h E R A S Er o u t i n e :

1 9 0 0 A 2 4 L D # $ 4 0 : C l e a r 6 p a g e s1 9 0 2 A 0 L D # $ 0 0 : f r o m $ 0 0 0 01 9 0 4 A 0 L D # $ 0 01 9 0 6 8 F S T $ F E : S t o r e h i g h b y t e1 9 0 8 4 P H r a n d r e t r i e v e1 9 0 9 8 T X 1 9 0 A P H : R e t r i e v e p a g e s1 9 0 B A 1 L D # $ 1 2 : V D C R E 1 1 9 0 D A 5 F E L D $ F E : L o a d h i g h - b y t e1 9 0 F 2 2 1 J S $ 1 9 2 A : S e t r e g i s t e r1 9 1 2 E 8 I N X : V D C R E 1 1 9 1 3 9 T Y : L o w b y t e i n t o a c c u m u l a t o r1 9 1 4 2 2 1 J S R $ 1 9 2 A : S e t r e g i s t e r1 9 1 7 A I L D # $ 1 F : V D C R E 3 1 9 1 9 A 0 L D # $ 0 0 : W r i t e i n t o v i d e o R A 1 9 1 B 2 2 1 J S $ 1 9 2 A : S e t r e g i s t e r1 9 1 E 6 P L : G e t h i g h b y t e1 9 1 F A T A : i X - r e g i s t e r1 9 2 0 6 P L : G e t p a g e s1 9 2 1 C I N 1 9 2 2 D O E B N E $ 1 9 0 8 : L o o p1 9 2 4 E 6 F E I N C $ F E : H i g h = H i g h + l1 9 C D E : P a g e = P a g e - l1 9 2 7 D O D B N $ 1 9 0 8 : S t i l l > 0 K e e p g o i n g .1 9 2 9 6 R T : R e t u r n t B A S I C1 9 2 A 8 0 D S T $ D 6 0 0 : S e t r e g i s t e r1 9 2 D 2 C 0 D B I $ D 6 0 0 : W a i t1 9 3 0 1 F B B P L $ 1 9 2 D : W a i t e d l o n g e n o u g h ?1 9 3 2 8 0 0 1 D S T $ D 6 0 1 : V a l u e g i v e n1 9 3 5 6 R T : R e t u r n

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

6

Page 78: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 78/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 . 2 9 C H A R A C T E R G E N E R A T O R S A G A I N

W c l o s e w i t h s h o r t p r o g r a m t h a t w i l l p e r f o r m h e a d s t a n d l i t e r a l l y . W s u g g e s t t h a t y o r e v i e w t h P O K E r o u t i n e ( $ 1 8 0 0 ) a n P E E K r o u t i n e( $ 1 A O O ) i t h p r e v i o u s c h a p t e r s .

H e r e ' s o n f o t h n o r m a l 8 X m a t r i x :

1 F O T 5 1 2 F O X T 3 A l = 8 1 9 9 + 8 * X - X 2 : H I I N T ( A l / 2 5 6 ) : L I - A 1 - 2 5 6 * H 14 S Y D E ( " 1 A 0 0 " ) , L 1 , H 15 W P E E K D E ( " F E " ) )6 A = 8 1 9 2 + 8 * X + X 2 : H = I N T ( A 2 / 2 5 6 ) : L = A 2 - 2 5 6 * H 27 S Y D E ( " 1 A 0 0 " ) , L 2 , H 28 W P E E K D E ( " F E " ) )9 S Y D E ( " 1 8 0 0 " ) , W 2 , L 1 , H 11 0 S Y D E C ( " 1 8 0 0 " ) , W 1 , L 2 , H 21 1 N E X T X 1 2 N E X T X

A n o n f o r t h e 1 m a t r i x ( y o u m u s t h a v e p r e v i o u s l y d e f i n e d 1 6 X 8m a t r i x t s e t h r e s u l t s o t h i s p r o g r a m ) :

1 F O T 5 1 2 F O X T 3 A = 8 2 0 7 + 1 6 * X - X 2 : H 1 = I N T ( A l / 2 5 6 ) : L 1 = A 1 - 2 5 6 * H 14 S Y D E ( " 1 A 0 0 " ) , L 1 , H 15 W l P E E K D E ( " F E " ) )6 A 2 = 8 1 9 2 + 1 6 * X + X 2 : H 2 = I N T ( A 2 / 2 5 6 ) : L 2 = A 2 - 2 5 6 * H 27 S Y D E ( " 1 A 0 0 " ) , L 2 , H 28 W 2 P E E K D E ( " F E " ) )9 S Y D E ( " 1 8 0 0 " ) , W 2 , L 1 , H 11 0 S Y D E ( " 1 8 0 0 " ) , W l , L 2 , H 21 1 N E X T X 1 2 N E X T

6

Page 79: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 79/322

C H A P T E R

Page 80: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 80/322

Page 81: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 81/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

B A S I C 7 . G R A P H I C S C O M M A N D S

2 . T H C I R C L E C O M M A N D

C I R C L E i o n o t h m o s t v e r s a t i l e c o m m a n d s i B A S I C 7 . 0 . A i t n a m es u g g e s t s , i c a d r a w c i r c l e s . B u i c a a l s o d r a w l i n e s , t r i a n g l e s ,r e c t a n g l e s , e l l i p s e s a n o t h e r g e o m e t r i c s h a p e s . T h c o m m a n d u s e s t h f o l l o w i n g f o r m a t :

C I R C L E c l r , x , y , x r , x y , s a , e a , r , i

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

c l N u m b e r o c o l o r m e m o r y ( 0 - 3 )x C o o r d i n a t e s f o c e n t e r p o i n tx R a d i u s i x - d i r e c t i o ny R a d i u s i y - d i r e c t i o ns S t a r t i n g a n g l e o t h c i r c l ee a E n d a n g l e o t h c i r c l e

A n g l e f o r o t a t i o nA n g l e f o d r a w n c i r c l e s e g m e n t s

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

7

Page 82: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 82/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

D r a w i n g a e l l i p s e r e q u i r e s t h e p r e v i o u s c o o r d i n a t e s , p l u s t h e Y - r e g i s t e rr a d i u s ( i u n e q u a l t t h e X - r e g i s t e r r a d i u s ) :

C I R C L E 0 , 1 6 0 , 1 0 0 , 1 0 , 3 0*

I y o w i s h t t u r n t h e e l l i p s e a t h m i d p o i n t , y o u l l h a v e t c h a n g e t h l a s tv a l u e . F o e x a m p l e :

C I R C L E 0 , 1 6 0 , 1 0 0 , 1 0 , 3 0 , 0 , 3 6 0 , 4 5

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

C I R C L E 0 , 1 6 0 , 1 0 0 , 3 0 , 3 0 , 0 , 1 8 0

H o c a w g e s q u a r e s o u o t h i s c o m m a n d ? T h l a s t p a r a m e t e r p e r f o r m st h a t f u n c t i o n , u s i n g t h e s e n u m b e r s :

0 - 4 44 6 7 9 9 1 - 1 1 91 2 1 2 1 - 1 7 91 8 0 - 2 5 5

C i r c l e ( h i g h e r t h n u m b e r , t h " r o u n d e r " )O c t a g o nH e x a g o nP e n t a g o nS q u a r e R e c t a n g l eU n e q u a l r e c t a n g l eE q u i l a t e r a l t r i a n g l eT r i a n g l e ( h i g h e r t h e v a l u e , t h m o r e u n e q u a l )L i n e s

7

Page 83: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 83/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 . P I C H A R T S

B A S I C 7 . 0 ' s g r a p h i c c o m m a n d s o f f e r l o t t h u s e r . O n o t h l i t t l ee x t e n s i o n s o t h C I R C L E c o m m a n d t h a t w e ' v e w r i t t e n i f a s c i n a t i n g o n e :P I C H A R T S . Y o c a i m a g i n e h o u s e f u l t h i s p r o g r a m c a n b e f o c a l c u l a t i o n p r o g r a m s , s t a t i s t i c s a n t h l i k e . N a t u r a l l y , o u r o u t i n e i s n ' t a g o o d a s o m e t h i n g " s t o r e - b o u g h t " ; w e ' l l l e a v e i t y o t i m p r o v e i t . . .

N o o t t h p r o g r a m . O n p r o b l e m t h a t c r o p p e d u p w a s t h f a c t t h a t t h c o l o r m e m o r y i n h i - r e s m o d e i s n ' t t h s a m e s i z e a t h g r a p h i c m e m o r y .S o w h a t c o l o r i a e n t i r e f i e l d w i t h 8 X p o i n t s . W c o u l d h a v eu s e d m u l t i c o l o r m o d e i n s t e a d , b u t h e n w w o u l d h a v e e n d e d u w i t h p i w i t h s h a r p e d g e s .

T h e s e p r o b l e m s o n l y o c c u r i e v e r y o t h e r s e g m e n t Y o c a t u r n s e g m e n tc o l o r s o f a l t o g e t h e r ( d e l e t e 3 4 0 - 3 9 0 ) t a v o i d s o m e o t h e s e d i f f i c u l t i e s .

1 R E P I C H A R T S2 G R A P H I C 0 , 3 I N P U T " S E G M E N T S I Z E " ; N3 I T H E N E N 4 D I A ( N )4 D I P ( N )5 D I T $ ( N )6 F O T O 7 P R I N T I " S E G M E N T "8 I N P U T " V A L U E " ; A ( I )9 A ( I )1 0 I N P U T " T E X T " ; T $ ( I )1 1 N E X T1 2 I N P U T " A N Y C H A N G E S ( Y / N ) " ; A $1 3 I L E F T $ ( A $ , l ) " Y T H E N B E G I N1 4 F O T 1 5 P R I N T I " " T $ ( I ) , A ( I )

7

Page 84: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 84/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 6 N E X T1 7 I N P U T " S E G M E N T N U M B E R " ; 1 8 P A ( I )1 9 I N P U T " V A L U E " ; A ( I )2 0 P A ( I )2 1 I N P U T " T E X T " ; T $ ( I )2 2 G O T O 1 2 2 3 B E N D2 4 R E M D R A W P I E C H A R T2 5 G R A P H I C 1 , 2 6 C O L O R 1 , 2 7 C I R C L E , 1 6 0 , 1 0 0 , 8 02 8 2 9 F O T O 3 0 P ( I ) A ( I ) 1 0 3 1 0 G P ( I )3 2 C I R C L E , 1 6 0 , 1 0 0 , 8 0 , 0 , 0 , 8 0 , G 3 . 3 3 I I N ( / 2 T H E N 5 2 3 4 R E M D R A W S E G M E N T S3 5 C O L O R 1 , . 3 6 C I R C L E , 1 6 0 , 1 0 0 , 8 0 , 0 , 0 , 4 0 , G 3 . 6 - P ( I ) 1 . 3 7 R D O T ( 0 3 8 R D O T ( 1 3 9 P A I N T , 2 , 4 0 N E X T4 1 R E T E X T P R I N T4 2 4 3 F O T 4 4 G = P ( I )4 5 C O L O R 1 , . 4 6 C I R C L E , 1 6 0 , 1 0 0 , 8 0 , 0 , 8 9 , 9 0 , G 3 . 6 - P ( I ) 1 . 4 7 C O L O R 1 , 4 8 R D O T ( 0 ) / 8

9 R D O T ( 1 ) /5 0 I 1 T H E N X L E ( T $ ( I ) )5 1 C H A R , X , Y , T $ ( I ) + S T R $ ( I N T ( 1 0 * P ( I ) . 5 ) / 1 0 5 2 N E X T5 2 C H A R , 1 4 , 2 4 , " ' S P A C E 1 T O C O N T . "5 3 G E K E A 5 4 G R A P H I C5 5 P R I N T " { R V S O N } N { R V S O F F } E W P I C H A R T "5 5 P R I N T " { R V S O N } O { R V S O F F } L D P I C H A R T "5 5 P R I N T " ' S P A C E 1 T E N D "

7

Page 85: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 85/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

5 6 G E K E A 5 7 I A $ " N T H E N R U 5 8 I A $ " O T H E N 1 2

T h i n p u t o d i f f e r e n t p o r t i o n s r e s u l t s w i t h a b s o l u t e v a l u e s a n n o p e r c e n t a g e s ; e v e r y p o r t i o n c a i n c l u d e t e x t s t r i n g o y o u r c h o i c e ( a l o n ga i t ' s n o t o l a r g e s t r i n g ) .

2 . B A G R A P H S

L e t ' s g o t a n o t h e r g r a p h i c a i f o c a l c u l a t i o n p r o g r a m s : B a g r a p h s .O u p r o g r a m s a r l i m i t e d t 8 " b l o c k s " p e c h a r a c t e r b l o c k ( i l o s e ss o m e t h i n g o t h 4 0 c h a r a c t e r s c r e e n ) . B l o c k l e n g t h i u t y o u ; a n t h h i g h e s t v a l u e w o u l d b e 1 0 0 ( a i n p e r c e n t ) . Y o u ' l l n o t e t h a t w e ' v e t a k e ng r e a t a d v a n t a g e o t h v e r t i c a l r e s o l u t i o n ( y o u ' l l f i n d t h e c a l c u l a t i o n s i n l i n e2 8 0 ) .

1 R E B A R G R A P H S2 G R A P H I C3 S C N C L R4 D I A ( 8 )5 D I F ( 8 )6 I N P U T " G R A P H N A M E " ; U $7 U U 8 F O L E ( U $ ) T 3 9 U U 1 0 N E X T1 1 I N P U T " N U M B E R O F B A R S ( 1 - 8 ) " ; D1 2 I O T H E N 1 1 1 3 F O T 1 4 P R I N T " B A R # " 1 5 I N P U T " H O W M U C H " ; A ( I )1 6 I A ( I ) M A T H E N M A A ( I )1 7 I N P U T " C O L O R ( 1 - 1 6 ) " ; F ( I )1 8 I F ( I ) O F ( I ) 1 T H E N 1 7

7

Page 86: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 86/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o r t h e C - 1 2 8

1 9 N E X T2 0 P R I N T " U S E T H I S D A T A ? "2 1 G E K E A 2 2 I A $ " N T H E N R U 2 3 G R A P H I C2 4 S C N C L R2 5 C O L O R 1 , 2 6 C H A R , 0 , 0 , U $ , l2 7 F O T 2 8 A ( I ) 1 9 A ( I ) M A 1 7 2 9 C O L O R 1 , F ( I )3 0 B O , 3 2 4 , A ( I ) , I 3 8 , 1 9 0 , 0 , 13 1 D R A W , 1 * 3 8 - 2 4 , A ( I ) T 1 * 3 8 - 1 8 , A ( I ) - 6 T 1 * 3 8

6 , A ( I ) - 6 T 1 * 3 8 6 , 1 8 4 T O 1 * 3 8 , 1 9 03 2 D R A W , 3 8 , A ( I ) T I 3 6 , A ( I )3 3 N E X T3 4 G E K E A 3 5 G R A P H I C3 6 S C N C L R3 7 P R I N T " ( O ) O L D G R A P H "3 8 P R I N T " ( N ) N E G R A P H "3 9 P R I N T " ( X ) E X I T "4 0 G E K E A 4 1 I A " X T H E N E N 4 2 I A " O T H E N G R A P H I C 1 G O T O 3 4 4 3 I A " N T H E N R U N4 4 G O T O 3 7

7

Page 87: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 87/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 . F U N C T I O N P L O T T E R

W h h a s n ' t w i s h e d f o s m o o t h a r c s ? M a x i m u m m i n i m u m c u r v er e p r e s e n t a t i o n s ? T h e n d l e s s m y s t e r i e s o f t a n g e n t ? T h i s p r o g r a m i c o m p l e t e c u r v e p l o t t e r . I t a k e s y o u r i n p u t , a n p l o t s i t

1 R E M F U N C T I O N P L O T T E R2 G R A P H I C 0 , 3 D E F F N Y ( X ) C O ( X 4 I N P U T " B E G I N N I N G F U N C T I O N R A N G E " / 5 I N P U T " E N D I N G F U N C T I O N R A N G E " ; 6 I T H E N 4 7 I N P U T " R E G I S T E R X - V A L U E " ; A 18 I N P U T " R E G I S T E R Y - V A L U E " / E l9 I A l E T H E N 7 1 0 ( A 3 2 1 1 S ( E l - A l 1 2 G R A P H I C 1 , 1 3 F O T 3 1 1 4 + 1 5 2 0 F Y ( A ) A l S 1 9 1 6 I = 1 9 A N D X T H E N D R A W 1 , I , X1 7 N E X T1 8 G E K E A 1 9 G R A P H I C

A f t e r R U N n i n g t h p r o g r a m , i p r o m p t s y o f o f o u r v a l u e s : t h r a n g e i

w h i c h t h f u n c t i o n w i l l b e g i n a n d e n d ( b e s u r e i t ' s o n l y a b i a y o u rs c r e e n ) ; t h X - r e g i s t e r ( - 5 t o 9 ) a n t h e Y - r e g i s t e r ( 0 t 9 )

I y o w i s h t e x p l o r e o t h e r f u n c t i o n s , c h a n g e l i n e 3 0 T g e s i n e w a v e ,d t h i s :

3 D E F Y ( X ) = S I N ( X )

7

Page 88: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 88/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h i s w i l l n o c a l c u l a t e i d e g r e e s , b u i r a d i a n s ( 3 6 0 d e g r e e s a r e e x a c t l yP r a d i a n s ) . T w g r o u n d r u l e s : X v a l u e m u s t b n l e s s t h a n 0 a n d n m o r e t h a n 3 . 1 4 1 5 ; a n t h Y - v a l u e c a n o n l y b b e t w e e n - a n 1

2 . W I N D O W S

W i n d o w s a r t h n e w e s t b u z z w o r d i c o m p u t e r e s e . N n e c o m p u t e r , n n e B A S I C , i w i t h o u t t h i s f e a t u r e ; a n t h C - 1 2 8 i n e x c e p t i o n .U n f o r t u n a t e l y , y o o n l y g e o n w i n d o w o t h C - 1 2 8 ; b u i i p o s s i b l e t g e m u l t i p l e w i n d o w s w i t h l i t t l e f i n a g l i n g .

2 . 5 . 1 H O T D W I N D O W S

Y o u V e l e a r n e d f r o m y o u r h a n d b o o k t h a t w i n d o w c a b s e u i n d i r e c tm o d e ; n p r o b l e m t h e r e , b u h o d y o f i n d i t T h b o r d e r s o t h w i n d o w c a b f o u n d b m o v i n g t h c u r s o r a r o u n d . T h s i m p l e s t m e t h o dt g e o u o t h w i n d o w s p a c e i t u s < R U N - S T O P / R E S T O R E > , w h i c hd u m p s t h w i n d o w . T h e s e m e t h o d s h a v e t h d i s a d v a n t a g e o s t o p p i n gr u n n i n g p r o g r a m . W h a v e a a n s w e r . I s n ' t w i n d o w j u s t a s m a l l s c r e e n ,a n s c r e e n a e n l a r g e d w i n d o w ? W e l l , w c o u l d c o n c e i v a b l y d r a w t h w i n d o w t f i t h e s c r e e n :

W I N D O W 0 , 0 , 7 9 , 2 4 ( 8 0 - c o l . s c r e e n )W I N D O W 0 , 0 , 3 9 , 2 4 ( 4 0 - c o l . s c r e e n )

7

Page 89: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 89/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 . 5 . 2 R E A D I N G W I N D O W C O O R D I N A T E S

Y o h a v e a l r e a d y h e a r d o t h c o m m a n d R W I N D O W . Y o c a d e t e r m i n et h r o ( R W I N D O W ( O ) ) , c o l u m n ( R W I N D O W ( l ) ) a n c h a r a c t e r m o d e( R W I N D O W ( 2 ) ) . I y o w a n t c o m p l e t e c o o r d i n a t e s , y o u ' l l n e e d t h a n d l et h m a t t e r b i d i f f e r e n t l y . Z e r o p a g e m e m o r y h a f o u r e x t r a b y t e s i w h i c ht h c o o r d i n a t e s f o t h e c u r r e n t w i n d o w a r s t o r e d ; t h e s e a r e a d d r e s s e s2 2 8 - 2 3 1 :

1 W I N D O W 1 , 1 1 , 2 0 , 2 22 P R I N T " B O T T O M B O R D E R : " ; P E E K ( 2 2 8 )3 P R I N T " T O P B O R D E R : " / P E E K ( 2 2 9 )4 P R I N T " L E F T B O R D E R : " ; P E E K ( 2 3 0 )5 P R I N T " R I G H T B O R D E R : " ; P E E K ( 2 3 1 )

T e x p e r i m e n t w i t h t h i s p r o g r a m , h i R U N - S T O P / R E S T O R E a n c h a n g et h w i n d o w p a r a m e t e r s .

2 . 5 . 3 S E T T I N G U A L T E R N A T E W I N D O W S

W m e n t i o n e d e a r l i e r t h a t t h s c r e e n c a o n l y h a v e o n e w i n d o w , a i n d i c a t e d b l o c a t i o n s 2 2 ( $ E 4 ) t 2 3 ( $ E 7 ) . H e r e a r e t h e d e f a u l t v a l u e s :

2 2 ( $ E 4 ) : 2 2 2 ( $ E 5 )2 3 ( $ E 6 )2 3 ( $ E 7 ) : 7 9 ( 8 0 - c o l . m o d e )

: 3 ( 4 0 - c o l . m o d e )7

Page 90: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 90/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

N o w , i y o t y p e i W I N D O W 1 , 2 , 3 , 1 4 t h o s e v a l u e s w i l l c h a n g e t o

2 2 ( $ E 4 ) : 1 2 2 ( $ E 5 )2 3 ( $ E 6 )2 3 ( $ E 7 )

( r e g a r d l e s s o s c r e e n s i z e )

Y o c a m a n a g e m a c h i n e l a n g u a g e p r o g r a m m i n g o w i n d o w s , j u s t b a l t e r i n g 2 2 t 2 3 d e c i m a l . P O K E 2 2 8 , 1 0 , f o e x a m p l e , s e t s t h b o t t o m a 1 0

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

2 . 5 . 4 V E R T I C A L S C R O L L I N G

T h W I N D O W c o m m a n d a l l o w s y o t p r o d u c e v e r t i c a l s c r o l l i n g w i t h o u th a s s l e s . T h p r o g r a m l o o k s l i k e t h i s :

1 I N P U T " T E X T " ; A $2 I N P U T " S P E E D " ; G3 W I N D O W 1 0 , 1 0 , 1 0 , 2 04 F O I = 1 T O L E N ( A $ )5 P R I N T M I D $ ( A $ , I , 1 )6 F O T = T 7 N E X T8 N E X T9 G O T O 4

8

Page 91: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 91/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

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

2 . 5 . 5 T H W I N D O W A I N P U T L I N E

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

R E = 3 ( 4 C O L . ) 7 ( 8 C O L . )1 R E I N P U T L I N E2 P R I N T C H R $ ( 2 7 ) ; " M " : R E M s c r o l l i n g s t o p p e d4 P R I N T " N A M E ? " ;5 O P E N 1 , 6 W I N D O W P E E K ( 2 3 6 ) , P E E K ( 2 3 5 ) , F , P E E K ( 2 3 5 )7 I N P U T # 1 , A $8 C L O S E9 W I N D O W 0 , 0 , F , 2 4

N O T E : T h c o n s t a n t ( l i n e s 6 9 0 s h o u l d b r e p l a c e d w i t h 3 ( 4 0 - c o l .s c r e e n ) o 7 ( 8 0 - c o l . ) .

A d d r e s s 2 3 h a t h p r e s e n t c o l u m n , a n 2 3 t h e c u r r e n t l i n e .

8

Page 92: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 92/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 . 5 . 6 P R I N T A W I T H W I N D O W S

M a n y b o o k s a n m a g a z i n e s h a v e w r i t t e n a b o u t s i m u l a t i n g P R I N T A o t h C - 6 4 . T h C - 1 2 8 h a c o m m a n d c a l l e d C H A R , u s e d t s i m u l a t eP R I N T A T B u t h i s i s n ' t a l w a y s t h e b e s t m e t h o d f o e x a m p l e , y o c a n ' tc o n t r o l t h e l e n g t h o t h o u t p u t . A l s o , t h e r e m i g h t b c o n t r o l c h a r a c t e r s i t h s t r i n g t b p r i n t e d . I y o u s t h W I N D O W , y o u ' l l c o m e o u a h e a d :

R E 3 ( 4 C O L . ) 7 ( 8 C O L . )1 R E P R I N T A T W I T H W I N D O W S2 I N P U T " R O W " ; R W3 I N P U T " C O L U M N " ; C L4 I N P U T " L E N G T H " ; L N5 F = P E E K ( 2 3 1 )5 P R I N T C H R $ ( 2 7 ) ; " M " : R E M S C R O L L I N G S T O P P E D6 W I N D O W C L , R W , C L + L N , L I N E6 P R I N T " H E L L O "7 W I N D O W 0 , 0 , F , 2 4

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

2 . 5 . 7 C L E A R I N G P A R T I A L S C R E E N

O n p a r t o t h W I N D O W c o m m a n d w h a v e n ' t t o u c h e d o i i t a b i l i t y t c l e a r w i n d o w c o n t e n t s . Y o h a v e y o u r c h o i c e o t w m e t h o d s :

A 1 W I N D O W 1 0 , 1 0 , 2 0 , 2 0 : P R I N T " ( C L R / H O M E ) "B 1 W I N D O W 1 0 , 1 0 , 2 0 , 2 0 , 1

8

Page 93: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 93/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h u s e s a r c l e a r f o r t h i s . W m a w a n t t e r a s e t h e w i n d o w , s t h a t w c a u s t h s c r e e n f o o t h e r t h i n g s . O t h o t h e r h a n d , y o m a w a n t t j u s t c l e a r t h e l o w e r h a l f o t h 4 0 - c o l u m n s c r e e n :

1 W I N D O W 0 1 2 , 3 9 , 2 4 ,2 W I N D O W 0 0 3 9 2 ( 0

Y o c a n , o c o u r s e , u s t h e s e c o m m a n d s i d i r e c t m o d e . J u s t t y p e i i o n l i n e , s e p a r a t i n g t h t w c o m m a n d s w i t h a c o l o n ( : ) .

2 . 5 . 8 S E C U R I N G W I N D O W C O N T E N T S

L e t ' s s a y o u ' r e i t h m i d d l e o f a w o r d p r o c e s s i n g p r o g r a m . Y o u ' v e f i l l e dt h e n t i r e s c r e e n , a n n o y o w a n t t s a v e t h t e x t . Y o g t t h m a i nm e n u , w h i c h a p p e a r s i s c r e e n w i n d o w . G o o d s o f t w a r e w i l l s t i l l r e t a i nt h t e x t u n d e r t h w i n d o w , a n d e v e n l e y o g b a c k t t h t e x t , e r a s i n g t h ew i n d o w . T h W I N D O W c o m m a n d o t h 1 2 d o e s n ' t d t h i s .

N o w , o n c e t h w i n d o w i c l e a r e d , t h c o n t e n t s a r l o s t f o r e v e r . W h a t t d o W c a m a k e t h w i n d o w s i m u l a t e 4 0 - c o l u m n s c r e e n :

1 R E S A V E S C R E E N W H I L E U S I N G W I N D O W S2 G R A P H I C 0 , 3 R E W R I T E S O M E T H I N G O S C R E E N4 F O 1 0 2 4 T O 2 0 2 45 P O K E I , 6 7 0 I F 2 5 T H E N J 8 N E X T9 X 5 R E D E F I N E W I N D O W

8

Page 94: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 94/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 0 X 1 1 1 X 3 1 2 X 2 1 2 R E S A V E C O N T E N T S U N D E R W I N D O W1 3 G O S U B 6 0 0 0 01 4 R E U S W I N D O W1 5 W I N D O W X 1 , X 2 , X 3 , X 4 , 11 6 I N P U T " T E X T " ; A $1 7 R E R E T U R N S C R E E N T N O R M A L1 8 W I N D O W 0 , 0 , 3 9 , 2 4 , 01 9 G O S U B 6 0 0 9 0 : R E R E C A L L I N F O2 0 G E K E B 2 1 G R A P H I C 0 , 2 2 E N 6 0 0 0 0 R E S A V E S C R E E N U N D E R W I N D O W6 0 0 1 0 D I X ( 3 5 0 )6 0 0 2 0 F O X T X 6 0 0 3 0 F O J X T X 6 0 0 4 0 X ( Z ) P E E K ( 4 1 0 2 4 )6 0 0 5 06 0 0 6 0 N E X T6 0 0 7 0 N E X T6 0 0 8 0 R E T U R N6 0 0 9 0 R E R E C A L L S C R E E N6 0 1 0 06 0 1 1 0 F O X T X 6 0 1 2 0 F O = X T X 6 0 1 3 0 P O K E I 4 1 0 2 4 , X ( Z )6 0 1 4 06 0 1 5 0 N E X T6 0 1 6 0 N E X T6 0 1 7 0 R E T U R N

T h i n t e r e s t i n g p a r t o t h i s p r o g r a m s t a r t s a t l i n e 6 0 0 0 0 . L i n e 6 0 0 1 0 d e f i n e sa a r r a y c a l l e d X ( ) . T h a r r a y s i z e i d e p e n d e n t o t h s i z e o t h w i n d o w s .I y o u s t h i s r o u t i n e i y o u r o w p r o g r a m s , m a k e s u r e n o t h e r a r r a y s o v a r i a b l e s e x i s t w i t h t h i s n a m e . I y o g i v e t h c o o r d i n a t e s f o o n e w i n d o w ,y o c a p u t h i s v a l u e d i r e c t l y i n t h e l o o p i n s t e a d o u s i n g v a r i a b l e s . I y o u s s e v e r a l w i n d o w s y o u s h o u l d u s e v a r i a b l e s .

8

Page 95: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 95/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

L i k e a l B A S I C p r o g r a m s , t h i s o n h a s m a l l d i s a d v a n t a g e : I t ' s t o o s l o w .H e r e ' s a s e c o n d v e r s i o n , i m a c h i n e l a n g u a g e :

1 4 0 01 4 0 21 4 0 31 4 0 51 4 0 71 4 0 91 4 0 B1 4 0 D1 4 0 F1 4 1 01 4 1 21 4 1 41 4 1 51 4 1 61 4 1 81 4 1 A1 4 1 C1 4 1 F1 4 2 01 4 2 21 4 2 41 4 2 61 4 2 81 4 2 A1 4 2 C1 4 2 E1 4 3 01 4 3 21 4 3 31 4 3 61 4 3 81 4 3 A1 4 3 C1 4 3 E1 4 4 01 4 4 11 4 4 31 4 4 51 4 4 8

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

A D

E F F F 0 F 0 E 0

2 F F 1

E 0 F F F F F F F

6 1 F F F F E 1 6 0

L D C L S B S T I N L D S T L D T X C P B E I N C L A D B C I N

1 J M C L A D B C I N S T S T L D A D S T L D I N

1 L D B N L D S T C P B N I N C P B C

1 L D B N

$ E $ E $ F $ F # $ 0 4$ F # $ 0 0$ E $ 1 4 1 F

# $ 2 8$ 1 4 1 0$ F $ 1 4 1 0$ E $ 1 4 2 6$ F $ F $ F $ F # $ 1 1$ F # $ F F$ 1 4 6 B$ 1 4 5 2( $ F B ) , Y

( $ F D ) , Y$ F $ 1 4 3 2$ E $ 1 4 5 9$ 1 4 6 B$ 1 4 4 E

: R i g h t w i n d o w b o r d e r: M i n u s l e f t b o r d e r: = l e n g t h o f w i n d o w: L e n g t h = l e n g t h + 1: S c r e e n s t a r t: s t o r e

: $ E 5 1 s w i n d o w l i n e ?: Y E S — t h e n $ 1 4 I F

: N e x t l i n eS t i l l n o t a l l

: R a i s e h i g h - b y t e p o i n t e r

: W i n d o w s t a r t l o : R a i s e h i g h - b y t e b y

S t o r e l o w - b y t e: i $ F a n $ F : H i g h - b y t e: 1 t h e r e: a n d i n h i g h - b y t e o t h : 2 n d c o u n t e r: R e a d o r w r i t e ?: W r i t e: C h a r . o s c r e e n

S t o r e: Y - r e g l e n g t h ?: U N E Q U A L — c o n t i n u e: X - r e g b o t t o m e d g e ?: s m a l l e r: W r i t t e n o r e a d ?: W r i t t e n , r e a d n e x t

8

Page 96: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 96/322

A b a c u s

1 4 4 A1 4 4 D1 4 4 E1 4 5 11 4 5 21 4 5 41 4 5 61 4 5 91 4 5 B1 4 5 C1 4 5 E1 4 6 01 4 6 2

S o f t w a r e

E 6 C 6 B 9 4 A 1 6 9 E E

6 1

6 1

F F 3 1 F

2 0 F F

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

$ 1 4 6 B$ 1 4 6 B

( $ F D ) , Y( $ F B ) , Y

$ 1 4 3 C$ F # $ 2 8$ 1 4 6 4$ F $ F

T r i c k s a n T i p s f o t h C - 1 2 8

: B a c k t B A S I C: R e t u r n t o B A S I C: C h a r . f r o m m e m o r y: w r i t t e n t o s c r e e n: L o w - b y t e i a c c u m u l a t o r: N e x t l i n e: N o v e r f l o w: R a i s e h i g h - b y t e b y: R a i s e h i g h - b y t e o 2 n

1 6 8 F S T $ F 1 4 6 6 8 F S T $ F 1 4 6 8 4 3 1 J M $ 1 4 3 01 4 6 B 0 B R

c o u n t e r b L o w - b y t e i 1 s c o u n t e r

: L o w - b y t e i 2 n c o u n t e r: B y t e f o r e a d ( 0

o w r i t e ( 1

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

G O T O 1 8 1 R E T E S T P R O G R A M2 G R A P H I C3 F O 1 0 2 4 T 2 0 2 34 P O K E I , A5 6 I 2 5 T H E N7 N E X T8 W I N D O W 1 0 , 1 0 , 2 0 , 2 09 S Y S 5 1 2 01 0 P R I N T " { C L R H O M E } "1 1 G E K E A 1 2 P R I N T A $ 1 3 I A C H R $ ( 1 3 ) T H E N 1 1 1 4 S Y S 5 1 2 01 5 W I N D O W 0 , 0 , 3 9 , 2 41 6 G R A P H I C1 7 E N

8

Page 97: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 97/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 8 R E R O U T I N E S A V E W I N D O W1 9 F O = 5 1 2 0 T 5 2 2 72 0 R E A D2 1 2 2 P O K E I , 2 3 N E X T2 4 I 1 6 1 0 7 T H E N B E G I N2 5 P R I N T " T E R R O R I D A T A "

6 E N 2 7 B E N D2 8 G O T O 1 2 9 D A T A 1 6 5 , 2 3 1 , 2 4 , 2 2 9 , 2 3 0 , 1 3 3 , 2 5 5 , 2 3 03 0 D A T A 2 5 5 , 1 6 9 , 4 , 1 3 3 , 2 5 2 , 1 6 2 , 0 , 1 3 83 1 D A T A 2 2 8 , 2 2 9 , 2 4 0 , 1 1 , 2 3 2 , 2 4 , 1 0 5 , 4 03 2 D A T A 1 4 4 , 2 4 6 , 2 3 0 , 2 5 2 , 7 6 , 1 6 , 2 0 , 2 43 3 D A T A 1 0 1 , 2 3 0 , 1 4 4 , 2 , 2 3 0 , 2 5 2 , 1 3 3 , 2 5 13 4 D A T A 1 3 3 , 2 5 3 , 1 6 5 , 2 5 2 , 1 0 5 , 1 7 , 1 3 3 , 2 5 43 5 D A T A 1 6 0 , 2 5 5 , 2 0 0 , 1 7 3 , 1 0 7 , 2 0 , 2 0 8 , 2 63 6 D A T A 1 7 7 , 2 5 1 , 1 4 5 , 2 5 3 , 1 9 6 , 2 5 5 , 2 0 8 , 2 4 23 7 D A T A 2 2 8 , 2 2 8 , 2 3 2 , 1 4 4 , 2 0 , 1 7 3 , 1 0 7 , 2 03 8 D A T A 2 0 8 , 4 , 2 3 8 , 1 0 7 , 2 0 , 9 6 , 2 0 6 , 1 0 73 9 D A T A 2 0 , 9 6 , 1 7 7 , 2 5 3 , 1 4 5 , 2 5 1 , 7 6 , 6 04 0 D A T A 2 0 , 1 6 5 , 2 5 1 , 2 4 , 1 0 5 , 4 0 , 1 4 4 , 44 1 D A T A 2 3 0 , 2 5 2 , 2 3 0 , 2 5 4 , 1 3 3 , 2 5 1 , 1 3 3 , 2 5 34 2 D A T A 7 6 , 4 8 , 2 0 , 0

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

8

Page 98: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 98/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 . 5 . 9 S I M U L A T I N G S E V E R A L W I N D O W S

W c a s i m u l a t e n u m b e r o w i n d o w s w i t h t h h e l p o t h B A S I C p r o g r a mi C h a p t e r 2 . 5 . 8 :

1 R E S A V E W I N D O W C O N T E N T S1 D I X ( 4 0 , 3 0 )2 G R A P H I C 0 , 3 R E F I L L S C R E E N W I T H T E X T4 F O 1 0 2 4 T 2 0 2 45 P O K E I , 6 7 0 I F J 2 5 T H E N8 N E X T8 R E P U 4 W I N D O W S O S C R E E N9 F O R K = T 3 1 0 X I = I N T R N ( 1 ) * 2 5 1 1 0 X 2 = I N T R N ( 1 1 4 1 1 R E S A V E C O N T E N T S U N D E R W I N D O W1 2 G O S U B 6 0 0 0 01 3 W I N D O W X 1 , X 2 , X 1 4 , X 21 4 F O T 2 0 R E P R I N T # ' S I N W I N D O W1 5 P R I N T C H R $ ( 4 8 ) ;1 6 N E X T1 6 N E X T1 7 R E T A K E O F F W I N D O W S O S C R E E N1 8 F O 3 T S T E P1 9 X X ( K , 2 9 )2 0 X = X ( K , 3 0 )2 1 W I N D O W X 1 , X 2 , X 1 4 , X 22 1 R E R E P L A C E C O N T E N T S2 2 G O S U B 6 0 0 9 02 3 N E X T2 4 G E K E A 2 5 G R A P H I C 0

6 E N 6 0 0 0 0 R E M E M O R I Z E C O N T E N T S U N D E R W I N D O W6 0 0 1 06 0 0 2 0 F O X T X

Page 99: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 99/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

6 0 0 3 0 F O X T X 6 0 0 4 0 X ( K , Z ) P E E K ( 4 1 0 2 4 )6 0 0 5 06 0 0 6 0 N E X T6 0 0 7 0 N E X T6 0 0 7 4 X ( K , 2 9 ) = X 6 0 0 7 6 X ( K , 3 0 ) X 6 0 0 8 0 R E T U R N6 0 0 9 0 R E R E C A L L C O N T E N T S6 0 1 0 06 0 1 1 0 F O X T X 6 0 1 2 0 F O X T X 6 0 1 3 0 P O K E I 4 1 0 2 4 , X ( K , Z )6 0 1 4 06 0 1 5 0 N E X T6 0 1 6 0 N E X T6 0 1 7 0 R E T U R N

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

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

T h p r o g r a m w o r k s w i t h 4 0 w i n d o w s , t h l a r g e s t n u m b e r p o s s i b l e i C - 1 2 8 v a r i a b l e m e m o r y . T h a r r a y X ( u s e s 4 1 0 0 4 b y t e s ( 4 r e f e r s t ot h n u m b e r o w i n d o w s , o c o u r s e ) . I y o u s f e w e r i y o u r p r o g r a m ,d e c r e a s e t h n u m b e r p r o p o r t i o n a t e l y .

I t ' s p o s s i b l e t e x t e n d w i n d o w o v e r t h e n t i r e s c r e e n . T h i s w o u l d r e q u i r e1 0 0 0 b y t e s f o s c r e e n c o n t e n t s , a n f o u r f o w i n d o w c o o r d i n a t e s , r e s u l t i n gi 1 0 0 4 . A g a i n , s m a l l e r w i n d o w r e q u i r e s a s m a l l e r n u m b e r .

8

Page 100: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 100/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 . S P R I T E H A N D L I N G

A n o t h e r i n d i c a t o r o B A S I C 7 . 0 ' s v e r s a t i l i t y i i t s p r i t e h a n d l i n gc o m m a n d s . T h s p r i t e g e n e r a t i n g a n e d i t i n g f e a t u r e s m a k e s p r i t e w o r kv e r y e a s y ( a o p p o s e d t t h C - 6 4 , w h e r e s p r i t e h a n d l i n g i m a d e v e r yd i f f i c u l t w i t h B A S I C 2 . 0 ) .

I g o e s w i t h o u t s a y i n g t h a t g a m e s m a k e u t h m a j o r i t y o s p r i t ea p p l i c a t i o n s . Y o c a a l s o u s s p r i t e s i n s t e a d o r e g u l a r c h a r a c t e r s ( s e eC h a p t e r 3 . 5 ) . T h n e x t p r o g r a m w a d e s i g n e d f o j u s t t h a t ; i c o p i e s t h c h a r a c t e r o y o u r c h o i c e i n t o t h s p r i t e e d i t o r , w h e r e y o u c a m a k e y o u ro w l e t t e r i n g ( e i g h t s p r i t e s a r a v a i l a b l e ) .

R E 2 . 6 A1 R E C H A R . C O P I E R T S P R I T E2 I N P U T " W H I C H S P R I T E " ; S3 0 I F O T H E N 2 4 I N P U T " C O L ( 0 - 1 3 ) " ; 5 0 I F O 1 T H E N 4 6 I N P U T " R O W ( 0 - 2 ) " ; 7 0 I F O Y T H E N 6 8 R E E R A S E S P R I T E9 F O T 6 1 0 B $ = B $ C H R $ ( 0 1 1 N E X T1 2 S P R S A V B $ , S1 3 I A N T H E N 1 7 1 4 F O T Z * 1 5 A A C H R $ ( 0 1 6 N E X T1 7 I N P U T " I N P U T C H A R . C O D E " ; 1 8 F O T 1 9 2 0 F O T 2 1 B A N K 1 2 2 P E E K ( 5 3 2 4 8 I

9

Page 101: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 101/322

A b a c a s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 3 I ( A N J 2 T H E N2 4 N E X T2 5 0 A $ = A C H R $ ( A C H R $ ( 0 C H R $ ( 0 2 6 N E X T2 7 S P R S A V A $ , S2 8 R E S P R I T E I M A G E G E N E R A T O R2 9 P O K E 8 4 2 , 4 83 0 P O K E 8 4 3 , 1 33 1 P O K E 2 0 8 , 23 2 S P R D E F

Y o n e e d t e n t e r t h e s c r e e n c o d e o t h e c h a r a c t e r y o w a n t . A f t e r y o u ' v ed o n e t h a t , t h s y s t e m c o p i e s t h e c h a r a c t e r i n t o t h S P R D E F m o d e , w h e r ey o h a v e s p r i t e c o m m a n d s a y o u r f i n g e r t i p s . T h e n a g a i n , t h e r e i s n ' tw h o l e l o y o c a d w i t h a c h a r a c t e r b u i l t w i t h i n a 8 X m a t r i x ; t h em a j o r i t y o t h s p r i t e f i e l d i l e f t u n u s e d . T h s e c o n d p r o g r a m d o u b l e s t h s i z e o t h s p r i t e s , a l l o w i n g y o t u s m u l t i c o l o r m o d e , a n d , f o i n s t a n c e ,m a k e s p r i t e w i t h s h a d o w t r a i l i n g b e h i n d i t

1 R E D O U B L E S I Z E C H A R C O P Y T S P R I T E2 I N P U T " W H I C H S P R I T E " ; T3 0 I F O T H E N 2 4 I N P U T " C O L . ( 0 - 5 ) " ; 5 0 I F O T H E N 4 6 I N P U T " R O W ( 0 - 1 ) " ; 7 I Y O T H E N 6 8 R E S P R I T E E R A S E9 F O T 6 1 0 B B C H R $ ( 0 1 1 N E X T1 2 S P R S A V B $ , T1 3 I A N T H E N 1 7 1 4 F O T 1 5 A $ A C H R $ ( 0 1 6 N E X T1 7 I N P U T " I N P U T C H A R C O D E " ; 1 7 R E C H A R C O P I E R1 8 F O T 1 9 0 A ( 0 ) =

9

Page 102: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 102/322

A b a c u s

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

S o f t w a r e

A ( l )F O F O B A N K

I ( T H E NN E X TN E X TA $ A $ N E X T

1 P E E KA N A ( Q )

A A

S P R S A V A R E P O K EP O K EP O K E

T T

( 5 3 2 4 8( = A ( Q )

C H R $ ( A C H R $ ( A

,

I

D D

A C T I V A T E S P R I T E8 4 2 ,8 4 3 ,2 0 8 ,

S P R D E F

4 1

T r i c k s a n T i p s f o t h ( J - 1 2 8

3 ) ( 3 ( 2 ( 2 + 1 )

C H R $ ( A ( 0 ) ) + C H R $ ( 0 C H R $ ( A ( 0 ) ) + C H R $ ( 0

I M A G E G E N E R A T O R

2 . 6 . 1 D E S I G N I L I S T I N G

O n t h i n g i l i t t l e p u z z l i n g a b o u t s p r i t e s : w h e r e a r e t h e s p r i t e c o n t e n t sg o i n g t b s t o r e d ? W e ' v e d e s i g n e d t h t w f o l l o w i n g p r o g r a m s t o f i x t h a tp r o b l e m . T h f i r s t p r o g r a m r e a d s D A T A s t a t e m e n t s t f o r m s p r i t e . T h a ti s t h e r e ' s n D A T A p e s e b u r a t h e r s t r i n g s , t h e y a r f a s t e r a n s i m p l e rf o t h c o m p u t e r t h a n d l e , a n c h a n g e s a r e a s i l y m a d e o t h e s e s p r i t e s .L i k e m o s t o t h B A S I C l i s t i n g s , t h i s o n e , t o o , i s l o w ; b u t i b e a t s b u y i n gp r o g r a m .

1 R E D E S I G N I M A G E L I S T I N G2 I N P U T " H O W M A N Y S P R I T E S " ; S3 P O K E 5 3 2 9 6 , 1 R E S E F A S T M O D E4 F O T S P R I N T " R E A D I N G I S P R I T E # " 5 A "

9

Page 103: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 103/322

Page 104: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 104/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

W h i l e t h d a t a i b e i n g r e a d i n t h c l o c k f r e q u e n c y i d o u b l e d ( F A S T ) ,w h i c h i n c r e a s e s e x e c u t i o n t i m e , b u t u r n s o f t h 4 0 - c o l u m n s c r e e n . W h e nt h e r o u t i n e f i n i s h e s , t h s c r e e n r e t u r n s t o n o r m a l , a n s p r i t e i d i s p l a y e do t h s c r e e n .

N o e v e r y p r o g r a m u s e s t h i s m e t h o d o r e a d i n g s p r i t e s a D A T A s t a t e m e n t s ,s w w r o t e t h s e c o n d p r o g r a m i t h i s c h a p t e r , w h i c h a u t o m a t i c a l l y c r a n k so u D A T A s t a t e m e n t s .

1 R E D E S I G N I M A G E L I S T I N G2 I N P U T " H O W M A N Y S P R I T E S " ; S3 F O T 4 F O T 6 S T E P5 B " 6 F O T 7 F O T S T E P8 0 I F ( P E E K ( 3 5 2 0 + G + I + T * 6 4 ) A N D 2 A J ) 2 " T H E N

B $ B " * " : E L S E B = B " . 9 N E X T1 0 N E X T1 1 P R I N T S T R $ ( 1 0 0 0 0 1 0 T ; D A T A " ; B $1 2 P R I N T " G O T O 1 7 0 { C R S R U P } { C R S R U P } { C R S R U P } " ; :

R E 3 * C U R S O R1 3 P O K E 8 4 2 , 1 31 4 P O K E 8 4 3 , 1 31 5 P O K E 2 0 8 , 21 6 E N 1 7 N E X T1 8 N E X T1 9 R E M D A T A A T 1 0 1 0 0 -

O n c e t h r o u t i n e i d o n e , r e m o v e t h o l D A T A l i n e s w i t h t h D E L E T Ec o m m a n d .

9

Page 105: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 105/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 . 6 . 2 C O M F O R T A B L E S P R I T E E D I T I N G

A f t e r d e f i n i n g s p r i t e , y o m i g h t l i k e t o a l t e r i t F o e x a m p l e , y o u ' v ed e s i g n e d a s p a c e s h i p , a n y o d i s c o v e r t h a t i w a s n ' t t h a t g r e a t d e s i g n .I n s t e a d o r e d o i n g i c o m p l e t e l y , j u s t r u i t h r o u g h t h i s p r o g r a m . A h b u t h e r e ' s m o r e i c a a l s o e x p a n d t h s p r i t e i t w a x i s A N r o t a t e t h s p r i t e .

1 R E * * * * * * * * * * * * * * * S P R I T E - H A N D L I N G2 D I B ( 6 0 0 )3 D I A ( 6 2 )4 R E * * * * * * * * * * * * * * * M E N U5 I N P U T " C O L O R 1 " ; F6 I N P U T " C O L O R 2 " ; D7 I N P U T " C O L O R 3 " ; E8 S P R C O L O R D , 9 P R I N T " 1 0 P R I N T " 1 1 P R I N T " 1 2 P R I N T " 1 3 P R I N T " 1 4 P R I N T " 1 5 P R I N T "

V E R T I C A L M I R R O R "H O R I Z O N T A L M I R R O R "R O T A T E 1 8 D E C "D I S P L A Y S P R I T E "I N V E R T "R O T A T E 9 D E G . "R O T A T E 2 7 D E G . "

1 6 I N P U T " C O M M A N D " ; B1 6 I T H E N E N 1 7 I O T H E N G O T O 1 1 8 I N P U T " S P R I T E - N U M B E R " ; 1 9 I O T H E N G O T O 1 8 2 0 I B < T H E N I N P U T " M U L T I C O L O R ( O N = 1 / O F F = 0 ) " ; 2 1 E L S E2 2 P O K E 5 3 2 9 6 , 12 3 I T H E N 2 7 2 4 F O T 6 2 5 A ( I ) P E E K ( 3 5 2 0 6 I 2 6 N E X T2 7 O G O S U B 3 6 0 , 4 3 0 , 5 6 0 , 4 2 0 , 6 0 0 , 8 3 0 , 6 5 02 8 R E * * * * * * * S P R I T E V E R T I C A L M I R R O R2 9 P O K E 5 3 2 9 6 , 0

9

Page 106: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 106/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

3 0 G R A P H I C 0 , 3 1 S P R I T E S , 1 , F , 1 , 1 , 1 , M3 2 M O V S P R S , 1 0 0 , 1 0 03 3 G E K E A 3 4 S P R I T E S , 3 5 G O T O 9 3 6 R E * * * * * * * * * * * * V E R T I C A L M I R R O R3 7 F O T 6 S T E P3 8 F O J T 3 9 P O K E 3 5 2 0 6 4 J , A ( 6 0 J 4 0 N E X T4 1 N E X T4 2 R E T U R N4 3 R E * * * * * * * * * * * * H O R I Z O N T A L M I R R O R4 4 F O T 6 S T E P4 5 F O J T 4 6 4 7 F O X T S T E P4 8 I ( A ( I + 2 - J ) A N 2 A X ) = 2 A X T H E N W + 2 A ( 7 - X )4 9 I = A N ( A ( I + 2 - J ) A N 2 A ( X - 1 ) ) = 2 A ( X - l )

T H E N - W + 2 A ( 7 - ( X - 1 ) )5 0 N E X T5 1 A ( J 5 2 P O K E 3 5 2 0 + 6 J , A ( I J 5 3 N E X T5 4 N E X T5 5 R E T U R N5 6 R E * * * * * * * * * R O T A T E 1 8 0 D E G .5 7 G O S U B 3 6 5 8 5 9 G O T O 2 4 6 0 R E * * * * * * * * * * * * * * I N V E R T6 1 F O T 6 6 2 P O K E 3 5 2 0 + S * 6 4 + I , 2 5 5 A N D ( - P E E K ( 3 5 2 0 + S * 6 4 + I ) - 1 )6 3 N E X T6 4 R E T U R N6 5 R E * * * * * * * * * R O T A T E 2 7 D E G .6 6 F O T 2 6 7 F O T 6 8 F O T 6 9 B ( ( I * 3 + J ) * 8 + 7 - G ) ( P E E K ( 3 5 2 0 + S * 6 4 + I * 3 + J )

A N 2 A G ) / 2 A G7 0 N E X T

9

Page 107: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 107/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

7 1 P O K E 3 5 2 0 + S * 6 4 + I * 3 + J / 07 2 N E X T7 3 N E X T7 4 F O T 7 5 F O J T 2

6 F O T 7 7 I B ( 1 9 ( G 2 4 T H E N 7 9 7 8 P O K E 3 5 2 0 + S * 6 4 + I + ( 2 0 - J ) * 3 ,

P E E K ( 3 5 2 0 + S * 6 4 + I + ( 2 0 - J ) * 3 ) O 2 A 9 N E X T

8 0 N E X T8 1 N E X T8 2 R E T U R N8 3 R E * * * * * * * * * * R O T A T E 9 D E G .8 4 G O S U B 6 5 8 5 8 6 G O T O 2 4

D u r i n g t h r e c a l c u l a t i o n , t h 4 0 - c h a r a c t e r s c r e e n f l i c k e r s l o t , w h i c h t e l l s u t h a t t h " h i g h s p e e d " m o d e ( F A S T ) i o a g a i n . T h s y s t e m w i l l r e t u r n t n o r m a l w h e n t h p r o g r a m i f i n i s h e d , a n t h n e s p r i t e i d i s p l a y e d o t h s c r e e n . P r e s s i n g a n k e w i l l r e t u r n y o t t h m e n u .

H e r e ' s a q u i c k r u n d o w n o t h f u n c t i o n s :

1 M i r r o r i n gT h s p r i t e w i l l b t u r n e d u p s i d e - d o w n . T h p o i n t D A T A w i l ln o b i n v e r t e d .

2 M i r r o r i n g b a x i s .H a r d t d e s c r i b e ; s p l i t s i n v e r t e d s p r i t e .

3 T u r n 1 8 D e g r e e sS e l f - e x p l a n a t o r y .

9

Page 108: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 108/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

4 D i s p l a y S p r i t eT h i s l e t s y o s e t h s p r i t e a a n t i m e .

5 R e v e r s eN o t b c o n f u s e d w i t h m i r r o r i n g t h s p r i t e c o m e s u p a " n e g a t i v e " ( i . e . , r e v e r s e v i d e o ) . M u l t i c o l o r m o d e i n o i t h i s p r o g r a m , b u y o c a s t i l l u s t h s p r i t e i n t h a t m o d el a t e r .

6 T u r n 9 D e g r e e sS e l f - e x p l a n a t o r y .

7 T u r n 2 7 D e g r e e sS e l f - e x p l a n a t o r y .

C C o p y s p r i t eS e l f - e x p l a n a t o r y .

F i n a l n o t e : P r e s s i n g " C c o p i e s t h o r i g i n a l s p r i t e , s y o h a v e b a c k u p i y o d e s t r o y y o u r o r i g i n a l d u r i n g e x p e r i m e n t a t i o n .

9

Page 109: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 109/322

C H A P T E R

Page 110: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 110/322

Page 111: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 111/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

U S E F U L P R O G R A M S

T h n e x t f e p a g e s c o n t a i n p r o g r a m s d e s i g n e d t h e l p y o i y o u re v e r y d a y c o m p u t i n g . W e V e m a d e t h e m f a i r l y s i m p l e , s y o c a m a k e a n c h a n g e s a p p r o p r i a t e t y o u r w o r k . H a v e f u n !

3 . E R R O R H A N D L I N G

" T h e f i r s t s t e p i t h e h a r d e s t " i w e l l - k n o w n m a x i m . f e l l o w n a m e dM u r p h y s a i d i b e s t : " I f s o m e t h i n g c a n g w r o n g , i w i l l " B o t h t h e s es a y i n g s s e e m t a p p l y t t h p r o g r a m m e r . I t h b e g i n n i n g p h a s e s o p r o g r a m m i n g , w s a t o o u r s e l v e s , " W h a t a r a l t h e s e e r r o r m e s s a g e s ? "T h m o r e a d v a n c e d p r o g r a m m e r h a t h a d v a n t a g e o k n o w i n g s o m e o t h e r r o r m e s s a g e s , b u h s t i l l e n d s u d o i n g l o o f d e b u g g i n g .

S o m e B A S I C v e r s i o n s h a v e H E L P f u n c t i o n , a n t h C - 1 2 8 i n e x c e p t i o n . T h i s f u n c t i o n f i n d s t h e e r r a n t l i n e , a n s h o w s t h e e r r o r i r e v e r s e v i d e o ( 4 0 - c o l u m n m o d e ) o u n d e r s c o r i n g ( 8 0 - c o l u m n s ) . Y o c a a l s o u s t h 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 .

A l t h o u g h t h C - 1 2 8 h a n O E R R O R G O T O c o m m a n d , i d o e s h a v eT R A P c o m m a n d . T y p e t h c o m m a n d , f o l l o w e d b l i n e n u m b e r , a n d a e r r o r w i l l c a u s e t h s y s t e m t j u m p t o t h a t l i n e .

1 0

Page 112: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 112/322

Page 113: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 113/322

Page 114: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 114/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

N U M B E R ( h e x )

$ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 2 $ 2 $ 2 $ 2 $ 2 $ 2 $ 2 $ 2 $ 2 $ 2

N U M B E R ( d e c ) : E R R O R: T O O M A N Y F I L E S: F I L E O P E N: F I L E N O O P E N: F I L E N O F O U N D: D E V I C E N O P R E S E N T: N O T I N P U T F I L E: N O T O U T P U T F I L E

M I S S I N G F I L E N A M E: I L L E G A L D E V I C E N U M B E R

1 : N E X T W I T H O U T F O R1 : S Y N T A X1 : R E T U R N W I T H O U T G O S U B1 : O U T O D A T A1 : I L L E G A L Q U A N T I T Y1 : O V E R F L O W1 : O U T O M E M O R Y1 r U N D E F ' D S T A T E M E N T1 : B A D S U B S C R I P T1 : R E D I M ' D A R R A Y2 : D I V I S I O N B Z E R O2 : I L L E G A L D I R E C T2 : T Y P E M I S M A T C H2 : S T R I N G T O L O N G2 : F I L E D A T A2 : F O R M U L A T O C O M P L E X2 : C A N ' T C O N T I N U E2 : U N D E F ' D F U N C T I O N2 : V E R I F Y

: L O A D3 : B R E A K3 : C A N ' T R E S U M E3 : L O O P N O F O U N D3 3 : L O O P W I T H O U T D 3 : D I R E C T M O D E O N L Y3 : N G R A P H I C S A R E A3 6 : B A D D I S K3 : B E N D N O F O U N D3 : L I N E N U M B E R T O O L A R G E3 : U N R E S O L V E D R E F E R E N C E4 : U N I M P L E M E N T E D C O M M A N D4 : F I L E R E A D

1 0

Page 115: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 115/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 T h e U s e o R E S U M E

T y p i n g R E S U M E w i t h o u t l i n e n u m b e r o N E X T c a r e s u l t i a e n d l e s sl o o p , w h i c h p r o b a b l y w a s n ' t w h a t t h d e s i g n e r s o B A S I C 7 . h a i m i n d . T r t h i s p r o g r a m o u t :

T R A P 1 0 0 01 C A T A L O G2 E N 1 0 0 0 I E R = 5 T H E N P R I N T C H R $ ( 1 9 ) ; " P L E A S E T U R N

D I S K D R I V E O N " : R E S U M E1 0 1 0 E N

T u r n y o u r d i s k d r i v e o f a n r u t h p r o g r a m , w h i c h l o o k s f o r t h e d i s kd i r e c t o r y . S i n c e t h e d r i v e i o f f , t h s y s t e m r e s p o n d s w i t h " D E V I C E N O P R E S E N T " a n j u m p s t l i n e 1 0 0 0 . S e e i n g e r r o r n u m b e r 5 t h p r o g r a ma s k s y o t s w i t c h t h d i s k d r i v e o n . T h R E S U M E c o m m a n d c a u s e s t h p r o g r a m t c o n t i n u e d i s p l a y i n g t h i s m e s s a g e u n t i l t h d r i v e i f i n a l l y t u r n e do n

N o f o s a m p l e o R E S U M E w i t h l i n e n u m b e r :T R A P 1 0 0 0

1 I N P U T " F I L E N A M E " ; N A $2 I N P U T " D E V I C E N U M B E R " ; D V3 L O A D N A $ , D V4 E N 1 0 0 0 I E R = 4 T H E N P R I N T " T H E R E I N O S U C H

F I L E N A M E " : R E S U M E 1 1 0 1 0 I E R = 5 T H E N P R I N T " P L E A S E T U R N D I S K D R I V E

O N " : R E S U M E1 0 2 0 I E R = 8 T H E N P R I N T " P L E A S E G I V E M E

F I L E N A M E " : R E S U M E 1 1 0 3 0 I E R = 9 T H E N P R I N T " P I C K A D E V I C E N F R O M

1 5 " : R E S U M E 2 1 0 4 0 E N

1 0

Page 116: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 116/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

E s s e n t i a l l y , t h i s l i t t l e r o u t i n e c a m a k e p r o g r a m " f o o l p r o o f . T h a t i s i w o n ' t s t o p i y o g i v e i b a f i l e n a m e , h a v e y o u r d i s k d r i v e t u r n e d o f f ,p r e s s < R E T U R N > o t h f i l e n a m e p r o m p t , o r g i v e i " n o n - d i s k " d e v i c ea d d r e s s a n i w i l l t e l l y o w h a t t h p r o b l e m i s i s i m p l e E n g l i s h .

3 . L I S T E R L I S T I N G U T I L I T Y

Y o u ' v e j u s t s p e n t y o u r l a s t d o l l a r o c o m p u t e r m a g a z i n e . Y o r u h o m e ,s w i t c h o t h c o m p u t e r , a n s t a r t t y p i n g i p a g e u p o n p a g e o p r o g r a ml i s t i n g . W a i t m i n u t e ; t h e r e ' s s o m e t h i n g w r o n g h e r e . T h p r o b l e m i s a i s m a n y c a s e s , t h e p r i n t o u t i n t h e m a g a z i n e i f r o m C o m m o d o r ep r i n t e r . Y o u k n o w w h a t t h a t m e a n s : U n r e a d a b l e c o n t r o l c h a r a c t e r sw h a t ' s t h i s r e v e r s e d h e a r t ? A n t h i s r e v e r s e - v i d e o c r o s s ? E v e n t u a l l y y o g i v e u a n e i t h e r b u t h c o m p a n i o n d i s k , o j u s t s t o p b u y i n g t h m a g a z i n e .

S o m e c o m p u t e r m a g a z i n e s h a v e h e a r d t h c r i e s o t h e i r r e a d e r s . T h e s ep u b l i s h e r s u s s p e c i a l l i s t i n g t e c h n i q u e t a l t e r t h p r o g r a m l i s t i n g s t h a t ,i n s t e a d o c o n t r o l c h a r a c t e r s , d e s c r i p t i v e t e r m o a b b r e v i a t i o n a p p e a r ( e . g . ," { C L R } " o " { D O W N } " ) i t h l i s t i n g .

T h e r e ' s a a d v a n t a g e t t h i s : I i n c r e a s e s t h e m a r k e t a b i l i t y o t h m a g a z i n e .I t ' s l o e a s i e r f o u s e r t j u s t p u n c h C R S R D O W N f r o m t h l i s t i n g ,r a t h e r t h a n l o o k a t h g r a p h i c s y m b o l , f l i p t h r o u g h t h m a n u a l , f i g u r e o u w h a t t h a t s y m b o l a c t u a l l y d o e s , t h e n t y p e i i n O t h o t h e r h a n d , t h e r e ' sg r e a t e r f r u s t r a t i o n t h a t i s n ' t c u r e d . H o m a n y s p a c e s d p u h e r e ? A r t h e r e 3 o 4 ( o 3 8 ) ? H o m a n y C R S R D O W N s ? A n s o n . . . .

1 0

Page 117: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 117/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

O u L I S T E R f i x e s t h a t p r o b l e m : A n s p a c e s a n c o n t r o l c h a r a c t e r s i q u o t e s a n i n u m b e r w i l l b p r i n t e d o u w i t h t h e i r a m o u n t s . P l u s , e a c hc o m m a n d w i l l b s e p a r a t e d b s p a c e . T h i s c a b g o d s e n d t t h b e g i n n e r . I t ' s l o e a s i e r t o r e a d ;

F O E T P P E E K ( E S ) A N N O O

t h a n i i t r e a d :

F O R E S = 1 T O P : W = P E E K ( E S ) A N D N O T 5 O R 8 .

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

N o f o r t h e p r o g r a m : T y p e i i a n S A V E i w i t h t h n a m e L I S T E Rb e f o r e t r y i n g i o u t .

R E M L I S T I N G O L I S T E R C H A P T E R 3 . 2 . AP R I N T " { C L R H O M E } P L E A S E W A I T . . . "

1 D I M T K $ ( 2 5 5 ) , F E $ ( 2 9 ) , C E $ ( 8 ) , S Z $ ( 1 5 9 )2 F O T 1 2 5 : R E A D W E $ , A $ : T K $ ( D E

( W E $ ) ) A $ N E X T2 F O T 2 7 R E A D W E $ , A $ : F E $ ( D E

( W E $ ) ) A $ N E X T2 F O T 7 R E A D W E $ , A $ : C E $ ( D E ( W E $ ) )A $ N E X T2 F O T 2 5 R E A D W E $ , A $ : S Z $ ( D E

( W E $ ) ) A $ N E X T3 A = 7 1 6 84 P R I N T " { C L R H O M E } • S ' C R E E N O ' P ' R I N T E R ? "4 D 0 G E K E A $ : I F A " D T H E N D R

1 G O T O 5 4 I A < " B T H E N 4 5 P R I N T " { C R S R D O W N } ' U ' P P E R O R ' L ' O W E R C A S E ? "

1 0

Page 118: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 118/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

5

5

6 7 7 7 1 0 1 0 1 0 1 0 1 1 1 1 1 2 1 2 1 2 1 2 1 3 1 3 1 4 9 9 1 0 0 01 0 0 91 0 1 01 0 2 01 9 9 92 0 0 02 0 1 02 0 2 02 0 2 12 0 3 02 9 9 93 0 0 03 0 1 03 0 2 03 0 2 13 0 3 03 9 9 94 0 0 04 0 1 0

G E K E A $ I A " L T H E N P R I N TC H R $ ( 1 4 ) : G O T O 6 I A < " U T H E N P R I N T " { C R S R U P } " ; :G O T O 5 I N P U T " { L I N E F E E D } N A M E O F T H E P R O G R A M " / N A $I D T H E N C L O S E 4 O P E N 4 , 4 , 0P R I N T P R I N T N A $ : P R I N TI D R T H E N P R I N T * 4 P R I N T * 4 , N A $ : P R I N T *F 0 A A L P E E K ( A N ) : A Z L 2 5 H P R I N T Z E / " " I D R T H E N P R I N T * 4 , Z E ; "A A W P E E K ( A N ) : I F W E I W 3 T H E N 2 0 0 0I W 3 T H E N 7 0 0 0I W E 5 T H E N 8 0 0 0I W D E ( " F E " ) T H E N 3 0 0 0I W D E ( " C E " ) T H E N 4 0 0 0I F T H E N 6 0 0 0G O T O 5 0 0 0

R E N E L I N EI D R T H E N P R I N T *P R I N T I P E E K ( A 1 2 T H E N C L O S E 4 E N G O T O 1 0

A 1 H P E E K ( A N ) :

T H E N 1 0 0 0

A N D P E E K ( A N +

R E E M P T Y L I N EI F T H E N 6 0 3 0I F T H E N P R I N T " I D R A N D F T H E N P R I N T * 4 , " G O T O 1 1 R E $ F A A 1 W E P E E K ( A N )P R I N T F E $ ( W E ) / " " I D R T H E N P R I N T * 4 , F E $ ( W E ) ; " " G O T O 1 1 R E $ C A A 1 W P E E K ( A N )

1 0

Page 119: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 119/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

4 0 2 04 0 2 14 0 3 04 9 9 95 0 0 05 0 0 55 0 1 05 0 2 05 0 2 15 0 3 05 0 4 05 0 4 15 0 5 05 9 9 96 0 0 06 0 0 56 0 0 66 0 0 76 0 0 86 0 1 06 0 2 06 0 2 16 0 2 56 0 3 06 0 4 06 0 5 06 0 6 06 0 6 16 0 7 06 9 9 97 0 0 07 0 1 07 0 2 07 0 2 17 0 3 07 9 9 98 0 0 08 0 1 08 0 1 18 0 2 09 9 9 9

P R I N T C E $ ( W E ) ; " " I D T H E N P R I N T * 4 , C E $ ( W E ) ; " " G O T O 1 1 R E M B E G I N N I N G O S T R I N GI W = 1 4 3 T H E N F LI T K $ ( W E ) < " T H E N 5 0 4 0P R I N T C H R $ ( W E )I D T H E N P R I N T * 4 C H R $ ( W E ) ;G O T O 1 1 P R I N T " ; T K $ ( W E ) ; " " I D T H E N P R I N T * 4 , " ; T K $ ( W E ) ; n " G O T O 1 1 R E I N N E R P A R T O S T R I N G SI W 2 5 T H E N 6 0 1 0P R I N T " J C " ;I D R T H E N P R I N T * 4 " 7 C "G O T O 1 1 I S Z $ ( W E ) " T H E N 6 0 3 0P R I N T C H R $ ( W E )I D T H E N P R I N T * 4 C H R $ ( W E ) ;G O T O 1 1 Z I P E E K ( A 1 W E T H E N 6 0 6 0A A 1 Z A = Z A 1 G O T O 6 0 4 0P R I N T C H R $ ( 1 8 ) ; " [ " ; S Z $ ( W E ) / S T R $ ( Z A ) ; " ] " ;C H R $ ( 1 6 ) I D T H E N( Z A ) ; " ] "

G O T O 1 1

P R I N T * 4 , [ " ; S Z $ ( W E ) ; S T R $

R E Q U O T A T I O N M A R KF X O ( F F , 2 5 5 )P R I N T C H R $ ( 3 4 ) ; : P O K E 2 4 4 , 0I D T H E N P R I N T * 4 C H R $ ( 3 4 ) ;G O T O 1 1 R E C O L O NP R I N T C H R $I D T H E NG O T O 1 1

( 5 8 ) ; " " P R I N T * 4 C H R $ ( 5 8 ) ; "

1 0

Page 120: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 120/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 0 0 0 0 D A T A " 8 0 " , " E N D " , " 8 1 " , " F O R " , " 8 2 " , " N E X T " ," 8 3 " , " D A T A " , " 8 4 " , " I N P U T * "

1 0 0 1 0 D A T A " 8 5 " , " I N P U T " , " 8 6 " , " D I M " , " 8 7 " , " R E A D "" 8 8 " , " L E T " , " 8 9 " , " G O T O "

" , " E 2 " , " C I R C L EI

" E D " , " E X I T " , " E E " , " D I R E C1 0 2 0 0 D A T A " E F " , " D S A V E " , " F 0 " ,

" H E A D E R " , " F 2 " , " S C R A T C H "

1 1

Page 121: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 121/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 0 2 1 0 D A T A" R E N A M E

" B O O T " , " 1 C " , " W I D T H " , " I D " , " S P R D E F "1 2 0 0 0 D A T A " 0 0 " , " R W I N D O W " , " 0 2 " , " P O T " , " 0 3 " ,

" 0 4 " , " P E N " , " 0 5 " , " R S P P O S "1 2 0 1 0 D A T A " 0 6 " , " R S P R I T E " , " 0 7 " , " R S P C O L O R " ,

" 0 8 " , " X O R "1 2 0 1 0 D A T A " 0 6 " , " R S P R I T E " , " 0 7 " , " R S P C O L O R " ,

" 0 8 " , " X O R "1 3 0 0 0 D A T A " 0 3 " , " R U N S T O P " , " 0 5 " , " W H T " ,

" 0 A " , " L I N E F E E D " , " l l " , " C R S R D O W N "1 3 0 1 0 D A T A " 1 2 " , " R V S O N " , " 1 3 " , " H O M E " ," 1 C " , " R E D " , " I D " , " C R S R R I G H T " , " I E " , " G R N "1 3 0 2 0 D A T A " I F " , " B L U " , " 2 0 " , " S P A C E " , " 8 1 " , " O R N G " ,

" 9 0 " , " B L K " , " 9 1 " , " C R S R U P 1 3 0 3 0 D A T A " 9 2 " , " R V S O F F " , " 9 3 " , " C L R H O M E " ,

" 9 5 " , " B R N " , " 9 6 " , " L R E D "1 3 0 4 0 D A T A " 9 7 " , " D G R Y " , " 9 8 " , " M G R Y " , " 9 9 " , " L G R N " ,

" 9 A " , " L B L U "1 3 0 5 0 D A T A " 9 B " , " L G R Y " , " 9 C " , " P U R " ,

" 9 D " , " C R S R L E F T " , " 9 E " , " Y E L " , " 9 F " , " C Y N "

N o R U i t A f t e r s h o r t w a i t , y o u ' l l b e a s k e d f o s o m e i n p u tp a r a m e t e r s . F o t h m o m e n t , p r e s s " S f o s c r e e n a n " U f o u p p e r c a s e .T h e n e n t e r " L I S T E R " ; t h i s i s n ' t f o l o a d i n g f r o m d i s k j u s t a h e a d i n g f o t h l i s t i n g . I y o t y p e d t h p r o g r a m i n c o r r e c t l y , t h s y s t e m w i l l p r i n t" L I S T E R " o t h s c r e e n a n t h p r o g r a m w i l l b l i s t e d t t h s c r e e n ;

1 1

Page 122: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 122/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

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

W h e n y o w a n t t u s t h i s p r o g r a m t p r i n t o t h e r l i s t i n g s , y o u ' l l n e e d t d t h f o l l o w i n g :

A M o v e t h s t a r t o B A S I C s e p o i n t e r s $ 2 ( 4 5 ) a n $ 2 ( 4 6 )h i g h e r t h a n t h e l e n g t h o t h p r o g r a m t b l i s t e d a n p l a c e a z e r o i t h f i r s t l o c a t i o n o t h n e s t a r t o B A S I C . H e r e a r t h c o m m a n d s w u s e d :

P O K E 4 6 1 9 P O K E 4 9 1 5 2 , 0 N E

T h i s m o v e s t h s t a r t o B A S I C t $ C 0 0 0 . T r t h F R E ( O ) f u n c t i o na f t e r t y p i n g i t h e s e c o m m a n d s , l e s s t h a n 1 6 i f r e e . T h i s i m o r et h a n e n o u g h m e m o r y t r u n o u r c o n v e r t e r p r o g r a m .

B L O A D t h l i s t i n g c o n v e r t e r p r o g r a m w i t h L O A D " I , I S T E R " , 8 T h , i i m p o r t a n t ! T h i s c o m m a n d l o a d s t h l i s t i n g c o n v e r t e rp r o g r a m i n t o m e m o r y a t h n e s t a r t o B A S I C .

C L o a d i t h p r o g r a m y o w i s h l i s t e d w i t h t h c o m m a n d L O A D" p r o g r a m - n a m e " , 8 , 1 . T h , 8 , 1 i v e r y i m p o r t a n t h e r e . T h i sc o m m a n d l o a d s t h p r o g r a m i n t o m e m o r y a t h n o r m a l s t a r t o B A S I C . B e c a u s e y o h a v e m o v e d t h s t a r t o B A S I C t h L I S T E Rp r o g r a m i n o o v e r w r i t t e n . L I S T t h p r o g r a m t b s u r e .

D R U t h L I S T E R t g e f o r m a t t e d l i s t i n g .

1 1

Page 123: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 123/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

Y o c o u l d r e v i s e t h L I S T E R p r o g r a m s t h a t i r e a d s t h p r o g r a m d i r e c t l yf r o m d i s k , w h i c h w o u l d s a v e t h e t r o u b l e o m o v i n g t h s t a r t - o f r B A S I CW t r i e d t h a t w i t h t h p r o g r a m l i s t i n g s i t h i s b o o k . T h e y w e r e t r a n s f e r r e dt t h i s b o o k w i t h m o d i f i e d v e r s i o n o t h a b o v e p r o g r a m t h a t u s e d t h R S - 2 3 2 a d a p t e r t s e n d t h l i s t i n g t a n o t h e r c o m p u t e r . T h m e m o r yr e s i d e n t v e r s i o n i m u c h f a s t e r .

f e t h i n g s y o s h o u l d k n o w a b o u t t h m e m o r y r e s i d e n t L I S T E R . I l o o k s a a n i n t e r p r e t s e v e r y b y t e f r o m t h n o r m a l s t a r t o B A S I C . I i f i n d s z e r o , i c h e c k s t h n e x t f e b y t e s ; s e o t h r e e z e r o e s i n d i c a t e s t h e n o t h p r o g r a m , a n t h L I S T E R h a l t s . E v e r y c h a r a c t e r i t e s t e d t o s e i i i t o k e n ; i n o t , t h e c h a r a c t e r i t e s t e d f o r w h e t h e r i i w i t h i n q u o t e s o n o t . T o k e n s a r p r i n t e d o u a c o m m a n d s . S t r i n g s w i t h c o l o r g r a p h i cs y m b o l s w i l l h a v e t h e i r c o l o r s " s p e l l e d o u t " .

H e r e a r f e o t h v a r i a b l e s u s e d i t h p r o g r a m :

D R I D R = 0 , t h l i s t i n g g o e s t t h s c r e e n o n l y ; i D R 1 t h e ni t ' s s e n t t t h p r i n t e r a n t h s c r e e n .

F L I e q u a l t 1 t h c h a r a c t e r s a r e p l a c e d a f t e r R E M .A N A d d r e s s o b y t e s r e a d .W E C o n t e n t s o f t h a b o v e a d d r e s s .F F I 0 t h b y t e i n o i q u o t e s ; 1 t h b y t e i s t r i n g ( w i t h i n

q u o t e s ) .Z A C o u n t e r c o u n t s n u m b e r o c o n s e c u t i v e c h a r a c t e r s ( l i n e s

6 0 4 0 - 6 0 7 0 ) . D e t e r m i n e s n u m b e r o s p a c e s i s t r i n g .T K $ ( 2 5 5 ) : C o n t a i n s c o m m a n d s t r i n g s o i n d i v i d u a l t o k e n s .F E $ ( 2 9 ) : C o n t a i n s c o m m a n d s t r i n g s w h i c h h a v e v a l u e o $ F i t h

f i r s t b y t e .1 1

Page 124: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 124/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

C E $ ( 8 ) : S a m e a F E $ , b u f o c o m m a n d s b e g i n n i n g w i t h $ C E .S Z $ ( 1 5 9 ) : G r a p h i c c h a r a c t e r c o d e s a r h e l d h e r e ,

3 . O L

W h a t d o y o u d i y o a c c i d e n t a l l y t y p e N E w h i l e a p r o g r a m y o h a v e n ' ts a v e d i i m e m o r y ? N m o r e p r o g r a m , r i g h t ? W r o n g . A l i n o l o s t .Y o u ' l l r e m e m b e r t h p r o g r a m s r u n n i n g a r o u n d f o r t h e C - 6 4 k n o w n b v a r i o u s t i t l e s ( O L D o U N N E W ) ; t h e s e p r o g r a m s r e n e w e d t h b y t e s a t h s t a r t o p r o g r a m t h a t h a d b e e n z e r o e d o u b a e r r a n t N E c o m m a n d .T h e s e t w b y t e s p o i n t t t h n e x t l i n e n u m b e r o p r o g r a m ( t h e a d d r e s s o t h n e x t l i n e n u m b e r , t b m o r e s p e c i f i c ) . I a d d i t i o n t f i n d i n g a n r e s e t t i n g t h s t a r t i n g a d d r e s s , t h s t a r t - o f - v a r i a b l e s m u s t b r e s e t a s w e l lb e f o r e t h p r o g r a m c a n b e c o m p l e t e l y r e c o v e r e d .

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

A P u t a n y n u m b e r i n t o t h t w s k i p p e d b y t e s ( u n e q u a l t 0 o c o u r s e ) . T h i s w o r k s b e s t w h e n y o u s t h h i g h - b y t e o s t a r t - o f - B A S I C .

B N e x t , c a l l t h B A S I C i n t e r p r e t e r r o u t i n e t h a t r e s t o r e s t h B A S I Cp r o g r a m l i n e s , a n i u s u a l l y u s e d f o r i n s e r t i n g p r o g r a m l i n e s i e d i t i n g . I c h a n g e s a l t h v e c t o r s ( l i n e l i n k s ) a n r e c a l c u l a t e sa p p r o p r i a t e l y . T h l i n k t t h f i r s t p r o g r a m l i n e , w h i c h w e r e z e r o e s

m o m e n t a g o , a r r e - i n s e r t e d i n t o m e m o r y , a n r e c a l c u l a t e d .1 1

Page 125: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 125/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

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

T h i s p r o c e s s i m u c h s i m p l e r o t h C - 1 2 8 : S t e p C c a b e l i m i n a t e d ,s i n c e v a r i a b l e s a r e s t o r e d i B a n k 1 a n d o n ' t c o l l i d e w i t h B a n k 0 Y o c a a c t i v a t e O L b d o i n g t h i s :

P O K E P E E K ( 4 5 ) + 2 5 6 * P E E K ( 4 6 ) + 1 , 2 8 : S Y S D E C ( " 4 F 4 F " )

A d d r e s s e s 4 5 / 4 6 p o i n t t s t a r t - o f - B A S I C . C a l l i n g t h i s r o u t i n e r e s t o r e s t h p o i n t e r s . T h i s i w h a t i l o o k s l i k e i n m a c h i n e l a n g u a g e .

0 B 0 0 A 0 L D # $ 0 1 / O f f s e t0 B 0 2 A 1 L D # $ 1 C ; 2 f o B A S I C R A s t a r t0 B 0 4 9 2 S T ( $ 2 D ) , Y ; a n d i l i n k h i g h - b y t e0 B 0 6 2 0 4 F 4 J S $ 4 F 4 F / D e t e r m i n e l i n k s0 B 0 9 6 R T S / E n d

Y o c a p u t h e r o u t i n e a n y w h e r e i m e m o r y , n o j u s t a $ 0 B 0 0 .

O L a l s o w o r k s i y o u ' v e c h a n g e d t h B A S I C p o i n t e r s ( s a y , f o t h c o n v e r s i o n p r o g r a m i c h a p t e r 3 . 2 ) . N o e v e n R E S E T c a o u t s m a r t t h i sp r o g r a m .

T h e r e i o n e x c e p t i o n w h e n s t a r t - o f - B A S I C i m o v e d u a n R E S E Ti e x e c u t e d ; t h e n O L g o e s f o t h n o r m a l s t a r t i n g a d d r e s s o B A S I C , a n w o n ' t f i n d i t h e r e . I y o k n o w w h e r e t h s t a r t i n g a d d r e s s i s j u s t c h a n g et h p a r a m e t e r s a c c o r d i n g l y , a n y o s h o u l d b a b l e t r e c o v e r t h p r o g r a m .

1 1

Page 126: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 126/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

3 . L I T T L E M U S I C O T H S I D E . . . .

S o m e f o l k s l i k e m u s i c w h i l e t h e y ' r e t y p i n g . T h a t ' s g r e a t , u n l e s s t h e r e ' s n r a d i o o s t e r e o n e a r b y , a n m o s t o u a r e n ' t b o r n s i n g e r s . H i r i n g a i n - h o u s e p i a n i s t c a b e x p e n s i v e , a n t y p e w r i t e r s d o n ' t m a k e m u s i c . T h C - 1 2 8 , h o w e v e r , C A m a k e m u s i c . T h n e x t p r o g r a m a c t u a l l y p l a y sp i e c e o m u s i c w h i l e y o u ' r e w o r k i n g w i t h t h c o m p u t e r . Y o c a l i s t e nt h r o u g h y o u r t e l e v i s i o n o m o n i t o r , o r r u i t h r o u g h y o u r s t e r e o , e t c .

T h B A S I C l o a d e r i a l o n g o n e ; t h m a i n r e a s o n i t h 9 9 - n o t e t u n e w i t h i n .T p l a y n o t e , t h S I c h i p n e e d s t w o n u m b e r s p e n o t e( h i g h - b y t e / l o w - b y t e ) a n d u r a t i o n , w h i c h g i v e s u t o t a l o 2 9 D A T Ae l e m e n t s . Y o u ' l l f i n d t h i s D A T A a t h e n o t h p r o g r a m .

R E I R M U S I C1 F O = 5 1 2 0 T 5 1 9 82 R E A D3 P O K E I , A4 5 N E X T6 I < 8 8 9 1 T H E N P R I N T " T E R R O R I D A T A " : E N D7 D A T A 1 2 0 , 1 6 9 , 2 2 , 1 4 1 , 2 0 , 3 , 1 6 9 , 2 08 D A T A 1 4 1 , 2 1 , 3 , 8 8 , 1 6 0 , 09 D A T A 1 4 0 , 2 4 3 , 2 0 , 2 0 0 , 1 4 0 , 2 4 1 , 2 0 , 9 61 0 D A T A 2 0 6 , 2 4 1 , 2 0 , 2 0 8 , 4 9 , 7 2 , 1 4 1 , 01 1 D A T A 2 5 5 , 1 4 1 , 1 8 , 2 1 2 , 1 3 8 , 7 2 , 1 7 4 , 2 4 3 , 2 01 2 D A T A 1 8 9 , 0 , 2 1 , 1 4 1 , 1 4 , 2 1 2 , 1 8 9 , 01 3 D A T A 2 2 , 1 4 1 , 1 5 , 2 1 2 , 1 8 9 , 0 , 2 3 , 1 4 11 4 D A T A 2 4 1 , 2 0 , 1 6 9 , 6 5 , 1 4 1 , 1 8 , 2 1 2 , 2 3 21 5 D A T A 5 6 , 2 2 4 , 9 9 , 1 4 4 , 2 , 1 6 2 , 0 , 1 4 21 6 D A T A 2 4 3 , 2 0 , 1 0 4 , 1 7 0 , 1 0 4 , 7 6 , 1 0 1 , 2 5 01 7 B A N K 1 1 8 P O K E 5 4 2 9 6 , 1 51 9 P O K E 5 4 2 8 8 , 2 5 52 0 P O K E 5 4 2 8 9 , 0

1 1

Page 127: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 127/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 1 P O K E 5 4 2 9 1 , 1 52 2 P O K E 5 4 2 9 2 , 02 3 9 9 R E 9 N O T E S2 4 F O T O 2 5 R E A D2 6 P O K E 5 3 7 6 I , 2 7 R E A D2 8 P O K E 5 6 3 2 I , 2 9 R E A D3 0 P O K E 5 8 8 8 I , 3 1 N E X T3 2 P O K E 5 1 8 5 , N3 3 0 S Y S 5 1 2 03 4 D A T A 1 0 , 1 3 , 5 , 1 0 , 1 3 , 5 , 1 0 , 1 3 , 1 03 5 D A T A 1 0 , 1 3 , 5 , 1 6 2 , 1 4 , 5 , 1 6 2 , 1 4 , 1 03 6 D A T A 2 4 7 , 1 0 , 1 0 , 1 0 , 1 3 , 5 , 1 0 , 1 3 , 53 7 D A T A 1 0 3 , 1 7 , 5 , 1 3 7 , 1 9 , 1 3 , 2 3 7 , 2 1 , 53 8 D A T A 2 3 7 , 2 1 , 1 0 , 2 3 7 , 2 1 , 5 , 2 3 7 , 2 1 , 1 03 9 D A T A 1 3 7 , 1 9 , 1 0 , 1 3 7 , 1 9 , 1 0 , 1 0 3 , 1 7 , 1 04 0 D A T A 1 0 3 , 1 7 , 2 0 , 2 3 7 , 2 1 , 5 , 2 3 7 , 2 1 , 1 34 1 D A T A 5 9 , 2 3 , 1 0 , 2 3 7 , 2 1 , 5 , 2 3 7 , 2 1 , 54 2 D A T A 2 3 7 , 2 1 , 1 3 , 1 3 7 , 1 9 , 3 0 , 2 3 7 , 2 1 , 84 3 D A T A 1 3 7 , 1 9 , 8 , 1 3 7 , 1 9 , 1 5 , 1 0 3 , 1 7 , 1 54 4 D A T A 1 0 3 , 1 7 , 3 0 , 1 0 3 , 1 7 , 1 3 , 1 0 , 1 3 , 54 5 D A T A 1 0 , 1 3 , 5 , 1 0 , 1 3 , 1 0 , 1 6 2 , 1 4 , 1 04 6 D A T A 1 0 3 , 1 7 , 5 , 1 0 , 1 3 , 5 , 1 0 , 1 3 , 1 04 7 D A T A 1 0 , 1 3 , 1 0 , 1 0 3 , 1 7 , 5 , 1 3 7 , 1 9 , 1 34 8 D A T A 1 3 7 , 1 9 , 5 , 2 3 7 , 2 1 , 1 3 , 2 3 7 , 2 1 , 1 04 9 D A T A 1 3 7 , 1 9 , 5 , 1 3 7 , 1 9 , 5 , 1 3 7 , 1 9 , 55 0 D A T A 1 0 3 , 1 7 , 1 0 , 1 0 3 , 1 7 , 5 , 1 0 3 , 1 7 , 2 05 1 D A T A 2 3 7 , 2 1 , 5 , 2 3 7 , 2 1 , 1 3 , 5 9 , 2 3 , 1 05 2 D A T A 2 3 7 , 2 1 , 5 , 2 3 7 , 2 1 , 5 , 2 3 7 , 2 1 , 1 35 3 D A T A 1 3 7 , 1 9 , 3 0 , 2 3 7 , 2 1 , 1 0 , 1 3 7 , 1 9 , 1 05 4 D A T A 1 3 7 , 1 9 , 1 0 , 1 0 3 , 1 7 , 1 5 , 1 0 3 , 1 7 , 3 05 5 D A T A 2 3 7 , 2 1 , 5 , 1 3 7 , 1 9 , 1 0 , 1 0 3 , 1 7 , 55 6 D A T A 1 0 3 , 1 7 , 2 0 , 2 3 7 , 2 1 , 5 , 2 0 , 2 6 , 1 05 7 D A T A 6 9 , 2 9 , 5 , 6 9 , 2 9 , 1 0 , 2 0 , 2 6 , 1 05 8 D A T A 2 0 , 2 6 , 5 , 2 0 , 2 6 , 1 0 , 2 3 7 , 2 1 , 55 9 D A T A 2 3 7 , 2 1 , 5 , 1 3 7 , 1 9 , 5 , 1 0 3 , 1 7 , 1 06 0 D A T A 1 6 2 , 1 4 , 5 , 1 0 , 1 3 , 1 0 , 2 3 7 , 2 1 , 56 1 D A T A 2 3 7 , 2 1 , 1 0 , 1 0 3 , 1 7 , 3 0 , 2 3 7 , 2 1 , 56 2 D A T A 2 3 7 , 2 1 , 1 0 , 5 9 , 2 3 , 5 , 5 9 , 2 3 , 1 06 3 D A T A 2 3 7 , 2 1 , 5 , 2 3 7 , 2 1 , 5 , 2 3 7 , 2 1 , 1 0

1 1

Page 128: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 128/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

6 4 D A T A 1 3 7 , 1 9 , 3 0 , 2 3 7 , 2 1 , 1 0 , 1 3 7 , 1 9 , 1 06 5 D A T A 1 3 7 , 1 9 , 1 0 , 1 3 7 , 1 9 , 1 3 , 1 0 3 , 1 7 , 1 36 6 D A T A 1 0 3 , 1 7 , 3 0 , 2 4 7 , 1 0 , 5 , 1 0 , 1 3 , 5

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

F r e q u e n c y ( l o w - b y t e )F r e q u e n c y ( h i g h - b y t e )D u r a t i o n ( h o w l o n g i i t b h e l d )

Y o c a n c h o o s e y o u r o w n o t e s . F o e x a m p l e , w c a l l e d u f r e q u e n c y o 3 3 3 8 ( i l o w / h i g h f o r m a t , 1 a n 1 3 f o G O u d u r a t i o n w a 1 ( l i k ea a v e r a g e q u a r t e r n o t e ) . L i n e 2 3 w i l l h a v e t b c h a n g e d t a d j u s t f o y o u r s o n g l e n g t h . W h e n y o w a n t t c h a n g e w a v e f o r m s , p u P O K E7 2 2 6 / W F ( w a v e f o r m ) a t h e n o t h p r o g r a m . W h a t h f o l l o w i n gf u n c t i o n s :

1 T R I A N G L E W A V E3 S A W T O O T H W A V E6 P U L S E W A V E1 N O I S E

T h i s p r o g r a m o p e r a t e s v o i c e t h r e e O N L Y . Y o c o u l d c o n v e r t t h p r o g r a mt i n c l u d e t h f i r s t a n s e c o n d v o i c e s o t h S I c h i p . I y o w a n t t p r o g r a m t h i s r o u t i n e i m a c h i n e l a n g u a g e , w e V e i n c l u d e d t h a t l i s t i n gb e l o w . T h i s r o u t i n e w o r k s w i t h t h I R v e c t o r s :

1 1

Page 129: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 129/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

$ 1 4 0 0 ( 5 1 2 0 )$ 1 4 1 6 ( 5 1 4 2 )$ 1 4 F 1 ( 5 3 6 1 )$ 1 4 F 3 ( 5 3 6 3 )$ 1 5 0 0 ( 5 3 7 6 )$ 1 6 0 0 ( 5 6 3 2 )$ 1 7 0 0 ( 5 8 8 8 )

R o u t i n e w h i c h m o v e s I R v e c t o r s t $ 1 4 1 5 ( 5 1 4 1 )S t a r t o m u s i c / I R Q r o u t i n e t i l l $ 1 4 4 E ( 5 1 9 8 )C o u n t d u r a t i o n ; w h e n 1 C F 1 = O , g t n e x t n o t eN o t e c o u n t e rM e m o r y f o l o w - b y t e o n o t e t $ 1 5 F F ( 5 6 3 1 )M e m o r y f o h i g h - b y t e o n o t e t $ 1 6 F F ( 5 8 8 7 )M e m o r y f o a l n o t e v a l u e s t $ 1 7 F F ( 6 1 4 3 )

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

1 4 0 01 4 0 11 4 0 31 4 0 61 4 0 81 4 0 B1 4 0 C1 4 0 E1 4 1 11 4 1 21 4 1 51 4 1 61 4 1 91 I 1 4 1 C1 4 1 F1 4 2 21 4 2 31 4 2 41 4 2 71 4 2 A1 4 2 D1 4 3 01 4 3 3

7 A 8 A 8 5 A 8 C 8 6 C D 4 8 8 8 4 A B 8 B 8 B

1 1 1 1

0 F F

F 3

0 1

F 0 0 0 O 0

0

0

1

1

1

F D

1 1 D 1 D 1

S E L D S T L D S T C L L D S T I N S T R T D E B N

P H S T S T T X P H L D L D S T L D S T L D

# $ 1 6$ 0 3 1 4# $ 1 4$ 0 3 1 5# $ 0 0$ 1 4 F 3$ 1 4 F 11 4 F 11 4 4 C

$ F F 0 0$ D 4 1 2

$ 1 4 F 3$ 1 5 0 0 , X$ D 4 0 E$ 1 6 0 0 , X$ D 4 0 F$ 1 7 0 0 , X

/ H i n d e r i n t e r r u p t/ S e t I R v e c t o r t / s t a r t o t h / m u s i c r o u t i n e/ E n a b l e i n t e r r u p t

/ R e t u r n t o B A S I C/ D e c r e m e n t c o u n t e r/ C o u n t e r > 0 t h e n

c o n t i n u e c o u n t/ A c c u o n s t a c k/ s w i t c h e s I / / W a v e f o r m =/ X - r e g i n t o a c c u m u l a t o r/ A c c u t o s t a c k/ N u m b e r f o n e n o t e/ G e t n o t e l o b y t e/ S e t l o b y t e/ G e t h i g h b y t e/ S e t h i g h b y t e/ G e t n o t e v a l u e

1 1

Page 130: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 130/322

A b a c u s

1 4 3 61 4 3 91 4 3 B1 4 3 E1 4 3 F1 4 4 01 4 4 21 4 4 41 4 4 61 4 4 91 4 4 A1 4 4 B

S o f t w a r e

8 A 8 E 3 E 9 A 8 6

A 6

F 1 4 1 D

6 0 0 F 1

S T L D S T I N S E C P B C L D S T P L T A P L

$ 1 4 F 1# $ 4 1$ D 4 1 2

# $ 6 3$ 1 4 4 6# $ 0 0$ 1 4 F 3

T r i c k s a n T i p s f o t h C - 1 2 8

; S e t c o u n t e r; L o a d w a v e f o r m; S e t w a v e f o r m; R a i s e n o t e c o u n t e r; L a s t n o t e ?

N O — t h e n $ 1 C 4/ N o t e c o u n t e r a ; S t o r e n o t e c o u n t e r; A c c u f r o m s t a c k; X - r e g a c c u; A c c u f r o m s t a c k

1 4 4 C 4 6 F J M $ F A 6 5 / G o t o n o r m a l I R

3 . R E A L - T I M E C L O C K O T H C - 1 2 8

T h e s e d a y s , t i m e i i m p o r t a n t t a l o u s P e r h a p s t h i s i o r e a s o n w h m o s t c o m p u t e r s n o h a v e b u i l t - i n c l o c k s . B m a k i n g u s o t h b u i l t - i nv a r i a b l e T I $ , y o u r C - 1 2 8 c a b e c o m e c l o c k . B f o r e w a r n e d t h a t T I r u n su n e v e n l y a t i m e s ; b e c a u s e o f t h i s w h a v e d e v e l o p e d a r e a l - t i m e c l o c k u s i n gC I A # 1 :

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

R E D A T AD A T AD A T AD A T AD A T AD A T A Z f t u , ± o D A T A 6 3 , 2 5 2 , ,R E D A T AD A T AD A T AD A T AD A T A

Page 131: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 131/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o r t h e C - 1 2 8

D A T A 3 , 2 4 0 , , 7 ,D A T A 6 3 , 7 , , 1 2 6

_ i _ < c - / c < s f

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

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

D A T A 2 5 4 , , 2 4 0 , 1 2 7 , , 2 2 .D A T A 2 2 4 , 3 1 , , 2 4 0 , 1 2 7 ,D A T A 2 5 5 , 2 2 4 , , 1 2 7 , 1 2 8 , ,R E D A T A 6 3 , 2 5 4 , , 1 2 7 , 2 5 5 , , 1 2 7 , 2 5 5 ,D A T A 1 2 4 , 3 1 , , 1 2 0 , 1 5 , , 4 8 , 1 5 , , , 1 5 ,D A T A , 3 1 , , , 6 3 , , , 1 2 6 , , , 2 5 2 , , 1 , 2 4 8 ,D A T A 3 , 2 4 0 , , 7 , 2 2 4 , , 1 5 , 1 6 0 , , 3 1 , 1 2 8 ,D A T A 6 3 , , , 1 2 6 , , , 2 5 2 , , , 2 5 2 , , , 2 5 2 , , ,R E

1 2

Page 132: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 132/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

5 9 D A T A 1 2 7 , 2 5 4 , , 2 5 5 , 2 5 5 , , 2 5 5 , 2 5 5 ,6 0 D A T A 2 4 0 , 1 5 , , 2 2 4 , 7 , , 2 4 0 , 1 5 ,6 1 D A T A 2 5 5 , 2 5 5 , , 2 5 5 , 2 5 5 , , 1 2 7 , 2 5 4 ,6 2 D A T A 1 2 7 , 2 5 4 , , 2 5 4 , 1 2 7 , , 2 4 0 , 1 5 ,6 3 D A T A 2 2 4 , 7 , , 2 2 4 , 7 , , 2 2 4 , 7 , , 2 2 4 , 7 ,6 4 D A T A 2 4 0 , 1 5 , , 1 2 7 , 2 5 4 , , 3 1 , 2 4 8 ,6 5 D A T A 1 5 , 2 2 4 , , 1 , 1 2 8 , ,6 6 R E 6 7 D A T A 1 , 2 5 4 , , 7 , 2 5 5 , , 3 1 , 2 5 5 , , 1 2 7 , 1 4 3 ,6 8 D A T A 2 5 4 , 1 5 , , 2 4 0 , 1 5 , , 2 4 0 , 1 5 ,6 9 D A T A 2 4 0 , 1 5 , , 2 4 0 , 1 5 , , 2 5 4 , 1 5 ,7 0 D A T A 1 2 7 , 1 4 3 , , 3 1 , 2 5 4 , , 7 , 2 5 5 , , 1 , 2 5 5 ,7 1 D A T A , 1 5 , , 9 6 , 7 , , 2 4 0 , 7 , , 2 4 0 , 1 5 ,7 2 D A T A 2 5 5 , 2 5 5 , , 2 5 5 , 2 5 5 , , 1 2 7 , 2 5 4 , ,7 3 P O K E 5 6 3 3 4 , P E E K ( 5 6 3 3 4 ) O 1 2 7 4 F O 3 4 5 6 T 4 0 9 57 5 R E A D7 6 P O K E I , A7 7 N E X T7 8 R E S E T I M E7 9 I N P U T " H O U R S { S P A C E } { S P A C E } { S P A C E } " ; S8 0 I 1 T H E N S 1 2 G O T O 8 0 8 1 I T H E N 7 9 8 2 P O K E 5 6 3 3 1 , S I N ( S 1 0 8 3 I N P U T " M I N U T E S { S P A C E } " ; M8 4 I O 5 T H E N 8 3 8 5 P O K E 5 6 3 3 0 , M I N ( 1 0 * 8 6 I N P U T " S E C O N D S { S P A C E } " ; S8 7 I O 5 T H E N 8 6 8 8 P O K E 5 6 3 2 9 , S I N ( S 1 0 * 8 9 9 0 F O = 5 1 2 0 T 5 1 8 09 1 R E A D9 2 9 3 P O K E I , 9 4 N E X T9 5 I < 6 3 0 0 T H E N P R I N T " T E R R O R I D A T A " : E N D9 6 P R I N T " { C L R H O M E } H I T R E T U R N T O S T A R T "9 6 G E A $ I A < C H R $ ( 1 3 ) T H E N 9 6 9 7 P O R E 5 6 3 2 8 , 09 8 S Y 5 1 2 09 9 D A T A 1 2 0 , 1 6 9 , 1 3 , 1 4 1 , 2 0 , 3 , 1 6 91 0 0 0 D A T A 2 0 , 1 4 1 , 2 1 , 3 , 8 8 , 9 6 , 1 6 0

1 2

Page 133: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 133/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 0 1 0 D A T A 3 , 1 7 3 , 1 1 , 2 2 0 , 4 1 , 3 1 , 7 61 0 2 0 D A T A 2 6 , 2 0 , 1 8 5 , 8 , 2 2 0 , 4 1 , 2 4 01 0 3 0 D A T A 7 4 , 7 4 , 7 4 , 7 41 0 4 0 D A T A 7 2 , 1 8 5 , 8 , 2 2 0 , 4 1 , 1 51 0 5 0 D A T A 7 2 , 1 3 6 , 2 0 8 , 2 3 7 , 1 7 3 , 81 0 6 0 D A T A 2 2 0 , 7 2 , 1 6 0 , 7 , 1 0 41 0 7 0 D A T A 2 4 , 1 0 5 , 5 4 , 1 5 3 , 2 4 7 , 7 , 1 3 61 0 8 0 D A T A 2 0 8 , 2 4 6 , 7 6 , 1 0 1 , 2 5 01 0 9 0 F O T 1 1 0 0 S P R I T E 1 , 1 , 1 , 1 , 0 , 1 , 01 1 1 0 M O V S P R 1 , 3 0 2 I N T ( ( I - l ) / 2 ) 1 0 , 1 0 01 1 2 0 N E X T

T h i n d i v i d u a l n u m b e r s a r a c t u a l l y s p r i t e s . I f a c t , m o s t o t h l i s t i n g i j u s t t o d e f i n e t h s p r i t e s . I f y o p r e f e r , y o c a r u t h p r o g r a m w i t h o u ts p r i t e s ; j u s t t y p e i t h p r o g r a m b e g i n n i n g a t l i n e 7 8 a n e n d i n g a l i n e1 0 8 0 . Y o w i l l n e e d t a l t e r t h c h e c k s u m ( t " 6 2 9 8 " ) , a n d c h a n g e l i n e1 0 7 0 t o

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

N o f o t h m a c h i n e l a n g u a g e l i s t i n g :

1 4 0 01 4 0 11 4 0 31 4 0 61 4 0 81 4 0 B1 4 0 C1 4 0 D1 4 0 F1 4 1 21 4 1 41 4 1 71 4 1 A1 4 1 C1 4 1 D

7 A 8 A 8 5 6 A A 2 4 B 2 4 4

0 1 1 1

0 O I 1 0 F

0

0

D 1 D

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

# $ 0 0$ 0 3 1 4# $ 1 4$ 0 3 1 5

# $ 0 3$ D C 0 B# $ 1 F$ 1 4 1 A$ D C 0 8 ,# $ F 0

; I n t e r r u p t o f ; S e t I R v e c t o r; t b e g i n n i n g o ; t h i s r o u t i n e/ E n a b l e i n t e r r u p t/ R e t u r n t B A S I C/ H o u r s e t t i n g/ o n l y f i r s t b i t s

Y / T i m e/ o n l y d e c i m a l p o i n t/ S h i f t b i 4 - / t b i t s 0 -

1 2

Page 134: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 134/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 4 1 E 4 L S 1 4 I F 4 A L S R1 4 2 0 4 P H ; P u t n u m b e r o s t a c k1 4 2 1 B 0 D L D $ D C 0 8 , Y / T i m e1 4 2 4 O A N # $ 0 F / S e c o n d s1 4 4 P H ; P u t t i m e o n s t a c k1 4 2 7 8 D E 1 4 2 8 D E B N $ 1 4 1 71 4 2 A A D 0 D L D $ D C 0 8 / T e n t h s1 4 2 D P H / P u t t e n t h s o s t a c k1 4 2 E A 0 L D # $ 0 71 4 3 0 6 P L / G e t c o u n t f r o m s t a c k1 4 3 1 1 C L 1 4 3 2 6 3 A D # $ 3 6 / A d d s t a r t - o f - s p r i t e s1 4 3 4 9 F 0 S T A $ 0 7 F 7 , Y ; S p r i t e o b l o c k1 4 3 7 8 D E 1 4 3 8 D O F 6 B N E 1 4 3 01 4 3 A 4 6 F J M $ F A 6 5 / G o t o n o r m a l I R

T h " o t h e r " v e r s i o n ( w i t h o u t s p r i t e s ) r e q u i r e s c h a n g i n g o n l y t w l i n e s :

1 4 3 2 6 9 3 0 A D # $ 3 0 / C o n v e r t c o u n t i n t o A S C I I1 4 3 4 9 F 0 S T $ 0 3 F F , Y / a n d p u o n s c r e e n

A y o c a s e f r o m t h l i s t i n g , y o c o u l d s e t h c l o c k u s i n g t h I R Q . T h c l o c k w i l l s h u t d o w n w h e n < R U N S T O P / R E S T O R E > i p r e s s e d .

1 2

Page 135: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 135/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

3 . A N A L O G C L O C K

T e m p h a s i z e t h i m p o r t a n c e o f t i m e , h e r e ' s a n o t h e r c l o c k p r o g r a m . S i n c en o e v e r y o n e l i k e s d i g i t a l c l o c k s , t h i s i a n a n a l o g c l o c k , f r o m w h i c h m o s to u l e a r n e d t t e l l t i m e i t h f i r s t p l a c e . T h i s p r o g r a m c o m b i n e s t i m ep r o g r a m a n t h C - 1 2 8 ' s g r a p h i c c o m m a n d s . T h i s p r o g r a m o n l y w o r k s o

4 0 - c o l u m n s c r e e n .

N o o t t h p r o g r a m . I t ' s d i v i d e d i n t o t w p a r t s . T h f i r s t p a r t s h o u l dl o o k f a m i l i a r t y o u , s i n c e i w a u s e d f o s e t t i n g t h c l o c k i t h p r e v i o u sc h a p t e r . T h s e c o n d s e c t i o n o t h p r o g r a m b e g i n s a t l i n e 1 5 0 . T h i s i w h e r e t h c l o c k f a c e a n h a n d s a r d r a w n , a n w h e r e t h s e c o n d h a n d i c o n t r o l l e d . E v e r y m i n u t e , t h s c r e e n i r e d r a w n . T h h a n d s a r a l d r a w nu s i n g a e x t e n s i o n o t h C I R C L E c o m m a n d .

1 R E S E C L O C K2 I N P U T " H O U R S { S P A C E 3 } " ; S3 I 1 T H E N S 1 2 G O T O 3 4 0 I F T H E N 2 5 P O K E 5 6 3 3 1 , S I N ( 1 0 6 I N P U T " M I N U T E S { S P A C E } " ; M7 I O > 5 T H E N 6 8 P O K E 5 6 3 3 0 , M I N ( 1 0 * 9 I N P U T " S E C O N D S { S P A C E } " ; S1 0 I O 5 T H E N 9 1 1 P O K E 5 6 3 2 9 , S I N ( 1 0 1 2 P R I N T " H I T R E T U R N T S T A R T C L O C K "1 2 G E A $ I A < C H R $ ( 1 3 ) T H E N 1 2 1 3 P O K E 5 6 3 3 4 , P E E K ( 5 6 3 3 4 ) O 1 2 1 4 P O K E 5 6 3 2 8 , 01 5 R E M D R A W C L O C K1 6 G R A P H I C1 7 S C N C L R1 8 C O L O R 1 ,

1 2

Page 136: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 136/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 0 C I R C L E , 1 6 0 , 1 0 0 , 7 42 1 C H A R , 1 9 , 4 , " 1 2 "2 2 C H A R , 2 0 , 2 1 , " 6 "2 3 C H A R , 2 8 , 1 2 , " 3 "2 4 C H A R , 1 1 , 1 2 , " 9 "2 7 R E D R A W H O U R A N D M I N U T E H A N D2 8 C O L O R 1 , 1 22 9 = I N T ( P E E K ( 5 6 3 3 0 ) / 1 6 ) * 1 0 + ( P E E K ( 5 6 3 3 0 ) A N D 1 5 )3 0 C O L O R 1 , 3 1 C I R C L E , 1 6 0 , 1 0 0 , 0 , 6 0 , 4 0 , 9 0 , M * 3 2 0 H = ( ( 1 6 A N P E E K ( 5 6 3 3 1 ) ) / 1 6 ) * 1 0

( P E E K ( 5 6 3 3 1 ) A N 1 5 3 3 C I R C L E , 1 6 0 , 1 0 0 , 0 , 6 0 , 6 0 , 9 0 , H 3 3 4 R E D R A W S E C O N D H A N D3 5 W A I T 5 6 3 2 8 , 83 6 C O L O R 1 , 1 23 7 C I R C L E , 1 6 0 , 1 0 0 , 0 , 1 1 0 , 0 , 4 0 , S * 3 8 C O L O R 1 , 3 9 S = I N T ( P E E K ( 5 6 3 2 9 ) / 1 6 ) * 1 0 ( P E E K ( 5 6 3 2 9 ) A N D 1 5 )4 0 C I R C L E , 1 6 0 , 1 0 0 , 0 , 1 1 0 , 0 , 4 0 , S4 1 I T H E N 1 7 4 2 G O T O 3 5

3 . L L I S T

T h e r e a r t i m e s w h e n y o u ' d l i k e a q u i c k p r i n t o u t o B A S I C p r o g r a m .C o m m o d o r e B A S I C d o e s n ' t m a k e h a r d c o p y l i s t i n g e a s y . Y o m u s t e n t e ra l o t h f o l l o w i n g c o m m a n d s :

O P E N 4 , 4 : C M D 4 : L I S T : C L O S E 4

O t h e r v e r s i o n s o B A S I C h a v e t h c o m m a n d L L I S T . T h C - 1 2 8 h a t e n a b l e p r i n t e r o u t p u t o n l y , j u m p t L I S T , a n t u r n b a c k t t h s c r e e n .

1 2

Page 137: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 137/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h f o l l o w i n g L L I S T r o u t i n e w i l l n o g d i r e c t l y t t h L I S T c o m m a n d a t h b e g i n n i n g , b u l i t t l e l a t e r . I w o n f t c h e c k f o w h i c h l i n e s t l i s t ( y o u ' dw a n t t h e n t i r e p r o g r a m i h a r d c o p y a n y w a y ) . V e c t o r s $ 6 1 / $ 6 2 c o m e i n t op l a y h e r e ( p o i n t i n g t t h b e g i n n i n g o t h f i r s t l i n e t b l i s t e d ) . H e r e ' s t h a s s e m b l e r l i s t i n g :

1 A 0 01 A 0 21 A 0 51 A 0 71 A 0 A1 A 0 C1 A 0 D1 A 0 F1 A 1 21 A 1 51 A 1 71 A 1 A1 A 1 C1 A 1 E1 A 2 01 A 2 21 A 2 51 A 2 71 A 2 A1 A 2 C1 A 2 F

A 8 A 2 A A A 2 2 A 2 A 8 A 8 2 A 8 A 2 6

O 0 0 B 0 0 B C 0 C 2 6 2 6 E 0 0 0 C

F

F

F F

F

5

F

F

L D S T L D J S L D T A L D J S J S L D J S L D S T L D S T J S L D S T L D J S R T

# $ 0 0$ F F 0 0# $ 0 0$ F F B D# $ 0 4# $ 0 7$ F F B A$ F F C 0# $ 0 4$ F F C 9$ 2 $ 6 $ 2 $ 6 $ 5 0 E 5

# $ 0 0$ F F 0 0# $ 0 4$ F F E 7

: C o n f i g u r a t i o n: S e t c o n f i g u r a t i o n: F i l e n a m e: S e t f i l e n a m e: L o g i c a l f i l e n u m b e r: D e v i c e n u m b e r: S e c o n d a r y a d d r e s s: S e t f i l e p a r a m e t e r s: K e r n a l r o u t i n e O P E N: L o g i c a l f i l e n u m b e r: S e t o u t p u t d e v i c e: ■ B A S I C R A s t a r t — l o w: s t o r e: B A S I C R A s t a r t — h i g h: s t o r e: L I S T r o u t i n e ( l i s t a l l ): C o n f i g u r a t i o n: S e t c o n f i g u r a t i o n: L o g i c a l f i l e n u m b e r: K e r n a l r o u t i n e C L A L L: R e t u r n

R u t h i s r o u t i n e b e n t e r i n g S Y D E C ( " l A 0 0 " ) a n y o u r p r o g r a m w i l l b l i s t e d t t h p r i n t e r .

H e r e i t h B A S I C l o a d e r :

1 0 F O X 6 6 5 6 T 6 7 0 31 1 R E A D C C A P O K E X 1 2 N E X T1 3 D A T A 1 6 9 , 0 , 1 4 1 , 0 , 2 5 5 , 1 6 9 , 0 , 3 2 , 1 8 9 , 2 5 5

1 2

Page 138: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 138/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 4 D A T A 1 6 9 , 4 , 1 7 0 , 1 6 0 , 7 , 3 2 , 1 8 6 , 2 5 5 , 3 2 , 1 9 21 5 D A T A 2 5 5 , 1 6 2 , 4 , 3 2 , 2 0 1 , 2 5 5 , 1 6 5 , 4 5 , 1 3 3 , 9 71 6 D A T A 1 6 5 , 4 6 , 1 3 3 , 9 8 , 3 2 , 2 2 8 , 8 0 , 1 6 9 , 0 , 1 4 11 7 D A T A 0 , 2 5 5 , 1 6 9 , 4 , 3 2 , 2 3 1 , 2 5 5 , 9 6

3 . D O - I T - Y O U R S E L F W O R D P R O C E S S I N G

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

F i r s t , t y p e i A U T O 1 < R E T U R N > . N o t y p e i y o u r f i r s t l i n e n u m b e r( 1 0 ) , f o l l o w e d b l i n e o t e x t a n < R E T U R N > ( y o u ' l l h a v e t d t h i s a tt h e n o e v e r y l i n e , b u i t ' s s m a l l p r i c e t o p a y ) . W a t c h y o u r l i n e l e n g t h( 6 c h a r a c t e r s ( 1 1 / 2 l i n e s ) w i l l w o r k ) , s i n c e t h e p r i n t e r w i l l r e c e i v e t h i sv e r b a t i m . H e r e ' s s a m p l e o t e x t :

1 T h i s i t h n e w w o r d p r o c e s s o r w h i c h2 i u s i n g b u i l t - i n c o m m a n d s . T h e q u i c k3 b r o w n f o j u m p e d o v e r t h e l a z y w a r t h o g .4 . .

G r e a t , b u h o d w g e i o p a p e r ? S i m p l e ; t y p e i t h i s l i n e i n d i r e c tm o d e w h e n y o u ' r e t h r o u g h e n t e r i n g t e x t :

P O K E 2 4 , 3 7 : O P E N 4 , 4 : C M D 4 : L I S T : P R I N T # 4 : C L O S E 4

1 2

Page 139: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 139/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h t e x t p r i n t s o u w i t h o u t t h l i n e n u m b e r s !

Y o c a S A V E t h i s m a t e r i a l t o d i s k e t t e o c a s s e t t e a s y o u w o u l d n o r m a lp r o g r a m , a n p r i n t i o u l a t e r . S o o n e r o l a t e r , t h o u g h , y o m a e n d u pw i t h y o u r o w p r o f e s s i o n a l w o r d p r o c e s s i n g s o f t w a r e .

A d d r e s s 2 c a d a a m a z i n g n u m b e r o t h i n g s . F o e x a m p l e :

P O K E 2 4 , 3 7 : L I S T

l i s t s p r o g r a m o t h s c r e e n w i t h o u t l i n e n u m b e r s . I y o r u i n t o" F O R M U L A T O C O M P L E X E R R O R 1 1 , j u s t t r

P O K E 2 4 , 2 7

V a l u e s o t h e r t h a n 2 u s e d i a d d r e s s 2 4 c a n m a k e s o m e c h a n g e s t B A S I Cl i s t i n g s . B c a r e f u l . E r r o r m e s s a g e s w i l l r e s e t t h c o n t e n t s o l o c a t i o n 2 4

3 . M O D I F I E D I N P U T

B A S I C 7 . h a a l t h o s e i n p u t c o m m a n d s y o " g r e w u w i t h " o t h C - 6 4 ;G E a n I N P U T , a n n e o n e : G E T K E Y .

I N P U T , h o w e v e r , i s n ' t e s p e c i a l l y a e s t h e t i c y o g e a q u e s t i o n m a r k a e v e r y p r o m p t o n s c r e e n . S o m e t i m e s a q u e s t i o n m a r k i s n ' t a p p r o p r i a t e , a i

1 I N P U T " I N P U T Y O U R N A M E ! " ; N $1 2

Page 140: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 140/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

O n m e t h o d o g e t t i n g a r o u n d t h i s i t o p e n y o u r s c r e e n a f i l e . T r t h i so u i n s t e a d o t h n o r m a l I N P U T s t a t e m e n t :

1 O P E N 1 , 0 : R E M ( s c r e e n a a f i l e )2 I N P U T # 1 , A $ : R E ( i n p u t w / ? 3 C L O S E

N o w , i t h I N P U T c o m m a n d h a t b i p a r t i c u l a r s p o t o t h s c r e e n ,a d t h f o l l o w i n g :

2 C H A R , c o l u m n , r o w2 P R I N T " " ; 2 I N P U T * 1 , A $

C H A R p o s i t i o n s t h c u r s o r m u c h l i k e P R I N T A s t a t e m e n t .

3 . 1 0 W A R N I N G T O N E

W h e n t h f i r s t t y p e w r i t e r s a p p e a r e d , t h e y h a w a r n i n g b e l l t l e y o k n o w t h a t y o w e r e g e t t i n g c l o s e t t h r i g h t m a r g i n . T h i s c a s t i l l b u s e f u l o c o m p u t e r s . H e 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 t c r e a t e s u c hf u n c t i o n :

1 4 2 D A F L D # $ F F / M u s i c a l v a l u e s1 4 2 F 8 0 D S T $ D 4 0 61 4 3 2 8 1 D S T $ D 4 1 81 4 3 5 A 0 L D # $ 0 91 4 3 7 8 0 D S T $ D 4 0 51 4 3 A S E ; I n t e r r u p t o f 1 4 3 B A 4 L D # $ 4 7 / R e s e t I R v e c t o r1 4 3 D 8 1 0 S T $ 0 3 1 41 4 4 0 A 1 L D # $ 1 4

1 3

Page 141: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 141/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 4 4 21 4 4 51 4 4 61 4 4 71 4 4 81 4 4 A1 4 4 C1 4 4 E1 4 5 01 4 5 31 4 5 51 4 5 81 4 5 A1 4 5 D1 4 5 F1 4 6 11 4 6 41 4 6 61 4 6 91 4 6 C1 4 6 F1 4 7 01 4 8 0

8 1 0 S T $ 0 3 1 5C L R T P H L D $ E S B $ E C M # $ 0 2B N $ 1 4 6 1

5 6 4 A E E E C 0 D 1 C 8 0 1 4 C M P $ 1 4 8 0F O B E $ 1 4 6 48 8 1 S T $ 1 4 8 0A 9 A 0 L D # $ A 08 0 D S T $ D 4 0 1A 2 L D # $ 2 1D 0 B N E $ 1 4 6 68 8 1 S T $ 1 4 8 0A 0 L D # $ 0 08 0 D S T $ D 4 0 18 0 D S T $ D 4 0 08 0 D S T $ D 4 0 46 P L 4 6 F J M $ F A 6 5P o i n t e r f o p r e v i o u s

E n a b l e I R R e t u r n t B A S I CA c c u o s t a c kL o a d r i g h t m a r g i nD r a w c u r s o r - c o l u m n= 2 N O — t h e n $ 1 4 6 1C o l u m n b l a s tI R a l s o 2 t h e n $ 1 4 6 4S t o r eP l a y t o n e

/ S t o r e c o l u m n/ T u r n t o n e o f

/ S e t w a v e f o r m/ A c c u f r o m s t a c k/ J u m p t o I R Q

c o l u m n .

T w c h a r a c t e r s f r o m t h e n d - o f - l i n e , t o n e w i l l s o u n d . T h i s i s t a n d a r d ; i d o e s n ' t c h a n g e i y o s w i t c h f r o m T t m o n i t o r . B a s i c a l l y , t h p r o g r a mc o u n t s f r o m t h r i g h t m a r g i n o w i n d o w t h i s i w h e r e t h c u r r e n t c u r s o rp o s i t i o n i d r a w n .

1 R E M W A R N I N G T O N E2 F O 5 1 6 5 T 5 2 3 43 R E A D4 S 5 P O K E I , 6 N E X T7 0 I F < 8 1 6 7 T H E N B E G I N8 P R I N T " T E R R O R { S P A C E } I N { S P A C E } D A T A "9 E N 1 0 B E N D1 1 S Y S 5 1 6 5

1 3

Page 142: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 142/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 2 D A T A 1 6 9 , 2 5 5 , 1 4 1 , 6 , 2 1 2 , 1 4 1 , 2 4 , 2 1 21 3 D A T A 1 6 9 , 9 , 1 4 1 , 5 , 2 1 2 , 1 2 0 , 1 6 9 , 7 11 4 D A T A 1 4 1 , 2 0 , 3 , 1 6 9 , 2 0 , 1 4 1 , 2 1 , 3 , 8 8 , 9 61 5 D A T A 7 2 , 1 6 5 , 2 3 1 , 2 2 9 , 2 3 6 , 2 0 1 , 2 , 2 0 81 6 D A T A 1 7 , 2 0 5 , 1 2 8 , 2 0 , 2 4 0 , 1 5 , 1 4 1 , 1 2 81 7 D A T A 2 0 , 1 6 9 , 1 6 0 , 1 4 1 , 1 , 2 1 2 , 1 6 9 , 3 31 8 D A T A 2 0 8 , 5 , 1 4 1 , 1 2 8 , 2 0 , 1 6 9 , 0 , 1 4 11 9 D A T A 1 , 2 1 2 , 1 4 1 , 0 , 2 1 2 , 1 4 1 , 4 , 2 1 22 0 D A T A 1 0 4 , 7 6 , 1 0 1 , 2 5 0

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

P O K E 5 1 9 7 , N

w i l l g i v e y o y o u r n e " w a r n i n g " l o c a t i o n .

T h i s r o u t i n e w o u l d b g r e a t f o w o r d p r o c e s s i n g , o f o o t h e r d a t a i n p u te s p e c i a l l y w h e n u s e d i c o m b i n a t i o n w i t h t h " K e y b o a r d B e e p " p r o g r a m i C h a p t e r 7

1 3

Page 143: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 143/322

C H A P T E R

Page 144: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 144/322

Page 145: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 145/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

S O F T W A R E P R O T E C T I O N O T H C - 1 2 8

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

Y o c a i n s t a l l c o p y p r o t e c t i o n o y o u r o w d i s k s . T h p r o t e c t i o n i s n ' tu n b r e a k a b l e , b u i w i l l m a k e m a t t e r s d i f f i c u l t f o r t h e c u r i o u s . O n f o r m o p r o t e c t i o n i b a s e d o s t a p l e o B A S I C p r o g r a m m i n g : t h L I S Tc o m m a n d . W e ' l l t a l k a b o u t o t h e r m e t h o d s o g e t t i n g i t h " b a c k d o o r " o p r o t e c t i o n .

4 . P R O T E C T I O N W I T H C O L O N S

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

4 5 : : : : : P R I N T " ( C ) 1 9 8 5 b ' T h e T e a m 1 "

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

1 3

Page 146: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 146/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

6 0 0 0 0 L 4 6 0 0 0 5 B L 6 0 0 1 0 L P E E K ( L I ) 2 5 P E E K ( L I + 1 )6 0 0 2 0 I L T H E N P R I N T " D O N E ! " E N 6 0 0 3 0 P R I N T C H R $ ( 1 4 5 ) ; " P A S S "

P E E K ( B A + 2 ) + 2 5 6 * P E E K ( B A + 3 ) /6 0 0 4 0 P R I N T X 6 0 0 5 0 B L 6 0 0 6 0 F O T 6 0 0 7 0 I P E E K ( L I + X ) < A S C ( : ) T H E N X = 8 : F L = 16 0 0 8 0 N E X T6 0 0 9 0 I F T H E N F L G O T O 6 0 0 1 06 0 1 0 0 P O K E L 4 4 X X " * 6 0 1 1 0 G O T O 6 0 0 1 0

T h r o u t i n e i a c t i v a t e d w i t h R U 6 0 0 0 0 . I t e s t s f o p r o g r a m l i n e s t b i g n o r e d ( P A S S ) . W h e n i f i n d s o n e , t h l i n e w i l l b c o v e r e d w i t h a s t e r i s k s .T h s y s t e m w i l l s a R E A D Y w h e n i t ' s d o n e ; a l t h a t r e m a i n s i f o y o t D E L E T E 6 0 0 0 0 - R u t h p r o g r a m ; w o r k s f i n e . N o L I S T i t t h l i n en u m b e r s o t h p r o t e c t e d l i n e s a p p e a r , b u t h c o n t e n t s o t h l i n e s a r i n v i s i b l e .

T h P r o g r a m :

6 0 0 0 0 : S t a r t - o f - B A S I C i s t o r e d i v a r i a b l e L I I y o w a n t t u s t h i sp r o g r a m i C - 6 4 m o d e , y o u ' l l h a v e t c h a n g e t h p a r a m e t e r s i l o c a t i o n s 4 a n 4 3

6 0 0 1 0 R a t h e r t h a n l o o k a e v e r y b y t e i t h p r o g r a m , t h p r o t e c t i o nr o u t i n e c h e c k s l i n e l i n k s f o r c o l o n s ; t h e r o u t i n e r u n s f a s t e r t h a tw a y .

6 0 0 2 0 P r o g r a m e n d s w h e n l i n e l i n k L l = 0

1 3

Page 147: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 147/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

6 0 0 3 0 C u r r e n t l i n e n u m b e r g i v e n .

6 0 0 4 0 N u m b e r o p r o t e c t e d l i n e s i s t o r e d i x $

6 0 0 5 0 B a s i s o n e l i n e s t a r t i n g r a n g e i e q u a l t t h c o n t e n t s o l i n kL I

6 0 0 6 0 R o u t i n e l o o k s a f i r s t f i v e c h a r a c t e r s o l i n e .

6 0 0 8 0 E a c h " n o r m a l " l i n e s e t s f l a g F L a n t 8

6 0 0 9 0 I F L = 1 t h e f l a g i r e s e t , a n t h n e x t l i n e o b s e r v e d .

6 0 1 0 0 L i n e i p r o t e c t e d ; f i r s t c o l o n i s e t 0 W h e n t h p r o g r a m s e e st h 0 i t ' s i n t e r p r e t e d a s a e n d - o f - l i n e , a n t h l i n e i t r e a t e d a i i w e r e n o n - e x i s t e n t .

4 . L I N E N U M B E R R O U L E T T E

p r i m e c h a r a c t e r i s t i c o B A S I C i s i t s s e q u e n t i a l l i n e n u m b e r s , w h i c h a c t a sa g u i d e f o t h p r o g r a m m e r . L i n e n u m b e r s l a r g e r t h a n 6 4 0 0 0 c a n n o t b u s e d . W c a u s t h i s l i t t l e f a c t t o u a d v a n t a g e : T y p e i t h i s r o u t i n e .

6 0 0 0 0 B P E E K ( 4 5 ) 2 5 P E E K ( 4 6 )6 0 0 1 0 L P E E K ( B A ) 2 5 P E E K ( B 1 6 0 0 2 0 I L T H E N P R I N T " D O N E ! " E N 6 0 0 3 0 P R I N T " F I N D L I N E : " / P E E K ( B A + 2 ) + 2 5 6 * P E E K ( B A + 3 )6 0 0 4 0 P R I N T " ( C ) H A N G E ( G ) O O N ( E ) N D ? 6 0 0 5 0 G E T K E Y A

1 3

Page 148: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 148/322

A b a c u s

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

S o f t w a r e

I A I A I N P U TI Z H P O K EP O K EP R I N TB P R I N TG O T O

" "

" N E W1 T H E N

T H E NL I N E

O Z I N T ( Z N / 2 5 6 )B A + 2 ,B A + 3 ,

C H R $L

C H R $6 0 0 1 0

L H

( 1 4 5 ) ;

( 1 4 5 ) ;

P R I N T6 0 1 4 0

N U M B E R "6 5 5 3 5

L O

T r i c k s a n T i p s f o t h C - 1 2 8

" O K " E N Z N

T H E N 6 0 0 8 0Z N - ( 2 5 6 * H I )

C H R $ ( 1 4 5 ) ;

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

( C H A N G E , ( G O N o ( E N D a l t e r s t h p r o g r a m l i n e ; l o o k s f o t h n e x t l i n e ; a n e n d s t h p r o g r a m . T h e r e a r f e l i m i t a t i o n s :

a G O T O a n G O S U B l i n e n u m b e r s a r u n a l t e r e d .b L i n e n u m b e r s l a r g e r t h a n 6 4 0 0 0 c a n n o t b d e l e t e d .c A l l i n e n u m b e r s l e s s t h a n o n c a n n o t b j u m p e d t o

T h P r o g r a m :

T h p r i n c i p l e o t h i s r o u t i n e i p r e t t y s i m p l e : I l o o k s a a l t h B A S I Cp r o g r a m l i n e s . I t h l i n e n u m b e r i c h a n g e d , t h n e l i n e n u m b e r i s t o r e d i Z a n i n l i n e 6 0 1 0 0 i l o w / h i g h - b y t e f o r m a t . T h e n , t h n e v a l u e i P O K E d o v e r t h o l i B A S I C m e m o r y .

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

1 3

Page 149: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 149/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

O n o t h e r t h i n g : t y p e i l i n e , s a y , 6 4 0 0 0 . N o r u t h r o u t i n e , a n c h a n g e i t 6 5 5 3 5 . T h i s p r o d u c e s t w e f f e c t s . F i r s t , l i n e w i t h t h n u m b e r 6 5 5 3 5 i e s s e n t i a l l y c o n s i d e r e d t b t h e n o t h p r o g r a m .S e c o n d , t h a t h i g h n u m b e r i n o s h o w n i i t ' s R E M , s y o c o u l d h i d ey o u r c o p y r i g h t n o t i c e t h e r e .

4 . M A N I P U L A T I N G L I N E - L I N K S

T h p r e c e d i n g r o u t i n e w o r k e d o t h e s o - c a l l e d l i n e - l i n k s t c h a n g e l i n en u m b e r s . L e t ' s t a k e a n o t h e r s h o t a " b e n d i n g " t h e s e l i n e - l i n k s , s p e c i f i c a l l y ,a d j u s t i n g t h l i n k p o i n t i n g t t h n e x t l i n e . W h e n w d t h i s , t h n e x t l i n e i i n v i s i b l e . O r i y o w i s h , w c o u l d f i l i n e - l i n k t o l i s t t h s a m e l i n e o v e ra n o v e r . U s u a l l y , t h i s w o n ' t b o t h e r t h p r o g r a m r u n , u n l e s s y o u V e r e a l l yg o n e w i l d w i t h t h e s e a d j u s t m e n t s . T y p e t h i s i b h a n d :

6 0 0 0 0 I N P U T " 1 L I N E N U M B E R " ; Z 6 0 0 2 0 I N P U T " 2 L I N E N U M B E R " ; Z 6 0 0 2 0 B 4 6 0 0 3 0 B P E E K ( B A ) 2 5 6 * P E E K ( B A + 1 )6 0 0 4 0 I B A = 0 T H E N P R I N T " L I N E D O E S N O T E X I S T ! " : E N D6 0 0 5 0 Z P E E K ( B A + 2 ) + 2 5 6 * P E E K ( B A + 3 )6 0 0 6 0 I F T H E N I Z = Z T H E N

L 1 = B A : L 2 = B A + 1 : F L = 16 0 0 7 0 I F T H E N 6 0 0 3 06 0 0 8 0 I Z N = 2 2 T H E N P O K E L I , P E E K ( B A )

P O K E L 2 , P E E K ( B A + 1 ) : E N D6 0 0 9 0 G O T O 6 0 0 3 0

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

1 3

Page 150: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 150/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

a l t e r a t i o n s ( a d d i n g o r d e l e t i n g l i n e s ) r e c a l c u l a t e t h l i n e - l i n k p o i n t e r s , s i t f sf a f r o m i n f a l l i b l e p r o t e c t i o n t r i c k .

4 . C R E A T I V E C O N T R O L C H A R A C T E R S :M A K I N G G R E M L I N S

C o n t r o l c h a r a c t e r s a r e f a m i l i a r s i g h t ; f o e x a m p l e , t h i s o n c l e a r s t h s c r e e n : v " W s e t h e m i q u o t e m o d e , t h e y c h a n g e c h a r a c t e r p o s i t i o n a n c o l o r . T h e r e i a n o t h e r u s f o t h e s e c h a r a c t e r s , t h o u g h : w c a u s t h e mo t h s c r e e n t f o i l L I S T i n g . T y p e t h i s i f i r s t i d i r e c t m o d e :

K E Y 1 , C H R $ ( 2 7 ) + C H R $ ( 7 9 ) + f { R V S O N } { S H I F T - M } { R V S O F F }C H R $ ( 3 4 ) + C H R $ ( 2 0 )

T h i s t u r n s < F 1 > i n t o a i n s t a n t < S H I F T - M > ( t h i s a c t i v a t e s c o n t r o lc h a r a c t e r s ) . L e t ' s h a v e s o m e f u n w i t h f e B A S I C l i n e s ( w h e n e v e r a a s t e r i s k ( * a p p e a r s , p r e s s < F 1 > ) .

T h G r e m l i n a n P R I N T

P R I N T " T h i s i h o i w o r k s * i n P R I N T s t a t e m e n t s * ! "

A l < S H I F T - M > d o e s h e r e i p e r f o r m c a r r i a g e r e t u r n ( C / R ) . T h i s h a sn o t h i n g t d w i t h s o f t w a r e p r o t e c t i o n ; j u s t s h o w i n g y o w h a t i d o e s .

1 4

Page 151: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 151/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h G r e m l i n a n R E

1 R E M " * ( C R S R U P ) ( R V S O N ) T h i s i t e s t l i n e

L i s t t h i s l i n e , t h i n g s a r e g e t t i n g i n t e r e s t i n g n o w ! T h < S H I F T - M > c a u s e st h t w c o n t r o l c h a r a c t e r s t e x e c u t e , s t h l i n e m o v e s u o n l i n e a n g o e si n t o r e v e r s e v i d e o . I n o t h e r w o r d s , t h R E a c t s l i k e P R I N T s t a t e m e n tw h e n l i s t e d !

T h p o s s i b i l i t i e s a r a l m o s t l i m i t l e s s ! W c a c h a n g e c o l o r s . . .

1 0 0 0 R E M " * ( C T R L + l t o 8 )1 0 0 0 R E M " * ( C = I t o 8 )

. . . f o r m a t l i s t i n g s . . .

1 0 0 0 R E M " * ( C R S R D O W N ) ( C R S R D O W N )

. . . o r s i m p l y m a s k l i n e s o u t :

1 0 0 0 R E M " * { C R S R U P } 9 0 0 S Y ( 4 0 9 6 ) C R A C K E D B Y R U S S( I n d i c a t e s c r a c k e d m a c h i n e l a n g u a g e p r o g r a m )

1 0 0 0 P R I N T " ( C ) B Y R U S S T " : R E M " * { C R S R U P }( L i n e 1 0 0 0 o v e r w r i t t e n b n e x t l i n e )

H a v e g o o d t i m e !

1 4

Page 152: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 152/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

4 . P R O T E C T I O N W I T H P O K E S

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

4 . 5 . 1 L I S T D I S A B L I N G

P a g e h a p o i n t e r t h a t p o i n t s t t h v e c t o r f o t h L I S T i n p u t . T h i s v e c t o rh a t h a d d r e s s e s 7 7 4 / 7 7 5 ( $ 0 3 0 6 / $ 0 3 0 7 ) . T r P O K E 7 7 4 , 6 1 : P O K E7 7 5 , 2 5 5 . N o L I S T . T h c o m p u t e r a c t s a i y o u V e r e q u e s t e dw a r m - s t a r t , a n g o e s t t h o p e n i n g s c r e e n . N o t r P O K E 7 7 4 , 3 8 : P O K E7 7 5 , 1 6 0 , w h i c h p o i n t s t t h v e c t o r f o " R T S " . O n l y l i n e n u m b e r s w i l l b g i v e n .

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

4 . 5 . 2 D I S A B L I N G R U N - S T O P / R E S T O R E

E a r l y i c o m p u t i n g , p e o p l e g o t h i d e a o p u t t i n g c o d e w o r d s i n t op r o g r a m s . C o m m o d o r e c o m p u t e r s c a n b e c i r c u m v e n t e d , j u s t b p r e s s i n g< R U N - S T O P / R E S T O R E > , a n l o o k i n g u t h c o d e w o r d i t h p r o g r a m .

W c a f o i l t h a t w i t h P O K E 8 0 8 , P E E K ( 8 0 8 ) - 3 w h i c h d i s a b l e s b o t h k e y s .1 4

Page 153: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 153/322

Page 154: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 154/322

Page 155: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 155/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

4 . L O A D " $

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

1 R E D I R E C T O R Y S C R A T C H2 O P E N 1 , 8 , 3 , " # "3 O P E N 2 , 8 , 1 5 , " B - P 3 , 1 4 4 "4 P R I N T # l , C H R $ ( 2 0 ) C H R $ ( 2 0 ) C H R $ ( 2 0 ) C H R $ ( 0 ) C H R $ ( 0 )

C H R $ ( 0 )5 P R I N T # 2 , " U 2 : 3 , 0 , 1 8 "6 P R I N T # 2 / " I "7 E N

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

E s s e n t i a l l y , w h e n t h e d i r e c t o r y i l o a d e d w i t h L O A D " $ " , 8 i i h a n d l e d l i k eB A S I C p r o g r a m . W s i m p l y w r i t e z e r o t t h b e g i n n i n g o t h

d i r e c t o r y , a n t h L I S T r o u t i n e i n t e r p r e t s t h z e r o a t h e n d - o f - p r o g r a m .T h i s o n l y w o r k s f o L O A D " $ " , 8 a n n o t h D I R E C T O R Y c o m m a n d .

1 4

Page 156: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 156/322

Page 157: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 157/322

C H A P T E R

Page 158: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 158/322

Page 159: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 159/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

S E L F - M O D I F Y I N G P R O G R A M S

5 . L I N E I N S E R T I O N

P r o g r a m s a r u s u a l l y d e s i g n e d w i t h j u s t o n a p p l i c a t i o n i m i n d , p a r t i a l l yd u t t h f a c t t h a t y o c a n ' t c h a n g e p r o g r a m s a t h e y ' r e r u n n i n g . I t h n e x t f e p a g e s , w e ' r e g o i n g t s h o w y o h o t i n s e r t l i n e s i n t o r u n n i n gp r o g r a m . W e ' l l a l s o g i v e y o s o m e s a m p l e a p p l i c a t i o n s f o r t h i s u s e f u lf e a t u r e .

I n s e r t i n g l i n e s i a r u n n i n g p r o g r a m o p e n s u n e s p e c t r u m o p r o g r a m m i n g , a n d c a b a c c o m p l i s h e d w i t h f e s i m p l e P O K E s .R e m e m b e r , t h o u g h , t h i s l i t t l e r o u t i n e i b i g s t e p f r o m p r o g r a mg e n e r a t o r , w h i c h l e t s y o c r e a t e B A S I C ( o o t h e r ) p r o g r a m .

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

1 T P = 8 4 22 P O K E T P , A S C ( " L " )3 P O K E T P + 1 , A S C ( " I " )4 P O K E T P + 2 , A S C ( " S " )5 P O K E T P + 3 , A S C ( " T " )6 P O K E T P + 4 , 1 3 : R E R E T U R N7 0 8 P O K E 2 0 8 , 59 E N

1 4

Page 160: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 160/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

R U N n i n g t h i s p r o g r a m m a k e s i L I S T i t s e l f b w r i t i n g L I S T i n t o t h k e y b o a r d b u f f e r ( l i n e s 2 0 - 5 0 ) a n < R E T U R N > ( l i n e 6 0 ) . L i n e 8 0 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 f i v e c h a r a c t e r s a r i t h k e y b o a r d b u f f e r . O n a p p l i c a t i o n w o u l d b f o I N P U T o G E T , o f o p r o g r a m e n d . T h i s i w h a t h a p p e n s : t h p r o g r a m e n d s a l i n e 9 0 b u t h c o m p u t e r " I N P U T S "t h e c h a r a c t e r s t h a t w e r e " s t u c k " i t h k e y b o a r d b u f f e r . S o t h s y s t e mi n t e r p r e t s L I S T < R E T U R N > a d i r e c t c o m m a n d . R e m e m b e r t h a t t h c o m p u t e r g e t s t h e c h a r a c t e r s w h e n t h p r o g r a m e n d s . E x p e r i m e n t - p u i y o u r o w c o m m a n d s ( e . g . , R U N ; b u r e m e m b e r t p u i < R E T U R N > s( 1 3 ) ) .

5 . F O R M U L A E N T R Y

N o w , l e t ' s e x p e r i m e n t w i t h c h a n g i n g l i n e s i n r u n n i n g B A S I C p r o g r a m :

1 P R I N T " F O R M U L A E N T R Y "2 P R I N T : P R I N T3 P R I N T " E N T E R A E Q U A T I O N "4 P R I N T " ( E . G . Y = 2 * X + S Q R ( X / 3 4 . 5 ) * I N T ( 5 . 6 * X A 4 )5 I N P U T V

T h i s p r o g r a m s e c t i o n n e e d s n d e t a i l e d e x p l a n a t i o n . B a s i c a l l y , t h e q u a t i o no y o u r c h o i c e i t y p e d i n a n s t o r e d i V $ O u e x a m p l e h a t h f o r m a tY = . . . . X . . . , w h i c h l e a v e s o p e n f o a n v a r i a b l e . B u h o d w g e t t h ee q u a t i o n i n t o t h p r o g r a m ?

6 P R I N T C H R $ ( 1 4 7 )7 P R I N T P R I N T " 1 0 0 0 " ; V $8 P R I N T P R I N T " R U N 5 0 0 "

1 5

Page 161: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 161/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

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

9 P R I N T C H R $ ( 1 9 ) ;

W h e n y o R U t h i s p r o g r a m , t h c u r s o r b l i n k s o t h n e l i n e . I t h l i n ei c o r r e c t , p r e s s t h < R E T U R N > k e y . H e r e ' s m o r e :

1 0 F O A = T 1 1 P O K E 8 4 2 + A , 1 31 2 N E X T1 3 P O K E 2 0 8 , 41 4 E N 5 0 P R I N T C H R $ ( 1 4 7 )5 1 I N P U T " X - V A L U E " ; X1 0 0 0 R E H E R E ' S W H E R E T H E Q U A T I O N G O E S1 0 1 0 P R I N T " R E S U L T I S : " ; Y1 0 2 0 E N

T h k e y b o a r d b u f f e r i f i l l e d w i t h t h A S C I I c o d e f o < R E T U R N > T h p r o g r a m e n d s , t h < R E T U R N > s a r s e n t , a n t h r o u t i n e a u t o m a t i c a l l ys t a r t s w i t h R U 5 0 0 . B s u r e y o m a k e t h p r o p e r c h a n g e s w h e n l a r g e rn u m b e r o v a r i a b l e s a r e u s e d ; t h i s i m a t t e r o a l t e r i n g l i n e 5 0 0 .

5 . D A T A S T A T E M E N T G E N E R A T O R

W e ' r e n o t t h r o u g h w i t h t h i s s u b j e c t a n t h n e x t p r o g r a m w i l l s h o w t h a t .T h i s i " r e a l " a p p l i c a t i o n p r o g r a m : D A T A g e n e r a t o r , w h i c h y o u ' l l f i n dt b u s e f u l . A l t h o u g h t h i s p r o g r a m l e n d s i t s e l f t a l t e r a t i o n s , i g e n e r a t e sl o o l i n e s !

1 5

Page 162: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 162/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 P R I N T " { C L R H O M E } D A T A - G E N E R A T O R "2 P R I N T P R I N T P R I N T3 P R I N T " T H I S P R O G R A M C O N V E R T S T H " 4 0 I F P E E K ( 2 1 5 ) < 1 2 8 T H E N P R I N T5 P R I N T " C O N T E N T S O M E M O R Y T B A S I C - L O A D E R ! "6 P R I N T P R I N T7 P R I N T " I N P U T - F O R M A T :8 P R I N T P R I N T9 I N P U T " M E M O R Y C O N F I G U R A T I O N ( B A N K ) " ; B K1 0 I N P U T " B E G I N N I N G D A T A A D D R E S S ( H E X ) " ; A $1 1 I N P U T " E N D I N G D A T A A D D R E S S ( H E X ) " ; B $1 2 = D E C ( A $ ) 1 D E ( B $ )1 3 1 4 I N P U T " B E G I N N I N G L I N E N U M B E R " ; Z : O 1 5 I N P U T " L I N E N U M B E R I N C R E M E N T " ; S1 6 I N P U T " A M O U N T O D A T A P E L I N E " ; D Z : X Y = D Z1 7 1 8 G O S U B 1 0 0 01 9 2 0 0 L D = 2 1 P R I N T " { C L R H O M E } { C R S R D O W N } { C R S R D O W N } "2 2 I L D T H E N D Z L D F 2 3 0 L D = L D D 2 4 P R I N T Z ; " D A T A " 2 5 I D T H E N F O T D 1

E L S E G O T O 9 2 6 B A N K B K P E E K ( ( X Z E ) ) :

P R I N T P ; " { C R S R L E F T } , " ;2 7 0 C S C + 2 8 N E X T

9 Z Z 3 0 B A N K B K P E E K ( + ( X Y ( Z E - 1 ) ) D Z ) :

P R I N T P C S C 3 1 3 2 3 3 I F T H E N P R I N T " G O T O 2 1 0 " :

E L S E P R I N T " G O T O 9 0 0 "3 4 G O T O 8 0 8 0 R E F I L L K E Y B O A R D B U F F E R8 1 P R I N T " { H O M E } " ;8 2 F O 8 4 T 8 5 8 3 P O K E X , 1 38 4 N E X T

1 5

Page 163: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 163/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

8 5 P O K E D E C ( " D O " ) , 1 08 6 E N 9 0 R E E D I T O R9 1 P R I N T " { C L R H O M E } { C R S R D O W N } { C R S R D O W N } " ;9 2 P R I N T O + 3 * S ; " I F C S O " ; C S ;T H E N P R I N T C H R $ ( 7 ) ; : L I S T "9 3 P R I N T " D E L E T E - 1 3 0 0 "9 4 B A N K 1 5 G O T O 8 0 1 0 0 0 R E I N I T1 0 1 0 P R I N T " { C L R H O M E H C R S R D O W N } { C R S R D O W N } "1 0 2 0 P R I N T Z ; " F O R X = " / A 1 ; " T O " / B1 0 3 0 P R I N T S / " R E A D A C S = C S + A : P O K E X , A "1 0 4 0 P R I N T S ; " N E X T X 1 0 5 01 0 6 0 P R I N T " G O T O 2 0 0 "1 0 7 0 G O T O 8 0

S a v e t h i s p r o g r a m a D A T A G E N b e f o r e r u n n i n g ! ! ! H e r e f s w h a t i d o e s :

T h p r o g r a m g e n e r a t e s B A S I C l o a d e r f o y o u . Y o u l l n e e d t k n o w t h s t a r t i n g a n e n d i n g a d d r e s s e s o 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 t h m e m o r y c o n f i g u r a t i o n ( n o r m a l l y B a n k 0 ) I a d d i t i o n , y o c h o o s e t h l i n en u m b e r t s t a r t , i n c r e m e n t , e t c . T h f i r s t l i n e n u m b e r s h o u l d b l a r g e r t h a n1 3 0 0 ; o t h e r w i s e t h D A T A g e n e r a t o r p r o g r a m w i l l b o v e r w r i t t e n . O n c et h i s i c o m p l e t e , t h D E L E T E c o m m a n d e r a s e s t h D A T A g e n e r a t o rp r o g r a m , a f t e r w h i c h y o m a w a n t t r e n u m b e r t h p r o g r a m .

C - 1 2 8 C - 6 4 M E A N I N G

2 0 1 9 N u m b e r o c h a r a c t e r s t b g i v e n b t h k e y b o a r d .

8 4 2 - 8 5 1 6 3 1 - 6 4 0 K e y b o a r d b u f f e r ( n o r m a l ) ; 1 b y t e s t b g i v e n a r s t o r e d i k e y b o a r d b u f f e r .

2 5 9 2 6 4 9 M a x i m u m s i z e o k e y b o a r d b u f f e r ( 1 0 ) .

1 5

Page 164: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 164/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

I m p o r t a n t : " R e a l - t i m e " l i n e i n s e r t i o n i a l s o p o s s i b l e i C - 6 4 m o d e , b u i t ' s l o e a s i e r t m a n a g e i C - 1 2 8 m o d e . W h e n y o c h a n g e l i n e s i 6 m o d e , a l t h e v a r i a b l e s a r e c l e a r e d . T h i s i n o t h c a s e i C - 1 2 8 m o d e ,b e c a u s e s p e c i a l m e m o r y b a n k i s e a s i d e f o r v a r i a b l e s ( B a n k 1 )

T h m a x i m u m s i z e o t h k e y b o a r d b u f f e r i n o r m a l l y 1 0 w h i c h i u s u a l l ys u f f i c i e n t . I f n e e d b e c o m m a n d w o r d s c a b i n s e r t e d i " s h o r t f o r m " ( s e et h b a c k o t h C - 1 2 8 U s e r ' s m a n u a l f o a b b r e v i a t i o n s ) . O t h e r w i s e , t h C - 1 2 8 l e t s y o c h a n g e t h k e y b o a r d b u f f e r t m a x i m u m o 2 e l e m e n t s .T h i s o v e r w r i t e s t h T A B - b i t m a p m e m o r y , w h i c h m e a n s t h a t t h T A k e w o n f t w o r k p r o p e r l y . T h e n l a r g e d k e y b o a r d b u f f e r c o v e r s m e m o r yl o c a t i o n s 8 4 t 8 6 1 . C h a n g e t h s i z e o t h k e y b o a r d b u f f e r w i t h t h i sc o m m a n d :

P O K E 2 5 9 2 , 2 0

1 5

Page 165: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 165/322

C H A P T E R

Page 166: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 166/322

Page 167: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 167/322

Page 168: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 168/322

A b a c u s S o f t w a r e T r i c k s T i p s f o t h C - 1 2 8

T h k e t t h i s i t h p r o c e s s o r p o r t , a d d r e s s 1 B i ( C A S S W R T ) , b i ( C A S S S E N S ) a n b i ( C A S S M O T O R ) o t h i s a d d r e s s d e a l w i t h c a s s e t t e

o p e r a t i o n . T s w i t c h t h m o t o r o n t h b i C A S S M O T O R m u s t b t u r n e do n

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

6 . S E N S I N G T H D A T A S E T T E K E Y S

A d d r e s s d o e s m o r e ! B i c h e c k s t s e i k e i p r e s s e d o t h D a t a s e t t e , w h i c h i p a r t o t h o p e r a t i n g s y s t e m ( " P R E S SP L A Y ( & R E C O R D ) O T A P E " m e s s a g e s a r c o n t r o l l e d h e r e ) .U n f o r t u n a t e l y , t h c o m p u t e r i u n a b l e t d i s c e r n w h i c h D a t a s e t t e k e i p r e s s e d . T h i s c a b n u i s a n c e i t h u s e r p r e s s e s P L A Y a n f o r g e t s t p r e s s R E C O R D a w e l l ; t h s y s t e m w o n ' t c a t c h t h e r r o r .

T h i s b i c h e c k s f o t h e t a p e s w i t c h e s :

W A I T 1 , 1 6 ( W a i t u n t i l S T O P i p r e s s e d o r e c o r d e r )W A 1 , 2 , ( W a i t u n t i l k e h a b e e n p r e s s e d o t h r e c o r d e r )

W c a a l s o m a k e t h s y s t e m t e s t f o R U N - S T O P :

I P E E K ( 1 ) = 9 9 T H E N P R I N T " O O P S "

1 5

Page 169: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 169/322

A b a c u s S o f t w a r e T r i c k s T i p s f o t h C - 1 2 8

6 . D O I N G U N U S U A L T H I N G S W I T H T H D D

O k a y , w h a t i " D D R " ? A n w h a t s o r t o " u n u s u a l t h i n g s " c a y o u d ow i t h i t

l o t , w t h i n k . T h p r o c e s s o r p o r t i b a s i c a l l y a I / ( I n p u t / O u t p u t ) p o r t ,h a n d l e d b t h C I A s . T h i s p o r t h a s i l i n e s , t h r e e o w h i c h a r d e d i c a t e dt t h D a t a s e t t e . T h l i n e s a c a b o t h o u t p u t a n i n p u t ; t h e s e d i r e c t i o n s a r d e t e r m i n e d b t h D D ( D a t a D i r e c t i o n R e g i s t e r ) f o r t h e p r o c e s s o r p o r t ,f o u n d a a d d r e s s 0 T h l a y o u t :

b i D a t a d i r e c t i o n C A S S W R b i 4 : D a t a d i r e c t i o n C A S S S E N Sb i D a t a d i r e c t i o n C A S S M O T O R

0 I n p u tO u t p u t

C A S S W R a n C A S S M O T O R a r o u t p u t T h e y a f f e c t t h r e c o r d e r w h e nw r i t i n g t o t a p e . C A S S S E N S i a i n p u t l i n e . I c h e c k s i t a p e d r i v e k e d o w n o n o t .

1 5

Page 170: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 170/322

A b a c u s S o f t w a r e T r i c k s T i p s f o t h C - 1 2 8

6 . C O P Y P R O T E C T I O N W I T H T H D A T A S E T T E

W h a t h a p p e n s i w c h a n g e t h b i t s i t h D D R ? T h P O K E b e l o w t u r n sC A S S S E N S i n t o a o u t p u t l i n e :

P O K E 0 , P E E K ( 0 ) O 2 A

T h r e s u l t : C A S S S E N S w i l l n o r e g i s t e r c a s s e t t e s t a t u s . T h s y s t e m w i l ls a y , " P R E S S P L A Y ( & R E C O R D ) O T A P E " , a n e v e n i y o d s o t h o p e r a t i n g s y s t e m w o n ' t a c k n o w l e d g e " O K " , o L O A D , o S A V E .C h a n g i n g t h i n g s b a c k t n o r m a l i a s i m p l e m a t t e r o t y p i n g :

P O K E 0 , P E E K ( 0 ) A N N O 2 A

B c h a n g i n g C A S S W R T , w c a p r o d u c e m e t h o d o c o p y p r o t e c t i o n :

P O K E 0 P E E K ( O ) A N D N O T 2 A

T h p r o m p t w i l l c o m e u p t h k e y s w i l l b s e n s e d , a n t h S A V E r o u t i n ew i l l a p p e a r t w o r k . . . b u t i w o n ' t . T r e t u r n t n o r m a l :

P O K E 0 , P E E K ( 0 ) O 2 A

O n l a s t p o s s i b i l i t y i t a l t e r t h m o t o r c o n t r o l . R e - e n t e r :

P O K E 0 , P E E K ( 0 ) A N N O 2 A

T h s o l u t i o n t t h i s p r o b l e m : P O K E 0 , P E E K ( 0 ) O 2 A 1 6

Page 171: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 171/322

A b a c u s S o f t w a r e T r i c k s T i p s f o t h C - 1 2 8

6 . " L O - F I " - T H D A T A S E T T E A M U S I C B O

S t e r e o s y s t e m s a n v i d e o d i s c p l a y e r s h a v e b e e n d e v e l o p e d w i t h c o m p u t e ri n t e r f a c e s b u i l t i n T h i s m e a n s t h a t i f e y e a r s , y o u r s t e r e o a n v i d e oe q u i p m e n t w i l l b c o m p u t e r c o n t r o l l e d . R i g h t n o w , s o m e c o m p u t e r s a l l o wy o t p l a y a u d i o c a s s e t t e s t h r o u g h t h c o m p u t e r ' s d a t a s y s t e m . W g i v ey o p r o g r a m t h a t d o e s j u s t t h a t o t h n e x t p a g e . w o r d o w a r n i n g : t h s o u n d q u a l i t y w e l l , t h w o r d " r o t t e n 1 1 w o u l d d e s c r i b e i b e s t .

T h p r o g r a m b e l o w m a n i p u l a t e s t h t h r e e I / l i n e s o t h p r o c e s s o r p o r t .T h e r e i a n o t h e r , u n u s e d l i n e b e t w e e n t h r e c o r d e r a n t h c o m p u t e r ( C A S SR E A D , t h e q u i v a l e n t o C A S S W R T ) . A l " i n c o m i n g " d a t a g o e s t h r o u g ht h i s l i n e . T h p r o b l e m : T h l i n e d o e s n ! t e n a t h p r o c e s s o r , l i k e t h e o t h e rl i n e s i c o n t i n u e s o t C I A 1 ( p u t t i n g t h s e r i a l p o r t a o u d i s p o s a l ) . S r e g i s t e r 1 o C I w i l l h a v e t b s e t :

R E 1 B I 4 : 1 = S i g n a l t r i p p e d o p i F L A G

H e r e ' s t h m a c h i n e c o d e l i s t i n g :

1 A 0 0 A 0 L D # $ 0 0 : V O L U M E1 A 0 2 A 0 D L D $ D C 0 D : C h e c k F L A G p i o C I A l1 A 0 5 C 0 C M P # $ 0 0 : N s i g n a l ?1 A 0 7 F 0 0 B E Q $ 1 A O B : Y E S — g o o 1 A 0 9 A 0 O L D # $ 0 F : N O — t u r n o f v o l u m e1 A 0 B 8 1 D S T $ D 4 1 8 : a n d S I r e g i s t e r 2 1 A 0 E A 5 D L D $ D : R e a d k e y b o a r d1 A 1 0 C 9 5 C M P # $ 5 8 : 8 8 = n o k e p r e s s e d1 A 1 2 F 0 E B E $ l A 0 0 : N k e y s g o 1 A 1 4 6 R T : R e t u r n t o B A S I C

1 6

Page 172: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 172/322

A b a c u s S o f t w a r e T r i c k s T i p s f o r t h e C - 1 2 8

A n t h B A S I C l o a d e r :

5 0 0 0 F O = 6 6 5 6 T O 6 6 7 65 0 1 0 R E A D A C S C A P O K E X , 5 0 2 0 N E X T X5 0 3 0 I C < 2 7 9 9 T H E N P R I N T C H R $ ( 7 ) ; : L I S T5 0 4 0 D A T A 1 6 0 , 0 , 1 7 3 , 1 3 , 2 2 0 , 2 0 1 , 0 , 2 4 0 , 2 , 1 6 0 , 1 5 , 1 4 05 0 5 0 D A T A 2 4 , 2 1 2 , 1 6 5 , 2 1 3 , 2 0 1 , 8 8 , 2 4 0 , 2 3 6 , 9 6

S t a r t t h i s p r o g r a m w i t h t h c o m m a n d : S Y D E ( " 1 A 0 0 " ) . T h p r i n c i p l e o t h i s p r o g r a m i s i m p l e : I l o o k s f o s i g n a l a F L A G . I t h a t ' s t h c a s e , t h s p e a k e r i t u r n e d o n i n o t , t h s p e a k e r r e m a i n s o f f . T h s w i t c h i n g o a n o f o c c u r s w i t h i n t h e s m a l l e s t l o o p p o s s i b l e i m a c h i n e l a n g u a g e a n h o r r i b l e t o n e c o m e s o u t .

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

6 . S A V I N G T C A S S E T T E - S O R T O F

T h S A V E c o m m a n d n e e d s n i n t r o d u c t i o n ; y o k n o w w h a t i i s a n h o i w o r k s . B u w h a t a r t h o s e f u n n y s o u n d s m a d e b c a s s e t t e ( d i d y o l i s t e n , u s i n g t h p r o g r a m i t h l a s t c h a p t e r ? ) ? T h p e e p s a r m a d e b t h C A S S W R T l i n e :

b i t 3 C A S S W R Tl = i m p u l s e

I t ' s f a i r l y s i m p l e t m a k e y o u r o w t a p e i m p u l s e :1 6

Page 173: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 173/322

A b a c u s S o f t w a r e T r i c k s T i p s f o t h C - 1 2 8

1 R E T O N E S O C A S S E T T E2 P R I N T " P R E S S P L A Y A N D R E C O R D O T A P E "3 W A I T 1 , 3 2 , 3 24 F O W T 2 5 F O K T 2 6 P O K E 1 , P E E K ( 1 ) O R 8 : R E M I M P U L S E7 F O T W : R E M D E L A Y8 N E X T9 P O K E 1 , P E E K ( 1 ) A N D N O T 8 : R E M S E B A C K1 0 N E X T1 1 N E X T1 2 E N

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

1 6

Page 174: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 174/322

Page 175: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 175/322

C H A P T E R

Page 176: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 176/322

Page 177: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 177/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T H K E Y B O A R D

7 . 1 . K E Y B O A R D A S S I G N M E N T

T h e r e a r m a n y w a y s t r e a d t h k e y b o a r d b e s i d e s t h B A S I C c o m m a n d sG E a n I N P U T , e s p e c i a l l y 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 m e r s . I z e r op a g e l o c a t i o n 2 1 ( $ D 5 ) t h c o m p u t e r s t o r e s t h v a l u e o t h c u r r e n t l yp r e s s e d k e y . T h i s v a l u e i n o t h A S C I I v a l u e , i i d e r i v e d f r o m t h k e y b o a r d t a b l e i n t h R O o t h c o m p u t e r .

T h C - 6 4 s t o r e s t h e c u r r e n t l y p r e s s e d k e i z e r o - p a g e l o c a t i o n 2 0 ( $ C B ) .D u t t h a d d i t i o n a l k e y s o t h C - 1 2 8 t h v a l u e s a r n o a l w a y s t h s a m e .B e l o w i c h a r t s h o w i n g w h a t v a l u e i r e t u r n e d f o e a c h k e p r e s s e d .

K e L e f t a r r o w

C L R H O M EC T R L

R U N - S T O P

V a l u e5 5 1 1 2 3 4 5 5 1 2 3 4 4 6 1 2

K e

I N S T D E L

A ( u p a r r o w )

V a l u e5 1 2 3 4 4

6 1 2 3 3 4 5 1 1 2

1 6

Page 178: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 178/322

A b a c u s S o f t w a r e

C R S R d o w nS P A C E

2 3 4 5 1 2 2 3 4 6

T r i c k s

R E T U R N

C R S R r i g h t

a n T i p s f o t h C - 1 2 8

3 4 5 2 3 3 4 5

T h e r e a r d i f f e r e n c e s b e t w e e n t h C - 6 4 a n C - 1 2 8 . N k e p r e s s e d r e t u r n st h v a l u e 8 o t h C - 1 2 8 . O t h C - 6 4 n k e r e t u r n s t h v a l u e 6 4

T h f o l l o w i n g k e y s a r b r a n d n e o t h C - 1 2 8 :

H e l p - B u t t o n 6 T a b - B u t t o n 6 E S C - B u t t o n 7 2L i n e F e e d 7

I n a d d i t i o n t t h c u r s o r k e y s b e l o w t h < R E T U R N > k e ( w h i c h r e t u r n t h es a m e v a l u e s i b o t h m a c h i n e s ) t h e r e a r e f o u r n e c u r s o r k e y s . T h e s e h a v ed i f f e r e n t v a l u e s !

C u r s o r u 8 C u r s o r d o w n 8 C u r s o r l e f t 8 C u r s o r r i g h t 8

1 6

Page 179: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 179/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h C - 1 2 8 a l s o i n c l u d e s a n u m e r i c k e y p a d . J u s t l i k e t h s e p a r a t e c u r s o rk e y s , t h v a l u e s r e t u r n e d b t h k e y p a d k e y s a r n o e q u a l t t h v a l u e sr e t u r n e d f o r t h e n u m b e r s o t h a l p h a n u m e r i c k e y b o a r d . H e r e a r e t h ev a l u e s f o b o t h k e y b o a r d s o t h C - 1 2 8 :

K e K e y b o a r d K e y p a d

R E T U R N

5 5

1 1 1 2 2 3 3 4

4 4

7 6 7 6 6 7 7 6 7

8 8 7 7 7

T h j o y s t i c k o p o r t c a a l s o a f f e c t l o c a t i o n 2 1 ( $ C D ) . U n f o r t u n a t e l y t h i sa d d r e s s i n o u s e f u l f o r e a d i n g t h j o y s t i c k . W h e n y o p u s h t h j o y s t i c ku p w a r d , t h a d d r e s s w i l l n o t c h a n g e . Y o c o u l d u s t h i s f a c t t o c o n n e c ta n o t h e r k e y b o a r d t p o r t 1

J o y s t i c k u J o y s t i c k i t h m i d d l ek e p u s h e d

8 8 9

E f f e c t l i k e A L N e f f e c t

E f f e c t l i k e s h i f t1 6

Page 180: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 180/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h c . 1 2 8

J o y s t i c k l e f t 9 E f f e c t l i k e C T R LJ o y s t i c k r i g h t 9 J o y s t i c k d o w n 8

W i t h t h f o l l o w i n g p r o g r a m y o c a s i m u l a t e t h B A S I C 7 . c o m m a n dG E T K E Y :

1 I P E E K ( 2 1 3 ) 8 T H E N 1 2 G E A 3 P R I N T A 4 G O T O 1

O c o u r s e , t h i s c o m m a n d s e q u e n c e i B A S I C p r o g r a m s d o e s n ' t m a k e m u c hs e n s e b e c a u s e t h G E T K E Y c o m m a n d a l r e a d y e x i s t s . T h i s p r o g r a m c a b c o n v e r t e d f o m a c h i n e l a n g u a g e p r o g r a m s . I a s s e m b l y l a n g u a g e t h p r o g r a m w o u l d b v e r y s h o r t a n c o u l d l o o k a s f o l l o w i n g :

L o o p I D $ D C M $ 5 B E Q L o o p

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

1 7

Page 181: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 181/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

7 . 2 . C H A N G I N G K E A S S I G N M E N T S

E v e r y c o m p u t e r p r o g r a m e r a n d u s e r h a s t h e i r o w i d e a s o h o t u s c o m p u t e r . M a n y p e o p l e b e c a m e i n t e r e s t e d i n c o m p u t e r s t h r o u g h c o m p u t e rg a m e s . F o t h i s g r o u p t h c o m p u t e r i n d u s r t y d e s i g n e d t h e i r p r o d u c t s t b u s e r - f r i e n d l y , w i t h e a s i l y c o n n e c t e d j o y s t i c k s , l i g h t p e n , t r a c k b a l l , o p a d d l e s .

A n o t h e r g r o u p o c o m p u t e r u s e r s a r e p e o p l e w h g o i n v o l v e d w i t hc o m p u t e r s b e c a u s e o f t h e i r j o b s . T h C - 1 2 8 w i l l p r o b a b l y b m o r e p o p u l a rw i t h t h i s g r o u p t h a n w a t h C - 6 4 , b e c a u s e t h C - 1 2 8 c a a l s o r u C P / M .C P / M i a o p e r a t i n g s y s t e m t h a t r u n s o w i d e v a r i e t y o f c o m p u t e r s . T h a b i l i t y o C P / M t r u o m a n y d i f f e r e n t c o m p u t e r s h a m a d e i v e r yp o p u l a r o p e r a t i n g s y s t e m . T e x p a n d t h p e r f o r m a n c e o t h C - 1 2 8 i w o u l d b v e r y u s e f u l t c h a n g e t h k e a s s i g n m e n t s , d e p e n d i n g o t h r e q u i r e m e n t s o t h u s e r .

T h i s i n o a e a s y i t h C - 1 2 8 a i i i t h C - 6 4 . T h k e y b o a r d d e c o d e rt a b l e i l o c a t e d i t h R O M :

6 4 1 2 8 ( $ F A 8 0 ) f o A S C I I o p e r a t i o n6 4 8 0 9 ( $ F D 2 9 ) f o D I o p e r a t i o n ( i n t e r n a t i o n a l m o d e l s o n l y )

O t h i n t e r n a t i o n a l m o d e l s o t h C - 1 2 8 , t w c h a r a c t e r d e c o d i n g t a b l e s a r i n c l u d e d i R O M . T h i s i t g i v e t h e i n t e r n a t i o n a l m o d e l s t h c o r r e c tf o r e i g n c h a r a c t e r s e t s f o t h c o u n t r i e s i w h i c h t h e y a r s o l d . W h a v ec h e c k e d t h U . S . m o d e l s a n t h G e r m a n m o d e l s P I s t a n d s f o D e u t s c h( G e r m a n ) I n d u s t r y N o r m ) . O t h i n t e r n a t i o n a l m o d e l s t h < C A P - L O C K >

1 7

Page 182: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 182/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

k e i r e p l a c e d b a < A S C I I - D I N > k e y . W h e n t h i s k e i p r e s s e d t h o p e r a t i n g s y s t e m l o a d s t h e f o r e i g n c h a r a c t e r ( D I N ) s e i n t o m e m o r y . M i n o rc h a n g e s w e r e m a d e t t h o p e r a t i n g s y s t e m t a c c o m m o d a t e t h i s ; f o m o r ed e t a i l s p l e a s e s e o u b o o k C o m m o d o r e 1 2 I n t e r n a l s .

Y o c a r e a d t h k e a s s i g n m e n t s ( w i t h t h m o n i t o r u s t h c o m m a n dM F F A 8 0 ) , b u y o c a n ' t c h a n g e t h a s s i g n m e n t s b e c a u s e t h e y a r i R O M .T h e r e i a n o t h e r w a y . I z e r o p a g e t h e r e i a p o i n t e r t t h k e y b o a r dd e c o d e r t a b l e . I t i s a l o c a t i o n s 8 3 ( $ 0 3 3 E ) a n 8 3 ( $ 0 3 3 F ) . T c h a n g et h e s e v a l u e s o t h i n t e r n a t i o n a l m o d e l s l i t t l e t r i c k i n e e d e d . O b o t h t h U . S . a n t h i n t e r n a t i o n a l m o d e l s y o w i l l b a b l e t c h a n g e t h l o w - b y t e ,b u y o w i l l n o b a b l e t e n t e r c o m m a n d s a n y m o r e b e c a u s e t h k e y b o a r dw i l l n o b d e c o d e d p r o p e r l y .

O t h i n t e r n a t i o n a l m o d e l s , a s o o n a y o c h a n g e t h h i g h - b y t e o t h p o i n t e r ( a 8 3 1 ) y o w i l l n o t i c e t h a t t h c o m p u t e r h a r e s e t t h e s e l o c a t i o n sb a c k t o t h e i r n o r m a l v a l u e s .

T h i s d o e s n ' t h a p p e n b e c a u s e t h a d d r e s s i i t h R O M . I i c a u s e d b t h p e r m a n e n t c h e c k o t h < A S C H - D I N > k e y . O t h i n t e r n a t i o n a l m o d e l sw h e n t h h i g h - b y t e d o e s n o e q u a l t h v a l u e w h i c h i p r e s e t f o t h e c u r r e n tm o d e , t h a d d r e s s i r e s e t . Y o c a p r e v e n t t h p e r m a n e n t c h e c k o t h < A S C I I - D I N > k e y , b s e t t i n g t h s e v e n t h b i o a d d r e s s 2 7 5 7 ( $ O A C 5 ) .

P O K E 2 7 5 7 , P E E K ( 2 7 5 7 ) o r 1 2

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

1 7

Page 183: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 183/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

W h e n y o a l t e r t h i s p o i n t e r y o w i l l n l o n g e r b a b l e t e n t e r a n c o m m a n d s f r o m t h k e y b o a r d W h e n y o p u s h k e c h a r a c t e r w i l l a p p e a rb u i i s e l d o m t h o n y o p r e s s e d . Y o m u s t p r e s s t h e r e s e t b u t t o n t r e t u r n t h c o m p u t e r b a c k t n o r m a l o p e r a t i o n ; n o e v e n< R U N - S T O P / R E S T O R E > h e l p s . F o t h i s r e a s o n , y o s h o u l d c o p y o n o t h c h a r a c t e r s e t a b l e s t o R A b e f o r e s w i t c h i n g . E x a m p l e a 6 9 1 2( $ 1 B O O ) :

1 R E C o p y a n d s w i t c h2 F O 1 = T 8 3 P O K E 6 9 1 2 + 1 , P E E K ( 6 4 1 2 8 + 1 )4 N E X T5 R E I N T E R N A T I O N A L M O D E L S O N L Y :

P O K E 2 7 5 7 , P E E K ( 2 7 5 7 ) O 1 2 6 P O K E 8 3 0 , 07 P O K E 8 3 1 , 2 7

O t h i n t e r n a t i o n a l m o d e l s i y o h a t h < A S C I I - D I N > k e o n y o w i l ln o t r e c o g n i z e a b i d i f f e r e n c e . I y o s t a r t e d t h p r o g r a m w h e n t h A S C I Ic h a r a c t e r s e w a a c t i v a t e d , y o w i l l h a v e t h < C A P S - L O C K > c h a r a c t e r s e t ,w h i c h i n o r m a l i t h A m e r i c a n v e r s i o n . W h e n t h < C A P S - L O C K > k e i o n a l l e t t e r s a p p e a r a c a p i t a l l e t t e r s , j u s t l i k e t h < S H I F T > o < S H I F T - L O C > K k e y . T h d i f f e r e n c e i s t h n u m b e r s a p p e a r j u s t l i k eb e f o r e a n n o t h u p p e r c h a r a c t e r , o b t a i n e d w i t h < S H I F T > . I

< C A P S - L O C K > i n o p u s h e d , y o h a v e t h n o r m a l c h a r a c t e r s e t .

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

T a k e t h v a l u e o t h k e y o w o u l d l i k e t c h a n g e a n d a d d i t 6 9 1 2 . I t h i s l o c a t i o n y o s t o r e t h A S C I I v a l u e o f t h n e a s s i g n m e n t .

1 7

Page 184: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 184/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

E x a m p l e : Y o w o u l d l i k e t c h a n g e a n Z J u s t a d t h e s e l i n e s t t h p r e v i o u s p r o g r a m :

8 P O K E 6 9 1 2 + 1 2 , 8 99 P O K E 6 9 1 2 + 2 5 , 9 0

A f t e r t h p r o g r a m f i n i s h e s r u n n i n g t h i t h k e a n t h Y I i r e a l l y t h a t e a s y .

A n o t h e r t i t h a t w i l l h e l p y o t e n t e r m a c h i n e l a n g u a g e l i s t i n g s , i t h f o r mo D A T A s t a t e m e n t s , f a s t e r i n t o y o u r c o m p u t e r . I t h k e y p a d i a p e r i o dk e y . T h i s c h a r a c t e r i u s e l e s s f o r e n t e r i n g D A T A s t a t e m e n t s f o m a c h i n el a n g u a g e p r o g r a m s . I n s t e a d o t h i s p e r i o d c o m m a w o u l d m a k e e n t e r i n gD A T A s t a t e m e n t s m u c h e a s i e r . S w e ' l l c h a n g e t h k e y p a d , t c o m m ai n s t e a d o t h e p e r i o d :

1 R E M C O M M A I N S T E A D P O I N T2 F O 1 = T 8 3 P O K E 6 9 1 2 + 1 , P E E K ( 6 4 1 2 8 + I )4 N E X T5 P O K E 2 7 5 7 , P E E K ( 2 7 5 7 ) O 1 2 6 P O K E 8 3 0 , 07 P O K E 8 3 1 , 2 78 P O K E 6 9 9 4 , 4 4

1 7

Page 185: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 185/322

Page 186: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 186/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 4 P O K E 6 9 9 4 , 3 21 5 P O K E 6 9 8 5 , 6 1 6 P O K E 6 9 8 6 , 7

Y o r e a c h t h l e t t e r s " E a n " F w h e n y o p u s h t h k e y s < S H I F T > a n < F 1 > o < S H i h T > a n < F 3 > , o w i t h t h p l u s k e ( E a n t h m i n u s k e ( F ) .

W h e n y o u w o u l d l i k e t c o n v e r t h e x a d e c i m a l n u m b e r t a d e c i m a l n u m b e ry o o n l y h a v e t p u s h t h k e y s < S H I F T > a n d < F 5 > . Y o c a c o n v e r td e c i m a l n u m b e r t a h e x a d e c i m a l n u m b e r w i t h S H I F T a n d < F 7 > .

7 . 4 . S H I F T , C = C T R L , A L K E A S S I G N M E N T S

W h e n y o u s e d t h p r o g r a m w h e r e w c h a n g e d t h a n z y o p r o b a b l ys a w , t h a t t h s h i f t e d v a l u e s o t h e s e k e y s r e m a i n u n c h a n g e d . F o a s s i g n m e n t s u s i n g t h < S H I F T > , t h < C = > k e y , t h < A L T > k e y a n d t h < C T R L > k e y , t h e r e a r e s e p a r a t e t a b l e s . F o t h A S C I I c h a r a c t e r s e ( U . S .m o d e l s ) t h t a b l e s a r l o c a t e d a f o l l o w s :

6 4 1 2 8 ( $ F A 8 0 ) F i r s t a s s i g n m e n t6 4 2 1 7 ( $ F A D 9 ) W i t h S H I F T6 4 3 0 6 ( $ F B 3 2 ) W i t h C O M M O D O R E - K e y6 4 3 9 5 ( $ F B 8 B ) W i t h C T R L6 4 1 2 8 ( $ F A 8 0 ) W i t h A L ( s a m e m e a n i n g w i t h o u t s h i f t )

O t h i n t e r n a t i o n a l m o d e l s t h C - 1 2 8 h a s a s e c o n d f o r e i g n l a n g u a g ec h a r a c t e r s e t . W h e n t h < A S C H - D I N > k e i p r e s s e d , y o c a n c h a n g e t h

1 7

Page 187: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 187/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

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

6 4 8 0 9 ( $ F D 2 9 ) I n i t i a l v a l u e6 4 8 9 8 ( $ F D 8 1 ) W i t h S H I F T - K E Y6 4 9 8 7 ( $ F D D B ) W i t h C O M M O D O R E - K E Y6 5 0 7 6 ( $ F E 3 4 ) W i t h C T R L6 4 1 2 8 ( $ F A 8 0 ) W i t h A L

P o i n t e r s t t h e r e s p e c t i v e t a b l e f o e a c h o f t h f i v e k e y s a r l o c a t e d i z e r op a g e . O t h i n t e r n a t i o n a l m o d e l s t h e r e i a l s o p o i n t e r f o t h < A S C I I / D I N > k e y :

8 3 0 - 8 3 1 ( $ 0 3 3 E - $ 0 3 3 F ) S t a n d a r d k e p r e s s8 3 2 - 8 3 3 ( $ 0 3 4 0 - $ 0 3 4 1 ) W i t h < S H I F T >8 3 4 - 8 3 5 ( $ 0 3 4 2 - $ 0 3 4 3 ) W i t h C o m m o d o r e ( < C = > )8 3 6 - 8 3 7 ( $ 0 3 4 4 - $ 0 3 4 5 ) W i t h < C T R L >8 3 8 - 8 3 9 ( $ 0 3 4 6 - $ 0 3 4 7 ) W i t h < A L T >8 4 0 - 8 4 1 ( $ 0 3 4 8 - $ 0 3 4 9 ) W i t h < A S C H - D I N > o

< C A P S - L O C K > k e

E a c h t a b l e h a 8 b y t e s , e q u a l s t t h 8 k e y s , p l u s t h p o s s i b i l i t y t h a t n k e i p r e s s e d .

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

1 7

Page 188: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 188/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 R E a n c h a n g e1 B A N K 1 2 F O 1 = t 9 0 * 43 P O K E 6 6 5 6 * 1 , P E E K ( 6 4 1 2 8 + 1 )4 N E X T5 P O K E 2 7 5 7 , P E E K ( 2 7 5 7 ) o 1 2 6 R E n o r m a l t a b l e7 P O K E 6 6 5 6 + 1 2 , 8 98 P O K E 6 6 5 6 + 2 5 , 9 09 R E S h i f t - C h a r t1 0 P O K E 6 6 5 6 + 8 9 + 1 2 , 8 9 + 3 21 1 P O K E 6 6 5 6 + 8 9 + 2 5 , 9 0 + 3 21 2 R E C o m m o d o r e - C h a r t1 3 P O K E 6 6 5 6 + 2 8 9 + 1 2 , 1 8 31 4 P O K E 6 6 5 6 + 2 8 9 + 2 5 , 1 8 41 5 R E C T R L1 6 P O K E 6 6 5 6 + 3 8 9 + 1 2 , 2 51 7 P O K E 6 6 5 6 + 3 8 9 + 2 5 , 2 61 8 R E C h a n g e p o i n t e r1 9 P O K E 8 3 0 , 02 0 P O K E 8 3 1 , 2 62 1 P O K E 8 3 2 , 8 92 2 P O K E 8 3 3 , 2 62 3 P O K E 8 3 4 , 8 92 4 P O K E 8 3 5 , 2 62 5 P O K E 8 3 6 , 1 12 6 P O K E 8 3 7 , 2 7

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

1 7

Page 189: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 189/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

7 . 5 . T H A U X I L I A R Y K E Y S

T h c o m p u t e r n e e d s e x t r a k e y s t m a k e i p o s s i b l e f o k e t h a v e m o r et h a n o n v a l u e . T h C - 6 4 h a t h r e e e x t r a k e y s : < S H I F T > ( b o t h < S H B F T >a n < S H I F T L O C K > h a v e t h s a m e f u n c t i o n ) , < C = > a n < C T R L > .

T h C - 1 2 8 h a t h e s e , a w e l l a t h r e e a d d i t i o n a l k e y s : < E S C > , < A L T > a n t h < C A P S - L O C K > ( < A S C I I - D I > o t h i n t e r n a t i o n a l m o d e l s ) .

E S m e a n s e s c a p e . T h i s k e i n o n e i n v e n t i o n f r o m C o m m o d o r e . I h a b e e n u s e d f o m a n y y e a r s i o t h e r c o m p u t e r s . W i t h t h < E S C > k e o t h C - 1 2 8 y o c a d f u n c t i o n s l i k e s w i t c h i n g f r o m t h 4 t t h 8 c o l u m ns c r e e n . E v e r y k e h a s p e c i a l f u n c t i o n i c o m b i n a t i o n w i t h t h < E S C >k e y . B u < E S C > i d i f f e r e n t t h a n t h < S H I F T > , < C = > a n < C T R L >k e y s s : < E S C > a n a n o t h e r k e a r n o t p r e s s e d s i m u l t a n e o u s l y , b u o n a f t e r e a c h o t h e r .

7 . 5 . 1 . U S I N G T H A U X I L I A R Y K E Y S

T h a u x i l i a r y k e y s c a n b e r e a d a m e m o r y l o c a t i o n 2 1 ( $ D 3 ) . I o n o t h < S H I F T > k e y s o < S H I F T - L O C K > k e i p r e s s e d , t h e f i r s t b i i s e t .W i t h t h < C = > k e t h s e c o n d b i i s s e t . T h t h i r d b i i f o < C T R L > , a n h f o u r t h f o < A L T > . T h n e x t b i i s e b p r e s s i n g t h < C A P - L O C K >( < A S C I I - D I N > ) k e y . B e c a u s e t h e s e k e y s c a n b e p r e s s e d a t h s a m e t i m e ,t h e r e a r 3 p o s s i b l e c o m b i n a t i o n s . T h f o l l o w i n g t a b l e s h o w s f e o

1 7

Page 190: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 190/322

Page 191: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 191/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

d i r e c t l y o t h s c r e e n . O n l y a f t e r y o a r f i n i s h e d e n t e r i n g t h t e x t w i l l i b d i s p l a y e d . Y o a r t h e n a s k e d i e v e r y t h i n g i c o r r e c t . W h e n y o p r o g r a my o u r o w u s f o r t h e < A L T > k e y o c a u s t h s a m e p r i n c i p l e s a s w d i i 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 .

1 2 3 4 4 5 6 7 8 9 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

R E F O R E A D

P O K EI N E X TI P R I N TE N B E N DB A N KD A T AD A T AD A T AD A T AD A T AD A T AD A T AD A T AD A T AR E F O B P R I N TP R I N TF O G E I A I A M I D $P O K EN E X TP O K EP R I N TI N P U T

E X T R A F U N C T I O N K E Y S5 1 2 0 T 5 1 9 0

I , < P E E K ( I T H E N P R I N T A , I , P E E K< 7 3 7 5 T H E N B E G I N

" T E R R O R I D A T A

0 S Y 5 1 2 01 2 0 , 1 6 9 , 1 3 , 1 4 1 , 2 0 , 3 , 1 6 9 , 2 0 , 1 4 12 1 , 3 , 8 8 , 9 6 , 7 2 , 1 5 2 , 7 2 , 1 6 52 1 1 , 1 6 8 , 4 1 , 8 , 2 4 0 , 2 9 , 1 5 2 , 2 0 59 6 , 2 0 , 2 4 0 , 2 3 , 1 4 1 , 9 6 , 2 0 , 1 01 0 , 1 0 , 1 0 , 1 6 8 , 1 8 5 , 0 , 2 0 , 2 4 01 3 , 2 0 1 , 1 3 , 2 4 0 , 1 5 , 3 2 , 2 1 0 , 2 5 52 0 0 , 2 0 8 , 2 4 1 , 1 4 0 , 9 6 , 2 0 , 1 0 4 , 1 6 81 0 4 , 7 6 , 1 0 1 , 2 5 0 , 1 4 1 , 7 4 , 3 , 1 6 91 , 1 3 3 , 2 0 8 , 7 6 , 5 5 , 2 0I N P U T O F T H E F U N C T I O N K E Y S

T " R E 1 S P A C E S

" A L T - " / I" I N P U T T E X T : E N W I T H L I N E F E E D "

T 1 K E A

C H R $ ( 1 0 ) T H E N 3 3 C H R $ ( 1 3 ) T H E N 3 3

( B $ , J 1 , 1 ) = A 5 2 4 8 1 6 A S ( A $ )

5 2 4 8 1 6 , 0B " A L L O ( Y / N ) " ; A $

( I

1 8

Page 192: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 192/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

3 6 I A $ " N T H E N 2 3 3 7 N E X T

H e r e i t h m a c h i n e l a n g u a g e p o r t i o n o t h a b o v e r o u t i n e :

1 4 0 0 7 S E 1 4 0 1 A 9 O D L D # $ O D1 4 0 3 8 1 0 S T $ 0 3 4 11 4 0 6 A 1 L D # $ 1 41 4 0 8 8 1 0 S T $ 0 3 1 51 4 0 B 5 C L 1 4 0 C 6 R T 1 4 0 D 4 P H 1 4 0 E 9 T Y 1 4 O F 4 P H 1 4 1 0 A 5 D 3 L D $ D 1 4 1 2 A 8 T A 1 4 1 3 2 0 A N # $ 0 81 4 1 5 F 0 I B E $ 1 4 3 41 4 1 7 9 T Y 1 4 1 8 C 6 1 C M P $ 1 4 6 01 4 I B F 1 B E $ 1 4 3 41 4 1 D 8 6 0 1 4 S T $ 1 4 6 01 4 2 0 0 A S 1 4 2 1 0 A S 1 4 2 2 0 A S 1 4 2 3 0 A S 1 4 2 4 A T A ; A c c u . i r e g i s t e r1 4 2 5 B 9 0 1 L D A $ 1 4 0 0 , Y ; C h a r a c t e r1 4 2 8 F 0 0 B E $ 1 4 3 7 ; $ 1 4 3 7 w h e n z e r o1 4 2 A C 0 C M P # $ 0 D / R e t u r n1 4 2 C F O B E $ 1 4 3 D / Y e s , t h e n $ 1 4 3 D1 4 2 E 2 D F J S $ F F D 2 / G i v e o u C h a r a c t e r1 4 3 1 C I N 1 4 3 2 D O F l B N $ 1 4 2 51 4 3 4 8 C 6 1 S T Y $ 1 4 6 0 / S t o r e s H e l p b u t t o n1 4 3 7 6 P L / A c c u m u l a t o r f r o m S t a c k1 4 3 8 A 8 T A / A c c u . t R e g i s t e r1 4 3 9 6 P L / A c c u m u l a t o r f r o m S t a c k1 4 3 A 4 6 F G M P $ F A 6 5 / T n o r m a l I n t e r r u p t1 4 3 D 8 4 0 S T A $ 0 3 4 A / R e t u r n i K e B u f f e r1 4 4 0 A 0 L D # $ 0 1

/ P r e v e n t s I n t e r r u p t/ S e t s I n t e r r u p t v e c t o r

/ P e r m i t I R / B a c k t o B a s i c/ A c c u m u l a t o r o S t a c k/ Y - R e g i s t e r i A c c u ./ A c c u m u l a t o r o S t a c k/ F l a g f o r A L / A c c u . i n R e g i s t e r/ B i t s e t ?/ N o , t h e n $ 1 4 3 4/ V a l u e b a c k i A c c u ./ P r e v i o u s K e A L / Y e s , t h e n $ 1 4 3 4/ S t o r e s/ M o v e f o u r B i t s/ T t h L e f t

1 8

Page 193: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 193/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 4 4 2 8 D S T $ D 1 4 4 4 4 3 7 1 4 J M $ 1 4 3 7

7 . 7 . K E Y B O A R D B E E P

H e r e i a n o t h e r l i t t l e p r o g r a m t h a t g i v e s y o u r C - 1 2 8 p r o g r a m s m o r ep r o f e s s i o n a l a p p e a r a n c e : p r e s s a n k e a n l o v o l u m e b e e p w i l l s o u n d .

T h p r o g r a m c h a n g e s t h I R v e c t o r , s i r e a c t s v e r y f a s t t e v e r y k e p r e s s . F o t h i s r e a s o n i i n o w r i t t e n i B A S I C , b u y o c a e n t e r i i y o u r c o m p u t e r w i t h t h B A S I C l o a d e r . T m a k e p r o g r a m i n g e a s i e r y o u rc o m p u t e r w i l l a l s o g i v e o u t a d i f f e r e n t t o n e w h e n e v e r t h < R E T U R N > k e i p r e s s e d . B e l o w i t h a s s e m b l y l a n g u a g e l i s t i n g f o t h o s e o y o w h a r f a m i l i a r w i t h m a c h i n e l a n g u a g e .

1 4 0 01 4 0 21 4 0 51 4 0 81 4 0 A1 4 0 D1 4 0 E1 4 1 01 4 1 3

A 8 8 A 8 7 A 8 A

F 0 1 0 0 1 1 1

D D

D

0 ; B e e p - R o u t i n

1 4 1 51 4 1 81 4 1 91 4 1 A1 I 1 4 1 D1 4 1 F

8 5 6 4 A C F

1

D 5 2

0

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

S T C L R T P H L D C M B E

# $ F F$ D 4 0 6$ D 4 1 8# $ 0 9$ D 4 0 5# $ 1 A$ 0 3 1 4# $ 1 4

$ 0 3 1 5

$ D # $ 5 8$ 1 4 4 3

S e V a l u e F o rt h B e e p t o n e

P r e v e n t s I n t e r r u p tI R Q - V e c t o r o p e n

s e P e r m i t s I n t e r r u p tB a c k i B A S I CA c c u . o n S t a c kV a l . p u s h e d k e k e p u s h e d ?Y e

1 8

Page 194: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 194/322

A b a c u s S o f t w a r e

1 4 2 11 4 2 31 4 2 51 4 2 71 4 2 A1 4 2 C1 4 2 F1 4 3 11 4 3 31 4 3 51 4 3 71 4 3 A1 4 3 C1 4 3 F1 4 4 11 4 4 31 4 4 51 4 4 81 4 4 A

C D A B A 8 D C F A 8 A 8 A D A 8 6 4

4 O 6 0 1 0 1 0 F 6 0 2 0 1 0 0

0

6

D

D

D

D

D

F

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

# $ 4 C$ 1 4 3 1# $ 6 7$ D 4 0 0# $ 1 1$ D 4 0 1$ 1 4 4 5# $ 0 1$ 1 4 2 5# $ 6 7$ D 4 0 1# $ 2 1$ D 4 0 0# $ 1 1$ 1 4 4 5# $ 0 0$ D 4 0 4$ F A 6 5

T r i c k s a n T i p s f o t h C - 1 2 8

R E T U R N ?n o t h e n $ 1 4 3 1 .s t o r e s F r e q u e n c e s .T o n e b R E T U R N

R E T U R N k e y ?Y e s , t h e n $ 1 4 2 5 .s e F r e q u e n c e f o t h B e e p t o n e

W a v e f o r mS k i p N e x t L i n eW a v e f o r m , w h e n n k e p u s h e dS t o r e W a v e f o r mA c c u m . f r o m S t a c kN o r m a l I R

H e r e i t h B A S I C l o a d e r :

1 R E K E Y S O U N D2 F O = 5 1 2 0 T 5 1 9 53 R E A D4 5 P O K E I , A6 N E X T7 0 I F < 8 9 3 2 T H E N B E G I N8 P R I N T " ? E R R O R { S P A C E } I N { S P A C E } D A T A "9 E N 1 0 B E N D1 1 S Y S 5 1 2 01 2 D A T A 1 6 9 , 2 5 5 , 1 4 1 , 6 , 2 1 2 , 1 4 1 , 2 4 , 2 1 21 3 D A T A 1 6 9 , 9 , 1 4 1 , 5 , 2 1 2 , 1 2 0 , 1 6 9 , 2 61 4 D A T A 1 4 1 , 2 0 , 3 , 1 6 9 , 2 0 , 1 4 1 , 2 1 , 31 5 D A T A 8 8 , 9 6 , 7 2 , 1 6 5 , 2 1 3 , 2 0 1 , 8 8 , 2 4 01 6 D A T A 3 4 , 2 0 1 , 7 6 , 2 0 8 , 1 2 , 1 6 9 , 1 0 3 , 1 4 11 7 D A T A 0 , 2 1 2 , 1 6 9 , 1 7 , 1 4 1 , 1 , 2 1 2 , 2 0 8

1 8

Page 195: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 195/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 8 D A T A 2 0 , 2 0 1 , 1 , 2 4 0 , 2 4 0 , 1 6 9 , 1 0 3 , 1 4 11 9 D A T A 1 , 2 1 2 , 1 6 9 , 3 3 , 1 4 1 , 0 , 2 1 2 , 1 6 92 0 D A T A 1 7 , 2 0 8 , 2 , 1 6 9 , 0 , 1 4 1 , 4 , 2 1 22 1 D A T A 1 0 4 , 7 6 , 1 0 1 , 2 5 0

7 . 8 . P R O G R A M P A U S E

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

I y o w o u l d l i k e t o a s s i g n t h p r o g r a m p a u s e f u n c t i o n t k e o t h e r t h a nt h < N O - S C R O L L > k e y , y o h a v e t a d t h f o l l o w i n g P O K E c o m m a n d st t h e n o t h B A S I C l o a d e r :

P O K E 5 1 3 4 ,P O K E 5 1 4 0 ,

T h p a r a m e t e r m u s t c o n t a i n t h v a l u e o t h k e y o c h o o s e . Y o c a f i n d t h e e x a c t v a l u e s i t h c h a p t e r 7 . 1 .

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

1 2 3 4 5

R E F O R E A D

P O K E

P A U S E - F U N C T I O N5 1 2 0 T O 5 1 6 5

I ,

1 8

Page 196: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 196/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

6 N E X T7 I < 5 3 6 1 T H E N B E G I N8 P R I N T " ? E R R O R { S P A C E } I N { S P A C E } D A T A "9 E N 1 0 B E N D1 1 S Y S 5 1 2 01 4 D A T A 1 6 9 , 1 1 , 1 4 1 , 8 , 3 , 1 6 9 , 2 0 , 1 4 11 5 D A T A 9 , 3 , 9 6 , 1 6 5 , 2 1 2 , 2 0 1 , 8 7 , 2 0 81 6 D A T A 1 0 , 1 6 5 , 2 1 2 , 2 0 1 , 8 7 , 2 4 0 , 2 5 0 , 2 0 11 7 D A T A 8 8 , 2 4 0 , 2 4 6 , 1 6 9 , 1 5 , 1 3 3 , 2 , 1 6 91 8 D A T A 7 4 , 1 3 3 , 3 , 1 6 9 , 1 6 2 , 1 3 3 , 4 , 1 6 91 9 D A T A 0 , 1 3 3 , 5 , 7 6 , 2 2 7 , 2

T h r o u t i n e i m a c h i n e l a n g u a g e :

1 4 0 01 4 0 21 4 0 51 4 0 71 4 0 A1 4 0 B1 4 0 D1 4 0 F1 4 1 11 4 1 31 4 1 51 4 1 71 4 1 91 4 1 B1 4 1 D1 4 1 F1 4 2 11 4 2 31 4 2 51 4 2 71 4 2 91 4 2 B

A 8 A 8 6 A C D A C F C F A 8 A 8 A 8 A 8 4

0 0 1 0 D 4 0 D 4 F 5 F O 0 4 0 A 0 0 0 E

L D 0 S T

L D 0 S T

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

0 J M

# $ 0 B$ 0 3 0 8# $ 1 4$ 0 3 0 9$ D # $ 5 7$ 1 4 1 B$ D # $ 5 7$ 1 4 1 1# $ 5 8$ 1 4 1 1# $ 0 F$ 0 # $ 4 A$ 0 # $ A 2$ 0 # $ 0 0$ 0 $ 0 2 E 3

C h a n g e s V e c t o rF o " e x e c u t en e x t B A S I C - L i n eB a c k t B A S I CV a l u e o K e N S C R O L L ?N V a l u e o K e N S C R O L L ?Y e s , t h e n w a i tN K e y ?Y e s , t h e n w a i tN e x t B A S I C - L i n ee x e c u t e

1 8

Page 197: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 197/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

7 . 9 . H E L P R U N / S T O P K E A S S I G N M E N T

T h C - 1 2 8 h a s a t o t a l o t e f u n c t i o n k e y s , t h a t y o c a a s s i g n y o u r s e l f . I a d d i t i o n t t h e e i g h t f u n c t i o n k e y s a b o v e t h n u m e r i c k e y p a d , t h e r e a r t w m o r e : o n e o f t h e m i t h < H E L P > k e y , w h i c h i a c t u a l l y f u n c t i o n k e t e n .Y o c a r e a c h t h n i n t h f u n c t i o n k e w i t h t h < S H I F T > a n < R U N - S T O P > k e c o m b i n a t i o n . T h i s k e i a s s i g n e d w i t h

D L O A D " *R U

T h e s e l i n e s l o a d t h f i r s t p r o g r a m f r o m t h d i s k d r i v e a n t h e n r u t h p r o g r a m . T h i s t e x t c a b c h a n g e d , b u n o w i t h t h K E C o m m a n d . I y o e n t e r K E o K E 1 t h c o m p u t e r w i l l p r i n t o u I L L E G A LQ U A N T I T Y E R R O R " .

B u l i t t l e p r o g r a m c a t a k e c a r e o t h a t p r o b l e m :

1 R E M F U N C T I O N K E 9 + 1 02 R E [ S H I F T ] R U N / S T O P H E L P3 F O = 4 0 9 6 T 4 1 0 34 P E E K ( I 5 N E X T6 P R I N T " R E T U R N "7 P R I N T C H R $ ( 2 7 ) ; " F "8 F O T 9 P R I N T " F U N C T I O N K E " 1 1 G E K E B 1 2 I B < C H R $ ( 1 3 ) T H E N B E G I N1 3 P R I N T B $ 1 4 0 B A S ( B $ )1 5 I 9 T H E N 1 1 6 P O K E 4 1 0 6 Z ,

1 8

Page 198: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 198/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 7 1 8 I 4 1 0 6 4 3 5 1 T H E N E N 1 9 G O T O 1 1 2 0 B E N D2 1 P R I N T2 2 P O K E 4 1 0 4 I , 2 3 2 4 2 5 N E X T

W i t h t h i s p r o g r a m y o c a c h a n g e t h a s s i g n m e n t o t h e s e t w k e y s . I y o u ' d l i k e t e x e c u t e < R E T U R N > ( C H R $ ( 1 3 ) ) a f t e r t h t e x t , y o h a v e t e n t e r a u a r r o w ( t ) . T m a k e i p o s s i b l e t e n t e r c o m m a s w u s e d t h G E c o m m a n d .

A f t e r m i n o r c h a n g e s , t h i s p r o g r a m c a b a l s o u s e d t c h a n g e t h a s s i g n m e n t o f t h e o t h e r f u n c t i o n k e y s . T h i s w o u l d b v e r y u s e f u l f o f u n c t i o n k e a s s i g n m e n t s w i t h t e x t o m o r e t h a n 1 2 c h a r a c t e r s . I t h i sc a s e y o u w o u l d o b t a i n a e r r o r u s i n g t h K E c o m m a n d .

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 i i m e m o r y a 4 0 9 6 ( $ 1 0 0 0 ) t 4 A A 2( $ 1 1 0 0 ) . I t h f i r s t t e b y t e s , t h l e n g t h o t h f u n c t i o n k e t e x t i s t o r e d .W i t h t h e s e v a l u e s y o c a f i n d o u t h s t a r t a d d r e s s o t h t e x t . W h e n y o a d t h f i r s t f i v e b y t e s t e a c h o t h e r , y o g e t t h e s t a r t a d d r e s s t t h t e x t o F 6 Y o c a a s s i g n t o t a l o 2 4 c h a r a c t e r s t t h 1 f u n c t i o n k e y s . T h p r o g r a m w i l l n o a l l o w y o t o e n t e r l o n g e r t e x t .

O c o u r s e y o c a u s d i f f e r e n t c o n t r o l c h a r a c t e r s o t h e r t h a n < R E T U R N > .Y o c a e n t e r t h e s e d i r e c t l y . E x a m p l e : I y o l i k e t s c r o l l u y o u r s c r e e nt e t i m e s y o j u s t p u s h t h < E S C > a n t h < W k e 1 t i m e s .

1 8

Page 199: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 199/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

I y o e n t e r e d w r o n g c h a r a c t e r y o s h o u l d n o t u s e t h < I N S T - D E L > k e y .T h i s k e s e e m s t w o r k a l r i g h t , b u t h e e n t e r i n g o t h < I N S T - D E L > k e w i l l t h e n b s t o r e d i t h f u n c t i o n k e d e f i n i t i o n .

1 8

Page 200: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 200/322

Page 201: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 201/322

C H

Page 202: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 202/322

Page 203: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 203/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

C O M M A N D E X T E N S I O N S

A f t e r y o s w i t c h o t h C - 1 2 8 i d i s p l a y s t h e f o l l o w i n g m e s s a g e :

C O M M O D O R E B A S I C V 7 . 0 1 2 2 3 6 5 B Y T E S F R E E( O 1 9 8 5 C O M M O D O R E E L E C T R O N I C S , L T D .

( C ) 1 9 7 7 M I C R O S O F T C O R P .A L L R I G H T S R E S E R V E D

M i c r o s o f t d e v e l o p e d t h p o p u l a r v e r s i o n o B A S I C c a l l e d M A S I C t h a t ' sw i d e l y u s e d o C P / M c o m p u t e r s . M B A S I C h a s a l a r g e c o m m a n d s e t ;p e r h a p s t h i s i w h t h B A S I C 7 . o t h C - 1 2 8 h a s m a n y c o m m a n d s .B A S I C V 7 . 0 i u p w a r d c o m p a t i b l e t t h B A S I C V 2 . 0 , V 4 . 0 a n V 3 . 5 .T h V 2 . 0 v e r s i o n i t h g r a n d f a t h e r o t h o t h e r B A S I C s ; t h V I C - 2 0 a n t h C - 6 4 c o n t a i n B A S I C V 2 . 0 . B A S I C V 4 . 0 i u s e d i t h e l a r g eC o m m o d o r e c o m p u t e r s , s u c h a t h 8 0 0 0 s e r i e s . C o m m a n d s f o r t h e d i s kd r i v e s w e r e a d d e d t t h c o m m a n d s o B A S I C V 2 . 0 ( f o r e x a m p l e ,D I R E C T O R Y ) .

T h n e x t B A S I C v e r s i o n , B A S I C V 3 . 5 , i f o r t h e C - 1 6 , C - 1 ( a v a i l a b l e i nE u r o p e ) a n t h P l u s / 4 c o m p u t e r s . B A S I C V 3 . 5 c o n t a i n e d m a n y n e g r a p h i c c o m m a n d s . P r o g r a m m i n g a i d s a n m a c h i n e l a n g u a g e m o n i t o r a r a l s o i n c l u d e d i V 3 . 5

T h C - 1 2 8 f e a t u r e s B A S I C V 7 . 0 . E v e n m o r e c o m m a n d s h a v e b e e n a d d e d ,s u c h a s p r i t e c o n t r o l , m u s i c p r o g r a m i n g ( l i m i t e d i v e r s i o n V 3 . 5 ) a n d i s kc o m m a n d s . A n t h e r e i a n o t h e r c o n v e n i e n t o p t i o n : t h c o m m a n d G 6

1 9

Page 204: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 204/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h i s c o m m a n d t u r n s t h C - 1 2 8 i n t o C - 6 4 .

E v e n w i t h a l t h n e c o m m a n d s , y o u ' l l f i n d t h a t m o r e a r e r e q u i r e d . H o a b o u t P R I N T A T ? , o P O P ? , o G O T O X a n R E S T O R E X ? W e a s i l yc o u l d c o n t i n u e t h i s l i s t . A f r e q u e n t p r o g r a m m e r y o u ' l l r e l y o s e v e r a lh e l p f u l r o u t i n e s , s u c h a A P P E N D . W h a t t h e n ? Y o u ' d u s u a l l y c a l l t h e mw i t h a S Y a n s o m e v a l u e s b e h i n d i t B u h o m a n y a d d r e s s e s c a y o r e m e m b e r , a n h o u n d e r s t a n d a b l e i p r o g r a m w h e n i t ' s f u l l S Y c o m m a n d s ?

L u c k i l y i t ' s e a s y t i n s e r t n e c o m m a n d s i n t o t h o p e r a t i n g s y s t e m s o fC o m m o d o r e c o m p u t e r s . W u s t h e r o u t i n e c a l l e d C H R G E T ( C H R G E Tm e a n s C H a R a c t e r G E T ) t a c c o m p l i s h t h i s s m a l l m i r a c l e .

8 . 1 . W H A T I T H C H R G E T R O U T I N E

W h e n y o t u r n o t h C - 1 2 8 t h C H R G E T r o u t i n e i c o p i e d f r o m t h R O t t h R A M . W w i l l e x p l a i n t h a t l a t e r . R i g h t n o w e ' l l d e a l w i t h t h f u n c t i o n o t h C H R G E T r o u t i n e .

W i t h t h C H R G E T r o u t i n e , t h c o m p u t e r t a k e s c h a r a c t e r f r o m t h B A S I Ct e x t , m e a n i n g f r o m t h p r o g r a m m e m o r y o f r o m t h B A S I C i n p u t b u f f e r .T h B A S I C i n t e r p r e t e r a l w a y s j u m p s t t h C H R G E T r o u t i n e t g e t h n e x tc h a r a c t e r . L e t s h a v e l o o k a t h C H R G E T r o u t i n e f o r t h e C - 6 4 :

0 0 7 3 I N $ 7 0 0 7 5 B N E $ 0 0 7 90 0 7 7 I N C $ 7 B

1 9

Page 205: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 205/322

A b a c u s S o f t w a r e

0 0 7 90 0 7 C0 0 7 E0 0 8 00 0 8 20 0 8 40 0 8 50 0 8 70 0 8 80 0 8 A

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

$ H H L L# $ 3 A$ 0 0 8 A# $ 2 0$ 0 0 7 3# $ 3 0# $ D 0

T r i c k s a n T i p s f o t h C - 1 2 8

T h f i r s t t h r e e i n s t r u c t i o n s i n c r e m e n t t h v a l u e o t h t e x t p o i n t e r . T h l e a s ts i g n i f i c a n t b y t e o t h p o i n t e r i i n c r e m e n t e d . B u i t h e r e i c a r r y( m e a n i n g g r e a t e r t h a n 2 5 5 ) , t h e n t h m o s t s i g n i f i c a n t b y t e o t h p o i n t e r i a l s o i n c r e m e n t e d . W h e n y o l o o k a t h a d d r e s s o t h p o i n t e r ( c a l l e d$ H H L L i t h a b o v e r o u t i n e ) y o w i l l n o t i c e i i l o c a t e d w i t h i n t h C H R G E T r o u t i n e . N o t h R O R A c o p y p r o c e d u r e m a k e s s e n s e :t h e r o u t i n e c h a n g e s i t s e l f !

T h a c t u a l v a l u e o f $ H H L L i t h e p o i n t e r t l o c a t i o n w i t h i n t h B A S I Cp r o g r a m t e x t . T h p o i n t e r i c a l l e d t x t p t r a n i a c t u a l l y a v e c t o r a $ 0 0 7 A . T h C H R G E T r o u t i n e l o a d s t h a c c u m u l a t o r ( L D A i n s t r u c t i o n a a d d r e s s $ 0 0 7 9 ) w i t h t h n e x t c h a r a c t e r o B A S I C t e x t p o i n t e d t b T X T P T R .

T h i s c h a r a c t e r i c h e c k e d i s e v e r a l w a y s . F i r s t t h c h a r a c t e r w i l l b c o m p a r e d w i t h t h A S C I I v a l u e f o r t h e s e m i - c o l o n . T h r o u t i n e r e t u r n sw h e n t h c h a r a c t e r i l a r g e r o e q u a l t t h i s v a l u e . I t h c h a r a c t e r i t h s e m i - c o l o n , t h z e r o - f l a g b e c o m e s s e t , i a d d i t i o n t t h c a r r y - f l a g . I f t h c h a r a c t e r n u m b e r i s m a l l e r , t h t e s t s c o n t i n u e . T h f i r s t t e s t c h e c k s t s e i t h e c h a r a c t e r i s p a c e c h a r a c t e r . I s o t h n e x t c h a r a c t e r w i l l b e x a m i n e d . I e f f e c t , s p a c e c h a r a c t e r s a r i g n o r e d ( P R I N T X h a t h s a m e

1 9

Page 206: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 206/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

e f f e c t a P R I N T X ) T h t w n e x t c o m m a n d s c h e c k t s e i t h c h a r a c t e ri n u m b e r b e t w e e n 0 - 9 .

T h C H R G E T r o u t i n e o t h C - 1 2 8 h a b e e n c h a n g e d :

0 3 8 00 3 8 20 3 8 40 3 8 60 3 8 90 3 8 B0 3 8 D0 3 9 00 3 9 20 3 9 40 3 9 60 3 9 80 3 9 90 9 0 3 9 C0 3 9 E

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

$ 3 $ 0 3 8 6$ 3 $ F F 0 1# $ 0 0( $ 3 D ) ,

$ F F 0 3# $ 3 A$ 0 3 9 E# $ 2 0$ 0 3 8 0# $ 3 0# $ D 0

T h f i r s t t h r e e i n s t r u c t i o n s i n c r e m e n t p o i n t e r a g a i n . T h i s p o i n t e r i n o w i t h i n t h C H R G E T r o u t i n e a n y m o r e , b u i z e r o p a g e . T h n e x ti n s t r u c t i o n a s s u r e s t h a t t h c o m p u t e r t a k e s t h i s i n f o r m a t i o n f r o m t h e c o r r e c tb a n k . T h i s i n s t r u c t i o n i s i m i l a r t t h B A S I C c o m m a n d B A N K 0 R A B a n k i a l w a y s a c t i v a t e d . T h a t g u a r a n t e e s t h a t t h p r o g r a m c a u s t h f u l l 6 4 o t h R A i B a n k ( m i n u s t h f i r s t f e p a g e s t h a t a r u s e d b t h s y s t e m ) .

T h n e x t t w c o m m a n d s i n s t r u c t i o n s r e t r i e v e c h a r a c t e r f r o m t h B A S I Ct e x t . B e c a u s e t h r e g i s t e r i u s e d a a o f f s e t , i m u s t b s e t z e r o f i r s t .

1 9

Page 207: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 207/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h i n s t r u c t i o n a a d d r e s s $ 0 8 s w i t c h e s t h b a n k s b a c k a g a i n . T h i sm a c h i n e l a n g u a g e i n s t r u c t i o n i e q u i v a l e n t t t h B A S I C c o m m a n d B A N K1 4 w h i c h s w i t c h e s o B A S I C i n t e r p r e t e r , c h a r a c t e r g e n e r a t o r , a n R A B a n k O .

T h f o l l o w i n g i n s t r u c t i o n s a r j u s t l i k e t h e C - 6 4 ' s , m e a n i n g t h c h e c kp r o c e d u r e f o s e m i - c o l o n , s p a c e c h a r a c t e r , e t c .

l a s t w o r d o t h C H R G E T r o u t i n e : o n c e i w h i l e t h o p e r a t i n g s y s t e mj u m p s t t h C H R G E T r o u t i n e a a d d r e s s $ 0 3 8 6 ( $ 0 0 7 9 i t h C - 6 4 ) . T h e ni t ' s c a l l e d C H R G O T . Y o w i l l a l s o g e t c h a r a c t e r , b u t h p o i n t e r i n o i n c r e m e n t e d . T h l a s t c h a r a c t e r w i l l b r e a d .

8 . 2 . C H A N G I N G T H E C H R G E T R O U T I N E

H e r e w l i m i t o u d i s c u s s i o n t t h C - 1 2 8 , b e c a u s e t h e r e i e n o u g hl i t e r a t u r e a v a i l a b l e o h o t c h a n g e t h e r o u t i n e o t h C - 6 4 . T i n s e r t n e c o m m a n d s y o h a v e t c h a n g e t h C H R G E T r o u t i n e - b u t w h e r e d o y o u d ot h a t ? T h e o r e t i c a l l y y o c o u l d d i a n y w h e r e , b u o n l y t w s o l u t i o n s a r ep r a c t i c a l :

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

1 9

Page 208: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 208/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

I a y o w a n t t c h a n g e t h C H R G E T r o u t i n e a t h s t a r t . H e r e i a e x a m p l e . E n t e r t h m o n i t o r a n t y p e i t h f o l l o w i n g a s s e m b l e r l i s t i n g :

0 3 8 0 J S R $ 0 B 0 00 3 8 3 N O 0 3 8 4 N O 0 3 8 5 N O 0 B 0 0 I N C $ 3 D0 B 0 2 B N $ 0 B 0 60 B 0 4 I N $ 3 0 B 0 6 L D # $ 0 00 B 0 8 S T $ F F 0 00 B 0 B L D $ D 0 2 0O B O E E 0 # $ F FO 1 S T $ D 0 2 0O 1 R T

L e a v e t h m o n i t o r w i t h t h " X c o m m a n d , t y p e i c h a r a c t e r a n p r e s s t h < R E T U R N > k e y . T h b o r d e r c o l o r w i l l c h a n g e ( t h e b o r d e r c o l o r o t h f o r t y c o l u m n s c r e e n , b e c a u s e w a r m a n i p u l a t i n g t h V I c h i p ) . L e t ' s h a v e

c l o s e r l o o k a t h l i s t i n g .

I h a t w p a r t s . P a r t o n i l o c a t e d i t h C H R G E T r o u t i n e a n a l t e r s t h r o u t i n e i t s e l f . W h e n y o e n t e r c h a r a c t e r n o w , t h c o m p u t e r w i l l c a l ls u b r o u t i n e a $ 0 B 0 0 . T h i s s u b r o u t i n e c o n s t i t u t e s p a r t t w o . H e r e , i c o n t i n u e s t h e f i r s t p a r t o t h C H R G E T r o u t i n e t h a t w a r e p l a c e d b t h f i r s t p a r t . T h e n t h I / i s w i t c h e d o t g a i n a c c e s s t t h V I c h i p ( B i ti r e s p o n s i b l e f o t h i s ; s e C h a p t e r 9 " B a n k i n g " ) . T h a c c e s s t t h V I c h i p o c c u r s w i t h t h n e x t t h r e e i n s t r u c t i o n s . H e r e w c h a n g e t h b o r d e rc o l o r . T h b a n k t h a t w a o b e f o r e t h e c a l l e d r o u t i n e s w i t c h e s o a g a i n .F i n a l l y , y o r e t u r n t t h C H R G E T r o u t i n e w i t h a R T S .

1 9

Page 209: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 209/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

Y o h a v e t r e m e m b e r o n t h i n g : t h e f u n c t i o n s p e r f o r m e d b t h C H R G E Tr o u t i n e m u s t b k e p t i n t a c t . I a n s e c t i o n i m i s s i n g , t h e o p e r a t i n g s y s t e mw i l l n o f u n c t i o n p r o p e r l y a n y m o r e . F o e x a m p l e , t h s y s t e m w i l l c r a s h i y o l e a v e o u t h i n s t r u c t i o n s i n t h s e c o n d p a r t o t h a s s e m b l e r l i s t i n g t h a tr a i s e t h e i n d i c a t o r i n t h C H R G E T r o u t i n e .

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

T h C H R G E T r o u t i n e c a n a c c o m p l i s h t h i s t a s k . E n t e r t h f o l l o w i n ga s s e m b l e r l i s t i n g ( y o u s h o u l d r e s e t t h c o m p u t e r b e f o r e e n t e r i n g t h e l i s t i n g ) :

0 3 8 00 3 8 20 3 8 40 3 8 60 3 8 90 3 8 B0 3 8 D0 3 9 00 3 9 30 B 0 00 B 0 20 B 0 40 B 0 60 B 0 90 B 0 CO B O E0 B 1 10 B 1 40 B 1 60 B 1 80 B 1 B0 B 1 E

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

$ 3 $ 0 3 8 6$ 3 $ F F 0 1# $ 0 0( $ 3 D ) ,

$ 0 B 0 0$ F F 0 3

# $ F F$ 0 B 1 4# $ 0 0$ F F 0 0$ D 0 2 0# $ F F$ D 0 2 0$ 0 3 8 0# $ 3 A$ O B 1 B$ 0 3 9 0$ F F 0 3

1 9

Page 210: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 210/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h i s t i m e t h C H R G E T r o u t i n e w a c h a n g e d a a d d r e s s $ 0 3 8 D . T h e r e w j u m p t a d d r e s s $ 0 B 0 0 ( t h i s t i m e n o J S R , b u J M P ) . T h i n s t r u c t i o n a a d d r e s s $ 0 3 9 0 ( S T A $ F F 0 3 ) w a t a k e n f r o m t h o l C H R G E T r o u t i n e .T h N O i n s t r u c t i o n a s s i g n s t h f r e e b y t e i t h C H R G E T r o u t i n e . N o t t h p a r t a f t e r a d d r e s s $ 0 B 0 0 :

F i r s t t h c h a r a c t e r r e a d i c o m p a r e d w i t h t h v a l u e $ F ( 2 5 5 ) . T h i s v a l u e i t h t o k e n f o P ( t c ) . I t h c h a r a c t e r i n o P ( t c ) , y o c o n t i n u e f r o ma d d r e s s $ 0 B 1 4 . T h e r e t h C H R G E T r o u t i n e c o n t i n u e s . F i r s t t h e c h a r a c t e ri c o m p a r e d w i t h t h a t o t h s e m i - c o l o n . I i i l a r g e r , B a n k 1 w i l l b a c t i v a t e d ( j u s t l i k e t h C H R G E T r o u t i n e ) ; t h e n i w i l l j u m p t t h a d d r e s sw h e r e t h C H R G E T r o u t i n e w a c a l l e d . I t h A S C I I v a l u e o t h e c h a r a c t e ri s m a l l e r t h a n t h v a l u e o t h s e m i - c o l o n , i c o n t i n u e s w i t h t h J M i n s t r u c t i o n t o t h n o r m a l C H R G E T r o u t i n e .

L e t ' s i m a g i n e t h e n t e r e d c h a r a c t e r w a P ( t c ) . I t h i s c a s e y o c o n t i n u e t h p r o g r a m a a d d r e s s $ 0 B 0 4 . H e r e , B a n k 1 s w i t c h e s o t h a v e a c c e s s t t h I / ( i t h i s c a s e t h V I C ) . T h e n , l i k e t h o t h e r r o u t i n e , t h v a l u e f o t h s c r e e n b o r d e r i i n v e r t e d . T h e n t h e r e ' s t h u s u a l j u m p b a c k t t h C H R G E T r o u t i n e , t o r e a d t h n e x t c h a r a c t e r .

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

C o n t a i n y o u r c u r i o s i t y a n d o n ' t e x p e r i m e n t w i t h t h P ( t c ) c h a r a c t e r ( f o re x a m p l e , w h a t h a p p e n s w h e n y o e n t e r i i p r o g r a m l i n e ) . F i r s t , e n t e r t h ef o l l o w i n g a s s e m b l e r l i s t i n g :

2 0

Page 211: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 211/322

A b a c u s S o f t w a r e

0 3 8 00 3 8 20 3 8 40 3 8 60 3 8 90 3 8 B0 3 8 D0 3 9 00 3 9 30 B 0 00 B 0 20 B 0 40 B 0 60 B 0 9O B O CO B O E0 B 1 10 B 1 40 B 1 60 B 1 80 B 1 A0 B 1 D0 B 2 00 B 2 20 B 2 50 B 2 80 B 2 A0 B 2 C0 B 2 F0 B 3 2

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

T r i c k s a

$ 3 $ 0 3 8 6$ 3 $ F F 0 1# $ 0 0( $ 3 D ) ,

$ 0 B 0 0$ F F 0 3

# $ F F$ O B 1 4# $ 0 0$ F F 0 0$ D 0 2 0# $ F F$ D 0 2 0$ 0 3 8 0# $ 8 8$ 0 B 2 8# $ 0 0$ F F 0 0# $ 0 0# $ F F$ D 0 2 1$ 0 3 8 0# $ 3 A$ 0 B 2 F$ 0 3 9 0$ F F 0 3

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

a P ( t i ) : H e r e y o u i n v e r t t h e v a l u e f o t h b o r d e r c o l o r , j u s t l i k e i nt h p r e v i o u s r o u t i n e *

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

2 0

Page 212: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 212/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

8 . 3 . T H " B E H A V I O R " O T H N E C O M M A N D S

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

N o e n t e r P ( r c ) i l i n e a g a i n , b u t y p e i s e m i - c o l o n a t h s t a r t o t h l i n e . A g a i n , t h c o m m a n d w i l l b e x e c u t e d i m m e d i a t e l y , b u t h l i n e w i l l b m a i n t a i n e d . T h a t a l s o w o r k s w h e n y o i n s e r t n e c o m m a n d s b e t w e e n o l c o m m a n d s . E n t e r t h s e m i - c o l o n a n t h c o m m a n d L E i t h l i n e . I t h i sc a s e y o a l s o m a i n t a i n t h l i n e , a n w h e n y o s t a r t t h p r o g r a m t h b o r d e ra n d b a c k g r o u n d c o l o r w i l l c h a n g e . T r t h f o l l o w i n g l i n e :

1 L E G O T O 1

E v e n t h o u g h i l o o k s w r o n g , i f u n c t i o n s w e l l : t h v a l u e f o t h b a c k g r o u n dc o l o r w i l l c h a n g e q u i c k l y ( t h i s e f f e c t i r e a l l y i n t e r e s t i n g ) .

T h a t w o r k s i t h f o l l o w i n g f o r m a t a l s o :

1 G O T O L E 1

T h i s w o r k s b e c a u s e t h i n t e r p r e t a t i o n o t h B A S I C l i n e s w i l l g t t h ( c h a n g e d ) C H R G E T r o u t i n e . T h t o k e n f o G O T O w i l l b r e a d f i r s t .

B e c a u s e t h i s v a l u e d o e s n o e q u a l o n o t h v a l u e s o t h n e c o m m a n d s ,2 0

Page 213: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 213/322

Page 214: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 214/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

8 . 4 . S E V E R A L A D D I T I O N A L C O M M A N D S

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

0 3 8 00 3 8 20 3 8 40 3 8 60 3 8 90 3 8 B0 3 8 D0 3 9 00 3 9 30 B 0 00 B 0 20 B 0 30 B 0 50 B 0 80 B 0 A0 B 0 CO B O E0 B 1 00 B 1 30 B 1 60 B 1 70 B 1 80 B 1 90 B 1 A0 B 1 D0 B 1 E0 B 2 10 B 2 20 B 2 30 B 0 B 2 8

I N B N I N S T L D L D J M S T N O L D D E B M C M B E B N C M B C J M S T R T T Y A S T A L D P H L D P H R T $ 4 0 ,$ 2 B ,$ 4 3 ,

$ 3 $ 0 3 8 6$ 3 $ F F 0 1# $ 0 0( $ 3 0 ) ,

$ 0 B 0 0$ F F 0 3

# $ 0 3$ 0 B 0 C$ 0 B 2 3 ,$ 0 B 1 7$ 0 B 0 2# $ 3 A$ 0 B 1 3$ 0 3 9 0$ F F 0 3

$ 0 B 2 7 ,$ 0 B 2 6 ,

$ 8 8 ,$ 0 $ 0

$ F

2 0

Page 215: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 215/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

0 B 2 A $ 5 3 , $ 0 0 B 2 C0 B 2 E0 B 3 10 B 3 40 B 3 60 B 3 90 B 3 C0 B 3 E0 B 4 10 B 4 40 B 4 60 B 4 90 B 4 C0 B 4 D0 B 5 10 B 5 40 B 5 60 B 5 90 B 5 C0 B 5 E0 B 6 1

L D S T L D E O S T L D E O S T J M L D S T L D E O S T J M L D S T L D E O S T J M

# $ 0 0$ F F 0 0$ D 0 2 0# $ F F$ D 0 2 0$ D 0 2 1# $ F F$ D 0 2 1$ 0 3 8 0$ D 0 2 1$ F F 0 0$ D 0 2 1# $ F F$ D 0 2 1$ 0 3 8 0# $ 0 0$ F F 0 0$ D 0 2 0# $ F F$ D 0 2 0$ 0 3 8 0

I t h p a r t a f t e r $ 0 B 0 0 t h r e e c o m m a n d s a r e d e f i n e d :

a ) P i ( 7 i ) : F u n c t i o n s l i k e a b o v eb L E T : F u n c t i o n s l i k e a b o v ec @ P i ( T C ) a n d L E T

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

$ 0 B 0 0 : H e r e y o u l o a d t h n u m b e r o n e c o m m a n d s i t h X - r e g i s t e r .$ 0 B 0 2 : D e c r e m e n t b o n e .$ 0 B 0 3 : W h e n a l c o m m a n d s a r c a r r i e d o u y o j u m p t a d d r e s s $ 0 B 0 C .

2 0

Page 216: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 216/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h i s B R A N C H c o m m a n d a l s o c h e c k s i t h X - r e g i s t e r c o n t a i n st h v a l u e z e r o ( y o u a l s o c h e c k i X = 2 ) .

$ 0 B 0 5 : H e r e t h e n t e r e d c h a r a c t e r i c o m p a r e d w i t h a b y t e f r o m t a b l e$ 0 B 2 3 $ 0 B 2 5 . T h i s t a b l e c o n t a i n s t h v a l u e s f o t h n e c o m m a n d s .

$ 0 B 0 8 : H e r e y o j u m p t a d d r e s s $ 0 B 1 7 w h e n t h e n t e r e d c h a r a c t e r i e q u a l w i t h o n o t h n e c o m m a n d s .

$ 0 B 0 A : I i w a n o e q u a l , j u m p t $ 0 B 0 2 a n c o m p a r e t h e n t e r e dc h a r a c t e r w i t h t h n e x t c o m m a n d .

$ 0 B 0 C : Y o c o n t i n u e w i t h t h i s a d d r e s s w h e n t h e n t e r e d c h a r a c t e r d o e sn o e q u a l a n o t h n e c o m m a n d s . A t a d d r e s s $ 0 B 1 6 t h r o u t i n e i t h s a m e a s i n t h n o r m a l C H R G E T R o u t i n e .

$ 0 1 7 Y o c o n t i n u e h e r e w h e n t h e n t e r e d c h a r a c t e r w a e q u a l w i t h o n c o m m a n d . T h e n u m b e r o t h c o m m a n d ( 2 w i l l b p l a c e d i t h X - r e g i s t e r ,

$ 0 1 8 M u l t i p l y b t w $ 0 1 9 a n p l a c e b a c k i t h X - r e g i s t e r a g a i n .$ O B 1 A : H e r e i t h h i g h - b y t e o t h a d d r e s s w h e r e t h n e c o m m a n d

s t a r t s , p u l l e d i f r o m t h a c c u m u l a t o r .$ 0 I D : S t o r e d o t h s t a c k .$ 0 I E H e r e y o g e t h a c c o m p a n y i n g l o w - b y t e .$ 0 B 2 1 : A n a l s o s t o r e d o t h s t a c k .

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

2 0

Page 217: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 217/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

X - R e g . L o w - B y t e H i g h - B y t e C o m m a n d

$ 2 $ 4 $ 5

$ 0 $ 0 $ 0

L E P

T h i s a d d r e s s m u s t a l w a y s s h o w o n b y t e b e l o w t h a d d r e s s w h e r e t h r o u t i n e r e a l l y s t a r t s . S t h c o m m a n d L E s t a r t s n o a $ 0 B 4 3 , b u a $ 0 B 4 4 . T h r e a s o n f o t h i s i i t h n e x t c o m m a n d :

$ 0 B 2 2 : H e r e i t h e r e t u r n f r o m t h s u b r o u t i n e . B u f r o m w h i c hs u b r o u t i n e ? $ 0 B 0 0 w a c a l l e d w i t h J M P , a n n o t w i t h J S R .N o b R T t h j u m p a d d r e s s i c a l l e d f r o m t h s t a c k ; f i r s t t h l o w - b y t e , t h e n t h h i g h - b y t e . O n a d d r e s s w a s t o r e d i t h s t a c k b t h p r e v i o u s i n s t r u c t i o n s , a n c a l l e d i t h p r o g r a mc o u n t e r . T h i s i i n c r e m e n t e d t g e t h n e x t c o m m a n d . T h a t i w h t h a d d r e s s h a t b o n b y t e l o w e r t h a n t h e c o r r e c ta d d r e s s . Y o f o o l t h c o m p u t e r , b e c a u s e y o t e l l i t t h a t J S i n s t r u c t i o n b r o u g h t i t a d d r e s s $ 0 B 2 2 ( w h i c h i b e f o r e t h s t a r to t h r e s p e c t i v e c o m m a n d ) .

$ 0 B 2 3 $ 0 B 2 5 : T a b l e w i t h c o d e s o f n e c o m m a n d s

$ 0 B 2 6 $ 0 B 2 B : T a b l e w i t h a d d r e s s e s o n e c o m m a n d s ( - 1 ! )

T h n e c o m m a n d s , w h i c h s t a r t a $ 0 B 2 C , w i l l n o b e x p l a i n e d a g a i n .

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

2 0

Page 218: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 218/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

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

A n h e r e ' s l a s t t i p ; a l w a y s p l a c e a i d e n t i f y i n g m a r k i f r o n t o y o u rc o m m a n d s , s u c h a @ T h a t m a k e s i e a s i e r t t e l l y o u r o w c o m m a n d sf r o m t h c o m m a n d s o t h I n t e r p r e t e r . T h i s w i l l m a k e y o u r w o r k e a s i e r a n f a s t e r .

2 0

Page 219: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 219/322

C H A P T E R

Page 220: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 220/322

Page 221: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 221/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

B A N K I N G

9 . 1 . T H E O R E T I C A L B A S I C S

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

f e y e a r s a g t h V T C - 2 0 i t h s t a n d a r d v e r s i o n h a o n l y 5 o R A M .I h a d 3 5 8 3 B y t e s a v a i l a b l e f o B A S I C p r o g r a m s . I h a 2 0 K B y t e o R O M , w h i c h w a e x t e n d a b l e t 3 2 R A a n 2 4 R O M . T o g e t h e r y o h a 3 2 2 4 5 6 m e m o r y a v a i l a b l e . T h i s c o u l d b a d d r e s s e d w i t h t h 6 5 0 2 p r o c e s s o r , w i t h o u t a n p r o b l e m s , b e c a u s e i h a 1 6 a d d r e s s l i n e sa v a i l a b l e w h i c h a l l o w s f o a c c e s s t 2 A 1 6 6 5 5 3 6 6 4 o m e m o r y .

I s h o r t t i m e m e m o r y b e c a m e s i n e x p e n s i v e t h a t c o m p u t e r s c o u l d b p a c k e d w i t h m e m o r y a n s t i l l r e m a i n w i t h i n t h p r i c e r a n g e o h o m ec o m p u t e r s . B u h o w a t h a d d i t i o n a l m e m o r y s u p p o s e d t b a d d r e s s e d ?T i n s t a l l C P w i t h m o r e t h a n 1 a d d r e s s l i n e s w o u l d r e s u l t i a e x c e s s i v e p r i c e i n c r e a s e .

E n g i n e e r s w o r k e d o u t h r e e m e t h o d s t u s m o r e m e m o r y t h a n c a b a d d r e s s e d . F o C - 1 2 8 o w n e r s o n l y o n o t h e s e i i n t e r e s t i n g ; i t c a l l e dB A N K I N G o B A N K S W I T C H I N G . I t h i s m e t h o d , m e m o r y c h i p s a r i n s t a l l e d " a b o v e e a c h o t h e r 1 1 , w h i c h c o n t a i n t h t o t a l a m o u n t o a d d r e s s a b l em e m o r y . T h i s m e a n s t h a t t w m e m o r y b a n k s a r l o c a t e d i t h e x a c t s a m ea d d r e s s r a n g e . B u o n l y o n m e m o r y b a n k i u s e d a t i m e . T c h o o s e

2 1

Page 222: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 222/322

Page 223: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 223/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

I y o e x a m i n e t h m e m o r y d i a g r a m y o w i l l n o t i c e t h a t t h C - 1 2 8 u s e sb a n k i n g s o m e w h a t l i k e t h C - 6 4 ( t h e C - 1 2 8 c o n t a i n s m o r e o v e r l a y e d

m e m o r y b a n k s . T m a n a g e t h i s b i m e s s , y o n e e d a a d d i t i o n a l i n t e g r a t e dc i r c u i t . I t h C - 6 4 t h i s w a t h A ( A d d r e s s M a n a g e r ) . B e c a u s eC o m m o d o r e o w n s c o m p a n y t h a t m a k e s i n t e g r a t e d c i r c u i t s ( M O ST e c h n o l o g y ) , t h e y q u i c k l y d e s i g n e d n e i n t e g r a t e d c i r c u i t c a l l e d M M 8 7 2 2 ( M e m o r y M a n a g e m e n t U n i t ) . T h M M c o n t r o l s w h i c h b a n k i c u r r e n t l y a c c e s s e d a n m a k e s s u r e t h a t t h c o m p u t e r a l w a y s c a l l s t h i n f o r m a t i o n f r o m t h r i g h t b a n k .

4 0 0 0

o o o o

2 1

Page 224: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 224/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

9 . 3 . S W I T C H I N G T H B A N K S W I T H T H E M M

T s w i t c h t h b a n k s y o u s e o n l y o n r e g i s t e r o t h M M U , r e g i s t e r 0 I i c a l l e d t h e C ( C o n f i g u r a t i o n R e g i s t e r ) . T h b i t s h a v e t h f o l l o w i n gf u n c t i o n :

B i F u n c t i o nS e l e c t s t h r a n g e $ D 0 0 0 - $ E 0 0 0 :

1 / 1 = R O M / R A MS e l e c t s t h e r a n g e $ 4 0 0 0 $ 7 F F F :

R O R A S e l e c t s t h r a n g e $ 8 0 0 0 $ B F F F :

0 S y s t e m R O 0 i n t e r n a l f u n c t i o n R O 1 e x t e r n a l f u n c t i o n R O 1 R A

4 & S e l e c t s t h e r a n g e $ C 0 0 0 - $ F F F F0 S y s t e m R O 0 i n t e r n a l f u n c t i o n R O 1 e x t e r n a l f u n c t i o n R O 1 1 R A

S e l e c t s t h e R A M e m o r y :0 R A M - B a n k 0 0 1 = R A M - B a n k l1 R A M - B a n k 1 1 R A M - B a n k

H e r e a r s o m e f u r t h e r e x p l a n a t i o n s :

a B i t s a n a r d e p e n d e n t o b i 0 T h i s m e a n s w h e n b i t s a n a r s e a n i n o t , t h e n t h e a r e a f r o m $ C 0 0 0 $ F F F F i n o c o m p l e t e l yR A M . F r o m $ D 0 0 0 $ E 0 0 0 i t h I / ( I n p u t / O u t p u t ) . R A w o u l d b t h e r e , w h e n B i w o u l d b s e t t o 1 I B i i 0 t h I / i s w i t c h e d o i n d e p e n d e n t l y o b i t s 4 a n d 5 B u b i t s 4 a n d c o n t r o l t h m e m o r yl a y o u t f r o m $ C 0 0 0 $ F F F F .

2 1

Page 225: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 225/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

b I t h p r e s e n t v e r s i o n s o t h C - 1 2 8 b i t s m a k e s e n s e i o n l y t h f i r s t t w m o d e s b e c a u s e t h R A B a n k s a r n o a v a i l a b l e y e t .

c I t h a r e a f r o m $ F F 0 0 $ F F 0 4 t h s y s t e m m e m o r y i l o c a t e d ,i n d e p e n d e n t f r o m t h i s r e g i s t e r . T h f i r s t o t h e s e f i v e b y t e s ( $ F F 0 0 ) i r e g i s t e r o t h M M U . Y o a r p r o b a b l y w o n d e r i n g w h y . T h a n s w e r i v e r y s i m p l e . I m a g i n e y o h a v e t h I / O s w i t c h e d o f f , f o e x a m p l e , t a c c e s s t t h c h a r a c t e r g e n e r a t o r . N o y o w o u l d l i k e t t u r n o t h I / O , t o c h a n g e t h s c r e e n c o l o r , b u h o d y o s w i t c h i b a c k o n T h r e g i s t e r s o t h M M a r e a l s o i t h I / O ( e x c u s e u f o h o l d i n g t h a t i n f o r m a t i o n b a c k s l o n g ) : f r o m $ D 5 0 0 $ D 5 0 B ! N o t h m e m o r y c e l l $ F F 0 0 t a k e s a c t i o n . B e c a u s e t h i s r e g i s t e r h a t h s a m ef u n c t i o n a r e g i s t e r 0 y o u c a s w i t c h t h I / b a c k o n

B e c a u s e b a n k i n g w o u l d n ' t b v e r y u s e r f r i e n d l y i i c o u l d o n l y b d o n eu s i n g t h r e g i s t e r s o t h M M U , t h p r o g r a m m e r s o t h B A S I C i n t e r p r e t e ri m p l e m e n t e d n e c o m m a n d : t h B A N K c o m m a n d . T h e S Y N T A X i a f o l l o w s :

B A N K n

T h n i n u m b e r f r o m 0 t 1 t h a t a c t i v a t e s t h e r e s p e c t i v e m e m o r yc o n f i g u r a t i o n . O t h n e x t p a g e i c h a r t s h o w i n g t h d i f f e r e n t m e m o r yc o n f i g u r a t i o n s o f e a c h b a n k .

2 1

Page 226: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 226/322

Page 227: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 227/322

C H A P T E R 1

Page 228: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 228/322

Page 229: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 229/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

A U T O S T A R T

1 0 . 1 A U T O S T A R T F R O M T H D I S K D R I V E

M a n y f i r s t t i m e C o m m o d o r e c o m p u t e r u s e r s h a v e d i f f i c u l t y i s t a r t i n gt h e i r f i r s t p r o g r a m ; t h e y h a v e n o y e t l e a r n e d " c o m p u t e r e s e " . O s o m ec o m p u t e r s y s t e m s , M S - D O S c o m p u t e r s f o e x a m p l e , i i p o s s i b l e t s t a r t

p r o g r a m b y s i m p l y t u r n i n g t h e c o m p u t e r o a n i n s e r t i n g d i s k i t h d i s k d r i v e . T s t a r t p r o g r a m w i t h t h C P / M a n M S - D O S o p e r a t i n gs y s t e m s a l y o h a v e t d i t y p e i t h n a m e o t h p r o g r a m a n d p r e s st h < R E T U R N > k e y .

I t h C - 6 4 i w a l i t t l e h a r d e r . Y o h a t e n t e r L O A D , t h n a m e o t h p r o g r a m , " 8 ( m a y b e e v e n " , 8 , 1 " ) . B u a d m i t t e d l y t h C - 6 4 w a d e s i g n e d f o h o b b y i s t p r o g r a m m e r s , p e o p l e w i t h s o m e e x p e r i e n c e i u s i n g c o m p u t e r s . T h C - 1 2 8 i a i m e d a d i f f e r e n t g r o u p , t h b u s i n e s su s e r , a n b e c a u s e o t h i s i i e q u i p p e d w i t h t h C P / M o p e r a t i n g s y s t e m .A r e s u l t i i p o s s i b l e t l o a d p r o g r a m s a u t o m a t i c a l l y f r o m d i s c , s t a r t i n gt h e m w h e n t h c o m p u t e r i f i r s t t u r n e d o n T h i s " a u t o s t a r t " r o u t i n e i a l s oc a l l e d b r e s e t t i n g t h c o m p u t e r .

T h i s " a u t o s t a r t " r o u t i n e h o l d s s e v e r a l p o s s i b i l i t i e s . Y o c a l o a d a n n u m b e r o b l o c k s f r o m d i s k ( b u t t h e y h a v e t s t a r t i s e q u e n c e f r o m t r a c k1 s e c t o r 1 b e f o r e y o l o a d a n p r o g r a m . A f t e r l o a d i n g y o c a e x e c u t et h p r o g r a m . S y o c o u l d l o a d i n e l a n g u a g e ( f o r e x a m p l eF O R T H ) , t h e n p r o g r a m i t h n e l a n g u a g e a n t h e n s w i t c h o t h n e

2 1

Page 230: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 230/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

l a n g u a g e . T h e s a m e c a b d o n e w i t h B A S I C p r o g r a m s . W e ' l l o n l yk n o w h o m a n y p o s s i b i l i t i e s t h e r e a r e a f t e r t h C - 1 2 8 i o t h m a r k e tf o w h i l e .

I t h n e x t s e c t i o n w e w i l l e x p l a i n t h " a u t o s t a r t 1 1 r o u t i n e i d e t a i l . I y o o n l y w a n t t u s t h " a u t o s t a r t " , y o d o n ' t h a v e t s t u d y t h i s s e c t i o ns i m p l y u s t h p r o g r a m s p r e s e n t e d h e r e . B u i y o w a n t t k n o w m o r ea b o u t h o t h e s e p r o c e d u r e s o p e r a t e , y o s h o u l d c o n t i n u e r e a d i n g .

1 0 . 1 . 1 . T H B O O T - C A L L R O U T I N E

T h b o o t - c a l l r o u t i n e i l o c a t e d i t h o p e r a t i n g s y s t e m f r o m $ F 8 9 0$ F 9 8 A . Y o s h o u l d c a l l i w i t h a d d r e s s $ F F 5 3 ; t h i s i w h e r e i i l o c a t e di t h k e r n a l j u m p t a b l e .

F i r s t t h l i s t i n g o t h r o u t i n e :F 8 9 0F 8 9 2F 8 9 4F 8 9 5F 8 9 8F 8 9 AF 8 9 CF 8 9 EF 8 9 FF 8 A 1F 8 A 2F 8 A 4F 8 A 5F 8 A 7F 8 A 9

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

L D L D

$ B $ B $ F 2 3 D# $ 0 0$ 9 $ C $ C

$ F 8 A 1$ F 8 A 1# $ o c$ F A 0 8 , X

2 2

Page 231: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 231/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

F 8 B 0F 8 B 2F 8 B 4F 8 B 7F 8 B 9F 8 B BF 8 B EF 8 C 0F 8 C 2F A C 4F 8 C 7F 8 C 9F 8 C BF 8 C DF 8 D 0F 8 D 3F 8 D 5F 8 D 7F 8 D 9F 8 D BF 8 D EF 8 E 0F 8 E 1F 8 E 3F 8 E 6F 8 E 9F 8 E BF 8 E EF 8 F 0F 8 F 2F 8 F 4F 8 F 6

B P L D S T L D L D J S L D L D L D J S L D L D L D J S J S B C L D L D L D J S L D T A L D J S J S B C J M

L D L D S T S T

J S

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

F 8 F 9 L D X # $ 0 0F 8 F B L D A $ 0 B 0 0 , XF 8 F F C M $ E 2 C 4 , XF 9 0 1 B N E $ F 8 E BF 9 0 3 I N

2 2

Page 232: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 232/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

F 9 0 4 C P # $ 0 3F 9 0 6 B C C $ F 8 F BF 9 0 8 J S $ F A 1 7F 9 0 E 4 5 4 4 F 9 1 2 4 2 0 F 9 1 5F 9 1 8F 9 1 AF 9 1 BF 9 1 D

F 9 1 FF 9 2 2F 9 2 4F 9 2 7F 9 2 8F 9 2 A

L D S T I N C P B C

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

$ 0 B 0 0 , X$ A 9 , X# $ 0 7$ F 9 1 7

$ 0 B 0 0 , X$ F 9 2 A$ F F D 2$ F 9 1 F$ 9

F 9 2 C J S R $ F A 1 7F 9 2 F 2 2 2 0 F 9 3 3 0 F 9 3 4F 9 3 6

L D $ A S T $ C

F 9 3 8F 9 3 AF 9 3 CF 9 3 EF 9 4 1F 9 4 3F 9 4 5F 9 4 8F 9 4 AF 9 4 5F 9 4 DF 9 4 EF 9 5 1F 9 5 3F 9 5 4

L D B E D E J S I N B N J S L D

$ A $ F 9 4 5$ A $ F 9 B 3$ A $ F 9 3 8$ F 9 8 B$ 9

. B Y T E $ 2 I N I N L D B N I N S T

$ 9 0 B 0 0 , X$ F 9 4 B$ 0

2 2

Page 233: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 233/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

F 9 5 3F 9 5 4F 9 5 6F 9 5 8F 9 5 AF 9 5 DF 9 5 EF 9 6 0F 9 6 3F 9 6 5F 9 6 7F 9 6 9F 9 6 AF 9 6 BF 9 6 CF 9 6 EF 9 7 0F 9 7 3F 9 7 5F 9 7 6F 9 7 9F 9 7 BF 9 7 EF 9 8 0F 9 8 2F 9 8 4F 9 8 6

I N S T L D L D S T D E L D S T S T L D B E I N I N T X L D L D J S L D T A J S L D J S L D S T L D S T J S

$ 0 $ 9 # $ 3 A# 0 B 0 0 , X$ B $ 0 B 0 0 , X$ 9 $ 9 $ F 9 7 E

$ 9 # $ 0 B$ F 7 3 1# $ 0 0$ F 7 3 F# $ 0 0$ F 2 6 9# $ 0 B$ 0 # $ 0 F$ 0 $ 0 2 C D

F 9 8 9F 9 8 A

C L R T

T h f i r s t t w i n s t r u c t i o n s s t o r e t h c o n t e n t s o t h a c c u m u l a t o r a n t h X - r e g i s t e r i n t h e z e r o p a g e . T h f u n c t i o n o t h e s e t w b y t e s a r e : t h a c c u m u l a t o r r e p r e s e n t s t h d e v i c e a d d r e s s o t h d i s k d r i v e , f r o m w h e r ey o l o a d p r o g r a m . T h X - r e g i s t e r c o n t a i n s t h d e v i c e a d d r e s s o t h d i s k d r i v e , w h e r e y o w i l l s e a r c h t h d i s k f o a a u t o s t a r t s e q u e n c e . I m o s t c a s e s t h e s e b y t e s a r i d e n t i c a l . D u r i n g r e s e t b o t h r e g i s t e r c o n t e n t s

2 2

Page 234: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 234/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

a r s e t 8 Y o e x e c u t e a a u t o s t a r t o n l y o t h d i s k d r i v e w i t h d e v i c ea d d r e s s o 8 p r o g r a m m e r c a j u m p t t h i s r o u t i n e i m a n y d i f f e r e n tw a y s , f o e x a m p l e , w i t h S Y D E ( " F F 5 3 " ) 9 9 T h i s c o m m a n ds e a r c h e s d i s k d r i v e w i t h d e v i c e a d d r e s s f o t h a u t o s t a r t t r a c k a n s e c t o r .

T h s u b p r o g r a m , c a l l e d i a d d r e s s $ F 8 9 5 , c l o s e s a l f i l e s w i t h t h d e v i c ea d d r e s s i t h a c c u m u l a t o r . T h f u n c t i o n i c l e a r : t h c o m m a n d s a n d a t a , w h i c h a r s u p p o s e d t b s e n t t t h d i s k , w o u l d n ' t r e a c h t h d i s kq u i c k l y e n o u g h i f i l e w a s t i l l o p e n .

T h f i l e s c l o s e i t h f o l l o w i n g m a n n e r : f i r s t t a b l e i s e a r c h e d w h i c hc o n t a i n s t h d e v i c e a d d r e s s o t h p r e s e n t o p e n f i l e s f o t h d e t e r m i n e dd e v i c e n u m b e r . T h c o m p u t e r f i n d s t h d e v i c e n u m b e r i t h i s t a b l e( $ 0 3 6 2 $ 0 3 6 B ) t h e n i f i n d s t h e r e s p e c t i v e f i l e n u m b e r ( t h e i n f o r m a t i o ni b o t h t a b l e s a r i t h s a m e p l a c e ) . T h i s f i l e i s c l o s e d w i t h t h k e r n a lr o u t i n e C L O S E ( $ E F C 3 ) . T h i s h a p p e n s w i t h a l o p e n f i l e s ( t h e a m o u n t i i $ 9 8 ) . T h e r e i t h i r d r e l a t e d t a b l e a ( $ 0 3 7 6 $ 0 3 7 F ) , t h i s c o n t a i n s t h s e c o n d a r y a d d r e s s e s o t h o p e n f i l e s ( i t h s a m e s e q u e n c e a s t h e o t h e rt w t a b l e s ) .

T h n e x t f i v e i n s t r u c t i o n s o t h e b o o t - c a l l - r o u t i n e s e t h f o l l o w i n g z e r op a g e b y t e s t t h f o l l o w i n g v a l u e s :

$ 9 ( 1 5 9 ) : 0 $ C ( 1 9 3 ) : 0 $ C ( 1 9 4 ) 0

T h a d d r e s s $ 9 i c o u n t e r a n w i l l b u s e d l a t e r .

2 2

Page 235: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 235/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

I $ C i t h t r a c k n u m b e r , i $ C i t h s e c t o r n u m b e r o t h b l o c k o ft h d i s k w h e r e t h i n f o r m a t i o n t b l o a d e d i l o c a t e d . T h i n f o r m a t i o nf o r t h e " a u t o s t a r t 1 1 b o o t - c a l l i o t r a c k 1 s e c t o r 0 - - t h e f i r s t b l o c k o t h d i s k . T h i s b l o c k m a n o b u s e d f o a n o t h e r d a t a s t o r a g e i y o w i s h t m a k e a " a u t o s t a r t " d i s k . T h i d e a l s o l u t i o n i s t u s e o n l y " f r e s h "f o r m a t t e d d i s k s f o r " a u t o s t a r t " p r o g r a m s . O c h e c k w i t h d i s k m o n i t o r t s e i t h b l o c k i u s e d o n o o d i s k s t h a t c o n t a i n d a t a .

T r a c k a n s e c t o r a r n o o n l y u s e d f o r t h e a u t o s t a r t r o u t i n e , b u a l s o t l o a d t h C P / M o p e r a t i n g s y s t e m . C P / M u s e s t h a u t o s t a r t r o u t i n e t l o a da n e x e c u t e t h n e o p e r a t i n g s y s t e m . T h n e x t f o u r c o m m a n d s ( f r o m$ F 8 A 1 $ F 8 A 6 ) a r a d e l a y l o o p . T h e n 1 3 b y t e s f r o m t h o p e r a t i n gs y s t e m ( f r o m $ F A 0 8 $ F A 1 4 ) a r c o p i e d i n t o t h R A ( f r o m $ 0 1 0 0$ 0 1 0 C ) . T h e s e b y t e s h a v e t h f o l l o w i n g v a l u e s :

F A 0 8 : 3 3 2 0 3 1 3 0 2 3 0 2 0 3 3 3 1 3 3 1 5 5

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

U l 1 0 0 0

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

2 2

Page 236: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 236/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h t w i n s t r u c t i o n s f r o m $ F 8 B 2 $ F 8 B 6 s t o r e t h e c o n t e n t s f r o m $ B t s t r i n g . A t h s t a r t o t h e r o u t i n e t h e a d d r e s s $ B w a l o a d e d w i t h t h

c h o s e n d e v i c e a d d r e s s . T h a t m e a n s , y o w r i t e t h e d e v i c e a d d r e s s i n s t e a do t h e s i n g l e z e r o i n t o t h e s t r i n g .

T h n e x t e l e v e n i n s t r u c t i o n s h a v e t h f o l l o w i n g f u n c t i o n :

F u n c t i o nB a n k - N u m b e r f o L O A D / S A V E A H E R I F YB a n k N u m b e r f o p r e s e n t f i l e n a m eL e n g t h o p r e s e n t F i l e n a m eL o b y t e a d d r e s s o f i l e n a m eH i g h b y t e a d d r e s s o f i l e n a m eL o g i c d a t a - f i l e n u m b e rS e c o n d a r y a d d r e s sD e v i c e a d d r e s s

S o t h f i l e n a m e i i a d d r e s s $ F A 1 5 . I t h i s a d d r e s s i t h v a l u e $ 4 ( 7 3 ) . T h i s v a l u e i t h A S C I I v a l u e o t h c h a r a c t e r " I " . T h e n t h i n s t r u c t i o n f o l l o w i n g ( J S R $ F F C 0 ) c a l l s t h e k e r n a l r o u t i n e O P E N . T h e s ea s s e m b l e r i n s t r u c t i o n s a r t h s a m e a t h f o l l o w i n g B A S I C c o m m a n d :

O P E N 0 D e v i c e a d d r e s s , 1 5 " I

T h T s t a n d s f o r t h e d i s k c o m m a n d " I N I T I A L I Z E 1 1 . T h i s c o m m a n dr e a d s t h B A ( B l o c k A v a i l a b i l i t y M a p ) o t h e i n s e r t e d f l o p p y d i s k . T h i sc o m m a n d i u s e d t c h e c k t h e d i s k s f o d i f f e r e n t I D s . T h e I D o t h d i s kt e l l s t h d r i v e i n e d i s k h a b e e n i n s e r t e d s i n c e t h e l a s t t i m e i r e a d t h B A M . T h B l o c k A v a i l a b i l i t y M a k e e p s t r a c k o t h f r e e s p a c e o t h

2 2

V a l u e# 0 # 0 # 0 # 1 # F # 0 # 0 # B

L o c a t i o n$ C $ C $ B $ B $ B $ B $ B $ B

Page 237: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 237/322

Page 238: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 238/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h a s s e m b l e r i n s t r u c t i o n s ( w i t h t h c a l l o t h O P E N R o u t i n e i $ F 8 E 6 )i t h s a m e a t h f o l l o w i n g B A S I C c o m m a n d :

O P E N 1 3 D e v i c e a d d r e s s , 1 3 , "

I c a s e y o a r n o f a m i l i a r w i t h t h d i s k d r i v e , t h i s r e s e r v e s b u f f e r i t h d i s k d r i v e , f o t h i n f o r m a t i o n t b r e a d f r o m t h d i s k * Y o h a v ea c c e s s t t h i s b u f f e r o v e r c h a n n e l 1 3

H e r e y o l e a v e t h b o o t - c a l l r o u t i n e i t h d i s k i n o p r e s e n t i t h d i s kd r i v e .

T h f o u r i n s t r u c t i o n s f r o m $ F 8 E E $ F 8 F 5 s e t h b y t e s $ A C / $ A D t $ 0 B 0 0 ( t h e c a s s e t t e b u f f e r ) . T h e s e t w z e r o p a g e a d d r e s s e s a r u s e d a p o i n t e r ; t h c a s s e t t e b u f f e r i u s e d t o s t o r e t h e c h a r a c t e r s r e a d f r o m t h d i s k .

A d d r e s s $ F 8 F 6 s e n d s a c o m m a n d t t h e d i s k d r i v e a n c h a r a c t e r s a r ec a l l e d a c c o r d i n g l y . T h i s i m p o r t a n t r o u t i n e i l i s t e d a n d o c u m e n t e db e l o w :

L o g i c F i l e n u m b e rO u t p u t d e v i c e w i t h D e v i c ea d d r e s s o f f i l e n u m b e rA m o u n t o C h a r s t o s e n d - 1C a l l C h a r a c t e rA n S e n d ( B S O U T )A l C h a r a c t e r sN C l o s e P r e s e n t I / C h a n n e la I E B u ( C L R C H )

F 9 E 8 L D # $ 0 D L o g i c F i l e n u m b e r

2 2

F 9 D 5F 9 D 7F 9 D AF 9 D CF 9 D FF 9 E 2F 9 E 3F 9 E 5

L D J S L D L D J S D E B P J S

# $ 0 0$ F F C 9# $ 0 C$ 0 1 0 0 / X$ F F D 2$ F 9 D C$ F F C C

Page 239: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 239/322

F 9 E DF 9 E FF 9 F 2

L D J S J S

# 5 0 0$ F F C F$ F 7 B C

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

F 9 E A J S $ F F C 6 D e v i c e a d d r e s s o f f i l ew i t h n u m b e r 1 C o u n t e r t o z e r oE n t e r C h a r a c t e r ( B A S I N )A n s t o r e i A d d r e s sd e t e r m i n e d b $ A C / $ A D ( i b a n k d e t e r m i n e d a $ C 6 )

F 9 F 5 I N R a i s e o f f s e t f o p o i n t e r$ A C / $ A D

F 9 F 6 B N E $ F 9 E F S t i l l n o a l c h a r a c t e r s( B l o c k )

F 9 F 8 J M $ F F C C C l o s e p r e s e n t I / C h a n n e la I E C - B u s a n J u m p b a c k

I t h i s c a s e t h m e s s a g e H U 1 : 1 3 0 0 0 i s e n t a n t h b l o c k a t r a c k 1 s e c t o r i r e a d i n t o t h b u f f e r . T h i s b u f f e r i r e a d a n t h b y t e s f r o m$ 0 B 0 0 $ 0 B F F a r s t o r e d T h e n y o u c o n t i n u e t h e b o o t - c a l l r o u t i n e .

N e x t t h c o n t e n t s o t h a d d r e s s e s $ E 2 C 4 $ E 2 C 6 a r c o m p a r e d w i t h t h f i r s t t h r e e b y t e s t h a t w e r e r e a d i n I o n o t h e s e b y t e s i d i f f e r e n t , y o l e a v e t h e r o u t i n e j u s t a i t h d i s k w a s n ! t p r e s e n t . T h i s m e a n s t h e s e t h r e eb y t e s c o n t a i n t h i n f o r m a t i o n d e t e r m i n i n g w h e t h e r a a u t o s t a r t w i l l b p e r f o r m e d o n o t ! T h t h r e e b y t e s i t h o p e r a t i n g s y s t e m h a v e t h f o l l o w i n g v a l u e s :

$ E 2 C 4$ E 2 C 5$ E 2 C 6

$ 4 $ 4 $ 4

( 6 7 )( 6 6 )( 7 7 )

" C " B " M

T h f i r s t t h r e e b y t e s f r o m t r a c k 1 s e c t o r t o g e t h e r b u i l d t h e s t r i n g" C B M " .

2 2

Page 240: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 240/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

I a l t h b y t e s a r e e q u a l , t h e m e s s a g e " ( C R ) B O O T I N G " w i l l b o u t p u to t h s c r e e n . T h i s u s e s t h k e r n a l r o u t i n e P R I M M .

T h e n t h c o n t e n t s o t h a d d r e s s e s $ 0 B 0 3 $ 0 B 0 6 a r c o p i e d t t h a d d r e s s e s $ A $ A F . T h c o n t e n t s o t h a d d r e s s e s $ 0 B 0 3 $ 0 B 0 6e q u a l t h b y t e s o t h b l o c k c a l l e d f r o m d i s k . W e ! l l e x p l a i n t h f u n c t i o n o t h e s e b y t e s l a t e r .

I t h n e x t s e c t i o n , l o c a t i o n s $ 0 B 0 7 t t h n e x t z e r o ( 0 a r e i n t e r p r e t e d i A S C I I a n t h e r e s p e c t i v e c h a r a c t e r s a r e o u t p u t T h l o c a t i o n w h e r e t h z e r o a p p e a r e d i s t o r e d i $ 9 E .

T h e n t h P R I M M r o u t i n e i c a l l e d a g a i n a n t h t e x t " . . . ( C R ) " i o u t p u t .T h n e x t t w i n s t r u c t i o n s c o p y t h c o n t e n t s o a d d r e s s $ A t $ C 6 .A d d i t i o n a l l y , t h a d d r e s s $ A w a l o a d e d w i t h t h c o n t e n t s o $ 0 B 0 5 ,b y t e o t h b l o c k r e a d f r o m t h d i s k . A l s o , t h a d d r e s s $ C w a u s e db e f o r e , i n a p r e v i o u s r o u t i n e . T h e r e t h b a n k w h e r e t h b l o c k w a s u p p o s e d t b l o a d e d w a d e t e r m i n e d b t h c o n t e n t o f $ C 6 .

I n t h e n e x t s e c t i o n t h c o n t e n t o $ A i c a l l e d . I i i d i f f e r e n t t h a n z e r oo n w i l l b s u b t r a c t e d f r o m t h v a l u e . I i i z e r o , y o j u m p t a n o t h e rs u b p r o g r a m :

S e c t o r N u m b e rR a i s e o n A l r e a d y S e c t o r 2 1 N y e s , t h e n S e c t o rA n T r a c k N o r a i s e o n eS e c t o r N o s t o r e a g a i nS e c t o r N o i A C C U

F 9 C 1 J S R $ F 9 F B S e c t o r N o . t o A S C I I c o d e2 3

F 9 B 3F 9 B 5F 9 B 6F 9 B 8F 9 B AF 9 B CF 9 B EF 9 C 0

L D I N C P B C L D I N S T T X

$ C # $ 1 5$ F 9 B E# $ 0 0$ C $ C

Page 241: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 241/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

F 9 C 4F 9 C 7F 9 C AF 9 C CF 9 C FF 9 D 2F 9 D 5

S T S T L D J S S T S T F 9 F A

$ 0 1 0 0$ 0 1 0 1$ C $ F 9 F B$ 0 1 0 3$ 0 1 0 4

L o w e r N i b b l eU p p e r N i b b l eG e T r a c k N o C h a n g e t A S C I I c h a r a c t e r sL o w e r N i b b l eU p p e r N i b b l e

D o c u m e n t e d a b o v eF 9 F B L D X # $ 3 0 U p p e r N i b b l e " 0 F 9 F D S E S e c a r r y - f l a g f o r s u b t r a c .F 9 F E S B # $ 0 A I n u m b e r 0 - 9 ?F A 0 0 B C C $ F A 0 5 y e s , t h e n e n dF A 0 2 I N X N o t h e n r a i s e n u m b e rF A 0 3 B C S $ F 9 F E A n t r a g a i nF A 0 5 A D C # $ 3 A C h a n g e l o n i b b l e t o A S C I IF A 0 7 R T S

T h s u b p r o g r a m c h a n g e s n u m b e r s t A S C I I v a l u e s ; i o n l y f u n c t i o n s w i t ht w d e c i m a l n u m b e r s . D o n ' t f o r g e t t h i s w h e n y o u s t h e r o u t i n e f o y o u r o w p u r p o s e s .

S o y o m a a s k , w h a t i t h f u n c t i o n o t h r e s t o t h b o o t - c a l l r o u t i n e ?

T h c o n t e n t f r o m $ A d e t e r m i n e s h o m a n y b l o c k s a r t b r e a d f r o md i s ; $ A $ A d e t e r m i n e s , w h i c h a d d r e s s t h o s e b l o c k s a r e t o b s t o r e d( y o u c a n ! t s k i p p a g e s , t h b l o c k s a r s t o r e d i s e q u e n c e ) a n $ A d e t e r m i n e s t h b a n k w h e r e t h b l o c k s a r s t o r e d . T h b l o c k s g i s e q u e n c e , t r a c k 1 s e c t o r t h e n t r a c k 1 s e c t o r e t c . .

B u t h e r e i m o r e . R e g a r d l e s s o i t h e r e a r e m o r e b l o c k s r e a d o n o t , y o c l o s e t h o p e n e d f i l e s i a d d r e s s $ F 9 4 5 .

2 3

Page 242: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 242/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h e n y o r e p e a t t h e c o u n t e r . W h i c h c o u n t e r ? Y o m i g h t r e m e m b e r t h a ti $ 9 w a s t o r e d t h e l o c a t i o n w h e r e t h s t r i n g e n d e d . I n c r e m e n t t h i sc o u n t e r a n g e t h c h a r a c t e r a w h i c h t h c o u n t e r s h o w s . I i i z e r o y o l e a v e t h i s s e c t i o n o t h b o o t - c a l l r o u t i n e . I i i n o z e r o , i n c r e m e n t t h i n d i c a t o r b o n e . I z e r o , i n c r e m e n t t h e i n d i c a t o r a g a i n a n s t o r e i i $ 0 4 .

I n t h e n e x t s e c t i o n y o u s t h i n d i c a t o r $ 9 a a o f f s e t . A t h e l o c a t i o no t h f i r s t z e r o g o e s t h A S C I I v a l u e f o t h c o l o n a n b e f o r e t h a t t h c o n t e n t o $ B F . T h n e c o u n t e r i n o s t o r e d . T h e n , t h l e n g t h o t h f i l e n a m e i p l a c e d i n t o t h e X - r e g i s t e r . I i i z e r o , y o j u m p o v e r t h i sp a r t , b e c a u s e y o k n o w a n o t h e r p r o g r a m i s u p p o s e d t b c a l l e d . B u t , i i i n o z e r o , i i i n c r e m e n t e d b t w o , b e c a u s e t h c o l o n a n t h c o n t e n t so $ B h a v e b e e n a d d e d . T h e n m o r e p a r a m e t e r s a r s e t :

V a l u e C o m e s A f t e r F u n c t i o n

A C C U $ B L e n g t h o p r e s e n t f i l e n a m e$ 9 $ B L o w - b y t e a d d r e s s o f i l e n a m e# 0 $ B H i g h - b y t e a d d r e s s o f i l e n a m e# 0 $ C B a n k - N o , f o L O A D / S A V E / V E R I F Y# 0 $ C A N K - N o . f o P r e s e n t f i l e n a m e

I a d d r e s s $ F 9 7 9 t h a c c u m u l a t o r i l o a d e d w i t h a z e r o t s i g n a l t h a tL O A D i r e q u i r e d . T h s u b p r o g r a m , c a l l e d i t h n e x t i n s t r u c t i o n , i a l s ou s e d b V E R I F Y . I t h a t c a s e , t h f l a g w o u l d b 1

T h e n y o l o a d t h p r o g r a m . Y o c o n t i n u e a a d d r e s s $ F 9 7 E , w h e t h e rp r o g r a m w a l o a d e d o n o t .

2 3

Page 243: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 243/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

N e x t i a d d r e s s $ 0 0 0 4 , t h v a l u e $ 0 i s t o r e d t h e n i $ 0 0 0 2 t h v a l u e$ 0 F . T h e n y o j u m p t t h s u b p r o g r a m w h i c h i a l s o u s e d b t h k e r n a lr o u t i n e . T h i s c a l l d o e s t h f o l l o w i n g : y o s e l e c t t h b a n k , w i t h t h n u m b e r i $ 0 0 0 2 . T h e n y o j u m p t t h e a d d r e s s , d e t e r m i n e d t h r o u g h$ 0 0 0 3 / $ 0 0 0 4 . T h i s p r o g r a m w i l l b e x e c u t e d . S h o u l d t h i s s u b p r o g r a mb l e f t w i t h R T S , t h p r o g r a m c o n t i n u e s i t h b a n k f r o m w h i c h y o c a l l e d t h e p r o g r a m ( i t h i s c a s e a d d r e s s $ F 9 8 9 ) .

I a d d r e s s $ F 9 8 9 y o u c l e a r t h e c a r r y - f l a g . T h i s i n d i c a t e s t h a t t h b o o t - c a l l r o u t i n e w a l e f t p r o p e r l y ( i t h d i s k d r i v e d i n o r e p o r t , t h c a r r y - f l a g w o u l d b s e t , s e a d d r e s s $ F 8 D 3 ) . T h r o u t i n e i l e f t w i t h aR T S .

1 0 . 1 . 2 . U S I N G T H B O O T C A L L

B e x a m i n i n g t h b o o t - c a l l r o u t i n e i t h p r e v i o u s c h a p t e r , w f o u n d o u t h a t t h f i r s t b l o c k o d i s k , t r a c k I / s e c t o r 0 m u s t h a v e t h f o l l o w i n gb y t e a s s i g n m e n t :

1 B y t e : $ 4 ( 6 7 ) A S C I I - V a l u e f o r " C "2 B y t e : $ 4 ( 6 6 ) A S C I I - V a l u e f o " B 3 B y t e : $ 4 ( 7 7 ) A S C I I - V a l u e f o " M 4 B y t e : L o w - b y t e o a d d r e s s , f r o m w h i c h m o r e b l o c k s a r

s t o r e d ( c o m e s i a d d r e s s $ A C )5 B y t e : H i g h - B y t e o t h i s a d d r e s s ( c o m e s a f t e r $ A D )6 B y t e : B a n k - n u m b e r , i w h i c h t h b l o c k s a r t b s t o r e d

( c o m e s a f t e r $ A E )2 3

Page 244: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 244/322

Page 245: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 245/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

N o c a l l t h b o o t c a l l r o u t i n e :

S Y D E C ( " F F 5 3 " ) , 8 , 8 ( o S Y D E ( " F 8 9 0 " ) , 8 , 8 )

T h d i s k d r i v e s t a r t s a n a f t e r s h o r t t i m e t h t e x t " B O O T I N G . . . " w i l l b o u t p u t o t h s c r e e n . T h e n t h c o m p u t e r w i l l p r o b a b l y j u m p i n t o t h m o n i t o r . W h y ? B e c a u s e w a s s i g n e d t h f i r s t t h r e e b y t e s o t h b l o c k ,o n l y t h b y t e s t h a t p e r m i t t h a u t o s t a r t . T h r e s t o t h b l o c k w a p r o b a b l y f i l l e d w i t h z e r o s , s t h c o m p u t e r d i d n o t g e a n m o r e t e x t a n d i d n ' t s e a r c h f o a n m o r e b l o c k s o p r o g r a m s . A f t e r t h a t t h c o m p u t e rt r i e d t e x e c u t e m a c h i n e l a n g u a g e p r o g r a m , b u f o u n d o n l y z e r o s .T h e s e z e r o s r e p r e s e n t t h m a c h i n e l a n g u a g e i n s t r u c t i o n B R K , s i j u m p e d t t h m o n i t o r ( t h e n o r m a l r e a c t i o n o t h C - 1 2 8 t t h B R E A Ki n s t r u c t i o n ) .

L e t ' s e n t e r s o m e m o r e v a l u e s i n t o o u " a u t o s t a r t " p r o g r a m .

1 D I B ( 2 5 5 )2 B Y ( 0 ) = A S C ( " C " ) B ( l ) = A S C ( " B " ) B ( 2 = A S C ( " M " )3 B Y ( 3 ) = 0 : B Y ( 4 ) = 0 : B Y ( 5 ) = 0 : B Y ( 6 ) = 04 P R I N T C H R $ ( 1 4 7 ) / " T E X T B E H I N D ' B O O T I N G ' : "5 F O Z A = 7 T 2 5 6 G E K E A $ : I F A $ = C H R $ ( 1 3 ) T H E N 8 7 B Y ( Z A ) = A S C ( A $ ) : N E X T Z 8 B Y ( Z A ) = 09 Z A = Z A + 1 : B Y ( Z A ) = 01 0 Z A = Z A + 1 : B Y ( Z A ) = 9 61 1 O P E N 1 , 8 , 1 51 2 O P E N 2 , 8 , 1 3 , " * "1 2 P R I N T # 1 , " B - F 0 1 3 P R I N T # 1 , " B - P 1 0 1 4 F O Z A = 0 T 2 5 1 5 P R I N T # 2 , C H R $ ( B Y ( Z A ) )1 6 N E X T Z 1 7 P R I N T # 1 , " U 2 1 0

2 3

Page 246: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 246/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 8 P R I N T # 1 , " B - A 0 1 9 C L O S E2 0 C L O S E

H e r e y o f i r s t c r e a t e a a r r a y w i t h 2 5 e l e m e n t s . T h f i r s t s e v e n b y t e s o t h i s a r r a y G a t e r w r i t t e n t t h a u t o s t a r t b l o c k ) a r s e t , s t h a t t h a u t o s t a r tc a n b e i d e n t i f i e d w i t h o u t l o a d i n g a n m o r e b l o c k s . T h e n y o u c a e n t e ra n t e x t , b u n o m o r e t h a n 2 4 c h a r a c t e r s . T h a t h a p p e n s i t h f o l l o w i n gl i n e s :

L i n e 8 0 E n o s t r i n g t o o u t p u tL i n e 9 0 E n o p r o g r a m n a m e

( 0 c h a r a c t e r s , n p r o g r a m i l o a d e d )L i n e 1 0 0 : P r o g r a m t e x e c u t e ( t h e c o m m a n d : R T S )

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

N o f o p r o g r a m u s i n g t h a u t o s t a r t . W h e n y o r u t h f o l l o w i n gp r o g r a m , t h b l o c k a t r a c k 1 s e c t o r w i l l b w r i t t e n s t h a t i s t a r t s( B A S I C ) p r o g r a m w i t h n a m e " H E L L O " a u t o m a t i c a l l y . T h a s s i g n m e n to t h b y t e s i a s f o l l o w s :

B y t e 0 - B i t s f o r a u t o s t a r t r o u t i n eB y t e 7 - 2 6 T e x t t o p r i n t o u B y t e 2 Z e r o a e n m a r kB y t e 2 8 - 3 2 N a m e o p r o g r a m t l o a d ( " H E L L O " )B y t e 3 3 Z e r o a e n m a r kB y t e 3 4 5 M a c h i n e P r o g r a m t E x e c u t e ( R U N )

2 3

Page 247: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 247/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

N o t h c o m p l e t e " a u t o s t a r t " p r o g r a m :

1 O P E N 1 , 8 , 1 52 O P E N 2 , 8 , 1 3 , " # "2 P R I N T # 1 , " B - F 0 0 3 P R I N T # 1 , " B - P 1 3 0 "4 F O Z A = 0 T 5 5 R E A D6 P R I N T # 2 . C H R $ ( A )7 N E X T Z 8 P R I N T # 1 , " U 2 1 0 9 P R I N T # 1 , " B - A 1 0 1 0 C L O S E1 1 C L O S E1 0 0 0 D A T A 6 7 , 6 6 , 7 7 , 0 , 0 , 0 , 0 ,1 0 1 0 D A T A 1 3 , 4 0 , 6 7 , 4 1 , 3 2 , 4 9 , 5 7 , 5 6 , 5 3 , 3 2 , 6 61 0 2 0 D A T A 8 9 , 3 2 , 6 5 , 6 6 , 6 5 , 6 7 , 8 5 , 8 3 , 3 21 0 3 0 D A T A1 0 4 0 D A T A 7 2 , 6 9 , 7 6 , 7 6 , 7 91 0 5 0 D A T A1 0 6 0 D A T A 1 6 2 , 2 , 1 8 9 , 5 0 , 1 1 , 1 5 7 , 7 4 , 3 , 2 0 2 , 1 6 , 2 4 71 0 7 0 D A T A 1 6 9 , 3 , 1 3 3 , 2 0 8 , 9 6 , 8 2 , 2 1 3 , 1 3

T h a s s e m b l e r p r o g r a m ( d a t a i l i n e s 1 0 6 0 1 0 7 0 ) i a s f o l l o w s :

C o u n t e rL o o p L D t a b l e , X G e C h a r a c t e r

A n i K e y b o a r d B u f f e rO n e m o r e C h a r a c t e r ?Y e A m o u n t o c h a r a c t e r sI K e y b o a r d B u f f e rE n o R o u t i n e

T a b l e $ 5 2 , $ D 5 , $ 0 A S C I I f o R , S h i f t + UA n d R E T U R N

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

L D L D S T D E B P L D S T R T $ 5 2 ,

# $ 0 2t a b l e , X$ 0 3 4 A , XL o o p# $ 0 3$ D

$ D 5 ,

2 3

Page 248: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 248/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

A f t e r y o h a v e m o d i f i e d y o u r d i s k w i t h t h a b o v e p r o g r a m , c a l l t h b o o t - c a l l r o u t i n e a g a i n o r r e s e t y o u r c o m p u t e r . T h t e x t w i l l b o u t p u t ,b u t h e n y o r e c e i v e " F I L E N O F O U N D " m e s s a g e . O c o u r s e , t h i s i b e c a u s e t h f i l e n a m e " H E L L O " i n o o t h d i s k . W h a t c o u l d" H E L L O " p r o g r a m l o o k l i k e ? L i k e t h i s f o e x a m p l e :

1 P R I N T C H R $ ( 1 4 7 )2 P R I N T " E N T E R C H O I C E : "3 P R I N T : P R I N T " ( 1 ) D I R E C T O R Y "4 P R I N T : P R I N T " ( 2 ) L O A D P R O G R A M "5 P R I N T : P R I N T " ( 3 ) D I S C - O P E R A T I O N "6 P R I N T : P R I N T : P R I N T " ( 4 ) F I N I S H "7 G E T K E Y A $ A = V A L ( A $ )8 O G O T O 1 0 0 , 2 0 0 , 3 0 0 , 4 0 09 G O T O 7 1 0 P R I N T C H R $ ( 1 4 7 )1 1 D I R E C T O R Y1 2 P R I N T : P R I N T " - P R E S S A N Y K E T O C O N T I N U E - "1 3 G E K E A $ G O T O 1 2 0 P R I N T C H R $ ( 1 4 7 )2 1 I N P U T " N A M E O F P R O G R A M " - , N A $2 2 L O A D N A $ , 8 , 13 0 P R I N T C H R $ ( 1 4 7 )3 1 I N P U T " C O M M A N D " - , B F $3 2 O P E N 1 , 8 , 1 53 3 P R I N T # 1 , B F $3 4 C L O S E3 5 G O T O 1 4 0 P R I N T C H R $ ( 1 4 7 )4 1 P R I N T " A R E Y O S U R E ( Y / N ) ? "4 2 G E T K E Y A $ I A $ = " N " T H E N 1 4 3 I A $ O " Y " T H E N 4 2

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

2 3

Page 249: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 249/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o r t h e C - 1 2 8

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

T h r e s p e c t i v e d a t a h a t b i s e q u e n c e o t h d i s c ( s t a r t i n g a t r a c k 1 s e c t o r 1 a n i l o a d e d i t h m e m o r y i s e q u e n c e . T h b y t e s t h a td e t e r m i n e t h i s l o a d i n g a r t h e b y t e s o b l o c k t r a c k 1 s e c t o r ( s e ea b o v e ) .

N d o u b t t h i s r o u t i n e w i l l b u s e d v e r y o f t e n , p r o b a b l y b e v e r yc o m m e r c i a l p r o g r a m w r i t t e n f o r t h e C - 1 2 8 . B u y o c a u s i f o y o u ro w p u r p o s e s .

1 0 . 2 . A U T O S T A R T B Y C A R T R I D G E

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

1 I i u s e r f r i e n d l y ; t h u s e r d o e s n ' t h a v e t e n t e r i n c o n v e n i e n tS Y c o m m a n d s .

2 T h c a r t r i d g e i h a r d e r t c o p y .

B u h o d o e s t h i s a u t o s t a r t w o r k ? I t h C - 6 4 i w o r k e d a f o l l o w s .

W h e n t h c o m p u t e r w a r e s e t i e x a m i n e d t h m e m o r y l o c a t i o n s $ 8 0 0 4$ 8 0 0 8 . I i f o u n d t h A S C I I v a l u e s o t h c h a r a c t e r s e q u e n c e " C B M 8 0 " ,i d i a i n d i r e c t j u m p t o t h e a d d r e s s p o i n t e d t i $ 8 O O O / $ 8 O O 1 ; w h i c hm e a n s i c a l l e d t h c o n t e n t s o $ 8 0 0 0 a s t h e l o b y t e o t h a d d r e s s a n

2 3

Page 250: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 250/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

t h c o n t e n t s o $ 8 0 0 1 a s t h e h i g h b y t e . T h e n t h c o m p u t e r j u m p e d t t h i sa d d r e s s .

T h C - 1 2 8 w o r k s a b o u t t h s a m e . A f t e r r e s e t , t h c o m p u t e r j u m p s t s u b p r o g r a m t h a t c o m p a r e s s o m e b y t e s w i t h f i x e d v a l u e s . Y o w i l l f i n dt h i s r o u t i n e i m e m o r y f r o m $ E 1 F O - $ E 2 4 1 :

E 1 F 0E 1 F 2E 1 F 4E 1 F 6E 1 F 8E 1 F AE 1 F DE 1 F FE 2 0 1E 2 0 4E 2 0 7E 2 0 9E 2 0 AE 2 0 CE 2 0 EE 2 1 0E 2 1 2E 2 1 4E 2 1 6E 2 1 8E 2 1 BE 2 1 EE 2 1 FE 2 2 1E 2 2 4E 2 2 6E 2 2 9E 2 2 BE 2 2 DE 2 3 0E 2 3 3E 2 3 5

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

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

# $ F 5# $ F F$ C $ C # $ C 3$ 0 2 A A# $ 0 2# $ 7 F$ 0 2 A 2$ E 2 C 4 , Y$ E 2 2 4$ E 2 0 1# $ F 8# $ F F$ C $ C # $ 0 1# $ 7 F$ 0 2 A 2$ 0 0 0 2 , Y$ E 2 1 8( $ 0 0 0 2 )

# $ 4 0$ F F O O# $ 2 4# $ E 2$ F F F 8$ F F F 9# $ 0 3$ E 2 C 3 , X

2 4

Page 251: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 251/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

E 2 3 8 S T A $ F F F 4 , XE 2 3 B D E XE 2 3 C B N E $ E 2 3 5E 2 3 E S T X $ F F 0 0E 2 4 1 R T S

F i r s t t h v e c t o r a ( $ C 3 / $ C 4 ) p o i n t s t a d d r e s s $ F F F 5 . T h e n i j u m p s t r o u t i n e w h i c h c a l l s a n a d d r e s s f r o m a n b a n k . H e r e i c a l l s t h

c o n t e n t s o a d d r e s s $ F F F 7 i B a n k 1 T h i s b y t e w i l l b c o m p a r e d w i t ht h c o n t e n t o a d d r e s s $ E 2 C 6 . I t h e s e t w b y t e s n o i d e n t i c a l i j u m p s t a d d r e s s $ E 2 2 4 . I t h e y a r e e q u a l , i t e s t s t h n e x t b y t e s . T h f o l l o w i n ga d d r e s s e s a r c o m p a r e d :

$ F F F 5 w i t h $ E 2 C 4 $ 4 ( = " C " )$ F F F 6 w i t h $ E 2 C 5 $ 4 ( = " B " )$ F F F 7 w i t h $ E 2 C 6 : $ 4 ( = " M " )

S o , u n l i k e t h C - 6 4 , o n l y t h r e e b y t e s a r t e s t e d , w h i c h a r e n o u g h .T h e s e t h r e e b y t e s e q u a l t h s t r i n g " C B M " , w h i c h i a l s o u s e d i t h a u t o s t a r t r o u t i n e o t h d i s k d r i v e . I t h e s e a r i d e n t i c a l , y o c a l l t h c o n t e n t s o t h a d d r e s s e s $ F F F 8 a n $ F F F 9 a n s t o r e i i t h a d d r e s s$ 0 0 0 2 a n $ 0 0 0 3 . O v e r t h i s v e c t o r a i n d i r e c t j u m p i c a r r i e d o u t . T e x e c u t e a a u t o s t a r t , t h f o l l o w i n g b y t e s m u s t b a s s i g n e d a f o l l o w s :

$ F F F 5 : $ 4 ( " C " )$ F F F 6 : $ 4 ( " B " )$ F F F 7 : $ 4 D ( " M " )

$ F F F 8 : L o w - B y t e d e t e r m i n e d j u m p a d d r e s s$ F F F 9 : H i g h - B y t e d e t e r m i n e d j u m p a d d r e s s

2 4

Page 252: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 252/322

A t o a c a n s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h r o u t i n e j u m p e d t o i n c a s e o a e r r o r m u s t b i B a n k 1 5 J u m p i n gt r o u t i n e a $ A 0 0 0 i t h R A o B a n k d o e s n ' t w o r k , b e c a u s e t h B A S I C i n t e r p r e t e r i i B a n k 1 5 B u y o c a j u m p t a r o u t i n e i t h c a s s e t t e b u f f e r , w h i c h i s h a r e d b t h e r e s p e c t i v e m e m o r y c o n f i g u r a t i o n .

H e r e i s h o r t e x p l a n a t i o n b e f o r e w s h o w s o m e e x a m p l e s o t h u s e s o t h c a r t r i d g e a u t o s t a r t . W h e n t h b y t e s a r n o t e q u a l y o d o n ' t j u m p t B A S I C a s i n t h C - 6 4 .

A a d d r e s s $ E 2 2 4 t h f i r s t t w i n s t r u c t i o n s s e l e c t t h m e m o r yc o n f i g u r a t i o n f o B a n k 1 5 T h o n l y d i f f e r e n c e i t h a t y o s e l e c t R A B a n k i n s t e a d o R A B a n k ( r e m e m b e r : R A B A N K 1 t u r n s o a l t h s y s t e m R O M s ) . T h e n y o s t o r e t h f o l l o w i n g v a l u e s i t h a d d r e s s e s$ F F F 5 $ F F F 9 :

$ F F F 5 : $ 4 ( " C " )$ F F F 6 : $ 4 ( " B " )$ F F F 7 : $ 4 D ( " M " )$ F F F 8 : $ 2 $ F F F 9 : $ E

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

N o t a k e l o o k a t h e s e b y t e s : e n t e r t h e m o n i t o r a n e n t e r 1 F F F 5 .A y o c a s e e , t h a d d r e s s e s $ F F F 5 $ F F F 9 a r a s s i g n e d w i t h t h v a l u e s a b o v e . N o e n t e r y o u r o w a d d r e s s f o r t h e a u t o s t a r t : c h a n g eb y t e $ 2 t $ 4 D . N o c h a n g e b y t e $ E t $ F F . Y o n o w i l l j u m p t a d d r e s s $ F F 4 D i n s t e a d o a d d r e s s $ E 2 2 4 w h e n r e s e t o c c u r s . T h i s

2 4

Page 253: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 253/322

Page 254: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 254/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o r t h e C - 1 2 8

L D # $ 0 2 / C o u n t e rL o o p L D t a b l e , X ; G E T C H A R A C T E R

S T $ 0 3 4 A , X ; I t h K e y b o a r d B u f f e rD E ; O n e m o r e C h a r a c t e r ?B P L o o p ; Y e sL D # $ 0 3 / N u m b e r o c h a r a c t e r sS T $ D ; I t h K e y b o a r d B u f f e rR T

T a b l e $ 5 2 , $ D 5 , $ 0 D / A S C I I f o r R , S H I F T + U; A n d R E T U R N

2 4

Page 255: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 255/322

C H A P T E R 1

Page 256: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 256/322

Page 257: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 257/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

C - 1 2 8 M E M O R Y

1 1 . 1 I M P O R T A N T A D D R E S S E S

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

s t a n d a r d B A S I C c o m m a n d s a l l o w — w i t h o u t u s i n g m a c h i n e l a n g u a g e . T h k e i t h z e r o p a g e , w h i c h i m a d e u o t h f i r s t 2 5 m e m o r y l o c a t i o n s .T h e y c o n t a i n l o o p o i n t e r s a n a d d r e s s e s u s e d b t h o p e r a t i n g s y s t e m .M o d i f y i n g t h e s e p o i n t e r s a n a d d r e s s e s w i l l l e y o c r e a t e y o u r o w s p e c i a lo p e r a t i n g s y s t e m , a l l o w i n g y o t d t h i n g s n o p o s s i b l e w i t h n o r m a lB A S I C c o m m a n d s .

T h C o m m o d o r e 1 2 h a s e v e r a l z e r o p a g e s , b e c a u s e i t o p e r a t i n g s y s t e mi m o r e c o m p l e x t h a n t h o s e u s e d b p r e v i o u s C o m m o d o r e c o m p u t e r s .

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

B e s i d e t h a d d r e s s e s o t h C - 1 2 8 y o w i l l f i n d t h c o r r e s p o n d i n g C - 6 4a d d r e s s e s i p a r e n t h e s i s . T h i s m e a n s y o u c a t r a n s l a t e y o u r o l C - 6 4p r o g r a m s t t h n e C - 1 2 8 . B o t h m o d e s a r f a i r l y c o m p a t i b l e .

H e r e a r s o m e i n t e r e s t i n g m e m o r y l o c a t i o n s a n t h e i r f u n c t i o n s .

2 4

Page 258: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 258/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

( d e c i m a l l o c a t i o n ) ( c o m m e n t )4 4 ( 4 3 - 4 4 ) B A S I C S t a r t ( B a n k O

T h i s m e m o r y l o c a t i o n c o n t a i n s t h s t a r t a d d r e s s o w h e r e t h B A S I Cp r o g r a m s a r s t o r e d i t h m e m o r y ( i L o w - b y t e / H i g h - b y t e f o r m u l a ,B a n k O ) T h c o m m a n d :

P R I N T P E E K ( 4 5 ) + 2 5 6 * P E E K ( 4 6 )

p r i n t s t h i s a d d r e s s . Y o c a a l s o m o v e t h s t a r t - o f - B A S I C a d d r e s s .T d t h a t t y p e :

P O K E 4 5 f l o : P O K E 4 6 h i : P O K E ( l o + 2 5 6 * h i ) - 1 , 0 : N E W

T h i s c o m m a n d s e q u e n c e h a t b e n t e r e d i d i r e c t m o d e , l a n h a r t h l o w - b y t e / h i g h - b y t e f o r t h e n e s t a r t a d d r e s s . T h e s e b y t e s a r c a l c u l a t e d a f o l l o w s :

H I = I N T ( a d d r e s s / 2 5 6 ) : L O = a d d r e s s - ( 2 5 6 * H I )

Y o e r a s e t h p r o g r a m i t h m e m o r y i y o s h i f t t h s t a r t o B A S I C .R e m e m b e r t h a t y o u s u a l l y c a n ' t s h i f t t h s t a r t - o f - B A S I C . T h i sm e m o r y a r e a i r e s e r v e d f o r t h e o p e r a t i n g s y s t e m !

4 4 ( 4 5 - 4 6 ) V A R I A B L E S t a r t ( B a n k 1

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

2 4

Page 259: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 259/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

5 6 ( 5 7 - 5 8 ) C u r r e n t B A S I C - L i n e N u m b e r

T h c u r r e n t B A S I C l i n e n u m b e r i s t o r e d i t h e s e b y t e s . T h e r e f o r et h r e a d o u t o f t h e s e a d d r e s s e s m a k e s s e n s e o n l y i t h p r o g r a mm o d e :

1 P R I N T " T h i s l i n e # " ; P E E K ( 5 9 ) + 2 5 6 * P E E K ( 6 0 ) ;" i u s e ! "

6 6 ( 6 3 - 6 4 ) C u r r e n t D A T A l i n e n u m b e r

T h i s p o i n t e r i i n t e r e s t i n g i y o u s t h c o m m a n d s R E A D a n D A T Ai y o u r p r o g r a m s . I c o n t a i n s t h l i n e n u m b e r o t h l i n e w h e r e y o R E A D t h l a s t D A T A e l e m e n t ; t h f o l l o w i n g p r o g r a m d e m o n s t r a t e st h i s :

1 R E A D A I A = T H E N E N 2 P R I N T " T H E E L E M E N T I I L I N E " 3 P R I N T P E E K ( 6 5 ) + 2 5 6 * P E E K ( 6 6 ) ; " ! "4 G O T O 1 5 D A T A 3 , 6 , 4 , 8 , 4 , 6 , 2 ,5 D A T A 3 3 , 6 , 4 , 2 , 4 , 2 , 4 ,9 R E T E S T P R O G R A M

1 6 D A T A 3 , 7 , 4 , 9 , 6 , 0 , 0 ,1 9 D A T A 5 , 7 , 5 , - 1

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

2 4

Page 260: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 260/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 R E A D A $ : I F A S C ( A $ ) < 5 0 O A S C ( A $ ) > 6 0 T H E N 1 0 0 02 A = V A L ( A $ ) : I F A = - l T H E N E N 3 P R I N T A , : G O T O 1 4 D A T A 4 , 3 , 7 , 5 4 , 3 , 5 , 2 , 4 4 45 D A T A 3 , 5 6 5 6 , a , 3 , d , 4 , 2 , 2 , 2 , : R E M E r r o r l i n e6 D A T A 4 , 6 , 3 , 5 , 6 ,7 1 0 0 0 R E M E R R O R M E S S A G E1 0 1 0 P R I N T " I N L I N E " ; P E E K ( 6 5 ) + 2 5 6 * P E E K ( 6 6 ) ;1 0 2 0 P R I N T " E R R O R F O U N D . O N L Y N U M B E R S " 1 0 3 0 P R I N T " A R E A L L O W E D ! 1 0 4 0 P R I N T " C H A N G E T H I S ! " : E N D

2 0 ( 1 9 8 ) N u m b e r o k e y s p r e s s e d

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

P O K E 2 0 8 , 0

c l e a r s t h k e y b o a r d b u f f e r .

2 1 ( 2 0 3 ) K e y b o a r d r e a d i n g

T h v a l u e o t h k e a c t u a l l y p r e s s e d i s t o r e d i t h i s a d d r e s s . I h a t h v a l u e 8 i n k e i p r e s s e d .

1 P R I N T C H R $ ( 1 4 7 ) ;2 P R I N T P E E K ( 2 1 3 ) : G O T O 1

p r i n t s t h v a l u e o t h k e p r e s s e d .

2 5

Page 261: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 261/322

Page 262: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 262/322

A b a c u s S o f t w a r e

1 1

B l a c kL i g h t b l u eG r e yL i g h t r e B r o w nW h i t e

1 1

T r i c k s a n

G r e yG r e e n

: C y a nD a r k v i o l e tY e l l o w

( O n l y f o

1 1

0 - c o l u m

T i p s f o t h C - 1 2 8

: B l u eL i g h t g r e e n

: R e dV i o l e tG r e y

i s c r e e n )

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

1 B l a c k2 R e d , B l u e , B r o w n , G r e y3 V i o l e t , O r a n g e , L i g h t r e d , G r e y 2 L i g h t b l u e4 T u r q u o i s e , Y e l l o w , L i g h t g r e e n , G r e y5 W h i t e

T h 8 0 - c o l u m n s c r e e n h a a d d i t i o n a l f e a t u r e s . T h b i t s 4 - h a v e t h f o l l o w i n g f u n c t i o n s :

B i 4 F l a s h i n gB i t 5 - . U n d e r l i n eB i 6 R e v e r s eB i : 2 n d s e o c h a r a c t e r s

B i t s a n o n l y a f f e c t t h n e x t P R I N T s t a t e m e n t a f t e r t h P O K Ec o m m a n d .

P O K E 2 4 1 , 1 5 + 2 M P R I N T " T E S T "

2 5

Page 263: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 263/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

P u t s w h i t e , f l a s h i n g " T E S T 1 o t h e s c r e e n .

P O K E 2 4 1 , 2 + 2 A 5 + 2 A 7 P R I N T " H E L L O "

T h a b o v e p r i n t s b l u e - u n d e r l i n e d " H E L L O " . T h i s m e a n s y o u c a m i t h d i f f e r e n t f u n c t i o n s ! T h f u n c t i o n s " r e v e r s e " ( b i t 6 a n d " 2 n ds e o c h a r a c t e r s " ( b i t 7 a r c o n s t a n t f u n c t i o n s ; t h e y r e f e r t a l f o l l o w i n g P R I N T o r d e r s a n t t h d i r e c t m o d e . R V S - m o d e l i k et h i s c a n n o t b t u r n e d o f b C R T L + 9 !

2 4 ( 1 9 9 ) R V S - F l a g

C o r r e s p o n d i n g t a d d r e s s 2 4 1 , t h i s a d d r e s s d e t e r m i n e s t h k i n d o fc h a r a c t e r s t h a t a r t b s h o w n o t h s c r e e n . R e v e r s e o n o r m a l( t h e r e i a l s o c o n t r o l - c h a r a c t e r f o t h i s ) . n o r m a l , r e v e r s e :

1 P O K E 2 4 3 , 0 : P R I N T " N O R M A L a n d2 P O K E 2 4 3 , 1 : P R I N T R E V E R S E ! "

2 4 ( 2 1 2 ) Q u o t e - M o d e - F l a g

Q u o t e - m o d e m e a n s c o n t r o l - c h a r a c t e r s a r n o a c t i v e b e t w e e nq u o t a t i o n m a r k s , b u i n s t e a d d i s p l a y c o n t r o l c h a r a c t e r s o t h s c r e e n .I y o t u r n t h e q u o t e - m o d e o ( = 1 ) t h f o l l o w i n g c o n t r o l c h a r a c t e r s i

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

2 5

Page 264: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 264/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

P O K E 2 4 4 , P R I N T " { 3 c r s r d w n s } { r v s o n } H E L L O !

2 4 ( 6 5 7 ) C = / S H I F T S t o p - F l a g , C R T L - S

Y o k n o w h o t c h a n g e t h c h a r a c t e r s e b p r e s s i n g t h e < S H I F T >k e a n t h C o m m o d o r e k e ( < C = > ) . Y o c a a l s o d t h i s w h i l e ap r o g r a m i b e i n g e x e c u t e d . I d o e s n ' t d i s t u r b t h e r u n n i n g p r o g r a m ,o n l y w h a t y o s e o t h s c r e e n . T h i s c a b d i s a b l e d :

P O K E 2 4 7 , 1 2 8 ( l o c k e d )P O K E 2 4 7 , 0 ( n o r m a l )P O K E 2 4 7 , 6 4 ( d i s a b l e C T R L - S )

2 4 ( — S c r o l l i n g S t o p - F l a g

O n c e y o h a v e r e a c h e d t h l o w e s t s c r e e n - l i n e a n p r i n t o t h n e x tl i n e , t h s c r e e n c o n t e n t s a r s h i f t e d o n r o u p Y o c a e l i m i n a t et h i s e f f e c t :

P O K E 2 4 8 , 1 2 ( S c r o l l i n g o f f )P O K E 2 4 8 , ( N o r m a l )

2 4 ( — B e e p - T o n e S t o p - F l a g

H e r e i i p o s s i b l e t d i s a b l e t h e b e e p - t o n e . I i g e n e r a t e d b y

P R I N T C H R $ ( 7 ) ( P r o g r a m - m o d e ) o rC T R L + G ( D i r e c t - m o d e )

2 5

Page 265: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 265/322

Page 266: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 266/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 0 2 4 - 2 0 2 3 ( 1 0 2 4 - 2 0 2 3 ) 4 0 - C o l u m n S c r e e n M e m o r y

T h e s e 1 0 0 0 b y t e s c o n t a i n t h 4 0 - c o l u m n s c r e e n . T h i s a r e a i n o u s e di y o w o r k w i t h a 8 0 - c o l u m n s c r e e n ; y o c a u s i f o o w m a c h i n el a n g u a g e p r o g r a m s . O t h e r w i s e :

P O K E 1 0 2 4 + 4 Y , X = C o l u m nY = R o wZ = C h a r a c t e r - c o d e

p l a c e s c h a r a c t e r o t h 4 0 - c o l u m n s c r e e n .

2 5 9 2 ( 6 4 9 ) M a x i m u m L e n g t h o f t h e K e y b o a r d - B u f f e r

T h l e n g t h o t h k e y b o a r d - b u f f e r i d e f i n e d w i t h t h i s a d d r e s s .

P O K E 2 5 9 2 , 0 ( t u r n s o f t h b u f f e r , k e y s a r n l o n g e r s t o r e d )P O K E 2 5 9 2 , 1 0 ( n o r m a l )

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

2 5 9 3 ( — C T R L - S F l a g

r u n n i n g p r o g r a m s t o p s w h e n < C T R L - S > i p r e s s e d , a n c o n t i n u e sw h e n a n o t h e r k e i p r e s s e d . M a n y l a r g e r c o m p u t e r s h a v e t h i sf u n c t i o n . I t i s v e r y u s e f u l i y o o n l y w a n t t o i n t e r r u p t t h p r o g r a m

2 5

Page 267: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 267/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

f o s h o r t w h i l e t h a v e c l o s e r l o o k ( o h a v e q u i c k b r e a k f a s t ) .B u y o c a u s t h i s a d d r e s s i c o m p l e t e l y d i f f e r e n t w a y . Y o s i m u l a t e t h < C T R L - S > . T h p r o g r a m s t o p s a n w a i t s f o r t h e n e x tk e p r e s s e d .

1 P R I N T " P R E S S A N K E 2 P O K E 2 5 9 3 , 13 P R I N T " O K "

2 5 9 4 ( 6 5 0 ) R E P E A T - F l a g

T h C - 1 2 8 h a R E P E A T - f u n c t i o n f o a l k e y s . T h i s m e a n s i y o d e p r e s s k e f o s h o r t p e r i o d o f t i m e t h c h a r a c t e r w i l l b p r i n t e dc o n t i n u o u s l y .

P O K E 2 5 9 4 f ( s p a c e b a a n c u r s o r k e y s )P O K E 2 5 9 4 , 6 4 ( n k e y s w i t h r e p e a t f u n c t i o n )P O K E 2 5 9 4 , 1 2 8 ( n o r m a l )

2 5 9 5 ( 6 5 1 ) R E P E A T - d e l a y

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

P O K E 2 5 9 5 , XX = d e l a y t i m e

2 5

Page 268: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 268/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 5 9 8 ( — V I C u r s o r - M o d e

T h i s a d d r e s s c o n t r o l s t h e f l a s h o t h c u r s o r , b u o n l y t h c u r s o rc o n t r o l l e d b V I c h i p . T h i s m e a n s t h a d d r e s s w i l l w o r k o n l y i 4 0 - c o l u m n m o d e .

B i 6 l = s o l i dO = f l a s h

P O K E 2 5 9 8 , 0 ( C u r s o r f l a s h e s , n o r m a l )P O K E 9 8 6 ( C u r s o r d o e s n ' t f l a s h )

2 5 9 9 ( 2 0 4 ) V I C u r s o r o n / o f f - F l a g

T h i s a d d r e s s w o r k s o n l y w i t h t h 4 0 - c o l u m n s c r e e n . Y o c a a c t i v a t et h c u r s o r w i t h t h i s a d d r e s s . T h f o l l o w i n g d e m o n s t r a t e s w h a t y o c a d w i t h t h i s a d d r e s s :

B i l = C u r s o r o 0 = C u r s o r f l a s h

1 P O K E 2 5 9 9 , 0 : R E M C U R S O R O 2 P R I N T " H E L L O ! " ;3 F O T = T 5 0 0 0 : N E X T4 P R I N T " T H A T ' S I T ! "5 E N

T h i s c a b u s e d e f f e c t i v e l y w i t h t h c o m m a n d G E T K E Y . T h i sc o m m a n d w a i t s f o k e p r e s s a n t h e n s t o r e s t h c h a r a c t e r . I i d i f f e r e n t f r o m t h I N P U T c o m m a n d i t h a t t h c u r s o r d o e s n o f l a s ht g e t h u s e r ' s a t t e n t i o n . H e r e i a e x a m p l e :

2 5

Page 269: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 269/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 P O K E 2 5 9 9 ,2 G E T K E Y A 3 ( . . . )

T h i s w o r k s w i t h t h G E c o m m a n d t o o .

2 6 0 3 ( — V D C u r s o r - M o d e

Y o c a i n f l u e n c e t h c u r s o r o t h 8 0 - c o l u m n s c r e e n a a d d r e s s2 5 9 8 . T h b i t s o t h i s a d d r e s s m e a n :

B i l = s o l i dB i 2 - D i s p l a y i p i x e l r o w sB i 4 - C u r s o r o f B i l = f l a s h

P O K E 2 6 0 3 , 2 A 0 + 2 A l + 2 A 2

T h i s a c t i v a t e s t h u n d e r l i n e c u r s o r . T h t h i c k n e s s o t h c u r s o rd e p e n d s o t h b i t s 2 a n d 3

2 6 0 4 ( — V I P o i n t e r t S c r e e n - R A M c h a r a c t e r s e

T h c o n t e n t o t h i s a d d r e s s a r e t r a n s f e r r e d a u t o m a t i c a l l y t a d d r e s s5 3 2 7 2 o t h V I C . T h c o n t e n t s d e t e r m i n e t h s t a r t a d d r e s s e s o t h s c r e e n - R A M s a n t h c h a r a c t e r g e n e r a t o r .

2 5

Page 270: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 270/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

2 6 0 6 ( 6 4 8 ) V D H i g h - B y t e o f t h e s c r e e n R A M s

T h i s a d d r e s s i r e s p o n s i b l e f o t h 8 0 - c o l u m n s c r e e n a g a i n . H e r e y o c a s h i f t t h s c r e e n - m e m o r y w i t h t h r e g i s t e r s 1 a n 1 o t h V D C .

2 6 0 7 ( - - ) V D H i g h - B y t e o t h e c o l o r m e m o r y ( a t t r i b u t e - R A M )

T h H i g h - B y t e o t h 8 0 - c o l u m n a t t r i b u t e - R A M i s t o r e d h e r e . I t i sr e l a t e d t t h p r e v i o u s a d d r e s s b e c a u s e y o c a m o v e t h c o l o r - m e m o r y i t h 8 0 - c o l u m n m o d e .

2 6 1 9 ( 6 4 8 ) V I H i - B y t e o t h s c r e e n R A M s

T h i s a d d r e s s h a t h s a m e f u n c t i o n a t h a d d r e s s 2 6 0 6 a t h V D C .Y o f i n d t h s t a r t a d d r e s s o t h 4 0 - c o l u m n s c r e e n - R A M h e r e .

2 8 1 6 - 3 3 2 7 ( 8 2 8 - 1 0 2 9 ) C a s s e t t e b u f f e r

T h i s r e l a t i v e l y l a r g e a r e a i u s e d b t h s y s t e m o n l y i y o w o r k w i t ht h e D a t a s e t t e . T h i s a r e a i n o u s e d i y o u s t h d i s k d r i v e . I o f f e r sr o o m f o m a c h i n e l a n g u a g e r o u t i n e s .

2 6

Page 271: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 271/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

4 0 9 6 - 4 1 0 5 ( — A s s i g n m e n t - l e n g t h o f t h e f u n c t i o n k e y s

E a c h o t h e s e t e b y t e s i r e s e r v e d f o o n o t h e t e n f u n c t i o n k e y s( < F l - 8 > , < H E L P > a n < S H I F T + R U N / S T O P > ) . T h l e n g t h o t h f u n c t i o n k e a s s i g n m e n t i s t o r e d i t h e s e b y t e s . S e t h c o r r e s p o n d i n g b y t e t z e r o i y o w a n t t t u r n o f t h a s s i g n m e n t o f af u n c t i o n k e ( f o r e x a m p l e : i y o u w a n t t r e a d k e i y o u r o w p r o g r a m ) .

P O K E 4 0 9 6 , 0 ( e r a s e s a s s i g n m e n t o f F l

4 6 2 4 - 4 6 2 5 ( 5 5 - 5 6 ) P o i n t e r p o i n t i n g t e n d - o f - B A S I C

T h h i g h e s t a d d r e s s o B A S I C p r o g r a m i s t o r e d i t h e s e b y t e s ( i b a n k O ) :

P R I N T P E E K ( 4 6 2 4 ) + 2 5 6 * P E E K ( 4 6 2 5 )

T h s i z e o y o u r p r o g r a m i e a s i l y d e t e r m i n e d :

P R I N T ( P E E K ( 4 6 2 4 ) + 2 5 6 * P E E K ( 4 6 2 5 ) ) -( P E E K ( 4 5 ) + 2 5 6 * P E E K ( 4 6 ) )

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

2 6

Page 272: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 272/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 1 . 2 . J U M P T A B L E

I m p o r t a n t t e v e r y m a c h i n e l a n g u a g e p r o g r a m m e r i s o l i d u n d e r s t a n d i n go t h o p e r a t i n g s y s t e m . T h i s a l l o w s h i m / h e r t c r e a t e s h o r t e r p r o g r a m s i t h l e a s t a m o u n t o t i m e . H e / s h e s i m p l y t a k e s p r e p a r e d r o u t i n e s , i n s t e a d o w r i t i n g t h e m . W d o n ' t w a n t t w r i t e s e c o n d C O M M O D O R E - 1 2 8I N T E R N A L S , b u w e l l c h o o s e s o m e p o p u l a r r o u t i n e s a n s h o w y o h o t u s t h e m .

T h e r e a r s e v e r a l j u m p c o m m a n d s w i t h p o w e r f u l r o u t i n e s i n c l u d e d i b o t ht h B A S I C i n t e r p r e t e r a n t h o p e r a t i n g s y s t e m s o t h C - 1 2 8 L e t ' s g t t h m o s t i m p o r t a n t a n b e s t k n o w n r o u t i n e s f i r s t :

1 1 . 2 . 1 K E R N A L

T h C - 1 2 8 , l i k e e v e r y o t h e r C o m m o d o r e c o m p u t e r , h a a K e r n a l j u m p t a b l ea t h e n o t h R O M . I p r o v i d e s e a s y a c c e s s t i m p o r t a n t k e r n a l r o u t i n e sa n a l l o w s q u i c k p r o g r a m c o n v e r s i o n s t o t h e r C o m m o d o r e c o m p u t e r s .T h i s t a b l e i g r e a t l y e x t e n d e d c o m p a r e d t t h C - 6 4 o V T C - 2 0 . W w a n t t i n t r o d u c e t h e s e c t i o n o t h t a b l e f r o m $ F F 4 D - $ F F 7 F .

T h e r e a r s o m e r o u t i n e s d e s i g n e d e x c l u s i v e l y f o t h C - 1 2 8 . T h e r e i s f o e x a m p l e , t h C - 6 4 - m o d e r o u t i n e t h a t t u r n s t h C - 1 2 8 i n t o C - 6 4 . T h e r e a r a l s o s o m e r o u t i n e s t r e a d d i f f e r e n t m e m o r y b a n k s .

2 6

Page 273: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 273/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

A n o t h e r i n t e r e s t i n g a s p e c t i t h a t C o m m o d o r e h a s a s s i g n e d b y t e w i t h t h v a l u e z e r o b e t w e e n t h o l a n n e k e r n a l t a b l e ( $ F F 8 0 ) . T h i s i t h n u m b e r o t h K e m a l t a b l e . T h e r e i a l s o n e a d d r e s s d i r e c t l y i n f r o n t o t h a d d r e s s e s f o N M I , R e s e t a n t h I R Q . T h i s a d d r e s s , a $ F F F 8 / $ F F F 9 ,p o i n t s t a d d r e s s $ E 2 2 4 a n i c a l l e d C - 1 2 8 m o d e . L e t ' s e x a m i n e t h s e c r e t s o t h n e j u m p t a b l e .

K e r n a l - a d d r e s s : $ F F 4 D ( 6 5 3 5 7 )N a m e : C 6 4 M O D ER e a l j u m p - a d d r e s s : $ E 2 4 B ( 5 7 9 3 1 )F u n c t i o n : T r a n s f o r m s t h C - 1 2 8 i n t o t h C - 6 4

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

K e r n a l a d d r e s s : $ F F 5 0 ( 6 5 3 6 0 )N a m e : D M A - C A L LR e a l j u m p a d d r e s s : $ F 7 A 5 ( 6 3 3 9 7 )F u n c t i o n : a c c e s s t o t h e D M A - c o n t r o l l e r

Y o c a c o n t r o l t h D M A - c o n t r o l l e r ( D i r e c t M e m o r y A c c e s s ) w i t ht h i s r o u t i n e . T h i s r o u t i n e b e c o m e s i n t e r e s t i n g w i t h v e r s i o n s o t h C - 1 2 8 w i t h m o r e t h a n 1 2 8 K R A M , b e c a u s e i w o r k s o n l y w i t h t h e x t e n d e d R A M .

2 6

Page 274: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 274/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

K e r n a l - a d d r e s s : $ F F 5 3 ( 6 5 3 6 3 )N a m e : B O O T - C A L LR e a l j u m p - a d d r e s s : $ F 8 9 0 ( 6 3 6 3 2 )F u n c t i o n : L o a d a n s t a r t p r o g r a m f r o m d i s k

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

K e r n a l - a d d r e s s : $ F F 5 6 ( 6 5 3 6 6 )N a m e : P H O E N I XR e a l j u m p - a d d r e s s : F 8 6 7 ( 6 3 5 9 1 )F u n c t i o n : S t a r t e x t e r n a l - R O M ' s

Y o c a s t a r t e x t e r n a l R O M ' s ( c a r t r i d g e s ) w i t h t h i s r o u t i n e .I m m e d i a t e l y a f t e r P H O E N I X i d o n e , i j u m p s t t h B O O T - C A L Lr o u t i n e . T h i s r o u t i n e i a l s o c a l l e d w i t h a r e s e t

K e r n a l - a d d r e s s : $ F F 5 9 ( 6 5 3 6 9 )N a m e : L K U P L AR e a l j u m p - a d d r e s s : $ F 7 9 D ( 6 3 3 8 9 )F u n c t i o n : G e t s e n t r y f o f i l e n u m b e r

I y o c a l l t h i s r o u t i n e y o e n t e r t h f i l e n u m b e r i t h a c c u m u l a t o ra n y o g e b a c k :

A c c u m u l a t o r : F i l e n u m b e rX - R e g i s t e r : D e v i c e a d d r e s sY - R e g i s t e r : S e c o n d a r y a d d r e s s

2 6

Page 275: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 275/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

I r e t u r n s w i t h a s e C a r r y - F l a g i t h f i l e n u m b e r w a s n o f o u n d .O t h e r w i s e t h i s R a i r e s e t . T h i s r o u t i n e u s e s a d i f f e r e n t r o u t i n e a $ F 2 0 2 . T h i s r o u t i n e l o o k s t s e i g i v e n f i l e n u m b e r a l r e a d y e x i s t si t h X - R e g i s t e r . I r e t u r n s w i t h r e s e t Z e r o - R a g i t h f i l e n u m b e ra l r e a d y e x i s t s . O t h e r w i s e t h Z e r o - R a g i s e t .

K e r n a l - a d d r e s s : $ F F 5 C ( 6 5 3 7 2 )N a m e : L K U P S AR e a l j u m p - a d d r e s s : $ F 7 8 6 ( 6 3 3 6 6 )F u n c t i o n : L o o k u p s e c o n d a r y - a d d r e s s

T h i s f u n c t i o n i c o m p a r a b l e t t h l a s t o n e . B u t h s e c o n d a r y - a d d r e s s i i n t h e Y - R e g i s t e r . T h i s r o u t i n e d o e s n o l o o k f o s e v e r a l e q u a l f i l e s w i t h t h s a m e s e c o n d a r y - a d d r e s s . I l o o k s u t h e n t r y o t h f i r s t f o u n d f i l e b e l o n g i n g t t h s e c o n d a r y - a d d r e s s . A f t e rt h r e t u r n , a l t h r e e r e g i s t e r s c o n t a i n t h s a m e v a l u e s a t h r o u t i n eb e f o r e :

A c c u m u l a t o r : F i l e n u m b e rX - R e g i s t e r D e v i c e a d d r e s sY - R e g i s t e r S e c o n d a r y a d d r e s s

T h f l a g s a r s e t h s a m e w a y .

2 6

Page 276: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 276/322

Page 277: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 277/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h G - 1 2 8

s t o r e d t h e s c r e e n - v a l u e s f o r t h e s c r e e n n o c u r r e n t l y b e i n g u s e d( c u r s o r p o s i t i o n , i n s e r t - m o d e - f l a g , q u o t e - m o d e - f l a g , e t c . ) . T h r o u t i n e c o n t i n u e s i t h s a m e m a n n e r w h e n y o l e a v e t h e c u r r e n ts c r e e n t s w i t c h b a c k t o t h e o t h e r s c r e e n . T r i o u t . G e i t h q u o t e - m o d e b e n t e r i n g q u o t a t i o n m a r k . P r e s s t h c u r s o r k e y sf e t i m e s . N o e n t e r E S C + X ( p r e s s s l o w l y , o n a f t e r t h o t h e r ) a n e n t e r s o m e t h i n g o t h o t h e r s c r e e n . N o c h a n g e b a c k t t h e o t h e rs c r e e n a n p r e s s t h e c u r s o r k e y s f e t i m e s . A y o c a s e e , y o a r s t i l l i t h q u o t e - m o d e . C h a n g e t t h o t h e r s c r e e n a n e n t e r :

P O K E D E C ( M 0 A 5 4 " ) , 0

G b a c k t o t h e r s c r e e n a n p r e s s c u r s o r k e y ; n c o n t r o l - c h a r a c t e ri p r i n t e d , b u t h c u r s o r m o v e s . W h y ? B e c a u s e t h a b o v e P O K E s e t st h q u o t e - m o d e - f l a g t z e r o . T h i s r e g i s t e r w a c o p i e d w h e n y o s w i t c h e d b a c k t t h o t h e r s c r e e n a n t h q u o t e - m o d e w a g o n e .T h e r e f o r e , y o c a p r e d e t e r m i n e w i t h P O K E s h o y o u r o t h e r s c r e e nw i l l l o o k a f t e r y o s w i t c h b a c k . A l s o , h a v e l o o k a t h a d d r e s s e s i t h d e s c r i p t i o n o t h z e r o p a g e ( $ E 0 - $ F A ) . W e l l g i v e y o a f o r m u l at c a l c u l a t e a a d d r e s s o t h c l o s e d s c r e e n i r e l a t i o n t t h o n i u s e :

n e a d d r e s s = o l d a d d r e s s + 4 2 0 0 ( f a n t a s t i c i s n f t i ?

L e t ' s g b a c k t t h S W A P P E R r o u t i n e . T h n e x t e i g h t c o m m a n d se x c h a n g e t w m o r e b l o c k s .

a $ 0 3 5 4 $ 0 3 5 E ( T a b - S t o p s ) w i t h $ 0 A 6 0 - $ 0 A 6 Ab $ 0 3 5 F $ 0 3 6 1 ( L i n e - l i n k s ) w i t h $ 0 A 6 B - $ A 6 D

2 6

Page 278: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 278/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

B e t w e e n t h a d d r e s s e s $ C D 5 0 - $ C D 5 5 t h s c r e e n i c h a n g e d .T h e r e f o r e b i 2 o $ D i i n v e r t e d a n t h i s e n d s t h r o u t i n e .

K e r n a l - a d d r e s s : $ F F 6 2 ( 6 5 3 7 8 )N a m e : D L C H RR e a l j u m p - a d d r e s s : $ C O 2 7 ( 4 9 1 9 1 )F u n c t i o n : I n i t i a l i z e t h V D c h a r a c t e r - g e n e r a t o r

T h i s r o u t i n e c o p i e s t h V D C ' s c h a r a c t e r - g e n e r a t o r s f o r 4 c o l u m n t t h a t f o 8 c o l u m n . T h c h a r a c t e r - g e n e r a t o r o t h V D d o u b l e s i t s i z e ( t 8 K b e c a u s e i c o p i e s e i g h t z e r o - b y t e s b e t w e e n e a c hc h a r a c t e r .

T h n e x t s e v e n r o u t i n e s a r e t h e m o s t i m p o r t a n t r o u t i n e s f o a c c e s s i n gd i f f e r e n t b a n k s .

K e r n a l - a d d r e s s : $ F F 6 8 ( 6 5 3 8 4 )N a m e : S E T B A KR e a l j u m p - a d d r e s s : $ F 7 3 F ( 6 3 2 9 5 )F u n c t i o n : V e r i f y t h b a n k f o S A V E L O A D V E R I F Y

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

$ F 7 3 F S T $ C b a n k n u m b e r , w h e r e t h p r o g r a m i l o c a t e d .$ F 7 4 1 S T $ C b a n k n u m b e r , w h e r e t h f i l e n a m e i l o c a t e d .$ F 7 4 3 R T

V e c t o r $ B $ B c o n t a i n t h a d d r e s s o t h f i l e n a m e s .

2 6

Page 279: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 279/322

Page 280: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 280/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

$ 0 0 0 6 : D e s i r e d a c c u$ 0 0 0 7 : D e s i r e d X - r e g i s t e r$ 0 0 0 8 : D e s i r e d Y - r e g i s t e r$ 0 0 0 9 : N u m b e r o t h c a l l i n g b a n k

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

$ 0 0 0 5 :$ 0 0 0 6 :$ 0 0 0 7 :$ 0 0 0 8 :$ 0 0 0 9 :

S t a t u sA c c uX - r e g i s t e rY - r e g i s t e rS t a c k - p o i n t e r

W h a t y o d w i t h t h e s e v a l u e s i u t y o u . Y o a l s o c a l o a d t h m e m o r y l o c a t i o n $ 0 0 0 6 i n t o t h X - r e g i s t e r a n s a v et r a n s f e r - c o m m a n d .

K e r n a l - a d d r e s s : $ F F 7 1 ( 6 5 3 9 3 )N a m e : J M P F A RR e a l j u m p - a d d r e s s : $ 0 2 E 3 ( 7 3 9 )F u n c t i o n : J u m p t b a n k

W i t h t h i s r o u t i n e j u m p t a n b a n k i e x e c u t e d . T h i s r o u t i n e i a l s ou s e d b J S R F A R . T h e r e f o r e t h c a l l i v e r y s i m i l a r :

$ 0 0 0 2 : N u m b e r o t h d e s i r e d b a n k$ 0 0 0 3 : H i g h - b y t e o f t h d e s i r e d a d d r e s s$ 0 0 0 4 : L o w - b y t e o t h d e s i r e d a d d r e s s

2 7

Page 281: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 281/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

$ 0 0 0 5 : D e s i r e d s t a t u s - r e g i s t e r$ 0 0 0 6 : D e s i r e d a c c u$ 0 0 0 7 : D e s i r e d X - r e g i s t e r$ 0 0 0 8 : D e s i r e d Y - r e g i s t e r

H e r e t h c a l l h a t b m a d e w i t h t h J M c o m m a n d

K e r n a l - a d d r e s s : $ F F 7 4 ( 6 5 3 6 9 )N a m e : I N D F E TR e a l j u m p - a d d r e s s : $ F 7 D 0 ( 6 3 4 4 0 )F u n c t i o n : G e b y t e f r o m a n b a n k

W i t h t h i s r o u t i n e y o c a g e t h c o n t e n t s o a n b a n k . C a l l t h r o u t i n e a s f o l l o w s :

$ 0 2 B 9 : L o w - b y t e o t h v e c t o r p o i n t i n g t t h d e s i r e d m e m o r yl o c a t i o n . T h e v e c t o r h a t b i n i t i a l i z e d ( i h a t c o n t a i n t h d e s i r e d a d d r e s s s p l i t i L o w - a n d H i g h - b y t e ) . T h i s v e c t o rm u s t b i n t h e z e r o p a g e ,

A c c u : B y t e , w h e r e y o w a n t t e n t e r t h d e s i r e d a d d r e s sX - R e g : N u m b e r o t h d e s i r e d b a n kY - R e g : O f f s e t t h a t i e v e n t u a l l y a d d e d t t h a d d r e s s ( n o r m a l l y z e r o ,

i y o d o n ' t a s f o a i n d e x ) .

2 7

Page 282: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 282/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

K e r n a l - a d d r e s s : $ F F 7 7 ( 6 5 3 9 9 )N a m e : I N D S T AR e a l a d d r e s s j u m p : $ F 7 D A ( 6 3 4 5 0 )F u n c t i o n : S t o r e s b y t e i a n b a n k

T h i s i t h o p p o s i t e o I N D F E T , T s t o r e b y t e t h f o l l o w i n ga d d r e s s e s a n r e g i s t e r s h a v e t b s e t :

A c c u : L o w - b y t e o t h v e c t o r( i p o i n t s t t h d e s i r e d a d d r e s s l i k e I N D F E T ) .

X - R e g : N u m b e i r o t h e d e s i r e d b a n kY - R e g : O f f s e t

K e r n a l - a d d r e s s : $ F F 7 A ( 6 5 4 0 2 )N a m e : I N D C M PR e a l j u m p - a d d r e s s : $ F 7 E 3 ( 6 3 4 5 9 )F u n c t i o n : C o m p a r e a c c u m u l a t o r a n b y t e i a n b a n k

T h i s f u n c t i o n c o m p a r e s t h c o n t e n t s o a a d d r e s s w i t h t h e c o n t e n t so t h a c c u m u l a t o r i a n d e s i r e d b a n k . T h u s u a l f l a g s f o c o m p a r i n g a r s e ( Z e r o - F l a g = l i b o t h a r e e q u a l , e t c . ) T h f o l l o w i n gm e m o r y l o c a t i o n s h a v e t b s e b e f o r e c a l l i n g :

$ 0 2 C 8 : V e c t o r l o w - b y t e p o i n t i n g t t h d e s i r e d a d d r e s sA c c u : C h a r a c t e r t b c o m p a r e d w i t h t h e c o n t e n t s o

t h a d d r e s s e d m e m o r y l o c a t i o n .X - R e g : N u m b e r o t h d e s i r e d b a n k

2 7

Page 283: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 283/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

K e r n a l - a d d r e s s : $ F F 7 D ( 6 5 4 0 5 )N a m e : P R I M MR e a l j u m p - a d d r e s s : $ F A 1 7 ( 6 4 0 2 3 )F u n c t i o n : P r i n t s t r i n g

T h o l p a r t o t h K e r n a l c o n t a i n s r o u t i n e t p r i n t o u s i n g l ec h a r a c t e r ( B S O U T ) . Y o c a p r i n t o u t a s t r i n g w i t h t h i s r o u t i n e i s i m p l e b u t c l e v e r w a y . T h c h a r a c t e r s t b p r i n t e d a r s i m p l y p l a c e db e h i n d t h c a l l t t h r o u t i n e . T h i s r e s u l t s i t h e f o l l o w i n g :

J S $ F F 7 D( a n y t e x t , z e r o f o a e n m a r k . )

R T

B u h o c a t h i s b e H o d o e s t h c o m p u t e r r e a c h t h e f i n i s h i n gR T S ? L e t ' s h a v e l o o k a t h e r o u t i n e a g a i n :

F A 1 7 P H F A 1 8 T X F A 1 9 P H F A 1 A T Y AF A 1 B P H F A 1 C L D Y # $ 0 0F A 1 E T S F A 1 F I N $ 0 1 0 4 , XF A 2 2 B N $ F A 2 7F A 2 4 I N $ 0 1 0 5 , XF A 2 7 L D $ 0 1 0 4 , XF A 2 A S T A $ C F A 2 C L D $ 0 1 0 5 , XF A 2 F S T $ C F A 3 1 L D ( $ C E ) , YF A 3 3 B E Q $ F A 3 AF A 3 5 J S $ F F D 2F A 3 8 B C $ F A 1 F

2 7

Page 284: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 284/322

A b a c u s S o f t w a r e

F A 3 AF A 3 BF A 3 CF A 3 DF A 3 EF A 3 F

P L T A P L T A P L R T

T r i c k s a n T i p s f o t h C - 1 2 8

F i r s t t h c o n t e n t s o t h a c c u m u l a t o r a n t h X - R e g i s t e r s a r e s t o r e di t h s t a c k , t h e n t h Y - R e g i s t e r , w h i c h i l a t e r u s e d w i t h i n d i r e c ti n d e x e d a d d r e s s , a s a o f f s e t , i s t o r e d i t h X - R e g i s t e r .

N o t h i m p o r t a n t p a r t o t h r o u t i n e b e g i n s * T h s t a c k p o i n t e r p o i n t st t h n e x t f r e e l o c a t i o n o t h s t a c k . T u n d e r s t a n d w h a t h a p p e n sy o h a v e t k n o w h o t h s t a c k i b u i l t a w e l l a i t p o s i t i o n . I t h C - 1 2 8 i i l o c a t e d i m e m o r y f r o m $ 0 1 3 9 t $ 0 1 F F . T h s t a c kp o i n t e r f i r s t p o i n t s t $ 0 1 F F a n b e c o m e s s m a l l e r a m o r e e l e m e n t sa r p u o t h s t a c k .

W e l l s i m u l a t e h o t h s t a c k r e a c t s w h e n y o c a l l i w i t h t h i s r o u t i n e .L e t ' s s a t h s t a c k p o i n t e r c o n t a i n s t h v a l u e $ F a n a r e s u l tp o i n t s t t h a d d r e s s $ 0 1 F 0 . T h s t a c k l o o k s s o m e t h i n g l i k e t h p i c t u r e o t h n e x t p a g e :

2 7

Page 285: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 285/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

$ 0 1 F 0

$ 0 1 F F

S t a c k P o i n t e r

N o t h e r o u t i n e i s t a r t e d . F i r s t o n n u m b e r i p l a c e d o t h s t a c k ,f o t h h i - b y t e o a d d r e s s $ 2 0 0 0 . T h p r o g r a m c o u n t e r ( t h i s r e g i s t e rh a t h p o i n t e r , a n t h n e x t b y t e o t h w o r d ) p l a c e s t h n e x t w o r do t h s t a c k , f i r s t t h h i - b y t e t h e n t h l o b y t e . T h i s r e s u l t s i n t h f o l l o w i n g p i c t u r e :

S t a c k P o i n t e r$ 0 1 E E

$ 0 1 F F

$ 0 $ 2

2 7

Page 286: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 286/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T h e n t h r o u t i n e f i l l s t h n e x t t h r e e m e m o r y r e g i s t e r s a n t h s t a c kl o o k s l i k e t h i s :

$ 0 1 E B

$ 0 1 F F

A C C U$ 0 $ 2

S t a c k P o i n t e r

A a d d r e s s $ F A 1 F o n b y t e o t h e s t a c k i p o i n t e d t o B u w h i c h o n e ?L e t ' s c a l c u l a t e i t T h s t a c k p o i n t e r ( a n d t h e r e f o r e t h e X - r e g i s t e r )c o n t a i n t h v a l u e $ E B . W h e n y o a d $ 0 1 0 4 y o u g e $ 0 1 E R T h l o w - b y t e o f t h e r e t u r n a d d r e s s i r a i s e d b o n e . T h B R A N C Hc o m m a n d c h e c k s i t h l o w - b y t e i z e r o . I t h i s c a s e , t h b y t e a a d d r e s s $ 0 1 0 5 + $ E B = $ 0 1 F 0 , ( w h i c h i t h h i g h - b y t e o t h e r e t u r na d d r e s s ) i r a i s e d b o n e . T h f o l l o w i n g f o u r c o m m a n d s s e t h

v e c t o r $ C $ C t t h f i r s t b y t e o t h s t r i n g t p r i n t

N o c h a r a c t e r i r e a d , c h e c k e d f o z e r o a n p r i n t e d o u i i i n o z e r o . W i t h t h f o l l o w i n g B R A N C H c o m m a n d a l c h a r a c t e r s a r p r i n t e d . T h r e g i s t e r - c o n t e n t s a r e c a r r i e d b a c k w h e n t h l o o p i f i n i s h e d . T h r e s u l t i d e p i c t e d o t h n e x t p a g e :

2 7

Page 287: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 287/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

$ 1 E

$ 0 1 F F

L O H I G H

S t a c k P o i n t e r

F i n a l l y t h e p r o c e s s o r r e a c h e s t h R T c o m m a n d a n g e t s t h e r e t u r na d d r e s s f r o m t h s t a c k . T h i s a d d r e s s i i n c r e m e n t e d w i t h e v e r yc h a r a c t e r r e a d s o t h a t n o i p o i n t s t t h l a s t b y t e o f t h s t r i n g , t h e n m a r k z e r o . N o t h p r o c e s s o r i n c r e m e n t s t h p r o g r a m - c o u n t e ra n c o n t i n u e s o n

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

T h o s e w e r e t h r o u t i n e s o t h K e r n a l . W c o n t i n u e w i t h t h n e x t s e c t i o n .

2 7

Page 288: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 288/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 1 . 2 . 2 . V E C T O R - L O A D - T A B L E

T h e r e i t a b l e f r o m $ 4 2 C E - $ 4 3 0 9 i t h B A S I C - i n t e r p r e t e r w i t h w h i c hy o c a e a s i l y g e m e m o r y - l o c a t i o n s , d e f i n e d b v e c t o r s . Y o u s t h e s er o u t i n e s a f o l l o w s : Y o e n t e r t h d e s i r e d a d d r e s s i n t o t h v e c t o r a n t h e nc a l l t h r o u t i n e b e l o n g i n g t t h v e c t o r . B u t h i s i n d e x h a s o m ed i s a d v a n t a g e s :

1 Y o c a n n o t u s e e v e r y v e c t o r , t h o s e y o c a u s a r l i s t e d i t h i n d e x b e l o w .

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

L o o k a t h i n d e x b e l o w t s e i y o c a g e a b y t e f r o m c e r t a i n b a n k a n r e t u r n t t h s a m e b a n k ! I n o y o m u s t u s t h e k e r n a l - r o u t i n e I N D F E T( $ F F 7 4 ) .

A d d r e s s$ 4 2 C E$ 4 2 D 3$ 4 2 D 8$ 4 2 D D$ 4 2 E 2$ 4 2 E 7$ 4 2 E C$ 4 2 F 1$ 4 2 F 6$ 4 2 F B$ 4 3 0 0$ 4 3 0 5

V e c t o r

$ 5 0 / $ 5 1$ 3 F / $ 4 0$ 5 2 / $ 5 3$ 5 C / $ 5 D$ 5 C / $ 5 D$ 6 6 / $ 6 7$ 6 1 / $ 6 2$ 7 0 / $ 7 1$ 7 0 / $ 7 1$ 5 0 / $ 5 1$ 6 1 / $ 6 2$ 2 4 / $ 2 5

B y t e - o fB a n kB a n kB a n k lB a n k OB a n k lB a n k lB a n k OB a n k OB a n kB a n k lB a n k lB a n k O

A f t e r t h e r e t u r n

B a n k 1 ( R A M - B a n k 1 B a n k 1 ( R A M - B a n k l )B a n k 1 ( R A M - B a n k 1 B a n k 1 B a n k 1 ( R A M - B a n k 1 B a n k 1 ( R A M - B a n k 1 B a n k 1 B a n k 1 B a n k 1 ( R A M - B a n k 1 B a n k 1 ( R A M - B a n k 1 B a n k 1 ( R A M - B a n k 1 B a n k 1

" B a n k 1 ( R A M - b a n k 1 ) m e a n s : T h m e m o r y s h o w s t h c o n f i g u r a t i o n a b a n k 1 a f t e r t h s w i t c h i o v e r . B u R A M - b a n k 1 i t u r n e d o i n s t e a d o

2 7

Page 289: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 289/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

R A M - b a n k 0 T h e s e r o u t i n e s s w i t c h R A a n R O o n l y ; t h e c o n t e n t s o t h R A M - b a n k a r n e v e r c h a n g e d .

1 1 . 2 . 3 K E R N A L C A L L S

T h i s i n d e x i f o u n d i t h B A S I C - i n t e r p r e t e r a l s o . S o m e k e r n a l r o u t i n e s a r c a l l e d h e r e , b u B a n k 1 i t u r n e d o f i r s t ( t h e o n e x c e p t i o n i $ 9 2 8 D ; i t u r n s o B a n k 1 4 ) .

A d d r e s s

$ 9 2 5 1$ 9 2 5 7$ 9 2 5 D$ 9 2 6 3$ 9 2 6 9$ 9 2 6 F$ 9 2 7 5$ 9 2 7 B$ 9 2 8 1$ 9 2 8 7$ 9 2 8 D$ 9 2 9 3

K e m a l - R o u t i n e

G e s t a t u s ( $ F F B 7 )S e ( $ F F B A )S e f i l e n a m e p a r a m e t e r ( $ F F B D )B A S I N ( $ F F C F )B S O U T ( $ F F D 2 )C L R C H ( $ F F C C )C L O S E ( $ F F C 3 )C L A L L ( $ F F E 7 )P R I M M ( $ F F E 7 )S E T B N K ( $ F F 6 8 )s e t / g e t ( $ F F F 0 )R e q u e s t s s t o p - k e y ( $ F F E 1 )

2 7

Page 290: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 290/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o r t h e C - 1 2 8

1 1 . 3 . F R E E M E M O R Y

W h e n u s 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 s y o h a v e t o s t o r e t h e m s o t h e y a r n o t d e s t r o y e d b B A S I C o t h o p e r a t i n g s y s t e m . T h B A S I C - R A M c a b u s e d o n l y i y o d o n ' t w a n t t e n t e r B A S I C p r o g r a m i t h m e m o r y ( o y o s e t h s t a r t - o f - B A S I C h i g h e r , o t h e n d - o f - B A S I C l o w e r ) . I t i si m p o r t a n t t k n o w w h i c h a d d r e s s e s y o c a u s i z e r o p a g e . S o m ea d d r e s s i n g m o d e s a r o n l y a v a i l a b l e w i t h p o i n t e r s i t h z e r o p a g e . T h e s ef r e e a r e a s w i l l b s h o w n h e r e . L e t ' s f i r s t t a l k a b o u t t h z e r o p a g e .

1 1 . 3 . 1 F R E E Z E R O P A G E M E M O R Y

T h a d d r e s s e s $ F A - $ F E i t h z e r o p a g e a r a l w a y s a v a i l a b l e , a w e l l a t h a d d r e s s e s $ 4 E / $ 4 F . T h e s e l a t t e r t w a d d r e s s e s a r u s e d o n l y b t h b o o t - c a l l r o u t i n e ( s e e c h a p t e r 1 0 . 1 ) .

T h e s e a r a l t h e f r e e a d d r e s s e s i t h z e r o p a g e . B u s i a d d r e s s e s a r b e t t e rt h a n n o n e . O t h e r p a g e s u s e d b t h o p e r a t i n g - s y s t e m a l s o h a v e f r e ea d d r e s s e s . B u u s i n g t h e m r e a l l y m a k e s n s e n s e b e c a u s e y o a l s o c a u s e v e r y o t h e r a d d r e s s i t h m e m o r y .

2 8

Page 291: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 291/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 1 . 3 . 2 U S A B L E M E M O R Y F O M A C H I N E L A N G U A G E

T h C - 6 4 o f t e n u s e d t w m e m o r y l o c a t i o n s : t h c a s s e t t e b u f f e r f o s h o r tp r o g r a m s a n t h e a r e a $ C 0 0 0 - $ C F F F . m a c h i n e l a n g u a g e p r o g r a m w a u s u a l l y n o t p l a c e d a t h e n d - o f - B A S I C o e v e n a t h s t a r t o B A S I C . T h eC - 1 2 8 h a m o r e p o s s i b i l i t i e s . F i r s t t h e r e i t h c a s s e t t e b u f f e r , f r o m$ 0 B 0 0 - $ 0 B F F . D i r e c t l y b e h i n d t h t a p e b u f f e r a r t h t w b u f f e r s f o t h R S 2 3 2 i n t e r f a c e :

1 $ 0 C 0 0 $ 0 C F F R S 2 3 2 i n p u t b u f f e r2 $ 0 D 0 0 $ 0 D F F R S 2 3 2 o u t p u t b u f f e r

T h i s a r e a i u s e d b v e r y f e C - 1 2 8 u s e r s . I o f f e r s 7 6 b y t e s o s t o r a g ef o m a c h i n e l a n g u a g e p r o g r a m s ( $ 0 B 0 0 $ 0 D F F ) .

B u t h a t ' s n o a l l . U n d e r n o r m a l c i r c u m s t a n c e s t h e a r e a f r o m $ 1 3 0 0 t $ 1 B F F i a v a i l a b l e . T h i s i n i n e p a g e s o 2 3 0 4 b y t e s o R A M ! T h i s a r e aw a o r i g i n a l l y m e a n t f o R O M - c a r t r i d g e s .

T h e r e i a n o t h e r p o s s i b i l i t y : p u y o u r p r o g r a m s i t h R A M - b a n k 1 T h i s i m e a n t f o r v a r i a b l e s o n l y . Y o n d o u b t r e a l i z e t h a t 6 4 f o v a r i a b l e s i l i t t l e m u c h ; y o c a u s s o m e o t h i s f o m a c h i n e l a n g u a g e p r o g r a m s .

T h n e x t c h a p t e r w i l l s h o w y o h o t m a k e u s o t h i s m e m o r y . T h C - 1 2 8 o f f e r s m a n y p o s s i b i l i t i e s t a r r a n g e y o u r p r o g r a m s i t h m e m o r y . I i a l s o u s e f u l t k n o w t h a t y o c a d g r a p h i c s w i t h o u t u s i n g y o u r R A M ,b e c a u s e t h V D h a i t o w 1 6 o R A M - m e m o r y .

2 8

Page 292: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 292/322

Page 293: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 293/322

C H A P T E R 1

Page 294: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 294/322

Page 295: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 295/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

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

B e c a u s e t h C - 1 2 8 i a l s o C - 6 4 , t h e r e a r e r o u t i n e s t s w i t c h i i n t o t h C - 6 4 m o d e . B A S I C 7 . h a t h c o m m a n d G O 6 4 T h n e k e r n a l j u m pt a b l e h a r o u t i n e c a l l e d " C 6 4 M O D E " . L e t ' s h a v e c l o s e r l o o k a t t h i sr o u t i n e .

E 2 4 BE 2 4 DE 2 4 FE 2 5 1E 2 5 3E 2 5 5E 2 5 8E 2 5 AE 2 5 BE 2 5 DE 2 6 0E 2 6 3E 2 6 5E 2 6 8

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

L D S T J M

# $ E 3$ 0 # $ 2 F$ 0 # $ 0 8$ E 2 6 2 , X$ 0 1 , X$ E 2 5 5$ D 0 3 0$ 0 0 0 2# $ F 7$ D 5 0 5( $ F F F C )

T h f i r s t f o u r c o m m a n d s s w i t c h t h e p r o c e s s o r - p o r t . T h n e x t f i v ec o m m a n d s a r l o o p . F i r s t t h a d d r e s s e s $ E 2 6 3 $ E 2 6 A t $ 0 0 0 2 $ 0 0 0 9a r c o p i e d . T h c o m m a n d i a d d r e s s $ E 2 5 D c h a n g e s t h c l o c k s p e e d t M H z . T h e r e f o r e z e r o i s t o r e d i r e g i s t e r 4 o t h n e w V I C ( t h e X - r e g i s t e rw a s e t z e r o b t h l o o p b e f o r e ) . R o b r o w , t h c o m m a n d s c o p i e d b t h l o o p a r e x e c u t e d . T h s w i t c h i n g i n o m a d e w i t h t h f i r s t t w c o m m a n d s . T h m e m o r y - l o c a t i o n $ D 5 0 5 b e l o n g s t t h M M a n h a t h f o l l o w i n g s i g n i f i c a n c e .

2 8

Page 296: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 296/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

B i t - n u m b e r F u n c t i o n a F u n c t i o n a

1 & Z - 8 0n o u s e d n o 6 5 0 2 o F S D I R c o n t r o l b i ( f o r d i s k )C - 6 4C - 6 4C - 1 2 84 0 - c o l u m n

C - 1 2 8C - 1 2 8C - 6 48 0 - c o l u m n

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

B i t 4 : G A M EB i t 5 : E X R O M

T h e s e p i n s a r c h e c k e d e v e r y r e s e t I o n o t h e m r e t u r n s l o g i c z e r o , t h e nt h C - 6 4 m o d e i a c t i v a t e d . T h e r e f o r e t h C - 6 4 m o d e i a c t i v a t e di m m e d i a t e l y i t h C - 6 4 c a r t r i d g e s a r e c o n n e c t e d . Y o a l s o c a b u i l d as p e c i a l p u s h b u t t o n t a c t i v a t e t h C - 6 4 m o d e w h e n d e s i r e d .

B i i a l s o r e a d o n l y . T h i s b i g i v e s y o t h s t a t u s o t h < 4 0 / 8 0 - D I S P L A Y > k e y . W h e n t h i s k e i d e p r e s s e d , t h i s b i t w i l l b 1 T h i s b i d o e s n o s h o w y o t h a c t u a l m o d e ; i i n o a l t e r e d i y o c h a n g et h m o d e w i t h < E S C + X > . T h m o s t i m p o r t a n t b i i b i 6 T h C - 1 2 8 g o e si n t o t h C - 6 4 m o d e i t h i s b i i s e ( 1 ) . N o w c a u n d e r s t a n d t h t w c o m m a n d s i t h C - 6 4 m o d e r o u t i n e . T h h e x a d e c i m a l v a l u e $ F i b i n a r y1 1 1 1 0 1 1 1 . B i i s s e t .

T h l a s t c o m m a n d f i n a l l y d o e s t h r e s e t . A f t e r t h s w i t c h i n g , b e f o r e t h r e s e t , a l R O M s o t h C - 1 2 8 a r t u r n e d o f a n t h o s e o t h C - 6 4 a r t u r n e do n I t h l a s t t h r e e c o m m a n d s w e r e n o i R A B a n k 0 b u i n e i t h e r R O

2 8

Page 297: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 297/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

o R A B a n k 1 t h c o m p u t e r w o u l d l o c k u p . T r i t j u m p t t h e r o u t i n e a $ E 2 6 3 . T h c o m m a n d s a r e i n t h R A a n t h p r o c e s s o r ( n o w 6 5 1 0 )c o n t i n u e s a a d d r e s s $ 0 0 0 7 a n d o e s r e s e t ( t h e p r o g r a m c o u n t e r s t a y e d a i w a s , o c o u r s e ) .

W w a n t t m a k e s u r e t h a t t h R A B a n k i r e a l l y u s e d b b o t hp r o c e s s o r s . L e t ' s e n t e r t h e f o l l o w i n g :

P O K E 8 1 9 2 1 7 P O K E 8 1 9 3 8 G 6 { a n d t h e n f o Y e s , o f c o u r s e }P R I N T P E E K ( 8 1 9 2 ) ; P E E K ( 8 1 9 3 )

Y o g e b a c k t h v a l u e s e n t e r e d o t h e s c r e e n ! I t h m e m o r y i n o e r a s e d ,t h e n y o s h o u l d b a b l e t o t r a n s f e r c o m p l e t e p r o g r a m s t t h C - 6 4 ! I n d e e dt h i s w o r k s . T r e n t e r i n g s m a l l p r o g r a m , a n c h a n g i n g t h m o d e w i t h t h c o m m a n d G 6 4 N o e n t e r t h f o l l o w i n g P O K E V .

P O K E 4 3 1 P O K E 4 4 2

Y o u r p r o g r a m a p p e a r s b a c k o t h e s c r e e n . Y o c a e v e n e x e c u t e i t H o w e v e r , c o m m a n d s t h a t t h C - 6 4 c a n n o t e x e c u t e a r n o a l l o w e d i t h e s ep r o g r a m s .

I i e v e n p o s s i b l e t c o n t i n u e p r o g r a m s t a r t e d i t h C - 1 2 8 m o d e i t h C - 6 4 m o d e w i t h o u t b r e a k . I t ' s n e c e s s a r y t d t h l a r g e s t p a r t o t h r e s e t - r o u t i n e f i r s t . O t h e r w i s e l o w o u l d g o w r o n g : t h I R Q - V e c t o r i n o d e f i n e d , t h e s c r e e n s w o u l d n o b s e t n o r m a l v a l u e s , e t c . . .

A e x a m p l e :

2 8

Page 298: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 298/322

A b a c u s

2 0 0 02 0 0 22 0 0 52 0 0 72 0 0 82 0 0 92 0 0 A2 0 0 D2 0 1 02 0 1 32 0 1 62 0 1 92 0 1 A2 0 1 d

S o f t w a r e

A 8 A 7 9 D 8 2 2 2 2 5 E 4

F 0 F

1 A 5 1 5

2 1

D

D F F F F

D 2

L D S T L D S E T X C L S T J S J S J S J S C L I N J M

# $ F 7$ D 5 0 5# $ F F

$ D 0 1 6$ F D A 3$ F D 5 0$ F D 1 5$ F F 5 B$ D 0 2 0$ 1 A 2 O

T r i c k s a n T i p s f o t h C - 1 2 8

S w i t c ht o 6 4 - m o d eR e s e t - r o u t i n eU t j u m pT B A S I C - c o l d s t a r ta n t e s t a R O i $ 8 0 0 0

R a i s e b k g n d c o l o ro n c e a g a i n

N o c a l l t h e r o u t i n e w i t h t h c o m m a n d S Y D E ( " 2 0 0 0 " ) . A f t e rm o m e n t y o g e c o l o r f u l s c r e e n — i n t h C - 6 4 m o d e .

N o n e o t h i s i e a s y w i t h B A S I C p r o g r a m s . T r i o n c e !

2 8

Page 299: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 299/322

C H A P T E R 1

Page 300: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 300/322

Page 301: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 301/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T H C - 6 4 M O D E O T H C O M M O D O R E 1 2

O n r e a l a d v a n t a g e o t h C - 1 2 8 i i t c o m p a t i b i l i t y w i t h t h C - 6 4 . W h e ny o s w i t c h t t h C - 6 4 - m o d e , y o u ' r e a b l e t u s a n a n a l s o f t w a r ea v a i l a b l e f o r t h C - 6 4 .

T h C o m m o d o r e p e o p l e h a t t a k e c a r e t h a t a l C - 6 4 p r o g r a m s c o u l d r e a l l yb r u o t h C - 1 2 8 i t h C - 6 4 - m o d e . T h e r e f o r e t h e y s w i t c h e d t h c o m p l e t e s y s t e m c o n f i g u r a t i o n o t h C - 1 2 8 t t h C - 6 4 . T h C - 6 4 - m o d eo f f e r s y o o n l y t h n o r m a l B A S I C V 2 . 0 . , t h u s e l i m i n a t i n g t h b a n ks w i t c h i n g a n t h Z - 8 0 p r o c e s s o r f e a t u r e s . B u s o m e f e a t u r e s o t h C - 1 2 8c a s t i l l b u s e d i C - 6 4 m o d e .

1 3 . 1 H I G H - S P E E D O T H C - 6 4

T h C - 1 2 8 h a a v i d e o c o n t r o l l e r , V I 8 5 6 4 , f o r t h e 4 0 - c o l u m n s c r e e n . T h C o m m o d o r e 6 h a V I 6 5 6 4 . T h n e V I i u p w a r d c o m p a t i b l e t t h C - 6 4 ' s V I 6 5 6 4 . T h i s m e a n s i a c c o m p l i s h e s t h s a m e t a s k s a s t h e o l 6 5 6 4 . T h e r e a r t w n e r e g i s t e r s a d d e d a n t h e s e r e g i s t e r s c a a l s o b m o d i f i e d i t h C - 6 4 m o d e ! R e g i s t e r 4 p l a y s s p e c i a l r o l e .

1 3 . 1 . 1 R e g i s t e r 4 8 P r o c e s s o r - c l o c k

A w i t h t h C - 6 4 , t h 1 2 8 ' s c l o c k c o n t r o l s t h e e n t i r e c o m p u t e r . W i t hr e g i s t e r 4 y o c a n d o u b l e t h s p e e d o t h C - 1 2 8 f r o m M H t M H z .

2 9

Page 302: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 302/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

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

T h i s m e a n s t h a t a l o y o u r " o l d " C - 6 4 p r o g r a m s c a r u t w i c e a f a s t . I a l s o s p e e d s u t i m e c o n s u m i n g r o u t i n e s l i k e t h g a r b a g e c o l l e c t i o n . B u t h e r e i o n c a t c h : T h V I u s e s c l o c k g a p s i t h s y s t e m t g e c h a r a c t e ro u o t h v i d e o R A t r e f r e s h t h e s c r e e n . W i t h t h d o u b l e d c l o c k s p e e dt h e s e g a p s a r o n l y h a l f s i z e , t o s h o r t t i m e f o t h V I t r e f r e s h t h s c r e e n . Y o u l l g e l o o s t r a n g e t h i n g s o t h s c r e e n , i n s t e a d o t h n o r m a ld i s p l a y . T h e r e f o r e , y o s h o u l d u s e t h d o u b l e c l o c k o n l y i t h s c r e e nc o n t e n t d o e s n o m a t t e r t y o u . T h r o u t i n e i d o n e l i k e t h i s :

P O K E 5 3 2 9 6 , 1 ( M H z , f a s t )P O K E 5 3 2 9 6 , 0 ( M H z , n o r m a l )

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

1 T I $ = " 0 0 0 0 0 0 "2 3 F O X = l T O 1 0 0 0 04 N E X T5 6 P R I N T T I

T h i s p r o g r a m n e e d s 1 4 s e c o n d s t c o m p l e t e t h e l o o p . I w o r k s f a s t e r w i t ht h f o l l o w i n g l i n e s a d d e d :

2 P O K E 5 3 2 9 6 R E F A S T5 P O K E 5 3 9 R E N O R M A L

T h s a m e l o o p n o t a k e s o n l y s e c o n d s !

2 9

Page 303: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 303/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 3 . 2 8 0 - C O L U M N C O N T R O L L E R A C C E S S

Y e s , y o n o c a a c c e s s t h 8 0 - c o l u m n c o n t r o l l e r i t h C - 6 4 m o d e .F i n a l l y , f u l l 8 c h a r a c t e r s p e l i n e . T h o p e r a t i n g s y s t e m o t h C - 6 4 i n o t p r e p a r e d f o t h i s c o n t r o l l e r , b u i s h o u l d n o t b p r o b l e m t c o p y t h e s er o u t i n e s o u o t h C - 1 2 8 .

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

8 0 - c h a r a c t e r s c r e e n i t h ' 6 m o d e ? O a o p e r a t i n g s y s t e m e x p a n s i o n ( i t h I R Q ) t h a t w i l l b a b l e t w r i t e o t h e 8 0 - c h a r a c t e r - s c r e e n ?

2 9

Page 304: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 304/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

1 3 . 3 N U M E R I C K E Y P A D O T H C - 6 4

T h i s i m o r e o a s u g g e s t i o n t h a n a t i p . W e ' l l a c t i v a t e t h n u m e r i c k e y p a dw i t h s i n g l e P O K E c o m m a n d i n t h e C - 6 4 m o d e . U n f o r t u n a t e l y , y o u ' l l s e t h a t t h c h a r a c t e r s d o n ' t f i t h k e y s . W d i d n ' t h a v e e n o u g h t i m e t f i g u r et h i s o u t b e f o r e p r e s s t i m e . M a y b e y o c a a c t i v a t e t h n u m e r i c k e y p a dc o m p l e t e l y !

H e r e ' s t h P O K E :

P O K E 5 3 2 9 5 , 2 4 8

T h m e m o r y l o c a t i o n 5 3 2 9 5 c o r r e s p o n d s t o r e g i s t e r 4 o t h n e V I 8 5 6 4 ~ o n e o t h n e r e g i s t e r s . H e r e y o e n t e r t h e s a m e v a l u e a i t h C - 1 2 8 m o d e .

2 9

Page 305: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 305/322

C H A P T E R 1

Page 306: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 306/322

Page 307: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 307/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

T O K E N T A B L E

B A S I C c o m m a n d s a r n o s t o r e d a c h a r a c t e r s e q u e n c e i t h B A S I C - R A M , b u t t u r n e d i n t o T O K E N S . s p e c i a l r o u t i n e c o m p a r e s t h e n t e r e d B A S I C l i n e w i t h c o m m a n d s s t o r e d i t h B A S I C - i n t e r p r e t e r . I t h c o m m a n d i f o u n d , t h B A S I C - i n t e r p r e t e r g i v e s s p e c i a l c h a r a c t e rs e q u e n c e i n s t e a d . T h b y t e s f o R U N - - 8 2 , 8 5 a n 7 8 - a r e t r a n s f e r r e d t t h b y t e 1 3 ( $ 8 A ) .

T r e n t e r i n g N E a n t h e n t h l i n e 1 0 R U N . N o e n t e r t h m o n i t o r a n t y p e i M C O O . Y o g e t h b e g i n n i n g s e c t i o n o t h B A S I C - R A M . B u w h e r e i t h R U N ? I y o l o o k c l o s e l y y o u ' l l f i n d t h v a l u e $ i t h s i x t hp o s i t i o n , w h i c h i t h t o k e n f o R U N .

T o k e n s s a v e l o o m e m o r y f o B A S I C p r o g r a m s . T a k e t h c o m m a n d f o D I R E C T O R Y . S t o r e d c h a r a c t e r b c h a r a c t e r i w o u l d u s e 9 b y t e s . C h a n g e di n t o t o k e n i o n l y u s e s o n e .

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

T h t o k e n s s t a r t a $ 8 ( 1 2 8 ) ; t h i s l e t s t h c o m p u t e r q u i c k l y c h e c k i t h c h a r a c t e r s r e a d a r B A S I C c o m m a n d s o s i m p l y t e x t c h a r a c t e r s . B u t h i sl a y o u t h a o n d i s a d v a n t a g e - o n l y 1 2 8 B A S I C c o m m a n d s a r a v a i l a b l e .

2 9

Page 308: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 308/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

M a n y T O K E N s n o u s e d o t h C - 6 4 ; t h C - 1 2 8 u s e s t h e m a l l . B u t h i s s t i l lw a n o e n o u g h f o r t h e n e s e o B A S I C 7 . 0 . c o m m a n d s . T h e , 1 2 8 ' sp r o g r a m m e r s h a s i m p l e s o l u t i o n f o u s i n g s o m e T O K E N s t w i c e . T h e yg a v e t h e s e T O K E N s s e c o n d b y t e . T h c o m m a n d B A N K h a t h t o k e n s$ F a n $ 0 n o w . W i t h t h i s m e t h o d y o u c a s t o r e l o m o r e c o m m a n d s .N o t h t o k e n t a b l e :

B A S I C - C o m m a n d

E N F O N E X TD A T AI N P U T *I N P U TD I R E A DL E G O T OR U I R E S T O R EG O S U BR E T U R NR E S T O PO W A I TL O A DS A V EV E R I F YD E P O K EP R I N T *P R I N TC O N T

V a l u e ( h e x . )

$ 8 $ 8 $ 8 $ 8 $ 8 $ 8 $ 8 $ 8 $ 8 $ 8 $ 8 $ 8 $ 8 $ 8 $ 8 $ 8 $ 9 $ 9 $ 9 $ 9 $ 9 $ 9 $ 9 $ 9 $ 9 $ 9 $ 9

V a l u e ( d e c . )

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

2 9

Page 309: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 309/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

B A S I C - C o m m a n d V a l u e ( h e x . ) V a l u e ( d e c . )

L I S TC L C M S Y O P E NC L O S EG E N E T A B (T F S P C (T H E NN O S T E P

A N O

S G I N A B U S F R P O S Q R N L O E X C O S I T A A T P E E K

$ 9 $ 9 $ 9 $ 9 $ 9 $ A $ A $ A $ A $ A $ A $ A $ A $ A $ A $ A $ A $ A $ A $ A $ A $ B $ B $ B $ B $ B $ B $ B $ B $ B $ B $ B $ B $ B $ B $ B $ B $ C $ C $ C

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

2 9

Page 310: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 310/322

A b a c u s S o f t w a r e

A S I C - C o m m a n d

L E S T R $V A A S C H R $L E F T $R I G H T $M I D $G R G R C L RT w o - b y t eJ O R D O TD E H E X $E R R $I N S T RE L S ER E S U M ET R A PT R O NT R O F FS O U N DV O A U T OP U D E FG R A P H I CP A I N TC H A RB O C I R C L EG S H A P ES S H A P ED R A WL O C A T EC O L O RS C N C L RS C A L EH E L P

V a l u e ( h e x . )

$ C $ C $ C $ C $ C $ C $ C $ C $ C $ C $ C

t o k e n $ C $ C $ D $ D $ D $ D $ D $ D $ D $ D $ D $ D $ D $ D $ D $ D $ D $ D $ E $ E $ E $ E $ E $ E $ E $ E $ E $ E $ E

T r i c k s a

V a l u e ( d e c . )

1 9 1 9 1 9 1 9 1 9 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 3 2 3 2 3 2 3

3 0

Page 311: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 311/322

A b a c u s S o f t w a r e

B A S I C - C o m m a n d

D L O O PE X I TD I R E C T O R YD S A V ED L O A DH E A D E RS C R A T C HC O L L E C TC O P YR E N A M EB A C K U PD E L E T ER E N U M B E RK E M O N I T O RU S I N GU N T I LW H I L ET w o - b y t e

( P i )

V a l u e ( h e x . )

$ E $ E $ E $ E $ E $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F

t o k e n $ F $ F

T r i c k s a

V a l u e ( d e c . )

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

2 5

T r i c k s a n T i p s f o t h C - 1 2 8

N e x t i t h i n d e x f o d o u b l e b y t e T O K E N S . T h e y h a v e t w p r e c e d i n gv a l u e s : $ C a n $ F E . I n d e x f o c o m m a n d s w i t h $ C a t h f i r s t T O K E N :

B A S I C - C o m m a n d F i r s t b y t e V a l u e ( h e x . ) V a l u e ( d e c . )

P O B U M PP E R S P P O SR S P R I T ER S P C O L O RX O R W I N D O WP O I N T E R

$ C $ C $ C $ C $ C $ C $ C $ C $ C

$ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 1

3 0

Page 312: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 312/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

I n d e x f o c o m m a n d s w i t h $ F a t h f i r s t T O K E N :

B A S I C - C o m m a n d F i r s t b y t e V a l u e ( h e x . ) V a l u e ( d e c . )

B A N KF I L T E RP L A YT E M P OM O V S P RS P R I T ES P R C O L O RR R E GE N V E L O P ES L E E PC A T A L O GD O P E NA P P E N DD C L O S EB S A V EB L O A DR E C O R DC O N C A TD V E R I F YD C L E A RS P R S A VC O L L I S I O NB E G I NB E N DW I N D O WB O O TW I D T HS P R D E FQ U I TS T A S HF E T C HS W A PO F F A S TS L O W

$ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F $ F

$ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 0 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 1 $ 2 $ 2 $ 2 $ 2 $ 2

1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3

3 0

Page 313: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 313/322

A b a c u s S o f t w a r e T r i c k s a n T i p s f o t h C - 1 2 8

O p t i o n a l D i s k e t t e

C 1 2 8 T r i c k s T i p sO p t i o n a l d i s k e t t e

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

A l p r o g r a m s o t h d i s k e t t e h a v e b e e n f u l l y t e s t e d . Y o c a c h a n g e t h p r o g r a m s f o y o u r p a r t i c u l a r n e e d s . T h d i s k e t t e i a v a i l a b l e f o r $ 1 4 . 9 5$ 2 . 0 0 ( $ 5 . 0 0 f o r e i g n ) f o r p o s t a g e a n h a n d l i n g .

W h e n o r d e r i n g , p l e a s e g i v e y o u r n a m e a n s h i p p i n g a d d r e s s . E n c l o s ec h e c k , m o n e y o r d e r o c r e d i t c a r d i n f o r m a t i o n . M a i l y o u r o r d e r t o

A b a c u s 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 0O f o f a s t s e r v i c e , c a l l 6 1 6 / 2 4 1 - 5 5 1 0 .

3 0

Page 314: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 314/322

Page 315: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 315/322

F T H EI O F O Y O U R C - 1 2 8

C - 1 2 8I N T E R N A L S

D A T A B E C * £ R B O O J < P U S L B H E O B YA b a c u s j ^ f f l j S o f t w a r e

C O M M O D O R E < 1© A I C O M P U T E R A I D E D D E S I G N

D A T AA b a c u s f t w a r e

C P / MO T H C - 1 2 8

{ S o f t w a r e

1 5 7 1I N T E R N A L S

D A T AA b a c u s

P U B L I S H E D B S o f t w a r e

C - 1 2 8T R I C K S & T I P S

D A T A B B C X C T B O O K P U 3 L W E 0 B A b a c u s f l f f l a S o f t w a r e

d e t a i l e d g u i d e p r e s e n t i n g t h 1 2 8 ' s o p e r a t i n g s y s t e m , e x p l a na t i o n s o g r a p h i c s c h i p s , c o n c i s ed e s c r i p t i o n o t h M M U , w e l l d o c um e n t e d R O l i s t i n g s , m o r e . $ 1 9 . 9 5

C o m p u t e r A i d e d D e s i g n o y o u r C 1 2 o 6 4 D e s i g n a C A s y s t e mu s i n g p r o g r a m s p r o v i d e d . C r e a t e 3 o b j e c t s . W i t h 1 2 8 - H a r d c o p y a n 1 2 8 - M e r g e p r o g r a m l i s t i n g s . $ 1 9 . 9 5

A e s s e n t i a l g u i d e t u s i n g C P / M o y o u r 1 2 8 , s i m p l e e x p l a n a t i o n s o o p e r a t i n g s y s t e m a n i t m e m o r yu s a g e , C P / M u t i l i t y p r o g r a m s s u m i f i l e s , a n o t h e r s u b k x * s . $ 1 9 . 9 5

g u i d e f o n o v i c e a n d a d v a n c e du s e r s . 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 ,d i r e c t a c c e s s c o m m a n d s , d i r e c t o r yu s a g e , i m p o r t a n t D O r o u t i n e s ,c o m m e n t e d D O l i s t i n g s . $ 1 9 . 9 5

T h i s b o o k i c h o c k f u l l o f i n f o r m a t i o nw h i c h n o ' 1 2 8 u s e r s h o u l d b w i t h o u t . I c o v e r s m e m o r y u s a g e ,h i r e s g r a p h i c s i 8 c o l u m n s , w i d o w i n g , m e m o r y l o c a t i o n s . $ 1 9 . 9 5

. . . A N D T R U S T E D I N F O R M A T I O N O T H 6 4

A N A T O M Y O C - 6 4' 6 i n t e r n a l s . G r a p h i c s , s o u n d , I / O , k e r n a l ,m e m o r y m a p s , m o r e . C o m p l e t e c o m m e n t e dR O l i s t i n g s . 3 0 0 p p $ 1 9 . 9 5A N A T O M Y O 1 5 4 1 D R I V E B e s th a n d b o o k o f l o p p y e x p l a i n s a l l . M a n ye x a m p l e s a n u t i l i t i e s . F u l l y c o m m e n t e d1 5 4 1 R O l i s t i n g s . 3 2 0 p p $ 1 9 . 9 5M A C H I N E L A N G U A G E C - 6 4 L e a r n6 5 1 0 c o d e w r i t e f a s t p r o g r a m s . M a n y s a mp l e s a n l i s t i n g s f o c o m p l e t e a s s e m b l e r ,m o n i t o r . s i m u l a t o r . 2 0 0 p p $ 1 4 . 9 5G R A P H I C S B O O K C - 6 4 b e s t r e f e r e n c ec o v e r s b a s i c a n d a d v a n c e d g r a p h i c s .S p r i t e s , a n i m a t i o n , H i r e s , M u l t i c o l o r ,l i g h t p e n , 3 D - g r a p h i c s , I R Q , C A D , p r o -l e c t i o n s , c u r v e s , m o r e . 3 5 0 p p $ 1 9 . 9 5

T R I C K S T I P S F O C - 6 4 C o l l e c t i o n o e a s y - t o - u s e t e c h n i q u e s : a d v a n c e d g r a p h i c s ,i m p r o v e d d a t a i n p u t , e n h a n c e d B A S I C ,C P / M . m o r e . 2 7 5 p p $ 1 9 . 9 51 5 4 1 R E P A I R M A I N T E N A N C EH a n d b o o k d e s c r i b e s t h e d i s k d r i v e h a r dw a r e . I n c l u d e s s c h e m a t i c s a n t e c h n i q u e st k e e p 1 5 4 1 r u n n i n g . 2 0 0 p p $ 1 9 . 9 5A D V A N C E D M A C H I N E L A N G U A G EN o t c o v e r e d e l s e w h e r e : v i d e o c o n t r o l l e r ,i n t e r r u p t s , t i m e r s , c l o c k s . I / O , r e a l t i m e ,e x t e n d e d B A S I C , m o r e . 2 1 0 p p $ 1 4 . 9 5P R I N T E R B O O K C - 6 4 / V I C - 2 0 U n d e rs t a n d C o m m o d o r e . E p s o n - c o m p a t f o l e p r i n te r a n d 1 5 2 0 p l o t t e r . P a c k e d : u t i l i t i e s ; g r p h i c s d u m p ; 3 D - p l o t ; c o m m e n t e d M P S 8 0 1R O l i s t i n g s , m o r e . 3 3 0 p p $ 1 9 . 9 5 ^

S C I E N C E / E N G I N E E R I N G O C - 6 4 I d e p t h i n t r o t c o m p u t e r s i s c i e n c e . T o p i c s :c 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 ,e l e c t r o n i c s , o t h e r s . 3 5 0 p p $ 1 9 . 9 5C A S S E T T E B O O K C - 6 4 / V I C - 2 0C o m p r e h e n s i v e g u i d e ; m a n y s a m p l ep r o g r a m s . H i g h s p e e d o p e r a t i n g s y s t e mf a s t f i l e l o a d i n g a n s a v i n g . 2 2 5 p p $ 1 4 . 9 5I D E A S F O U S O C - 6 4 T h a m e s :a u t o e x p e n s e s , c a l c u l a t o r , r e c i p e f i l e , s t o c kl i s t s , d i e t p l a n n e r , w i n d o w a d v e r t i s i n g ,o t h e r s . I n c l u d e s l i s t i n g s . 2 0 0 p p $ 1 2 . 9 5C O M P I L E R B O O K C - 6 4 / C - 1 2 8 A l y o n e e d t k n o w a b o u t c o m p i l e r s : h o t h e yw o r k ; d e s i g n i n g a n w r i t i n g y o u r o w n ;g e n e r a t i n g m a c h i n e c o d e . W i t h w o r k i n ge x a m p l e c o m p i l e r . 3 0 0 p p $ 1 9 . 9 5

A d v e n t u r e G a m e w r l t e r ' s H a n d b o o kS t e p - b y - s t e p g u i d e t d e s i g n i n g a n w r i t i n gy o u r o w a d v e n t u r e g a m e s . W i t h a u t o m a t e da d v e n t u r e g a m e g e n e r a t o r . 2 0 0 p p $ 1 4 . 9 5P E E K S f P O K E S F O R T H E C - 6 4I n c l u d e s i n - d e p t h e x p l a n a t i o n s o P E E K ,P O K E , U S R , a n o t h e r B A S I C c o m m a n d s .L e a r n t h " i n s i d e " t r i c k s t g e t h m o s t o u o y o u r ' 6 4 . 2 0 p $ 1 4 . 9 5O p t i o n a l D i s k e t t e s f o b o o k sF o r y o u r c o n v e n i e n c e , t h p r o g r a m sc o n t a i n e d i e a c h o o u b o o k s a r a v a i la b l e o d i s k e t t e t s a v e y o u t i m e e n t e r i n gt h e m f r o m y o u r k e y b o a r d . S p e c i f y n a m e o b o o k w h e n o r d e r i n g . $ 1 4 . 9 3 e a c h

C a l l n o f o t h n a m e o y o u r n e a r e s t d e a l e r . T o r d e r b c r e d i t c a r d c a l l 6 1 6 / 2 4 1 - 5 5 1 0 . O t h e rs o f t w a r e a n b o o k s a r a v a i l a b l e a s f o f r e e c a t a l o g . A d $ 4 . 0 0 f o s h i p p i n g p e o r d e r . F o r e i g no r d e r s a d $ 8 . 0 0 p e r b o o k . D e a l e r i n q u i r e s w e l c o m e 1 2 0 0 + d e a l e r s n a t i o n w i d e .

P . O . B o A b a c u sB o 7 2 1 1 G r a n d R a p i d s ,

H W S o f t w a r eR a p i d s , M l 4 9 5 1 0 T e l e x 7 0 9 - 1 0 1 P h o n e 6 1 6 / 2 4 1 - 5 5 1 0

Page 316: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 316/322

Page 317: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 317/322

D o r c s n c m i r o m l e s

H | 1 l f t I T ' " "

z n l t r a r , ; .1 «

A R T P A K

C H A R T P A KM a k e p r o f e s s i o n a l q u a li t p i e , b a a n l i n ec h a r t s , a n g r a p h i c sf r o m y o u r d a t a . I c l u d e s s t a t i s t i c a l f u n ct i o n s . 3 t h e r e s o l u t i o no ' 6 v e r s i o n . 5 0 0 +d a t a p o i n t s O u t p u t s t m o s t p r i n t e r s . $ 3 9 . 9 5

B A S I C 1 2 C o m p i l e rV e r s a t i l e c o m p i l e r i s t a n t l y t u r n s B A S I C i n t ol i g h t n i n g f a s t 6 5 1 0m a c h i n e c o d e a n d / o rc o m p a c t s p e e d c o d e .V a r i a b l e p a s s i n g o v e rl a y s , i n t e g e r a r i t h m e t i c ,a n m o r e . $ 5 9 . 9 5

C o m p i l e r a n d S o f t w a r eD e v e l o p m e n t S y s t e m

* -

■ 0

W m n . - t o .

n i » . ( t " ( « q t

t t t « « o .

S U P E R P a s c a lC o m p l e t e J & d e v e lo p m e n t s y s t e m . W i t he n h a n c e d e d i t o r , c o p i l e r , b u i l t - i n a s s e m b l e r ,t o o l - k i t , g r a p h i c s , 2 2 p a g e h a n d b o o k , a n p l e n t y m o r e . $ 5 9 . 9 5

S U P E RC o m p l e t e K & c o p i l e r a n d e v e l o p m e n ts y s t e m . E d i t o r , c o p i l e r , l i n k e r , I / l i b r a r ya n e x t e n s i v e 2 0 p a g eh a n d b o o k . C r e a t e s f a s t6 5 1 0 m a c h i n e c o d e .

$ 7 9 . 9 5

. . A N D O U O T H E R F A N T A S T I C 6 S O F T W A R Es o p h i s t i c a t e d " c h a r t i n g a n t e c h n i c a l ' a n a l y s l a s y s t e m f o O n o t h m o s t p o w e r f u l s p r e a d s h e e t s f o y o u r C o m m o d o r e

s t o c k , T A c a h e l p p i r ^ n t t r e m t e e j > d p a t t e r n s a i p r e d i c t s c r e e n s , f i e W p r o t e c t i o n , w i m i o w l n g , W f u r ^ o n a a n d m w k e y b o a r d o d i r e c t l y f r o m o n U n e f l n a n d a J s e r v i c e s . $ 5 9 , 9 5 c h a r t s f o y o s p r e a d s h e e t d a t a .

P e r s o n a l P o r t f o l i o M a n a g e rd e l u x e g r a p h i c s d e s i g n a n d r a w i n g p a c k a g e U s w i t h o C o m p l e t e p o r t f o l i o m a n a g e m e n t s y s t e m f o H i I n d v i d u a l o r

l i g h t p e n t c r e a t e h i g h l y d e t a i l e d d e s i g n s w i t h p r o f e s s i o n a l i n v e s t o r . A i t o w s i n v e s t o r s t o e a s i l y m a n a g e t h e ! r^ a j f c a u « , L _ ^ ^ . - j * i - ^ - . - * ^ ^ i ^ - j — a ^ l u l ^ . j j j j j ^ p i ^ o b t a i n u p - t o - t h e m J m i t e o ^ i o t e s , n s w s , a n p e r f o r m

y o u r I r r f o r m a t i O f i o n X P E I T s k n o w l o d g e h i a n l e S u p e r 6

A b a c u s 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 T e l e x 7 0 9 - 1 0 P h o n e 6 1 6 / 2 4 1 - 5 5 1 0

C a l l n o f o t h n a m e o y o u r n e a r e s t d e a l e r . T o r d e r b c r e d i t c a r d , M C A M E X o V I S A , c a l l 6 1 6 / 2 4 1 - 5 5 1 0 . O t h e r s o f t w a r e a n b o o k s a r a v a i l a b l e C a l l a n a s f o y o u r f r e e c a t a l o g . A d $ 4 . 0 0 f o s h i p p i n g p e r o r d e r . F o r e i g n o r d e r s a d $ 1 2 . 0 0 p e i t e m .D e a l e r i n q u i r e s w e l c o m e 1 2 0 0 + d e a l e r s n a t i o n w i d e .

Page 318: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 318/322

T r u s t e d S o f t w a r e a n L a n g u a g e S o f t w a r e

A D T R A I N I N G C O U R S ET e a c h e s y o t h l a n g u a g e o t h f u t u r e . C o m p r e h e n s i v es u b s e t o l a n g u a g e . I n c l u d e s :e d i t o r ; s y n t a x c h e c k e r , c o m p i l e r ;a s s e m b l e r ; d i s a s s e m b l e r , h a n db o o k . $ 3 9 . 9 5

A S S E M B L E R / M O N I T O RM a c r o a s s e m b l e r a n e x t e n d e dm o n i t o r . S u p p o r t s a l s t a n d a r df u n c t i o n s p l u s f l o a t i n g p o i n tc o n s t a n t s . M o n i t o r s u p p o r t sb a n k s w i t c h i n g , q u i c k t r a c e ,s i n g l e s t e p , m o r e . $ 3 9 . 9 5

L D A J S R D E C

P L r t s C M P s t xS E P L S E

B A S I C C O M P I L E RC o m p i l e s c o m p l e t e B A S I Cl a n g u a g e i n t o e i t h e r f a s t 6 5 1 0m a c h i n e l a n g u a g e a n d / o r c o p a c t s p e e d c o d e . S u p p o r t s o v e rl a y s a n m a n y e x t e n d e d B A S I Cc o m m a n d s . C - 6 4 $ 3 9 . 9 5

C - 1 2 8 $ 5 9 . 9 5

S U P E R P A S C A LF u l l P a s c a l s u p p o r t s g r a p h i c s ,s p r i t e s , f i l e m a n a g e m e n t , m o r e .S u p p o r t s p o i n t e r s , d y n a m i cm e m o r y m a n a g e m e n t , m a c h i n el a n g u a g e . C o m p i l e s t f a s t 6 5 1 0m a c h i n e c o d e . C - 6 4 $ 5 9 . 9 5

C - 1 2 8 $ 5 9 . 9 5

• ♦ • ^ r - . i - i . - -

F O R T H L A N G U A G EB a s e d o F o r t h 7 ( p a r t s o f' 8 3 ) . S u p p o r t s h i r e s g r a p h i c sa n s o u n d s y n t h e s i z e r . F u l ls c r e e n e d i t o r , p r o g r a m m i n gt o o l s , a s s e m b l e r , s a m p l e s ,h a n d b o o k $ 3 9 . 9 5

M A S T E RP r o f e s s i o n a l d e v e l o p m e n tp a c k a g e f o s e r i o u s a p p l ic a t i o n s . I n d e x e d f i l e s y s t e m , f u l ls c r e e 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 , m u l t i -p r e c i s i o n m a t h , r o y a l t y - f r e er u n t i m e , m o r e . $ 3 9 . 9 5

M A S T E RP r o f e s s i o n a l

D e v e l o p m e nP a c k a g e

V I D E O B A S I CA d 5 0 g r a p h i c , s o u n d a n u t i l i t y c o m m a n d s t y o u rp r o g r a m s w i t h t h i s s u p e rd e v e l o p m e n t p a c k a g e . F r e ed i s t r i b u t i o n o f R U N T I M E v e r s i o n

n r o y a l t i e s ! $ 3 9 . 9 5

X R E R 1 2 8 & X R E F 6 4B A S I C c r o s s - r e f e r e n c e

I n d i s p e n s i b l e t o o l f o r B A S I Cp r o g r a m m e r s . F i n d s a l r e f e re n c e s t v a r i a b l e s , c o n s t a n t sl i n e n u m b e r s . S o r t s i a l p h ab e t i c a l o r d e r . C - 6 4 $ 1 7 . 9 5

C - 1 2 8 $ 1 7 . 9 5

F o C o m m o d o r e C o m p u t e r s

R e f e r e n c e B o o k s

A N A T O M Y O C - 6 4 I n s i d e r ' s g u i d e t t h ' 6 i n t e r n a l s . G r a p h i c s , s o u n d , I / O , k e r n a l , m e m o r ym a p s , a n d m u c h m o r e . C o m p l e t e c o m m e n t e dR O l i s t i n g s . 3 0 0 p p $ 1 9 . 9 5A N A T O M Y O 1 5 4 1o t h i s d r i v e ,e x a m p l e s p r m e n t e d 1 5 4 1

E & s t h a n d b o o kw i t h m a n y

i F u l l y c o m -5 0 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 4 L e a r n6 5 1 0 c o d e & w r i t e f a s t p r o g r a m s . M a n y s a m p l e sa n l i s t i n g s f o r c o m p l e t e a s s e m b l e r , m o n i t o ra n s i m u l a t o r . 2 0 0 p p $ 1 4 . 9 5G R A P H I C S B O O K F O C - 6 4 B e s t r e f e r e n c e ,c o v e r s b a s i c a n d a d v a n c e d g r a p h i c s . S p r i t e s ,H i r e s , M u l t i c o l o r , 3 D - g r a p h i c s , I R Q , C A D ,p r o j e c t i o n s , c u r v e s , m o r e . 3 5 0 p p $ 1 9 . 9 5T R I C K S & T I P S F O C - 6 4 C o l l e c t i o n o e a s y - t o - u s e t e c h n i q u e s : a d v a n c e d g r a p h i c s ,i m p r o v e d d a t a i n p u t , e n h a n c e d B A S I C , C P / M ,d a t a h a n d l i n g a n m o r e . 2 7 5 p p $ 1 9 . 9 5

1 5 4 1 R E P A I R & M A I N T E N A N C E H a n d b o o ko t h d r i v e ' s h a r d w a r e . I n c l u d e s s c h e m a t i c st e c h n i q u e s t k e e p 1 5 4 1 r u n n i n g . A l i g n d r i v e w

w / s c o p e . L a r g e h a n d b o o k s i z e . $ 1 9 . 9 5A D V A N C E D M A C H I N E L A N G U A G E S u j e c t s n o c o v e r e d e l s e w h e r e : v i d e o c o n t r o l l e r ,i n t e r r u p t s , t i m e r s , I / O , e x t e n s i o n s t B A S I C . T i p sf o t h e s e r i o u s p r o g r a m m e r . 2 i 0 p p $ 1 4 . 9 5P R I N T E R B O O K C - 6 4 / V I C - 2 0 U n d e r s t a n dC o m m o d o r e , E p s o n c o m p a t i b l e p r i n t e r s 1 5 2 0p l o t t e r . U t i l i t i e s , s c r e e n d u m p , 3 D - p l o t , c o m e n t e d M P S - 8 0 1 R O l i s t i n g s . 3 3 0 p p $ 1 9 . 9 5S C I E N C E / E N G I N E E R I N G O C - 6 4 I n d e p t h i n t r o d u c t i o n t c o m p u t e r s i s c i e n c e .S o m e t o p i c s c o v e r e d a r e c h e m i s t r y , p h y s i c s ,a s t r o n o m y , e l e c t r o n i c s o t h e r s . 3 5 0 p p $ 1 9 . 9 5

C A S S E T T E B O O K C - 6 4 / V I C - 2 0 M a k e y o u rc a s s e t t e r u n f a s t e r t h a n d i s k d r i v e l C a s s e t t ed a t a - b a s e , d i s k t t a p e b a c k u p , t a p e t o d i s k ,F a s t T a p e o p e r a t i n g s y s t e m . 2 2 5 p p $ 1 4 . 9 5

P r o d u c t i v i t y T o o l sT E C H N I C A L A N A L Y S I S S Y S T E M

s o p h i s t i c a t e d c h a r t i n g a n t e c h n i c a la n a l y s i s s y s t e m f o s e r i o u s i n v e s t o r s . B c h a r t i n g a n a n a l y z i n g t h p a s t h i s t o r y o fs t o c k , T A c a h e l p p i n p o i n t t r e n d sp a t t e r n s a n p r e d i c t s t o c k ' s f u t u r e . T A l e t sy o e n t e r t r a d i n g d a t a f r o m t h k e y b o a r d o d i r e c t l y f r o m o n l i n e f i n a n c i a l s e r v i c e s . $ 5 9 . 9 5

P E R S O N A L P O R T F O L I O M A N A G E RC o m p l e t e p o r t f o l i o m a n a g e m e n t s y s t e m t o t h i n d i v i d u a l o p r o f e s s i o n a l i n v e s t o r . A l l o w si n v e s t o r s t e a s i l y m a n a g e t h e i r p o r t f o l i o s ,o b t a i n u p - t o - t h c m i n u t e q u o t e s n e w s , a n p e r f o r m s e l e c t e d a n a l y s i s . $ 3 9 . 9 5

M T * S a

I S n M t o

l i / i n sm u m s

t t

I M 1 n n . MN 1 3 t » J ) I

M l

M I T I

C A D P A Kd e l u x e g r a p h i c s d e s i g n a n d r a w i n g

p a c k a g e . U s w i t h o w i t h o u t a o p t i o n a ll i g h t p e n t c r e a t e h i g h l y - d e t a i l e d d e s i g n s .W i t h d i m e n s i o n i n g , s c a l i n g , t e x t , r o t a t i o n ,o b j e c t l i b r a r i e s , h a r d c o p y a n m o r e . $ 3 9 . 9 5

D A T A M A TP o w e r f u l , e a s y - t o - u s e d a t a m a n a g e m e n tp a c k a g e u s i n g m e n u s e l e c t i o n s . F r e e - f o r md e s i g n , 5 f i e l d s / r e c o r d , 2 0 0 0 r e c o r d s / d i s k .S o r t o m u l t i p l e f 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 s e l e c t i o n a n f o r m a t t i n g f o p r i n t i n g r e p o r t s . $ 3 9 . 9 5

Page 319: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 319/322

A u t h o r i t a t i v e B o o k sF r o m A b a c u s S o f t w a r e

. . . a n a m e y o c a c o u n t o S p e c i a l F e a t u r e

I D E A S F O U S O C - 6 4 T h e m e s : a u t oe x p e n s e s , c 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 , d i e tp l a n n e r , w i n d o w a d v e r t i s i n g , o t h e r s . I n c l u d e s a l p r o g r a m l i s t i n g s . 2 0 0 p p $ 1 2 . 9 5C O M P I L E R B O O K C - 6 4 / C - 1 2 8 A l y o u n e e dt k n o w a b o u t c o m p i l e r s : h o t h e y w o r k ,c r e a t i n g y o u r o w a n g e n e r a t i n g t h f i n a lm a c h i n e c o d e . 3 0 0 p p $ 1 9 . 9 5A d v e n t u r e G a m e w r i t e r ' 8 H a n d b o o ks t e p - b y - s t e p g u i d e t d e s i g n i n g a n w r i t i n g y o u ro w a d v e n t u r e g a m e s . A d v e n t u r e g a m e g e n er a t o r f o u r e x a m p l e g a m e s . 2 0 0 p p $ 1 4 . 9 5P E E K S & P O K E S F O R T H E C - 6 4 I n c l u d e si n - d e p t h e x p l a n a t i o n s o P E E K , P O K E , U S R ,a n o t h e r B A S I C c o m m a n d s . L e a r n t h " i n s i d e "t r i c k s a b o u t y o u r ' 6 4 . 2 D 0 p p $ 1 4 . 9 5

O P T I O N A L D I S K E T T E S F O B O O K S F o y o u r c o n v e n i e n c e , t h p r o g r a m s c o n t a i n e d i e a c h o o u b o o k s a r a v a i l a b l e o d i s k e t t e . A l p r o g r a m t h o r o u g h l y t e s t e d e r r o r - f r e e . S p e c i f yt i t l e o b o o k w h e n o r d e r i n g . $ 1 4 . 9 5 e a c h

B O O K S C O V E R I N G T H E C - 1 2 8C - 1 2 8 I N T E R N A L S D e t a i l e d g u i d e p r e s e n t st h 1 2 8 ' s o p e r a t i n g s y s t e m , e x p l a i n s t h g r a p h i c s c h i p s , M e m o r y M a n a g e m e n t U n i t , a n c o m m e n t e d l i s t i n g o K e r n a l . 5 0 0 + p p $ 1 9 . 9 51 5 7 1 I N T E R N A L S I n s i d e r s ' g u i d e f o n o v i c ea n d a d v a n c e d u s e r s . C o v e r s s e q u e n t i a lr e l a t i v e f i l e s , a n d i r e c t a c c e s s c o m m a n d s .D e s c r i b e s i m p o r t a n t D O r o u t i n e s . C o m m e n t e dD O l i s t i n g s . 5 0 0 + p p $ 1 9 . 9 5C - 1 2 8 T R I C K S & T I P S C h o c k f u l l o i n f o f o e v e r y o n e . C o v e r s 8 0 c o l u m n h i - r e s g r a p h i c s ,w i n d o w i n g , m e m o r y l a y o u t , K e r n a l r o u t i n e s ,s p r i t e s a n m o r e . 3 0 p $ 1 9 . 9 5C P / M O T H C - 1 2 8 E s s e n t i a l g u i d e t u s i n gC P / M o y o u r 1 2 8 . S i m p l e e x p l a n a t i o n s o t h o p e r a t i n g s y s t e m , m e m o r y u s a g e , C P / M u t i l i t yp r o g r a m s , s u b m i t f i l e s a n m o r e . 1 9 . 9 5

C O M P U T E R A I D E D D E S I G N o y o u r C - 1 2 8o r 6 4 . C r e a t e C A s y s t e m u s i n g p r o g r a m sp r o v i d e d . C o v e r s 3 o b j e c t s r o t a t i o n ,M A C R O S , h a t c h i n g , z o o m i n g , m i r r o r i n g , l i n ew i d t h s , d a s h e d l i n e s , m o r e . 3 0 0 p a g e s $ 1 9 . 9 5

F o s c h o o l o s o f t w a r e d e v e l o p m e n t , c h o o s e S U P E R C S U P E R C ' p o w e r f u l s c r e e n e d i t o r i f u l l - f u n c t i o n e dw i t h h o r i z o n t a l a n v e r t i c a l s c r o l l i n g , c o p y a n d s e a r c h /r e p l a c e f o e a s y e d i t i n g . S o u r c e f i l e s m a b e u p t 4 1 K .T h S U P E R c o m p i l e r i f a s t a n c r e a t e s l i n k f i l e s . U t s e v e n s e p a r a t e m o d u l e s m a b l i n k e d i n t or e a d y - t o - r u n o b j e c t p r o g r a m . T m a i n t a i n C ' s p o r t a b i l i t y ,S U P E R C s u p p o r t s t h K e r n i g h a n R i t c h i e s t a n d a r d( w i t h o u t b i f i e l d s ) , m a k i n g i v e r y c o m p l e t e . S U P E R Ca l s o i n c l u d e s c o m p l e t e I / l i b r a r y .

O t h e r f e a t u r e s o t h S U P E R p a c k a g e :c o n v e n i e n t h e x a d e c i m a l a n o c t a l i n p u te r r o r f i l e l i s t e d t d i s k e t t es u p p o r t s c o n d i t i o n a l c o m p i l i n gc o m p l e t e s t r i n g s a n a r r a y sf u l l m a t h e m a t i c a l f u n c t i o n s C - 6 4 $ 7 9 . 9 5

C - 1 2 8 $ 7 9 . 9 5

X P E RC a p t u r e y o u r i n f o r m a t i o n o X P E R ' sk n o w l e d g e b a s e a n d l e t h i s f i r s t e x p e r ts y s t e m f o C o m m o d o r e c o m p u t e r s h e l p y o m a k e i m p o r t a n t d e c i s i o n s . L a r g e c a p a c i t y .C o m p l e t e w i t h e d i t i n g r e p o r t i n g . $ 5 9 . 9 5

P O W E R P L A NO n o t h m o s t p o w e r f u l s p r e a d s h e e t s w i t hi n t e g r a t e d g r a p h i c s f o y o u r C o m m o d o r ec o m p u t e r . I n c l u d e s m e n u o k e y w o r d s e l e c ti o n s , o n l i n e h e l p s c r e e n s , f i e l d p r o t e c t i o n ,w i n d o w i n g , t r i g f u n c t i o n s a n m o r e . P o w e r -G r a p h l e t s y o c r e a t e i n t e g r a t e d g r a p h s a n c h a r t s f r o m y o u r s p r e a d s h e e t d a t a . $ 3 9 . 9 5

Q U I C K C O P Y V 2 . 0B a c k u y o u r v a l u a b l e d a t a w i t h t h e f a s t e s td i s k c o p i e r w e ' v e s e e n t d a t e . C o p i e s a ne n t i r e d i s k i t w a n h a l f m i n u t e s o t w d r i v e s o r t h r e e a n h a l f o o n e . $ 1 9 . 9 5

C H A R T P A KM a k e p r o f e s s i o n a l - q u a l i t y p i e , b a a n l i n ec h a r t s , a n g r a p h i c s f r o m y o u r d a t a . I n c l u d e ss t a t i s t i c a l f u n c t i o n s . A c c e p t s d a t a f r o mC a l c R e s u l t a n M u l t i P l a n . C - 1 2 8 h a s 3 t h r e s o l u t i o n o t h C - 6 4 v e r s i o n . O u t p u t s t m o s t p r i n t e r s . C - 6 4 $ 3 9 . 9 5

C - 1 2 8 $ 3 9 . 9 5

O r d e r i n g I n f o r m a t i o n ]A b a c u s 1 1 S o f t w a r e

P . O B o x 7 2 1 1 G r a n d R a p i d s , M i c h i g a n 4 9 5 1 0F o P o s t a g e a n h a n d l i n g i n c l u d e $ 4 . 0 0 p e o r d e r . F o r e i g n o r d e r s i n c l u d e$ 1 0 . 0 0 p e i t e m . M o n e y o r d e r a n c h e c k s i U . S . D o l l a r s o n l y . M a s t e r C a r d ,V I S A a n d A m e r i c a n E x p r e s s a c c e c t e d . M i c h i g a n r e s i d e n t s p l e a s e i n c l u d e4 s a l e s t a x .

F o f a s t s e r v i c e c a l l ( 6 1 6 ) 2 4 1 - 5 5 1 0 T e l e x 7 0 9 - 1 0 1F o f r e e c a t a l o g , p l e a s e r e t u r n t h i s c o u p o n o a c o p y t o

A b a c u s S o f t w a r e , P . O . B o 7 2 1 1 , G r a n d R a p i d s , M 4 9 5 1 0

N a m eA d c l r B S SC i t yS t a t e

P H O N E : ( 6 1 6 ) 2 4 1 - 5 5 1 0

2

Page 320: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 320/322

Page 321: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 321/322

Page 322: Commodore 128 Book 3 Tips and Tricks

8/6/2019 Commodore 128 Book 3 Tips and Tricks

http://slidepdf.com/reader/full/commodore-128-book-3-tips-and-tricks 322/322