Compute's Second Book of VIC

284
8/6/2019 Compute's Second Book of VIC http://slidepdf.com/reader/full/computes-second-book-of-vic 1/284 C O M P U T E ! B o o k s P u b l i c a t i o n $ 1 2 . 9 5 C O M P U T E D S e c o n d B o o k o V I A p p l i c a t i o n s , u t i l i t i e s , g a m e s , a n o t h e r h e l p f u l i n f o r m a t i o n f o u s e r s o t h V I C - 2 O * h o m e c o m p u t e r

Transcript of Compute's Second Book of VIC

Page 1: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 1/284

C O M P U T E ! B o o k s P u b l i c a t i o n $ 1 2 . 9 5

C O M P U T E D S e c o n d B o o k o V I A p p l i c a t i o n s , u t i l i t i e s , g a m e s ,a n o t h e r h e l p f u l i n f o r m a t i o nf o u s e r s o t h V I C - 2 O *h o m e c o m p u t e r

Page 2: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 2/284

Page 3: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 3/284

C O M P U T E I ' s S e c o n d B o o k o V I

C O M P U T E r P u b l i c a t i o n s J n c . ®S u b s i d i a r y O A m e r i c a n B r o a d c a s t i n g C o m p a n i e s . I n c .

G r e e n s b o r o , N o r t h C a r o l i n aV I C - 2 O I t r a d e m a r k o C o m m o d o r e E l e c t r o n i c s , L t d .

Page 4: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 4/284

T h f o l l o w i n g a r t i c l e s w e r e o r i g i n a l l y p u b l i s h e d i C O M P U T E ! M a g a z i n e , c o p y r i g h t1 9 8 2 , S m a l l S y s t e m S e r v i c e s , I n c . :" U s i n g A t a r i J o y s t i c k s W i t h Y o u r V I C " Q u n e )" V I C S u p e r E x p a n d e r M e m o r y M a p " ( J u l y )" E l e c t r i c E r a s e r " ( A u g u s t )" V I C P a u s e " ( S e p t e m b e r )" V I C S t i c k s " ( S e p t e m b e r )" P i x e l a t o r " ( O c t o b e r )' T h e V I K e y b o a r d R e d e f i n e d " ( O c t o b e r )" V I C J o y s t i c k a n K e y b o a r d R o u t i n e " ( O c t o b e r )" U X B " ( N o v e m b e r )" P r o g r a m m i n g V I C ' s F u n c t i o n K e y s " ( N o v e m b e r )" V I C H a r m o n y " ( N o v e m b e r )" V I C F i l e C l e r k " ( D e c e m b e r )" U n d e r s t a n d i n g V I H i g h - R e s G r a p h i c s " ( D e c e m b e r )" V I C B l o c k S A V E a n L O A D " ( D e c e m b e r )T h f o l l o w i n g a r t i c l e s w e r e o r i g i n a l l y p u b l i s h e d i C O M P U T E ! M a g a z i n e , c o p y r i g h t1 9 8 3 , S m a l l S y s t e m S e r v i c e s , I n c . :" V I C S o u n d G e n e r a t i o n " ( J a n u a r y )" D a a t h R a c e s " ( F e b r u a r y )" U F O P i l o t - V I C C u s t o m C h a r a c t e r s f o G a m e G r a p h i c s " ( F e b r u a r y )" T h e E x p a n d e d / U n e x p a n d e d V I C " ( F e b r u a r y )" B i - d i r e c t i o n a l V I S c r o l l i n g " ( F e b r u a r y )' T i g h t e r A c e s A d S e c o n d V I J o y s t i c k " ( M a r c h )" V I C T r a c i n g D i s a s s e m b l e r " ( M a r c h )" V I C E d i t y p e : T e x t E d i t i n g a n S t o r a g e P r o g r a m " ( A p r i l )" V I C W o r d " ( A p r i l )" V I C A u t o m a t i c B A S I C " ( A p r i l )" H e x e d i t : B A S I C H e x E d i t o r f o t h V I C " ( A p r i l )" V I C K a l e i d o s c o p e " ( M a y )" V e r t i c a l D a t a A c q u i s i t i o n W i t h V I C " ( M a y )

C o p y r i g h t 1 9 8 3 , C O M P U T E ! P u b l i c a t i o n s , I n c . A l l r i g h t s r e s e r v e d .

R e p r o d u c t i o n o t r a n s l a t i o n o f a n p a r t o f t h i s w o r k b e y o n d t h a t p e r m i t t e d b S e c t i o n s1 0 a n 1 0 o t h U n i t e d S t a t e s C o p y r i g h t A c w i t h o u t t h p e r m i s s i o n o t h c o p y r i g h to w n e r i u n l a w f u l .

P r i n t e d i t h U n i t e d S t a t e s o f A m e r i c a

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

C O M P U T E ! P u b l i c a t i o n s , I n c . P b s t O f f i c e B o 5 4 0 6 , G r e e n s b o r o , N 2 7 4 0 3 , ( 9 1 9 ) 2 7 5 - 9 8 0 9 ,i a s u b s i d i a r y o A m e r i c a n B r o a d c a s t i n g C o m p a n i e s , I n c . , a n i n o a s s o c i a t e d w i t h a n m a n u f a c t u r e r o p e r s o n a l c o m p u t e r s . V I C - 2 0 i t r a d e m a r k o C o m m o d o r e E l e c t r o n i c sL i m i t e d . A t a r i i t r a d e m a r k o A t a r i , I n c .

Page 5: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 5/284

F o r e w o r dC h a p t e r 1 A p p l i c a t i o n s a n R e c r e a t i o n s

F i l e C l e r kD e n n i s S u r e k

E d i t y p eP a u l B i s h o p

U X R o g e r H a g e r t y 1 D a a t h e R a c e sR o b e r t B F e r r e e 2

C a t c hR o n n i e K o f f l e r 2

F i n a n c i a l A d v i s o rS t e v e H a m i l t o n 3

B a n n e rM i c h a e l H a b e c k a n d M i c h a e l T y b o r s k i 4

C h a p t e r 2 G r a p h i c s 4 K a l e i d o s c o p e

A l a n W . P o o l e 4 U n d e r s t a n d i n g H i g h - R e s o l u t i o n G r a p h i c s

R o g e r N . T r e n d o w s k i 5 P i x e l a t o r

J a m e s C a l l o w a y 5 C u s t o m C h a r a c t e r s f o G a m e G r a p h i c s

B u B a n i s 7 C h a p t e r 3 S o u n d 8

H a r m o n yH e n r y F o r s o n 8

S o u n d G e n e r a t o rR o b e r t L e 8

M a k i n g S o u n d w i t h B l i p sJ o h n H e i l b o r n 9

C h a p t e r 4 P r o g r a m m i n g T e c h n i q u e s 1 0 P r o g r a m m i n g F u n c t i o n K e y s

J i W i l c o x 1 0 T h E x p a n d e d / U n e x p a n d e d V I

G a r y L E n g s t r o m 1 0 V e r s a t i l e D a t a A c q u i s i t i o n

D o u g H o r n e r a n S t a n K l e i n 1 1

C h a p t e r 5 U t i l i t i e sP a u s e

D o u g F e r g u s o n 1 2 1 1

Page 6: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 6/284

B i d i r e c t i o n a l S c r o l l i n gC h a r l e s S a r a c e n o 1 2

M a r k N i g g e m a n n 1 2 A u t o m a t i c B A S I C

K a r l R B e a c h 1 2 T h V I K e y b o a r d R e d e f i n e d

A m i h a i G l a z e r 1 3 B l o c k S A V E a n L O A D

S h e i l a T h o r n t o n 1 3 E l e c t r i c E r a s e r

L o u i s S a n d e r 1 4

Q i a p t e r 6 J o y s t i c k s 1 4 V I S t i c k s

J i B u t t e r f i e l d 1 4 J o y s t i c k a n K e y b o a r d R o u t i n e

M i c h a e l K l e i n e r t 1 5 U s i n g A t a r i J o y s t i c k s w i t h Y o u r V I

C h r i s t o p h e r J F l y n n 1 6 F i g h t e r A c e s A d S e c o n d J o y s t i c k

J o h n P a r r 1 6

C h a p t e r 7 M a c h i n e L a n g u a g e 1 7 H e x e d i t B A S I C H e E d i t o r

B i l l Y e 1 7 T r a c i n g D i s a s s e m b l e rP e t e r B u s b y 1 8

C u s t o m i z e d B A S I C A s s e m b l e rR . S . M o s e r 1 8

G u m b a l l : M a c h i n e L a n g u a g e G a m e U s i n g t h B A S I C A s s e m b l e rR . S . M o s e r 1 9

Q i a p t e r 8 M e m o r y M a 2 0 W h a t I M e m o r y M a p ?

G R u s s D a v i e s 2 0 9S u p e r E x p a n d e r M e m o r y M a

C h u a n C h e e 2 4 M e m o r y M a I n d e x 2 5

A p p e n d i x A B e g i n n e r ' s G u i d e t T y p i n gi P r o g r a m s 2 6

A p p e n d i x B H o t T y p e I P r o g r a m s 2 6 I n d e x 2 6

I

Page 7: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 7/284

H i g h - q u a l i t y p r o g r a m s a n e a s y - t o - u n d e r s t a n d a r t i c l e s b r o u g h tC O M P U T E R S F i r s t B o o k o V I t t h t o o c o m p u t e r b o o k b e s ts e l l e r l i s t s a l l o v e r t h c o u n t r y . N o C O M P U T E ! f S e c o n d B o o k o V I o f f e r s e v e n m o r e t V I u s e r s : p r o g r a m m i n g t e c h n i q u e s ,

u s e f u l s o f t w a r e , c o m p u t e r u t i l i t i e s , a n l o t s o u s e f u l i n f o r m a t i o n .A n e v e r y t h i n g h e r e i u t C O M P U T E ! " s w e l l - k n o w ns t a n d a r d s .

V I u s e r s a e v e r y l e v e l o e x p e r i e n c e w i l l f i n d s o m e t h i n gu s e f u l .

I y o u s y o u r V I j u s t f o f u n , t h e r e a r s i g a m e s , i n c l u di n g t h e a l l - m a c h i n e - l a n g u a g e " S n a k e . "

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

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

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

A n t h a t ' s j u s t t h b e g i n n i n g .O t h a r t i c l e s t h a t o r i g i n a l l y a p p e a r e d i C O M P U T E ! M a g az i n e a n C O M P U T E ! ^ G a z e t t e f o C o m m o d o r e , m a n y h a v e b e e n

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

Page 8: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 8/284

Page 9: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 9/284

Page 10: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 10/284

Page 11: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 11/284

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

T h i s p r o g r a m i d e s i g n e d t s a v e y o s o m e s p a c e a r o u n d t h h o u s e s p a c e p e r h a p s p r e s e n t l y o c c u p i e d b l a r g e f i l i n g c a b in e t s o o l c a r d b o a r d s t o r a g e b o x e s . Y o w i l l b a b l e t f i l e a n a a n t i m e r e a d b a c k q u i c k l y 6 p a g e s o i n f o r m a t i o n s t o r e d o o n s i d e o 6 0 - m i n u t e c a s s e t t e .

W h e t h e r i i r e c i p e s , b u d g e t s , o r u t i l i t y b i l l s , t h c o m p u t e rs t o r e s t h e m e f f i c i e n t l y a n a c c u r a t e l y . T h i s p r o g r a m s h o u l d b S A ^ E d a t h b e g i n n i n g o e v e r y t a p e t h a t i t b c o n v e r t e d i n t of i l i n g c a b i n e t .

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

I y o a r e w r i t i n g , y o c a w r i t e a s m a n y p a g e s a t h f i l em a x i m u m a l l o w s . I y o a r r e a d i n g , y o c a s w i t c h t w r i t i n gs u b s e q u e n t p a g e s , o r y o c a c o n t i n u e r e a d i n g t h r o u g h f o l l o wi n p a g e s a n f i l e s .

L i n e 1 s e t s t h n u m b e r o f i l e s ( N F ) a 1 a n t h n u m b e r o p a g e s p e f i l e ( N P ) a 4 C h a n g i n g e i t h e r o b o t h o t h e s e t l o w e rv a l u e s i e a s i l y d o n e a n d r e q u i r e s n f u r t h e r c h a n g e s t t h p r g r a m . T h p r o d u c t N N s h o u l d b k e p t t 6 o l e s s . W i t h t h i si m i n d , i i j u s t a e a s y t d e c r e a s e N a n i n c r e a s e N P B u n o t et h a t t h p r o g r a m o n l y f a s t f i n d s t e a c h f i l e , a n t h a t i n c r e a s i n gt h n u m b e r o p a g e s p e f i l e d e f e a t s t h i s f a s t f i n d f e a t u r e .

I n c r e a s i n g N t m o r e t h a n 1 c r e a t e s s o m e m i n o r p r o b l e m s .Y o w i l l h a v e t p u a d d i t i o n a l D A T A s t a t e m e n t s f o f i l e n a m e s b t w e e n l i n e s 1 0 a n 2 4 0 . S e c o n d , t k e e p t h m e n u f r o m s c r o l l i n gu w h e n t h p r o g r a m i r u n , i n s e r t t h f o l l o w i n g f o u r l i n e s :

8 I K > I N T ( N F / 2 ) T H E N 9 8 P R I N T " P R E S S A N Y K E Y T O " : P R I N T " C O N T I N U E "8 G E T B $ : I F B $ = " " T H E N 8 8 P R I N T " { C L R } "

Page 12: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 12/284

T h e s e l i n e s a l l o w y o t s e h a l f o f t h f i l e n a m e s f i r s t a n t h e n t c a l l f o t h r e s t w h e n y o a r e r e a d y .T h r e e N a m i n g C h o i c e sL i n e s 1 0 t 2 4 a r r e s e r v e d f o f i l e n a m e s . T h e r e a r t h r e em e t h o d s f o d e a l i n g w i t h f i l e n a m e s . I y o k n o w a l o t h f i l en a m e s a h e a d o t i m e , y o c o u l d e n t e r t h e m w h e n y o t y p e i t h i sp r o g r a m . C o n v e r s e l y , y o m i g h t n o t b o t h e r w i t h f i l e n a m e s a a l l ,b u u s o n l y t h f i l e n u m b e r s , w r i t i n g d e s c r i p t i o n s o t h f i l e s o t h c a s s e t t e b o x .

T h s y s t e m t h a t u s i t s a v e t h p r o g r a m a t h e x a c t b e g i nn i n g o t h m a g n e t i c p o r t i o n o e a c h t a p e . t h e n s i m p l y e d i t a n o t h e s e l i n e s t o t h t i t l e w a n t a n d r e S A V E t h p r o g r a m s t a r t i n ga t h s a m e p o s i t i o n o t h t a p e . T h n e p r o g r a m h a n o c h a n g e d i l e n g t h a n t h e r e f o r e w i l l s t i l l f a s t f i n d t t h p r o p e rf i l e h e a d e r s .

L i n e s 2 5 t 2 9 d e t e r m i n e w h i c h f i l e y o w a n t a n w h e t h e ry o w i s h t r e a d o w r i t e . I y o a r r e a d i n g f i l e # 1 t h e n l i n e 3 0 b r a n c h e s t t h r e a d i l r o u t i n e b e g i n n i n g o l i n e 6 6 0 . T h i s i p o s s i b l e b e c a u s e t h P L A Y k e i a l r e a d y d o w n f r o m l o a d i n g t h p r o g r a m , a n d n o f a s t f o r w a r d i r e q u i r e d . I a l o t h e r c a s e s , s o m ec a s s e t t e k e i n s t r u c t i o n s w i l l b n e e d e d . L i n e 3 1 d e t e r m i n e s i a n k e y s a r d o w n a n i n s t r u c t s y o t p r e s s S T O P i o r d e r t b r i n g a l k e y s u p L i n e 3 2 0 t e m p o r a r i l y h a l t s t h p r o g r a m u n t i lt h i s i d o n e . I y o a r w r i t i n g f i l e # 1 t h e n l i n e 3 3 b r a n c h e s t t h w r i t e r o u t i n e o l i n e 4 2 0 . A g a i n , n f a s t f o r w a r d i r e q u i r e df o t h i s f i l e .

F o a l o t h e r f i l e s t h c a s s e t t e m u s t b p u i n t o f a s t f o r w a r d .L i n e 3 4 0 g i v e s t h i s i n s t r u c t i o n , a n l i n e 3 5 h a l t s t h p r o g r a m u t i t h f a s t f o r w a r d k e y i d e p r e s s e d . L i n e 3 6 0 b e g i n s t h t i m e r ,a n l i n e 3 7 h a l t s t h p r o g r a m u n t i l a e l a p s e d t i m e o 9 j i f f i e sp e p a g e p e f i l e i r e a c h e d . A t h a t i n s t a n t , l i n e 3 8 s t o p s t h c a s e t t e m o t o r . L i n e s 3 9 a n 4 0 g e a l k e y s u i m a n n e r d s c r i b e d p r e v i o u s l y . L i n e 4 1 b r a n c h e s t t h r e a d r o u t i n e , a n l i n e s 4 2 t 5 0 a r t h i n s t r u c t i o n s f o w r i t i n g a f i l e .

L i n e 5 1 o p e n s t h f i l e f o w r i t i n g a n i n c r e m e n t s t h p a g ec o u n t . I n t h e c o m m a n d O P E N 1 , 1 , 1 t h f i r s t " 1 i t h l o g i c a l f i l en u m b e r o r e f e r e n c e n u m b e r f o o u d a t a f i l e . T h s e c o n d s p e c if i e s c a s s e t t e d r i v e # 1 a n t h t h i r d i n d i c a t e s t h a t t h f i l e i b e i n go p e n e d f o w r i t i n g w i t h n e n d - o f - t a p e m a r k e r . I i t h a b s e n c eo t h i s m a r k e r t h a t a l l o w s t h r e a d i n g o c o n s e c u t i v e p a g e s l a t e r .F o r c o n v e n i e n c e , a l f i l e s a r a s s i g n e d l o g i c a l f i l e # 1 T h p r o g r a m

Page 13: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 13/284

k e e p s t r a c k o f t h a c t u a l f i l e n u m b e r w i t h t h v a r i a b l eL i n e s 5 2 t 5 9 i n p u t f r o m t h k e y b o a r d u t 2 m e s s a g e

l i n e s t h a t m a k e u p o n p a g e . I m e s s a g e l i n e c o n t a i n i n g m o r et h a n 2 c h a r a c t e r s i e n t e r e d , i i e d i t e d t t h a t l e n g t h b l i n e 5 4 0 .L i n e 5 5 d i s p l a y s t h l a s t f i v e c h a r a c t e r s o t h m e s s a g e l i n e a s a cc e p t e d s t h a t y o k n o w h o t b e g i n y o u r n e x t m e s s a g e l i n e .

I y o a r w r i t i n g f e w e r t h a n 2 m e s s a g e l i n e s a n h a v es i g n a l e d t h i s w i t h t h i n p u t m e s s a g e S T O P , t h e n l i n e 5 8 w i l l f i l lt h r e s t o t h p a g e w i t h b l a n k m e s s a g e l i n e s . T h i s k e e p s a l t h p a g e s t h s a m e l e n g t h a n t h e r e f o r e a s p e c i f i c l o c a t i o n o t h t a p e . T h i s e n a b l e s y o t l a t e r c h a n g e a n p a g e s i m p l y b w r i t i n go v e r t h e o l d o n w i t h o u t h a v i n g t r e w r i t e t h e f o l l o w i n g p a g e s i t h a t f i l e . l i n e s 6 0 t 6 5 d e t e r m i n e i y o w i s h t w r i t e t h n e x tp a g e . I t h a n s w e r i n o t h p r o g r a m t e r m i n a t e s .

L i n e s 6 6 t 7 4 0 a r e t h r e a d f i l e r o u t i n e . T h z e r o i t h c o m a n d O P E N 1 , 1 , 0 i n d i c a t e s r e a d o p e r a t i o n . L i n e 7 2 0 m o v e s t h c u r s o r u o n l i n e i t h m e s s a g e l i n e i 2 c h a r a c t e r s s t h a t n b l a n k l i n e s w i l l b d i s p l a y e d b e t w e e n m e s s a g e l i n e s .

L i n e s 7 5 t 7 8 a r f o i n p u t t i n g a n b r a n c h i n g o c o m a n d s t r e a d o w r i t e s u b s e q u e n t p a g e s . L i n e s 7 9 0 t 8 1 0 a r e t h u s u a l i n s t r u c t i o n s t g e a l c a s s e t t e k e y s u w h e n c h a n g i n g f r o mr e a d i n g o n e p a g e t w r i t i n g t h n e x t p a g e .

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

F i l e C l e r k1 N F = 1 5 : N P = 4 : D I M A $ ( N F ) , O $ ( 2 0 )2 P R I N T " { C L R } * * * V I C F I L E C L E R K * * * "3 R E 4 R E 5 R E 6 P R I N T " T H I S P R O G R A M W I L L "7 P R I N T " R E A D O W R I T E T O F I L E : "8 F O R I = 1 T O N F9 R E A D A $ ( l ) z P R I N T I ; T A B ( 5 ) ; A $ ( l ) : N E X T I1 0 D A T A U N N A M E D1 1 D A T A U N N A M E D1 2 D A T A U N N A M E D1 3 D A T A U N N A M E D1 4 D A T A U N N A M E D1 5 D A T A U N N A M E D1 6 D A T A U N N A M E D1 7 D A T A U N N A M E D

Page 14: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 14/284

1 8 D A T A U N N A M E D1 9 D A T A U N N A M E D2 0 D A T A U N N A M E D2 1 D A T A U N N A M E D2 2 D A T A U N N A M E D2 3 D A T A U N N A M E D2 4 D A T A U N N A M E D2 5 I N P U T " F I L E S E L E C T E D " ; F2 6 I F F < 1 O R F > N F T H E N 2 5 02 7 I N P U T " R - R E A D / W - W R I T E H ; C $2 8 0 I F C $ = I I W " O R C $ = I I R " T H E N 3 0 02 9 G O T O 2 7 03 0 I F F = 1 A N D C $ = " R " T H E N 6 6 03 1 P R I N T " { C L R } 1 1 ; I F ( P E E K ( 3 7 1 5 1 ) A N D 6 4 ) = 0 T

H E N P R I N T " P R E S S S T O P O T A P E "3 2 I F ( P E E K ( 3 7 1 5 1 ) A N D 6 4 ) = 0 T H E N 3 2 03 3 I F F = 1 T H E N 4 2 03 4 P R I N T " P R E S S F A S T F O R W A R D "3 5 I F ( P E E K ( 3 7 1 5 1 ) A N D 6 4 ) = 6 4 T H E N 3 5 03 6 P R I N T " O K " : A = T I3 7 I F A B S ( T I - A ) < ( F - l ) * N P * 9 0 T H E N 3 7 03 8 P O K E 3 7 1 4 8 , P E E K ( 3 7 1 4 8 ) A N D 2 4 73 9 P R I N T " P R E S S S T O P O N T A P E "4 0 I F ( P E E K ( 3 7 1 5 1 ) A N D 6 4 ) = 0 T H E N 4 0 04 1 I F C $ = " R " T H E N 6 6 04 2 P R I N T " { C L R } " ;4 3 P R I N T " I N S T R U C T I O N S T O 4 4 P R I N T " { R V S } W R I T E F I L E "4 5 P R I N T " { 2 D O W N } M A X I M U M S : "4 6 P R I N T " = = = = = = = = "4 7 P R I N T " { D O W N } - 2 0 L I N E S P E P A G E "4 8 P R I N T " ( T Y P E S T O P I L E S S ) "4 9 P R I N T " - " ; N P ; " P A G E S P E R F I L E "5 0 P R I N T " { 2 D O W N } { R V S } W A I T { O F F } F O P R O M

P T . F I R S T "5 1 O P E N 1 , 1 , 1 : P C = P C + 15 2 P R I N T " { C L R } { R V S } W R I T E F I L E " ; F ; " P A G E " ;

P 5 3 F O R K = 1 T O 2 0 : I N P U T O $ ( K ) : I F L E N ( O $ ( K ) ) < = 2

2 T H E N 5 6 05 4 O $ ( K ) = L E F T $ ( O $ ( K ) , 2 2 )5 5 P R I N T " * L I N E E D I T E D T O * " ; R I G H T $ ( 0 $ ( K ) ,5 6 I F O $ ( K ) = " S T O P " T H E N 5 8 05 7 P R I N T # 1 , O $ ( K ) : N E X T K5 8 F O R I = K T O 2 0 : P R I N T * 1 , " " : N E X T I5 9 C L O S E 16 0 P R I N T " W R I T E N E X T P A G E ? " : I N P U T " Y / N " ; W $6 1 I F W $ = " N " T H E N 8 2 0

Page 15: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 15/284

6 2 I F W $ = " Y " A N D R $ = " N " T H E N 7 9 06 3 I F W $ = " Y " A N D P C < N P T H E N 5 1 06 4 I F P C > = N P T H E N P R I N T " M A X " ; N P ; " P A G E S R E A C

H E D " : G O T O 8 2 06 5 G O T O 6 0 06 6 O P E N 1 , 1 , 0 : P C = P C + 16 7 I F P O N P T H E N P C = 1 : F = F + 16 8 P R I N T " { C L R } " ;6 9 P R I N T " { R V S } R E A D F I L E " ; F ; " P A G E " ; P C7 0 F O R K = 1 T O 2 07 1 I N P U T # 1 , O $ ( K )7 2 P R I N T O $ ( K ) : I F L E N ( O $ ( K ) ) = 2 2 T H E N P R I N T "

{ U P } " ;7 3 N E X T K7 4 C L 0 S E 17 5 P R I N T " R E A D N E X T P A G E ? " : I N P U T " Y / N " ; R $7 6 I F R $ = " Y " T H E N 6 6 07 7 I F R $ = " N " T H E N 6 0 07 8 G O T O 7 5 07 9 P R I N T " P R E S S S T O P O T A P E " : R $ = " Y "8 0 I F ( P E E K ( 3 7 1 5 1 ) A N D 6 4 ) = 0 T H E N 8 0 08 1 G O T O 5 1 08 2 E N

Page 16: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 16/284

P a u l B i s h o pT h i s m i n i w o r d p r o c e s s o r l e t s y o e n t e r , e d i t , a n s a v e t e x t ' t o t a p e . I w o r k s w i t h t h V I p r i n t e r a n d a n y m e m o r y e x p a n s i o n .

I y o a r a a l l i k e m e t h m i n u t e y o s a t h V I C - 2 0 s i t t i n gt h e r e o t h s h o w r o o m t a b l e f l a s h i n g i t u p p e r - l o w e r c a s e m o d e ,y o s m i l e d t y o u r s e l f a n s a i d w h a t w o n d e r f u l t e x t s t o r a g e a n m a n i p u l a t i o n d e v i c e i w o u l d m a k e . W o n d e r f u l i n t h i s c o n t e x tm e a n s i n e x p e n s i v e , a n C o m m o d o r e p r o m i s e d u n l e s s i i t l i t e r a t u r e .

T h i s p r o g r a m i a m i n i a t u r e w o r d p r o c e s s o r . I w i l l a l l o w t h eu s e r t i n p u t t e x t , e d i t i ( w i t h c e r t a i n l i m i t a t i o n s ) , a n s a v e i t t a p e . T h t e x t m a b p r i n t e d o a n l i n e l e n g t h s p e c i f i e d , t h o u g hi w i l l n o r i g h t j u s t i f y . T h p r o g r a m u s e s w o r d - w r a p p i n gs c h e m e t m i n i m i z e t h l i m i t e d d i s p l a y s i z e . T h p r o g r a m r q u i r e s e x t r a m e m o r y , b u w i l l w o r k w i t h a n y e x p a n d e r p a c k a g e( 3 K , 8 K 1 6 K , e t c . ) . T h P R I N T r o u t i n e s w e r e w r i t t e n f o t h V I 1 5 1 5 o r 1 5 2 5 p r i n t e r .E n t e r i n g T e x tT h p r o g r a m i m e n u d r i v e n , a n w w i l l d i s c u s s t h o p t i o n s i d e t a i l . N e m o d e i u s e d f o e n t e r i n g t e x t . I i a l s o t h m o d e i w h i c h t h e f o r m a t t i n g f e a t u r e s a r s e l e c t e d . C e n t e r i n g i d o n e b yp r e s s i n g t h e u p - a r r o w ( t ( n e x t t t h R E S T O R E k e y ) a t h b g i n n i n g o t h l i n e t h a t i t b c e n t e r e d . R e m e m b e r t u s t h c a r r i a g e r e t u r n a t h e n o t h l i n e , a n n o t e t h a t t h l i n e m a n o e x c e e d t h l i n e l e n g t h y o i n t e n d t p r i n t .

T h s e c o n d f u n c t i o n i a i n s e t l i n e l e n g t h . T h i s i s e l e c t e d b p r e s s i n g t h e f i r s t b r a c k e t ( [ ( s h i f t e d c o l o n ) a t h s t a r t o t h t e x t t b i n s e t . A l t e x t b e f o r e t h e n e x t r e t u r n c h a r a c t e r w i l l b p r i n t e do t h a l t e r n a t e l i n e l e n g t h , w h i c h w i l l b s p e c i f i e d d u r i n g p r i n ti n g . L i n e n u m b e r i n g i s o m e t h i n g t h a t u s f r e q u e n t l y . I i s l e c t e d w i t h t h s e c o n d b r a c k e t ( ] ) , a n t h l i n e w i l l b p r i n t e dw i t h n u m b e r ( n u m b e r e d s e q u e n t i a l l y b t h c o m p u t e r ) b e f o r ea n a f t e r t h l i n e . E x a m p l e s o a l t h e f o r m a t t i n g o p t i o n s a r r e r e s e n t e d i F i g u r e 1

Page 17: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 17/284

F i g u r e 1 F o r m a t t i n g O p t i o n sS a m p l e T e x t

T h i s i s p a g e o d e m o t e x t f o " E d i t y p e . " T h i s i t h n o r m a ll i n e l e n g t h . N o t e t h a t t h e r e i n h y p h e n a t i o n o w o r d s i t h p r i n t r o u t i n e , s o t h e e d g e s m a y b e s o m e w h a t r a g g e d . R e s e t t i n gt h e l i n e l e n g t h m a y h e l p .

T h i s i a i n s e t l i n e . I n s e t s m a b s e t a n y l e n g t h a n m a b e l o n g e r t h a n t h n o r m a ll i n e l e n g t h i n e c e s s a r y .

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

1 T h i s i a e x a m p l e o n u m b e r e d l i n e . 1

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

B a c k s p a c i n g i t h N e m o d e m a b d o n e o n l y w i t h t h D E k e a n m a c o n t i n u e o n l y t t h f i r s t c h a r a c t e r o t h l i n e o w h i c h t h c u r s o r r e s t s . A n f u r t h e r D E L e t i n g w i l l r e s u l t i a I l e g a l Q u a n t i t y e r r o r . I a e r r o r i i a e a r l i e r l i n e , i m u s t b c o r e c t e d i n t h E d i t m o d e . A l k e y s r e p e a t , a n t h B r i t i s h p o u n ds y m b o l ( £ ( n e x t t C L H O M E ) i u s e d t r e t u r n t t h m e n u .O n c e t h m e n u i c h o s e n , n f u r t h e r t e x t m a b e n t e r e d i t h N e m o d e . ( T h i s i s o m e t h i n g t h u s e r c o u l d c h a n g e . )

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

T e x t e n t e r e d i t h N e m o d e c a n b e r e v i e w e d a n m o d i f i e di t h E d i t m o d e . T h e m o d e h a t h r e e o p t i o n s : F o r w a r d , C o r r e c t ,a n R e t u r n t M a i n M e n u . T h F o r w a r d o p t i o n s c r o l l s t h r o u g ht h t e x t o n s c r e e n l i n e a t i m e . T m a k e c h a n g e s i e n t e r e d t e x t ,u s t h C o r r e c t o p t i o n . Y o w i l l b g i v e n t h p r o m p t " e r r o r / ' , a w h i c h p o i n t y o e n t e r t h c h a r a c t e r s y o w i s h t c h a n g e a t h e ya p p e a r i n t h e t e x t . E n y o u r e n t r y w i t h t h u p - a r r o w ( f k e y , n o t h R E T U R N k e y . T h n e x t p r o m p t i " c o r r e c t i o n : " . E n t e r t h t e x ta y o w i s h i t a p p e a r i t h c o r r e c t e d v e r s i o n . A g a i n f o l l o wy o u r i n p u t w i t h t h u p - a r r o w k e y r a t h e r t h a n R E T U R N . T h c o p u t e r w i l l t h e n s e a r c h t h t e x t f o t h " e r r o r " a n r e p l a c e i w i t ht h " c o r r e c t i o n . " I t h s e a r c h c h a r a c t e r s a r e n o f o u n d i t h t e x t ,t h p r o g r a m w i l l p r o v i d e a e r r o r m e s s a g e .

Page 18: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 18/284

S a v i n g a n P r i n t i n gT h S a v e m o d e i s t r a i g h t f o r w a r d i o p e r a t i o n : s i m p l y p r e s s t h S k e y a n R E T U R N a n t h t e x t w i l l b s t o r e d u n d e r t h t i t l e y o e n t e r e d i t h N e m o d e . L o a d i j u s t l i k e i t I y o i n c l u d e f i l en a m e , t h c a s s e t t e d r i v e w i l l s e a r c h f o t h a t f i l e ; o t h e r w i s e i w i l ll o a d t h f i r s t f i l e i c o m e s t o T h L o a d a n P r i n t m o d e i f o f i l e st o l o n g t b c o n t a i n e d i m e m o r y a n i f a i r l y a u t o m a t i c . Y o s i m p l y s e t h f o r m a t t i n g i t h P r i n t m o d e , a n d l e t h c o m p u t e rd t h r e s t .

T h P r i n t m o d e i a l s o s t r a i g h t f o r w a r d . F i r s t i a s k s f o t h n o r m a l l i n e l e n g t h . T h i s m a b e a n y v a l u e u t 8 0 b u v a l u e s b t w e e n 4 a n 7 a r r e c o m m e n d e d . N e x t y o a r a s k e d f o t h i s e t l i n e l e n g t h . A g a i n , t h i s s h o u l d b b e t w e e n 4 a n 7 0 N e x t y o a r a s k e d f o f o s i n g l e o f o d o u b l e s p a c i n g . F i n a l l y , t h c o p u t e r a s k s f o t h n u m b e r a w h i c h i w i l l b e g i n t h s e q u e n t i a ll i n e n u m b e r i n g . T h i s m a b s e a a n v a l u e , b u u s u a l l y w i l l b o n e .

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

B e f o r e w c o n s i d e r t h e p r o g r a m i d e t a i l , f e c o m m e n t sa b o u t o p e r a t i o n w i l l b i o r d e r h e r e . F i r s t , t h e c u r s o r d o e s n o f u n c t i o n a w e l l a i s h o u l d . a s e a r c h i n g f o c u r e . I n t h em e a n t i m e , i y o f i n d i m o r e d i s t r a c t i n g t h a n h e l p f u l , y o m a g e r i o i b d e l e t i n g P O K E 2 0 4 , 0 f r o m l i n e 1 2 0 . A l s o , f r o m t i m et t i m e , e r r o r s w i l l h a p p e n w h i c h w i l l c a u s e t h m a c h i n e t d f a u l t t B A S I C . T h i s i n c a u s e f o a l a r m . f e m o m e n t s s t u d yi n t h p r o g r a m l i s t i n g a n G O T O i t h i m m e d i a t e m o d e w i l lg e y o o u o a l b u t h w o r s t s p o t s . I i d o u b t , G O T O 5 ( t h em e n u ) .

F i g u r e 2 N e M o d e C o m m a n d sC e n t e r T e x tI n s e tN u m b e r L i n e

D E k e B a c k s p a c eR e t u r n t M e n u

1

Page 19: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 19/284

P r o g r a m S t r u c t u r eS i n c e h a v e i n c l u d e d n d o c u m e n t a t i o n i t h b o d y o t h p r g r a m , w i l l l i s t t h e v a r i o u s p a r t s o f i h e r e . Y o w i l l w a n t t k e e pt h i s h a n d y f o r e f e r e n c e , s i n c e e v e r y R E y o a d w i l l c o s t y o v a l u a b l e m e m o r y s p a c e .

L i n e 4 i i n i t i a l h o u s e k e e p i n g , s e t t i n g v a r i a b l e s a n d D I M i n gt h t e x t s t r i n g a r r a y .

L i n e s 5 1 - 6 7 a r e t h m e n u .L i n e s 1 0 0 - 2 8 0 a r t h t e x t e n t r y a n w o r d - w r a p p i n g r o u t i n e ,

i n c l u d i n g t h d e l e t e r o u t i n e i l i n e 2 0 0 .L i n e s 3 0 1 0 - 3 3 5 0 a r t h s t r i n g s e a r c h a n r e p l a c e , t h " E d i tM o d e . "

L i n e s 3 8 0 0 - 4 7 1 0 a r t h p r i n t r o u t i n e . L i n e s 4 0 6 0 - 4 0 9 5 a r f o g e t t i n g s t r i n g o p r i n t i n g l e n g t h . L i n e s 4 2 0 0 - 4 2 4 0 a r u s e d i t h c e n t e r i n g f u n c t i o n . 4 3 0 0 - 4 7 1 0 a r f o t i d y i n g u t h p r i n t s t r i n g sa n s e n d i n g t h e m t t h p r i n t e r .

L i n e s 5 0 0 0 - 5 0 8 0 a r t h e l o a d r o u t i n e .L i n e s 6 0 0 0 - 6 0 8 0 a r f o s a v i n g t e x t .L i n e s 7 0 0 0 - 7 0 0 9 a r f o t h p a g e n u m b e r i n g f u n c t i o n .

V a r i a b l e L i s tA i t h a c t u a l t e x t s t r i n g .C i t h g e c h a r a c t e r s t r i n g i n t h N e m o d e .C 4 i t h e r r o r s t r i n g i t h E d i t m o d e .C 5 i t h c o r r e c t i o n s t r i n g i t h E d i t m o d e .C 6 i t h r i g h t r e m a i n d e r o t h s t r i n g b e i n g s e a r c h e d f o t h e r r o r i

t h E d i t m o d e .D E i t h s t r i n g o t h v a r i a b l e S L J i t h g e c h a r a c t e r s t r i n g f o t h c o r r e c t i o n s t r i n g i E d i t m o d e .M i t h s t r i n g f o t h m o d e s e l e c t i o n i n t h m e n u .P i t h p r i n t s t r i n g .T l i t h l e f t o v e r f r o m P a f t e r s e a r c h i n g f o s p a c e a t h e n o t h

l i n e .1 2 i t h w o r k i n g s t r i n g o A i t h P r i n t m o d e .W i t h g e s t r i n g i t h E d i t m o d e .X i t h w o r k i n g c h a r a c t e r i n g e t t i n g a 8 0 - c h a r a c t e r l i n e f o P $ Z i t h g e s t r i n g f o r t h L o a d m o d e .L i t h n o r m a l l i n e l e n g t h .L i t h i n s e t l i n e l e n g t h .L i t h l i n e c o u n t .P i t h p a g e c o u n t .S i t h l i n e n u m b e r i n g c o u n t e r .

1

Page 20: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 20/284

E d i t y p e4 P C = 1 : L C = 1 : F L = 0 : P R I N T C H R $ ( 1 4 ) : D I M A $ ( 2 0

0 ) : P R I N T " { C L R } " : P O K E 6 5 0 , 1 2 85 M $ = M l i5 P R I N T " { C L R } { 3 S P A C E S } M O D E

{ S H I F T - S P A C E } S E L E C T I O N " : P R I N T : P R I N T : PR I N T " L P = L O A D { S H I F T - S P A C E } A N D{ S H I F T - S P A C E } P R I N T " : P R I N TP R I N T " N = N E W " : P R I N T : P R I N T " E = E D I T " : P R I NT : P R I N T " P = P R I N T

5 P R I N T : P R I N T " S = S A V E " : P R I N T : P R I N T " L = L O A" : P R I N T : P R I N T " C = C O N T I N U E "6 P R I N T ; I N P U T " S E L E C T S H I F T - S P A C E } M O D E ;

M ; M $6 I F M $ = " E " T H E N 3 0 1 06 I F M $ = " P " T H E N 3 8 0 06 I F M $ = " N " T H E N 1 0 06 I F M $ = " L " T H E N 5 0 0 06 I F M $ = " S " T H E N 6 0 0 06 I F M $ = " L P " T H E N 3 8 0 06 I F M $ = " C " T H E N F O R B = 1 T O K - 1 : P R I N T A $ ( B ) : N E

X T B : P R I N T A $ ( K ) ; : G O T O 1 2 06 G O T O 5 11 0 F O R A = 1 T O 2 0 0 : A $ ( A ) = " " : N E X T A1 0 I N P U T " T Y P E { S H I F T - S P A C E } F I L E

S H I F T - S P A C E } N A M E " ; V $1 0 P R I N T " { C L R } { 7 S P A C E S } N E W M O D E " 2 K = l1 2 P O K E 2 0 4 , 0 : P O K E 2 0 7 , 0 : G E T C $ : I F C $ = " " T H E

N 1 2 01 3 I F C $ = " { D O W N } " T H E N 1 2 01 4 I F C $ = " { U P } " T H E N 1 2 01 5 I F C $ = " { R I G H T } " T H E N 1 2 01 6 I F C $ = " { L E F T } " T H E N 1 2 01 7 I F C $ = " f e " T H E N 5 11 7 I F C $ = " { H O M E } " T H E N 1 2 01 7 I F C $ = " { C L R } " T H E N 1 2 01 7 I F C $ = C H R $ ( 2 0 ) A N D L E N ( A $ ( K ) ) = 0 T H E N 1 2 01 8 P R I N T C $ ;1 9 I F C $ = C H R $ ( 1 3 ) T H E N K = K + 1 : A $ ( K ) = A $ ( K ) + C

$ : G O T O 1 2 02 0 I F C $ = C H R $ ( 2 0 ) T H E N A $ ( K ) = L E F T $ ( A $ ( K ) , h

E N ( A $ ( K ) ) - 1 ) : G O T O 1 2 02 1 A $ ( K ) = A $ ( K ) + C $ : C $ = " " : I F L E N ( A $ ( K ) ) < 2 2T H E N 1 2 0

2 2 I F R I G H T $ ( A $ ( K ) # 1 ) = C H R $ ( 3 2 ) T H E N 2 4 02 2 I F R I G H T $ ( A $ ( K ) , 1 ) = C H R $ ( 1 6 0 ) T H E N 2 4 02 3 A $ ( K + l ) = R I G H T $ ( A $ ( K ) , 1 ) + A $ ( K + l ) : A $ ( K

) = L E F T $ ( A $ ( K ) / L E N ( A $ ( K ) ) - 1 ) : G O T O 2 2 0

1

Page 21: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 21/284

2 4 F O R U = 1 T O 2 2 - L E N ( A $ ( K ) ) : P R I N T C H R $ ( 2 0 ): N E X T U

2 5 I F L E N ( A $ ( K ) ) < 1 1 T H E N P R I N T , ,2 6 I F L E N ( A $ ( K ) ) > 1 0 T H E N P R I N T ,2 6 I F A $ ( K ) = " " T H E N A $ ( K ) = "2 6 I F F R E ( Q ) < 6 0 0 T H E N P R I N T " { R V S } M E M O R Y

{ S H I F T - S P A C E } L O W { O F F } " : P R I N T2 6 I F F R E ( O ) < 5 0 0 T H E N 5 12 7 K = K + 1 : P R I N T A $ ( K ) ; : G O T O 1 2 02 8 G O T O 5 13 0 1 0 C 4 $ = " " : C 5 $ = 1 1 1 13 0 1 5 P R I N T " { C L R } { 5 S P A C E S } E D I T{ S H I F T - S P A C E } M O D E " : Q = l3 0 2 5 P R I N T : P R I N T " F = F O R W A R D " : P R I N T " f e = R E T

U R T M E N U " : P R I N T " C = C O R R E C T "3 0 2 6 P R I N T " ^ E L E C T I O N ?3 0 3 0 G E T W $ : I F W $ = " " T H E N 3 0 3 03 0 4 0 I F W $ = " F " T H E N P R I N T A $ ( Q ) : Q = Q + 1 : I F Q > 1 9

9 T H E N 5 1 : G O T O 3 0 3 03 0 5 5 I F W $ = " f e " T H E N 5 13 0 6 0 I F W $ = " C " T H E N 3 2 0 03 0 6 1 G O T O 3 0 3 03 2 0 0 P R I N T " E R R O R : "3 2 1 0 F O R A = 1 T O 8 03 2 2 0 G E T J $ : I F J $ = " " T H E N 3 2 2 03 2 2 5 I F J $ = " T M T H E N 3 2 5 03 2 2 6 I F J $ = C H R $ ( 2 0 ) T H E N C 4 $ = L E F T $ ( C 4 $ , L E N (

C 4 $ ) - 1 ) : G O T O 3 2 3 53 2 3 0 C 4 $ = C 4 $ + J $3 2 3 5 P R I N T J $ ;3 2 4 0 N E X T A3 2 5 0 P R I N T : P R I N T " C O R R E C T I O N :3 2 6 0 F O R A = 1 T O 8 03 2 7 0 G E T J $ : I F J $ = " " T H E N 3 2 7 03 2 8 0 I F J $ = " T " T H E N 3 3 1 03 2 8 1 I F J $ = C H R $ ( 2 0 ) T H E N C 5 $ = L E F T $ ( C 5 $ # L E N (

C 5 $ ) - 1 ) : G O T O 3 2 9 03 2 8 5 C 5 $ = C 5 $ + J $3 2 9 0 P R I N T J $ ;3 3 0 0 N E X T A3 3 1 0 P R I N T " { C L R } { 3 S P A C E S } { R V S } C O R R E C T I N

G { O F F } M3 3 2 0 F O R A = 1 T O 2 0 03 3 2 5 F O R B = 1 T O L E N ( A $ ( A ) )3 3 2 7 O = L E N ( C 4 $ )3 3 2 9 I F M I D $ ( A $ ( A ) , B # O ) = C 4 $ T H E N O O = L E N ( A $ (

A ) J - B + 1 - L E N ( C 4 $ )3 3 3 0 I F M I D $ ( A $ ( A ) / B / O ) = C 4 $ T H E N C 6 $ = R I G H T $

( A $ ( A ) , O O )

1

Page 22: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 22/284

3 3 4 0 I F M I D $ ( A $ ( A ) , B , O ) = C 4 $ T H E N A $ ( A ) = L E F T$ ( A $ ( A ) , B - l ) : G O T O 3 3 4 43 3 4 1 G O T O 3 3 4 63 3 4 4 A $ ( A ) = A $ ( A ) + C 5 $ + C 6 $ : C 4 $ = " " : C 5 $ = H "3 3 4 5 P R I N T " { C L R } " : F O R H = 1 T O A : P R I N T A $ ( H ) : N

E X T H : Q = H : : G O T O 3 0 2 53 3 4 6 N E X T B3 3 4 7 N E X T A3 3 4 8 P R I N T " { C L R } { R E D } { R V S } E R R O R

{ S H I F T - S P A C E } N O T { S H I F T - S P A C E } F O U N D{ B L U } { O F F } " : P R I N T : G O T O 3 0 2 5

3 3 5 0 G O T O 3 0 1 03 8 0 0 P R I N T ; I N P U T " N O R M A L { S H I F T - S P A C E } L I N E

{ S H I F T - S P A C E ) L E N G T H " ; L A3 8 1 0 P R I N T : I N P U T " I N S E T t S H I F T - S P A C E } L I N E

{ S H I F T - S P A C E } L E N G T H " ; L B3 9 0 3 P R I N T " S I N G L E { S H I F T - S P A C E } O R

S H I F T - S P A C E } D O U B L E { 6 S H I F T - S P A C E } SP A C E ? S / D

3 9 0 4 I N P U T S D $3 9 0 5 I N P U T " L I N E { S H I F T - S P A C E } N U M B E R I N G

{ S H I F T - S P A C E } # " ; S L4 0 0 0 T 1 $ = " " : N = 1 : L L = L A4 0 0 2 O P E N 4 , 44 0 0 3 T 2 $ = " " : P $ = " " : L C = 14 0 1 0 P R I N T # 4 : P R I N T # 4 : P R I N T # 44 0 1 6 L C = 34 0 4 0 C L O S E 4 , 44 0 5 0 I F A $ ( N ) = " " A N D M $ = " L P " T H E N 5 0 0 24 0 5 1 I F A $ ( N ) = " " T H E N 4 6 6 04 0 5 9 T 2 $ = A $ ( N )4 0 6 0 F O R A = 1 T O L L - L E N ( P $ )4 0 6 1 I F T 2 $ = " " T H E N 4 0 9 44 0 6 5 X $ = L E F T $ ( T 2 $ , 1 ) : T 2 $ = R I G H T $ ( T 2 $ , L E N (

T 2 $ ) - l )4 0 7 5 I F X $ = " [ " T H E N L L = L B : G O T O 4 0 6 04 0 7 6 I F X $ = " ] " T H E N F L = 1 : G O T O 4 0 6 04 0 8 0 I F X $ = " T " T H E N 4 2 0 04 0 8 5 I F X $ = C H R $ ( 1 3 ) T H E N 4 6 6 04 0 9 0 P $ = P $ + X $4 0 9 4 I F L E N ( T 2 $ ) = 0 T H E N N = N + 1 : G O T O 4 0 5 04 0 9 5 N E X T A4 1 0 0 G O T O 4 6 1 04 2 0 0 F O R A = 1 T O L A4 2 1 0 X $ = L E F T $ ( T 2 $ / 1 ) : T 2 $ = R I G H T $ ( T 2 $ # L E N (

T 2 $ ) - l )4 2 1 1 I F L E N ( T 2 $ ) = 0 T H E N N = N + 1 : T 2 $ = A $ ( N )4 2 1 4 I F A $ ( N ) = " " A N D L E N ( T 2 $ ) = 0 T H E N P $ = P $ + X $

: G O T O 4 6 6 0

1

Page 23: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 23/284

4 2 2 0 I F X $ = C H R $ ( 1 3 ) T H E N 4 3 0 04 2 3 0 P $ = P $ + X $4 2 4 0 N E X T A4 3 0 0 I N = ( 8 0 - L E N ( P $ ) ) / 2 : G O T O 4 6 7 04 6 1 0 F O R A = 1 T O L E N ( P $ )4 6 2 0 I F R I G H T ? ( P $ , 1 ) = C H R $ ( 3 2 ) T H E N 4 6 6 04 6 2 2 I F R I G H T ? ( P $ , 1 ) = C H R $ ( 1 6 0 ) T H E N 4 6 6 04 6 3 0 T l $ = R I G h T $ ( P $ , 1 ) + T l $ : P $ = L E F T $ ( P $ , L E

N ( P $ ) - 1 )4 6 4 0 N E X T A4 6 6 0 I F L E F T $ ( P $ , 1 ) = C H R $ ( 3 2 ) T H E N P $ = R I G H T $

( P $ , L E N ( P $ ) - 1 )4 6 6 1 I F L E F T $ ( P $ , 1 ) = C H R $ ( 1 6 0 ) T H E N P $ = R I G H T$ ( P $ , L E N ( P $ ) - 1 )

4 6 6 2 P R I N T P $4 6 6 5 I N = ( 8 0 - L L ) / 24 6 6 6 D E $ = S T R $ ( S L ) : I F F L = 1 T H E N O P E N 4 , 44 6 6 7 I F F L = 1 T H E N P R I N T # 4 , C H R $ ( 1 7 ) D E $ " . " S P C

( I N - L E N ( D E $ ) - 1 ) P $ S P C ( 7 6 - L E N ( P $ ) - I N )D E $ " . "

4 6 6 8 I F F L = 1 T H E N C L O S E 4 : L C = L C + 1 : S L = S L + 1 : P $= " " : F L = 0 : P $ = T 1 $ : T 1 $ = " " : G O T O 4 6 8 04 6 7 0 0 P E N 4 , 4 : P R I N T # 4 , C H R $ ( 1 7 ) S P C ( I N ) P $ : CL O S E 4 , 4 : P $ = I I M : P $ = T 1 $ : T 1 $ = I I M : L C = L C + 1

4 6 8 0 I F S D $ = " D " T H E N 0 P E N 4 , 4 : P R I N T # 4 : C L 0 S E 4: L C = L C + 1

4 6 9 0 I F L O 6 0 T H E N 7 0 0 04 7 0 0 I F X $ = C H R $ ( 1 3 ) T H E N L L = L A4 7 0 1 I F A $ ( N ) I I I 1 A N D M $ " L P I 1 T H E N P $ = P $ + X $ : G O

T O 5 0 0 24 7 0 5 I F A $ ( N ) = M M T H E N 5 14 7 1 0 G O T O 4 0 6 05 0 0 0 I N P U T " T Y P E { S H I F T - S P A C E } F I L E

{ S H I F T - S P A C E } N A M E " ; V $5 0 0 2 F O R A = 1 T O 2 0 0 : A $ ( A ) = " " : N E X T A5 0 0 5 P R I N T " { C L R } { 6 S P A C E S } L O A D

{ S H I F T - S P A C E } M O D E "5 0 1 0 O P E N 1 , 1 , 0 , V $5 0 1 5 P R I N T " F I L E { S H I F T - S P A C E } O P E N , L O A D I N

G 5 0 2 0 F O R A = 1 T O 2 0 05 0 2 5 F O R B = 1 T O 2 25 0 3 0 G E T # 1 , Z $5 0 3 1 A $ ( A ) = A $ ( A ) + Z $5 0 4 0 I F Z $ = " " T H E N 5 0 6 55 0 4 2 N E X T B5 0 5 0 N E X T A5 0 6 5 C L O S E 1 : N = 15 0 7 7 I F M $ = " L P " T H E N N = 1 : G O T O 4 0 5 0

1

Page 24: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 24/284

5 0 8 0 G 0 T 0 5 16 0 0 0 P R I N T " { C L R } S A V E { S H I F T - S P A C E } M O D E "6 0 1 0 O P E N 1 , 1 , 1 , V $6 0 3 0 F O R A = 1 T O 2 0 06 0 4 0 P R I N T # 1 , A $ ( A ) ;6 0 5 0 I F A $ ( A ) = M M T H E N 6 0 7 56 0 6 0 N E X T A6 0 7 5 C L O S E 16 0 8 0 G O T O 5 17 0 0 0 O P E N 4 , 47 0 0 1 F O R M = 1 T O 6 6 - L C7 0 0 2 P R I N T # 47 0 0 3 N E X T M7 0 0 4 P R I N T # 4 : P C = P C + 17 0 0 5 P R I N T # 4 , C H R $ ( 1 7 ) S P C ( 7 0 ) " P A G E " P 7 0 0 6 P R I N T # 47 0 0 7 C L O S E 47 0 0 8 L C = 37 0 0 9 G O T O 4 0 6 0

1

Page 25: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 25/284

R o g e r H a g e r t y" U X B " i g a m e w h i c h t e s t s b o t h d e x t e r i t y a n n e r v e . U n e x p l o d e db o m b s l i t t e r m i n e f i e l d . Y o u r j o i t q u i c k l y d e f u s e t h b o m b s . T h i sg a m e i n c o r p o r a t e s t e c h n i q u e c a l l e d " c h a i n i n g " b p u t t i n g t h i n s t r u ct i o n s i n s e p a r a t e p r o g r a m . I i i m p o r t a n t t t y p e a n S A V E t h f i r s tp r o g r a m a n t h e n t y p e a n S A V E t h s e c o n d p r o g r a m i m m e d i a t e l y a f t e rt h f i r s t p r o g r a m o n t h s a m e t a p e .

W o r l d W a I I L o n d o n i b a t t e r e d a n s c o r c h e d . A n a l t h o u g ht h e r e i p a u s e i t h f i g h t i n g , p e r i l r e m a i n s a m o n g t h r u b b l e :U X B s , U n e x p l o d e d B o m b s . T h e s e a r s h e l l s t h a t f a t t e d t d e t on a t e , b u r e m a i n d a n g e r , t h e i r u n s t a b l e n a t u r e m a k i n g t h e m l i e r a l l y t i m e b o m b s .Y o u r M i s s i o nY o a r a e x p l o s i v e s e x p e r t , c h a r g e d w i t h t h v i t a l d u t y o d e f u si n g o r h a r m l e s s l y d e t o n a t i n g t h e U X B s . U s t h k e y s I , J , K a n

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

F e C o m p l i c a t i o n sY o u r j o i n o a e a s y a i m a s o u n d . F i r s t , y o h a v e o n l y 3 s e c o n d s t p e r f o r m y o u r t a s k . S e c o n d , t h f i e l d y o u ' r e w o r k i n g i i a l s o a m i n e f i e l d . L i t t e r e d a b o u t t h p l a y f i e l d a r n u m e r o u s c o o r e d b o m b s t h a t y o m u s t a v o i d , l e s t y o m e e t a n u n t i d y f a t e .

U s i n g t h k e y b o a r d f o m o v e m e n t m a k e s t h g a m e q u i t ec h a l l e n g i n g , s i n c e i t a k e s w h i l e t g e u s e d t s u c h m o v e m e n t .H o l d k e d o w n t c o n t i n u e m o v e m e n t i t h s e l e c t e d d i r e c t i o n ,b u l e g b e f o r e y o h i m i n e !C h a i n i n g P r o g r a m s" U X B , " l i k e m a n y p r o g r a m s f o t h u n e x p a n d e d V I C , u s e s t e c hn i q u e c a l l e d " c h a i n i n g . " O f t e n , a s i n U X B , t h i n s t r u c t i o n s a n c h a r a c t e r d e f i n i t i o n s a r g i v e n i t h f i r s t p r o g r a m a n d t h m a i np r o g r a m i c o n t a i n e d i t h s e c o n d p r o g r a m . T h u s e r c a r e a dt h i n s t r u c t i o n s w h i l e t h s e c o n d p r o g r a m i b e i n g l o a d e d f r o mt a p e .

L i n e 6 1 0 i n U X B ' s f i r s t p r o g r a m s t a r t s t h l o a d i n g o t h s e c -

1

Page 26: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 26/284

o n p r o g r a m . T h V I i n t e r p r e t s l i n e 6 1 a i y o h a p r e s s e dt h S T O P / R U N k e w h i l e h o l d i n g d o w n t h S H I F T k e ( L O A Da n R U p r o g r a m f r o m t a p e ) .

P O K E 1 9 8 , 1 t e l l s t h c o m p u t e r t h e r e i o n c h a r a c t e r i t h k e y b o a r d b u f f e r . P O K E 6 3 1 , 1 3 1 p l a c e s t h A S C I I c o d e f o t h S H I F T e d R U N / S T O P k e ( 1 3 1 ) i n t o t h b u f f e r .

T h i s t e c h n i q u e c a e a s i l y b u s e d i y o u r p r o g r a m s . I t ' ss i m p l e w a t e x p a n d y o u r V I w i t h o u t a e x p a n d e r . R e m e m b e r ,t h o u g h , v a r i a b l e s w i l l n o p a s s f r o m o n e p r o g r a m t a n o t h e r , a n c h a i n e d p r o g r a m s m u s t b S i W E d o n r i g h t a f t e r t h e o t h e r o t h s a m e t a p e .

P r o g r a m 1 U X I n s t r u c t i o n s3 0 P R I N T " { C L R } 1 13 1 P O K E 5 6 , 2 83 2 C H = 3 2 7 7 63 3 F O R X = 7 1 8 4 T O 7 6 0 0 S T E P 23 4 P O K E X , P E E K ( C H ) : P O K E X + 1 , P E E K ( C H )3 5 C H = C H + 1 : N E X T X3 6 P O K E 3 6 8 7 9 , 2 53 7 P O K E 3 6 8 6 9 , 2 5 53 7 P O K E 3 6 8 6 7 , 4 73 7 P O K E 3 6 8 7 8 , 1 03 7 F O R L = 2 4 0 T O 1 8 0 S T E P ~ 13 7 P O K E 3 6 8 7 6 , L3 7 F O R M = 1 T O 2 0 : N E X T M : N E X T L3 7 P O K E 3 6 8 7 6 , 0 : P O K E 3 6 8 7 7 , 2 0 03 8 F O R L = 5 T O 0 S T E P - 23 8 P O K E 3 6 8 7 8 , L : N E X T L3 8 P O K E 3 6 8 7 7 , 03 9 P R I N T " { 5 R I G H T } { 2 D O W N } { 3 R I G H T } D A N G

E R " : P R I N T " { 9 R I G H T } { 2 D O W N } U X B "4 0 F O R I = 1 T O 1 0 04 2 P O K E 3 6 8 6 9 , 2 4 04 3 P O K E 3 6 8 6 9 , 2 5 54 3 P O K E 3 6 8 7 9 , 4 74 4 N E X T I4 4 P O K E 3 6 8 6 7 , 4 64 4 P O K E 3 6 8 7 9 / 1 5 4 : G O T O 8 0 04 4 P O K E 3 6 8 6 9 , 2 4 2 : P O K E 3 6 8 7 9 , 1 5 44 5 P R I N T " { C L R } Y O U H A V E B E E N S O M E H O W T R A

N S P O R T E D I N T O T H E { 2 S P A C E S } M I D D L E O F I E L D { 5 S P A C E S } W H I C H " ;

4 6 P R I N T " C O N T A I N S B O T H { 3 S P A C E S } A N T I Q UA T E D B O M B S A N D { 2 S P A C E S } W W I I U X B ' S ( UN E X P L O D E D G E R M A N R O C K E T " ;

1

Page 27: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 27/284

4 7 0 P R I N T " B O M B S ) . Y O M U S T D E - F U S E T H { S P A C E S } U X B ' S B Y S I M P L Y R U N -{ S P A C E S } N I N G I N T O T H E I R T A I L S . " ;

4 8 P R I N T " ^ F Y O U H I A O L B O M B Y O U W I L LB B L A S T E D 1 I Y O G E A L T H

4 9 P R I N T " U X B ' S Y O W I L L G E T W O M O R E O T H N E X T R O U N D - I F Y O U D O N ' T M A K E I T

5 0 P R I N T " Y O G E T W L E S S ( D O W N T O Z E R O) . { 5 L E F T } { 3 D O W N j P R E S S A N K E Y "

5 1 G E A $ : I F A $ = " " T H E N 5 1 05 1 P R I N T " { C L R } "5 2 P R I N T " T H E R E I S C R E E N W R A P - A R O U N D

R O S I D E T O { 3 S P A C E S } S I D E , B U I Y R U N { 2 S P A C E S } O V E R T H "

5 3 P R I N T " T O P O R B O T T O M Y O U W I L L B R E T U RN E D { 2 S P A C E S } T O T H U P P E R L E F T H A N DO R N E R . "

5 4 P R I N T " { D O W N } { 2 R I G H T } M O V E M E N T K E Y SR E : { D O W N }

5 5 P R I N T T A B ( 1 0 ) " { R V S } l J O F F } ( U P )5 6 P R I N T " { D O W N } { 5 R I G H T } ( L ) { R V S j j { O F F }{ R I G H T } { R V S } L { O F F } ( R T )5 7 P R I N T T A B ( 1 0 ) " { D O W N } { R V S } M { O F F } ( D O W N )5 8 P R I N T " { 4 D O W N } { 4 R I G H T j P R E S S A N K E 5 9 G E T A $ : I F A $ = " " T H E N 5 9 05 9 P R I N T " { C L R } " : P O K E 3 6 8 7 9 , 2 75 9 P O K E 5 1 , 0 : P O K E 5 8 , 2 8 : P O K E 5 5 , 0 : P O K E 5 6 , 2

8 : C L R : C B = 7 1 6 85 9 R E A D A : I F A = - l T H E N 6 0 5 9 F O R N = 0 T O 7 : R E A D B : P O K E ( C B + A * 8 + N ) , B : N

E X 5 9 G O T O 5 9 6 0 P R I N T " { 2 D O W N } { 3 R I G H T } P L E A S E W A I T

O R { 7 S P A C E S } T A P E T L O A D "6 1 P O K E 1 9 8 , 1 : P O K E 6 3 1 , 1 3 1 : E N D8 0 P O K E 3 6 8 6 9 , 2 4 0 : P R I N T " { 3 D O W N }

{ R I G H T } I N S T R U C T I O N S ? "8 1 G E T A $ : I F A $ = " " T H E N 8 1 08 1 I F A $ = " N " T H E N 5 9 8 2 G O T O 4 4 59 0 D A T A 1 , 1 5 3 , 2 1 9 , 1 8 9 , 1 5 3 , 1 2 9 , 6 6 , 3 6 , 3 69 1 D A T A 1 7 , 1 2 6 , 2 5 5 , 1 9 9 , 2 0 3 , 2 1 1 , 2 2 7 , 2 5 5 ,

1 2 9 2 D A T A 2 4 , 3 6 , 3 6 , 3 6 , 3 6 , 6 0 , 3 6 , 6 6 , 1 2 99 3 D A T A 2 6 , 4 , 2 4 , 2 4 , 6 0 , 1 2 6 , 1 2 6 , 1 2 6 , 6 09 4 D A T A 3 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 09 5 D A T A -

1

Page 28: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 28/284

P r o g r a m 2 U X G a m e P r o g r a mP O K E 4 5 , 1 2 1 : P O K E 4 6 , 2 1 : P O K E 5 1 , 0 : P O K E 5 5 , 0: C L R

P O K E 3 6 8 6 9 , 2 5 5 : Q Q = 1 0A = 3 0 7 2 0 : C = 0 : K = 0 : T I $ = " 0 0 0 0 0 0 " : C H = 7 9 5 4 : Q= 2 P R I N T 1 1 { C L R } "

1 F O R L = 1 T O Q Q1 M = { 2 S P A C E S } 7 6 8 0 + I N T ( R N D ( l ) * 5 0 6 )1 P O K E M , 1 : P O K E M + A , C : P O K E M + 2 2 , 2 4 : P O K E M + 2

2 + A , C1 N E X T1 G O S U B 1 0 0 02 I F C H + D > 8 1 8 6 T H E N C H = 7 6 8 0 : D = 02 I F C H + D < 7 6 8 0 T H E N C H = 7 6 8 0 : D = 02 1 F P E E K ( C H + D ) = 1 T H E N P O K E C H + D , 3 2 : P O K E C H +

D + 2 2 , 3 2 : G O T O 2 0 02 I F P E E K ( C H + D ) = 2 6 T H E N 2 0 0 02 I F T I > = 2 0 0 0 T H E N 2 9 93 P O K E C H + D # 1 73 P O K E 3 6 8 7 8 , 1 5 : P O K E 3 6 8 7 6 , 2 2 03 F O R P = 1 T O 5 : N E X T P3 P O K E 3 6 8 7 8 , 0 : P O K E 3 6 8 7 6 , 04 P O K E C H + D + A ^4 F O R R = 1 T O Q : N E X T R4 P O K E C H + D , 3 27 I F P E E K ( 1 9 7 ) = 1 2 T H E N D = D - 2 2 { 3 S P A C E S }7 I F P E E K ( 1 9 7 ) = 3 6 T H E N D = D + 2 28 I F P E E K ( 1 9 7 ) = 2 1 T H E N D = D + 18 I F P E E K ( 1 9 7 ) = 2 0 T H E N D = D - 19 I F T K = 5 0 0 T H E N Q = 1 01 0 I F T I = > 1 0 0 0 T H E N Q =1 1 I F T I = > 1 5 0 0 T H E N Q =1 2 I F T I = > 1 7 0 0 T H E N Q = 21 2 G O T O 2 52 0 K = K + 12 1 P O K E 3 6 8 7 7 , 2 2 02 1 F O R L = 1 4 T O 5 S T E P - 12 2 P O K E 3 6 8 7 8 / L2 3 F O R M = 1 T O 5 02 4 N E X T M2 5 N E X T2 6 P O K E 3 6 8 7 7 , 02 7 P O K E 3 6 8 7 8 , 02 7 I F K = Q Q T H E N 3 0 02 8 G O T O 2 52 9 P O K E 3 6 8 6 9 , 2 4 0 : P R I N T " { C L R } { D O W N }

{ R I G H T } { D O W N } Y O U R T I M E I U P " : F O R T =1 T O 1 5 0 0 : N E X T T

2

Page 29: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 29/284

3 0 P O K E 3 6 8 6 9 , 2 4 0 : P R I N T " { C L R } { 4 D O W N }{ R I G H T } Y O U R S C O R E = " ; K3 0 P R I N T " { 2 D O W N } N U M B E R O U X B ' S W A S " ; Q

3 0 I F K > H S C T H E N 3 4 3 3 P R I N T " { 2 D O W N } { 4 R I G H T j H I G H S C O R E = " ;

H S C : G O T O 3 4 23 4 P R I N T " { 2 D O W N } { 4 R I G H T } H I G H S C O R E = " ;

K " { 4 D O W N } { 9 R I G H T } { R V S } A N E H I G H{ O F F } "

3 4 H S C = K3 4 F O R D R = 1 T O 3 0 0 0 : N E X T3 4 I F K = Q Q T H E N Q Q = Q Q + 2 : G O T O 3 4 63 4 I F K < Q Q T H E N Q Q = Q Q - 2 : G O T O 3 4 63 4 I F Q Q = 0 T H E N 33 5 D = 0 : P O K E 3 6 8 6 9 , 2 5 5 : G O T O 41 0 0 0 F O R L = 1 T O 8 51 0 1 0 R = 7 6 8 0 + I N T ( R N D ( 1 ) * 5 0 6 )1 0 1 5 I F P E E K ( R ) = 1 T H E N P O K E R , 1 : P O K E R + A , C : G O

T O 1 0 3 01 0 2 0 P O K E R , 2 61 0 2 5 P O K E R + A , I N T ( R N D ( l ) * 6 ) + 21 0 3 0 N E X T L1 0 3 6 P O K E 7 9 5 4 , 3 21 0 4 0 R E T U R N2 0 0 0 P O K E 3 6 8 6 9 , 2 4 0 : P R I N T " { C L R } [ R V S }

{ R I G H T } { 9 D O W N } Y O U ' V E B E E N B L A S T E D{ O F F } "

2 0 1 0 P O K E 3 6 8 7 8 , 1 52 0 2 0 F O R I = 2 2 5 T O 1 2 8 S T E P - 22 0 3 0 P O K E 3 6 8 7 7 , I2 0 4 0 F O R D = 1 T O 5 0 : N E X T D2 0 5 0 N E X T I2 0 5 5 F O R X = 1 4 T O 0 S T E P - . l2 0 6 0 P O K E 3 6 8 7 8 , X2 0 6 5 N E X T X2 0 6 6 P O K E 3 6 8 7 8 , 0 : P O K E 3 6 8 7 7 , 02 0 8 0 G O T O 3 0 0

2

Page 30: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 30/284

R o b e r t B F e r r e e7 7 n s s i m u l a t i o n o r a c e t r a c k , c o m p l e t e w i t h a n i m a t i o n a n c o l o r , c a s e r v e a s a e f f e c t i v e m o d e l f o b e g i n n e r s i n t e r e s t e d i n p r o g r a m m i n g t h e i ro w g a m e s .

A o c c a s i o n a l c o m p l a i n t h e a r d a b o u t g a m e p l a y i n g o p e r s o n a lc o m p u t e r s i t h l a c k o t h h i g h - r e s o l u t i o n g r a p h i c s o a r c a d em a c h i n e s . I n t h e d i r e c t o p r o g r a m m o d e , t h b a s i c V I w i t h 5 h a a r e s o l u t i o n o 2 2 3 T h i s m a k e s t h m e c h a n i c s o a r c a d eg a m e s p o s s i b l e , b u t h m o v e m e n t i r a t h e r j e r k y . T h V I c a b i m p r o v e d t r e s o l u t i o n o f 1 7 6 1 8 t h r o u g h B A S I C w i t h p r og r a m m a b l e c h a r a c t e r s .V I G a m e T e c h n i q u e sF i r s t , t h p r o g r a m m e r n e e d s t k n o w a b o u t p r o g r a m m a b l e c h a ra c t e r s . A i n - d e p t h e x p l a n a t i o n i f o u n d i t h V I C - 2 0 P r o g r a mm e r ' s R e f e r e n c e G u i d e . B r i e f l y , t h u n e x p a n d e d V I h a m e m o r yl o c a t i o n s f r o m 7 1 6 8 t 7 6 7 9 f o p r o g r a m m a b l e c h a r a c t e r s . E a c hp r o g r a m m a b l e c h a r a c t e r i m a d e u o e i g h t b y t e s . B P O K E i n gn u m b e r s f r o m t 2 5 i n t o t h e s e l o c a t i o n s , c h a r a c t e r i p r g r a m m e d . T s h i f t i n t o t h p r o g r a m m e d c h a r a c t e r m o d e , y o P O K E 3 6 8 6 9 , 2 5 5 . P O K E i n g 3 6 8 6 9 , 2 4 0 w i l l r e t u r n y o t t h d i r e c t ,o p r o g r a m , m o d e . T f i n d t h m e m o r y l o c a t i o n o c h a r a c t e r ,u s e :

1 I N P U T " C H A R A C T E R " ; A $2 A = A S C ( A $ )3 I A > = 6 4 T H E N M L = ( A - 6 4 ) * 8 + 7 1 6 8 : P R I N T M L

; " - " ; M L + 7 G O T O 5 4 M L = A * 8 + 7 1 6 8 : P R I N T M L ; " - " ; M L + 75 G O T O 1

I N P U T t i n g i n t o t h a b o v e p r o g r a m s h o u l d g i v e a r e a d i n go 7 1 7 6 - 7 1 8 3 , w h i c h i t h l o c a t i o n o t h c h a r a c t e r A

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

2

Page 31: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 31/284

u n d e r t h e p r e v i o u s o n e , a n i m a g i n e t h l ' a r p i x e l d o t s a n O ' a r s p a c e s , y o c a d e c i d e w h a t e i g h t n u m b e r s s h o u l d g o i n t ot h e s e l o c a t i o n s . F o e x a m p l e , t y p e :1 0 F O C = 7 4 3 2 T 7 4 3 9 : R E A D A : P O K E C , A : N E

X 1 1 D A T A 0 , 6 , 7 , 2 5 2 , 2 5 2 , 7 2 , 7 2 , 7 2N o R U N . N o t h i n g h a p p e n s ! N o t y p e P O K E 3 6 8 6 9 , 2 5 5 a n e v e r y t h i n g w i l l t u r n t g a r b a g e . T y p e f e ! ' a n d y o u s h o u l d s e

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

T h n e x t t r i c k i t m o v e t h e s e p r o g r a m m a b l e c h a r a c t e r s .M o s t p r o g r a m s f o p e r s o n a l c o m p u t e r s i B A S I C m o v e t h e i rg r a p h i c s b d r a w i n g c h a r a c t e r a n t h e n e r a s i n g i w h i l e d r a wi n i a g a i n i t h e n e x t s p a c e . T h i s c a c a u s e r a t h e r j e r k y m t i o n . B p r o g r a m m i n g s e r i e s o c h a r a c t e r s , e a c h j u s t o n p i x e ld o f a r t h e r i n t h d i r e c t i o n y o w i s h t o g o , a n t h e n e r a s i n g t h p r e v i o u s c h a r a c t e r , y o c a n i m p r o v e y o u r r e s o l u t i o n t 1 7 1 8 4 .F o e x a m p l e , y o u r f i r s t t w c h a r a c t e r s m i g h t b e

T h s p a c e c h a r a c t e r i t h a r e a t h a ty o a r h e a d i n g f o r . ■ ■ ■ 1 L ! . . . : . . i . . l . . U . . i . . J

: : : :

: : : : : : ;

T h n e x t t w c h a r a c t e r s m i g h t b e

T h i s w o u l d c o n t i n u e u n t i l :

: : : : : :H

: I

. ; . . .. . L i . . .

,

: x : :

N o y o a r r e a d y t d t h s e r i e s o v e r a g a i n i t h e n e x t t w c h a r a c t e r s p a c e s .

2

Page 32: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 32/284

F o d e m o n s t r a t i o n o h o t h i s c a w o r k , t r P r o g r a m 1 B f o r e R U N n i n g , t a k e o u l i n e 3 3 0 . W w i l l u s i l a t e r i p r e p a r a t i o nf o t h g a m e . R U t h p r o g r a m , a n i t h h o r s e s l o o k f u n n y ,c h e c k y o u r D A T A l i n e s ( 5 0 - 2 1 0 ) . I i a l w o r k s r i g h t , a d l i n e 3 3 a n S A V E . T h i s i n f o r m a t i o n w i l l p r o v i d e t h p r o g r a m m a b l e c h a ra c t e r s f o r t h g a m e . A l p r o g r a m m a b l e c h a r a c t e r i n f o r m a t i o n w i l lr e m a i n i m e m o r y u n t i l t h m a c h i n e i t u r n e d o f o t h m e m o r yl o c a t i o n i n f o r m a t i o n i c h a n g e d . T h l a t t e r c a b i n t e n t i o n a l , o i c a h a p p e n a c c i d e n t a l l y i t h e s e l o c a t i o n s a r e n o p r o t e c t e d . T p r o t e c t a l p r o g r a m m a b l e c h a r a c t e r l o c a t i o n s , y o w i l l n e e d t P O K E 5 2 , 2 8 a n P O K E 5 6 , 2 8 . I b t h i s g a m e , o n l y t h u p p e r h a l fo t h s p a c e f o p r o g r a m m a b l e c h a r a c t e r s i p r o t e c t e d , l e a v i n gm o r e p r o g r a m s p a c e .

I l o o k s l i k e c l o s e r a c e a " D a a t h R a c e s "

A f t e r d e b u g g i n g t h g a m e ( P r o g r a m 2 ) b s u r e t S j W E i r i g h t a f t e r t h a l r e a d y S ^ V E d P r o g r a m 1 R U N n i n g P r o g r a m w i l la u t o m a t i c a l l y L O A D / R U N P r o g r a m ( t h e g a m e ) .T h R u l e s o t h G a m e' D a A T h R a c e s ' ' i g a m e f o o n t s i p l a y e r s . I c o n s i s t s o ff i v e r a c e s o r a n d o m t r a c k c o n d i t i o n s . E a c h h o r s e i g i v e n o d d sf o p a r t i c u l a r t r a c k i t h i n i t i a l i z a t i o n . T h e s e o d d s a r k e p tt h r o u g h o u t t h f i v e r a c e s . T r t a v o i d l o n g n a m e s f o p e o p l e o

2

Page 33: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 33/284

h o r s e s ; t h e y m a c a u s e a O U O M E M O R Y e r r o r . F i v e l e t t e r sw o r k n i c e l y . E a c h w i p a y s t h r e e - t o - o n e w h i l e e a c h l o s s c o s t s y o t h a m o u n t y o b e t .

M a j o r H i n tR e m e m b e r e a c h h o r s e ' s p e r f o r m a n c e o t h d i f f e r e n t t r a c k c o n d it i o n s . T h e y m a r u t h s a m e w a t h e n e x t t i m e t h a t t r a c k c o n d it i o n c o m e s u p

T h g a m e s e c t i o n s a r e m a r k e d w i t h R E s t a t e m e n t s . C h a n gi n t h d e n o m i n a t o r s i l i n e s 1 1 0 - 1 3 0 w i l l c h a n g e t h d i f f e r e n c eb e t w e e n e a c h h o r s e ' s o d d s . Y o c a c h a n g e t h n u m b e r o f r a c e si l i n e 6 8 0 , t h e p a y o f f i l i n e 6 2 0 , a n t h l o s s e s i n l i n e 6 3 0 .

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

P r o g r a m 1 D a a t h R a c e s P r o g r a m m a b l eC h a r a c t e r s1 P R I N T " { C L R } " : P O K E 3 6 8 7 9 , 8 : S = 7 8 5 6 : Z = 3 32 P R I N T " { 4 D O W N } { R I G H T } W E L C O M E T O V I C D O

W N S "3 F O R X = 1 T O 2 5 0 0 : N E X T4 F O R F = 7 4 2 4 T O 7 5 5 9 : R E A D A : P O K E F , A : N E X T5 D A T A 0 / 0 , 0 , 0 , 0 , 0 , 0 , 0 : R E M R E A D D A T A F O

H O R S E6 D A T A 0 , 6 , 7 , 2 5 2 , 2 5 2 , 7 2 , 7 2 , 7 27 D A T A 0 , 0 , 0 , 0 , 0 , 0 , 0 , 08 D A T A 3 , 3 , 1 4 , 1 2 6 , 1 1 6 , 3 6 , 3 4 , 3 29 D A T A 0 , 1 2 8 , 0 , 0 , 0 , 0 , 0 , 01 0 D A T A 1 , 1 , 7 , 6 3 , 5 8 , 1 7 , 1 6 , 3 21 1 D A T A 1 2 8 , 1 9 2 , 0 , 0 , 0 , 0 , 0 , 01 2 D A T A 0 , 0 , 3 1 , 3 1 , 9 , 1 6 , 1 6 , 01 3 D A T A 1 9 2 , 2 2 4 , 1 2 8 , 1 2 8 , 0 , 1 2 8 , 6 4 , 01 4 D A T A 0 , 0 , 1 5 , 1 5 , 4 , 8 , 8 , 01 5 D A T A 9 6 , 1 1 2 , 1 9 2 , 1 9 2 , 1 2 8 , 6 4 , 6 4 , 01 6 D A T A 0 , 0 , 7 , 7 , 2 , 2 , 4 , 01 7 D A T A 0 , 4 8 , 5 6 , 2 2 4 , 2 2 4 , 6 4 , 6 4 , 6 41 8 D A T A 0 , 0 , 3 , 3 , 1 , 1 , 1 , 01 9 D A T A 0 , 2 4 , 1 5 6 , 2 4 0 , 1 1 2 , 3 2 , 6 4 , 6 42 0 D A T A 0 , 0 , 0 , 1 , 1 , 0 , 0 , 02 1 D A T A 0 , 1 2 , 1 4 , 2 4 8 , 2 4 8 , 1 4 4 , 1 4 4 , 8 02 2 P R I N T " { C L R } 1 12 3 P O K E 3 6 8 6 9 , 2 5 5 : R E M S W I T C H T P R O G R A M M A

B L C H A R A C T E R S2

Page 34: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 34/284

2 4 P O K E S + C - 2 , 3 2 : P O K E S + C - 1 , 3 2 : R E M E R A S EL D H O R S E2 5 P O K E S + C # Z : P O K E S + C + 1 , Z + 1 : R E M D R A W N E H O R S E

2 6 Z = Z + 2 : R E M C O U N T H O R S E S I T H I S S E R I E S2 7 I F Z = 4 9 T H E N C = C + 1 : Z = 3 3 : R E M I S E R I E S I

F I N I S H E D M O V E T N E X T S E R I E S2 8 H = H + l z R E M ] C O U N T H O R S E S2 9 I F H < 1 6 9 T H E N G O T O 2 4 0 : I F N O T H E E N D O

T H L I N E , C O N T I N U E3 0 P R I N T M { C L R } M : P O K E 3 6 8 6 9 , 2 4 0 : P R I N T "

{ D O W N } E A C H P L A Y E R S T A R T S I 6 S P A C E S }W I T H $ 5 0 0 . " : R E M S W I T C H B A C K

3 1 P R I N T " { 2 D O W N } A W I N N I N G B E P A Y S{ S P A C E S } 3 T O 1 .

3 2 P R I N T " { 2 D O W N j P R E S S P L A Y A N D W A I T . "3 3 P R I N T " { B L K } " : P O K E 6 3 1 , 1 3 1 : P O K E 1 9 8 , 1 : R E

M L O A D A N R U N E X T P R O G R A M

P r o g r a m 2 D a a t h R a c e s G a m e P r o g r a m4 R E I N I T I A L I Z A T I O N5 P O K E 5 2 , 2 9 : P O K E 5 6 , 2 9 : R E M P R O T E C T M E M O R

L O C A T I O N S A B O V E 7 4 2 46 P R I N T " { C L R } { W H T } " : P O K E 3 6 8 7 9 f 87 Z = 3 3 : Z 1 = Z : Z 2 = Z : Z 3 = Z : Z 4 = Z8 P O K E 3 6 8 7 8 , 1 5 : S O = 3 6 8 7 79 S l = 7 8 5 6 : S 2 = 7 9 2 2 : S 3 = 7 9 8 8 : S 4 = 8 0 5 41 0 R E M G I V E O D D S1 1 D 1 = R N D ( 1 ) / 1 2 : D 2 = R N D ( 1 ) / 1 2 : D 3 = R N D ( 1 ) /

1 2 : D 4 = R N D ( 1 ) / 1 21 2 U 1 = R N D ( 1 ) / I 2 : U 2 = R N D ( 1 ) / 1 2 : U 3 = R N D ( 1 ) /1 2 : U 4 = R N D ( 1 ) / 1 21 3 T 1 = R N D ( 1 ) / 1 2 : T 2 = R N D ( 1 ) / 1 2 : T 3 = R N D ( 1 ) /

1 2 : T 4 = R N D ( 1 ) / 1 21 4 R E M N A M E P L A Y E R S A N H O R S E S1 5 I N P U T " { C L R } { 2 D O W N } H O W M A N Y P L A Y E R S "

; P 1 6 I F P L > 6 O R P L < 1 T H E N G O T O 1 5 01 7 F O R X = 1 T O P L : W ( X ) = 5 0 01 8 I N P U T " { 2 D O W N } N A M E O F P L A Y E R " ; N $ ( X ) :

N E X T1 9 P R I N T " { C L R } { D O W N } N A M E T H F O U R H O R S ES : " : F O R X = 1 T O 4 : I N P U T A ? ( X ) : N E X T

2 0 R E M S E T S T R A C K C O N D I T I O N S2 1 T R = R N D ( 1 ) * 1 0 : P R I N T " { B L K } { C L R } "2 2 I F T R < 3 T H E N C O $ = " D R Y " : O 1 = D 1 : O 2 = D 2 : O 3 = D

3 : O 4 = D 4 : P O K E 3 6 8 7 9 , 2 4 8 : G O T O 2 6 0

2

Page 35: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 35/284

: ; • ; : »

2 3 I F T R < 6 T H E N C O $ = " T U R F " : O 1 = T 1 : O 2 = T 2 : O 3 =T 3 : O 4 = T 4 : P O K E 3 6 8 7 9 , 2 1 6 : G O T O 2 6 0

2 4 C O $ = " M U D D Y " : P O K E 3 6 8 7 9 , 2 0 02 5 O 1 = U 1 : O 2 = U 2 : O 3 = U 3 : O 4 = U 42 6 R = R + 1 : P R I N T " { C L R } { D O W N } R A C E # " R : P R I N

T M T H E T R A C K I " ; C 0 $2 7 F O R Y = 1 T O 4 : P R I N T T A B ( 5 ) A $ ( Y ) 2 N E X T2 8 F O R X = 1 T O P L : P R I N T N $ ( X ) ; W ( X ) : N E X T : P R I N2 9 F O Q = T O P L : I F W ( Q ) = 0 T H E N B ( Q ) = 0 :

G O T O 2 9 2 9 P R I N T N $ ( Q ) ; : I N P U T " B E T S " ; B ( Q ) : I F B (

) < = W ( Q ) T H E N 2 9 2 9 P R I N T " C A N ' T B E T H A T M U C H 1 " : G O T O 2 9 2 9 I N P U T " { 2 S P A C E S } O N " ; B $ ( Q )2 9 N E X T3 0 P R I N T " { C L R } 1 13 1 P R I N T " { 2 D O W N } A L B E T S A R D O W N ! I I 3 2 R E S E T S C O L O R O T R A C K ( P A T H S )3 3 F O R X = S 1 T O S 1 + 2 2 : P O K E X + 3 0 7 2 0 , 0 : N E X T3 4 F O R X = S 2 T O S 2 + 2 2 : P O K E X + 3 0 7 2 0 , 4 : N E X T3 5 F O R X = S 3 T O S 3 + 2 2 : P O K E X + 3 0 7 2 0 , 5 : N E X T3 6 F O R X = S 4 T O S 4 + 2 2 : P O K E X + 3 0 7 2 0 , 6 : N E X T3 7 R E A D P : I F P = - 1 T H E N P R I N T " { U P }

{ 2 S P A C E S } " : G O T O 3 9 03 8 R E A D D : P O K E 3 6 8 7 6 , P : F O R X = 1 T O D : N E X T : P O K

E 3 6 8 7 6 , 0 : F O R X = 1 T O 5 0 : N E X T : G O T O 3 7 03 9 P O K E 3 6 8 6 9 , 2 5 5 : R E M P R O G R A M M A B L E C H A R C

T E M O D E4 0 R E M O V E H O R S E S A N D H O R S E S S O U N D4 1 M 1 = R N D ( 1 ) + O 1 : I F M 1 > . 9 T H E N 4 4 04 2 P O K E S 1 + C 1 - 1 , 3 2 : P O K E S 1 + C 1 - 2 , 3 2 : P O K E S 1

+ C 1 , Z l : P O K E S 1 + 1 + C 1 , Z l + 1 : Z l = Z l + 2 : H 1 = H1 +

4 3 P O K E S O , 2 0 0 : P O K E S O , 0 : I F Z 1 = 4 9 T H E N C 1 = C 1+ 1 : Z 1 = Z

4 4 M 2 = R N D ( 1 ) + O 2 : I F M 2 > . 9 T H E N 4 7 04 5 P O K E S 2 + C 2 - 1 , 3 2 : P O K E S 2 + C 2 - 2 , 3 2 : P O K E S 2

+ C 2 , Z 2 : P O K E S 2 + 1 + C 2 , Z 2 + 1 : Z 2 = Z 2 + 2 : H 2 = H2 +

4 6 I F Z 2 = 4 9 T H E N C 2 = C 2 + 1 : Z 2 = Z4 7 M 3 = R N D ( 1 ) + O 3 : I F M 3 > . 9 T H E N 5 0 04 8 P O K E S 3 + C 3 - 1 , 3 2 : P O K E S 3 + C 3 - 2 , 3 2 : P O K E S 3

+ C 3 , Z 3 : P O K E S 3 + 1 + C 3 , Z 3 + 1 : Z 3 = Z 3 + 2 : H 3 = H3 +

4 9 P O K E S O , 1 3 0 : P O K E S O , 0 : I F Z 3 = 4 9 T H E N C 3 = C 3+ 1 Z 3 . = Z

5 0 M 4 = R N D ( 1 ) + O 4 : I F M 4 > . 9 T H E N 5 3 0

2

Page 36: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 36/284

5 1 P 0 K E S 4 + C 4 - 1 , 3 2 : P O K E S 4 + C 4 - 2 , 3 2 : P 0 K E S 4+ C 4 , Z 4 : P 0 K E S 4 + 1 + C 4 , Z 4 + 1 : Z 4 = Z 4 + 2 : H 4 = H4 +

5 2 I F Z 4 = 4 9 T H E N C 4 = C 4 + 1 : Z 4 = Z5 3 R E F I N D W I N N E R5 4 I F H 1 > 1 6 8 T H E N J $ = A $ ( 1 ) : G O T O 5 9 05 5 I F H 2 > 1 6 8 T H E N J $ = A $ ( 2 ) : G O T O 5 9 05 6 I F H 3 > 1 6 8 T H E N J $ = A $ ( 3 ) : G O T O 5 9 05 7 I F H 4 > 1 6 8 T H E N J $ = A $ ( 4 ) : G O T O 5 9 05 8 G O T O 4 0 05 9 F O R C = 1 T O 1 0 : F O R X = 1 5 0 T O 2 5 0 S T E P 7 : P O K E 3 6

8 7 6 , X : N E X T : N E X T : P O K E 3 6 8 7 6 , 06 0 P O K E 3 6 8 6 9 , 2 4 0 : P R I N T " { C L R } M J $ " W I N S "6 1 F O R X = 1 T O P L6 2 I F B $ ( X ) = J $ T H E N W ( X ) = W ( X ) + B ( X ) * 3 : G O T O 6

4 6 3 W ( X ) = W ( X ) - B ( X ) : I F B $ ( X ) < > J $ T H E N P R I N T "

{ D O W N } " N $ ( X ) " L O S E S $ " ; B ( X ) : G O T O 6 5 06 4 P R I N T " { D O W N } " N $ ( X ) " W I N S $ " ; B ( X ) * 36 5 N E X T6 6 R E M R E A D Y F O N E X T R A C E6 7 H 1 = 0 : H 2 = 0 : H 3 = 0 : H 4 = 0 : Z 1 = Z : Z 2 = Z : Z 3 = Z : Z4 = Z : C 1 = 0 : C 2 = 0 : C 3 = 0 : C 4 = 06 8 I F R = 5 T H E N G O T O 7 1 06 9 F O R X = 1 T O 5 5 0 0 : N E X T7 0 R E S T O R E : G O T O 2 0 07 1 R E E N D I N G7 2 F O R X = 1 T O 2 5 0 0 : N E X T7 3 P R I N T " { 4 D O W N } { 3 S P A C E S } H A V E G O O D

D A Y 1 { 2 D O W N } " : F O R X = 1 T O P L : P R I N T N $ ( X ) ;" $ " ; W ( X ) : N E X T

7 4 R E S O N G D A T A7 5 D A T A 1 9 5 , 5 0 , 2 0 9 , 5 0 , 2 1 9 , 5 0 , 2 2 5 , 5 0 , 2 2 5 ,

5 0 , 2 2 5 , 5 07 6 D A T A 2 1 9 , 5 0 , 2 1 9 , 5 0 , 2 1 9 , 5 0 , 2 0 9 , 5 0 , 2 1 9 ,

5 0 , 2 0 9 , 5 0 , 1 9 5 , 3 0 07 7 D A T A 1 9 5 , 5 0 , 2 0 9 , 5 0 , 2 1 9 , 5 0 , 2 2 5 , 5 0 , 2 2 5 ,

5 0 , 2 2 5 , 5 07 8 D A T A 1 9 5 , 5 0 , 1 9 5 , 5 0 , 1 9 5 , 5 0 , 2 0 9 , 3 0 0 , - 1

2

Page 37: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 37/284

R o n n i e K o f f l e H e r e i a s i m p l e g a m e w h i c h c a b e n j o y e d b b o t h c h i l d r e n a n a d u l t s .T h e r e a r t h r e e o p t i o n s . T h s i m p l e s t o p t i o n , n m o t i o n , i i d e a l f o p r s c h o o l e r s . O t h e r o p t i o n s o f f e r m o r e o c h a l l e n g e .

Y o a r s k d i v e r f l o a t i n g i t h a i r . Y o h a v e o n l y 5 s e c o n d s t c a t c h a s m a n y b a l l o o n s a y o c a b e f o r e o p e n i n g y o u r c h u t e .T h e r e a r t h r e e o p t i o n s i t h i s g a m e o " C a t c h / 7 Y o c a s e l e c tb a l l o o n s w h i c h d n o m o v e a a l l , b a l l o o n s w h i c h m o v e e v e r y s o f t e n , o b a l l o o n s w h i c h m o v e c o n s t a n t l y .P l a y i n g C a t c hW h e n t h f i r s t s c r e e n a p p e a r s , y o w i l l b g i v e n a c h o i c e o w h i c ho t h t h r e e o p t i o n s y o w i s h t p l a y . N m o t i o n i b f a t h e a s ie s t , a n c o n s t a n t m o t i o n t h m o s t d i f f i c u l t . A f t e r y o m a k e y o u rp i c k , b e g i n p l a y b p r e s s i n g t h e k e y . U s t h k e t m o v e l e f t ,t h k e t m o v e r i g h t , t h e F l k e t g u p a n t h F k e t g d o w n .

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

G o o d l u c k a n g o o d d i v i n g !

C a t c hP O K E 3 6 8 7 9 , 1 1 0 : C L RH I = 0K $ I I I I : L $ = I I M : P R I N T " { C L R } { W H T } " : P R I N T C H R $

( 1 4 2 )P R I N T C H R $ ( 1 4 7 ) " { W H T } "P R I N T " { D O W N } t 4 R I G H T } " ;

1 P R I N T " { 3 D O W N } { R V S } { Y E L } { 3 R I G H T } C A T C H! { O F F } { W H T } " : P R I N T " { 2 R I G H T } { 2 D O W N } 1{ R V S } K { O F F } ' - L E F T - 1 { R V S } L { O F F } ' - R I G H T{ R I G H T H D 0 W N H w H T } F 1 — U P / / F 7 — D O W N "

1 P R I N T " { D O W N } { R I G H T } Y O U H A V E 5 S E C O N D S1 I F I $ o " " T H E N 1 9

2

Page 38: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 38/284

1 P R I N T " { H O M E } " : F O R K = 1 T O 1 3 : P R I N T : N E X T K : PR I N T " { 3 R I G H T } 1 - C O N S T A N T M O T I O N1 P R I N T " { D O W N } { 3 R I G H T } 2 - { 3 R I G H T } M O T I O

N 1 P R I N T " { D O W N } { 2 R I G H T j A N Y K E Y - N O M O T I O N

i

1 G O S U B 9 6 0 01 G E T I $ : I F I $ = " " T H E N 1 81 G O T O 9 9 82 T I $ = " 0 0 0 0 0 0 "2 S C = 03 S = 8 1 6 53 P O K E A , 4 23 P O K E 3 6 8 7 9 , 1 1 04 P O K E S , 1 6 04 P R I N T C H R $ ( 1 4 2 ) " { W H T } { H O M E } { 2 R I G H T } T I M

: " ; M I D $ ( T I $ , 5 , 4 ) ;4 I F H I = 0 T H E N P R I N T " { 2 R I G H T } H I G H ~ " : G O T O

4 4 P R I N T " { 3 R I G H T } H I G H " ; H I4 P R I N T " { H O M E } { D O W N } { Y E L } { 2 R I G H T } g l §

{ S H I F T - S P A C E } g l 3 { S H I F T - S P A C E } g l 3{ S H I F T - S P A C E } E l 3 { S H I F T - S P A C E } g l 3{ S H I F T - S P A C E } g l 3 { S H I F T - S P A C E } g l 3{ S H I F T - S P A C E } g l i { S H I F T - S P A C E } | I 3{ W H T } " ;

4 I F I $ < > " 1 " T H E N 5 54 B = I N T ( R N D ( 1 0 ) * 7 ) - 24 I F B = - 2 T H E N B = - 2 25 I F B > 2 T H E N B = 05 I F B = 2 T H E N B = 2 25 P O K E A , 3 25 A = A + B : P O K E A , 4 25 I F I $ < > " 2 " T H E N 6 75 C C = I N T ( R N D ( 1 ) * 2 5 ) + 15 H J = I N T ( R N D ( l ) * 9 9 ) + 7 7 2 45 I F C C = 6 T H E N P O K E A / 3 2 : P O K E H J , 4 2 : A = H J6 G E T Q $ : I F Q $ = " K " T H E N P O K E S , 1 6 0 : S = S - 1 : P O K E

S + 1 , 3 26 I F Q $ = " L " T H E N P O K E S / 1 6 0 : S = S + 1 : P O K E S - 1 , 3 27 I F Q $ = " { F 1 } " T H E N P O K E S , 1 6 0 : S = S - 2 2 : P O K E S +

2 2 # 3 27 I F Q $ = " { F 7 } " T H E N P O K E S # 1 6 0 : S = S + 2 2 : P O K E S -2 2 , 3 2

9 I F S < 7 7 2 4 T H E N S = S + 2 29 I F S > 8 1 8 5 T H E N S = S - 2 29 I F A > 8 1 8 5 T H E N A = A - 2 29 I F A < 7 7 2 4 T H E N P O K E A , 3 2 : A = A + 2 21 0 I F S = A T H E N P O K E A , 3 2 : G O T O 9 0 5 0

3

Page 39: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 39/284

» = A » a

1 1 I F T I $ < > " 0 0 0 0 5 0 " T H E N 3 51 2 I F T I $ = " 0 0 0 0 5 0 I I T H E N 1 9 0 09 5 P R I N T C H R $ ( 5 ) : A = I N T ( R N D ( 1 ) * 4 4 5 + 7 7 2 4 ) : G

O T O 3 09 9 I F H I > 0 T H E N 1 0 0 49 9 A = I N T ( R N D ( 1 ) * 4 4 5 + 7 7 0 2 ) : P R I N T " { 5 U P

{ R I G H T } { 2 S P A C E S } H I T T O S T A R T{ S P A C E S } " ;

1 0 0 0 P R I N T " { 7 5 S P A C E S } " ;1 0 0 1 P R I N T " { 1 3 S P A C E S } " ;1 0 0 2 G E T W W $ : I F W W $ < > " S " T H E N 1 0 0 21 0 0 3 P R I N T C H R $ ( 1 4 7 ) : G O T O 2 01 0 0 4 A = I N T ( R N D ( l ) * 4 4 5 + 7 7 2 4 ) : P R I N T " { H O M E } "

: F O R G = 1 T O 1 4 : P R I N T : N E X T G : P R I N T "{ R I G H T } { 2 S P A C E S } H I T T O S T A R T "

1 0 0 5 G E T Y $ : I F Y $ < > " S " T H E N 1 0 0 51 0 0 6 P R I N T C H R $ ( 1 4 7 ) : G O T O 2 01 1 0 1 P O K E 3 6 8 7 9 , 1 1 01 1 0 2 P R I N T C H R $ ( 1 4 7 ) " { D O W N } S O R R Y Y O U ' R E T

M H A S { 2 S P A C E S } R U N O U N U M B E R O { S P A C E S } C A T C H E S I S — " ; S C

1 1 0 3 I F S C = 0 T H E N 1 1 0 61 1 0 4 I F S C = H I T H E N P R I N T " { D O W N } { 2 R I G H T } Y O U

H A V E T I E D T H E { D O W N } " ; S P C ( 8 ) ; " H I G HC O R E " : G O T O 1 1 1 1

1 1 0 5 I F S O H I T H E N H I = S C : L $ = " " : P R I N T " { D O W N }{ R I G H T } Y O H A V E T H { D O W N } " ; S P C( 9 ) ; " H I G H S C O R E "

1 1 0 6 I F S C = < 5 T H E N P R I N T " { R I G H T } { 2 D O W N j R A T IN G - N O T T O O G O O D "

1 1 0 7 I F S C = > 1 3 T H E N P R I N T " { 2 R I G H T } { 2 D O W N j RA T I N G - E X C E L L E N T "1 1 0 8 I F S C = 0 O R S C < H I T H E N 1 1 1 31 1 0 9 F O R F F = 1 T O 2 : P R I N T : N E X T F F : P R I N T " P L E A S E

I N P U T Y O U R N A M E "1 1 1 0 I N P U T K $ : G O T O 1 1 1 31 1 1 1 F O R J = 1 T O 2 : P R I N T : N E X T J : P R I N T " P L E A S E

N P U T Y O U R N A M E "1 1 1 2 I N P U T L ?1 1 1 3 F O R J J = 1 T O 2 : P R I N T : N E X T J J : P R I N T "

{ R I G H T } D O Y O U W A N T T O P L A Y{ R I G H T } A G A I N ( Y = Y E S ) " : I N P U T C C $

1 1 1 5 I F C C $ = " Y " T H E N S C = 0 : G O T O 5 9 9 91 1 2 0 P O K E 3 6 8 7 9 , 2 7 - . P R I N T " { C L R } " : E N D1 9 0 0 P R I N T C H R ? ( 1 4 2 ) " { C L R } " : P O K E 3 6 8 7 9 # 1 0 81 9 0 1 0 = 7 6 8 0 : 0 0 = 8 1 6 41 9 0 2 F O R T = 1 T O 2 0

3

Page 40: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 40/284

1 9 0 3 0 = 0 + 1 : P 0 K E 0 , 1 2 01 9 0 4 0 0 = 0 0 + 1 : P 0 K E 0 0 , 1 1 91 9 0 5 F O R R = 1 T O 3 9 : N E X T R1 9 0 7 N E X T T1 9 1 7 X = 7 6 8 0 : X X = 7 7 0 11 9 1 8 F O R T = 1 T O 2 1 . 31 9 1 9 P 0 K E X , 1 1 81 9 2 3 X = X + 2 2 : P O K E X , 1 1 81 9 2 6 P 0 K E X X , 1 1 71 9 2 7 X X = X X + 2 2 : P O K E X X , 1 1 71 9 2 8 P O R E = 1 T O 3 9 : N E X T E1 9 2 9 N E X T T1 9 5 3 S = 7 7 1 6 : A = 7 7 0 81 9 5 4 F O R T = 1 T O 2 11 9 5 5 P O K E S , 8 11 9 5 7 S = S + 2 2 : P O K E S , 8 1 : P O K E S - 2 2 , 3 21 9 6 7 P 0 K E A , 8 11 9 6 8 A = A + 2 2 : P O K E A , 8 1 : P O K ? E A - 2 2 , 3 21 9 6 9 I F A = 7 9 2 8 A N D S = 7 9 3 6 T H E N G O S U B 5 0 0 01 9 7 0 F O R Z = 1 T O 6 0 : N E X T Z1 9 7 1 N E X T T2 0 0 0 P O K E 3 6 8 7 8 , 1 52 0 0 1 F O R L = 1 4 8 T O 2 2 0 S T E P . 72 0 0 2 P O K E 3 6 8 7 6 , L2 0 0 3 N E X T L2 0 0 4 F O R L = 1 2 8 T O 2 0 02 0 0 5 P O K E 3 6 8 7 6 , L2 0 0 6 N E X T L2 0 0 7 F O R L = 2 0 0 T O 1 2 8 S T E P - 12 0 0 8 P O K E 3 6 8 7 6 , L2 0 0 9 N E X T L2 0 1 0 P O K E 3 6 8 7 8 , 02 0 1 1 P O K E 3 6 8 7 6 , 02 1 1 8 P O K E S , 3 2 : P O K E A , 3 22 1 2 0 P R I N T " { U P } { R I G H T } { 1 5 S P A C E S } "2 1 2 2 F O R R = 1 T O 1 5 0 0 : N E X T R2 1 2 3 G O T O 1 1 0 13 0 0 0 F O R T = 1 1 0 T O 1 7 0 S T E P 2 : P O K E 3 6 8 7 9 , T : N E X T T

: P R I N T " { W H T } "3 0 0 1 R E T U R N5 0 0 0 P R I N T C H R ? ( 1 4 2 ) ; " { H O M E } " : F O R T = 1 T O 1 0 : PR I N T : N E X T T : P R I N T S P C ( 7 ) ; " { R V S } { Y E L } T

I M E l l l t W H T } "5 0 1 0 R E T U R N5 0 2 0 E N 5 9 9 9 I F H I = 0 T H E N 36 0 0 0 I F K $ = " I I T H E N K $ = I I ? ? " : I F L $ = " " T H E N L $ = 1 1 ? ?

3

Page 41: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 41/284

i .

6 0 0 1 P R I N T C H R $ ( 1 4 7 ) : F O R C = 1 T O 6 : P R I N T : N E X T C: P R I N T " { 2 R I G H T } H I G H S C O R E — " H I " B Y{ D O W N } [ 2 R I G H T } { 2 S P A C E S } { R V S }{ R I G H T } 1 { O F F } ~ { R I G H T } " ; K $

6 0 0 2 I F K $ = L $ T H E N 6 0 1 06 0 0 3 I F L $ = " " T H E N 6 0 1 06 0 0 5 I F L $ < > " " T H E N P R I N T " { D O W N } { R I G H T }

{ R V S } 2 { O F F } - - { R I G H T } " ; L $6 0 1 0 F O R T = 1 T O 2 0 0 0 : N E X T T : G O T O 67 9 9 9 E N 8 0 0 0 G E T I $ : I F I $ = " " T H E N 8 0 0 08 0 0 1 R E T U R N9 0 0 0 F O R D D = 2 T O 2 09 0 0 2 P O K E 7 6 8 0 + ( D D * 2 2 ) , 1 7 09 0 0 4 P O K E 7 6 8 0 + 2 1 + ( D D * 2 2 ) , 1 7 09 0 0 5 N E X T D D9 0 1 0 R E T U R N9 0 5 0 F O R J = 1 T O 8 : P R I N T : N E X T J : P R I N T S P C ( 8 ) ; "

{ R E D 1 C A T C H " •9 0 5 1 F O R S = 1 T O 2 : G O S U B 3 0 0 0 : N E X T S : P R I N T C H R ? (

1 4 7 ) : S C = S C + 1 : G O T O 9 5 09 0 5 2 E N 9 5 0 0 F O R P = 7 6 8 1 T O 7 7 0 1 S T E P 1 . 59 5 0 1 P O K E P , 1 7 09 5 0 2 N E X T P9 5 0 3 F O R W = 8 1 6 5 T O 8 1 8 5 S T E P 1 , 59 5 0 4 P O K E W > 1 7 09 5 0 5 N E X T W : G O S U B 9 0 0 09 5 0 6 R E T U R N9 6 0 0 F O R X X = 1 3 5 T O 2 5 S T E P - 1 : P O K E 3 6 8 6 5 , X X : F O RL O = 1 T O 3 0 : N E X T L O : N E X T X X9 6 0 1 P O K E 3 6 8 7 9 , 1 1 19 6 5 0 G O T O 9 5 0 0

3

Page 42: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 42/284

S t e v e H a m i l t o n" F i n a n c i a l A d v i s o r " i u s e f u l t o o l f o p e r s o n s w h n e e d t a n a l y z e t h e i rl o a n s , a n s u p p l i e s v a l u a b l e - i n f o r m a t i o n t t h w o u l d - b e b o r r o w e r . M o s to p t i o n s n e e d o n l y t h u n e x p a n d e d V I C .

B e f o r e h a p e r s o n a l c o m p u t e r , f o u n d m y s e l f , w h e n t r y i n g t a n a l y z e l o a n , c a l l i n g t h b a n k t g e t h p a r t i c u l a r s s u c h a c u r e n t i n t e r e s t r a t e s , m o n t h l y p a y m e n t s , a n a m o r t i z a t i o n s c h e du l e s . N o w , w i t h t h a i d o f m V I C - 2 0 , 1 d t h i s a l a h o m e w i t ho u s i n g l e t e l e p h o n e c a l l .

T h f o l l o w i n g p r o g r a m w a d e s i g n e d t p r o v i d e a n s w e r s t m o s t o t h e q u e s t i o n s h a w h e n a n a l y z i n g a n l o a n b a s e d o f i x e d i n t e r e s t r a t e a n d e c l i n i n g m o n t h l y b a l a n c e , s u c h a h o m em o r t g a g e s a n a u t o m o b i l e l o a n s . T h p r o g r a m w i l l L O A D a n R U o t h u n e x p a n d e d V I C ; h o w e v e r , t h f u l l p o t e n t i a l o t h p r o g r a m w i l l n o b r e a l i z e d w i t h o u t 8 o m o r e o a d d i t i o n a lm e m o r y .

U s i n g t h F i n a n c i a l A d v i s o rT h e r e a r f o u r s e c t i o n s t t h p r o g r a m w h i c h a r n a m e d R a n g e ,A m o r t i z e , B a l a n c e D u e , a n M o n t h l y P a y m e n t . A f t e r y o L O A D t h p r o g r a m a n d t y p e R U N , t h m e n u i d i s p l a y e d s h o w i n g t h f o u rp o s s i b l e s e c t i o n s r e a d y t b u s e d . B p r e s s i n g o n o t h k e y sc o r r e s p o n d i n g t t h p a r t i c u l a r s e c t i o n d e s i r e d , t h p r o g r a mj u m p s t t h a t s e c t i o n a n a w a i t s e n t r y o t h p a r t i c u l a r s o t h l o a n . A f t e r u s i n g a n s e c t i o n , t h p r o g r a m w i l l r e t u r n t t h m e n u .M o n t h l y P a y m e n tT h M o n t h l y P a y m e n t s e c t i o n f i r s t a s k s f o t h a m o u n t o t h l o a n .T h n e x t e n t r y i f o t h i n t e r e s t r a t e . B s u r e t e n t e r t h i n t e r e s tr a t e i t h f o r m s p e c i f i e d b t h i n p u t p r o m p t ; o t h e r w i s e t h m o n t h l y p a y m e n t a m o u n t w i l l b i n c o r r e c t . T h f i n a l e n t r y i t h t e r m o t h l o a n . A t h i s p o i n t t h e V I w i l l c a l c u l a t e a n d i s p l a yt h m o n t h l y p a y m e n t s c h e d u l e f o t h l i f e o t h l o a n . Y o w i l lt h e n b e g i v e n t h o p t i o n o c h a n g i n g y o u r e n t r i e s . I y o d n o w a n t t c h a n g e a n o t h f i g u r e s , t y p e f o l l o w e d b R E T U R N . I y o u d o w i s h t c h a n g e o n o a l o t h f i g u r e s , p r e s s f o l l o w e d3

Page 43: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 43/284

b R E T U R N . T h e n e i t h e r p r e s s R E T U R N t r e t a i n t h a b o v ed i s p l a y e d f i g u r e o r e n t e r t h e a p p r o p r i a t e c h a n g e .R a n g eT h R a n g e s e c t i o n i e n a b l e d b p r e s s i n g F l T h t e r m o t h l o a ni t h f i r s t r e q u i r e d e n t r y . Y o w i l l t h e n b e a s k e d w h a t m o n t h l yp a y m e n t y o b e l i e v e y o c a a f f o r d t p a y . T h n e x t i n p u t r q u i r e d i m i d p o i n t i n t e r e s t r a t e . T h p r o g r a m w i l l t h e n c a l c u l a t e

r a n g e o e l e v e n p o i n t s , f i v e p o i n t s b e l o w a n f i v e p o i n t s a b o v et h m i d p o i n t i n t e r e s t r a t e . T h d i s p l a y w i l l t e l l y o h o m u c hy o c a b o r r o w a e a c h i n t e r e s t r a t e b a s e d o y o u r a f f o r d a b l em o n t h l y p a y m e n t s . h a v e f o u n d t h i s p a r t o t h p r o g r a m v e r yv a l u a b l e . A r e m i n d e r , b s u r e t e n t e r t h i n t e r e s t r a t e i t h f o r m s p e c i f i e d b t h i n p u t p r o m p t .A m o r t i z eP r e s s i n g F w i l l b r i n g y o t t h e A m o r t i z e s e c t i o n o f t h p r o g r a m .A f t e r r e c e i v i n g t h e r e q u i r e d e n t r i e s , t h r e e c o l u m n s o f f i g u r e s w i l lb d i s p l a y e d . R e a d i n g a c r o s s t h e y r e p r e s e n t : t h n u m b e r o t h m o n t h f o w h i c h p a y m e n t i d u e ; t h a m o u n t o t h p a y m e n tw h i c h i f o t h a t m o n t h ' s p r i n c i p a l ; a n t h b a l a n c e d u o t h l o a n a f t e r t h i s p a y m e n t . T h e s e t h r e e f i g u r e s w i l l b d i s p l a y e d f o t h e n t i r e t e r m o t h l o a n . T s l o w d o w n t h s c r e e n s c r o l l i n g ,p r e s s a n h o l d t h C T R L k e y , o r p r e s s R U N / S T O P t h a l t p r o c e s si n g . T y p e C O N T t r e s u m e p r o c e s s i n g .B a l a n c e D u A l l o f t h a b o v e s e c t i o n s c a b e x e c u t e d o t h u n e x p a n d e d V I C .T h B a l a n c e D u s e c t i o n c a b r u o t h u n e x p a n d e d V I i y o a r a n a l y z i n g d e c l i n i n g b a l a n c e l o a n w i t h t e r m o 4 m o n t h so l e s s , s u c h a a a u t o m o b i l e l o a n . I y o h a p p e n t h a v e 8 o m o r e o m e m o r y e x p a n s i o n , y o w i l l b a b l e t p r o c e s s n o r m a lh o m e m o r t g a g e o 3 y e a r s . P r o c e s s i n g 3 0 - y e a r l o a n r e q u i r e sj u s t o v e r 9 b y t e s o R A M .

A f t e r m a k i n g t h e r e q u i r e d e n t r i e s f o t h i s p a r t o t h p r g r a m , d n o d e s p a i r i n o t h i n g h a p p e n s o n t h e s c r e e n i m m e d ia t e l y . T h p r o c e s s o r i c a l c u l a t i n g a n a s s i g n i n g v a l u e s t 7 2 v a i a b l e s o 3 0 - y e a r l o a n . h a v e s e e n t h i s t a k e a l o n g a 2 s e c o n d s .

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

3

Page 44: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 44/284

T h " F i n a n c i a l A d v i s o r ' ' w i l l h e l p y o d e c i d e h o m u c h y o c a a f f o r d t b o r r o w .

S o m e t h i n g E x t r aT h i s c o n c l u d e s t h b a s i c f u n c t i o n s o t h p r o g r a m . T h e r e i o n o t h e r i n t e r e s t i n g c a l c u l a t i o n t h a t c a b e p e r f o r m e d a f t e r h a v i n gr u t h B a l a n c e D u s e c t i o n . S i n c e , f o r e a c h m o n t h , t h p r i n c i p a lp a y m e n t a n d t h i n t e r e s t p a y m e n t h a v e b e e n a s s i g n e d s p e c i f i cv a l u e , w c a p u l l o u t h i s i n f o r m a t i o n u p o n d e m a n d . S u p p o s ey o u w a n t e d t k n o w h o m u c h o y o u r p a y m e n t s a r f o r i n t e r e s td u r i n g t h s e c o n d y e a r o t h l o a n , w h i c h w i l l b f o m o n t h s 1 t h r o u g h 2 4 A f t e r h a v i n g R U t h B a l a n c e D u s e c t i o n , p r e s s t h R U N / S T O P k e y . T h p r i n c i p a l p a y m e n t s a r D I M e n s i o n e d a P P ( T ) a n t h i n t e r e s t p a y m e n t s a r D I M e n s i o n e d a I P ( T ) w h e r e

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

= 0 : F O R = 1 T 2 4 : Q = + I P ( T ) : N E X T : P R I N TT h f i g u r e w h i c h w i l l b d i s p l a y e d i t h t o t a l a m o u n t o i n t e r e s tt h a t w i l l b p a i d d u r i n g t h p e r i o d f r o m m o n t h 1 t h r o u g h m o n t h2 4

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

Page 45: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 45/284

Page 46: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 46/284

4 0 F O 1 = 1 - 5 T 1 1 + 54 1 X = ( l - ( 1 + ( I / I 2 0 0 ) ) t ( - 1 2 * T ) ) * M4 2 Y = I / 1 2 0 04 3 P = X / Y4 4 P R I N T I ; " % " , " $ " I N T ( P )4 5 N E X T I4 6 P R I N T " { 2 D O W N } { 4 R I G H T } { R V S } P R E S S A N

K E Y "4 7 G E A $ I A $ = " " T H E N 4 7 4 8 G O T O 1 04 9 P R I N T " { C L R } " ; S P C ( 7 ) ; " { R V S } A M O R T I Z E " : I

N P U T " A M O U N T O L O A N " ; M5 0 P R I N T " I N T E R E S T R A T E , ( E N T E R "5 1 P R I N T " A S . * * * * ) " ; : I N P U T5 2 I N P U T " M O N T H L Y P A Y M E N T " ; P5 3 I N P U T " T E R M I M O N T H S " ; T : Q = 05 4 X = I N T ( M * l / 1 2 * 1 0 0 + . 5 ) / l 0 0 : Y = I N T ( ( P - X ) *

1 0 0 + . 5 ) / l 0 05 5 Q = Q + 15 6 M = I N T ( ( M - Y ) * 1 0 0 + . 5 ) / l 0 05 7 P R I N T Q 7 Y 7 M5 8 I F Q < T T H E N 5 4 5 9 P R I N T " { R V S } { 4 R I G H T j P R E S S A N K E Y "6 0 G E T A $ : I F A $ = " " T H E N 6 0 06 1 G O T O 1 06 2 P R I N T " { C L R } { R V S } T O F I G U R E B A L A N C E D U

1

6 3 I N P U T " T E R M I M O N T H S " ; T6 4 D I M M ( T ) , P P ( T ) , I P ( T ) , B ( T )6 5 I N P U T " A M O U N T B O R R O W E D " ; B ( 0 )6 6 P R I N T " I N T E R E S T R A T E ( E N T E R "6 7 I N P U T " A S . * * * * ) " ; I6 8 I N P U T " M O . P A Y M E N T " ; P6 9 F O R Q = 1 T O T7 0 I P ( Q ) = I N T ( B ( Y ) * l / l 2 * 1 0 0 + . 5 ) / 1 0 07 1 P P ( Q ) = I N T ( ( P - I P ( Q ) ) * 1 0 0 + . 5 ) / l 0 07 2 B ( Y + l ) = I N T ( ( B ( Y ) - P P ( Q ) ) * 1 0 0 + . 5 ) / l 0 07 3 Y = Y + 17 4 N E X T Q7 5 I N P U T " E X T R A P A I D " ; E P7 6 I N P U T " N O . O F M O N T H S P A I D " ; Z Z7 7 F O R F = 1 T O Z Z7 8 G = P P ( F ) + H7 9 H = 8 0 N E X T F8 1 H H = H + E P8 2 0 K = l8 3 L = P P ( K ) + J8 4 J =

3

Page 47: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 47/284

j

8 5 I F J > = H H T H E N 8 8 08 6 0 K = K + 18 7 G O T O 8 3 08 8 F O R N = Z Z + 1 T O K8 9 O = I P ( N ) + R9 0 R = 9 1 N E X T N9 2 I F E P = 0 T H E N R = 0 : I F Z Z = 0 T H E N H H = 09 3 P R I N T : P R I N T " I N T . S A V E D = $ " R9 4 P R I N T : P R I N T " E X T R A P A I D = $ " E P9 5 P R I N T : P R I N T " T O T A L P R I N C . P A I D = n9 6 P R I N T " $ " H H9 7 P R I N T : P R I N T " B A L A N C E D U E = $ " I N T ( ( B ( 0 ) - H

H ) * 1 0 0 + . 5 ) / l 0 09 8 P R I N T " { R V S } { 4 R I G H T } P R E S S A N K E Y "9 9 G E T A $ : I F A $ = " " T H E N 9 9 01 0 0 0 C L 1 0 1 0 G O T O 1 0

3

Page 48: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 48/284

k v / . - = - ^ : : ' .

M i c h a e l H a b e c k a n d M i c h a e l T y b o r s k iI y o u r p r i n t e r t i r e d o l i s t i n g s o s i t t i n g i d l e ? I f i i s y o m a f i n d " B a nn e r " t b r e f r e s h i n g c h a n g e o p a c e .

" B a n n e r " p r o d u c e s d i s p l a y m e s s a g e s o t h V I 1 5 1 5 o 1 5 2 5 o a R S - 2 3 2 p r i n t e r . U n l i k e s i m p l e r p r o g r a m s , i p r i n t s u p p e r - a n l o w e r c a s e t e x t a n g r a p h i c c h a r a c t e r s . I a l s o h a h a l f - s i z e c h a ra c t e r m o d e . A n m o r e i m p o r t a n t , i a l l o w s f o r m a t i n t e r m i x i n gw i t h i n o n m e s s s a g e .

Y o u r f r i e n d s w i l l l o v e t c r e a t e t h e i r o w b a n n e r s . J u s t w a t c hy o u r p a p e r s u p p l y a n h a v e f u n . H o a b o u t f i v e - f o o t " H A P P YB I R T H D A Y " o " W E L C O M E H O M E " ?P r o g r a m O p e r a t i o nW h e n y o R U t h p r o g r a m , y o w i l l s e a i n t r o d u c t i o n a n p r i n t e r t y p e r e q u e s t . Y o s h o u l d p r e s s R E T U R N i y o a r u s i n gt h V I 1 5 1 5 o r 1 5 2 5 p r i n t e r .

Y o m a n o e n t e r m e s s a g e . T o p r i n t h a l f - s i z e c h a r a c t e r ,y o s h o u l d p r e c e d e l e t t e r w i t h S H I F T S S i m i l a r l y , u s S H I F T Lt p r i n t l o w e r c a s e l e t t e r . B o t h m o d e s m a b u s e d t o g e t h e r .T h e s e p r i n t f o r m a t s a r s h o w n i t h f i g u r e .

O P E N i n g t t h P r i n t e rB e f o r e s t u d y i n g t h p r o g r a m l i s t i n g , y o s h o u l d k n o w h o t o p e n a n d a c c e s s f i l e . T h i s i n e c e s s a r y b e c a u s e C o m m o d o r ec o m p u t e r s u s e c h a n n e l i z e d i n p u t / o u t p u t . T t h p r o g r a m m e r ,t h i s m e a n s g e n e r a l p r o g r a m c a a c c e s s d i f f e r e n t i n p u t / o u t p u td e v i c e s .

Y o O P E N c h a n n e l u s i n g t h O P E N f i l e # , d e v i c e # s t a t e -m e n t . T h f i l e n u m b e r s p e c i f i e s c h a n n e l f o t r a n s f e r r i n g d a t a t

d e v i c e , a n c a b a i n t e g e r f r o m t o 2 5 5 . I i t h s a m e n u b e t h a t i u s e d w i t h t h C L O S E , G E T # , I N P U T # , a n P R I N T #s t a t e m e n t s f o d e v i c e . T h d e v i c e n u m b e r s p e c i f i e s w h i c h d v i c e w i l l b u s e d a n i s e w i t h i n t h a t d e v i c e .

P r i n t e r s w i l l u s d e v i c e n u m b e r s 2 , 4 , o 5 O t h e s e , d e v i c es p e c i f i e s a R S - 2 3 2 p r i n t e r . T h V I 1 5 1 5 o r 1 5 2 5 p r i n t e r c a b e i t h e r d e v i c e o 5 T h i s i s w i t c h s e l e c t a b l e , b u u s u a l l y t h p r i n t e r w i l l b d e v i c e 4 4

Page 49: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 49/284

                  

      

              

    

                

           

       

        

       

              

                

                                               

Page 50: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 50/284

R S - 2 3 2 p r i n t e r s m u s t b s e u i t h O P E N s t a t e m e n t . T h i sr e q u i r e s c o m p l e t e s p e c i f i c a t i o n o a l p a r a m e t e r s : b a u d r a t e , w o r dl e n g t h , n u m b e r o s t o p b i t s , a n p a r i t y . F o r t u n a t e l y , R S - 2 3 2 i n t e rf a c e b o a r d m a n u a l s e x p l a i n h o t h i s i d o n e .

A f t e r t h f i l e i O P E N e d , y o m a s e n d d a t a t t h p r i n t e ru s i n g t h P R I N T o P R I N T # s t a t e m e n t . T h P R I N T s t a t e m e n tm a b u s e d o n l y i t h C M m o d e . T h i s m o d e s e n d s a l o u t p u tt t h d e v i c e s p e c i f i e d i n t h O P E N s t a t e m e n t . O P E N 1 , 4 : C M D 1 f o e x a m p l e , s e n d s a l p r i n t e d m a t e r i a l t t h V I p r i n t e r .

P R I N T # s t a t e m e n t , h o w e v e r , a l l o w s d a t a t b s e l e c t i v e l ys e n t t t h p r i n t e r . T h i s i u s e f u l f o s u m m a r y p r i n t o u t s o r p r i n t e rc o n t r o l .

W f o u n d t h a t m u l t i p l e P R I N T # s t a t e m e n t s p r o d u c e d D V I C E N O P R E S E N T e r r o r s w h e n u s e d w i t h t h V I p r i n t e r .T h i s o c c u r r e d a f t e r o n l y f e c o n s e c u t i v e p r i n t s . B e c a u s e o t h i sp r o b l e m , w u s e d t h C M m o d e i B a n n e r .P r o g r a m D e s c r i p t i o nA f t e r i n i t i a l i z i n g a n p r i n t i n g a i n t r o d u c t i o n , B a n n e r a s k s f o m e s s a g e . I R E T U R N i e n t e r e d , i r e p e a t s t h e r e q u e s t .

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

L i n e s 3 4 0 a n 3 5 t e s t f o t h e s e f u n c t i o n s , I S H I F T i r e a d , l i n e 3 4 r e d u c e s t h c h a r a c t e r s i z e a n g e t s a n o t h e r c h a r a ct e r . L i n e 3 2 p r e v e n t s a e r r o r i n l e t t e r i f o u n d .

L i n e 3 5 s i m i l a r l y c h e c k s f o S H I F T L I f o u n d , i s e t s t h c h a r a c t e r m a t r i x p o i n t e r t t h s t a r t o t h l o w e r c a s e c h a r a c t e r s e t .

L i n e s 3 6 0 t 4 3 c o n v e r t t h e A S C I I c o d e f o c h a r a c t e r i n t oc h a r a c t e r p o s i t i o n i t h c h a r a c t e r g e n e r a t o r R O M . T h i s w a n e c e s s a r y b e c a u s e o d u p l i c a t e c o d e s a n d i f f e r e n t o r d e r . I a l s oa l l o w s g r a p h i c c h a r a c t e r s t b p r i n t e d .

T h c h a r a c t e r m a t r i x d a t a i t h e n r e a d i l i n e s 4 4 t o 5 2 0 . T h i sd a t a i a l s o r o t a t e d n i n e t y d e g r e e s f o p r o p e r p r i n t i n g . I e f f e c t ,t h i s c o n v e r t s t h c h a r a c t e r d e f i n i t i o n f r o m r o t c o l u m n f o r m a t .T h n e d a t a i s t o r e d i n v a r i a b l e P $

Y o s h o u l d n o t e t h s p e c i a l u s o t h c h a r a c t e r g e n e r a t o r .S i n c e i c a b r e a d w i t h t h P E E K s t a t e m e n t , i e l i m i n a t e s m a n yc h a r a c t e r d e f i n i t i o n D A I A s t a t e m e n t s . T h i s , i n t u r n , r e d u c e s t h p r o g r a m s i z e .

A f t e r d a t a c o n v e r s i o n , l i n e s 5 3 t 6 2 p r i n t c h a r a c t e r . T h e yr e a d e a c h c h a r a c t e r i n v a r i a b l e P $ a n d p r i n t e i t h e r s e r i e s o

4

Page 51: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 51/284

f c z

s p a c e s o a s t e r i s k s . L i n e 5 7 0 c o m p e n s a t e s f o h a l f - s i z e c h a r a c t e r s .I i w a n o i n c l u d e d , t h e y w o u l d n o p r i n t i n l i n e w i t h f u l l - s i z ec h a r a c t e r s .

F i n a l l y , t h p r i n t e r o u t p u t b u f f e r i e m p t i e d , a n t h f i l e i sC L O S E d i l i n e 6 3 0 . T h c o m p u t e r w i l l t h e n a s i a n o t h e r r u i d e s i r e d . A n r e s p o n s e s t a r t i n g w i t h w i l l c o n t i n u e t h e r u n .

B a n n e r1 0 P O K E 3 6 8 7 9 , 2 71 1 P R I N T " { C L R } { 7 D O W N } M ; T A B ( 6 ) ; " V I C B A N N

E R 1 5 F O R I = 1 T O 3 5 0 0 : N E X T1 6 P R I N T C H R $ ( 1 4 )1 7 P R I N T " { C L R } { 6 D O W N } { 4 S P A C E S } B A N N E R

R O D U C E S " : P R I N T " D I S P L A Y M E S S A G E S O N1 8 P R I N T " V I C O R R S - 2 3 2 P R I N T E R , "1 9 P R I N T " T U P } ^ N A D D I T I O N T U P P E R " : P R I N T

" A N D L O W E R C A S E , I T2 0 P R I N T " A L S O P R I N T S H A L F - S I Z E " : P R I N T " C H

A R A C T E R S . "2 1 I N P U T " { 3 D O W N } R S - 2 3 2 P R I N T E R

{ S P A C E S } N { 3 L E F T } " ; R $2 2 I F L E F T $ ( R $ , 1 ) = " Y " T H E N O P E N 1 2 8 , 2 , 3 , C H R

$ ( 6 ) + C H R $ ( 0 ) : L F = 1 2 8 : G O T O 2 4 02 3 O P E N 4 , 4 : L F = 42 4 P R I N T C H R $ ( 1 4 2 )2 5 P R I N T " { C L R } { D O W N } { 2 S P A C E S } { R V S } S P E C I

A F U N C T I O N S { O F F } "2 6 P R I N T " { 2 D O W N J S H I F T ( L ) = L O W E R C A S E "2 7 P R I N T " S H I F T ( S 0 = H A L F S I Z E "2 8 M $ = " " : I N P U T " { D O W N } M E S S A G E " ; M $2 9 L = L E N ( M $ ) : I F L = 0 T H E N 2 5 03 0 F O 1 = T 3 1 H = 1 0 : W = 4 : M = 03 2 I F I > L T H E N 6 3 3 3 C = A S C ( M I D $ ( M $ , I , 1 ) )3 4 I F C = 2 1 1 T H E N H = 5 : W = 2 : 1 = 1 + 1 : G O T O 3 2 3 5 I F C = 2 0 4 T H E N M = 2 0 4 8 : 1 = 1 + 1 : G O T O 3 2 3 6 R E M T R A N S L A T E A S C C O D E3 7 R E M T O C H A R M A T R I X C O D E3 8 I F O 6 3 A N C < 9 6 T H E N C = C - 6 4 : G O T O 4 6 03 9 I F O 9 5 A N C < 1 2 8 T H E N C = C - 3 2 : G O T O 4 6 04 0 I F O 1 5 9 A N C < 1 9 2 T H E N C = C - 6 4 : G O T O 4 6 04 1 I F O 1 9 1 A N C < 2 2 4 T H E N C = C - 1 2 8 : G O T O 4 64 2 I F O 2 2 3 A N C < 2 5 5 T H E N C = C - 1 2 8 : G O T O 4 6

4

Page 52: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 52/284

4 3 0 I F C = 2 5 5 T H E N C = 9 44 4 R E O B T A I N C H A R .4 5 R E M M A T R I X D A T A4 6 M = M + 3 2 7 6 8 + C * 8 : P ? = " H4 7 F O J = T S T E P - 4 8 F O B = T S T E P - 4 9 P = P E E K ( M + J ) A N D 2 t B5 0 A $ = M " : I F P < > 0 T H E N A $ = M * M5 1 P $ = P $ + A $5 2 N E X T : N E X T5 3 R E P R I N T L E T T E R5 4 C M D L F5 5 F O J = T 5 6 F O R K = 1 T O W5 7 I F H = 5 T H E N P R I N T " { 5 S P A C E S } " ;5 8 F O B = 0 T O5 9 P = J + B * 8 : A $ = M I D $ ( P $ , P , 1 )6 0 F O R X = 1 T O H : P R I N T A ? ; : N E X T6 1 N E X T : P R I N T6 2 N E X T : N E X T6 3 N E X T6 4 P R I N T # L F : C L O S E L 6 5 I N P U T " { D O W N } A G A I N { 2 S P A C E S } Y

{ L E F T } " ; M $6 6 I L E F T $ ( M $ , 1 ) = " Y " T H E N 2 2 6 7 E N

4

Page 53: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 53/284

Page 54: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 54/284

Page 55: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 55/284

A l a n W . P o o l eT h i s p r o g r a m , f o a n s i z e V I C , i l l u s t r a t e s t h a m a z i n g c o l o r d i s p l a y sa v a i l a b l e .

A m a z e y o u r f r i e n d s w i t h c o n t i n u o u s d i s p l a y o r a n d o m p a t e r n s o y o u r T V T h e s o u n d a n d m u s i c w i l l c o n t i n u e e n d l e s s l y a y o s i m e s m e r i z e d b y t h b e a u t y o i a l l . W h e n y o s e d i s p l a yt h a t r e a l l y p l e a s e s y o u , s i m p l y p r e s s t h s p a c e b a r t f r e e z e t h a c t i o n .

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

" K a l e i d o s c o p e ? ' w i l l a m a z e y o w i t h i t e v e r - c h a n g i n gs c r e e n .

F o a n y o n e i n t e r e s t e d i n h o t h i s w o r k s , h e r e i l i s t o t h v a r i a b l e s u s e d :V a r i a b l e sA U s e d i t h M O f u n c t i o n a n d u s e d a t h a d d r e s s t p l o t s q u a r eB U s e d i t h M O f u n c t i o n

4

Page 56: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 56/284

C C o l o r n u m b e rC C C o l o r n u m b e r f o b o r d e rI J L o o p c o u n t e r sK $ K e p r e s s e dN N u m b e r o f u n c t i o n b e i n g u s e d t c a l c u l a t e c o o r d i n a t e s o p o i n t sR R a n d o m n u m b e rS K a l e i d o s c o p e s t o p p e d f l a g . = k a l e i d o s c o p e g o i n g , = k a l e i d o s c o p es t o p p e dS I S p e a k e r a d d r e s sS A S c r e e n m e m o r y s t a r t i n g a d d r e s sS D S o u n d f l a g . = s o u n d o n , 0 = s o u n d o f X , Y : P o s i t i o n t p l o t s q u a r e

K a l e i d o s c o p e2 G O S U B 5 0 0 09 R E 9 R E * * M A I N L O O P * * 9 R E 1 0 F O R I = 0 T O 9 9 9 9 9 91 1 F O R J - 0 T O 1 01 2 O N N G O S U B 5 0 0 , 5 5 0 , 6 0 0 , 6 5 0 , 7 0 0 , 7 5 01 2 R E P L O T P O I N T S1 3 A = S A + 2 2 * Y + X : P O K E A , 1 6 0 : P O K E A + 3 0 7 2 0 , C1 4 A = S A + 2 2 * ( 2 1 - Y ) + X : P O K E A , 1 6 0 : P O K E A + 3 0 7

2 0 , C1 5 A = S A + 2 2 * Y + 2 1 - X : P O K E A , 1 6 0 : P O K E A + 3 0 7 2 0

, 1 6 A = S A + 2 2 * ( 2 1 - Y ) + 2 1 - X : P O K E A , 1 6 0 : P O K E A +

3 0 7 2 0 , C1 7 A = S A + 2 2 * X + Y : P O K E A , 1 6 0 : P O K E A + 3 0 7 2 0 , C1 8 A = S A + 2 2 * X + 2 1 - Y : P O K E A , 1 6 0 : P O K E A + 3 0 7 2 0

, 1 9 A = S A + 2 2 * ( 2 1 - X ) + Y : P O K E A , 1 6 0 : P O K E A + 3 0 7

2 0 , C2 0 A = S A + 2 2 * ( 2 1 - X ) + 2 1 - Y : P O K E A , 1 6 0 : P O K E A +

3 0 7 2 0 , C2 0 G E T K $ : I F K $ = " S " T H E N S D = 1 - S D : I F S D = 0 T H E N

P O K E V , 02 1 I F S D = 0 T H E N 2 3 02 2 P O K E S 1 , 1 2 8 + ( X + Y ) * 2 . 8 : P O K E V , 1 52 3 I F K $ = M M T H E N S = 1 - S2 3 I F S = 0 T H E N P O K E V , 0 : G E T K $ : G O T O 2 3 02 3 9 ^ R E M R A N D O M L Y C H A N G E C O L O R , F U N C T I O N ,

A N B O R D E R2 4 I F R N D ( 1 ) < . 1 T H E N C = I N T ( R N D ( 1 ) * # )2 7 I F R N D ( 1 ) < . 0 7 T H E N N = I N T ( R N D ( 1 ) * 6 + 1 )2 7 I F R N D ( 1 ) < . 0 6 5 T H E N G O S U B 1 0 0 0

4

Page 57: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 57/284

2 8 N E X T : N E X T :4 9 R E 4 9 R E * * F U N C T I O N S T C A L C U L A T E P O I N T

* * 4 9 9 R E M5 0 B = 1 5 : X = F N M O D ( A B S ( I - S G N ( J - 6 ) * ( J + 2 ) ) )5 1 0 B = 2 1 : Y = F N M O D ( J * J + 2 * i i r + 7 )5 2 R E T U R N5 5 B = 1 8 : X = F N M O D ( I * J )5 6 B = 1 2 : Y = F N M O D ( A B S ( A B S ( I - A B S ( 2 * I - 2 * J ) )

) 5 7 R E T U R N6 0 B = 2 0 : X = F N M O D ( I )6 1 B = 2 0 : Y = F N M O D ( J )6 2 R E T U R N6 5 B = 1 2 : X = F N M O D ( A B S ( Y - J ) )6 6 B = 2 0 : Y = F N M O D ( A B S ( 2 * i J - A B S ( l - A B S ( 2 * I - J

) ) ) + R N D ( l ) * 3 )6 7 R E T U R N7 0 B = 1 6 : X = F N M O D ( A B S ( I ~ S G N ( J - 1 0 ) * J ) )7 1 B = 2 1 : Y = F N M O D ( I * J )7 2 R E T U R N7 5 B = 2 2 : X = F N M O D ( A B S ( 3 * J - A B S ( 2 * I - A B S ( 2 * I

- J ) ) ) )7 6 B = 2 2 : Y = F N M O D ( A B S ( 2 * J - A B S ( 2 * X - A B S ( 2 * X

- J ) ) ) )7 7 R E T U R N9 9 R E 9 9 R E * * C H A N G E B O R D E R C O L O R * * 9 9 R E 1 0 0 0 C C = I N T ( R N D ( 1 ) * 7 )1 0 1 0 P O K E 3 6 8 7 9 , P E E K ( 3 6 8 7 9 ) A N D 2 4 8 O R C C1 0 2 0 P O K E 6 4 6 # C C1 0 2 9 R E M C H A N G E 2 3 R D R O T M A T C H B O R D E R1 0 3 0 P R I N T " { H O M E } { 2 2 D O W N } " ;1 0 4 0 P R I N T " { R V S } { 2 1 S P A C E S } " ;1 0 4 5 P O K E S A + 5 0 5 # 1 6 0 ; P O K E S A + 3 1 2 2 5 , C C1 0 5 0 R E T U R N4 9 9 7 R E 4 9 9 8 R E * * I N I T I A L I Z A T I O N * * 4 9 9 9 R E M5 0 0 0 p r i n t " { h o m e } { c l r } " : p o k e 3 6 8 7 9 # 85 0 1 0 p r i n t t a b ( 5 ) " { r e d } k { c y n } a { p u r } l { g r n }

e { b l u } i { y e l } d { w h t } o { r e d } s { c y n } c{ p u r } o { g r n } p { b l u } e "

5 0 2 0 p r i n t : p r i n t : p r i n t " { g r n } p r e s s s p a c eb a r t o { 4 s p a c e s } f r e e z e k a l e i d o s c o p e

i

5 0 2 5 P R I N T : P R I N T " P R E S S S P A C E B A A G A I NC O N T I N U E "

4

Page 58: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 58/284

r

5 0 3 0 P R I N T : P R I N T " P R E S S T T U R N O F { S P A C E S } S O U N D "5 0 3 5 P R I N T : P R I N T " P R E S S A G A I N T T U R N

O U N D B A C K O N 5 0 4 0 P R I N T " { 4 D O W N } "5 0 5 0 P R I N T " { W H T } P R E S S R E T U R N T O B E G I N " ;5 0 6 0 G E T K $ : R = R N D ( 1 ) : I F K $ < > C H R $ ( 1 3 ) T H E N 5 0

6 5 0 7 0 R = R N D ( R * 1 0 0 0 )5 0 8 0 S D = 1 : S = 1 : N = I N T ( R N D ( 1 ) * 5 + 1 ) : C = I N T ( R N

5 0 9 0 P R I N T " { C L R } "5 1 0 0 S A = 4 * ( P E E K ( 3 6 8 6 6 ) A N D 1 2 8 ) + 6 4 * ( P E E K ( 36 8 6 9 ) A N D 1 1 2 )

5 1 1 0 S 1 = 3 6 8 7 6 : V = 3 6 8 7 85 1 2 0 D E F F N M O D ( A ) = I N T ( ( A / B - I N T ( A / B ) ) * B + . 0

5 ) * S G N ( A / B )5 1 3 0 R E T U R N

5

Page 59: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 59/284

R o g e r N T r e n d o w s k i7 7 n s a r t i c l e e x p l o r e s h i g h - r e s o l u t i o n g r a p h i c s o b o t h t h u n e x p a n d e da n e x t e n d e d 8 V I T h V I p e r f o r m s h i g h - r e s o l u t i o n ( h i - r e s ) g r a p h i c s t h r o u g h b i t -m a p p i n g t h s c r e e n . B i t m a p p i n g i m e t h o d w h e r e e a c h d o o r e s o l u t i o n o t h s c r e e n ( c a l l e d p i x e l ) i a s s i g n e d i t o w b i i m e m o r y . I t h b i i o n e , t h e n t h p i x e l i o n i z e r o , t h p i x e l i o f f .

Y o u r s c r e e n d i s p l a y s 5 0 a l p h a / n u m e r i c / g r a p h i c c h a r a c t e r s ,2 h o r i z o n t a l a n 2 v e r t i c a l . S i n c e e a c h c h a r a c t e r i m a d e o 8 x p i x e l s , y o u r s c r e e n c o n s i s t s o f 3 2 , 3 8 4 p i x e l s . W i t h h i - r e s g r a p h i c s ,y o c a s e l e c t i v e l y t u r n o f o o e a c h o t h e s e 3 2 , 3 8 4 p i x e l s i y o h a v e e n o u g h m e m o r y ( m o r e a b o u t m e m o r y r e q u i r e m e n t sl a t e r ) . W i t h e n o u g h m e m o r y , t h o r h o r i z o n t a l c o o r d i n a t e m a r a n g e f r o m t 1 7 6 , a n f r o m t 1 8 4 .

V I T e c h n i q u eB i t m a p p i n g i d o n e o t h V I u s i n g t h " p r o g r a m m a b l e c h a r a c -t e r " t e c h n i q u e w h e n y o P O K E a s c r e e n l o c a t i o n w i t h n u b e f r o m w i t h i n t h a t l o c a t i o n . T r t h i s o a u n e x p a n d e d V I C :p r e s s t h R U N - S T O P / R E S T O R E k e y s , t h e n t y p e i n

P O K E 3 6 8 7 9 , 6 2P O K E 7 6 9 0 , 0T h i s p l a c e s a c h a r a c t e r d i s p l a y c o d e o z e r o i t h t o m i d d l e

o y o u r s c r e e n ( l o c a t i o n 7 6 9 0 ) . A © c h a r a c t e r s h o u l d a p p e a r . T h f i r s t P O K E t u r n s t h s c r e e n b l u e s t h a t y o c a s e t h c h a r a c t e r .T d i s p l a y t h i s c h a r a c t e r , V I t a k e s t h d i s p l a y c o d e a n l o o k s u t h c o r r e s p o n d i n g e i g h t l i n e s i R O ( R e a d O n l y M e m o r y ) s t a r ti n w i t h l o c a t i o n 3 2 7 6 8 .

5

Page 60: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 60/284

I J J

I n t h e c a s e o d i s p l a y c o d e 0 t h f i r s t e i g h t b y t e s ( m e m o r y l c a t i o n s ) o R O a r u s e d 3 2 7 6 8 t h r o u g h 3 2 7 7 5 . E a c h e i g h t - b i tb y t e i R O d e f i n e s r o o p i x e l s w h i c h m a k e u p a r t o t h c h a r a c t e r . N o w , i t h d i s p l a y c o d e w a P O K E d i n s t e a d o 0 a

w o u l d b d i s p l a y e d i i s t o r e d i n e i g h t b y t e s o R O s t a r t i n ga 3 2 7 7 6 .

T h n e x t s t e p i u n d e r s t a n d i n g t h b i t m a p p i n g t e c h n i q u e i t s e h o p r o g r a m m a b l e c h a r a c t e r s a r e c h a n g e d . S i n c e t h e R O a r e a w h e r e t h a l p h a / n u m e r i c / g r a p h i c c h a r a c t e r s a r e s t o r e d c a n o b c h a n g e d b y P O K E c o m m a n d , w m u s t c h a n g e t h V I p o i n t e r f r o m R O t u n u s e d l o c a t i o n s i R A ( R a n d o m A c c e s sM e m o r y ) . T c h a n g e t h i s p o i n t e r , t y p e i n

P O K E 3 6 8 6 9 , 2 5 3T h i s m e m o r y l o c a t i o n , w h i c h c o n t a i n s b o t h t h c h a r a c t e r

m e m o r y p o i n t e r a n s c r e e n m e m o r y p o i n t e r , n o p o i n t s t R A l o c a t i o n 5 1 2 0 . T h g r a p h i c g a r b a g e o y o u r s c r e e n r e p r es e n t s r a n d o m d a t a s t o r e d i t h n e e i g h t - b y t e c h a r a c t e r R A l o c a t i o n s . H i t h R U N - S T O P / R E S T O R E k e y s t c l e a r t h s c r e e n .

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

1 P O K E 3 6 8 7 9 , 6 22 F O R I = 5 1 2 a r O 6 1 4 3 : P O K E I , 0 : N E X T3 P O K E 7 6 8 0 , 04 P O K E 3 6 8 6 9 , 2 5 35 P O K E 5 1 2 0 , 16 G O T O 6 0L o o k a w h a t h a h a p p e n e d a t h e t o p l e f t o t h s c r e e n .

p i x e l h a b e e n t u r n e d o i t h f i r s t r o w . L i n e 2 o t h p r o g r a mc l e a r s r a n d o m d a t a o u o t h R A m e m o r y l o c a t i o n s 5 1 2 0 - 6 1 4 3 .L i n e 3 0 p u t s a d i s p l a y c h a r a c t e r c o d e o z e r o i 7 6 8 0 ( n o r m a l l y a © c h a r a c t e r e q u a l s d i s p l a y c o d e z e r o ) . L i n e 4 0 c h a n g e s t h c h a ra c t e r p o i n t e r f r o m R O t R A l o c a t i o n 5 1 2 0 . L i n e 5 c r e a t e sn e c h a r a c t e r i t h f i r s t o f e i g h t b y t e s t h a t d e f i n e d i s p l a y c h a r a ct e z e r o . T h r e m a i n i n g s e v e n b y t e s o d i s p l a y c h a r a c t e r z e r o ( l c a t i o n s 5 1 2 1 t h r o u g h 5 1 2 7 ) r e m a i n c l e a r , m e a n i n g t h e i r b i t s a r e q u a l t z e r o s . L i n e 5 0 c a u s e s b i p o s i t i o n ( r i g h t - m o s t b i i t h b y t e ) t e q u a l o n e . L i n e 6 c a u s e s V I t r e m a i n i l o o p s t h a tt h s c r e e n d o e s n o d i s p l a y " R E A D Y " a n i n t e r r u p t o u d e m o ns t r a t i o n . c o n c l u s i o n f r o m t h i s e x e r c i s e i t h a t s e t t i n g b i t o n i p r o g r a m m a b l e c h a r a c t e r m e m o r y ( f o r e x a m p l e , 5 1 2 0 , b i # 0 t u r n s o c o r r e s p o n d i n g p i x e l .

5

Page 61: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 61/284

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

B i # 7 6 5 4 3 2 1 0B y t e 5 1 2 0 a a a a a a a a

0 0 0 0 0 0 0 1 = 10 0 0 0 0 0 1 0 = 21 0 0 0 0 0 0 0 = 1 2

T e x p a n d y o u r u n d e r s t a n d i n g , t y p e t h e f o l l o w i n g c h a n g e t t h a b o v e p r o g r a m a n R U i t 3 = 0 : F O R J = 7 6 8 0 T O 7 7 0 1 : P O K E J , U : U = + 1 : N E X T5 0 P O K E 5 1 2 8 , 1

T h s c r e e n s h o u l d s h o w p i x e l s e i t h 1 6 t h p o s i t i o n f r o m t h l e f t . L i n e 3 0 P O K E d d i s p l a y c o d e s o 0 , 1 , 2 . . . 2 i n t o V I C ' s s c r e e nm e m o r y 7 6 8 0 t h r o u g h 7 7 0 1 . C o r r e s p o n d i n g e i g h t - b y t e b l o c k s o R A M , s t a r t i n g w i t h 5 1 2 0 , a r c l e a r e d e x c e p t f o t h b i i b y t e5 1 2 8 t h t o r o o c h a r a c t e r n u m b e r 1 T h e r e f o r e , V I t u r n so t h c o r r e s p o n d i n g s c r e e n p i x e l .

T r a n s f e r r i n g C h a r a c t e r D a t a t S c r e e n M e m o r yN e P r o g r a m m a b l eC h a r a c t e r M e m o r y S c r e e n M e m o r y

5 1 3 5

F o B y t eD i s p l a yC h a r a c t e r

F o B y t e

D i s p l a yC h a r a c t e r

N o t e : W h e n 1 c h a r a c t e r s i z e i u s e d , 1 b y t e s a r u s e d t d e f i n ea d i s p l a y c h a r a c t e r o t h s c r e e n .

5

Page 62: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 62/284

D i s p l a y C h a r a c t e r sI t h e r e a r 5 0 c h a r a c t e r p o s i t i o n s o t h e s c r e e n a n o n l y 2 5 6p o s s i b l e d i s p l a y c h a r a c t e r s , t h e n t h q u e s t i o n i s h o d o y o u f i l lu t h r e s t o t h s c r e e n ? U s a o b s c u r e m e m o r y l o c a t i o n3 6 8 6 7 , b i 0

T y p e N E a n t h e n t y p e t h f o l l o w i n g l i n e s w i t h o u t l i n en u m b e r s :

P O K E 3 6 8 7 9 , 6 2P O K E 3 6 8 6 7 , ( P E E K ( 3 6 8 6 7 ) O R 1 )P O K E 7 6 9 0 , 0A m o n g g r a p h i c g a r b a g e , t w c h a r a c t e r s s h o u l d h a v e a

p e a r e d a t h e t o p c e n t e r o t h s c r e e n : a o v e r a A T h s e c o n dl i n e c h a n g e d t h V I t c h a r a c t e r m a t r i x s i z e o 8 x 1 6 ( w h e n b i o t h i s l o c a t i o n e q u a l s 1 ) T h V I n o u s e s t h f i r s t 1 b y t e s t d e f i n e d i s p l a y c h a r a c t e r 0 T h t h i r d l i n e P O K E s d i s p l a y c o d e z e r oi n t o l o c a t i o n 7 6 9 0 . I t h i s w a y , b P O K E i n g f r o m t h r o u g h 2 5 d i s p l a y c o d e s o t h s c r e e n , w c a d i s p l a y a l 5 0 c h a r a c t e rp o s i t i o n s .M e m o r y R e q u i r e m e n t sA m e n t i o n e d e a r l i e r , b i t m a p p i n g t h e n t i r e s c r e e n w o u l d r e q u i r e3 2 , 3 8 4 p i x e l s o 4 0 4 8 b y t e s o R A ( 3 2 , 3 8 4 d i v i d e d b e i g h t b i t sp e b y t e ) . W i t h t h o r i g i n a l V I C - 2 0 , y o h a v e o n l y 3 5 8 3 b y t e s o B A S I C R A t w o r k w i t h f o b o t h t h p r o g r a m a n b i t m a p p i n g .T h e r e f o r e , y o w i l l h a v e t l i m i t t h a r e a o t h e s c r e e n y o m a p .W i t h 3 o 8 m e m o r y e x p a n d e r c a r t r i d g e , y o c a m a l a r g e r p o r t i o n o t h s c r e e n . I t a k e s b o t h t h 3 a n 8 e x p a ns i o n s t b i t m a p t h e n t i r e s c r e e n .

W h e n u s i n g a 8 e x p a n d e r , y o m u s t a l s o p e r f o r m s o m e e t r o p e r a t i o n s . c r i t i c a l s t e p w i l l b t l o c a t e y o u r h i - r e s p r o g r a ma b o v e s c r e e n m e m o r y a n p r o g r a m m a b l e c h a r a c t e r m e m o r y .s u g g e s t l o c a t i o n 8 1 9 2 , w h i c h i t h f i r s t l o c a t i o n i n t h 8 e x p a n de r T h f o l l o w i n g 8 h i - r e s d e m o n s t r a t i o n p r o g r a m w i l l e x p l a i nt h i s t e c h n i q u e .

a n C o o r d i n a t e C a l c u l a t i o n sG i v e n t h a t w n o k n o w h o t t u r n p i x e l o f o o b c h a n g i n g

b i i p r o g r a m m a b l e c h a r a c t e r m e m o r y ( 5 1 2 0 + ) , w s t i l l m u s th a v e t h p r o g r a m t a k e a o c o o r d i n a t e a n t r a n s l a t e i t t h c o r r e s p o n d i n g b y t e n u m b e r a n b i l o c a t i o n . T h s e c t i o n " H i g hR e s o l u t i o n G r a p h i c s " ( p 8 8 i t h V T C - 2 0 P r o g r a m m e r ' s R e f e r e n c e

5

Page 63: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 63/284

G u i d e p r o v i d e s t h i s i n f o r m a t i o n . T h f o l l o w i n g c a l c u l a t i o n s m u s tb m a d e b t h p r o g r a m :C H A R I N T ( X / 8 ) + I N T ( Y / 1 6 ) * 2 2

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

R O ( Y / 1 6 - I N T ( Y / 1 6 ) ) * 1 6F r o m t h C H A R # a n d R O W # , y o c a c a l c u l a t e t h b y t e w h e r ea n l i e .

B Y T E 5 1 2 0 + 1 6 * C H A R + R O WT h l a s t c a l c u l a t i o n t b m a d e i d e n t i f i e s w h i c h b i m u s t b c h a n g e d .

B I 7 - ( X - ( I N T ( X / 8 ) * 8 ) )T t u r n o a n b i w i t h t h c o o r d i n a t e s X , Y , u s t h i s f o r m u l a :

P O K E B Y T E , P E E K ( B Y T E ) O ( 2 B I T )E x a m p l eP r o g r a m 1 f o t h u n e x p a n d e d 5 V I C , b i t m a p s a p p r o x i m a t e l yt w o - t h i r d s o t h e s c r e e n a n a l l o w s y o t c o n t r o l p i x e l p l o t t i n gw i t h j o y s t i c k . T h p o r t i o n o t h e s c r e e n u s e d f o r h i - r e s g r a p h i c si l i m i t e d b y o u r B A S I C R A a r e a . O n l y 1 0 2 2 b y t e s a r l e f t a v a i la b l e f o B A S I C p r o g r a m ( l o c a t i o n s 4 0 9 6 t o 5 0 1 9 ) . B c h a n g i n gt h p r o g r a m m a b l e c h a r a c t e r p o i n t e r f r o m l o c a t i o n 5 1 2 0 t 6 1 4 4 o 7 1 6 8 ( s e e T a b l e 1 ) y o m a k e m o r e b y t e s a v a i l a b l e f o r y o u r B A S I Cp r o g r a m ; t h e r e f o r e , t h e r e i l e s s b i t m a p a r e a o t h s c r e e n .T a b l e 1 I m p o r t a n t M e m o r y L o c a t i o n s t o H i - R e s

G r a p h i c s ( 5 V I C )

5

Page 64: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 64/284

I P r o g r a m 1 l i n e 5 s e t s u p a r a m e t e r s f o j o y s t i c k c o n t r o la n s t a r t i n g a n c o o r d i n a t e s . L i n e 6 0 c o l o r s t h e s c r e e n s t h a tp i x e l s w i l l s h o w . L i n e 7 c l e a r s a l p r o g r a m m a b l e c h a r a c t e r l o c at i o n s . L i n e 8 c h a n g e s t h V I s c r e e n t a 8 x 1 6 c h a r a c t e r m a t r i xs i z e . L i n e 9 P O K E s d i s p l a y c o d e s z e r o t h r o u g h 1 5 i s c r e e nm e m o r y l o c a t i o n s 7 6 8 0 t h r o u g h 7 8 3 2 . I y o i n s e r t a E N s t a t e m e n t b e t w e e n l i n e s 9 a n 1 0 0 , y o c a s e t h d i s p l a y c h a ra c t e r s a t a k e n f r o m R O M . L i n e 1 0 c h a n g e s t h c h a r a c t e r p o i n t e rf r o m R O t R A ( l o c a t i o n 5 1 2 0 ) . T h s c r e e n c l e a r s t b l a c k b c a u s e t h e r e a r n p r o g r a m m a b l e c h a r a c t e r s d e f i n e d i 5 1 2 0 t 7 6 7 9 .

T h e m a i n p r o g r a m l o o p s t a r t s a l i n e 1 1 0 . T h i s l i n e p o i n t s t t h s u b r o u t i n e f o r e a d i n g t h e a n c o o r d i n a t e s f r o m t h j o s t i c k . L i n e s 1 2 t h r o u g h 1 6 p e r f o r m t h n e c e s s a r y c h a r a c t e r( C H ) , r o ( R O ) , b y t e ( B Y ) , a n b i ( B I ) c a l c u l a t i o n s a n o p e r at i o n s t t u r n o p i x e l . W a r n i n g : W h e n y o a r p l a y i n g w i t h t h d e m o p r o g r a m , d o n ' t g o u o b o u n d s o e l s e y o w i l l i n v a d eo t h e r i m p o r t a n t m e m o r y l o c a t i o n s . S t r a n g e t h i n g s w i l l a p p e a r !E x a m p l e P r o g r a m f o 8 E x p a n d e d V I C - 2 OT h i s d e m o n s t r a t i o n p r o g r a m w i l l b i t m a p a p p r o x i m a t e l y 7 p e c e n t o t h s c r e e n , l e a v i n g 8 1 9 2 b y t e s f r e e f o r y o u r a p p l i c a t i o n p r g r a m . B t h w a y , t h e s e 8 1 9 2 b y t e s a r a l l o c a t e d i t h 8 e p a n d e r . T h 7 5 p e r c e n t l i m i t a t i o n r e s u l t s f r o m t h V I r e q u i r em e n t t h a t a l s c r e e n m e m o r y a n p r o g r a m m a b l e c h a r a c t e r m e o r b r e s i d e n t i t h V I a n n o i t h 8 R A e x p a n d e r .

T y p e i P r o g r a m a n S A V E i t N e x t t y p e i t h e f o l l o w i n gt h r e e P O K E c o m m a n d s a n t h e n L O A D P r o g r a m 2

P O K E 4 4 > 3 2P O K E 6 4 2 , 3 2P O K E 8 1 9 2 , 0

T h e s e t h r e e P O K E s a r c r i t i c a l ! T h f i r s t a n s e c o n d c o m m a n d sp l a c e t h n e p a g e n u m b e r o w h e r e y o u r B A S I C p r o g r a m w i l l b l o a d e d i n t o R A M . T h p a g e n u m b e r i d e r i v e d b d i v i d i n g t h e i t e n d e d s t a r t i n g a d d r e s s b 2 5 s i n c e t h e r e a r 2 5 b y t e s p e p a g ei t h V I ( 8 1 9 2 / 2 5 6 = 3 2 ) . T h t h i r d c o m m a n d z e r o s t h f i r s tw o r d o y o u r B A S I C p r o g r a m a r e a m u s t i y o e x p e c t t h i s p r g r a m t n m T a b l e i n d i c a t e s t h i m p o r t a n t m e m o r y l o c a t i o n s f o

V I w i t h + 8 e x p a n d e r .T h e x p l a n a t i o n o t h i s 8 p r o g r a m i t h s a m e a f o t h 5

d e m o p r o g r a m , e x c e p t f o t h r e e l i n e s . L i n e 9 0 n o c o n t a i n s t h

5

Page 65: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 65/284

T a b l e 2 I m p o r t a n t M e m o r y L o c a t i o n s f o H i - R e sG r a p h i c s ( V I C w i t h + 8 K E x p a n d e r )

s t a r t i n g s c r e e n a d d r e s s o 4 0 9 6 a n c h a r a c t e r d i s p l a y c o d e s u t 1 9 0 . L i n e 1 0 P O K E s 2 0 i n t o t h c h a r a c t e r p o i n t e r t p o i n t t l o c a t i o n 5 1 2 0 . T h i s d i f f e r e n c e ( 2 5 3 v s 2 0 5 ) i d u t t h d u a l f u n ct i o n t h a t 3 6 8 6 9 p e r f o r m s . O n l y t h l o w e r f o u r b i t s o t h i s l o c a t i o nc o n t a i n t h c h a r a c t e r m e m o r y p o i n t e r . L i n e 2 9 5 i a l s o c h a n g e d .T h r e p r e s e n t s t h m a x i m u m c o o r d i n a t e y o c a t u r n o w i t h t h j o y s t i c k .

P r o g r a m 1 . 5 K V I H i - R e s G r a p h i c s1 S U O R I G I N A L 5 V I C { 3 S P A C E S } E X A M P L E

O F H I G H R E S { 3 S P A C E S } G R A P H I C S4 R E 5 D D = 3 7 1 5 4 : P 1 = 3 7 1 5 1 : P 2 = 3 7 1 5 2 : X = 1 0 : Y = 1 06 P O K E 3 6 8 7 9 , 8 : P R I N T " { C L R } "7 F O R I = 5 1 2 0 T O 8 1 8 5 : P O K E I , 0 : N E X T8 P O K E 3 6 8 6 7 , P E E K ( 3 6 8 6 7 ) O R 19 F O R I = 0 T O 1 5 3 : P O K E 7 6 8 0 + I , I : N E X T I1 0 P O K E 3 6 8 6 9 , 2 5 31 1 G O S U B 2 0 01 2 C H = I N T ( X / 8 ) + I N T ( Y / l 6 ) * 2 21 3 R O = ( Y / 1 6 - I N T ( Y / 1 6 ) ) * 1 61 4 B Y = 5 1 2 0 + 1 6 * C H + R O

5

Page 66: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 66/284

Page 67: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 67/284

J a m e s C a l l o w a y" V x x e l a t o r " i a e a s i e r w a t d e s i g n c u s t o m c h a r a c t e r s . T h r e e a c c o mp a n y i n g p r o g r a m s l e y o s a v e a n l o a d t h c h a r a c t e r d a t a f r o m c a s s e t t ea n c o n v e r t i i n t o D A T A s t a t e m e n t s r e a d y t u s i p r o g r a m .

T h f i r s t t i m e y o d e s i g n y o u r o w c h a r a c t e r s o t h e V T C - 2 0 , t h

l i n e i n t o n u m b e r a i t h d a r k s q u a r e s w e r e b i n a r y o n a n t h l i g h t s q u a r e s w e r e b i n a r y z e r o . S t o r i n g t h n u m b e r s i m e m o r y .

T h e n y o P O K E t h m a g i c a d d r e s s , 3 6 8 6 9 . T h s c r e e n f i l l sw i t h g o b b l e d y g o o k . B u w a i t ! I s n ' t t h a t s p a c e s h i p t h e r e w h e r et h o R E A D Y i s u p p o s e d t b e A n t h a t t h r e e - l e g g e d a l i e nm u s t b t h D •

O n c e t h t h r i l l w e a r s o f f , t h w o r k c a t u r n t d r u d g e r y . C o n 7v e r t i n g y o u r d e s i g n i n t o n u m b e r s i b a e n o u g h , b u t h e j o b o t y p i n g a l t h o s e n u m b e r s i n t o D A 3 A s t a t e m e n t s i n o o n l y b o r i n gb u a l s o s u b j e c t t t y p o g r a p h i c a l e r r o r . s l i p o t h f i n g e r a n y o u r b e a u t i f u l r o c k e t c r u i s e r l o o k s a i i h a b e e n s h o t f u l l o l a s e r h o l e s .

D e s i g n i n g C h a r a c t e r s w i t h P i x e l a t o rp r o g r a m c a l l e d " P i x e l a t o r " r e s t o r e s s o m e o t h t h r i l l o d e s i g ni n g s c r e e n c h a r a c t e r s . P i x e l a t o r g i v e s y o f o u r l a r g e e i g h t - b y - e i g h t

w o r k a r e a s o t h s c r e e n f o c r e a t i n g , e d i t i n g , a n c o m p a r i n gc h a r a c t e r s . P i x e l a t o r t h e n s t o r e s t h o s e c h a r a c t e r s i R A M . O s t a n d a r d V I C s w i t h 3 . 5 K m e m o r y , P i x e l a t o r w i l l s t o r e u t 6 c h a r a c t e r s . W i t h a d d i t i o n a l m e m o r y , t h p r o g r a m w i l l s t o r e u t 1 2 c h a r a c t e r s ; i a l s o c a r e t r i e v e f r o m m e m o r y a n c h a r a c t e r y o h a v e a l r e a d y s t o r e d . Y o c a n e v e n c o p y f r o m t h V I C s o w R O c h a r a c t e r s e a n c h a n g e t h o s e c h a r a c t e r s t s u i t y o u r n e e d s .

L i k e m o s t s m a l l c o m p u t e r s , t h V I s t o r e s m o s a i c s o m a p so i t c h a r a c t e r s i n R O ( a d d r e s s e s 3 2 7 6 8 t 3 6 8 6 3 ) . U n l i k e s o m eo t h e r c o m p u t e r s , w h o s e c h a r a c t e r s m a b f i v e p i x e l s w i d e b ys e v e n p i x e l s t a l l , t h V I C s c h a r a c t e r s a r e e i g h t b e i g h t . ( p i x e l i s i m p l y t h s m a l l e s t p o r t i o n o t h v i d e o i m a g e t h a t p a r t i c u l a rc o m p u t e r c a c o n t r o l . ) T h a t m a k e s t h V I C s c h a r a c t e r s l o o k b i

5

Page 68: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 68/284

s q u a t , b u i t ' s t i d y u s o m e m o r y . E i g h t b y t e s a r n e e d e d t d s c r i b e s i n g l e c h a r a c t e r , w i t h e a c h b y t e c o r r e s p o n d i n g t h o r iz o n t a l l i n e o t h c h a r a c t e r . T h v e r t i c a l i n f o r m a t i o n c o m e s f r o mb r e a k i n g t h e b y t e s i n t o b i n a r y o n e s a n z e r o s , c o r r e s p o n d i n g t d a r k a n l i g h t a r e a s .J u s t E n o u g h M e m o r yB P O K E i n g d i f f e r e n t n u m b e r s i n t o a d d r e s s 3 6 8 6 9 , y o c a c h a n g e w h e r e t h V i d e o I n t e r f a c e C h i p l o o k s f o i t c h a r a c t e rm a p s . Y o d t h i s a u t o m a t i c a l l y w h e n y o c h a n g e t h k e y b o a r df r o m g r a p h i c s t t e x t m o d e . G r a p h i c s i v a l u e o 2 4 a 3 6 8 6 9 ,a n t e x t i 2 4 2 . T h v a l u e i b e t w e e n , 2 4 1 , r e p r e s e n t s r e v e r s e dg r a p h i c s c h a r a c t e r s , b u u s i n g t h e r e v e r s e d c h a r a c t e r s d o e s n ' tn o r m a l l y c h a n g e t h e v a l u e a 3 6 8 6 9 .

v a l u e o 2 5 m o v e s t h m a l o c a t i o n t o 4 0 9 6 , t h s t a r t o s t a n d a r d 3 . 5 K m e m o r y . A b o v e 2 5 t h c o r r e s p o n d i n g a d d r e s s i c r e a s e s b i n c r e m e n t s o 1 0 2 4 , u t 7 1 6 8 f o v a l u e o 2 5 5 . B c a u s e o t h l e n g t h o t h P i x e l a t o r p r o g r a m , i u s e s t h h i g h e s tv a l u e . ( F o r f u l l e r e x p l a n a t i o n o w h a t h a p p e n s a a d d r e s s 3 6 8 6 9 ,c o n s u l t J i B u t t e r f i e l d ' s " B r o w s i n g t h V I C h i p " i C O M -P U T E l ' s F i r s t B o o k o f V I C . )

T h P i x e l a t o r p r o g r a m , o n c e i i u a n r u n n i n g , c o n s u m e sa l m o s t 3 o m e m o r y ( s e e P r o g r a m 1 ) O V I C s t h a t h a v e n ' t b e e ne x p a n d e d , t h a t l e a v e s j u s t r o o m e n o u g h t o s t o r e 6 c h a r a c t e r s .T h a t l i m i t c o i n c i d e s w i t h t h f a c t t h a t t h s e c o n d h a l f o f t h m a m e m o r y s t a r t i n g a 7 1 6 8 c o r r e s p o n d s t s c r e e n m e m o r y i m o s tm a c h i n e s . W e l l d i s c u s s a w a o g e t t i n g a r o u n d t h i s 6 4 - c h a r a c t e rl i m i t l a t e r .O c o u r s e , w i t h e x p a n d e d m e m o r y , a l y o h a v e t d i s e l e c t

m e m o r y l o c a t i o n t h a t d o e s n ' t i n t e r f e r e w i t h s c r e e n m e m o r y .S o m e t i m e s t h p r o b l e m i s o l v e d a u t o m a t i c a l l y b e c a u s e t h s c r e e n m e m o r y m o v e s ( a d t h e s c r e e n c o l o r a d d r e s s e s ) . T h t h r e e v a r i a b l e s i n l i n e 2 a l l o w y o t c h a n g e t h p r o g r a m t c o p e n s a t e . X i m a m e m o r y a n s h o u l d a l w a y s b a m u l t i p l e o 1 0 2 4 . S i s c r e e n m e m o r y . C i c o l o r m e m o r y .

W h e n y o r u P i x e l a t o r , y o a r f i r s t o f f e r e d c h o i c e o c r e a ti n g a n e c h a r a c t e r o r e t r i e v i n g a o l o n f r o m m e m o r y . T h c h o i c e s a r c o l o r - c o d e d g r e e n a n c y a n , r e s p e c t i v e l y . I y o s e l e c t" n e w c h a r a c t e r " b p r e s s i n g t h e p r o g r a m m a b l e k e F l t h b o r d e rc h a n g e s f r o m w h i t e t g r e e n , a n y o a r a s k e d t s e l e c t o n o t h f o u r w o r k f r a m e s b k e y i n g F l F 3 F 5 o F 7 N e x t y o a r a s k e d t s e l e c t t h c h a r a c t e r a t h a d d r e s s w h e r e y o u i n t e n d t d e s i g n n e s h a p e .

6

Page 69: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 69/284

Page 70: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 70/284

F o u r c h a r a c t e r s a s s e e n b " P i x e l a t o r "

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

S a v i n g Y o u r C u s t o m C h a r a c t e r sM o r e t h a n l i k e l y , y o w i l l w a n t t u s P i x e l a t o r t c r e a t e c h a r a ct e r s f o u s i s o m e o t h e r p r o g r a m , s u c h a v i d e o g a m e . T h r e es h o r t e r p r o g r a m s a l l o w y o t s a v e t h e i n f o r m a t i o n t h P i x e l a t o rh a c r e a t e d . T s a v e t h c h a r a c t e r s d i r e c t l y o c a s s e t t e a d a t af i l e , i n t e r r u p t t h H x e l a t o r w i t h : t h e S t O P i ^ y a n t y p e N E t g e r i d j p f t h p r o g r a m . J T h e n l o a d ' ^ m a m z f ' i t i o t h e v f l ( 5 P i x a v e i ^ J( P r o g r a m 2 a l l o w s y o t s a v e M o c k o c h a M d e r s 6 a r i y s i z e , u t o 6 4 , o t a p e a s i n g l e d a t a f i l e . T h f i r s t n u m b e r i t h f i l e r e r e s e n t s t h e s c r e e n v a l u e o t h f i r s t c h a r a c t e r ; t h s e c o n d n u m b e ri t h l a s t c h a r a c t e r . T h i s a l l o w s y o t r e c o r d a m a n y d i f f e r e n tb l o c k s a y o l i k e . E a c h f i l e w i l l c o n t a i n t h e i n f o r m a t i o n n e c e s s a r yt s t o r e t h d a t a i t h r i g h t p l a c e . A l s o , f o c o n v e n i e n c e , e a c h f i l ew i l l b t a g g e d w i t h t h n a m e o i t f i r s t c h a r a c t e r . N o y o c a t u r n y o u r V I o f f .

L o a d i n g Y o u r C u s t o m C h a r a c t e r sc a s s e t t e a n e n t e r i b a c k i n t o m e m o r y . N o t i c e l i n e 1 w h i c h s e l l

6

Page 71: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 71/284

' 2 t h e v a l u e o X X t h s t a r t o m a m e m o r y : p c h a n g i n g t h a t v a l u e ,y o c a l o a d c h a r a c t e r d a t a i n t o m a n y d i f f e r e n t m e m o r y l o c at i o n s , t h u s b y p a s s i n g t h 6 4 - c h a r a c t e r l i m i t . B s u r e t h a t X i m u l t i p l e o 1 0 2 4 , o e l s e t h c h a r a c t e r s w o n ' t p r o p e r l y c o r r e s p o n dt t h k e y b o a r d .

t h i r d a c c e s s o r y p r o g r a m , c a l l e d ' W x d a t a " w i l l c o n v e r tb l o c k o R A c h a r a c t e r m e m o r y i n t o D A I A s t e t e m e t t t s > o n f o e a c h c h a r a c t e r ( s e e P r o g r a m 4 . T h e l i n e n u m b e r s o t h D A I As t a t e m e n t s w i l l c o r r e s p o n d t t h e s c r e e n v a l u e o t h c h a r a c t e r s ,p l u s 5 0 0 0 . D A I A s t a t e m e n t s a r h i g h l y i n e f f i c i e n t , m e m o r y - w i s e ,f o s t o r i n g t h a t i n f o r m a t i o n , b u t h e y a r m u c h m o r e c o n v e n i e n tt h a n c a s s e t t e d a t a f i l e s b e c a u s e t h e y c a n b e i n c l u d e d w i t h i n p r g r a m , w h i c h s a v e s y o t h t r o u b l e o l o a d i n g t h e c h a r a c t e r ss e p a r a t e l y .

P i x d a t a i n o a s u s e r - o r i e n t e d a t h o t h e r p r o g r a m s b e c a u s ei h a b e e n s t r i p p e d d o w n t b a r e e s s e n t i a l s . Y o p r o b a b l y w i l lh a v e t m o d i f y s o m e l i n e s o P i x d a t a e a c h t i m e y o r u i t T h v a l u e s S a n d L S i n i t i a l i z e d i l i n e 3 0 f o e x a m p l e , r e p r e s e n t t h f i r s t a n l a s t c h a r a c t e r s , r e s p e c t i v e l y . I y o h a v e o n l y 3 . 5 K o f r e eR A M , d o n ' t d o m o r e t h a n 3 c h a r a c t e r s a t i m e , b e c a u s e y o u ' l lr u o u o m e m o r y .

W h a t m a k e s P i x d a t a i n t e r e s t i n g i t h a t i s e l f - d e s t r u c t s , s a v i n gy o t h e c h o r e o d e l e t i n g i l i n e b y U n e t m a k e r o o m f o y o u r o w p r o g r a m . ( W h e n y o t y p e i P i x d a t a , b s u r e t s a v e i o t a p e o d i s k b e f o r e t r y i n g i t . )

T h s e c r e t o P i x d a t a l i e s i t h w a t h V I C - 2 0 s t o r e s B A S I Cl i n e s . T h f i r s t t w b y t e s o l i n e r e p r e s e n t t h a d d r e s s o t h n e x tl i n e . T h t h i r d a n f o u r t h b y t e s a r t h l i n e n u m b e r . A f t e r t h a t ,t h l i n e c o n s i s t s o f n u m b e r s t h a t r e p r e s e n t e i t h e r t o k e n s f o B A S I C c o m m a n d s ( t h e t o k e n f o D A I A i 1 3 1 ) o r t h e A S C I I v a l u e so s t r i n g c h a r a c t e r s . A l n u m e r a l s a r e t r e a t e d a s t r i n g s , s D A I As t a t e m e n t m a n e e d a m a n y a t h r e e b y t e s t r e p r e s e n t a s i n g l en u m e r i c a l v a l u e . T h n u m b e r 1 2 8 , f o e x a m p l e , b e c o m e s 4 9 , 5 0 ,a n 5 6 T h r o w i 4 f o e a c h c o m m a , a n d y o u s e w h D A I As t a t e m e n t c a u s u m o r e t h a n f o u r t i m e s t h m e m o r y n e e d e dt o s t o r e t h n u m b e r s i r e p r e s e n t s .

P i x d a t a s t a r t s c r e a t i n g D A I A s t a t e m e n t s a l o c a t i o n 5 1 2 0 ,w h i c h i r e p r e s e n t e d b t h v a r i a b l e Z i l i n e 4 0 L i n e 1 0 a l s os e t s l o c a t i o n 5 1 2 0 a t h e n o B A S I C m e m o r y , t h e r e b y p r o t e c ti n g t h e D A T A s t a t e m e n t s f r o m t h p r o g r a m i t s e l f ( ( 2 5 6 * 2 0 )5 1 2 0 ) . W h e n P i x d a t a f i n i s h e s c r e a t i n g D A I A s t a t e m e n t s , i P O K E st h l o w - h i g h v a l u e s o Z i n t o t h f i r s t a n s e c o n d b y t e s o l i n e 1

6

Page 72: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 72/284

t h l i n e t h a t s a y s " R E M D E L E T E T H I S L I N E A F T E R R U N N I N G / 7T h i s c a u s e s B A S I C t s k i p f r o m l i n e t t h f i r s t D A T A s t a t e m e n t ,i g n o r i n g t h r e s t o P i x d a t a i b e t w e e n . W h e n y o d e l e t e l i n e( s i m p l y t y p e o b l a n k l i n e a n h i R E T U R N ) , t h l i n e e d i t o rc o m p a c t s t h D A I A s t a t e m e n t s t t h b e g i n n i n g o m e m o r y ,d e s t r o y i n g P i x d a t a i t h p r o c e s s . I b a d d i n g R A y o h a v ec h a n g e d t h s t a r t o B A S I C m e m o r y , b s u r e t a d j u s t t h e t w a d r e s s e s i l i n e 1 7 ( 4 0 9 7 a n 4 0 9 8 ) a c c o r d i n g l y b e f o r e r u n n i n gP i x d a t a .

T u s t h D A I A s t a t e m e n t s i p r o g r a m , y o w i l l n e e d l i n el i k e t h f o l l o w i n g :F O L = S R T L S : F O R M = T 7 : R E A D C : P O K E X

X + L * 8 + M , C : N E X T M : N E X TT h v a l u e s o X ( m a p m e m o r y ) , S ( f i r s t c h a r a c t e r s c r e e n v a l u e ) ,a n L ( l a s t c h a r a c t e r ) s h o u l d b t h s a m e a t h e y w e r e i P i x d a t a .

M e m o r y e x p a n s i o n o 8 o m o r e o n t h V I u s u a l l y m o v e st h e s c r e e n m e m o r y s t h a t t h e r e i n o e n o u g h r o o m b e t w e e n t h e n o t h e s c r e e n a n t h b e g i n n i n g o t h l a s t a v a i l a b l e c h a r a c t e rm a a r e a i R A f o t h P i x e l a t o r t o p e r a t e . B e f o r e l o a d i n g t h eP i x e l a t o r , 8 u s e r s s h o u l d e n t e r t h e f o l l o w i n g a s i n g l e l i n e a n t h e n h i R E T U R N :P O K E 4 3 , 0 : P O K E 4 4 , 2 4 : P O K E 6 1 4 3 , 0 : N E WN o L O A D t h P i x e l a t o r , d e l e t e l i n e 3 0 a n m a k e t h i s c h a n g e :Z : p = f 1 2 0 : S C - 4 0 9 6 : Q L = 3 7 $ S S3 M § ■ - ' * & ■ ■ B 2 > 1 W i @ £ § : 3 § § & 9 , P E E K { 3 6 8 6 9 5

M i f y N O 1 O 2 : 0 D t 6 1 6 3 5 8 0 t O K E 3 6 8 6 9 , P E E K ( 3 6 8 6 9 ) A N D N O 1 5 : G O

T 1 6 S J W E t h p r o g r a m b e f o r e u s i n g i t M a k e t h f o l l o w i n g c h a n g e i b o t h P i x a v e r a n P i x e l o a d e r :1 X X = 5 1 2 0

M a k e t h e s e c h a n g e s i n P i x d a t a :1 C = P E E K ( 5 6 ) : P O K E 5 1 , 0 : P O K E 5 2 , 3 2 : P O K E

5 , 0 : P O K E 5 6 , 3 22 X X = 5 1 2 04 Z Z = 8 1 9 2 : A A = Z Z8 u s e r s c a a c c e s s t h R A c h a r a c t e r s e b t y p i n g :

6

Page 73: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 73/284

l y V f

P O K E 3 6 8 6 9 , P E E K ( 3 6 8 6 9 ) A N D N O T 1 O 1 T h f o l l o w i n g a r t i c l e s f r o m C O M P U T E l ' s F i r s t B o o k o V I p r

v i d e d v a l u a b l e i n f o r m a t i o n a n i n s p i r a t i o n f o P i x e l a t o r : J i B u t t e r f i e l d ' s " M e m o r y M a A b o v e P a g e Z e r o " a n " B r o w s i n g T h V I C h i p " ; D o u g F e r g u s o n ' s " L a r g e A l p h a b e t " ; a n C h a r l e s H G o u l d ' s " R e n u m b e r B A S I C L i n e s T h E a s y W a y . "

P r o g r a m 1 P i x e l a t o r1 R E " P I X E L A T O R 1 1< X X = 7 1 6 8 : S C = 7 6 8 0 : C L = 3 8 4 0 03 P O K E 5 1 , 2 4 0 : P O K E 5 2 , X X / 2 5 6 - l : P O K E 5 5 f 2 4 0

: P O K E 5 6 , X X / 2 5 6 - l4 F O R L X = 1 6 T O 1 S T E P - 1 : R E A D X Z : P O K E X X - L X , X Z

: N E X T L X5 P O K E X X - 1 0 , S C / 2 5 6 : P O K E X X - l , X X / 2 5 6 - l6 P R I N T " { C L R } { 2 D O W N } " ;7 F O R Y = 1 T O 2 : P R I N T " { D O W N } { B L U } { 2 R I G H T }

B P | { 2 R I G H T } | 8 P i 8 F O R Z = 1 T O 8 : P R I N T " { R I G H T J i M ^ t R E D }

{ S P A C E S } { B L U } i G i E M | { R E D }{ S P A C E S } { B L U } g G 3 " : N E X T Z

9 P R I N T " { 2 R I G H T } | 8 Y ^ R I G H T }E Y i { U P } " : N E X T Y

1 0 P O K E 3 6 8 7 9 , 2 5 : F = 0 : J = 0 : S Y S X X - 1 6 : P R I N T "{ H O M E } { G R N } { R V S } F l { O F F } { B L U } - C R E A T E

N E C H A R . "1 1 P R I N T " { C Y N } { R V S } F 3 { O F F } { B L U J - R E T R I E V

M E M O R Y "1 2 G E T S 1 $ : I F S 1 $ = " " T H E N 1 2 01 3 I F S 1 $ = " { F l } " T H E N K = 0 : P O K E 3 6 8 7 9 , 2 9 : G O T

0 1 6 01 4 I F S 1 $ = " { F 3 } " T H E N P O K E 3 6 8 7 9 , 2 7 : G O T O 3 5 01 5 G O T O 1 2 01 6 I F J = 1 T H E N 1 9 01 7 S Y S X X - 1 6 : P R I N T " { H O M E } S E L E C T " S P C ( 4 ) " F

F 3 " : P R I N T " F R A M E : " S P C ( 4 ) " F 5 F 7 " ;1 8 G E T S $ : I F S $ = " " T H E N 1 8 01 9 I F A S C ( S $ ) > 1 3 2 T H E N O N A S C ( S $ ) - 1 3 2 G O T O 2 1

0 # 2 2 0 # 2 3 0 # 2 4 02 0 G O T O 1 8 02 1 W = 3 : H H = 1 : F = 8 8 : G O T O 2 5 02 2 W = 3 : H H = 1 1 : F = 1 0 9 : G O T O 2 5 02 3 W = 1 3 : H H = 1 : F = 4 6 2 : G O T O 2 5 02 4 W = 1 3 : H H = 1 1 : F = 4 8 3

, 2 5 0 P O K E F + S C # 1 6 0 : I F K > 0 T H E N P O K E F + C L , 3 : G O T0 2 7 0

6

Page 74: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 74/284

2 6 I F J = 0 T H E N P O K E F + C L , 5 : G O T O 2 8 02 7 I F J > 0 T H E N C = C J : C 0 = C G ; G O T O 3 2 02 8 S Y S X X - 1 6 : P R I N T " { H O M E } S E L E C T C H A R A C T E

R " 2 9 G E T C $ : I F C $ = " " T H E N 2 9 03 0 G O S U B 5 0 0 03 1 I F C E = 2 A N D S 2 $ = " { F l } " T H E N 2 W3 2 I F K = 1 A N D I = 0 ^ D C E O 1 T H E N 4 0 0 03 3 I F C E > 0 T H E N 2 £ p3 4 P O K E F + S C C : P O K E F + C L , 0 : V = l : H = l : P = S C + 2

3 + W * 2 2 + H H : P A = P : P Q = P E E K ( P ) + 7 2 : P P = P Q3 5 1 - 0 : J = 0 : S Y S X X - 1 6 : P R I N T " { H O M E } F l - S T O RI M E M O R Y "3 6 P R I N T " F 3 - A B O R T " S P C ( 4 ) " F 5 - R E N A M E F 7 - S

T O R E / I N C R E M E N T " ;3 7 G E T G $ : P O K E P , P Q : P O K E P A , P P : I F G $ = " " T H E N

3 7 3 8 I F A S C ( G $ ) = 3 2 O R A S C ( G $ ) = 1 6 0 T H E N P O K E P , A

S C ( G $ ) : H = H + 1 : G O T O 4 4 03 9 I F G $ = " { D O W N } " T H E N V = V + 1 : G O T O 4 4 04 0 I F G $ = " { U P } " T H E N V = V - 1 : G O T O 4 4 04 1 I F G § = " { R I G H T } " T H E N H = H + 1 : G O T O 4 4 04 2 I F G $ = " { L E F T } " T H E N H = H - 1 : G O T O 4 4 04 3 I F A S C ( G $ ) < 1 3 3 O R A S C ( G $ ) > 1 3 6 T H E N 3 7 04 4 I F H > 8 T H E N H = 1 : V = V + 14 5 I F H < 1 T H E N H = 8 : V = V - 14 6 I F V > 8 T H E N V = 14 7 I F V < 1 T H E N V = 84 8 P P = P E E K ( P ) : P A = P : I F P P = 1 0 4 O R P P = 2 3 2 T H E N

P P = P P - 7 24 9 I F G $ = " { F l } " T H E N K = 0 : P O K E P A , P P : G O T O 1 0 05 0 I F G $ = " { F 3 } " T H E N K = 0 : P O K E P A , P P : G O T O 1 0 05 1 I F G $ = " { F 5 } " T H E N I = 1 : P O K E P A , P P : P O K E F + C

L , P E E K ( 3 6 8 7 9 ) - 2 4 : P O K E F + S C , 1 6 0 : G O T O 4 12

5 2 I F G $ = " { F 7 } " T H E N J = 1 : P O K E P A , P P : G O T O 1 0 05 3 P = S C + ( W + V ) * 2 2 + H H + H : P Q = P E E K ( P ) + 7 25 4 G O T O 3 7 01 0 0 0 S Y S X X - 1 6 : P R I N T " { H O M E } S T O R I N G " ; : P O K

E S C + 8 , C1 0 1 0 F O R V E = 1 T O 8 : Z Z = 01 0 2 0 F O R H Y = 1 T O 8 : P O = S C + ( W + V E ) * 2 2 + H H + H Y1 0 3 0 I F P E E K ( P O ) = 1 6 0 T H E N Z Z = Z Z + 2 t ( 8 - H Y )1 0 4 0 N E X T H Y1 0 5 0 P O K E X X + C * 8 + V E - 1 , Z Z : N E X T V E : I F J = 0 T H E N

1 0 1 0 6 0 G O T O 2 0 0 0

6

Page 75: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 75/284

r — t v

2 0 0 0 C J = C + 1 : C G = C 0 + 1 : S $ = C H R $ ( A S C ( S $ ) + 1 ) : IF A S C ( S $ ) > i a 6 T H E N S $ = " { F l } "

2 0 1 0 I F C J = 6 4 A N D X X = 7 1 6 8 A N D S C = 7 6 8 0 T H E N C E = 22 0 2 0 I F K = 2 T H E N K = 12 0 3 0 I F C G > 1 2 7 T H E N C G = 02 0 4 0 I F S 2 $ = " { F l } M A N D C E = 2 T H E N J = 0 : G O T O 1 0 02 0 5 0 I F K = 0 A N D C E = 2 T H E N 1 0 02 0 6 0 G O T O 1 9 03 5 0 0 K = 1 : I F J = 1 T H E N 3 5 4 03 5 1 0 S Y S X X - 1 6 : P R I N T " { H O M E } F 1 - R E T R I E V E F

O R A M "3 5 2 0 P R I N T " F 2 - R O M G F X { R V S } F 4 - R E V E R S E{ O F F } F 6 - R O M T E X T { R V S } F 8 - R E V E R S E

{ O F F } 1 1 ;3 5 3 0 G E T S 2 $ : I F S 2 $ = M I I T H E N 3 5 3 03 5 4 0 I F S 2 $ = " { F l } " T H E N X R = X X : G O T O 3 5 8 03 5 5 0 S 2 = A S C ( S 2 $ ) - 1 3 7 : I F S 2 > - 1 A N D S 2 < 4 T H E N X

R = 3 2 7 6 8 + 1 0 2 4 * S 2 : G O T O 3 5 7 03 5 6 0 G O T O 3 5 3 0

I F S 2 > 1 T H E N P O K E 3 6 8 6 9 , P E E K ( 3 6 8 6 9 ) A N D NO T 1 5 O R 2 : G O T O 1 6 0P O K E 3 6 8 6 9 , P E E K ( 3 6 8 6 9 ) A N D N O T 1 5 : G O T O 16

4 0 0 0 I F J = 0 T H E N C 0 = C4 0 1 0 S Y S X X - 1 6 : P R I N T " { H O M E } " : P R I N T " L O O K I N

A T { 2 S P A C E S } " ; S 5 $ : P O K E S C + 3 3 , C 04 0 2 0 F O R D = 1 T O 8 : D A = P E E K ( X R + C 0 * 8 + D - 1 ) : D I = 04 0 3 0 F O R D D = l T O 8 : D I = I N T ( D A / 2 t ( 8 - D D ) ) : D A = D

A - D I * 2 t ( 8 - D D )4 0 4 0 I F D I > 0 T H E N D O = 1 6 0 : G O T O 4 0 6 04 0 5 0 D O = 3 24 0 6 0 I F D D = 8 A N D D < 8 T H E N Z D = 1 5 : G O T O 4 0 9 04 0 7 0 I F D = 8 A N D D D = 8 T H E N P O K E Z F + 1 , D O : G O T O 4 1 04 0 8 0 Z D = 14 0 9 0 Z F = S C + ( W + D ) * 2 2 + H H + D D : P O K E Z F f D O : P O K

E Z F + Z D , P E E K ( Z F + Z D ) + 7 2 : N E X T D D : N E X T D4 1 0 0 I F C E > 0 T H E N K = 2 : G O T O 4 1 2 04 1 1 0 G O T O 3 4 04 1 2 0 S Y S X X - 1 6 : P R I N T " { H O M E } R E N A M E " : G O T O 25 0 0 0 C = A S C ( C $ ) : C E = 05 0 1 0 O N I N T ( C / 3 2 ) G O T O 5 0 6 0 / 5 0 4 0 # 5 0 5 0 , 5 0 2 0 ,

5 0 4 0 , 5 0 3 05 0 2 0 C E = 1 : R E T U R N5 0 3 0 C = C - 6 45 0 4 0 C = C - 3 25 0 5 0 C = C - 3 25 0 6 0 I F J = 1 T H E N C 0 = C G

6

Page 76: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 76/284

5 0 7 0 I F X X = 7 1 6 8 A N D O 6 3 A N D S C = 7 6 8 0 T H E N C E = 2 :R E T U R N5 0 8 0 R E T U R N

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

P r o g r a m 2 P i x a v e r1 X X = ( P E E K ( 5 6 ) + 1 ) * 2 5 63 0 0 0 S Y S X X - 1 6 : P R I N T M { C L R } F I R S T C H A R A C T E R

? " 3 0 1 0 G E T S R $ : I F S R $ = " " T H E N 3 0 1 03 0 2 0 C $ = S R $ : G O S U B 5 0 0 0 : S R = C : I F C E > 0 T H E N 3 0 13 0 3 0 P R I N T " { H O M E } " S P C ( 1 5 ) " " S R $ ; S P C ( 5 ) " L

A S T C H A R A C T E R ? " 3 0 4 0 G E T L S $ : I F L S $ = " " T H E N 3 0 4 03 0 5 0 C $ = L S $ : G O S U B 5 0 0 0 : L S = C : I F C E = 1 T H E N 3 0 43 0 6 0 I F S R > L S T H E N S S = S R : S R = L S : L S = S S : S S $ = S R

$ : S R $ = L S $ : L S $ = S S $3 0 7 0 S Y S X X - 1 6 : P R I N T " { H O M E } S A V I N G " S R $ "" L S $ ;3 0 8 0 P R I N T " { H O M E } " ; : O P E N 1 , 1 , 1 , S R $3 0 9 0 S Y S X X - 1 6 : P R I N T " { H O M E } S A V I N G " S R $ "

" L S $3 1 0 0 P R I N T # 1 , S R3 1 1 0 P R I N T # 1 , L S3 1 2 0 F O R C Z = S R T O L S3 1 3 0 F O R L L = 0 T O 73 1 4 0 P R I N T # 1 , P E E K ( X X + C Z * 8 + L L )3 1 5 0 N E X T L L3 1 6 0 N E X T C Z3 1 7 0 C L O S E 13 1 8 0 E N 5 0 0 0 C = A S C ( C $ ) : C E = 05 0 1 0 O N I N T ( C / 3 2 ) G O T O 5 0 6 0 , 5 0 3 0 , 5 0 4 0 , 5 0 2 0 ,

5 0 3 0 , 5 0 5 05 0 2 0 C E = 1 : R E T U R N5 0 3 0 C = C - 6 4 : G O T O 5 0 6 05 0 4 0 C = C - 3 2 : G O T O 5 0 6 05 0 5 0 C = C - 1 2 8 : G O T O 5 0 6 05 0 6 0 I F X X = 7 1 6 8 A N D P E E K ( 6 4 8 ) * 2 5 6 = 7 6 8 0 A N D C >

6 3 T H E N C E = 2 : R E T U R N5 0 7 0 R E T U R N

6

Page 77: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 77/284

P r o g r a m 3 P i x e l o a d e r1 X X = 7 1 6 82 O P E N 1 , 1 # 03 I N P U T # 1 , S R4 I N P U T * 1 , L S5 F O R S = S R T O L S6 F O R R = 0 T O 77 I N P U T # 1 , C : P O K E X X + S * 8 + R , C : N E X T R : N E X T S8 C L O S E 1

P r o g r a m 4 P i x d a t aR E D E L E T E T H I S L I N E A F T E R R U N N I N G

1 C = P E E K ( 5 6 ) : P O K E 5 1 , 0 : P O K E 5 2 , 2 0 : P O K E 5 5 ,0 : P O K E 5 6 , 2 0 : R E M M U S T M A T C H Z

2 X X = 7 1 6 83 S R = 0 : L S = 2 6 : R E M F I R S T A N L A S T C H A R A C T

E R 4 Z Z = 5 1 2 0 : A A = Z Z5 P O K E Z Z - 1 , 06 F O R L = S R T O L S7 L 2 = I N T ( ( L * 1 0 + 5 0 0 0 ) / 2 5 6 ) : L l = ( L * 1 0 + 5 0 0 0

) - L 2 * 2 5 6 : P O K E Z Z + 2 L I : P O K E Z Z + 3 , L 28 P O K E Z Z + 4 , 1 3 1 : X = 49 F O R L L = 0 T O 71 0 S $ = S T R $ ( P E E K ( X X + L * 8 + L L ) ) : S = L E N ( S $ )1 1 F O R L Z = 2 T O S : X = X + 1 : P O K E Z Z + X , A S C ( M I D $ ( S

$ , L Z , 1 ) ) : N E X T L Z1 2 I F L L = 7 T H E N 1 4 01 3 X = X + 1 : P O K E Z Z + X , 4 4 : N E X T L L1 4 X = X + 1 : P O K E Z Z + X # 01 5 X = X + l 2 Z 2 = I N T ( ( Z Z + X ) / 2 5 6 ) : Z l = Z Z + X - Z 2 *

2 5 6 : P O K E Z Z , Z l : P O K E Z Z + 1 , Z 2 : Z Z = Z Z + X : N EX T

1 6 P O K E Z Z , 0 : P O K E Z Z + 1 , 01 7 A 2 = I N T ( A A / 2 5 6 ) : A 1 = A A - A 2 * 2 5 6 : B = P E E K ( 4

3 ) + 2 5 6 * P E E K ( 4 4 ) : P O K E B # A l : P O K E B + l , A 2 :P O K E 5 6 # C

1 8 Z Z = Z Z + 2 5 7 - A A + B z Z 2 = I N T ( Z Z / 2 5 6 ) : Z 1 = Z Z -Z 2 * 2 5 6

1 9 P O K E 2 5 1 # Z 1 : P O K E 1 7 4 # 0 : P O K E 1 7 5 # 0 : P O K E 46 # Z 2 : P O K E 4 5 , P E E K ( 2 5 1 )

6

Page 78: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 78/284

B u B a n i sU s i n g t h e " m u l t i c o l o r m o d e ! ' c a a d g r e a t d e a l t y o u r p r o g r a m s . P r s e n t e d h e r e i a e x p l a n a t i o n o f h o t u s i t p l u s a d e m o n s t r a t i o n g a m e ," U F O P i l o t "Y o u r V I C - 2 0 h a s o u t s t a n d i n g c o l o r g r a p h i c s c a p a b i l i t i e s . H o w e v e r ,t h u n e x p a n d e d m a c h i n e h a l i m i t e d m e m o r y t t a k e a d v a n t a g e o t h e s e c a p a b i l i t i e s , a n t h a v e r a g e c o m p u t e r i s t w h i t r y i n g t j u s t i f y " b u y i n g m o r e t h a n v i d e o g a m e " h a t p r o v i d e h i f a m i l yw i t h r e a s o n a b l e a m o u n t o e n t e r t a i n m e n t w i t h o u t b u y i n g l o o e x p e n s i v e m e m o r y e x p a n s i o n .

T w o p t i o n s h a v e b e e n o f f e r e d f o d e s i g n i n g g a m e g r a p h i c sc h a r a c t e r s :

1 T h C o m m o d o r e g r a p h i c s k e y s c a b u s e d t b u i l d m u t i p l e s p a c e c h a r a c t e r s . T h e s e t a k e u l o o s p a c e a n a r c u m b e r s o m e t m o v e a r o u n d .2 C u s t o m c h a r a c t e r s c a n b e d r a w n i y o u ' r e w i l l i n g t g i v e u v a l u a b l e R A i n s t e a d o t a k i n g e x i s t i n g c h a r a c t e r s f r o mR O M . B a s i c a l l y , w h o l e s e t s o c h a r a c t e r s a r m o v e d f r o mR O t R A M , a n t h e n s o m e o t h c h a r a c t e r s c a b r d e f i n e d b s e r i e s o P O K E s t R A M . B e c a u s e t h p o i n t e r i d i c a t i n g t h s t a r t o c h a r a c t e r m e m o r y h a t b r e s e t ( 3 6 8 6 9 ) ,t h i s i a a l l - o r - n o t h i n g p r o c e s s . A n s t a n d a r d c h a r a c t e r s y o w a n t t u s m u s t a l s o b r e l o c a t e d f r o m R O t R A M .A a a l t e r n a t i v e , s o m e p e r f e c t l y a c c e p t a b l e s i n g l e s p a c ec h a r a c t e r s c a b c r e a t e d f r o m s t a n d a r d c h a r a c t e r s i n R O j u s t b

P O K E i n g t h e i r s c r e e n l o c a t i o n s i n t o m u l t i c o l o r m o d e . T h i s a p r o a c h u s e s n m e m o r y a n g i v e s w i d e v a r i e t y o f " n e w " c h a ra c t e r s ( a b o u t f o u r m i l l i o n ) t o c h o o s e f r o m .

T h i s a r t i c l e d e s c r i b e s t h u s o m u l t i c o l o r m o d e i d e t a i l , i c l u d e s a p r o g r a m t f i n d i n t e r e s t i n g c h a r a c t e r s , a n c o n c l u d e sw i t h g a m e d e m o n s t r a t i n g t h t e c h n i q u e .7

Page 79: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 79/284

H o C h a r a c t e r s A r S t o r e dI o r d e r t e x p l a i n m u l t i c o l o r m o d e , i t ' s i m p o r t a n t t f i r s t d e s c r i b eh o c h a r a c t e r s a r e f o r m e d o t h s c r e e n i t h f i r s t p l a c e . T h V I C - 2 0 P r o g r a m m e r ' s R e f e r e n c e G u i d e ( p p . 8 2 - 9 4 ) h a s e v e r a l e r r o r s

i i t d e s c r i p t i o n o t h i s p r o c e s s .C h a r a c t e r s a r e s t o r e d i m e m o r y a a 8 x g r i d o d o t s . E a c h

d o ( b i t ) i t u r n e d e i t h e r " o n " o " o f f . " E a c h e i g h t - b i t l i n e ( b y t e ) c a b r e p r e s e n t e d b n u m b e r w h i c h u n i q u e l y t u r n s s o m e b i t s " o n "a n o t h e r s " o f f . " E a c h b i i r e p r e s e n t e d b n u m b e r w h i c h i p o w e r o t w i " o n " o b z e r o i " o f f . " T h v a l u e a s s i g n e d t t h b y t e i t h s u o t h e v a l u e s o i t e i g h t b i t s .

b i n u m b e r 5 4 3 2 1 0v a l u e o 2 1 2 6 4 3 2 1

T h u s , i o n l y b i z e r o i " o n , " t h v a l u e o t h b y t e i 2 = 1 I o n l yb i f o u r i " o n , " t h e v a l u e o t h b y t e i 2 = 1 6 . I b i t s z e r o a n f o u ra r b o t h " o n " a n a l t h o t h e r s a r " o f f , " t h e n t h e v a l u e o t h b y t e i 2 a n 2 = + 1 = 1 7 . I a l e i g h t b i t s a r " o n , " t h e n t h v a l u eo t h b y t e i 1 2 + 6 4 + 3 2 + 1 + + 4 + 2 + 1 = 2 5 5 . w h o l ec h a r a c t e r t a k e s e i g h t l i n e s o e i g h t b y t e s o m e m o r y . F o e x a m p l e ,t h l e t t e r i s

b i t n o . 7 6 5 4 3 2 1 0 v a l u e o b y t eb y t e l 0 0 0 1 1 0 0 0 2 4 + 2 3 = 2 4

0 0 1 0 0 1 0 0 2 5 + 2 2 = 3 60 1 0 0 0 0 1 0 2 6 + 2 1 = 6 60 1 1 1 1 1 1 0 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 1 = 1 2 60 1 0 0 0 0 1 0 2 6 + 2 1 = 6 60 1 0 0 0 0 1 0 2 6 + 2 1 = 6 60 1 0 0 0 0 1 0 2 6 + 2 ! = 6 60 0 0 0 0 0 0 0

C u s t o m c h a r a c t e r s c a b s t o r e d i R A l o c a t i o n s b P O K E i n gt h d e s i r e d v a l u e s i n t o t h i n d i v i d u a l m e m o r y l o c a t i o n s ( b y t e s ) .

T h e u n e x p a n d e d V I C - 2 0 h a r o o m f o 5 1 2 0 b y t e s i R A o a b o u t 3 . t h o u s a n d ( K b y t e s u s e r - a v a i l a b l e R A a f t e r b u f f e r s a n s c r e e n m e m o r i e s , e t c . , a r a l l o c a t e d . S i n c e e a c h c h a r a c t e r t a k e su e i g h t b y t e s , m o v i n g 6 c h a r a c t e r s f r o m R O t R A M , a v a i la b l e f o u s o m o d i f i c a t i o n i t h c u s t o m c h a r a c t e r m o d e , u s e s6 = 5 1 2 b y t e s o R A a n d m a k e s i u n a v a i l a b l e f o o t h e r u s e s .M u l t i c o l o r M o d eI m u l t i c o l o r m o d e , c h a r a c t e r s a r s t o r e d i t h s a m e w a y , b u b i t s a r r e a d t w a t i m e t s p e c i f y o n o f o u r c o l o r s i t w o - d o t

7

Page 80: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 80/284

s p a c e . T a k i n g t w b i t s a t i m e a l l o w s f o u r p o s s i b i l i t i e s , a o p o s e d t t h t w ( " o n " o " o f f 7 ) w h e n b i t s a r t a k e n o n a t i m e .b i p a i r0 1 0 1

c o l o r s s e l e c t e d1 b a c k g r o u n d c o l o r s

c h a r a c t e r c o l o r sb o r d e r c o l o r s

1 a u x i l i a r y c o l o r s

m e m o r y l o c a t i o n ( P O K E )3 6 8 7 9 , b i t s 4 - 3 8 4 0 0 - 3 8 9 1 1 , b i t s 0 - 3 6 8 7 9 , b i t s 0 - 3 6 8 7 8 , b i t s 4 -

T h u s , i y o w e r e c u s t o m d e s i g n i n g f l a g w i t h a l t e r n a t i n gb a c k g r o u n d c o l o r a n b o r d e r c o l o r s t r i p e s , a c h a r a c t e r c o l o rs q u a r e i t h u p p e r l e f t - h a n d c o r n e r , a n a a u x i l i a r y c o l o r p o l e ,t h s t o r e d d a t a m i g h t l o o k s o m e t h i n g l i k e t h i s :

b i p a i r s v a l u e o b y t e ( P O K E )b y t e ( 1 0 ) ( 1 0 ) ( 0 1 ) ( 0 1 ) 1 2 + 3 + + = 1 6 5

( 1 0 ) ( 1 0 ) ( 0 0 ) ( 0 0 ) 1 2 + 3 = 1 6 0( 1 0 ) ( 1 0 ) ( 0 1 ) ( 0 1 ) 1 2 + 3 + + = 1 6 5( 0 0 ) ( 0 0 ) ( 0 0 ) ( 0 0 )( 0 1 ) ( 0 1 ) ( 0 1 ) ( 0 1 ) 6 4 + 1 6 + + = 8

6 ( U ) ( 0 0 ) ( 0 0 ) ( 0 0 ) 1 2 + 6 = 1 9 2( 1 1 ) ( 0 0 ) ( 0 0 ) ( 0 0 ) 1 2 + 6 = 1 9 2( 1 1 ) ( 0 0 ) ( 0 0 ) ( 0 0 ) 1 2 + 6 = 1 9 2

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

O n c e c h a r a c t e r i s t o r e d i m e m o r y i t h i s w a y , i o r d e r t p r i n t i o s c r e e n i i t f u l l m u l t i c o l o r g l o r y , w n e e d t f i r s t s p e ci f m u l t i c o l o r m o d e i n t h a t s c r e e n l o c a t i o n , t h e n c h o o s e t h a p r o p r i a t e c o l o r s f o b o r d e r , b a c k g r o u n d , c h a r a c t e r , a n a u x i l i a r yu s e . B P O K E i n g t h e s e o t h e r r e f e r e n c e l o c a t i o n s , w c a m a k es u b s t a n t i a l c h a n g e s i t h c h a r a c t e r . F o r e x a m p l e , i t h a u x i l i a r yc o l o r i t h s a m e a t h b a c k g r o u n d c o l o r , t h f l a g p o l ed i s a p p e a r s .S e l e c t i n g C o l o r sS p e c i f y i n g c o l o r s i l i t t l e m o r e c o m p l i c a t e d t h a n j u s t P O K E i n gn u m b e r i n t o m e m o r y l o c a t i o n . T h r e a s o n i t h a t t h c o l o rc o d e s u s o n l y s p e c i f i c b i t s , a n t h r e s t o t h b i t s i t h b y t e a r u s e d f o s o m e t h i n g e l s e . F o e x a m p l e , t h a u x i l i a r y c o l o r c o d eu s e s o n l y b i t s 4 - i m e m o r y l o c a t i o n 3 6 8 7 8 . T h o t h e r f o u r b i t s( 0 - 3 ) a r u s e d f o r s e t t i n g v o l u m e o n t h s o u n d . S e l e c t i o n o f m u l t ic o l o r m o d e f o g i v e n s c r e e n l o c a t i o n i n v o l v e s t u r n i n g o s i n g l e b i i t h m e m o r y f o t h a t s p a c e o t h s c r e e n . T h o t h e rb i t s h o l d o t h e r i n f o r m a t i o n .

7

Page 81: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 81/284

C h o o s i n g B o r d e r a n B a c k g r o u n d C o l o r sB n o w , y o s h o u l d b e p r e t t y w e l l v e r s e d i t h i s o p e r a t i o n , a n y o h a v e p r o b a b l y t r i e d s o m e o t h c o m b i n a t i o n s l i s t e d i A p e n d i x o f P e r s o n a l C o m p u t i n g o t h V I C - 2 0 . I s e e m s s i m p l ee n o u g h P O K E i n g n u m b e r o u o t h t a b l e i n t o m e m o r y l o c at i o n 3 6 8 7 9 g i v e s y o t h e i n d i c a t e d c o m b i n a t i o n o s c r e e n a n b o r d e r c o l o r s . A c t u a l l y , b y t e 3 6 8 7 9 s p e c i f i e s t h r e e t h i n g s w h i c hc o u l d b r e f e r e n c e d i n d e p e n d e n t l y .

B o r d e r c o l o r s a r s p e c i f i e d b b i t s 0 - 2 . T h d e c i m a l t r a n s l at i o n i v a l u e s 0 - 7 , t g i v e e i g h t p o s s i b l e c h o i c e s ( i s a l l " o f f , " i a l " o n " ) : i b l a c k , 1 i w h i t e , i r e d , e t c . , i t h s a m e s e q u e n c e a t h c o l o r k e y s . B i t s 4 - s p e c i f y b a c k g r o u n d , o s c r e e n , c o l o r s . T h v a l u e s a s s o c i a t e d w i t h t h e s e b i t s a r m u l t i p l e s o 1 6 F o e x a m p l e ,i b i f o u r i t u r n e d " o n , " i t d e c i m a l v a l u e i 2 = 1 6 ; i a l f o u r b i t s4 - a r t u r n e d " o n , " t h c o m b i n e d d e c i m a l v a l u e o t h e s e b i t s i 2

+ 2 s + 2 6 + 2 7 = 1 + 3 + 6 + 1 2 8 = 2 4 0 .l i t t l e f o o l i n g w i t h t h n u m b e r s s h o u l d c o n v i n c e y o t h a t

t h e s e f o u r b i t s c a g i v e y o a n m u l t i p l e o 1 f r o m 0 1 6 t o 1 5 * 1 6 o 1 p o s s i b i l i t i e s . T h i s c o r r e s p o n d s t t h 1 c h o i c e s o s c r e e nc o l o r i t h o r d e r l i s t e d i A p p e n d i x o t h b o o k P e r s o n a l C o p u t i n g o t h V L C - 2 0 . C a s u a l i n s p e c t i o n o t h i s t a b l e r e v e a l s t h a ts o m e p o s s i b l e v a l u e s a r n o l i s t e d f o e x a m p l e , 0 - 7 , 1 6 - 2 3 , e t c .T h l o w e s t v a l u e l i s t e d i 8 W h a t t h i s m e a n s i t h a t b i n u m b e rt h r e e , d e c i m a l v a l u e 2 = 8 i a l w a y s " o n " w h e n o n o t h v a l u e si t h t a b l e i u s e d . I y o P O K E 3 6 8 7 9 , X w h e r e i v a l u e n o i t h t a b l e , b i t h r e e i t u r n e d " o f f , " a n t h e s c r e e n i p u i t h i n v e r t e d m o d e , w h i c h m a k e s a l t h p r i n t i n g a p p e a r i t h r e v e r s e .T h u s , b y t e 3 6 8 7 9 c o n t a i n s t h r e e s e p a r a t e m e m o r y r e f e r e n c e s :

b i t s 0 - f o b o r d e r c o l o r ( e i g h t c o l o r s ) ; b i f o i n v e r t e d m o d e( w h e n " o f f " ) ; a n b i t s 4 - f o s c r e e n c o l o r ( 1 c o l o r s f r o m 0 * 1 6 t 1 5 * 1 6 ) .

S e t t i n g C h a r a c t e r C o l o r a n S e l e c t i n g M u l t i c o l o r M o d eC h a r a c t e r c o l o r i s p e c i f i e d s e p a r a t e l y f o e a c h l o c a t i o n o t h s c r e e n ( s e e p a g e s 1 4 3 - 4 4 i P e r s o n a l C o m p u t i n g o t h V I C - 2 0 ) o rc a b s p e c i f i e d b e f o r e p r i n t i n g s e r i e s o f c h a r a c t e r s b u s i n g t h c o n t r o l c o l o r k e y s . C h a r a c t e r c o l o r i s p e c i f i e d s e p a r a t e l y f o e a c hs c r e e n l o c a t i o n b P O K E i n g l o c a t i o n s b e t w e e n 3 8 4 0 0 a n 3 8 9 0 5w i t h v a l u e s f r o m 0 - t g i v e t h f a m i l i a r s e q u e n c e o b l a c k t y e l l o w c h a r a c t e r c o l o r s ( e i g h t c h o i c e s ) . V a l u e s f r o m 0 - 7 r e p r e s e n t

7

Page 82: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 82/284

I b i t h r e e i t u r n e d " o n " t h a t i s v a l u e s f r o m t 1 a r u s e d i n s t e a d o 0 - t h s c r e e n l o c a t i o n i p u i n t o m u l t i c o l o rm o d e a n t h b i t s a r e v a l u a t e d t w a t i m e t g i v e t h r e s u l t sd e s c r i b e d a b o v e u n d e r " M u l t i c o l o r M o d e . " I m u l t i c o l o r m o d e ,t h c h a r a c t e r c o l o r c o d e i ( v a l u e - 8 ) . F o e x a m p l e , P O K E 3 8 4 0 0 , 8p u t s t h f i r s t s p a c e i n t o m u l t i c o l o r m o d e w i t h c h a r a c t e r c o l o rb l a c k ( 0 ) . P O K E 3 8 4 2 2 , 1 5 p u t s t h t w e n t y - s e c o n d s p a c e ( f i r s ts p a c e , s e c o n d r o w ) i n t o m u l t i c o l o r m o d e w i t h c h a r a c t e r c o l o ry e l l o w ( 7 ) .

B i t s 4 - 7 a r u s e d f o s o m e t h i n g e l s e w h i c h i n o c l e a r f r o mt h m a n u a l s . R a n d o m l y P O K E i n g t h e s e b i t s e v e n t u a l l y g i v e s p c u l i a r r e s u l t s s u c h a " o u t o m e m o r y " e r r o r s . T h i s c a n b e a v o i d e db A N D i n g P O K E s w i t h 1 5

B o o l e a n O p e r a t o r sT h e r e i w a t r e a d a n w r i t e t o s p e c i f i c b i t s w i t h i n b y t e w i t ho u d i s t u r b i n g o t h e r b i t s w h i c h m i g h t c a r r y o t h e r i n f o r m a t i o n .U n l e s s y o u V e b e e n e x p o s e d t s e t h e o r y b e f o r e , t h a c t i o n o B o o l e a n o p e r a t o r s O a n A N m a s e e m s t r a n g e . T h e s eo p e r a t o r s a r u s e d t c o m b i n e i n f o r m a t i o n f r o m t w s e t s .

W h e n A N i u s e d , t h e r e s u l t i n c l u d e s o n l y t h a t i n f o r m a t i o nw h i c h i i n c l u d e d i b o t h s e t s . F o e x a m p l e , i a l e i g h t b i t s i b y t e w e r e t u r n e d " o n , " t h d e c i m a l v a l u e o f t h a t b y t e w o u l d b 2 5 5 . I a n o t h e r b y t e h a o n l y t h f i r s t f o u r b i t s t u r n e d " o n , " i t d e c i m a l v a l u e w o u l d b 1 5 T h r e s u l t f r o m A N D i n g b y t e s o n a n d t w o w o u l d h a v e o n l y " o n " b i t s t h a t w e r e " o n " i b o t h s e t s .T h i s g i v e s t h p e c u l i a r r e s u l t t h a t 2 5 A N 1 = 1 5 .

I y o w a n t e d t k n o w t h s t a t u s o o n l y s i n g l e b i t , y o c o u l d s c r e e n o u e x t r a n e o u s i n f o r m a t i o n b A N D i n g w i t h t h d e c i m a l v a l u e f o t h a t b i t : P R I N T P E E K ( 3 8 4 0 0 ) A N w o u l d r t u r n 8 i t h t h i r d b i i " o n " o i t h t h i r d b i i " o f f . " T h s t a t u so o t h e j b i t s d o e s n ' t m a t t e r .

T h O o p e r a t o r c o m b i n e s s e t s s t h a t t h r e s u l t i n c l u d e s a l b i t s " o n " w h i c h w e r e " o n " i e i t h e r s e t . T h u s , 2 5 O 1 = 2 5 5 ; 2 4 O 1 = 2 5 5 . T h e s e o p e r a t o r s c a n b e u s e d t P O K E g i v e n b i " o n " o r " o f f " w i t h o u t d i s t u r b i n g o t h e r i n f o r m a t i o n i t h b y t e . F o e x a m p l e , s u p p o s e w w a n t e d t P O K E b i t h r e e ( d e c i m a l v a l u e 8 i 3 8 4 0 0 " o n . " W c o u l d d t h i s b P O K E 3 8 4 0 0 , O P E E K( 3 8 4 0 0 ) . T t u r n b i t h r e e " o f f , " P O K E 3 8 4 0 0 , 2 4 7 A N P E E K( 3 8 4 0 0 ) . 2 4 i t h d e c i m a l v a l u e f o b y t e w i t h a l b i t s " o n " e x c e p tf o b i t h r e e .

7

Page 83: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 83/284

r r

S e t t i n g A u x i l i a r y C o l o rT h f o u r t h c o l o r a v a i l a b l e i m u l t i c o l o r m o d e i c a l l e d a u x i l i a r yc o l o r a n i s e b P O K E i n g v a l u e s i n t o t h u p p e r f o u r b i t s o m e m o r y l o c a t i o n 3 6 8 7 8 . T h l o w e r f o u r b i t s a r u s e d t s e v o l u m eo t h s o u n d . T h e r e a r 1 c o l o r s a v a i l a b l e , i t h s a m e o r d e r a t h 1 s c r e e n c o l o r s . A w i t h t h e s c r e e n c o l o r s , v a l u e s P O K E d i n t ot h u p p e r f o u r b i t s a r m u l t i p l e s o 1 6

F o e x a m p l e , P O K E 3 6 8 7 8 , 1 * 1 6 s e t s a u x i l i a r y c o l o r w h i t e ;P O K E 3 6 8 7 8 , 1 5 * 1 6 s e t s a u x i l i a r y c o l o r l i g h t y e l l o w . T h e s e P O K E sw o u l d a l s o s e s o u n d v o l u m e t 0 I y o w a n t e d t s e a u x i l i a r yc o l o r r e a t h s a m e t i m e a k e e p i n g v o l u m e a t h m a x i m u m , 1 5 y o c o u l d P O K E 3 6 8 7 8 , 1 5 + 2 * 1 6 , o r t l e a v e t h s o u n d v o l u m ea l o n e , u s t h B o o l e a n o p e r a t o r s : P O K E 3 6 8 7 8 , 2 * 1 6 O ( P E E K( 3 6 8 7 8 ) A N 1 5 ) .S a m p l e r P r o g r a m t F i n d I n t e r e s t i n g C h a r a c t e r sG i v e n t h a b o v e d e t a i l o m u l t i c o l o r m o d e , t h f i r s t p r o g r a ms h o u l d b e s e l f - e x p l a n a t o r y ( s e e P r o g r a m 1 ) T e c h a r a c t e r sa r d i s p l a y e d , w i t h t h m i d d l e e i g h t i n m u l t i c o l o r m o d e t s h o w t h r a n g e o c h a r a c t e r c o l o r s . T h c u r s o r k e y c a n b u s e d t l o o k a t h e n e x t o p r e v i o u s c h a r a c t e r s . C u r s o r d o w n a n c u r s o r u a c a " f a s t f o r w a r d " a n " f a s t r e v e r s e / ' r e s p e c t i v e l y .C u r s o r r i g h t a n c u r s o r l e f t c a a l s o b u s e d t g i v e t i m e d e l a y( l i n e s 7 a n 9 0 ) i n t h d i s p l a y b e f o r e c h a n g i n g c h a r a c t e r s .

A f t e r f i n d i n g a i n t e r e s t i n g c h a r a c t e r , p r e s s F t e x p l o r e t h ee f f e c t s o t h 1 2 d i f f e r e n t c o m b i n a t i o n s o s c r e e n a n b o r d e r c o o r s . T h s p a c e b a r a l l o w s a r a p i d p e r u s a l . F g i v e s a n o t h e r d i m e ns i o n , a g a i n u s i n g t h s p a c e b a ( o " a n y k e y " ) t r u t h r o u g h t h 1 6 a v a i l a b l e a u x i l i a r y c o l o r s . T l o o k a c h a r a c t e r s e ( P e r s o n a lC o m p u t i n g o t h V 1 C - 2 0 , A p p e n d i x H p p 1 3 9 - 4 2 ) , p r e s s t h S H I F T a n C O M M O D O R E k e y s s i m u l t a n e o u s l y .

I n c l u d i n g r e v e r s e m o d e a n b o t h c h a r a c t e r s e t s , t h e r e a r a b o u t 2 5 c h a r a c t e r s w h i c h c a b m o d i f i e d t h r o u g h u s e o m u l t ic o l o r m o d e . W i t h b o r d e r c o l o r s , 1 s c r e e n c o l o r s , c h a r a c t e r c o o r a n 1 a u x i l i a r y c o l o r s , t h n u m b e r o c o m b i n a t i o n s f o y o u rs e l e c t i o n i r o u g h l y 2 5 1 1 o a b o u t f o u r m i l l i o n " n e w "c h a r a c t e r s t c h o o s e f r o m !U F P i l o t G a m e D e m o n s t r a t i n g M u l t i c o l o rM o d e G r a p h i c sH a v i n g p r o g r e s s e d t h r o u g h t h t h e o r y t e m p i r i c a l s e l e c t i o n , i s e e m s l o g i c a l t c o m e t t h p o i n t o t h i s a r t i c l e . " U F O P i l o t " i

7

Page 84: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 84/284

g a m e d e m o n s t r a t i n g t h u s o m u l t i c o l o r m o d e t m a k e " n e w "g a m e g r a p h i c s c h a r a c t e r s . T h p r o g r a m u s e s a b o u t 2 R A a n t h o n l y e x p a n s i o n r e q u i r e d i j o y s t i c k .

C h a r a c t e r 8 ( t h e c l u b ) i t r a n s f o r m e d t m u l t i c o l o r U F w h i c h y o p i l o t u s i n g t h j o y s t i c k . T h o b j e c t i v e i t a c h i e v e t h el o n g e s t f l i g h t w i t h o u t r u n n i n g i n t o y o u r o w t r a i l o w h i t e d o t s o t h w a r p l a n e ( c h a r a c t e r 6 2 t h a t ' s i c o n s t a n t p u r s u i t . c o l l i s i o nr e s u l t s i a e x p l o s i o n ( c h a r a c t e r 4 t a k e n t h r o u g h s e r i e s o c h a r a c t e r c o l o r c h a n g e s i l i n e s 9 5 0 0 - 9 5 1 0 ) a n r e t u r n t t h d e m o n s t r a t i o n m o d e a t h b e g i n n i n g o t h p r o g r a m .I y o d o n ' t h a v e a n y t h i n g b e t t e r t o d o y o c a w a t c h t h i sd i s p l a y r u t h r o u g h a l t h p o s s i b l e c o l o r c o m b i n a t i o n s . T h p a u s e i m i d s c r e e n i w h i c h t h U F " f l a s h e s i t l i g h t s " i d e m o n s t r a t i o n o c h a n g i n g a u x i l i a r y c o l o r s ( l i n e 1 0 ) . O t h e r w i s e ,a u x i l i a r y c o l o r ( b l a c k ) i u s e d t h r o u g h o u t t h g a m e s p e c i f i e db P O K E 3 6 8 7 8 , 1 5 ( h i g h v o l u m e ) . I t h d e m o n s t r a t i o n m o d e b g i n s t w e a r o y o a n y o u w a n t t c o n c e n t r a t e o t h g a m e ,c h a n g e l i n e 9 5 3 0 t G O T O 1 9 .

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

P r o g r a m 1 S a m p l e C h a r a c t e r s i M u l t i c o l o r M o d eP R I N T " { C L R } S A M P L E R , S H O W S S O M E { 5 S P A C E S }

S T A N D A R D C H A R A C T E R S { 4 S P A C E S } I N M U L T I CO L O R M O D E .

P R I N T : P R I N T " U S E T H C U R S O R K E Y S{ S P A C E S } T O C H A N G E C H A R A C T E R S , F l , F 3

T C H A N G E C O L O R SP R I N T : P R I N T " H I T K E Y "G E T C $ : I F C $ = " " T H E N 8

1 N = 0 : G O T O 1 3 02 G E T C $ : I F C $ = C H R $ ( 1 7 ) T H E N 8 03 I F C $ = C H R $ ( 2 9 ) T H E N 7 04 I F C $ = C H R $ ( 1 4 5 ) T H E N 1 0 05 I F C $ = C H R $ ( 1 5 7 ) T H E N 9 05 I F C $ = C H R $ ( 1 3 3 ) T H E N 4 0 05 I F C $ = C H R $ ( 1 3 4 ) T H E N G O S U B 6 0 06 G O T O 2 07 F O R T T = 1 T O 3 0 0 : N E X T8 N = N + 1 : I F N = 2 5 6 T H E N 1 08 G O T O 1 3 09 F O R T T = 1 T O 3 0 0 : N E X T1 0 N = N - 1 : I F N = - 1 T H E N 1 0

7

Page 85: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 85/284

1 1 G O T O 1 3 01 3 P R I N T " { C L R } " : P R I N T1 4 F O R I = 2 T O 2 0 S T E P 21 5 P O K E 7 6 8 0 + 2 2 + I , N1 6 P O K E 3 8 4 0 0 + 2 2 + I , ( ( 1 / 2 + 6 ) A N D 1 5 )1 7 N E X T1 8 P R I N T : P R I N T " C H A R A C T E R N C K " ; N1 9 P R I N T : G O T O 2 04 0 P S = 8 + 1 6 * I N T ( C C / 8 ) + C S4 1 P 0 K E 3 6 8 7 9 , P S : P R I N T " { H O M E } { 5 D O W N } S C R E

E C O L O R = { L E F T } " ; P S : P R I N T " A U X C O L O R= 0 { 3 S P A C E S } 1 1

4 2 G E T C $ : I F C $ = " " T H E N 4 2 04 3 I F C $ = C H R $ ( 1 3 4 ) T H E N G O S U B 6 0 04 5 C C = C C + 1 : C S = C C A N D 7 : I F P S = 2 5 5 T H E N P O K E 3 6 8

7 9 , 2 7 : C C = 0 : C S = 0 : G O T O 2 04 6 G O T O 4 0 06 0 F O R A N = 0 T O 1 56 1 P O K E 3 6 8 7 8 , 1 6 * A N6 5 P R I N T " { H O M E } { 5 D O W N j S C R E E N C O L O R =

{ L E F T } " ; P S : P R I N T " A U X C O L O R ={ S P A C E S } { 2 L E F T } H 7 A N

6 6 G E T C $ : I F C $ = " " T H E N 6 6 06 7 N E X T : P O K E 3 6 8 7 8 , 06 8 P R I N T " { H O M E } { 6 D O W N } A U X C O L O R =

{ S P A C E S } { 2 L E F T } 0 "6 9 G E T C $ : I F C $ = " " T H E N 6 9 07 0 R E T U R N

P r o g r a m 2 U F P i l o tS S = 2 4 : P O K E 3 6 8 7 9 , 6 3 : P O K E 3 6 8 7 8 , 1 5 : D I M J S (2 , 2 )P R I N T " { C L R } " : P R I N T S P C ( 5 ) : P R I N T " * * * * * * ** * * * * * " : P R I N T S P C ( 5 )P R I N T " * * { R V S } U F O P I L O T { O F F } * * " : P R I N T S PC ( 5 ) " * * * * * * * * * * * * * " : P R I N T " { 5 S P A C E S } *[ S P A C E S } 7 - 2 8 - 8 2 { 2 S P A C E S } * "P R I N T S P C ( 5 ) : P R I N T " * * * * * * * * * * * * * "P R I N T " { 3 D O W N } { 2 S P A C E S } S E T D I R E C T I O NO " : P R I N T " { 4 S P A C E S } S H I P W I T H T H E "P O K E 3 7 1 3 9 , 0 : D D = 3 7 1 5 4 : P A = 3 7 1 3 7 : P B = 3 7 1 5 2: P R I N T " { 5 S P A C E S } J O Y S T I C K "

P R I N T " { D O W N } { 2 S P A C E S } D O N ' T R U N I N T OO U R " : P R I N T " { 4 S P A C E S } O W N T R A I L O H I T "P R I N T " { 5 S P A C E S } T H E W A R P L A N E . " : P R I N T "{ D O W N } { 4 S P A C E S } H I T F I R E T S T A R TF O R A A = 0 T O 2 1 : P O K E 7 8 1 2 + A A , 8 8 : P O K E 3 8 5 3 2 + AA , 9 : G O S U B 9 0 0 0 : I F F R T H E N 1 9

7

Page 86: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 86/284

1 I F A A = 1 0 T H E N F O R T Y = 0 T O 1 5 : P O K E 3 6 8 7 8 , 1 5 O R1 6 * T Y : P O K E 3 6 8 7 4 , 2 4 4 : F O R M = 1 T O 5 0 : N E X T : NE X

1 P O K E 3 6 8 7 8 , 1 51 P O K E 3 6 8 7 4 , 2 3 4 + A A : P O K E 3 6 8 7 4 , 0 : P O K E 7 8 1 2

+ A A , 3 2 : N E X T : C S = S S A N D 71 F O R A A = 0 T O 2 1 : P O K E 7 7 0 1 - A A , 6 0 : P O K E 3 8 4 2 1 -

A A , 9 : P O K E 7 8 7 8 + A A , 6 21 P O K E 3 8 5 9 8 + A A , 9 : G O S U B 9 0 0 0 : I F F R T H E N 1 91 P O K E 3 6 8 7 4 , 2 1 5 : F O R T T = 1 T O 4 0 : N E X T : P O K E 3 6

8 7 4 , 0 : P O K E 3 6 8 7 5 , 2 5 5 - 5 * A A1 F O R T T = 1 T O 1 0 : N E X T : P O K E 3 6 8 7 5 , 0 : P O K E 7 8 7 8

+ A A # 3 2 : P O K E 7 7 0 1 - A A , 3 2 : N E X T1 P S = 8 + 1 6 * I N T ( S S / 8 ) + C S : P O K E 3 6 8 7 9 , P S : S S =

S S + 1 : I F P S = 2 5 5 T H E N S S = 01 G 0 T 0 91 F O R I = 0 T O 2 : F O R J = 0 T O 2 : R E A D J S ( J , I ) : N E X T J

, 2 F F = 5 0 5 : P R I N T M { C L R } { R V S } { 4 4 S P A C E S } "2 X X = 0 : A D = 0 : G O S U B 1 0 0 0 0 : I F S C > P H T H E N P H = S C2 P O K E 7 6 8 0 + F F , 8 8 : P O K E 3 8 4 0 0 + F F , 9 : G O S U B 9 0

0 0 : I F J S ( X + 1 , Y + 1 ) = 0 T H E N 2 42 S C = 0 : Y Y = 2 2 : G O S U B 1 0 0 0 03 G O S U B 9 0 0 0 : G O S U B 8 0 0 0 : Q Q = F F : X Z = Z X : Z X = X X

+ 2 2 * Y Y3 P R I N T 1 1 { H O M E } { R V S } { 1 S P A C E S } " : P R I N T "

{ H O M E } { R V S } { 2 S P A C E S } S C O R E = " ; S C ; "{ S P A C E S } "

3 I F J S ( X + l , Y + l ) T H E N A D = J S ( X + l . Y + l ) : P O K E 36 8 7 6 , 2 2 0

3 P O K E 3 6 8 7 6 # 03 P O K E 7 6 8 0 + F F , 4 6 : P O K E 3 8 4 0 0 + F F # 14 F F = F F + A D : I F F F < 4 4 T H E N F F = Q Q : G O T O 9 5 0 04 I F P E E K ( 7 6 8 0 + F F ) = 6 2 T H E N 9 5 0 04 I F P E E K ( 7 6 8 0 + F F ) = 4 6 T H E N 9 5 0 04 P O K E 7 6 8 0 + F F , 8 8 : P O K E 3 8 4 0 0 + F F , 94 I F F F = X Z T H E N 9 5 0 05 I F F F > 5 0 5 T H E N F F = Q Q : G O T O 9 5 0 05 B L = ( 2 5 5 - I N T ( A B S ( X X + 2 2 * Y Y - F F ) / 2 ) O R 1 2 8 )5 P O K E 7 6 8 0 + X Z # 3 2 : I F P E E K ( 7 6 8 0 + Z X ) = 8 8 T H E N

9 5 0 05 P O K E 7 6 8 0 + Z X , 6 2 : P O K E 3 8 4 0 0 - H Z X #5 P O K E 3 6 8 7 4 , B L : P O K E 3 6 8 7 4 , 07 G O T O 3 01 0 D A T A - 2 3 , - 2 2 , - 2 1 , - 1 , 0 , 1 , 2 1 , 2 2 , 2 38 0 0 0 S C = S C + 1 : X X = X X + 1 : I F X X = 2 2 T H E N X X = 0 : Y Y =

I N T ( F F / 2 2 )8 0 2 0 R E T U R N9 0 0 0 P O K E D D # 1 2 7 : S 3 = - ( ( P E E K ( P B ) A N D 1 2 8 ) = 0 )

: P O K E D D # 2 5 57

Page 87: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 87/284

9 0 1 0 P = P E E K ( P A ) : S 1 = - ( ( P A N D 8 ) = 0 ) : S 2 = ( ( P A ND 1 6 ) = 0 ) : S O = ( ( P A N D 4 ) = 0 )

9 0 2 0 F R = - ( ( P A N D 3 2 ) = 0 ) : X = S 2 + S 3 : Y = S O + S 1 : R ET U R N

9 5 0 0 P O K E 3 6 8 7 9 , 1 3 8 : P O K E 3 6 8 7 7 , 2 2 0 : P O K E 7 6 80 + F F , 4 2 : F O R Z Z = 1 T O 1 0 0

9 5 1 0 P O K E 3 8 4 0 0 + F F , Z Z A N D 1 5 : P O K E 3 6 8 7 8 , I N T (1 5 - Z Z / 7 ) : N E X T : P O K E 3 6 8 7 7 , 0

9 5 2 0 X X = 0 : R E S T O R E : P O K E 3 6 8 7 9 , 5 7 : P O K E 3 6 8 7 8, 1

9 5 3 0 G O T O 21 0 0 0 0 P R I N T " { H O M E } { R V S } { 1 5 S P A C E S } " : P R I N

T " { H O M E } { R V S } { 2 S P A C E S } S C O R E = " ; S C ;1 S P A C E S

1 0 0 1 0 P R I N T " { H O M E } { D O W N } { R V S } P R E V I O U S H G H = " ; P H : R E T U R N

7

Page 88: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 88/284

Page 89: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 89/284

Page 90: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 90/284

Page 91: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 91/284

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

B e l i e v e i o n o t , i t ' s t h D A T A s t a t e m e n t s t h a t m a k e t h i s p r o g r a ms f r i e n d l y . I f a c t , t h e y w e r e g i v e n p r i m e c o n s i d e r a t i o n i t h d s i g n . T h D A I A s t a t e m e n t s t e l l t h " H a r m o n i z e r " h o t p l a yy o u r s o n g . T h e s e s t a t e m e n t s c h a n g e w i t h e a c h s o n g , a l t h o u g ht h r e s t o t h p r o g r a m s t a y s p r e t t y m u c h t h s a m e . T h D A I As t a t e m e n t s c o n t a i n t h r e e k i n d s o i n f o r m a t i o n : v o i c e c o m m a n d s ,n o t e s , a n s e p a r a t o r s . T h e s e a r d e s c r i b e d s e p a r a t e l y b e l o w .

V o i c e C o m m a n d s : T h V I h a t h r e e v o i c e s S o p r a n o , A l t o ,a n T e n o r . T h v o i c e c o m m a n d t e l l s w h i c h v o i c e w w a n t t p l a yt h e f o l l o w i n g n o t e s . v o i c e c o m m a n d c o n s i s t s o f t h l e t t e r f o l o w e d b a S A o f o S o p r a n o , A l t o , o T e n o r , r e s p e c t i v e l y .T h V o l i n e 1 i v o i c e c o m m a n d m e a n i n g s o p r a n o .

N o t e s : I n D A I A s t a t e m e n t , a n o t e c o n s i s t s o a A B C , D , E F G o R f o l l o w e d b n u m b e r f r o m t 9 T h l e t t e r s t a r t h s t a n d a r d m u s i c n a m e s f o n o t e s . T h ( f o r r e s t ) m e a n ss i l e n c e . T h n u m b e r f o l l o w i n g t h e l e t t e r t e l l s h o m a n y c o u n t st h n o t e o r e s t l a s t s . c o u n t i n o a l w a y s t h s a m e a m u s i c a lb e a t ; t h s h o r t e s t n o t e i s o n g h a v a l u e o o n c o u n t . T h i se l i m i n a t e s t h n e e d f o n o t a t i o n i n v o l v i n g f r a c t i o n s .

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

O t h e r D a t a F e a t u r e s : A i n d i c a t e s t h e n o y o u r d a t a , t s a v e y o t h t r o u b l e o c o u n t i n g n o t e s . I m a k e s n o d i f f e r e n c ew h a t o r d e r y o p u t h v o i c e s i n a n d y o u c a c h a n g e v o i c e sw h e n e v e r y o u w a n t . S y o c o u l d b u i l d u c o m p l e t e t u n es h o r t p h r a s e a t i m e u s i n g o n o a l v o i c e s , a n c h e c k i a y o g b l i s t e n i n g , i n s t e a d o l i s t i n g .O p e r a t i o nW h e n t h H a r m o n i z e r i s t a r t e d , i s e e m s t p a u s e a f i r s t b e c a u s ei i r e a d i n g t h i n p u t d a t a , s o r t i n g t h e n o t e s b v o i c e s , a n d e t e r -

8

Page 92: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 92/284

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

T h f i r s t t i m e y o t r i t r e m e m b e r t t u r n u t h T v o l u m e .F o r a q u i c k t e s t , y o m a w a n t t l e a v e o u t h D A I A s t a t e m e n t s1 t 2 0 , 2 4 t o 3 2 , a n 3 t 4 4 A l s o , y o c a l e a v e o u s o m e o t h R E s t a t e m e n t s t s a v e s p a c e .

T h k e t u n d e r s t a n d i n g h o i w o r k s i n s i d e i t s t u d y t h t w o - d i m e n s i o n a l a r r a y , N % T h s t a n d s f o r n o t e a n t h m e a n s i n t e g e r . T h N a r r a y i l i k e t a b l e c o n t a i n i n g t h r e e r o w sa n 8 c o l u m n s o i n t e g e r s . T h r o w s a r n u m b e r e d 0 , 1 , a n 2 o n r o f o e a c h v o i c e . E a c h r o h a 8 c o l u m n s , n u m b e r e d t 8 0 C o l u m n s t 8 s t o r e e a c h v o i c e ' s n o t e s i a i n t e r n a l f o r m i s e q u e n t i a l o r d e r . S e l i n e 4 8 0 . B o t h t h p i t c h a n d u r a t i o n a r p a c k e d i n t o s i n g l e i n t e g e r . S o y o h a v e m a x i m u m o 8 n o t e sp e v o i c e . I y o g e m o r e m e m o r y , y o c a n h a v e l a r g e r a r r a yj u s t b c h a n g i n g t h 8 i l i n e 1 3 0 . C o l u m n k e e p s t r a c k o f h o m a n y n o t e s e a c h v o i c e a c t u a l l y u s e s i p a r t i c u l a r p i e c e .W h e n p l a y i n g b e g i n s ( a r o u n d l i n e 5 0 0 ) , t w o t h e r o n e -d i m e n s i o n a l a r r a y s a r a l s o u s e d t k e e p t r a c k o f w h e r e t h H a r -m o n i z e r i s T h S P ( f o r s t a c k p o i n t e r ) a r r a y k e e p s t r a c k o t h c o u m o t h c u r r e n t n o t e f o g i v e n v o i c e . L i k e w i s e , t h T M ( f o rt i m e r ) a r r a y k e e p s t r a c k o f h o l o n g , i c o u n t s , t h c u r r e n t n o t e

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

s i n g l e c h a r a c t e r f r o m t h D A I A s t a t e m e n t s a n r e t u r n s i i t h v a r i a b l e C $ T h i s r o u t i n e l e t s y o u s a r b i t r a r y l e n g t h d a t a s t r i n g sa n a l s o t a k e s c a r e o f t h s e p a r a t o r s .E n h a n c e m e n t sO n c e y o h a v e t h s t a n d a r d p r o g r a m w o r k i n g , y o w i l l p r o b a b l yw a n t t m a k e c h a n g e s . O n o t h f i r s t m i g h t b t a d s h a r p sa n f l a t s . T h e s e m a b a d d e d u s i n g l i n e s 3 5 t 4 1 a g u i d e .I ' v e u s e d t h e g r a p h i c s o t h f r o n t o t h k e y s f o t h i s p u r p o s e ;t h o n o t h r i g h t m e a n s s h a r p , a n t h o n o t h l e f t m e a n sf l a t . I ' v e l e f t t h i s f e a t u r e o u o t h a r t i c l e l i s t i n g m a i n l y s c o u l dt y p e i t L o o k a y o u r V I k e y b o a r d a n i m a g i n e t r y i n g t f i g u r eo u t h d i f f e r e n c e b e t w e e n m h a n d - d r a w n C - s h a r p a n D s h a r p !

O t h e r m i n o r c h a n g e s m i g h t s u g g e s t w o u l d b t v a r y t h t e m p o ( l i n e 6 8 0 ) o m a k e t h t u n e r e p e a t ( c h a n g e l i n e 7 4 t

8

Page 93: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 93/284

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

T h H a r m o n i z e rR E T H T U N E I R E " S I L E N T N I G H T "R E

1 D A T A " V G 3 A 1 G 2 E 6 , { 2 S P A C E S } G 3 A 1 G 2 E 6 "1 D A T A " V D 3 R 1 D 2 B 6 , { 2 S P A C E S } C 3 R 1 C 2 G 6 "1 D A T A " V A 3 R 1 A 2 C 3 B 1 A 2 , G 3 A 1 G 2 E 4 R 2 "1 D A T A " V A 3 R 1 A 2 C 3 B 1 A 2 , G 3 A 1 G 2 E 5 R 1 "1 D A T A " V D 3 R 1 D 2 F 3 D 1 B 2 , C 6 E 4 R 2 "2 D A T A " V C 3 G 1 E 2 G 3 F 1 D 2 , C 6 C 4 R 2 "2 D A T A " V C 3 R 1 C 1 R 1 C 5 R 1 , C 3 R 1 C 1 R 1 C 6 "2 D A T A " V G 3 R 1 G 1 R 1 G 6 , C 3 R 1 C 1 R 1 C 6 "2 D A T A " V F 3 R 1 F 1 R 1 F 6 , C 3 R 1 C 1 R 1 C 5 R 1 "2 D A T A " V F 3 R 1 F 1 R 1 F 6 , C 3 R 1 C 1 R 1 C 6 "3 D A T A " V G 3 R 1 G 1 R 1 G 6 , C 6 C 5 R 1 "3 D A T A " V G 3 R 1 G 1 R 1 G 6 , C 6 C 4 R 2 "3 D A T A " V E 3 F 1 E 2 C 6 , E 3 F 1 E 2 C 6 "3 D A T A " V A F 6 D 6 , E 6 E 6 "3 D A T A " V F 4 C 2 A 3 G 1 F 2 , E 3 F 1 E 2 C 6 "4 D A T A " V F 6 A 3 G 1 F 2 , E 3 F 1 E 2 C 6 "4 D A T A " V F 6 D 3 F 1 D 2 , E 6 G 5 R 1 "4 D A T A " V E 4 C 2 E 3 D 1 B 2 , E 6 E 4 R 2 "4 D A T A " X " : { 2 S P A C E S } R E M E N D O F D A T A S

C T I O N1 0 R E S T A R T O F P R O G R A M1 1 N S % = 2 : R E N U M B E R O F V O I C E S1 2 V 3 6 8 7 4 : R E T E N O R V O I C E L O C A T I O N1 3 D I N % ( N S % , 8 0 ) R E N O T E A R R A Y1 4 D I T M % ( N S ) R E T I M E R A R R A Y1 5 D I S P % ( N S ) R E S T A C K P O I N T E R S1 6 F O T O N S %1 7 0 N % ( I 1 8 N E X T1 9 0 S H % 1 6 R E M S H I F T C O N S T A N T2 0 C 2 R E C U R R E N T V O I C E2 1 I N " " R E I N P U T S T R I N G2 2 C $ " " R E M I N P U T C H A R A C T E R2 3 G O S U B 8 0 2 4 I C " X T H E N G O T O 5 1 2 5 0 I F C < " V T H E N G O T O 3 4 2 6 G O S U B 8 0 2 7 R E S E T H C U R R E N T V O I C E2 8 0 I F C " S T H E N C 2 9 I C " A T H E N C 3 0 I C " T T H E N C

8

Page 94: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 94/284

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 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6

1 c 1 1 D "1 1 E "I p . H Q l l

" A 1 1 B "" R -

T H E NT H E NT H E NT H E NT H E NT H E NT H E NT H E NT H E N

F F F F F F F F P R I N T

2 2 2 2 2 3 2 3 2 3 2 3 2 3 " ? ; C $ ; " I N " ;

F

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

G O T © 2 3 R E T R A N S L A T E N O T E T C O D ER E M F O R T H E F R E Q U E N C YF - I C I C I C I F C $I C I C I C I C I F I N G 0 S U B 8 0 0 : R E M G E T T H E C O U N T I C 1 N % C V N % C V 1 R E S T O R E T H E C O U N T A N N O T EN % C V 1 = V A L ( C S H G O T O 2 3 R E S T A R T P L A Y I N G T U N EF O = T O N S %S P % (T M % (P R I N T " V O I C E " ; I " H A S " ;

" N O T E S "N E X TR E S E I N I T I A L V O L U M E SF O T 4 P O K E V I 8 N E X TF O T 1 R E U N T I L D O N EF O T N S

S P % (I N % I T H E N G O T O 6 7 N T N % I S H I N T ( N % I S H ) S H I T M % ( > N T T H E N G O T O 7 5 T M % ( T M % (P O K E V I I N T ( N % I S H N E X TF O O N T R O LN E X TF O T P O K E V I 0 R E A L Q U I E TN E X TP R I N T F R E ( ) " B Y T E S L E F T "E N D : R E M G O T O 5 1 F O R R E P E A T

N % I )

T 7 0 N E X T J R E M T E M P O

8

Page 95: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 95/284

7 5 S P % ( 1 R E M N E X T N O T E7 6 T M % (7 7 G O T O 6 0 7 8 R E I N P U T C H A R A C T E R I C 7 9 R E " X S T O P S I N P U T8 0 I C M X T H E N R E T U R N8 1 0 I F L E N ( I N T H E N R E A D I N 8 2 C L E F T $ ( I N $ , 1 8 3 I N R I G H T $ ( I N $ , L E N ( I N 8 4 R E M I G N O R E S P A C E S A N D C O M M A S8 5 I C " O C " , T H E N G O T O 8 8 6 R E T U R N

8

Page 96: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 96/284

R o b e r t L e W i t h t h " S o u n d G e n e r a t o r / ' y o c a a d s o u n d i B A S I C w i t h o u ts l o w i n g d o w n y o u r p r o g r a m .

A m o n g t h n o v e l f e a t u r e s o f t h V I C - 2 0 a r i t s o u n d c a p a b i l i t i e s .T h e s e g i v e i a a d v a n t a g e o v e r t h e P E T , b r i n g i n g a n e d i m e ns i o n t g a m e p r o g r a m s . H o w e v e r , o n o t h p r o b l e m s a n u d o u b t e d l y o t h e r V I o w n e r s h a v e e n c o u n t e r e d i t h a t , w h i l em a n i p u l a t i n g t h s o u n d g e n e r a t o r s i B A S I C p r o g r a m , i i n o p o s s i b l e t d a n y t h i n g e l s e .

T h i s i e s p e c i a l l y p r o b l e m i g a m e p r o g r a m s w r i t t e n i B A S I C a n u s i n g e x t e n s i v e g r a p h i c s . E i t h e r y o h a v e t w r i t es u c h p r o g r a m s w i t h o u t c o m p l e x s o u n d e f f e c t s , o y o h a v e t s e t t l e f o s l o w m o t i o n .F a s t e r S o u n dF a c e d w i t h t h i s p r o b l e m , d e c i d e d t w r i t e m a c h i n e l a n g u a g e( M L ) p r o g r a m f o t h V I w h i c h a d d s s p e e d t i t s o u n d g e n e r at i o n c a p a b i l i t i e s . M o s t o t h s o u n d e f f e c t s w u s i g a m e p r g r a m s a r s o u n d s w i t h i n c r e a s i n g o d e c r e a s i n g t o n e s . F o r e xa m p l e , s i m p l e w a t s i m u l a t e t h e s o u n d o l a s e r w i t h t h V I i s

F O = 2 5 0 T 2 4 S T E P - 1 : P O K E 3 6 8 7 6 , K : N E X TT h M p r o g r a m w o r k s a l o n g t h e s e l i n e s , e x c e p t t h a t i i n e c e ss a r y t u s o n l y o n P O K E c o m m a n d . I g e n e r a t e s s o u n d s w i t hi n c r e a s i n g o d e c r e a s i n g f r e q u e n c y t m a k e a l m o s t a n k i n d o s o u n d e f f e c t p o s s i b l e .

T h p r o g r a m " V I C S o u n d " p l a c e s m a c h i n e l a n g u a g e p r og r a m i t h c a s s e t t e b u f f e r o t h V I C . T h i s m e a n s , o c o u r s e , t h a ty o c a n n o t t r a n s f e r d a t a u s i n g t h c a s s e t t e p l a y e r w h i l e y o a r r u n n i n g t h p r o g r a m . B c h a n g i n g t h c o n t e n t s o m e m o r y l o c at i o n s 7 8 8 - 7 8 9 ( d e c i m a l ) , t h i n t e r r u p t s y s t e m o t h c o m p u t e r i u s e d t r u t h M p r o g r a m .

T h V I h a f o u r " s p e a k e r s " t m a k e m u s i c a n n o i s e . T h f i r s t a n s e c o n d s p e a k e r s , a c t i v a t e d b P O K E i n g m e m o r y l o c at i o n s 3 6 8 7 4 a n 3 6 8 7 5 , a r e u s e d f o s o u n d s w i t h i n c r e a s i n g t o n e s .T h t h i r d s p e a k e r ( 3 6 8 7 6 ) i u s e d f o s o u n d s w i t h d e c r e a s i n g

Page 97: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 97/284

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

T h M p r o g r a m s t o r e s s t a r t i n g n u m b e r i n t o t h a p p r op r i a t e l o c a t i o n a n i n c r e a s e s o r d e c r e a s e s i f o t h p e r i o d s p e c if i e d b t h u s e r . T h i n t e r r u p t o f t h c o m p u t e r w i l l r u t h r o u g ht h p r o g r a m 6 0 t i m e s s e c o n d , w h i c h m e a n s t h a t t h s t a r t i n gn u m b e r o t o n e w i l l i n c r e a s e o d e c r e a s e 6 t i m e s i o n s e c o n d .S o u n d D u r a t i o nT m a k e t h i s l i t t l e c l e a r e r , l e m e x p l a i n t h a t f o u r m e m o r y l o c at i o n s h a v e b e e n a s s i g n e d i t h M p r o g r a m t a c t i v a t e t h f o u rs p e a k e r s , a n f o u r o t h e r s t o c o n t r o l t h e d u r a t i o n o t h s o u n d s .

S p e a k e r T o A c t i v a t e D u r a t i o n1 s 8 4 8 5 2 n 8 4 7 8 8 83 r 8 4 9 1 4 t 8 4 9 9 4 8

T h n u m b e r P O K E d i n t o l o c a t i o n s 8 4 6 - 8 4 9 i t h s t a r t i n g n u m b e r ,w h i c h i s t o r e d i l o c a t i o n 8 5 ( d e c ) ; t h i n i t i a l v a l u e i 2 2 2 , b u t h i s m a b c h a n g e d f o t h k i n d o s o u n d y o r e q u i r e . L o c a t i o n s8 5 8 , 8 8 8 , 9 1 8 , a n 9 4 c o n t r o l t h e d u r a t i o n o t h s o u n d s . T h p r g r a m w i l l g e n e r a t e t h e s o u n d s f o t h n u m b e r o j i f f i e s ( t h e 1 / 6 0s e c o n d i n t e r v a l u s e d t m e a s u r e t i m e i C o m m o d o r em a c h i n e s ) s p e c i f i e d i t h e s e l o c a t i o n s .

F o d e m o n s t r a t i o n , R U t h p r o g r a m a n t h e n t y p eS Y S 8 2 8 ; t h i s w i l l t r a p t h i n t e r r u p t . I w i l l a l s o s e t h v o l u m ec o n t r o l ( l o c a t i o n 3 6 8 7 8 ) t m a x i m u m . N o P O K E 8 4 6 , 2 2 2 .L o c a t i o n 8 5 c o n t a i n s 1 ( d e c ) , s t h s o u n d y o h e a r d w a f o t e j i f f i e s . T h p r o g r a m h a s t o r e d 2 2 i l o c a t i o n 3 6 8 7 4 ( f i r s ts p e a k e r ) , i n c r e m e n t e d i b o n e v e r y s i x t i e t h o s e c o n d u n t i lt e j i f f i e s e l a p s e d , t h e n s t o r e d i n t o t h m e m o r y l o c a t i o n t s w i t c h o f t h s p e a k e r . T c h a n g e t h d u r a t i o n o t h s o u n d t o s a y , 2 j i f f i e s , P O K E 8 5 8 , 2 0 . N o P O K E 8 4 6 , 2 2 2 .

T h e s a m e m e t h o d c a b u s e d f o t h o t h e r s p e a k e r s . P O K E8 5 8 , 1 0 . T c h a n g e t h s t a r t i n g n u m b e r ( t h a t i s t g e t o n e w h i c hs t a r t s h i g h e r o l o w e r ) , s i m p l y P O K E i n t o m e m o r y l o c a t i o n 8 5 3 .R > e x a m p l e , P O K E 8 5 3 , 2 4 0 . N o P O K E 8 4 6 , 2 4 0 .E x p l o s i o n S i m u l a t i o nI i n e c e s s a r y t P O K E t h s t a r t i n g n u m b e r i n t o l o c a t i o n s8 4 6 - 8 4 9 ; a n o t h e r n u m b e r w i l l g i v e o n l y s i l e n c e . T r P O K E

8

Page 98: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 98/284

c m z i

8 4 7 , 2 4 0 ( s e c o n d s p e a k e r ) ; i g i v e s a s o u n d o i n c r e a s i n g f r e q u e n c yl i k e t h f i r s t . N o P O K E 8 5 3 , 2 2 2 : P O K E 8 4 8 , 2 2 2 . Y o n o t i c e t h i sg i v e s s o u n d t h a t d e c r e a s e s i f r e q u e n c y . P O K E 8 4 9 , 2 2 2 w i l l s i u l a t e a e x p l o s i o n . B m a n i p u l a t i n g t h e d u r a t i o n s a n s t a r t i n gn u m b e r , y o c a g e a l m o s t a n k i n d o s o u n d f r o m t h f i r s t t h r e es p e a k e r s a n e x p l o s i o n s f r o m t h f o u r t h . H o w e v e r , w h e n y o a r c h a n g i n g t h d u r a t i o n o t h s o u n d s , m a k e s u r e i i n o t o l o n g ;f o e x a m p l e , i y o P O K E 8 5 3 , 5 0 : P O K E 8 4 6 , 2 2 2 t h p r o g r a m w i l ls t o r e 2 2 i l o c a t i o n 3 6 8 7 4 a n i n c r e m e n t b o n e v e r y j i f f y f o 5 j i f f i e s . B u i t h i s c a s e t h e c o n t e n t s o 3 6 8 7 4 w o u l d i n c r e a s e t 2 5 a n t h e n c y c l e b a c k t z e r o . Y o w o u l d h e a r n o t e f o o n l y 3 3j i f f i e s , s i n c e n u m b e r l e s s t h a n 1 2 i t h s o u n d g e n e r a t o r s o t h V I p r o d u c e s s i l e n c e .

W h e n u s i n g t h i s p r o g r a m , y o c a n n o t g e n e r a t e s o u n d s t h n o r m a l w a y . T d s o y o m u s t f i r s t r e s e t t h i n t e r r u p t v e c t o r b S Y S 9 9 6 . T h i s w i l l a l s o s e t h v o l u m e c o n t r o l t o z e r o . T o u s e t h M p r o g r a m , a d t h s u b r o u t i n e s t a r t i n g a l i n e 8 9 0 0 t y o u r o w B A S I C p r o g r a m ; a n d y o u c a c r e a t e s o u n d e f f e c t s u s i n g j u s t o n P O K E , w h i c h w o u l d o t h e r w i s e r e q u i r e s e r i e s o P O K E s .I B A S I C p r o g r a m w i t h l i n e s 8 9 0 0 - 9 2 4 0 a d d e d , y o w o u l df i r s t h a v e l i n e l i k e t h i s i t h m a i n p r o g r a m t e n t e r t h M i n t om e m o r y :

1 G O S U B 8 9 0 0 : R E S O U N D G E N E R A T O R

V I S o u n d G e n e r a t o r1 P R I N T " { C L R } "2 P R I N T " { 3 D O W N } { 8 R I G H T } { R E D } { R V S } V I C 20 { O F F } "3 P R I N T " { 2 D O W N } { 6 R I G H T l V I C S O U N D "8 0 G O S U B 8 9 0 09 0 E N 8 9 0 0 F O R J = 8 2 8 T O 1 0 1 9 : R E A D F : P O K E J , F : N E X T9 0 0 0 D A T A 1 6 9 , 1 5 , 1 4 1 , 1 4 , 1 4 4 , 1 2 0 , 1 6 9 , 8 29 0 1 0 D A T A 1 4 1 , 2 0 , 3 , 1 6 9 , 3 , 1 4 1 , 2 1 , 39 0 2 0 D A T A 8 8 , 9 6 , 1 0 , 1 5 , 1 6 , 6 4 , 1 6 0 , 09 0 3 0 D A T A 1 6 2 , 2 2 2 , 1 7 3 , 7 8 , 3 , 2 0 1 , 1 0 , 1 7 69 0 4 0 D A T A 9 , 2 3 8 , 7 8 , 3 , 2 3 8 , 1 0 , 1 4 4 , 7 69 0 5 0 D A T A 1 1 6 , 3 , 1 4 0 , 1 0 , 1 4 4 , 2 3 6 , 7 8 , 39 0 6 0 D A T A 2 0 8 , 6 , 1 4 0 , 7 8 , 3 , 1 4 2 , 1 0 , 1 4 49 0 7 0 D A T A 1 7 3 , 7 9 , 3 , 2 0 1 , 2 5 , 1 7 6 , 9 , 2 3 89 0 8 0 D A T A 7 9 , 3 , 2 3 8 , 1 1 , 1 4 4 , 7 6 , 1 4 6 , 39 0 9 0 D A T A 1 4 0 , 1 1 , 1 4 4 , 2 3 6 , 7 9 , 3 , 2 0 8 , 69 1 0 0 D A T A 1 4 0 , 7 9 , 3 , 1 4 2 , 1 1 , 1 4 4 , 1 7 3 , 8 09 1 1 0 D A T A 3 , 2 0 1 , 1 6 , 1 7 6 , 9 , 2 3 8 , 8 0 , 3

9

Page 99: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 99/284

9 1 2 0 D A T A 2 0 6 , 1 2 , 1 4 4 , 7 6 , 1 7 6 , 3 , 1 4 0 , 1 29 1 3 0 D A T A 1 4 4 , 2 3 6 , 8 0 , 3 , 2 0 8 , 6 , 1 4 0 , 8 09 1 4 0 D A T A 3 , 1 4 2 , 1 2 , 1 4 4 , 1 7 3 , 8 1 , 3 , 2 0 19 1 5 0 D A T A 6 4 , 1 7 6 , 2 8 , 2 3 8 , 8 1 , 3 , 1 7 3 , 8 19 1 6 0 D A T A 3 , 2 0 1 , 2 2 , 2 0 8 , 7 , 1 6 9 , 1 7 6 , 1 4 19 1 7 0 D A T A 1 3 , 1 4 4 , 2 4 0 , 2 5 , 2 0 1 , 4 3 , 2 0 8 , 2 19 1 8 0 D A T A 1 6 9 , 1 6 0 , 1 4 1 , 1 3 , 1 4 4 , 2 4 0 , 1 4 , 1 4 09 1 9 0 D A T A 1 3 , 1 4 4 , 2 3 6 , 8 1 , 3 , 2 0 8 , 6 , 1 4 09 2 0 0 D A T A 8 1 , 3 , 1 4 2 , 1 3 , 1 4 4 , 7 6 , 1 9 1 , 2 3 49 2 1 0 D A T A 1 6 9 , 0 , 1 4 1 , 1 4 , 1 4 4 , 1 2 0 , 1 6 9 , 1 9 19 2 2 4 D A T A 1 4 1 , 2 0 , 3 , 1 6 9 , 2 3 4 , 1 4 1 , 2 1 , 39 2 3 0 D A T A 8 8 , 9 6 , 0 , 0 , 0 , 0 , 0 , 09 2 4 0 R E T U R N

9

Page 100: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 100/284

J o h n H e i l b o r nT h i s t u t o r i a l o u s i n g t h V I s o u n d r e g i s t e r s p r e s e n t s m a n y f i n e e a m p l e s . A l s o o f f e r e d h e r e i a s i m p l e s o u n d e d i t o r t h a t c a b u s e d t d v e l o p y o u r a w s o u n d s .

b l i p i t h s i m p l e s t k i n d o s o u n d y o u c a m a k e w i t h t h V I C - 2 0 . Y o c a m a k e t h m o s t b a s i c f o r m o b l i p b t u r n i n gt o n e o a n t h e n o f a g a i n q u i c k l y . T g e a i d e a o w h a t t h i ss o u n d s l i k e , e n t e r a n R U t h f o l l o w i n g p r o g r a m :1 P O K E 3 6 8 7 8 , 1 5 R E M T U R N O T H V O L U M E2 P O K E 3 6 8 7 6 , 2 0 0 : R E T U R N O N V O I C E T H E 3 P O K E 3 6 8 7 6 , 0 : R E M T U R N O F F V O I C E T H R E E

B c h a n g i n g t h v a l u e y o P O K E i n t o 3 6 8 7 6 ( o n l i n e 2 0 ) , y o c a p r o d u c e b l i p s t h a t s o u n d v e r y d i f f e r e n t . F o e x a m p l e , t r P O K E i n g 2 5 i n t o 3 6 8 7 6 i n s t e a d o 2 0 t m a k e s o u n d l i k eh a m m e r h i t t i n g c h i s e l . C h a n g e t h v a l u e t 1 2 8 , a n y o u ' l l g e t e n n i s r a c k e t h i t t i n g b a l l .

I y o u s d i f f e r e n t s o u n d r e g i s t e r s , y o c a g e s t i l l g r e a t e rv a r i a t i o n s w i t h t h b l i p . T r u s i n g t h e n o i s e r e g i s t e r ( 3 6 8 7 7 ) i s t e a d o t h t h i r d v o i c e ( 3 6 8 7 6 ) i l i n e s 2 a n 3 0 1 P O K E 3 6 8 7 8 , 1 52 P O K E 3 6 8 7 7 , 2 0 03 P O K E 3 6 8 7 7 ,a n y o u ' r e c h o p p i n g d o w n t r e e .

A n o t h e r w a y o c a c h a n g e b l i p s i t m a k e t h e m l o n g e r b a d d i n g d e l a y l o o p . H e r e ' s a l i n e t h a t w i l l p u d e l a y b e t w e e nl i n e s 2 a n 3 0 W i t h i t t h b l i p w i l l s o u n d f o l o n g e r t i m e .2 F O T 5 N E X T

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

9

Page 101: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 101/284

H e r e a r s o m e s o u n d s y o c a m a k e u s i n g s i m p l e b l i p s :A l a r m C l o c k1 P O K E 3 6 8 7 8 , 1 2 F O T 1 3 P O K E 3 6 8 7 6 , 2 4 4 P O K E 3 6 8 7 6 ,5 F O T 5 0 0 : N E X T6 P O K E 3 6 8 7 6 , 2 3 7 P O K E 3 6 8 7 6 ,8 F O R T 5 0 0 : N E X T9 N E X T1 0 P O K E 3 6 8 7 6 , 2 3 71 1 P O K E 3 6 8 7 5 , 2 3 1 2 F O R A T 1 3 F O T 3 1 4 P O K E 3 6 8 7 8 ,1 5 P O K E 3 6 8 7 8 , 1 1 6 0 N E X T : N E X T1 7 P O K E 3 6 8 7 6 ,1 8 P O K E 3 6 8 7 5 ,1 9 P O K E 3 6 8 7 8 ,

D i a l T e l e p h o n e1 F O T 2 P O K E 3 6 8 7 8 ,3 0 G = R N D ( 0 )4 F O R T 1 . 5 P O K E 3 6 8 7 7 , 2 2 6 P O K E 3 6 8 7 7 ,7 N E X T8 F O T 2 0 0 : N E X T9 P O K E 3 6 8 7 8 , 1 1 0 F O T 1 1 P O K E 3 6 8 7 4 , 1 2 1 2 F O T 1 N E X T1 3 P O K E 3 6 8 7 4 ,1 4 F O T 5 0 N E X T1 5 N E X T1 6 F O R J = 0 T O 3 5 0 : N E X T : N E X TT o u c h - T o n e * P h o n e1 A ( 0 ) = 2 4 9 : B ( 0 ) = 2 3 82 A ( 1 ) « 2 4 8 : B ( 1 ) = 2 3 23 A ( 2 ) = 2 4 9 : B ( 2 ) = 2 3 24 A ( 3 ) = 2 5 0 : B ( 3 ) = 2 3 25 A ( 4 ) = 2 4 8 : B ( 4 ) = 2 3 46 A ( 5 ) = 2 4 9 : B ( 5 ) = 2 3 47 A ( 6 ) = 2 5 0 : B ( 6 ) = 2 3 4

9

Page 102: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 102/284

8 A ( 7 ) = 2 4 8 : B ( 7 ) = 2 3 69 A ( 8 ) = 2 4 9 : B ( 8 ) = 2 3 61 0 A ( 9 ) = 2 5 0 : B ( 9 ) = 2 3 61 1 F O T 1 2 R N D ( 0 )1 3 P O K E 3 6 8 7 5 , A ( R )1 4 P O K E 3 6 8 7 6 , B ( R )1 5 P O K E 3 6 8 7 8 , 1 1 6 F O T 1 0 0 : N E X T1 7 P O K E 3 6 8 7 8 ,1 8 F O T 5 0 N E X T1 9 N E X TM o t o r B o a t1 P O K E 3 6 8 7 8 ,2 F O T 1 0 3 F O T 4 P O K E 3 6 8 7 4 , 2 3 05 P O K E 3 6 8 7 4 ,6 N E X T7 F O H T 4 8 N E X T9 N E X TG e i g e r C o u n t e r1 P O K E 3 6 8 7 7 , 1 2 2 P O K E 3 6 8 7 8 , 1 3 P O K E 3 6 8 7 8 ,4 F O T R N D ( 0 ) 3 0 0 : N E X T5 G O T O 2

N i E d i t o rA y o c a s e e , b l i p s c a b v e r y v e r s a t i l e s o u n d s . O c o u r s e , o n o t h d i s a d v a n t a g e s o h a v i n g m a n y d i f f e r e n t w a y s o c h a n g i n gs o u n d i t h a t i c a t a k e l o n g t i m e t m a k e t h c h a n g e s e s p ec i a l l y i y o h a v e t m a k e t h e m a l b P O K E i n g t h e v a l u e s i n t oe a c h r e g i s t e r b h a n d . S t m a k e y o u r l i f e l i t t l e e a s i e r , h e r e ' sl i t t l e b l i p e d i t o r . W i t h i y o u ' l l b a b l e t c h a n g e t h t o n e s a n l i t e t t h d y n a m i c s o e a c h r e g i s t e r . T h a t w a y , w h e n y o f i n ds o u n d y o u l i k e , y o c a j u s t w r i t e d o w n t h v a l u e s i n d i c a t e d b t h p r o g r a m a n i n c o r p o r a t e t h s o u n d s i n t o y o u r o w p r o g r a m s .B a s i c B l i p E d i t o r

* T A = 2 0 0 : C = 1 - P R I N T " { C L R } " ; A

3 6 8 7 8 , 1

9

Page 103: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 103/284

3 ^ G E T A $ I F A $ " T H E N 3 4 0 I F A $ C H R $ ( 1 3 3 ) T H E N 3 6 8 7 4 : G O T O

1 2 5 I F A $ C H R $ ( 1 3 4 ) T H E N 3 6 8 7 5 : G O T O

1 2 I F A $ = C H R $ ( 1 3 5 ) T H E N 3 6 8 7 6 : G O T O

1 2 7 - I A C H R $ ( 1 3 6 ) T H E N B 3 6 8 7 7 : G O T O

1 2 A C H R $ ( 1 4 5 ) A N 2 5 T H E N

1 G O T O 1 A C H R $ ( 1 7 ) A N 1 2 T H E N1 G O T O 1

A $ C H R $ ( 2 9 ) A N T H E N1 G O T O 1

O i I A C H R $ ( 1 5 7 ) A N 2 5 T H E N1 G O T O 1

1 2 P O K E B , 1 3 F O R T C : N E X T1 4 P O K E B 1 5 G O T O 3

T h i s e d i t o r w i l l a l l o w y o t m a n i p u l a t e t h v a r i o u s t o n er e g i s t e r s a n l e n g t h o t h b l i p s y o p r o d u c e . W h e n y o R U t h i s p r o g r a m , t h e s c r e e n w i l l c l e a r a n t w n u m b e r s w i l l a p p e a r .T h l e f t - h a n d n u m b e r i t h e v a l u e t h a t w i l l b P O K E d i n t o t h t o n e r e g i s t e r y o c h o o s e . T h r i g h t - h a n d n u m b e r i t h e l e n g t h o t h b l i p .

T h f u n c t i o n k e y s ( F l , F 3 , F 5 , F 7 s e l e c t t h t o n e r e g i s t e r s .P r e s s e a c h o t h e f u n c t i o n k e y s a n l i s t e n t t h d i f f e r e n c e b t w e e n t h s o u n d s p r o d u c e d .T h c u r s o r U P / D O W N k e c o n t r o l s t h e t o n e b c h a n g i n g t h v a l u e P O K E d i n t o t h s e l e c t e d r e g i s t e r . U n s h i f t e d , t h i s k e w i l ll o w e r t h t o n e a n s h i f t e d , i w i l l r a i s e t h t o n e . N o t e t h a t t h l o w e s t v a l u e a l l o w e d b t h i s p r o g r a m i 1 2 8 , a n t h e h i g h e s t v a l u ei 2 5 5 . P r e s s t h e c u r s o r U P / D O W N k e y , a n y o w i l l b a b l e t s e t h v a l u e c h a n g e . I y o h o l d t h k e d o w n , i w i l l c o n t i n u e t c h a n g e u n t i l i r e a c h e s i t l i m i t .

T h c u r s o r L E F T / R I G H T k e c o n t r o l s t h l e n g t h o t h b l i p .T h l a r g e r t h n u m b e r , t h l o n g e r t h b l i p . U n s h i f t e d , t h i s k e w i l l l o w e r t h n u m b e r ( s h o r t e n t h e b l i p ) . S h i f t e d , i w i l l r a i s e t h n u m b e r , w h i c h w i l l l e n g t h e n t h b l i p .

O n c e y o h a v e s o m e v a l u e s c h o s e n , h i t t i n g a l m o s t a n k e o t h k e y b o a r d w i l l r e p l a y t h s a m e s o u n d . T h o n l y o n e s t h a tw o n ' t w o r k a r e : t h C O M M O D O R E k e y , R E S T O R E , C T R L , t h

9

Page 104: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 104/284

S H I F T k e y s , a n R U N / S T O P .T h l a s t f e a t u r e o t h i s e d i t o r i t h e r e p e a t f u n c t i o n . P r e s s i n g

t h s p a c e b a r o I N S T / D E L w i l l r e p e a t t h s e l e c t e d s o u n dc o n t i n u o u s l y .

S A V E c o p y o t h b l i p e d i t o r ; w w i l l b e a d d i n g f e a t u r e s t i l a t e r .

F a d i n g B l i p sO n o t h m o s t u n d e r - u s e d f e a t u r e s o t h V I s o u n d s y s t e m i t h v o l u m e c o n t r o l , l o c a t i o n 3 6 8 7 8 . U s u a l l y , w j u s t s e i f o m a x im u v o l u m e a n f o r g e t i u n t i l w w a n t t t u r n t h s o u n d o f f .

B u c h a n g i n g t h s e t t i n g o t h v o l u m e c o n t r o l d u r i n g b l i pc a c r e a t e t o t a l l y n e k i n d o b l i p . H e r e i a r o u t i n e t h a t u s e sl o o p t f a d e t h b l i p :1 P O K E 3 6 8 7 6 , 2 0 2 F O R R 1 T S T E P - 3 P O K E 3 6 8 7 8 ,4 N E X T

B c h a n g i n g t h S T E P v a l u e , t h e f a d e r a t e c a n b e a l t e r e d . T h v a l u e . 5 f o e x a m p l e , w i l l p r o d u c e t o n e t w i c e a l o n g , w h i l eu s i n g t h v a l u e - w i l l m a k e t h t o n e h a l f a l o n g .

H e r e a r s o m e e x a m p l e s o s o u n d s m a d e u s i n g t h e f a d ef u n c t i o n .D r u m s1 P O K E 3 6 8 7 7 f 2 2 2 F O T 3 F O R R T S T E P - 7 / 54 P O K E 3 6 8 7 8 , R N E X T5 N E X T6 P O K E 3 6 8 7 4 , 1 2 87 P O K E 3 6 8 7 7 ,8 F O 1 T S T E P - 9 P O K E 3 6 8 7 8 , R N E X T1 0 P O K E 3 6 8 7 4 ,1 1 F O T 2 0 0 : N E X T1 2 P O K E 3 6 8 7 7 , 2 2 1 3 F O T 1 4 F O T S T E P - 7 / 51 5 P O K E 3 6 8 7 8 , R N E X T1 6 F O T 2 0 0 : N E X T1 7 N E X T1 8 G O T O 2

9

Page 105: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 105/284

C l u m s y T a p - d a n c e r1 P O K E 3 6 8 7 7 , R N ( 0 1 2 1 2 2 F O 1 T S T E P - ( R N D ( 0 ) 1 5 3 P O K E 3 6 8 7 8 , M N E X T4 G O T O 1 C h a m p a g n e G l a s s e s C l i n k i n g1 P O K E 3 6 8 7 6 , 2 5 2 F O = 1 T S T E P - 3 P O K E 3 6 8 7 8 , R N E X T4 F O 1 T S T E P - 5 P O K E 3 6 8 7 8 , R6 N E X TF i r i n g D e p t h C h a r g e s1 P O K E 3 6 8 7 8 , 1 2 F O 1 2 8 T O R N D ( 0 ) 1 2 1 2 3 P O K E 3 6 8 7 6 , R N E X T4 P O K E 3 6 8 7 8 ,5 G O T O 1 C l a p p i n g H a n d s1 P O K E 3 6 8 7 7 , 2 4 2 F O 1 T S T E P - ( 1 5 / 8 )3 P O K E 3 6 8 7 8 , R N E X T4 F O T 1 5 0 : N E X T5 G O T O 2

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

^ T A $ C H R $ ( ) ^ & ) T H E N 1 G O T O/ 6 A $ C H R $ ( 1 8 7 ) A N T H E N F 1 G O T O 1

1 1 2 I F A $ = " F A N F < " F T H E N F F " G O T O 1

1 1 I A $ " F A N F " F T H E N F 1 1 G O T O 1

1 2 I F " F T H E N 1 6 1 3 P O K E 3 6 8 7 8 , 1 5 F O T C N E X T1 4 P O K E B 1 6 F O 1 T S T E P - ( 1 5 / F )1 7 P O K E 3 6 8 7 8 ,1 8 N E X T1 9 G O T O 1 4

Y o u ' l l a l s o n e e d t c h a n g e l i n e 1 s i w i l l d i s p l a y t h f a d e f u n ct i o n a n i t v a l u e :

9

Page 106: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 106/284

1 P R I N T " { C L R } " ; A C F $ A n y o w i l l n e e d t i n i t i a l i z e t s l i n e 1 6 w i l l n o g i v e y o D I V I S I O N B Y Z E R O E R R O R . C h a n g e l i n e 1 t o 1 2 0 0 : C 5 F

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

I y o h i t h k e y , a w i l l a p p e a r b e t w e e n t h s e c o n d a n t h i r d n u m b e r s . T h i s i n d i c a t e s t h a t t h f a d e f u n c t i o n i o n H i t t i n ga n o t h f u n c t i o n k e y s n o w i l l p r o d u c e s o u n d w i t h t h f a d et i m e s h o w n . T i n c r e a s e t h f a d e t i m e , h i S H E P T - I N S T / D E L . T r i n c r e a s i n g t h f a d e t i m e t t e a n u s t h f u n c t i o n k e y s a g a i n .H i t t i n g t h I N S T / D E L k e u n s h i f t e d w i l l d e c r e a s e t h e f a d e t i m e .F a d i n g I I n a d d i t i o n t f a d i n g o u t a b l i p , w c a a l s o f a d e i b l i p . T h i sm e a n s s t a r t i n g t h s o u n d s o f t l y a n g r a d u a l l y i n c r e a s i n g t h v o u m e . F a d i n g i i e x a c t l y t h e o p p o s i t e o f a d i n g o u t . S i n s t e a d o c o u n t i n g d o w n t h l o o p v a l u e , w c o u n t u l i k e t h i s :1 P O K E 3 6 8 7 6 , 2 0 2 F O T 1 3 P O K E 3 6 8 7 8 , R N E X T4 P O K E 3 6 8 7 8 ,

H e r e a r s o m e e x a m p l e s o s o u n d s m a d e u s i n g f a d e - i n a n f a d e - o u t .S a w i n g W o o d1 P O K E 3 6 8 7 7 , 2 0 2 F O T 1 S T E P ( 1 5 / 2 0 )3 P O K E 3 6 8 7 8 , I N E X T4 F O F 1 T S T E P - ( 1 5 / 2 0 )5 P O K E 3 6 8 7 8 , F N E X T6 P O K E 3 6 8 7 8 ,7 F O T 2 0 N E X T8 G O T O 2 H e l i c o p t e r T a k i n g O f 1 P O K E 3 6 8 7 7 , 2 2 2 P O K E 3 6 8 7 4 , 2 0 03 F O 1 T S T E P - . 0 54 F O T 5 P O K E 3 6 8 7 8 ,6 P O K E 3 6 8 7 8 ,

Page 107: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 107/284

7 N E X T8 N E X TF r o g1 P O K E 3 6 8 7 5 , 2 4 2 F O T 1 3 F O T 4 F O T 1 S T E P5 P O K E 3 6 8 7 8 ,6 P O K E 3 6 8 7 8 , 0 N E X T7 F O T 3 0 N E X T9 N E X T1 0 F O D T 3 0 0 : N E X T1 1 F O T 1 0 0 0 : N E X T1 2 G O T O 2

A d d i n g t h i s f e a t u r e t t h b l i p e d i t o r i p r e t t y m u c h t h s a m ea a d d i n g t h f a d e - o u t f e a t u r e a b o v e . S t a r t b a d d i n g t h e s e l i n e s :

I F A $ = C H R $ ( - & § ) T H E N 1 G O T O1 0

I A $ C H R $ ( # A N T H E N 1 1 G O T O 1

1 1 I A $ " I A N 1 < " I T H E N 1 I " G O T O 1

1 1 I A " I A N 1 " I T H E N 1 1 1 G O T O 1

1 2 3 I F 1 " I T H E N 2 0 2 0 F O T 1 S T E P ( 1 5 / l )2 1 P O K E 3 6 8 7 8 , R N E X T2 2 0 I F F $ M F T H E N 1 6 2 3 G O T O 1 4 O n c e a g a i n , y o u ' l l n e e d t c h a n g e l i n e 1 5 t h i s t i m e t d i s p l a y t h f a d e - i n f u n c t i o n a n i t v a l u e :

- 4 ^ P R I N T " { C L R } " ; A C F $ F 1 $ A n y o w i l l n e e d t i n i t i a l i z e t s y o w o n ' t g e t a D I V I S I O NB Z E R O E R R O R i l i n e 2 3 0 . C h a n g e l i n e 1 t o

A ^ 2 0 0 : C 5 F = l :F i n a l l y , y o u ' l l n e e d t c h a n g e l i n e 1 2 t o

± 2 ® P O K E 3 6 8 7 8 , 0 P O K E B a n l i n e 1 3 t o

K 3 6 8 7 8 , 1 5 F O T C N E X TW i t h t h e s e m o d i f i c a t i o n s i t h e d i t o r , y o w i l l s e f o u r n u m -

9

Page 108: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 108/284

b e r s a t h e t o p o t h s c r e e n . T h f i r s t t h r e e a r t h s a m e a t h e yw e r e b e f o r e . T h f o u r t h i t h f a d e - i n f u n c t i o n .

I y o h i t h k e y , a w i l l a p p e a r b e t w e e n t h t h i r d a n f o u r t h n u m b e r s , i n d i c a t i n g t h a t t h f a d e - i n f u n c t i o n i o n H i t t i n ga n o t h f u n c t i o n k e y s n o w i l l p r o d u c e s o u n d w i t h t h f a d e -i t i m e s h o w n . T i n c r e a s e t h f a d e - i n t i m e , h i f ^ ^ ^ ^ ^ ^ a ^ / ) .H i t t i n g t h e i ^ ^ w r i k ^ r a i s ^ j ^ w i l l d e c r e a s e t h f a d e - i nt i m e .

S o m e F i n a l T i p sL o o k c l o s e l y a t h p r o g r a m e x a m p l e s . M a n y o t h e m u s s o m ec l e v e r t r i c k s t h a t a r e n o o b v i o u s w i t h j u s t c a s u a l g l a n c e . T h f r o g , f o e x a m p l e , d o e s n o p r o d u c e s m o o t h f a d e - i n . I t ' s b r o k e ni n t o r a s p y p u l s e s b t u r n i n g t h s o u n d o a n t h e n o f a g a i n r i g h ti t h m i d d l e o t h f a d e .

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

1 0

Page 109: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 109/284

, ■ £ . ■ ■ ■ ■ ■

U ^ r ^ 7

Page 110: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 110/284

Page 111: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 111/284

J i m W i l c o x

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

T h r o u t i n e i i m a c h i n e l a n g u a g e , b u n k n o w l e d g e o m a c h i n e l a n g u a g e i n e e d e d t u s t h i s p r o g r a m . O n c e t h p r g r a m i t y p e d i n d o u b l e - c h e c k t h D A I A s t a t e m e n t s , s i n c e o n e r r o r c a c a u s e t h p r o g r a m t c r a s h . S i W E t h p r o g r a m b e f o r eR U N n i n g i t A f t e r y o u ' v e t y p e d R U a n p r e s s e d R E T U R N , t h f o l l o w i n g s h o u l d a p p e a r : F = T y p e i t h B A S I C c o m m a n do s t a t e m e n t y o w o u l d l i k e t h f u n c t i o n - o n e k e t e q u a l . F o e v e r y c a r r i a g e r e t u r n y o w o u l d l i k e , t y p e i t h b a c k a r r o wl o c a t e d o t h u p p e r l e f t - h a n d c o r n e r o t h V I C . O n c e y o a r s u r e t h e f u n c t i o n k e h a b e e n d e f i n e d p r o p e r l y , p r e s s t h eR E T U R N k e y . T h p r o g r a m w i l l t h e n a s f o t h r e s t o t h f u n ct i o n k e y s ' d e f i n i t i o n s . A f t e r y o h a v e d e f i n e d t h e e i g h t h f u n c t i o nk e y , t h c o m p u t e r w i l l p r i n t R E A D Y . T h f u n c t i o n k e y s a r n o r e a d y t b u s e d . J u s t p r e s s t h e a p p r o p r i a t e f u n c t i o n k e y , a n t h c h a r a c t e r s f o w h i c h i w a p r o g r a m m e d w i l l b p r i n t e d .

R U l i s t

F 2 = ? P O K ER = ? P E E K (F 5 = ? G O T OF 6 = ? G O S U BF

W h a t I I D o e s n ' t W o r k ?I t h V I j u s t l o c k s u o i y o d o n ' t g e t h R E A D Y m e s s a g e ,

1 0

Page 112: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 112/284

Page 113: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 113/284

P r o g r a m m i n g F u n c t i o n K e y sF = 0 : C = P E E K ( 5 5 ) - 1 2 0 : I F C < 0 T H E N C = C + 2 5 6 : F =-

1 D = P E E K ( 5 6 ) + F : P O K E 5 5 , C : P O K E 5 6 , D : C L R1 S = 8 2 8 : 1 = 1 4 6 : G O S U B 1 0 02 D A T A 3 2 , 1 9 8 , 3 , 1 6 5 , 5 5 , 1 3 3 , 2 5 1 , 1 3 3 , 2 5 3 , 1

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

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

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

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

, 0 , 2 0 1 , 5 7 , 1 4 4 , 1 6 3 , 1 2 0 , 1 6 9 , L 0 , 1 4 15 D A T A 2 0 , 3 , 1 6 9 , H 0 , 1 4 1 , 2 1 , 3 , 8 8 , 1 6 9 , 0 , 1 3 3

, 0 , 3 2 , 6 8 , 1 9 8 , 7 6 , 1 1 6 , 1 9 6 , 1 6 6 , 5 55 D A T A 2 0 8 , 2 , 1 9 8 , 5 6 , 1 9 8 , 5 5 , 9 66 S = P E E K ( 5 5 ) + 2 5 6 * P E E K ( 5 6 ) : I = 1 1 9 : G O S U B 1 06 S Y S ( 8 2 8 )7 D A T A 1 6 5 , 0 , 2 4 0 , 5 9 , 1 6 0 , 0 , 1 7 7 , 2 5 1 , 3 2 , L 9 9

, H 0 , 1 7 6 , 1 2 , 1 6 5 , 5 5 , 1 9 7 , 2 5 1 , 2 0 8 , 2 1 , 1 6 57 D A T A 5 6 , 1 9 7 , 2 5 2 , 2 0 8 , 1 5 , 1 6 9 , 0 , 1 3 3 , 0 , 1 6 5

, 2 5 3 , 1 3 3 , 2 5 1 , 1 6 5 , 2 5 4 , 1 3 3 , 2 5 2 , 7 6 , 1 9 1 , 23

8 D A T A 1 6 6 , 1 9 8 , 1 7 7 , 2 5 1 , 1 5 7 , 1 1 9 , 2 , 2 3 0 , 1 9 8, 3 2 , L 1 1 1 , H 0 , 1 6 5 , 1 9 8 , 2 0 1 , 1 0 , 2 0 8 , 2 0 4 , 2 30 ,

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

9 D A T A 0 , 1 7 7 , 2 5 1 , 1 9 7 , 2 1 5 , 2 0 8 , 6 , 3 2 , L 1 1 1 , H0 , 7 6 , L 6 , H 0 , 3 2 , L 1 1 1 , H 0 , 7 6 , L 8 1 , H 0 , 2 0 1

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

1 0 F = 0 : F O R D = S T O S + I : R E A D A $ : I F A S C ( A $ ) < 5 8 TH E N A = V A L ( A $ ) : G O T O 1 1 5

1 0 I F A S C ( A $ ) = 7 6 T H E N A = V A L ( R I G H T $ ( A $ , L E N (A $ ) - l ) ) + P E E K ( 5 5 ) : I F A > 2 5 5 T H E N A = A - 2 5 6 :F =

1 1 I F A S C ( A $ ) = 7 2 T H E N A = V A L ( R I G H T ? ( A $ , L E N (A $ ) - 1 ) ) + P E E K ( 5 6 ) + F : F = 0P O K E D , A : N E X T : R E T U R N

1 0

Page 114: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 114/284

G a r y L E n g s t r o mA m o r e a n d m o r e V I o w n e r s a d e x p a n s i o n m e m o r y t t h e i r c o p u t e r s , t h e r e i a i n c r e a s i n g n e e d f o p r o g r a m s w h i c h r u o a l V I C s ,o a n m e m o r y s i z e . H e r d s h o t w r i t e t h e m .

T h " w h e r e ' s m m e m o r y l o c a t e d n o w " p r o b l e m c a b o v e rc o m e b c a r e f u l p r o g r a m m i n g . W i t h o w i t h o u t R A e x p a n s i o ni p l a c e , y o s h o u l d b a b l e t r u a n o y o u r o w p r o g r a m s t h a tr e q u i r e 3 . 5 K o l e s s o R A M . O c o u r s e , y o w i l l h a v e t p u u w i t h r e m o v i n g a n i n s t a l l i n g t h e x p a n s i o n c a r t r i d g e w h e n u s i n gp r o g r a m s w r i t t e n b o t h e r s , b u y o c a h a v e t h c o n v e n i e n c e o u n i v e r s a l V I p r o g r a m s y o w r i t e y o u r s e l f .

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

1 T h p r o g r a m m u s t n o n e e d m o r e t h a n 3 . 5 K o m e m o r y .Y o j u s t c a n n o t s q u e e z e m o r e t h a n t h a t i n t o t h u n e x p a n d e dV I C - 2 0 .2 T h p r o g r a m m u s t c o n t a i n m e m o r y l o c a t i o i u n f o r m a t i o nf o b o t h t h e x p a n d e d a n d u n e x p a n d e d V I C - 2 0 .3 T h p r o g r a m m u s t b a b l e t d e t e r m i n e i e x p a n s i o n i i p l a c e a n b a b l e t c h o o s e b e t w e e n t h t w s e t s o m e m o r yl o c a t i o n s .T o u n d e r s t a n d h o p r o g r a m c a c o n f o r m t t h e s e l a s t t w

r e q u i r e m e n t s , y o u n e e d t u n d e r s t a n d t h a t w h e n t h V I C - 2 0 i t u r n e d o n i t o p e r a t i n g s y s t e m g o e s t h r o u g h a i n i t i a l i z a t i o n p r c e d u r e . D u r i n g i n i t i a l i z a t i o n , o n o t h t a s k s t h a t t h o p e r a t i n gs y s t e m d o e s i c h e c k t s e i m e m o r y e x p a n s i o n i i p l a c e .I s o t h e o p e r a t i n g s y s t e m s e t s c e r t a i n p o i n t e r s t o n s e o m e m o r y l o c a t i o n s ; i t h e r e i n m e m o r y e x p a n s i o n , t h e s ep o i n t e r s a r s e t d i f f e r e n t s e o m e m o r y l o c a t i o n s . I y o h a v e8 o m o r e R A m e m o r y e x p a n s i o n f o y o u r V I C - 2 0 , y o s h o u l db f a m i l i a r w i t h t h r e e o t h e s e m e m o r y l o c a t i o n s ( s e e T a b l e 1 ) T h c o m p u t e r u s e s t h c o r r e c t l o c a t i o n s b e c a u s e , d u r i n g i n i t i a l i -

1 0

Page 115: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 115/284

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

T a b l e 1 M e m o r y L o c a t i o n s

e p e n d s o t h e x a c t a m o u n t o t m e

E s t a b l i s h A l t e r n a t e V a l u e sM e m o r y l o c a t i o n s u s e d a p o i n t e r s c a n b e u s e d b B A S I C p r g r a m t r u o e i t h e r a e x p a n d e d o a u n e x p a n d e d V I C - 2 0 . 1c h o s e m e m o r y l o c a t i o n 4 3 - 4 4 ( $ 0 0 2 B - $ 0 0 2 C ) , t h p o i n t e r t t h s t a r t o t h B A S I C p r o g r a m i m e m o r y . W h e n t h V I C - 2 0 i n o e x p a n d e d , t h d e c i m a l v a l u e o t h h i g h b i ( l o c a t i o n 4 4 i 1 6 w h e n t h V I C - 2 0 i e x p a n d e d b 8 o m o r e , t h d e c i m a l v a l u e o t h h i g h b i i 1 8

T h i s g i v e s u e n o u g h i n f o r m a t i o n ( u s i n g P E E K s t a t e m e n t )t c r e a t e t w p a t h s f o a l t e r n a t e m e m o r y v a l u e s i B A S I C p r g r a m . T h u s w c a a s s i g n t h e v a l u e s f o t h b e g i n n i n g o s c r e e nm e m o r y a n o c o l o r R A f o t h e x p a n d e d a n d u n e x p a n d e dV I C - 2 0 ( s e e P r o g r a m 1 )

P r o g r a m 1 A l t e r n a t e V a l u e s1 P R I N T " { C L R } " : R E M * S E T A L T E R N A T E V A L U E S2 I P E E K ( 4 4 ) = 1 8 G O T O 7 0 I M E M O R Y I

I P L A C E3 S M = 7 6 8 0 R E S C R E E N M E M O R Y F O U N E X P

A N D E D V I 4 C M = 3 8 4 0 0 R E C O L O R M E M O R Y F O R T H E

N E X P A N D E D V I 5 C S 2 = 2 4 2 R E C H A R A C T E R S E P O I N T E R

F O R T H E U N E X P A N D E D V I 6 G O T O 1 1 R E S K I P7 S M = 4 0 9 6 R E S C R E E N M E M O R Y F O R T H E

X P A N D E D V I

1 0

Page 116: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 116/284

8 C M = 3 7 8 8 8 R E C O L O R M E M O R Y F O R T H X P A N D E D V I

9 C S 2 = 1 9 4 R E C H A R A C T E R S E P O I N T E RF O T H E X P A N D E D V I C .

Y o m i g h t h a v e n o t i c e d t h e e x t r a v a l u e . I y o u w a n t t P O K Ec h a r a c t e r s f r o m C h a r a c t e r S e t t h s c r e e n , y o h a v e t P O K Et h c h a r a c t e r s e p o i n t e r t t h a l t e r n a t e s e t . T h c h a r a c t e r s e p o i n t e r i a m e m o r y l o c a t i o n 3 6 8 6 9 . 1 h a v e i n c l u d e d t h c h a r a c t e rs e p o i n t e r v a l u e t d e m o n s t r a t e t h a t y o m i g h t w a n t t u s o t h e ra l t e r n a t e v a l u e s i s o m e o y o u r p r o g r a m s .E n t e r C o m m o n V a l u e sA f t e r t h a l t e r n a t e v a l u e s h a v e b e e n s e t , y o c a s e t h e v a l u e st h a t a r c o m m o n t b o t h t h e x p a n d e d a n d u n e x p a n d e d V I C - 2 0( s e e P r o g r a m 2 ) O c o u r s e , i y o a r n o g o i n g t u s p a r t i c u l a rv a l u e , i c a n b e l e f t o u t .

P r o g r a m 2 C o m m o n V a l u e s1 0 R E * S E T C O M M O N V A L U E S *1 1 S B = 3 6 8 7 9 : R E M S C R E E N / B O R D E R C O L O R1 2 V = 3 6 8 7 8 R E V O L U M E1 3 S l = 3 6 8 7 4 R E S P E A K E R1 4 S 2 = 3 6 8 7 5 R E M S P E A K E R1 5 S 3 = 3 6 8 7 6 R E S P E A K E R1 6 S 4 = 3 6 8 7 7 R E S P E A K E R

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

C r u n c h a n S a v eP r o g r a m i " c r u n c h e d " v e r s i o n o P r o g r a m s a n 2 E n t e r P r g r a m 3 t h e n S A V E a n V E R I F Y i o t a p e . E v e r y t i m e y o s t a r tn e p r o g r a m , L O A D t h e s e f o u r l i n e s b e f o r e y o s t a r t t e n t e ry o u r o w l i s t i n g . W h e n y o w r i t e y o u r p r o g r a m , s t a r t w i t h l i n e1 0 0 . L i n e s 5 0 - 9 0 c a b u s e d f o d e f i n i n g v a r i a b l e s a n c o n s t a n t sf o y o u r p r o g r a m .

P r o g r a m 3 L i n e s 1 t 1 6 " C r u n c h e d "1 P R I N T 1 1 { C L R } " : I P E E K ( 4 4 ) = 1 8 G O T O 3 2 S M = 7 6 8 0 : C M = 3 8 4 0 0 : C S 2 = 2 4 2 : G O T O 4 0

1 0

Page 117: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 117/284

3 S M = 4 0 9 6 : C M = 3 7 8 8 8 : C S 2 = 1 9 44 S B = 3 6 8 7 9 : V = 3 6 8 7 8 : S 1 = 3 6 8 7 4 : S 2 = 3 6 8 7 5 : S 3

= 3 6 8 7 6 : S 4 = 3 6 8 7 7

I k I O u W h e n a l t h v a l u e s h a v e b e e n s e t , y o c a s t a r t t c r e a t e y o u rp r o g r a m . P r o g r a m i s h o r t p r o g r a m t h a t y o c a e n t e r t d e m o n s t r a t e t h f l e x i b i l i t y o P r o g r a m 3

P r o g r a m 4 D e m o n s t r a t i o n P r o g r a m1 0 R E * D E M O N S T R A T I O N P R O G R A M *1 1 P O K E S B , 1 2 0 R E S E Y E L L O W S C R E E N

A N B L A C K B O R D E R1 2 P O K E 3 6 8 6 9 , C S 2 R E M P O I N T T C H A R A C

T E S E 1 3 S S = I N T ( R N D ( 1 ) * 1 2 8 ) + 1 2 8 R E R A N D O M

V A L U E F O S P E A K E R1 4 C V = I N T ( R N D ( 1 ) * 8 ) R E R A N D O M C O L O R

V A L U E1 5 V S = I N T ( R N D ( 1 ) * 1 5 ) + 1 R E M R A N D O M V A LU F O R V O L U M E1 6 X I N T ( R N D ( 1 ) * 2 2 ) R E R A N D O M V A L U E

F O R X C O O R D I N A T E1 7 Y = I N T ( R N D ( 1 ) * 2 3 ) R E R A N D O M V A L U E

F O Y C O O R D I N A T E1 8 P O K E S M + X + 2 2 * Y , 9 5 R E P O K E C H A R A C T

E T S C R E E N1 9 P O K E C M + X + 2 2 * Y , C V R E P O K E C O L O R

S C R E E N2 0 P O K E V , V S P O K E S 1 , S S P O K E S 2 , S SP O K E S 3 , S S P O K E S 4 , S S R E S O U N2 1 F O T = T 1 N E X T R E P A U S E2 2 G O T O 1 3 R E M R E P E A T

A d t h l i n e s o P r o g r a m t P r o g r a m 4 t h e n S A V E a n V E R I F Y t h r e s u l t i n g p r o g r a m . T h e n , t r i o b o t h y o u r e p a n d e d a n u n e x p a n d e d V I C - 2 0 . ( D o n ' t f o r g e t t o t u r n t h c o p u t e r o f b e f o r e i n s t a l l i n g a n r e m o v i n g t h m e m o r y e x p a n d e r . )T h p r o g r a m w i l l a d j u s t t t h c o r r e c t a l t e r n a t e s e o v a l u e s a n w o r k c o r r e c t l y w i t h a n c o n f i g u r a t i o n .P r a c t i c e P O K E i n gU s i n g l a b e l s i p l a c e o f a c t u a l n u m b e r s f o P O K E i n g m i g h t b c o n f u s i n g a f i r s t . H o w e v e r , o n c e y o g e u s e d t t h l a b e l s , p r g r a m m i n g w i l l b q u i c k e r a n d m o r e a c c u r a t e . T h e l p y o m a k e

1 0

Page 118: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 118/284

t h t r a n s i t i o n , w i l l e x p l a i n t w w a y s t h a t l a b e l s c a b u s e d t P O K E c o l o r a n c h a r a c t e r s t t h s c r e e n .M e t h o d 1 X / C o o r d i n a t e sT h e X / Y c o o r d i n a t e m e t h o d f o P O K E i n g c h a r a c t e r s t t h s c r e e nt a k e s a d v a n t a g e o t h 2 c o l u m n s a n 2 r o w s o t h V I C - 2 0s c r e e n . R e f e r t T a b l e 2 T h 2 c o l u m n s a r l a b e l e d a n a r n u m b e r e d t 2 1 t h 2 r o w s a r l a b e l e d a n n u m b e r e d t 2 2 A l o t h s c r e e n l o c a t i o n s c a n b e i d e n t i f i e d b c o l u m n ( X a n r o ( Y ) . F o e x a m p l e , t h c e n t e r o t h e s c r e e n i a = 1 a n = 1 1 ; t h l o w e r l e f t - h a n d c o r n e r i a = 0 a n d = 2 2 . T P O K Ec h a r a c t e r s t t h s c r e e n , y o m u s t u s t h e f o l l o w i n g f o r m u l a :P O K E S + + 2 Y , N w h e r e S = 7 6 8 0 f o t h u n e x p a n d e da n 3 e x p a n d e d V I C - 2 0 , S = 4 0 9 6 f o t h 8 o m o r e e x p a n d e dV I C - 2 0 , a n i t h c h a r a c t e r c o d e .

Y o c a P O K E c o l o r t t h e s c r e e n i t h s a m e w a y : P O K EC + + 2 Y , N w h e r e C = 3 8 4 0 0 f o t h u n e x p a n d e d V I C - 2 0 ,C = 3 7 8 8 8 f o t h e x p a n d e d V I C - 2 0 , a n i t h c o l o r c o d e .

L O A D P r o g r a m a n t h e n a d t h f o l l o w i n g P O K E s t a t em e n t s ( P r o g r a m 5 )

P r o g r a m X / C o o r d i n a t e P r a c t i c e1 0 X = Y = R E S E V A L U E S F O A N 1 1 P O K E S M + X + 2 2 * Y , 8 1 P O K E C M + X + 2 2 * Y , 6

R E B L U E B A L L — U P P E R L E F T1 2 X = 2 1 Y = R E S E V A L U E S F O R X A N1 3 P O K E S M + X + 2 2 * Y , 8 3 P O K E C M + X + 2 2 * Y , 2

R E R E H E A R T — U P P E R R I G H T1 4 X = l l Y = l l R E S E V A L U E S F O R

N 1 5 P O K E S M + X + 2 2 * Y , 9 0 P O K E C M + X + 2 2 * Y , 0

R E M B L A C K D I A M O N D — C E N T E R1 6 X = Y = 2 2 R E S E V A L U E S F O R A 1 7 P O K E S M + X + 2 2 * Y , 6 5 P O K E C M + X + 2 2 * Y , 4

R E P U R P L E S P A D E — L O W E R L E F T1 8 X = 2 1 Y = 2 2 R E S E V A L U E S F O X

N 1 9 P O K E S M + X + 2 2 * Y , 8 8 P O K E C M + X + 2 2 * Y , 5

R E G R E E N C L O V E R — L O W E R R I G H T

1 1

Page 119: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 119/284

i

s

I I

1 1

Page 120: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 120/284

T m a k e c h a r a c t e r m o v e o t h s c r e e n , a d + t t h v a l u e o f o r r i g h t m o v e m e n t , a d d - t t h e v a l u e o f o l e f tm o v e m e n t , a d + t t h e v a l u e o f o d o w n m o v e m e n t , a n a d - t t h e v a l u e o f o u p w a r d m o v e m e n t . T h l i m i t s o t h s c r e e n a r d e f i n e d b = t 2 a n = t 2 2 E x p e r i m e n t b

c h a n g i n g t h v a l u e s f o a n i P r o g r a m 5

M e t h o d 2 D i r e c t M e t h o dT h e r e a r 5 0 s c r e e n l o c a t i o n s f o b o t h c o l o r a n c h a r a c t e r s . T h f i r s t l o c a t i o n i S ( f o r S c r e e n M e m o r y ) a n C ( f o r C o l o rM e m o r y ) . T h e f i r s t l o c a t i o n 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 s c r e e n . T h s e c o n d l o c a t i o n i t t h r i g h t o t h f i r s t l o c a t i o n a n h a v a l u e o S + ( f o r c h a r a c t e r p l a c e m e n t ) o C + ( f o r c o l o rp l a c e m e n t ) .

W c a c o n t i n u e t a d v a l u e s t t h l a b e l s u n t i l w a r a t h b o t t o m r i g h t - h a n d c o r n e r o t h s c r e e n , w h e r e t h e v a l u e s a r S + 5 0 5 a n C + 5 0 5 . T h e r e f o r e , a n p o s i t i o n o t h e s c r e e n c a b e a d d r e s s e d b a d d i n g t h e v a l u e s o t h r o u g h 5 0 t t h l a b e l sS o C ( s e e t h m e m o r y m a p ) . L O A D t h e A l t e r n a t e V a l u e sL i s t i n g ( P r o g r a m 3 a n t h e n a d t h e f o l l o w i n g p r a c t i c e P O K Es t a t e m e n t s ( P r o g r a m 6 )

P r o g r a m 6 M e m o r y L o c a t i o n P r a c t i c e1 0 P O K E S M + 0 , 8 1 P O K E C M , 6 R E B L U E

B A L I . — U P P E R L E F T - H A N D C O R N E R1 1 P O K E S M + 2 1 , 8 3 P O K E C M + 2 1 , 2 R E

E H E A R T — U P P E R R I G H T - H A N D C O R N E R1 2 P O K E S M + 2 5 3 , 9 0 P O K E C M + 2 5 3 , 0 R E

B L A C K D I A M O N D — C E N T E R1 3 P O K E S M + 4 8 4 , 6 5 P O K E C M + 4 8 4 , 4 R E

P U R P L E S P A C E — L O W E R L E F T - H A N D C O R N E1 4 P O K E S M + 5 0 5 , 8 8 P O K E C M + 5 0 5 , 5 R E

G R E E N C L O V E R — L O W E R R I G H T - H A N D C O R NE

T m a k e c h a r a c t e r m o v e o t h s c r e e n , a d + f o r i g h tm o v e m e n t , a d - f o l e f t m o v e m e n t , a d d + 2 f o d o w n m o v em e n t , a n a d - 2 f o u p w a r d m o v e m e n t . T h l i m i t s o t h s c r e e n a r d e f i n e d b S + 5 0 5 a n S M ( f o r c h a r a c t e r p l a c e m e n t )a n C + 5 0 5 a n C ( f o r c o l o r p l a c e m e n t ) . E x p e r i m e n t b c h a n g i n g t h e v a l u e s a d d e d t S a n C i P r o g r a m 6

1 1

Page 121: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 121/284

W h i c h M e t h o d I B e s t ?A t h i s p o i n t y o m a b w o n d e r i n g w h i c h m e t h o d f o P O K E i n gs h o u l d b e u s e d . E a c h m e t h o d h a i t p l a c e , d e p e n d i n g o t h r q u i r e m e n t s o y o u r p r o g r a m . G e n e r a l l y , t h d i r e c t m e t h o d r q u i r e s f e w e r c o m m a n d s f o s o m e a p p l i c a t i o n s a n r u n s f a s t e rt h a n t h X / c o o r d i n a t e m e t h o d . H o w e v e r , i i m u c h e a s i e r t d e f i n e c o m p l e x s c r e e n b o u n d a r i e s u s i n g t h X / c o o r d i n a t em e t h o d .

F o e x a m p l e , l e t ' s p l a c e f i v e - c h a r a c t e r b f i v e - c h a r a c t e rs q u a r e o t h s c r e e n . W e l l u s t h X / c o o r d i n a t e m e t h o d t p l a c e s q u a r e i t h c e n t e r o t h s c r e e n , a n t h d i r e c t m e t h o dt p l a c e s q u a r e i t h l o w e r l e f t - h a n d c o r n e r . L O A D P r o g r a ma n t h e n a d t h f o l l o w i n g l i n e s ( P r o g r a m 7 )

P r o g r a m X / C o o r d i n a t e V e r s u s D i r e c t M e t h o d1 0 R E X / C O O R D I N A T E M E T H O D1 1 F O X = 9 T O 1 F O Y = T 1 R E

S E V A L U E S O F A N 1 2 P O K E S M + X + 2 2 * Y , 1 6 0 P O K E C M + X + 2 2 * Y ,

R E P O K E C H A R A C T E R A N D C O L O R1 3 N E X T N E X T X R E P E A T1 4 R E D I R E C T M E T H O D1 5 L = 3 9 6 R E B E G I N N I N G V A L U E O F 1 6 F O M = T O L + 4 R E M R A N G E O F O

O N E L I N E1 7 P O K E S M + M , 1 6 0 P O K E C M + M , 8 R E M P O K E

C H A R A C T E R A N C O L O R F O R O N L I N E1 8 N E X T R E M R E P E A T T E N O L I N E1 9 L = L + 2 2 I L > 4 8 8 T H E N E N D I A

N O L A S T L I N E E N D2 0 G O T O 1 6 0 : R E P E A T

W h e n R U N n i n g t h i s p r o g r a m , y o m i g h t h a v e n o t i c e d t h a tt h s e c o n d s q u a r e w a p r i n t e d a l i t t l e f a s t e r t h a n t h f i r s t o n e . I na p p l i c a t i o n s w h e r e s p e e d i i m p o r t a n t , i i u s e f u l t k n o w t h a tt h d i r e c t m e t h o d d o e s r u q u i t e b i f a s t e r t h a n t h X / c o o r d in a t e m e t h o d .

T h i s c a b b e s t i l l u s t r a t e d b y P r o g r a m 8 I t h i s p r o g r a m , t h e n t i r e s c r e e n i f i l l e d w i t h c h a r a c t e r s b u s i n g b o t h m e t h o d s . A a d d e d f e a t u r e i t h a t e a c h s e g m e n t o t h p r o g r a m i t i m e d b t h V I C - 2 0 b u i l t - i n t i m e r . L O A D P r o g r a m a n t h e n e n t e r t h f o l l o wi n l i n e s :

1 1

Page 122: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 122/284

P r o g r a m F i l l S c r e e n T e s t1 0 R E * F I L L S C R E E N T E S T *1 1 R E M F I L L S C R E E N U S I N G S C R E E N M E M O R Y

L O C A T I O N S1 2 P R I N T " { C L R } " : R E M C L E A R S C R E E N1 3 T I $ = " 0 0 0 0 0 0 " R E Z E R O T I M E R1 4 F O J = C M T C M + 5 0 5 R E S E V A L U E S

F O R C O L O R M E M O R Y1 5 P O K E J , R E P O K E C O L O R1 6 N E X T R E M R E P E A T1 7 F O I = S M T O S M + 5 0 5 R E S E V A L U E S

F O R S C R E E N M E M O R Y1 8 P O K E 1 , 1 6 0 R E M P O K E C H A R A C T E R1 9 N E X T R E M R E P E A T2 0 T l T I R E C O R D T I M E2 1 R E M F I L L S C R E E N U S I N G X / C O O R D I N A T E2 2 P R I N T " t C L R } " : R E M C L E A R S C R E E N2 3 T I $ = " 0 0 0 0 0 0 " R E Z E R O T I M E R2 4 F O Y = T 2 F O X = T 2 S E

V A L U E S F O R A N 2 5 P O K E C M + X + 2 2 * Y , 8 R E P O K E C O L O R2 6 P O K E S M + X + 2 2 * Y , 1 6 0 R E M P O K E C H A R A C

T E 2 7 N E X T N E X T Y R E P E A T2 8 T 2 $ = T I $ R E R E C O R D T I M E2 9 P R I N T " { C L R } " : R E M C L E A R S C R E E N A N D P R

N R E S U L T S3 0 P O K E S B , 1 5 7 R E M C H A N G E S C R E E N A N

B O R D E R C O L O R3 1 P R I N T " D I R E C T M E T H O D { 3 S P A C E S } " T l $

R E P R I N T T I M E3 2 P R I N T " X / Y C O O R D I N A T E S " T 2 $ R E M P RI N T I M E

3 3 E N

A y o c a s e e , t h d i r e c t m e t h o d R U N s a b o u t t w i c e a f a s t a t h X / c o o r d i n a t e m e t h o d . I y o a r w r i t i n g a p r o g r a m u s i n gl o o P O K E s , y o u m i g h t c o n s i d e r u s i n g t h d i r e c t m e t h o dw h e r e v e r p o s s i b l e . T h i s w i l l h e l p t s p e e d u y o u r p r o g r a m .H o w e v e r , t h X / c o o r d i n a t e m e t h o d r e m a i n s t h m o s t u s e f u lw h e n d e f i n i n g c o m p l e x s c r e e n b o u n d a r i e s .

B u s i n g a l t e r n a t e v a l u e s f o s c r e e n m e m o r y a n c o l o r m e o r y , y o a r n o t o n l y a b l e t P O K E c h a r a c t e r s a n c o l o r s t t h s c r e e n e a s i l y a n a c c u r a t e l y , b u y o w i l l a l s o b a b l e t r u y o u rp r o g r a m s ( 3 . 5 K o l e s s ) w i t h o w i t h o u t y o u r e x p a n s i o n c a r t r i d g e .

1 1

Page 123: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 123/284

D o u g H o r n e r a n S t a n K l e i nT h i s s i m p l e m e t h o d o a d j u s t i n g t h V I C ' s i n t e r n a l j i f f y c l o c k c a s l o w i d a w n t m a t c h y o u r t i m i n g n e e d s , m a k i n g p o s s i b l e " v a r i a b l e s p e e d nm a c h i n e l a n g u a g e s u b r o u t i n e s .

H o m e c o m p u t e r s a r f i n d i n g t h e i r " h o m e s " i l a b s , m o r e a n m o r e f r e q u e n t l y . T h e i r f l e x i b i l i t y a n l o c o s t m a k e t h e m e x c e ll e n t s u b s t i t u t e s f o m o r e e x p e n s i v e s p e c i a l e q u i p m e n t . O n c o m o u s i a d a t a a c q u i s i t i o n d e v i c e . D a t a a c q u i s i t i o n s y s t e m sm o n i t o r a n r e c o r d i n f o r m a t i o n o e x p e r i m e n t s i n p r o g r e s s . F o e x a m p l e , a c h e m i s t m a u s s p e c i a l e l e c t r o d e t m e a s u r e t h c o n c e n t r a t i o n o p a r t i c u l a r c o m p o n e n t i c h e m i c a l s o l u t i o n .A t h c o n c e n t r a t i o n c h a n g e s , t h e l e c t r o d e s e n d s v a r y i n gv o l t a g e t a a n a l o g - t o - d i g i t a l c o n v e r t e r . T h c o n v e r t e r c h a n g e st h v o l t a g e s i g n a l t b i n a r y d a t a w h i c h c a n b e r e c o r d e d a n s t o r e d f o l a t e r a n a l y s i s .

T l o t h d a t a , t h c h e m i s t c o u l d u s a s p e c i a l - p u r p o s e d a t aa c q u i s i t i o n s y s t e m p e r h a p s c o s t i n g t h o u s a n d s o d o l l a r s a n u s f u o n l y f o p a r t i c u l a r t y p e o e x p e r i m e n t . O t h e o t h e r h a n d ,m i c r o c o m p u t e r c o u l d b p r o g r a m m e d t p e r f o r m t h s a m e f u n ct i o n . M o r e o v e r , t p e r f o r m a n o t h e r t y p e o e x p e r i m e n t , t h e c h e mi s n e e d o n l y m o d i f y t h p r o g r a m i n s t e a d o b u y i n g n e e q u i pm e n t . W h e n t h d a t a i s t o r e d , t h c o m p u t e r m i g h t a l s o b u s e f u li a n a l y z i n g i t

S u r p r i s i n g l y S i m p l eT h e r e i a s u r p r i s i n g l y s i m p l e m e t h o d f o c o n v e r t i n g t h V I i n t o

d a t a a c q u i s i t i o n s y s t e m . g o o d a c q u i s i t i o n s y s t e m i b a s e d o c l o c k w h i c h u s e s i n t e r r u p t s t s a m p l e t h u s e r p o r t a a d j u s t a b l e ,f i x e d i n t e r v a l s . D a t a a c q u i s i t i o n s o f t w a r e i u s u a l l y c o m p l i c a t e db e c a u s e y o u m u s t w o r r y a b o u t i n t e r r u p t s g e n e r a t e d f r o m t h j i f f yc l o c k .

s i m p l e r s c h e m e i t a p p e n d t h d a t a a c q u i s i t i o n r o u t i n e t t h f r o n t o f t h i n t e r r u p t s e r v i c e r o u t i n e w h i c h i a l r e a d y f u n c -

1 1

Page 124: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 124/284

t i o n i n g i c o n n e c t i o n w i t h t h j i f f y c l o c k . E v e r y 1 6 . 6 6 7 m i l l is e c o n d s , V I i n t e r r u p t s w h a t e v e r i i d o i n g t l o o k a t h k e b o a r d a n u p d a t e t h j i f f y t i m e r . H e r e ' s h o t a t t a c h y o u r o w p r o g r a m t t h j i f f y s e r v i c e r o u t i n e a n h o t s e t h j i f f y c l o c kt a n r a t e o d a t a a c q u i s i t i o n .

T c h a n g e t h n u m b e r o f i n t e r r u p t s p e r s e c o n d , j u s t P O K Ed i f f e r e n t n u m b e r s i n t o t h l o t i m e r l a t c h ( 3 7 1 5 8 ) a n t h h i g ht i m e r l a t c h ( 3 7 1 5 9 ) . U n d e r n o r m a l o p e r a t i n g c o n d i t i o n s , t h e s eb y t e s a r l o a d e d w i t h 1 3 i t h l o b y t e a n 6 i t h h i g h b y t e .A i n t e r r u p t i g e n e r a t e d a n t h l a t c h e s a r r e l o a d e d i n t o t h c o u n t e r s w h e n e v e r t h e c o u n t e r s a r d e c r e m e n t e d t z e r o . T h n u m b e r o c y c l e s b e t w e e n i n t e r r u p t s i t w c y c l e s g r e a t e r t h a n t h n u m b e r i t h l a t c h e s .

Y o m i g h t e x p e c t t h c o u n t e r t b l o a d e d w i t h 1 6 6 6 7 l e s st w o , s i n c e t h n o r m a l i n t e r r u p t s a r e v e r y 1 / 6 0 o f s e c o n d ; b u 6 6 * 2 5 6 + 1 3 7 = 1 7 0 3 3 r a t h e r t h a n 1 6 6 6 5 . T h i s m e a n s s i m p l y t h a t t h " M H z " c o u n t e r d e c r e m e n t s a 1 . 0 2 2 M H z , n o a a e v e n r a t e o 1 . 0 0 M H z . S o , t o m a k e t h j i f f y c l o c k i n t e r r u p t a r a t e d i f f e r e n tt h a n t h n o r m a l 1 / 6 0 p e s e c o n d , j u s t m u l t i p l y t h e d e s i r e d n u b e o m i c r o s e c o n d s p e r i n t e r r u p t b 1 . 0 2 2 a n s u b t r a c t t w f r o mt h a t n u m b e r . E x a m p l e : f o a m i l l i s e c o n d i n t e r r u p t ( 1 0 0 0 * 1 . 0 2 2 ) - 21 0 2 0 , s y o w o u l d P O K E i n t o t h h i g h b y t e a l o c a t i o n 3 7 1 5 9 ,a n 2 5 i n t o t h l o b y t e a l o c a t i o n 3 7 1 5 8 ( 3 * 2 5 6 + 2 5 2 = 1 0 2 0 )a n n o y o h a v e a i n t e r r u p t e v e r y m i l l i s e c o n d .

T h e r e a r l i m i t s t t h i s m e t h o d o c h a n g i n g t h j i f f y c l o c k t p r o d u c e v a r i e d i n t e r r u p t s . A t h s l o w e n d , t h l a r g e s t n u m b e rt h a t c o u l d b l o a d e d i $ F F F F , o r 6 5 5 3 5 . F o t h l o n g e s t t i m e i n t e rv a b e t w e e n i n t e r r u p t s , t h n u m b e r o m i c r o s e c o n d s w o u l d b ( 6 5 5 3 5 + 2 ) / 1 . 0 2 2 = 6 4 1 2 6 , o r r o u g h l y 1 / 1 5 o a s e c o n d . T h f a s t e n l i m i t i s e b t h p e r c e n t o t i m e r e m a i n i n g f o B A S I C . T h i s p e c e n t i d e r i v e d b ( L - I R ) / ( L + 2 ) , w h e r e i t h n u m b e r P O K E d i t h t i m e r l a t c h d e s c r i b e d a b o v e , a n I i t h n u m b e r o c y c l e st a k e n u b t h u n m o d i f i e d i n t e r r u p t s e r v i c e r o u t i n e .

T h e r e a r a p p r o x i m a t e l y 2 2 0 c y c l e s i t h u n m o d i f i e d i n t e rr u p t s e r v i c e r o u t i n e ; t h u s , i t h n u m b e r P O K E d i n t o t h t i m e ra p p r o a c h e s 2 2 0 , t h e r e w i l l b n t i m e a v a i l a b l e f o r a n y t h i n g o t h e rt h a n a t t e n d i n g t t h i n t e r r u p t s e r v i c e r o u t i n e .

H e r e ' s h o t a d y o u r o w m a c h i n e l a n g u a g e r o u t i n e t t h j i f f y c l o c k s e r v i c e r o u t i n e . N o r m a l l y , w h e n t h d e c r e m e n t i n gc o u n t e r h i t s z e r o , t h o p e r a t i o n i t r a n s f e r r e d t t h i n t e r r u p t s e v i c e r o u t i n e w h o s e b e g i n n i n g a d d r e s s ( $ E A B F ) i s t o r e d i 7 8 a n 7 8 ( $ 0 3 1 4 a n $ 0 3 1 5 ) . B c h a n g i n g t h a d d r e s s i 7 8 a n 1 1

Page 125: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 125/284

7 8 9 , y o c a t e l l V I t d a d d i t i o n a l i n s t r u c t i o n s i m a c h i n e l a g u a g e a n t h e n g o t $ E A B F t r u t h n o r m a l s e r v i c e r o u t i n e .

T c h a n g e t h a d d r e s s i 7 8 a n 7 8 9 , y o m u s t d i s a b l e t h i t e r r u p t e n a b l e r e g i s t e r f o t h j i f f y c l o c k t a l l o w t h n u m b e r i t h e s e l o c a t i o n s t b c h a n g e d . P O K E i n g l o c a t i o n 3 7 1 6 6 w i t h 6 w i l l d i s a b l e t h i n t e r r u p t ; a f t e r t h a d d r e s s e s i 7 8 a n 7 8 h a v eb e e n c h a n g e d , P O K E i n g l o c a t i o n 3 7 1 6 6 w i t h 1 9 w i l l e n a b l e t h i n t e r r u p t s a g a i n . H e r e ' s s a m p l e p r o g r a m :1 P O K E 5 2 , 2 8 : P O K E 5 6 , 2 8 : R E M S E T T I N G U P P E R

B O U N D A R Y F O R B A S I C1 F O Z = T 9 : R E A D Q z P O K E ( 2 8 * 2 5 6 + Z ) , Q :

N E X T Z : R E M M A C H I N E P R O G R A M I P A G E 2 2 P O K E 3 7 1 6 6 , 6 4 : P O K E 7 8 8 , 0 : P O K E 7 8 9 , 2 8 : P

O K E 3 7 1 6 6 , 1 9 22 R E M L I N E 2 C A U S E S . T H E I N T E R R U P T T

O G O T O P A G E 2 ' 2 D A T A 1 7 3 , 1 6 , 1 4 5 , 1 5 7 , 0 , 2 9 , 2 3 2 , 7 6 , 1 9 1 , 2

3 3 I N P U T " L O W " ; N 1 : I N P U T " H I G H " ; N 2 : P O K E 3 7 1 5

8 , N 1 : P O K E 3 7 1 5 9 , N 23 R E M L I N E 3 C H A N G E S T H T I M I N G O T H

I N T E R R U P TT h m a c h i n e l a n g u a g e p r o g r a m i l i n e 2 d i s a s s e m b l e s t o

1 C 0 0 L D $ 9 1 1 0 ; G e d a t a f r o m u s e r p o r t1 C 0 3 S T $ 1 D O O , X ; S t o r e d a t a i p a g e 2 r i n g b u f f e r1 C 0 6 I N X ; I n c r e m e n t p o i n t e r f o r i n g b u f f e r1 C 0 7 J M $ E A B F ; J u m p t n o r m a l j i f f y s e r v i c e r o u t i n eT h i s p r o g r a m c a b u s e d a g u i d e f o r s e t t i n g u t h j i f f y

c l o c k f o t i m e d d a t a a c q u i s i t i o n . O n a d d i t i o n a l c o n s i d e r a t i o n i t e r m s o t h p e r c e n t o t i m e l e f t f o B A S I C : t h a b o v e p r o g r a m h a a d d e d a a d d i t i o n a l f o u r t e e n c y c l e s w h i c h m u s t b a d d e d t t h I v a r i a b l e . E x e r c i s e c a u t i o n i d a t a i t b g a t h e r e d a f a s t e r t h a nh a l f - m i l l i s e c o n d i n t e r v a l s .

1 1

Page 126: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 126/284

Page 127: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 127/284

Page 128: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 128/284

Page 129: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 129/284

D o u g F e r g u s o nH e r e i r e v i s e d v e r s i o n o f p a u s e c o n t r o l f o y o u r V I C . O n c e y o u h a v ei L O A D e d i n t o m e m o r y , y o c a p a u s e t h l i s t i n g s i m p l y b y p r e s s i n gt h S H I F T k e y .

F o V I o w n e r s w h h a v e n o b o u g h t p r i n t e r y e t , s t u d y i n gB A S I C p r o g r a m b u s i n g t h L I S T c o m m a n d c a b t e d i o u s . T h s c r e e n d i s p l a y s o n l y a b o u t 2 l i n e s a t i m e i y o h i t h S T O Pk e y . A n t h e n t h o n l y w a t r e s t a r t a t h e p o i n t w h e r e y o us t o p p e d i t r e t y p e L I S T a g a i n a n a g a i n . E v e n t h C O N T R O Lk e i n o m u c h h e l p ; t h l i n e s s t i l l m o v e b t o f a s t f o m o r e t h a n

s u p e r f i c i a l l o o k . W h a t i n e e d e d o t h V I i P A U S E k e y .T h p r o g r a m l i s t e d h e r e i n e v e r s i o n o a e a r l i e r P a u s e

r o u t i n e t h a t w r o t e . U n l i k e m e a r l i e r v e r s i o n , t h i s o n p a t c h e sd i r e c t l y i n t o t h L I S T r o u t i n e i R O w i t h o u t i n t e r f e r i n g w i t ha n y t h i n g e l s e . O n c e a c t i v a t e d , t h e r e i n e v e r a n n e e d t t u r n i o f f .

T y p e i t h p r o g r a m e x a c t l y a w r i t t e n a n S ^ V E i b e f o r e y o R U i t T h p r o g r a m d e l e t e s i t s e l f w h e n r u n , s y o w o u l d h a v et r e t y p e i i y o r u i f i r s t . O n c e i i S A V E d , R U t h u t i l i t y .T h e n L O A D i B A S I C p r o g r a m a n g i v e i t r y . L I S T y o u r p r g r a m t t h s c r e e n a n w h i l e i i s c r o l l i n g p r e s s t h S H I F T k e y .U s t h S H I F T L O C K t o f r e e b o t h h a n d s .H o I W o r k sL i n e 2 s e t s t h l o w - b y t e / h i g h - b y t e a d d r e s s o m a c h i n el a n g u a g e " p a t c h " a t h t o o R A m e m o r y . L i n e 3 0 r e d e f i n e sm e m o r y s i z e t o p r o t e c t t h p a t c h a n m o v e t h L I S T v e c t o r a 7 7 4 - 7 7 5 ( $ 0 3 0 6 - $ 0 3 0 7 ) t r e n a v i g a t e t h i n d i r e c t j u m p a $ A 7 1 7 i R O ( $ C 7 1 7 i t h e V I C ) . T h r e m a i n i n g l i n e s c r e a t e t h p a t c h a t h t o o R A M . A l s o n o t e t h a t t h p r o g r a m a s s u m e s t h n o r m a lL I S T v e c t o r a p o w e r - u p ; l i n e 2 0 t h u s p r e v e n t s y o u r a c c i d e n t a l l yt r y i n g t R U t h p r o g r a m m o r e t h a n o n c e p e p o w e r - u p .P a u s e1 R E P A U S E2 L = 2 3 2 : H = P E E K ( 5 6 ) - 1 : Q = P E E K ( 7 7 5 ) : I F Q <

6 T H E N 8

1 2

Page 130: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 130/284

3 P O K E 5 1 , L : P O K E 5 2 , H : P O K E 5 5 , L : P O K E 5 f H : P O K E 7 7 4 , L : P O K E 7 7 5 , H4 F O X = L + H * 2 5 6 T X + 2 1 : R E A D D : P O K E X # : N E X T

5 P O K E X , 6 D A T A 7 2 , 1 5 2 , 7 2 , 3 2 , 1 5 9 , 2 5 5 , 1 6 9 , 1 , 4 4 , 1 4

1 , 2 , 2 0 8 , 2 4 67 D A T A 1 6 9 , 0 , 1 3 3 , 1 9 8 , 1 0 4 , 1 6 8 , 1 0 4 , 7 6 , 2 68 N E

1 2

Page 131: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 131/284

E Z Z Z Z Z 3 '

C h a r l e s S a r a c e n oH a w o u l d y o u l i k e t b a b l e t c h e c k a n d e b u g y o u r p r o g r a m s b y t u r ni n y o u r s c r e e n i n t o w i n d o w w h i c h c a m o v e a n y w h e r e o v e r t h l i s t i n g ,s t o p o s t a r t a w i l l , a n e v e n m o v e u p w a r d s t o w a r d t h s t a r t o f t h e p r g r a m ? A l t h i s c a b a c h i e v e d b j u s t t o u c h i n g d i f f e r e n t k e y s w h e n u s i n gt h i s c l e v e r " c o n t r o l l e d s c r o l l i n g " p r o g r a m .N o t h a t m e m o r y e x p a n s i o n m o d u l e s a r r e a d i l y a v a i l a b l e , i i p o s s i b l e t w r i t e l o n g e r V I p r o g r a m s . T h i s d o e s m a k e i h a r d e r ,h o w e v e r , t o e d i t t h e c o n t e n t s w i t h o u t h a r d c o p y f r o m p r i n t e rt e x a m i n e f o t y p i n g e r r o r s . S c r e e n e d i t i n g i t i m e - c o n s u m i n g , t s a t h l e a s t ; w i t h 2 c h a r a c t e r s p e l i n e , y o a r e l i m i t e d t f o u r o f i v e l i n e s a t i m e b e t w e e n L I S T c o m m a n d s . v e r y u s e f u l L I S Tw o u l d s c r o l l t h e s c r e e n a n s t o p o c o n t i n u e w h e n y o u w a n t i t o T h i d e a l L I S T w o u l d a l s o s c r o l l b a c k w a r d s .

T h i s s m a l l p r o g r a m e f f i c i e n t l y a c c o m p l i s h e s a l t h e s e t a s k s .L i n e 6 3 0 0 1 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 ( S A ) f o a n m e m o r yi n s t a l l e d i n t o t h V I C . L i n e 6 3 0 0 2 c a l c u l a t e s t h l i n e n u m b e r ( L N )o y o u r p r o g r a m . L i n e 6 3 0 0 3 s e t s y o u r s c r e e n u t p e r f o r m t h t a s k s n e e d e d t l i s t t h l i n e , t h e n c o n t i n u e s t h e p r o g r a m . I i w r i t t e n i w h i t e s y o w o n ' t s e t h c o m m a n d s a n k e e p s t h s c r e e n u n c l u t t e r e d f o r e v i e w i n g t h l i s t e d l i n e .

O n c e " l i s t 7 ' h a b e e n i n i t i a t e d i p r o g r a m , t h p r o g r a mw i l l e n d . T h i s i w h e r e t h k e y b o a r d b u f f e r c o m m a n d s i l i n e6 3 0 0 4 b o t h c o n t r o l t h l i s t a n t h e n c o n t i n u e t h p r o g r a m w i t ht h " g t o 6 3 0 1 0 c o m m a n d . L i n e s 6 3 0 1 0 - 6 3 0 3 0 l e y o r e v i e w t h l i n e j u s t l i s t e d a n w a i t f o y o t p r e s s t h e k e t a d v a n c e t t h e n e x t l i n e o r t h e k e t b a c k u t t h p r e v i o u s l i n e s l i s t e d .L i n e 6 3 1 0 0 l o o k s f o t h e n e x t i B A S I C , w h i c h i n d i c a t e s t h e n o t h a t B A S I C l i n e , a n t h e n s e n d s y o b a c k t c a l c u l a t e t h e n e x tl i n e n u m b e r . L i n e 6 3 2 0 0 i t h r o u t i n e t h a t l o o k s f o t h e n o t h p r e v i o u s l i n e . Y o h a v e t e l i m i n a t e t h p o s s i b i l i t y o f i n d i n g ai t h a d d r e s s e s t h a t d e t e r m i n e t h l i n e n u m b e r b d i s a l l o w i n g

i e i t h e r o t h o s e t w a d d r e s s e s .

1 2

Page 132: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 132/284

O n o t h e r l i t t l e t r i c k w i l l l e y o a v o i d h a v i n g t t y p e i t h i sp r o g r a m a f t e r e a c h m a i n p r o g r a m h a b e e n e n t e r e d . F i n d t h e n o B A S I C b t y p i n g i n

C L R : P R I N T P E E K ( 4 5 ) , : P R I N T P E E K ( 4 6 )N o t y p e t h e f o l l o w i n g l i n e w h i c h m o v e s t h b e g i n n i n g o B A S I C t t w b y t e s l e s s t h a n t h e n o t h p r o g r a m ( e i t h e r n u l lo i n e e d e d t s t a r t l o a d i n g i n e p r o g r a m ) :

P O K E 4 3 P E E K ( 4 5 ) - 2 : P O K E 4 4 > P E E K ( 4 6 )N o l o a d i " + / - L I S T " p r o g r a m a n t h e n r e s e t t h B A S I Cp o i n t e r s a f o l l o w s :

U n e x p a n d e d P O K E 4 3 , 1 : P O K E 4 4 , 1 63 E x p a n d e r P O K E 4 3 , 1 : P O K E 4 4 , 48 o M o r e E x p a n d e r P O K E 4 3 , 1 : P O K E 4 4 , 1 8S t a r t e d i t i n g b t y p i n g i R U 6 3 0 0 0 . Y o w i l l b a b l e t

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

B i d i r e c t i o n a l S c r o l l i n g6 3 0 0 0 R E M * * + / L I S T * *6 3 0 0 1 S A = P E E K ( 4 4 ) * 2 5 6 + P E E K ( 4 3 ) - 16 3 0 0 2 L N = P E E K ( S A + 3 ) + P E E K ( S A + 4 ) * 2 5 66 3 0 0 3 P R I N T " { C L R } { W H T } G O T O 6 3 0 1 0 " : P R I N T " L

I S T " ; L N ;6 3 0 0 4 P O K E 6 3 1 , 1 9 : P O K E 6 3 2 , 1 7 : P O K E 6 3 3 , 3 1 : P O

K E 6 3 4 , 1 3 : P O K E 6 3 5 , 1 9 : P O K E 6 3 6 , 1 3 : P OK 1 9 8 , 6 : E N D

6 3 0 1 0 I P E E K ( 1 9 7 ) = 5 T H E N 6 3 1 0 0 : R E M T E S TF O " - " K E Y

6 3 0 2 0 I P E E K ( 1 9 7 ) = 6 1 T H E N 6 3 2 0 0 : R E M T E S TF O " + K E

6 3 0 3 0 G O T O 6 3 0 1 06 3 1 0 0 I P E E K ( S A + 5 ) < > 0 T H E N S A = S A + 1 : G O T O

6 3 1 0 06 3 1 1 0 S A = S A + 5 : G O T O 6 3 0 0 26 3 2 0 0 S A = S A - 1 : I F P E E K ( S A ) = 0 A N D P E E K ( S A - 4

) < > 0 A N P E E K ( S A - 3 ) < > 0 T H E N 6 3 0 0 26 3 2 1 0 G O T O 6 3 2 0 0

1 2

Page 133: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 133/284

M a r k N i g g e m a n nH a w o u l d y o l i k e t b a b l e t u s s i n g l e - k e y e n t r y f o 5 B A S I C c o m a n d s ? W i t h ' V I C w o r d " r u n n i n g i y o u r V I C , y o c a h o l d d o w n t h S H I F T k e a n h i t h l e t t e r " I I ' a n t h w o r d " L O A D " w i l l a p p e a r o s c r e e n . H o l d d a w n t h C O M M O D O R E k e a n h i " L a n " S A V E "w r i t e s i t s e l f o t h s c r e e n . E s p e c i a l l y h e l p f u l w h e n t y p i n g i t h o s e l o n gB A S I C p r o g r a m s , V I C w o r d i c l e v e r 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 tp u t s i t s e l f i n t o m e m o r y ( e x p a n d e d o n o t ) , p r o t e c t s i t s e l f f r o m i n t e r f e r e n c eb B A S I C , a n t h e n t e l l s y o h a t t u r n i o o o f w h e n e v e r y o u w a n t .

B e f o r e b u y i n g C o m m o d o r e V I C , u s e d m f a t h e r ' s P E f o m o s to m p r o g r a m m i n g w o r k . O n n i c e p r o g r a m m i n g a i t h a t h a a m d i s p o s a l w a C h a r l e s B r a n n o n ' s " K e y w o r d . " A f t e r t y p i n g i c o u p l e o l o n g p r o g r a m s o t h V I C , s e o u t m a k e r e v i s i o n o K e y w o r d f o t h V I

w a n o c o n t e n t w i t h o n l y 2 6 d e f i n e d k e y s . A f t e r a l l , t h V I h a s b o t h t h C O M M O D O R E k e a n t h S H I F T k e y . S o w h n o u s b o t h t g e t o t a l o 5 d e f i n e d k e y s ? T h i s w o u l d p r o v e t b d i f f i c u l t t a s k . T h o r i g i n a l K e y w o r d p r o g r a m r e l i e d o t h f a c tt h a t t h A S C I I c o d e v a l u e s o t h S H I F T e d l e t t e r s w e r e i n u m e r i co r d e r . O t h V I C , t h C O M M O D O R E k e y e d l e t t e r s a r n o i t h a t o r d e r . T h i s m a d e t h i n g s v e r y t o u g h .

A f t e r l o o k i n g a J i B u t t e r f i e l d ' s m e m o r y m a ( C O M P U T E l ' sF i r s t B o o k o V I C ) , n o t i c e d a c u r i o u s l i n k l o c a t e d a $ 0 2 8 F a n $ 0 2 9 0 , r e s p e c t i v e l y , t h a t t h o u g h t m i g h t h e l p . A f t e r s o m e f u r t h e re x a m i n a t i o n , f o u n d t h a t t h i s l i n k p o i n t s t r o u t i n e i R O t h a ts e t s u t h a p p r o p r i a t e k e y b o a r d l o o k u p t a b l e , d e p e n d i n g o w h e t h e r t h S H I F T , C O M M O D O R E , o C O N T R O L k e i b e i n gd e p r e s s e d . T h l i g h t s c a m e o a t h i s p o i n t . S i n c e t h i s r o u t i n e i R O i p a r t o t h i n t e r r u p t s c a n f o c l o c k u p d a t i n g , c u r s o r f l a s h ,a n k e y b o a r d h a n d l i n g , i i p o s s i b l e t r u " V I C w o r d " u s i n g t h i sl i n k a n a l s o t t a k e c a r e o t h p r o b l e m o t h C O M M O D O R E dl e t t e r s .

W h e n y o S Y t h O N / O F F a d d r e s s g i v e n b t h l o a d e r p r g r a m , V I C w o r d w i l l s e t t h l i n k a $ 0 2 8 F a n $ 0 2 9 0 t p o i n t t i t s c a n p o r t i o n . I n s c a n n i n g , V I C w o r d c h e c k s t s e i t h q u o t em o d e f l a g i s e t . T h i s i d o n e s t h a t y o c a s t i l l g e g r a p h i c s

1 2

Page 134: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 134/284

Page 135: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 135/284

2 5 P R I N T2 6 E N 2 7 D A T A2 8 D A T A2 9 D A T A3 0 D A T A3 1 D A T A3 2 D A T A3 3 D A T A3 4 D A T A3 5 D A T A3 6 D A T A3 7 D A T A3 8 D A T A

' O N / O F F : { 3 S P A C E S } S Y S { R V S } " ; B A S

1 2 0 , 1 7 3 , 1 4 3 , 2 2 0 1 , 3 2 0 8 , 1 2 1 6 9 , 2 2 0 , 1 4 1 , 1 4 2 1 6 9 , 2 3 5 , 1 4 1 , 1 4 4 ,8 8 9 6 1 6 9 , 3 2 1 4 1 , 1 4 32 1 6 9 , 0 1 4 1 , 1 4 4 ,8 8 9 6 1 6 5 , 2 1 2 , 2 0 8 , 1 1 71 7 3 , 1 4 1 , 2 2 0 1 , 3 1 7 1 1 0 , 2 0 1 , 0 2 4 0 , 1 0 6 , 1 6 1 5 9 , 1 3 3 , 2 4 5 , 1 6 9 , 2 3 6 , 1 3 2 4 6 , 1 6 5 , 2 1 5 , 2 0 1 , 1 9 3 , 1 4 9 5 2 0 1 , 2 1 9 , 1 7 6 , 9 1 , 5 62 3 3 , 1 9 3 , 1 7 4 , 1 4 1 , 2 2 2

1 2

Page 136: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 136/284

3 9 D A T A 2 2 0 8 , 3 2 4 1 0 5 , 2 64 0 D A T A 1 7 0 , 1 8 9 , 1 5 9 , 0 1 6 2 ,4 1 D A T A 1 3 4 , 1 9 8 , 1 7 0 , 1 6 0 , 1 5 8 , 1 3 4 2 D A T A 3 4 1 6 0 , 1 9 2 , 1 3 2 , 3 5 1 6 4 3 D A T A 0 1 0 2 4 0 , 1 6 2 0 2 , 1 64 4 D A T A 1 2 2 3 0 , 3 4 2 0 8 , 2 2 3 4 5 D A T A 3 5 1 7 7 , 3 4 , 1 6 , 2 4 6 , 4 4 6 D A T A 2 4 1 , 2 0 0 , 1 7 7 , 3 4 4 8 1 4 7 D A T A 8 1 4 2 , 2 1 1 , 0 2 3 0 , 1 9 4 8 D A T A 1 6 6 , 1 9 8 , 1 5 7 , 1 1 9 , 2 1 7 4 9 D A T A 2 1 1 , 0 4 0 2 0 8 , 2 3 4 , 2 3 5 0 D A T A 1 9 8 , 1 6 6 , 1 9 8 , 4 1 1 2 7 , 1 5 75 1 D A T A 1 1 9 , 2 2 3 0 , 1 9 8 , 1 6 9 , 2 5 2 D A T A 1 4 1 , 1 1 9 , 2 7 6 2 2 0 , 2 3 5 3 D A T A 7 6 , 6 7 , 2 3 5 4 5 5 R E M * V I C W O R D T O K E N S F O S H I F T K E Y5 6 5 7 D A T A 1 5 3 , 1 7 5 , 1 9 9 , 1 3 5 , 1 6 1 , 1 2 5 8 D A T A 1 4 1 , 1 6 4 , 1 3 3 , 1 3 7 , 1 3 4 , 1 4 5 9 D A T A 2 0 2 , 1 8 1 , 1 5 9 , 1 5 1 , 1 6 3 , 2 0 16 0 D A T A 1 9 6 , 1 3 9 , 1 9 2 , 1 4 9 , 1 5 0 , 1 5 6 1 D A T A 1 9 1 , 1 3 6 2 6 3 R E * T O K E N S F O C O M M O D O R E K E Y6 4 6 5 D A T A 1 5 2 , 1 7 6 , 1 9 8 , 1 3 1 , 1 2 8 , 1 3 6 6 D A T A 1 4 2 , 1 6 9 , 1 3 2 , 1 4 5 , 1 4 0 , 1 4 6 7 D A T A 1 9 5 , 1 8 7 , 1 6 0 , 1 9 4 , 1 6 6 , 2 0 6 8 D A T A 1 9 7 , 1 6 7 , 1 8 6 , 1 5 7 , 1 6 5 , 1 8 6 9 D A T A 1 9 0 , 1 5 8 ,

1 2

Page 137: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 137/284

i • ■ • : ■ u r i . ■ ■ ' • ■ *

K a r l R B e a c hE d u c a t o r s , a d v e n t u r e g a m e w r i t e r s a n y o n e w h w a n t s t c r e a t e v i d e od i s p l a y s i B A S I C p r o g r a m w i l l f i n d t h i s a u t o m a t i c s c r e e n g e n e r a t o re a s y t u s a n r e a l t i m e s a v e r .

T h i s p r o g r a m a l l o w s y o t c o m p o s e p a g e o t e x t , t o c r e a t e t e x ta n i m a t i o n e x a c t l y a i w i l l l a t e r b s e e n o t h s c r e e n , o t c o s t r u c t a u d i e n c e i n t e r a c t i o n p r o g r a m s . T h s c r e e n d i s p l a y i t h e na u t o m a t i c a l l y c o n v e r t e d i n t o b u g - f r e e l i n e s o B A S I C t h a t c a n b ee n t e r e d i n t o m e m o r y a p a r t o t h p r o g r a m . W h e n t h p r o g r a mm e i r e a d y , t h c o r e i q u i c k l y d e l e t e d , a n t h r e m a i n i n g f i i s h e d p r o g r a m i S A V E d .

T h i s p r o g r a m s h o u l d b u s e f u l t e d u c a t o r s w h w i s h t p r p a r e i n t e r a c t i v e i n s t r u c t i o n a l p r o g r a m s a q u i c k l y a p o s s i b l e .O t h e r u s e s i n c l u d e w r i t i n g " V I C l e t t e r s ' ' t f r i e n d s , t r a i n i n g c h i ld r e n i w o r d p r o c e s s i n g , a n p r e p a r i n g t e x t f o r i n t e r a c t i v e a d v e nt u r e g a m e s .W r i t i n g t h T e x t B l o c kL e t ' s u s t h i s p r o g r a m t w r i t e a B A S I C p r o g r a m b l o c k b e g i n n i n ga l i n e 2 0 0 0 . Y o w i l l f i r s t b a s k e d t e n t e r s t a r t i n g l i n e n u m b e r( w h i c h c o u l d b a n n u m b e r b e t w e e n 1 0 0 0 a n 7 0 0 0 ) , a n t h e ny o w i l l b g r e e t e d w i t h a s c r e e n d i s p l a y t h a t r e p r e s e n t s b l a n kp a g e o t e x t . T h r e l i n e i t h e r i g h t - h a n d m a r g i n , w h i c h l i m i t st e x t - l i n e l e n g t h s t 2 c h a r a c t e r s .

A y o b e g i n t y p i n g , y o u ' l l s e t h a t t h f i r s t l i n e o t e x t p a g ei i n d e n t e d t w s p a c e s . T a v o i d t h e i n d e n t a t i o n , p r e s s t h " c o rr e c t i o n k e y " t h l e f t a r r o w ( < - ) a n b e g i n t y p i n g f r o m t h l e f tm a r g i n . I y o m a k e m i s t a k e , y o c a c o r r e c t i b e f o r e e n t e r i n gt h t e x t l i n e b p r e s s i n g t h e " c o r r e c t i o n k e y " a n r e t y p i n g t h e t i r e l i n e . I y o d i s c o v e r m i s t a k e a f t e r e n t e r i n g t h t e x t l i n e , y o c a c o r r e c t i a t h e n o t h p a g e w h e n t h c o n v e r s i o n t B A S I Ci u n d e r w a y . I y o r u i n t o t h r i g h t m a r g i n w h i l e t y p i n g , y o m u s t p r e s s e i t h e r t h " c o r r e c t i o n k e y " o t h R E T U R N k e y .

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

1 2

Page 138: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 138/284

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

G e o r g e W a s h i n g t o nw a t h f i r s t P r e s id e n t o t h U n i t e dS t a t e s . W h a t w a h i w i f e ' s n a m e ?( 1 A l i c e( 2 M a r t h a( 3 M e l i s s a

A t h i s p o i n t , y o w i l l b p r o m p t e d t e n t e r a a n s w e r s t r i n g .T h m u l t i p l e - c h o i c e f o r m a t i t h q u i c k e s t a n m o s t p r o b l e m - f r e ef o u s w i t h c h i l d r e n , a l t h o u g h t h i s p r o g r a m c a b e a s i l y m o d if i e d t a c c o m m o d a t e n u m b e r o d i f f e r e n t a n s w e r f o r m a t s . I y o u r t e x t p a g e c o n s i s t s o f f e w e r t h a n n i n e t e x t l i n e s , y o n e e d t p r e s s t h B r i t i s h p o u n d s y m b o l £ i m m e d i a t e l y t t h l e f t o t h C L R / H O M E k e i o r d e r t t e r m i n a t e t h e p a g e .

Y o u r s c r e e n i i n s t a n t l y f i l l e d w i t h w h a t a p p e a r s t b a p a r to B A S I C p r o g r a m l i s t i n g b e g i n n i n g a l i n e 2 0 0 0 a n c o n t a i n i n gt h t e x t y o j u s t t y p e d . I y o h a v e n t e x t l i n e e r r o r s t c o r r e c t ,p r e s s t h H O M E k e y . I y o h a v e e r r o r s , d r i v e t h e c u r s o r t t h t o o t h s c r e e n u s i n g t h e c u r s o r c o n t r o l k e y s a n c o r r e c t y o u re r r o r s o t h e w a y . N o p r e s s t h R E T U R N k e u n t i l a l t h p r g r a m l i n e s h a v e b e e n e n t e r e d . N o t e t h l a s t l i n e n u m b e r u s e d i t h i s s e q u e n c e ; t h e n t y p e i R U a g a i n a n b e g i n t h e p r o c e s sa n e w , u s i n g h i g h e r s t a r t i n g l i n e n u m b e r .

A d d i n g A n i m a t i o nI y o w a n t t e x t a n i m a t i o n , f i r s t t y p e i u t t h r e e l i n e s o s t a t i ct e x t a y o d i p r e v i o u s l y . A f t e r y o u ' v e e n t e r e d t h e f i n a l l i n e o s t a t i c t e x t , p r e s s t h e u a r r o w b e t w e e n t h a s t e r i s k a n t h R E S T O R E k e y . Y o u ' l l f i r s t b p r o m p t e d t e n t e r c o l o r f o t h a n m a t e d t e x t l i n e s ( d e f a u l t w i l l b b l a c k , a a r t h s t a t i c t e x t l i n e s ) ,a n t h e n y o u ' l l s e t h f i r s t i s e r i e s o f o u r i n p u t p r o m p t s t h a th a v e b e e n " b e n t " t a l l o w y o t t y p e f r o m t h l e f t m a r g i n . R m e m b e r n o t e x c e e d 2 c h a r a c t e r s i a a n i m a t e d t e x t l i n e . I t h i s m o d e , t h t e x t l i n e s c a n n o t i n c l u d e c o m m a s o c o l o n s . W h e ny o a r s a t i s f i e d w i t h e a c h a n i m a t e d t e x t l i n e , p r e s s t h R E T U R Nk e y . H e r e i a e x a m p l e :

1 3

Page 139: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 139/284

C o m p u t e r sc a n h e l p

s t u d e n t sl e a r n !

T h d o t s i e a c h a n i m a t e d t e x t l i n e a r u s e d t m a i n t a i n" s p a c e " w i t h i n t h s t r i n g i w h i c h e a c h l i n e i s t o r e d . T h t i m ed e l a y f o t h i s a n i m a t i o n i s e a l i n e 8 5 a n s h o u l d b a d j u s t e dt f i t h e r e a d i n g l e v e l o y o u r u s e r s . F O R / N E X T t i m e d e l a y c a b i n s e r t e d b e t w e e n t h s t a t i c a n a n i m a t e d t e x t l i n e s a n a l s oc o u l d b u s e d t e m p h a s i z e a i m p o r t a n t p o i n t r e p e a t e d l y . U s c o l o r a n c u r s o r c o n t r o l s c a r e f u l l y t i n s u r e t h e f f e c t y o w a n t .

W h e n y o a r o u o m e m o r y o w h e n y o h a v e f i n i s h e dw r i t i n g t e x t - p a g e s , d e l e t e t h e c o r e o t h i s p r o g r a m b y t y p i n g R U 7 0 T h e n , w h e n p r o m p t e d , e n t e r t h n u m b e r o n e . N u m b e r s 1 - 2 0w i l l s c r o l l o n t o t h l e f t s i d e o t h s c r e e n . P r e s s t h e c u r s o r H O M Ek e a n g e n t l y t a p t h e R E T U R N k e 2 t i m e s . s e c o n d R U 7 w i l l a l l o w y o t q u i c k l y d e l e t e l i n e s 2 1 - 4 0 , t h i r d d e l e t e s l i n e s4 1 - 6 0 , a n a f o u r t h d e l e t e s t h d e l e t i o n p r o g r a m b l o c k .

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

9 0 0 0 I N P U T Q 9 0 0 5 P R I N T { C L E A R } " : F O R = T 2 0

P R I N T Q 9 : Q 9 = Q + 1 : N E X T I r E N DT h i s i e s p e c i a l l y u s e f u l i y o r e n u m b e r p r o g r a m b l o c k a n w i s h t d e l e t e t h " o l d " b l o c k .

T h l a s t s t e p b e f o r e S A V E i n g y o u r p r o g r a m i t d e l e t e l i n e7 0 0 0 . T h i s l i n e i " s a f e t y n e t " t h a t a l l o w s y o t R U p o r t i o n s o t h p r o g r a m y o a r w r i t i n g w i t h o u t t r i g g e r i n g t h L O A D c o m a n d u s e d i c h a i n i n g a l i n e 7 5 6 . I y o d o n ' t w i s h t c h a i n ,d o n ' t d e l e t e l i n e 7 0 0 0 .

P r o g r a m 1 A u t o - B A S I CP O K E 3 6 8 6 9 , 2 4 2 : P R I N T " { C L R } { B L U } { D O W N }{ R I G H T } A U T O - B A S I C "P O K E 3 6 8 7 9 , 2 7 : K 2 = 7 7 0 1 : K 3 = 3 8 4 2 1 : I N P U T "{ B L K } { 3 D O W N } { 3 R I G H T } B E G I N L I N E{ S H I F T - S P A C E } # " ; PP R I N T " { C L R } " : F O R I = 1 T O 2 3 : P O K E K 3 , 2 : P O K E K2 , 9 2 : K 2 = K 2 + 2 2 : K 3 = K 3 + 2 2 : N E X T IA $ = " P R I N T " : B $ = C H R $ ( 3 4 ) : Q $ = " { D O W N } " : L $ =" { R I G H T } "

1 3

Page 140: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 140/284

F O R Z = 1 T O 9I F Z = 1 T H E N P R I N T " { H O M E } { 2 S P A C E S } { R V S } +{ O F F } " ; : F $ = F $ + " { 2 R I G H T } " : G O T O 1 2

Y = L E N ( F $ ) + 1 : F O R I = 1 T O Y : P R I N T " { L E F T } " ; :N E X T I : P R I N T " { 2 D O W N } { R V S } + { O F F } " ;{ 1 S P A C E S }

Y = 0 : F $ = I I M1 G E T E $ : I F E $ = " " T H E N 1 21 I F E $ = C H R $ ( 9 5 ) T H E N Y = L E N ( F $ ) : F O R I = 1 T O Y :

P R I N T " { L E F T } " ; : N E X T I : F $ = " " : G O T O 1 21 I F E $ = C H R $ ( 1 3 ) T H E N E $ = I I M : P R I N T " { L E F T }

; : G O T O 2 31 I F E $ = C H R $ ( 9 4 ) T H E N E $ = " " : G O T O 5 01 I F E $ = C H R $ ( 9 2 ) T H E N E $ = " " 2 G O T O 4 01 F $ = F $ + E $ : P R I N T " { L E F T } " ; : P R I N T " { L E F T }

" ; E $ ; : P R I N T " { R V S } { O F F } I I ; { 7 S P A C E S }1 I F L E N ( F $ ) > 1 6 T H E N P O K E 3 6 8 7 8 , 1 5 : F O R I = 1 T O

1 0 : P O K E 3 6 8 7 5 , 2 2 5 : N E X T I : P O K E 3 6 8 7 8 , 0 : P OK E 3 6 8 7 5 , 0

1 I F L E N ( F $ ) < 2 1 T H E N 1 22 G E T E $ : I F E $ = C H R $ ( 1 3 ) T H E N 2 32 I F E $ = C H R $ ( 9 5 ) T H E N 1 32 G O T O 2 2 F 2 $ = S T R $ ( P ) + A $ + B $ + Q $ + F $ + B $2 I F Z = 1 T H E N Z $ = S T R $ ( P ) + A $ + B $ + " { B L K } " + F $ +

B 2 I F Z = 2 T H E N Y $ = F 2 $2 I F Z = 3 T H E N X $ = F 2 $2 I F Z = 4 T H E N W $ = F 2 $2 I F Z = 5 T H E N V $ = F 2 $2 I F Z = 6 T H E N U $ = F 2 $3 I F Z = 7 T H E N T $ = F 2 $3 I F Z = 8 T H E N S $ = F 2 §3 I F Z = 9 T H E N R $ = F 2 $3 P = P + 23 N E X T Z4 P R I N T " { H O M E } { 1 D O W N } l = P A G E 2 = = A N S W E R "4 G E T H $ : I F H $ = " " T H E N 4 14 P = P + 24 I F H $ = " 1 " T H E N M 3 $ = S T R $ ( P ) + " G O S U B 9 0 0 " : G O

T O 4 64 K 2 = 7 7 0 1 : F O R I = 1 T O 2 3 : P O K E K 2 , 3 2 : K 2 = K 2 + 2 2

: N E X T I : I N P U T " A N S W E R = " ; M 54 M 4 $ = S T R $ < P ) + " A $ = " + B $ + M 5 $ + B $ + " : G O S U B 8 2

5 4 P R I N T 1 1 { C L R } " : B = 04 P R I N T Z $ : P R I N T Y $ : P R I N T X $ : P R I N T W $4 P R I N T V ? : P R I N T U $ : P R I N T T ? : P R I N T S ?4 P R I N T R ? : P R I N T M 3 $ : P R I N T M 4 ? : E N D

1 3

Page 141: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 141/284

5 P R I N T " { C L R } " ; I N P U T " C O L O R 3 , 5 , 6 , 7 " ; B 95 I F B 9 = 3 T H E N C 9 $ = " { R E D } "5 I F B 9 = 5 T H E N C 9 $ = " { P U R } "5 I F B 9 = 6 T H E N C 9 $ = " { G R N } "5 I F B 9 = 7 T H E N C 9 $ = " { B L U } "5 C 6 $ = " : G O S U B 8 5 0 I I : E $ = " "5 I N P U T " { D O W N } { 2 L E F T } " ; U 2 $5 I N P U T " { D O W N } { 2 L E F T } " ; T 2 $5 I N P U T " { D O W N } { 2 L E F T } " ; S 2 $5 I N P U T " { D O W N } { 2 L E F T } " ; R 2 $6 I F C 9 $ = " " T H E N C 9 $ = " { B L K } "6 P = P + 2 : U $ = S T R $ ( P ) + " G O S U B 8 5 0 : " + A $ + B $ + "

{ D O W N } " + C 9 $ + U 2 $ + B $ + C 6 $6 P = P + 2 : T $ = S T R $ ( P ) + A $ + B $ + " { U P } " + C 9 $ + T 2 $

+ B $ + C 6 $6 P = P + 2 : S $ = S T R $ ( P ) + A $ + B $ + " { U P } " + C 9 $ + S 2 $

+ B $ + C 6 $6 P = P + 2 : R $ = S T R $ ( P ) + A $ + B $ + " { U P } " + C 9 $ + R 2 $

+ B $ + C 6 $6 G O T O 4 06 E N 7 I N P U T " 1 - 2 1 - 4 1 - 6 1 " ; A7 F O R I = 1 T O 2 07 P R I N T A7 A = A + 17 N E X T I7 E N 8 P O K E 3 6 8 6 9 , 2 4 2 : P R I N T " { C L R } W H A T ' S Y O U R

N A M E ? "8 I N P U T " { D O W N } " ; Z $9 Z $ = Z $ + " "9 P O K E 3 6 8 7 9 , 2 59 G O S U B 9 0 01 0 G O T O 1 0 0 07 5 P R I N T " { C L R } { G R N } P L E A S E W A I T W H I L E "7 5 P R I N T " { D O W N } _ I L O A D M O R E P A G E S "7 5 P R I N T " { D O W N } F R O M M Y C A S S E T T E ! "7 5 L O A D7 5 E N 8 2 P R I N T " { H O M E } { 2 0 D O W N } { P U R } { R V S } T Y P E

N U M B E R O A N S W E R 1 { O F F } "8 2 G E T B $ : I F B $ = " " T H E N 8 2 68 2 I F A $ < > B $ T H E N 8 3 58 2 P R I N T " { 3 U P } { B L K } C O R R E C T , " ; Z $ ; " 1 "8 2 G O S U B 8 9 08 3 F O R I = 1 T O 2 0 0 0 : N E X T I8 3 P R I N T " { C L R } " : R E T U R N8 3 P R I N T " { 3 U P } { B L K } T H E A N S W E R I " ; A $8 3 F O R I = 1 T O 2 0 0 0 : N E X T I

1 3

Page 142: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 142/284

r — ~ ] L > T \ r

8 4 P R I N T " { C L R } " : R E T U R N8 5 G O S U B 8 9 08 5 F O R I = 1 T O 1 0 0 0 : N E X T I8 6 R E T U R N8 9 P O K E 3 6 8 7 8 , 1 5 : F O R I = 1 T O 1 0 : P O K E 3 6 8 7 5 , 2 2

5 : N E X T I : P O K E 3 6 8 7 8 , 0 : P O K E 3 6 8 7 5 , 0 : R E T UR

9 0 P R I N T " { H O M E } { 2 0 D O W N } { R E D } { R V S } P R E S SK E F O N E P A G E { O F F } "

9 0 G E T O $ : I F O $ = " " T H E N 9 0 19 0 P R I N T " { C L R } { B L K } " : R E T U R N9 0 E N 1 0 0 0 R E 7 0 0 0 E N 7 0 0 5 G O T O 7 5 0

P r o g r a m 2 M a k e T h e s e C h a n g e s t P r o g r a mW h e n U s i n g 8 o 1 6 E x p a n d e rP O K E 3 6 8 6 9 , 1 9 4 : P R I N T " { C L R } { B L U } { D O W N }

{ R I G H T } A U T O B A S I C "P O K E 3 6 8 7 9 , 2 7 : K 2 = 4 1 1 7 : K 3 = 3 7 9 0 9 : I N P U T "

{ B L K } { 3 D O W N } { 3 R I G H T } B E G I N L I N E # " ; P4 K 2 = 4 1 1 7 : F O R 1 = T 2 3 : P O K E K 2 , 3 2 : K 2 = K 2

+ 2 2 : N E X T I : I N P U T " A N S W E R = " ; M 5 $8 P O K E 3 6 8 6 9 , 1 9 4 : P R I N T " { C L R } { D O W N } W H A T ' S

Y O U R N A M E ? "

1 3

Page 143: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 143/284

A m i h a i G l a z e r

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

Y o m i g h t n e e d t u s n u m e r i c k e y b o a r d o y o u r V I C . A i i s a l n u m e r a l s a r e s i t u a t e d o t h e t o p r o o t h k e y b o a r d i n s t e a do b e i n g c o n v e n i e n t l y a r r a n g e d i s q u a r e p a t t e r n w h i c h m a k e sd a t a e n t r y e a s y . T h i s p r o g r a m c r e a t e s j u s t s u c h k e y p a d i t h c e n t e r o t h k e y b o a r d , a s h o w n i t h f i g u r e . T h u s , f o e x a m p l e ,h i t t i n g t h s p a c e b a r w i l l b e q u i v a l e n t t o h i t t i n g 0 a n h i t t i n g t h

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

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

T y p e i t h p r o g r a m a n S A V E i f i r s t , t h e n R U i t T e n a b l et h n e i n t e r p r e t a t i o n o f t h k e y s , t y p e S Y 7 4 2 4 a n h i R T U R N . Y o n o h a v e n u m e r i c k e y p a d . T o r e t u r n t n o r m a lk e y b o a r d , j u s t h i t h R U a n R E S T O R E k e y s s i m u l t a n e o u s l y( a l t e r n a t i v e l y , y o c a e x e c u t e t h e s t a t e m e n t P O K E 6 5 5 , 2 2 0 :P O K E 6 5 6 , 2 3 5 ) . E x e c u t i n g S Y 7 4 2 4 w i l l b r i n g b a c k t h n u m e r i ck e y p a d .

Y o c a a l s o r e d e f i n e k e y s o y o u r o w c h o o s i n g . T y p e G O T O2 2 a n h i R E T U R N . N o e n t e r p a i r s o f k e y s : t h k e y o u w a n tc h a n g e d , a n t h e n i t n e m e a n i n g . T s t o p t h p r o g r a m , h i t h F k e y . T h u s , i y o w a n t t h k e l a b e l l e d t m e a n h i t h k e y , t h e n t h k e y , a n t h e n t h e F l k e y . T t u r n o t h e s e n e d e f i n i t i o n s , t y p e S Y 7 4 2 4 a n h i R E T U R N .

1 3

Page 144: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 144/284

W h a t ' s H a p p e n i n gT h p r o g r a m w o r k s a f o l l o w s . N o r m a l l y , d u r i n g i n t e r r u p t p r c e s s i n g , e v e r y s i x t i e t h o s e c o n d t h V I c a l l s t h d e c o d e l o g i cm a c h i n e l a n g u a g e p r o g r a m , w h o s e a d d r e s s ( $ E B D C ) i i t h j u m p v e c t o r i n l o c a t i o n s $ 0 2 8 F - $ 0 2 9 0 . O u m a c h i n e l a n g u a g e p r og r a m i l o c a t i o n s $ 1 D O O - $ 1 D 1 4 , h o w e v e r , s e n d s t h V I t a o t h e r m a c h i n e l a n g u a g e p r o g r a m w e V e p u i n l o c a t i o n s$ 1 D 1 5 - $ 1 D 2 4 .

T h i s p r o g r a m p i c k s u t h c o d e f o t h k e j u s t p r e s s e d ,g i v e n i l o c a t i o n $ C B . I t h e n i n d e x e s i n t o r e c o d e t a b l e ( b e g i nn i n g i l o c a t i o n $ 1 D 2 7 , d e c i m a l 7 4 6 3 ) , a n p u t s t h n e c o d e b a c ki n t o l o c a t i o n $ C B . P r o c e s s i n g c o n t i n u e s b j u m p i n g i n t o t h n o m a d e c o d e l o g i c p r o g r a m i R O M , w h i c h i a l o c a t i o n $ E B D C .

T h p r o g r a m ' s l i n e s 1 0 - 1 1 0 i n s e r t t h e s e t w m a c h i n e l a n g u a g ep r o g r a m s i n t o m e m o r y . L i n e s 1 2 0 - 1 4 0 i n i t i a l i z e t h r e c o d i n g t a b l e ,a n l i n e s 1 5 0 - 2 0 0 r e c o d e t h k e y s i t h f o r m s h o w n i t h f i g u r e .C u s t o m r e c o d i n g b t h u s e r i p r o v i d e d f o i l i n e s 2 2 0 - 3 3 0 . T h r e c o d i n g t a b l e i i n i t i a l i z e d i l i n e s 2 3 0 - 2 5 0 . C O a n C N g e t h k e t h a t i b e i n g r e d e f i n e d a n i t n e d e f i n i t i o n . T h c o d e s t h V I u s e s f o t h e s e k e y s a r o b t a i n e d f r o m l o c a t i o n 2 0 ( $ C B ) ; C a n C a r a s s i g n e d t h e s e v a l u e s . c o d e o 3 ( r e p r e s e n t i n g t h F k e y ) s t o p s t h p r o g r a m . T h a p p r o p r i a t e c h a n g e s i t h r e c o di n t a b l e , w h i c h w i l l b u s e d b 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 r p e r f o r m e d i l i n e s 3 1 0 - 3 2 0 .

N u m e r i c K e y p a d

1 3

Page 145: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 145/284

R e d e f i n e d K e y b o a i d1 R E M C H A N G E K E Y B O A R D2 P O K E 5 2 , 2 9 : P O K E 5 6 , 2 9 : C L R3 F O 1 = 7 4 2 4 T O 7 4 6 24 R E A D5 P O K E I , 6 N E X T7 R E M M A C H I N E L A N G .8 R E P R O G R A M9 D A T A 1 2 0 , 8 , 7 2 , 1 3 8 , 7 2 , 1 6 9 , 2 1 , 1 4 1 , 1 4 3 ,

2 , 1 6 9 , 2 9 , 1 4 1 , 1 4 4 , 2 , 1 0 4 , 1 7 0 , 1 0 41 0 D A T A 4 0 , 8 8 , 9 6 , 8 , 7 2 , 1 3 8 , 7 2 , 1 6 6 , 2 0 3 , 1 89 , 3 9 , 2 9 , 1 3 3 , 2 0 3 , 1 0 4 , 1 7 0 , 1 0 4 , 4 0

1 1 D A T A 7 6 , 2 2 0 , 2 3 51 2 F O 1 = T 6 1 3 P O K E 7 4 6 3 + 1 , 11 4 N E X T1 5 F O 1 = T 1 1 6 R E A D C O , C N1 7 P O K E 7 4 6 3 + C O , C N1 8 N E X T1 9 R E R E C O D E D K E Y S2 0 D A T A 3 2 , 6 0 , 2 7 , 0 , 3 5 , 5 6 , 2 8 , 1 , 4 2 , 5 7 , 1 9

, 2 , 4 3 , 5 8 , 1 0 , 3 , 5 0 , 5 9 , 1 1 , 42 1 E N 2 2 R E C U S T O M R E C O D E2 3 F O 1 = T 6 2 4 P O K E 7 4 6 3 + 1 , 12 5 N E X T2 6 P R I N T " I N P U T O L D , N E W "2 7 G E C O $ : I F C O $ = f l " T H E N 2 7 2 8 C O = P E E K ( 2 0 3 ) : I F C O = 3 9 T H E N S T O P2 8 P R I N T C O $ ; "2 9 G E C N $ : I C N $ = " " T H E N 2 9 3 0 C N = P E E K ( 2 0 3 )3 1 P R I N T C N 3 2 P O K E 7 4 6 3 + C O , C N3 3 G O T O 2 7

1 3

Page 146: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 146/284

S h e i l a T h o r n t o nI y o u ' v e e v e r u s e d t h V I C ' s d a t a f i l e f u n c t i o n s t d t a p e s a v e s a n l o a d so m a c h i n e l a n g u a g e , h e t a b l e s , o g r a p h i c s , y o u ' l l a p p r e c i a t e t h s p e e d ,e a s e , a n f l e x i b i l i t y w i t h w h i c h t h i s p r o g r a m , " D u m p / R e c o v e r " a c c o mp l i s h e s t h o s e t a s k s . Y o u ' l l a l s o l e a r n b i a b o u t u s i n g B A S I C ' S i n t e r n a lm a c h i n e l a n g u a g e r o u t i n e s .

T h i s p r o g r a m i b u i l t a r o u n d f o u r o t h K e r n a l r o u t i n e s , t h s e l f -c o n t a i n e d m a c h i n e l a n g u a g e s o f t w a r e m o d u l e s i V I C ' s o p e r a ti n s y s t e m w h i c h c a b a c c e s s e d t h r o u g h g r o u p o J M i s t r u c t i o n s l o c a t e d a t h t o o m e m o r y .T h e s e r o u t i n e s S E T L F S , S E T N A M , S A V E , a n L O A Da r s u b r o u t i n e s o t h S A V E a n L O A D f u n c t i o n s i B A S I C , b u c a b u s e d i n d i v i d u a l l y t s a v e a n s i z e m e m o r y b l o c k u t l c a t i o n 3 2 7 6 6 ( $ 7 F F E ) a n t L O A D t h S A V E d m a t t e r i n t o i t o r i g in a l p o s i t i o n o n e o n e .

T d i s c o u r a g e c a s u a l c o p y i n g o f t h e i r p r o p r i e t a r y s o f t w a r e ,C o m m o d o r e h a i n s e r t e d c o d e i t h S A V E r o u t i n e w h i c h a b o r t sa t t e m p t e d t a p e s a v e s a b o v e 3 2 7 6 6 ( $ 7 F F E h e x ) . H o w e v e r , V I o w n e r w h b o a s t s a 1 5 4 0 d i s k d r i v e h a i n f o r m e d m t h a t , c u r io u s l y , t h i s p r o h i b i t i o n d o e s n ' t e x t e n d t d i s k S j W E s .

" D u m p / R e c o v e r " ( P r o g r a m 1 c o m b i n e s 4 b y t e s o m a c h i n el a n g u a g e a n t e l i n e s o B A S I C t c o n n e c t y o t t h e K e r n a l r o t i n e s a n t a l l o w s p e c i f i c a t i o n o s t a r t a n d e n d a d d r e s s a n n a m ev i a I N P U T s t a t e m e n t .

U n d e r s t a n d i n g t h M e t h o dP r o g r a m i c o m m e n t e d d i s a s s e m b l y o t h m a c h i n e l a n g u a g et h a t D u m p / R e c o v e r m u s t P O K E i n t o m e m o r y . I n t h e f i r s t f o u r i s t r u c t i o n s , t h l o g i c a l f i l e n u m b e r , d e v i c e , a n s e c o n d a r y a d d r e s sa r s e l e c t e d , a n t h e n t h S E T L F S r o u t i n e w h i c h m a k e s i a l h a p e i c a l l e d . T h s e c o n d f o u r i n s t r u c t i o n s s p e c i f y t h e l e n g t h o t h f i l e n a m e a n i t l o c a t i o n i n m e m o r y , a n t h e n j u m p t S E T N A M ,w h i c h w i l l e x p e c t t f i n d t h f i l e n a m e i m m e d i a t e l y a b o v e

1 3

Page 147: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 147/284

t h e n o t h a r r a y v a r i a b l e s ( a p o i n t e d t b z e r o - p a g el o c a t i o n s 4 a n 5 0 a n t h n a m e l e n g t h a a d d r e s s 0

A t h i s p o i n t , t h S A V E o L O A D r o u t i n e s c a n b e c a l l e d , b u t h u s u a l t a p e m e s s a g e s ( o t h e r t h a n t h P R E S S . . . i n s t r u c t i o n s )w i l l n o b d i s p l a y e d . S o m e s l e u t h i n g i n s i d e V I C s o p e r a t i n g s y t e d i s c l o s e d t h a t S A V E a n L O A D r e q u i r e t h a t b i s e v e n a a d r e s s 1 5 7 ( $ 9 D ) b s e f o t h m e s s a g e s t b p r i n t e d . T h t w i s t r u c t i o n s f o l l o w i n g t h e j u m p t S E T N A M a c c o m p l i s h t h i s .

W h i l e t h e s e m e s s a g e s a r n o r e q u i r e d f o s u c c e s s f u l S j W Eo L O A D , f i n d i c o m f o r t i n g t s e t h a t V I i i n d e e d S A V I N G /S E A R C H I N G F O R / L O A D I N G t h f i l e I ' v e s p e c i f i e d . T h i s f e e d -

" O P C O D E T A B E L " w h i l e I ' v e e x c u s e d m y s e l f t m a k e t e a . U n f o rt u n a t e l y , w a s n ' t a b l e t f i n d h o t t u r n o t h " ? L O A DE R R O R " m e s s a g e , s t h i s i h a n d l e d i B A S I C .

A f t e r c o m p l e t i n g t h e s e p r e p a r a t o r y r o u t i n e s , t h p r o g r a m r t u r n s t B A S I C , w h i c h c h e c k s w h e t h e r s a v e o l o a d h a b e e nc h o s e n a n j u m p s t t h e a p p r o p r i a t e a d d r e s s . L O A D w i l l l o o k a a d d r e s s e s 2 5 a n 2 5 ( $ F B , $ F C ) t f i n d t h s t a r t a d d r e s s , a n S A V E w i l l a d d i t i o n a l l y u s 2 5 a n 2 5 f o t h e n a d d r e s s .

S i n c e D u m p / R e c o v e r ' s p u r p o s e i t S j W E a n L O A D a n p e r m i t t e d s e c t i o n o m e m o r y , d e c i d e d t h a t t h s a f e s t p l a c e t p u t h m a c h i n e l a n g u a g e w a i t h B A S I C i n p u t b u f f e r ( 5 1 2 t 6 0 $ 0 2 0 0 - $ 0 2 5 8 ) , m a k i n g i n e c e s s a r y t r e - P O K E t h i n s t r u ct i o n s e v e r y t i m e t h p r o g r a m i r u n . W h i l e t h i s d o u b l e s t h p e m a n e n t p r o g r a m l e n g t h ( t 4 8 b y t e s ) , i d o e s a d f l e x i b i l i t y .

R e t u r n i n g t P r o g r a m 1 y o c a s e t h a t D u m p / R e c o v e r ' sf i r s t j o i t a c c e p t t h s t a r t a n d e n d a d d r e s s e s ( i d e c i m a l ) a n t h f i l e n a m e , s o t h e i n p u t b u f f e r c a n b e f r e e d u f o t h m a c h i n el a n g u a g e . T h e n a d d r e s s e n t e r e d f o a s a v e m u s t b o n h i g h e rt h a n t h a t o f t h l a s t b y t e t b s a v e d . F o l o a d , m u s t b e n t e r e da t h e n a d d r e s s .

L i n e 1 0 0 3 p l a c e s t h n a m e l e n g t h i n l o c a t i o n a n t u r n s t h e n d - o f - a r r a y s p o i n t e r , p l u s t h n a m e l e n g t h , i n t o d e c i m a l n u b e r . B e c a u s e a l o t h p r o g r a m ' s v a r i a b l e s m u s t b s e u b e f o r et h l a t t e r s t e p i t a k e n , i s f i r s t s e e q u a l t 1 I l i n e 1 0 0 4 , t h p r o g r a m p u t s t h f i l e n a m e a b o v e t h B A S I C v a r i a b l e s , j u m p s t t h S E T L F S a n S E T N A M r o u t i n e s , P O K E s t h s t a r t a d d r e s sp o i n t e r , a n t e s t s w h e t h e r d u m p o r e c o v e r y h a b e e n s e l e c t e d .I d u m p , l i n e 1 0 0 5 p l a c e s t h e n a d d r e s s i m e m o r y , j u m p s t t h e a p p r o p r i a t e a d d r e s s , a n e n d s t h p r o g r a m .

1 3

Page 148: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 148/284

S i n c e s i d e e f f e c t o t h L O A D r o u t i n e i t h a t t h n u m e r i ca n a r r a y v a r i a b l e p o i n t e r s a r s e t t h e n a d d r e s s o t h l o a d e d m a t e r i a l , l i n e 1 0 0 6 s a v e s t h p o i n t e r s i t h i n p u t b u f f e rb e f o r e L O A D i c a l l e d a n r e s t o r e s t h e m a f t e r w a r d . L i n e 1 0 0 7c h e c k s t h I / S T A T U S w o r d a n p r i n t s l o a d e r r o r m e s s a g e i S T A T U S r e p o r t s e i t h e r a u n r e c o v e r a b l e l o a d e r r o r o a n m i s m a t c h .

I t h E N s t a t e m e n t s i l i n e s 1 0 0 5 a n 1 0 0 8 a r c h a n g e d t R E T U R N S , D u m p / R e c o v e r c a b u s e d a a s u b r o u t i n e ; b u d o n ' tf o r g e t t h a t , w h i l e R U r e s t o r e s t h D A I A p o i n t e r , G O S U B d o e sn o t . h a v e f a s h i o n e d s h o r t , u n i q u e v e r s i o n s o D u m p / R e c o v e r t i n c l u d e i p r o g r a m s w h i c h n e e d t l o a d i b i n a r y d a t a a n t p r e f a c e f r e q u e n t l y u s e d m a c h i n e l a n g u a g e t a p e s s t h e y w i l l l o a di w i t h o u t m a k i n g B A S I C f o r g e t w h e r e i t ' s p u i t v a r i a b l e s .

M a t e r i a l s a v e d w i t h D u m p / R e c o v e r c a n b e v e r i f i e d f r o mB A S I C u s i n g t h f o r m a t , V E R I F Y " F I L E N A M E " , 1 , 1 . B A S I C w i l la l s o l o a d t h e s e t a p e s , b u t h a d j u s t m e n t m a d e t t h v a r i a b l ep o i n t e r s m a m a k e i n e c e s s a r y t e x e c u t e N E a f t e r t h l o a d .Y o u ' l l o f t e n f i n d i n e c e s s a r y t p r o t e c t t h l o a d e d f i l e f r o m B A S I Cb l o w e r i n g t h s t r i n g a n e n d - o f - m e m o r y p o i n t e r s .

T h K e r n a l r o u t i n e s a r p r e t t y t h o r o u g h l y d o c u m e n t e d i t h P r o g r a m m e r ' s R e f e r e n c e G u i d e ( p p . 1 8 2 - 2 1 1 ) , b u I ' l i k e t s h a r e w i t hy o s o m e o m i s s i o n s a n e r r o r s d i s c o v e r e d t h e r e w h i l e w r i t i n gt h i s p r o g r a m . F i r s t , t h G u i d e n e g l e c t s t s a w h a t t h v a l i ds e c o n d a r y a d d r e s s e s a r f o t h S A V E f u n c t i o n . w a s n ' t s u r p r i s e dt d i s c o v e r t h a t t h e y a r t h s a m e a u s e d i B A S I C :

= R e l o c a t a b l e s a v e= N o n r e l o c a t a b l e s a v e= R e l o c a t a b l e s a v e w i t h e n d - o f - t a p e m a r k e r= N o n r e l o c a t a b l e s a v e w i t h E - O - T m a r k e r

T h d i s c u s s i o n o t h S E T L F S r o u t i n e i n d i c a t e s t h a t 2 5 ( $ F F )s h o u l d b u s e d i n s e c o n d a r y a d d r e s s i d e s i r e d . W h i l e t h i s m a b t r u e f o o t h e r I / o p e r a t i o n s , 2 5 f u n c t i o n s e x a c t l y l i k e f o a t a p e s a v e . T h G u i d e a l s o g i v e s i n c o r r e c t s e c o n d a r y a d d r e s s e sf o l o a d . I f a c t , w i l l p e r m i t r e l o c a t i n g l o a d , a n w i l l i e s c a p a b l y s e n d t h f i l e b a c k t i t o r i g i n .

W i t h j u s t f e b y t e s o s i m p l e " s t r a i g h t l i n e " c o d e , e v e n i n e xp e r i e n c e d 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 c a t a s i g n i f i c a n tp r o g r a m m i n g p o w e r a n s p e e d f r o m t h 3 6 K e r n a l r o u t i n e s .

1 4

Page 149: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 149/284

P r o g r a m 1 D u m p / R e c o v e r9 9 R E " D U M P / R E C O V E R " F O R V I C - 2 01 0 0 0 P R I N T " S T A R T , E N D , N A M E " : I N P U T V , W , V $ : R =

5 4 0 : F O R J = 1 T O 4 3 : R E A D T : P O K E R + J + 5 , T : N EX T : G O T O 1 0 0 3

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

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

1 0 0 3 T = L E N ( V $ ) : P O K E 0 , T : U = 1 : S = 2 5 6 * P E E K ( 5 0 )+ P E E K ( 4 9 ) + T

1 0 0 4 F O R J = 1 T O T : P O K E S - J , A S C ( R I G H T $ ( V $ , J ) ) :N E X T : S Y S 5 4 6 : U = V : T = 2 5 2 : G O S U B 1 0 0 9 : I F W= 0 T H E N 1 0 0 6

1 0 0 5 U = W : T = 2 5 4 : G O S U B 1 0 0 9 : S Y S 5 7 9 : E N D1 0 0 6 F O R J = 0 T O 5 : P O K E R + J , P E E K ( 4 5 + J ) : N E X T : S Y

S 5 6 9 : F O R J = 0 T O 5 : P O K E 4 5 + J , P E E K ( R + J ) : NE X

1 0 0 7 I F S T A T U S A N D 4 8 T H E N P R I N T : P R I N T " ? L O A D " :P R I N T " E R R O R "1 0 0 8 E N 1 0 0 9 P O K E T , I N T ( U / 2 5 6 ) : P O K E T - 1 , U - 2 5 6 * P E E K (

T ) : R E T U R N

P r o g r a m 2 M a c h i n e L a n g u a g e S u b r o u t i n e s f o D u m p / R e c o v e r

; S E T F I L E N O ; S E T D E V I C E N O . ( T A P E ); S E T P E C . A D D R .

( R E L O C A T A B L E ); C A L L S E T L F S; G N A M E L E N G T H; G E T N A M E S T A R T A D D R . L 7 G E T N A M E S T A R T A D D R . H 7 C A L L S E T N A M

7 T U R N O N T A P E M E S S A G E SS E L O A D F U N C T I O NG E L O A D S T A R T P N T . L

7 G E T L O A D S T A R T P N T . H C A L L L O A DS E T S A V E S T A R T P N T .O F F S E T

0 2 2 20 2 2 40 2 2 60 2 2 80 2 2 B0 2 2 D0 2 2 F0 2 3 10 2 3 40 2 3 60 2 3 80 2 3 90 2 3 B0 2 3 D0 2 3 F0 2 4 20 2 4 3

A A A 2 A A A 2 A 8 6 A A A 2 6 A

L D L D L D

J S L D L D L D J S L D S T R T L D L D L D J S R T L D

# 0 # 0 # 0 F F B A0 3 3 F F B D# 8 9 # 0 F F F F D 5# F

1 4

Page 150: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 150/284

\ m i m $ m \

0 2 4 50 2 4 70 2 4 90 2 4 C

A A 2 6

L D L D J S R T

F F F F D 8

; G E T; G E T

C A L LS A V ES A V E

S A V EE N E N

P N T .P N T o L H

1 4

Page 151: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 151/284

L o u i s F S a n d e rI y o p r o g r a m i B A S I C , y o u ' d s o m e t i m e s l i k e t d e l e t e c e r t a i np r o g r a m l i n e s a f t e r t h e y ' v e b e e n e x e c u t e d , e i t h e r t p r o t e c t y o u rp r o g r a m f r o m p i r a c y o t f r e e u m e m o r y f o t h r e s t o t h p r g r a m t u s e . T h l i n e s t h a t p r i n t y o u r o n - s c r e e n i n s t r u c t i o n s , f o e x a m p l e , a r g o o d c a n d i d a t e s f o d e l e t i o n a s s o o n a t h e y ' v e b e e nr u n . H a v i n g s e r v e d t h e i r p u r p o s e , t h e y d n o t h i n g b u t a k e u s p a c e , w h i c h c a r e a l l y b a p r e m i u m i s m a l l - m e m o r ym a c h i n e s l i k e t h V I C .

I w o u l d b r e a l h e l p i t h e r e w e r e a e a s y w a t d e l e t es u c h l i n e s u n d e r p r o g r a m c o n t r o l . W e l l , n o t h e r e i s o n e : " E l e ct r i c E r a s e r " i t w o - l i n e r o u t i n e t h a t d e l e t e s i t s e l f a n a l s u b s eq u e n t l i n e s a s o o n a i t ' s c a l l e d .

L i n e s 2 1 a n 2 2 i t h a c c o m p a n y i n g p r o g r a m a r t h E l e ct r i c E r a s e r . L i n e 3 0 0 a c t i v a t e s t h E r a s e r . T h e r e i n o t h i n g s p e c i a la b o u t t h i s c h o i c e o l i n e n u m b e r s , a n t h e t h r e e l i n e s c a b r n u m b e r e d a w i l l w h e n y o u s t h e m i o t h e r p r o g r a m s . T h e yc o n s u m e j u s t o v e r 1 0 0 b y t e s o m e m o r y .

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

T h e r e ' s n n e e d t b y p a s s t h E r a s e r , s i n c e i h a n m e a n i n gf u e f f e c t u n t i l i t ' s a c t i v a t e d . W h e n i t ' s t i m e f o t h E l e c t r i c E r a s e rt d i t w o r k , e x e c u t e t h a c t i v a t o r l i n e . T h i s w i l l c l e a r a l v a r ia b l e s a n m a k e t h e E r a s e r a n e v e r y t h i n g a f t e r i d i s a p p e a r f r o mt h p r o g r a m . Y o c a n , i y o l i k e , r e p l a c e t h E N i t h e E r a s e rw i t h a n o t h e r s t a t e m e n t , a n i w i l l b e x e c u t e d a f t e r i i d e l e t e d .I y o l e a v e o u t h E N a l t o g e t h e r , t h s u b s e q u e n t l i n e s m a b e x e c u t e d , d e p e n d i n g o w h a t ' s i t h e m , o y o u r p r o g r a m m a c r a s h .W a t c h I W o r kR i g h t n o w , l e t ' s s e t h E l e c t r i c E r a s e r a w o r k . T y p e i t h d e m o

1 4

Page 152: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 152/284

p r o g r a m a n S J W E i t D o n ' t R U i f i r s t t c h e c k y o u r w o r k , o y o u ' l l h a v e t t y p e i i a g a i n ! L I S T t h p r o g r a m a n c a r e f u l l yc h e c k l i n e s 2 1 0 , 2 2 0 , a n 3 0 f o e r r o r s . N o R U t h p r o g r a m ,a n s e f o y o u r s e l f t h a t a l i t l i n e s a r a c t u a l l y e x e c u t e d , w h i c hs h o u l d b o b v i o u s f r o m t h t e x t t h a t p r i n t s o t h s c r e e n . R U t h p r o g r a m a g a i n , a n y o u ' l l s e t h a t l i n e s 2 1 a n u d n o e x c u t e t h i s t i m e , a n t h a t y o n o h a v e s e v e r a l h u n d r e d m o r e b y t e so f r e e m e m o r y . L I S T t h p r o g r a m t v e r i f y t h a t l i n e s 2 1 0 - 3 0 0 a r n l o n g e r t h e r e . T h e y h a v e b e e n e l e c t r i c a l l y e r a s e d . Y o c o u l d s a t h a t t h e s e l i n e s w e r e e x e c u t e d , t h e n t h e y w e r e e x e c u t e d . O m a b t h e y w e r e j u s t R U t d e a t h . A n y w a y , t h e y a r g o n e w i t h o u tt r a c e , r e p l a c e d b u s a b l e m e m o r y .E r a s e r ' s S e c r e tH e r e i w h e r e t h e y w e n t . T h f i r s t t w P E E K s i l i n e 2 1 a r t h k e y s t E l e c t r i c E r a s e r ' s s u c c e s s . T h e s e l o c a t i o n s c o n t a i n a p o i n t e rt t h s t a r t o t h l i n e c u r r e n t l y b e i n g e x e c u t e d . W h e n a c t i v a t e d ,t h e E r a s e r P O K E s z e r o s i n t o t h l i n k f o r t h a t l i n e a n d , u s i n g t h U S v e c t o r a t e m p o r a r y s t o r a g e a r e a , s e t s t h S t a r t o V a r i a b l e sp o i n t e r t t h l o c a t i o n j u s t a b o v e t h a t . A r e s u l t , B A S I C t h i n k st h p r o g r a m e n d s w i t h t h l a s t l i n e b e f o r e t h E r a s e r , w h i c h o c o u r s e i n o d o e s . I f a l l t h i s i o v e r y o u r h e a d , t h S y s t e m O v e rv i e w c h a p t e r o T h e V I C - 2 0 P r o g r a m m e r ' s R e f e r e n c e G u i d e h o l d s t h k e y s t u n d e r s t a n d i n g . I y o d o n ' t c a r e a b o u t s u c h m a t t e r s , d o n ' tw o r r y y o c a u s t h E l e c t r i c E r a s e r w i t h o u t u n d e r s t a n d i n gh o a n w h i w o r k s .

N o y o u ' v e s e e n t h E l e c t r i c E r a s e r i a l i t s i m p l e s p l e n d o r ,a n m a y b e y o u ' v e b e e n i m p r e s s e d . I s o y o u r n e x t s t e p i t a d i t y o u r b a o p r o g r a m m i n g t r i c k s , a n t m a k e e q u a l l y i m p r e ss i v e u s o i t p o w e r f u l e r a s a t o r i a l p u n c h . Y o c o u l d e x e r c i s e y o u rt a l e n t s o t h d e m o p r o g r a m , b r e p l a c i n g t h e E N i l i n e 2 2 w i t h R U N .

E l e c t r i c E r a s e r1 0 P R I N T " t D O W N } F R E ( 0 ) = " ; F R E ( 0 )1 1 P R I N T " { D O W N } W H E R E I T H R E S T O T H I Si

1 2 P R I N T " L I T T L E P R O G R A M ? "^ 2 0 0 R E * E R A S E R F O T H V I C :| p P E E K J t 6 1 ) + 2 5 6 * P E E K ( 6 2 ) + 3 : P O K S 2 , I N T | A

■ ■ F 0 ! 0 J ^ 0 m r i t P O m k ^ T , i P 0 K E 4 5 I

1 4

Page 153: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 153/284

2 3 P R I N T " { D O W N } I F Y O U L I S T I T Y O W O N ' Tt

2 4 P R I N T " F I N D I T I Y O R U I O N C E "2 5 P R I N T " M O R E . Y O U ' L L S E T H A T Y O U "2 6 P R I N T " H A V E G A I N E D S O M E M E M O R Y . "2 7 P R I N T " { D O W N } T H E E L E C T R I C E R A S E R I S 2 8 P R I N T " P O W E R F U L M E D I C I N E I 3 0 E R = 1 : G O T O 2 1 0 : R E M * A C T I V A T O R

1 4

Page 154: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 154/284

Page 155: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 155/284

- ■ ■ . : ■ ■ : ■ . ■ ■ , ■ . ^ v ? % ^ S l

: v ; ^ # M

? . 0 . ■ ' 3 l } ' i | l

. ■ ■ - . ■ ■ ■ ' ' ■ " & ■ ' ■ . ■ ■

?

Page 156: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 156/284

Page 157: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 157/284

J i B u t t e r f i e l dB u t t e r f i e l d o f f e r s a s i m p l e p r o g r a m t r e a d t h j o y s t i c k . B s t u d y i n g h i e x a m p l e , y o c a l e a r n t u s j o y s t i c k s i y o u r p r o g r a m .

T h e r e i m u c h t b g a i n e d b k n o w i n g a l y o c a a b o u t t h w o r k i n g o t h j o y s t i c k o y o u r V I a n h o i a f f e c t s y o u r c o p u t e r . T r t h i s . H o l d t h j o y s t i c k o v e r t t h r i g h t , a n w h i l ey o u ' r e h o l d i n g i t p r e s s t h V I n u m b e r k e y s . Y o u ' l l s e t h a t t h o d n u m b e r s a p p e a r c o r r e c t l y o t h s c r e e n , b u t h e v e n d i g i t sa r e i t h e r m i s s i n g o b u t c h e r e d . A s o o n a y o r e l e a s e t h j o s t i c k , t h k e y b o a r d a c t i o n r e t u r n s t n o r m a l .

W h a t ' s g o i n g o n I n t h e i n t e r e s t s o e c o n o m y , C o m m o d o r eh a m a d e o n o t h k e y b o a r d l i n e s d " d o u b l e d u t y . " I t e s t s p a r to t h j o y s t i c k a n p e r f o r m s i t n o r m a l k e y b o a r d - c h e c k i n gf u n c t i o n s . T h i s i t w o - w a y i n t e r f e r e n c e . W e ' v e s e e n t h a t t h j o s t i c k c a i n t e r f e r e w i t h t h k e y b o a r d ; i n a d d i t i o n , t h k e y b o a r d -s e r v i c i n g r o u t i n e s c a m a k e i i m p o s s i b l e t c h e c k p a r t o t h j o s t i c k . T h r o u t i n e s w h i c h r e a d t h k e y b o a r d a r s p e c i a l t y p ec a l l e d " i n t e r r u p t " p r o g r a m s ; t h i s m a k e s t h e m h a r d t o c o n t r o l .

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

W m a s h u t d o w n p a r t o t h k e y b o a r d w i t h P O K E 3 7 1 5 4 , 1 2 7a n r e s t o r e i w i t h P O K E 3 7 1 5 4 , 2 5 5 . W n e e d t d t h i s o n l y t c h e c k t h R i g h t p o s i t i o n o t h j o y s t i c k , w h i c h i d o n e b l o o k i n ga ( P E E K ( 3 7 1 5 2 ) A N 1 2 8 ) .S o l v i n g t h C o l l i s i o nW h a t a r o u o p t i o n s ? F i r s t , i w h a v e p r o g r a m t h a t d o e s n ' tn e e d t h j o y s t i c k ' s R i g h t p o s i t i o n , w c a i g n o r e t h e w h o l eq u e s t i o n .

I w h a v e p r o g r a m t h a t d o e s n ' t n e e d t h k e y b o a r d , w c a s t a r t w i t h P O K E 3 7 1 5 4 , 1 2 7 a s o u f i r s t s t a t e m e n t a n r e s t o r e t h f u l l k e y b o a r d o n l y w h e n t h p r o g r a m e n d s . I w o n ' t m a t t e r t h a tt h k e y b o a r d i p a r t l y d i s a b l e d d u r i n g t h p r o g r a m r u n . I t h u s e r / p l a y e r s t o p s t h p r o g r a m r a t h e r t h a n a l l o w i n g i t e n n o r -

1 4

Page 158: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 158/284

Page 159: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 159/284

y o u r g a m e s a t u s d i a g o n a l s .I t ' s p o s s i b l e t w r i t e p r o g r a m s w h i c h " d e b o u n c e " t h j o y s t i c kt h a t i s i m u s t b r e t u r n e d t t h c e n t e r o r e s t p o s i t i o n b e f o r e

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

S i m p l e J o y s t i c k A l g o r i t h mO n o t h a n n o y i n g t h i n g s a b o u t j o y s t i c k t e s t i n g i t h a t t h e i n p u ti l o g i c a l l y i n v e r t e d : t h a p p r o p r i a t e i n p u t i z e r o w h e n a c t i v a t e d ,r a t h e r t h a n z e r o w h e n o f f . A l t h o u g h t h i n f o r m a t i o n i t h s a m ee i t h e r w a y , o u m i n d s d o n ' t l i k e i t I s e e m s m o r e s e n s i b l e t u t h a v e b i t s t u r n e d o w h e n t h j o y s t i c k i p u s h e d ; t h i s a l l o w s u t e x t r a c t c o m b i n a t i o n s o b i t s w i t h t h l o g i c a l A N f u n c t i o n .s i m p l e c o n v e r s i o n s t a t e m e n t w h i c h a l l o w s t h i s i s

= ( N O T P E E K ( 3 7 1 5 1 ) ) A N D 6 0 - ( ( P E E K ( 3 7 1 5 2 ) A N 1 2 8 ) = 0 D o n ' t f o r g e t t o P O K E 3 7 1 5 4 w i t h 1 2 7 b e f o r e d o i n g t h i s t e s t , o t h R i g h t p o s i t i o n w o n ' t b d e t e c t e d p r o p e r l y ; a n r e m e m b e r t P O K E 3 7 1 5 4 b a c k t 2 5 a f t e r t h t e s t .

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

W m a n o d e t e c t t h e v a r i o u s c o n t r o l p o s i t i o n s w i t h t h a p r o p r i a t e A N s t a t e m e n t s :F i r e B u t t o n — A N 3 L e f t X A N D 1 6D o w n X A N D 8U — X A N D 4R i g h t — X A N D 1

I e a c h c a s e , t h r e s u l t o t h A N w i l l b z e r o i t h i s p o s i t i o n i n o a c t i v e . C o m b i n a t i o n s c a n b e u s e d ; f o e x a m p l e , i w a r i n t e re s t e d i o n l y U a n D O W N a t h i s m o m e n t , w c o u l d c h e c kA N 1 2

W h e n c o d i n g t h i s , u s p a r e n t h e s e s l i b e r a l l y a r o u n d t h A N s t a t e m e n t s . F o e x a m p l e , t t e s t f o L e f t , c o d e : I ( A N 1 6 < > T H E N . I w o n ' t w o r k p r o p e r l y o t h e r w i s e .

F o m o t i o n , w c a e x t r a c t t h L e f t / R i g h t a n U p / D o w n c o mp o n e n t s w i t h c o d i n g s u c h a s

1 5

Page 160: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 160/284

= S G N ( X A N 1 ) - S G N ( X A N 1 6 = S G N ( X A N 8 ) - S G N ( X A N 4

T h i s p r o d u c e s v a l u e s f o a n a f o l l o w s : f o n m o t i o n i t h i s d i r e c t i o n ; + o - f o m o t i o n i t h e a p p r o p r i a t e d i r e c t i o n .P u t t i n g I A l T o g e t h e rT h f o l l o w i n g s i m p l e p r o g r a m g a t h e r s t o g e t h e r t h j o y s t i c k t e c hn i q u e s w h a v e d i s c u s s e d . I t ' s s i m p l e s k e t c h i n g p r o g r a m .

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

c o n t i n u o u s c o l o r c h a n g e .L i n e s 3 1 a n 3 2 c o m p u t e r e v e r s e v a l u e s o a n c o

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

L i n e s 3 3 t 3 5 a r e r a t h e r " g i m m i c k y " ; w f o r c e t h e c u r s o rr i g h t a n d d o w n , a n d t h e n c o u n t o u r w a b a c k t t h d e s i r e d p o s it i o n u s i n g c u r s o r - l e f t a n c u r s o r - u p c h a r a c t e r s . T h i n t e n t h e r e i t i l l u s t r a t e t h u s o t h a n d i r e c t i o n a l v a l u e s . Y o m a f i n d o t h e r w a y s t a c h i e v e t h s a m e o b j e c t i v e w h e n y o w r i t ey o u r o w p r o g r a m s .

T h p r o g r a m p r i n t s t h " b a l l " c h a r a c t e r , C H R $ ( 2 0 9 ) ; y o c a s w i t c h t a n o t h e r c h a r a c t e r b m a k i n g t h e a p p r o p r i a t e c h a n g e i l i n e 3 3 0 .

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

I y o w i s h t l e a r n m o r e a b o u t j o y s t i c k s , s u g g e s t y o r e a dD a v i d M a l m b e r g ' s a r t i c l e " U s i n g J o y s t i c k " i n C O M P U T E D F i r s tB o o k o V I a n f o m o r e f o r m a l d i s c u s s i o n y o m i g h t l o o k i t h V I C - 2 0 P r o g r a m m e r ' s R e f e r e n c e G u i d e .

J o y s t i c k S k e t c h i n g1 0 R E J O Y S T I C K P R O G R A M1 1 P R I N T C H R $ ( 1 4 7 ) ; C H R $ ( 1 4 2 ) : R E M C L E A R

S C R E E N1 2 D A T A 5 , 2 8 , 3 0 , 3 1 , 1 4 4 , 1 5 6 , 1 5 8 , 1 5 91 3 D I C ( 7 ) R E C O L O U R S1 4 F O J = 0 T O 7 : R E A D C ( J ) : N E X T

1 5

Page 161: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 161/284

1 5 S = l : P R I N T C H R $ ( C ( S ) ) ;2 0 R E M T E S T J O Y S T I C K2 1 P O K E 3 7 1 5 4 , 1 2 72 2 X = ( N O T P E E K ( 3 7 1 5 1 ) ) A N D 6 0 - ( ( P E E K ( 3 7 1 5

2 ) A N D 1 2 8 ) = 0 )2 3 P O K E 3 7 1 5 4 , 2 5 5 R E M R E S T O R E K E Y B O A R D2 4 I ( A N 3 2 ) = 0 G O T O 3 0 R E N B U

T O 2 5 0 I F B > 0 G O T O 2 0 R E M D E B O U N C E B U T T O N2 6 B = 1 : S = S + 1 : I F S > T H E N S = 2 7 P R I N T C H R $ ( C ( S ) ) ; R E C H A N G E C O L O U R2 8 G O T O 2 0 3 0 B = 3 1 H = S G N ( X A N 1 6 S G N ( X A N D 1 3 2 V = S G N ( X A N 4 ) S G N ( X A N 8 3 3 P R I N T C H R $ ( 2 0 9 ) ; C H R $ ( 1 7 ) ; C H R $ ( 1 7 ) ; C H R

$ ( 2 9 ) ;3 4 F O J = 0 T O H + l : P R I N T C H R $ ( 1 5 7 ) ; : N E X T3 5 F O J = T V + l : P R I N T C H R $ ( 1 4 5 ) ; : N E X T3 6 G O T O 2 0

1 5

Page 162: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 162/284

M i c h a e l K l e i n e r tF o V I C s w i t h o u t m e m o r y e x p a n s i o n , t h e s e m a c h i n e l a n g u a g e r o u t i n e sw i l l h e l p s p e e d u B A S I C c o n s i d e r a b l y .R e a d i n g j o y s t i c k i B A S I C c a n b e t o s l o w f o s o m e g a m e s . M a t t e m p t s t s p e e d u D a v i d M a l m b e r g ' s j o y s t i c k r o u t i n e ( " U s i n g

J o y s t i c k / ' C O M P U T E R S F i r s t B o o k o V I C ) w e r e u n s u c c e s s f u l , s d e c i d e d t w r i t e o n i m a c h i n e l a n g u a g e f o r e a d i n g f r o m t h j o y s t i c k . d e s i g n e d t h e r o u t i n e t b m o s t s u i t a b l e f o g a m e p u p o s e s , e s p e c i a l l y t h o s e i w h i c h y o u m u s t g u i d e a o b j e c t a r o u n dt h s c r e e n b u s i n g t h j o y s t i c k .E n t e r i n g t h M a c h i n e L a n g u a g eT y p e i t h B A S I C l o a d e r p r o v i d e d i P r o g r a m 1 F o t h o s e w h m a n o h a v e j o y s t i c k o m i g h t l i k e t u s t h k e y b o a r d , h a v ei n c l u d e d a i d e n t i c a l r o u t i n e f o t h k e y b o a r d i P r o g r a m 2 U s i n g t h R o u t i n e sB o t h r o u t i n e s a r v e r y s i m i l a r . E a c h c h e c k s f o u p d o w n , l e f t , a n r i g h t . A c c o u n t i n g f o d i a g o n a l d i r e c t i o n s w o u l d r e q u i r e l o n g e ra n m o r e c o m p l e x p r o g r a m m i n g . T h k e y b o a r d v e r s i o n w i l l l o o kf o t h d e p r e s s i n g o f o u r k e y s , w h i c h h a v e d e f i n e d a ( u p ) ,( d o w n ) , ( l e f t ) , a n ( r i g h t ) .

d e s i g n e d t h r o u t i n e s f o c o n t r o l l i n g t h m o v e m e n t o a o b j e c t o t h s c r e e n , a n s u g g e s t t h e f o l l o w i n g f o r m a t :1 P O K E A , B : S Y 7 1 6 8 : P O K E A , 3 2 : + P E E K ( 1 ) - P E E K ( 2 ) :G O T O 1

I t h a b o v e l i n e , i t h m e m o r y l o c a t i o n o c h a r a c t e r ' sp o s i t i o n o t h s c r e e n , a n d B i t h c h a r a c t e r c o d e o t h d e s i r e dc h a r a c t e r . F i r s t t h c h a r a c t e r i P O K E d o n t o t h s c r e e n , a n t h e nt h s u b r o u t i n e i c a l l e d w i t h S Y 7 1 6 8 . T h s u b r o u t i n e c h e c k s f o a n m o v e m e n t o t h j o y s t i c k ( o f o k e y s b e i n g p r e s s e d ) . I i d t e c t s t h j o y s t i c k b e i n g p u s h e d i a n d i r e c t i o n , i p l a c e s a a p r o p r i a t e n u m e r i c a l v a l u e i n t o l o c a t i o n o 2 T h e s e v a l u e s w i l l

1 5

Page 163: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 163/284

b u s e d t u p d a t e t h p o s i t i o n o t h c h a r a c t e r b e i n g m o v e d .F i r s t , t h o l c h a r a c t e r m u s t b e r a s e d . T h i s i a c c o m p l i s h e d b t h c o m m a n d P O K E A , 3 2 . T h c h a r a c t e r i e r a s e d b P O K E i n gs p a c e o n t o t h s a m e s c r e e n p o s i t i o n ( A ) . A f t e r i h a b e e n e r a s e d ,i t p o s i t i o n c a b e u p d a t e d b a d d i n g t h c o n t e n t s o m e m o r y l c a t i o n a n s u b t r a c t i n g t h e c o n t e n t s o m e m o r y l o c a t i o n 2 D t h i s a s h o w n a b o v e , w i t h t h c o m m a n d + P E E K ( 1 ) -P E E K ( 2 ) .

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

A v o i d i n g L e a v i n g t h S c r e e nI t h j o y s t i c k i p u s h e d u ( o t h k e i p r e s s e d o t h k e b o a r d ) , t h e r o u t i n e w i l l p l a c e a v a l u e o 2 i n t o m e m o r y l o c a t i o n2 T h i s c a u s e s t h n u m b e r 2 t b s u b t r a c t e d f r o m t h c u r r e n ts c r e e n a d d r e s s c o n t a i n e d i n v a r i a b l e A a n i t h b a s i s f o r a c o m p l i s h i n g u p w a r d m o v e m e n t o c h a r a c t e r o t h s c r e e n . S i i l a r l y , c h a r a c t e r i m o v e d r i g h t , l e f t , a n d o w n i t h i s f a s h i o n .

I n o r d e r t k e e p t h c h a r a c t e r f r o m g o i n g o f t h t o o t h b o t t o m o t h s c r e e n , m o r e c o m p l e x p r o g r a m m i n g i r e q u i r e d .A a p p r o p r i a t e m e t h o d i i l l u s t r a t e d i P r o g r a m 3 T h p r o g r a mi n o g a m e , b u s i m p l y d e m o n s t r a t i o n f o t h u s o t h r o t i n e s . I w i l l s c a t t e r s e v e r a l b o x e s , a s o b s t a c l e s , o t h s c r e e n a n w i l l e n a b l e y o o n l y t m o v e y o u r " p l a y e r " a r o u n d t h s c r e e nw i t h t h j o y s t i c k o k e y b o a r d . I i t h b a s i c s t r u c t u r e f o g a m e .

I y o a r g o i n g t u s t h j o y s t i c k , e n t e r i l i n e s 1 t 4 f r o mP r o g r a m 1 I y o a r u s i n g t h k e y b o a r d , c o p y t h l i n e s f r o m P r g r a m 2

W h e n y o a r r e a d y t u s o n o t h e r o u t i n e s i y o u r o w B A S I C p r o g r a m , d t h f o l l o w i n g . P l a c e l i n e s 1 t 4 f r o m P r g r a m o l i n e s 1 t 3 f r o m P r o g r a m a t h b e g i n n i n g o y o u rp r o g r a m . T h e n , w h e r e v e r y o w i s h t u t i l i z e t h r o u t i n e i y o u rp r o g r a m , g i v e t h c o m m a n d S Y 7 1 6 8 . T u p d a t e t h c h a r a c t e r ' sp o s i t i o n , u s t h m e t h o d w h i c h d e s c r i b e d a b o v e .O t h e r A p p l i c a t i o n sT h e r e a r m a n y o t h e r u s e s f o t h e s e r o u t i n e s . Y o m a u s t h e mi s i m p l e d e l a y l o o p s t t e m p o r a r i l y s t o p t h e p r o g r a m a n w a i tu n t i l s o m e t h i n g i p r e s s e d .

T c h e c k f o a d e s i r e d d i r e c t i o n o t h j o y s t i c k o r k e o t h

1 5

Page 164: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 164/284

k e y b o a r d , u s t h v a l u e s f r o m F i g u r e s a n 2 F o e x a m p l e , i y o a r u s i n g t h k e y b o a r d s u b r o u t i n e a n w a n t t h p r o g r a m t w a i tu n t i l t h l e t t e r i p r e s s e d o t h k e y b o a r d , y o P E E K l o c a t i o na f o l l o w s :1 0 S Y 7 1 6 8 : I P E E K ( 2 ) < > 2 2 T H E N 1 0

T h i s w i l l c a l l t h s u b r o u t i n e , a n t h p r o g r a m w i l l n o p r o c e e du n t i l t h e v a l u e i n l o c a t i o n i e q u a l t 2 2

I y o a r u s i n g t h j o y s t i c k a n d w a n t t w a i t u n t i l i i p u s h e dt t h r i g h t , y o f o l l o w t h s a m e b a s i c f o r m a t : P E E K m e m o r yl o c a t i o n f o v a l u e o o n e . F o e x a m p l e :1 0 S Y 7 1 6 8 : I P E E K ( 1 ) < > 1 T H E N 1 0

T h F i r i n g B u t t o n" f i r i n g " b u t t o n i n o a c c o u n t e d f o i e i t h e r o f t h t w r o

t i n e s , s i n c e i w o u l d r e q u i r e l i n e o B A S I C . I y o u w o u l d l i k e t c h e c k f o t h f i r i n g b u t t o n , y o w o u l d p l a c e t h e f o l l o w i n g s t e p i nt y o u r p r o g r a m :2 0 I P E E K ( 3 7 1 3 7 ) > 6 T H E N G O S U B ( L i n e n u m b e r )A f t e r t h G O S U B , y o u w o u l d p l a c e t h e l i n e n u m b e r t w h i t : h y o w i s h t s e n d t h p r o g r a m i i f i n d s t h f i r i n g b u t t o n d e p r e s s e d .

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

2 0 I P E E K ( 1 9 7 ) = 3 T H E N G O S U B ( L I N E #

T h D e m o P r o g r a mB r i e f l y , h e r e ' s d e s c r i p t i o n o t h e f u n c t i o n o e a c h l i n e i t h d e m o n s t r a t i o n , P r o g r a m 3

L i m i t s t h e n o B A S I C t p r o t e c t t h m a c h i n e l a n g u a g er o u t i n e , c l e a r s v a r i a b l e s , a n s e t s e q u a l t 7 8 0 0 ( t h e c h a r a c t e r ' sm e m o r y l o c a t i o n o t h s c r e e n ) .1 R E A D s t h m a c h i n e c o d e f r o m t h D A T A s t a t e m e n t s a n P O K E s t h e v a l u e s i n t o m e m o r y , s t a r t i n g a 7 1 6 8 .2 0 - 4 0 C o n t a i n t h m a c h i n e c o d e f o t h e r o u t i n e i D A T As t a t e m e n t s .5 C l e a r s t h e s c r e e n a n t h e n P O K E s t h c o l o r r e o n t o e a c hs c r e e n l o c a t i o n .

1 5

Page 165: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 165/284

6 P u t s o b s t a c l e s o t h s c r e e n i 2 r a n d o m s c r e e n l o c a t i o n s .7 P O K E s t h c h a r a c t e r o n t o t h s c r e e n , c a l l s t h e s u b r o u t i n e , a n t h e n s e t s e q u a l t t h u p d a t e d a d d r e s s .8 I t h n e a d d r e s s i f o u n d t b o f t h s c r e e n , o i f i t i o c c u p i e d b a b o x , t h c h a r a c t e r r e m a i n s s t a t i o n a r y a n t h p r o g r a m g o e s b a c k t l i n e 7 0 9 T h n e s c r e e n p o s i t i o n h a b e e n a c c e p t e d , s o t h e o l dc h a r a c t e r i e r a s e d . T h p r o g r a m g o e s b a c k t l i n e 7 t g o t h r o u g ht h s a m e p r o c e s s .

B o t h r o u t i n e s c a b u s e d o V I w i t h a n a m o u n t o m e o r a n c a b p l a c e d a n y w h e r e i t h u s e r ' s R A M . I o r d e r t k e e p t h i n g s r e l a t i v e l y s i m p l e , w r o t e t h d e m o n s t r a t i o n p r o g r a mf o 3 . 5 K V I C ; i w i l l n o w o r k o V I w i t h a n m e m o r y e x p a ns i o n . T h e s e r o u t i n e s h e l p s p e e d u p r o g r a m s g r e a t d e a l .

P r o g r a m 1 J o y s t i c k R e a d e r1 F O R M = 0 T O 6 5 : R E A D N : P O K E 7 1 6 8 + M , N : N E X T2 D A T A 1 6 9 , 1 2 8 , 1 4 1 , 1 9 , 1 4 5 , 1 6 9 , 0 , 1 3 3 , 1 , 1 3

3 , 2 , 1 6 9 , 1 2 7 , 1 4 1 , 3 4 , 1 4 5 , 1 6 2 , 1 1 9 , 2 3 6 , 3 2, 1 4 5

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

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

P r o g r a m 2 K e y b o a r d R e a d e r1 F O R A = 0 T O 4 0 : R E A D B : P O K E 7 1 6 8 + A , B : N E X T2 D A T A 1 6 9 , 0 , 1 3 3 , 1 , 1 3 3 , 2 , 1 6 5 , 1 9 7 , 2 0 1 , 1 2 ,

2 0 8 , 4 , 1 6 2 , 2 2 , 1 3 4 , 2 , 2 0 1 , 3 6 , 2 0 8 , 4 , 1 6 2 , 22 , 1 3 4 , 1

3 D A T A 2 0 1 , 4 4 , 2 0 8 , 4 , 1 6 2 , 1 , 1 3 4 , 1 , 2 0 1 , 2 0 , 20 8 , 4 , 1 6 2 , 1 , 1 3 4 , 2 , 9 6

P r o g r a m 3 J o y s t i c k D e m o n s t r a t i o nP O K E 5 6 , 2 8 : P O K E 5 2 , 2 8 : C L R : A = 7 8 0 0

1 F O R M = 0 T O 6 5 : R E A D N : P O K E 7 1 6 8 + M , N ; N E X T2 D A T A 1 6 9 , 1 2 8 , 1 4 1 , 1 9 , 1 4 5 , 1 6 9 , 0 , 1 3 3 , 1 , 1 3

3 , 2 , 1 6 9 , 1 2 7 , 1 4 1 , 3 4 , 1 4 5 , 1 6 2 , 1 1 9 , 2 3 6 , 3 2, 1 4 5

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

1 5

Page 166: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 166/284

l : • ■ • : | ( q ) 1 ' ' "

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

5 P R I N T " { C L R } " : F O R X = 3 8 4 0 0 T O 3 8 9 0 5 : P O K E X ,2 : N E X T

6 F O R X = 1 T O 2 5 : Y = I N T ( R N D ( 1 ) * 5 0 0 ) + l : P O K E Y +7 6 8 0 , 1 6 0 : N E X T

7 P O K E A , 4 2 : S Y S 7 1 6 8 : B = A + P E E K ( 1 ) - P E E K ( 2 )8 I F B > 8 1 8 5 O R B < 7 6 8 0 O R P E E K ( B ) = 1 6 0 T H E N 7 09 P O K E A , 3 2 : A = B : G O T O 7 0

F i g u r e 1 J o y s t i c k L o c a t i o nL o c a t i o n L o c a t i o n

2

2

1 5

Page 167: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 167/284

F i g u r e 2 K e y b o a r d L o c a t i o nL o c a t i o n L o c a t i o n 2

2

0 . . J K . 1 . . J K .

2 2

1 5

Page 168: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 168/284

C h r i s t o p h e r J . F I y n n7 7 n s d i s c u s s i o n e x p l a i n s h o t h V I r e a d s t h j o y s t i c k p o r t . A l s o i c l u d e d i g a m e c a l l e d " D o o d l e . "W h a t i t h m o s t i n e x p e n s i v e p e r i p h e r a l t h a t y o c a b u f o y o u r V I C ? c o l o r t e l e v i s i o n ? C e r t a i n l y n o t . M e m o r y e x p a n s i o n ?P r o b a b l y n o t . N o j o y s t i c k . W h a t ? Y o m e a n o n o t h o s eg a d g e t s f o p l a y i n g g a m e s ? T h a t ' s r i g h t !

P e r h a p s y o d i d n ' t r e a l i z e i t b u y o u r V I c a n u s e t h v e r ys a m e j o y s t i c k s t h a t a r e f o u n d o t h A t a r i a n S e a r s v i d e o g a m e s .A b s o l u t e l y n h a r d w a r e m o d i f i c a t i o n s a r n e e d e d a a l l .

T g i v e y o u a n i d e a o t h c a p a b i l i t i e s o t h j o y s t i c k , w e ' v e i c l u d e d d e m o n s t r a t i o n p r o g r a m c a l l e d " D o o d l e . " I t ' s f a s t - p a c e dg a m e i f u l l s o u n d a n d c o l o r d e s i g n e d f o d r a w i n g p a t t e r n s w i t ht h j o y s t i c k . Y o u r k i d s w i l l l o v e i i t h e y c a g e i a w a y f r o my o u .

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

W n e e d t d l i t t l e e x p l o r a t o r y s u r g e r y f i r s t . S i n c e I ' v ea l r e a d y d o n e t h i s , p l e a s e j u s t f o l l o w m d e s c r i p t i o n . Y o d o n ' tn e e d t d t h i s t y o u r V I C . F i r s t w g e n t l y o p e n u p V I C s c a s e .A r m e d w i t h o u r t r u s t y o h m m e t e r , w t r a c e t h j o y s t i c k c o n n e ct i o n s . W a s s u m e t h a t t h e y m u s t r e a c h t h 6 5 2 2 V I I / c h i p s . S t h a t ' s w h e r e w s t a r t l o o k i n g . V o i l S ! T r a c i n g a l t h c o n n e c t i o n s ,w f i n d t h a t t h j o y s t i c k s w i t c h e s d i n d e e d g t t h 6 5 2 2 s .

1 6

Page 169: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 169/284

F i n a l l y , w d e t e r m i n e t h a t t h j o y s t i c k i c o n n e c t e d a f o l l o w s :6 5 2 2 # 1 E ? ? ? ? ? ? ?

P B 7 P B 6 P B 5 P B 4 P B 3 P B 2 P B 1 P B 6 5 2 2 # 2 ? ? F W S N ? ?

P A P A P A P A 4 P A 3 P A P A 1 P A DE W S a n r e p r e s e n t t h f o u r c o m p a s s d i r e c t i o n s . r e p r es e n t s t h f i r e b u t t o n . W w o n ' t b c o n c e r n e d w i t h t h f i r e b u t t o ni t h i s a r t i c l e .

H o d w u s t h i s i n f o r m a t i o n i p r o g r a m ? W h a t w g e e r a l l y h a v e t d i r e a d e a c h I / O p o r t a n t e s t t h e a p p r o p r i a t eb i t s . T h e n o u p r o g r a m c a t a k e a n a c t i o n n e e d e d . A n t h e r e a r s o m e c o m p l i c a t i o n s . D o n ' t f o r g e t t h a t t h 6 5 2 2 h a d a t a d i r e c t i o nr e g i s t e r s w h i c h p r o g r a m e a c h b i f o a i n p u t o o u t p u t o p e r at i o n . A l s o , t h s i g n a l s f r o m t h j o y s t i c k a r i w h a t i c a l l e d a " a c t i v e l o w " s t a t e . T h a t i s i t h j o y s t i c k i p o i n t i n g , s a y , n o r t h ,t h n o r t h b i w i l l b l o o z e r o . T h o t h e r t h r e e d i r e c t i o n s w i l l b h i g h o r o n e s .

T h a t p r o b a b l y s o u n d s l o h a r d e r t h a n i i s W c a a c t u a l l yu s B A S I C t o b t a i n t h j o y s t i c k r e a d i n g s p r e t t y e a s i l y . T h B A S I Cs t a t e m e n t s s h o w n h e r e a r t h k e t u s i n g j o y s t i c k s o t h V I C .P O K E 3 7 1 5 4 , 1 2 7V = P E E K ( 3 7 1 5 2 ) A N 1 2 V = P E E K ( 3 7 1 5 1 ) A N 2 P O K E 3 7 1 5 4 > 2 5 5J S = V l / 1 6 + V 2 / 4J S = ( N O T J S ) A N D 1 5T h e s e s t a t e m e n t s r e a d t h I / p o r t s a n m a n i p u l a t e t h b i t s . W e n u w i t h b i c o n f i g u r a t i o n l i k e t h i s :O O O O E W S N

T h l e a s t s i g n i f i c a n t f o u r b i t s i t h v a r i a b l e J t h u s c o r r es p o n d t t h e f o u r j o y s t i c k s w i t c h e s . N o r m a l l y , t h i s w o u l d m e a nt h a t J c o u l d r a n g e i v a l u e f r o m t 1 5 I p r a c t i c e , J w i l l t a k eo v a l u e s f r o m t 1 0 T h i s i b e c a u s e s o m e b i p a t t e r n s j u s t a r e n ' tp o s s i b l e . W i t h a p r o p e r l y f u n c t i o n i n g j o y s t i c k , y o c a n ' t p r e s s t h n o r t h a n s o u t h s w i t c h e s a t h s a m e t i m e , f o e x a m p l e .

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

1 6

Page 170: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 170/284

D i r e c t i o nN e u t r a l

C a n ' t o c c u r

N s

C a n ' t o c c u r

N S

J V a l u e

1

D e l t a

- - -

D e l t a

-

-

-

N o t e t h a t J i i t h n e u t r a l p o s i t i o n . T h i s g i v e s u h a n d y w a t t e s t f o r j o y s t i c k m o v e m e n t .

D e l t a a n D e l t a a r e v a r i a b l e s w h i c h w i l l h e l p u i w e ' r et r y i n g t m o v e a o b j e c t a r o u n d t h s c r e e n . S u p p o s e w e ' r e u s i n ga a n c o o r d i n a t e s y s t e m l i k e t h i s :

0 1 2 3 4 5 . . . 2 1

2 r e p r e s e n t s a r o n u m b e r , a n r e p r e s e n t s a p o s i t i o n w i t h

i a r o w . W h e n t h j o y s t i c k m o v e s , w w a n t t u p d a t e t h v a l u e so a n s t h e y i n d i c a t e t h n e p o s i t i o n . W c a d t h i s a g a i ne a s i l y i B A S I C :X = X + D X ( J S )Y = Y + D Y ( J S )D a n D a r e a r r a y s w h e r e w e ' v e s a v e d t h l i s t o v a l u e s f o D e l t a a n D e l t a Y

A e x a m p l e w i l l s h o w h o t h i s w o r k s . L e u a s s u m e t h a t w h a v e a o b j e c t a = a n = 5 W t e s t t h j o y s t i c k a n d e t e rm i n e t h a t i h a m o v e d . L e t ' s a s s u m e t h a t i t ' s p o i n t i n g n o r t h .F r o m o u t a b l e , w e k n o w t h a t J w i l l c o n t a i n 1 S o t h n e p o s it i o n s o a n w i l l b e

1 6

Page 171: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 171/284

X = 7 + D X ( 1 )= + D Y ( 1 ) o

X = Y = T h u s , o u o b j e c t i m o v e d u o n l i n e c l o s e r t t h t o o t h s c r e e n . T h e r e w a n l e f t o r i g h t h o r i z o n t a l c h a n g e .

O n l a s t d e t a i l w n e e d t t h i n k a b o u t i h o t c o n v e r ta n i n t o s o m e t h i n g V I u n d e r s t a n d s . A y o k n o w , w c a P O K E t h i n g s i n t o V I C ' s s c r e e n m e m o r y . B u w n e e d m e m o r yl o c a t i o n f o t h a t . A g a i n , B A S I C h e l p s u o u t :P = 2 2 * Y + XT h a t l i t t l e f o r m u l a w i l l c o n v e r t v a l i d a n v a l u e s i n t o n u m b e rr a n g i n g f r o m t o 5 0 5 . N e x t , w m u s t a d t t h e s c r e e n a n c o l o r m e m o r y s t a r t i n g l o c a t i o n s :P O K E 7 6 8 0 + P c o d eP O K E 3 8 4 0 0 + P c o l o rU s a n s c r e e n c o d e a n c o l o r t h a t y o w i s h .D o o d l i n gW e ' v e c o v e r e d j o y s t i c k s p r e t t y q u i c k l y ; w e ' v e o n l y d i s c u s s e d t h h i g h l i g h t s . T h e r e a r m a n y o t h e r d e t a i l s i n v o l v e d . T h b e s t w a t p i c k t h e s e u i t s t u d y P r o g r a m a n t e n j o y t h D o o d l eg a m e .

D o o d l e i l o o f u t p l a y . T h o b j e c t i j u s t t o e n j o y y o u rs e l f . W h e n y o s t a r t D o o d l e , i w i l l d i s p l a y i n s t r u c t i o n s o h o t u s t h s p e c i a l f u n c t i o n k e y s .

D e s c r i p t i o nE n d s t h g a m e .T h c u r s o r m o v e s , b u d o e s n o d r a wl i n e . E r a s e s a n o b j e c t s t h a t i c r o s s e s .T h c u r s o r m o v e s a n d r a w s l i n e .T h s c r e e n i c l e a r e d a n t h e c u r s o r i c e n t e r e d . V I i r e a d y t d o o d l ea g a i n .

Y o m a p r e s s a n k e a a n t i m e w h i l e d o o d l i n g . F o r i n t e re s t i n g e f f e c t s , a l t e r n a t e t h f a n f k e y s . B d o i n g t h i s p r o p e r l y ,y o c a e n c l o s e f i g u r e w i t h i n a n o t h e r f i g u r e w i t h o u t a n i n t e rs e c t i n g l i n e s .

1 6

K e f f

f f

M e s s a g eT Q U I TM O V E C U R S O R

D R A W L I N EC L E A R S C R E E N

Page 172: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 172/284

C o m p a r i s o n o V I a n A t a r i J o y s t i c k S o c k e t s( a v i e w e d f r o m t h o u t s i d e )V I J o y s t i c k S o c k e t

1 J O Y 02 J O Y 13 J O Y 2

J O 5 P O T Y

L I G H T P E N7 + 5 V

G R O U N D9 P O T X

A t a r i J o y s t i c k S o c k e t

F O R W A R DB A C KL E F TR I G H T

5 P O T B

F I R E B U T T O N7 + 5 V8 G R O U N D9 P O T A

D o o d l e1 0 R E M I N I T I A L I Z E1 1 6 0 S U B 3 0 0 0 01 2 R E D O O D L E1 3 G O S U B 2 0 0 01 4 I F 1 = 0 T H E N 1 3 1 5 R E E N 1 6 G O S U B 3 4 0 0 01 7 E N 3 0 R E R E A D J O Y S T I C K A N D K E Y B O A R D3 1 P O K E D D , 1 2 73 2 V 1 = P E E K ( R 1 ) A N D 1 2 83 3 V 2 = P E E K ( R 2 ) A N D 2 83 4 P O K E D D , 2 5 53 5 J S = V l / l 6 + V 2 / 43 6 J S = ( N O T J S ) A N D 1 5

1 6

Page 173: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 173/284

Page 174: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 174/284

2 2 1 0 R E T U R N3 0 0 0 0 R E M . B E G I N3 0 0 1 0 P R I N T C H R $ ( 1 4 7 ) ;3 0 0 2 0 P R I N T S P C ( 8 ) ; l l V I C - 2 0 "3 0 0 3 0 P R I N T3 0 0 4 0 P R I N T S P C ( 5 ) ; " D E 3 0 0 5 0 P R I N T : P R I N T3 0 0 6 0 P R I N T " P R E S S : " : P R I N T3 0 0 7 0 P R I N T " F l - T Q U I T "3 0 0 8 0 P R I N T " F 3 - M O V E C U R S O R "3 0 0 9 0 P R I N T " F 5 - D R A W L I N E "3 0 1 0 0 P R I N T " F 7 - C L E A R S C R E E N "3 0 1 1 0 P R I N T : P R I N T3 0 1 2 0 P R I N T " J O Y S T I C K P L U G G E D I N ? "3 0 1 3 0 R E V A R I A B L E S3 0 1 4 0 R E M J O Y S T I C K3 0 1 5 0 D D = 3 7 1 5 4 : R 1 = 3 7 1 5 2 : R 2 = 3 7 1 5 13 0 1 6 0 R E M V I D E O A N D S O U N D3 0 1 7 0 V A = 7 6 8 0 : C A = 3 8 4 0 0 : B G = 3 6 8 7 93 0 1 8 0 V L = 3 6 8 7 8 : S 3 = 3 6 8 7 63 0 1 9 0 C S = 9 0 : C H = 3 2 + 1 2 8 : Z = R N D ( - T I )3 0 2 0 0 R E D E L T A X D E L T A F O R J O Y S T I C K3 0 2 1 0 D I M D X ( 1 0 ) , D Y ( 1 0 )3 0 2 2 0 F O 1 = T 1 0 : R E A D D X ( l ) : N E X T3 0 2 3 0 F O 1 = T 1 0 : R E A D D Y ( l ) : N E X T3 0 2 4 0 D A T A 0 , 0 , 0 , 0 , - 1 , - 1 , - 1 , 0 , 1 , 1 , 13 0 2 5 0 D A T A 0 , - 1 , 1 , 0 , 0 , - 1 , 1 , 0 , 0 , - 1 , 13 0 2 6 0 F O Z = T 4 0 0 0 : N E X T3 0 2 7 0 R E M I N I T I A L C O N F I G U R A T I O N3 0 2 8 0 P O K E B G , 2 5 : R E M S E B A C K G R O U N D / B O R D

E 3 0 2 9 0 G O S U B 8 0 0 : R E M G E N O I S E3 0 3 0 0 G O S U B 3 2 0 0 0 : R E M C L E A R3 0 3 1 0 R E T U R N3 2 0 0 0 R E C L E A R S C R E E N3 2 0 1 0 P R I N T C H R $ ( 1 4 7 ) ;3 2 0 2 0 X = 1 0 : Y = 1 0 : B T = C S : C L = 03 2 0 3 0 G O S U B 7 0 3 2 7 0 4 0 R E T U R N3 4 0 0 0 R E M . E N D3 4 0 1 0 P R I N T C H R $ ( 1 4 7 ) ;3 4 0 2 0 P O K E B G , 2 73 4 0 3 0 P R I N T : P R I N T3 4 0 4 0 P R I N T " S L O N G 1 "3 4 0 5 0 P R I N T : P R I N T3 4 0 6 0 P O K E V L , 0 : P O K E S 3 , 03 4 0 7 0 R E T U R N

1 6

Page 175: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 175/284

J o h n P a r rT T z z s g a m e , ' T i g h t e r A c e s ' / i f u i i t o w r i g h t . B u i a l s o s h o w ss i m p l e w a t a d s e c o n d j o y s t i c k t y o u r V I f o t w o - p l a y e r g a m e s .

s p e n d m a n y h o u r s i n f r o n t o t h C R o m V I C , a t t e m p t i n go n p r o g r a m o a n o t h e r , b u w h e n t h w o r k i d o n e , a n o a s h a m e d t p l a y g a m e o t w f o r r e l a x a t i o n . M a n y o t h g a m e st h a t l i k e , h o w e v e r , r e q u i r e t w j o y s t i c k s .O t h e r p r o g r a m m e r s h a v e c i r c u m v e n t e d t h i s p r o b l e m t h r o u g ht h u s o f k e y s , b u f i n d t h u s o k e y s a w k w a r d . B e s i d e s , m o s tg a m e s u s t h s a m e k e y s o v e r a n o v e r , w h i c h a s u r e m u s t b w e a r i n g o m p r e c i o u s i n v e s t m e n t . T h o n l y a n s w e r t m d i l e m m a , t h e r e f o r e , w a t f i n d s o m e w a o c o n n e c t i n g s e c o n dj o y s t i c k .

B e f o r e w e n t t w o r k , d e c i d e d t h a t I ' b e t t e r f i n d o u l i t t l eb i a b o u t h o t h j o y s t i c k s w o r k e d . A i t u r n s o u t , t h j o y s t i c k i j u s t l e v e r c o n n e c t e d t f o u r m i c r o s w i t c h e s a i t b a s e . W h e n t h s t i c k i p r e s s e d i o n d i r e c t i o n , t h l e v e r c l o s e s t h a p p r o p r i a t es w i t c h , g r o u n d i n g o n o t h p i n s o t h g a m e s p o r t . F o d i a g o n a l s , t w s w i t c h e s a r c l o s e d s i m u l t a n e o u s l y , g r o u n d i n gt w p i n s i t h g a m e s p o r t . W h e n p i i g r o u n d e d , o n b i i t u r n e d o f i e i t h e r m e m o r y l o c a t i o n 3 7 1 3 7 o r i n l o c a t i o n 3 7 1 5 2 .

F r o m t h i s u n d e r s t a n d i n g , d e c i d e d t h a t t h b e s t p l a c e t h o o k s e c o n d j o y s t i c k o w a t h r o u g h t h p a r a l l e l u s e r p o r t . ( A i t u r n s o u t , P E u s e r s h a v e b e e n d o i n g t h i s f o r y e a r s . ) A f t e rl i t t l e c h e c k i n g o m m e m o r y m a p , d e c i d e d t c o n n e c t m s e o n j o y s t i c k o p i n s t h r o u g h J g r o u n d i n g t p i A T h e s e p i n sa r e a s i l y r e a d t h r o u g h m e m o r y l o c a t i o n 3 7 1 3 6 .

M n e x t c h o r e w a t d e t e r m i n e t h m o s t l o g i c a l o r d e r i w h i c h t m a k e m c o n n e c t i o n s . f i n a l l y d e c i d e d o s y s t e m b w h i c h a n f o r m u l a s f o t h f i r s t j o y s t i c k c o u l d b u s e d b t h s e c -

1 6

Page 176: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 176/284

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

F i g u r e 1 V I J o y s t i c k P l u g

• • • •0

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

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

U J o y OD o w n — J o y 1L e f t — J o yR i g h t — J o y 3F i i e B u t t o nG r o u n d

S i m p l y c o n n e c t t h e s e p i n s t a 2 4 - p i n e d g e c o n n e c t o r a f o l l o w s :s t i c k

t t t t t t

E d g e C o n n e c t o r

J

T h 2 4 - p i n e d g e c o n n e c t o r t h e n p l u g s i n t o t h U s e r I / P o r to t h b a c k o t h V I C , w h i c h h a t h e c o n f i g u r a t i o n s h o w n i F i g u r e 2

1 6

Page 177: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 177/284

F i g u r e 2 V I U s e r I / P o r t1 2 3 4 5 6 7 8 9 1 1 1

P i n s t w h i c h c o n n e c t i o n s a r m a d e a r m a r k e d w i t h a a s t e r i s k ( * ) .

T h e s e c o n n e c t i o n s c a n b e m a d e e i t h e r b r e p l a c i n g t h e x i s ti n j o y s t i c k p l u g w i t h t h e d g e c o n n e c t o r o b u s i n g " p a t c h "c o r d . p a t c h c o r d i a e x t e n s i o n c o r d w i t h o n t y p e o p l u g o o n e n ( s u c h a o u e d g e c o n n e c t o r ) a n w i t h d i f f e r e n t t y p e o p l u g o t h o t h e r e n ( s u c h a c o n n e c t o r l i k e t h o n w h i c h i m o u n t e d o n t h s i d e o f y o u r c o m p u t e r f o t h g a m e s p o r t ) . p e s o n a l l y p r e f e r t h p a t c h c o r d m e t h o d , b e c a u s e t h e n t h j o y s t i c k sc a b i n t e r c h a n g e d i o n w e a r s m o r e t h a n t h o t h e r . A l s o , i j o y s t i c k b r e a k s f o s o m e r e a s o n , t h e r e n e e d b n c h a n g e s m a d et t h r e p l a c e m e n t .F r o m t h a r r a n g e m e n t h a v e c h o s e n , a l f o r m u l a s u s e d o o n j o y s t i c k c a b u s e d o t h o t h e r w i t h l i t t l e m o d i f i c a t i o n . P e s o n a l l y , f i n d t h n e j o y s t i c k e a s i e r t u s b e c a u s e a l s w i t c h e sc a b r e a d f r o m t h s a m e m e m o r y l o c a t i o n w i t h o n s i m p l eP E E K . l i k e i s m u c h , i f a c t , t h a t i h a b e c o m e m m a i nj o y s t i c k .

F i g h t e r A c e sN o t h a t h a v e s h o w n y o h o t c o n n e c t t h i s j o y s t i c k , w i l ls h o w y o h o t u s i w i t h o n o m f a v o r i t e g a m e s , ' T i g h t e rA c e s . " I t h i s g a m e , t w p l a y e r s e n g a g e i a d o g f i g h t a c r o s s y o u rs c r e e n . T h g a m e e n d s a f i f t e e n p o i n t s ; m a t h b e s t p i l o t w i n !

A i i w r i t t e n , t h i s p r o g r a m w i l l r u o a n m e m o r y c o n f i gu r a t i o n t h V I c a a t t a i n .

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

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

1 6

Page 178: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 178/284

L i n e s1 0 - 5 0 S e t t h e p r o g r a m t r u w i t h a n m e m o r y b c h a n g i n g t h

l o c a t i o n s o f t h s c r e e n a n c o l o r . A l s o , t h e s e l i n e s m o v e t h v a r i a b l e s t o r a g e a b o v e t h e u s e r - d e f i n e d c h a r a c t e r s i y o u rc o m p u t e r i e x p a n d e d b y 8 o m o r e ; i n o t , t h p r o g r a m s e t st h e n o m e m o r y b e l o w t h s p e c i a l c h a r a c t e r s , t h u s p r o t e c ti n t h e m f o a n m e m o r y c o n f i g u r a t i o n .

6 0 - 1 5 0 S e u t h v a r i a b l e s a n t h e s c r e e n b e f o r e t h g a m e b e g i n s .1 6 0 - 1 7 0 G e v a l u e s f o e a c h j o y s t i c k .1 8 0 - 2 2 0 C h e c k f o f i r e b u t t o n ; s e e i s h o t h a a l r e a d y b e e n f i r e d .

E a c h s h o t i c h e c k e d h e r e t s e i i h a g o n e t t h e n o i t l i m i t e d r a n g e . N o t e : B e l i m i n a t i n g l i n e 1 8 a n t h N E X T o l i n e 2 9 0 , t h e b i p l a n e s w i l l b m o r e r e s p o n s i v e , b u t h e s h o t sw i l l b s l o w e r . C o n v e r s e l y , i t h v a l u e o t h l o o p i u p p e d ,t h s h o t s w i l l m o v e f a s t e r , b u t h p l a n e s w i l l b h a r d e r t c o n t r o l .

2 3 0 - 2 8 0 M o v e t h s h o t s c h e c k i n g f o o u o b o u n d s , o u o f r a n g e , a n h i t .

2 9 0 - 3 4 0 S e n e d i r e c t i o n o e a c h b i p l a n e a n d e t e r m i n e w h i c h t y p eo b i p l a n e i t b P O K E d .

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

a n o t h e r s h o t , o r b i p l a n e . )4 5 0 - 5 4 0 S u b r o u t i n e f o a e x p l o s i o n . A l s o c h e c k s f o m i d a i r c o l l i s i o n

a n u p d a t e s t h s c o r e . I e i t h e r s c o r e e q u a l s f i f t e e n , t h e n i n f l a g ( s ) a r s e t .

5 5 0 - 6 5 0 G a m e o v e r r o u t i n e .6 6 0 - 7 9 0 C r e a t e t h e b i p l a n e s a n p r i n t t h t i t l e p a g e .I m p o r t a n t V a r i a b l e s :

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

T h d i f f e r e n c e b e t w e e n t h s c r e e n a n c o l o r l o c a t i o n s .P % ( ) P o s i t i o n o e a c h p l a n e o t h s c r e e n .S P % ( ) P o s i t i o n o t h s c r e e n o e a c h s h o t .S D % ( ) D i r e c t i o n o e a c h s h o t .S F % ( ) F l a g t s h o w w h e t h e r s h o t i o t h e s c r e e n a n d , i i i s h o

f a i h a t t r a v e l .D % ( ) D i r e c t i o n o e a c h p l a n e .

1 7

Page 179: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 179/284

A % ( ) T h a t t i t u d e o f e a c h p l a n e .S C % ( ) T h s c o r e f o e a c h p l a y e r .E % ( ) F l a g t s h o w i s o m e o n e h a f i f t e e n p o i n t s .G % ( ) T h n u m b e r o g a m e s t h a t e a c h p l a y e r h a w o n .M % ( ) V a l u e f r o m e a c h j o y s t i c k .L F l a g f o t h b i p l a n e b e i n g o u o s c r e e n l i m i t s .

F i g h t e r A c e s1 I F F R E ( 0 ) > 7 0 0 0 T H E N P O K E 4 6 , 3 2 : G O T O 3 02 P O K E 5 6 , 2 93 C L R : S = 3 6 8 7 4 : P O K E 4 + S , 5 : P O K E 3 6 8 7 9 , 2 54 V % = 4 * ( P E E K ( 3 6 8 6 6 ) A N D 1 2 8 ) + 6 4 * ( P E E K ( 3 6 8

6 9 ) A N D 1 2 0 ) : C = 3 7 8 8 8 + 4 * ( P E E K ( 3 6 8 6 6 ) A N D 12 8 ) - V %

5 G O T O 6 6 06 D I M P % ( 1 ) , S P % ( 1 ) , S D % ( 1 ) , S F % ( 1 ) , D % ( 1 ) , A( ) ( )7 D E F F N M ( X ) = ( ( X A N D 4 ) = . ) * 2 2 + ( ( X A N D 1 6 ) = . )- ( ( X A N D 2 ) = . ) - ( ( X A N D 8 ) = . ) * 2 28 G O T O 1 2 09 P % ( . ) = V % + 4 6 3 : A % ( . ) = . : D % ( . ) = 1 : R E T U R N1 0 P % ( 1 ) = V % + 4 8 2 : A % ( 1 ) = 4 : D % ( 1 ) = - 1 : R E T U R N1 1 P R I N T " { H O M E } { C Y N j l R V S } S C O R E : " : P R I N T T

A B ( 5 ) " { R V S } { B L K } " S C % ( . ) T A B ( 1 4 ) l l t W H T }" S C % ( 1 ) : R E T U R N

1 2 P R I N T " { C L R } { G R N } { 2 D O W N } { R V S } * * * * * * ** * * * * * * * * * * * * * * * S F O R X = 1 T O 1 8 : P R I N T : N EX T : P R I N T " { R V S } { C Y N } £ 1 0 T 3 " ;1 3 P R I N T " { U P } b { U P } { L E F T } b { U P } { L E F T } B{ U P } { L E F T } B { 4 D O W N } { L E F T l B l 0 T { h o m e } "

1 4 g o s u b 9 0 : g o s u b 1 0 0 : g o s u b 1 1 01 5 p o k e s + 3 , 2 0 0 - . p o k e s , 2 0 01 6 P O K E 3 7 1 5 4 # 1 2 7 : X = P E E K ( 3 7 1 5 2 ) : P O K E 3 7 1 5

4 # 2 5 5 : M % ( l ) = 2 * ( X = 1 1 9 ) - i - P E E K ( 3 7 1 3 7 )1 7 M % ( . ) = P E E K ( 3 7 1 3 6 ) - 1 2 91 8 F O R Y = 1 T O 21 9 F O R X = . T O 1 : I F M % ( X ) A N D 3 2 T H E N N E X T : G O T O 23 2 0 I F S F % ( X ) T H E N N E X T : G O T O 2 3 02 1 S F % ( X ) = 1 1 : S P % ( X ) = P % ( X ) + D % ( X ) : S D % ( X ) =

D % ( X )2 2 I F S P % ( X ) > V % + 4 8 3 O R S P % ( X ) < V % + 6 6 O R P E E K (

S P % ( X ) ) = 1 9 4 T H E N S F % ( X ) = . : N E X T : G O T O 2 3 02 3 F O R X = . T O 1 : I F S F % ( X ) = . T H E N N E X T : G O T O 2 9 0

1 7

Page 180: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 180/284

Page 181: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 181/284

6 0 P R I N T " { 2 D O W N } { C Y N } { R V S } * C U R R E N T{ S P A C E S } S T A N D I N G S * " : F O R X = , T O 1 : P R IN T " { D O W N } { Y E L } { R V S } P L A Y E R " X + 1 " - " G % (X ) : N E X T

6 1 P R I N T : P R I N T " { B L K } { R V S } P L A Y A G A I N ? "6 2 G E T A § : I F A $ = " " T H E N 6 2 06 3 I F A $ < > " N " T H E N S C % ( . ) = . : S C % ( 1 ) = . : E % ( . )

= . : E % ( 1 ) = . : P O K E S + 4 , 5 : G O T O 1 2 06 4 P R I N T " { C L R } { B L U } "6 5 P O K E 3 6 8 6 9 , 2 4 0 + 4 8 * ( V % = 4 0 9 6 ) : F O R X = . T O 4

: P O K E S + X , 0 : N E X T : P O K E 3 6 8 7 9 , 2 7 : E N D6 6 P R I N T " { C L R H b L U H D O W N } * F I G H T E R

{ S P A C E S } A C E S * 6 7 F O R X = 1 T O 5 : P R I N T : N E X T6 8 P R I N T T A B ( 7 { B L K j A N O T H E R " P R I N T s P R I N [

T T A B ( 9 ) " J H P " : P R I N T T A B ( 9 ) " V I C " : P R I N T6 9 P R I N T T A B ( 7 ) " P R O G R A M "7 0 F O R X = • T O 1 0 : R E A D Y : F O R Z = . T O 7 : R E A D A : P O K

E Z + Y , A : N E X T : N E X T :7 1 D A T A 7 4 6 4 , 0 , 5 6 , 1 4 5 , 1 8 7 , 2 5 5 , 1 8 7 , 1 4 5 , 5 6

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

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

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

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

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

7 6 F O R X = 1 T O 6 : P R I N T : N E X T7 7 P R I N T " { G R N } P R E S S R E T U R N T B E G I N

{ H O M E } "7 8 G E T A $ : I F A $ < > C H R $ ( 1 3 ) T H E N 7 8 07 9 P R I N T " { C L R } " : P O K E 3 6 8 6 9 , 2 5 5 + 4 8 * ( V % = 4 0

9 6 ) : P O K E 3 6 8 7 9 , 1 1 0 : G O T O 6 0

1 7

Page 182: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 182/284

Page 183: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 183/284

S - ; v , i. ■ ■ v ; i ! ; j

■ ' ' \ J \ )

. ^ - . ■ )

■ ; ^ f

/ : . ■ : - ■ ■ ■ : i

Page 184: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 184/284

Page 185: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 185/284

B i l l Y e

" H e x e d i t " l e t s y o h a n d l e h e x a d e c i m a l - d e c i m a l c o n v e r s i o n s a n c r e a t ea n s a v e m a c h i n e l a n g u a g e o n y o u r V I C . I w o r k s o a n V I C , e x p a n d e do n o t .

A r y o t i r e d o P O K E s , P E E K s , a n c o n s t a n t c o n v e r s i o n f r o mh e x a d e c i m a l t d e c i m a l a n b a c k a g a i n ? H e r e ' s a e d i t o r t h a ta l l o w s y o t r o a m a r o u n d m e m o r y e n t i r e l y i h e x a d e c i m a l . I a d d i t i o n , b c h a n g i n g B A S I C p o i n t e r , b i n a r y d a t a o r m a c h i n el a n g u a g e e n t e r e d i n t o R A v i t h e d i t o r c a b s a v e d a n l o a de o c a s s e t t e . T h n o r m a l c a s s e t t e c o m m a n d s S A V T i , L O A D , a n V E R I F Y a r u s e d .

T h e d i t o r i w r i t t e n i B A S I C i o r d e r t a v o i d t h c h i c k e na n e g p r o b l e m ( o n l y a u n e x p a n d e d V I i r e q u i r e d t c r e a t e" H e x e d i t " b u i w i l l w o r k w i t h o u t m o d i f i c a t i o n o a n V I C ) . B c a u s e t h u n e x p a n d e d V I h a o n l y 3 5 0 0 - o d d b y t e s o R A a v a i l a b l e , H e x e d i t c o n t a i n s n R E s t a t e m e n t s , a n G O S U B s a r u s e d e x t e n s i v e l y . H e x a d e c i m a l t d e c i m a l c o n v e r s i o n i d o n e b s u b r o u t i n e a l i n e 1 1 a n d e c i m a l t h e x a d e c i m a l c o n v e r s i o n i d o n e b s u b r o u t i n e a l i n e 1 4 T h i s a l l o w s y o t d c o n v e r s i o n so u t s i d e o H e x e d i t v i d i r e c t B A S I C s t a t e m e n t s . F o r e x a m p l e , e t e r i n g H = " A B C D " : G O S U B 1 1 : ? D d i s p l a y s 4 3 9 8 1 , a n e n t e r i n g

= 4 3 9 8 1 : G O S U B 1 4 : ? H $ d i s p l a y s A B C D .H e x e d i t o c c u p i e s 6 1 b y t e s o m e m o r y , a n d o n a u

e x p a n d e d V I t h e n o t h p r o g r a m w o u l d b a 4 7 1 3 ( $ 1 2 6 9 ) .P E E K o t h B A S I C p o i n t e r f o t h " e n d o B A S I C p r o g r a m / s t a r t o B A S I C v a r i a b l e a r e a " a l o c a t i o n s 4 a n 4 ( $ 2 D a n $ 2 E ) s h o u l ds h c j w 1 0 a n 1 ( $ 6 A a n $ 1 2 ) a f t e r y o h a v e c r e a t e d H e x e d i t .M o d i f y i n g M e m o r yI y o p l a n t u s H e x e d i t j u s t t l o o k a V I m e m o r y , t h e r e i n o t h i n g m o r e t d o I y o u w a n t t o c r e a t e a n s a v e d a t a , y o n e e dt r e s e r v e s o m e s p a c e i t h R A f o l l o w i n g H e x e d i t . T h i s i d o n eb m o d i f y i n g t h B A S I C p o i n t e r a l o c a t i o n s 4 a n 4 s t h a t t h

1 7

Page 186: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 186/284

" e n d o B A S I C p r o g r a m / s t a r t o B A S I C v a r i a b l e a r e a " i m u c hh i g h e r t h a n i i f o H e x e d i t p r o p e r . I y o d P O K E 4 5 , 0 a n P O K E 4 6 , 2 8 f o l l o w e d b C L ( t c l e a n u t h e o t h e r B A S I C p o i n te r s ) , y o w o u l d n o h a v e t h m e m o r y s p a c e f r o m 4 7 1 4 t 7 1 6 7( $ 1 2 6 A t $ 1 B F F ) a y o u r d i s p o s a l .

H o w e v e r , o n c e y o h a v e c h a n g e d t h p o i n t e r , d n o a d o d e l e t e a n B A S I C s t a t e m e n t . I y o d o t h B A S I C l i n e e d i t o r i t h V I w i l l m o v e d a t a a r o u n d i m e m o r y u t t h " e n d o B A S I C p r o g r a m " l o c a t i o n d e f i n e d b t h p o i n t e r a w e l l a s r e l i n kt h e d a t a t f o r m l i n k e d B A S I C s t a t e m e n t s .H e x e d i t i e x e c u t e d w i t h R U c o m m a n d . Y o a r p r o m p t e df o s t a r t i n g m e m o r y l o c a t i o n b H e x e d i t . T h a d d r e s s i t a k e n t b h e x a d e c i m a l i p r e f i x e d b $ O t h e r w i s e , i i s e e n a d e c i m a l .A f t e r t h l o c a t i o n p r o m p t , a l o u t p u t a n i n p u t i t a k e n t b h e x a d e c i m a l . H e x e d i t d i s p l a y s t h c u r r e n t l o c a t i o n a d d r e s s f o l o w e d b t h c o n t e n t s . K e y i n g t h u C R S R c a u s e s a b y t e w a l kt o w a r d s l o w e r m e m o r y . T h d o w n C R S R i u s e d t b y t e w a l kt o w a r d s h i g h e r m e m o r y . D e p r e s s i n g t h e s p a c e b a r w i t h n o t h e ri n p u t r e d i s p l a y s t h c u r r e n t l o c a t i o n . T h i s i u s e f u l f o l o o k i n g a t h V I V I t i m e r s o i n p u t p o r t s . I t h e v a l u e i t h l o c a t i o n h a n o c h a n g e d , h i t t i n g t h s p a c e b a w i l l a p p e a r t h a v e n e f f e c t .

R E T U R N c a u s e s p r o m p t f o n e s t a r t i n g l o c a t i o n . I y o r e s p o n d t t h p r o m p t w i t h j u s t a n o t h e r R E T U R N , H e x e d i tw i l l E N D .

D a t a c a b e n t e r e d i n t o m e m o r y a t h c u r r e n t l o c a t i o nw h o s e a d d r e s s a n c o n t e n t s a r d i s p l a y e d b H e x e d i t . T h d i g i t s0 - a n A - a r a c c e p t e d f o i n p u t . O n l y t h l a s t t w d i g i t s e t e r e d a r w r i t t e n i n t o m e m o r y . S i y o m a k e m i s t a k e , j u s tk e e p o e n t e r i n g d i g i t s u n t i l i i r i g h t . A f t e r d i g i t i n p u t , w r i t e o m e m o r y o c c u r s o e i t h e r u o d o w n C R S R , s p a c e b a r , o R E T U R N .

T h l o c a t i o n p o i n t e r i m o d i f i e d a f t e r s u c c e s s f u l w r i t e o m e m o r y , a d e s c r i b e d p r e v i o u s l y , e x c e p t f o t h s p a c e b a r . I t h i sc a s e , w i t h d a t a e n t e r e d , t h s p a c e b a c a u s e s t h c u r r e n t l o c a t i o nt i n c r e m e n t . f o u n d t h i s m e t h o d o d a t a e n t r y w i t h t h s p a c e b a rt b t h f a s t e s t w a y . I t h c u r r e n t l o c a t i o n c a n n o t b w r i t t e n b t h e d a t a s p e c i f i e d , t h r e s p o n s e w i l l i a l c a s e s b t h m e s s a g e" R / O " f o l l o w e d b r e d i s p l a y o t h s a m e l o c a t i o n .

O n c e y o h a v e f i n i s h e d e n t e r i n g d a t a i n t o r e s e r v e d m e m o r y ,y o c a e x i t H e x e d i t b h i t t i n g R E T U R N t w i c e . T h V I c a s s e t t ec o m m a n d s c a n t h e n b u s e d t S A V E t h n e d a t a ( a l o n g w i t h

1 7

Page 187: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 187/284

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

l a n g u a g e . F o e x a m p l e , i i w a t c r e a t e ' T I N Y M O N 1 " d i r e c t l yo t h V I r a t h e r t h a n d o i n g i v i P E T . F o t h o s e w i t h l i m i t e dr e s o u r c e s , H e x e d i t p r o v i d e s w a f o d o i n g m o r e w i t h w h a t y o a l r e a d y h a v e a n f a r t h e r c o s t .

H e x e d i tG O S U B 8 s L = D : C = 9 9G 0 S U B 7 : L = DG 0 S U B 1 3 : L $ = H $ : D = P E E K ( L ) : G 0 S U B 1 4 : P R I N T L $

1 1 " H $ " M ; : G 0 S U B 1 8I H $ = I " I A N D C = 3 2 T H E N P R I N T " { U P } M : G O T O 3I F H $ < > " " T H E N H $ = R I G H T $ ( H $ , 2 ) : G O S U B 1 1 : P O K

E L , D : I F P E E K ( L ) < > D T H E N P R I N T " R / O " : G O T O 3G O T O 2P R I N T : I F C < > 1 3 T H E N D = L + S G N ( 9 9 - C ) : R E T U R NH $ = " " : I N P U T " L O C " ; H $ : I F H $ = " " T H E N E N DI F L E F T $ ( H $ , 1 ) < > " $ " T H E N D = V A L ( H $ ) : R E T U R N1 H $ = M I D $ ( H $ , 2 , L E N ( H $ ) - 1 ) : H $ = R I G H T $ ( H $ ,

1 N = L E N ( H $ ) : D = 0 : F O R M = 0 T O N - 1 : C $ = M I D $ ( H $ , N- M , 1 ) : H = A S C ( C $ ) - 4 8 : I F H > 9 T H E N H = H - 7

1 D = D + H * 1 6 t M : N E X T : R E T U R N1 D = 1 I F D < 0 O R D > 6 5 5 3 5 T H E N P R I N T D " O O R I I : E N D1 H $ = H I I : M = 4 0 9 6 : N = 3 : I F D < 2 5 6 T H E N M = 1 6 : N = 11 F O R H = 0 T O N : C = I N T ( D / M ) : D = D - C * M : M = M / 1 6 : C =

C + 4 8 : I F O 5 7 T H E N C = C + 71 H $ = H $ + C H R $ ( C ) : N E X T : R E T U R N1 H $ = " "1 G E T C $ s I F C $ = " " T H E N 1 92 C = A S C ( C $ ) : I F C = 1 3 O R C = 1 7 O R C = 3 2 O R C = 1 4 5 T H E

N R E T U R N2 I F C < 4 8 O R ( O 5 7 A N D C < 6 5 ) O R O 7 0 T H E N 1 92 P R I N T C $ ; : H $ = H $ + C $ : G 0 T 0 1 9

1 7

Page 188: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 188/284

P e t e r B u s b y

H e r e i h a n d y t o o l t l e y o l o o k a t m a c h i n e l a n g u a g e p r o g r a m s .C o m p u t e r s a r v e r y g o o d a d e a l i n g w i t h n u m b e r s . I f a c t , a t h m o s t b a s i c l e v e l , b i n a r y n u m b e r s a r a l t h c o m p u t e r c a u n d e rs t a n d . H u m a n s , o t h e o t h e r h a n d , t e n d t f i n d n u m b e r s c o n f u si n a n p r e f e r t d e a l w i t h w o r d s . T h i s i w h p r o g r a m m e r s w h w o r k w i t h m a c h i n e l a n g u a g e o f t e n u s a s s e m b l e r s , s u c h a t h o n p r e s e n t e d i t h e n e x t a r t i c l e . B u w h a t i y o u ' v e g o t a p r o g r a mi m a c h i n e l a n g u a g e t h a t y o w a n t t d e c i p h e r ? I t ' s o n l y l o g i c a lt h a t t h e r e s h o u l d a l s o b p r o g r a m s t h e l p y o w o r k i t h o p p os i t e d i r e c t i o n . S u c h p r o g r a m s a r c a l l e d d i s a s s e m b l e r s .

W h a t i d i s a s s e m b l e r ? I i p r o g r a m w h i c h l o o k s a t h m a c h i n e c o d e i m e m o r y ( R A M o R O M ) a n d i s p l a y s t h e q u i v a l e n t h e x a d e c i m a l o d e c i m a l v a l u e s . M o r e i m p o r t a n t l y , i t r a n s l a t e s t h e s e n u m b e r s i n t o t h m n e m o n i c s f o t h 6 5 0 2 m i c r op r o c e s s o r i n s t r u c t i o n s . ( M n e m o n i c s a r a b b r e v i a t e d w o r d s w h i c hr e p r e s e n t m a c h i n e l a n g u a g e p r o g r a m i n s t r u c t i o n s . F o i n s t a n c e ,R T i t h m n e m o n i c f o t h " r e t u r n f r o m s u b r o u t i n e "i n s t r u c t i o n . )

S o m e d i s a s s e m b l e r s a l l o w y o o n l y t i n s p e c t m e m o r y l o c at i o n s s e q u e n t i a l l y , i t h o r d e r o t h e i r m e m o r y l o c a t i o n a d d r e s se s T h i s , h o w e v e r , i t r a c i n g d i s a s s e m b l e r . T h i s m e a n s t h a t i y o e n c o u n t e r , f o e x a m p l e , J M ( j u m p ) i n s t r u c t i o n d u r i n g d i s a ss e m b l y , y o m a e i t h e r d i s a s s e m b l e t h n e x t i n s t r u c t i o n i m e o r o m a k e t h J U M P t t h n e l o c a t i o n a n c o n t i n u e d i s a ss e m b l y f r o m t h e r e , i t h o r d e r i w h i c h t h p r o g r a m i e x e c u t e d .T h e s a m e h o l d s f o J S ( j u m p t s u b r o u t i n e ) a n a l t h b r a n c hi n s t r u c t i o n s a s w e l l .U s i n g t h e P r o g r a m" T r a c i n g D i s a s s e m b l e r " i w r i t t e n i B A S I C . T y p e i t h p r o g r a mc a r e f u l l y , t h e n S A V E c o p y . W h e n y o R U t h p r o g r a m , y o w i l l f i r s t b a s k e d f o s t a r t i n g a d d r e s s . T h i s c a b i e i t h e r d e c i -

1 8

Page 189: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 189/284

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

A d v a n c e o n e s t e pB r a n c h / g o s u b r o u t i n eC o n v e r t b a s e sD i s a s s e m b l eE x a m i n e m e m o r yN e s t a r t a d d r e s sQ u i tR e t u r n s u b r o u t i n eU n b r a n c h / b a c k s t e p u

A n o t h o p t i o n s c a n b e s e l e c t e d a a n t i m e w h i l e t h p r o g r a mi r u n n i n g b t y p i n g t h f i r s t l e t t e r o t h m e n u i t e m . A m e o r a i d , l i n e l i s t i n g t h l e t t e r s f o t h o p t i o n s i p r i n t e d a f t e re a c h l o c a t i o n i d i s a s s e m b l e d . W h e n e v e r y o w i s h t s e t h m e n u a g a i n , t y p e M G o i n g b a c k t t h m e n u d o e s n o c a u s e y o t l o s e y o u r p l a c e i m e m o r y .

T s t a r t d i s a s s e m b l y a t h a d d r e s s p r e v i o u s l y s p e c i f i e d , h i ( f o r A d v a n c e ) . T h s p a c e b a r p e r f o r m s t h s a m e f u n c t i o n a n h a t h a d d e d a d v a n t a g e t h a t i w i l l r e p e a t i h e l d d o w n . T h e p r o g r a mw i l l d i s p l a y f o u r c o l u m n s o i n f o r m a t i o n . T h f i r s t c o l u m n i t h a d d r e s s ( i h e x a d e c i m a l ) o t h e d a t a b e i n g d i s a s s e m b l e d . T h s e o n c o l u m n i t h m n e m o n i c o t h 6 5 0 2 o p c o d e f r o m t h a t l o c at i o n , p l u s o n o m o r e c h a r a c t e r s w h i c h i n d i c a t e t h a d d r e s s i n gm o d e .

A d d r e s s i n g M o d e sT h p o s s i b l e a d d r e s s i n g m o d e s a r e :

- ( X 0 z , Z , , , ( I

I m m e d i a t eZ e r o p a g eA c c u m u l a t o rI n d e x e d i n d i r e c tI n d i r e c t i n d e x e dZ e r o p a g e i n d e x e d , XZ e r o p a g e i n d e x e d , YA b s o l u t e i n d e x e d , XA b s o l u t e i n d e x e d , YI n d i r e c t

I n m o d e i s h o w n , t h e n t h a d d r e s s i n g m o d e i A b s o l u t e ,

1 8

Page 190: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 190/284

I m p l i e d ( a w i t h I N a n D E Y ) , o R e l a t i v e ( a w i t h B E a n B C C ) .A r g u m e n t s a n A d d r e s s e sF o a l e x c e p t t h J M P , J S R , a n B r a n c h i n s t r u c t i o n s , t h r e m a i ni n t w c o l u m n s a r t h h e x a d e c i m a l a n d e c i m a l v a l u e o t h a r g u m e n t o t h o p c o d e . F o J S R s a n A b s o l u t e a d d r e s s i n g m o d eJ M P s , t h t w c o l u m n s a r t h h e x a d e c i m a l a n d e c i m a l v a l u e o t h a d d r e s s t w h i c h t h J M o J S w i l l t a k e t h p r o g r a m . F o r I nd i r e c t a d d r e s s i n g m o d e J M P s , t h t w o c o l u m n s a r t h h e x a d e c im a a n d e c i m a l v a l u e s o t h l o c a t i o n s h o l d i n g t h b a s e a d d r e s sf o t h I n d i r e c t J M P . F o r t h e v a r i o u s c o n d i t i o n a l B r a n c h i n s t r u ct i o n s , t h t h i r d c o l u m n i t h h e x a d e c i m a l v a l u e o t h o f f s e t i o rt h B r a n c h , a n t h e f o u r t h c o l u m n i t h h e x a d e c i m a l v a l u e o t h a d d r e s s t w h i c h t h p r o g r a m w i l l g i t h B r a n c h i t a k e n .

E x a m i n i n g M e m o r yO c c a s i o n a l l y , a s y o a r d i s a s s e m b l i n g , y o w i l l e n c o u n t e r t h m e s s a g e I L L E G A L . T h i s m e a n s t h a t t h l o c a t i o n c o n t a i n s av a l u e w h i c h h a n c o r r e s p o n d i n g 6 5 0 2 o p c o d e . T h i s m a b a a r r a y o f d a t a o r t e m p o r a r y s t o r a g e l o c a t i o n . A t t e m p t i n g t d i s a ss e m b l e a i l l e g a l o p c o d e w i l l s w i t c h t h e p r o g r a m t t h E x a m i n em e m o r y o p t i o n .

I t h i s o p t i o n , t h r e e c o l u m n s o i n f o r m a t i o n a r d i s p l a y e d .T h f i r s t i s t h a d d r e s s ( i h e x a d e c i m a l ) o t h m e m o r y b y t e b e i n ge x a m i n e d , a n t h s e c o n d a n t h i r d c o l u m n s a r t h h e x a d e c i m a la n d e c i m a l v a l u e s o t h e c o n t e n t s o f t h a t l o c a t i o n .

I y o s i m p l y w i s h t l o o k a t h e c o n t e n t s o b l o c k o m e o r y , y o c a a l s o s e l e c t t h i s o p t i o n b t y p i n g ( f o r E x a m i n e m e o r y ) . Y o c a s t e p s e q u e n t i a l l y t h i g h e r m e m o r y a d d r e s s e s b t y p i n g ( o t h s p a c e b a r ) o t l o w e r a d d r e s s e s b t y p i n g ( f o rU n b r a n c h / b a c k s t e p ) . T y p e ( f o r D i s a s s e m b l e ) t b e g i n d i s a ss e m b l i n g a g a i n .

J u m p i n g a n B r a n c h i n gW h e n e v e r y o e n c o u n t e r J M P , J S R , o B r a n c h i n s t r u c t i o n , y o c a n , i y o w i s h , m a k e t h j u m p t t h n e a d d r e s s b t y p i n g( f o r B r a n c h ) . O n e x c e p t i o n i t h a t t h p r o g r a m c a n n o t m a k e I d i r e c t a d d r e s s i n g m o d e J M P s . F o J S R s , t h p r o g r a m k e e p s t r a c ko t h n u m b e r o s u b r o u t i n e l e v e l s a n p r i n t s t h n u m b e r i t h r i g h t o t h i n v e r s e v i d e o m e m o r y a i l i n e .

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

1 8

Page 191: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 191/284

t i n e s . I y o h a v e a d d i t i o n a l m e m o r y y o c a i n c r e a s e t h i s n u b e r . F o e x a m p l e , t i n c r e a s e t h n u m b e r o l e v e l s t 5 0 a d t h f o l l o w i n g t t h e n o l i n e 5 3 0 :: D I M R E ( 5 0 )a n c h a n g e t h ( S 1 0 i l i n e 2 9 t ( S 5 0 ) . T y p i n g ( f o r R t u r n ) w i l l s t e p y o b a c k t h r o u g h t h J S R s t a k e n . ( Y o u c a a l s o g e b a c k t t h p r e v i o u s J S R b y t y p i n g w h e n y o e n c o u n t e r a R T i n s t r u c t i o n . ) T y p i n g ( f o r U n b r a n c h ) w i l l r e t u r n y o t t h l a s t J M o B r a n c h t a k e n .Y o c a s t a r t d i s a s s e m b l i n g f r o m d i f f e r e n t a d d r e s s a a n t i m e b t y p i n g t s e l e c t t h N e s t a r t i n g a d d r e s s o p t i o n . Y o c a c o n v e r t n u m b e r s f r e e l y b e t w e e n b i n a r y , d e c i m a l , a n h e x ad e c i m a l b t y p i n g f o t h C o n v e r t b a s e o p t i o n . T e n t h T r a ci n D i s a s s e m b l e r p r o g r a m , t y p e f o t h Q u i t o p t i o n .R e s p e c t C o p y r i g h t , P l e a s eN o n m i n d s i y o l o o k a a n d i s a s s e m b l e r o u t i n e t d i s c o v e ri t w o r k i n g s a n a c c e s s p o i n t s . I y o d i s c o v e r t h a t t h e r o u t i n e t l o c a t e t h n e x t t a p e h e a d e r b e g i n s a $ E 1 6 5 , t h e n b a l m e a n sh a v e y o u r p r o g r a m S Y 5 7 7 0 1 i o r d e r t u s t h r o u t i n e . O t h o t h e r h a n d , y o m a n o d i s t r i b u t e a n p o r t i o n o c o p y r i g h t e dm a t e r i a l , e v e n w i t h t h v a r i a b l e n a m e s c h a n g e d , w i t h o u t w r i t t e np e r m i s s i o n . T h i s p r o g r a m i i n t e n d e d o n l y t e x p l o r e t h w o r ki n g s o y o u r c o m p u t e r o t v e r i f y t h a s s e m b l y o y o u r o w p r o g r a m s .

T r a c i n g D i s a s s e m b l e r1 P R I N T " { C L R } { 2 S P A C E S } 6 5 0 2 D I S A S S E M B L E

R 2 G O S U B 5 3 03 P R I N T : P R I N T " { R V S } " S E $ " { O F F } E N U { R V S }

{ S P A C E S } " R I G H T $ ( S T R $ ( S R ) , 2 ) "{ S P A C E S } { O F F } " ; : G O S U B 7 0

4 G O S U B 8 0 : F O R M = 1 T O 1 2 : I F A ? > M I D $ ( S E $ , M , 1) T H E N N E X T : G O T O 4 0

5 P R I N T " { 2 1 S P A C E S } " ; : G O S U B 7 06 M O D E $ = " { 3 S P A C E S } " : L I = P A : O N M G O S U B 2 2 0 ,2 2 0 , 2 0 0 , 6 5 0 , 2 1 0 , 1 8 0 , 5 9 0 , 9 9 9 , 1 7 0 , 1 9 0 , 22 0 , 6 1 0 : G O T O 3 0

7 F O R J = 0 T O 2 0 : P R I N T C H R $ ( 1 5 7 ) ; : N E X T : R E T U RN : R E M C U R S O R L E F T '

8 P O K E 1 9 8 , 0 : W A I T 1 9 8 , 1 : G E T A $ : R E T U R N : R E MG E A C H A R F R O M K E Y B O A R D

1 8

Page 192: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 192/284

9 J = 3 + 2 * ( A < L I ) : K = 1 61 0 A % = A + H I * ( A > H ) : A D $ = " " : F O R M = 0 T O J : A D $ = A

D $ + M I D $ ( H $ , ( A % / K t ( J - M ) A N D ( K - 1 ) ) + l , 1 ): N E X T : R E T U R N

1 1 A D = 0 : F O R L = 1 T O R : G O S U B 2 7 0 : A = P E E K ( X ) : A D= A D + A * P A t ( L - l ) : G O S U B 9 0 : M N $ = A D $ + L E F T $( M N $ , 2 ) : N E X T

1 2 R E T U R N1 3 J = 1 0 : A = 0 : K = A : L = 51 4 G O S U B 8 0 : I F K = 0 T H E N I F A $ = " $ " O R A $ = " % " T H E

N P R I N T A $ ; : K = 1 : J = 1 6 : I F A $ = " % " T H E N J = 2 : L=

1 5 O N - ( A $ = C H R $ ( 1 3 ) ) G O T O 1 2 0 : F O R M = 1 T O J : I FA $ < > M I D $ ( H $ , M , 1 ) T H E N N E X T : G O T O 1 4 0

1 6 P R I N T A $ ; : A = A * J + M - 1 : K = K + 1 : O N - ( K < L ) G O T0 1 4 0 5 R E T U R N

1 7 G O S U B 3 0 0 : X = Y - 3 : G O T O 2 2 01 8 R = - 1 : X = Z : G O T O 2 2 01 9 Y = B R : F L = 0 : I F R = - 1 T H E N X = X + 2 * ( X > 1 ) : G 0 T 0

2 2 2 0 I F F L < 4 T H E N O N F L G O S U B 2 8 0 , 2 9 0 , 3 0 0 : Z = Y2 1 X = Z : R = 02 2 Z = X : A = X : L I M I T = 0 : G O S U B 9 0 : L I = P A : P R I N T A

D $ " ; : A = P E E K ( X ) : I F R > - 1 T H E N G O S U B 3 1 02 3 I F R = - 1 T H E N G O S U B 9 0 : P R I N T A D $ ; A ; I L $ ; : G 0

T O 2 7 02 4 P R I N T M N $ ; M 0 $ " " I L $ ; : M N $ = " { 3 S P A C E S } "2 5 I F F L = 1 T H E N G O S U B 1 1 0 : L I = 0 : A = Y : G O S U B 9 0 :

L I = P A : P R I N T M N $ " " A D $ ; : G O T O 2 7 02 6 I F R T H E N G O S U B 1 1 0 : P R I N T B S $ ( R ) ; M N $ ; A D ; B

S $ ( R ) ;2 7 I L $ = I I M : X = X - ( X < H I - 1 ) : R E T U R N2 8 B R = X - 2 : R E T U R N2 9 S R = S R - ( S R < 1 0 ) : R E T U R N3 0 S R = S R + ( S R > 0 ) : Y = R E ( S R ) : R E T U R N3 1 R = 0 : F L = 4 : O N A A N D 3 G O T O 4 4 0 , 4 6 0 , 4 7 0 : 0 N F N

A ( 4 ) G O T O 3 8 0 : M N $ = M I D $ ( Z E $ , ( A A N D 2 4 8 ) / 8* 3 + l , 3 )

3 2 I F ( A A N D 3 1 ) = 1 6 T H E N R = 1 : Y = P E E K ( X + 1 ) : Y = X+ 2 + Y - 2 * ( Y A N D 1 2 8 ) : F L = 1

3 3 O N - ( ( A A N D 3 1 ) > 0 ) G O T O 1 2 0 : O N F N A ( 1 2 8 ) G O TO 3 5 0 : O N F N A ( 3 2 ) G O T O 3 6 03 4 I L $ = " { 1 2 S P A C E S j E N D O R O U T I N E " : R E T UR

3 5 O N - ( A = 1 2 8 ) G O T O 4 7 0 : R = 1 : M O $ = " " : R E T UR 3 6 O N F N A ( 6 4 ) G O T O 3 7 0 : R = 2 . X ' = F N X ( 0 ) : R E ( S R )= X + 3 : F L = 2 : R E T U R N3 7 F L = 3 : O N - ( S R = 0 ) G O T O 3 4 0 : R E T U R N

1 8

Page 193: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 193/284

3 8 O N F N A ( 1 2 8 ) G O T O 4 2 0 : I F ( A A N D 2 4 7 ) = 3 6 T H E NM N $ = " B I T " : G O T O 4 3 03 9 O N - ( ( A A N D 2 2 3 ) < > 7 6 ) G O T O 4 7 0 : R = 2 : F L = 0 : M

N $ = " J M P " : Y = F N X ( 0 )4 0 I F A = 1 0 8 T H E N M O $ = " ( l ) " : Y = P E E K ( Y ) + P E E K (

Y + l ) * P A4 1 R E T U R N4 2 M N $ = M I D $ ( Z E $ , ( A A N D 2 2 4 ) / 8 * 3 + l , 3 ) : I F ( A

A N D 8 0 ) = 8 0 O R A = 1 5 6 T H E N 4 7 04 3 M O $ = M I D $ ( M D $ , ( A A N D 2 8 ) / 4 * 3 + l , 3 ) : R = l - (

( A A N D 3 1 ) = 2 5 ) - ( ( A A N D 1 5 ) > 1 1 ) : R E T U R N4 4 G O S U B 4 3 04 5 M N $ = M I D $ ( O P $ ( A A N D 3 ) , ( A A N D 2 2 4 ) / 3 2 * 3 + l

, 3 ) : 0 N - ( A = 1 3 7 ) G O T O 4 7 0 : R E T U R N4 6 O N F N A ( 4 ) G O T O 5 1 0 : O N F N A ( 8 ) G O T O 4 8 0 : M O $ =

1 " : R = 1 : I F A = 1 6 2 T H E N 4 5 04 7 R = - 1 : I L $ = " I L L E G A L " : R E T U R N4 8 O N F N A ( 1 6 ) G O T O 5 0 0 : O N F N A ( 1 2 8 ) G O T O 4 9 0 : M

0 $ = " - A " : G O T O 4 5 04 9 M N $ = M I D $ ( T W $ , ( A A N D 9 6 ) / 3 2 * 3 + l , 3 ) : R E T U

R 5 0 O N - ( ( A A N D 2 0 8 ) < > 1 4 4 ) G O T O 4 7 0 : M N $ = " T S X "

: O N F N A ( 3 2 ) G O T O 1 2 0 : M N $ = M T X S " : R E T U R N5 1 G O S U B 4 4 0 : O N - ( ( A A N D 2 0 8 ) < > 1 4 4 ) G O T O 1 2 0 :

O N F N A ( 8 ) G O T O 5 2 0 : M O $ = " Z # Y " : R E T U R N5 2 O N - ( A = 1 5 8 ) G O T O 4 7 0 : M O $ = " , Y H : R E T U R N5 3 H $ = " 0 1 2 3 4 5 6 7 8 9 A B C D E F " : S E $ = 1 1 A B C D E N Q R

M 5 4 Z E $ = H B R K P H P B P L C L C J S R P L P B M I S E C R T I P H A B

V C C L I R T S P L A B V S S E I "5 5 Z E $ = Z E $ + I I S T Y D E Y B C C T Y A L D Y T A Y B C S C L V C P Y

I N Y B N E C L D C P X I N X B E Q S E D "5 6 0 P $ ( 1 ) = " O R A A N D E O R A D C S T A L D A C M P S B C " : 0 P

$ ( 2 ) = " A S L R O L L S R R O R S T X L D X D E C I N C "5 7 M D $ = " ( X ) Z { S P A C E S } # { 4 S P A C E S } ( Y ) Z ,

X , # I I : T W O $ = " T X A T A X D E X N O P " : B S $ ( 2 ) =C H R $ ( 1 5 7 ) : R E M C U R S O R L E F T

5 8 H I = 6 5 5 3 6 : H = 3 2 7 6 7 : P A G E = 2 5 6 : D E F F N X ( A ) =P E E K ( X + l ) + P E E K ( X + 2 ) * P A : D E F F N A ( B ) = ( A AN D B ) / B

5 9 P R I N T : P R I N T " E N T E R S T A R T I N G A D D R E S SP R E F I X ' $ F O H E X ) " : G O S U B 1 3 06 0 X = A * - ( A < H l ) : Z = X : B R = X : R E ( 0 ) = X + 3

6 1 P R I N T : P R I N T : P R I N T " { R V S } A { O F F } D V A N C EO N E S T E P { 6 S P A C E S } { R V S } B { O F F } R A N C H /

G S U B R O U T I N E "6 2 0 P R I N T " { R V S } C { O F F } O N V E R T B A S E S

{ S P A C E S } { R V S } D { O F F } I S A S S E M B L E C O D ES { S P A C E S } { R V S } E { O F F } X A M I N E A D D R E S S E S 1

1 8

Page 194: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 194/284

6 3 p r i n t " { r v s } n { o f f } e w s t a r t a d d r e s s{ s p a c e s } { r v s } q { o f f } u i t { 1 8 s p a c e s }{ r v s } r { o f f } e t u r n s u b r o u t i n e "

6 4 0 p r i n t " { r v s } u { o f f } n b r a n c h / b a c k s t e pp { s p a c e s } ( s u b r o u t i n e l e v e l ) " : r e t u r

6 5 P R I N T : P R I N T : P R I N T " E N T E R N U M B E R ( P R E FI X { 2 S P A C E S } ' $ ' = H E X , ' % ' = B I N A R Y ) " : G OS U B 1 3 0

6 6 P R I N T : I F A > H I - 1 T H E N P R I N T " O U T O F R A N G E1 1 R E T U R N

6 7 G O S U B 9 0 : I F A > 2 5 5 T H E N P R I N T " $ " A D $ ; A ; : R ET U R N

6 8 P R I N T " $ " A D $ " % " ; : K = 2 : J = 7 : G O S U B 1 0 0 : P RI N T A D $ ; A ; : R E T U R N

9 9 E N

1 8

Page 195: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 195/284

R . S . M o s e rI u s u a l l y d o e s n ' t t a k e n e g a m e p r o g r a m m e r l o n g t f i n d t h l i m i t a t i o n s o f g a m e s w r i t t e n i B A S I C . A t h g a m e s b e c o m em o r e c o m p l e x a n i n t e r e s t i n g , t h e y r u s l o w e r a n s l o w e r . F n a l l y , m o s t g a m e p r o g r a m m e r s r e a l i z e t h e y h a v e t u s m a c h i n el a n g u a g e i o r d e r t m a k e t h e i r g a m e s p l a y a t h e y e n v i s i o nt h e m .

I t ' s p o s s i b l e , o c o u r s e , t c o m p o s e m a c h i n e l a n g u a g e p r g r a m s d i r e c t l y f r o m t h e V I C ' s b u i l t - i n B A S I C . Y o o n l y h a v e t P O K E t h n u m b e r s o t h m a c h i n e l a n g u a g e c o d e d i r e c t l y i n t om e m o r y , i o r d e r , a n t h e n s a v e t h a t s e c t i o n o m e m o r y . O y o c a c r e a t 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 a D A I A s t a t e m e n t s .T h t r o u b l e i s , i t ' s h a r d t r e m e m b e r , a y o s c a n t h r o u g h y o u rp r o g r a m , t h a t 2 2 i t h " i n c r e m e n t ( a d d t o t h r e g i s t e r " c o m a n d a n 1 6 i " l o a d t h a c c u m u l a t o r w i t h t h e c o n t e n t s o t h f o l l o w i n g z e r o - p a g e a d d r e s s . " T h l o n g e r y o u r p r o g r a m i s t h h a r d e r i i t r e m e m b e r w h a t i g o i n g o a a n g i v e n p l a c e w i t hi i t

M n e m o n i c sT h s o l u t i o n , o f c o u r s e , i t u s a a s s e m b l y p r o g r a m , w r i t t e n i t h f o r m o s h o r t m n e m o n i c s t h i n g s t h a t h e l p y o r e m e m b e r ) T h " i n c r e m e n t r e g i s t e r " c o m m a n d b e c o m e s I N X , w h i l e ' l o a dt h a c c u m u l a t o r " i L D A . T h i s i m u c h e a s i e r t r e m e m b e r , b c a u s e t h l e t t e r s c a r r y s o m e m e a n i n g .

I t ' s i m p o r t a n t t r e m e m b e r , t h o u g h , t h a t w o r d s y o u s e w i t ha a s s e m b l e r ( t h e m n e m o n i c s ) a r n o m a c h i n e l a n g u a g e . L D m e a n s n o t h i n g t t h c o m p u t e r . M n e m o n i c s a r e t r a n s l a t e d i n t om a c h i n e l a n g u a g e b y o u r a s s e m b l e r . T h p r o c e s s i s i m p l ee n o u g h . F i r s t , y o w r i t e y o u r s o u r c e c o d e — t h m n e m o n i c s a n t h a c c o m p a n y i n g a d d r e s s e s a n v a l u e s . T h e n t h a s s e m b l e rs c a n s t h r o u g h y o u r c o d e , r e c o g n i z i n g t h e m n e m o n i c s , c h a n g i n gt h e m t t h e i r c o r r e c t n u m e r i c a l v a l u e s , o o b j e c t c o d e , a n s t o r i n gt h e m i m e m o r y . F i n a l l y , y o s a v e t h s e c t i o n o m e m o r y t h a t

1 8

Page 196: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 196/284

t M , : . . - ; . ,

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

F u l l - f l e d g e d , p o w e r f u l a s s e m b l e r s a l l o w y o t u s e q u a t e sa n l a b e l s i n s t e a d o f c a l c u l a t i n g e v e r y v a l u e , a d d r e s s , a n b r a n c h . B u t h e y c a n b e e x p e n s i v e , a n d y o u m a w a n t t u s t h i sp r o g r a m t c r e a t e y o u r o w s p e c i a l i z e d a s s e m b l e r .

A f t e r a l l , v e r y f e w p r o g r a m s u s e v e n h a l f t h a v a i l a b l em 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 s . S o m e o t h s h i f t i n s t r u c t i o n sa n a d d r e s s i n g m o d e s a r r a r e l y u s e d . I y o f o l l o w g o o d p r g r a m m i n g p r a c t i c e a n d i a g r a m y o u r p r o g r a m i a d v a n c e , t h e nw r i t e i d o w n a n c h e c k i o v e r b e f o r e e n t e r i n g i i t h c o m p u t e r ,y o c a f i g u r e o u e x a c t l y w h i c 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 sy o a r a c t u a l l y g o i n g t u s e , a n a d a p t t h i s a s s e m b l e r s i r e c o gn i z e s t h c o d e y o n e e d i t r e c o g n i z e a n n o t h e r .

T h v o c a b u l a r y t h a t n e e d e d t w r i t e " G u m b a l T a n o t h e rg a m e s c o n s i s t e d o 4 m n e m o n i c s :3 - b y t e I n s t r u c t i o n sA D C M C M E VD E I N J M J S L D

L D A . YL D L D S B S T S T A . XS T A . YS T S T

2 - b y t e I n s t r u c t i o n sA D C #B E B M B N B P C M P #C M P ( ) YC P X #C P Y #

I N L D L D A #L D X #L D Y #S D C #S T S T A Q Y

1 - b y t e I n s t r u c t i o n sC L D E D E I N I N R T T A T X T Y

D e s c r i b i n g t h e f u n c t i o n o e v e r y m a c h i n e l a n g u a g e i n s t r u ct i o n i b e y o n d t h s c o p e o t h i s a r t i c l e . F o t h a t , y o n e e d b o o kt h a t t e a c h e s 6 5 0 2 m a c h i n e l a n g u a g e , a n s p e c i f i c i n f o r m a t i o na b o u t h o t h V I w o r k s c a n b e f o u n d i t h V I C - 2 0 r e f e r e n c eg u i d e a n o t h e r s o u r c e s . ( S e e M a c h i n e L a n g u a g e f o B e g i n n e r s a n M a p p i n g t h V I C f r o m C O M P U T E ! B o o k s e d . )C u s t o m i z i n g t h A s s e m b l e rI y o w i s h , i i s i m p l e m a t t e r t c h a n g e t h B A S I C A s s e m b l e r ' sv o c a b u l a r y . T h m n e m o n i c s a r p a i r e d w i t h t h c o r r e s p o n d i n gm a c h i n e l a n g u a g e n u m b e r s i t h D A I A s t a t e m e n t s o l i n e s 4 t h r o u g h 4 5 ( f o r e x a m p l e , C M P . Y , 2 1 7 , D E C , 2 0 6 , J M P , 7 6 ) . T h m n e m o n i c s a r f u r t h e r g r o u p e d w i t h i n c e r t a i n l i n e n u m b e r s a c o r d i n g t t h n u m b e r o b y t e s a s s o c i a t e d w i t h t h s p e c i f i c i s t r u c t i o n . I n s t r u c t i o n s w i t h i m p l i e d a d d r e s s i n g t a k e o n b y t e ;i n s t r u c t i o n s w i t h z e r o - p a g e a n i m m e d i a t e a d d r e s s i n g t a k e t w

1 8

Page 197: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 197/284

b y t e s ; i n s t r u c t i o n s w i t h a b s o l u t e a n i n d i r e c t a d d r e s s i n g t a k et h r e e b y t e s .I n s t r u c t i o n E x a m p l e L i n e

B y t e s ( m n e m o n i c , o p e r a n d ) N u m b e rD L A , 7 4 3 2 4 a n 4 L D A # , 0 4 a n 4 I N 4

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

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

S i n c e m a c h i n e l a n g u a g e i P O K E d i n t o t h V I C - 2 0 i d e c i m a lf o r m , t h m o s t d i r e c t s y s t e m i t w r i t e t h o p e r a n d s ( t h ea d d r e s s e s o v a l u e s f o l l o w i n g t h e i n s t r u c t i o n s ) i t h e i r d e c i m a lr a t h e r t h a n h e x a d e c i m a l f o r m . h e x a d e c i m a l - t o - d e c i m a l c o v e r t e r w a n o t i n c o r p o r a t e d i t h a s s e m b l e r i o r d e r t s a v es p a c e .

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

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

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

t h m n e m o n i c s .I n t h e i m m e d i a t e m o d e , t h e r e i n s p a c e b e t w e e n t h e #

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

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

U s i n g t h e A s s e m b l e rO n c e t h B A S I C a s s e m b l e r p r o g r a m h a b e e n e n t e r e d a n s a v e do t a p e , t y p e R U a n p r e s s R E T U R N . T h s c r e e n w i l l d i s p l a y

1 8

Page 198: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 198/284

P R O G M E L O I N I ?L A S T ?

T h i n i t i a l a n l a s t m e m o r y l o c a t i o n s r e f e r t t h m a c h i n el a n g u a g e p r o g r a m t h a t y o i n t e n d t w r i t e . Y o m u s t r e s p o n d t t h e s e p r o m p t s o n l y i y o a r g o i n g t u s t h S j W E o T R A N SF E f u n c t i o n s . A t h i s p o i n t , t h e r e i n n e e d t r e s p o n d . P r e s sR E T U R N t w i c e .

T h s c r e e n n o d i s p l a y s t h e a s s e m b l e r ' s s i o p e r a t i n g f u n ct i o n s , p l u s i n d e x . T h e s e a r W R I T E , R E A D , T R A N S F E RS A V E , L O A D , E N D , I N D E X

P r e s s t h e k e c o r r e s p o n d i n g t t h f i r s t l e t t e r o t h e f u n c t i o ny o w i s h t u s e . E a c h f u n c t i o n i d e s c r i b e d b e l o w .W R I T E F u n c t i o nT h s c r e e n w i l l d i s p l a y

I N M E L O C ?E n t e r t h f i r s t m e m o r y l o c a t i o n y o w i s h t w r i t e t a n p r e s s

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

P E E K ( 4 9 ) + 2 5 6 * P E E K ( 5 0 ) + s a f e s t a r t i n g l o c a t i o n i u s u a l l y 6 4 0 0 . N o e n t e r y o u r

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 s e t . U s c o m m a s t s e p a r a t e t h m n e m o n i c s f r o m t h o p e r a n d . D n o u s s p a c e s . P r e s s R E T U R Na f t e r e a c h o p e r a n d . Y o d o n ' t h a v e t c a l c u l a t e t h m e m o r y l o c at i o n s . T h e y w i l l a u t o m a t i c a l l y s e q u e n c e f o e a c h n e l i n e . F o e x a m p l e ,6 4 0 0 S T X , 7 4 3 26 4 0 3 C P X # , 1 26 4 0 5 B N E , l l6 4 0 7 I N X ,6 4 0 8 L D A , 7 4 2 8

R e p e a t t h i s s e q u e n c e t c o m p l e t e y o u r p r o g r a m . I y o m a k em i s t a k e a n c a t c h i b e f o r e p r e s s i n g R E T U R N , s i m p l y c o r r e c t i t

I y o t y p e i a i n c o r r e c t i n s t r u c t i o n m n e m o n i c o o n t h a t i n o

1 9

Page 199: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 199/284

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

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

P E E K ( 5 1 ) + 2 5 6 * P E E K ( 5 2 ) - 1T h b r a n c h o p e r a n d s ( e . g . , B N E , x x x ) a r d i r e c t o f f s e t s . I t ' s

e a s y t c a l c t d a t e t h o f f s e t . I y o w i s h t b r a n c h t l o c a t i o n l a t e ri t h p r o g r a m , s i m p l y s u b t r a c t t h l o c a t i o n ( l i n e n u m b e r ) o t h i n s t r u c t i o n f o l l o w i n g t h e B N i n s t r u c t i o n f r o m t h l o c a t i o n ( l i n en u m b e r ) y o w i s h t b r a n c h t o E n t e r t h e r e s u l t a s t h e o p e r a n d o t h b r a n c h i n s t r u c t i o n . I y o w i s h t b r a n c h t l o c a t i o n p r e c e di n t h B N E , x x i n s t r u c t i o n , s u b t r a c t t h l o c a t i o n y o w i s h t

b r a n c h t f r o m t h l o c a t i o n f o l l o w i n g B N E , x x x ; t h e n s u b t r a c t t h i sr e s u l t f r o m 2 5 6 . Y o c a n b r a n c h u t 1 2 l o c a t i o n s f o r w a r d a n 1 2 l o c a t i o n s b a c k w a r d s , w h i c h i u s u a l l y s u f f i c i e n t . I n o t ,b r a n c h t J M i n s t r u c t i o n . W h e n y o w i s h t b r e a k t t h i d e x , p r e s s o n c e a n R E T U R N t w i c e .

R E A D F u n c t i o nT h s c r e e n w i l l d i s p l a y

R I N I M E M L O C ?E n t e r t h e f i r s t m e m o r y l o c a t i o n y o w i s h t r e a d a n p r e s s

R E T U R N . T h s c r e e n w i l l d i s p l a y t h i n s t r u c t i o n s e s t a r t i n g w i t hy o u r e n t e r e d m e m o r y l o c a t i o n a n e n d i n g w h e n t h e s c r e e n i f i l l e d . I t h a s s e m b l e r e n c o u n t e r s l o c a t i o n w i t h n i n s t r u c t i o no w i t h a i n s t r u c t i o n n o i i t v o c a b u l a r y , i w i l l l e a v e s p a c ea f t e r t h l o c a t i o n n u m b e r . T c o n t i n u e r e a d i n g a d d i t i o n a l i n s t r u ct i o n s , p r e s s C I y o w i s h t b r e a k t t h i n d e x , p r e s s I

T R A N S F E R F u n c t i o nI t h c o u r s e o d e v e l o p 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 ,

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

1 9

Page 200: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 200/284

I w i l l a l s o f i n d a l J M a n J S i n s t r u c t i o n s e l s e w h e r e i t h p r o g r a m t h a t j u m p t t h s e c t i o n b e i n g t r a n s f e r r e d . I w i l l r e v i s et h e i r o p e r a n d s a c c o r d i n g l y t j u m p t t h n e l o c a t i o n . I o r d e rt u s t h i s f e a t u r e , h o w e v e r , y o u m u s t n o r e s p o n d t t h p r o m p t s s h o w n o t h e s c r e e n w h e n t h a s s e m b l e r i s f i r s t r u n . I y o i g n o r e d t h o s e p r o m p t s b e f o r e , s i m p l y p r e s s R U N / S T O P , t y p eR U N , a n t h p r o g r a m w i l l s t a r t o v e r . Y o u r m a c h i n e l a n g u a g ep r o g r a m w i l l s t i l l b i m e m o r y . A n s w e r t h p r o m p t s w i t h t h i n i t i a l a n l a s t m e m o r y l o c a t i o n o t h e n t i r e m a c h i n e l a n g u a g ep r o g r a m .

T h s c r e e n w i l l d i s p l a y

T x x x x t o x x x xF R O M : I N I L O C ?

L A S T L O C ?T O I N I L O C ?

R e s p o n d t t h e s e t h r e e p r o m p t s w i t h t h s t a r t i n g a d d r e s s o t h b l o c k y o u w a n t t m o v e , t h e n d i n g a d d r e s s o t h b l o c k , a n t h s t a r t i n g a d d r e s s o t h n e l o c a t i o n . I t h a s s e m b l e r m u s ts c a n t h r o u g h l a r g e p r o g r a m f o J M a n J S i n s t r u c t i o n s , i w i l lt a k e f e s e c o n d s t c o m p l e t e t h t r a n s f e r ; t h e n i w i l la u t o m a t i c a l l y r e t u r n t t h i n d e x .

S A V E F u n c t i o nT h s c r e e n w i l l d i s p l a y

S x x x x t o x x x xN A M E ?T h i s f u n c t i o n w a w r i t t e n t s a v e t h e m a c h i n e l a n g u a g e p r o

g r a m t t h D a t a s s e t t e ( c a s s e t t e t a p e ) . R e s p o n d t t h N A M Ep r o m p t w i t h t h f i l e n a m e o y o u r p r o g r a m .

R e m e m b e r , i y o b e g a n t h i s s e s s i o n w i t h o u t r e s p o n d i n g t t h i n i t i a l p r o m p t s a s k i n g f o r s t a r t i n g a n e n d i n g l o c a t i o n s f o t h p r o g r a m , y o m u s t d o s b e f o r e s a v i n g . P r e s s R U N / S T O P , t h e nt y p e R U N . T h a s s e m b l e r w i l l s t a r t o v e r , b u t h m a c h i n e l a g u a g e p r o g r a m w i l l s t i l l b t h e r e i m e m o r y , u n c h a n g e d . E n t e rt 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 a y o a r p r o m p t e d , a n t h e nc h o o s e t h S j W E f u n c t i o n . 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 sw i l l b d i s p l a y e d b e f o r e t h N A M E p r o m p t , s y o c a m a k e s u r ey o u ' r e s a v i n g t h e e n t i r e p r o g r a m .

1 9

Page 201: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 201/284

' G Z Z D

L O A D F u n c t i o nT h s c r e e n w i l l d i s p l a y

N A M E ?T l o a d p r o g r a m w h i c h w a s a v e d t h r o u g h t h e a s s e m b l e r ,

f o l l o w t h e s e s t e p s :1 L O A D t h a s s e m b l e r p r o g r a m f r o m c a s s e t t e .2 R U N .3 P r e s s R E T U R N t w i c e ( u n t i l t h i n d e x a p p e a r s ) .4 P r e s s L , f o r L O A D .5 T y p e t h n a m e o t h p r o g r a m a n R E T U R N .6 P u t h c a s s e t t e w i t h t h m a c h i n e l a n g u a g e p r o g r a m i n t ot h e r e c o r d e r a n p r e s s P L A Y .7 W h e n t h p r o g r a m h a b e e n l o a d e d , t h i n d e x w i l l r e a pp e a r o t h s c r e e n .8 E x i t t h a s s e m b l e r b p r e s s i n g R U N / S T O P .9 T y p e S Y S x x x x . x x x x , o c o u r s e , i t h a d d r e s s w h e r e y o w a n t t h p r o g r a m t b e g i n e x e c u t i o n . D e p e n d i n g o h o y o d e s i g n e d y o u r p r o g r a m , i i n o n e c e s s a r i l y t h f i r s ta d d r e s s i t h p r o g r a m .I t ' s g o o d i d e a t w r i t e d o w n o p a p e r t h p e r t i n e n t a d d r e s s

e t h e l o w e s t a n h i g h e s t a d d r e s s e s i t h p r o g r a m , a n d w h e r ei s h o u l d b e g i n e x e c u t i o n . Y o c a n k e e p u p d a t i n g t h e s e a d d r e s s e so p a p e r a y o r e v i s e y o u r p r o g r a m .E N F u n c t i o nT h s c r e e n w i l l d i s p l a y

N A M E ?T h i s f u n c t i o n w a w r i t t e n t f i n d t h e n o p a r t i c u l a r p r

g r a m o t a p e . E n t e r t h e n a m e o t h p r o g r a m a n p r e s s R T U R N . W h e n t h e n h a b e e n f o u n d , t h a s s e m b l e r r e t u r n s t t h i n d e x .

B A S I C A s s e m b l e rP R I N T " { C L R } { D O W N } P R O G M E M L O C " : I N P U T "{ S P A C E S } l N I " ; J : I N P U T M { 2 S P A C E S } L A S T " ;

1 9

Page 202: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 202/284

D I M A $ ( 4 D I M A ( 4 5 ) F O R B = 0 T O 4 4 : R E A D A $ ( B , A ( B ) : N E X TP R I N T " { C L R } { D O W N } { R V S } w { O F F } R I T E , { R V S }r t o f f j e a d , { r v s } t { o f f j r a n s f e r " , 1 1 { d o w n }{ r v s } s { o f f } a v e , { r v s } l { o f f } o a d , { r v s } e{ o f f J n d , { r v s } i { o f f } n d e x hc = 0 : d = 0 : g e t b $ : f o r c = 1 t o 6 : i f b $ = m i d $ ( " w r t sl e " , c , 1 ) t h e n d = c : c = 6N E X T : O N D G O T O 6 , 1 6 , 2 6 , 3 3 , 3 5 , 3 8 : G O T O 4P R I N T " { C L R } " : I N P U T " { R V S } w { O F F } I N I M E O C " ; BP R I N T B ; : G = 0 : C = 0 : D = 0 : I N P U T B $ , C : I F B $ = " I " TH E N 3I F O 2 5 5 T H E N E = I N T ( C / 2 5 6 ) : F = I N T ( C - E * 2 5 6 )G O T O 1 2F O R D = 1 8 T O 3 5 : I F B $ = A $ ( D ) T H E N G = 2 : H = D : D = 3 5 :P O K E B + 1 , C

1 N E X T : F O R D = 3 6 T O 4 4 : I F B $ = A $ ( D ) T H E N G = 1 : H = D: D = 4 4

1 N E X T : G O T O 1 41 F O R D = 0 T O 1 7 : I F B $ = A $ ( D ) T H E N G = 3 : H = D : D = l 7 :

P O K E B + 1 , F : P O K E B + 2 , E1 N E X T1 I F G = 0 T H E N P R I N T " { U P j E R R O R " : G 0 T 0 71 P O K E B , A ( H ) : B = B + G : G O T O 71 P R I N T " { C L R } " : I N P U T " { R V S } R { O F F } I N M E

L O C " ; B : C = 0 : D = 4 01 E = C : F = P E E K ( B + C ) : P R I N T B + C " " ; : F O R G = 0 T O 1 71 I F F = A ( G ) T H E N H = P E E K ( B + C + 1 ) : I = P E E K ( B + C + 2

) : P R I N T A $ ( G ) T A B ( 1 2 ) I * 2 5 6 + H : C = C + 3 : G = 1 71 N E X T : F O R G = 1 8 T O 3 5 : 1 F F = A ( G ) T H E N P R I N T A $ ( G

) T A B ( 1 2 ) P E E K ( B + C + l ) : C = C + 2 : G = 32 N E X T : F O R G = 3 6 T O 4 4 : I F F = A ( G ) T H E N P R I N T A $ ( G) " { 4 S P A C E S } - - " : C = C + 1 : G = 4 42 N E X T : I F E = C T H E N P R I N T , : C = C + 12 I F C < D T H E N 1 72 P R I N T " { U P } " : P R I N T " { R V S } C { O F F } O N T , { R V S }

I { O F F } N D E X { U P } " , , : G E T B $ : I F B $ = " I " T H E N 32 I F B $ = " C " T H E N D = D + 4 0 : P R I N T " { 1 0 S P A C E S }

{ U P } " : G O T O 1 72 G O T O 2 32 P R I N T " { C L R } { R V S } T { O F F } " J " T O " K : P R I N T : P

R I N T " { D O W N } F R O M : I N L O C " ; : I N P U T B : I N P UT " { 5 S P A C E S } L A S T L O C " ; C2 I N P U T " { D O W N } T O { 2 S P A C E S } : I N L O C " ; D : I

F B > D T H E N F O R E = B T O C : P O K E E + D - B , P E E K ( E ) : N EX T : G O T O 2 9

2 F O R E = C T O B S T E P - 1 : P O K E E + D - B , P E E K ( E ) : N E X T: G O T O 2 9

1 9

Page 203: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 203/284

2 F O R E = J T O K : F = P E E K ( E ) : I F F = 3 2 O R F = 7 6 T H E N G =P E E K ( E + 1 ) + 2 5 6 * P E E K ( E + 2 ) : G O T O 3 13 N E X T - . G O T O

3 I F G > = B A N D G < = C T H E N G = G + D - B : L = I N T ( G / 2 5 6 ) :M = I N T ( G - L * 2 5 6 ) : P O K E E + 1 , M 2 P O K E E + 2 , L

3 G O T O 3 03 P R I N T " { C L R } { R V S } S { O F F } " J " T O " K " { D O W N } "

: I N P U T " N A M E " ; B $ : O P E N 1 , 1 , 1 , B $3 P R I N T # 1 , J : F O R D = J T O K : E = P E E K ( D ) : P R I N T * 1 ,

E : N E X T : C L O S E 1 : G O T O 33 P R I N T " { C L R } " : I N P U T " N A M E " 7 B $ : O P E N 1 , 1 , 0 ,

B $ 2 l N P U T # l , B3 I N P U T * 1 , C : D = S T : P O K E B , C B = B + 1 : I F D = 0 T H E N

3 3 C L O S E 1 : G O T O 33 P R I N T " { C L R } " : I N P U T " N A M E " 7 B $ : O P E N 1 , 1 , 0 ,

B 3 I N P U T # 1 / B : C = S T : I F C = 0 T H E N 3 94 C L O S E 1 : G O T O 34 D A T A C M P , 2 0 5 # C M P . Y # 2 1 7 # D E C , 2 0 6 , J M P , 7 6 / L

D A . Y , 1 8 5 , L D A / 1 7 3 / L D X / 1 7 4 # S T A # 1 4 1 / S T A . Y, 1 5 3

4 D A T A S T A . X , 1 5 7 , S T Y , 1 4 0 , J S R , 3 2 , L D Y , 1 7 2 , ST X , 1 4 2 , I N C , 2 3 8 , S B C , 2 3 7 , A D C , 1 0 9 , Z , 9

4 D A T A B E Q , 2 4 0 , B N E , 2 0 8 , C M P # , 2 0 1 , C P Y # , 1 9 2 ,C P X # , 2 2 4 , L D A # , 1 6 9 , L D Y # , 1 6 0 , L D X # , 1 6 2 , S TA ( ) Y , 1 4 5

4 D A T A A D C # , 1 0 5 , L D A , 1 6 5 , C M P ( ) Y , 2 0 9 , S T A , 1 33 , I N C , 2 3 0 , B P L , 1 6 , B M I , 4 8 , S B C # , 2 3 3 , Z , 9

4 D A T A D E Y , 1 3 6 , I N Y , 2 0 0 , R T S , 9 6 , C L C , 2 4 , T X A ,1 3 8 , T A X , 1 7 0 , I N X , 2 3 2 , D E X , 2 0 2 , T Y A , 1 5 2

1 9

Page 204: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 204/284

R . S . M o s e rl d G u m b a U " i a e x c i t i n g , a l m a c h i n e l a n g u a g e g a m e f o r t h e u n e x p a n d e dV I C . I c a b e e n t e r e d i n t o m e m o r y u s i n g t h B A S I C A s s e m b l e r . E v e n i y o d o n ' t k n o w m a c h i n e l a n g u a g e , y o c a e n t e r a n p l a y G u m b a U .T h p r o g r a m t h a t f o l l o w s i d e s i g n e d t b e n t e r e d u s i n g t h B A S I C A s s e m b l e r f r o m t h p r e c e d i n g a r t i c l e " C u s t o m i z e d B A S I CA s s e m b l e r / ' I y o a r u s i n g d i f f e r e n t a s s e m b l e r , t h c o d e c a b e n t e r e d a s h o w n , e x c e p t i t h r e e c a s e s :T h i s L i s t i n g N o r m a l A s s e m b l y C o d eC P X # , 1 2 C P # 1 S T A ( ) % 2 5 1 S T A ( 2 5 1 ) , YL D A . X 8 1 7 7 L D A 8 1 7 7 , Y

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

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

A l t h b r a n c h i n s t r u c t i o n s u s d i r e c t o f f s e t s i n s t e a d o l a b e l st t e l l t h c o m p u t e r w h e r e t g o T f i g u r e o u w h e r e t h p r o g r a mi b r a n c h i n g t o j u s t p e r f o r m c o u p l e o s i m p l e o p e r a t i o n s u s i n g

1 9

Page 205: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 205/284

t h n u m b e r r i g h t a f t e r t h b r a n c h i n s t r u c t i o n . I t h n u m b e r i l e s s t h a n 1 2 8 , a d i t t h a d d r e s s o t h i n s t r u c t i o n t h a t i m m e d ia t e l y f o l l o w s t h b r a n c h i n s t r u c t i o n . I t h n u m b e r i 1 2 o g r e a t e r , s u b t r a c t i f r o m 2 5 a n t h e n s u b t r a c t t h r e s u l t f r o m t h n e x t a d d r e s s i t h p r o g r a m . T h r e s u l t , i b o t h c a s e s , w i l l b t h a d d r e s s w h e r e t h p r o g r a m w i l l b r a n c h i t h b r a n c h c o n d i t i o n sa r m e t . A l n u m b e r s a r d e c i m a l .S a v i n g G u m b a l lO n c e y o h a v e f i n i s h e d t y p i n g i t h a s s e m b l e r l i s t i n g o " G u m -b a l l , " y o s h o u l d S A V E i t

1 P r e s s t h e S T O P / R U N k e y . ( D n o t t u r n o f t h c o m p u t e r . )2 R U t h A s s e m b l e r p r o g r a m a g a i n .3 I n i t i a l m e m o r y l o c a t i o n s h o u l d b e n t e r e d a 6 5 0 0 , p r e s sR E T U R N .4 L a s t m e m o r y l o c a t i o n s h o u l d b e n t e r e d a 7 3 8 7 , p r e s sR E T U R N .5 P r e s s f o S A V E .6 E n t e r a f i l e n a m e a n p r e s s R E T U R N .7 P r e s s P L A Y a n R E C O R D o t h e t a p e p l a y e r .

D e b u g g i n gA f t e r y o h a v e e n t e r e d t h g a m e p r o g r a m a n s a v e d i o t a p e ,y o s h o u l d c h e c k i f o p o s s i b l e e n t r y e r r o r s . T d t h i s , e n t e r t h f o l l o w i n g c h e c k i n g p r o g r a m i d i r e c t m o d e ( n l i n e n u m b e r s ) . I s u m s u t h c o n t e n t s o 2 m e m o r y l o c a t i o n s a t i m e . P r e s s t h es p a c e b a t p r i n t t h r e s u l t s . Y o m a p r i n t f e a t i m e b h o l d i n g t h s p a c e b a r d o w n a s h o r t t i m e .F O = 6 5 0 0 T 7 3 8 7 S T E P 2 4 : C = 0 : F O R B T + 2 3 : C

+ P E E K ( B ) : N E X T : P R I N T A ; C : W A I T 1 9 7 , 3 2 , 0 : N E X T

T h r e s u l t s d i s p l a y e d o t h s c r e e n s h o u l d b e S t a r t i n g S t a r t i n g S t a r t i n gM e m o r y M e m o r y M e m o r yL o c a t i o n S u L o c a t i o n S u L o c a t i o n S u

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

1 9

Page 206: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 206/284

6 5 9 6 3 3 2 5 6 8 8 4 2 7 0 9 7 1 7 2 2 7 1 76 6 2 0 3 3 6 8 6 9 0 8 2 3 8 7 7 1 9 6 2 6 7 06 6 4 4 2 6 5 0 6 9 3 2 2 4 4 8 7 2 2 0 2 4 4 46 6 6 8 2 3 5 1 6 9 5 6 3 1 7 5 7 2 4 4 3 4 2 16 6 9 2 1 9 6 5 6 9 8 0 3 1 2 8 7 2 6 8 3 1 3 26 7 1 6 2 4 7 4 7 0 0 4 2 7 7 6 7 2 9 2 2 6 8 26 7 4 0 2 8 5 2 7 0 2 8 3 1 8 2 7 3 1 6 2 4 4 76 7 6 4 2 9 7 0 7 0 5 2 3 4 2 6 7 3 4 0 3 0 9 1

7 3 6 4 3 6 9 2I y o f i n d d i s c r e p a n c y , r e a d y o u r p r o g r a m a t h s u s p e c t e dm e m o r y l o c a t i o n s a n c o r r e c t a n e r r o r s . T h e n S A ^ E t h p r g r a m a g a i n .G e t t i n g U n d e r W a O n c e t h p r o g r a m h a b e e n c h e c k e d a n c o r r e c t e d , r u i b e t e r i n g S Y 6 5 5 8 a n p r e s s i n g t h e r e t u r n k e y . T h s c r e e n w i l l a p e a r , s u r r o u n d e d b w a l l u n i t s w i t h t h g a m e s c o r e ( 0 0 0 0 ) a n h i g h s c o r e ( 0 0 0 0 ) i n t h b o t t o m b o r d e r . T h p l a y e r w i l l b n e a r t h b o t t o m c e n t e r o t h s c r e e n . N i n e t e e n g u m b a l l s w i l l e n t e r t h s c r e e n f r o m t h t o l e f t c o r n e r , w i t h s o u n d a c c o m p a n i m e n t .

Y o c a m o v e t h e p l a y e r b p r e s s i n g t h e f o l l o w i n g k e y s :A = l e f t

= r i g h tW = u pX = d o w n

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

s q u a r e o g u m . Y o u r g a m e s c o r e i i n c r e a s e d b t e n . I t h b u l l e th i t s w a l l u n i t o g u m , y o l o s e o n p o i n t . S o u n d a c c o m p a n i e sb o t h h i t s .

R e m e m b e r : D o n ' t s m a s h a l t h g u m b a l l s . A l e a s t o n m u s tr e a c h t h e b o t t o m a n g o u o t h g u m b a l l m a c h i n e , o y o u ' l l b o u o o r d e r a n d n o n e g u m b a l l s w i l l a p p e a r .

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

1 L O A D a n R U t h A s s e m b l e r .2 P r e s s R E T U R N t w i c e t g e t t h m e n u .

1 9

Page 207: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 207/284

3 B s u r e t a p e i p o s i t i o n e d c o r r e c t l y .4 T y p e f o L O A D .5 T y p e t h f i l e n a m e ( G U M B A L L ) a n p r e s s R E T U R N .6 P r e s s p l a y o t h r e c o r d e r .7 O n c e t h p r o g r a m h a b e e n L O A D e d p r e s s S T O P / R U N .8 T y p e S Y 6 5 5 8 a n t h g a m e w i l l a p p e a r .

G u m b a l lX - C o o r d i n a t e S u b r o u t i n e6 5 0 0 S T X , 7 4 3 2

S t a s h X 6 5 0 3 C P X # , 1 26 5 0 5 B P L , l l

I i g r e a t e r t h a n 1 2 b r a n c h 1 1

6 5 0 7 L D A # , 3 06 5 0 9 S T A , 2 5 2

C h a r a c t e r l o c a t i o n i 3 0 6 5 1 1 L D A # , 1 5 06 5 1 3 S T A , 2 5 4

C o l o r l o c a t i o n i 1 5 0 .6 5 1 5 J M P , 6 5 2 66 5 1 8 L D A # , 3 16 5 2 0 S T A , 2 5 2

C h a r a c t e r l o c a t i o n i 3 1 6 5 2 2 L D A # , 1 5 16 5 2 4 S T A , 2 5 4

C o l o r l o c a t i o n i 1 5 1 .6 5 2 6 L D A # , 06 5 2 8 C P X # , 06 5 3 0 B E Q 66 5 3 2 D E X ,6 5 3 3 A D # , 2 16 5 3 5 J M P , 6 5 2 8

E a c h t i m e i d e c r em e n t e d , a d 2 t t h a c u m u l a t o r u n t i l = 0 T h e nb r a n c h f o r w a r d 6 s t e p s ( t 6 5 3 8 ) .

6 5 3 8 S T A , 2 5 16 5 4 0 S T A , 2 5 3

S t o r e a c c u m u l a t o r i m e o r l o c a t i o n s 2 5 a n 2 5 3 .

6 5 4 2 L D X , 7 4 3 2

6 5 4 5 R T S ,R e s t o r e t h e o r i g i n a l v a l u e o X t h e n r e t u r n f r o m t h s u b r o u t i n e .

E r a s e S u b r o u t i n e6 5 4 6 J S R , 6 5 0 06 5 4 9 L D A # , 3 26 5 5 1 S T A ( ) Y , 2 5 16 5 5 3 L D A # , 16 5 5 5 S T A ( ) Y , 2 5 36 5 5 7 R T S ,S t o r e 3 ( b l a n k ) a n 1 ( t h e

c o l o r w h i t e ) a t h X c o r d i n a t e s o t h c a l l i n gr o u t i n e .

S e S c r e e n6 5 5 8 L D Y # , 06 5 6 0 J S R , 6 6 1 06 5 6 3 L D Y # , 2 16 5 6 5 J S R , 6 6 1 06 5 6 8 L D X # , 06 5 7 0 J S R , 6 6 2 96 5 7 3 L D X # , 2 26 5 7 5 J S R , 6 6 2 9

P r i n t w a l l u n i t s a b o r d e r s .6 5 7 8 L D Y # , 46 5 8 0 D E Y ,6 5 8 1 L D A # , 4 86 5 8 3 S T A . Y 8 1 7 76 5 8 6 C P Y # , 06 5 8 8 B N E , 2 4 6

S e h i g h s c o r e t o z e r o .6 5 9 0 L D X # , l6 5 9 2 L D Y # , 16 5 9 4 J S R , 6 5 4 66 5 9 7 I N Y ,

1 9

Page 208: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 208/284

6 5 9 8 C P Y # , 2 16 6 0 0 B N E , 2 4 86 6 0 2 I N X ,6 6 0 3 C P X # , 2 26 6 0 5 B N E , 2 4 1

C l e a r s c r e e n .6 6 0 7 J M P , 6 6 4 8

J u m p t i n i t i a l i z a t i o nr o u t i n e .

6 6 1 0 L D X # , 06 6 1 2 J S R , 6 5 0 06 6 1 5 L D A # , 1 0 26 6 1 7 S T A ( ) Y , 2 5 16 6 1 9 L D A # , 06 6 2 1 S T A ( ) Y , 2 5 36 6 2 3 I N X ,6 6 2 4 C P X # , 2 36 6 2 6 B N E , 2 4 06 6 2 8 R T S ,

S u b r o u t i n e t p u w a l lu n i t s ( c h a r a c t e r 1 0 2 ) a s i d eb o r d e r s .

6 6 2 9 L D # , 6 6 3 1 J S R , 6 5 0 06 6 3 4 L D # , 1 0 26 6 3 6 S T A ( ) Y , 2 5 16 6 3 8 L D # , 6 6 4 0 S T A ( ) Y , 2 5 36 6 4 2 I N Y ,6 6 4 3 C P Y # , 2 16 6 4 5 B N E , 2 4 06 6 4 7 R T S ,

S u b r o u t i n e t p r i n t w a l lu n i t s a t o a n b o t t o mb o r d e r s .

I n i t i a l i z a t i o n6 6 4 8 L D A # , 2 06 6 5 0 S T A , 7 4 2 36 6 5 3 L D A # , 1 06 6 5 5 S T A , 7 4 2 4

S e t p l a y e r a c e n t e r b o t t o mo f s c r e e n .

6 6 5 8 L D # , 6 6 6 0 D E Y ,6 6 6 1 L D A # , 4 86 6 6 3 S T A . Y , 8 1 6 6

6 6 6 6 C P Y # , 06 6 6 8 B N E , 2 4 6

S e g a m e s c o r e t z e r o .6 6 7 0 L D A # , 16 6 7 2 S T A , 7 4 3 6

S e l o c a t i o n 7 4 3 6 t 1 w h i c ha l l o w s n e g u m b a l l s t a p p e a r .

6 6 7 5 L D # , 6 6 7 7 L D # , 6 6 7 9 S T A . Y , 7 4 4 0S e d i r e c t i o n s t a t u s o g u m -

b a l l s t o z e r o .6 6 8 2 L D A # , 16 6 8 4 S T A . Y , 7 4 6 06 6 8 7 S T A . X 7 4 8 06 6 9 0 I N Y ,6 6 9 1 C P Y # , 2 06 6 9 3 B N E , 2 3 8

S e g u m b a l l s ' a n c o r d i n a t e s t 1

6 6 9 5 S T A , 7 4 2 76 6 9 8 L D A # , 1 56 7 0 0 S T A , 3 6 8 7 8

S e v o l u m e h i g h ( 1 5 ) .6 7 0 3 J M P , 6 7 0 6

J u m p t t i m e r .T i m e r6 7 0 6 L D A # , 26 7 0 8 S T A , 7 4 2 86 7 1 1 L D A # , 26 7 1 3 S T A , 7 4 2 9

S t o r e a a 7 4 2 8 a n 7 4 2 9 .6 7 1 6 L D # , 5 06 7 1 8 S T A , 7 4 3 16 7 2 1 S T A , 7 4 3 0

S t o r e 5 i 7 4 3 1 a n 7 4 3 0 .6 7 2 4 D E Q 7 4 3 06 7 2 7 B N E , 2 5 1

D e c r e m e n t t h c o n t e n t s o 7 4 3 0 u n t i l i e q u a l s 0

6 7 2 9 D E C 7 4 3 16 7 3 2 B N E , 2 4 3

D e c r e m e n t 7 4 3 1 . T h i s i n e s t e d o u t s i d e t h e p r e v i o u sl o o p . T s l o w d o w n o

Page 209: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 209/284

\ - " . I - ■ : ' * ■ ' • ' : i j j \

s p e e d u t h g a m e , t h u s e r c a p u d i f f e r e n t n u b e r s a 7 4 3 0 a n 7 4 3 1 w h i l ee n t e r i n g t h p r o g r a m o d b u g g i n g w i t h m o n i t o r o d e b u g g e r .

6 7 3 4 J M P , 6 8 2 3J u m p t b u l l e t r o u t i n e .

6 7 3 7 D E Q 7 4 2 96 7 4 0 B N E , 2 3 0

D e c r e m e n t 7 4 2 9 .6 7 4 2 J M P , 6 7 5 3

J u m p t p l a y e r r o u t i n e .6 7 4 5 D E Q 7 4 2 86 7 4 8 B N E , 2 1 7

D e c r e m e n t 7 4 2 8 .6 7 5 0 J M P , 7 1 3 7

J u m p t c o n t r o l l e r r o u t i n e .P l a y e r R o u t i n e6 7 5 3 L D X , 7 4 2 36 7 5 6 L D Y , 7 4 2 4

L o a d l a s t p l a y e r l o c a t i o n i nX a n d Y .

6 7 5 9 J S R , 6 5 4 6E r a s e l a s t p l a y e r l o c a t i o n .

6 7 6 2 L D A , 1 9 7L o o k a k e y b o a r d .

6 7 6 4 C M P # , 1 76 7 6 6 B N E , 16 7 6 8 D E Y ,I A m o v e p l a y e r l e f t .6 7 6 9 C M P # , 1 86 7 7 1 B N E , 16 7 7 3 I N Y ,

I D m o v e p l a y e r r i g h t .6 7 7 4 C M P # , 96 7 7 6 B N E , 16 7 7 8 D E X ,

I W m o v e p l a y e r u p 6 7 7 9 C M P # , 2 66 7 8 1 B N E , 56 7 8 3 C P X # , 2 16 7 8 5 B E Q 16 7 8 7 I N X ,

I X m o v e p l a y e r d o w n u l e s s a l r e a d y o b o t t o m l i n e .

6 7 8 8 J S R , 6 5 0 06 7 9 1 L D A # , 1 0 26 7 9 3 C M P ( ) Y , 2 5 16 7 9 5 B N E , 9

L o o k t s e i n e p l a y e rl o c a t i o n i o c c u p i e d b w a l l u n i t o g u m .

6 7 9 7 L D X , 7 4 2 36 8 0 0 L D X 7 4 2 46 8 0 3 J S R , 6 5 0 0

I y e s , t h e n r e p l a c e p l a y e ri l a s t l o c a t i o n ; o t h e r w i s e ,l e n e l o c a t i o n s t a n d .

6 8 0 6 L D A # , 6 56 8 0 8 S T A ( ) Y , 2 5 16 8 1 0 L D A # , 06 8 1 2 S T A ( ) Y , 2 5 3

P r i n t p l a y e r .6 8 1 4 S T X , 7 4 2 36 8 1 7 S T Y , 7 4 2 4

S t o r e p l a y e r l o c a t i o n .6 8 2 0 J M P , 6 7 4 5

J u m p t o t i m e r .B u l l e t R o u t i n e6 8 2 3 L D X , 7 4 2 56 8 2 6 L D Y , 7 4 2 6

L o a d l a s t b u l l e t l o c a t i o n .6 8 2 9 L D A # , 06 8 3 1 S T A , 3 6 8 7 56 8 3 4 S T A , 3 6 8 7 6T u r n o f s o u n d .6 8 3 7 L D A , 7 4 3 86 8 4 0 C M # , 6 8 4 2 B E Q , 1 8

I b u l l e t i a l r e a d y m o v i n g( 7 4 3 8 i s e t t o 1 ) t h e nb r a n c h .

6 8 4 4 L D A , 1 9 76 8 4 6 C M # , 5 46 8 4 8 B E Q , 3

I a r r o w k e y i p r e s s e d ( 5 4 ) ,t h e n b r a n c h .

6 8 5 0 J M P , 6 7 3 7R e t u r n t o t i m e r .

6 8 5 3 L D X , 7 4 2 3

2 0

Page 210: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 210/284

6 8 5 6 L D Y , 7 4 2 4L o a d i n i t i a l b u l l e t l o c a t i o n( w h i c h i t h s a m e a p l a y e r l o c a t i o n ) .

6 8 5 9 J M P , 6 8 6 5S k i p n e x t s t e p .

6 8 6 2 J S R , 6 5 4 6E r a s e t h l a s t b u l l e tl o c a t i o n .

6 8 6 5 D E X ,M o v e t h b u l l e t u o n s t e p .

6 8 6 6 L D A # , 16 8 6 8 S T A , 7 4 3 8

S e b u l l e t s t a t u s t m o v i n g( 1 ) .

6 8 7 1 S T X , 7 4 2 56 8 7 4 S T X 7 4 2 6

S t o r e p r e s e n t b u l l e tl o c a t i o n .6 8 7 7 J S R , 6 5 0 0

6 8 8 0 L D A # , 1 0 26 8 8 2 C M P ( ) X 2 5 16 8 8 4 B N E , 1 1

L o o k t s e i t h b u l l e t h i t sw a l l u n i t o g u m .

6 8 8 6 L D # , 2 0 16 8 8 8 S T A , 3 6 8 7 6

I y e s , t u r n o t h s o u n d .6 8 9 1 J S R , 6 9 2 56 8 9 4 J M P , 6 9 4 3

R e s e t b u l l e t a n j u m p t b u l l e t - h i t s - w a l l r o u t i n e .

6 8 9 7 L D # , 8 16 8 9 9 C M P ( ) Y , 2 5 16 9 0 1 B N E , 1 1

L o o k t s e i b u l l e t h i t sg u m b a l l .

6 9 0 3 L D # , 2 2 36 9 0 5 S T A , 3 6 8 7 5

I y e s , t u r n o t h s o u n d .6 9 0 8 J S R , 6 9 2 56 9 1 1 J M P , 7 2 3 4

R e s e t b u l l e t a n j u m p t b u l l e t - h i t s - g u m b a l lr o u t i n e .

6 9 1 4 L D # , 3 06 9 1 6 S T A ( ) Y , 2 5 1I t h b u l l e t h i t s n e i t h e r ,t h e n p r i n t n e b u l l e t .

6 9 1 8 L D A # , 06 9 2 0 S T A ( ) Y , 2 5 36 9 2 2 J M P , 6 7 3 7

J u m p t t i m e r .6 9 2 5 L D A , 7 4 2 36 9 2 8 S T A , 7 4 2 56 9 3 1 L D A , 7 4 2 46 9 3 4 S T A , 7 4 2 66 9 3 7 L D A # , 06 9 3 9 S T A , 7 4 3 86 9 4 2 R T S ,

S u b r o u t i n e t r e s e t b u l l e tl o c a t i o n t p l a y e r l o c a t i o na n r e s e t b u l l e t s t a t u s t s t o p ( 0 ) .

B u l l e t - H i t s - W a l l R o u t i n e6 9 4 3 I N X ,6 9 4 4 J S R , 6 5 4 6

E r a s e l a s t b u l l e t .6 9 4 7 D E C , 8 1 6 96 9 5 0 L D A , 8 1 6 96 9 5 3 C M # , 4 76 9 5 5 B N E , 5 06 9 5 7 L D # , 5 76 9 5 9 S T A , 8 1 6 9

S u b t r a c t f r o m g a m e s c o r e .6 9 6 2 D E Q 8 1 6 86 9 6 5 L D A , 8 1 6 86 9 6 8 C M P # , 4 76 9 7 0 B N E , 3 56 9 7 2 L D A # , 5 76 9 7 4 S T A , 8 1 6 8

" T e n s " d i g i t o s c o r e .6 9 7 7 D E C , 8 1 6 76 9 8 0 L D A , 8 1 6 76 9 8 3 C M P # , 4 76 9 8 5 B N E , 2 06 9 8 7 L D # , 5 76 9 8 9 S T A , 8 1 6 7

" H u n d r e d s " d i g i t o s c o r e .6 9 9 2 D E Q 8 1 6 66 9 9 5 L D A , 8 1 6 6

2 0

Page 211: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 211/284

6 9 9 8 C M # , 4 77 0 0 0 B N E , 57 0 0 2 L D A # , 5 77 0 0 4 S T A , 8 1 6 6

" T h o u s a n d s " d i g i t o s c o r e .7 0 0 7 J M P , 6 7 3 7

J u m p t o t i m e r .G u m b a l l R o u t i n e7 0 1 0 S T Y , 7 4 3 3

S t a s h Y 7 0 1 3 L D X , 7 4 2 17 0 1 6 L D Y , 7 4 2 2

L o a d g u m b a l l l o c a t i o n i n t oX a n d Y .

7 0 1 9 J S R , 6 5 0 07 0 2 2 L D A # , 1 0 27 0 2 4 C M P ( ) Y , 2 5 17 0 2 6 B N E , 87 0 2 8 L D A # , 07 0 3 0 S T A , 7 4 2 07 0 3 3 J M P , 7 1 3 1

E l i m i n a t e h i g u m b a l l ( s t o r ea 7 4 2 0 ) ; r e c o g n i z e t h a t

g u m b a l l w a h i b e c a u s et h e r e i s q u a r e o g u a t h e g u m b a l l ' s l o c a t i o n .

7 0 3 6 L D A # , 3 27 0 3 8 S T A ( ) Y , 2 5 17 0 4 0 L D A # , 17 0 4 2 S T A ( ) Y , 2 5 3

E r a s e l a s t g u m b a l l .7 0 4 4 L D A , 7 4 2 07 0 4 7 C M P # , 17 0 4 9 B E Q , 1 0

L o o k f o l e f t o r i g h t g u b a l l d i r e c t i o n ( l e f t = 1 ) .

7 0 5 1 I N Y ,7 0 5 2 L D A # , 1 0 27 0 5 4 C M P ( ) Y , 2 5 17 0 5 6 B E Q , 2 37 0 5 8 J M P , 7 0 8 8

L o o k o n s p a c e t t h r i g h tf o w a l l o g u m .

7 0 6 1 D E Y ,7 0 6 2 L D A # , 1 0 27 0 6 4 C M P ( ) Y , 2 5 1

7 0 6 6 B E Q , 37 0 6 8 J M P , 7 0 8 8

L o o k o n s p a c e t t h l e f tf o w a l l o r g u m .

7 0 7 1 I N Y ,7 0 7 2 L D A # , 27 0 7 4 S T A , 7 4 2 07 0 7 7 I N X ,7 0 7 8 J M P , 7 0 8 8

M o v e g u m b a l l t t h r i g h to n s p a c e ; s e g u m b a l ls t a t u s t o n g / r t ( 2 ) .

7 0 8 1 D E Y ,7 0 8 2 L D A # , 17 0 8 4 S T A , 7 4 2 0

M o v e g u m b a l l t t h l e f to n s p a c e ; s e g u m b a l ls t a t u s t l e f t ( l ) .

7 0 8 7 I N X ,7 0 8 8 C P X # , 2 27 0 9 0 B N E , 37 0 9 2 J M P , 6 6 7 0

I g u m b a l l r e a c h e s b o t t o m( 2 2 ) , t h e n j u m p t i n i t i a l i z a t i o n .

7 0 9 5 J S R , 6 5 0 07 0 9 8 L D A # , 1 0 27 1 0 0 C M P ( ) Y , 2 5 17 1 0 2 B N E , 47 1 0 4 I N X ,7 1 0 5 J M P , 7 0 9 5

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

7 1 0 8 L D A # , 6 57 1 1 0 C M P ( ) Y , 2 5 17 1 1 2 B N E , 37 1 1 4 J M P , 7 3 0 2

I g u m b a l l h i t s p l a y e r , t h e nj u m p t g u m b a l l - h i t s -p l a y e r r o u t i n e .

7 1 1 7 L D A # , 8 17 1 1 9 S T A ( ) Y , 2 5 17 1 2 1 L D A # , 4

2 0

Page 212: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 212/284

7 1 2 3 S T A ( ) Y , 2 5 3P r i n t n e g u m b a l l .

7 1 2 5 S T X , 7 4 2 17 1 2 8 S T Y , 7 4 2 2

S t o r e n e g u m b a l ll o c a t i o n .

7 1 3 1 L D Y , 7 4 3 3R e s t o r e o r i g i n a l Y

7 1 3 4 J M P , 7 2 1 3J u m p t c o n t r o l l e r r o u t i n e .

C o n t r o l l e r R o u t i n e7 1 3 7 L D A # , 2 3 57 1 3 9 S T A , 3 6 8 7 4

T u r n o s o u n d f o g u m b a l l .7 1 4 2 L D A , 7 4 3 67 1 4 5 C M P # , 17 1 4 7 B N E , 2 37 1 4 9 L D Y , 7 4 2 77 1 5 2 C P Y # , 1 97 1 5 4 B E Q , 1 17 1 5 6 L D A # , 27 1 5 8 S T A . % 7 4 4 07 1 6 1 I N Q 7 4 2 77 1 6 4 J M P , 7 1 7 2

I 7 4 3 6 c o n t a i n s 1 t h e n g e e r a t e n e g u m b a l l s b s t o ri n a 7 4 4 0 p l u s o f f s e t ( Y ) .

7 1 6 7 L D A # , 07 1 6 9 S T A , 7 4 3 6

W h e n c o m p l e t e , t u r n o f g u m b a l l g e n e r a t o r b s t o ri n g 2 i 7 4 3 6 .

7 1 7 2 L D Y # , 2 5 57 1 7 4 I N Y ,7 1 7 5 L D A . Y , 7 4 4 07 1 7 8 B N E , 1 27 1 8 0 C P Y # , 1 97 1 8 2 B N E , 2 4 6

L o o k a s t a t u s o e a c h g u b a l l . I 0 t h e n s k i p t n e x tg u m b a l l . I o 2 t h e nb r a n c h .

7 1 8 4 L D A # , 07 1 8 6 S T A , 3 6 8 7 4

7 1 8 9 J M P , 6 7 0 6W h e n c o m p l e t e d , t u r n o f s o u n d a n j u m p t o t i m e r .

7 1 9 2 L D A . % 7 4 4 07 1 9 5 S T A , 7 4 2 07 1 9 8 L D A . Y , 7 4 6 07 2 0 1 S T A , 7 4 2 17 2 0 4 L D A . Y , 7 4 8 07 2 0 7 S T A , 7 4 2 2

T r a n s f e r d i r e c t i o n s t a t u sa n X - Y c o o r d i n a t e s f r o mm a t r i x m e m o r y t i n d i v i du a g u m b a l l m e m o r y .

7 2 1 0 J M P , 7 0 1 0J u m p t g u m b a l l r o u t i n e .

7 2 1 3 L D A , 7 4 2 07 2 1 6 S T A . Y , 7 4 4 07 2 1 9 L D A , 7 4 2 17 2 2 2 S T A . Y , 7 4 6 07 2 2 5 L D A , 7 4 2 27 2 2 8 S T A . Y , 7 4 8 0

T r a n s f e r n e d i r e c t i o ns t a t u s a n n e X - Y c o o r d in a t e s f r o m i n d i v i d u a l g u b a l l m e m o r y t m a t r i xm e m o r y .

7 2 3 1 J M P , 7 1 7 4C o n t i n u e s e q u e n c e .

B u l l e t H i t s G u m b a l l7 2 3 4 J S R , 6 5 0 07 2 3 7 L D A # , 1 0 27 2 3 9 S T A ( ) Y , 2 5 17 2 4 1 L D A # , 47 2 4 3 S T A ( ) Y , 2 5 3

P r i n t w a l l u n i t o v e r h i g u m b a l l .

7 2 4 5 I N X ,7 2 4 6 J S R , 6 5 4 6

E r a s e b u l l e t u n d e r h i g u m b a l l .

7 2 4 9 I N Q 8 1 6 87 2 5 2 L D A , 8 1 6 87 2 5 5 C M # , 5 87 2 5 7 B N E , 3 57 2 5 9 L D A # , 4 8

2 0

Page 213: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 213/284

7 2 6 1 S 1 A , 8 1 6 8I n c r e a s e g a m e s c o r e b 1 0

7 2 6 4 I N Q 8 1 6 77 2 6 7 L D A , 8 1 6 77 2 7 0 C M P # , 5 87 2 7 2 B N E , 2 07 2 7 4 L D A # , 4 87 2 7 6 S T A , 8 1 6 7

H u n d r e d s d i g i t .7 2 7 9 I N C 8 1 6 67 2 8 2 L D A , 8 1 6 67 2 8 5 C M P # , 5 87 2 8 7 B N E , 57 2 8 9 L D A # , 4 87 2 9 1 S T A , 8 1 6 6

T h o u s a n d s d i g i t .7 2 9 4 L D A # , 07 2 9 6 S T A , 7 4 3 8

S t o p b u l l e t b s t o r i n g a 7 4 3 8 .

7 2 9 9 J M P , 6 7 3 7J u m p t t i m e r .

G u m b a l l H i t s P l a y e r7 3 0 2 J S R , 6 5 0 07 3 0 5 L D A # , 8 37 3 0 7 S T A ( ) Y , 2 5 17 3 0 9 L D A # , 27 3 1 1 S T A ( ) Y , 2 5 3

P r i n t h e a r t o v e r p l a y e r .7 3 1 3 L D A # , 2 0 17 3 1 5 S T A , 3 6 8 7 6

S e s o u n d f r e q u e n c y .7 3 1 8 L D A # , 1 57 3 2 0 S T A , 3 6 8 7 8

S e v o l u m e h i g h .7 3 2 3 L D A # , 1 2 07 3 2 5 S T A , 7 4 3 4

7 3 2 8 S T A , 7 4 3 57 3 3 1 D E Q 7 4 3 57 3 3 4 B N E , 2 5 17 3 3 6 D E Q 7 4 3 47 3 3 9 B N E , 2 4 37 3 4 1 D E Q 3 6 8 7 87 3 4 4 B N E , 2 3 3

S l o w l y d i m i n i s h v o l u m e .7 3 4 6 L D A # , 07 3 4 8 S T A , 3 6 8 7 6

T u r n s o u n d f r e q u e n c y o f f .7 3 5 1 L D Y # , 07 3 5 3 L D A . X 8 1 6 67 3 5 6 C M P Y , 8 1 7 77 3 5 9 B M I , 1 87 3 6 1 B N E , 87 3 6 3 I N X ,7 3 6 4 C P Y # , 47 3 6 6 B N E , 2 4 1

C o m p a r e g a m e s c o r e w i t hh i g h s c o r e .

7 3 6 8 L D A . Y , 8 1 6 67 3 7 1 S T A . X 8 1 7 77 3 7 4 I N Y ,7 3 7 5 C P Y # , 47 3 7 7 B N E , 2 4 5

I g a m e s c o r e i h i g h e r ,t h e n p r i n t n e h i g h s c o r e .

7 3 7 9 L D A , 1 9 77 3 8 1 C M P # , 1 57 3 8 3 B N E , 2 5 0

G a m e o v e r . W a i t u n t i l r et u r n k e i p r e s s e d t o r ep e a t t h g a m e .

7 3 8 5 J M P , 6 5 9 0J u m p t s e s c r e e n .

2 0

Page 214: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 214/284

Page 215: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 215/284

Page 216: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 216/284

Page 217: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 217/284

G R u s s D a v i e sm e m o r y m a i a c o n s o l i d a t e d d e s c r i p t i o n o a l m e m o r y l o c a

t i o n s t h a t c a b a d d r e s s e d b p a r t i c u l a r c o m p u t e r ( i t h i s c a s et h C o m m o d o r e V I C - 2 0 ) .

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

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

T h m a w i l l h e l p y o t o F i n d t h a r e a s o f m e m o r y t h a t c o n t r o l p a r t i c u l a r f u n c t i o nG r a s p t h i n t e r r e l a t i o n s h i p o f m e m o r y l o c a t i o n sD i s c o v e r n e w a y s o d o i n g t h i n g sU n d e r s t a n d h o s o m e t h i n g w o r k sC h a n g e m e m o r y s i d o e s w h a t y o u n e e d i t d U n d e r s t a n d w h a t o t h e r p r o g r a m m e r s 7 i n s t r u c t i o n s a r ed o i n gF i n d a n u s e x i s t i n g K e r n a l a n B A S I C r o u t i n e s t h a t y o

c a n u s e f o y o u r o w n e e d sR e m e m b e r t h l o c a t i o n o f t h a t o n f i e l d y o n e e d t f i n d

H o T h M a I F o r m a t t e dA B 0 0 0 3 4 $ 0 0 2 2 L = M e m o r y l o c a t i o n d e s c r i p t i o n X X X X

T h d e c i m a l a d d r e s s o t h b e g i n n i n g o t h f i e l d ( a s u s e d i P E E K a n d P O K E ) . A a s t e r i s k h e r e i n d i c a t e s z e r o - p a g e u s a b l el o c a t i o n ( v e r y u s e f u l i 6 5 0 2 m a c h i n e l a n g u a g e p r o g r a m s ) .

B = T h e h e x a d e c i m a l a d d r e s s o t h b e g i n n i n g o t h f i e l d ( u s e d i 6 5 0 2 m a c h i n e l a n g u a g e ) .

2 0

Page 218: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 218/284

T h l e n g t h o t h f i e l d ( i d e c i m a l ) ; = a s s u m e d .D e s c r i p t i o n o t h f i e l d ' s u s e .N o t a t i o n o t y p i c a l ( d e f a u l t ) v a l u e i 5 V I C - 2 0 ( i n c l u d e d w h e no f v a l u e ) .

B A S I C W o r k i n g S t o r a g e0 0 - 1 4 3 $ 0 0 - $ 8 F L = 1 4 4

N o t e : W h e n y o u ' r e n o u s i n g B A S I C , M C o d e c o u l d b s t o r e d i t h i s a r e a .F i e l d

D e c i m a l H e L e n g t h D e s c r i p t i o n D e f a u l t0 6 5 0 2 J M o p e r a t i o n f o

f o l l o w i n g U S v e c t o r . 7 1 L = U S j u m p v e c t o r ; s e t t h i s w i t h

P O K E s b e f o r e i s s u i n g U S R .A l s o u s e d a v e c t o r f o B A S I Ce r r o r m e s s a g e r o u t i n e s . $ D 2 4 8

3 L = V e c t o r : F l o a t i n g p o i n t t f i x e dp o i n t B A S I C c o n v e r s i o n r o u t i n e . $ D 1 A A

5 L = V e c t o r : F i x e d p o i n t t f l o a t i n gp o i n t B A S I C c o n v e r s i o n r o u t i n e . $ D 3 9 4

7 S e a r c h c h a r a c t e r , o b s e r v e d t b i l i n e e n t e r e d t B A S I C , 3 i

e n t e r e d i i m m e d i a t e m o d e ,p r o b a b l y s e t o b B A S I Cs c a n r o u t i n e .

8 F l a g : S c a n - q u o t e s , o b s e r v e d t b 3 i c o l o n i i m m e d i a t e o B A S I C l i n e .

9 C o l u m n c u r s o r i c u r r e n t l y o i l i n e ; 0 - 8 71 F l a g : = L O A D , V E R I F Y .1 I n p u t b u f f e r p o i n t e r / s u b s c r i p t

n u m b e r , o b s e r v e d t b 7 u l e s s l i n e h a s u b s c r i p t e d v a r ia b l e , t h e n s e t 0 7

1 F l a g : D e f a u l t D E o f i r s t c h a r a ct e o f v a r i a b l e n a m e .

1 F l a g : V a r i a b l e t y p e ( F s t r i n g ,0 0 = n u m e r i c ) .

1 F l a g : N u m e r i c v a r i a b l e( 8 0 = i n t e g e r , 0 = f l o a t i n g p o i n t ) .

1 F / a g s : D A T A s c a n / L I S T q u o t e /m e m o r y f l a g o b s e r v e d t c o t a i n i n o i i m m e d i a t e l i n e o

i q u o t e s i l i n e a n n o : .2 1

Page 219: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 219/284

1 6 1 0 S u b s c r i p t o F N f l a g .1 1 F l a g : W h e r e i d a t a c o m i n g t B A S I C f r o m ?

= I N P U T , $ 4 = G E T ,$ 9 8 = R E A D .

1 1 A T s i g n / c o m p a r i s o ne v a l u a t i o n f l a g> i s l , = i s 2 , < i s 4 , a n i

c o m b i n a t i o ni A N o O i c o m p a r i s o n .

1 1 F l a g : C u r r e n t I / p r o m p t ,2 i G E T , I N P U T o R E A D i d o n e .

2 1 L = I n t e g e r v a l u e f o G O T O , S Y S ,P O K E , e t c .O b s e r v e d t b n o n o r m a l l yu s e d .

2 1 P o i n t e r : N e x t a v a i l a b l e d e s c r i p t o ri t h b e l o w t e m p o r a r y s t o r a g es t a c k . 2

2 1 L = P o i n t e r : L a s t t e m p o r a r y s t r i n gd e s c r i p t o r b e l o w( w i l l b e 2 5 , 0 ; 2 8 , 0 ; o 3 1 , 0 ) . 2 2 , 0

2 1 = D e s c r i p t o r s t a c k f o t e m p o r a r ys t r i n g s e a c h d e s c r i p t o r : l e n g t h ,t o p , b o t t o m ( e x p r e s s e d a d i p l a c e m e n t s w i t h i n B A S I C s t r i n gs t o r a g e ) .

3 2 L = M i s c e l l a n e o u s t e m p o r a r y p o i n te r a n i n d i r e c t i n d e x r e g i s t e ra n t e m p o r a r y s a v e .

3 8 2 6 L = M u l t i p l i c a t i o n p r o d u c t a r e a f o s o m e f u n c t i o n s .

4 2 L = P o i n t e r : S t a r t o B A S I C p r o g r a m( b y t e c o n t a i n i n g m u s t p r e c e d et h l o c a t i o n t h a t t h i s p o i n t s t o ) .L O A D p u t s p r o g r a m w h e r e t h i si p o i n t i n g ; i s s u e N E a f t e rc h a n g i n g t h i s p o i n t e r . 1 , 1 6

4 2 L = P o i n t e r : E n o B A S I C p r o g r a m ,s t a r t o v a r i a b l e s . V a r i a b l e s a r b u i l t f r o m l o w t h i g h m e m o r y .T h i s p o i n t e r i r e s e t b L O A D .

4 2 = P o i n t e r : E n o B A S I C v a r i a b l e s ,s t a r t o a r r a y s ; a r r a y s a r e b u i l tf r o m l o t h i g h m e m o r y . T h i sp o i n t e r i r e s e t b L O A D .

2 1

Page 220: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 220/284

4 3 L = P o i n t e r : E n o B A S I C a r r a y s ,s t a r t o f f r e e R A M .

5 3 = P o i n t e r : B o t t o m o B A S I C a c t i v es t r i n g s ; s t r i n g s a r b u i l t f r o mh i g h m e m o r y d o w n .

5 3 3 5 L = P o i n t e r : T o o B A S I C a c t i v es t r i n g s ; s t r i n g s a r b u i l t f r o mh i g h m e m o r y d o w n .

5 3 L = P o i n t e r : E n o B A S I C m e m o r y ;i s s u e C L a f t e r c h a n g i n g t h i sp o i n t e r . 0 , 3 0

5 3 L = C u r r e n t B A S I C l i n e n u m b e r b i n e x e c u t e d .

5 3 L = P r e v i o u s B A S I C l i n e n u m b e re x e c u t e d , i f o r m l o w , h i g h ( f o re x a m p l e , 1 4 8 , 1 9 = 5 0 1 2 ) .

6 3 L = P o i n t e r : B A S I C s t a t e m e n t t C O N T i n u e w i t h .

6 3 L = C u r r e n t D A T A l i n e n u m b e r i l o w , h i g h f o r m .

6 4 L = P o i n t e r : C u r r e n t B A S I C D A T Ai t e m .

6 4 = B A S I C i n p u t v e c t o r , s o u r c e o f i np u a d d r e s s .R E A D : P o i n t e r t o n p a s t l a s ti t e m r e a d .G E T : 0 , o 1 , i k e s t r u c k .I N P U T : L L , 2 w h e r e L n u m b e r o c h a r a c t e r s e n t e r e d .

6 9 4 5 L = C u r r e n t B A S I C v a r i a b l e n a m ew i t h t y p e f l a g s , o n o t w c h a ra c t e r s . o i n o i n c l u d e d i n a m e .F L O A T I N G P O I N T : C h a r a c t e r 1 c h a r a c t e r 2 o 0 I N T E G E R :C h a r a c t e r 1 c h a r a c t e r o ( b o t h O R e d w i t h 1 2 8 ) .S T R I N G : C h a r a c t e r 1 c h a r a c t e r

o ( c h a r a c t e r A N D e d w i t h1 2 8 ) .( A l s o s e e $ a n $ E . )

7 4 L = P o i n t e r : C u r r e n t B A S I C v a r i a b l eo s t r i n g d e s c r i p t o r .

7 4 L = P o i n t e r : B A S I C v a r i a b l e u s e d i c u r r e n t F O l o o p .

2 1

Page 221: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 221/284

7 4 L = Y - S A V E ; O P - S A V E ; B A S I CP o i n t e r S A V E ; P o i n t e r t c u r r e n to p e r a t i o n i o p e r a t i o n t a b l e .B A S I C c o m p a r i s o n s y m b o l .

L = P o i n t e r : B A S I C s u b j e c t f u n c t i o nd e f i n i t i o n .

= P o i n t e r : B A S I C s u b j e c t s t r i n gd e s c r i p t o r .B A S I C l e n g t h o s u b j e c t s t r i n g .C o n s t a n t f o B A S I C g a r b a g e c o l e c t i o n ( o 7 )

L = J U M P o p c o d e , v e c t o r t f u n c t i o nr o u t i n e .

1 B A S I C n u m e r i c w o r k a r e a ( M c a n u s e t h i s a r e a ) .F l o a t i n g P o i n t A C C U M 1 :E x p o n e n t .

= F l o a t i n g P o i n t A C C U M 1 :M a n t i s s a .F l o a t i n g P o i n t A C C U M 1 : S i g n .P o i n t e r : S e r i e s e v a l u a t i o nc o n s t a n t .A C C U M 1 : H i g h - o r d e r p r o p a g at i o n w o r d ( o v e r f l o w ) .F l o a t i n g P o i n t A C C U M 2 :E x p o n e n t .

= F l o a t i n g P o i n t A C C U M 2 :M a n t i s s a .F l o a t i n g P o i n t A C C U M 2 : S i g n .S i g n c o m p a r i s o n : A C C U M 1 v A C C U M 2 .A C C U M 1 : L o o r d e r o m a n t i s s a( f o r r o u n d i n g ) .T a p e b u f f e r l e n g t h s e r i e sp o i n t e r , o b s e r v e d t b 2 3 d u i n t a p e I / O . 1

1 1 7 L = 2 4 G e t - B A S I C - c h a r a c t e r r o u t i n e( C H R G E T ) p l a c e d h e r e a p o w e r - u p . Y o c a i n s e r t a M J S R / J M P i t h i s M r o u t i n e t i n t e r c e p t t h i n t e r p r e t a t i o n o B A S I C w o r d s . C H R G O T p o i n t e ra 1 2 ( $ 7 A ) t c h a r a c t e rr e t r i e v e d .

1 3 8 L = B A S I C R N w o r k a r e a , l a s t r a d o n u m b e r , i n i t i a l i z e d a p o w e r - u p .

2 1

7 7

8

8 8

8

8 7

9

9

1 0 1 0

1 0

1 0

1 0

n 1 1

1 1

1 1

4 4

4

5 5

5

5

6

6

6 6

6

6

6 6 6 7

7

Page 222: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 222/284

1 4 1 4 1 4

1 4 1 5

1 5

1 5

1 5

9 9 9

9 9

9

9

9

K e r n a l W o r k i n g S t o r a g e1 4 4 - 2 5 5 $ 9 0 - $ F F L = 1 1 21 4 9 S T I / s t a t u s w o r d .1 4 5 9 1 K e y s z v i t c h P I A : S T O P k e

s e n s e d , l e f t S H I F T k e a n e v e r y a l t e r n a t e b o t t o m k e c a a l s o b s e n s e d :2 5 5 = N O N E 2 3 = 2 5 = L E F T S H I F T 2 2 3 = ,2 5 = 1 9 1 = /2 4 = 1 2 7 = C R S R U P .T i m i n g c o n s t a n t f o t a p e s e r v o .F l a g : L O A D = 0 V E R I F Y = 1 S e r i a l : O u t p u t d e f e r r e d c h a r a c

t e f l a g .S e r i a l : B u f f e r e d c h a r a c t e r .

T a p e b l o c k s y n c f l a g s , t a p e s y n cn u m b e r .R e g i s t e r s a v e a r e a , t e m p o r a r ya r e a f o s e r i a l i n p u t .H o m a n y O P E N f i l e s , a d i p l a c e m e n t i n t o f i l e t a b l e a 6 0 1 .I N P U T d e v i c e n u m b e r .C o m m o n D e v i c e s : 0 = k e y b o a r d ,

= t a p e , = R S - 2 3 2 , 3 = s c r e e n ,4 / 5 = p r i n t e r , 8 - 1 1 = d i s k ,4 - 1 2 7 = s e r i a l .

1 5 9 O U T P U T d e v i c e n u m b e r ( a l s os e t b y C M D ) .

1 5 9 T a p e : C h a r a c t e r p a r i t y .1 5 9 T a p e : D i p o l e s w i t c h / b y t e r

c e i v e d f l a g .1 5 9 F l a g : K e r n a l m e s s a g e c o n t r o l :

1 2 8 = d i r e c t , 0 = R U N .1 5 9 T a p e : P a s s e r r o r l o g .1 5 9 T a p e : P a s s 2 e r r o r l o c o r r e c t e d .1 6 A = J I F F Y C L O C K : A c c e s s / c h a n g e

r e a l t i m e w i t h T I $ ; a c c e s s a c o u n t o j i f f i e s w i t h T I H i g h b y t e i n c r e m e n t e d e v e r y1 8 . 2 m i n u t e s , m i b y t e i c r e m e n t e d e v e r y 4 . s e c o n d s ,l o b y t e i n c r e m e n t e d e v e r y0 . 0 1 6 s e c o n d J i f f y ) .

1 6 A S e r i a l : B i c o u n t / e n d o i n p u t( E O I ) f l a g .

2 1

Page 223: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 223/284

1 6

1 6

1 6

A

A A

S e r i a l : C y c l e c o u n t e r / T a p e :D i p o l e n u m b e r .T a p e : C o u n t d o w n f o s y n c o

t a p e h e a d e r .T a p e : C o u n t o c h a r a c t e r s i t a p e

b u f f e r ( s e e 1 7 8 ) ;P O K E 1 6 6 , 1 9 1 t o f o r c e b u f f e r t t a p e .

1 6 A T a p e : S h o r t C O U N T E R !R S - 2 3 2 : R e c e i v e r i n p u t b i t e p o r a r y s t o r a g e .R S - 2 3 2 : W r i t e l e a d e r c o u n t .

1 6 A T a p e : E r r o r f l a g s .R S - 2 3 2 : R e c e i v e r b i c o u n t i n R S - 2 3 2 : W r i t e n e b y t e .

1 6 A T a p e : C o u n t e r f o z e r o s .R S - 2 3 2 : R e c e i v e r f l a g : s t a r t b i tc h e c k .R S - 2 3 2 : W r i t e s t a r t b i t .

1 7 A T a p e : B i t s 7 - 6 : f u n c t i o n , b i t s 5 - s y n c c o u n t d o w n .R S - 2 3 2 : R e c e i v e r p o i n t e r :B y t e / b u f f e r a s s e m b l y .

1 7 A T a p e : S h o r t C O U N T E R 2 .R S - 2 3 2 : R e c e i v e r p a r i t y /c h e c k s u m b i s t o r a g e .R S - 2 3 2 : W r i t e l e a d e r l e n g t h .

1 7 A L = T a p e : P o i n t e r t s t a r t o L O A D /S A V E a r e a ( i M L ) , o r p o i n t e r t t a p e b u f f e r i B A S I C p r o g r a mI / O .

1 7 A L = T a p e : P o i n t e r t o E N D + l o fL O A D / S A V E a r e a ( i M L ) , o p o i n t e r t t a p e b u f f e r e n i B A S I C p r o g r a m I / O .

1 7 B L = T a p e : T i m i n g c o n s t a n t s .1 7 B L = T a p e ; P o i n t e r t t a p e b u f f e r ( u s e r

c o u l d c h a n g e ) . 8 2 1 8 B T a p e : M i s c e l l a n e o u s f l a g s .

R S - 2 3 2 : t r a n s m i t b i c o u n t o u t ,t i m e r e n a b l e f l a g .

1 8 B T a p e : S y n c s a v e a r e a .R S - 2 3 2 : T r a n s m i t n e x t b i t b s e n t o E O T .

2 1

Page 224: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 224/284

1 8 1 8 1 8 1 8

B B B B

1 8

1 9

1 9 1 9 1 9

B B

B C C

1 8 B T a p e : E r r o r a c c u m u l a t o r .j R S - 2 3 2 : T r a n s m i t p o i n t e r i n t ob y t e d i s a s s e m b l y a r e a .

1 8 B N u m b e r o c h a r a c t e r s i f i l en a m e , 0 - 1 8 8 ; o n l y f i r s t 1 w i l ls h o w i " f o u n d " m e s s a g e .C u r r e n t l o g i c a l f i l e n u m b e r .C u r r e n t s e c o n d a r y a d d r e s s .C u r r e n t d e v i c e n u m b e r .P o i n t e r : C u r r e n t f i l e n a m e ,u s u a l l y s t o r e d i B A S I C a r e ab e l o w a c t i v e s t r i n g s , a b o v ea r r a y s .A f t e r L O A D , p o i n t e r t s t a r t o a r e a l o a d e d .T a p e : I n p u t c h a r a c t e r r e a d , w r i t e

s h i f t c h a r a c t e r .T a p e : N u m b e r o b l o c k s r e m a i n

i n t R A D / W R I T E .S e r i a l : / T a p e : B y t e b e i n g b u i l t .T a p e : M o t o r i n t e r l o c k s w i t c h .

= P o i n t e r : I / s t a r t a d d r e s s , s t a r ta d d r e s s f o L O A D ; n o r m a l l yw o u l d p o i n t t t a p e b u f f e r .

1 9 C L = P o i n t e r : K e r n a l s e t u p r o u t i n e . $ F D 6 DT a p e : T e m p o r a r y s t a r t a d d r e s s

f o L O A D .M a t r i x c o o r d i n a t e o k e p r e s s e d( 6 i n o n e ) . 6 N u m b e r o c h a r a c t e r s ( 0 - 1 0 ) i k e y b o a r d b u f f e r a 6 3 ( $ 2 7 7 ) .F l a g : R e v e r s e m o d e 1 = ^ o n

O = o f f .P o i n t e r : E n o l i n e f o r i n p u t .

= C u r s o r : C u r r e n t p o s i t i o n ( l o g i c a ll i n e , c o l u m n ) ; l o g i c a l l i n e c o u l db 2 2 , 4 4 , 6 6 , o r 8 c o l u m n s ; s e 2 1 ( $ D 5 ) . C o l u m n i a c t u a l l yt h n u m b e r o f c h a r a c t e r s o l i n e( s c r e e n l i n e l i n k s 2 1 ( $ D 9 ) f l a gc o n t i n u e d l i n e s ) .

2 0 C M a t r i x c o o r d i n a t e o l a s t k e p r e s s e d .

2 0 C C u r s o r : = o f f = f l a s h .2 0 C C u r s o r : C o u n t d o w n b e f o r e

b l i n k .

2 1

1 9

1 9 1 9

2 0 2 0

C

C C C C

Page 225: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 225/284

2 0 2 0 2 0

2 1

2 1 2 1

C D D D D D

2 0 C C u r s o r : C h a r a c t e r u n d e r c u r s o r( A S C I I v a l u e ) .C u r s o r : B l i n k f l a g , 1 = o f f .I n p u t f r o m s c r e e n / k e y b o a r d .

= C u r s o r : P o i n t e r t s t a r t o s c r e e nl i n e c u r s o r i o n C u r s o r : C o l u m n c u r s o r i o i s c r e e n l i n e .F l a g : Q u o t e m o d e = o f f , 1 = o n .C u r r e n t s c r e e n l i n e l e n g t h ( 2 1 ,4 3 , 6 5 , 8 7 ) .

2 1 D C u r s o r : C u r r e n t p h y s i c a l s c r e e nl i n e c u r s o r o n t c h a n g e t h p o s i t i o n o t h e c u r s o r y o m u s ta l t e r 2 0 2 , 2 1 0 , 2 1 1 , a n 2 1 4 .

2 1 D A S C I I v a l u e o l a s t k e p r e s s e d .T a p e : M o s t r e c e n t d i p o l e .

2 1 D N u m b e r o o u t s t a n d i n g i n s e r t s ;P O K E 2 1 6 , 0 t o t u r n o f i n s e r tm o d e .

2 1 D 9 L = 2 4 S c r e e n l i n e l i n k t a b l e . 1 5 I s c r e e n i a 7 6 8 0 , t h e n l i n kb y t e s a r 1 5 8 ; c o n t i n u a t i o ns c r e e n l i n e i 3 0 I s c r e e n i a 4 0 9 6 t h e n 1 4 4 ,c o n t i n u a t i o n = 1 6 .I 6 1 4 4 = 1 5 2 / 1 5 , e t c . , s e 6 4 8 .

2 4 F L = S c r e e n l i n e l i n k t a b l e t e m p o r a r yl i n e i n d e x .

2 4 F L = P o i n t e r : C u r r e n t s c r e e n c h a r a c t e rc o l o r n y b b l e ; 2 4 c a b e u s e d a

c o l o r p a g e n u m b e r a f t e r 0 - 5 0 6 ,P R I N T { H O M E } " i d o n e . 1 5 0 / 1 5 1

2 4 5 F 5 L = P o i n t e r : W h i c h k e y b o a r d t a b l eb e i n g u s e d o f o u r s t a r t i n g a $ E C 5 E , s e e 6 5 5 . $ E C 5 E

2 4 F = R S - 2 3 2 : P o i n t e r t r e c e i v e r b u f f e rb a s e l o c a t i o n .

2 4 9 F 9 L = R S - 2 3 2 : P o i n t e r t t r a n s m i tb u f f e r b a s e l o c a t i o n ; e a c h o b u f f e r s i 2 5 b y t e s , a l l o c a t e df r o m t h e t o p o m e m o r y p o i n t e rd o w n . Y o u s h o u l d O P E NR S - 2 3 2 ( d e v i c e 2 b e f o r e s t r i n g so a r r a y s a r e u s e d .

2 1

Page 226: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 226/284

2 5 1 * F L = U n u s e d p a g e s p a c e .2 5 F S T O P k e t e s t p a t t e r n f o $ F 7 7 0t c o m p a r e t v a l u e i 1 4 5 .

2 5 F S t a c k p o i n t e r p o i n t s h e r e w h e ns t a c k i f u l l .

S t a c k A r e a0 0 2 5 6 - 0 0 5 1 1 $ 0 1 0 0 - $ 0 1 F F = 2 5 6

B A S I C , K e r n a l , a n p r o c e s s o ra l u s t h i s L a s t I n , F i r s t O u ( L I F O ) s t a c k . B u i l t f r o m $ 1 F Fd o w n t $ 1 0 0 . S i z e t h e r e f o r e l i i t n e s t i n g t 1 2 l e v e l s o s u r o u t i n e s i M L M u c h l e s s i B A S I C ." O U T O F M E M O R Y " i r c e i v e d i s t a c k f i l l s u p E x a m p l e o B A S I C u s o f s t a c kf o F O k e y w o r d : V a l u e o $ 8 1 ,p o i n t e r t o v a r i a b l e , 5 - b y t e S T E Pv a l u e , s i g n , 5 - b y t e T v a l u e ,2 - b y t e R E T U R N l i n e n u m b e r ,p o i n t e r t l o o p R E T U R N p o i n t

1 b y t e s .2 5 1 0 L = 1 0 T e m p o r a r y f l o a t i n g p o i n t t

A S C I I w o r k a r e a .2 5 1 0 L = 6 4 T e m p o r a r y t a p e e r r o r l o o

R E A D e r r o r s , t o o t h i s s t a c k a 3 2 0 .

B A S I C a n K e r n a l W o r k i n g S t o r a g e0 0 5 1 2 - 0 0 8 2 7 $ 0 2 0 0 - $ 0 3 3 B = 3 1 6

5 1 2 0 L = 8 9 B A S I C s c r e e n e d i t o r i n p u tb u f f e r , t o k e n i z a t i o n i d o n e h e r ef o i m m e d i a t e o n u m b e r e d l i n es t a t e m e n t s , m a r k s e n o B A S I C l i n e .

6 0 2 5 L = 1 0 L o g i c a l f i l e n u m b e r t a b l e ( f i l en u m b e r g r e a t e r t h a n 1 2 7 c a u s e sl i n e f e e d a f t e r c a r r i a g e r e t u r n ) .

6 1 2 6 L = 1 0 D e v i c e n u m b e r n u m b e r t a b l e i s a m e o r d e r a 6 0 1 .S e 1 8 4 - 1 8 6 f o c u r r e n t I / t a b l ee n t r i e s .

2 1

Page 227: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 227/284

6 2 2 6 L = 1 0 S e c o n d a r y a d d r e s s t a b l e i s a m e o r d e r a 6 0 1 .

6 3 2 7 L = 1 0 K e y b o a r d b u f f e r ( s e e 1 9 8 ) f i l l e db I R i n t e r r u p t r o u t i n e s .

6 4 2 8 L = P o i n t e r ; S t a r t o m e m o r y .6 4 3 2 8 3 L = P o i n t e r : E n o m e m o r y .6 4 2 8 S e r i a l : T i m e o u t f l a g .6 4 2 8 C o n t e n t s o c u r r e n t c o l o r n y b b l e

( s e e 2 4 3 )6 4 7 2 8 7 C u r s o r : O r i g i n a l c o l o r a t h i s

s c r e e n l o c a t i o n ( t h e c h a r a c t e r ' so s c r e e n c o l o r ) .

6 4 2 8 S c r e e n M e m o r y p a g e . I s c r e e ni a 7 6 8 0 , t h e n t h i s i 3 0 . .I a 4 0 9 6 t h e n 1 6 a 6 1 4 4 = 2 4 ,5 6 3 2 = 2 2 . 3

6 4 9 2 8 9 M a x i m u m n u m b e r o f c h a r a c t e r st h a t t h k e y b o a r d b u f f e r a 6 3 w i l l h o l d . 1 K e r e p e a t f l a g s : = n o r m1 2 = n o n e 1 2 = a l l .D e l a y b e f o r e f i r s t r e p e a t o k e h e l d d o w n .D e l a y b e t w e e n f o l l o w i n g r e p e a t so k e y . 1 H a f o S H I F T / C O N T R O L k e y s :

= S H I F T , = L O G O , = C T R L ,a n i c o m b i n a t i o n .L a s t S H I F T p a t t e r n , s a m e a

6 5

6 5

6 5

6 5

6 5

6 5

2 8

2 8

2 8 2 8

2 8

2 8 = P o i n t e r : K e y b o a r d t a b l e s e t u pr o u t i n e , c o n t r o l s w h i c hk e y b o a r d t a b l e u s e d b a s e d o s h i f t p a t t e r n ( s e e 2 4 5 ) . $ E B D C

6 5 2 9 F l a g : S h i f t k e y s : 0 = E n a b l e d ,1 2 = D i s a b l e d .S e 3 6 8 6 9 f o p r o g r a m m e d s h i f to P R I N T C H R $ ( 1 4 ) f o l o w e rc a s e , 1 4 f o u p p e r .C H R $ ( 8 a n c a a l s o b p r i n t e d t d i s a b l e a n e n a b l ec h a r a c t e r s e t 2 ( L C / U C ) .

6 5 8 2 9 2 F l a g : S c r e e n s c r o l l e n a b l e d = 0

2 1

Page 228: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 228/284

6 5 9 2 9 3 R S - 2 3 2 : P s e u d o 6 5 5 1 c o n t r o lr e g i s t e r .( T h e V I e m u l a t e s 6 5 5 1 U A R Tc h i p w i t h s o f t w a r e . )T s e t : O P E N N , 2 , 0 , C H R $ ( X )C H R $ ( Y w h e r e i t h v a l u ef o h e r e a n f o 6 6 ( $ 2 9 4 ) .i s f i l e n u m b e r : 1 2 8 - u p c a u s e sl i n e f e e d a n c a r r i a g e r e t u r n .B i t ( s ) U s a g e V a l u e s

s t o p b i t s 0 = S t o p B i t ,1 = S t o p B i t s

= w o r d l e n g t h 0 = 8 , 0 1 = 7 1 0 = 6 , 1 1 = 5

u n u s e d3 - b a u d r a t e 0 0 0 0 = u s e r

0 0 0 1 = 5 00 0 1 0 = 7 0 0 1 1 = 1 1 00 1 0 0 = 1 3 4 . 50 1 0 1 = 1 5 00 1 1 0 = 3 0 00 1 1 1 = 6 0 01 0 0 0 = 1 2 0 01 0 0 1 = 1 8 0 01 0 1 0 = 2 4 0 0

6 6 0 2 9 4 R S - 2 3 2 : P s e u d o 6 5 5 1 c o m m a n dr e g i s t e r .( T h e V I e m u l a t e s 6 5 5 1 U A R Tc h i p w i t h s o f t w a r e . )B i t ( s ) U s a g e V a l u e s7 - p a r i t y : X X

D i s a b l e d0 0 1 = O d d0 1 = E v e n1 0 1 = M a r kX m i t1 1 = S p a c eX m i td u p l e x : = F u l ll = H a l f

3 - u n u s e dh a n d s h a k i n g : 0 = 3 1 i n e

l = X l i n e .6 6 2 9 L = R S - 2 3 2 : N o n s t a n d a r d b i t i m i n g .

2 2

Page 229: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 229/284

6 6 3 2 9 7 R S - 2 3 2 : S t a t u s r e g i s t e r .B i M e a n i n g

B R E A K d e t e c t e dD S m i s s i n gU n u s e dC l e a r T S e n d m i s s i n gU n u s e dR e c e i v e b u f f e r o v e r r u nF r a m i n g e r r o rP a r i t y e r r o r .

R S - 2 3 2 : N u m b e r o b i t s t b s e n t / r e c e i v e d .= R S - 2 3 2 : S y s t e m c l o c k d i v i d e d b

b a u d r a t e .R S - 2 3 2 : I N D E X : E n o f r e c e i v eF i r s t I n , F i r s t O u ( F I F O ) b u f f e r .R S - 2 3 2 : I N D E X : S t a r t r e c e i v eF I F O b u f f e r .R S - 2 3 2 : I N D E X : S t a r t t r a n s m i tF I F O b u f f e r .R S - 2 3 2 : I N D E X : E n o t r a n s m i tF I F O b u f f e r .

L = S a v e a r e a f o I R v e c t o r d u r i n gt a p e I / O ( t a p e I / s k i p s u p d a t eo f c l o c k , T I , T I $ ) .

= 9 U s e r p r o g r a m i n d i r e c t l i n ka d d r e s s e s .

= L i n k : E r r o r m e s s a g e ( u s e r M c o u l d i n t e r c e p t e r r o r s b y c h a n gi n t h i s l i n k ; e r r o r m e s s a g en u m b e r i i t h 6 5 0 2r e g i s t e r ) . $ C 4 3 A

7 7 3 0 = L i n k : B A S I C w a r m s t a r t ( w a r ms t a r t g o e s b a c k t t h m a i nB A S I C c o m m a n d h a n d l i n gr o u t i n e ) . $ C 4 8 3L i n k : C r u n c h B A S I C i n t o t o k e n s . $ C 5 7 CL i n k : P r i n t d e t o k e n i z e d B A S I Ck e y w o r d s . $ C 7 1 AL i n k : E x e c u t e n e B A S I C l i n e . $ C 7 E 4L i n k : A r i t h m e t i c s y m b o le v a l u a t i o n . $ C E 8 6S Y t e m p o r a r y s t o r a g e f o 6 5 0 2r e g i s t e r s ( A , X , Y , S R ) .? ? ? ? ? u n k n o w n ? ? ? ? ? ( o b s e r v e dt b z e r o s ) .

2 2

6 6 6 6

6 6

6 6

6 6

6 7

6 7

6 7

7 6

2 9 2 9

2 9

2 9 2 9

2 9

2 9

2 A

3 0

7 7 7 7

7 7 7 7

7 8

7 8

3 0 3 0

3 0 3 0

3 0 3 1

L = L = L = L = L = L =

Page 230: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 230/284

7 8 3 1 L =

7 9 7 9 7 9 7 9 7 9 8 0 8 0 8 0 8 0 8 0

8 1 8 1 8 1 8 1 8 1 8 2

3 1 3 1 3 1 3 1 3 1 3 2 3 2 3 2 3 2 3 2

3 2 3 2 3 2 3 3 3 3 3 3

L = L = L = L = L = L = L = L = L = L =

L = L = L = L = L = L =

V e c t o r : I R i n t e r r u p t e n t r y .T h i s i w h e r e y o w o u l d p u t h a d d r e s s o y o u r o w M I R r o u t i n e t b e x e c u t e d e v e r yj i f f y .S A V E a n R E S T O R E A X a n r e g i s t e r s , t h e n e x i t t $ E A B EP O K E 7 8 8 , 1 9 4 t d i s a b l e R U N /S T O P , T I , T I $ .P O K E 7 8 8 , 1 9 1 t r e e n a b l e t h e m( s e e 8 0 b e l o w t d i s a b l e o n l yS T O P k e y ) . $ E A B FV e c t o r : B R E A K i n t e r r u p t e n t r y . $ F E D 2V e c t o r : N M i n t e r r u p t e n t r y . $ F E A DV e c t o r : O P E N l o g i c a l f i l e . $ F 4 0 AV e c t o r : C L O S E l o g i c a l f i l e . $ F 3 4 AV e c t o r : S e I N P U T d e v i c e . $ F 2 C 7V e c t o r : S e O U T P U T d e v i c e . $ F 3 0 9V e c t o r : R e s e t d e f a u l t I / O . $ F 3 F 3V e c t o r : I N P U T f r o m d e v i c e . $ F 2 0 EV e c t o r : O U T P U T t d e v i c e . $ F 2 7 AV e c t o r : T e s t S T O P k e y .P O K E 8 0 8 , 1 1 4 t o d i s a b l e ,1 1 t e n a b l e . $ F 7 7 0V e c t o r : G E f r o m k e y b o a r d . $ F 1 F 5V e c t o r : C L O S E a l f i l e s ( a b o r t ) . $ F 3 E FV e c t o r : B R E A K r o u t i n e . $ F E D 2V e c t o r : L O A D f r o m d e v i c e . $ F 5 4 9V e c t o r : S A V E t d e v i c e . $ F 6 8 5

? ? ? ? ? u n k n o w n ? ? ? ? ? ( o b s e r v e dt b z e r o s ) .

C a s s e t t e T a p e B u f f e r8 2 8 - 1 0 2 3 $ 3 3 C - $ 3 F F = 1 9 5

N o t e : D u r i n g B A S I C S A V E o L O A D o M S A V E o L O A D , t h i s a r e a i o n l y u s e d f o h e a d e r .S / W E / L O A D d a t a i n o b l o c k e d , b u i s a v e d a o n l a r g e b l o c k o m e m o r y f r o m w h e r e 1 7 2 , 1 7 3p o i n t s u t w h e r e 1 7 4 , 1 7 5 p o i n t s .

A U s e d f o T a p e H e a d e r I / 8 2 3 3 T a p e : A f t e r O P E N , 0 1 P G M ,

e l s e d a t a t a p e .8 2 3 3 L = T a p e ; S t a r t i n g a d d r e s s o

p r o g r a m .8 3 3 3 L = T a p e : E n d i n g a d d r e s s o

p r o g r a m .

2 2

Page 231: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 231/284

8 3 3 4 L = 1 8 7 T a p e ; F i l e n a m e o l a s t t a p e f i l eS A V E d / L O A D e d .O v e r l a i d b a n l a t e r B A S I C p r g r a m t a p e I / ( o n l y f i r s t 1 c h a r a c t e r s a r e s h o w n i F O U N Dm e s s a g e ) , 1 8 7 , 1 8 8 p o i n t t c u r e n t f i l e n a m e i m e m o r y .

1 0 2 1 3 F L = ? u n u s e d ? ?A U s e d f o T a p e I / F r o m B A S I C P r o g r a m

8 2 3 3 L = 1 9 2 T a p e : B l o c k b u f f e r f o P R I N T /I N P U T / G E T .1 7 8 , 1 7 9 p o i n t t t h i s b u f f e r ,1 6 6 c o n t a i n s n u m b e r o c h a r a ct e r s i i t

3 E x p a n s i o n R A 1 0 2 4 - 4 0 9 5 $ 4 0 0 - $ F F F = 3 0 7 2

1 0 2 4 4 0 L I 3 E x p a n d e d ( o n l y ) V I C ,3 0 7 2 B A S I C p r o g r a m , s t r i n g s , v a r i

a b l e s , a n a r r a y s s t a r t h e r e .( I 5 V I C , t h e y s t a r t a t 4 0 9 6$ 1 0 0 0 . I 1 3 K + V I C , t h e y s t a r t a t4 6 0 8 $ 1 2 0 0 . )4 3 , 4 4 p o i n t t b e g i n 5 5 , 5 6 t e n d .I 8 o m o r e e x p a n s i o n i u s e d ,t h i s a r e a i n o a d d r e s s e d b B A S I C , a n y o m a u s i t P O K E D A T A i n t o o f o M r o u t i n e s .

4 B u i l t - i n R A 4 0 9 6 - 8 1 9 1 $ 1 0 0 0 - $ l F F F = 4 0 9 6

4 0 9 6 - 1 0 0 0 - 1 D F F L O a u n e x p a n d e d V I C , B A S I C0 7 6 7 9 3 5 8 4 p r o g r a m , v a r i a b l e s , s t r i n g s , a n

a r r a y s a r s t o r e d i t h i s a r e a .( I 8 V I C , t h e y s t a r t a 1 0 2 4$ 4 0 0 . I 1 3 K + V I C , t h e y s t a r t a 4 6 0 8 $ 1 2 0 0 . )4 3 , 4 4 p o i n t t b e g i n n i n g o B A S I C ; 5 5 , 5 6 p o i n t t e n d .I a n c a s e , u s e r c a n c h a n g e t h B A S I C a r e a p o i n t e r s .

2 2

Page 232: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 232/284

4 0 9 6 - 1 0 0 0 - 1 1 F F L = 5 1 2 S c r e e n R A o n 1 3 K + V I C , c o n -4 6 0 7 t a i n s i n d e x v a l u e s i n t o c h a r a c t e r

t a b l e s f o r 2 l i n e s o f 2 c h a r a c t e r s .I b i i o n t h e n c h a r a c t e r i i i n v e r s e v i d e o .8 b y t e s o c h a r a c t e r t a b l e f o r ms i n g l e c h a r a c t e r ( 1 b y t e s i d o u b l e - s i z e i i e f f e c t ; s e 3 6 8 6 7 ) .I 5 o 8 V I C , s c r e e n R A i a t 7 6 8 0 ( $ l E 0 0 ) .

7 1 6 8 - 1 C 0 0 - 1 D F F L = 5 1 2 M a c o n t a i n 6 u s e r c h a r a c t e r s7 6 7 9 o a u n e x p a n d e d o 8 V I C , i

a r e a t a k e n f r o m B A S I C , p r t e c t e d , a n 3 6 8 6 9 s e t 2 5 5 .

4 6 0 8 - ? ? ? ? 1 2 0 0 - ? ? ? ? = ? ? ? ? O 1 3 K + V I C , B A S I C p r o g r a m ,v a r i a b l e s , s t r i n g s , a n a r r a y s a r s t o r e d i t h i s a r e a .( I 5 V I C , t h e y s t a r t a t 4 0 9 6$ 1 0 0 0 . I 8 V I C , t h e y s t a r t a 1 0 2 4 $ 4 0 0 . )4 3 , 4 4 p o i n t t b e g i n n i n g o B A S I C ; 5 5 , 5 6 p o i n t t e n d .

7 6 8 0 - 1 E 0 0 - L = 5 1 2 S c r e e n R A o u n e x p a n d e d o 8 1 9 1 1 F F F 8 V I C , c o n t a i n s i n d e x v a l u e s

i n t o c h a r a c t e r t a b l e s f o 2 l i n e so 2 c h a r a c t e r s .I b i i o n t h e n c h a r a c t e r i i i n v e r s e v i d e o .b y t e s o c h a r a c t e r t a b l e f o r ms i n g l e c h a r a c t e r ( 1 b y t e s i d o u b l e - s i z e i i e f f e c t ; s e 3 6 8 6 7 ) .I 1 3 K + V I C , s c r e e n R A m o v e st 4 0 9 6 ( $ 1 0 0 0 ) .S e 3 2 7 6 8 , 3 6 8 6 6 , 3 6 8 6 7 .

8 E x p a n s i o n R A M / R O M8 1 9 2 - 1 6 3 8 3 $ 2 0 0 0 - $ 3 F F F = 8 1 9 2

R A E x p a n s i o n B l o c k 1

8 E x p a n s i o n R A M / R O M1 6 3 8 4 - 2 4 5 7 5 $ 4 0 0 0 - $ 5 F F F = 8 1 9 2

R A E x p a n s i o n B l o c k 2

2 2

Page 233: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 233/284

8 E x p a n s i o n R A M / R O M2 4 5 7 6 - 3 2 7 6 ? $ 6 0 M M $ 7 F F F = 8 1 9 2R A E x p a n s i o n B l o c k 3 P r o g r a m m e r ' s a i d , s o m e M m o n i t o r s , w o r dp r o c e s s o r s , a n g a m e s w i l l u s t h i s a r e a . A u t o s t a r t i n o d o n e f o t h i sa r e a ; o n l y 4 0 9 6 0 ( $ A 0 0 0 ) r e s i d e n t c a r t r i d g e s a u t o s t a r t . S o m e c a r t r i d g e sr e s i d e a $ A 0 0 0 a n a l s o u s t h i s a r e a .

C a n ' t S A V E t T a p e A b o v e H e r e !T h K e r n a l e v e n k e e p s m o n i t o r s f r o m s a v i n g t t a p e p a s t h e r e .

C h a r a c t e r S e t s R O 3 2 7 6 8 - 3 6 8 6 3 $ 8 0 0 0 - $ 8 F F F = 4 0 9 6N o t e : b y t e s f o r m c h a r a c t e r , e a c h o f t h e f o u r m a p s h o l d s 1 2 c h a r a c t e r s ,g i v i n g a g r a n d t o t a l o 5 1 p o s s i b l e c h a r a c t e r s . S e a l s o 3 6 8 6 9 , 3 6 8 7 9 , a n 6 5 7 .

C h a r a c t e r s e 3 2 7 6 8 8 0 0 0 U p p e r c a s e ( 0 - 6 3 ) , g r a p h i c s

1 0 2 4 ( 6 4 - 1 2 7 ) .3 3 7 9 2 8 4 0 0 L R e v e r s e d u p p e r c a s e , r e v e r s e d

1 0 2 4 g r a p h i c s .S e l e c t t h i s s e t w i t h C N T L + E E V

C h a r a c t e r s e 3 4 8 1 6 8 8 0 0 1 L o w e r c a s e ( 0 - 6 3 ) ,

1 0 2 4 u p p e r c a s e ( 6 4 - 1 2 7 ) .3 5 8 4 0 8 C 0 0 L R e v e r s e d l o w e r c a s e a n u p p e r -

1 0 2 4 c a s e .S e l e c t t i n s w i t h C N T L + R E Vc

T h 6 5 6 1 V I C h i p R e g i s t e r s3 6 8 6 4 - 3 6 8 7 9 9 0 0 0 - 9 0 0 F = 1

3 6 8 6 4 9 0 0 0b i I r t t e r i ^ e e s c a n ( f o r o v e r l a y s ) ; t r

t u r n i n g o t s e e f f e c t . S o m eT s e t s m a r e q u i r e t u r n i n g t h i so t c o r r e c t " j i t t e r s . "

b i t s 0 * L e f t f r a m e o r i g i n o s c r e e n 0 - 1 2 7 ,a d d i n g m o v e s f r a m ec h a r a c t e r r i g h t .i p m * s e o k u K i 1 o n l e f t e d g e ,

3 6 8 6 5 9 0 0 1 2 5T o f r a m e o r i g i n o s c r e e n 0 - 2 5 5 ;a d d i n g 4 m o v e s d o w n l i n e . 2 5 t b l a n k .

2 2

Page 234: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 234/284

3 6 8 6 6

3 6 8 6 7

9 0 0 2

9 0 0 3

b i b i t s 6 -

b i b i t s 6 -

B i o 1 b i s c r e e n a d d r e s sN u m b e r o s c r e e n c o l u m n s 1 - 2 7 .B r e d u c i n g l i n e s , u t 2 c o u m n s c a b s p e c i f i e d , b u e d i t o r w o n ' t h a n d l e l i n e s .C o l u m n s t i m e s l i n e s c a n e v e re x c e e d 5 0 6 .

R a s t e r b e a m l o c a t i o n b i 0 N u m b e r o s c r e e n l i n e s 1 - 3 2

1 5 1 2

2

4

4

3 6 8 6 8 9 0 0 4

3 6 8 6 9 9 0 0 5

( t i m e s 2 ) B r e d u c i n g c o l u m n s , u t 3 l i n e s c a b s p e c i f i e d , b u e d i t o rw o n ' t h a n d l e l i n e s .C o l u m n s t i m e s l i n e s c a n e v e re x c e e d 5 0 6 .

b i o 1 c h a r a c t e r s i z e .S p e c i f y 1 t b i t m a p s c r e e n .B o t t o m o f r a m e d r o p s o u o s i g h t . Y o m a n o b a b l e t b i m a t h e n t i r e s c r e e n . Y o w i l ln e e d t h a v e c u s t o m c h a r a c t e rs e t h a t c o r r e s p o n d s t t h s i z eo t h b i t m a p p e d s c r e e n . E a c h1 b y t e s b u i l d s 1 c h a r a c t e r , 1 h i g h b a c r o s s .R a s t e r b e a m l o c a t i o n b i t s 8 - 1 .

l i g h t p e n o n t h V I s e n s e st h i s l o c a t i o n ; s e 3 6 8 7 0 , 3 6 8 7 1 .

b i t s 7 - 4 B i t s 1 3 - 1 0 o s c r e e n a d d r e s sb i t s 3 - B i t s 1 3 - 1 0 o c h a r a c t e r s e a d d r e s s

= U / C + g r a p h = r e v U / Cg r a p h2 = L / C + U / C3 = r e v L / C + U / C1 2 = 4 0 9 61 3 = 5 1 2 01 4 = 6 1 4 41 = u s e r 6 C H A R S a 7 1 6 8P O K E 3 6 8 6 9 , 2 4 2 t s w i t c h t l o w e r c a s e .P O K E 3 6 8 6 9 , 2 4 0 t g o b a c k t n o r m a l .C h a r a c t e r s e t s m u s t s t a r t o 1 0 2 4b y t e b o u n d a r y .

2 4 2 4

2 2

Page 235: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 235/284

3 6 8 7 0 9 0 0 6

3 6 8 7 1 9 0 0 7

3 6 8 7 23 6 8 7 3

3 6 8 7 4

3 6 8 7 5

3 6 8 7 6

3 6 8 7 7

3 6 8 7 8

3 6 8 7 9

9 0 0 89 0 0 9

9 0 0 A

9 0 0 B

9 0 0 C

9 0 0 D

9 0 0 E

9 0 0 F

3 6 8 8 0 9 0 1 0

l i g h t p e h o r i z o n t a l s c r e e nl o c a t i o n .Y o m a n e e d t d e b o u n c e t h i sv a l u e a i i v e r y s e n s i t i v e t i p e r c e p t i b l e m o v e m e n t .L i g h t p e v e r t i c a l s c r e e nl o c a t i o n .Y o m a n e e d t d e b o u n c e t h i sv a l u e a i i v e r y s e n s i t i v e t i p e r c e p t i b l e m o v e m e n t .P a d d l e - X v a l u e : r i g h t = 0 ,l e f t = 2 5 5 .P a d d l e - Y v a l u e : r i g h t = 0 l e f t = 2 5 5 .S O U N D : L o w t o n e 1 2 8 - 2 5 5( s o f t e s t v o i c e ) ; y o c a t u r n o f b i t s i l e n c e i t S O U N D : M e d i u m t o n e 1 2 8 - 2 5 5 ;

y o c a t u r n o f f b i t t s i l e n c ei t S O U N D : H i g h t o n e 1 2 8 - 2 5 5( s h a r p e s t v o i c e ) ; y o c a t u r no f b i t s i l e n c e i t S O U N D : N o i s e t o n e 1 2 8 - 2 5 5 ;

y o c a t u r n o f f b i t t s i l e n c e i t

b i t s 7 A u x i l i a r y c o l o r f o m u l t i c o l o rm o d e

b i t s 3 - S O U N D : V o l u m e 0 - 1 5 .

b i t s 7 - 4 B a c k g r o u n d c o l o rb i I o f f , c h a r a c t e r c o l o r b e c o m e s

s c r e e n c o l o r a n v i c e v e r s a f o e v e r y c h a r a c t e r ( g i v e s p a t c hw o r k b a c k g r o u n d e f f e c t ) .

b i t s 2 - B o r d e r c o l o r .= 2 5 6 A r e s i s t o i n c o m p l e t e

a d d r e s s d e c o d i n g f o t h V I c h i p , l o c a t i o n s 3 6 8 8 0 - 3 7 1 3 5 a r d u p l i c a t i o n s o 3 6 8 6 4 - 3 6 8 7 9 a n h a v e n p a r t i c u l a r u s e .

2 5 2 5

0

2 1

2 2

Page 236: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 236/284

6 5 2 2 V I N u m b e r O n 3 7 1 3 6 - 3 7 1 5 1 $ 9 H 0 - $ 9 1 1 F = 1

T h i s V I C o n t r o l s / S e n s e s N o n m a s k a b l e I n t e r r u p t N M 3 7 1 3 6 9 1 1 0 P o r t I / R e g i s t e r ( p a r a l l e l u s e r 2 4

p o r t / R S - 2 3 2 ) : t h i s p o r t c o n t r o l sh a n d s h a k e l i n e s C B 1 a n d C B 2 .T h v o l t a g e s o t h i s p o r t a r n o t h s t a n d a r d - 1 2 t + 1 v o l t s ,o n l y t + v o l t s . O f o s h o r tc a b l e s . D B 2 5B i P i R S - 2 3 2 U s a g e D i r e c t i o n P i P B D a t a S e R e a d y 2

( I f P B 7 u s e d a sO U T P U T ,t i m e r l c a c l o c k i t

P B C l e a r T S e n d( I f P B 6 u s e d a sI N P U T , t i m e rc a c l o c k i t

P B U n u s e dP B D a t a C a r r i e r

D e t e c tP B R i n g I n d i c a t o rP B D a t a T e r m i n a l

R e a d yP B R e q u e s t T

S e n d( V I C a l w a y sk e e p s t h i s o n

P B R e c e i v e d D a t aC B 1 B I n t e r r u p t f o

R e c e i v e d D a t aC B T r a n s m i t t e d

D a t a( C B l , C B 2 c a na c a s e r i a lp o r t w h e nc o n t r o l l e d b t h s h i f tr e g i s t e r a 3 7 1 4 6 . )

T h i s p o r t c o u l d a l s o b u s e d i o s e c o n d j o y s t i c k : F B J O $ 3

2 2

Page 237: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 237/284

3 7 1 3 7 9 1 1 1

3 7 1 3 83 7 1 3 9

3 7 1 4 0

3 7 1 4 2

3 7 1 4 4

3 7 1 4 5

3 7 1 4 6

9 1 1 29 1 1 3

9 1 1 4

9 1 1 6

9 1 1 8

9 1 1 9

9 1 1 A

P B 2 = J O Y O , P B 3 = J O Y 1 ,P B 4 = J O Y 2 , P B 5 = F I R E .P o r t I / R e g i s t e r ( s e r i a l / g a m ep o r t s ) : t h i s p o r t c o n t r o l s h a n ds h a k e l i n e s C A a n C A B i P i U s a g e

1 2

3 7 1 4 7 9 U

P A S S e r i a l a t t e n t i o n i P A F S e n s e t a p e b u t t o n d o w n ( t a p e

p i n s 6 / F ) : = n o n e d o w n ,0 s o m e d o w n

P A G l i g h t p e n / F I R E b u t t o nP A G J O Y 2P A G J O Y 1P A G J O Y OP A S S e r i a l d a t a i P A S S e r i a l c l o c k i C A I N P U T i n t e r r u p t , R E S T O R E

k e C A I / l i n e .D a t a D i r e c t i o n R e g i s t e r f o P o r tB 0 = i n , = o u t .D a t a D i r e c t i o n R e g i s t e r f o P o r tA = i n , = o u t . 1 2

= T i m e r l o w , h i g h c o u n t ( R S - 2 3 2 /u s e r p o r t o u t p u t s p e e d )T i m e r c a n t i m e u t 0 . 0 5 9 1 s e o n d , t h e n i n t e r r u p t .

L = T i m e r l o w , h i g h l a t c h ( t a p ew r i t e t i m i n g ) .T i m e r l o c o u n t / l a t c h ( R S - 2 3 2 /u s e r p o r t i n p u t s p e e d ) .T i m e r h i g h c o u n t ( R S - 2 3 2 / u s e rp o r t i n p u t s p e e d ) .S h i f t R e g i s t e r ( p a r a l l e l - t o - s e r i a la n s e r i a l - t o - p a r a l l e l c o n v e r s i o nd o n e t h r o u g h h e r e w i t h C B 1 ,C B 2 ) .A u x i l i a r y R e g i s t e r . 6

b i t 7 - 6 T i m e r c o n t r o l7 = N P B t i m i n g7 = T i m e P B

= O n e - s h o t t i m i n g= F r e e r u n n i n g t i m e r

b i T i m e r 2 c o n t r o l= O n e - s h o t t i m i n g

5 = T i m e p u l s e s2 2

Page 238: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 238/284

\ m z n n

b i 4 - S h i f t r e g i s t e r c o n t r o l0 0 = S h i f t r e g i s t e r d i s a b l e d0 1 S y s t e m c l o c k : d a t a i C B 2 ,p u l s e o u t o C B 1 0 = T i m e r 2 : d a t a i C B 2 , p u l s eo u o C B

b i P O R T l a t c h e n a b l eb i P O R T l a t c h e n a b l e .

3 7 1 4 8 9 1 1 C P e r i p h e r a l H a n d s h a k i n g C o t r o l R e g i s t e r 2 5

b i 7 - C B 2 , R S - 2 3 2 s e n t( S h i f t r e g i s t e r s e r i a l I / O )( I n t e r r u p t i n p u t o r p e r i p h e r a lo u t p u t )

b i 4 C B l , I n t e r r u p t f o r e c e i v e d d a t a( O u t p u t f o s h i f t r e g i s t e r p u l s e s )( H i g h - t o - l o w o r l o w - t o - h i g hi n t e r r u p t )

b i t 3 - 1 C A 2 , T a p e M o t o r : 1 1 = O N ,1 1 0 = O F F( I n t e r r u p t i n p u t o r p e r i p h e r a lo u t p u t )

b i C A l , I n t e r r u p t i h i g h / l o w( r e s t o r e t h i g h )( H i g h - t o - l o w o r l o w - t o - h i g hi n t e r r u p t ) .

3 7 1 4 9 9 1 1 D I n t e r r u p t F l a g R e g i s t e rb i N M o c c u r r e d : o n o b e l o w

c o n d i t i o n s :b i T i m e r i n t e r r u p tb i T i m e r i n t e r r u p tb i C B R S - 2 3 2 i n p u t i n t e r r u p tb i C B R S - 2 3 2 o u t p u t i n t e r r u p tb i S h i f t r e g i s t e r i n t e r r u p tb i C A R E S T O R E k e w a p r e s s e db i C A d a t a l i n e i n t e r r u p t .

3 7 1 5 0 9 1 1 E I n t e r r u p t E n a b l e R e g i s t e r 1 3 b i N M = e n a b l e 6 - b e l o w ,

= d i s a b l eb i T i m e r i n t e r r u p t c a h a p p e nb i T i m e r i n t e r r u p t c a h a p p e nb i C B i n t e r r u p t c a h a p p e nb i C B i n t e r r u p t c a h a p p e nb i S h i f t r e g i s t e r i n t e r r u p t c a

h a p p e n

2 3

Page 239: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 239/284

b i t l C A ( R E S T O R E ) i n t e r r u p t c a h a p p e nb i C A i n t e r r u p t c a h a p p e n .

3 7 1 5 1 9 1 1 F P o r t I / R e g i s t e r . S e t h s a m e 1 2 a 3 7 1 3 7 ( $ 9 1 1 1 ) , b u h a n C A o C A c o n t r o l c a p a b i l i t i e s .( C A 1 i n t e r r u p t f l a g i c l e a r e d b r e a d i n g f r o m h e r e . )B i P i U s a g eP A S S e r i a l a t t e n t i o n i P A F S e n s e t a p e b u t t o n d o w n ( t a p e

p i n s 6 / F )= n o n e d o w n . = s o m e d o w n

P A G L i g h t p e f i r e b u t t o nP A G J O Y 2P A G J O Y 1P A G J O Y OP A S S e r i a l d a t a i P A S S e r i a l c l o c k i n

6 5 2 2 V I N u m b e r T w 3 7 1 5 2 - 3 7 1 6 7 $ 9 1 2 0 - $ 9 1 2 F = 1

T h i s V I g e n e r a t e s t h 1 / 6 0 s e c o n d i n t e r r u p t r e q u e s t I R f o r e a l t i m e c l o c k i n g , k e y b o a r d s c a n n i n g . R e a l t i m e c l o c k l o s e s t i m e d u r i n gt a p e I / O .3 7 1 5 2 9 1 2 0 P o r t I / R e g i s t e r ( p r i m a r i l y 2 4

k e y b o a r d s c a n ) ; t h i s p o r t c o t r o l s h a n d s h a k e l i n e s C B a n C B 2 .P B 7 - 0 K e y b o a r d c o l u m n s c a ns e l e c tP B J O Y 3 ( g a m e p o r t p i 4 P B T a p e w r i t e l i n e , t a p e p o r tp i E / l e f t o f o S T O P k e s c a nC B S e r i a l s e r v i c e r e q u e s t i C B S e r i a l d a t a o u t .

3 7 1 5 3 9 1 2 1 P o r t I / R e g i s t e r ( k e y b o a r d 2 5 s c a n n i n g ) ; t h i s p o r t c o n t r o l sh a n d s h a k e l i n e s C A a n C A 2 .P A 7 - 0 K e y b o a r d r o s c a n s e l e c tC A T a p e I / C A S e r i a l c l o c k o u t .

3 7 1 5 4 9 1 2 2 D a t a D i r e c t i o n R e g i s t e r f o P o r tB : 0 = E S f , l = O U T 2 5 P O K E 3 7 1 5 4 , 1 2 7 t r e a d J O Y 3 ,t h e n r e s t o r e t 2 5 5 .

2 3

Page 240: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 240/284

3 7 1 6 0 9 1 2 8

3 7 1 6 1 9 1 2 93 7 1 6 2 9 1 2 A

3 7 1 5 5 9 1 2 3 D a t a D i r e c t i o n R e g i s t e r f o P o r tA = I N , = O U T .

3 7 1 5 6 9 1 2 4 L = T i m e r H o w , h i g h l a t c h ( t a p er e a d t i m i n g ) .

3 7 1 5 8 9 1 2 6 L = T i m e r H o w , h i g h c o u n t ( k e y b o a r di n t e r r u p t )T i m e r u s e d f o 1 / 6 0 s e c o n dI R i n t e r r u p t .T i m e r l o c o u n t / l a t c h ( s e r i a lt i m e o u t , t a p e R / W ) .T i m e r h i g h c o u n t / l a t c h ( s e r i a l t i m eo u t , t a p e R / W ) .S h i f t R e g i s t e r ( p a r a l l e l - t o - s e r i a l /s e r i a l - t o - p a r a l l e l c o n v e r s i o nd o n e t h r o u g h h e r e w i t h C B 1 ,C B 2 ) .

3 7 1 6 3 9 1 2 B A u x i l i a r y R e g i s t e rb i t 7 - 6 T i m e r c o n t r o l

7 = n P B t i m i n g7 = t i m e P B

= o n e - s h o t t i m i n g= f r e e - r u n n i n g t i m e r

b i T i m e r c o n t r o l= o n e - s h o t t i m i n g

5 = t i m e p u l s e sb i 4 - S h i f t r e g i s t e r c o n t r o l

0 0 S h i f t r e g i s t e r d i s a b l e d0 1 = S y s t e m c l o c k : d a t a i C B 2 ,p u l s e o u t o C B 1 0 = T i m e r 2 : d a t a i C B 2 , p u l s eo u t o n C B l

b i P o r t l a t c h e n a b l eb i P o r t l a t c h e n a b l e .

3 7 1 6 4 9 1 2 C P e r i p h e r a l H a n d s h a k i n g C o t r o l R e g i s t e r

b i t 7 - 5 C B 2 , S e r i a l d a t a o u ( S h i f t r e g i s t e r s e r i a l I / O )( I n t e r r u p t i n p u t o r p e r i p h e r a lo u t p u t )

b i 4 C B 1 , S e r i a l s e r v i c e r e q u e s t i ( O u t p u t f o s h i f t r e g i s t e r p u l s e s )( H i g h - t o - l o w o r l o w - t o - h i g hi n t e r r u p t )

b i t 3 - 1 C A 2 , S e r i a l c l o c k o u ( I n t e r r u p t i n p u t o p e r i p h e r a lo u t p u t )

6

2 2

2 3

Page 241: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 241/284

b i C A 1 , I n t e r r u p t i h i g h / l o w ( t a p eI / O )( H i g h - t o - l o w o l o w - t o - h i g hi n t e r r u p t ) .

3 7 1 6 5 9 1 2 D I n t e r r u p t H a R e g i s t e r 3 b i I R o c c u r r e d : O n o b e l o w

c o n d i t i o n sb i T i m e r i n t e r r u p tb i T i m e r i n t e r r u p tb i C B S e r i a l s e r v i c e r e q u e s t

i n t e r r u p tb i C B S e r i a l d a t a o u t p u t i n t e r r u p tb i S h i f t r e g i s t e r i n t e r r u p tb i C A T a p e I / i n t e r r u p tb i C A S e r i a l c l o c k o u i n t e r r u p t .

3 7 1 6 6 9 1 2 E I n t e r r u p t E n a b l e R e g i s t e r 1 9 b i I R = e n a b l e 6 - b e l o w ,

= d i s a b l eb i T i m e r i n t e r r u p t c a h a p p e nb i T i m e r i n t e r r u p t c a h a p p e nb i C B I n t e r r u p t c a h a p p e nb i C B I n t e r r u p t c a h a p p e nb i S h i f t r e g i s t e r i n t e r r u p t c a

h a p p e nb i C A ( t a p e I / O ) I n t e r r u p t c a

h a p p e nb i t O C A I n t e r r u p t c a h a p p e n .

3 7 1 6 7 9 1 2 F P o r t I / R e g i s t e r 2 5 S e t h s a m e a s 3 7 1 3 7 ( $ 9 1 2 1 ) , b u h a n C A o C A c o n t r o lc a p a b i l i t i e s .( C A 1 i n t e r r u p t f l a g i c l e a r e d b r e a d i n g f r o m h e r e . )P A 7 - 0 K e y b o a r d r o s c a n s e l e c tC A T a p e I / C A S e r i a l c l o c k o u t .

3 7 1 6 8 9 1 3 0 L = 7 2 0 A s r e s u l t o i n c o m p l e t ea d d r e s s d e c o d i n g f o t h V I c h i p s , l o c a t i o n s 3 7 1 6 8 - 3 7 8 8 7 a r d u p l i c a t i o n s o 3 7 1 3 6 - 3 7 1 6 7 a n h a v e n p a r t i c u l a r u s e .

S c r e e n C o l o r M a p s3 7 8 8 8 - 3 8 9 1 1 $ 9 4 0 0 - $ 9 7 F F = 1 0 2 4

C o n t e n t s o 3 6 8 6 6 a n m e m o r y s i z e a f f e c t w h i c h s e g m e n t u s e d .

2 3

Page 242: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 242/284

3 7 8 8 8 9 4 0 0 L = 5 1 2 C o l o r m a i 1 3 o m o r e V I C .3 8 4 0 0 9 6 0 0 L = 5 1 2 C o l o r m a i u n e x p a n d e d o 8

V I C .b i t s 7 - U s e d b V I b i M u l t i c o l o r = o n o r m a l = b i t s 2 - C o l o r v a l u e 0 -

I / B l o c k3 8 9 1 2 - 3 9 9 3 5 $ 9 8 0 0 - $ 9 B F F = 1 0 2 4

M e m o r y m a p p e d I / ( u n u s e d )I / B l o c k

3 9 9 3 6 - 4 0 9 5 9 $ 9 C 0 0 - $ 9 F F F = 1 0 2 4M e m o r y m a p p e d I / ( u n u s e d )

8 K & q > a n s i o n R A M / R O M ?4 0 9 6 0 - 4 9 1 5 1 A 0 0 0 - B F F F = 8 1 9 2 ^

R A E x p a n s i o n B l o c k 4 T h i s b l o c k i p r i m a r i l y u s e d f o a u t o s t a r t c a rt r i d g e s s u c h a g a m e s a n o t h e r c a r t r i d g e - b a s e d s o f t w a r e . T h c a t r i d g e i n o t r e q u i r e d t b a u t o s t a r t i n g . T h f o l l o w i n g m u s t b p r e s e n tt a c t i v a t e t h a u t o s t a r t c o d e i t h K e r n a l :4 0 9 6 0 A 0 0 0 L = 4 0 9 6 24 0 9 6 4

A 0 0 2A 0 0 4

L = L =

V e c t o r : I n i t i a l i z a t i o n a n r e s e tr o u t i n e s .V e c t o r : N M ( r e s t o r e ) r o u t i n e s .

A 0 C B M ( w i t h h i g h o r d e r b i s e i l a s t b y t e s )

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

T h R O r o u t i n e s o t h S u p e r E x p a n d e r c a r t r i d g e r e s i d e i t h i sa r e a ; s e " S u p e r E x p a n d e r M e m o r y M a p . "

8 B A S I C R O 4 9 1 5 2 - 5 7 3 4 3 $ C 0 0 0 - $ D F F F = 8 1 9 2

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

V e c t o r : C o l d s t a r t a d d r e s s .V e c t o r : W a r m s t a r t a d d r e s s ." C B M B A S I C " .K e y w o r d d i s p a t c h v e c t o r t a b l e ,i t o k e n o r d e r ( i . e . , E N D , F O R ,N E X T , D A T A , I N P U T , e t c . ) .

4 9 1 5 24 9 1 5 44 9 1 5 64 9 1 6 4

c o o oC 0 0 2C 0 0 4c o o c

L = L = L =

E 3 7 8E 4 6 7

2 3

Page 243: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 243/284

4 9 2 3 4

4 9 2 8 0

4 9 3 1 0

4 9 5 6 6

4 9 9 6 05 0 0 2 1

5 0 0 5 8

5 0 1 0 4

5 0 1 7 1

5 0 1 8 4

5 0 2 2 9

5 0 2 3 1

5 0 2 8 15 0 2 9 2

5 0 3 0 4

5 0 3 3 25 0 4 8 35 0 5 2 8

5 0 5 5 35 0 7 0 7

5 0 7 5 45 0 7 8 25 0 8 3 0

C 0 5 2

C 0 8 0

C 0 9 E

C 1 9 E

C 3 2 8C 3 6 5C 3 8 AC 3 B 8C 3 F BC 4 0 8C 4 3 5

C 4 3 7

C 4 6 9C 4 7 4

C 4 8 0

C 4 9 CC 5 3 3C 5 6 0C 5 7 9C 6 1 3

C 6 4 2C 6 5 EC 6 8 E

5 0 8 4 4 C 6 9 C

F u n c t i o n d i s p a t c h v e c t o r t a b l e ,i t o k e n o r d e r ( i . e . , S G N , I N T ,A B S , . . . S T R $ , C H R $ , L E F T S ,e t c . ) .M a t h o p e r a t o r s d i s p a t c h v e c t o rt a b l e , i t o k e n o r d e r ( i . e . , + - / , A N D , O R , > , = , < , e t c ) .B A S I C k e y w o r d s t a b l e i t o k e no r d e r e n d e d w i t h b y t e o 0 L a s t l e t t e r o k e y w o r d h a s h i g ho r d e r b i o n B A S I C m e s s a g e s t a b l e .L a s t l e t t e r o m e s s a g e h a h i g ho r d e r b i o n E r r o r m e s s a g e t a b l e v e c t o r .M i s c e l l a n e o u s M e s s a g e s :O K E R R O R , R E A D Y , B R E A K .S c a n s t a c k f o G O S U B a n F O R / N E X T e n t r i e s .O p e n s p a c e i m e m o r y f o n e B A S I C l i n e .C h e c k s t a c k d e p t h n o e x c e e d e d .C h e c k m e m o r y s p a c e f o a v a i l a b l e a r e a .V e c t o r : O U O M E M O R Y

r o u t i n e .E r r o r m e s s a g e h a n d l e r r o u t i n e ,e r r o r n u m b e r i 6 5 0 2 r e g i s t e r X B r e a k e n t r y p o i n t .P r i n t R E A D Y a n G O T O m a i nB A S I C l o o p .M a i n B A S I C l o o p , e x e c u t e o rs t o r e B A S I C l i n e .H a n d l e n e B A S I C l i n e .R e c h a i n B A S I C l i n e s .R e c e i v e i n p u t B A S I C l i n e a n f i l l$ 2 0 0 .T o k e n i z e B A S I C l i n e .F i n d t h B A S I C l i n e f r o m i t l i n en u m b e r .B A S I C ' S N E W , t h e n d C L R .B A S I C S C L R .B a c k u t e x t p o i n t e r t s t a r t o p r o g r a m .B A S I C S L I S T .

$ C 1 9 E

2 3

Page 244: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 244/284

5 0 9 7 0 C 7 1 A5 1 0 1 05 1 1 7 25 1 2 2 95 1 2 4 45 1 2 4 75 1 2 4 95 1 2 8 75 1 3 1 35 1 3 3 15 1 3 6 05 1 4 1 05 1 4 4 8

5 1 4 6 25 1 4 9 6

5 1 5 1 5

5 1 5 3 15 1 5 6 35 1 6 2 15 1 7 4 15 1 7 5 65 1 8 4 05 1 8 4 65 1 8 7 25 1 9 9 8

C 7 4 2C 7 E 4C 8 1 DC 8 2 CC 8 2 FC 8 3 1C 8 5 7C 8 7 1C 8 8 3C 8 A 0C 8 D 2C 8 F 8C 9 0 6C 9 2 8C 9 3 BC 9 4 BC 9 6 BC 9 A 5C A 1 DC A 2 CC A 8 0C A 8 6C A A OC B 1 E

5 2 0 2 7

5 2 4 7 6

5 2 5 1 05 2 6 0 0

C B 3 B5 2 0 4 55 2 0 9 15 2 1 3 35 2 1 5 95 2 2 1 75 2 2 3 0

C B 4 DC B 7 BC B A 5C B B FC B F 9C C 0 6C C F C

C D 1 EC D 7 8

P r i n t d e t o k e n i z e d k e y w o r d !f u n c t i o n .B A S I C ' S F O R .E x e c u t e t h e B A S I C s t a t e m e n t .B A S I C ' S R E S T O R E .B r e a k e n t r y , t h e n d S T O P .B A S I C ' S S T O P .B A S I C ' S E N D .B A S I C ' S C O N T .B A S I C ' S R U N .B A S I C ' S G O S U B .B A S I C ' S G O T O .B A S I C ' S R E T U R N .B A S I C ' S D A T A , i . e . , s k i p t n e x ts t a t e m e n t .S c a n f o n e x t B A S I C s t a t e m e n t .B A S I C ' S I F a n p e r h a p s s k i pr e s t o s t a t e m e n t .B A S I C ' S R E M , i . e . , s k i p r e s t o s t a t e m e n t .B A S I C ' S O N G e f i x e d p o i n t n u m b e r .B A S I C ' S L E T .A d A S C I I d i g i t t A C C U M 1 .C o n t i n u e B A S I C ' S L E T .B A S I C ' S P R I N T * .B A S I C ' S C M D .B A S I C ' S P R I N T .P r i n t m e s s a g e f r o m t a b l e a 4 9 5 6 6 , i n d e x e d b 6 5 0 2 a n r e g i s t e r s ( e n d o m e s s a g e i b y t e ) .P r i n t f o r m a t c h a r a c t e r s : S P A C E ,C U R S O R R I G H T .B a i n p u t r o u t i n e s .B A S I C ' S G E T .B A S I C ' S I N P U T # .B A S I C ' S I N P U T .P R O M P T a n I N P U T .B A S I C ' S R E A D , a l s o c o m m o nr o u t i n e s f o G E a n I N P U T .I n p u t e r r o r m e s s a g e s :7 E X T R A I G N O R E D , 7 R E D OF R O M S T A R T .B A S I C ' S N E X T .T y p e - m a t c h c h e c k i n g .

2 3

Page 245: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 245/284

5 2 6 3 8 C D 9 E5 2 8 7 05 2 9 0 45 2 9 7 75 2 9 8 35 2 9 8 65 2 9 9 15 3 0 0 05 3 0 0 5

5 3 0 1 25 3 0 3 25 3 1 5 95 3 2 2 25 3 2 2 55 3 2 7 05 3 3 7 75 3 3 8 7

5 3 5 2 3

5 3 5 3 35 3 6 5 25 3 6 6 95 3 7 6 45 3 6 8 2

5 3 7 1 35 3 8 2 9

5 3 8 3 2

5 4 0 9 25 4 1 4 15 4 1 6 4

5 4 1 7 45 4 1 8 25 4 1 9 55 4 2 4 15 4 2 6 05 4 3 7 35 4 3 8 95 4 4 0 7

C E 8 6C E A 8C E F 1C E F 7C E F AC E F FC F 0 8C F O DC F 1 4C F 2 8C F A 7C F E 6C F E 9D 0 1 6D 0 8 1D 0 8 BD 1 1 3

D U D 1 9 4D 1 A 5D 1 A AD 1 B 2D 1 D 1D 2 4 5D 2 4 8D 3 4 CD 3 7 DD 3 9 4D 3 9 ED 3 A 6D 3 B 3D 3 E 1D 3 F 4D 4 6 5D 4 7 5D 4 8 7

E v a l u a t e f o r m u l a u s i n g $ Z \ , $ 7 B ,s t a c k , A C C U M s .E v a l u a t e e x p r e s s i o n .C o n s t a n t p i E v a l u a t e w i t h i n p a r e n t h e s e s .C h e c k f o r ' ) 'C h e c k f o r ' ( ' .C h e c k f o r ' / .P r i n t S Y N T A X E R R O R m e s s a g e .S e u f u n c t i o n f o l a t e re v a l u a t i o n .C h e c k r a n g e o v a r i a b l e .S e a r c h f o r v a r i a b l e .S e u F r e f e r e n c e .B A S I C ' S O R B A S I C ' S A N D .C o m p a r e n u m e r i c s o s t r i n g s .B A S I C ' S D I M .L o c a t e v a r i a b l e , s e t s $ 4 4 , $ 4 5 ,$ 4 6 , $ 4 7 , $ D , $ E .C h e c k i A S C I I c h a r a c t e r i a l p h a b e t i c .C r e a t e n e v a r i a b l e .A r r a y p o i n t e r s u b r o u t i n e .V a l u e 3 2 7 6 8 i f l o a t i n g p o i n t .E v a l u a t e f o p o s i t i v e i n t e g e r .F l o a t i n g p o i n t - t o - i n t e g e rc o n v e r s i o n .F i n d o c r e a t e a a r r a y .P r i n t B A S U B S C R I P Tm e s s a g e .P r i n t I L L E G A L Q U A N T I T Ym e s s a g e .C o m p u t e a r r a y s u b s c r i p t s i z e .B A S I C ' S F R E .I n t e g e r - t o - f l o a t i n g p o i n tc o n v e r s i o n .B A S I C ' S P O S .C h e c k i i m m e d i a t e s t a t e m e n tl e g a l o i l l e g a l .B A S I C ' S D E F .C h e c k F s y n t a x .B A S I C ' S F N B A S I C ' S S T R $ .C a l c u l a t e s t r i n g v e c t o r .S c a n a n s e u s t r i n g .

2 3

Page 246: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 246/284

5 4 5 1 6 D 4 F 4

5 4 5 6 65 4 7 1 7

5 4 7 9 05 4 8 4 55 4 9 0 65 4 9 4 75 5 0 0 3

5 5 0 2 05 5 0 4 05 5 0 8 45 5 0 9 55 5 1 3 7

5 5 1 6 45 5 1 7 05 5 1 7 95 5 1 9 55 5 2 1 35 5 2 7 55 5 2 8 75 5 3 0 95 5 3 3 25 5 3 4 15 5 3 6 95 5 3 7 6

5 5 3 7 95 5 4 0 25 5 6 2 35 5 6 7 8

5 5 6 8 35 5 7 4 05 5 7 8 65 5 8 4 8

5 5 8 5 9

5 5 8 9 75 5 9 4 85 5 9 9 1

D 5 2 6D 5 B DD 6 0 6D 6 3 DD 6 7 AD 6 A 3D 6 D BD 6 E CD 7 0 0D 7 2 CD 7 3 7D 7 6 1

D 7 7 CD 7 8 2D 7 8 BD 7 9 BD 7 A DD 7 E BD 7 F 7D 8 0 DD 8 2 4D 8 2 DD 8 4 9D 8 5 0D 8 5 3D 8 6 AD 9 4 7D 9 7 ED 9 8 3D 9 B CD 9 E AD A 2 8D A 3 3D A 5 9D A 8 CD A B 7

M a k e r o o m f o s t r i n g , b u i l ds t r i n g v e c t o r .G a r b a g e c o l l e c t i o n .C h e c k f o m o s t e l i g i b l e s t r i n g t c o l l e c t .G a r b a g e c o l l e c t s t r i n g .C o n c a t e n a t e s t r i n g .B u i l d s t r i n g i n t o m e m o r y .D i s c a r d a u n w a n t e d s t r i n g .C l e a n u t h s t r i n g d e s c r i p t o rs t a c k .B A S I C ' S C H R $ .B A S I C s L E F T $ .B A S I C ' S R I G H T $ .B A S I C ' S M I D $ .P u l l s t r i n g p a r a m e t e r s f r o ms t a c k .B A S I C ' S L E N .E x i t s t r i n g - m o d e .B A S I C ' S A S C .I n p u t b y t e p a r a m e t e r .B A S I C ' S V A L .G e p a r a m e t e r s f o P O K E / W A I T .F l o a t i n g - t o - f i x e d c o n v e r s i o n .B A S I C ' S P E E K .B A S I C ' S P O K E .B A S I C ' S W A I T .A d d 0 . 5 t o A C C U M .S u b t r a c t A C C U M 2 f r o mA C C U M 1 .B A S I C ' S S U B T R A C TB A S I C ' S A D D .C o m p l e m e n t A C C U M 1 .P r i n t O V E R F L O W m e s s a g e a n e x i t .M u l t i p l y b y t e .C o n s t a n t s f o f u n c t i o n s .B A S I C ' S L O G .M u l t i p l y f l o a t i n g p o i n t i m e m o r y w i t h A C C U M 1 .M u l t i p l y A C C U M 2 w i t hA C C U M 1 .M u l t i p l y - a - b i t s u b r o u t i n e .M o v e m e m o r y t A C C U M 2 .T e s t a n a d j u s t A C C U M 1 a n A C C U M 2 .

2 3

Page 247: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 247/284

5 6 0 2 05 6 0 3 45 6 0 5 75 6 0 6 25 6 0 8 25 6 2 2 65 6 2 6 35 6 3 1 65 6 3 3 2

5 6 3 3 55 6 3 4 75 6 3 6 35 6 3 7 75 6 4 0 85 6 4 1 15 6 4 7 5

5 6 5 2 45 6 5 6 3

5 6 7 0 25 6 7 5 5

5 6 7 6 85 6 7 8 1

D A D 4D A E 2D A F 9D A F ED B 1 2B D A 2D B C 7D B F CD C O C

D C O FD C 1 BD C 2 BD C 3 9D C 5 8D C 5 BD C 9 BD C C CD C F 3D D 7 ED D B 3D D C OD D C D

5 6 7 9 7

5 7 1 1 0

D D D DD F 1 6

5 7 1 4 65 7 2 0 15 7 2 1 15 7 2 6 85 7 3 2 5

D F 3 AD F 7 1D F 7 BD F B 4D F E D

H a n d l e u n d e r f l o w / o v e r f l o w .M u l t i p l y A C C U M l b 1 0 + 1 i f l o a t i n g p o i n t .

D i v i d e A C C U M l b 1 0 D i v i d e A C C U M 2 b A C C U M l .M o v e m e m o r y t A C C U M l .M o v e A C C U M l t m e m o r y .M o v e A C C U M 2 t A C C U M l .M o v e A C C U M l t A C C U M 2 ,w i t h r o u n d i n g .M o v e A C C U M l t A C C U M 2 ,w i t h o u t r o u n d i n g .R o u n d A C C U M l .G e s i g n f r o m A C C U M l .B A S I C ' S S G N .B A S I C ' S A B S .C o m p a r e A C C U M l t m e m o r y .F l o a t i n g p o i n t - t o - f i x e dc o n v e r s i o n .B A S I C ' S I N T .S t r i n g - t o - f l o a t i n g p o i n tc o n v e r s i o n .G e A S C I I d i g i t .S t r i n g t o f l o a t i n g p o i n t c o n v e rs i o n c o n s t a n t s .P r i n t m e s s a g e I N D e c i m a l o u t p u t r o u t i n e , p r i n tn u m b e r .C o n v e r t f l o a t i n g p o i n t t T I o A S C I I .D e c i m a l c o n s t a n t s f o c o n v e r s i o n .T c o n s t a n t s f o c o n v e r s i o n .B A S I C ' S S Q R .B A S I C ' S P O W E R .B A S I C ' S N O T .B A S I C ' S E X P .

8 K K e r n a l R O M5 7 3 4 4 - 6 5 5 3 5 $ E 0 0 0 - $ F F F F = 8 1 9 2B A S I C r o u t i n e s s p i l l o v e r i n t o t h i s R O M ; n o t e t h a t r o u t i n e s m a h a v em u l t i p l e v a l i d e n t r y p o i n t s , d e p e n d i n g o t h f u n c t i o n d e s i r e d .5 7 4 0 8 E 0 4 0 F u n c t i o n s e r i e s e v a l u a t i o n

s u b r o u t i n e 1

2 3

Page 248: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 248/284

5 7 4 3 0 E 0 5 6

5 7 4 8 25 7 4 9 25 7 5 9 05 7 6 3 95 7 6 8 35 7 6 9 85 7 7 0 15 7 7 8 75 7 7 9 65 7 8 0 9

5 7 8 5 95 7 8 6 75 7 8 7 8

5 7 9 5 35 7 9 6 05 8 0 3 35 8 0 7 7

5 8 1 2 35 8 1 7 15 8 2 3 25 8 2 4 7

E 0 8 AE 0 9 4E 0 F 6E 1 2 7E 1 5 3E 1 6 2E 1 6 5E 1 B BE 1 C 4E 1 D 1

E 2 0 3E 2 0 BE 2 1 6

E 2 6 1E 2 6 8E 2 B 1E 2 D DE 3 0 BE 3 3 BE 3 7 8E 3 8 7

5 8 2 7 6 E 3 A 4

5 8 4 0 9 E 4 2 9

5 8 4 4 75 8 4 5 95 8 4 7 15 8 4 8 65 8 5 2 85 8 5 3 75 8 5 4 65 8 5 4 95 8 5 5 65 8 6 2 45 8 6 2 9

E 4 4 FE 4 5 BE 4 6 7E 4 7 6E 4 A 0E 4 A 9E 4 B 2E 4 B 5E 4 B CE 5 0 0E 5 0 5

5 8 6 3 4 E 5 0 A

F u n c t i o n s e r i e s e v a l u a t i o ns u b r o u t i n e 2 M a n i p u l a t e c o n s t a n t s f o R N D .B A S I C ' S R N D .K e r n a l p a t c h r o u t i n e s .B A S I C ' S S Y S .B A S I C ' S S A V E .B A S I C ' S V E R I F Y .B A S I C ' S L O A D .B A S I C ' S O P E N .B A S I C ' S C L O S E .H a n d l e p a r a m e t e r s f o L O A Da n S A V E .C h e c k d e f a u l t p a r a m e t e r s .C h e c k f o c o m m a .H a n d l e p a r a m e t e r s f o O P E Na n C L O S E .B A S I C ' S C O S .B A S I C ' S S I N .B A S I C ' S T A N .T r i g e v a l u a t i o n c o n s t a n t s : p i / 2 ,. 2 5 , e t c .B A S I C ' S A T N .C o n s t a n t s f o A T e v a l u a t i o n .C o l d s t a r t B A S I C .C H R G E T r o u t i n e t b c o p i e d t 1 1 5 - 1 3 8 ( $ 7 3 - 8 A ) .I n i t i a l i z e B A S I C : R e s t o r eC H R G E T a n p a g e z e r op o i n t e r s .P o w e r - u p m e s s a g e" b y t e s f r e e " , " * * * * C B B A S I CV e c t o r s t c o p y t $ 3 0 0 .I n i t i a l i z e v e c t o r s .W a r m r e s t a r t .P r o g r a m p a t c h a r e a .S e r i a l : O u t p u t 1 S e r i a l : O u t p u t 0 S e r i a l : G e i n p u t a n c l o c k .R e s t o r e v e c t o r s .P r o g r a m p a t c h a r e a .R e t u r n a d d r e s s o f 6 5 2 2 .S e s c r e e n l i m i t s , m a l i n e s ,c o l u m n s .R e a d / P l o t c u r s o r l o c a t i o n .

2 4

Page 249: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 249/284

5 8 6 4 85 8 6 5 0

5 8 7 0 05 8 7 1 95 8 7 5 35 8 7 5 9

5 8 8 0 55 8 8 1 15 8 8 1 95 8 8 3 1

5 8 9 5 9

5 9 0 6 45 9 0 7 75 9 1 1 45 9 1 5 75 9 1 8 1

5 9 2 0 25 9 3 9 25 9 5 8 75 9 6 0 85 9 6 2 4

5 9 6 4 2

5 9 6 6 65 9 6 8 15 9 6 8 9

5 9 7 6 55 9 8 8 65 9 9 9 06 0 0 1 46 0 0 3 06 0 0 4 56 0 0 6 56 0 0 7 46 0 0 8 26 0 0 9 5

E 5 1 8E 5 1 AE 5 4 CE 5 5 FE 5 8 1E 5 8 7

E 5 B 5E 5 B BE 5 C 3E 5 C FE 6 4 F

E 6 B 8E 6 C 5E 6 E AE 7 1 5E 7 2 DE 7 4 2E 8 0 0E 8 C 3E 8 D 8E 8 E 8

E 8 F A

E 9 1 2E 9 2 1E 9 2 9

E 9 7 5E 9 E EE A 5 6E A 6 EE A 7 EE A 8 DE A A 1E A A AE A B 2E A B F

I n i t i a l i z e I / O .I n i t i a l i z e / r e s t o r e V I c h i pd e f a u l t s .N o r m a l i z e s c r e e n .C l e a r s c r e e n .H O M E c u r s o r .S e s c r e e n l i n e l i n k t a b l ep o i n t e r s .N M e n t r y f o r e s t o r e k e y .S e I / d e f a u l t s .S e V I c h i p d e f a u l t s .G e c h a r a c t e r f r o m k e y b o a r dq u e u e .I n p u t f r o m q u e u e u n t i l c a r r i a g er e t u r n .Q u o t e m a r k t e s t .S e u s c r e e n p r i n t .A d v a n c e c u r s o r o s c r e e n .R e t r e a t c u r s o r o s c r e e n .B a c k u i n t o p r e v i o u s s c r e e nl i n e .O u t p u t c h a r a c t e r t t h s c r e e n .H a n d l e s h i f t k e y s .G t n e x t s c r e e n l i n e .H a n d l e r e t u r n k e y .C h e c k f o s c r e e n l i n e i n d e xp o i n t e r d e c r e m e n t .C h e c k f o s c r e e n l i n e i n d e xp o i n t e r i n c r e m e n t .S e c o l o r c o d e .C o l o r c o d e t a b l e .S c r e e n c o d e t A S C I I c o d ec o n v e r s i o n .S c r o l l s c r e e n .O p e n s p a c e o s c r e e n .M o v e s c r e e n l i n e .S y n c c o l o r t r a n s f e r .S e s t a r t o s c r e e n l i n e .C l e a r s c r e e n l i n e .P r i n t t s c r e e n .S t o r e o s c r e e n .S y n c c o l o r t c h a r a c t e r .I R i n t e r r u p t e n t r y p o i n t e d t

6 0 1 9 0 E B 1 E S c a n k e y b o a r d u s i n g V I A 2 .

2 4

Page 250: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 250/284

6 0 8 3 0 E B D C

6 0 4 1 66 0 4 8 66 0 5 1 06 0 7 0 56 0 7 2 06 0 7 6 36 0 7 7 86 0 8 3 56 0 9 0 06 0 9 1 66 0 9 2 16 0 9 2 56 0 9 4 86 0 9 5 16 0 9 5 66 1 0 0 16 1 1 1 16 1 1 2 0

6 1 1 2 56 1 1 3 4

6 1 1 5 66 1 1 7 46 1 1 8 8

6 1 2 0 96 1 3 1 66 1 5 2 56 1 3 3 46 1 3 4 7

6 1 3 7 56 1 4 1 66 1 4 2 26 1 4 3 56 1 4 6 26 1 4 7 96 1 4 9 46 1 5 0 46 1 5 1 06 1 5 1 56 1 5 3 1

E C 0 0E C 4 6E C 5 EE D 2 1E D 3 0E D 5 BE D 6 AE D A 3E D E 4E D F 4E D F 9E D F DE E 1 4E E 1 7E E 1 CE E 4 9E E B 7E E C OE E C 5E E C EE E E 4E E F 6E F 0 4

E F 1 9E F 8 4E F 8 DE F 9 6E F A 3E F B FE F E 8E F E EE F F BF 0 1 6F 0 2 7F 0 3 6F 0 4 0F 0 4 6F 0 4 BF 0 5 B

D e c o d e k e y b o a r d f r o m 2 0 ( $ C B ) t A S C I I i k e y b o a r dq u e u e .S e k e y b o a r d m o d e .K e y b o a r d v e c t o r s .K e y b o a r d m a t r i x .G r a p h i c s / t e x t c o n t r o l .S e g r a p h i c s m o d e .W r a p u s c r e e n l i n e .S h i f t e d k e m a t r i x .C o n t r o l k e m a t r i x .I n i t i a l v a l u e s f o V I r e g S ." L O A D " ." R U N " .S c r e e n l i n e a d d s l o w .S e r i a l : S e n d t a l k .S e r i a l : C o m m a n d s e r i a l t l i s t e n .S e r i a l : S e n d c o n t r o l c h a r a c t e r .S e r i a l : S e n d t s e r i a l .S e r i a l : T i m e o u t o s e r i a l .S e r i a l : S e n d s e c o n d a r y a d d r e s sa f t e r l i s t e n .S e r i a l : C l e a r a t t e n t i o n .S e r i a l : S e n d s e c o n d a r y a d d r e s sa f t e r t a l k .S e r i a l : S e n d s e r i a l d e f e r r e d .S e r i a l : S e n d u n t a l k .S e r i a l : C o m m a n d s e r i a l t

u n l i s t e n .S e r i a l : R e c e i v e b y t e f r o m s e r i a l .S e r i a l : S e t c l o c k l i n e o n S e r i a l : S e t c l o c k l i n e o f f .D e l a y m i l l i s e c o n d .R S - 2 3 2 : S e n d ( N M I c o n t i n u at i o n r o u t i n e ) .R S - 2 3 2 : C a l c u l a t e p a r i t y .R S - 2 3 2 : C o u n t s t o p b i t s .R S - 2 3 2 : S e n d n e b y t e .R S - 2 3 2 : S e u t s e n d n e x t b y t e .R S - 2 3 2 : E r r o r o r q u i t .R S - 2 3 2 : C o m p u t e b i c o u n t .R S - 2 3 2 ; R e c e i v e ( N M I ) .R S - 2 3 2 : C a l c u l a t e p a r i t y .R S - 2 3 2 : S h i f t d a t a b i i n R S - 2 3 2 : S t o r e b y t e i b u f f e r .R S - 2 3 2 : S e t u t r e c e i v e .

2 4

Page 251: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 251/284

6 1 5 4 4

6 1 5 5 1

6 1 5 5 1

6 1 5 8 8

6 1 5 9 76 1 5 9 9

6 1 6 0 26 1 6 0 56 1 6 0 86 1 6 2 56 1 6 2 86 1 6 3 6

6 1 6 4 5

6 1 6 5 2

6 1 6 5 76 1 6 6 5

6 1 6 7 7

6 1 6 9 26 1 6 9 86 1 7 1 06 1 7 1 8

6 1 7 3 0

6 1 7 3 9

6 1 7 4 4

6 1 7 5 2

6 1 7 5 9

6 1 7 6 6

F 0 6 8

F 0 6 F

F 0 6 F

F 0 9 4

F 0 9 DF 0 9 F

F 0 A 2F 0 A 5F 0 A 8F 0 B 9F O B CF 0 C 4F O C DF 0 D 4F 0 D 9F 0 E 1

F O E DF O F CF 1 0 2F 1 0 EF 1 1 6

F 1 2 2

F 1 2 B

F 1 3 0

F 1 3 8

F 1 3 F

F 1 4 6

R S - 2 3 2 : R e c e i v e r s t a r t b i tc h e c k i n g .R S - 2 3 2 : R e c e i v e r p u d a t a i b u f f e r .R S - 2 3 2 : R e c e i v e r p a r i t yc h e c k i n g .R S - 2 3 2 : R e c e i v e r c a l c u l a t ep a r i t y .R S - 2 3 2 : R e c e i v e r p a r i t y e r r o r .R S - 2 3 2 : R e c e i v e r e r r o r sr e p e a t e d .R S - 2 3 2 : R e c e i v e r o v e r r u n e r r o r .R S - 2 3 2 : R e c e i v e r b r e a k e r r o r .R S - 2 3 2 : R e c e i v e r f r a m e e r r o r .R S - 2 3 2 ; B a d e v i c e .R S - 2 3 2 : F i l e t R S - 2 3 2 b u f f e r .R S - 2 3 2 : C h e c k D a t a S e R e a d y ,R e q u e s t T S e n d .R S - 2 3 2 : C h e c k r e q u e s t t s e n d( l o w a c t i v e i n p u t ) .j R S - 2 3 2 ; W a i t f o C l e a r T S e n d t t u r n o f f .R S - 2 3 2 ; T u r n o r e q u e s t t s e n d .R S - 2 3 2 : W a i t f o c l e a r t s e n d t t u r n o n R S - 2 3 2 : S e n d c h a r a c t e r t R S - 2 3 2 f r o m b u f f e r .J R S - 2 3 2 ; S e u o u t p u t .R S - 2 3 2 : S e u f i r s t b y t e o u t .R S - 2 3 2 : S e u p V I A 1 T i m e rN M I ' s .R S - 2 3 2 : I n p u t c h a r a c t e r f r o mR S - 2 3 2 t b u f f e r .R S - 2 3 2 : C h e c k f o D a t a S e R e a d y a n d n o R e q u e s t T S e n d .R S - 2 3 2 : W a i t f o o u t p u t t b d o n e .R S - 2 3 2 : T u r n o f R e q u e s t T S e n d .R S - 2 3 2 : W a i t f o d a t a c a r r i e r t t u r n o n R S - 2 3 2 ; E n a b l e V I A 1 C B 1 f o R S - 2 3 2 i n p u t .R S - 2 3 2 : I n o 3 - l i n e h a n d s h a ki n g , s e i C B n e e d s t b o n

2 4

Page 252: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 252/284

6 1 7 7 5 F 1 4 F

6 1 7 8 86 1 7 9 2

6 1 8 1 26 1 9 2 26 1 9 4 16 1 9 6 6

6 2 0 7 46 2 1 5 16 2 2 1 76 2 2 8 26 2 4 1 56 2 4 3 16 2 4 4 76 2 4 5 16 2 4 7 46 2 6 1 36 2 6 6 36 2 7 8 66 2 7 9 3

6 3 0 4 76 3 0 6 56 3 0 8 26 3 0 9 3

6 3 1 0 96 3 2 7 26 3 2 8 4

6 3 3 2 86 3 3 3 56 3 3 4 4

6 3 3 5 86 3 4 0 76 3 4 6 36 3 5 6 56 3 4 7 26 3 5 9 16 3 6 2 66 3 6 3 6

F 1 5 CF 1 6 0

F 1 7 4F 1 E 2F 1 F 5F 2 0 E

F 2 7 AF 2 C 7F 3 0 9F 3 4 AF 3 C FF 3 D FF 3 E FF 3 F 3F 4 0 AF 4 9 5F 4 C 7F 5 4 2F 5 4 9

F 6 4 7F 6 5 9F 6 6 AF 6 7 5

F 6 8 5F 7 2 8F 7 3 4

F 7 6 0F 7 6 7F 7 7 0

F 7 7 EF 7 A FF 7 E 7F 8 4 DF 8 5 4F 8 6 7F 8 8 AF 8 9 4

R S - 2 3 2 : G e c h a r a c t e r f r o mR S - 2 3 2 b u f f e r .R S - 2 3 2 : R e c e i v e r a l w a y s r u n s .R S - 2 3 2 : C h e c k s e r i a l i d l e , t p r t e c t f r o m R S - 2 3 2 .H a n d l e K e r n a l m e s s a g e s .P r i n t m e s s a g e i i m m e d i a t e .G e f r o m d e v i c e .I n p u t f r o m d e v i c e , u t 8 c h a r a c t e r s .O u t p u t t d e v i c e .S e t d e v i c e f o i n p u t .S e t d e v i c e f o o u t p u t .C l o s e l o g i c a l f i l e .F i n d f i l e c h a r a c t e r s .S e f i l e c h a r a c t e r i s t i c s .C l o s e a l o p e n f i l e s .R e s e t d e f a u l t I / O , r e s e t d e v i c e s .O P E N l o g i c a l f i l e .S e n d s e c o n d a r y a d d r e s s .R S - 2 3 2 : O P E N R S - 2 3 2 d e v i c e .L O A D p r o g r a m .L O A D p r o g r a m t R A f r o md e v i c e d e s i g n a t e d i 1 8 6 ( $ B A ) ,o v e r i f y .P r i n t " S E A R C H I N G . . . . " . P r i n t f i l e n a m e .P r i n t " L O A D I N G / V E R I F Y I N G . "S A V E R A t d e v i c e d e s i g n a t e di n l 8 6 ( $ B A ) .S A V E t d e v i c e .P r i n t " S A V I N G . . . . "I n c r e m e n t r e a l t i m e c l o c k b j i f f y .G e t i m e .S e t i m e .C h e c k f o S T O P k e i 1 4 ( $ 9 1 ) ,p u r g e q u e u e a n c h a n n e l s .F i l e e r r o r m e s s a g e h a n d l e r .T a p e : F i n d n e x t t a p e h e a d e r .T a p e : W r i t e t a p e h e a d e r .T a p e : G e b u f f e r a d d r e s s .T a p e : S e t b u f f e r s t a r t a n e n d .T a p e : F i n d s p e c i f i e d h e a d e r .T a p e : B u m p t a p e p o i n t e r .T a p e : P r i n t " P R E S S P L A Y . . . . "

2 4

Page 253: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 253/284

6 3 6 5 9 F 8 A S6 3 6 7 1 F 8 B 7

6 3 6 8 06 3 6 8 96 3 7 1 56 3 7 3 2

6 3 1 8 96 3 8 3 76 3 8 8 6

6 4 1 8 96 4 1 7 36 4 4 6 66 4 4 7 56 4 4 9 06 4 5 1 86 4 5 2 36 4 6 6 16 4 7 1 96 4 7 5 86 4 7 7 66 4 7 8 56 4 7 9 56 4 8 0 2

F 8 C 0F 8 C 9F 8 E 3F 8 F 4

F 9 4 BF 5 9 DF 9 8 E

F A B DF A A DF B D 2F B D BF B E AF C 0 6F C O BF C 9 5F C C FF C F 6F D 0 8F D 1 1F D 1 BF D 2 2

6 4 8 3 16 4 8 5 06 4 8 5 56 4 9 0 96 5 0 0 96 5 0 1 76 5 0 9 7

F D 3 FF D 5 2F D 5 7F D 8 DF D F D F 9F E 4 9

T a p e : C h e c k t a p e p l a y /r e w i n d / f o r w a r d s t a t u s .T a p e : P r i n t " P R E S S R E C O R D . . . . "a n c h e c k .T a p e : I n i t i a t e t a p e h e a d e r r e a d .T a p e : R e a d t a p e l o a d b l o c k .T a p e : I n i t i a t e t a p e h e a d e r w r i t e .T a p e : C o m m o n t a p e r e a d / w r i t e ,

s t a r t t a p e o p e r a t i o n .T a p e : C h e c k t a p e S T O P k e y .T a p e : S e t i m i n g f o t a p e d i p o l e .T a p e : R e a d b i t s i n t o b u f f e r ( I R Q

d r i v e n ) .T a p e : B y t e h a n d l e r .T a p e : S t o r e c h a r a c t e r s .T a p e : R e s e t p o i n t e r .T a p e : N e t a p e c h a r a c t e r s e t u p .T a p e ; T o g g l e t a p e .T a p e : D a t a w r i t e .T a p e : T a p e w r i t e ( I R Q d r i v e n ) .T a p e : L e a d e r w r i t e ( I R Q d r i v e n ) .T a p e : R e s t o r e v e c t o r s .T a p e : S e v e c t o r .T a p e : S t o p m o t o r .T a p e : C h e c k r e a d / w r i t e p o i n t e r .T a p e : B u m p r e a d / w r i t e p o i n t e r .

P o w e r o r e s t a r t ( c h e c k s f o a u t o s t a r t ) .C l e a r $ 0 - $ F F , $ 2 0 0 - $ 3 F F , s e t h p o i n t e r t t a p e b u f f e r , f r o m $ 4 0 0s e a r c h u f o s t a r t a n d e n d o R A M , m o v e s c r e e n , s e t o a n b o t t o m o m e m o r y p o i n t e r s , s e d e f a u l t I / v e c t o r s , i n i t i a l i z e t h p a g e z e r o j u m p t a b l e , b u i l dC H R G E T r o u t i n e , c l e a rs c r e e n , p r i n t s t a r t u p m e s s a g ea n b y t e s f r e e , g t B A S I C( $ C 0 0 0 ) .C h e c k $ A 0 0 0 f o a u t o s t a r t R O M .R e s t o r e o l d I / v e c t o r s .R e a d / s e t v e c t o r e d I / O .I n i t i a l i z e s y s t e m c o n s t a n t s .I n i t i a l i z e I R v e c t o r s .I n i t i a l i z e I / r e g i s t e r s .S A V E d a t a n a m e .

2 4

Page 254: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 254/284

6 5 1 0 46 5 1 1 16 5 1 2 66 5 1 3 5

6 5 1 5 46 5 1 6 96 5 1 9 36 5 1 9 76 5 2 3 46 5 2 4 66 5 3 6 6

6 5 3 7 2

6 5 3 9 4

6 5 4 1 3

6 5 4 1 8

6 5 4 2 16 5 4 2 4

6 5 4 2 7

6 5 4 3 0

F E 5 0F E 5 7F E 6 6F E 6 FF E 7 3F E 8 2F E 9 1F E A 9F E A DF E D 2F E D EF F 5 6F F 5 CF F 7 2

F F 8 5

S A V E f i l e d e t a i l s .R e a d I / s t a t u s .C o n t r o l K e r n a l m e s s a g e s .S e r i a l : S e t i m e o u t v a l u e .R e a d / s e t t o o m e m o r y .R e a d / s e t b o t t o m o m e m o r y .T e s t m e m o r y l o c a t i o n .N M i n t e r r u p t e n t r y h a n d l e r .N M i n t e r r u p t e n t r y .B r e a k i n t e r r u p t e n t r y .R S - 2 3 2 : N M R S - 2 3 2 s e q u e n c e s .R e s t o r e 6 5 0 2 r e g i s t e r s a n r e t u r nt i n t e r r u p t .R S - 2 3 2 : T i m i n g a n b a u d r a t et a b l e s .I R h a n d l e r , J U M P o $ 3 1 4 v e t o ( I R Q e n t r y ) o J U M P o $ 3 1 6 v e c t o r ( B R E A Ke n t r y ) .

b y t e s o F F b y t e s o F F T h f o l l o w i n g h a v e J M o p c o d e f o l l o w e d b t h v e c t o r :™ J U M P T O R l I / F F 8 A

F F 8 DF F 9 0

F F 9 3

F F 9 6

F F 9 96 5 4 3 6 F F 9 C6 5 4 3 96 5 4 4 26 5 4 4 5

6 5 4 4 86 5 4 5 1

6 5 4 5 4

6 5 4 5 7

F F 9 FF F A 2F F A 5F F A 8F F A B

F F A EF F B 1

J U M P T O : R e s t o r e o l d I / v e c t o r s . $ F D 5 2J U M P T O : R e a d / s e t v e c t o r e d I / O . $ F D 5 7J U M P T O : C o n t r o l K e r n a lm e s s a g e s . $ F E 6 6J U M P T O : S e n d s e c o n d a r ya d d r e s s ( a f t e r l i s t e n ) . $ E E C 0J U M P T O : S e n d s e c o n d a r ya d d r e s s ( a f t e r t a l k ) . $ E E C EJ U M P T O : R e a d / s e t t o o m e m o r y . $ F E 7 3J U M P T O : R e a d / s e t b o t t o m o m e m o r y , ' i $ F E 8 2 |J U M P T O : S c a n k e y b o a r d . $ E B 1 E " 'J U M P T O : S e t i m e o u t o S e r i a l . $ F E 6 FJ U M P T O : R e c e i v e b y t e f r o mS e r i a l . $ E F 1 9J U M P T O : O u t p u t b y t e t S e r i a l . $ E E E 4J U M P T O : C o m m a n d s e r i a l t u n t a l k . $ E E F 6J U M P T O : C o m m a n d s e r i a l t u n l i s t e n . $ E F 0 4J U M P T O : C o m m a n d s e r i a l t l i s t e j i . $ E E 1 7

2 4

Page 255: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 255/284

6 5 4 6 0 F F B 4 J U M P T O : C o m m a n d s e r i a l t t a l k . $ E E 1 4

6 5 4 6 3 F F B 7 J U M P T O : R e a d I / s t a t u s w o r d . $ F E 5 76 5 4 6 6 F F B A J U M P T O : S e l o g i c a l f i r s t , s e

o n a d d r e s s . $ F E 5 06 5 4 6 9 F F B D J U M P T O : S e f i l e n a m e . $ F E 4 9

F o l l o w i n g a r i n d i r e c t J M P s o f o $ 3 0 0 v e c t o r .T h $ 3 0 0 v e c t o r s c a b s e t t o g t y o u r c o d e .

6 5 4 7 2 F F C 0 J U M P I N D : O P E N f i l e . $ 3 1 A6 5 4 7 5 F F C 3 J U M P I N D : C L O S E f i l e ( r e g ) . $ 3 1 C6 5 4 7 8 F F C 6 J U M P I N D : O P E N I N P U Td e v i c e ; c h a n g e s G E T , I N P U T t $ 3 1 E

. f i l e n u d e v i c e .6 5 4 8 1 F F C 9 J U M P I N D : O P E N o u t p u t

d e v i c e ; c h a n g e s p r i n t t . $ 3 2 0f i l e n u d e v i c e .

6 5 4 8 4 F F C C J U M P I N D : C L O S E i n p u t a n o u t p u t d e v i c e s ; b n o t u s i n g $ 3 2 2t h i s , m u l t i p l e d e v i c e s c a l i s t e n .

6 5 4 8 7 F F C F J U M P I N D : I N P U T c h a r a c t e rf r o m d e v i c e . $ 3 2 46 5 4 9 0 F F D 2 J U M P I N D : O U T P U T c h a r a c t e r

t d e v i c e ( a r e g ) . $ 3 2 6T h f o l l o w i n g h a v e J M O P C O D E f o l l o w e d b t h v e c t o r :

6 5 4 9 3 F F D 5 J U M P T O : L O A D / V E R I F Y . $ F 5 4 26 5 4 9 6 F F D 8 J U M P T O : S A V E R A t o d e v i c e . $ F 6 7 56 5 4 9 9 F F D B J U M P T O : S e r e a l t i m e c l o c k . $ F 7 6 76 5 5 0 2 F F D E J U M P T O : R e a d r e a l t i m e c l o c k . $ F 7 6 0

F o l l o w i n g a r i n d i r e c t J M P S o f $ 3 0 0 v e c t o r .T h $ 3 0 0 v e c t o r s c a b s e t t o g t y o u r c o d e .

6 5 5 0 5 F F E 1 J U M P I N D : T e s t S T O P k e y . $ 3 2 86 5 5 0 8 F F E 4 J U M P I N D : G e f r o m d e v i c e . $ 3 2 A6 5 5 1 1 F F E 7 J U M P I N D : C l o s e a l l f i l e s . $ 3 2 C

T h f o l l o w i n g h a v e J M O P C O D E f o l l o w e d b t h v e c t o r .6 5 5 1 4 F F E A J U M P T O : I n c r e m e n t r e a l t i m e

c l o c k . $ F 7 3 46 5 5 1 7 F F E D J U M P T O : R e t u r n X , Y o r i g i n o

s c r e e n . $ E 5 0 56 5 5 2 0 F F F 0 J U M P T O : R e a d / s e t X , c u r s o rp o s i t i o n . $ E 5 0 A6 5 5 2 3 F F F 3 J U M P T O : R e t u r n b a s e a d d r e s s

o p a g e f o I / d e v i c e s . $ E 5 0 06 5 5 2 6 F F F 6 b y t e s o F F 6 5 5 3 0 F F F A 6 5 0 2 N M I n i t i a l i n s t r u c t i o n

( m e d p r i o r i t y ) . $ F E A 9

2 4

Page 256: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 256/284

6 5 5 3 2 F F F C 6 5 0 2 R E S E T I n i t i a l i n s t r u c t i o n( h i p r i o r i t y ) . $ F D 2 2

6 5 5 3 4 F F F E 6 5 0 2 I R I n i t i a l i n s t r u c t i o n ( l o wp r i o r i t y ) . $ F F 7 2

2 4

Page 257: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 257/284

C h u q n C h e em a o f t h e s i g n i f i c a n t m a c h i n e l a n g u a g e r o u t i n e s i t h V I S u p e r

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

G e n e r a l I n p u t / O u t p u t R o u t i n e sA 0 0 0 - A 0 0 1 V e c t o r : R E S E T ( $ A D 4 4 ) .A 0 0 2 - A 0 0 3 V e c t o r : N N f l ( $ A D 7 7 ) .A 0 0 4 - A 0 0 8 R O i d e n t i f i c a t i o n ( W C B M ) .A 0 O 9 - A 0 1 O T a b l e : f u n c t i o n k e y n u m b e r s .A 0 1 1 - A 0 4 3 T a b l e : i n i t i a l f u n c t i o n k e d e f i n i t i o n s .A 0 4 4 - A 0 7 6 R E S E T r o u t i n e .A D 7 7 - A 0 8 A N N f l r o u t i n e .A 0 8 B - A 0 B E P a r s e K E ( g e t p a r a m e t e r s a n c h e c k s y n t a x ) .A D B F A 1 3 1 D i s p l a y a l f u n c t i o n k e d e f i n i t i o n s .

A U O - A U C P r i n t ' ° + c h r $ ( 3 4 ) ' a n a o p t i o n a l ' + ' A 1 1 D - A 1 3 1 P r i n t ' ° + c h r $ ( 1 3 ) ' a n a o p t i o n a l ' + '

A 1 3 2 - A 1 3 5 T a b l e : A S C I I s t r i n g f o o u t p u t ( T e e / b a c k w a r d s ) .A 1 3 6 - A 1 3 F T a b l e : A S C I I s t r i n g f o r o u t p u t ( ° + c h r $ ( 1 3 ) '

b a c k w a r d s ) .A 1 4 0 - A 1 4 9 T a b l e : A S C I I s t r i n g f o o u t p u t ( ° + c h r $ ( 3 4 ) '

b a c k w a r d s ) .A 1 4 A - A 1 ^ V D e l e t e c u r r e n t f u n c t i o n k e s t r i n g ( k e y n u m b e r i

6 5 0 2 r e g i s t e r X ) .A 1 7 B - A 1 B 0 I n s e r t s t r i n g i n t o f u n c t i o n k e d e f i n i t i o n a r e a .A 1 B 1 - A 1 B E L o c a t e f u n c t i o n k e d e f i n i t i o n ( k e y n u m b e r i 6 5 0 2

r e g i s t e r X r e t u r n i n d e x i r e g i s t e r Y ) A 1 B F - A 2 1 3 T a b l e : n e B A S I C k e y w o r d s i A S C I I f o r m .A 2 1 4 - A 2 3 7 T a b l e : v e c t o r s c o r r e s p o n d i n g t n e B A S I C t o k e n s

( $ C C t o $ D D ) .A 2 3 8 - A 2 A 1 I n i t i a l i z e K e r n a l v e c t o r s , I / O , R A M .A 2 A 2 - A 2 C 1 T a b l e : K e r n a l v e c t o r s ( L , H ) .A 2 C 2 - A 2 C 7 W a r m s t a r t r o u t i n e .A 2 C 8 - A 3 1 7 O u t p u t c h a r a c t e r t d e v i c e ( c h a r a c t e r i 6 5 0 2

r e g i s t e r A ) 2 4

Page 258: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 258/284

A 3 1 8 - A 3 3 6 E n m u s i c m o d e .A 3 3 7 - A 3 6 5 I n t e r p r e t k e y b o a r d m a t r i x i n p u t .A 3 6 6 - A 3 6 9 T a b l e : k e y b o a r d m a t r i x c o d e f o f u n c t i o n k e y s .A 3 6 A - A 3 7 1 T a b l e : c o n v e r s i o n p a t t e r n f o f u n c t i o n k e y s .A 3 7 2 - A 3 9 4 I R r o u t i n e .A 3 9 5 - A 3 A 5 I n p u t c h a r a c t e r f r o m a n y d e v i c e ( d e v i c e n u m b e r i

$ 9 9 ) .A 3 A 6 - A 3 B 3 O u t p u t c h a r a c t e r t a n d e v i c e ( c h a r a c t e r i n 6 5 0 2

r e g i s t e r A d e v i c e n u m b e r i $ 9 A ) .A 3 B 4 - A 3 F 1 I n p u t e a c h c h a r a c t e r f r o m k e y b o a r d b u f f e r .A 3 B 4 - A 3 E 7 H a n d l e T C U N ' k e y .

A 3 E 8 - A 3 F 1 H a n d l e ' R E T U R N 7 k e y .A 3 F 2 - A 3 F C I n p u t f r o m d e v i c e 0 A 3 F D - A 4 0 6 P r i n t a e r r o r m e s s a g e i G R A P H I C m o d e ( e r r o r

t o k e n i 6 5 0 2 r e g i s t e r A ) A 4 0 7 - A 4 B 9 T o k e n i z e B A S I C s o u r c e l i n e .A 4 B A - A 5 0 3 P r i n t B A S I C t o k e n s i A S C I I f o r m .A 5 0 4 - A 5 2 9 S t a r t n e B A S I C s t a t e m e n t .

A 5 1 5 - A 5 2 3 H a n d l e n e t o k e n s ( $ C C t $ D 6 ) .A 5 2 A - A 5 8 A G e a n e v a l u a t e a e x p r e s s i o n .

A 5 5 8 - A 5 8 A H a n d l e n e f u n c t i o n t o k e n s ( $ D 7 t $ D D ) .A 5 8 B - A 5 9 6 T a b l e : B A S I C v e c t o r s f o R A M .A 5 9 7 - A 5 A 4 C h a n g e B A S I C v e c t o r s d u r i n g R E S E T .M u s i c R o u t i n e sA 5 A 5 - A 5 D 0 S a v e c u r r e n t s o u n d t a b l e ( a d d r e s s o t a b l e i n 6 5 0 2

r e g i s t e r s X , Y ) .A 5 D 1 - A 6 0 1 I R m u s i c d r i v e r .A 6 0 2 - A 6 2 5 T a b l e : c o n v e r s i o n f o n o t e i n d e x t f r e q u e n c y .A 6 2 6 - A 6 E 5 I n t e r p r e t m u s i c m o d e c h a r a c t e r s ( c h a r a c t e r i 6 5 0 2

r e g i s t e r A ) A 6 2 9 - A 6 4 3 E x e c u t e ' O c o m m a n d ( d e f a u l t 3 ) A 6 4 4 - A 6 5 D E x e c u t e c o m m a n d ( d e f a u l t 0 ) A 6 5 E - A 6 7 4 E x e c u t e ' S ' c o m m a n d ( d e f a u l t 4 ) A 6 7 5 - A 6 8 6 E x e c u t e * V c o m m a n d ( d e f a u l t 7 ) A 6 8 7 - A 6 9 3 E x e c u t e T R c o m m a n d .A 6 9 4 - A 6 9 B E x e c u t e T c o m m a n d .A 6 9 C - A 6 A 7 E x e c u t e ' Q c o m m a n d .A 6 A 8 - A 6 A A P l a y n e n o t e ( n o t e i n d e x i 6 5 0 2 r e g i s t e r

Y ) A 6 A B - A 6 B 3 S a v e n e s o u n d t a b l e w h e n p r e v i o u s n o t e

f i n i s h e s .

2 5

Page 259: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 259/284

l ^ v ; - N • ; ■ ■ . ■ ■

A 6 B 4 - A 6 B 9 C o m m o n r e t u r n r o u t i n e .A 6 B A A 6 C D P l a y n o t e s A t ' G ' .A 6 C E - A 6 D A E x e c u t e ' # c o m m a n d .A 6 D B - A 6 E 5 E x e c u t e ' $ c o m m a n d .

A 6 E 6 - A 6 E C T a b l e : c o n v e r s i o n f o n o t e s t n o t e i n d e x .A 6 E D - A 6 E F T a b l e : c o n v e r s i o n f o o c t a v e t b a s e n o t e i n d e x .A 6 F 0 - A 6 F 9 T a b l e : c o n v e r s i o n f o t e m p o t d u r a t i o n ( j i f f i e s ) .P a r s i n g N e C o m m a n d R o u t i n e sA 6 F A - A 7 1 3 L o o k f o a n e v a l u a t e f i r s t 1 - b y t e a n t w 2 - b y t ep a r a m e t e r s .A 6 F D - A 7 1 3 L o o k f o a n e v a l u a t e t w 2 - b y t e p a r a m e t e r s .A 7 0 0 - A 7 1 3 L o o k f o a n e v a l u a t e o n 2 - b y t e p a r a m e t e r .A 7 1 4 - A 7 1 B S a v e o n 1 - b y t e p a r a m e t e r ( p a r a m e t e r i 6 5 0 2

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

p a r a m e t e r s a v e a r e a i n 6 5 0 2 r e g i s t e r s X , Y , c o m m a n di n d e x i r e g i s t e r A )

A 8 6 7 - A 8 7 8 T a b l e : v e c t o r t e x e c u t e n e c o m m a n d s ( H ) .A 8 7 9 - A 8 8 A T a b l e : v e c t o r t e x e c u t e n e c o m m a n d s ( L ) .

2 5

Page 260: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 260/284

E x e c u t e N e C o m m a n d R o u t i n e sA 8 8 B - A A 2 2 E x e c u t e G R A P H I C .A 8 A B - A 9 4 E H a n d l e G R A P H I C 1 , 2 , 3 , i p r e v i o u s w a

A 8 D 4 - A 9 4 2 T r a n s f e r B A S I C p r o g r a m t a b o v e $ 2 0 0 0a n e x e c u t e C L R .

A 9 4 3 - A 9 4 E M a k e s c r e e n a $ 1 E O O a n c h a r a c t e r s e a $ 1 0 0 0 .

A 9 4 F - A 9 A B H a n d l e G R A P H I C 4 A 9 6 7 - A 9 A B T r a n s f e r B A S I C p r o g r a m d o w n t o l

l o c a t i o n a n e x e c u t e C L R .A 9 A C - A 9 B 7 H a n d l e G R A P H I C i p r e v i o u s w a 1 , 2 , 3 .A 9 B 8 - A A 2 2 S e u p r o p e r G R A P H I C s c r e e n .

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

a v e r s i o n o B r e s e n h a m ' s D D a l g o r i t h m ) .A C 9 3 - A D 1 2 E x e c u t e C I R C L E ( u s i n g p r i n c i p l e o f d i g i t a l d i f f e r e n

t i a l a n a l y z e r ( D D A ) ) .A D 1 3 - A D 1 8 C o n v e r t s t a r t i n g a n g l e t r a d i a n s .A D 1 9 - A D 2 2 D i v i d e F A C # 1 b y 1 6 A D 2 3 - A D 6 B C a l c u l a t e n e s c a l e d a n c o o r d i n a t e o l o c u s .A D 3 9 - A D 6 B C a l c u l a t e u n i t o f f s e t s c a l e d r a d i u s .A D 6 C - A D D E E x e c u t e P A I N T .A D D F - A E 0 1 C h e c k f o p o s s i b l e n e l o w e r b o u n d p i v o t

c o o r d i n a t e .

2 5

Page 261: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 261/284

A D E 8 - A E 0 1 S a v e p i v o t c o o r d i n a t e .A E 0 2 - A E 0 B C h e c k f o p o s s i b l e n e u p p e r b o u n d p i v o tc o o r d i n a t e .

A E 0 C - A E 1 E C h e c k i a b l e t P A I N T c o o r d i n a t e .A E 0 F A E 1 E C h e c k i a b l e t P A I N T a c o o r d i n a t e ( X , Y i 6 5 0 2

r e g i s t e r s A , Y ) .A E 1 F A E 2 3 M o v e b e g i n n i n g s c a l e d X , c o o r d i n a t e t 6 5 0 2

r e g i s t e r s A , Y .A E 2 4 - A E 3 B C h e c k i c o o r d i n a t e h a b e e n a l r e a d y p l o t t e d .A E 3 C - A E 4 4 M o v e b e g i n n i n g s c a l e d c o o r d i n a t e t t h r i g h t .A E 4 5 - A E 5 1 M o v e b e g i n n i n g s c a l e d c o o r d i n a t e t t h l e f t .A E 5 2 - A E 5 6 F l a g : ' F O R M U L A T O C O M P L E X ' e r r o r m e s s a g e .A E 5 7 - A E D 9 E x e c u t e C H A R .A E D A A F 1 3 E x e c u t e R J O Y .A F 1 4 - A F 3 3 S e u c o r r e c t V I c h i p s c r e e n r e g i s t e r s .A F 3 4 - A F 3 E S a v e n u m b e r o c o o r d i n a t e s a n c o l o r r e g i s t e r .A F 3 9 - A F 3 E S a v e c o l o r r e g i s t e r .A F 3 F A F 4 7 C o p y b e g i n n i n g f r o m e n d i n g s c a l e d X , c o o r d i n a t e .A F 4 8 - A F 7 5 S c a l e a n c o o r d i n a t e s .A F 7 6 - A F B 0 S c a l e o c o o r d i n a t e t t h r a n g e t 1 5

( 6 5 0 2 r e g i s t e r = r e g i s t e r A * c o o r d i n a t e * 2 / 2 5 6 )( n u m b e r o c o l u m n s o r o w s i r e g i s t e r A )

A F B 1 - A F B A T a b l e : v e c t o r t m a c o o r d i n a t e t c o l o r m e m o r y( L ) .

A F B B - A F C E T a b l e : v e c t o r t m a c o o r d i n a t e t c h a r a c t e rm e m o r y ( L ) .

A F C F - A F E 2 T a b l e : v e c t o r t m a c o o r d i n a t e t c h a r a c t e rm e m o r y ( H ) .

A F E 3 - A F E 5 T a b l e : b i s e f o c o l o r m e m o r y .A F E 6 ( N o t u s e d c o n t a i n s $ 0 0 . )A F E 7 - A F E E T a b l e : b i m a s k f o h i g h - r e s o l u t i o n m o d e .A F E F A F F 6 T a b l e : b i m a s k f o m u l t i c o l o r m o d e .A F F 7 - A F F A T a b l e : b y t e s t o p l o t i m u l t i c o l o r m o d e .A F F B - A F F E T a b l e : c o n v e r s i o n f a c t o r f o V I c h i p s c r e e n

r e g i s t e r s .A F F F ( N o t u s e d c o n t a i n s $ A A . )N o t e :( H ) : h i g h b y t e o a t w o - b y t e a d d r e s s( L ) : l o b y t e o t w o - b y t e a d d r e s sV e c t o r : t w o - b y t e a d d r e s s u s e d f o i n d i r e c t i o n o e x e c u t i o nP o i n t e r : t w o - b y t e a d d r e s s f o d a t aI n d e x : o n e - b y t e o f f s e t f o t a b l e

2 5

Page 262: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 262/284

G e n e r a l R A A r e a U s e d b y S u p e r E x p a n d e r0 0 2 4 N u m b e r o c o o r d i n a t e s .0 0 2 4 F l a g : c o l o r r e g i s t e r m o d e ( $ F F = m u l t i c o l o r ,

$ 0 = h i g h r e s o l u t i o n ) .0 0 2 4 - 0 0 2 5 P o i n t e r : N e s t a r t o v a r i a b l e s / s t a r t o B A S I C

m e m o r y .0 0 2 6 T e m p o r a r y a r e a f o b u i l d i n g V I c h i p r e g i s t e r s / f o r

b u i l d i n g c h a r a c t e r b y t e / f o r s a v i n g s t a r t o B A S I C ( L ) .C u r r e n t C o o r d i n a t e s0 0 6 2 E n d i n g s c a l e d c o o r d i n a t e ( t 1 5 9 ) .0 0 6 3 B e g i n n i n g s c a l e d c o o r d i n a t e ^ t 1 5 9 ) .0 0 6 4 S c a l e d d i f f e r e n c e ( a b s o l u t e v a l u e ) .0 0 6 5 E n d i n g s c a l e d c o o r d i n a t e ( t 1 5 9 ) .0 0 6 6 B e g i n n i n g s c a l e d c o o r d i n a t e ( t 1 5 9 ) .0 0 6 7 S c a l e d d i f f e r e n c e ( a b s o l u t e v a l u e - 1 ) .F o S c a l i n g C o o r d i n a t e s0 0 6 9 M u l t i p l i c a n d - 1 .0 0 6 A 1 6 - b i t p r o d u c t .0 0 6 B - 0 0 6 C 1 0 - b i t m u l t i p l i e r .F o D R A W0 0 6 9 S c a l e d u n i t d i r e c t i o n - 1 .0 0 6 A S c a l e d u n i t d i r e c t i o n .0 0 6 B - 0 0 6 C N u m b e r o s c a l e d u n i t s l e f t t p l o t b e f o r e n e x t

s c a l e d u n i t ( c o u n t u p ) .0 0 6 D - 0 0 6 E N u m b e r o p o i n t s l e f t t p l o t ( c o u n t u p ) .R > P A I N T0 0 6 9 I n d e x : p i v o t c o o r d i n a t e s s a v e a r e a .F o C H A R0 0 6 9 C u r r e n t r o ( t 1 9 ) .0 0 6 A C u r r e n t c o l u m n ( t 1 9 ) .0 0 6 B L e n g t h o s t r i n g .0 0 6 C - 0 0 6 D P o i n t e r : s t r i n g l o c a t i o n .O t h e r Z e r o - P a g e U s a g e0 0 9 B I n d e x : b e g i n n i n g o c u r r e n t f u n c t i o n k e d e f i n i t i o n .0 0 9 B - 0 0 9 C P o i n t e r : c u r r e n t c h a r a c t e r s e a d d r e s s / b y t e i

c h a r a c t e r s e t / p o s i t i o n i s c r e e n m e m o r y / d e s t i n a t i o no b y t e o B A S I C p r o g r a m t t r a n s f e r .

2 5

Page 263: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 263/284

0 0 9 D I n d e x : e n o f u n c t i o n k e d e f i n i t i o n a r e a ,0 0 9 E C u r r e n t f u n c t i o n k e y n u m b e r / l e n g t h o c u r r e n tf u n c t i o n k e s t r i n g .

0 0 9 F L e n g t h o c u r r e n t f u n c t i o n k e s t r i n g ( c o u n t d o w n ) .0 0 9 E - 0 0 9 F P o i n t e r : b y t e i c o l o r m e m o r y .0 0 A C - 0 0 A D F o i n t e r : c u r r e n t b y t e ( f u n c t i o n k e d e f i n i t i o n , t a p e ,

s c r o l l i n g ) .0 0 C 3 F l a g : ^ t r a n s f e r r e d B A S I C p r o g r a m t n e

l o c a t i o n .0 0 C 3 - 0 0 C 4 P o i n t e r : K e r n a l s e t u p / c u r r e n t m u s i c t a b l e /

p a r a m e t e r s a v e a r e a ( $ 0 3 3 C ) .0 0 F B - 0 0 F C I V r i n t e r : t o o B A S I C m e m o r y ( u s u a l l y s a m e a

$ 0 2 8 4 - $ 0 2 8 5 ) .F o K e y b o a r d I n p u t0 2 8 F - 0 2 9 0 V e c t o r : i n t e r p r e t k e y b o a r d i n p u t ( $ A 3 3 7 ) .0 2 A l N u m b e r o b y t e s t a k e n b y S u p e r E x p a n d e r i h i g h

m e m o r y ( $ 8 8 ) .0 2 A 2 N u m b e r o f c h a r a c t e r s i n f u n c t i o n k e d e f i n i t i o n .0 2 A 3 I n d e x : c u r r e n t b y t e o f u n c t i o n k e s t r i n g .0 2 A 4 L e n g t h o f u n c t i o n k e s t r i n g ( a m o u n t l e f t t

o u t p u t ) .

F o M u s i c0 2 A 50 2 A 60 2 A 70 2 A 80 2 A 90 2 A A0 2 A B0 2 A C0 2 A D0 2 A E0 2 A F0 2 B 00 2 B 10 2 B 20 2 B 30 2 B 40 2 B 5 - 0 2 B F

P r e v i o u s c h a r a c t e r i m u s i c m o d e .M u s i c m o d e ( $ 8 0 = o n ) .S c r e e n e c h o ( $ 5 0 = o n , $ 0 = o f f ) .C u r r e n t v o i c e ( s o u n d r e g i s t e r - 1 ) .C u r r e n t n o t e i n d e x .C u r r e n t d u r a t i o n ( j i f f i e s ) .C u r r e n t s o u n d a m p l i t u d e ( v o l u m e * 2 C u r r e n t o c t a v e ( b a s e n o t e i n d e x ) .V o i c e n o t e i n d e x ( + $ 8 0 ) .V o i c e d u r a t i o n c o u n t d o w n ( j i f f i e s ) .V o i c e n o t e i n d e x ( + $ 8 0 ) .V o i c e d u r a t i o n c o u n t d o w n ( j i f f i e s ) .V o i c e n o t e i n d e x ( + $ 8 0 ) .V o i c e d u r a t i o n c o u n t d o w n ( j i f f i e s ) .V o i c e n o t e i n d e x ( + $ 8 0 ) .V o i c e d u r a t i o n c o u n t d o w n ( j i f f i e s ) .( F o r e x p a n s i o n . )

2 5

Page 264: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 264/284

F o E x e c u t i o n O N e C o m m a n d s0 2 C 0 - 0 2 C 2 V e c t o r : e x e c u t e n e c o m m a n d s ( J M P $ A 8 4 F ) .

C u r r e n t V I c h i p l e f t m a r g i n r e g i s t e r .C u r r e n t V I c h i p t o p m a r g i n r e g i s t e r .C u r r e n t V I c h i p n u m b e r o c o l u m n s r e g i s t e r .C u r r e n t V I c h i p n u m b e r o r o w s r e g i s t e r .C u r r e n t r o o c u r s o r .C u r r e n t G R A P H I C m o d e .( F o r e x p a n s i o n . )C u r r e n t c o l o r r e g i s t e r p a r a m e t e r ( w h i l e p l o t t i n g ) .C u r r e n t s c r e e n c o l o r .C u r r e n t b o r d e r c o l o r .C u r r e n t c h a r a c t e r c o l o r .C u r r e n t a u x i l i a r y c o l o r .I n d e x : p a r a m e t e r s a v e a r e a ( w h i l e p l o t t i n g ) .C u r r e n t c h a r a c t e r s e a d d r e s s p a g e .U s u a l c h a r a c t e r s e a d d r e s s p a g e ( $ 8 0 ) .P o i n t e r : o l l i m i t o B A S I C m e m o r y .O l s c r e e n m e m o r y p a g e .L a s t s c a l e d c o o r d i n a t e ( t 1 5 9 ) .L a s t s c a l e d c o o r d i n a t e ( t 1 5 9 ) .H a g : $ 0 = D R A W c , x , y T O $ 0 = D R A W T O / c u r -r e n t n u m b e r o o u t - o f - r a n g e c o o r d i n a t e s( $ 0 0 w i t h i n r a n g e ) .O l n u m b e r o o u t - o f - r a n g e c o o r d i n a t e s( $ 0 0 w i t h i n r a n g e ) .I n d e x : p a r a m e t e r s a v e a r e a ( w h i l e g e t t i n gp a r a m e t e r s ) .

0 2 D A - 0 2 F F ( F o r e x p a n s i o n . )O p e r a t i n g S y s t e m V e c t o r s0 3 0 0 - 0 3 0 1 V e c t o r : e r r o r m e s s a g e . ( $ A 3 F D )0 3 0 2 - 0 3 0 3 V e c t o r : B A S I C w a r m s t a r t . ( $ C 4 8 3 )0 3 0 4 - 0 3 0 5 V e c t o r : a n a l y z e B A S I C s o u r c e l i n e . ( $ A 4 0 7 )0 3 0 6 - 0 3 0 7 V e c t o r : p r i n t B A S I C t o k e n s i A S C I I f o r m . ( $ A 4 B A )0 3 0 8 - 0 3 0 9 V e c t o r : s t a r t n e B A S I C s t a t e m e n t . ( $ A 5 0 4 )0 3 0 A - 0 3 0 B V e c t o r : g e a n e v a l u a t e a e x p r e s s i o n . ( $ A 5 2 A )0 3 1 4 - 0 3 1 5 V e c t o r : I R Q . ( $ A 3 7 2 )0 3 1 6 - 0 3 1 7 V e c t o r : B R i n s t r u c t i o n . ( $ A 2 C 2 )0 3 1 8 - 0 3 1 9 V e c t o r : N M ( $ F E A D )0 3 1 A - 0 3 1 B V e c t o r : B A S I C O P E N s t a t e m e n t . ( $ F 4 0 A )0 3 1 C - 0 3 1 D V e c t o r : B A S I C C L O S E s t a t e m e n t . ( $ F 3 4 A )

0 2 C 30 2 C 40 2 C 50 2 C 60 2 C 70 2 C 80 2 C 90 2 C A0 2 C B0 2 C C0 2 C D0 2 C E0 2 C F0 2 D 00 2 D 10 2 D 2 - 0 2 D 30 2 D 40 2 D 50 2 D 60 2 D 7

0 2 D 8

0 2 D 9

2 5

Page 265: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 265/284

0 3 1 E - 0 3 1 F0 3 2 0 - 0 3 2 10 3 2 2 - 0 3 2 30 3 2 4 - 0 3 2 50 3 2 6 - 0 3 2 70 3 2 8 - 0 3 2 90 3 2 A - 0 3 2 B0 3 2 C - 0 3 2 D0 3 2 E - 0 3 2 F0 3 3 0 - 0 3 3 10 3 3 2 - 0 3 3 30 3 3 4 - 0 3 3 BS a v e A r e a0 3 3 C - 0 3 F 8

F o C i r c l e0 3 3 C0 3 4 7 - 0 3 4 80 3 4 9 - 0 3 4 A0 3 4 B - 0 3 4 C0 3 4 D - 0 3 4 E0 3 4 F - 0 3 5 30 3 5 5 - 0 3 5 9

V e c t o r : s e i n p u t .V e c t o r : s e o u t p u t .V e c t o r : r e s t o r e I / O .V e c t o r : i n p u t c h a r a c t e r .V e c t o r : o u t p u t c h a r a c t e r .V e c t o r : t e s t S T O P k e y .V e c t o r : B A S I C G E s t a t e m e n t .V e c t o r : a b o r t I / O .V e c t o r : u s e r B R i n s t r u c t i o n .V e c t o r : B A S I C L O A D s t a t e m e n t .V e c t o r : B A S I C S A V E s t a t e m e n t .( F o r e x p a n s i o n . )

( $ F 2 C 7 )( $ F 3 0 9 )( $ F 3 F 3 )( $ A 3 9 5 )

( $ A 3 A 6 )( $ F 7 7 0 )( $ F I F 5 )

( $ F 3 E F )( $ A 2 C 2 )

( $ F 5 4 9 )( $ F 6 8 5 )

S a v e a r e a : p a r a m e t e r p a s s i n g / p i v o t c o o r d i n a t e s( P A I N T ) .

I n d e x : o Y O l s c a l e d c o o r d i n a t e o l o c u s .O l s c a l e d c o o r d i n a t e o l o c u s .N e s c a l e d c o o r d i n a t e o l o c u s .N e s c a l e d c o o r d i n a t e o l o c u s .F l o a t i n g p o i n t u n i t o f f s e t c o o r d i n a t e .F l o a t i n g p o i n t u n i t o f f s e t c o o r d i n a t e .

2 5

Page 266: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 266/284

T h i s i a i n d e x b s u b j e c t . T h r e f e r e n c e s a r t d e c i m a l m e m o r y l o c a t i o n s ,n o t p a g e n u m b e r s .S u b j e c t L o c a t i o n S u b j e c tB A S I CB A S I C R O B A S I C w o r k a r e aB A S I C w o r k i n g s t o r a g ec u r r e n t B A S I C l i n eD A T A p o i n t e r se n o a r r a y se n o B A S I C m e m o r ye n o B A S I C t e x te n o s t r i n g se n o f v a r i a b l e sf l o a t i n g p o i n t # f l o a t i n g p o i n t # 4 b u i l t - i n R A g e c h a r a c t e r ( C H R G E T )i n d i r e c t j u m p s t B A S I C

r o u t i n e ss t a r t o s t r i n g ss t a r t o B A S I C3 e x p a n s i o n R A B u f f e r sB A S I C i n p u t b u f f e rc a s s e t t e b u f f e rc a s s e t t e b u f f e r l e n g t hk e y b o a r d b u f f e rl e n g t h o k e y b o a r d b u f f e rC a s s e t t ec a s s e t t e b u f f e rc a s s e t t e b u f f e r l e n g t hc a s s e t t e b u f f e r p o i n t e rc a s s e t t e c o n t r o l

t a p e m o t o r i n t e r l o c k

C h a r a c t e r sl a r g e c h a r a c t e r sR O c h a r a c t e r s e t su s e r - d e f i n e d c h a r a c t e r

m e m o r yV I c h a r a c t e r a d d r e s sC l o c kj i f f y c l o c k

4 9 1 5 2 - 5 7 3 4 38 7 - 9 60 - 1 4 35 7 - 5 86 3 - 6 4 , 6 5 - 6 64 9 - 5 05 5 - 5 64 5 - 4 65 3 - 5 44 7 - 4 89 8 - 1 0 2 , 1 0 4 , 1 1 21 0 5 - 1 1 04 0 9 6 - 8 1 9 11 1 5 - 1 3 8

7 6 8 - 7 7 85 1 - 5 24 3 - 4 41 0 2 4 - 4 0 9 5

5 1 2 - 6 0 08 2 8 - 1 0 2 31 1 6 3 1 - 6 4 06 4

8 2 8 - 1 0 2 31 1 1 6 1 5 5 , 1 5 6 , 1 5 8 ,1 5 9 , 1 6 4 - 1 8 3 ,1 8 9 - 1 9 2 , 2 1 1 9

3 6 8 6 73 2 7 6 8 - 3 6 8 6 3

7 1 6 8 - 7 6 7 93 6 8 6 9

1 6 0 - 1 6 2

C o l o rb o r d e r / s c r e e nc o l o r s c r e e n

c o l o r u n d e r c u r s o rp o i n t e r t c o l o r s c r e e nC o n t r o l P o r t( s e e j o y s t i c k , p a d d l e s , a n

l i g h t p e n )C u r s o rb l i n k c o u n t d o w nb l i n k f l a gc h a r a c t e r u n d e r c u r s o rc o l o r u n d e r c u r s o rc u r r e n t l o g i c a l c o l u m nc u r s o r o n / o f fl o g i c a l p o s i t i o np h y s i c a l l i n e n u m b e rp o i n t e r t s t a r t o l i n eE d i t o rc u r r e n t l i n e l e n g t hd e f a u l t 8 V I s c r e e n

s e t u pd e f a u l t u n e x p a n d e d V I

s c r e e n s e t u pn u m b e r o i n s e r t sq u o t e m o d e f l a gp o i n t e r t c o l o r s c r e e nr e v e r s e f l a gs c r e e n l i n e l i n k t a b l e ss c r e e n m e m o r y p a g e

I n p u t / O u t p u t ( I / O )c u r r e n t i n p u t d e v i c ec u r r e n t o u t p u t d e v i c ef i l e h a n d l i n gl o a d / v e r i f y f l a gm e m o r y m a p p e d I /

( u n u s e d )n u m b e r o o p e n f i l e ss t a r t o l o a dt a b l e o d e v i c e n u m b e r s

L o c a t i o n3 6 8 7 93 7 8 8 8 - 3 8 3 9 9 ,3 8 4 0 0 - 3 8 9 1 16 4 2 4 3 - 2 4 4

2 0 2 0 2 0 6 4 9 , 2 1 12 0 2 0 1 - 2 0 22 1 2 0 9 - 2 1 0

2 1

4 0 9 6 - 4 6 0 7

7 6 8 0 - 8 1 9 12 1 2 1 2 4 3 - 2 4 41 9 2 1 7 - 2 4 26 4

1 5 1 5 1 8 3 - 1 8 81 0 , 1 4 7

3 8 9 1 2 - 4 0 9 5 91 5 1 9 6 1 1 - 6 2 0

t a b l e o l o g i c a l f i l e n u m b e r s 6 0 1 - 6 1 0

2 5

Page 267: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 267/284

S u b j e c tt a b l e o s e c o n d a r y

a d d r e s s e sV I A n u m b e r o n V I n u m b e r t w I n t e r r u p t s( s e e I R a n N M I )I R v e c t o r t I R J i f f i e s , j i f f yj i f f y c l o c kJ o y s t i c kj o y s t i c k s e n s eK e r n a lK e r n a l R O MK e r n a l m e s s a g e c o n t r o lR A v e c t o r sR O j u m p t a b l ew o r k a r e aK e y b o a r dA S C I I o l a s t k e b o t t o m r o s c a nf i r s t r e p e a t c o u n t d o w nf l a g f o S H I F T , C T R L a n

C o m m o d o r e l o g of o l l o w i n g r e p e a t c o u n t e rk e y b o a r d b u f f e rk e y b o a r d d e c o d i n g t a b l e

p o i n t e rk e y b o a r d t a b l e s e t u pr o u t i n e p o i n t e rl e n g t h o k e y b o a r d b u f f e rm a t r i x c o o r d i n a t e o k e n u m b e r o c h a r a c t e r s i

k e y b o a r d b u f f e rr e p e a t f l a gS H I F T - l o g o d i s a b l e f l a gL i g h t p e p o s i t i o n

M a c h i n e l a n g u a g ef r e e s p a c e b e l o w B A S I Cf r e e z e r o - p a g e s p a c ev e c t o r f o B R o p e r a n dM e m o r yB A S I C R O 8 R A M / R O M e x p a n s i o n

b l o c k8 R A M / R O M e x p a n s i o n

b l o c k

L o c a t i o n6 2 1 - 6 3 03 7 1 3 6 - 3 7 1 5 13 7 1 5 2 - 3 7 1 6 7

7 8 8 - 7 8 9

1 6 0 - 1 6 2

3 7 1 3 6 , 3 7 1 5 2

5 7 3 4 4 - 6 5 5 3 51 5 7 9 4 - 8 1 96 5 4 1 8 - 6 5 5 2 51 4 4 - 2 5 5

2 1 1 4 6 5

6 5 3 , 6 5 6 5 6 3 1 - 6 4 0

2 4 5 - 2 4 6

6 5 5 - 6 5 66 4 1 9 7 , 2 0 3

1 9 6 5 6 5

3 6 8 7 0 , 3 6 8 7 1

6 7 3 - 7 6 72 5 1 - 2 5 37 9 0 - 7 9 1

4 9 1 5 2 - 5 7 3 4 3

8 1 9 2 - 1 6 3 8 3

1 6 3 8 4 - 2 4 5 7 5

S u b j e c t8 R A M / R O M e x p a n s i o n

b l o c k( S u p e r E x p a n d e r )

4 b u i l t - i n R A K e r n a l R O MR O c h a r a c t e r s e t s3 e x p a n s i o n R A N o n - m a s k a b l e i n t e r r u p t s( N M I s )v e c t o r t N M O p e r a t i n g s y s t e m ( O S )( s e e K e r n a l )P a d d l e sp a d d l e i n p u tR A ( s e e M e m o r y )R a n d o m n u m b e r sr a n d o m n u m b e r w o r k a r e aR e s e t( s e e R U N / S T O P k e y )R e v e r s e - f i e l d c h a r a c t e r sr e v e r s e f l a gK U ( s e e M e m o r y )R U N / S T O P k e r e s t o r e ( s e e N M I )S T O P k e s e n s eS c r e e na d d r e s sc e n t e r i n gi n t e r l a c es i z eV I S c r e e n E d i t o r( s e e E d i t o r )

S e r i a l p o r ts e r i a l c o n t r o l

( s e e a l s o K e r n a l )S o f t w a r e t i m e r sj i f f y c l o c kS o u n dn o i s e

L o c a t i o n

2 4 5 7 6 - 3 2 7 6 74 0 9 6 - 8 1 9 15 7 3 4 4 - 6 5 5 3 53 2 7 6 8 - 3 6 8 6 31 0 2 4 - 4 0 9 5

7 9 2 - 7 9 3

3 6 8 7 2 , 3 6 8 7 3

1 3 9 - 1 4 3

1 9

1 4 5 , 2 5 4

3 6 8 6 6 , 3 6 8 6 93 6 8 6 4 , 3 6 8 6 53 6 8 6 43 6 8 6 6 , 3 6 8 6 73 6 8 6 4 - 3 6 8 7 9

1 6 7 - 1 7 1 , 1 8 0 - 1 8 22 4 7 - 2 5 0 , 6 4 6 ,6 5 9 - 6 7 0

1 6 0 - 1 6 2

3 6 8 7 7

2 5

Page 268: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 268/284

S u b j e c tt o n e r e g i s t e r s

v o l u m eS t a c k6 5 0 2 p r o c e s s o r s t a c ks t r i n g s t a c k

S t a t u ss t a t u s b y t eS u p e r E x p a n d e rC H A R s t o r a g eC I R C L E s t o r a g ec u r r e n t c o o r d i n a t e sD R A W s t o r a g ee x e c u t i o n o n e

c o m m a n d s t o r a g eg e n e r a l R A u s a g e

L o c a t i o n3 6 8 7 4 , 3 6 8 7 5 ,3 6 8 7 63 6 8 7 8

2 5 6 - 5 1 12 2 , 2 3 , 2 4 - 3 3

1 4

1 0 5 - 1 0 98 2 8 - 8 5 79 8 - 1 0 31 0 5 - 1 1 0

7 0 4 - 7 2 93 6 - 3 8 , 1 5 5 - 1 5 9 ,1 7 2 - 1 7 3 ,1 9 5 - 1 9 6 ,2 5 1 - 2 5 2 ,8 2 8 - 1 0 1 6

S u b j e c tk e y b o a r d i n p u tm u s i c s t o r a g eP A I N T s t o r a g eR O s c a l i n g c o o r d i n a t e sV a r i a b l e sc u r r e n t v a r i a b l e n a m ee n o f a r r a y se n o s t r i n g se n o v a r i a b l e ss t a r t o s t r i n g ss t a r t o v a r i a b l e sv a r i a b l e t y p eV e c t o r sf i x e d t o f l o a t i n gf l o a t i n g - p o i n t t f i x e dU S v e c t o r( a l s o s e e B A S I C , K e r n a l )V I ( s e e s c r e e n )

L o c a t i o6 7 3 - 6 7 66 7 7 - 7 0 31 0 4 9 1 5 2 - 4 5 0 5 51 0 5 - 1 0 8

6 9 - 7 04 9 - 5 05 3 - 5 44 7 - 4 85 1 - 5 24 5 - 4 61 3 , 1 4

5 - 3 - 0 -

2 6

Page 269: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 269/284

r

Page 270: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 270/284

Page 271: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 271/284

W h a t I P r o g r a m ?c o m p u t e r c a n n o t p e r f o r m a n t a s k b i t s e l f . L i k e c a w i t h o u t

g a s , c o m p u t e r h a p o t e n t i a l , b u t w i t h o u t p r o g r a m , i i s n ' t g o i n ga n y w h e r e . M o s t o t h p r o g r a m s p u b l i s h e d i C O M P U T E ! B o o k sf o C o m m o d o r e a r w r i t t e n i c o m p u t e r l a n g u a g e c a l l e dB A S I C . B A S I C i e a s y t l e a r n a n i b u i l t i n t o a l V I C - 2 0 s .

B A S I C P r o g r a m sC o m p u t e r s c a b p i c k y . U n l i k e t h E n g l i s h l a n g u a g e , w h i c h i f u l l o a m b i g u i t i e s , B A S I C u s u a l l y h a o n l y o n r i g h t w a o s t a ti n s o m e t h i n g . E v e r y l e t t e r , c h a r a c t e r , o n u m b e r i s i g n i f i c a n t .c o m m o n m i s t a k e i s u b s t i t u t i n g l e t t e r s u c h a f o t h n u m e r a l0 l o w e r c a s e f o t h n u m e r a l 1 o a u p p e r c a s e f o t h n m e r a l 8 A l s o , y o u m u s t e n t e r a l p u n c t u a t i o n s u c h a c o l o n s a n c o m m a s j u s t a t h e y a p p e a r i t h b o o k . S p a c i n g c a b i m p o rt a n t . T b s a f e , t y p e i t h l i s t i n g s e x a c t l y a t h e y a p p e a r .B r a c e s a n S p e c i a l C h a r a c t e r sT h e x c e p t i o n t t h i s t y p i n g r u l e i w h e n y o s e t h b r a c e s , s u c ha D O W N } A n y t h i n g w i t h i n s e o b r a c e s i s p e c i a l c h a ra c t e r o c h a r a c t e r s t h a t c a n n o t e a s i l y b l i s t e d o p r i n t e r . W h e ny o c o m e a c r o s s s u c h s p e c i a l s t a t e m e n t , r e f e r t " H o w T T y p eI P r o g r a m s . "A b o u t D A T A S t a t e m e n t sS o m e p r o g r a m s c o n t a i n a s e c t i o n o s e c t i o n s o D A I A s t a t e m e n t s .T h e s e l i n e s p r o v i d e i n f o r m a t i o n n e e d e d b t h p r o g r a m . S o m eD A T A s t a t e m e n t s c o n t a i n a c t u a l p r o g r a m s ( c a l l e d m a c h i n e l a g u a g e ) ; o t h e r s c o n t a i n g r a p h i c s c o d e s . T h e s e l i n e s a r e e s p e c i a l l ys e n s i t i v e t e r r o r s .

I s i n g l e n u m b e r i a n y o n e D A I A s t a t e m e n t i m i s t y p e d ,y o u r m a c h i n e c o u l d l o c k u p , o c r a s h . T h k e y b o a r d a n S T O P

2 6

Page 272: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 272/284

k e m a s e e m d e a d , a n t h s c r e e n m a g b l a n k . D o n ' t p a n i cn d a m a g e i d o n e . T o r e g a i n c o n t r o l , y o h a v e t t u r n o f y o u rc o m p u t e r , t h e n t u r n i b a c k o n T h i s w i l l e r a s e w h a t e v e r p r o g r a mw a i m e m o r y , s a l w a y s S A V E c o p y o y o u r p r o g r a m b e f o r e y o R U i t I y o u r c o m p u t e r c r a s h e s , y o c a L O A D t h p r o g r a ma n l o o k f o y o u r m i s t a k e .

S o m e t i m e s m i s t y p e d D A 3 A s t a t e m e n t w i l l c a u s e a e r r o rm e s s a g e w h e n t h p r o g r a m i R U N . T h e r r o r m e s s a g e m a r e f e rt t h p r o g r a m l i n e t h a t R E A D s t h d a t a . T h e r r o r i s s t i l l i t h D A T A s t a t e m e n t s , t h o u g h .G e t K n o w Y o u r M a c h i n eY o s h o u l d f a m i l i a r i z e y o u r s e l f w i t h y o u r c o m p u t e r b e f o r ea t t e m p t i n g t t y p e i p r o g r a m . L e a r n t h e s t a t e m e n t s y o u s t s t o r e a n r e t r i e v e p r o g r a m s f r o m t a p e o d i s k . Y o u ' l l w a n t t s a v e

c o p y o y o u r p r o g r a m , s t h a t y o w o n ' t h a v e t t y p e i i e v e r yt i m e y o w a n t t u s i t L e a r n t u s t h e V I C ' s e d i t i n g f u n c t i o n s .H o d o y o u c h a n g e l i n e i y o m a d e a m i s t a k e ? Y o c a a l w a y sr e t y p e t h l i n e , b u y o a l e a s t n e e d t k n o w h o t b a c k s p a c e .D y o k n o w h o t e n t e r r e v e r s e c h a r a c t e r s , l o w e r c a s e , a n c o n t r o l c h a r a c t e r s ? I t ' s a l e x p l a i n e d i y o u r V l C - 2 0 ' s m a n u a l , P e s o n a l C o m p u t i n g w i t h t h V I C .

Q u i c k R e v i e w1 T y p e i t h p r o g r a m l i n e a t i m e , i n o r d e r . P r e s s R E T U R N a t h e n o e a c h l i n e . U s t h I N S T / D E L k e t e r a s e m i s t a k e s .2 C h e c k t h l i n e y o u ' v e t y p e d a g a i n s t t h l i n e i t h m a g a z i n e .Y o c a c h e c k t h e n t i r e p r o g r a m a g a i n i y o g e a e r r o r w h e ny o R U t h p r o g r a m .3 M a k e s u r e y o u ' v e e n t e r e d s t a t e m e n t s i n b r a c k e t s a t h a p r o p r i a t e c o n t r o l k e ( s e e " H o w t T y p e I P r o g r a m s " ) .

2 6

Page 273: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 273/284

y s i i l i i i ^ ^

Page 274: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 274/284

Page 275: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 275/284

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

G e n e r a l l y , a n V I C - 2 0 p r o g r a m l i s t i n g s w i l l c o n t a i n w o r d s i b r a c e s w h i c h s p e l l o u a n s p e c i a l c h a r a c t e r s : { D O W N w o u l dm e a n t p r e s s t h c u r s o r d o w n k e y . { 5 S P A C E S w o u l d m e a n t p r e s s t h e s p a c e b a r f i v e t i m e s . ^

T i n d i c a t e t h a t k e s h o u l d b s h i f t e d ( h o l d d o w n t h S H I F Tk e w h i l e p r e s s i n g t h e o t h e r k e y ) , t h k e w o u l d b u n d e r l i n e d i o u l i s t i n g s . F o e x a m p l e , S w o u l d m e a n t t y p e t h k e w h i l eh o l d i n g t h s h i f t k e y . T h i s w o u l d a p p e a r o y o u r s c r e e n a " h e a r t " s y m b o l . I y o f i n d a u n d e r l i n e d k e e n c l o s e d i b r a c e s( e . g . , { 1 N } ) , y o s h o u l d t y p e t h k e a m a n y t i m e s a s i n d i c a t e d( i o u e x a m p l e , y o u w o u l d e n t e r t e s h i f t e d N ' s ) .

I k e i e n c l o s e d i n s p e c i a l b r a c k e t s , f » y o s h o u l d h o l dd o w n t h C o m m o d o r e f e w h i l e p r e s s i n g t h e k e i n s i d e t h s p e c i a lb r a c k e t s . ( T h e C o m m o d o r e k e i t h k e i t h l o w e r l e f t c o r n e r o t h k e y b o a r d . ) A g a i n , i t h k e i p r e c e d e d b n u m b e r , y o s h o u l d p r e s s t h k e a m a n y t i m e s a s n e c e s s a r y .

R a r e l y , y o u ' l l s e s o l i t a r y l e t t e r o t h e a l p h a b e t e n c l o s e d i b r a c e s . Y o s h o u l d n e v e r h a v e t e n t e r s u c h c h a r a c t e r o t h V I C - 2 0 , b u i y o d o y o u w o u l d h a v e t l e a v e t h q u o t e m o d e( p r e s s R E T U R N a n c u r s o r b a c k u t t h p o s i t i o n w h e r e t h c o t r o l c h a r a c t e r s h o u l d g o ) , p r e s s C T R L - 9 ( R V S O N ) , t h l e t t e r i b r a c e s , a n t h e n C T R L r O ( R V S O F F ) .

A b o u t t h q u o t e m o d e : y o k n o w t h a t y o c a m o v e t h c u r s o ra r o u n d t h s c r e e n w i t h t h C R S R k e y s . S o m e t i m e s p r o g r a m m e rw i l l w a n t t m o v e t h e c u r s o r u n d e r p r o g r a m c o n t r o l . T h a t ' s w h y o s e a l t h { L E F T } ' s , { H O M E } ' s , a n { B L U } ' i o u p r g r a m s . T h o n l y w a t h c o m p u t e r c a t e l l t h d i f f e r e n c e b e t w e e nd i r e c t a n p r o g r a m m e d c u r s o r c o n t r o l i t h q u o t e m o d e .

O n c e y o p r e s s t h q u o t e ( t h e d o u b l e q u o t e , S H E F T - 2 ) , y o a r i t h q u o t e m o d e . I y o t y p e s o m e t h i n g a n t h e n t r t c h a n g e i

2 6

Page 276: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 276/284

b m o v i n g t h e c u r s o r l e f t , y o u ' l l o n l y g e b u n c h o r e v e r s e - v i d e ol i n e s . T h e s e a r t h s y m b o l s f o c u r s o r l e f t . T h o n l y e d i t i n g k e t h a t i s n ' t p r o g r a m m a b l e i t h D E k e y ; y o c a s t i l l u s D E t b a c k u a n e d i t t h l i n e . O n c e y o t y p e a n o t h e r q u o t e , y o a r o u o q u o t e m o d e .

Y o a l s o g i n t o q u o t e m o d e w h e n y o D S J S e r T s p a c e s i n t ol i n e . I a n c a s e , t h e a s i e s t w a t g e o u o q u o t e m o d e i t o j u s tp r e s s R E T U R N . Y o u T l t h e n b o u o q u o t e m o d e a n y o c a c u r s o r u t t h m i s t y p e d l i n e a n f i i t

U s t h f o l l o w i n g t a b l e w h e n e n t e r i n g c u r s o r a n c o l o r c o n t r o lk e y s :W h e n Y o R e a d :{ C L E A R }{ h o m e }{ u p }{ d o w n }{ l e f t }{ r i g h t }{ r v s }{ o f f }{ B L K l{ W H T }{ R E D }{ C Y N }{ P U R }

P r e s s :S H I F T

S H I F T

S H I F T

C L R / H O M E[ C L R / H O M E

C R S RC R S R j

b - C R S R - f r

C T R L

C T R L

C T R LC T R L

W h e n Y o S e e : R e a d :

i G R N }{ B L U }{ Y E L }

{ P I }{ F 2 }{ F 3 }l P 4 }{ P 5 }{ P 6 }{ P 7 }{ F 8 }

4

P r e s s :C T R L

C T R L

C T R L

S e e :

2 6

Page 277: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 277/284

a d d r e s s i n g m o d e s 1 8 1 - 8 2A N 7 4 , 1 5 1a n i m a t i o n 1 3 0 - 3 1a r r a y 8 A S C I I 1 8 , 1 0 4a s s e m b l e r 1 8 7 - 9 5A t a r i j o y s t i c k s 1 6 0 - 6 6B A S I C

A N 7 4 , 1 5 1C M D 4 2L O A D 1 3 9 - 4 0O P E N 4 0 - 4 2O 7 p o i n t e r ( s e e m e m o r y a d d r e s s 4 4 6 P R I N T 4 P R I N T # 4 S A V E 1 3 9 - 4 0

b i 7 b i t m a p p i n g 5 1 , 5 2B o o l e a n O p e r a t o r s 7 b r a n c h i n g 1 8 2 - 8 3b u f f e r 1 c a s s e t t e f i l e s 3 , c h a i n i n g p r o g r a m s 1 7 - 1 8 , 1 3 1C M D 4 2c o l o r 7 3 7 c r u n c h i n g p r o g r a m s 1 0 c u s t o m c h a r a c t e r s ( s e e r e d e f i n e d c h a r a c t e r s )d a t a a c q u i s i t i o n 1 1 5 - 1 7d e l a y l o o p s 1 5 d e l e t e l i n e s 1 4 3 - 4 5d i s a s s e m b l e r 1 8 0 - 8 6F a s t F i n df i l e h a n d l i n g

c a s s e t t e 3 , 4 - 5p r i n t e r 4 0 - 4 2

f u n c t i o n k e y s 1 0 3 - 5g a m e p r o g r a m m i n g 2 2 - 2 5g r a p h i c s ( s e e a l s o h i g h - r e s o l u t i o n g r a p h i c s )

7 0 - 7 9h e x a d e c i m a l 1 7 7 , 1 8 9h i g h - r e s o l u t i o n g r a p h i c s 5 1 - 5 8h i - r e s ( s e e h i g h - r e s o l u t i o n g r a p h i c s )i n p u t / o u t p u t 4 0 - 4 2i n t e g e r a r r a y 8 i n t e r r u p t s 1 1 6j i f f y c l o c k 1 1 5 - 1 6J M P 1 8 2

j o y s t i c k s 1 4 9 - 7 3j o y s t i c k p l u g 1 6 4 , 1 6 8 - 6 9J S R 1 8 2j u m p i n g 1 8 2 - 8 3K e r n a l l 3 8 , 1 4 0k e y b o a r d 1 4 9 , 1 5 4 - 5 8k e y b o a r d b u f f e r 1 k e y p a d 1 3 5 - 3 7k e y w o r d 1 2 5 , 1 3 5 - 3 7l i n k i n g p r o g r a m s ( s e e c h a i n i n g p r o g r a m s )L O A D 1 3 9 - 4 0l o c a t i n g m e m o r y 1 0 6 - 7 , 1 9 0 , 1 9 1m a c h i n e l a n g u a g e 1 8 0 , 1 8 7 - 9 5m e m o r y a d d r e s s

4 3 & 4 44 5 & 4 65 5 6 1 & 6 21 9 6 3 6 4 1 & 6 4 25 1 2 06 1 4 47 1 6 88 1 9 23 6 8 6 93 6 8 7 4 - 7 63 6 8 7 93 7 1 5 1 3 7 1 5 2

5 6 , 5 7 , 1 2 41 2 4 , 1 7 7 - 7 82 2 1 4 1 1 5 6 , 5 75 2 , 5 4 , 5 5 , 5 75 5 , 5 72 2 , 5 5 , 5 7 , 6 5 6 , 5 72 2 , 5 2 , 5 5 , 5 7 , 6 08 8 , 9 25 1 , 5 7 , 7 2 , 7 31 4 9 - 5 1 , 1 5 6 , 1 6 1 , 1 6 7

m e m o r y , f i n d i n g u n u s e d 1 9 0 , 1 9 1m e m o r y l o c a t i o n s f o r d i f f e r e n t s i z e V I C s 1 0 m e m o r y m a 2 0 9 - 5 7m n e m o n i c s 1 8 0 , 1 8 7 - 8 9m u l t i c o l o r m o d e 7 0 - 7 9n u m e r i c k e y b o a r d 1 3 o b j e c t c o d e v s s o u r c e c o d e 1 8 o p c o d e 1 8 O P E N 4 0 - 4 2o p e r a n d 1 8 O 7 p a u s e 1 2 1 - 2 2p i x e l 5 p o i n t e r ( s e e m e m o r y a d d r e s s 4 4 6 P R I N T 4 p r i n t i n g t t h s c r e e n 1 2 9P R I N T # 4

2 6

Page 278: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 278/284

p r o g r a m m a b l e c h a r a c t e r s ( s e e r e d e f i n e d s c r o l l i n g 1 2 3 - 2 4c h a r a c t e r s ) s o u n d 8 3 - 8 4 , 8 8 - 9 1 , 9 2 - 1 0 0R A 1 0 6 - 7 s o u r c e c o d e v s o b j e c t c o d e 1 8 r e d e f i n e d c h a r a c t e r s 2 2 , 5 2 , 5 3 , 5 9 - 6 9 , 7 0 - 7 9 6 5 2 2 c h i p 1 6 0 - 6 1r e s o l u t i o n 2 2 2 3 u s e r I / P o r t 1 6 R O 5 V i d e o I n t e r f a c e C h i p 6 R S - 2 3 2 4 0 - 4 2 V I I / O c h i p 1 6 0 - 6 1 , 1 7 8S A V E 1 3 9 - 4 0 v o i c e 8 s c r e e n m e m o r y 5 3 , 5 4 - 5 6 , 1 1 0 - 1 1 w o r d p r o c e s s o r 3 -

2 7

Page 279: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 279/284

I y o u ' v e e n j o y e d t h a r t i c l e s i t h i s b o o k , y o u ' l l f i n d t h s a m e s t y l e a n q u a l i t y i e v e r y m o n t h l y i s s u e o C O M P U T E !M a g a z i n e . U s t h i s f o r m t o r d e r y o u r s u b s c r i p t i o n t oC O M P U T E ! .

F o F a s t e s t S e r v i c e ,C a l l O u T o i l - F r e e U O r d e r L i n e

8 0 0 - 3 3 4 - 0 8 6 8I N c a l l 9 1 9 - 2 7 5 - 9 8 0 9

C O M P U T E !P . O . B o 5 4 0 6G r e e n s b o r o , N 2 7 4 0 3

M C o m p u t e r I s P E Q A p p l e A t a r i D V I C D O t h e r Q D o n ' t y e t h a v e o n e , , ,

$ 2 0 . 0 0 O n Y e a r U S u b s c r i p t i o n$ 3 6 . 0 0 T w Y e a r U S u b s c r i p t i o n$ 5 4 . 0 0 T h r e e Y e a r U S u b s c r i p t i o n

S u b s c r i p t i o n r a t e s o u t s i d e t h U S $ 2 5 . 0 0 C a n a d a$ 3 8 . 0 0 E u r o p e , A u s t r a l i a N e Z e a l a n d / A i r D e l i v e r y$ 4 8 . 0 0 M i d d l e E a s t N o r t h A f r i c a C e n t r a l A m e r i c a / A i r M a i l$ 6 8 . 0 0 E l s e w h e r e / A i r M a i l$ 2 5 . 0 0 I n t e r n a t i o n a l S u r f a c e M a i l ( l e n g t h y , u n r e l i a b l e d e l i v e r y )

N a m eA d d r e s sC i t y S t a t e Z i C o u n t r yP a y m e n t m u s t b i U F u n d s d r a w n o U B a n k I n t e r n a t i o n a l M o n e yO r d e r , o c h a r g e c a r d .

P a y m e n t E n c l o s e d V I S AM a s t e r C a r d A m e r i c a n E x p r e s s

A c t N o E x p i r e s

Page 280: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 280/284

Page 281: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 281/284

C O M P U T E ! B o o k sP . O . B o 5 4 0 6 G r e e n s b o r o , N 2 7 4 0 3

A s k y o u r r e t a i l e r f o t h e s e C O M P U T E ! B o o k s , I h o s h h a s o l d o u o r d e r d i r e c t l y f r o m C O M P U T E ! .

F o F a s t e s t S e r v i c eC a l l O u T O L L F R E E U O r d e r L i n e

8 0 0 - 3 3 4 - 0 8 6 8I N c a l l 9 1 9 - 2 7 5 - 9 8 0 9

Q u a n t i t y T i t l e P r i c e T o t a l

T h B e g i n n e r ' s G u i d e t B u y i n g P e r s o n a lC o m p u t e rC O M P U T E D F i r s t B o b k o A t a r iI n s i d e A t a r i D O C O M P U T E D F i r s t B o o k o P E T / C B MP r o g r a m m i n g t h P E T / C B ME v e r y K i d ' s F i r s t B o o k o R o b o t s a n C o m p u t e r sC O M P U T E I ' s S e c o n d B o o k o A t a r iC O M P U T E D F i r s t B o o k o V I C O M P U T E D F i r s t B o o k o A t a r i G r a p h i c sM a p p i n g t h A t a r iH o m e E n e r g y A p p l i c a t i o n s O Y o u rP e r s o n a l C o m p u t e rM a c h i n e L a n g u a g e f o B e g i n n e r s

3 . 9 5 *$ 1 2 . 9 5 t$ 1 9 . 9 5 t$ 1 2 . 9 5 t$ 2 4 . 9 5 }

4 . 9 5 *$ 1 2 . 9 5 f$ 1 2 . 9 5 f$ 1 2 . 9 5 f$ 1 4 . 9 5 f

$ 1 4 . 9 5 f$ 1 2 . 9 5 t

A d $ s h i p p i n g a n h a n d l i n g . O u t s i d e U S a d $ a i m a i l ; $ s u r f a c e m a i l .A d $ s h i p p i n g a n h a n d l i n g . O u t s i d e U a d $ a i m a i l ; $ s u r f a c e m a i l .A d $ s h i p p i n g a n h a n d l i n g . O u t s i d e U a d $ 1 a i m a i l ; $ s u r f a c e m a i l .

P l e a s e a d s h i p p i n g a n h a n d l i n g f o e a c h b o o ko r d e r e d .

T o t a l e n c l o s e d o t b c h a r g e d .

A l o r d e r s m u s t b p r e p a i d ( m o n e y o r d e r , c h e c k o c h a r g e ) . A l p a y m e n t s m u s t b i U f u n d s . N r e s i d e n t s a d 4 s a l e s t a x .

P a y m e n t e n c l o s e d P l e a s e c h a r g e m y V I S A M a s t e r C a r dA m e r i c a n E x p r e s s A c t N o E x p i r e s

N a m eA d d r e s sC i t y S t a t e Z i C o u n t r yA l l o w 4 - 5 w e e k s f o r d e l i v e r y .

Page 282: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 282/284

Page 283: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 283/284

  

Page 284: Compute's Second Book of VIC

8/6/2019 Compute's Second Book of VIC

http://slidepdf.com/reader/full/computes-second-book-of-vic 284/284

C O M P U T E l ' s