vic-20 machine code

180
8/6/2019 VIC-20 Machine Code http://slidepdf.com/reader/full/vic-20-machine-code 1/180 B r u c e S m i t h

Upload: cubemanpdx

Post on 08-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 1/180

B r u c eS m i t h

Page 2: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 2/180

V I C2 0

M a c h i n e

C o d e

Page 3: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 3/180

Page 4: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 4/180

V I C2 0

M a c h i n e

C o d e

B r u c eS m i t h

S h i v aP u b l i s h i n gL i m i t e d

Page 5: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 5/180

S H I V A P U B L I S H I N G L I M I T E D6 4 W e l s hR o w ,N a n t w i c h ,C h e s h i r eC W 55 E S ,E n g l a n d

© B r u c eS m i t h

I S B N0 9 0 6 8 1 27 9 8

A l lr i g h t sr e s e r v e d .N o p a r to f t h i sp u b l i c a t i o nm a yb e r e p r o d u c e d ,

s t o r e di n a r e t r i e v a ls y s t e m , o r t r a n s m i t t e di n a n yf o r mo r b y a n ym e a n s ,e l e c t r o n i c ,m e c h a n i c a l , p h o t o c o p y i n g , r e c o r d i n ga n d / o r

o t h e r w i s e ,w i t h o u tt h ep r i o rw r i t t e np e r m i s s i o no f t h eP u b l i s h e r s .

T h i sb o o ki s s o l d s u b j e c tt o t h eS t a n d a r dC o n d i t i o n so f S a l e o fN e t

B o o k sa n dm a yn o tb e r e s o l di n t h eU Kb e l o wt h en e tp r i c eg i v e nb y t h e

P u b l i s h e r si n t h e i rc u r r e n tp r i c el i s t .

T y p e s e tb y G i l b e r tC o m p o s i n gS e r v i c e s ,L e i g h t o nB u z z a r d

a n dp r i n t e db y D e v o nP r i n tG r o u p

Page 6: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 6/180

C o n t e n t s

P r e f a c e \

1 M a c h i n eC o d eo r A s s e m b l yL a n g u a g e 3

2 N u m b e r s 5

3 L o g i c a l l yI t A l lA d d sU p ! 1 0

4 T h eR e g i s t e r s 1 5

5 A P o k ea t M a c h i n eC o d e 1 7

6 S t a t u sS y m b o l s 2 5

7 A d d r e s s i n gM o d e sI 2 8

8 B i t sa n dB y t e s 3 1

9 A r i t h m e t i ci n A s s e m b l e r 3 5

1 0 A d d r e s s i n gM o d e sI I 4 3

1 1 S t a c k s o fF u n 5 2

1 2 L o o p i n g 5 6

1 3 S u b r o u t i n e sa n dJ u m p s 6 6

1 4 S h i f t sa n dR o t a t e s 7 2

1 5 M u l t i p l i c a t i o na n dD i v i s i o n 8 0

1 6 F l o a t i n g aP o i n t 8 7

1 7 T h eK e r n a l 9 7

1 8 I n t e r r u p t sa n dB r e a k s 1 1 0

1 9 P r e p a c k e dU t i l i t i e s 1 1 3

Page 7: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 7/180

A p p e n d i c e s

1 T h eS c r e e n

2 T h e6 5 0 2

3 T h ei n s t r u c t i o n S e t

4 I n s t r u c t i o nC y c l eT i m e s

5 V i c2 0 M e m o r yM a p

6 B r a n c hC a l c u l a t o r s7 6 5 0 2O p c o d e s

Page 8: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 8/180

Page 9: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 9/180

Page 10: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 10/180

1 M a c h i n e C o d eo rA s s e m b l yL a n g u a g e

T h e 6 5 0 2m i c r o p r o c e s s o rw i t h i ny o u rV I C2 0 m i c r o c o m p u t e rc a n p e r f o r m1 5 2d i f f e r e n to p e r a t i o n s ,w i t he a c ho n eb e i n gd e f i n e db y a n u m b e r( o ro p e r a t i o n c o d e )i n t h e

r a n g e0 t o 2 5 5 .T oc r e a t ea m a c h i n ec o d ep r o g r a mw en e e d s i m p l yt o P O K Es u c c e s s i v e

m e m o r yl o c a t i o n sw i t ht h e r e l e v a n to p e r a t i o nc o d e s — ' o p c o d e s 'f o rs h o r t .F o re x a m p l e ,

t o s t o r et h ev a l u e5 a t l o c a t i o n1 5 0 0( i no t h e rw o r d st o d o t h em a c h i n ec o d ee q u i v a l e n t

o f B A S I C ' SP O K E1 5 0 0 , 5 )w e w o u l dn e e dt o P O K Et h e f o l l o w i n gb y t e si n t om e m o r y :

1 6 9

5

1 4 1

2 2 0

5

a n d t h e na s kt h e V I C ' s6 5 0 2t o e x e c u t et h e m .N o te x a c t l yc l e a ri s i t ! T h a t ' sw h e r ea s s e m b l yl a n g u a g ec o m e si n .

A s s e m b l yl a n g u a g ea l l o w su s t o w r i t em a c h i n ec o d ei n a n a b b r e v i a t e df o r mw h i c hi s

d e s i g n e dt o r e p r e s e n t t h ea c t u a lo p e r a t i o nt h eo p c o d ew i l lp e r f o r m . T h i s a b b r e v i a t e df o r m

i s k n o w na s a m n e m o n i ca n di t i s t h eb a s i cb u i l d i n gb l o c ko f a s s e m b l y l a n g u a g e( o r

a s s e m b l e r )p r o g r a m s .

W ec o u l dr e w r i t e t h ep r e v i o u sm a c h i n ec o d ei n a s s e m b l e rl i k et h i s :

L D A # 5

S T A1 5 0 0

a n di t c a n b er e a da s :

L o a dt h ea c c u m u l a t o rw i t ht h ev a l u e5

S t o r et h ea c c u m u l a t o r ' sc o n t e n t sa t l o c a t i o n1 5 0 0

A s y o uc a n s e e f r o mt h e b o l dl e t t e r s ,t h e m n e m o n i ci s c o m p o s e do f l e t t e r si n t h ei n s t r u c t i o n ,w h i c hg r e a t l ye n h a n c e si t s r e a d a b i l i t y .

O n c et h ea s s e m b l e rp r o g r a mi s c o m p l e t e ,i t c a nb e c o n v e r t e di n t om a c h i n ec o d ei n o n e

o f t w ow a y s .

1 . W i t ht h e a i do f am n e m o n i ca s s e m b l e r .T h i si s i t s e l fa p r o g r a m( w r i t t e ni n m a c h i n e

c o d eo r B A S I C )w h i c ht r a n s f o r m st h ea s s e m b l y l a n g u a g ei n s t r u c t i o n s( k n o w na s t h e

s o u r c e )i n t om a c h i n ec o d e( k n o w na s t h eo b j e c tc o d e )a n dP O K E st h e mi n t om e m o r y

a s i t d o e ss o .

Page 11: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 11/180

2 . B yl o o k i n gu p t h er e l a t i v ec o d e si n a t a b l ea n dt h e nP O K E i n gt h e mi n t om e m o r yu s i n g

a m o n i t o rp r o g r a mo r aD A T A - r e a d i n gF O R .. . N E X Tl o o p .F u l ld e t a i l so f t h i s

m e t h o da r eg i v e ni n C h a p t e r6 , w h i c ha l s oi n c l u d e sa s i m p l em o n i t o r p r o g r a m .

A l l t h ep r o g r a m si n t h i sb o o ka r e l i s t e di n t h e i rD A T As t a t e m e n t ,m a c h i n ec o d ea n d

a s s e m b l e rf o r m s , s o t h e yc a nb e e n t e r e db y a n yo f t h ea b o v em e t h o d s — s i m p l ye x t r a c t t h e

i n f o r m a t i o ny o ur e q u i r e .

A p p e n d i x3 p r o v i d e sc o m p r e h e n s i v eu s e ri n f o r m a t i o na b o u ta l lo f t h e6 5 0 2o p c o d e s ,

s o d o n ' tw o r r yt o om u c hi f s o m eo f t h i ss e e m sa b i tf o r e i g na t t h em o m e n t — w e ' l ls o o n

c h a n g et h a t !

W H YM A C H I N EC O D E ?

A q u e s t i o no f t e na s k e di s , " W h yb o t h e rt o p r o g r a mi n m a c h i n e c o d ea t a l l ? "W e l l ,o n e

r e a s o nm i g h tb e t h a ty o u ' r ef e du p w i t hB A S I Ca n d w a n tt o b r o a d e n y o u rh o r i z o n s ,b u t ,

f r o mt h ep r a c t i c a lp o i n to f v i e wt h e r e a r et w om a i nr e a s o n sf o rp r o g r a m m i n gi n m a c h i n e

c o d e .

F i r s t l ys p e e d .M a c h i n ec o d ei s e x e c u t e dv e r ym u c hf a s t e rt h a na n i n t e r p r e t e dh i g hl e v e ll a n g u a g e s u c ha s B A S I C .R e m e m b e rt h a t t h eB A S I Ci n t e r p r e t e ri s i t s e l fw r i t t e ni n

m a c h i n ec o d e ,a n dt h a tt h eB A S I Cs t a t e m e n t sa n dc o m m a n d sa r es i m p l yp o i n t e r st o t h e

m a c h i n ec o d er o u t i n e si n t h eR O Mw h i c ha c t u a l l yc a r r yo u tt h es p e c i f i e df u n c t i o n s .I t i s

b e c a u s ee a c hs t a t e m e n ta n dc o m m a n dm u s tf i r s tb e i d e n t i f i e da n dl o c a t e dw i t h i nt h e

R O Mt h a ta d e c r e a s ei n o p e r a t i o n a ls p e e do c c u r s .S e c o n d l y ,l e a r n i n gm a c h i n ec o d e

a l l o w sy o ut o u n d e r s t a n dj u s th o wy o u rc o m p u t e rw o r k s ,a n dl e t sy o uc r e a t es p e c i a l

e f f e c t sa n dr o u t i n e sn o tp o s s i b l ew i t h i nt h ec o n s t r a i n t si m p o s e d b yt h el i m i t e ds e to f

B A S I Ci n s t r u c t i o n s .M a c h i n ec o d ea l l o w sy o ut o c o n t r o ly o u rV I C2 0 r a t h e rt h a n

i t c o n t r o l l i n gy o u !

Page 12: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 12/180

2 N u m b e r s

B I N A R Y ,H E X A N DD E C I M A L

W e h a v es e e nt h a t t h e i n s t r u c t i o n s t h eV I C2 0 o p e r a t e sw i t hc o n s i s to f s e q u e n c e s

o f n u m b e r s . B u tj u s th o wa r e t h e s en u m b e r ss t o r e di n t e r n a l l y ?W e l l ,n o t w i s h i n g

t o b a f f l ey o u w i t ht h e w o n d e r so f m o d e r nc o m p u t e rs c i e n c e ,l e t ' st r y t o s i m p l i f y

m a t t e r ss o m e w h a ta n ds a yt h a te a c hi n s t r u c t i o ni s s t o r e di n t e r n a l l ya s a b i n a r yn u m b e r .

D e c i m a ln u m b e r sa r ec o m p o s e do fc o m b i n a t i o n so f t e nd i f f e r e n td i g i t s ,t h a ti s 0 , 1 , 2 , 3 , 4 ,

5 , 6 , 7 , 8a n d9 a n da r es a i dt o w o r kt o a b a s e o f1 0 .A si t sn a m es u g g e s t s ,b i n a r yn u m b e r s

w o r kt o a b a s eo f 2 w h e r eo n l yt h ed i g i t s0 a n d1 a r ea v a i l a b l e .T h e s et w o n u m b e r s

r e p r e s e n tt h e t w od i f f e r e n te l e c t r i c a lc o n d i t i o n st h a ta r ea v a i l a b l ei n s i d et h eV I C2 0 ,

n a m e l y0 v o l t s( o f f )a n d5 v o l t s ( o n ) .

T h em a c h i n ec o d ed e s c r i b e di n C h a p t e r1 i s t h e r e f o r er e p r e s e n t e di n t e r n a l l ya s :

M n e m o n i c M a c h i n ec o d e B i n a r y

L D A$ 5

S T A

0 0

$ 1 5

1 6 9

0 5

1 4 1

1 0 1 0 1 0 0 1

0 0 0 0 0 1 0 1

1 0 0 0 1 1 0 1

1 5 0 0 0 1 0 1 0 1

A s c a nb e s e e n ,e a c hm a c h i n e c o d ei n s t r u c t i o ni s e x p r e s s e da s e i g h tb i n a r yd i g i t s ,c a l l e d

b i t s ,w h i c ha r ec o l l e c t i v e l yt e r m e da b y t e .

U s u a l l ye a c ho f t h eb i t s i na b y t ei s n u m b e r e df o rc o n v e n i e n c ea s f o l l o w s :

7 6 5 4 3 2 1 0

T h en u m b e ro f t h eb i t i n c r e a s e sf r o mr i g h tt o l e f t ,b u tt h i si s n o ts o o d da s i t m a yf i r s t

s e e m .

C o n s i d e rt h ed e c i m a ln u m b e r2 9 3 4 ,w e r e a dt h i sa s t w ot h o u s a n d ,n i n eh u n d r e da n d

t h i r t yf o u r .T h eh i g h e s tn u m e r i c a lv a l u e ,t w ot h o u s a n d ,i s o n t h el e f t ,w h i l s t t h e l o w e s t ,

f o u r ,i s o n t h er i g h t .W ec a ns e ef r o mt h i st h a t t h ep o s i t i o no f t h ed i g i ti n t h en u m b e ri s

v e r yi m p o r t a n t ,a s i t w i l la f f e c ti t s w e i g h t .

T h es e c o n dr o wo f T a b l e2 . 1i n t r o d u c e s an e wn u m e r i c a lr e p r e s e n t a t i o n .E a c hb a s e

v a l u ei s p o s t f i x e dw i t h as m a l ln u m b e ro rp o w e r ,w h i c hc o r r e s p o n d st o i t so v e r a l lp o s i t i o n

i n t h e n u m b e r .T h u s1 0 3 ,r e a da s t e n r a i s e d t ot h e p o w e ro f t h r e e ,s i m p l yi m p l i e s1 0 X 1 0 X 1 0 =—

Page 13: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 13/180

T a b l e2 . 1

V a l u e

R e p r e s e n t a t i o n

D i g i t

1 0 0 0 s

1 0 3

2

1 0 0 s

1 0 2

9

1 0 s

1 0 '

3

I s

1 0 °

4

I n b i n a r yr e p r e s e n t a t i o n , t h ew e i g h to f e a c hb i ti s c a l c u l a t e db y r a i s i n gt h eb a s ev a l u e ,

t w o ,t o t h eb i t p o s i t i o n( s e eT a b l e2 . 2 ) .F o re x a m p l eb i t n u m b e r7 *h a sa n o t a t i o n a l

r e p r e s e n t a t i o no f 2 7 w h i c he x p a n d st o : 2 x 2 x 2 x 2 x 2 x 2 x 2 =1 2 8 !

T a b l e2 . 2

B i tn u m b e r

R e p r e s e n t a t i o n

W e i g h t

7

2 7

1 2 8

6

2 6

6 4

5

2 5

3 2

4

2 4

1 6

3

2 3

8

2

2 2

4

1

2 l

2

0

2 °

1

B I N A R YT OD E C I M A L C O N V E R S I O N

A s i t i s p o s s i b l e t oc a l c u l a t et h ew e i g h to f i n d i v i d u a lb i t s ,i t i s a s i m p l em a t t e rt o c o n v e r t

b i n a r yn u m b e r si n t od e c i m a ln u m b e r s .T h er u l e sf o rc o n v e r s i o na r e :

I f t h eb i ti s s e t —t h a ti s i t c o n t a i n sa 1 — a d di t s w e i g h t

I f t h eb i t i s c l e a r — - t h a ti s i t c o n t a i n sa 0 — i g n o r ei t s w e i g h t

L e tu s t r ya n e x a m p l ea n dc o n v e r tt h eb i n a r yn u m b e r1 0 1 0 1 0 1 0i n t oi t s e q u i v a l e n t

d e c i m a lv a l u e .

1 X 1 2 8 ( 2 7 )= 1 2 8

0 X 6 4 ( 2 6 ) =0

1 X 3 2 ( 2 5 )= 3 2

0 X 1 6 ( 2 4 ) =0

1 X 8 ( 2 3 )= 8

0 X 4 ( 2 2 )= 0

1 X 2 ( 2 ' )= 2

0 X 1 ( 2 ° )= 0

7 7 0

T h e r e f o r e 1 0 1 0 1 0 1 0b i n a r yi s 1 7 0 d e c i m a l .

Page 14: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 14/180

S i m i l a r l y1 1 1 0 1 1 1 0r e p r e s e n t s :

1

1

1

0

1

1

1

0

X

X

X

X

X

X

X

X

i n d e c i m a l

1 2 8 ( 2 7 )=

6 4 ( 2 6 )=

3 2 ( 2 5 )=

1 6 ( 2 4 )=

8 ( 2 3 )=

4 ( 2 2 )=

2 ( 2 ' )=

1 ( 2 ° )=

1 2 8

6 4

3 2

0

8

4

2

0

2 3 8

D E C I M A LT O B I N A R YC O N V E R S I O N

T o c o n v e r ta d e c i m a ln u m b e ri n t oa b i n a r y o n e ,t h e p r o c e d u r ed e s c r i b e de a r l i e ri s

r e v e r s e d — e a c hb i n a r y w e i g h ti s s u b t r a c t e di n t u r n .I f t h es u b t r a c t i o ni s p o s s i b l e ,a 1 i s

p l a c e di n t o t h eb i n a r yc o l u m n a n dt h er e m a i n d e rc a r r i e dd o w nt o t h en e x tr o ww h e r et h e

n e x tb i n a r y w e i g h ti s s u b t r a c t e d .

I f t h es u b t r a c t i o ni s n o tp o s s i b l e ,a 0 i s p l a c e di n t h eb i n a r yc o l u m n a n dt h en u m b e r

m o v e dd o w nt o t h en e x tr o w .F o re x a m p l e ,t h ed e c i m a ln u m b e r1 4 1i s c o n v e r t e di n t o

b i n a r ya s i n T a b l e2 . 3 .

T a b l e2 . 3

D e c i m a l

n u m b e r

1 4 1

1 3

1 3

1 3

1 3

5

1

1

B i n a r y

w e i g h t

1 2 8 ( 2 7 )

6 4 ( 2 6 )

3 2 ( 2 5 )

1 6 ( 2 4 )

8 ( 2 3 )

4 ( 2 2 )

2 ( 2 l )

1 ( 2 ° )

B i n a r y

1

0

0

0

1

1

0

1

R e m a i n d e r

1 3

1 3

1 3

1 3

5

1

1

0

T h e r e f o r e1 4 1= 1 0 0 0 1 1 0 1b i n a r y .

B I N A R YT O H E XC O N V E R S I O N

A l t h o u g hb i n a r y n o t a t i o ni s p r o b a b l ya s c l o s e a sw e c a nc o m et o r e p r e s e n t i n gt h ew a yn u m b e r sa r e s t o r e d w i t h i nt h e V I C2 0 , y o uw i l ln o d o u b th a v en o t i c e dt h a tt h e

m a c h i n ec o d ee x a m p l e si n c l u d es o m eg r o u p s o ft w oc h a r a c t e r sp r e c e d e db ya d o l l a rs i g n ,

T . T h i st y p eo fn u m b e ri s k n o w na s a h e x a d e c i m a ln u m b e r ,o r h e xf o rs h o r t ,a n di t sv a l u e

i s c a l c u l a t e dt o a b a s eo f 1 6 !T h i s ,a t f i r s ts i g h t ,m a ys e e ms i n g u l a r l ya w k w a r d ,h o w e v e ri t

d o e sp r e s e n ts e v e r a ld i s t i n c ta d v a n t a g e so v e rb i n a r ya n dd e c i m a ln u m b e r sa sw es h a l ls e e .

7

Page 15: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 15/180

S i x t e e nd i f f e r e n tc h a r a c t e r sa r e r e q u i r e dt o r e p r e s e n ta l l t h e p o s s i b l ed i g i t si n a h e x

n u m b e r .T o p r o d u c et h e s e ,t h en u m b e r s0 t o 9 a r er e t a i n e d ,a n dt h el e t t e r sA , B , C , D , Ea n dF a r eu s e dt o d e n o t et h ev a l u e s 1 0t o 1 5 .B i n a r yc o n v e r s i o nv a l u e sa r es h o w ni n T a b l e

2 . 4 .

T a b l e2 . 4

D e c i m a l

0

1

2

3

4

5

6

7

9

1 0

1 1

1 2

1 3

1 4

1 5

H e x

0

1

2

3

4

5

6

7

8

9

AB

C

DE

F

B i n a r y

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

T oc o n v e r ta b i n a r yn u m b e ri n t oh e x ,t h eb y t em u s tb e s e p a r a t e di n t ot w os e t so ff o u rb i t s ,

t e r m e dn i b b l e s ,a n dt h ec o r r e s p o n d i n gh e xv a l u eo f e a c hn i b b l e e x t r a c t e df r o mT a b l e2 . 4 .

E x a m p l eC o n v e r t 0 1 1 01 0 0 1t o h e x :

H i g hn i b b l e L o wn i b b l e

0 1 M

6 9

B e c a u s ei t i s n o ta l w a y s a p p a r e n tw h e t h e ra n u m b e ri s h e xo r d e c i m a l( a si n t h ee x a m p l e

a b o v e ) ,h e xn u m b e r so n t h eV I C2 0 a r ea l w a y s p r e c e d e db y a d o l l a rs i g n — t h e r e f o r e

0 1 1 0 1 0 0 1i s $ 6 9( r e a dh e xs i x n i n e ) .

B y r e v e r s i n gt h ep r o c e s s ,h e xn u m b e r sc a nr e a d i l yb e c o n v e r t e di n t ob i n a r y .

E x a m p l eC o n v e r t$ A Ft o b i n a r y :

1 0 1 0 1 1 1 1

1 0 1 0 1 1 1 1

I t s h o u l dn o wb e a p p a r e n tt h a th e xn u m b e r sa r em u c he a s i e rt o c o n v e r tt o b i n a r y ( a n d

v i c e v e r s a ) ,t h a nt h e i rd e c i m a lc o u n t e r p a r t s ,a n dt h em a x i m u mb i n a r yn u m b e rp o s s i b l e

w i t ho n eb y t e ,1 1 1 1 1 1 1 1 ,r e q u i r e sj u s tt w oh e xd i g i t s ,$ F F .

8

Page 16: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 16/180

H E X T OD E C I M A L C O N V E R S I O N

F o rt h es a k e o f c o m p l e t e n e s s ,l e t ' ss e eh o wh e xa n dd e c i m a ln u m b e r sm a yb e c o n v e r t e d .

T o t r a n s f o r ma h e xn u m b e ri n t od e c i m a l ,t h ed e c i m a l w e i g h t o fe a c hd i g i ts h o u l db e

s u m m e d .

E x a m p l ec o n v e r t$ 3 1 At o d e c i m a l :

T h e3 h a st h ev a l u e3 X 1 6 2 = 3 X 1 6 X 1 6 = 7 6 8

T h e1 h a st h ev a l u e1 X 1 6 1 = 1 X 1 6 = 1 6

T h eA h a st h ev a l u e1 x 1 6 °= 1 0 X 1 = 1 0

a d dt h e s et o g e t h e rt o g i v e$ 3 1 A= 7 9 4d e c i m a l .

C o n v e r t i n gd e c i m a lt o h e xi s a b i t m o r ei n v o l v e da n dr e q u i r e s t h en u m b e rt o b e

r e p e a t e d l y d i v i d e db y 1 6u n t i la v a l u el e s st h a n1 6i s o b t a i n e d .T h i sh e xv a l u ei s n o t e d ,a n d

t h e r e m a i n d e rc a r r i e df o r w a r df o r f u r t h e rd i v i s i o n .T h i sp r o c e s si s c o n t i n u e du n t i lt h e

r e m a i n d e ri t s e l fi s l e s st h a n1 6 .

E x a m p l ec o n v e r t4 0 7 2t o h e x :

4 0 7 2h - 1 6 + 1 6 = 1 5 = F ( r e m a i n d e r= 4 0 7 2- ( 1 5X 1 6 X 1 6 )= 2 3 2 )

2 3 2- s - 1 6 = 1 4 = E ( r e m a i n d e r= 2 3 2- ( 1 4X 1 6 )= 8 )

8 = 8

T h e r e f o r e4 0 7 2d e c i m a li s $ F E 8 .

B o t ho f t h e s ec o n v e r s i o n sa r ea l i t t l el o n gw i n d e d( t os a yt h el e a s t ! )a n da f t e ra l lw e d o

h a v ea v e r ys o p h i s t i c a t e dm i c r o c o m p u t e ra v a i l a b l e t ou s ,s o l e t ' sm a k ei t d o s o m eo f t h i s

m o r et e d i o u sw o r k !

Page 17: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 17/180

3 L o g i c a l l yI t A l lA d d sU p !

B I N A R YA R I T H M E T I C

P l e a s ed o n ' tb e p u to f fa n ds k i pt h i sc h a p t e rs i m p l y b e c a u s ei t c o n t a i n st h a td r e a d e dw o r d — a r i t h m e t i c .T h ea d d i t i o na n ds u b t r a c t i o no f b i n a r yn u m b e r si s s i m p l e ,i n f a c ti f

y o uc a nc o u n tt o t w o y o uw i l lh a v en o p r o b l e m sw h a t s o e v e r !A l t h o u g hi t i s n o tv i t a lt o b e

a b l et o a d d a n ds u b t r a c to n e sa n dn o u g h t sb y ' h a n d ' ,t h i sc h a p t e rw i l li n t r o d u c es e v e r a l

n e wc o n c e p t sw h i c ha r ei m p o r t a n t ,a n dw i l lh e l py o ui n y o u ru n d e r s t a n d i n g o ft h en e x t

f e wc h a p t e r s .

A D D I T I O N

T h e r ea r e j u s tf o u r ,s i m p l e ,s t r a i g h t f o r w a r dr u l e sw h e ni t c o m e st o a d d i n gb i n a r y

n u m b e r s .T h e ya r e :

1 . 0 + 0 = 0

2 . 1 + 0 = 13 . 0 + 1= 1

4 . 1 + 1 = ( 1 ) 0

N o t e ,t h a ti n r u l e4 , t h er e s u l to f 1 + 1 i s ( 1 ) 0 .T h e1 i n b r a c k e t si s c a l l e da c a r r yb i t ,a n d

i t sf u n c t i o ni s t o d e n o t ea no v e r f l o wf r o mo n ec o l u m nt o a n o t h e r ,r e m e m b e r ,1 0b i n a r yi s 2

d e c i m a l .T h eb i n a r y' c a r r y 'b i ti s q u i t e s i m i l a r t o t h ec a r r yt h a tc a no c c u rw h e na d d i n gt w o

d e c i m a ln u m b e r st o g e t h e rw h o s er e s u l ti s g r e a t e rt h a n9 . F o re x a m p l e ,a d d i n gt o g e t h e r

9 + 1 w eo b t a i n ar e s u l to f 1 0( t e n ) , t h i sw a so b t a i n e db yp l a c i n ga z e r oi n t h e u n i t sc o l u m n

a n dc a r r y i n gt h e ' o v e r f l o w 'a c r o s st o t h en e x tc o l u m nt o g i v e :9 + 1 = 1 0 .S i m i l a r l y ,i n

b i n a r y a d d i t i o nw h e nt h er e s u l ti s g r e a t e rt h a n1 , w et a k et h ec a r r yb i ta c r o s st o a d dt o t h e

n e x tc o l u m n .

L e t ' st r yt o a p p l yt h e s ep r i n c i p l e s t oa d dt o g e t h e rt w o4 b i tb i n a r yn u m b e r s ,0 1 0 1a n d

0 1 0 1 ( $ 5 )

+ 0 1 0 0 ( $ 4 )

1 0 0 1 ( $ 9 )

R e a d i n ge a c hi n d i v i d u a lc o l u m n f r o mr i g h tt o l e f t :

F i r s tc o l u m n : 1 + 0 = 1S e c o n dc o l u m n : 0+ 0 = 0T h i r dc o l u m n : 1 + 1 = 0 ( 1 )F o u r t h c o l u m n :0 + 0 = 0 + ( l ) = 1

I n t h i se x a m p l ea c a r r yb i tw a sg e n e r a t e di n t h e t h i r dc o l u m n ,a n d w a sc a r r i e da c r o s sa n da d d e dt o t h ef o u r t hc o l u m n .

1 0

Page 18: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 18/180

A d d i n g8 b i tn u m b e r si s a c c o m p l i s h e di n a s i m i l a rm a n n e r :

0 1 0 1 0 1 0 1 ( $ 5 5 )

+ 0 1 1 1 0 0 1 0 ( $ 7 2 )

1 1 0 0 0 1 1 1 ( $ C 7 )

S U B T R A C T I O N

S o f a rw eh a v e b e e nd e a l i n g w i t hp o s i t i v en u m b e r s ,h o w e v e ri n t h es u b t r a c t i o no f b i n a r y

n u m b e r sw e n e e dt o b e a b l e t o r e p r e s e n t n e g a t i v en u m b e r sa s w e l l a s p o s i t i v eo n e s . I n

b i n a r ys u b t r a c t i o nt h o u g h , as l i g h t l yd i f f e r e n tt e c h n i q u ef r o m n o r m a le v e r y d a y

s u b t r a c t i o ni s u s e d ,i n f a c tw e d o n ' tr e a l l yp e r f o r ma s u b t r a c t i o na t a l l — w ea d dt h e

n e g a t i v ev a l u eo f t h en u m b e rt o b e s u b t r a c t e d .F o re x a m p l e ,i n s t e a do f e x e c u t i n g4 - 3( f o u rm i n u st h r e e )w ea c t u a l l ye x e c u t e4 + ( - 3 )( f o u r ,p l u sm i n u st h r e e ) !F i g u r e3 . 1w i l l

h o p e f u l l ye r a d i c a t ea n yc o n f u s i o n o rh e a d a c h e st h a tm a yb e p r e v a i l i n g !

M i n u so r n e g a t i v ed i r e c t i o n P o s i t i v e d i r e c t i o n

- 3 - 2 - 1

| M o v e4 p o s i t i v e )

c A d d3 n e g a t i v e|

F i g u r e3 . 1 D i a g r a m a t i cr e p r e s e n t a t i o no f 4 + ( - 3 ) .

W ec a nu s et h es c a l et o p e r f o r mt h ee x a m p l e4 + ( — 3 ) .T h es t a r t i n gp o i n ti s z e r o . F i r s t

m o v et o p o i n t4 ( i . e .f o u rp o i n t si n a p o s i t i v ed i r e c t i o n )a n da d dt o t h i s- 3 ( i . e .m o v et h r e e

p o i n t si n a n e g a t i v ed i r e c t i o n ) .W ea r en o wp o s i t i o n e da t p o i n t1 w h i c hi s ,o fc o u r s e ,w h e r e

w es h o u l db e .T r yu s i n gt h i sm e t h o dt o s u b t r a c t8 f r o m1 2 ,t o g e t t h e p r i n c i p l ec l e a ri n y o u r

m i n d .

O k a y ,l e t ' sn o ws e eh o ww ea p p l yt h i st o b i n a r yn u m b e r s ,b u tf i r s t ,j u s th o wa r e n e g a t i v e

n u m b e r sr e p r e s e n t e di n b i n a r y ?W e l l ,a s y s t e mk n o w na s s i g n e d b i n a r yi s e m p l o y e d ; w h e r e

b i t7 , k n o w na s t h em o s ts i g n i f i c a n tb i t( m s b ) ,i s u s e dt o d e n o t et h es i g no f t h en u m b e r .

T r a d i t i o n a l l y a* 0 'i n b i t7 d e n o t e s ap o s i t i v en u m b e ra n da T a n e g a t i v en u m b e r . F o r

i n s t a n c e ,i n s i g n e db i n a r y :

1 0 0 0 0 0 0 1 ,

B i t s0 - 6g i v ev a l u e= 1

S i g nb i t = 1 , t h e r e f o r en u m b e ri s n e g a t i v e

s o , 1 0 0 0 0 0 0 1= - 1 . A n d :

C j l l l l l l l ,

- B i t s0 - 6g i v ev a l u e= 1 2 7

- S i g n= 0 t h e r e f o r en u m b e ri s p o s i t i v e

t h e r e f o r e0 1 1 1 1 1 1 1= 1 2 7 .

1 1

Page 19: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 19/180

Page 20: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 20/180

T h et w o ' sc o m p l e m e n tv a l u ei s :

1 1 1 1 1 1 01

1 1 1 1 1 1 1 0

W ec a na d dt h i sv a l u et w i c et o p e r f o r mt h e a d d i t i o n :

( - 2 ) 1 1 1 1 1 1 1 0

( - 2 ) + 1 1 1 1 1 1 1 0

( 1 ) 1 1 11 1 1 0 0

I g n o r i n gt h ec a r r y ,t h ef i n a lr e s u l ti s - 4 .Y o um i g h tl i k et o c o n f i r mt h i sb yo b t a i n i n gt h e

t w o ' sc o m p l e m e n tv a l u eo f - 4 i n t h eu s u a lm a n n e r .

L O G I C A LO P E R A T I O N ST h et h e o Y yo f l o g i ci s b a s e do n s i t u a t i o n sw h e r et h e r ec a n o n l ye v e r b et w op o s s i b i l i t i e s ,

n a m e l yy e sa n dn o . I n b i n a r y t e r m st h e s et w op o s s i b i l i t i e sa r e r e p r e s e n t e da s 1 a n d0 .

T h e r ea r et h r e ed i f f e r e n tl o g i c a lo p e r a t i o n st h a tc a nb e p e r f o r m e do n b i n a r yn u m b e r s ,

t h e y a r eA N D ,O Ra n dE O R .I n e a c hc a s et h el o g i c a lo p e r a t i o ni s p e r f o r m e db e t w e e nt h e

c o r r e s p o n d i n gb i t so f t w os e p a r a t en u m b e r s .

A N D

T h ef o u rr u l e sf o rA N Da r e :

1 . 0 A N D 0= 0

2 . 1 A N D0 = 0

3 . 0 A N D1 = 0

4 . 1 A N D1 = 1

A s c a n c l e a r l yb e s e e n ,t h e A N Do p e r a t i o nw i l lo n l yg e n e r a t ea 1 i f b o t h o ft h e

c o r r e s p o n d i n gb i t sb e i n gt e s t e da r e1 . I f a 0e x i s t si n e i t h e ro ft h ec o r r e s p o n d i n gb i t sb e i n g

t e s t e d ,t h er e s u l t i n gb i t w i l la l w a y sb e 0 .

E x a m p l eA N Dt h ef o l l o w i n gt w ob i n a r yn u m b e r s :

1 0 1 0

A N D 0 0 1 1

0 0 1 0

I n t h er e s u l to n l yb i t1 i s s e t ,t h eo t h e rb i t sa r ea l lc l e a rb e c a u s ei n e a c hc a s eo n eo ft h eb i t s

b e i n gt e s t e dc o n t a i n s a0 .

T h e m a i nu s eo f t h eA N Do p e r a t i o ni s t o ' m a s k ' o r' p r e s e r v e 'c e r t a i nb i t s .I m a g i n et h a t

w ew i s ht o p r e s e r v et h el o wf o u rb i t so fa b y t e( l o wn i b b l e )a n dc o m p l e t e l yc l e a r t h eh i g h

f o u rb i t s( h i g hn i b b l e ) .W ew o u l dn e e dt o A N Dt h en u m b e rw i t h0 0 0 0 1 1 1 1 .I f t h eo t h e r

b y t ec o n t a i n e d1 0 1 0 1 1 0 0t h er e s u l tw o u l db e g i v e nb y :

1 0 1 0 1 1 00 ( b y t eb e i n gt e s t e d )

A N D 0 0 0 01 1 1 1 ( m a s k )

0 0 0 01 1 0 0

t h eh i g hn i b b l ei s c l e a r e da n dt h el o wn i b b l e p r e s e r v e d !

1 3

Page 21: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 21/180

O R

T h ef o u rr u l e sf o rO Ra r e :

1 . 0 O R 0= 0

2 . 1 O R0 = 1

3 . 0 O R 1 = 1

4 . 1 O R 1 = 1

H e r et h eO Ro p e r a t i o nw i l lr e s u l ti n a 1 i f e i t h e ro r b o t ht h eb i t sc o n t a i na 1 . A 0 w i l lo n l y

o c c u ri f n e i t h e ro f t h eb i t sc o n t a i n sa 1 .

E x a m p l eO R t h ef o l l o w i n gt w ob i n a r yn u m b e r s :

1 0 1 0

O R 0 0 1 1

1 0 1 1

H e r e , o n l yb i t 2 i s c l e a r ,t h eo t h e rb i t sa r ea l l s e ta s e a c hp a i ro f t e s t e db i t sc o n t a i n sa t

l e a s to n e1 .

O n ec o m m o nu s eo f t h eO Ro p e r a t i o ni s t o e n s u r et h a ta c e r t a i nb i t( o rb i t s )i s s e t — t h i s

i s s o m e t i m e sc a l l e d' f o r c i n gb i t s ' .A s a n e x a m p l e ,i f y o uw i s ht o f o r c eb i t0 a n db i t7 , y o u

w o u l dn e e dt o O Rt h eo t h e rb y t ew i t h 1 0 0 0 0 0 0 1 .

0 0 1 1 0 1 1 0 ( b y t eb e i n gt e s t e d )

O R 1 0 0 0 0 0 01 ( f o r c i n gb y t e )

1 0 1 1 01 1 1

T h ei n i t i a lb i t sa r e p r e s e r v e d ,b u tb i t0 a n db i t 7 a r e' f o r c e d 't o 1 .

E O R

L i k eA N Da n dO R ,t h i sd o n k e ys o u n d i n go p e r a t i o nh a sf o u rr u l e s :

1 . 0 E O R 0= 0

2 . 1 E O R0 = 1

3 . 0 E O R1 = 1

4 . 1 E O R1 = 0

T h i s o p e r a t i o ni s e x c l u s i v et o O R ,i n o t h e rw o r d s ,i f b o t hb i t sb e i n gt e s t e da r e s i m i l a ra 0

w i l lr e s u l t .A 1 w i l lo n l yb e g e n e r a t e di f t h ec o r r e s p o n d i n gb i t sa r eu n l i k e .

E x a m p l eE O Rt h ef o l l o w i n gt w ob i n a r yn u m b e r s :

1 0 1 0

E O R 0 0 1 1

1 0 01

T h i si n s t r u c t i o ni s o f t e nu s e dt o c o m p l e m e n t ,o r i n v e r t ,a n u m b e r .D ot h i sb y E O R i n gt h e

o t h e r b y t e w i t h1 1 1 1 1 1 1 1 .

1 0 0 1 1 00 0 ( b y t eb e i n gi n v e r t e d )

E O R 1 1 1 1 1 1 1 1 ( i n v e r t i n gb y t e )

0 1 1 0 0 1 1 1

C o m p a r et h er e s u l tw i t ht h ef i r s tb y t e ,i t i s c o m p l e t e l yo p p o s i t e .

1 4

Page 22: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 22/180

4 T h eR e g i s t e r s

T oe n a b l et h e6 5 0 2t o c a r r yo u ti t sv a r i o u s . o p e r a t i o n s ,i t c o n t a i n sw i t h i ni t s e v e r a ls p e c i a l

l o c a t i o n s , c a l l e dr e g i s t e r s .B e c a u s et h e s er e g i s t e r sa r e i n t e r n a lt o t h e6 5 0 2 , t h e yd o n o t

a p p e a ra s p a r t o ft h eV I C2 0 ' sm e m o r ym a p( s e eA p p e n d i x5 ) ,a n da r e t h e r e f o r er e f e r r e d t o

b yn a m eo n l y .F i g u r e4 . 1s h o w st h et y p i c a lp r o g r a m m i n gm o d e lo f t h e6 5 0 2 .F o rt h et i m e

b e i n gw en e e do n l yc o n c e r no u r s e l v e sw i t ht h ef i r s tf o u r o ft h e s es i x r e g i s t e r s ,t h e ya r e t h e

a c c u m u l a t o r ,t h eX a n dY r e g i s t e r sa n dt h eP r o g r a mC o u n t e r .

J A c c u m u l a t o r

I n d e xr e g i s t e r s

j S t a t u sr e g i s t e r

L ± S I S t a c kP o i n t e r

1 5

L P C H | P C L P r o g r a mC o u n t e r

F i g u r e4 . 1 T h er e g i s t e r s — at y p i c a lp r o g r a m m i n gm o d e l .

T H EA C C U M U L A T O R

W eh a v ea l r e a d ym e n t i o n e dt h ea c c u m u l a t o r( o r ' A 'r e g i s t e r )s e v e r a lt i m e si n t h eo p e n i n g

c h a p t e r .A s y o um a yh a v ea l r e a d yg a t h e r e d ,t h ea c c u m u l a t o ri s t h em a i nr e g i s t e ro f t h e

6 5 0 2 ,a n dl i k em o s to f t h eo t h e rr e g i s t e r si t i s e i g h tb i t sw i d e .T h i sm e a n st h a ti t c a nh o l da

s i n g l eb y t eo f i n f o r m a t i o na t a n yo n et i m e .B e i n gt h e m a i nr e g i s t e r ,i t h a st h em o s t

i n s t r u c t i o n sa s s o c i a t e dw i t hi t ,a n di t sp r i n c i p l e f e a t u r ei s t h a ta l la r i t h m e t i ca n dl o g i c a l

o p e r a t i o n s a r ec a r r i e do u tt h r o u g hi t .

T h ea c c u m u l a t o r ' sa s s o c i a t e di n s t r u c t i o n sa r e l i s t e di n T a b l e4 . 1 .I t i sn o ta b s o l u t e l y

v i t a lt o b e f a m i l i a rw i t ht h e s ea t p r e s e n t ,b u tt h e ya r ei n c l u d e dn o wa s a n i n t r o d u c t i o n .

1 5

Page 23: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 23/180

T a b l e4 . 1

A D CA N D

A S LB I T

C M PE O RL D AL S R

O R A

A c c u m u l a t o ri n s t r u c t i o n s

A d dw i t hc a r r y

L o g i c a lA N D

A r i t h m e t i cs h i f tl e f tC o m p a r em e m o r yb i t s

C o m p a r et o a c c u m u l a t o r

L o g i c a lE O RL o a dt h ea c c u m u l a t o r

L o g i c a ls h i f tr i g h t

L o g i c a lO R

P H AP L A

R O LR O RS B CS T A

T A XT A YT X AT Y A

P u s h a c c u m u l a t o r

P u l la c c u m u l a t o r

R o t a t el e f tR o t a t er i g h t

S u b t r a c tw i t hc a r r y

S t o r et h ea c c u m u l a t o r

T r a n s f e ra c c u m u l a t o rt o X r e g i s t e r

T r a n s f e ra c c u m u l a t o rt o Y r e g i s t e r

T r a n s f e rX r e g i s t e rt o a c c u m u l a t o r

T r a n s f e rY r e g i s t e rt o a c c u m u l a t o r

T H EI N D E X R E G I S T E R S

T h e r ea r et w of u r t h e rr e g i s t e r si n t h e6 5 0 2w h i c h c a nh o l ds i n g l eb y t ed a t a .T h e s ea r e t h eXr e g i s t e ra n dt h eY r e g i s t e r .T h e ya r e g e n e r a l l yt e r m e dt h e' i n d e xr e g i s t e r s ' ,b e c a u s et h e ya r e

v e r y o f t e nu s e dt o p r o v i d ea n ' o f f s e t *o r i n d e xf r o ma s p e c i f i e db a s ea d d r e s s .T h e ya r e

p r o v i d e dw i t hd i r e c ti n c r e m e n ta n dd e c r e m e n ti n s t r u c t i o n s — s o m e t h i n gt h ea c c u m u l a t o r

l a c k s — s oa r ea l s oq u i t e o f t e nu s e da s c o u n t e r s .H o w e v e r ,i t i s n o tp o s s i b l et o p e r f o r m

a r i t h m e t i co r l o g i c a lo p e r a t i o n si n e i t h e ri n d e xr e g i s t e r ,b u tt h e r e a r ei n s t r u c t i o n st o

t r a n s f e rt h ec o n t e n t so f t h e s er e g i s t e r si n t ot h ea c c u m u l a t o ra n dv i c e v e r s a .

T h ei n s t r u c t i o n sa s s o c i a t e dw i t hb o t hr e g i s t e r sa r eg i v e ni n T a b l e4 . 2 .

T a b l e4 . 2

X r e g i s t e ri n s t r u c t i o n s Y r e g i s t e ri n s t r u c t i o n s

C P X C o m p a r eX r e g i s t e r C P YD E X D e c r e m e n tX r e g i s t e r D E YI N X I n c r e m e n tX r e g i s t e r I N Y

L D X L o a dt h e X r e g i s t e r L D YS T X S t o r et h e X r e g i s t e r S T Y

T A X T r a n s f e ra c c u m u l a t o rt o X r e g . T A YT X A T r a n s f e rX r e g .t o a c c u m u l a t o rT Y A

T S X T r a n s f e rS t a t u st o X r e g i s t e rT X S T r a n s f e rX r e g i s t e rt o S t a t u s

C o m p a r eY r e g i s t e r

D e c r e m e n tY r e g i s t e r

I n c r e m e n tY r e g i s t e r

L o a dt h e Y r e g i s t e r

S t o r et h e Y r e g i s t e r

T r a n s f e ra c c u m u l a t o rt o Y r e g .

T r a n s f e rY r e g .t o a c c u m u l a t o r

T H EP R O G R A MC O U N T E R

T h eP r o g r a mC o u n t e ri s t h e 6 5 0 2 ' sa d d r e s sb o o k .I t n e a r l ya l w a y sc o n t a i n st h ea d d r e s si n

m e m o r yw h e r et h en e x ti n s t r u c t i o n t ob e e x e c u t e ds i t s .U n l i k et h eo t h e rr e g i s t e r s ,i t i s a 1 6

b i t r e g i s t e r ,c o n s i s t i n g p h y s i c a l l yo f t w o8 b i t r e g i s t e r s .T h e s et w oa r e g e n e r a l l yr e f e r r e dt o

a s P r o g r a mC o u n t e rH i g h( P C H )a n d P r o g r a mC o u n t e rL o w( P C L ) .

1 6

Page 24: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 24/180

5 A P o k ea t M a c h i n e C o d

N o wt h a tw eh a v eg o ts o m eo f t h e b a s i c so u to f t h ew a y ,w h yd o n ' tw ew r i t eo u rf i r s tm a c h i n e ,c o d e p r o g r a m ,a f t e ra l l ,t h a t ' sw h a tt h i sb o o ki s a l la b o u t !

E n t e rP r o g r a m1 — y o uc a no m i tt h eR E Ms t a t e m e n t si f y o ul i k e .T h e( h e x )m a c h i n ec o d ea n da s s e m b l e rv e r s i o n so f t h ei n s t r u c t i o n sa r ei n c l u d e da s R E M sa l o n g s i d et h eD A T As t a t e m e n t s( w h i c ha r e ,o f c o u r s e ,i n d e c i m a l ) .

P r o g r a m1

1 0 R E M* * M A C H I N EC O D ED E M O* *

2 0 R E M* P R I N T' A ' O NS C R E E N*

3 0 C O D E= 8 2 8

4 0 F O R L O O P= 0 T O 5

5 0 R E A DB Y T E

6 0 P O K EC O D E+ L O O P ,B Y T E

7 0 N E X TL O O P

8 0 :

9 0 R E M* * M A C H I N EC O D ED A T A* *

1 0 0 D A T A1 6 9 , 6 5 : R E M$ A 9 ,$ 4 1 — L D A# A S C " A "

1 1 0 D A T A3 2 , 2 1 0 , 2 5 5: R E M$ 2 0 ,$ D 2 ,$ F F — J S R6 5 4 9 0

1 2 0 D A T A9 6 : R E M$ 6 0 — R T S

1 3 0 :

1 4 0 R E M* * E X E C U T EM A C H I N EC O D E* *

1 5 0 S Y S 8 2 8

T h ef u n c t i o n o ft h i ss h o r tp r o g r a mi s t o p r i n tt h e l e t t e r' A ' o n t h e s c r e e n .N o t h i n g

s p e c t a c u l a r ,b u tt h ep r o g r a md o e si n c o r p o r a t e v a r i o u sf e a t u r e s t h a tw i l lb ec o m m o nt o a l l

y o u rf u t u r em a c h i n ec o d ep r o g r a m s .T h em e a n i n go f e a c hl i n ei s a s f o l l o w s :

L i n e3 0 D e c l a r ea v a r i a b l ec a l l e dC O D Et o d e n o t ew h e r et h em a c h i n ec o d ei s p l a c e d .

L i n e4 0 S e tu p a d a t a - r e a d i n gl o o p .

L i n e5 0 R e a do n eb y t eo f m a c h i n ec o d ed a t a .

L i n e6 0 P O K Eb y t ev a l u ei n t om e m o r y .

L i n e7 0 R e p e a t l o o pu n t i l f i n i s h e d .

L i n e1 0 0 M a c h i n ec o d ed a t a — p l a c eA S C I Ic o d ef o rA i n a c c u m u l a t o r .

L i n e1 1 0 M a c h i n ec o d ed a t a — p r i n tA o n t h es c r e e n .

1 7

Page 25: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 25/180

L i n e1 2 0 M a c h i n ec o d ed a t a — R e t u r nt o B A S I C .

L i n e 1 5 0E x e c u t et h em a c h i n ec o d e

T os e e t h ee f f e c to f t h ep r o g r a mj u s tt y p ei n R U N ,h i tt h eR E T U R Nk e ya n dv o i l a — t h eAs h o u l d b es i t t i n gj u s ta b o v et h e ' R E A D Y 'p r o m p t !

C O D E - T H EP R O G R A MC O U N T E R

I t s h o u l db e f a i r l yo b v i o u st h a t t h em a c h i n ec o d ew ew r i t eh a st o b e s t o r e ds o m e w h e r ei n

m e m o r y .I n a l l t h ep r o g r a m si n t h i sb o o kI h a v e u s e dt h eB A S I Cv a r i a b l e' C O D E 'a s a

p o i n t e rt o t h es t a r ta d d r e s so f t h em e m o r yw h e r et h em a c h i n ec o d ei s t o b e p l a c e d .( C O D E

a c t s , i n e f f e c t ,r a t h e rl i k et h e p r o c e s s o r ' so w nP r o g r a mC o u n t e r . )Y o um a yw i s ht o u s e

y o u ro w nv a r i a b l en a m e — a n dt h i si s p e r f e c t l ya c c e p t a b l e .F o re x a m p l e ,y o um a yc o n s i d e r

t h a tP Ci s a m o r ea p p r o p r i a t en a m ef o r t h es t a r to f t h ec o d e — o re v e nM A C H I N E C O D E .I t d o e sn o tr e a l l ym a t t e r .W h a td o e sm a t t e ri s t h a ty o us h o u l dg e t i n t o t h eh a b i to f u s i n g

t h es a m ev a r i a b l en a m ei n a l ly o u r p r o g r a m s ,a n dt h u sa v o i da m b i g u i t y .

T h ev a l u eg i v e nt o C O D Em u s tb e c h o s e nw i t hc a r e .I t w o u l db e e a s ye n o u g ht o a l l o c a t e

a n a d d r e s sw h i c hc a u s e st h e m a c h i n ec o d et o o v e r w r i t ea n o t h e rp r o g r a mo r e v e nt h e

a s s e m b l yp r o g r a mi t s e l f !I n P r o g r a m1 C O D Ei s s e t t o 8 2 8u s i n gt h en o r m a lv a r i a b l e

a s s i g n m e n ts t a t e m e n t :

C O D E= 8 2 8

a n dt h es i xb y t e so f m a c h i n ec o d ea r es t o r e dt h e r e — o rm o r ec o r r e c t l y — i nt h es i xb y t e ss t a r t

i n ga t 8 2 8( 8 2 8t o 8 3 3 ) .I f y o ul o o ka t F i g u r e5 . 1y o uw i l ln o t i c e t h a tt h i sa r e ai s i n t h et a p e

i n p u t / o u t p u tb u f f e r .T h et a p eb u f f e rc o m p r i s e sl o c a t i o n s8 2 8t o 1 0 1 9( $ 0 3 3 C - $ 0 3 F B ) ,

m a k i n ga t o t a lo f 1 9 2 b y t e sa v a i l a b l e f o rm a c h i n ec o d ep r o g r a m s( p r o v i d e d ,o fc o u r s e ,t h e

p r o g r a md o e sn o ta c c e s s t h ec a s s e t t e ,t h e r e b y o v e r w r i t i n gt h em a c h i n ec o d es t o r e di n t h e

b u f f e r ) .T h e r ea r ea l s on i n ef r e eb y t e sb e l o wt h et a p eb u f f e r — f r o m8 2 0( $ 0 3 3 4 )o n w a r d s .

A s P r o g r a m1 i s o n l ys i xb y t e s l o n g ,i t c o u l d b ep l a c e dt h e r e .

$ 0 3 F C

$ 0 3 3 4

F i g u r e5 . 1 P l a c em a c h i n ec o d ei n t a p eb u f f e r .

A s l i g h t l ym o r ec o m p l e xm e t h o do f r e s e r v i n gs p a c ei n v o l v e sr e s e t t i n gt h ev a l u eo f

M E M S I Z .T h i si s t h el a b e la s s o c i a t e dw i t hl o c a t i o n s5 5 ( $ 0 0 3 7 )a n d5 6 ( $ 0 0 3 8 ) ,w h i c h

h o l dt h ea d d r e s s o ft h eh i g h e s tm e m o r yl o c a t i o nt h a tm a yb eu s e db ya B A S I Cp r o g r a m .

B y r e s e t t i n gt h e s et w ol o c a t i o n s t op o i n tl o w e rd o w nt h em e m o r ym a p ,i t i s p o s s i b l et o

c r e a t es p a c ea b o v et h e B A S I Cu s e rR A Ma n db e l o wt h e S c r e e nR A Ma s s h o w ni n

F i g u r e5 . 2 .P r o g r a m2 i l l u s t r a t e sh o wt h i st e c h n i q u ec a nb e u s e d .

1 8

Page 26: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 26/180

7 6 8 0

7 4 2 4

4 0 9 6

S C R E E N

R A M

B A S I Cp r o g r a ma r e a

E x p a n s i o nR A M

D e f a u l tM E M S I Z

N e wM E M S I Z

F i g u r e5 . 2 P l a c em a c h i n ec o d ea b o v eM E M S I Z .

P r o g r a m2

1 0 R E M* * P L A C EM / C A B O V EM E M S I Z* *

2 0 R E M* * R E S E TM E M S I ZT O7 4 2 4

3 0 R E M* * W H I C HI S $ 1 D F F

4 0 P O K E5 5 ,0 : R E Ml o wb y t e

5 0 P O K E5 6 ,2 9 : R E Mh i g h b y t e

6 0 C L R : R E Mc l e a rs t a c k

7 0 C O D E= 7 4 2 5 : R E Ms e tP C

8 0 F O R L O O P= 0 T O5

9 0 ' R E A DB Y T E

1 0 0 P O K EC O D E+ L O O P ,B Y T E

1 1 0 N E X T L O O P

1 2 0 :

1 3 0 R E M* * M / CD A T A* *

1 4 0 D A T A1 6 9 , 1 4 7

: R E M$ A 9 ,$ 9 3

1 5 0 D A T A3 2 , 2 1 0 , 2 5 5: R E M$ 2 0 ,$ D 2 ,$ F F

1 6 0 D A T A9 6 : R E M$ 6 0

1 7 0 :

1 8 0 S Y SC O D E

A s a B A S I Cl o a d e rp r o g r a mi s b e i n gu s e d ,M E M S I Zc a nb e a l t e r e db y t h eB A S I C

— L D A# $ 9 3

— J S R6 5 4 9 0

— R T S

1 9

Page 27: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 27/180

p r o g r a mi t s e l f( l i n e s4 0 a n d5 0 ) . I fa p u r em a c h i n ec o d ep r o g r a mi s b e i n gl o a d e di n t o

m e m o r y ,M E M S I Zc a nb e a l t e r e di n I m m e d i a t eM o d eb y :

P O K E5 5 ,0

P O K E5 6 ,2 9

C L R

N o t et h a ti n b o t hi n s t a n c e sa C L Rc o m m a n di s a l s oe n t e r e d( l i n e6 0i n t h ep r o g r a m ) .T h i s

e n s u r e st h a ta n y' o l d 'B A S I Cs t a c kv a l u e sa r e e r a s e d ,a s a r e t h ep o i n t e r s a s s o c i a t e dw i t h

t h e m .T h e s ea r et h e nr e s e ta s r e q u i r e db y t h en e wv a l u eo f M E M S I Z .L i n e 7 0s e t sC O D Et o t h ev a l u eo f M E M S I Z+ 1 b e f o r et h eD A T Ai s R E A Da n dP O K E di n t ot h es p a c ew h i c h

h a sb e e nc r e a t e d .

Y o um a yw e l lb e w o n d e r i n gj u s tw h a tn e wv a l u es h o u l db e a s s i g n e dt o M E M S I Z .W e l l ,

t h i s w i l ld e p e n d o nt h el e n g t ho f t h em a c h i n ec o d ey o uw i s ht o p l a c ea b o v ei t .T h ef o r m u l a

i s s i m p l y :

7 6 8 0 -P r o g r a ml e n g t h

( w h e r e7 6 8 0i s t h e d e f a u l tv a l u eo f M E M S I Zi n a n u n e x p a n d e dV I C ) .I n g e n e r a l ,t h o u g h ,

i t i s b e s tt o a d ds e v e r a lb y t e st o t h ep r o g r a ml e n g t ht o b e s a f e .A l t e r n a t i v e l y ,j u s td e c i d e

o n a n a r b i t r a r ya m o u n to f m e m o r yt o k e e pc l e a ra n du s et h i sv a l u e .I n t h ea b o v ee x a m p l e

I d e c i d e dt o r e s e r v e2 5 6b y t e s ,t h e r e f o r et h en e wv a l u eo f M E M S I Zi s g i v e nb y :

7 6 8 0 - 2 5 6= 7 4 2 4

$ 1 E 0 0 - $ F F= $ 1 D 0 0

N e x tc o m e st h eq u e s t i o n o fh o wt o c a l c u l a t et h e i n d i v i d u a l b y t e v a l u e st o b e P O K E d

i n t ol o c a t i o n s5 5 a n d5 6 .I f w ea r ee n t e r i n gt h e md i r e c t l yi n h e xf o r m a t , t h e na l lw en e e dt o

d o i s t o s p l i tt h ea d d r e s si n t oi t s t w oc o n s t i t u t e n tb y t e sa n dP O K Et h e s ei n t om e m o r y .

H o w e v e r ,t h i si s n o tp o s s i b l ei n B A S I C ,s o w en e e dt o c a l c u l a t e t h ed e c i m a lv a l u eo f e a c h

b y t ea s f o l l o w s :

H i g hb y t e 7 4 2 5 / 2 5 6= 2 9

L o wb y t e 7 4 5 6 -( 2 9* 2 5 6 )= 0

T h el o wb y t e( 0 )i s P O K E d - i n t ol o c a t i o n5 5 a n dt h eh i g hb y t e( 2 9 ) i n t ol o c a t i o n5 6 .

O h ,b y t h ew a yt h i sp r o g r a mp r o d u c e sa 4 C L R '( l i n e1 4 0 ) ,w h i c hi s t h es a m ea s t h a t

o b t a i n e db y p r e s s i n gt h eS H I F Ta n dC L R / H O M Ek e y st o g e t h e r .T h eA S C I Ic o d ef o r

' C L R / H O M E 'i s 1 4 7 .( L i n e 1 5 0w i l lb e e x p l a i n e dl a t e r ! )

E N T E R I N GM A C H I N EC O D E

T h em o s to b v i o u sw a yo f e n t e r i n gm a c h i n ec o d ei s t o w r i t ea p r o g r a mt h a tj u s tc o n t a i n s

l i n ea f t e rl i n eo f P O K E s .P r o g r a m3 s h o w sh o wt h i sm e t h o dc a n b eu s e dt o p r o d u c ea

m a c h i n ec o d ep r o g r a mt h a ts w i t c h e so n t h er e v e r s ec h a r a c t e rm o d e .

P r o g r a m3

1 0 R E M* * R V SO NU S I N GP O K E s* *

2 0 R E M* * P L A C EM / CI N T A P EB U F F E R* *

3 0 P O K E8 2 8 , 1 6 9 : R E M$ A 9 — L D AS l o w e rc a s e '

4 0 P O K E8 2 9 , 1 4 : R E M$ 0 E

2 0

Page 28: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 28/180

5 0

6 0

7 0

8 0

9 0

P O K E8 3 0 , 3 2

P O K E8 3 1 , 2 1 0

P O K E8 3 2 , 2 5 5

P O K E8 3 3 , 9 6

S Y S8 2 8

: R E M$ 2 0

: R E M$ D 2

: R E M$ F F

: R E M$ 6 0

— J S R6 1 8 9 8

— R T S

T o s e e t h ee f f e c to f t h i s ,a d dt h ef o l l o w i n gl i n e sf r o mP r o g r a m1 t o w r i t ea n ' A 'o n t h e

s c r e e n :

7 2

7 4

7 6

7 8

8 0

8 2

P O K E8 3 3 , 1 6 9

P O K E8 3 4 , 6 5

P O K E8 3 5 , 3 2

P O K E8 3 6 , 2 1 0

P O K E8 3 7 , 2 5 5

P O K E8 4 0 , 9 6

R E M$ A 9

R E M$ 4 1

R E M$ 3 2

R E M$ D 2

R E M$ F F

R E M$ 6 0

— L D A# $ 4 1

— J S R6 5 4 9 0

— R T S

A s y o um a yb e b e g i n n i n gt o a p p r e c i a t e ,e n t e r i n gm a c h i n ec o d ei n t h i sm a n n e ri s

s o m e w h a tl a b o r i o u s ,p a r t i c u l a r l yw h e ni t i s a v e r yl o n gp r o g r a m .I n t h ee a r l i e rp r o g r a m s

t h em a c h i n ec o d ew a sp l a c e di n a s e r i e so f D A T As t a t e m e n t s ,w h i c hw e r es u b s e q u e n t l y

R E A Df r o mw i t h i na F O R. . . N E X Tl o o pa n dt h e nP O K E di n t om e m o r yu s i n gt h el o o p

c o u n t e r( L O O P )a s a n o f f s e tf r o mt h eb a s e a d d r e s s d e f i n e db y C O D E .T h i se n s u r e st h a t

e a c hb y t ei s p l a c e di n t oc o n s e c u t i v em e m o r yl o c a t i o n s .

N o t i c ea l s o ,t h a ti n e a c hp r o g r a m ,e v e r ym a c h i n ec o d eo p e r a t i o nw a sp l a c e di n a

s e p a r a t eD A T As t a t e m e n t ,a n d w a sa c c o m p a n i e db y a R E Ms t a t e m e n tg i v i n gt h es a m e

i n f o r m a t i o ni n b o t ht h eh e xa n dm n e m o n i cf o r m a t s ,f o re x a m p l e :

1 0 0 D A T A1 6 9 , 6 5 : R E M$ A 9 ,$ 4 1 — L D A# A S C( " A " )

T h eR E Mi t e m s a r ei n c l u d e df o rf l e x i b i l i t y .E a c ho ft h ep r o g r a m sc a nb ee n t e r e da n dR U Ne x a c t l y a si t s t a n d s ,t h u sa l l o w i n gy o ut o g e tp r o g r a m m i n gi n m a c h i n ec o d es t r a i g h t a w a y ;

h o w e v e r ,i f a t s o m et i m ei n t h e f u t u r ey o ui n v e s ti n a n A s s e m b l e rp r o g r a mt h e ny o u ' l ln e e d

t o k n o wt h em n e m o n i cv e r s i o n s .( T h eh e xv a l u e sa r ei n c l u d e df o r ar e a s o nt h a tw i l ls o o nb e c o m ea p p a r e n t ! )

I t i s a g o o di d e at o g e t i n t ot h eh a b i to f i n c l u d i n gt h i st y p eo f R E Ms t a t e m e n ti n t oy o u r

o w np r o g r a m ss i m p l y b e c a u s ei t a d d st o t h e p r o g r a m ' sr e a d a b i l i t y .I m a g i n eb e i n g

p r e s e n t e d w i t ha p r o g r a mt h a ti n c l u d e sa s i n g l eD A T As t a t e m e n t :

1 0 0 D A T A1 6 9 ,1 4 , 3 2 ,2 0 8 , 2 4 1 ,1 6 9 , 1 4 6 , 3 2 ,2 0 2 , 2 4 1 ,9 6

I t ' sn o tp a r t i c u l a r l y c l e a rw h a t ' sb e i n gp e r f o r m e d ,a n di f y o un e e dt o d e b u gi t , w e l l . . . !

O n ef i n a lp o i n tr e g a r d i n gt h el o o pc o u n t .T h i ss h o u l db e s e tt o t h et o t a ln u m b e ro fd a t a

b y t e sm i n u so n e .R e m e m b e rt h a tt h el o o pc o u n t e ri t s e l fm u s ta l w a y ss t a r ta t ' 0 ' t o e n s u r e

t h a tt h ev e r yf i r s tb y t ei s p l a c e da t t h ea d d r e s ss p e c i f i e db y C O D E= C O D E4 - L O O P=

8 2 8+ 0 = 8 2 8( i fC O D E= 8 2 8 ) .

I M P O R T A N T — D o n ' tR e a dT h i s

R i g h t ,n o wI h a v ey o u ru n d i v i d e da t t e n t i o nI m u s tm a k ea c o u p l e o fv e r yi m p o r t a n tp o i n t s

r e g a r d i n gt h eV I C ' sm e m o r yr e q u i r e m e n t s .F i r s t l y ,a l lt h ep r o g r a m sc o n t a i n e dw i t h i nt h i s

b o o kw i l lr u no n a n u n e x p a n d e d V I C ,t h a ti s , o n ei n w h i c hn o e x t r am e m o r yh a sb e e n

a d d e d .H o w e v e r ,i f y o ua r eu s i n ga n u n e x p a n d e dm a c h i n e ,I w o u l ds u g g e s tt h a ty o uo m i t

t h eR E Ms t a t e m e n t st h a tI s a i dy o us h o u l di n c l u d e am o m e n ta g o !R E Ms t a t e m e n t st e n d

t o e a tu p t h e a v a i l a b l em e m o r ya t a r a t eo f k n o t sa n dy o u ' l lf i n dy o uh a v en o n el e f tt o

f i n i s he n t e r i n gt h ep r o g r a m .

Y o uc a n k e e p y o u rp r o g r a m sf a i r l yr e a d a b l ei f y o uk e e pt o t h eo p e r a t i o np e rl i n e

s t r u c t u r e ,a s d e s c r i b e da b o v e ,a n dj u s ti n c l u d e af e wR E M sh e r ea n dt h e r e ,g i v i n ga b r i e f

2 1

Page 29: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 29/180

b u tc o n c i s e d e s c r i p t i o no ft h ef o l l o w i n gs e c t i o no fm a c h i n ec o d e .I f y o uh a v ea p r i n t e rt h e n

y o uc o u l do b t a i na h a r dc o p yo f t h ep r o g r a m a n d a d dt h eR E M sa f t e rt o k e e pa n o t eo f

t h e m , o rm o r es i m p l y ,k e e pa w r i t t e nc o p yi n a p r o g r a ml i b r a r yo f a l ly o u rm a c h i n ec o d e

p r o g r a m s .

S e c o n d l y ,a s y o ua d de x t r am e m o r yt h em e m o r ym a pg e t ss h u f f l e dt o a n df r oa b i t .F o r

e x a m p l e ,t h e s c r e e nm e m o r yi s m o v e df r o m7 6 8 0 - 8 1 9 1( $ 1 E 0 0 - $ 1 F F F )t o 4 0 9 6 - 4 6 0 7

( $1 0 0 0 - $1 I F F ) ,i f a n 8 Kb l o c ki s a d d e ds t a r t i n ga t 8 1 9 2( $ 2 0 0 0 ) .A s t h ep r o g r a m sh e r e i n

a r e w r i t t e nt o r u no n a n u n e x p a n d e d V I C , a n y p r o g r a m st h a ta c c e s st h es c r e e nm e m o r yd i r e c t l y ,b y p e e k i n g o rp o k i n gi t , w i l ln e e dt h ec o r r e s p o n d i n ga d d r e s s e sa l t e r e d ,t o e n a b l e

i t t o r u nc o r r e c t l yo n a V I Cw i t hm e m o r ye x p a n s i o n .A p p e n d i x5 d e t a i l st h eM e m o r y

M a p sa n dh o wt h e ya r ea l t e r e db y t h ea d d i t i o no f e x t r am e m o r y .P l e a s ec o n s u l tt h e s ei f

y o un e e dt o .

N o w ,o n w i t ht h ep r o g r a m m i n g !

T H EH E X L O A D E RP R O G R A M

A ne a s i e rm e t h o do f e n t e r i n gm a c h i n ec o d ei s t o u s ea m o n i t o r o rh e xl o a d e rp r o g r a m .T h i s

i s a p r o g r a mw h i c ha l l o w sm a c h i n ec o d et o b ee n t e r e da s a s e r i e so fh e xn u m b e r s .P r o g r a m4 i s a s i m p l ee x a m p l e .

P r o g r a m4

1 0 R E M* * V I C2 0 H E XL O A D E R **

2 0 P R I N T C H R $ (1 4 7 )

3 0 P R I N T" V I C2 0 M O N I T O R "

4 0 P R I N T: P R I N T

5 0 I N P U T" A S S E M B L YA D D R E S S " ;A D D R

6 0 R E M* * M A I NP R O G R A ML O O P* *

7 0 P R I N TA D D R ; ": $ " ; .

8 0 R E M* * G E TH I G HN I B B L EO F B Y T E* *

9 0 G O S U B 2 0 0 0

1 0 0 H I G H= N U M

1 1 0 P R I N TZ $ ;

1 2 0 R E M* * G E TL O WN I B B L EO F B Y T E* *

1 3 0 G O S U B 2 0 0 0

1 4 0 L O W= N U M

1 5 0 P R I N TZ $

1 6 0 R E M* * C A L C U L A T EB Y T EA N DU P D A T E* *

1 7 0 B Y T E= H I G H* 1 6 + L O W

1 8 0 P O K E A D D R ,B Y T E

1 9 0 A D D R=

2 0 0 G O T O7 0

3 0 0

5 0 0 R E M* * S U B R O U T I N E* *

2 0 0 0 G E T Z $

2 0 2 0 I F Z $ > " F "T H E NG O T O2 0 0 0

2 0 3 0 I FZ $ = " A "T H E NN U M= 1 0 : R E T U R N

2 2

Page 30: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 30/180

Page 31: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 31/180

r e s u l to f at y p i c a lm o n i t o rr u n .O n c ee n t e r e dt h em a c h i n ec o d ec a nb e t e s t e du s i n ga S Y S

c a l lt o t h ea d d r e s s o ft h ef i r s tb y t eo f m a c h i n ec o d e .

E n t e r i n gt h ea b o v es e q u e n c eo fh e xn u m b e r s a n dt y p i n gS Y S8 2 8w i l lp r i n ta n *A ' o nt h e

s c r e e n .

C A L L I N GM A C H I N EC O D E

T o e x e c u t ea m a c h i n ec o d ep r o g r a mt h e B A S I Cs t a t e m e n t ' S Y S 'i s u s e d .T o t e l lt h e

B A S I Ci n t e r p r e t e rj u s tw h e r et h em a c h i n ec o d ei s l o c a t e d ,t h eS Y Ss t a t e m e n tm u s tb e

f o l l o w e db y a l a b e lo r a n a d d r e s s .S o , t o e x e c u t e t h em a c h i n ec o d eg e n e r a t e db y t h e

a s s e m b l yl a n g u a g ep r o g r a mt y p ei n e i t h e r :

S Y SC O D E

w h i c hi s t h el a b e ln a m ew h i c hm a r k st h es t a r to f t h ea s s e m b l yl a n g u a g ep r o g r a m ,o r :

S Y S8 2 8

w h i c hi s t h es t a r ta d d r e s so f t h em a c h i n ec o d ei t s e l f .

G E T T I N GI T T A P E D

I t i s a v e r yg o o di d e a , a sa m a t t e ro f r o u t i n e , t og e ti n t o t h e h a b i to f s a v i n gy o u rm a c h i n e

c o d ep r o g r a m s o nt a p e b e f o r ey o ua c t u a l l yR U Nt h e m .T h i sm a ys e e ma b i tb a c kt o f r o n t

b e c a u s ey o un o r m a l l yw o u l dn o t d o t h i si n B A S I Cu n t i ly o u h a dR U N ,t e s t e da n d

d e b u g g e dt h ep r o g r a m .T h et r o u b l ew i t hr u n n i n ga m a c h i n ec o d ep r o g r a mf o r t h ef i r s t

t i m e ,t h o u g h ,i s t h a ti f i t d o e sc o n t a i na n yb u g si t c o u l dc a u s et h eV I C2 0 t o ' h a n g - u p ' ,a n d

t h eo n l yw a yo u to f t h i si s t o s w i t c ht h em i c r oo f fa n dt h e nb a c ko n ,a n ds t a r ta l l o v e r

a g a i n .I f y o u rm a c h i n ec o d ed o e sf a i li n t h i sw a y ,a n dy o u ' v es a v e di t o n t a p e ,a l ly o uh a v e

t o d o i s t o r e L O A Di t a n ds w a tt h eb u go u t !I f y o u rp r o g r a md o e s' h a n g - u p ' t h e nt r y

h i t t i n gt h e R E S T O R Ea n dR U N / S T O Pk e yt o g e t h e r ;t h i s w i l lo f t e n r e t u r ny o ut o t h e

s a f e t yo f B A S I C .

O n c et h ep r o g r a mi s f u l l yd e b u g g e di t i s p o s s i b l et o s a v ej u s tt h em a c h i n ec o d ei f s o

r e q u i r e d .W es h a l ll o o ka t h o wt o d o t h i si n C h a p t e r1 1 .

T H EK E R N A L

S u p p l i e dp r e - p a c k e dw i t h i ne v e r yV I C2 0 m i c r oi s a s e to f m a c h i n ec o d er o u t i n e sw h i c h

a r e a v a i l a b l ef o r u s ef r o mw i t h i nm a c h i n ec o d ep r o g r a m s .T h e s er o u t i n e sb e l o n gt o a

p a r to f t h eO p e r a t i n gS y s t e mc a l l e dt h e K e r n a l .T h e r ea r e3 6 r o u t i n e si n t o t a l ,b u tf o r t h e

p r e s e n tw e n e e do n l yc o n c e r no u r s e l v e sw i t ht h em o r ec o m m o n l yu s e d o n e sw h i c ha r e

s u m m a r i z e di n T a b l e5 . 1 .

T a b l e5 . 1

R o u t i n e

C H R I NC H R O U TG E T I N

S C N K E YS T O P

A d d r e s s

6 5 4 8 7( $ F F C F )

6 5 4 9 0( $ F F D 2 )

6 5 5 0 8( $ F F E 4 )

6 5 4 3 9( $ F F 9 F )6 5 5 0 5( $ F F E 1 )

O p e r a t i o n

I n p u tc h a r a c t e rf r o mc h a n n e l

O u t p u tc h a r a c t e rt o c h a n n e l

G e tc h a r a c t e rf r o mk e y b o a r dq u e u e

S c a n k e y b o a r dS c a nS T O Pk e y

W eh a v ea l r e a d yu s e dt h eC H R O U Tr o u t i n es e v e r a lt i m e st o w r i t e t h ec h a r a c t e ri n t h e

a c c u m u l a t o rt o t h es c r e e n .T h ei n s t r u c t i o nt a k e s t h ef o r mJ S R6 5 4 9 0 ;t h em n e m o n i c ' J S R '

s i m p l yt e l l st h e6 5 0 2m i c r o p r o c e s s o rt o j u m pt o t h ea d d r e s sg i v e n ,a n dt h e nc o m eb a c k

h e r ew h e nf i n i s h e d .T h i si s k n o w na s a ' s u b r o u t i n e ' — w h i c hw es h a l ll o o ka t i n d e t a i li n

C h a p t e r1 3 .

2 4

Page 32: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 32/180

6 S t a t u sS y m b o l s

T H ES T A T U SR E G I S T E R

T h eS t a t u sr e g i s t e ri s u n l i k et h ev a r i o u s' o t h e r 'r e g i s t e r so ft h e6 5 0 2 .W h e nu s i n gi t ,w ea r e

n o tr e a l l yc o n c e r n e dw i t ht h e a c t u a lh e xv a l u ei t c o n t a i n s ,b u tm o r ew i t ht h ec o n d i t i o n o r

s t a t eo f i t s i n d i v i d u a lb i t s .T h e s ei n d i v i d u a lb i t sa r e u s e dt o d e n o t eo r f l a gc e r t a i n

c o n d i t i o n sa s a n dw h e nt h e yo c c u rd u r i n gt h ec o u r s e o f ap r o g r a m .O ft h er e g i s t e r ' se i g h t

b i t s ,o n l ys e v e na r ei n u s e — t h er e m a i n i n gb i t ( b i t5 ) i s p e r m a n e n t l ys e t .( I no t h e rw o r d si t

a l w a y sc o n t a i n s a1 . )

F i g u r e6 . 1 s h o w st h ep o s i t i o no f t h ev a r i o u sf l a g s ,e a c h o fw h i c hi s n o wd e s c r i b e di n

d e t a i l .

V I V A A \ i \ j hC a r r y= 1 i f c a r r yo c c u r r e d .

Z e r o= 1 i f r e s u l tz e r o .

I R Q= 1 i f i n t e r r u p td i s a b l e d .

D e c i m a l= 1 i f u s i n gB C D .

B r e a k= 1 i f B R E A Ko c c u r e d .

N o tu s e d= 1 a l w a y s .

O v e r f l o w= 1 i f o v e r f l o wo c c u r r e d .

N e g a t i v e= 1 i f r e s u l tn e g a t i v e .

F i g u r e6 . 1 S t a t u sr e g i s t e rf l a g s .

B i t7 : T h eN e g a t i v ef l a g( N )

I n s i g n e db i n a r y ,t h eN e g a t i v ef l a gi s u s e dt o d e t e r m i n et h e s i g no f a n u m b e r .I f t h ef l a gi s

s e t( N = 1 ) t h er e s u l ti s n e g a t i v e .I f t h ef l a gi s c l e a r( N = 0 ) t h er e s u l ti s p o s i t i v e .

H o w e v e ra w h o l eh o s to f o t h e ri n s t r u c t i o n sc o n d i t i o nt h i sp a r t i c u l a rf l a g ,i n c l u d i n ga l l

t h ea r i t h m e t i ca n dl o g i c a l i n s t r u c t i o n s .I n g e n e r a l , t h em o s ts i g n i f i c a n tb i to f t h er e s u l to f

a n o p e r a t i o ni s c o p i e dd i r e c t l yi n t o t h eN f l a g .

C o n s i d e rt h ef o l l o w i n gt w oo p e r a t i o n s :

L D A# $ 8 0 \ l o a da c c u m u l a t o rw i t h$ 8 0

T h i sw i l l s e tt h eN e g a t i v ef l a g( N = 1 ) b e c a u s e$ 8 0= 1 0 0 0 0 0 0 0i n b i n a r y . A l t e r n a t i v e l y :

2 5

Page 33: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 33/180

L D A# $ 7 F \ l o a da c c u m u l a t o rw i t h$ 7 F

w i l lc l e a rt h eN e g a t i v ef l a g( N = 0 ) b e c a u s e$ 7 F= 0 1 1 1 1 1 1 1i n b i n a r y .T h e r ea r et w o

i n s t r u c t i o n sw h i c ha c to n t h es t a t eo f t h eN f l a g — t h e s ea r e :

B M I B r a n c ho n m i n u s( N = 1 )

B P L B r a n c ho n p l u s( N = 0 )

M o r eo n t h e s el a t e r .

B i t6 : T h eO v e r f l o wf l a g( V )

T h i sf l a gi s p r o b a b l yt h el e a s tu s e do fa l lt h e S t a t u sr e g i s t e rf l a g s .I t i su s e dt o i n d i c a t ei f a

c a r r yo c c u r r e df r o mb i t 6 d u r i n ga n a d d i t i o n ,o r i f a b o r r o wo c c u r r e dt o b i t 6 i n a

s u b t r a c t i o n .I f e i t h e ro f t h e s ee v e n t st o o kp l a c et h ef l a gi s s e t( V = 1 ) .

L o o ka t t h ef o l l o w i n gt w oe x a m p l e s :

F i r s t ,$ 0 9+ $ 0 7 :

( $ 0 9 ) 0 0 0 01 0 0 1

( $ 0 7 ) + 0 0 0 0 0 1 1 1

( $ 1 0 ) 0 0 01 0 0 0 0

" N oo v e r f l o wf r o mb i t6 t h e r e f o r eV = 0 .

S e c o n d ,$ 7 F+ $ 0 1 :

( $ 7 F ) 01 1 1 1 1 1 1

( $ 0 1 ) + 0 0 0 0 0 0 01

( $ 8 0 ) 1 0 0 0 0 0 0 0

* O v e r f l o wh a s o c c u r r e df r o mb i t6 t h e r e f o r eV = 1 .

I f w e w e r eu s i n g s i g n e db i n a r yt h i sa d d i t i o nw o u l dg i v ea r e s u l to f - 1 2 8 ,w h i c hi s o f

c o u r s ei n c o r r e c t .H o w e v e rt h i sf a c ti s f l a g g e da n ds o t h e r e s u l tc a nb e c o r r e c t e d a s

r e q u i r e d .

B i t5

T h i sb i t i s n o t u s e da n di s p e r m a n e n t l ys e t .

B i t4 : T h eB r e a kf l a g( B )

T h i sf l a gi s s e tw h e n e v e ra B R E A Ko c c u r s ,o t h e r w i s ei t w i l lr e m a i nc l e a r .T h i sm a ys e e ma

b i t o d da t f i r s t ,b e c a u s es u r e l yw e w i l lk n o ww h e na B R E A Ko c c u r s .H o w e v e r ,i t i s

p o s s i b l e t og e n e r a t ea B R E A Ke x t e r n a l l yb ys o m e t h i n gc a l l e da n I n t e r r u p t ,a n dt h i sf l a gi s

u s e dt o h e l pd i s t i n g u i s hb e t w e e nt h e s e* B R E A K s \

B i t3 : T h eD e c i m a lf l a g( D )

T h i sf l a gt e l l st h ep r o c e s s o rj u s tw h a tt y p eo f a r i t h m e t i ci s b e i n gu s e d .I f i t i s c l e a r e d( b y

C L D ) ,a s i s u s u a l ,t h e nn o r m a lh e x a d e c i m a lo p e r a t i o no c c u r s .I f s e t( b yS E D ) a l lv a l u e s

w i l lb e i n t e r p r e t e da s B i n a r yC o d e dD e c i m a l .

B i t2 : T h eI n t e r r u p tf l a g( I )

W e m e n t i o n e di n t e r r u p t sa b o v ei n t h ed e s c r i p t i o no f t h e B r e a kf l a g ,a n dt h e yw i l lb e

l o o k e da t i n m o r ed e t a i li n C h a p t e r2 2 .S u f f i c e t os a yn o w ,t h a tt h ef l a gi s s e t( I = 1 ) w h e n

t h e I R Qi n t e r r u p ti s d i s a b l e d ,a n di s c l e a r( I = 0 ) w h e nI R Qi n t e r r u p t sa r e p e r m i t t e d .

2 6

Page 34: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 34/180

B i t1 : H i eZ e r of l a g( Z )

A s i t sn a m ei m p l i e s ,t h ef l a gi s u s e dt o s h o ww h e t h e ro r n o tt h er e s u l to fa n o p e r a t i o ni s

z e r o .I f t h er e s u l ti s z e r ot h ef l a gi s s e t( Z= 1 ) ,o t h e r w i s ei t i sc l e a r e d( Z= 0 ) .I t i s t r u et o s a y

t h a t t h eZ e r of l a gi s c o n d i t i o n e db y t h es a m ei n s t r u c t i o n sa s t h eN e g a t i v ef l a g .E x e c u t i n g :

L D A# 0 \ l o a da c c u m u l a t o rw i t hz e r o

w i l ls e tt h eZ e r of l a g( Z = 1 ) b u t :

L D X# $ F A \ l o a dX r e g i s t e rw i t h$ F A

w i l lc l e a rt h eZ e r of l a g( Z = 0 ) .

B i t0 : T h eC a r r yf l a g( C )

W eh a v ea l r e a d y s e e nt h a ta d d i n gt w ob y t e s t o g e t h e rc a nr e s u l t i nc a r r i e so c c u r r i n gf r o m

o n eb i tt o a n o t h e r .W h a th a p p e n si f t h ec a r r yi s g e n e r a t e db yt h em o s ts i g n i f i c a n tb i t so fa n

a d d i t i o n ?

F o re x a m p l e ,w h e na d d i n g$ F F+ $ 8 0 :

( $ F F ) 1 1 1 1 1 1 1 1

( $ 8 0 ) + 1 0 0 0 0 0 0 0

( $ 7 F ) ( 1 ) 01 1 1 1 1 1 1

* "C a r r yo v e rf r o mb i t s7

t h er e s u l ti sj u s tt o ol a r g e f o r e i g h tb i t s ,a ne x t r an i n t hb i ti s r e q u i r e d .T h eC a r r yf l a ga c t sa s

t h i sn i n t hb i t .

I f t h eC a r r yf l a gi s c l e a ra t t h es t a r to fa n a d d i t i o n( C= 0 )a n ds e to nc o m p l e t i o n( C= 1 )

t h er e s u l ti s g r e a t e rt h a n2 5 5 .I t f o l l o w st h a ti f t h ef l a gi s s e t( C= 1 )b e f o r e as u b t r a c t i o na n dc l e a ro n c o m p l e t i o n( C = 0 ) ,t h ev a l u e b e i n g s u b t r a c t e dw a sl a r g e rt h a nt h eo r i g i n a l

v a l u e .T w oi n s t r u c t i o n sa r ea v a i l a b l ef o rd i r e c tu s eo n t h eC a r r yf l a g :

C L C C l e a rC a r r yf l a g( C = 0 )

S E C S e tC a r r yf l a g( C = 1 )

T w oi n s t r u c t i o n sa r e a l s op r o v i d e dt o a c to n t h ec o n d i t i o n o ft h eC a r r yf l a g .

B C C B r a n c ho n C a r r yc l e a r( C = 0 )

B C S B r a n c ho n C a r r ys e t( C = 1 )

2 7

Page 35: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 35/180

7 A d d r e s s i n gM o d e sI

T h e6 5 0 2h a s q u i t ea s m a l li n s t r u c t i o ns e t w h e nc o m p a r e dw i t hs o m eo f i t s f e l l o w

m i c r o p r o c e s s o r s — i nf a c ti t h a s ab a s i c c l i q u eo fj u s t5 6 i n s t r u c t i o n s .H o w e v e r ,m a n yo ft h e s ec a n b eu s e di n a v a r i e t yo fw a y s ,w h i c he f f e c t i v e l yi n c r e a s e s t h er a n g eo fo p e r a t i o n s

t o 1 5 2 .T h ew a yi n w h i c ht h e s ei n s t r u c t i o n sa r e i n t e r p r e t e di s d e t e r m i n e db yt h ea d d r e s s i n g

m o d eu s e d .T h ef o l l o w i n ge x a m p l e sa r ei n h e xf o r m a t .

A d d r e s s i n gm o d e

I m m e d i a t e

Z e r op a g e

Z e r op a g ei n d e x e dA b s o l u t e

I n d i r e c tp r e - i n d e x e d

I n d i r e c tp o s t - i n d e x e d

A b s o l u t ei n d e x e d

M n e m o n i ce x a m p l e

L D A# 2 5 5

L D A$ F B

L D A$ F B ,XL D A$ C D 0 0L D A( $ F B ,X )

L D A( $ F B ) ,YL D A$ C D 0 0 ,X

O p c o d e

A 9

A 5

B 5A DA l

B l

B D

O p e r a n d ( s )

F F

F B

F B0 0 C DF B

F B

0 0 C D

A l ls e v e n o ft h e s e i n s t r u c t i o n sl o a dt h ea c c u m u l a t o r — b u ti n e a c hc a s et h ed a t al o a d e di s

o b t a i n e df r o ma d i f f e r e n ts o u r c ea s d e f i n e db y t h eo p c o d e .T h i s ,a s y o um a yh a v en o t i c e d ,

i s d i f f e r e n ti n e a c hc a s e .

F o rt h e t i m eb e i n gw e s h a l lo n l y l o o ka t t h e f i r s tt w oo f t h e s ea d d r e s s i n gm o d e s ,

i m m e d i a t ea n dz e r op a g e ,b o t ho f w h i c hw e h a v eu s e ds e v e r a lt i m e sa l r e a d y .

Z E R OP A G EA D D R E S S I N G

Z e r o p a g ea d d r e s s i n gi s u s e dt o s p e c i f ya n a d d r e s si n t h ef i r s t2 5 6b y t e so fR A Mw h e r ed a t a

w h i c hh a st o b e l o a d e di n t oa s p e c i f i e dr e g i s t e rm a yb e l o c a t e d .B e c a u s et h eh i g hb y t eo f

t h ea d d r e s si s a l w a y s$ 0 0i t i s o m i t t e d ,a n dt h e r e f o r e t h e i n s t r u c t i o na n da d d r e s sr e q u i r e

j u s tt w ob y t e so f m e m o r y .

O p e r a t i o n :D A T A$ A 5 ,$ F B

L D A$ F B [

$ F C

$ F B

$ F A

A B

A 5 F B |

a c c u m u l a t o r

» l A n 1M A D 1

2 8

Page 36: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 36/180

I n t h ee x a m p l e ,L D A$ F B ,t h ec o n t e n t so f l o c a t i o n$ F B( i nt h i sc a s eS A B )a r el o a d e d

i n t o t h ea c c u m u l a t o r .

T h eu s eo f z e r op a g en e e d ss o m ec a r e a st h i sa r e ai s u s e db y t h eB A S I Ci n t e r p r e t e r a sa

s c r a t c h p a df o r s t o r i n ga d d r e s s e sa n dp e r f o r m i n gc a l c u l a t i o n s .H o w e v e r ,C o m m o d o r eh a v ek e p t af e wb y t e sc l e a rf o ru s t o u s ea s w ep l e a s e .T h e s eb y t e s a r e l o c a t e db e t w e e n2 5 1

( $ 0 0 F B )a n d2 5 4 ( $ F E )i n c l u s i v e ,a n da r eo f g r e a ti m p o r t a n c ea s w es h a l ls e el a t e ro n .T h e

i n s t r u c t i o n sa s s o c i a t e d w i t h z e r op a g ea d d r e s s i n ga r es h o w ni n T a b l e7 . 1 .

T a b l e7 . 1

A D CA N DA S L

B I T

C M PC P XC P Y

D E CE O RI N C

L D A

Z e r op a g ea d d r e s s i n g

A d dw i t hc a r r y

L o g i c a lA N DA r i t h m e t i cs h i f tl e f t

B i tt e s t

C o m p a r ea c c u m u l a t o rC o m p a r eX r e g i s t e r

C o m p a r eY r e g i s t e r

D e c r e m e n tm e m o r y

L o g i c a lE O RI n c r e m e n tm e m o r y

L o a da c c u m u l a t o r

i n s t r u c t i o n s

L D XL D YL S RO R A

R O LR O RS B CS T AS T X

S T Y

L o a dX r e g i s t e r

L o a dY r e g i s t e r

L o g i c a ls h i f tr i g h t

L o g i c a lO R

R o t a t el e f t

R o t a t er i g h t

S u b t r a c t w i t hc a r r y

S t o r ea c c u m u l a t o r

S t o r eX r e g i s t e r

S t o r eY r e g i s t e r

I M M E D I A T E A D D R E S S I N G

T h i sf o r mo f a d d r e s s i n gi s u s e dt o l o a dt h ea c c u m u l a t o ro r t h ei n d e xr e g i s t e r sw i t ha

s p e c i f i cv a l u ew h i c hi s k n o w na t t h et i m e o fw r i t i n g t h ep r o g r a m .T h e6 5 0 2k n o w sf r o mt h e

o p c o d et h a t t h eb y t e f o l l o w i n gi s i n a c t u a lf a c td a t aa n dn o ta n a d d r e s s .H o w e v e r ,t o

r e m i n du s o f t h ef a c t ,a n dt o a s s i s tu s w h e nw ea r e w r i t i n gt h ei n i t i a la s s e m b l e r ,w ec a n

p r e c e d et h ed a t ab y t e w i t ha h a ss i g n ,' # ' ( t h i ss h a r e st h e' 3 'k e yo n t h eV I C ' sk e y b o a r d ) .

O n l ys i n g l eb y t e v a l u e sc a nb e s p e c i f i e db e c a u s et h er e g i s t e rs i z ei s l i m i t e dt o j u s t e i g h t

b i t s .

I f w ew i s ho u rm a c h i n ec o d ep r o g r a mt o l o a dt h ea c c u m u l a t o rw i t h2 5 5 ,w ec a ni n c l u d e

t h ef o l l o w i n gt w o - b y t es e q u e n c ei n o u r p r o g r a m :

D A T A1 6 9 ,2 5 5 : R E M$ A 9 ,$ F F — L D A# $ F F

w h e r e1 6 9( $ A 9 )i s t h e ' l o a dt h ea c c u m u l a t o ri m m e d i a t e 1c o d e .

S i m i l a r l y ,t h eX a n dY r e g i s t e r sc a n b e l o a d e d i m m e d i a t e l yw i t h :

D A T A1 6 2 , 6 5 : R E M$ A 2 ,$ 4 1 — L D X# A S C ( " A " )

D A T A1 6 0 , 7 : R E M$ A 0 , $ 0 7 — L D Y# $ 0 7

W h e r e1 6 2 ( $ A 2 )a n d 1 6 0 ( $ A 0 )a r e t h e i m m e d i a t ec o d e sf o r l o a d i n gt h e X a n dY

r e g i s t e r s ,a n d6 5 ( $ 4 1 )i s t h eA S C I Ic o d ef o r t h el e t t e rA .

O p e r a t i o n :

L D A# $ F F | A 9 ] F F

A c c u m u l a t o r

2 9

Page 37: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 37/180

P r o g r a m5 u s e sb o t hz e r op a g ea n di m m e d i a t ea d d r e s s i n gt o p l a c ea ne x c l a m a t i o nm a r k

o n t h e s c r e e n .

P r o g r a m5

1 0 R E M* * Z E R O P A G EA N DI M M E D I A T EA D D R E S S I N G* *

2 0 C O D E= 8 2 8

3 0

4 0

5 0

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

1 5 0

F O R L O O P= 0 T O9

R E A DB Y T E

P O K EC O D E+ L O O P ,

N E X TL O O P

R E M* * M / CD A T A* *

D A T A1 6 2 , 3 3 :

D A T A1 3 4 , 2 5 1 :

D A T A1 6 5 , 2 5 1 :

D A T A3 2 , 2 1 0 , 2 5 5 :

D A T A9 6 :

S Y SC O D E

B Y T E

R E M$ A 2 ,$ 2 1

R E M$ 8 6 ,$ F B

R E M$ A 5 ,$ F B

R E M$ 2 0 ,$ D 2 ,$ F F

R E M$ 6 0

— L D X# A S C " ! "

— S T X$ F B

— L D A$ F B

— J S R$ F F D 2

— R T S

T h em e a n i n go f e a c hl i n ei s a s f o l l o w s :

L i n e2 0 A s s e m b l ei n c a s s e t t e b u f f e r .

L i n e s3 0 - 6 0R E A Da n dP O K Em a c h i n ec o d e .

L i n e9 0 L o a dX r e g i s t e rw i t hA S C I Ic o d ef o r ' ! ' .

L i n e1 0 0 S t o r eX r e g i s t e rc o n t e n t si n l o c a t i o n$ F B .

L i n e1 1 0 L o a da c c u m u l a t o rw i t hc o n t e n t so f l o c a t i o n$ F B .

L i n e1 2 0 J u m pt o s u b r o u t i n et o p r i n ta c c u m u l a t o r ' sc o n t e n t s .

L i n e1 3 0 R e t u r nt o B A S I C .

L i n e1 5 0 C a l lm a c h i n ec o d e .

3 0

Page 38: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 38/180

8 B i t sa n dB y t e s

L O A D ,S T O R EA N DT R A N S F E R

T o e n a b l em e m o r ya n dr e g i s t e rc o n t e n t st o b e a l t e r e da n dm a n i p u l a t e d ,t h r e es e t so f

i n s t r u c t i o n sa r ep r o v i d e d .

L o a di n s t r u c t i o n s

T h ep r o c e s so f p l a c i n gm e m o r yc o n t e n t si n t oa r e g i s t e ri s k n o w na s l o a d i n g ,s o m e

e x a m p l e so f w h i c hw e h a v ea l r e a d ys e e n .T o r e c a ph o w e v e r ,t h e s ea r e t h e t h r e el o a d

i n s t r u c t i o n s :

L D A L o a da c c u m u l a t o r

L D X L o a dX r e g i s t e r

L D Y L o a dY r e g i s t e r

A l lo f t h e s e i n s t r u c t i o n sm a yb e u s e dw i t hi m m e d i a t ea d d r e s s i n g ,b u tw h e nd e a l i n g w i t h

m e m o r yl o c a t i o n s ,i t i s m o r ec o r r e c t t os a yt h a t t h ec o n t e n t s o ft h e s p e c i f i e da d d r e s sa r e

c o p i e di n t o t h e p a r t i c u l a rr e g i s t e r ,a s t h es o u r c el o c a t i o ni s n o ta l t e r e di n a n yw a y .

F o re x a m p l e ,w i t hL D A$ 7 0 , t h ec o n t e n t so f l o c a t i o n$ 7 0( i nt h i sc a s eF A )a r ec o p i e d

i n t o t h ea c c u m u l a t o r ,l o c a t i o n$ 7 0i s n o ta l t e r e d :

$ 7 0 A c c u m u l a t o r

►F A F A

T h e N e g a t i v ea n d Z e r of l a g so f t h e S t a t u sr e g i s t e ra r e c o n d i t i o n e db y t h e l o a d

o p e r a t i o n .

S t o r ei n s t r u c t i o n s

T h er e v e r s ep r o c e s so f p l a c i n ga r e g i s t e r ' sc o n t e n t si n t oa m e m o r yl o c a t i o n ,i s k n o w na s

s t o r i n g .T h e r ea r e t h r e es t o r e i n s t r u c t i o n s :

S T A S t o r ea c c u m u l a t o r

S T X S t o r eX r e g i s t e r

S T Y S t o r eY r e g i s t e r

T h er e g i s t e rv a l u ei s u n a l t e r e da n d n of l a g sa r ec o n d i t i o n e d .

3 1

Page 39: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 39/180

E x a m p l e :

L D A # 0

S T A$ 1 5 0 0

A c c u m u l a t o r $ 1 5 0 0

0 0

T r a n s f e ri n s t r u c t i o n s

I n s t r u c t i o n sa r e p r o v i d e dt o a l l o wt h e c o n t e n t so f o n e r e g i s t e rt o b e c o p i e di n t o

a n o t h e r — t h i si s k n o w na s t r a n s f e r r i n g .T h eN e g a t i v ea n dZ e r of l a g sa r ec o n d i t i o n e d

a c c o r d i n gt o t h ed a t ab e i n gt r a n s f e r r e d .T h e r ea r ef o u ri n s t r u c t i o n sc o n t r o l l i n gt r a n s f e r s

b e t w e e nt h ei n d e xr e g i s t e r sa n dt h ea c c u m u l a t o r .

T X A T r a n s f e rX r e g i s t e rt o a c c u m u l a t o r

T A X T r a n s f e ra c c u m u l a t o rt o X r e g i s t e r

T Y A T r a n s f e rY r e g i s t e rt o a c c u m u l a t o r

T A Y T r a n s f e ra c c u m u l a t o rt o Y r e g i s t e r

E x a m p l e :

L D A# $ F F

T A Y

T A X

Y r e g i s t e r

A c c u m u l a t o r

U n f o r t u n a t e l y ,y o uc a n n o tt r a n s f e rd i r e c t l yb e t w e e nt h eX a n dY r e g i s t e r s ,y o uh a v et o

u s et h ea c c u m u l a t o ra s a n i n t e r m e d i a t es t o r e .

Y T O XT Y A

T A X

S i m i l a r l y :

X T O Y T X A

T A Y

\ Y i n t oa c c u m u l a t o r

\ a c c u m u l a t o ri n t oX

\ X i n t oa c c u m u l a t o r

\ a c c u m u l a t o ri n t oY

T h i sf o r mo f s i n g l eb y t e o p e r a t i o ni s k n o w na s i m p l i e d a d d r e s s i n gb e c a u s et h e

i n f o r m a t i o ni s c o n t a i n e dw i t h i nt h ei n s t r u c t i o ni t s e l f .

3 2

Page 40: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 40/180

X

r e g i s t e r

>

T A X

>

T X A

f

A c c u m u l a t o r

>

T Y A

>

T A Y

f

Y

r e g i s t e r

S T X

L D X

S T A

L D A

S T Y

L D Y

M e m o r y

F i g u r e8 . 1 L o a d ,s t o r ea n dt r a n s f e r i n s t r u c t i o nf l o w .

P A G I N GM E M O R Y

W eh a v es e e nt h a t t h eP r o g r a mC o u n t e rc o n s i s t so ft w oe i g h tb i tr e g i s t e r s ,g i v i n ga t o t a lo f

1 6b i t s .I f a l lt h e s eb i t sa r es e t ,1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ,t h ev a l u eo b t a i n e di s 6 5 5 3 6o r $ F F F F .

T h e r e f o r et h em a x i m u ma d d r e s s i n gr a n g eo f t h e6 5 0 2i s $ 0 0 0 0t h r o u g ht o $ F F F F .T h i s

r a n g e o fa d d r e s s e si s i m p l e m e n t e da s a s e r i e so fp a g e sa n dt h ep a g en u m b e ri s g i v e nb yt h e

c o n t e n t so f P C H .I t f o l l o w st h a tP C Lh o l d st h ea d d r e s s o ft h el o c a t i o no n t h a t p a r t i c u l a r

p a g e .

A s F i g u r e8 . 2i l l u s t r a t e s ,e a c hp a g eo f m e m o r yc a nb e l i k e n e dt o a p a g eo f a b o o k .T h i s

b o o k ,c a l l e d' V I C ' sM e m o r y ' ,h a s2 5 6p a g e sl a b e l l e di n h e x f o r m a tf r o m$ 0 0t o $ F F .

E a c hi n d i v i d u a lp a g ei s r u l e di n t o2 5 6l i n e sw h i c hi n t u r na r el a b e l l e d( f r o mt o pt o b o t t o m )

$ 0 0t o $ F F .

T h u st h ea d d r e s s$ F F F Fr e f e r st o l i n e$ F Fo n p a g e$ F F ,t h ev e r yl a s tl o c a t i o ni n t h e

V I C sm e m o r ym a p !U n l i k ec o n v e n t i o n a lb o o k s ,' V I C sM e m o r y 'b e g i n sw i t hp a g e$ 0 0w h i c hi s k n o w nm o r ea f f e c t i o n a t e l ya s z e r o p a g e .O w i n gt o t h e6 5 0 2 ' sd e s i g n z e r op a g e

i s v e r yi m p o r t a n t ,a s w es h a l l s e ew h e n w et a k ea f u r t h e rl o o ka t a d d r e s s i n gm o d e si n t h e

n e x t c h a p t e r .

3 3

Page 41: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 41/180

P a g e $ F F J

F i g u r e8 . 2 P a g e so f ' V I C sM e m o r y ' .

A l t h o u g hw e h a v er e f e r r e dt o t h eV I C ' sm e m o r ym a pa s a s e r i e so f p a g e s ,i t i s m o r e

f r e q u e n t l y t a l k e do f i n t e r m so f * K \T h et e r m* K 'i s s h o r tf o rk i l o ,b u tu n l i k ei t s m e t r i c

c o u n t e r p a r t ,o n ek i l oo f m e m o r y ,o r ak i l o b y t e , c o n s i s t so f 1 0 2 4b y t e sa n dn o t 1 0 0 0b y t e s .

T h i ss l i g h t l yh i g h e r v a l u ei s c h o s e nb e c a u s ei t i s d i v i s i b l eb y 2 5 6a n dc o r r e s p o n d st o

e x a c t l yf o u rp a g e so f m e m o r y( 4 X 2 5 6= 1 0 2 4 ) .T h et o t a lm e m o r ym a pt h e r e f o r e

e n c o m p a s s e s6 4 Kb e c a u s e6 5 5 3 6 / 1 0 2 4= 6 4 !

3 4

Page 42: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 42/180

9 A r i t h m e t i ci n A s s e m b l e r

W ec a nn o wp u ts o m eo f t h e b a s i c p r i n c i p l e sw eh a v ee n c o u n t e r e di n t h eo p e n i n gc h a p t e r s

t o s o m e m o r es e r i o u su s e — t h ea d d i t i o na n d s u b t r a c t i o no f n u m b e r s . T h e s et w o

p r o c e d u r e sa r ef u n d a m e n t a lt o a s s e m b l yl a n g u a g ea n dw i l lg e n e r a l l yf i n dt h e i rw a yi n t o

m o s tp r o g r a m s .

A D D I T I O N

T w oi n s t r u c t i o n sf a c i l i t a t ea d d i t i o n ,t h e ya r e :

C L C C l e a rC a r r yf l a g

A D C A d dw i t h c a r r y

T h ef i r s to f t h e s ei n s t r u c t i o n s ,C L C ,s i m p l yc l e a r st h e C a r r yf l a g( C = 0 ) . T h i sw i l l

g e n e r a l l yb e p e r f o r m e da t t h e v e r y o n s e to f a d d i t i o n ,b e c a u s et h e a c t u a la d d i t i o n

i n s t r u c t i o n ,A D C ,p r o d u c e st h es u mo f t h ea c c u m u l a t o r ,t h em e m o r yb y t er e f e r e n c e da n d

t h eC a r r yf l a g .T h er e a s o nf o rd o i n gt h i sw i l lb e c o m ec l e a r e ra f t e rw eh a v e l o o k e da t s o m e

s i m p l ea d d i t i o np r o g r a m s .E n t e rP r o g r a m6 .

P r o g r a m

1 0

2 0

3 0

4 0

5 0

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

6

R E M* * S I M P L EA D D*

C O D E= 8 2 8

F O RL O O P= 0 T O7

R E A DB Y T E

P O K EC O D E+ L O O P ,

N E X TL O O P

R E M* * M / CD A T A* *

D A T A2 4 :

D A T A1 6 9 , 7

D A T A1 0 5 , 3 :

D A T A1 3 3 , 2 5 1 :

D A T A9 6 :

B Y T E

R E M$ 1 8

R E M$ A 9 ,$ 0 7

R E M$ 6 9 ,$ 0 3

R E M$ 8 5 ,$ F B

R E M$ 6 0

— C L C

— L D A# $ 0 7

— A D C# $ 0 3

— S T A$ F B

— R T S

3 5

Page 43: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 43/180

1 5 0 S Y S C O D E

1 6 0 P R I N T" A N S W E RI S : " ;

1 7 0 P R I N TP E E K ( 2 5 1 )

A sy o uc a ns e e , t h i sp r o g r a ml o a d s7 i n t ot h ea c c u m u l a t o ru s i n gi m m e d i a t ea d d r e s s i n g .

I m m e d i a t ea d d r e s s i n gi s u s e da g a i ni n l i n e1 1 0t o a d d3 t o t h ea c c u m u l a t o rv a l u e .T h e

r e s u l t ,w h i c hi s i n t h ea c c u m u l a t o r ,i s t h e ns t o r e da t l o c a t i o n 2 5 1 .L i n e1 5 0 e x e c u t e st h ea s s e m b l e dm a c h i n ec o d e ,a n dt h er e s u l t( i fy o u ' r eq u i c kw i t hy o u rf i n g e r s y o u ' l lk n o wi t s

1 0 ! )i s p r i n t e do u t .R U Nt h ep r o g r a mt o s e ei t se f f e c tt h e nt r ys u b s t i t u t i n gy o u ro w nv a l u e s

i n l i n e s1 0 0a n d1 1 0 .

R e - t y p el i n e9 0 t h u s :

9 0 D A T A5 6 : R E M$ 3 8 — S E C

A s y o up r o b a b l yr e a l i z e ,t h eC a r r yf l a gw i l ln o wb e s e t( C= 1 ) w h e nt h ep r o g r a mi s n e x t

e x e c u t e d .R e s e tl i n e s1 0 0a n d1 1 0( i fy o uh a v ea l t e r e dt h e m ) ,a n dR U Nt h ep r o g r a ma g a i n .

T h er e s u l ti s n o w1 1 . T h e r e a s o nb e i n gt h a tt h e C a r r yf l a g ' sv a l u ei s t a k e ni n t o

c o n s i d e r a t i o nd u r i n gA D C( a d dw i t hc a r r y )a n dt h i st i m ei t s v a l u ei s 1 .

A c c u m u l a t o r+ m e m o r y+ c a r r y = r e s u l t

C L C 7 + 3 + 0 = 1 0

S E C 7 + 3 4 - 1 = 1 1

A g a i ny o um i g h tl i k et o t r yy o u ro w ni m m e d i a t ev a l u e s — y o u ' l lf i n d t h er e s u l ti s a l w a y so n eg r e a t e rt h a ne x p e c t e d .

T h i sp r o g r a mi s q u i t ew a s t e f u lb o t hi n t e r m so f m e m o r yu s e da n dt i m e t a k e nf o r

e x e c u t i o n .I f w ek n o wt h e v a l u e st o b ea d d e dt o g e t h e rb e f o r e h a n d ,t h e ni t i s m o r ee f f i c i e n t

t o a d d t h e mt o g e t h e rf i r s t .T h e m a c h i n e c o d ep a r to f t h e p r o g r a mc a n t h e nb e

i n c o r p o r a t e di n t o j u s tt w ol i n e s :

L D A# 1 0 \ p l a c e1 0 ( 7 + 3 ) i n t oa c c u m u l a t o r

S T A$ F B \ s t o r ea c c u m u l a t o r

P r o g r a m7 i s a g e n e r a lp u r p o s es i n g l eb y t e a d d i t i o np r o g r a m .

P r o g r a m7

1 0 R E M* * S I N G L EB Y T EA D D* *

2 0 C O D E= 8 2 8

3 0

4 0

5 0

6 0

7 0

8 0

9 0

F O R L O O P= 0 T O 7

R E A DB Y T E

P O K EC O D E+ L O O P ,

N E X TL O O P

R E M* * M / CD A T A* *

D A T A2 4 :

B Y T E

R E M5 — C L C

1 0 0 D A T A1 6 5 , 2 5 1 : R E M$ A 5 ,$ F B — L D A$ F B

1 1 0 D A T A1 0 1 , 2 5 2 : R E M$ 6 5 ,$ F C — A D C$ F C

1 2 0 D A T A1 3 3 , 2 5 3 : R E M$ 8 5 ,$ F D — S T A $ F D

1 3 0 D A T A9 6 : R E M$ 6 0 — R T S

3 6

Page 44: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 44/180

1 4 0

1 5 0 P R I N TC H R $ ( 1 4 7 )

1 6 0 P R I N T" S I N G L EB Y T EA D DD E M O "

1 7 0 P R I N T: P R I N T

1 8 0 I N P U T" F I R S TN U M B E R " ; A

1 9 0 I N P U T" S E C O N DN U M B E R " ; B

2 0 0 P O K E2 5 1 ,A : P O K E2 5 2 ,B

2 1 0 S Y S C O D E

2 2 0 P R I N T" A N S W E RI S : " ;

2 3 0 P R I N TP E E K ( 2 5 3 )

R U Nt h e p r o g r a ma f e wt i m e se n t e r i n gl o wn u m e r i c a lv a l u e si n r e s p o n s et o t h e

p r o g r a m ' s p r o m p t s .

N o we n t e r1 2 8a n d1 2 8a s y o u ri n p u t s .T h er e s u l ti s 0 , w h y ? T h er e a s o ni s t h a tt h e

a n s w e r ,2 5 6 ,i s t o ob i gt o b e h e l di n a s i n g l eb y t e :

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

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

2 5 6 $ 1 0 0 ( 1 ) 0 0 0 0 00 0 0

a n da s c a nb e s e e n ,a c a r r yh a sb e e np r o d u c e db y t h eb i to v e r f l o wf r o ma d d i n gt h et w o

m o s ts i g n i f i c a n tb i t s .A st h eC a r r yf l a gw a si n i t i a l l yc l e a r e db e f o r et h ea d d i t i o n ,i t w i l ln o w

b e s e t ,s i g n a l l i n gt h ef a c t t h a tt h er e s u l ti s t o ol a r g ef o r as i n g l e b y t e .T h i sp r i n c i p l ei s u s e dw h e n s u m m i n gm u l t i b y t en u m b e r s ,a n di s i l l u s t r a t e db yP r o g r a m

8 w h i c ha d d st w od o u b l eb y t en u m b e r s .

P r o g r a m8

1 0

2 0

3 0

4 0

5 0

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

1 5 0

1 6 0

1 7 0

1 8 0

R E M*

C O D E

* D O U B L E

= 8 2 8

F O RL O O P= 0 T O

R E A DB Y T E

P O K EC O D E+

N E X TL O O P

R E M *

D A T A

D A T A

D A T A

D A T A

D A T A

D A T A

D A T A

D A T A

P R I N T

B Y T EA D D*

1 3

L O O P ,B Y T E

* M / CD A T A* *

2 4

1 6 5 , 2 5 1

1 0 1 , 2 5 3

1 3 3 , 2 5 1

1 6 5 , 2 5 2

1 0 1 " , 2 5 4

1 3 3 , 2 5 2

9 6

C H R $ ( 1 4 7 )

R E M$ 1 8

R E M$ A 5 ,

R E M$ 6 5 ,

R E M$ 8 5 ,

R E M$ A 5 ,

R E M$ 6 5 ,

R E M$ 8 5 ,

: R E M$ 6 0

$ F B

$ F D

$ F B

$ F C

$ F E

$ F C

— C L C

— L D A$ F B

— A D C$ F D

— S T A$ F B

— L D A$ F C

— A D C$ F E

— S T A$ F C

— R T S

3 7

Page 45: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 45/180

1 9 0 P R I N T" D O U B L EB Y T EA D DD E M O "

2 0 0 P R I N T: P R I N T

2 1 0 I N P U T" F I R S TN U M B E R " ; A

2 2 0 R E MC A L C U L A T E H I G HA N DL O WB Y T E

2 3 0 A H= I N T ( A / 2 5 6 )

2 4 0 A L= A - ( A H* 2 5 6 )

2 5 0 I N P U T" S E C O N DN U M B E R " ; B

2 6 0 R E MC A L C U L A T E H I G HA N DL O WB Y T E

2 7 0 B H= I N T ( B / 2 5 6 )

2 8 0 B L= B - ( B H* 2 5 6 )

2 9 0 P O K E2 5 1 ,A L :P O K E2 5 2 ,A H

3 0 0 P O K E2 5 3 ,B L : P O K E2 5 4 ,B H

3 1 0 S Y S C O D E

3 2 0 L O W= P E E K ( 2 5 1 ) :H I G H= P E E K ( 2 5 2 )

3 3 0 R E S U L T= H I G H* 2 5 6+ L O W

3 4 0 P R I N T" A N S W E RI S : " ;

3 5 0 P R I N TR E S U L T

T h em e a n i n go f e a c hl i n ei s a s f o l l o w s :

l i n e2 0 A s s e m b l e c o d ei n c a s s e t t e b u f f e r .

L i n e s3 0 - 6 0 R E A Da n dP O K Em a c h i n ec o d ed a t a .

L i n e9 0 C l e a rC a r r yf l a g .

L i n e1 0 0 G e t l o wb y t eo f f i r s tn u m b e r ,A L .

L i n e1 1 0 A d di t t o l o wb y t eo f s e c o n dn u m b e r ,B L .

L i n e1 2 0 S t o r el o wb y t eo f r e s u l t .

L i n e1 3 0 G e th i g hb y t eo f f i r s tn u m b e r ,A H .

L i n e1 4 0 A d di t t o h i g hb y t eo f s e c o n dn u m b e r ,B H .

L i n e1 5 0 S t o r eh i g hb y t eo f r e s u l t .

L i n e1 6 0 R e t u r nt o B A S I C .

L i n e s1 8 0 - 1 9 0C l e a rs c r e e na n dp r i n tt i t l e .

L i n e2 1 0 I n p u tf i r s tn u m b e r .L i n e2 3 0 C a l c u l a t eh i g hb y t e v a l u eo f A .

L i n e2 4 0 C a l c u l a t el o wb y t ev a l u eo f A .

L i n e2 5 0 I n p u ts e c o n dn u m b e r .

L i n e2 7 0 C a l c u l a t eh i g hb y t ev a l u eo f B .

L i n e2 8 0 C a l c u l a t el o wb y t e v a l u e o fB .

L i n e s2 9 0 - 3 0 0P O K Eh i g ha n dl o wb y t ev a l u e so f A , B i n t om e m o r y .

L i n e3 1 0 E x e c u t em a c h i n ec o d e .

L i n e3 2 0 G e tl o wa n dh i g hb y t e s o ft h er e s u l t .

L i n e3 3 0 C a l c u l a t er e s u l t .

L i n e s3 4 0 - 3 5 0P r i n tr e s u l t .

T h i sr o u t i n ew i l lp r o d u c ec o r r e c tr e s u l t sf o ra n yt w on u m b e r s w h o s es u mi s n o tg r e a t e r

t h a n6 5 5 3 6( $ F F F F )w h i c hi s t h e h i g h e s tn u m e r i c a lv a l u et h a tc a nb e h e l di n t w ob y t e so f

m e m o r y .

N o t et h a t t h eC a r r yf l a gi s c l e a r e da t t h e o n s e to f t h em a c h i n e c o d ei t s e l f .I f a n yc a r r y

s h o u l d o c c u rw h e na d d i n gt h et w o l o wb y t e s t o g e t h e r ,i t w i l lb e t r a n s f e r r e do v e rt o t h e

a d d i t i o no f t h et w oh i g hb y t e s .

3 8

Page 46: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 46/180

Page 47: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 47/180

R U Nt h ep r o g r a ma n di n p u ty o u ro w nv a l u e st o s e et h er e s u l t s .

Y o um a yw e l lb e w o n d e r i n gw h yt h eC a r r yf l a gi s s e tb e f o r e a s u b t r a c t i o nr a t h e rt h a n

c l e a r e d .R e f e r r i n gb a c kt o C h a p t e r3 , y o uw i l l r e c a l lt h a t t h es u b t r a c t i o nt h e r ew a s

p e r f o r m e db y a d d i n gt h et w o ' sc o m p l e m e n tv a l u e .T h i si s f o u n db y f i r s ti n v e r t i n ga l lt h e

b i t st o o b t a i nt h eo n e ' sc o m p l e m e n t ,a n dt h e na d d i n g1 . T h e6 5 0 2o b t a i n e dt h e1 t o b e

a d d e dt o t h e o n e ' sc o m p l e m e n tf o r m ,f r o mt h eC a r r yf l a g .T h u sw e c a ns a y :

1 . I f t h eC a r r yf l a gi s s e ta f t e rS B C ,t h er e s u l ti s p o s i t i v eo r z e r o .

2 . I f t h eC a r r yf l a gi s c l e a ra f t e rS B C ,t h er e s u l ti s n e g a t i v ea n da b o r r o wh a so c c u r r e d .

T r y c h a n g i n gl i n e9 0 t o D A T A2 4 : R E M$ 1 8 — C L Ca n dr e - R U Nt h ep r o g r a m .N o wy o u rr e s u l t sa r eo n el e s st h a ne x p e c t e d — t h er e a s o nb e i n gt h a tt h et w o ' sc o m p l e m e n t w a s

n e v e ro b t a i n e db y t h e6 5 0 2 ,b e c a u s eo n l ya ' 0 'w a sa v a i l a b l ei n t h eC a r r yf l a gt o b e a d d e d

t o t h e o n e ' sc o m p l e m e n tv a l u e .

T o s u b t r a c td o u b l eb y t en u m b e r st h eC a r r yf l a gi s s e ta t t h ee n t r yt o t h e r o u t i n e ,a n dt h e

r e l a t i v eb y t e sa r e s u b t r a c t e da n ds t o r e d .T h er e s u l t i n gp r o g r a ml o o k ss o m e t h i n gl i k e

t h i s :

P r o g r a m1 0

1 0 R E M* * D O U B L EB Y T E S U B T R A C T I O N* *

2 0

3 0

4 0

5 0

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

1 5 0

1 6 0

1 7 0

1 8 0

1 9 0

2 0 0

2 1 0

2 2 0

2 3 0

2 4 0

2 5 0

2 6 0

C O D E= 8 2 8

F O R L O O P= 0 T O 1 3

R E A DB Y T E

P O K EC O D E+ L O O P ,B Y T E

N E X TL O O P

R E M* * M / CD A T A* *

D A T A5 6

D A T A1 6 5 , 2 5 1

D A T A2 2 9 , 2 5 3

D A T A1 3 3 , 2 5 1

D A T A1 6 5 , 2 5 2

D A T A2 2 9 , 2 5 4

D A T A1 3 3 , 2 5 2

D A T A9 6

R E M$ 3 8

R E M$ A 5 ,$ F B

R E M$ E 5 ,$ F D

R E M$ 8 5 ,$ F B

R E M$ A 5 ,$ F C

R E M$ E 5 ,$ F E

: R E M$ 8 5 ,$ F C

: R E M$ 6 0

P R I N TC H R $ ( 1 4 7 )

I N P U T" H I G H E S TN U M B E R " ; A

I N P U T" L O W E S TN U M B E R " ; B

R E MC A L C U L A T E H I G HA N D L O W

A H= I N T ( A/ 2 5 6 )

A L= A - ( A H* 2 5 6 )

B H= I N T ( B/ 2 5 6 )

B L= B - ( B H* 2 5 6 )

P O K E2 5 1 ,A L : P O K E2 5 2 ,A H

— S E C

— L D A$ F B

— S B C$ F D

— S T A$ F B

— L D A$ F C

— S B C$ F E

— S T A$ F C

— R T S

B Y T E S

2 7 0 P O K E2 5 3 ,B L : P O K E2 5 4 ,B H

4 0

Page 48: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 48/180

2 8 0 S Y S C O D E

2 9 0 L O W= P E E K ( 2 5 1 ) :H I G H= P E E K ( 2 5 2 )

3 0 0 R E S U L T= H I G H* 2 5 6+ L O W

3 1 0 P R I N T" A N S W E RI S " ;

3 2 0 P R I N TR E S U L T

T h em e a n i n go f e a c hl i n ei s a s f o l l o w s :

L i n e s2 0 - 6 0 A s s e m b l em a c h i n ec o d e .

L i n e9 0 S e t t h eC a r r yf l a g .

L i n e1 0 0 L o a dl o wb y t eo f h i g hn u m b e ri n t oa c c u m u l a t o r .

L i n e1 1 0 S u b t r a c tl o wb y t eo f l o wn u m b e rf r o mi t .

L i n e1 2 0 S a v el o wb y t e o fr e s u l t i n$ F B .

L i n e 1 3 0 L o a dh i g hb y t eo f h i g hn u m b e ri n t oa c c u m u l a t o r .

L i n e1 4 0 S u b t r a c th i g hb y t eo f l o wn u m b e rf r o mi t .

L i n e 1 5 0 S a v eh i g hb y t eo f r e s u l ti n $ F C .

L i n e 1 6 0 B a c kt o B A S I C .

L i n e s1 8 0 - 2 0 0G e tt w on u m b e r s .

L i n e s2 2 0 - 2 7 0C a l c u l a t ea n ds t o r eh i g ha n d l o wb y t e s .

L i n e2 8 0 C a l lm a c h i n ec o d e .

L i n e s2 9 0 - 3 0 0C a l c u l a t ef i n a lr e s u l t .

L i n e s3 1 0 - 3 2 0P r i n tt h ea n s w e r .

N E G A T I O N

T h eS B Ci n s t r u c t i o nc a n b e u s e dt o c o n v e r ta n u m b e ri n t oi t s t w o ' sc o m p l e m e n tf o r m .

T h i si s d o n eb y s u b t r a c t i n gt h e n u m b e rt o b e c o n v e r t e d ,f r o mz e r o .T h ef o l l o w i n g

p r o g r a ma s k sf o ra d e c i m a lv a l u e( l e s st h a n2 5 5 )a n dp r i n t si t st w o ' sc o m p l e m e n tv a l u ei n

h e x :

P r o g r a m1 1

1 0 R E M* * T W O ' SC O M P L E M E N TC O N V E R T E R* *

2 0 C O D E= 8 2 8

3 0 F O RL O O P= 0 T O 7

4 0 R E A DB Y T E

5 0 P O K EC O D E+ L O O P ,B Y T E

6 0 N E X TL O O P

7 0

8 0 R E M* * M / CD A T A* *

9 0 D A T A5 6 : R E M$ 3 8 — S E C

1 0 0 D A T A1 6 9 , 0 : R E M$ A 9 ,$ 0 0 — L D A# 0

1 1 0 D A T A2 2 9 , 2 5 1 : R E M$ E 5 ,$ F B — S B C$ F B

1 2 0 D A T A1 3 3 , 2 5 2 : R E M$ 8 5 ,$ F C — S T A$ F C

1 3 0 D A T A9 6 : R E M$ 6 0 — R T S

1 4 0

1 5 0 P R I N TC H R $ (1 4 7 )

1 6 0 I N P U T" N U M B E R " ; A

1 7 0 I F A > 2 5 5T H E NP R I N T" E R R O R ": G O T O1 6 0

4 1

Page 49: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 49/180

1 8 0 P O K E2 5 1 ,A

1 9 0 S Y S C O D E

2 0 0 P R I N T" T H ET W O ' SC O M P L E M E N TV A L U EI S : " ;

2 1 0 P R I N TP E E K ( 2 5 2 )

T h em e a n i n go f e a c hl i n ei s a s f o l l o w s :

L i n e s2 0 - 6 0 A s s e m b l e m a c h i n ec o d e .

L i n e9 0 S e tt h eC a r r yf l a g .

L i n e1 0 0 L o a da c c u m u l a t o rw i t h0 .

L i n e1 1 0 S u b t r a c tt h ec o n t e n t so f $ F Bf r o mi t .

L i n e1 2 0 S a v er e s u l t i n$ F C .

L i n e1 3 0 B a c kt o B A S I C .

L i n e s1 5 0 - 1 6 0G e tn u m b e r .

L i n e1 7 0 M a k es u r ei t ' sl e s st h a n2 5 6 .

L i n e1 8 0 P O K En u m b e ri n t o$ F B .

L i n e1 9 0 E x e c u t em a c h i n ec o d e .

L i n e2 0 0 - 2 1 0P r i n tr e s u l t .

4 2

Page 50: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 50/180

1 0 A d d r e s s i n gM o d e sI I

L e t u sn o wt a k ea s e c o n dl o o ka t a d d r e s s i n gm o d e s .I n t h ep r e v i o u s c h a p t e r sw eh a v es e e n

h o wd a t ac a n b eo b t a i n e dd i r e c t l yb y a n i n s t r u c t i o nu s i n gi m m e d i a t ea d d r e s s i n g ,o r

i n d i r e c t l yf r o ma l o c a t i o ni n z e r op a g eu s i n g z e r op a g ea d d r e s s i n g .W es h a l ln o ws e eh o wt w ob y t ea d d r e s sl o c a t i o n sc a n b ea c c e s s e db o t hd i r e c t l ya n di n d i r e c t l y( t h r o u g ht h ea l l

i m p o r t a n tz e r op a g e ) ,a n dh o ww h o l eb l o c k so fm e m o r yc a nb em a n i p u l a t e du s i n g i n d e x e d

a d d r e s s i n g .

A B S O L U T EA D D R E S S I N G

A b s o l u t ea d d r e s s i n gw o r k si n e x a c t l y t h es a m em a n n e ra s z e r op a g ea d d r e s s i n g ,b u ti t

c o v e r sa l l m e m o r yl o c a t i o n so u t s i d e z e r o p a g e .T h em n e m o n i ci s f o l l o w e db y t w ob y t e s

w h i c hs p e c i f y t h ea d d r e s so f t h em e m o r yl o c a t i o n( w h i c hc a n b ea n y w h e r ei n t h er a n g e

$ 1 0 0t o $ F F F F ) .

O p e r a t i o n

L D A$ 1 5 0 0 B D 0 0 1 5

$ 1 5 0 1

$ 1 4 F F

I F

A c c u m u l a t o r

I F

A sc a nb e s e e na b o v e ,t h eo p e r a t i o nc o d ei s f o l l o w e db yt h ea d d r e s sw h i c h ,a s a l w a y s ,i s

s t o r e di n r e v e r s eo r d e rl o wb y t ef i r s t .T h ec o n t e n t so f l o c a t i o n$ 1 5 0 0a r ec o p i e di n t ot h e

a c c u m u l a t o rw h e nt h ei n s t r u c t i o ni s e x e c u t e d .

P r o g r a m1 2 u s e sa b s o l u t ea d d r e s s i n gt o p l a c ea r e dB o n t o t h e s c r e e n ;n o t et h a ti t i s

n o tp r i n t e db u ts t o r e di n t os c r e e nm e m o r y .

P r o g r a m1 2

1 0 R E M* * A B S O L U T E A D D R E S S I N G* *

2 0 C O D E= 8 2 8

3 0 F O R L O O P= 0 T O8

4 0 R E A DB Y T E

5 0 P O K EC O D E+ L O O P ,B Y T E

6 0 N E X T L O O P

4 3

Page 51: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 51/180

8 0 R E M* * M / CD A T A*

R E M$ A 9 , $ 0 2

R E M$ 8 D ,$ 0 8 ,$ 1 E

R E M$ 8 D ,$ 9 6 ,$ 0 0

R E M$ 6 0

— L D A# $ 0 2

— S T A7 6 8 0

— S T A3 8 4 0 0

— R T S

9 0 D A T A1 6 9 , 2

1 0 0 D A T A1 4 1 , 0 , 3 0

1 1 0 D A T A1 4 1 , 0 , 1 5 0

1 2 0 D A T A9 6

1 3 0

1 4 0 P R I N TC H R $( 1 4 7 )

1 5 0 P R I N T: P R I N T: P R I N T

1 6 0 S Y SC O D E

T h e m e a n i n go f e a c hl i n ei s a s f o l l o w s :

L i n e s2 0 - 6 0 A s s e m b l e m a c h i n ec o d e .

L i n e9 0 L o a da c c u m u l a t o rw i t hd i s p l a yc o d ef o r' B ' a n dc o l o u rc o d er e d .

L i n e1 0 0 S t o r eB i n t os c r e e nm e m o r y .L i n e1 1 0 S t o r e r e dc o d ei n t oc o l o u rm e m o r y .

L i n e1 2 0 B a c kt o B A S I C .

L i n e s1 4 0 - 1 5 0C l e a rs c r e e na n dm o v ec u r s o rd o w n .

L i n e1 6 0 E x e c u t em a c h i n ec o d e .

T h ec o m p l e t el i s to f i n s t r u c t i o n sa s s o c i a t e dw i t ha b s o l u t ea d d r e s s i n gi s s h o w ni n T a b l e

1 0 . 1 .

T a b l e

A D CA N DA S LB I T

C M PC P XC P Y

D E C

E O RI N C

J M PJ S R

1 0 . 1

A b s o l u t e

A d dw i t hc a r r y

L o g i c a lA N DA r i t h m e t i cs h i f tl e f t

B i tt e s t

C o m p a r ea c c u m u l a t o r

C o m p a r eX r e g i s t e r

C o m p a r eY r e g i s t e r

D e c r e m e n tm e m o r y

L o g i c a lE O RI n c r e m e n tm e m o r y

J u m p

J u m p ,s a v er e t u r n

a d d r e s s i n gi n s t r u c t i o n s

L D AL D XL D YL S RO R AR O LR O RS B C

S T AS T X

S T Y

L o a da c c u m u l a t o r

L o a dX r e g i s t e r

L o a dY r e g i s t e r

L o g i c a ls h i f tr i g h t

L o g i c a lO RR o t a t el e f t

R o t a t er i g h t

S u b t r a c tw i t h c a r r y

S t o r ea c c u m u l a t o r

S t o r eX r e g i s t e r

S t o r eY r e g i s t e r

Z E R OP A G EI N D E X E D A D D R E S S I N G

I n z e r op a g ei n d e x e da d d r e s i n g ,t h e a c t u a la d d r e s so f t h eo p e r a n di s c a l c u l a t e db ya d d i n g

t h ec o n t e n t so f e i t h e rt h eX o r Y r e g i s t e rt o t h ez e r op a g ea d d r e s s *s t a t e d .

O p e r a t i o n :

L D A$ 7 0 , X

X r e g i s t e r

B 5 7 0 $ 7 7

F A

A c c u m u l a t o r

F A

4 4

Page 52: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 52/180

T h eX r e g i s t e r i nt h i si n s t a n c ec o n t a i n s$ 0 7 .T h i si s a d d e dt o t h es p e c i f i e da d d r e s s ,$ 7 0 ,

t o g i v e t h e a c t u a la d d r e s s ,$ 7 7 .T h ec o n t e n t so f l o c a t i o n$ 7 7( i n t h i sc a s eF A )a r et h e n

l o a d e di n t o t h ea c c u m u l a t o r .S i m i l a r l y :

S T X$ 7 2 , Y

Y r e g i s t e r

X r e g i s t e r

9 6

0 4

4 1

$ 7 6

E - ^ 7 6 0 A |

$ 7 6

4 1

i

H e r et h eY r e g i s t e ri s u s e da s a n i n d e xt o a l l o wt h ec o n t e n t so ft h eX r e g i s t e rt o b es t o r e di n

m e m o r yl o c a t i o n $ 7 6 .T h i s a d d r e s sw a so b t a i n e db ya d d i n gt h eY r e g i s t e r ' sv a l u e ,$ 0 4 ,t o

t h e s p e c i f i e dv a l u e , $ 7 2 .T h eo r i g i n a lc o n t e n t so f l o c a t i o n$ 7 6( 0 A )a r e o v e r w r i t t e n .

N o t e t h eY r e g i s t e rc a no n l yb eu s e dt o o p e r a t eo n t h eX r e g i s t e rw i t hi n s t r u c t i o n ss u c h

a s L D X$ F B ,Y . T h ei n s t r u c t i o n sa s s o c i a t e dw i t hz e r op a g ei n d e x i n ga r e l i s t e di nT a b l e1 0 . 2 .

T a b l e

A D CA N DA S LC M P

D E CE O RI N CL D A

* L D X

1 0 . 2

Z e r op a g ei n d e x e da d d r e s s i n gi n s t r u c t i o n s

A d dw i t hc a r r y

L o g i c a lA N DA r i t h m e t i cs h i f tl e f t

C o m p a r e

D e c r e m e n tm e m o r yL o g i c a lE O RI n c r e m e n tm e m o r y

L o a da c c u m u l a t o r

L o a dX r e g i s t e r

L D YL S RO R AR O L

R O RS B CS T A

* S T X

S T Y

L o a dY r e g i s t e r

L o g i c a ls h i f tr i g h t

L o g i c a lO RR o t a t el e f t

R o t a t er i g h tS u b t r a c t w i t hc a r r y

S t o r ea c c u m u l a t o r

S t o r eX r e g i s t e r

S t o r eY r e g i s t e r

T h e* i n d i c a t e st h eo n l yc o m m a n d sw h i c hc a nu s et h eY r e g i s t e ra s a n i n d e x .A l lo t h e rc o m m a n d sa r ef o rX r e g i s t e ro n l y .

A B S O L U T EI N D E X E D A D D R E S S I N G

A b s o l u t ei n d e x e d a d d r e s s i n gi s l i k ez e r op a g ei n d e x e da d d r e s s i n ge x c e p tt h a t t h e l o c a t i o n s

a c c e s s e d a r e o u t s i d e z e r o p a g e .T h eX a n dY r e g i s t e r sm a yb e u s e da s r e q u i r e dt o o p e r a t ew i t ht h ea c c u m u l a t o r ,o r e a c ho t h e r .

O p e r a t i o n :

L D A$ 1 5 0 0 , Y

Y r e g i s t e r

B 0 0 0

F A

1 F A 1 5

$ 1 5 F A A c c u m u l a t o r

- ! ►7 2 7 2

T h eY r e g i s t e r ' sc o n t e n t s( $ F A )a r ea d d e dt o t h et w ob y t e a d d r e s s ( $ 1 5 0 0 )t o g i v e

e f f e c t i v ea d d r e s s( $ 1 5 F A ) .

4 5

Page 53: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 53/180

T h ef o l l o w i n gp r o g r a md e m o n s t r a t e sh o wa b s o l u t ei n d e x e da d d r e s s i n gc a n b e u s e dt o

m o v ea s e c t i o no f s c r e e nm e m o r yf r o mo n el o c a t i o nt o a n o t h e r .

P r o g r a m1 3

1 0 R E M* * A B S O L U T EI N D E X E DA D D R E S S I N G* *

2 0 C O D E= 8 2 8

3 0 F O R L O O P= 0 T O2 1

4 0 R E A DB Y T E

5 0 P O K EC O D E+ L O O P ,B Y T E

6 0 N E X TL O O P

7 0

8 0 R E M* * M / CD A T A* *

9 0 D A T A1 6 2 , 3 2

1 0 0 D A T A1 8 9 , 0 , 3 0

1 1 0 D A T A1 5 7 , 7 4 , 3 1

1 2 0 D A T A2 0 2

1 3 0 D A T A2 0 8 , 2 4 7

1 4 0 D A T A1 6 9 , 0

1 5 0 D A T A1 6 2 , 3 2

1 6 0 D A T A1 5 7 , 7 4 , 1 5 1

1 7 0 D A T A2 0 2

1 8 0 D A T A2 0 8 , 2 5 0

1 9 0 D A T A9 6

2 0 0

2 1 0 P R I N TC H R $ ( 1 4 7 ) ;

2 2 0 P R I N T" A B S O L U T EI N D E X E DA D D R "

2 3 0 G E T A $

2 4 0 I F A $ = " MT H E NG O T O2 3 0

2 5 0 S Y SC O D E

R E M$ A 2 ,$ 2 0 — L D X# $ 2 0

R E M$ B D ,$ 0 0 ,$ 1 E — L D A7 6 8 0 ,X

R E M$ 9 D , $ 4 A ,$ 1 F — S T A8 0 1 0 ,X

R E M$ C A — D E X

R E M$ D 0 ,$ F 7 — B N E- 9

R E M$ A 9 ,$ 0 0 — L D A# $ 0 0

R E M$ A 2 ,$ 2 0 — L D X# $ 2 0

R E M$ 9 D , $ 4 A ,$ 9 7 — S T A3 8 7 3 0 ,X

R E M

R E M

R E M

$ C A

$ D 0 ,

$ 6 0

$ F A

— D E X

— B N E- 5

— R T S

T h em e a n i n go f e a c hl i n ei s a s f o l l o w s :

L i n e s2 0 - 6 0 A s s e m b l e m a c h i n ec o d e .

L i n e9 0 S e xX r e g i s t e rc o u n t .

L i n e1 0 0 L o a da c c u m u l a t o rw i t h c o n t e n t s o fl o c a t i o n7 6 8 0+ X .

L i n e1 1 0 S t o r ea c c u m u l a t o r ' sc o n t e n t sa t 8 0 1 0+ X .

L i n e1 2 0 D e c r e m e n tX r e g i s t e r .

L i n e1 3 0 I F X < > 0 t h e ng o b a c k .

L i n e1 4 0 L o a da c c u m u l a t o rw i t h0 ( b l a c kc o l o u rc o d e ) .

L i n e1 5 0 S e tX r e g i s t e rc o u n t .

L i n e1 6 0 S t o r ec o d ei n c o l o u rm e m o r y ,3 8 7 3 0+ X .

L i n e1 7 0 D e c r e m e n tX r e g i s t e r .

L i n e1 8 0 I F X < > 0 t h e ng o b a c k .

L i n e1 9 0 B a c kt o B A S I C .L i n e s2 1 0 - 2 2 0C l e a rs c r e e na n dp r i n tt i t l e .

L i n e s2 3 0 - 2 4 0W a i tf o ra k e yt o b e p r e s s e d .

L i n e2 5 0 E x e c u t em a c h i n ec o d e .

4 6

Page 54: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 54/180

W h e nR U N ,t h em e s s a g eo f l i n e2 2 0i s p r i n t e do n t o t h es c r e e n .T h ep r o g r a mt h e nw a i t s

f o ra k e yt o b e p r e s s e db e f o r ec a l l i n gt h em a c h i n ec o d e .T h eX r e g i s t e ra c t sa s t h eo f f s e t

c o u n t e ra n di s i n i t i a l i z e di n l i n e9 0 . T h eb y t ea t l o c a t i o n7 6 8 0+ X i s l o a d e di n t ot h e

a c c u m u l a t o r ,a n dt h e ns t o r e db a c ki n t os c r e e nm e m o r ya t 8 0 1 0+ X ; i n b o t hi n s t a n c e s

a b s o l u t ei n d e x e d a d d r e s s i n gi s u s e d .T w on e wi n s t r u c t i o n s a r ei n t r o d u c e di n l i n e s1 2 0a n d

1 3 0a n dt h e s ew i l lb e e x a m i n e di n t h en e x tc o u p l eo f c h a p t e r s .B r i e f l yt h r o u g h ,D E Xd e c r e a s e st h ec o n t e n t so f t h eX r e g i s t e rb y o n e ,a n dB N Et e s t st o s e ei f t h eX r e g i s t e rh a s

r e a c h e dz e r o .I f X i s n o tz e r o , t h e s p e c i f i e dj u m pt a k e sp l a c e ,c a u s i n gt h e l o a d / s t o r ep r o c e d u r et o b e r e p e a t e d w i t ht h en e wv a l u eo f X .L i n e s 1 5 0t o 1 8 0w o r ki n a s i m i l a r

m a n n e r ,s t o r i n gt h eb l a c k c o l o u rc o d ei n t h ec o r r e s p o n d i n gb y t e so f t h ec o l o u rm e m o r y .

T h i s ,i n e f f e c t ,t u r n st h el e t t e r s' o n 's o t h a tt h e yc a nb e s e e n( s e et h eU s e rM a n u a lf o ra

d e s c r i p t i o no f t h i si f y o ud o n o tu n d e r s t a n dt h ep r o c e d u r e ) .

T h ei n s t r u c t i o n sa s s o c i a t e dw i t ha b s o l u t ei n d e x e da d d r e s s i n ga r es h o w ni n T a b l e1 0 . 3 .

T a b l e1 0 . 3

♦ A D C♦ A N D

A S L♦ C M P

D E C♦ E O R

I N C

♦ L D A

A b s o l u t ei n d e x e d

A d dw i t hc a r r y

L o g i c a lA N DA r i t h m e t i cs h i f tl e f t

C o m p a r em e m o r y

D e c r e m e n tm e m o r y

L o g i c a le x c l u s i v eO RI n c r e m e n tm e m o r yL o a da c c u m u l a t o r

a d d r e s s i n gi n s t r u c t i o n s

♦ ♦ L D XL D YL S R

♦ O R AR O LR O R

♦ S B C

♦ S T A

L o a dX r e g i s t e r

L o a dY r e g i s t e r

L o g i c a ls h i f tr i g h t

L o g i c a lO RR o t a t el e f t

R o t a t er i g h t

S u b t r a c t w i t hc a r r y

S t o r ea c c u m u l a t o r

U n m a r k e dc o m m a n d sa r ea v a i l a b l ew i t hX r e g i s t e ra s i n d e xo n l y .C o m m a n d sm a r k e d♦

m a yu s ee i t h e rr e g i s t e r ,w h e r e a st h eo n em a r k e d♦ ♦ c a no n l yu s et h eY r e g i s t e r .

I N D I R E C TA D D R E S S I N G

I n d i r e c ta d d r e s s i n g a l l o w su s t o r e a d o rw r i t e t oa m e m o r ya d d r e s sw h i c hi s n o tk n o w na t

t h et i m eo f w r i t i n g t h ep r o g r a m !C r a z y ?N o tr e a l l y ,t h ep r o g r a mi t s e l fm a yc a l c u l a t e t h e

a c t u a la d d r e s st o b eh a n d l e d .A l t e r n a t i v e l y ,a p r o g r a mm a yc o n t a i n w i t h i ni t s e v e r a l t a b l e s

o f d a t aw h i c ha r ea l lt o b em a n i p u l a t e di n a s i m i l a rm a n n e r . R a t h e rt h a nw r i t i n ga s e p a r a t e

r o u t i n ef o re a c h ,a g e n e r a lp u r p o s eo n ec a n b ed e v e l o p e d , w i t ht h ea d d r e s so p e r a n db e i n g

1s e e d e d *o n e a c h o c c a s i o nt h er o u t i n ei s c a l l e d .

I n d i r e c ta d d r e s s i n g ' sb e a u t yi s t h a ti t e n a b l e st h e w h o l eo f t h e V I C ' sm e m o r ym a pt o b e a c c e s s e dw i t h as i n g l et w ob y t ei n s t r u c t i o n .T od i s t i n g u i s hi n d i r e c ta d d r e s s i n g

f r o mo t h e r a d d r e s s i n gm o d e s ,t h eo p e r a n d sm u s tb e e n c l o s e di n b r a c k e t s .

P u r e i n d e x e d a d d r e s s i n gi n o n l y a v a i l a b l e t oo n e i n s t r u c t i o n — t h ej u m p

i n s t r u c t i o n — w h i c hi s m n e m o n i c a l l yr e p r e s e n t e db yJ M P .W ew i l ll o o ka t J M P ' sf u n c t i o ni n m o r ed e t a i ld u r i n gt h ec o u r s eo f C h a p t e r1 3 ,b u ts u f f i c et o s a yf o rn o wt h a ti t i s t h e

6 5 0 2 ' se q u i v a l e n to f B A S I C ' SG O T Os t a t e m e n t .( T h o u g hi t d o e so f c o u r s ej u m pt o a n

a d d r e s sr a t h e rt h a na l i n en u m b e r . )

A t y p i c a l i n d i r e c tj u m pi n s t r u c t i o nt a k e s t h ef o r m :

D A T A1 0 8 ,2 5 1 ,0 0 : R E M$ 6 C ,$ F B ,$ 0 0— J M P( $ F B )

T h ea d d r e s ss p e c i f i e di n t h e i n s t r u c t i o ni s n o tt h ea d d r e s sj u m p e dt o ,b u ti s t h ea d d r e s so f

t h el o c a t i o nw h e r et h ej u m pa d d r e s si s s t o r e d . I no t h e rw o r d s ,d o n ' tj u m ph e r eb u tt o t h e

a d d r e s ss t o r e dh e r e !

4 7

Page 55: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 55/180

O p e r a t i o n :

J M P( $ F B )

$ F D

$ F C

$ F B

6 C

F F

D A

F B 0 0

F r o mt h eo p e r a t i o n a le x a m p l ew e c a ns e et h a tl o c a t i o n$ F Bc o n t a i n st h el o wb y t eo f t h e

a d d r e s s ,a n dl o c a t i o n$ F Ct h eh i g hb y t e .T h e s et w ol o c a t i o n s ,w h i c ha c ta s t e m p o r a r y

s t o r e sf o rt h e a d d r e s s , a r ek n o w na s a v e c t o r .E x e c u t i n gJ M P( $ F B )i n t h i si n s t a n c ew i l l

c a u s et h ep r o g r a mt o j u m pt o t h el o c a t i o n$ F F D A .

P r o g r a m1 4 i l l u s t r a t e st h eu s eo f a n i n d i r e c tJ M Pt o f i l lt h es c r e e n w i t hs t a r s .

P r o g r a m1 4

1 0 R E M* * I N D I R E C TJ U M P I N G* *

2 0 C O D E= 8 2 8

3 0 F O R L O O P= 0 T O 1 5

4 0

5 0

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

1 5 0

1 6 0

1 7 0

R E A DB Y T E

P O K EC O D E+

N E X T

R E M*

D A T A

D A T A

D A T A

D A T A

D A T A

D A T A

D A T A

L O O P

L O O P ,B Y T E

* M / CD A T A* *

1 6 9 , 6 0

1 3 3 , 2 5 1

1 6 9 , 3

1 3 3 , 2 5 2

1 6 9 , 4 2

3 2 , 2 1 0 , 2 5 5

1 0 8 , 2 5 1 , 0:

S Y SC O D E

• R E M $ A 9 , $ 3 C

• R E M$ 8 5 ,$ F B

R E M$ A 9 , $ 0 3

: R E M$ 8 5 ,$ F C

: R E M$ A 9 ,$ 2 A

R E M$ 2 0 ,$ D 2 ,$ F F

R E M$ 6 C ,$ F B ,$ 0 0

— L D A= $ 3 C

— S T A$ F B

— L D A# $ 0 3

— S T A$ F C

— L D A# A S C " *

— J S R$ F F D 2

— J M P( $ F B )

L i n e s9 0t o 1 2 0s e tu pa v e c t o ri n z e r op a g e .T w oo f t h ef r e eu s e rb y t e s a r el o a d e dw i t ht h e

a s s e m b l ya d d r e s s o ft h em a c h i n ec o d e ,8 2 8 ( $ 0 3 3 C )i n t h i s c a s e .L i n e1 3 0p l a c e st h eA S C I I

c o d ef o rt h ea s t e r i s ki n t o t h ea c c u m u l a t o r ,a n dt h i si s p r i n t e do u tu s i n gt h eK e r n a lr o u t i n e

a t $ F F D 2( l i n e1 4 0 ) .F i n a l l yt h er o u t i n ej u m p sb a c kt o t h es t a r tv i at h e z e r op a g ev e c t o r

( l i n e1 5 0 ) .

J M P( $ F B ) L 6 C F B

$ F C

$ F B

3 C

0 3

J u m pt o $ 0 3 3 C

4 8

Page 56: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 56/180

T h ep r o g r a mi s n o wi n a c o n t i n u o u sl o o pa n dw i l lc a r r yo n p r i n t i n gs t a r sa d i n f i n i t u m .

P r e s sR E S T O R Ea n dR U N / S T O Pt o g e t h e rt o r e t u r nt o t h ep r o m p t .T h eV I C2 0 i t s e l f

u s e si n d i r e c ta d d r e s s i n ge x t e n s i v e l y .I f y o uf l i pt o p a g e 0 0 0y o u ' l ls e ea l i s to f K e r n a l

r o u t i n e sw h i c h ,w h e nc a l l e d ,p e r f o r mi n d i r e c tj u m p si n t ot h ed e p t h so f t h eO p e r a t i n g

S y s t e mv i av e c t o r si n b l o c kz e r oR A M .

P O S T - I N D E X E DI N D I R E C TA D D R E S S I N G

P o s t - i n d e x e d a d d r e s s i n gi s a l i t t l el i k ea b s o l u t ei n d e x e da d d r e s s i n g ,b u ti n t h i sc a s e ,t h e

b a s ea d d r e s si s s t o r e di n a z e r op a g ev e c t o rw h i c hi s a c c e s s e di n d i r e c t l y .

O p e r a t i o n :

L D A ( $ 7 0 ) ,Y B l 7 0

Y r e g i s t e r B A

$ 7 1

$ 7 0

1 5

0 0

A c c u m u l a t o r

4 1 ► 4 1

I n t h ee x a m p l ea b o v e ,t h e b a s ea d d r e s si s s t o r e di n t h ev e c t o ra t $ 7 0a n d$ 7 1 .T h e

c o n t e n t so f t h eY r e g i s t e r( $ B A )a r ea d d e dt o t h ea d d r e s si n t h ev e c t o r ( $ 1 5 0 0 )t o g i v e t h e

a c t u a la d d r e s s( $ 1 5 B A )o f t h e d a t a .I t s h o u l d b e o b v i o u st h a tt h i sf o r mo f i n d i r e c t

a d d r e s s i n g a l l o w sa c c e s st o a 2 5 6b y t er a n g e o fl o c a t i o n s .I n t h e c a s ea b o v e ,a n yl o c a t i o nf r o m$ 1 5 0 0a n d$ 1 5 F Fi s a v a i l a b l eb y s e t t i n gt h eY r e g i s t e ra c c o r d i n g l y .

P r o g r a m1 5u s e sp o s t - i n d e x e di n d i r e c ta d d r e s s i n gt o m o v ea l i n eo fs c r e e nm e m o r yf r o m

t h eu p p e rt o t h el o w e rh a l fo f t h es c r e e n .

P r o g r a m1 5

1 0 R E M* * I N D I R E C TA D D R E S S I N G* *

2 0 C O D E= 8 2 8

3 0 F O RL O O P= 0 T O 1 9

4 0 R E A DB Y T E

5 0 P O K EC O D E+ L O O P ,B Y T E

6 0 N E X TL O O P

7 0

8 0 R E M* * M / CD A T A* *

9 0 D A T A1 6 0 , 2 1 : R E M $ A 0 , $ 1 5— L D Y= $ 1 5

4 9

Page 57: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 57/180

1 0 0 D A T A1 7 7 , 2 5 1

1 1 0 D A T A1 4 5 , 2 5 3

1 2 0 D A T A1 3 6

1 3 0 D A T A2 0 8 , 2 4 9

1 4 0 D A T A1 6 2 , 2 1

1 5 0 D A T A1 6 9 , 0

1 6 0 D A T A1 5 7 , 7 4 , 1 5 1

1 7 0 D A T A2 0 2

1 8 0 D A T A2 0 8 , 2 5 0

R E M$ B 1 ,$ F B — L D A( $ F B ) ,Y

R E M$ 9 1 ,$ F D — S T A( $ F D ) ,Y

R E M$ 8 8 — D E Y

R E M$ D 0 ,$ F 9 — B N E- 7

R E M $ A 2 , $ 1 5— L D X # $ 1 5

R E M$ A 9 ,$ 0 0 — L D A# $ 0 0

R E M$ 9 D ,$ 4 A ,$ 9 7 — S T A3 8 7 3 0 ,X

R E M$ C A — D E X

R E M $ D 0 , $ F A— B N E- 6

R E M$ 6 0 — R T S1 9 0 D A T A9 6

2 0 0

2 1 0 P O K E2 5 1 , 0 :P O K E2 5 2 , 3 0: R E MS C R E E N T O P

2 2 0 P O K E2 5 3 , 7 4 :P O K E2 5 4 , 3 1: R E MS C R E E N B O T

2 3 0 P R I N TC H R $ (1 4 7 ) ;

2 4 0 P R I N T" I N D I R E C TI N D E X E DA D D R "

2 5 0 G E T A $

2 6 0 I F A $= " " T H E NG O T O2 5 0

2 7 0 S Y SC O D E

T h e p r o g r a mc o m m e n c e sb ya s s e m b l i n gt h em a c h i n ec o d eh e l di n t h ed a t as t a t e m e n t s .

N e x t ,t w ov e c t o r s a r ec r e a t e di n z e r o p a g e .T h ef i r s t( l i n e2 1 0 )i s P O K E dw i t ht h ea d d r e s s

o f t h et o pl e f t - h a n dc o r n e ro f t h es c r e e n( 1 0 2 4 )a n di s c a l l e dS C R E E N T O P .S i m i l a r l y ,i n

l i n e2 2 0 , t h en e x tt w ol o c a t i o n sa r es e e d e dt o p o i n tt o S C R E E N B O T( 1 5 4 4 ) .

O n c et h ep r o g r a mt i t l eh a sb e e np r i n t e da n da k e yh a sb e e np r e s s e d , t h em a c h i n ec o d e

s t o r e di n t h ec a s s e t t eb u f f e r a r e ai s e x e c u t e d .T h eY r e g i s t e ri s s e tt o t h et e x ts c r e e nl i n e

l e n g t hc o u n t( l i n e9 0 ) ,t h e nu s i n gp o s t - i n d e x e di n d i r e c ta d d r e s s i n g ,t h eb y t es t o r e da t

S C R E E N T O P+ Y i s l o a d e di n t ot h ea c c u m u l a t o r( l i n e1 0 0 )a n ds t o r e di n s c r e e nm e m o r y

a t t h el o c a t i o ns p e c i f i e db y S C R E E N B O T4 - Y ( l i n e1 1 0 ) .T h eY r e g i s t e ri s d e c r e m e n t e d ,

t h u sa l l o w i n gt h en e x t l o c a t i o nt o b ea c c e s s e d( l i n e1 2 0 ) ,a n dt h ep r o c e s s r e p e a t e du n t i lt h e

Y r e g i s t e rh o l d s 0( t h eB N Ei n s t r u c t i o ni n l i n e1 3 0t a k e sc a r eo f t h i s ,a s w es h a l ls e ei n t h e

n e x tc h a p t e r ) .

T h ec h a r a c t e rc o d e sf o r t h et i t l ea t t h et o po f t h es c r e e na r en o ws t o r e di n m e m o r ym i d

w a yd o w nt h es c r e e n .T o m a k et h e mv i s i b l e ,t h ec o r r e s p o n d i n gl o c a t i o n si n t h ec o l o u r

m e m o r y( f r o m3 8 7 3 0 )m u s tb e P O K E dw i t ht h e r e l e v a n tc o l o u rc o d e .T h i si s t a k e nc a r eo f

i n l i n e s1 4 0 - 1 9 0 . L i n e 1 4 0 b e g i n sb y i n i t i a l i z i n gt h eX r e g i s t e rt o t h el i n el e n g t h ,a n dt h e

c o l o u rc o d ei s t h e nl o a d e di n t o t h ea c c u m u l a t o r( l i n e1 5 0 ) .C o l o u rc o d e' 0 'm e a n st h a t t h e

t e x tw i l la p p e a rb l a c k .O n c ea g a i n ,t h eD E Xa n dB N E( l i n e s1 8 0a n d1 9 0 )a r eu s e dt o

c o n t r o lt h en u m b e ro f t i m e st h i sp i e c eo f c o d ei s r e p e a t e d .

P R E - I N D E X E DA B S O L U T EA D D R E S S I N G

T h i s a d d r e s s i n gm o d ei s u s e di f w e w i s ht o i n d i r e c t l ya c c e s sa w h o l es e r i e so f a b s o l u t e

a d d r e s s e sw h i c ha r e s t o r e di n z e r op a g e .

5 0

Page 58: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 58/180

Page 59: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 59/180

Page 60: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 60/180

W h e nt h e V I C2 0 i s s w i t c h e do n ( o r a B R E A Ki s p e r f o r m e d )t h e S t a c kP o i n t e r

i s l o a d e dw i t ht h ev a l u e$ F F — i tp o i n t st o t h et o po f t h es t a c k — t h i sm e a n st h a tt h e s t a c k

g r o w sd o w nt h em e m o r ym a pr a t h e rt h a nu p a s m a yb e e x p e c t e d .E a c ht i m ea n i t e mi s

p u s h e dt h eS t a c kP o i n t e ri s d e c r e m e n t e d ,a n dc o n v e r s e l y ,i t i s i n c r e m e n t e dw h e nt h e s t a c k

i s p u l l e d .

S T A C KI N S T R U C T I O N SF O RS A V I N GD A T AT h e6 5 0 2h a sf o u ri n s t r u c t i o n s t h a ta l l o wt h ea c c u m u l a t o ra n dS t a t u sr e g i s t e rt o b ep u s h e da n dp u l l e d .T h e ya r e :

P H A P u s ha c c u m u l a t o r o n t os t a c k

P L A P u l la c c u m u l a t o rf r o ms t a c k

P H P P u s hS t a t u sr e g i s t e ro n t os t a c k

P L P P u l lS t a t u sr e g i s t e rf r o ms t a c k

A l lf o u ri n s t r u c t i o n su s e i m p l i e da d d r e s s i n ga n do c c u p yo n l ya s i n g l eb y t eo f m e m o r y .

L D A# $ F F

A c c u m u l a t o r| F F |

P H A

A c c u m u l a t o r| F F |

C f t « f t < * l rD A l n l A r1 E C 1

L D A# $ 0 0 : P H A

A c c u m u l a t o r| 0 0 |

P l _ _ i ,D n i n l n r1 F R 1 _ — _

_ r

S t a c k

R T A

R T A

? ?

? ?

7 ?

? ?

j >

R T A

R T A

F F

? ?

? ?

? ?

R T A

R T A

F F

0 0

n

n

$ 1 F F

$ 1 F E

$ 1 F D

$ 1 F C

$ 1 F B

$ 1 F A

$ 1 F F

$ 1 F E

$ 1 F D

$ 1 F C

$ 1 F B

$ 1 F A

$ 1 F F

$ 1 F E$ 1 F D

$ 1 F C

$ 1 F B

$ 1 F A

F i g u r e1 1 . 2 P u s h i n gi t e m so n t o t h es t a c k .

5 3

Page 61: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 61/180

T h eP H Aa n dP H Pi n s t r u c t i o n sw o r ki n a s i m i l a rm a n n e r ,b u to nd i f f e r e n tr e g i s t e r s .I n

b o t hc a s e s t h es o u r c er e g i s t e rr e m a i n su n a l t e r e db y t h ei n s t r u c t i o n .A g a i nP L Aa n dP L Pa r es i m i l a ri n o p e r a t i o n ,b u tP L Ac o n d i t i o n so n l yt h eN e g a t i v ea n dZ e r of l a g s ,w h i l eP L P

o f c o u r s e c o n d i t i o n sa l l t h ef l a g s .

C o n s i d e rt h ef o l l o w i n gs e q u e n c eo f i n s t r u c t i o n s :

T W O P U S H L D A# $ F F \ p l a c e$ F Fi n a c c u m u l a t o r

P H A \ p u s h o n t os t a c k

L D A# $ 0 0 \ p l a c e$ 0 0i n a c c u m u l a t o r

P H A \ p u s ho n t os t a c k

F i g u r e1 1 . 2s h o w se x a c t l yw h a th a p p e n sa s t h i sp r o g r a mi s e x e c u t e d .T h eS t a c kP o i n t e r

( S P )a t t h es t a r tc o n t a i n s$ F Da n dp o i n t st o t h en e x tf r e el o c a t i o ni n t h es t a c k .T h ef i r s t

t w os t a c kl o c a t i o n s$ F Fa n d$ F Eh o l dt h et w ob y t er e t u r na d d r e s s( R T A )t o w h i c ht h e

m a c h i n ec o d ew i l le v e n t u a l l y p a s sc o n t r o l .( T h i sm a yb e t h ea d d r e s so f t h en e x tB A S I C

i n s t r u c t i o ni f a c a l lt o m a c h i n ec o d eh a sb e e n m a d e . )T h es u b s e q u e n ts t a c k l o c a t i o n s a r ea t

p r e s e n tu n d e f i n e da n da r e t h e r e f o r er e p r e s e n t e da s ? ? .

A f t e r t h ea c c u m u l a t o rh a sb e e n l o a d e dw i t h$ F Fi t i s c o p i e do n t ot h e s t a c kb y P H A .

N o t et h a tt h ea c c u m u l a t o r ' sc o n t e n t sa r en o ta f f e c t e db y t h i so p e r a t i o n .O n c ei t h a sb e e n

p u s h e do n t ot h es t a c k ,t h eS t a c kP o i n t e r ' sv a l u ei s d e c r e m e n t e db y o n et o p o i n tt o t h en e x t

f r e el o c a t i o ni n t h es t a c k( $ F C ) .

T h ea c c u m u l a t o ri s t h e nl o a d e dw i t h$ 0 0a n dt h i si s p u s h e do n t o t h es t a c ka t l o c a t i o n

$ F C .T h eS t a c kP o i n t e ri s a g a i nd e c r e m e n t e dt o t h en e x tf r e el o c a t i o n( $ F B ) .

T o r e m o v et h e s ei t e m sf r o mt h es t a c k t h ef o l l o w i n gc o u l db e u s e d :

T W O P U L LP L A \ g e t$ 0 0f r o ms t a c k

S T AT E M P \ s a v ei t s o m e w h e r e

P L A \ g e t$ F Ff r o ms t a c k

S T AT E M P+ 1 \ s a v ei t a s w e l l

F i g u r e1 1 . 3i l l u s t r a t e sw h a th a p p e n si n t h i sc a s e .T h ef i r s tP L Aw i l lp u l lf r o mt h e s t a c k

i n t o t h ea c c u m u l a t o r . t h el a s ti t e mp u s h e do n t oi t , w h i c hi n t h i se x a m p l ei s $ 0 0 .T h eS t a c k

P o i n t e ri s i n c r e m e n t e d ,t h i st i m et o p o i n tt o t h en e w' n e x tf r e el o c a t i o n ' ,$ F C .A sy o uc a n

s e ef r o mt h ed i a g r a mt h es t a c k c o n t e n t sa r en o ta l t e r e d ,b u tt h e$ 0 0w i l lb eo v e r w r i t t e ni fa

f u r t h e ri t e mi s n o wp u s h e d .T h eS T AT E M Ps a v e st h ea c c u m u l a t o rv a l u es o m e w h e r ei n

m e m o r ys o t h a ti t i sn o t d e s t r o y e db y t h e n e x tP L A .T h i sP L Ar e s t o r e s t h ev a l u e$ F Fi n t o

t h ea c c u m u l a t o r ,a n da g a i n i n c r e m e n t st h eS t a c kP o i n t e r .

O n et h i n gs h o u l dn o wb e a p p a r e n t — i ti s v e r yi m p o r t a n tt o r e m e m b e rt h eo r d e ri n

w h i c hi t e m sa r ep u s h e d o n t ot h es t a c k ,a s t h e ym u s tb e p u l l e di n e x a c t l yt h e r e v e r s e o r d e r .

I f t h i sp r o c e s si s n o ts t r i c t l ya d h e r e dt o t h e ne r r o r sw i l lc e r t a i n l yr e s u l t ,a n dc o u l de v e n

c a u s ey o u rp r o g r a mt o c r a s ho r h a n g - u p !

T h ef o l l o w i n gp r o g r a ms h o w sh o wt h e s t a c kc a n b eu s e dt o s a v et h ec o n t e n t so f t h e

v a r i o u sr e g i s t e r st o b e p r i n t e dl a t e r .T h i si s p a r t i c u l a r l yu s e f u lf o r d e b u g g i n gt h o s e

a w k w a r dp r o g r a m st h a tj u s tw i l ln o tw o r k .

R E G S A V EP H P \ s a v eS t a t u sr e g i s t e r

P H A \ s a v ea c c u m u l a t o r

T X A \ t r a n s f e rX i n t oa c c u m u l a t o r

P H A \ s a v ea c c u m u l a t o r( X )

T Y A \ t r a n s f e rY i n t oa c c u m u l a t o r

P H A \ s a v ea c c u m u l a t o r( Y )

I t i s i m p o r t a n tt o s a v et h er e g i s t e r s i nt h eo r d e rs h o w n .T h eS t a t u sr e g i s t e rs h o u l db es a v e d

f i r s ts o t h a ti t w i l ln o tb ea l t e r e db yt h es u b s e q u e n tt r a n s f e ri n s t r u c t i o n sw h i c hc o u l da f f e c t

5 4

Page 62: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 62/180

t h e N e g a t i v ea n dZ e r of l a g s ,a n dt h e a c c u m u l a t o rm u s tb e s a v e db e f o r ei t s v a l u ei s

d e s t r o y e db y e i t h e ro f t h ei n d e xr e g i s t e rt r a n s f e ro p e r a t i o n s .

P LA : S T AT E M P

A c c u m u l a t o r| 0 0 |

S t a c kP o i n t e rI F C I —

S t a c k

R T A

R T A

F F

H

t l

$ 1 F F

$ 1 F E

$ 1 F D

$ 1 F C

$ 1 F B

$ 1 F A

P LA : S T AT E M P+ 1

A c c u m u l a t o r

S t a c kP o i n t e r

R T AR T A

F F

0 0

r ?

n

$ 1 F F$ 1 F E

$ 1 F D

$ 1 F C

$ 1 F B

$ 1 F A

F i g u r eJ 1 . 3 P u l l i n gi t e m sf r o mt h es t a c k .

I f t h e r e g i s t e r s 'v a l u e sh a db e e ns a v e dt o p r e s e r v et h e mw h i l ea n o t h e rp o r t i o no f t h e

p r o g r a m w a so p e r a t i n g ,w e c o u l dr e t r i e v et h e mw i t h :

P L A

T A Y

P L A

T A X

P L A

P L P

\ p u l la c c u m u l a t o r( Y )

\ a n dt r a n s f e r t oY r e g i s t e r

\ p u l la c c u m u l a t o r( X )

\ a n dt r a n s f e rt o X r e g i s t e r

\ p u l la c c u m u l a t o r

\ p u l lS t a t u sr e g i s t e r

T h e r ea r et w of i n a ls t a c k a s s o c i a t e di n s t r u c t i o n s :

T S X T r a n s f e rS t a c kP o i n t e rt o X r e g i s t e r

T X S T r a n s f e rX r e g i s t e rt o S t a c kP o i n t e r

T h e s ei n s t r u c t i o n sa l l o wt h eS t a c kP o i n t e rt o b e s e e d e da s r e q u i r e d .O n p o w e r - u po r

B R E A Kt h eV I Cd o e st h ef o l l o w i n g :

L D X# $ F F

T X S

\ l o a dX w i t h$ F F

\ p l a c ei n S t a c kP o i n t e r

I t i sv e r yu n l i k e l yt h a ty o uw i l le v e rn e e dt h e s et w oi n s t r u c t i o n su n l e s sy o u g oo n t o s u c h

s p l e n d i dp r o j e c t s a s w r i t i n gy o u ro w ni n t e r p r e t e r !

W es h a l ls e eh o wa n dw h yt h es t a c ki s u s e dt o s a v e a d d r e s s e si n C h a p t e r1 3 .

5 5

Page 63: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 63/180

1 2 L o o p i n g

L O O P S

L o o p sa l l o ws e c t i o n so f p r o g r a m st o b e r e p e a t e do v e ra n do v e ra g a i n .F o re x a m p l e ,i n

B A S I Cw e c o u l dp r i n t t e ne x c l a m a t i o nm a r k su s i n ga F O R. . . N E X Tl o o pl i k et h i s :

1 0 F O RN U M B E R= 0 T O9

2 0 P R I N T" ! " ;

3 0 N E X TN U M B E R

I n l i n e1 0a c o u n t e rc a l l e dN U M B E Ri s d e c l a r e da n di n i t i a l l ys e tt o z e r o .L i n e2 0p r i n t st h e

e x c l a m a t i o nm a r k ,a n dl i n e3 0 c h e c k st h ep r e s e n tv a l u e o fN U M B E Rt o s e ei f i t h a s

r e a c h e di t sm a x i m u ml i m i t .I f i t h a sn o t ,t h ep r o g r a ma d d so n et o N U M B E Ra n db r a n c h e s

b a c kt o p r i n tt h en e x te x c l a m a t i o nm a r k .

T o i m p l e m e n tt h i st y p eo f l o o pi n a s s e m b l yl a n g u a g ew en e e dt o k n o wh o wt o c o n t r o l

a n du s et h e t h r e e t o p i c si d e n t i f i e da b o v e ;n a m e l yc o u n t e r s ,c o m p a r i s o n sa n db r a n c h e s .

C O U N T E R S

I t i s u s u a lt o u s ei n d e xr e g i s t e r sa s c o u n t e r s ,b e c a u s et h e yh a v et h e i ro w ni n c r e m e n ta n dd e c r e m e n ti n s t r u c t i o n s .

I N X I n c r e m e n tX r e g i s t e r X = X + 1

I N Y I n c r e m e n tY r e g i s t e r Y = Y + 1

D E X D e c r e m e n tX r e g i s t e rX = X - 1

D E Y D e c r e m e n tY r e g i s t e rY = Y - 1

A l l t h e s e i n s t r u c t i o n sc a na f f e c tt h eN e g a t i v ea n dZ e r of l a g s .T h eN e g a t i v ef l a gi s s e ti f t h e

m o s ts i g n i f i c a n tb i t o f t h e r e g i s t e ri s s e t f o l l o w i n ga n i n c r e m e n t o rd e c r e m e n t

i n s t r u c t i o n — o t h e r w i s ei t w i l lb e c l e a r e d .T h eZ e r of l a gw i l lo n l yb e s e t i f a n yo f t h e

i n s t r u c t i o n sc a u s et h er e g i s t e rc o n c e r n e dt o c o n t a i nz e r o .N o t et h a ti n c r e m e n t i n ga r e g i s t e rw h i c hc o n t a i n s$ F Fw i l lr e s e tt h a tr e g i s t e rt o $ 0 0 ,

w i l lc l e a rt h eN e g a t i v ef l a g( N = 0 ) a n dw i l l s e tt h eZ e r of l a g( Z = 1 ) . C o n v e r s e l y ,

d e c r e m e n t i n ga r e g i s t e rh o l d i n g$ 0 0w i l lr e s e ti t sv a l u et o $ F F ,s e tt h eN e g a t i v ef l a ga n dc l e a rt h eZ e r of l a g .

T h e r ea r et w oo t h e ri n c r e m e n ta n dd e c r e m e n ti n s t r u c t i o n s :

I N C I n c r e m e n tm e m o r y

D E C D e c r e m e n tm e m o r y

5 6

Page 64: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 64/180

T h e s ei n s t r u c t i o n sa l l o wt h e v a l u e si n m e m o r yl o c a t i o n st o b e a d j u s t e db y o n e ,f o r

e x a m p l e :

I N C$ 7 0 \ a d d1 t o l o c a t i o n$ 7 0

D E C$ 1 5 0 0 \ s u b t r a c t1 f r o ml o c a t i o n$ 1 5 0 0

B o t hi n s t r u c t i o n sc o n d i t i o nt h eN e g a t i v ea n dZ e r of l a g sa s d e s c r i b e de a r l i e r .

P r o g r a m1 6s h o w sh o wt h e s e i n s t r u c t i o n sc a nb e u s e d ,i n t h i sc a s et o p r i n t' A B Co nt h e

s c r e e n .

P r o g r a m1 6

1 0 R E M* * I N C R E M E N T I N GA R E G I S T E R* *

2 0 C O D E= 8 2 8

3 0 F O R L O O P= 0 T O 1 6

4 0 R E A DB Y T E

5 0 P O K EC O D E+ L O O P ,B Y T E

6 0 N E X TL O O P

7 0

8 0 R E M* * M / CD A T A* *

R E M$ A 9 ,$ 4 1 — L D A# A S C " A "

R E M$ A A — T A X

R E M$ E 8 — I N X

R E M$ 2 0 ,$ D 2 ,$ F F — J S R$ F F D 2

R E M$ 8 A — T X A

R E M$ E 8 — I N X

R E M$ 2 0 ,$ D 2 ,$ F F — J S R$ F F D 2

R E M$ 8 A — T X A

R E M$ 2 0 ,$ D 2 ,$ F F — J S R$ F F D 2

R E M$ 6 0 — R T S

9 0 D A T A1 6 9 , 6 5

1 0 0 D A T A1 7 0

1 1 0 D A T A2 3 2

1 2 0 D A T A3 2 , 2 1 0 , 2 5 5

1 3 0 D A T A1 3 8

1 4 0 D A T A2 3 2

1 5 0 D A T A3 2 , 2 1 0 , 2 5 5

1 6 0 D A T A1 3 8

1 7 0 D A T A3 2 , 2 1 0 , 2 5 5

1 8 0 D A T A9 6

1 9 0

2 0 0 S Y SC O D E

T h em e a n i n go f e a c hl i n ei s a s f o l l o w s :

L i n e s2 0 - 6 0A s s e m b l e m a c h i n ec o d e .

L i n e9 0 P l a c eA S C I I' A ' i n a c c u m u l a t o r .

L i n e1 0 0 S a v ei t i n X r e g i s t e r .

L i n e1 1 0 I n c r e m e n tX t o g i v ec o d ef o r' B \

L i n e 1 2 0 P r i n t' A ' t o s c r e e n .

L i n e1 3 0 T r a n s f e rA S C I Ic o d ef o r4 B 't o a c c u m u l a t o r .L i n e1 4 0 I n c r e m e n tX t o g i v ec o d ef o r' C \

L i n e1 5 0 P r i n t' B ' t o s c r e e n .

L i n e1 6 0 T r a n s f e rA S C I Ic o d ef o r ' C i n t oa c c u m u l a t o r .

L i n e 1 7 0 P r i n t' C t o s c r e e n .

L i n e1 8 0 B a c kt o B A S I C .

L i n e2 0 0 E x e c u t em a c h i n ec o d e .

5 7

Page 65: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 65/180

C O M P A R I S O N S

T h e r ea r et h r e ec o m p a r ei n s t r u c t i o n s :

C M P C o m p a r ea c c u m u l a t o r

C P X C o m p a r eX r e g i s t e r

C P Y C o m p a r eY r e g i s t e r

T h ec o n t e n t so f a n yr e g i s t e rc a nb e c o m p a r e dw i t ht h ec o n t e n t so f a s p e c i f i e dm e m o r y

l o c a t i o n ,o r a s i s o f t e n t h ec a s e ,t h ev a l u ei m m e d i a t e l yf o l l o w i n gt h em n e m o n i c .T h e

v a l u e sb e i n gt e s t e dr e m a i nu n a l t e r e d .D e p e n d i n go n t h er e s u l to f t h ec o m p a r i s o n ,t h e

N e g a t i v e ,Z e r oa n dC a r r yf l a g sa r ec o n d i t i o n e d .H o wa r et h e s ef l a g sc o n d i t i o n e d ? W e l l ,

t h ef i r s tt h i n gt h e6 5 0 2d o e si s s e tt h eC a r r yf l a g( C= 1 ) .I t t h e ns u b t r a c t s t h es p e c i f i e d

v a l u ef r o mt h ec o n t e n t so f t h er e g i s t e r .I f t h ev a l u ei s l e s st h a n ,o r e q u a lt o t h er e g i s t e r

c o n t e n t s ,t h eC a r r yf l a gr e m a i n ss e t !I f t h et w ov a l u e sa r ee q u a lt h eZ e r of l a gi s a l s os e t .I f

t h eC a r r yf l a gh a sb e e nc l e a r e d ,i t m e a n st h a tt h ev a l u ew a sg r e a t e rt h a nt h er e g i s t e r

c o n t e n t s ,a n da b o r r o wo c c u r r e d d u r i n gt h es u b t r a c t i o n .T h eN e g a t i v ef l a gi s g e n e r a l l y

( b u tn o t a l w a y s )s e tw h e nt h i so c c u r s — t h i si s o n l yr e a l l yv a l i df o rt w o ' sc o m p l e m e n tc o m p a r e s .T a b l e1 2 . 1s u m m a r i z e st h e s et e s t s .

T a b l e1 2 . 1

T e s t

R e g i s t e rl e s st h a nd a t a

R e g i s t e re q u a lt o d a t a

R e g i s t e r g r e a t e rt h a nd a t a

F l a g s

C

0

1

1

Z

0

1

0

N

1

0

0

B R A N C H E S

D e p e n d i n go n t h er e s u l to fa c o m p a r i s o n ,t h ep r o g r a mw i l ln e e de i t h e r t ob r a n c h b a c kt o

r e p e a tt h el o o p ,b r a n c ht o a n o t h e rp o i n ti n t h ep r o g r a m ,o rj u s ts i m p l yc o n t i n u e .T h i st y p e

o f b r a n c h i n gi s c a l l e dc o n d i t i o n a l b r a n c h i n g ,a n de i g h ti n s t r u c t i o n se n a b l ev a r i o u sc o n d i t i o n st o b e e v a l u a t e d .T h eb r a n c hi n s t r u c t i o n sa r e :

B N E B r a n c hi f n o te q u a l Z = 0

B E Q B r a n c hi f e q u a l Z = 1

B C C B r a n c hi f C a r r yc l e a r C = 0

B C S B r a n c hi f C a r r ys e t C = 1

B P L B r a n c hi f p l u s N = 0

B M 1 B r a n c hi f m i n u s N = 1

B V C B r a n c hi f o v e r f l o wc l e a r V = 0

B V S B r a n c hi f o v e r f l o ws e t V = 1

L e t ' sn o wr e w r i t e t h eB A S I Cp r o g r a mt o p r i n t t e ne x c l a m a t i o nm a r k s( s e ep a g e5 6 )i na s s e m b l yl a n g u a g e .

P r o g r a m1 7

1 0 R E M* * 1 0 ! M A R K S* *

2 0 C O D E= 8 2 8

5 8

Page 66: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 66/180

3 0 F O R L O O P= 0 T O 1 2

4 0 R E A DB Y T E

5 0 P O K EC O D E+ L O O P ,B Y T E

6 0 N E X TL O O P

7 0

8 0 R E M* * M / CD A T A* *

9 0 D A T A1 6 2 , 0

1 0 0 D A T A1 6 9 , 3 3

1 1 0 D A T A3 2 , 2 1 0 , 2 5 5

1 2 0 D A T A2 3 2

1 3 0 D A T A2 2 4 , 1 0

1 4 0 D A T A2 0 8 , 2 4 8

1 5 0 D A T A9 6

1 6 0

1 7 0 S Y S C O D E

R E M$ A 2 , $ 0 0

R E M$ A 9 ,$ 2 1

R E M$ 2 0 ,$ D 2 ,$ F F

R E M$ E 8

R E M$ E 0 ,$ 0 A

R E M$ D 0 ,$ F 8

R E M$ 6 0

— L D X# 0

— L D A# A S C " ! "

— J S R$ F F D 2

— I N X

— C P X# 1 0

— B N E- 8

— R T S

L i n e s9 0 a n d1 0 0i n i t i a l i z et h eX r e g i s t e ra n dp l a c e t h eA S C I Ic o d ef o ra n e x c l a m a t i o n

m a r ki n t ot h ea c c u m u l a t o r . L i n e1 1 0u s e st h eJ S Ri n s t r u c t i o n t o p r i n tt h ea c c u m u l a t o r ' s

c o n t e n t st o t h es c r e e n .T h eX r e g i s t e ri s i n c r e m e n t e d( l i n e1 2 0 )a n di f n o ty e te q u a lt o 1 0 t h e

B N Ei n s t r u c t i o n( l i n e1 4 0 )i s p e r f o r m e da n dt h ep r o g r a ml o o p sb a c kt o p r i n ta n o t h e r

e x c l a m a t i o nm a r k .

I f y o ul o o kc l o s e l y a tt h ep r o g r a ml i s t i n g ,m o r ee s p e c i a l l ya t l i n e1 4 0 ,y o uw i l ln o t i c e

t h a tt h eB N Eo p c o d ei s f o l l o w e db y a s i n g l e b y t e ,a n dn o ta n a d d r e s sa s y o um a yh a v e

e x p e c t e d .T h i sb y t ei s k n o w na s t h ed i s p l a c e m e n t ,a n dt h i st y p e o f a d d r e s s i n gi s c a l l e d

r e l a t i v ea d d r e s s i n g .T h eo p e r a n d ,i n t h i sc a s e2 4 8( $ F 8 ) ,t e l l st h e p r o c e s s o rt h a ta

b a c k w a r db r a n c ho f 8 b y t e si s r e q u i r e d .

T o d i s t i n g u i s hb r a n c h e sb a c k w a r d s f r o mb r a n c h e sf o r w a r dy o uu s e s i g n e db i n a r y ,An e g a t i v ev a l u ei n d i c a t e sa b a c k w a r db r a n c hw h i l ea p o s i t i v en u m b e ri n d i c a t e sa f o r w a r d

b r a n c h .O b v i o u s l y ,i t i s i m p o r t a n tt o k n o wh o wt o c a l c u l a t et h e s ed i s p l a c e m e n t s — s ol e t ' s

t r y i t .

B e f o r es i t t i n gd o w ni n f r o n to f y o u rV I C2 0 i t i s a l w a y sb e s tt o w r i t eo u t y o u r

m a c h i n ec o d ep r o g r a m o np a p e r .W h i l ei t i s p e r f e c t l yf e a s i b l et o w r i t ei t ' a tt h ek e y b o a r d '

t h i sn e a r l ya l w a y sl e a d s t op r o b l e m sc a u s e db ye r r o r si n t h ec o d i n g( a sI h a v ep r o v e dm a n yt i m e s ! ) .T o m a k ei t c l e a rj u s tw h e r el o o p sa r eb r a n c h i n gt o a n df r o m ,y o uc a nu s el a b e l s .

T a b l e1 2 . 2s h o w st h el a y o u tf o rP r o g r a m1 7 .

T a b l e1 2 . 2

L a b e l

S T A R T

L O O P

M n e m o n i c s

L D X # 0L D A# A S C" ! "

J S R$ F F D 2

I N XC P X# 1 0

B N EL O O PR T S

C o m m e n t s

C o d eb e g i n s

L o o pc o u n t e r

A S C I Ic o d ef o rTB r a n c hd e s t i n a t i o n

P r i n t 4 ! '

X = X + 1

I s X = 1 0 y e t ?

N o ,c o n t i n u e

A l ld o n e !

5 9

Page 67: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 67/180

T o c a l c u l a t e t h eb r a n c hd i s p l a c e m e n t ,j u s tc o u n tt h e n u m b e ro f b y t e sf r o mt h e

d i s p l a c e m e n tb y t ei t s e l fb a c kt o t h el a b e lL O O P .

L O O P

J S R$ F F D 2

I N X

C P X# 1 0

B N EL O O P

3

1

2

2

b y t e s

b y t e

b y t e s

b y t e s

T h i sg i v e sa t o t a ld i s p l a c e m e n to f8 b y t e s .N o t et h a tt h er e l a t i v ed i s p l a c e m e n ta n dt h eB N Eo p c o d ea r ei n c l u d e di n t h ec o u n tb e c a u s et h eP r o g r a mC o u n t e rw i l lb e p o i n t i n gt o t h e

i n s t r u c t i o na f t e rt h eb r a n c h .

T oc o n v e r tt h i sb a c k w a r dd i s p l a c e m e n ti n t oi t ss i g n e db i n a r yf o r m ,y o uj u s tc a l c u l a t ei t s

t w o ' sc o m p l e m e n tv a l u e( s e eC h a p t e r3 i f y o un e e ds o m er e f r e s h i n go n h o wt o d o t h i s ) .

0 0 0 0 1 0 0 0 ( 8 )

1 1 1 1 01 1 1

1 1 1 1 1 00 0 ( - 8= $ F 8 )

S i n c ea l l b r a n c hi n s t r u c t i o n s a r et w ob y t e s l o n g ,e f f e c t i v ed i s p l a c e m e n t so f — 1 2 6b y t e s

( - 1 2 8+ 2 ) a n d+ 1 2 9b y t e s( 1 2 7+ 2 ) a r ep o s s i b l e .

T o m a k el i f ee a s i e r ,y o u ' l lb e r e l i e v e dt o k n o wt h a tA p p e n d i x6 c o n t a i n sa c o u p l eo f

t a b l e sf r o m w h i c hy o uc a nr e a do f fd i s p l a c e m e n tv a l u e sd i r e c t l y .

T od e m o n s t r a t et h eu s eo f af o r w a r d b r a n c he n t e ra n dR U NP r o g r a m1 8w h i c hd i s p l a y s

a 4 Y 'i f l o c a t i o n$ F Bc o n t a i n sa ' 0 ' o r a n ' N ' o t h e r w i s e .

P r o g r a m1 8

1 0 R E M* * F O R W A R DB R A N C H I N G* *

2 0 C O D E= 8 2 8

3 0 F O RL O O P= 0 T O 1 4

4 0 R E A DB Y T E

5 0 P O K EC O D E+ L O O P ,B Y T E

6 0 N E X TL O O P

7 0

8 0 R E M* * M / CD A T A* *

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

1 0 0 D A T A2 4 0 , 6

1 1 0 D A T A1 6 9 , 7 8

1 2 0

1 3 0 D A T A3 2 , 2 1 0 , 2 5 5

1 4 0 D A T A9 6

1 5 0

1 6 0 D A T A1 6 9 , 8 9

1 7 0 D A T A2 4

1 8 0 D A T A1 4 4 , 2 4 7

R E M$ A 5 ,$ F B

R E M$ F 0 ,$ 0 6

R E M$ A 9 ,$ 4 E

R E MB A C K

R E M$ 2 0 ,$ D 2 ,$ F F

R E M$ 6 0

R E MZ E R O

R E M$ A 9 ,$ 5 9

R E M$ 1 8

R E M$ 9 0 ,$ F 7

— L D A$ F B

— B E Q Z E R O

— L D A# A S C " N '

— J S R$ F F D 2

— R T S

— L D A# A S C " Y "

— C L C

— B C CB A C K

6 0

Page 68: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 68/180

1 9 0

2 0 0 S Y S C O D E

I n t h i sp r o g r a mI h a v e u s e dl a b e l sc o n t a i n e dw i t h i nR E Ms t a t e m e n t st o i d e n t i f yt h e

j u m pa d d r e s s e s .T h i s s h o u l dh e l pt o m a k et h i n g sc l e a r e r .

T h em a c h i n ec o d eb e g i n sb y l o a d i n gt h eb y t ea t l o c a t i o n$ F Bi n t o t h ea c c u m u l a t o r .I f

t h eb y t ei s z e r ot h i s w i l la u t o m a t i c a l l ys e tt h eZ e r of l a g ,a n dt h eb r a n c ho f l i n e1 0 0w i l lb ee x e c u t e d( B E Q — b r a n c hi f e q u a l ) .B e c a u s et h i si s a f o r w a r db r a n c ha p o s i t i v ev a l u ei s u s e d

t o i n d i c a t et h ed i s p l a c e m e n t — i nt h i si n s t a n c e6 b y t e sf o r w a r d .T h ea c c u m u l a t o ri s t h e n

l o a d e d w i t ht h eA S C I Ic o d ef o rY . I f t h e c o n t e n t so f$ F Ba r en o n - z e r o , t h e nt h eB E Qf a i l s

a n dt h ea c c u m u l a t o ri s l o a d e dw i t h' N \

L i n e s1 7 0a n d1 8 0i l l u s t r a t ea t e c h n i q u ek n o w na sf o r c e db r a n c h i n g .T h eC a r r yf l a gi s

c l e a r e da n da B C C( b r a n c hc a r r yc l e a r )e x e c u t e d — b e c a u s ew e c l e a r e d t h eC a r r yf l a g

b e f o r e h a n dw e h a v e f o r c e dt h ep r o c e s s o rt o j u m pt o B A C K .W h e n e v e ra r e g i s t e ri s u s e da s a l o o pc o u n t e r ,a n do n l ya s a l o o pc o u n t e r ,i t i s b e t t e r t o

w r i t et h em a c h i n ec o d es o t h a tt h er e g i s t e rc o u n t sd o w nr a t h e rt h a nu p .W h y ?W e l l ,y o u

m a yr e c a l lf r o mC h a p t e r6 t h a tw h e na r e g i s t e ri s d e c r e m e n t e ds u c ht h a ti t h o l d s z e r ot h e

Z e r of l a gi s s e t .U s i n gt h i sp r i n c i p l eP r o g r a m1 7 c a n b er e - w r i t t e n a s f o l l o w s ,s o t h a t t h eC P X# 1 0i n s t r u c t i o ni s s u p e r f l u o u s :

P r o g r a m1 9

1 0 R E M* * D O W NC O U N T* *

2 0 C O D E= 8 2 8

3 0 F O R L O O P= 0 T O 1 0

4 0 R E A DB Y T E

5 0 P O K EC O D E+ L O O P ,B Y T E

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

1 5 0

1 6 0

1 7 0

N E X TL O O P

R E M* * M / CD A T A

D A T A1 6 2 , 1 0 :

D A T A1 6 9 , 3 3 :

D A T A3 2 , 2 1 0 , 2 5 5:

D A T A2 0 2 :

D A T A2 0 8 , 2 5 0 :

D A T A9 6 :

S Y SC O D E

R E M$ A 2 ,$ 0 A

R E M$ A 9 ,$ 2 1

R E ML O O P

R E M$ 2 0 ,$ D 2 ,$ F F

R E M$ C A

R E M$ D 0 ,$ F A

R E M$ 6 0

— L D X# 1 0

— L D A# A S C " !

— J S R$ F F D 2— D E X

— B N EL O O P

— R T S

F O R. • . N E X TI n B A S I Ct h eF O R. . . N E X Tl o o pm a k e st h eV I C2 0 e x e c u t ea s e t o f s t a t e m e n t sa

s p e c i f i e dn u m b e ro f t i m e s .A l lF O R . . .N E X Tl o o p s — i n c l u d i n gt h o s e c o n t a i n i n gp o s i t i v e

a n dn e g a t i v eS T E Ps i z e s — a r er e l a t i v e l ye a s yt o p r o d u c ei n m a c h i n ec o d e ,a n de a c ht y p ei s

s u m m a r i z e ^b e l o w .

1 . F O RL O O P= F I R S TT OS E C O N D. . . N E X T

T h i sl o o pr e q u i r e so n l yt w ov a r i a b l e s ,t h es t a r ta n de n dv a l u e sn o r m a l l yt e r m e dt h e

6 1

Page 69: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 69/180

e n t r ya n de x i tc o n d i t i o n s .H e r et h e ya r e d e f i n e db y t h e t w ov a r i a b l e sF I R S Ta n d

S E C O N D . N oS T E Ps i z ei s i n d i c a t e d t h e r e f o r e t h el o o pw i l li n c r e m e n tb y o n ee a c ht i m e

r o u n d .I n a s s e m b l e rt h i si s i m p l e m e n t e da s :

S E T U PL D XF I R S T \ p l a c el o o ps t a r ti n t oc o u n t e r

L O O P \ m a r kl o o pe n t r y

. . . \ l o o ps t a t e m e n t sh e r e

I N X \ a d do n et o c o u n t e r

C P XS E C O N D \ h a sl o o pl i m i tb e e nr e a c h e d ?

B N EL O O P \ n o , e x e c u t el o o pa g a i n

2 . F O RL O O P= S E C O N DT O F I R S TS T E P- 1 . . . N E X T

T h i sl o o pi s e s s e n t i a l l yt h es a m ea s t h e p r e v i o u s o n e , e x c e p tt h a t t h ec o u n t e rm u s t

i n i t i a l l yb e l o a d e dw i t hS E C O N D ,a n dt h e nd e c r e m e n t e d b y o n ee a c ht i m er o u n dt o

m i m i ct h eS T E P- 1 s t a t e m e n t .

S E T U PL D XS E C O N D \ p l a c el o o ps t a r ti n c o u n t e r

L O O P \ m a r kl o o pe n t r y

. . . \ l o o ps t a t e m e n t sh e r e

D E X \ d e c r e m e n tc o u n t e r

C P XF I R S T \ f i n i s h e d ?

B C SL O O P \ n o , e x e c u t ea g a i n

I n t h i sl o o pt h e C a r r yf l a gr e m a i n ss e t u n t i lt h e l o o pc o u n ti s d e c r e m e n t e db e l o wF I R S T .T h e r e f o r e ,i f S E C O N D= 1 0a n dF I R S T =6 t h el o o pi s e x e c u t e d5 t i m e s ,j u s t a si t

w o u l db e i n B A S I C .

3 . F O RL O O P= F I R S TT O S E C O N DS T E P3 . . . N E X T

T h i sl o o pi s s i m i l a r t o t h a td e s c r i b e di n 1 , e x c e p tt h a t t h r e eI N Xi n s t r u c t i o n s a r e

r e q u i r e dt o p r o d u c et h eS T E P3 .

S E T U P

L O O P

L D XF I R S T

I N X

I N X

I N X

C P XS E C O N D

B N EL O O P

\

\

\

\

\

\

p l a c el o o ps t a r ti n c o u n t e r

l o o pe n t r y

e x e c u t el o o ps t a t e m e n t s h e r e

i n c r e m e n t c o u n t e rb y 3

f i n i s h e d ?

n o ,g o a g a i n

O n r e a c h i n gS E C O N Dt h eC P Xi n s t r u c t i o nw i l ls u c c e e d ,s e t t i n gt h eZ e r of l a g .T h e

B N EL O O Pw i l lf a i la n dt h el o o pi s c o m p l e t e d .

4 . F O R L O O P= S E C O N DT O F I R S TS T E P- 3 . . . N E X T

T h i sl o o pi s s i m i l a r t o t h a ta l r e a d yd e s c r i b e di n 2 ,b u tn e e d st h r e eD E Xi n s t r u c t i o n s t o

g e n e r a t et h eS T E P- 3 .

S E T U PL D XS E C O N D \ p l a c el o o ps t a r ti n c o u n t e r

L O O P \ l o o pe n t r y

6 2

Page 70: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 70/180

. . . \ e x e c u t el o o ps t a t e m e n t s

D E X \ d e c r e m e n t b yt h r e e

D E X

D E X

C P XF I R S T \ f i n i s h e d ?

B C SL O O P \ n o ,g o a g a i n

5 . F O R L O O P= F I R S TT O S E C O N DS T E PN U M. . . N E X T

I f N U Mi s k n o w na t t h e t i m eo f w r i t i n gt h e p r o g r a mt h e nj u s ti n c l u d et h e c o r r e c t

n u m b e ro f I N Xs t a t e m e n t s .H o w e v e r ,i f N U M= 1 0 ,t e n I N Xi n s t r u c t i o n sw o u l db e a

p r e t t yi n e f f i c i e n tp i e c eo f p r o g r a m m i n g .T h er u l eh e r ei s t o u s eI N Xf o r S T E P s o f4 o r l e s s

a n do t h e r w i s et o u s et h e A D Ci n s t r u c t i o n .

S E T U PL D X

L O O P

P H A

T X A

C L C

A D C

T A X

P L A

C P X

B N E

F I R S T

N U M

S E C O N D

L O O P

\ s a v ea c c u m u l a t o ri f n e e d e d

\ m o v ec o u n t e ra c r o s si n t o

a c c u m u l a t o r

\ c l e a rC a r r yf l a g

\ a d dS T E Ps i z e

\ r e s t o r ec o u n t e r

\ a n da c c u m u l a t o r

\ f i n i s h e d ?

\ n o ,g o a g a i n

N o t eh e r et h a tt h ec o u n t e r ' s c o n t e n t sm u s tb e t r a n s f e r r e d t o t h ea c c u m u l a t o rf o rt h e

A D CN U Mi n s t r u c t i o n t ob e p e r f o r m e d ,a n dr e t u r n e dt o t h eX r e g i s t e ro n c o m p l e t i o n .I f

t h ea c c u m u l a t o r ' sc o n t e n t sa r e i m p o r t a n tt h e yc a nb e p r e s e r v e do n t h es t a c k .

6 . F O R L O O P= S E C O N DT O F I R S TS T E P- N U M. . . N E X T

T h er u l e sf o r5 a p p l yh e r e ,e x c e p tt h a t t h eC a r r yf l a gm u s tf i r s tb e s e ta n dS B Cu s e dt o

m i m i ct h e m i n u sS T E Ps i z e .

S E P U PL D XS E C O N D

L O O P

P H A

T X A

S E C

S B CN U M

T A X

P L A

C P XF I R S T

B C SL O O P

\ s a v ea c c u m u l a t o ri f n e e d e d

\ m o v ec o u n t e ra c r o s s

\ g e tC a r r yf l a g

\ m i n u sS T E P

\ r e s t o r ec o u n t e r

\ a n da c c u m u l a t o r

\ f i n i s h e d ?

\ n o ,g o a g a i n

O f c o u r s e , t h eY r e g i s t e rc o u l dh a v e b e e nu s e de q u a l l yw e l la s t h el o o pc o u n t e r .

6 3

Page 71: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 71/180

M E M O R YC O U N T E R S

I n v a r i a b l yp r o g r a m st h a to p e r a t eo n a b s o l u t e a d d r e s s e sw i l lr e q u i r e r o u t i n e st h a ta r e

c a p a b l eo f i n c r e m e n t i n g o rd e c r e m e n t i n gt h e s ed o u b l eb y t ev a l u e s .A t y p i c a lc a s eb e i n ga

p r o g r a mu s i n gp o s t - i n d e x e di n d i r e c ta d d r e s s i n gt h a tn e e d st o s e q u e n t i a l l ya c c e s sa w h o l e

r a n g eo f c o n s e c u t i v em e m o r yl o c a t i o n s .T h ef o l l o w i n gt w o p r o g r a m ss h o wh o wt h i sc a n

b e d o n e .F i r s t ,i n c r e m e n t i n gm e m o r ya d d r e s s e s .

P r o g r a m2 0

1 0

2 0

3 0

4 0

5 0

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

1 5 0

1 6 0

1 7 0

1 8 0

1 9 0

2 0 0

2 1 0

R E M* * I N C R E M E N T I N GM E M O R Y* *

C O D E= 8 2 8

F O R L O O P= 0 T O 6

R E A DB Y T E

P O K EC O D E+ L O O P ,B Y T E

N E X TL O O P

R E M* * M / CD A T A* *

D A T A2 3 0 , 2 5 1 : R E M$ E 6 ,$ F B

D A T A2 0 8 , 2 : * R E M$ D 0 ,$ 0 2

D A T A2 3 0 , 2 5 2 : R E M$ E 6 ,$ F C

R E MO V E R

D A T A9 6 : R E M$ 6 0

P O K E2 5 1 , 0: P O K E2 5 2 , 0

S Y SC O D E

L O W= P E E K ( 2 5 1 )

H I G H= P E E K ( 2 5 2 )

N U M= H I G H* 2 5 6+ L O W

P R I N TN U M

G O T O1 6 0

— I N C$ F B

— B N EO V E R

— I N C $ F C

— R T S

L i n e s9 0 t o 1 2 0 c o n t a i nt h e r e l e v a n t c o d e .E a c ht i m ei t i s e x e c u t e db y t h eS Y SC O D Ec a l l( l i n e1 6 0 ) t h el o wb y t e o ft h ec o u n t e ra t $ F Bi s i n c r e m e n t e d .W h e nt h el o wb y t e

c h a n g e sf r o m$ F Ft o $ 0 0t h eZ e r of l a gi s s e t ,a n ds o t h eb r a n c hi n l i n e1 0 0w i l ln o t t a k e

p l a c ea l l o w i n gt h eh i g h b y t eo f t h ec o u n t e ra t $ F Ct o b e i n c r e m e n t e d .

D e c r e m e n t i n ga c o u n t e ri s a l i t t l el e s ss t r a i g h t f o r w a r d .

P r o g r a m2 1

1 0 R E M* * D E C R E M E N T I N GM E M O R Y* *

2 0 C O D E8 2 8

3 0 F O R L O O P= 0 T O 8

4 0 R E A DB Y T E

5 0 P O K EC O D E+ L O O P ,B Y T E

6 0 N E X TL O O P

7 0

6 4

Page 72: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 72/180

8 0 R E M* * M / CD A T A* *

9 0 D A T A1 6 5 , 2 5 1 : R E M$ A 5 ,$ F B — L D A$ F B

1 0 0 D A T A2 0 8 , 2 : R E M$ D 0 ,$ 0 2 — B N E L S B D E C

1 1 0 D A T A1 9 8 , 2 5 2 : R E M$ C 6 ,$ F C — D E C$ F C

1 2 0 R E ML S B D E C

1 3 0 D A T A1 9 8 , 2 5 1 : R E M$ C 6 ,$ F B — D E C$ F B

1 4 0 D A T A9 6 : R E M$ 6 0 — R T S

1 5 0

1 6 0 P O K E2 5 1 , 0: P O K E2 5 2 , 0

1 7 0 S Y S C O D E

1 8 0 L O W= P E E K ( 2 5 1 )

1 9 0 H I G H= P E E K ( 2 5 2 )

2 0 0 N U M= H I G H *2 5 6+ L O W

2 1 0 P R I N TN U M

2 2 0 G O T O1 7 0

F i r s t ,t h ea c c u m u l a t o ri s l o a d e dw i t ht h el o wb y t eo f t h ec o u n t e r ,$ F B( l i n e9 0 ) ;t h i s

p r o c e d u r ew i l lc o n d i t i o nt h eZ e r of l a g .I f i t i s s e t ,t h el o wb y t eo ft h ec o u n t e rm u s tc o n t a i n

$ 0 0 ,a n dt h e r e f o r e t h eh i g hb y t en e e d st o b e d e c r e m e n t e d( l i n e1 1 0 ) — t h e l o wb y t eo f t h e

c o u n t e rw i l la l w a y sb e d e c r e m e n t e d( l i n e1 3 0 ) .

I f a l l r e g i s t e r sa r eb e i n g u s e dt h e f o l l o w i n ga l t e r n a t i v ec a nb e e m p l o y e d :

I N CC O U N T E R

D E CC O U N T E R

B N EL S B D E C

D E C C O U N T E R+ 1

L S B D E CD E CC O U N T E R

T h ep r o c e s so f f i r s ti n c r e m e n t i n ga n dt h e nd e c r e m e n t i n gt h el o wb y t eo f C O U N T E Rw i l l

c o n d i t i o nt h eZ e r of l a g i nt h es a m em a n n e ra s a l o a di n s t r u c t i o n .

6 5

Page 73: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 73/180

1 3 S u b r o u t i n e sa n d J u m p s

S U B R O U T I N E S

I f y o ua r ef a m i l i a rw i t hB A S I C ' SG O S U Ba n dR E T U R Ns t a t e m e n t sy o us h o u l dh a v el i t t l e

d i f f i c u l t yu n d e r s t a n d i n gt h et w oa s s e m b l e re q u i v a l e n t s :

J S R J u m ps a v er e t u r n

R T S R e t u r nf r o ms u b r o u t i n e

I f y o ua r en o tf a m i l i a r ,I w i l le x p l a i n .

Q u i t eo f t e nd u r i n gt h e c o u r s eo f w r i t i n ga p r o g r a my o uw i l lf i n d t h a ta s p e c i f i c

o p e r a t i o nm u s tb e p e r f o r m e dm o r et h a no n c e ,p e r h a p ss e v e r a l t i m e s .R a t h e rt h a nt y p i n g

i n t h es a m eg r o u po f m n e m o n i c so n e v e r yo c c a s i o n ,w h i c hi s b o t ht i m ec o n s u m i n g a n d

i n c r e a s e s t h ep r o g r a m s *l e n g t h ,t h e yc a n b ee n t e r e d o n c e ,o u to f t h ew a yo f t h em a i n

p r o g r a mf l o w ,a n d c a l l e dw h e nr e q u i r e d .N o te v e r yp i e c eo f r e p e t i t i v ea s s e m b l e r

w a r r a n t s b e i n gc o d e di n t oa s u b r o u t i n e ,h o w e v e r .F o re x a m p l e :

I N X: D E Y: S T AT e m p

i s q u i t ec o m m o n( o rs o m e t h i n gv e r ys i m i l a r )h o w e v e r ,w h e na s s e m b l e di t o n l y o c c u p i e s

f o u rb y t e so f m e m o r y ,w h i c hi s t h es a m em e m o r yr e q u i r e m e n ta s a J S R. . . R T Sc a l l .

N o t h i n gi s t o b e g a i n e db y i n t r o d u c i n g as u b r o u t i n eh e r et h e n ,i n f a c t ,i t w i l la c t u a l l ys l o w

t h ep r o g r a mo p e r a t i o nd o w nb y a f e wm i l l i o n t h so f a s e c o n d !O n t h eo t h e rh a n d :

C L C: L D AT e m p: A D CV a l u e: S T AS o m e w h e r e

m i g h tw e l lw a r r a n ti t so w ns u b r o u t i n ec a l la s ,i fa b s o l u t ea d d r e s s i n gi s e m p l o y e d ,i t m a yb e

u p t o t e n b y t e si n l e n g t h .

L e t ' sn o wl o o ka t a s h o r tp r o g r a m , w h i c hc o n t a i n sa c o u p l eo f s u b r o u t i n ec a l l st o t h eV I C ' sK e r n a l .

P r o g r a m2 2

1 0 R E M* * S U B R O U T I N ED E M O* *

2 0 C O D E= 8 2 8

3 0 F O RL O O P= 0 T O 1 4

4 0 R E A DB Y T E

5 0 P O K EC O D E+ L O O P ,B Y T E

6 0 N E X TL O O P

7 0

8 0 R E M* * M / CD A T A* *

9 0 R E MW A I T

1 0 0 D A T A3 2 , 2 2 8 , 2 5 5: R E M$ 2 0 ,$ E 4 ,$ F F — J S R $ F F E 4

1 1 0 D A T A2 4 0 , 2 5 1 : R E M$ F 0 ,$ F B — B E QW A I T

6 6

Page 74: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 74/180

1 2 0 D A T A1 3 3 , 2 5 1

1 3 0 D A T A2 3 0 , 2 5 1

1 4 0 D A T A1 6 5 , 2 5 1

1 5 0 D A T A3 2 , 2 1 0 , 2 5 5

1 6 0 D A T A9 6

1 7 0

1 8 0 S Y S C O D E

R E M $ 8 5 ,$ F B

R E M$ E 6 ,$ F B

R E M$ A 5 ,$ F B

R E M$ 2 0 ,$ D 2 ,$ F F

R E M$ 6 0

— S T A$ F B

— I N C$ F B

— L D A$ F B

— J S R$ F F D 2

— R T S

T h i sp r o g r a mu s e st w os u b r o u t i n ec a l l s .T h ef i r s t( l i n e1 0 0 )i s t o t h eK e r n a lG E T I Ns u b r o u t i n ea t 6 5 5 0 8( $ F F E 4 )w h i c hi s , i n e f f e c t ,a k e y b o a r ds c a nr o u t i n e .A f u l l

d e s c r i p t i o no f t h i sr o u t i n e( a n da l lo t h e rK e r n a lr o u t i n e s )c a nb e f o u n di n C h a p t e r1 7b u t

b r i e f l y t h i sr o u t i n er e t u r n sa d e t e c t e dk e y ' sA S C I Iv a l u ei n t h ea c c u m u l a t o r .I f n ok e y p r e s s

i s d e t e c t e dt h e nt h e a c c u m u l a t o rh o l d s0 . L i n e 1 1 0t e s t st h e a c c u m u l a t o rf o r z e r o ,

b r a n c h i n gb a c kt o t h eG E T I Nr o u t i n eu n t i la k e y p r e s si s d e t e c t e d .T h e nt h e k e y ' sc o d ei s

s t o r e di n l o c a t i o n2 5 1( $ F B )a n di s i n c r e m e n t e d( l i n e1 3 0 )b e f o r eb e i n gl o a d e db a c ki n t o

t h ea c c u m u l a t o r .F i n a l l y ,t h eC H R O U Ts u b r o u t i n e ,w h i c hw e h a v e u s e ds e v e r a lt i m e s

b e f o r e ,i s c a l l e dt o p r i n tt h ea c c u m u l a t o r ' sc o n t e n t st o t h es c r e e n .R U Nt h ep r o g r a mt o s e e

t h ee f f e c t .T r yp r e s s i n g t h e' A ' k e y — a' B ' s h o u l db e p r i n t e d !

N o wt h a tw eh a v et a k e n ag e n e r a lo v e r v i e wo f s u b r o u t i n ec a l l sa n dt h e i rf u n c t i o n si t w i l l

b e u s e f u l t os e e j u s th o wt h e ym a n a g et o d o w h a tt h e y d o .

T h et w oi n s t r u c t i o n sJ S Ra n dR T Sm u s tp e r f o r mt h r e ef u n c t i o n sb e t w e e nt h e m .F i r s t l y ,

t h e c u r r e n t c o n t e n t so f t h e P r o g r a mC o u n t e r m u s tb e s a v e d s ot h a tc o n t r o lm a yb e

r e t u r n e dt o t h ec a l l i n gp r o g r a ma t s o m es t a g e .S e c o n d l y ,t h e6 5 0 2 m u s t b et o l dt o e x e c u t e

t h es u b r o u t i n eo n c ei t a r r i v e st h e r e .F i n a l l y ,p r o g r a mc o n t r o lm u s tb e h a n d e db a c kt o t h e

c a l l i n gp r o g r a m .

T h eJ S Ri n s t r u c t i o np e r f o r m st h ef i r s tt w or e q u i r e m e n t s .T os a v et h er e t u r na d d r e s si tp u s h e st h e t w ob y t e c o n t e n t so f t h e P r o g r a mC o u n t e r o n t ot h es t a c k .T h eP r o g r a m

C o u n t e ra t t h i ss t a g ew i l lh o i dt h ea d d r e s so f t h e l o c a t i o nc o n t a i n i n gt h et h i r db y t eo ft h e t h r e ew h i c hc o n s t i t u t e t h eJ S Ri n s t r u c t i o n .A f t e rp u s h i n gt h e P r o g r a mC o u n t e r

o n t ot h es t a c k ,t h eo p e r a n ds p e c i f i e db y J S Ri s p l a c e di n t ot h eP r o g r a mC o u n t e r ,w h i c h

e f f e c t i v e l yt r a n s f e r sc o n t r o lt o t h es u b r o u t i n e .

a )M a i n

p r o g r a m

b )

c ) S u b r o u t i n e

C 9

0 2

1 0

F i g u r e1 3 . 1 S t e p s t a k e nb y a J S Ri n s t r u c t i o n .

6 7

Page 75: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 75/180

Page 76: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 76/180

a c c u m u l a t o ra l o n ew o u l dn o t b e s u f f i c i e n t .T h e r ea r e t h r e eg e n e r a lw a y si n w h i c h

i n f o r m a t i o no r p a r a m e t e r sc a n b ep a s s e di n t os u b r o u t i n e s ,t h e s ea r e :

1 . T h r o u g hr e g i s t e r s .

2 . T h r o u g hm e m o r yl o c a t i o n s .

3 . T h r o u g ht h es t a c k .

L e t ' sl o o ka t e a c ho f t h e s em e t h o d si n t u r n .

T h r o u g hr e g i s t e r s

T h i si s q u i t eo b v i o u s l yt h es i m p l e s tm e t h o dp a r t i c u l a r l yb e c a u s ei t c a n k e e pt h es u b r o u t i n e

i n d e p e n d e n to f m e m o r y .B e c a u s eo n l yt h r e er e g i s t e r sa r ea v a i l a b l et h o u g h , o n l yt h r e e

b y t e so f i n f o r m a t i o nc a n b e c o n v e y e d .T h er e g i s t e r sm a yt h e m s e l v e s c o n t a i nv i t a l

i n f o r m a t i o n , s ot h i sw o u l dn e e dt o b es a v e d ,p o s s i b l yo n t h es t a c k ,f o r f u t u r er e s t o r a t i o n .

T h r o u g hm e m o r y

T h i si s p r o b a b l yt h e e a s i e s tm e t h o di f n u m e r o u sb y t e sa r e b e i n gp a s s e di n t ot h e

s u b r o u t i n e .T h em o s te f f i c i e n tw a yi s t o u s em e m o r yi n z e r op a g eb e t w e e nl o c a t i o n s$ F Ba n d$ F Ei n c l u s i v e ,b e c a u s et h i si s r e s e r v e df o ru s e ra p p l i c a t i o n s .I f t h es u b r o u t i n eu s e s

s e v e r a lb y t e so f m e m o r y ,a n e a tw a yo fa c c e s s i n gt h e mi s t o p l a c et h es t a r ta d d r e s so f t h e

d a t ai n t h eX r e g i s t e r ,a n dt h e n u s ez e r op a g e i n d e x e da d d r e s s i n g w i t h$ 0 0a s t h eo p e r a n da s f o l l o w s :

L D X$ F B

J S RS u b r o u t i n e

S u b r o u t i n eL D A$ 0 0 , .X

I N X

C P X# $ F E

B N ES u b r o u t i n e

T h ed i s a d v a n t a g e o f u s i n gm e m o r yl o c a t i o n st o p a s sp a r a m e t e r si s t h a ti t t i e st h e

s u b r o u t i n et o a g i v e na r e a ,m a k i n gi t m e m o r yd e p e n d e n t .H o w e v e r , o nm o s to c c a s i o n s

t h i sd o e sn o tr e a l l ym a t t e r .

T h r o u g ht h es t a c k

P a s s i n gp a r a m e t e r st h r o u g ht h es t a c kn e e d sc a r e ,s i n c e t h et o p o ft h es t a c kw i l lc o n t a i nt h e

r e t u r n a d d r e s s .T h i sm e t h o da l s o r e q u i r e st w ob y t e so f m e m o r yi n w h i c ht h e r e t u r n

a d d r e s sc a nb e s a v e da f t e rp u l l i n gi t f r o mt h es t a c k( t h o u g h , o fc o u r s e ,t h ei n d e xr e g i s t e r s

c o u l d b eu s e d ) .I f t h e s t a c ki s u s e d ,t h es u b r o u t i n en e e d st o c o m m e n c ew i t h :

P L A \ p u l ll o wb y t e

S T AA D D R \ a n ds a v ei t

P L A . . \ p u l lh i g hb y t e

S T AA D D R+ 1 \ a n ds a v ei t

T h eS T Ai n s t r u c t i o n sc a nb e r e p l a c e db y T A Xa n dT A Yr e s p e c t i v e l y .I t i sc o m m o np r a c t i c ew h e nu s i n gt h ei n d e xr e g i s t e r st o h o l da n a d d r e s s ,t o p l a c et h el o wb y t ei n t h eXr e g i s t e ra n dt h eh i g h b y t ei n t h eY r e g i s t e r .

6 9

Page 77: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 77/180

O n c et h ep a r a m e t e r sh a v eb e e np u l l e df r o mt h es t a c kt h e r e t u r na d d r e s sc a nb e p u s h e d

b a c ko n t o i t w i t h ,

L D AA D D R+ 1

P H A

L D AA D D R

P H A

R e m e m b e r ,t h es t a c ki s a L I F Os t r u c t u r e ,s o t h eb y t e sn e e dt o b ea c c e s s e da n dp u s h e di n

t h e r e v e r s eo r d e rf r o mt h a ti n w h i c ht h e yw e r ep u l l e da n ds a v e d .

I f a v a r i a b l en u m b e ro f p a r a m e t e r si s b e i n gp a s s e di n t ot h e s u b r o u t i n e ,t h ea c t u a l

n u m b e rc a nb e a s c e r t a i n e de a c ht i m eb ye v a l u a t i n gt h ec o n t e n t so ft h eS t a c kP o i n t e r .T h i s

c a n b e c a r r i e do u t b y t r a n s f e r r i n gi t s v a l u et o t h eX r e g i s t e rw i t hT S X ,a n d

i n c r e m e n t i n gt h e X r e g i s t e re a c ht i m et h e s t a c ki s p u l l e du n t i l ,s a y ,$ F Fi s r e a c h e d ,

i n d i c a t i n g t h e s t a c ki s e m p t y .T h ea c t u a l v a l u et e s t e df o rw i l ld e p e n do nw h e t h e ra n yo t h e r

s u b r o u t i n ec a l l sw e r e p e r f o r m e dp r e v i o u s l y — m a k i n gt h ec u r r e n to n ea n e s t e ds u b r o u t i n e .

T h ev a l u e$ F Fi s t h e r e f o r ej u s ta h y p o t h e t i c a lc a s ea n da s s u m e sn o t h i n go t h e rt h a nt h a t

d a t ai s p r e s e n to n t h es t a c k .

J U M P S

T h eJ M Pi n s t r u c t i o no p e r a t e si n a s i m i l a rm a n n e rt o B A S I C ' SG O T Os t a t e m e n ti n t h a ti t

t r a n s f e r sc o n t r o lt o a n o t h e rp a r to f t h ep r o g r a m .I n a s s e m b l e r h o w e v e r ,a n a b s o l u t e

a d d r e s si s s p e c i f i e dr a t h e rt h a na l i n en u m b e r( w h i c hd o e sn o t ,o fc o u r s e ,e x i s t i nm a c h i n e

c o d e ) .T h ei n s t r u c t i o no p e r a t e ss i m p l yb yp l a c i n gt h et w ob y t ea d d r e s ss p e c i f i e d a f t e rt h e

o p c o d ei n t ot h eP r o g r a mC o u n t e r ,e f f e c t i v e l yp r o d u c i n ga j u m p .

P r o g r a m2 3c r e a t e sa c o n t i n u o u s l o o pb yj u m p i n gb a c kt o t h es t a r to ft h ep r o g r a m .T h i s

i s s e e na s a n u n e n d i n gs t r e a mo fa s t e r i s k sb e i n gp r i n t e dt o t h es c r e e n — y o u ' l lh a v et o p r e s s

R U N / S T O Pa n dR E S T O R Et o g e tb a c kt o B A S I C .

P r o g r a m2 3

1 0 R E M* * J U M P I N G* *

2 0 C O D E= 8 2 8

3 0 F O RL O O P= 0 T O7

4 0 R E A DB Y T E

5 0 P O K EC O D E+ L O O P ,B Y T E

6 0 N E X TL O O P

7 0

8 0 R E M* * M / CD A T A* *

9 0 R E MS T A R T

1 0 0 D A T A1 6 9 , 4 2 : R E M$ A 9 ,$ 2 A — L D A# A S C " * "

1 1 0 D A T A3 2 , 2 1 0 , 2 5 5: R E M$ 2 0 ,$ D 2 ,$ F F — J S R$ F F D 2

1 2 0 D A T A7 6 , 6 0 , 3 : R E M$ 4 C ,$ 3 C ,$ 0 3 — J M PS T A R T

1 3 0

1 4 0 S Y S C O D E

7 0

Page 78: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 78/180

J M Pw i l lg e n e r a l l yb e u s e dt o l e a p f r o go v e r as e c t i o no f m a c h i n ec o d et h a tn e e dn o tb e

e x e c u t e d b e c a u s e at e s tf a i l e d .F o re x a m p l e :

B C CO V E R

J M PS O M E W H E R E

O V E R L D AB Y T E

A S LA

I N X

D E Y

S O M E W H E R ES T AT E M P

H e r e ,i f t h eC a r r yf l a gi s c l e a r ,t h ej u m pi n s t r u c t i o nw i l lb e s k i p p e da n dt h ec o d eo f

O V E Re x e c u t e d .I f t h eC a r r yf l a gi s s e tt h et e s tw i l lf a i l ,t h eJ M Pw i l lb e e n c o u n t e r e da n dt h ec o d eo f O V E Rb y p a s s e d .

A f u r t h e ru s eo f J M P ,t h e ' i n d i r e c tj u m p ' ,w a sd e t a i l e di n C h a p t e r9 . A s w es a w ,t h e

a d d r e s st h a ti s a c t u a l l yj u m p e dt o i s s t o r e di n a v e c t o r , t h ea d d r e s so fw h i c hi s s p e c i f i e di n

t h ei n s t r u c t i o n .J M P( $ F B )b e i n ga n e x a m p l e .

7 1

Page 79: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 79/180

1 4 S h i f t sa n dR o t a t e s

B a s i c a l l y ,t h e s ei n s t r u c t i o n sa l l o wt h eb i t s i na s i n g l eb y t et o b em o v e do n eb i tt o t h el e f to r

o n eb i tt o t h er i g h t .T h e r ea r eF o u rI n s t r u c t i o n sa v a i l a b l e :

A S L A r i t h m e t i cs h i f tl e f t

L S R L o g i c a ls h i f tr i g h t

R O L R o t a t el e f t

R O R R o t a t er i g h t

A l lo f t h e s e i n s t r u c t i o n sm a yo p e r a t ed i r e c t l yo n t h ea c c u m u l a t o r ,o r o n a s p e c i f i e d

m e m o r yb y t e :

A S LA

R O L$ F B

\ a r i t h m e t i cs h i f tl e f ta c c u m u l a t o r

\ r o t a t el e f tl o c a t i o n$ F B

L e t ' si n v e s t i g a t ee a c hc o m m a n di n m o r ed e t a i l .

A R I T H M E T I CS H I F TL E F T

A S Lm o v e st h ec o n t e n t so f t h es p e c i f i e db y t el e f tb y a s i n g l eb i t .

C a r r yf l a g

B e f o r es h i f t :

A f t e rs h i f t :

c

B ,

B , B « B 5 B < B , B 2 B , B o

B « B 5 B < B 3 B 2 B , B o 0

B i t7 ( B 7 )i s s h i f t e di n t ot h eC a r r yf l a g ,a n da ' 0 't a k e st h e p l a c eo fb i t0 a s t h er e s to ft h eb i t s

a r e s h u f f l e dl e f t .T h eo v e r a l le f f e c ti s t o d o u b l et h ev a l u eo f t h eb y t ei n q u e s t i o n .

E x a m p l e :

A c c u m u l a t o r

L D A$ 4 2 \ l o a da c c u m u l a t o rw i t h$ 4 2

A S LA \ s h i f ta c c u m u l a t o rl e f t

T h ea c c u m u l a t o rn o wh o l d s$ 8 4 , t w i c e t h eo r i g i n a lv a l u e !

0 1 0 0 0 01 0

A c c u m u l a t o r

1 0 0 0 01 0 0

7 2

Page 80: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 80/180

A f u r t h e re x a m p l eo f A S Li s g i v e nb y P r o g r a m2 4 w h i c ha s k sf o r an u m b e r( l e s st h a n

6 4 ) ,m u l t i p l i e si t b y f o u ru s i n gA S LA , A S LA , a n dp r i n t st h ea n s w e r .

P r o g r a m2 4

1 0 R E M* * M U L T I P L YB YF O U R* *

2 0 C O D E= 8 2 8

3 0 F O RL O O P= 0 T O6

4 0 R E A DB Y T E

5 0 P O K EC O D E+ L O O P ,B Y T E

6 0 N E X TL O O P

7 0

8 0 R E M* * M / CD A T A* *

9 0 D A T A1 6 5 , 2 5 1 : R E M$ A 5 ,$ F B1 0 0 D A T A1 0 : R E M$ 0 A

1 1 0 D A T A1 0 : R E M$ 0 A

1 2 0 D A T A1 3 3 , 2 5 1 : R E M$ 8 5 ,$ F B

1 3 0 D A T A9 6 : R E M$ 6 0

1 4 0

1 5 0 P R I N TC H R $( 1 4 7 )

1 6 0 I N P U T" N U M B E RT OB E* 4 " ;N U M

1 7 0 P O K E 2 5 1 , N U M

1 8 0 P R I N T " X 4 = " ;

1 9 0 S Y S C O D E

2 0 0 P R I N TP E E K ( 2 5 1 )

— L D A$ F B

— A S LA

— A S LA

— S T A$ F B

— R T S

L O G I C A LS H I F TR I G H T

L S Ri s s i m i l a r t oA S Le x c e p tt h a ti t m o v e st h eb i t si n t h eo p p o s i t ed i r e c t i o n ,w i t hb i t0 ( B O )

j u m p i n gi n t o t h eC a r r yf l a ga n da 0 f o l l o w i n gi n t ot h es p o t v a c a t e db y b i t7 ( B 7 ) .

B y t e

C a r r y

f l a g

B ,

0

B «

B 7

B 5

B «

B 4

B 5

B ,

B 4

B 2

B ,

B ,

B ,

B o

B ,

C

B o

B e f o r es h i f t :0 -

A f t e rs h i f t

T h i si n s t r u c t i o nc o u l d - w e l lh a v eb e e nc a l l e da r i t h m e t i cs h i f tr i g h tb e c a u s ei t e f f e c t i v e l y

d i v i d e s t h eb y t eb e i n gs h i f t e db y t w o .F o re x a m p l e :

A c c u m u l a t o r

L D A$ 4 2 \ l o a da c c u m u l a t o rw i t h$ 4 2

7 3

Page 81: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 81/180

L S RA \ s h i f ta c c u m u l a t o rr i g h t 0 0 0 1 0 0 0 0 1

T h ea c c u m u l a t o rn o wh o l d s$ 2 1 , h a l ft h eo r i g i n a l v a l u e .

U s i n g :

L S RA : B C SE l s e w h e r e

o r ,

L S RA : B C CS o m e w h e r e

i s a g o o de f f i c i e n tw a yo f t e s t i n gb i t0 o f t h ea c c u m u l a t o r .P r o g r a m2 5t e s t st h e c o n d i t i o no fb i t0 o fa n i n p u tA S C I In u m e r i cc h a r a c t e rb ys h i f t i n g

i t i n t ot h eC a r r yf l a gp o s i t i o n .I f t h ec a r r yi s c l e a ra z e r oi s p r i n t e d ,i fs e t — ao n ei sp r i n t e d

i n s t e a d .

P r o g r a m2 5

1 0

2 0

3 0

4 0

5 0

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

1 5 0

1 6 0

1 7 0

1 8 0

R E M* * T E S TB I T0 * *

C O D E= 8 2 8

F O RL O O P= 0 T O 1 0

R E A DB Y T E

P O K EC O D E+ L O O P ,B Y T E

N E X T L O O P

:

R E M* * M / CD A T A* *

D A T A1 6 5 , 2 5 1 : R E M$ A 5 ,$ F B

D A T A7 4 . : R E M$ 4 A

D A T A1 6 9 , 4 8 : R E M$ A 9 ,$ 3 0

D A T A1 0 5 , 0 : R E M$ 6 9 ,$ 0 0

D A T A3 2 , 2 1 0 , 2 5 5: R E M$ 2 0 ,$ D 2 ,$ F F

D A T A9 6 : R E M$ 6 0

;

I N P U TA

P O K E2 5 1 ,A

S Y SC O D E

— L D A$ F B

— L S RA

— L D A# A S C " 0 "

— A D C# 0

— J S R$ F F D 2

— R T S

T h ei n p u tv a l u e( l i n e1 6 0 )i s P O K E di n t ol o c a t i o n2 5 1 ( $ F B ) .T h i si s t h e nl o a d e di n t o t h e

a c c u m u l a t o r( l i n e9 0 )a n da l o g i c a ls h i f tr i g h tp e r f o r m e d( l i n e1 0 0 )w h i c hm o v e sb i t0 i n t o

t h eC a r r yf l a gp o s i t i o n — e i t h e rs e t t i n go r c l e a r i n gi t . T h ea c c u m u l a t o ri s t h e nl o a d e dw i t h

t h eA S C I Ic o d ev a l u ef o r' 0 ' ( l i n e1 2 0 )b e f o r et h eA D Ci n s t r u c t i o na d d s0 t o i t ( l i n e1 3 0 ) !

N ot h a t ' sn o ta s c r a z ya s i t s e e m s — r e m e m b e rt h a tt h eA D Ci n s t r u c t i o n t a k e s t h ev a l u eo f

t h eC a r r yf l a gi n t oc o n s i d e r a t i o n .I f i t i s c l e a rt h e nt h ea c c u m u l a t o rw i l ls t i l lh o l dt h e

A S C I Ic o d ef o r0 , b u ti f i t i s s e t ,o n ew i l lb ea d d e dt o t h ea c c u m u l a t o r ' sv a l u e s ot h a ti t n o w

h o l d st h eA S C I Ic o d ef o r 1 !

R O T A T EL E F T

T h i si n s t r u c t i o n u s e s t h eC a r r yf l a ga s a n i n t hb i t ,r o t a t i n g t h ew h o l eb y t el e f to n eb i ti n a

c i r c u l a rm o t i o n ,w i t hb i t7 m o v i n gi n t ot h eC a r r yf l a g ,w h i c hi n t u r nm o v e sa c r o s st o b i t 0 .

7 4

Page 82: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 82/180

B y t e

B e f o r er o t a t e : B , B « B 5 B 4 B 3

C

B 2 B , B o

C a r r y

f l a g

B 6 B 5 8 . B 3 B 2

B 7

00*

B . cA f t e rr o t a t e :

R O Lp r o v i d e sa n e a s ym e t h o do f t e s t i n ga n yo f t h ef o u rb i t sc o n s t i t u t i n gt h eu p p e r

n i b b l eo f t h ea c c u m u l a t o r .T h ed e s i r e db i ti s r o t a t e di n t ot h eb i t7 p o s i t i o n ,t h u ss e t t i n go r

c l e a r i n gt h eN e g a t i v ef l a ga s a p p r o p r i a t e .

E x a m p l e :t e s tb i t 5 o f a c c u m u l a t o r .

A c c u m u l a t o r

C a r r yf l a g

A F 1 0 1 0 1 1 1 1 N = 1

R O L A / r o t a t eb i t6 i n t ot h eb i t 7 p o s i t i o n

A c c u m u l a t o r

C a r r yf l a g

5 E 0 1 0 1 1 1 1 0 N = 0

R O L A / r o t a t eb i t 5 i n t o t h eb i t 7 p o s i t i o n

A c c u m u l a t o r

C a r r yf l a g

B C 1 0 1 1 1 1 01 N = 1

T h eN e g a t i v ef l a gi s n o ws e t ,i n d i c a t i n g t h a tb i t 5 o f t h ea c c u m u l a t o rw a ss e t .

R O T A T ER I G H T

W o r k sj u s tl i k eR O Le x c e p tt h eb i t sm o v et o t h er i g h t .

7 5

Page 83: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 83/180

B y t e

B e f o r er o t a t e :

A f t e rr o t a t e :

B ,

C

B 6

B ,

B 5

B 6

a . B 3

C

C a r r y

f l a g

B 5 B 4

B o

B 2

B 3

B ,

B 2

B o

B ,

E x a m p l e :R O Ra c c u m u l a t o rc o n t a i n i n g $ 8 F .

C L C \ c l e a rC a r r yf l a g

L D A$ 8 F \ l o a da c c u m u l a t o rw i t h$ 8 F

A c c u m u l a t o r

C a r r yf l a g

R O R \ r o t a t er i g h t

A c c u m u l a t o r

C a r r yf l a g

8 F

0

1 0 0 01 1 1 1

4 7

1

0 1 0 0 01 1 1

L O G I C A L L YS P E A K I N G

I f y o un e e dt o s h i f t( o r r o t a t e ) t h ec o n t e n t so fa p a r t i c u l a rl o c a t i o ns e v e r a lt i m e s ,i t i s m o r e

e f f i c i e n tt o l o a dt h ev a l u ei n t o t h ea c c u m u l a t o r ,s h i f t( o r r o t a t e ) t h a ta n ds t o r ei t b a c k ,

t h a nt o m a n i p u l a t et h el o c a t i o nd i r e c t l y .

F o re x a m p l e ,t o r o t a t el o c a t i o n$ 1 2 3 4t o t h e r i g h tf o u rt i m e s ,w e .c o u l du s e :

R O R$ 1 2 3 4

R O R$ 1 2 3 4

R O R$ 1 2 3 4

R O R$ 1 2 3 4

T h i su s e st w e l v eb y t e so f m e m o r y ,f o u rf o rt h e i n s t r u c t i o n sa n de i g h tf o r a d d r e s s e s .

A l t e r n a t i v e l y :

L D A$ 1 2 3 4

7 6

Page 84: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 84/180

R O RA

R O RA

R O RA

R O RA

S T A$ 1 2 3 4

u s e st w ob y t e sl e s sa n di s 2 5 %q u i c k e ri n o p e r a t i o n .

S o f a r w e h a v e o n l yc o n s i d e r e ds h i f t i n ga n d r o t a t i n gs i n g l eb y t e s .B y u s i n g

c o m b i n a t i o n so f i n s t r u c t i o n si t i s p o s s i b l e t op e r f o r ms i m i l a ro p e r a t i o n so n t w ob y t e

v a l u e ss u c ha s $ C A F E .

T o p e r f o r m a no v e r a l lA S Lo n t w ob y t e s l o c a t e da t H I G Ha n dL O W ,A S L a n dR O La r eu s e di n c o n j u n c t i o n :

A S LH I G H \ s h i f tb i t 7 b y L O Wi n t oC a r r yf l a g

R O LL O W \ r o t a t ei t i n t ob i t0 o fH I G H

B ye x c h a n g i n gt h ec o m m a n d sa n o v e r a l lL S Ro n t h es a m et w ob y t e sc a nb e p e r f o r m e d :

L S R H I G H \ s h i f tb i t0 H I G Hi n t oC a r r yf l a g

R O RL O W \ r o t a t ei t i n t ob i t 7 o f L O W

N o t et h a tt h eb y t e sa r em a n i p u l a t e di n t h er e v e r s eo r d e rb e c a u s ew ew i s ht o m o v et h e

b i t si n t h eo p p o s i t ed i r e c t i o n .A sw i t hs i n g l eb y t es h i f t s ,t h et w ob y t e v a l u e sc a nb ed o u b l e d

o r d i v i d e di n h a l f .

T w ob y t er o t a t e st o m o v et h eb i t si n a c i r c u l a rm a n n e r ,a r es i m p l yr o t a t i o no p e r a t i o n s

p e r f o r m e dt w i c e !H o w e v e r ,a s w i t ht w ob y t es h i f t s ,i t i s i m p o r t a n tt o g e tt h eb y t er o t a t i o n

o r d e rc o r r e c t .

A t w ob y t eR O Ri s p e r f o r m e dw i t h :

R O RH I G H \ r o t a t eb i t0 o f H I G Hi n t oC a r r yf l a g

R O RL O W \ a n d o ni n t ob i t 7 o f L O W

W h i l et w ob y t eR O L sa r ei m p l e m e n t e dw i t h :

R O LL O W \ r o t a t eb i t 7 o f L O Wi n t oC a r r yf l a g

R O L H I G H \ a n do n i n t ob i t0 o fH I G H

F i n a l l y ,m o v i n gb a c k - t os i n g l eb y t es h i f t s ,t o s h i f tt h ec o n t e n t so ft h ea c c u m u l a t o rr i g h t

o n eb i t w h i l e p r e s e r v i n gt h e s i g nb i t ,u s et h ef o l l o w i n gt e c h n i q u e :

T A Y \ s a v ea c c u m u l a t o ri n Y r e g i s t e r

A S LA \ m o v es i g nb i t( b i t7 ) i n t oC a r r yf l a g

T Y A \ r e s t o r eo r i g i n a lv a l u eb a c ki n t o

a c c u m u l a t o r

R O RA \ r o t a t e r i g h tm o v i n gs i g nb i tb a c k

i n t ob i t 7

T h eY r e g i s t e rh a sb e e nu s e da s a t e m p o r a r ys t o r e f o rt h ea c c u m u l a t o r .W ec o u l d h a v e

u s e dt h eX r e g i s t e ro r a m e m o r yl o c a t i o nw i t he q u a le f f e c t .

P R I N T I N GB I N A R Y !

Q u i t eo f t e n ,i t i s n e c e s s a r yt o k n o wt h eb i n a r yb i t p a t t e r nt h a ta r e g i s t e ro r m e m o r yl o c a t i o n h o l d s .T h i si s p a r t i c u l a r l y t r u ei n t h ec a s eo f t h e S t a t u sr e g i s t e rw h e nt h e

7 7

Page 85: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 85/180

c o n d i t i o no f i t s f l a g sc a no f t e np r o v i d ea g r e a t d e a lo f i n f o r m a t i o na b o u tt h ew a ya

p r o g r a mi s r u n n i n g .P r o g r a m2 6 s h o w sh o wt h eb i n a r y v a l u e o fa b y t ec a nb e p r i n t e d .I t u s e s t h e S t a t u s

r e g i s t e r ' sc o n t e n t sa t t h et i m et h ep r o g r a mi s R U Na s a n e x a m p l e .

P r o g r a m2 6

1 0 R E M* * B I N A R YO U T P U TO F S R * *

2 0 C O D E= 8 2 8

3 0 F O RL O O P= 0 T O 1 8

4 0 R E A DB Y T E

5 0 P O K EC O D E+ L O O P ,B Y T E

6 0 N E X TL O O P

7 0

8 0 R E M* * M / CD A T A* *

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

1 5 0

1 6 0

1 7 0

1 8 0

1 9 0

2 0 0

2 1 0

2 2 0

2 3 0

2 4 0

D A T A8 :

D A T A1 0 4 :

D A T A1 3 3 , 2 5 1 :

D A T A ,1 6 2 , 8 :

D A T A6 , 2 5 1

D A T A1 6 9 , 4 8

D A T A1 0 5 , 0

D A T A3 2 , 2 1 0 , 2 5 5

D A T A2 0 2

D A T A2 0 8 , 2 4 4

D A T A9 6

P R I N TC H R $( 1 4 7 )

P R I N T" N V — B D I Z C

S Y SC O D E

R E M

R E M

R E M

R E M

R E M

R E M

R E M

R E M

R E M

R E M

R E M

R E M

$ 0 8

$ 6 8

$ 8 5 ,$ F B

$ A 2 ,$ 0 8

N B I T

$ 0 6 ,$ F B

$ A 9 , $ 3 0

$ 6 9 ,$ 0 0

$ 2 0 ,$ D 2 ,$ F F

$ C A

$ D 0 ,$ F 4

$ 6 0

— P H P

— P L A

— S T A$ F B

— L D X# $ 0 8

— A S L$ F B

— L D A# A S C " 0

— A D C# $ 0 0

— J S R$ F F D 2

— D E X

— B N EN B I T

— R T S

T h eS t a t u sr e g i s t e rn e e d st o b e s a v e di n a m e m o r yl o c a t i o ns o t h a ti t c a nb e m a n i p u l a t e d .

T o d o t h i si t m u s tb e t r a n s f e r r e di n t ot h ea c c u m u l a t o rb y f i r s tp u s h i n gi t o n t o t h es t a c k

w i t hP H P( l i n e9 0 )a n dt h e np u l l i n gi t i n t ot h ea c c u m u l a t o rw i t hP L A( l i n e1 0 0 ) ;i t c a nt h e n

b e s t o r e di n z e r op a g ea t l o c a t i o n2 5 1( l i n e1 1 0 ) .T h eX r e g i s t e ri s u s e dt o c o u n tt h ee i g h t

b i t so f t h eb y t e ,s o i t i s i n i t i a l i z e da c c o r d i n g l y( l i n e1 2 0 ) .L i n e1 3 0i s u s e da s a l a b e lm a r k e r

f o rN B I T( s h o r t f o rn e x tb i t ) .T h ea r i t h m e t i cs h i f tl e f t( l i n e1 4 0 )m o v e st h em s bo fl o c a t i o n

2 5 1( $ F B )i n t o t h eC a r r yf l a g .T h eb i tv a l u e( 0o r 1 ) i s p r i n t e do u tu s i n gt h eA S C I Ic o d ef o r

0 a n da d d i n gt h eC a r r yf l a gc o n t e n t st o i t ( l i n e s1 5 0t o 1 - 7 0 )a s d e s c r i b e df o rP r o g r a m2 5 .T h eb i tc o u n t e ri s d e c r e m e n t e d( l i n e1 8 0 )a n da b r a n c ht o N B I Te x e c u t e di f X h a sn o t

r e a c h e dz e r o( l i n e1 9 0 ) .

T o p r o v et h a t t h ep r o g r a md o e sw o r k ,t r y i n c l u d i n gl i n e ss u c ha s :

8 5 D A T A1 6 9 , 2 5 5

8 5 D A T A1 6 9 , 0

R E M$ A 9 ,$ F F

R E M$ A 9 , $ 0 0

— L D A# $ F Fs e t N

— L D A# $ 0 0c l e a rN s e tZ

7 8

Page 86: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 86/180

T h e s ew i l lc o n d i t i o nt h es t a t u s f l a g sa s i n d i c a t e d .( D o n ' tf o r g e t t oc h a n g et h eL O O Pc o u n t

i n l i n e3 0 . )Y o um i g h tl i k et o t r ym o d i f y i n gt h ep r o g r a mt o p r i n tt h eb i n a r yv a l u eo f a n y

k e yp r e s s e do n t h ek e y b o a r d !

B I T

T h ei n s t r u c t i o n ,B I T ,a l l o w si n d i v i d u a lb i t so f a s p e c i f i e dm e m o r yl o c a t i o nt o b e t e s t e d .I t

h a sa n i m p o r t a n tf e a t u r ei n t h a ti t d o e sn o tc h a n g et h ec o n t e n t so f e i t h e rt h ea c c u m u l a t o r

o r t h em e m o r yl o c a t i o nb e i n gt e s t e d ,b u t , a sy o um a yh a v eg u e s s e d ,i t c o n d i t i o n s v a r i o u s

f l a g sw i t h i nt h e S t a t u sr e g i s t e r .T h u s :

1 . T h eN e g a t i v ef l a gi s l o a d e dw i t ht h ev a l u eo f b i t7 o f t h e l o c a t i o nb e i n gt e s t e d .

2 . T h eO v e r f l o wf l a gi s l o a d e d w i t ht h ev a l u eo f b i t 6 o f t h e l o c a t i o nb e i n gt e s t e d .

3 . T h eZ e r of l a gi s s e ti f t h eA N Do p e r a t i o nb e t w e e nt h ea c c u m u l a t o ra n dt h em e m o r y

l o c a t i o np r o d u c e sa z e r o .

B y l o a d i n gt h ea c c u m u l a t o rw i t ha m a s ki t i s p o s s i b l et o t e s ta n yp a r t i c u l a rb i to f a

m e m o r yl o c a t i o n .F o re x a m p l e ,t o t e s tl o c a t i o nT E M Pt o s e ei f b i t0 i s c l e a rt h ef o l l o w i n g

c o u l d b eu s e d :

L D A # 1 \

B I TT E M P \ t e s tb i t0

I f b i t0 o fT E M Pc o n t a i n sa 0 , t h eZ e r of l a gw i l lb e s e t ,o t h e r w i s ei t w i l lr e m a i nc l e a r ,t h u s

a l l o w i n gB N Ea n dB E Qt o b e u s e df o rt e s t i n gp u r p o s e s .

T h i sm a s k i n gp r o c e d u r e n e e do n l yb e u s e df o rt e s t i n gb i t s0 t o 5b e c a u s eb i t s6 a n d7 a r e

a u t o m a t i c a l l yc o p i e di n t ot h eN e g a t i v ea n dO v e r f l o wf l a g s ,w h i c hh a v et h e i ro w nt e s t

i n s t r u c t i o n s .

B I TT E M P

B M I \ b r a n c hi f b i t 7 s e t

B P L \ b r a n c hi f b i t 7 c l e a r

B V C \ b r a n c hi f b i t 6 s e t

B V S \ b r a n c hi f b i t 6 c l e a r

7 9

Page 87: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 87/180

1 5 a n dD i v i s i o n

M U L T I P L I C A T I O N

P e r f o r m i n gm u l t i p l i c a t i o ni n a s s e m b l yl a n g u a g ei s n o tt o od i f f i c u l tp r o v i d e dt h a ty o u

h a v eg r a s p e dw h a t y o uh a v er e a ds o f a r . U n f o r t u n a t e l yt h e r e a r en o m u l t i p l i c a t i o n

i n s t r u c t i o n sw i t h i n t h eV I C ' s6 5 0 2i n s t r u c t i o ns e t , t h e r e f o r ei t i s n e c e s s a r yt o

d e v e l o pa n a l g o r i t h mt o c a r r yo u tt h i sp r o c e d u r e .

L e t ' sf i r s tl o o ka t t h es i m p l e s tm e t h o do f m u l t i p l y i n gt w os m a l l v a l u e st o g e t h e r .

C o n s i d e rt h e m u l t i p l i c a t i o n5 X 6 .W ek n o wt h er e s u l ti s 3 0 ,b u th o wd i dw eo b t a i nt h i s ?

S i m p l yb y a d d i n gt o g e t h e rs i x l o t so f f i v e , i no t h e rw o r d s :5 + 5 + 5 + - 5 + 5+ 5 = 3 0

T h i si s q u i t ee a s yt o i m p l e m e n t :

P r o g r a m2 7

1 0 R E M* * S I M P L EM U L T I P L I C A T I O N* *

2 0

3 0

4 0

5 0

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

1 5 0

1 6 0

1 7 0

1 8 0

1 9 0

C O D E= 8 2 8

F O R L O O P= 0

R E A DB Y T E

P O K EC O D E

N E X TL O O P

T O 1 6

+ L O O P ,B Y T E

R E M* * M / CD A T A* *

D A T A1 6 9 , 0

D A T A1 3 3 , 2 5 1

D A T A1 6 2 , 6

D A T A2 4

:

D A T A1 6 5 , 2 5 1

D A T A1 0 5 , 5

D A T A1 3 3 , 2 5 1

D A T A2 0 2

D A T A2 0 8 , 2 4 7

D A T A9 6

: R E M$ A 9 ,$ 0 0

: R E M$ 8 5 ,$ F B

: R E M$ A 2 , $ 0 6

: R E M$ 1 8

R E ML O O P

: R E M$ A 5 ,$ F B .

: R E M$ 6 9 ,$ 0 5

: R E M$ 8 5 ,$ F B

: R E M$ C A

: R E M$ D 0 ,$ F 7

: R E M$ 6 0

— L D A# $ 0 0

— S T A$ F B

— L D X# $ 0 6

— C L C

— L D A$ F B

— A D C# $ 0 5

— S T A$ F B

— D E X

— B N EL O O P

— R T S

8 0

Page 88: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 88/180

2 0 0 :

2 1 0 S Y SC O D E

2 2 0 P R I N T" R E S U L T= " ;

2 3 0 P R I N TP E E K ( 2 5 1 )

A l lw eh a v ed o n eh e r ei s t o c r e a t ea l o o pt o a d d5 t ot h ec o n t e n t so fl o c a t i o n$ F Bs i xt i m e s

t o p r o d u c et h ed e s i r e dr e s u l t !T h i sm e t h o di s r e a s o n a b l ef o rm u l t i p l y i n g s m a l lv a l u e s ,b u t

n o tp a r t i c u l a r l ye f f i c i e n tf o rl a r g e rn u m b e r s .

A t t h i sp o i n t ,i t m i g h tb e w o r t hr e v i e w i n gt h eu s u a lp r o c e d u r ef o rm u l t i p l y i n gt w ol a r g e

d e c i m a ln u m b e r st o g e t h e r .C o n s i d e r1 2 3X 1 5 0 .W e w o u l da p p r o a c ht h i s ,( w i t h o u t

c a l c u l a t o r s , p l e a s e ! ) t h u s :

( M u l t i p l i c a n d )

( M u l t i p l i e r )

( P a r t i a lp r o d u c t1 )

( P a r t i a lp r o d u c t2 )

( P a r t i a lp r o d u c t3 )

1 8 45 0 ( R e s u l to r f i n a lp r o d u c t . )

T h ei n i t i a lt w ov a l u e sa r et e r m e dt h em u l t i p l i c a n da n dm u l t i p l i e r ,a n dt h e i rp r o d u c ti s

f o r m e db y m u l t i p l y i n g ,i n t u r n ,e a c hd i g i t i nt h em u l t i p l i e rb y t h em u l t i p l i c a n d .T h i s

r e s u l t si n a p a r t i a lp r o d u c t ,w h i c hi s w r i t t e ns u c ht h a ti t sl e a s ts i g n i f i c a n td i g i ts i t sd i r e c t l y

b e l o wt h em u l t i p l i e rd i g i tt o w h i c hi t c o r r e s p o n d s .W h e nf o r m a t i o n o fa l l t h ep a r t i a l

p r o d u c t si s c o m p l e t e d ,t h e ya r ea d d e dt o g e t h e rt o g i v et h ef i n a lp r o d u c to r r e s u l t .

W ec a na p p l yt h i st e c h n i q u et o b i n a r yn u m b e r s ,s t a r t i n go f fw i t ht w ot h r e eb i tv a l u e s ,

0 1 0 X 0 1 1

( M u l t i p l i c a n d )

( M u l t i p l i e r )

( P a r t i a lp r o d u c t1 )

( P a r t i a lp r o d u c t2 )

( P a r t i a lp r o d u c t3 )

0 0 1 1 0 ( R e s u l t )

I g n o r i n gl e a d i n gz e r o s ,w eo b t a i nt h er e s u l t1 1 0( 2 X 3 = 6 ) .M o v i n go n t o o u ro r i g i n a l

d e c i m a l e x a m p l e ,i t s b i n a r ye q u i v a l e n ti s :

0 1 1 1 1 0 1 11 2 3 ( $ 7 B )

X 1 0 0 1 0 1 1 01 5 0 ( $ 9 6 )

0 1 1 1 1 0 11

0 1 1 1 1 0 1 10 0 0 0 0 0 0 0

0 1 1 1 1 0 11

0 0 0 0 0 0 0 0

0 1 1 11 0 1 1

1 0 0 1 0 0 0 0 0 0 1 0 0 1 01 8 4 5 0 ( $ 4 8 1 2 )

H o p e f u l l yy o uw i l lh a v en o t i c e dt h a ti f t h e m u l t i p l i e rd i g i ti s a 0 i t w i l lr e s u l t i nt h ew h o l e

p a r t i a lp r o d u c tb e i n ga l i n eo f z e r o s( a n y t h i n gm u l t i p l i e db y z e r oi s z e r o ) .T h e r e f o r ei f a 0

i s p r e s e n ti n t h e m u l t i p l i e ri t c a ns i m p l yb e i g n o r e db u tw em u s tr e m e m b e rt o s h i f tt h en e x t

p a r t i a lp r o d u c tu p p a s ta n y0 s s o t h a ti t s l e a s ts i g n i f i c a n td i g i ts t i l lc o r r e s p o n d st o t h e

c o r r e c t1 o f t h em u l t i p l i e r .T h i st e c h n i q u eo f s h i f t i n ga n di g n o r i n gc a n b e u s e dt o w r i t ea n

e f f i c i e n tm u l t i p l i c a t i o np r o g r a m .

8 1

Page 89: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 89/180

P r o g r a m

1 0

2 0

3 0

4 0

5 0

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

1 5 0

1 6 0

1 7 0

1 8 0

1 9 0

2 0 0

2 1 0

2 2 0

2 3 0

2 4 0

2 5 0

2 6 0

2 7 0

2 8 0

2 9 0

3 0 0

3 1 0

3 2 0

2 8

R E M* * S I N G L EB Y T EM U L T1 5 * * *

C O D E= 8 2 8

F O R L O O P= 0 T O

R E A DB Y T E

P O K EC O D E+ 1

N E X T L O O P

:

1 9

L O O P ,B Y T E

R E M* * M / CD A T A* *

D A T A1 6 2 , 8

D A T A1 6 9 , 0

D A T A7 0 , 2 5 2

D A T A1 4 4 , 3

D A T A2 4

D A T A1 0 1 , 2 5 1

D A T A1 0 6

D A T A1 0 2 , 2 5 3

D A T A2 0 2

D A T A2 0 8 , 2 4 3

D A T A1 3 3 , 2 5 4

D A T A9 6

:

P R I N TC H R $ ( 1 4 7 )

R E M$ A 2 ,$ 0 8

R E M$ A 9 , $ 0 0

R E MA G A I N

R E M$ 4 6 ,$ F C

R E M$ 9 0 ,$ 0 3

R E M$ 1 8

R E M$ 6 5 ,$ F B

R E MO V E R

R E M$ 6 A

R E M$ 6 6 ,$ F D

R E M$ C A

R E M$ D 0 ,$ F 3

R E M$ 8 5 ,$ F E

R E M$ 6 0

I N P U T " M U L T I P L I C A N D " ;A

I N P U T" M U L T I P L I E R " ;B

P O K E2 5 1 ,A : P O K E2 5 2 ,B

S Y SC O D E

- H I G H= P E E K ( 2 5 4 )

R E S U L T= H I G H*

P R I N T" R E S U L TI S

P R I N TR E S U L T

: L O W= P E E K ( 2 5 3 )

2 5 6+ L O W

G I V I N G2 B Y T ER E S U L T* *

— L D X# $ 0 8

— L D A# $ 0 0

— L S R $ F C

— B C CO V E R

— C L C

— A D C$ F B

— R O R A

— R O R$ F D

— D E X

— B N EA G A I N

— S T A$ F E

— R T S

T h i sp r o g r a mt a k e st w os i n g l eb y t en u m b e r s ,m u l t i p l i e st h e mt o g e t h e rs t o r i n gt h er e s u l t

( w h i c hm a yb e 1 6 b i t sl o n g )i n z e r op a g e .U n l i k et h eb i n a r ym u l t i p l i c a t i o ne x a m p l e s ,i t

d o e sn o tc o m p u t ee a c hp a r t i a lp r o d u c tb e f o r ea d d i n gt h e mt o g e t h e r ,b u tt o t a l st h ep a r t i a l

p r o d u c t sa s t h e ya r e e v a l u a t e d .T h i si s a s o m e w h a tq u i c k e rm e t h o d ,b e c a u s et h ef i n a l

p r o d u c ti s g e n e r a t e da s s o o na s t h el a s tb i t o f t h em u l t i p l i e rh a sb e e n e x a m i n e d .

W h e nR U Nt h ep r o g r a mr e q u e s t sy o ut o e n t e r t h em u l t i p l i c a n da n dm u l t i p l i e r( l i n e s

2 5 0a n d2 6 0 ) ;t h e s es i n g l eb y t ev a l u e sa r et h e nP O K E di n t om e m o r y . T h em a c h i n ec o d e

b e g i n sb y s e t t i n gt h e X r e g i s t e rt o 8 r e a d yt o a c ta s t h e b i t c o u n t e r( l i n e9 0 ) .T h e

a c c u m u l a t o ri s t h e nc l e a r e d — t h i si s i m p o r t a n ta s i t a f f e c t st h eh i g hr e s u l tv a l u ei n l o c a t i o n

2 5 4( $ F E ) .T h em a i nl o o pi s m a r k e db yt h el a b e li n l i n e1 1 0 . B i t0 o ft h em u l t i p l i e ri s t h e n

8 2

Page 90: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 90/180

s h i f t e di n t ot h eC a r r yf l a g( l i n e1 2 0 )a n da b r a n c ht o O V E Re x e c u t e di f t h eC a r r yi s c l e a r

( l i n e1 4 0 ) .I f s e t ,t h em u l t i p l i c a n dv a l u en e e d st o b e a d d e dt o t h ea c c u m u l a t o r( l i n e 1 5 0 ) .

T h ep r o d u c tv a l u en o wi n t h ea c c u m u l a t o ri s r o t a t e dr i g h t( l i n e1 7 0 )a n da f u r t h e rR O Ro n

t h el o wr e s u l tb y t ea t 2 5 3( $ F D )p e r f o r m e d( l i n e1 8 0 ) .T h e s et w oo p e r a t i o n sm o v eb i t0 o f

t h ea c c u m u l a t o ri n t ob i t7 o f t h el o wr e s u l tb y t e .T h eX r e g i s t e ri s d e c r e m e n t e d( l i n e1 9 0 )

a n dt h ep r o c e d u r er e p e a t e df o rb i t s1 - 7 .

A s m a yh a v eb e c o m ec l e a ri n t h el a s tb i n a r ye x a m p l e ,t h ep r o c e d u r ei s — / / t h eb i ti s s e t

t h e na d dt h eb y t e ,e l s ei g n o r ei t a n dm o v eo n t o t h en e x ts h i f t i n go p e r a t i o n .

D I V I S I O N

W h e np e r f o r m i n gt h ed i v i s i o no f o n en u m b e rb ya n o t h e r ,w ea r e a c t u a l l y c a l c u l a t i n g

n u m b e ro f t i m e st h es e c o n dn u m b e rc a nb e s u b t r a c t e df r o mt h ef i r s t .C o n s i d e r1 2 5- s -5 :

( D i v i s o r )

2 5

5 | 1 2 5

- 1 02 5

2 5

0

( Q u o t i e n t )

( D i v i d e n d )

( R e m a i n d e r )

H e r e ,5 c a nb e s u b t r a c t e df r o m1 0 t w i c e ,s o w en o t et h ev a l u e2 a s p a r to f t h e q u o t i e n t .

T h e1 0i s b r o u g h td o w na n ds u b t r a c t e df r o mt h ef i r s tt w od i g i t so ft h ed i v i d e n d ,l e a v i n g2 .

B e c a u s e5 c a n n o t b es u b t r a c t e df r o m2 t h er e m a i n i n g5 o ft h ed i v i d e n di s b r o u g h td o w nt o

g i v e2 5 .5 c a nb e s u b t r a c t e df r o mt h i s ,w i t h o u tr e m a i n d e r ,5 t i m e s .A g a i nt h i si s r e c o r d e d

i n t h e q u o t i e n t ,w h i c hn o wr e f l e c t st h ef i n a lr e s u l t .

T o d i v i d eb i n a r yn u m b e r s ,t h i ss a m ep r o c e d u r ei s p u r s u e d .T h ea b o v e e x a m p l ei nb i n a r yw o u l dl o o kl i k et h i s :

1

0 1 01 10 1 1 1 1 1 0 10 1 0 1

1 0 1

1 0 1

1 0 1

1 0 1

0

I n f a c t ,a s y o um a ys e e ,d i v i d i n gb i n a r yn u m b e r si s m u c hs i m p l e r t h a nd i v i d i n gd e c i m a l

n u m b e r s .I f t h ed i v i s o ri s l e s st h a n o re q u a lt o t r i ed i v i d e n dt h ec o r r e s p o n d i n gb i ti n t h e

q u o t i e n tw i l lb e a1 . I f t h es u b t r a c t i o ni s n o tp o s s i b l ea 0 i s p l a c e di n t h e q u o t i e n t , t h en e x t

b i t o f t h ed i v i d e n di s b r o u g h td o w n ,a n dt h ep r o c e d u r er e p e a t e d .

T h ef o l l o w i n gu t i l i t yp r o g r a md i v i d e st w os i n g l eb y t e v a l u e sa n di n d i c a t e sw h e t h e ra

r e m a i n d e ri s p r e s e n t :

P r o g r a m2 9

1 0 R E M* * S I N G L EB Y T ED I V I D E* *

2 0 C O D E= 8 2 8

3 0 F O RL O O P= 0 T O 2 0

4 0 R E A DB Y T E

8 3

Page 91: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 91/180

Page 92: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 92/180

L i n e1 9 0 T h eb i t c o u n ti s d e c r e m e n t e d. . .

L i n e2 0 0 . . . a n dc o n t r o lr e t u r n e dt o l i n e1 1 0i f n o tc o m p l e t e .

L i n e2 1 0 A n yr e m a i n d e ri s s a v e di n $ F D .

T h i sp r o g r a mu s e st h es h i f ti n s t r u c t i o n so f l i n e s1 2 0a n d1 3 0a s a t w ob y t es h i f tr e g i s t e r

i n w h i c ht h e a c c u m u l a t o ra c t sa s t h eh i g h e rb y t e .T h ec a r r yp r o d u c e d b yR O LA i s

i n s i g n i f i c a n t ,i n f a c ti t i s 0 , a n di s e r o d e db y t h en e x tA S L$ F Bp r o c e d u r e .

L O O K - U PT A B L E S

L o o k - u pt a b l e sp r o v i d ea n e a t ,c o m p a c t a n de f f i c i e n tw a yo f o b t a i n i n g d a t af o rw h a t

m i g h to t h e r w i s et u r no u t t o b e l o n ga n dc o m p l i c a t e dm a c h i n ec o d ep r o g r a m s .F o r

e x a m p l e ,s u p p o s ew e w a n tt o d e v e l o pa m a c h i n ec o d ep r o g r a mt o c o n v e r td e g r e e s

C e n t i g r a d ei n t od e g r e e sF a h r e n h e i t .T h ef o r m u l af o rt h i si s :

° F =1 . 8 ( ° C )+ 3 2

A sy o uc a ns e e , t h i sr e q u i r e st w om a t h e m a t i c a lo p e r a t i o n s — f i r s ta m u l t i p l i c a t i o nt h e na n

a d d i t i o n( a b i t p a i n f u lt o t h e g r e ym a t t e r ! ) .B y p r o v i d i n gt h e c o n v e r s i o nv a l u e s

p r e c a l c u l a t e di n a t a b l e ,t h eF a h r e n h e i tv a l u e sc a nb e e x t r a c t e db y u s i n gt h eC e n t i g r a d e

v a l u ea s a n i n d e xt o t h et a b l e .T r yt h ef o l l o w i n gp r o g r a m :

P r o g r a m3 0

1 0 P O K E5 5 , 0: P O K E5 6 ,2 9

2 0 C O D E= 8 2 8: T A B L E= 7 4 2 5

3 0

4 0

5 0

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

1 5 0

1 6 0

1 7 0

1 8 0

1 9 0

2 0 0

2 1 0

2 2 0

2 3 0

2 4 0

2 5 0

F O RL O O P= 0 T O 7

R E A DB Y T E

P O K EC O D E+ L O O P ,B Y T E

N E X TL O O P

:

R E M* * M / CD A T A* *

D A T A1 6 6 , 2 5 1 : R E M$ A 6 ,$ F B

D A T A1 8 9 , 1 , 2 9 : R E M$ B D ,$ 0 1 ,$ 1 D

D A T A1 3 3 , 2 5 2 : R E M$ 8 5 ,$ F C

D A T A9 6 : R E M$ 6 0

:

R E M* * C A L C U L A T EV A L U E S **

F O RC = 0T O 1 0 0

F = ( 1 . 8 * C )+ 3 2

P O K ET A B L E+ C , F

N E X T C

:

P R I N TC H R $ (1 4 7 )

I N P U T" C E N T I G R A D EV A L U E " ;C

P O K E2 5 1 ,C

S Y SC O D E

P R I N T" F A H R E N H E I TV A L U E " ;

P R I N TP E E K ( 2 5 2 )

— L D X$ F B

— L D A7 4 2 !

— S T A$ F C

— R T S

8 5

Page 93: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 93/180

L i n e s1 5 0t o 1 8 0c a l c u l a t et h e e q u i v a l e n tF a h r e n h e i tv a l u e sf o rC e n t i g r a d ev a l u e si n t h e

r a n g e0 - 1 0 0 .E a c hv a l u ei s P O K E di n t u r ni n t om e m o r y ,t o f o r ma t a b l ew h i c hh a si t sb a s e

a b o v et h e r e s e tv a l u eo f M E M S I Z( l i n e s 1 0 ,2 0 ) .T h ei n p u tC e n t i g r a d ev a l u ef o r

c o n v e r s i o ni s P O K E di n t ol o c a t i o n2 5 1( $ F B ) ,a n ds u b s e q u e n t l yl o a d e di n t ot h eX r e g i s t e r

w h e nt h em a c h i n ec o d ei s e x e c u t e d( l i n e9 0 ) .T h i sv a l u ei s u s e da s t h ei n d e xt o t h et a b l e

w h e nl o a d i n gt h ea c c u m u l a t o rw i t ht h ec o r r e s p o n d i n g F a h r e n h e i tv a l u e( l i n e1 0 0 ) .T h i s

F a h r e n h e i tv a l u ei s s t o r e di n l o c a t i o n2 5 2( $ F C )s o t h a ti t c a nb e a c c e s s e db y t h ec a l l i n g

B A S I C .T h ef o l l o w i n ge x a m p l ei l l u s t r a t e s t h i sg r a p h i c a l l y .

E x a m p l e : C o n v e r t .J ° C

L D A$ 1 D 0 1 ,X

$ 1 D 0 5

$ 1 D 0 4

$ 1 D 0 3

$ 1 D 0 2

$ 1 D 0 1

t o F a h r e n h e i t .

B D 0 1 I D

X

3 9

3 7

3 5

3 3

3 2

3

> = 1 D 0 4

A c c u m u l a t o r

3 7

T

T h e r e f o r e3 ° Ci s e q u i v a l e n tt o 3 7 ° F .

8 6

Page 94: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 94/180

1 6 F l o a t i n ga P o i n t

S o f a r t h r o u g h o u tt h i s i n t r o d u c t i o nt o m a c h i n ec o d ep r o g r a m m i n gw e h a v eo n l y

b e e nc o n c e r n e dw i t hi n t e g e r s ,o r w h o l en u m b e r s .A s i n t h er e a lw o r l dt h o u g h ,f l o a t i n g

p o i n tn u m b e r sa l s oe x i s t i nt h em a c h i n ec o d ew o r l d .A f l o a t i n gp o i n tn u m b e ri s o n et h a t

c o n t a i n s ad e c i m a lp o i n t ( a l t h o u g hi n b i n a r yt h i si s m o r ec o r r e c t l y r e f e r r e dt o a s a

' b i c i m a l ' p o i n t ) .

F o re x a m p l e ,t h ed e n a r yn u m b e r5 . 2 5i s a f l o a t i n gp o i n tn u m b e rw h e r e a st h en u m b e r7

i s a w h o l eo r i n t e g e rn u m b e r .I n C B MB A S I Ct h eb i n a r yf l o a t i n gp o i n tn u m b e r sh a v e

w h a ti s k n o w na s 1 0d i g i tp r e c i s i o n ,d i s p l a y e dw i t h 9d i g i t sa n dw i t he x p o n e n t si n t h er a n g e

+ 3 7t o — 3 8 .T h ee x p o n e n to f a n u m b e ri s s i m p l ya s c i e n t i f i cn o t a t i o n a lf o r mo f

r e p r e s e n t i n gn u m b e r s .F o r e x a m p l e ,t h e n u m b e r1 2 3 4 . 5 6 7c o u l db e e x p r e s s e d

e x p o n e n t i a l l ya s :

0 . 1 2 3 4 5 6 7 E + 4

T h e4 E 'd e n o t e st h ee x p o n e n t i a l v a l u ea n dt h e+ 4 t h ef a c tt h a tt h ed e c i m a lp o i n th a s

b e e nm o v e df o u rp l a c e si n a p o s i t i v ed i r e c t i o n .A n o t h e rw a yo f w r i t i n gt h i se x p o n e n t i a l l y

i s :

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

S i m i l a r l y ,t h ed e c i m a lv a l u e0 . 0 0 0 0 1 2 3 c a n b ee x p r e s s e da s 0 . 1 2 3 E - 4o r 0 . 1 2 3X 1 0 " 4 ,

t h e - 4 i n d i c a t i n gt h a tt h e d e c i m a lp o i n th a sb e e nm o v e df o u rp l a c e si n a n e g a t i v e

d i r e c t i o n .

T H EF L O A T I N GP O I N TA C C U M U L A T O R S

T h e6 5 0 2i s p r o v i d e dw i t ht w om e m o r y - m a p p e df l o a t i n gp o i n ta c c u m u l a t o r sw h i c hm a n i p u l a t et h e f l o a t i n gp o i n tn u m b e r s . T h e s ea r ek n o w na s t h eF A C( F l o a t i n g P o i n t

A c c u m u l a t o r )a n dt h eA F A C( A l t e r n a t i v eF l o a t i n g P o i n tA c c u m u l a t o r ) — a l s ok n o w na s

F A C # 1a n dF A C # 2 .T h ea d d r e s s e sa s s o c i a t e dw i t ht h e mi n z e r op a g ea r es h o w ni n T a b l e

1 6 . 1o v e r p a g e .

L o o k i n ga t t h et w of l o a t i n gp o i n ta c c u m u l a t o r sw ec a ns e e t h a te a c hh a ss i xa s s o c i a t e d

b y t e s .A sa l r e a d ym e n t i o n e d , e a c hv a l u e h a s1 0d i g i tp r e c i s i o n ,s o t o e n a b l et h ev a l u et o b e

p a c k e di n t os i xb y t e si t m u s tb e b r o k e nd o w ni n t ot w o c o m p o n e n t sc a l l e dt h e b i n a r y

m a n t i s s aa n dt h eb i n a r ye x p o n e n t .T h e s ea r ei l l u s t r a t e di n F i g u r e1 6 . 1 .

E x p o n e n t< + M a n t i s s a * ■ S i g n

- S i g nb i t

F A CA F A C

9 7

1 0 5

9 8

1 0 6

9 9

1 0 7

1 0 0

1 0 8

1 0 1

1 0 9

1 0 2

1 1 0

F i g u r e1 6 . 1 F l o a t i n g p o i n ta c c u m u l a t o ra r c h i t e c t u r e .

8 7

Page 95: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 95/180

T a b l e1 6 . 1

L a b e l A d d r e s s

D e c i m a lH e x

D e s c r i p t i o n

F A C E X PF A C H OF A C S G NB I T S

A R G E X PA R G H OA R G S G NA R I G N

9 7

9 8 - 1 0 1

1 0 2

1 0 4

1 0 5

1 0 6 - 1 0 9

1 1 0

1 1 1

$ 0 0 6 1

$ 0 0 6 2 - $ 0 0 6 5

$ 0 0 6 7

$ 0 0 6 8

$ 0 0 6 A - $ 0 0 6 D

$ 0 0 6 E

$ 0 0 6 F

F A C # 1e x p o n e n t

F A C # 1m a n t i s s a

F A C # 1s i g n

F A C # 1o v e r f l o wd i g i t

F A C # 2e x p o n e n t

F A C # 2m a n t i s s a

F A C # 2s i g n

S i g nc o m p a r i s o nr e s u l tF A C # 1v F A C # 2

T h eb i n a r ym a n t i s s ai s t h e' n u m b e r 'p a r to f t h ev a l u e ,a n dt h i si s s t o r e di n t h ec e n t r ef o u rb y t e so ft h eF A C( a n dA F A C ) .T h es i g no ft h en u m b e rd e n o t e sw h e t h e ri t i s a p o s i t i v e

o r n e g a t i v ev a l u e ,a n dt h i si s s t o r e di n t h es i x t hb y t eo f t h eF A C( o rA F A C ) .O n l ya s i n g l e

b i t( b i t7 ) i s r e q u i r e dt o s t o r et h es i g n — '1 ' r e p r e s e n t sa n e g a t i v em a n t i s s aa n d' 0 'a p o s i t i v e

m a n t i s s a .

T h eb i n a r ye x p o n e n ti s t h ef i r s tb y t eo f t h e F A C( a n dA F A C )a n dt h i si s u s e dt o

r e p r e s e n tb o t hp o s i t i v ea n d n e g a t i v ee x p o n e n tv a l u e sb y a d d i n gt h e v a l u et o , o r

s u b t r a c t i n gt h ev a l u ef r o m ,1 2 8 .F o re x a m p l e ,a n e x p o n e n to f + 1 5i s r e p r e s e n t e db y :

+ 1 5= 1 2 8+ 1 5 = 1 4 3

W h e r e a sa n e g a t i v ee x p o n e n to f — 1 5i s e x p r e s s e da s :

- 1 5 =1 2 8 -1 5 =1 1 3

T oa l l o wa v a r i e t yo f f l o a t i n gp o i n tn u m b e r st o b e h a n d l e db ya s t a n d a r ds e to ff l o a t i n g

p o i n t s u b r o u t i n e s ,t h e V I C 2 0 ' s B A S I CI n t e r p r e t e rn o r m a l i z e st h e m t o a

r e p r e s e n t a t i o ns u c ht h a tt h em o s ts i g n i f i c a n tb i t i s a l w a y sa T .

C o n s i d e rt h eh e x a d e c i m a ln u m b e r$ 0 3 4 5 .W r i t i n gt h i si n b i n a r yf o r mw e o b t a i n :

$ 0 3 4 5= 0 0 0 00 0 1 10 1 0 00 1 0 1

I n t h i sc a s e ,t h eb i n a r yn o wh a sa n e x p o n e n tv a l u eo f 2 , o r m o r ec o r r e c t l y1 T 2w i t ht h e

b i c i m a lp o i n t b e i n ga t t h ef a r r i g h to f t h en u m b e r .I f w ew e r et o e x p r e s st h i sp r o p e r l yi n

e x p o n e n t i a lf o r mw e w o u l dr e a d :

0 0 0 00 0 1 10 1 0 00 1 0 1X 2 T 0

N o w ,t o n o r m a l i z et h i sv a l u ew e n e e dt o ' f l o a t 't h eb i c i m a lp o i n ta l o n gt o t h el e f tu n t i li t

s i t si n f r o n to ft h e l e f t m o s t' 1 ' .F i g u r e1 6 . 2s h o w st h ep r o c e s s .N o w ,i f w ec o u n tt h en u m b e ro f s h i f t sw e o b t a i no u re x p o n e n tv a l u e ,w h i c hi n t h i sc a s ei s 1 0 .T h u s :

$ 0 3 4 5= 0 . 1 1 0 10 0 0 10 1 0 0 0 0 0 0X 2 T 1 0

T or e p r e s e n tt h i s i ne i t h e ro f t h ef l o a t i n gp o i n ta c c u m u l a t o r sw em u s t a d dt h ee x p o n e n t i a l

v a l u et o 1 2 8g i v i n ga n e x p o n e n tv a l u eo f :

1 2 8+ 1 0 = 1 3 8= $ 8 A ( 1 0 0 01 0 1 0 )

1 0 9 7 6 5 4 3 2 1

A A A A A A A A A• i i 0 1

E n d

F i g u r e1 6 . 2 F l o a t i n gt h eb i c i m a lp o i n t .

0 0 1 0 1

S t a r t

8 8

Page 96: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 96/180

M o v i n gb a c kt o t h em a n t i s s a ,w e h a v ef o u r b y t e st o f i l l ,t h e r e f o r e t h el e a s ts i g n i f i c a n t

b i t sm u s tb e p a d d e do u tw i t h0 s t og i v e :

1 1 0 1 0 0 0 10 1 0 0 0 0 0 0m m m m m mm m

F i n a l l y ,t o c o m p l e t eo u rn o r m a l i z a t i o no f $ 0 3 4 5w e m u s ti n d i c a t ea p o s i t i v ev a l u eb y

p l a c i n ga 0 i n b i t 7 o f t h es i g n b y t e .O u rf i n a lr e p r e s e n t a t i o no f $ 0 3 4 5i s g i v e nb y :

E x p o n e n t1 s tb y t e 1 0 0 01 0 1 0$ 8 AM a n t i s s a2 n db y t e 1 1 0 10 0 0 1$ D 1

3 r db y t e 0 1 0 00 0 0 0$ 4 0

4 t h b y t e0 0 0 0 0 0 0 0 $ 0 0 ( p a d d e db y t e s )

5 t hb y t e 0 0 0 0 0 0 0 0$ 0 0

S i g n 6 t hb y t e 0 x x x x x x x

T h ex s i n t h es i g nb y t ed e n o t et h a tt h e s eb i t sm a yh a v ea n yv a l u e .

T h ee x a m p l eg i v e na b o v ew a sr e a l l ya n i n t e g e r o n e ,b u tn u m b e r st h a td o c o n t a i n

b i c i m a l v a l u e sc a n b en o r m a l i z e di n e x a c t l y t h es a m em a n n e r .F o ri n s t a n c e ,t h ed e c i m a l

v a l u e2 5 5 . 7 5c a nb e e x p r e s s e di n b i n a r y t e r m sa s :

1 1 1 11 1 1 1. 1 1

w h e r e0 . 1= 0 . 5d e c i m a la n d0 . 0 1= 0 . 2 5 d e c i m a l .T h i sc a n b e n o r m a l i z e da s b e f o r e ,g i v i n g

a b i n a r ye x p o n e n t i a lr e p r e s e n t a t i o no f :

0 . 1 1 1 11 1 1 11 1 0 00 0 0 0X 2 T 8

U S I N GU S R

A f u r t h e rB A S I Cs t a t e m e n t ,U S R ,i s p r o v i d e dt o c a l ls e c t i o n so f m a c h i n ec o d e .I t h a sa n

a d v a n t a g eo v e ra n o r m a lS Y Sc a l li n t h a ti t c a na l s op a s sd a t af r o mB A S I Ci n t ot h ef l o a t i n gp o i n ta c c u m u l a t o r ,s o t h a ti t c a nb e m a n i p u l a t e db ya u s e r - s u p p l i e dm a c h i n ec o d e

p r o g r a mb e f o r e r e t u r n i n gt h er e s u l tt o t h ec a l l i n gB A S I Cp r o g r a m .B e f o r ee x e c u t i n gU S Rt h ea d d r e s so f a m a c h i n ec o d es u b r o u t i n em u s tb es e e d e di n t oU S R A D D ,w h i c hi s l o c a t e d

a t t h et w ob y t e si n z e r op a g ef r o m$ 0 1 .

A U S Rc a l lc a nt a k et w of o r m s :

U S R ( N U M )

t r a n s f e r st h ev a l u e a s s i g n e dt o t h e v a r i a b l eN U M( o ra n yo t h e rs p e c i f i e dv a r i a b l e ) i n t o

F A C # 1b e f o r eh a n d i n gc o n t r o lt o t h em a c h i n ec o d er o u t i n e l o c a t e da t t h ev e c t o r e d

a d d r e s si n U S R A D D .W h e r e a s :

A = U S R ( B )

p l a c e st h ec o n t e n t so f B i n t oF A C # 1 ,e x e c u t e s t h em a c h i n ec o d ea t U S R A D Da n dr e t u r n s

t h ef i n a l r e s u l t ,v i a F A C # 1 ,i n t h e v a r i a b l eB .

L e t ' sh a v ea l o o ka t a c o u p l e o f s i m p l ee x a m p l e st o g e tt h i n g sc l e a r i no u rm i n d s .

P r o g r a m3 1

1 0 R E M* * U S RD E M O* *

2 0 R E M* * S E TU P D U M M YM A C H I N EC O D E* *

3 0 P O K E8 2 8 , 9 6: R E MR T SO P C O D E

4 0 P R I N TC H R $ ( 1 4 7 )

5 0 P O K E1 , 6 0: R E MS E TU PU S R A D DT O

6 0 P O K E2 , 3: R E MP O I N TT O8 2 8

7 0 A = 0 : B = 8 3 7

8 0 P R I N T" P R EU S RA = " ; A

8 9

Page 97: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 97/180

9 0 A = U S R ( B )

1 0 0 P R I N T" P O S TU S RA = " ; A

T h i sp r o g r a mb e g i n sb y P O K E i n ga nR T Si n s t r u c t i o ni n t om e m o r ya t l o c a t i o n8 2 8( l i n e

3 0 ) .U S R A D Di s t h e n p o i n t e dt o t h i sl o c a t i o n .T h ev a l u e so fA a n dB a r ea s s i g n e d( l i n e7 0 )

a n dt h ev a l u eo f t h ef o r m e rp r i n t e d( l i n e8 0 ) .T h eU S Rr o u t i n ei s t h e nc a l l e d( l i n e9 0 )

p a s s i n gt h ev a l u eo f B i n t oF A C #1 . T h ec o d ep o i n t e dt o b yU S R A D Di s t h e ne x e c u t e d — i t

r e t u r n sc o n t r o li m m e d i a t e l yb a c kt o B A S I C( r e m e m b e ri t ' sj u s tR T S )p a s s i n gt h ev a l u ei n

F A C # 1i n t o t h e v a r i a b l eA w h i c hi s s u b s e q u e n t l yp r i n t e do u t( l i n e1 0 0 ) .

W ec a nm o d i f yt h i sp r o g r a ms l i g h t l ys o t h a ti t a c t u a l l yd o e s s o m e t h i n g !A d dt h e

f o l l o w i n gt w ol i n e s :

2 5 P O K E8 2 8 , 2 3 0

2 6 P O K E8 2 9 , 9 8 : R E MI N C$ 6 2

n o wc h a n g el i n e3 0 t o r e a d :

3 0 P O K E8 3 0 , 9 6 : R E MR T S

R U Nt h ep r o g r a m .T h ep r i n t e dr e s u l ts h o u l db e :

P O S TU S RA = 8 4 1

w h i c hi s 4 m o r et h a nt h ev a l u ep a s s e di n t oi t t h r o u g hB ( w h i c hw a s8 3 7 ) .W h a th a p p e n e d

h e r ew a st h a t t h et w on e wb y t e so f m a c h i n ec o d e( l i n e s2 5 a n d2 6 )i n c r e m e n t e dt h eh i g h

b y t eo f t h eF A C #1 m a n t i s s al o c a t e da t l o c a t i o n9 8 .B u tw h ys h o u l dt h i sa d d4 r a t h e rt h a n

1 ?E x a m i n i n gt h eb i n a r yw i l lm a k et h i n g sc l e a r e r .8 3 7i s $ 0 3 4 5w h i c hi s t h ev a l u ew ew e r e

w o r k i n go n e a r l i e r .W e k n o wf r o mo u rp r e v i o u sc a l c u l a t i o n s t h a t t h eb y t e s t o r e di n

l o c a t i o n9 8w a s$ D 1 .I n c r e m e n t i n gt h i sg i v e s$ D 2 ,t h e r e f o r e t h ef o u rb y t e so f t h eF A C # 1m a n t i s s ar e a d :

$ D 2 $ 4 0 $ 0 0 $ 0 0

1 1 0 1 0 0 1 00 1 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 0

W ea l s ok n o wf r o mo u re a r l i e rc a l c u l a t i o n st h a tt h ee x p o n e n t i a l v a l u ew a s2 t 1 0 .F l o a t i n g

t h eb i c i m a lp o i n tt e n p l a c e st o t h er i g h tt o r e t u r nt o a n u n - n o r m a l i z e dp o s i t i o ng i v e s :

1 1 0 1 0 0 1 0 0 1 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

I g n o r i n gt h e n o n - s i g n i f i c a n t z e r o sa n ds o r t i n gt h eb i n a r yi n t ob y t e sw e o b t a i n :

0 0 0 0 0 0 1 1 0 1 0 01 0 0 1

$ 0 3 0 4 9

a n do f c o u r s e$ 0 3 4 9= 8 4 1 .

T h ei m p o r t a n tp o i n tt o r e m e m b e rw h e nd e a l i n gd i r e c t l yw i t ht h eF A Ci s t h a tw ea r e

h a n d l i n gn o r m a l i z e dv a l u e sa n de v e ns o m e t h i n ga s s e e m i n g l ys i m p l ea s a n i n c r e m e n t

i n s t r u c t i o nw i l ln o th a v et h eo b v i o u sr e s u l t !

A n o t h e ri m p o r t a n tp o i n tt o r e m e m b e ri s t h a tt h ec o n t e n t so f t h e F A C sc a n n o tb e

e x a m i n e dd i r e c t l yf r o mB A S I Cb y P E E K i n gl o c a t i o n s .T h i si s b e c a u s ee v e na n o p e r a t i o n

a s s t r a i g h t f o r w a r da s P E E Kw i l la f f e c tt h eF A C sc o n t e n t s .T h e r e f o r e ,t o l o o ka t t h e

c o n t e n t so f a F A Cy o un e e da m a c h i n ec o d er o u t i n es u c ha s P r o g r a m3 2 .

P r o g r a m3 2

1 0 R E M* * S A V EF A C # 1* *

2 0 C O D E= 8 2 8

3 0 F O R L O O P= 0 T O 1 0

4 0 R E A DB Y T E

9 0

Page 98: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 98/180

5 0 P O K EL O O P+ C O D E ,B Y T E

6 0 N E X TL O O P

7 0 :

8 0 R E M* * M / CD A T A* *

9 0 D A T A1 6 2 , 6 : R E M$ A 2 , $ 0 6 — L D X# 6

1 0 0 R E MA G A I N

1 1 0; D A T A1 8 1 , 9 6 : R E M$ B 5 ,$ 6 0 — L D A$ 6 0 ,X

1 2 0 D A T A1 5 7 , 5 2 , 3 : R E M$ 9 D ,$ 3 4 ,$ 0 3 — S T A$ 0 3 3 4 ,X

1 3 0 D A T A2 0 2 : R E M$ C A — D E X

1 4 0 D A T A2 0 8 , 2 4 8 : R E M$ D 0 ,$ F 8 — B N EA G A I N

1 5 0 D A T A9 6 : R E M$ 6 0 — R T S

1 6 0 :

1 7 0 P R I N TC H R $ (1 4 7 )

1 8 0 P O K E1 , 6 0 : R E MS E TU S R A D DP O I N T I N G

1 9 0 P O K E7 8 6 , 2 , 3 : R E MT O8 2 8 ( $ 0 3 3 C )

2 0 0 B = 8 3 7 : R E MV A L U ET O P A S ST OF A C # 1

2 1 0 A = U S R ( B ) : R E MP A S SA N DE X E C U T EC O D E

2 2 0 P R I N T " A= " ; A

2 3 0 P R I N T" F A C # 1= " ;

2 4 0 F O RX = 1 T O6

2 5 0 P R I N TP E E K ( 8 2 0+ X ) ; "" ;

2 6 0 N E X T X

T h em a c h i n ec o d et o s a v et h ec o n t e n t so f F A C # 1i s q u i t e s i m p l e ,a n dj u s ti n v o l v e sa n

i n d e x i n gl o o pw h i c hf i r s tl o a d sa b y t ei n t ot h ea c c u m u l a t o ra n dt h e ns t o r e si t s o m e w h e r e

s a f e( l i n e s9 0 t o 1 5 0 ) .R U N i n gt h ep r o g r a mp r o d u c e st h ef o l l o w i n g o u t p u t :

A = 8 3 7

F A C # 1= 1 3 82 0 96 4 0 0 8 1

T h ef i r s tf i v eb y t e sc o m p a r ef a v o u r a b l y w i t ht h ec a l c u l a t e dv a l u e sa b o v e .T h ef i n a lb y t ei s

d e r i v e df r o mF A C S G N .T h ev a l u e8 1 i s $ 5 1a n di n b i n a r yi s 0 1 0 1 0 0 0 1 .T h es i g nb i t ,b i t7 ,

i s c l e a ra n dd e n o t e s ap o s i t i v en u m b e r .W ec a n c h a n g et h es i g nt o a n e g a t i v ev a l u eb y

' f o r c i n g 'b i t7 t o 1 . T od o t h i sw en e e dt o l o g i c a l l yO Rt h ec o n t e n t so fF A C S G Nw i t h$ 8 0 ,

1 0 0 0 0 0 0 0b i n a r y .A d dt h ef o l l o w i n gl i n e st o t h ep r o g r a m :

8 2 D A T A1 6 5 , 1 0 2 : R E M$ A 5 , $ 6 6 — L D AF A C S G N

8 3 D A T A9 , 1 2 8 : R E M$ 0 9 ,$ 8 0 — O R A# $ 8 0

8 4 D A T A1 3 3 , 1 0 2 : R E M$ 8 5 ,$ 6 6 — S T AF A C S G N

a n dc h a n g et h el o o p c o u n tt o :

3 0 F O RL O O P= 0 T O 1 6

N o wR U Nt h ep r o g r a m .T h er e s u l tr e t u r n e di n A i s n o w- 8 3 7 ,w h i l eF A C S G Nr e t u r n s

2 0 9 .

9 1

Page 99: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 99/180

I N T E G E RT OF L O A T I N GP O I N T

I n c l u d e di n t h eb u i l t - i ns u b r o u t i n e sa r es e v e r a lw h i c ha l l o wn u m b e r st o b e c o n v e r t e df r o m

i n t e g e r t o f l o a t i n gp o i n ta n dv i c e v e r s a .T h e s e c a n b eo f g r e a th e l pi n a l l o w i n gu s t o

m a n i p u l a t em u l t i b y t en u m b e r si n m a c h i n ec o d e , s ol e t ' se x a m i n ea f e wo f t h e mi n

o p e r a t i o n .

P r o g r a m3 3 s h o w sh o wa n i n t e g e rv a l u ec a n b ec o n v e r t e di n t oi t sn o r m a l i z e df l o a t i n g

p o i n t c o u n t e r p a r t .T h es u b r o u t i n et o d ot h i si s l o c a t e da t 5 4 1 6 1 ( $ D 3 9 1 ) .T h ei n t e g e rv a l u ei s e x p e c t e dt o b e f o u n di n t h ea c c u m u l a t o r( h i g h b y t e )a n dY r e g i s t e r( l o wb y t e ) — o n

c o m p l e t i o no f t h es u b r o u t i n et h ef l o a t i n gp o i n t v a l u ec a n b ee x t r a c t e df r o mF A C # 1 .

P r o g r a m3 3

1 0 R E M* * I N T E G E RT O F P * *

2 0 C O D E= 8 2 8

3 0 F O RL O O P= 0 T O 1 7

4 0 R E A DB Y T E

5 0 P O K EL O O P+ C O D E ,B Y T E

6 0 N E X TL O O P

7 0 :

8 0

9 0

1 0 0

1 1 0

1 2 0

1 2 5

1 3 0

1 4 0

1 5 0

1 6 0

1 7 0

1 8 0

1 9 0

2 0 0

2 2 0

2 3 0

2 4 0

2 5 0

R E M* * M / CD A T A

D A T A1 6 9 , 1 :

D A T A1 6 0 , 3 5 :

D A T A3 2 , 1 4 5 , 2 1 1:

D A T A1 6 2 , 6 :

D A T A1 8 1 ,9 6 :

D A T A1 5 7 , 5 2 , 3 :

D A T A2 0 2 :

D A T A2 0 8 , 2 4 8 :

D A T A9 6 :

P R I N TC H R $ ( 1 4 7 )

S Y SC O D E

P R I N T" F A C # 1= " ;

F O RX = 1 T O6

P R I N TP E E K ( 8 2 0+

N E X T X

R E M

R E M

R E M

R E M

R E M

R E M

R E M

R E M

R E M

R E M

X ) ; "

$ A 9 ,$ 0 1

$ A 0 ,$ 2 3

$ 2 0 , $ 9 1 ,$ D 3

$ A 2 , $ 0 6

A G A I N

$ B 5 ,$ 6 0

$ 9 D ,$ 3 4 ,$ 0 3

$ C A

$ D 0 ,$ F 8

$ 6 0

— L D A# 1

— L D Y# $ 2 3

— J S R$ D 3 9 1

— L D X# 6

— L D A$ 6 0 ,X

— S T A$ 0 3 3 4 ,X

— D E X

— B N EA G A I N

— R T S

T h ei n t e g e rv a l u eb e i n g c o n v e r t e dh e r ei s $ 0 1 2 3 ,a n dt h eh i g ha n dl o wb y t e sa r ep l a c e di n

t h ea p p r o p r i a t er e g i s t e r s( l i n e s9 0 a n d1 0 0 )b e f o r et h ec o n v e r s i o nr o u t i n ei s c a l l e d( l i n e

1 1 0 ) .T h ef l o a t i n gp o i n t v a l u ei s e x t r a c t e df r o mF A C # 1( l i n e s1 2 0t o 1 6 0 )s o t h a ti t c a n b e

P E E K e db y t h eB A S I Cl o o p .R U N n i n gt h ep r o g r a mp r o d u c e st h i s r e s u l t :

F A C # 1= 1 3 71 4 51 2 80 0 0

E v a l u a t i n gt h i s ,w eh a v ea n e x p o n e n to f 9 ( 1 3 7 —1 2 8 ) ,a n d t w ob y t e sw h i c hi n b i n a r yf o r m

g i v e :

9 2

Page 100: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 100/180

1 0 0 1 0 0 0 1

1 4 5 1 2 8

M o v i n gt h eb i c i m a lp o i n t 9p l a c e st o t h e r i g h tw e a r r i v ea t a f i n a lv a l u eo f :

0 0 0 00 0 0 10 0 1 00 0 1 1

$ 0 1 $ 2 3

$ 0 1 2 3 ,w h i c h w a so u ro r i g i n a lv a l u e .T h ec o n v e r s i o nw o r k s !

T h i s s u b r o u t i n ef o r i n t e g e r t o f l o a t i n gp o i n tc o n v e r s i o nc a no n l yh a n d l en u m b e r si n t h e

r a n g e0 t o 3 2 7 6 7 ( $ 7 F F F ) .T h i si s b e c a u s eb i t1 5i s u s e dt od e t e r m i n et h e s i g no ft h ei n t e g e r

v a l u et o b e c o n v e r t e d .I f c l e a rt h e n ap o s i t i v ev a l u ei s a s s u m e d ;i f s e ta n e g a t i v e v a l u ei s

e v a l u a t e da n dt h ef a c ts i g n a l l e di n F A C S G N .T os e et h i s ,t r yc h a n g i n gt h ef o l l o w i n gl i n e s :

9 0 D A T A1 6 9 , 2 5 5

1 0 0 D A T A1 6 0 , 2 5 5

R E M$ A 9 ,$ F F

R E M$ A 0 ,$ F F

— L D A# $ F F

— L D Y# $ F F

R U Nt h ep r o g r a mn o wa n ds e ew h a th a p p e n s — I ' l ll e a v ei t u p t o y o ut o w o r ko u th o wa n d

w h yy o ug o tt h er e s u l ty o ud i d !

F L O A T I N GP O I N TT O I N T E G E R

A s u b r o u t i n ew h i c ho p e r a t e si n t h e r e v e r s ed i r e c t i o n ,a n dc o n v e r t sa f l o a t i n gp o i n t v a l u e

i n F A C # 1t o a n i n t e g e ro n ei n t h eA a n dY r e g i s t e r s ,i s l o c a t e da t 5 3 6 7 4( $ D 1 A A ) .

P r o g r a m3 4

1 0

2 0

3 0

4 0

5 0

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

1 5 0

1 6 0

1 7 0

1 8 0

1 9 0

2 0 0

2 1 0

R E M* * F P T O I N T E G E R* *

C O D E= 8 2 8

F O R L O O P= 0 T O \ 1

R E A DB Y T E

i

P O K E L O O P+ C O D E ,B Y T E

N E X TL O O P

R E M* * M / CD A T A

D A T A1 6 2 , 6 :

D A T A1 8 9 , 5 2 , 3

D A T A1 4 9 , 9 6

D A T A2 0 2

D A T A2 0 8 , 2 4 8

D A T A3 2 , 1 7 0 , 2 0 9

D A T A1 3 3 ,2 5 1

D A T A1 3 2 , 2 5 2

D A T A9 6

F O RX = 0 T O 5

R E A DF A C

* *

R E M$ A 2 ,$ 0 6

R E MA G A I N

R E M$ B D ,$ 3 4 ,$ 0 3

R E M$ 9 5 ,$ 6 0

R E M$ C A

R E M$ D 0 ,$ F 8

R E M$ 2 0 ,$ A A , $ D 1R E M$ 8 5 ,$ F B

R E M$ 8 4 ,$ F C

R E M$ 6 0

— L D X# 6

— L D A8 2 0 ,X

— S T A$ 6 0 ,X

— D E X

— B N EA G A I N

— J S R$ D 1 A A— S T A$ F B

— S T Y$ F C

— R T S

9 3

Page 101: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 101/180

2 2 0 P O K E8 2 1+ X , F A C

2 3 0 N E X T X

2 4 0 R E M* * F A CD A T A* *

2 5 0 D A T A1 3 7 ,1 4 5 , 1 2 8 ,0 , 0 ,0

2 6 0 P R I N TC H R $ (1 4 7 )

2 7 0 S Y S C O D E

2 8 0 P R I N T" R E S U L T SR E T U R N E DA R E : "

2 9 0 P R I N T" A C C U M U L A T O R= " ; P E E K ( 2 5 1 )

3 0 0 P R I N T" Y R E G I S T E R= " ; P E E K ( 2 5 2 )

T h i sp r o g r a mp a s s e s t h en o r m a l i z e dv a l u eo f$ 0 1 2 3( l i n e2 5 0 )i n t oF A C # 1 .T h eD A T Ai s R E A Db y t h el o o pi n l i n e s2 1 0t o 2 3 0a n dp l a c e di n t ou n u s e dm e m o r yf r o m8 2 0 .T h em a c h i n ec o d eb e g i n sb y t r a n s f e r r i n gt h i sd a t ai n t oF A C #1 u s i n gi n d e x e da d d r e s s i n g( l i n e s

9 0t o 1 4 0 ) .O n c et h e r e ,t h ec o n v e r s i o nr o u t i n ei s c a l l e d( l i n e1 5 0 )a n dt h er e s u l t a n tv a l u e si n

t h eA a n dY r e g i s t e r ss a v e di n z e r op a g e ,f r o m w h e n c et h e yc a n b eP E E K e d( l i n e s2 9 0a n d3 0 0 ) .R U N n i n gt h ep r o g r a mp r o d u c e s :

R E S U L T SR E T U R N E DA R E :A C C U M U L A T O R= 1

Y R E G I S T E R= 3 5

C o n v e r t i n gt h i st o h e xg i v e s$ 0 1 2 3 !

F L O A T I N GM E M O R Y

S e v e r a ls u b r o u t i n e sa r ea v a i l a b l ew h i c ha l l o wf l o a t i n gp o i n t v a l u e st o b e t r a n s f e r r e d t o

a n df r ob e t w e e ne i t h e ro f t h ef l o a t i n gp o i n ta c c u m u l a t o r sa n dm e m o r y .H o w e v e r ,b e f o r e

w e c a nu s et h e s e ,w e m u s ts e eh o wf l o a t i n gp o i n tn u m b e r sa r es t o r e di n m e m o r y ,a s a

s l i g h t l yd i f f e r e n tf o r m a ti s u s e d .L e t ' sg o b a c kt o t h en o r m a l i z e dv a l u eo f$ 0 3 4 5w eu s e d

e a r l i e r ,t h i sw a ss t o r e di n t h eF A Ca s :

E x p o n e n t$ 8 A 1 0 0 0 1 0 1 0

M a n t i s s a$ D 1 1 1 0 10 0 0 1

$ 4 0 0 1 0 0 0 0 0 0

$ 0 0 0 0 0 0 0 0 0 0

S i g n 0 x x xx x x x

L o o k i n ga t t h i s ,w ec a ns e et h a tw e w a s t e7 b i t so f t h ef i n a ls i g nb y t es i m p l y b e c a u s ew e

o n l yu s eb i t7 t o d e n o t et h es i g n .I f a n o t h e rw a yc o u l d b ef o u n do f e n c o d i n gt h i st h e nt h e

s i g nb y t ec o u l d b e d i s p e n s e dw i t h .

Y o uw i l lr e m e m b e rt h a t t on o r m a l i z e af l o a t i n gp o i n t v a l u et h eb i c i m a l p o i n ti s f l o a t e d

l e f tc o n t i n u o u s l yu n t i li t r e a c h e st h el e f t - m o s t1 . W ek n o w ,t h e r e f o r e ,t h a tt h ef i r s tb i to f

t h em a n t i s s aw i l la l w a y s b ea 1 . A st h eB A S I CI n t e r p r e t e rk n o w st h i st o o ,i t c a n' f o r g e t 't h e

1 a n du s et h i s b i tt o s t o r e t h es i g n .W h e nt h e i n t e r p r e t e rc o n v e r t sa f l o a t i n gp o i n tn u m b e r

s t o r e di n m e m o r y( o u t s i d ee i t h e rf l o a t i n gp o i n ta c c u m u l a t o r ) ,i t l o o k sa t t h em s bo f t h e

m a n t i s s at o e v a l u a t et h es i g n ,t h e nr e s e t si t b a c kt o 1 t o e v a l u a t et h en u m b e rp r o p e r ! I n

m e m o r y ,t h e n , t h en o r m a l i z e dr e p r e s e n t a t i o no f $ 0 3 4 5i s c o m p a c t e di n t o j u s t5 b y t e s

s t o r e dt h u s :

$ 8 A 1 0 0 01 0 1 0

( b i t7 = 0 t h e r e f o r en u m b e rp o s i t i v e )

E x p o n e n t

M a n t i s s a

$ 8 A$ 5 1

$ 4 0

$ 0 0

$ 0 0

1 0 0 0

0 1 0 1

0 1 0 0

0 0 0 0

0 0 0 0

1 0 1 0

0 0 0 1

0 0 0 0

0 0 0 0

0 0 0 0

9 4

Page 102: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 102/180

Page 103: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 103/180

$ D B C 7 S t o r ec o n t e n t so f F A Ci n l o c a t i o n s8 7 t o 9 1 .

$ D B C AS t o r ec o n t e n t so f F A Ci n l o c a t i o n s9 2 t o 9 6 .

$ D B D 0 S t o r e c o n t e n t so f F A Ci n l o c a t i o n sp o i n t e dt o b y a d d r e s si n l o c a t i o n s7 3a n d

7 4 .

$ D B D 4 S t o r ec o n t e n t s o fF A Ci n m e m o r yl o c a t i o np o i n t e dt o b y A a n dY .

$ D B F C P l a c ec o n t e n t so f A F A Ci n F A C .

$ D C 0 C P l a c ec o n t e n t so f F A Ci n A F A C .

$ D C 1 B R o u n do f fc o n t e n t so f F A C .

$ D C 2 B R e t u r ns i g no fc o n t e n t so f F A Ci n A . $ 0 0 = z e r o ,$ 0 1 = p o s i t i v e ,$ F F = n e g a t i v e .

$ D C 3 C S t o r ec o n t e n t so f A i n t oF A C .

$ D C 5 B C o m p a r ec o n t e n t so f F A Cw i t hf l o a t i n gp o i n t v a l u ei n m e m o r yp o i n t e dt o b y

A a n dY . R e s u l to f c o m p a r i s o nr e t u r n e di n A . $ 0 0v a l u e se q u a l ,$ 0 1F A C>m e m o r y ,$ F Fm e m o r y> F A C .

$ D C 9 B C o n v e r tc o n t e n t so f F A Ci n t of o u rb y t ei n t e g e r .P l a c ec o n t e n t si n F A C + 1 .

$ D D D 7 P r i n tc o n t e n t so f F A Ca s a n A S C I Is t r i n g .

9 6

Page 104: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 104/180

1 7 T h e K e r n a l

A t t h e v e r y t o p o ft h e V I C 2 0 ' s m e m o r ym a p ,o n p a g e $ F F ,a r e t h e K e r n a l

O p e r a t i n gS y s t e mr o u t i n e sw h i c ha l l o wu s e rp r o g r a m st o c o m m u n i c a t ew i t h ,a n dt a k e

a d v a n t a g eo f ,t h ep r o f e s s i o n a l l yw r i t t e nm a c h i n ec o d ea l r e a d y p r e s e n ti n t h eR O M .I n a l l ,

3 9 K e r n a lr o u t i n e sa r ea v a i l a b l e ,a n da n a l p h a b e t i c a ll i s to f t h e s ei s g i v e ni n T a b l e1 7 . 1 .W h e na n yo f t h e s e r o u t i n e si s c a l l e d ,n o r m a l l yw i t hJ S R ,t h eK e r n a lp e r f o r m se i t h e ra

d i r e c to r a n i n d i r e c tj u m pi n t ot h eh e a r to f t h eK e r n a lv i aa v e c t o r e d a d d r e s so nP a g e0 3o f

b l o c kz e r oR A M .T a b l e1 7 . 2l i s t st h e s ev e c t o r e da d d r e s s e s .T h i sa p p r o a c ho f j u m p i n g

i n d i r e c t l yi n t o t h eK e r n a lh a sb e e nd o n ef o ra d e l i b e r a t er e a s o n . I nt h e f u t u r e ,t h eB A S I Cm a yb e r e v i s e do r e n h a n c e da n dt h i s w i l lp r o b a b l ym e a nt h a t t h er o u t i n e s w i t h i n t h

K e r n a lw i l lb e m o v e da r o u n d s o m e w h a t .A sl o n ga s a c c e s s t o t h eK e r n a lr o u t i n e si s v i at h e

' o f f i c i a l 'v e c t o r ,m a c h i n ec o d ep r o g r a m sw r i t t e n f o rB A S I Cv e r s i o nX w i l la l s or u no n

B A S I Cv e r s i o nZ , b e c a u s et h e yw i l la l le n t e rt h eK e r n a la t t h es a m ep o i n t ,e v e nt h o u g ht h e

a c t u a ls e q u e n c e o fe v e n t st h a to c c u r sw h e nt h e yg e t t h e r em a yc h a n g e !

W h a tf o l l o w sn o wi s a d e s c r i p t i o no f e a c ho n eo f t h e K e r n a lr o u t i n e s — p r a c t i c

e x a m p l e sa r ei n c l u d e df o r t h eo n e st h a ty o ua r em o r el i k e l yt o u s ef r e q u e n t l y .

A C P T RG e td a t af r o ma n I E E Es e r i a lb u s .

A d d r e s s 6 5 4 4 5( $ F F A 5 )

R e g i s t e r s a c c u m u l a t o ra n dX r e g i s t e r

P r e p a r a t i o nT A L K ,T K S AS t a c ku s e 1 3 b y t e s

A C P T Ri s u s e dt o r e a d ab y t ei n t ot h ea c c u m u l a t o rf r o ma s e r i a ld e v i c es u c ha s a d i s c .

B e c a u s et h i sc a l lu s e sf u l lh a n d s h a k i n gt h es e r i a ld e v i c em u s tf i r s tb e t o l dt o t r a n s m i td a t a

u s i n gT A L K .T h eX r e g i s t e ri s a l s ou s e db yt h i sr o u t i n e .E r r o r c h e c k i n g s h o u l d b e h

b y R E A D S Ta s e r r o r sa r es i g n a l l e di n t h es t a t u sw o r d .

E x a m p l e :

P H A \ s a v ea c c u m u l a t o r

T X A

P H A \ s a v eX r e g i s t e r

L D A # 2

J S RT A L K \ d e v i c e2 t o t a l k

J S RA C P T R \ r e a db y t ef r o ms e r i a lb u s

S T Am e m o r y \ s a v ed a t ab y t e

\ c o n t i n u eu n t i lf i n i s h e d

P L A

T A X \ r e s t o r eX r e g i s t e r

P L A \ r e s t o r ea c c u m u l a t o r

9 7

Page 105: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 105/180

T a b l e1 7 . 1 T h eK e r n a lr o u t i n e s

N a m e

A C P T R

C H K I NC H K O U TC H R I NC H R O U TC I O U TC L A L LC L O S EC L R C H NG E T I NI O B A S EL I S T E NL O A DM E M B O TM E M T O PO P E NP L O T

R D T I MR E A D S TR E S T O RS A V ES C N K E YS C R E E NS E C O N DS E T L F S

S E T M S GS E T N A MS E T T I MS E T T M OS T O PT A L KT K S AU D T I M

U N L S NU N T L KV E C T O R

A d d r e s s

D e c i m a lH e x

6 5 4 4 5

6 5 4 7 8

6 5 4 8 1

6 5 4 8 7

6 5 4 9 0

6 5 4 4 8

6 5 5 1 1

6 5 4 7 5

6 5 4 8 4

6 5 5 0 8

6 5 5 2 3

6 5 4 5 7

6 5 4 9 3

6 5 4 3 6

6 5 4 3 3

6 5 4 7 2

6 5 5 2 0

6 5 5 0 2

6 5 4 6 3

6 5 4 1 8

6 5 4 9 6

6 5 4 3 9

6 5 5 1 7

6 5 4 2 7

6 5 4 6 6

6 5 4 2 4

6 5 4 6 9

6 5 4 9 9

6 5 4 4 2

6 5 5 0 5

6 5 4 6 0

6 5 4 3 0

6 5 5 1 4

6 5 4 5 46 5 4 5 1

6 5 4 2 1

F F A 5

F F C 6F F C 9

F F C FF F D 2F F A 8F F E 7

F F C 3F F C CF F E 4

F F F 3F F B 1

F F D 5F F 9 CF F 9 9

F F C 0

F F F 0

F F D EF F B 7

F F 8 A

F F D 8F F 9 F

F F E DF F 9 3

F F B AF F 9 0

F F B DF F D BF F A 2F F E 1

F F B 4

F F 9 6F F E A

F F A EF F A BF F 8 D

D e s c r i p t i o n

G e tb y t ef r o ms e r i a lp o r t

O p e nc h a n n e lf o ri n p u t

O p e nc h a n n e lf o ro u t p u t

I n p u tc h a r a c t e rf r o mc h a n n e l

O u t p u tc h a r a c t e rt o c h a n n e l

P u tb y t et o s e r i a lp o r t

C l o s ea l l f i l e sa n dc h a n n e l s

C l o s es p e c i f i e dl o g i c a lf i l e

C l o s ei n p u ta n do u t p u tc h a n n e l s

G e tc h a r a c t e rf r o mk e y b o a r db u f f e r

G e tb a s e a d d r e s so f I / Od e v i c e s

C o m m a n ds e r i a lb u sd e v i c e s t ol i s t e n

L O A Dm e m o r yf r o md e v i c e

R e a d / s e tb o t t o mo f m e m o r y

R e a d / s e tt o po f m e m o r y

O p e na l o g i c a lf i l e

R e a d / s e tX Yc u r s o rp o s i t i o n

R e a dr e a lt i m ec l o c k

R e a d I / Os t a t u sw o r d

R e s e tI / Ov e c t o r s

S a v em e m o r yb l o c kt o d e v i c e

S c a nk e y b o a r d

R e t u r nX Yd e t a i l so f s c r e e n

S e n ds e c o n da d d r e s sa f t e rL I S T E N

S e tl o g i c a lf i r s ta n ds e c o n da d d r e s s

C o n t r o lK e r n a lm e s s a g e s

S e tf i l en a m e

S e tr e a lt i m ec l o c k

S e tt i m e o u to n s e r i a lb u s

S c a nS T O Pk e y

I n s t r u c ts e r i a lb u sd e v i c et o T A L KS e n ds e c o n d a r ya d d r e s sa f t e rT A L KI n c r e m e n tr e a lt i m ec l o c k

C o m m a n ds e r i a lb u st o u n L I S T E NC o m m a n ds e r i a lb u st o u n T A L KR e a d / s e tv e c t o r e dI / O

C H K I NO p e na c h a n n e lf o ri n p u t .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 4 7 8( $ F F C 6 )

X r e g i s t e r ,a c c u m u l a t o r

( O P E N )

n o n e

C H K I Ni s u s e dt o d e f i n ea n i n p u tc h a n n e lf r o ma p r e v i o u s l yO P E N e dl o g i c a lf i l e ,t h u s

a l l o w i n gi t t o b e r e a d .T h eX r e g i s t e ri s u s e dt o h o l dt h e l o g i c a lf i l en u m b e r ,t h e

a c c u m u l a t o ri s a l s ou s e d .T h i sr o u t i n em u s tb e c a l l e db e f o r e u s i n ge i t h e rt h eC H R I No r

G E T I Nr o u t i n e si f d a t ai s b e i n gi n p u tf r o ma n yd e v i c e o t h e rt h a nt h ek e y b o a r d .

N o t et h a tt h i sr o u t i n ew i l la u t o m a t i c a l l ys e n da T A L Ka d d r e s si f t h ec o m m u n i c a t i n g

d e v i c ei s p r e s e n to n t h es e r i a lb u s .A s e c o n d a r ya d d r e s sw i l la l s ob e s e n ti f s o s p e c i f i e di n

t h eO P E Nr o u t i n e .

9 8

Page 106: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 106/180

T a b l e1 7 . 2 V e c t o r e da d d r e s s e s

N a m e

U S R A D D

A D R A Y 1A D R A Y 2I N P P T R

K E Y T A BI E R R O RI M A I NI C R N C HC I N VC B I N VN M I N VI O P E N

I C L O S EI C H K I NI C K O U TI C L R C H

I B A S I N

I B S O U T

I S T O P

I G E T I N

I C L A L LU S R C M DI L O A DI S A V E

D e c i m a l

1 - 2

3 - 4

5 - 6

6 7 - 6 8

2 4 5 - 2 4 6

7 6 8 - 7 6 9

7 7 0 - 7 7 1

7 7 2 - 7 7 3

7 8 8 - 7 8 9

7 9 0 - 7 9 1

7 9 2 - 7 9 3

7 9 4 - 7 9 5

7 9 6 - 7 9 7

7 9 8 - 7 9 9

8 0 0 - 8 0 1

8 0 2 - 8 0 3

8 0 4 - 8 0 5

8 0 6 - 8 0 7

8 0 8 - 8 0 9

8 1 0 - 8 1 1

8 1 2 - 8 1 3

8 1 4 - 8 1 5

8 1 6 - 8 1 7

8 1 8 - 8 1 9

A d d r e s s

H e x

0 0 0 1 - 0 0 0 2

0 0 0 3 - 0 0 0 40 0 0 5 - 0 0 0 6

0 0 4 3 - 0 0 4 4

0 0 F 5 - 0 0 F 60 3 0 0 - 0 3 0 1

0 3 0 2 - 0 3 0 3

0 3 0 4 - 0 3 0 5

0 3 1 4 - 0 3 1 5

0 3 1 6 - 0 3 1 7

0 3 1 8 - 0 3 1 9

0 3 1 A - 0 3 1 B

0 3 1 C - 0 3 1 D

0 3 1 E - 0 3 1 F

0 3 2 0 - 0 3 2 1

0 3 2 2 - 0 3 2 3

0 3 2 4 - 0 3 2 5

0 3 2 6 - 0 3 2 7

0 3 2 8 - 0 3 2 9

0 3 2 A - 0 3 2 B

0 3 2 C - 0 3 2 D

0 3 2 E - 0 3 2 F

0 3 3 0 - 0 3 3 1

0 3 3 2 - 0 3 3 3

V e c t o r

U S Ra d d r e s s( 0 h o l d s$ 4 C )

C o v e r tF P t o i n t e g e r

C o n v e r ti n t e g e r t oF PI N P U Tr o u t i n e

K e y b o a r dd e c o d et a b l e

B A S I Ce r r o rm e s s a g e

B A S I C w a r ms t a r t

B A S I Ct o k e n i z e r

H a r d w a r eI R Q

B R Kv e c t o r

N M Iv e c t o r

O P E Nv e c t o r

C L O S Ev e c t o r

C H K I Nv e c t o r

C H K O U Tv e c t o r

C L R C H Nv e c t o r

C H R I Nv e c t o r

C H R O U Tv e c t o r

S T O Pv e c t o r

G E T I Nv e c t o r

C L A L Lv e c t o r

U s e r - d e f i n e dv e c t o r

L O A Dv e c t o r

S A V Ev e c t o r

T h e r ea r e t h r e e p o s s i b l ee r r o r s :

# 3 F i l ei s n o tO P E N# 5 N o d e v i c ep r e s e n t

# 6 F i l en o ta n i n p u tf i l e !

C H K O U TO p e na c h a n n e lf o ro u t p u t .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 4 8 1( $ F F C 9 )

X r e g i s t e r ,a c c u m u l a t o r

( O P E N )n o n e

C H K O U Td e f i n e sa p r e v i o u s l yO P E N e df i l ef o ro u t p u ts o t h a ti t m a yh a v ed a t aw r i t t e n

t o i t . T h eX r e g i s t e rs h o u l dc o n t a i nt h ef i l en u m b e r ;t h ea c c u m u l a t o ri s a l s o u s e d .T h i s

r o u t i n em u s tb e u s e dp r i o rt o s e n d i n gd a t a t o a n o t h e rd e v i c e .C H K O U Tw i l l

a u t o m a t i c a l l ys e n d aL I S T E Na d d r e s si f t h e d e v i c ei s p r e s e n to n t h es e r i a lb u s .

N o t e i t i s n o tn e c e s s a r yt o c a l lt h i sr o u t i n et o o u p u td a t at o t h es c r e e n .

T h e r ea r e t h r e e p o s s i b l ee r r o r s :

# 3 N o f i l eo p e n

# 5 N o d e v i c e p r e s e n t

# 7 N oo u t p u tf i l ep r e s e n t !

9 9

Page 107: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 107/180

C H R I NI n p u t ac h a r a c t e rf r o mt h ei n p u t c h a n n e l .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 4 8 7( $ F F C F )

a c c u m u l a t o r ,X r e g i s t e r

( O P E N ,C H K I N )

n o n e

C H R I Nr e a d sa b y t eo f d a t ai n t ot h ea c c u m u l a t o rf r o mt h ec h a n n e la l r e a d yo p e nf o ri n p u t .I f C H K I Nh a s n o tb e e nc a l l e dt o d e f i n ea n i n p u tc h a n n e lt h ek e y b o a r dw i l lb e u s e d

a s a d e f a u l tc h a n n e l .

T h i sr o u t i n ec a n b eu s e dt o m a n i p u l a t ed a t aa l r e a d y p r e s e n ti n t h ek e y b o a r db u f f e r —

f o r e x a m p l e ,t o m o v et h e k e y b o a r db u f f e ri n t ot h e t a p eb u f f e r .A s t h eX r e g i s t e ri s

r e q u i r e db y C H R I N ,t h eY r e g i s t e rm u s tb e u s e df o r i n d e x i n g :

P H A

T X A

P H A

L D Y # 0

L O O P J S RC H R I N

S T AT A P E ,Y

I N Y

C M P# 1 3

B N EL O O P

P L A

T X A

P L A

\

\\

\

\

\

\

\

\

\

s a v ea c c u m u l a t o r

s a v eX r e g i s t e r

i n i t i a l i z eY r e g i s t e ra s o f f s e tc o u n t e r

r e m o v ec h a r a c t e r

p l a c ei n t a p e b u f f e r

i n c r e m e n tY

d o e sa c c u m u l a t o rh o l dC R ?

n o , s or e p e a t

r e s t o r eX r e g i s t e r

r e s t o r ea c c u m u l a t o r

\ O U TO u t p u tc h a r a c t e ri n a c c u m u l a t o rt o c h a n n e l .

A d d r e s s 6 5 4 9 0( $ F F D 2 )

R e g i s t e r s a c c u m u l a t o r

P r e p a r a t i o n( C H K O U T ,O P E N )

S t a c k u s e n o n e

T h i sr o u t i n ec a nb e u s e dt o p r i n tA S C I Ic h a r a c t e r st o t h es c r e e na s t h i si s t h ed e f a u l to u p u t

d e v i c e .O t h e rd e v i c e sc a n b es e tu p b y c a l l i n gt h eO P E Na n dC H K O U Tr o u t i n e s .T h e

c h a r a c t e rt o b e o u t p u t s h o u l d b ep l a c e di n t ot h ea c c u m u l a t o r .T h ef o l l o w i n ge x a m p l e

s h o w sh o wa s t r i n go f c h a r a c t e r sc a nb e p r i n t e dt o t h es c r e e n .

L O O P

P H A

L D Y # 0

L D AW O R D ,Y

J S RC H R O U T

I N Y

C M P# 1 3

B N EL O O P

P L A

R T S

W O R DC O M M O D O R E

\

\

\

\

\

\

\

\

6 4

s a v ea c c u m u l a t o r

i n i t i a l i z ec o u n t e r

g e tb y t e

p r i n ti t

i n c r e m e n tc o u n t e r

w a sl a s tc h a r a c t e ra C R ?

n o r e p e a t

r e s t o r ea c c u m u l a t o r

< C R >

1 0 0

Page 108: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 108/180

C I O U TO u t p u tb y t et o d e v i c eo n s e r i a lb u s .

A d d r e s s 6 5 4 4 8( $ F F A 8 )

R e g i s t e r s a c c u m u l a t o r

P r e p a r a t i o nL I S T E N ,( S E C O N D )

S t a c ku s e n o n e

C I O U Tw r i t e s t h eb y t ec u r r e n t l yh e l di n t h ea c c u m u l a t o rt o a d e v i c e p r e s e n to n t h eI E E Es e r i a lb u su s i n gf u l ls e r i a lh a n d s h a k i n g .T oe n s u r et h a t t h ed e v i c ei s r e a d yt o r e c e i v ed a t a

t h eL I S T E Nc a l lm u s tb e u s e df i r s t ;S E C O N Dm a yb e u s e dt o s e n da s e c o n d a r ya d d r e s s .

C L A L LC l o s ea l l f i l e s .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 5 1 1( $ F F E 7 )

a c c u m u l a t o r ,X r e g i s t e r

h o n e

1 1 b y t e s

T h i s r o u t i n ec l o s e sa l l f i l e st h a t a r e c u r r e n t l yo p e n .C L A L La l s oc a l l sC L R C H Nt o r e s e t

t h e i n p u t / o u t p u tc h a n n e l s .

C L O S EC l o s el o g i c a lf i l e .

A d d r e s s 6 5 4 7 5( $ F F C 3 )

R e g i s t e r s a c c u m u l a t o r ,X r e g i s t e r ,Y r e g i s t e r

P r e p a r a t i o na c c u m u l a t o r ,X r e g i s t e r

S t a c ku s e n o n e

T h i sr o u t i n ei s u s e dt o c l o s ea s p e c i f i e dl o g i c a lf i l e — t h ef i l en u m b e rb e i n gi n t h e

a c c u m u l a t o r( t h i sm u s tb e t h es a m en u m b e rt h a tt h ef i l ew a sO P E N e dw i t h ) .E r r o r sa r e0

a n d2 4 0a n ds h o u l db e h a n d l e db y c a l l i n gR E A D S T .

C L R C H NC l o s ea l l i n p u t / o u t p u tc h a n n e l s .

A d d r e s s 6 5 4 8 4( $ F F C C )

R e g i s t e r s a c c u m u l a t o r ,X r e g i s t e r

P r e p a r a t i o nn o n e

S t a c ku s e 9 b y t e s

T h i sr o u t i n ei s c a l l e dt o r e s t o r ea l l i n p u t / o u t p u tc h a n n e l st o t h e i rd e f a u l tv a l u e s .T h e

d e f a u l ti n p u td e v i c ei s t h ek e y b o a r d( d e v i c e# 0 )a n dt h e d e f a u l to u t p u td e v i c ei s t h e s c r e e n

( d e v i c e# 3 ) .I f o n eo f t h e d e v i c e sb e i n gc l o s e di s o n t h es e r i a lb u st h i sr o u t i n ew i l la l s oc a l l

U N T A L Ko r U N L I S T E N .C L R C H Ni s a u t o m a t i c a l l yc a l l e db y C L A L L .

G E T I NG e ta c h a r a c t e rf r o mk e y b o a r d .

A d d r e s s

R e g i s t e r

P r e p a r a t i o n

S t a c ku s e

6 5 5 0 8( $ F F E 4 )

a c c u m u l a t o r

n o n e

n o n e

T h i sr o u t i n eg e t so n ec h a r a c t e rf r o mt h ek e y b o a r d q u e u ea n dp l a c e si t i n t h ea c c u m u l a t o r .

C h a r a c t e r sm a ya l s ob e r e a di n f r o mt h eR S 2 3 2p o r t .I f n o c h a r a c t e ri s f o u n di n t h eq u e u e

t h e nt h ea c c u m u l a t o rr e t u r n st h e v a l u e0 . T h ef o l l o w i n ge x a m p l es h o w sh o wy o uc a nw a i t

f o ra k e yt o b e p r e s s e d :

W A I T J S RG E T I N \ g e tc h a r a c t e r

B E QW A I T \ i f e m p t yr e p e a t

1 0 1

Page 109: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 109/180

A l t e r n a t i v e l y ,a s p e c i f i cc h a r a c t e r( o r s e q u e n c e o fc h a r a c t e r s )c a nb e l o o k e df o r .T h e

f o l l o w i n gr o u t i n ew i l lo n l yc o n t i n u ei f t h en u m b e r s6 a n d4 a r ee n t e r e do n ea f t e rt h eo t h e r :

S I X J S R G E T I N \ g e tf i r s tc h a r a c t e r

B E QS I X \ r e p e a ti f e m p t y

C M P # A S C " 6 " \ i s i t a s i x ?

B N ES I X \ n o ,r e s t a r t !

F O U R J S RG E T I N \ y e s ,g e tn e x t c h a r a c t e r

B E QF O U R \ r e p e a ti f e m p t y

C M P # A S C " 4 " \ i s i t a f o u r ?

B N ES I X \ n o ,r e s t a r tf r o mb e g i n n i n g

\ y e s ,a l l s y s t e m sg o !

I O B A S ER e a da d d r e s so f 6 5 2 6C I A .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 5 2 3( $ F F F 3 )

X a n dY r e g i s t e r s

n o n e

2 b y t e s

W h e nc a l l e d ,t h i sr o u t i n er e t u r n s ' t h e1 6 - b i ta d d r e s sw h e r et h em e m o r ym a p p e dI / Oi s

l o c a t e d ,i n t h ei n d e xr e g i s t e r s .T h eX r e g i s t e rh o l d st h el o wb y t ea d d r e s sa n dt h eY r e g i s t e r

t h eh i g ho r d e rb y t e .

L I S T E NC o m m a n ds e r i a lb u sd e v i c et o L I S T E N .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c k u s e

6 5 4 5 7( $ F F B 1 )

a c c u m u l a t o r

n o n e

n o n e

T h ed e v i c eo n t h es e r i a lb u ss p e c i f i e db y t h en u m b e ri n t h ea c c u m u l a t o ri s c o m m a n d e dt o

r e c e i v ed a t a .T h ed e v i c en u m b e ri s i n t h er a n g e4 t o 3 1 .E r r o r ss h o u l db e h a n d l e db y

R E A D S T .

L O A DL o a dm e m o r yf r o md e v i c ei n t oR A M .

A d d r e s s 6 5 4 9 3( $ F F D 5 )

R e g i s t e r s a c c u m u l a t o r ,X r e g i s t e r ,Y r e g i s t e r

P r e p a r a t i o nS E T L F S ,S E T N A MS t a c k u s e n o n e

T h i sr o u t i n ec a nb e u s e dt o l o a d o rv e r i f ya b l o c ko f m e m o r yf r o ma n i n p u t d e v i c e( t a p e ,

f o re x a m p l e ) .T h ea c c u m u l a t o rh o l d st h ec o m m a n dc o d e — 0s i g n a l sL O A D ,1 s i g n a l s

V E R I F Y .T h eS E T L F Sa n dS E T N A Mr o u t i n e sm u s tb e c a l l e df i r s t .

I f a r e l o c a t i o no f t h el o a di s r e q u i r e dt h eS E T L F Sr o u t i n es h o u l d b e u s e dt o s e n da

s e c o n d a r ya d d r e s so f 0 , a n dt h ei n d e xr e g i s t e r sm u s th o l dt h er e l o a ds t a r ta d d r e s s .I f t h ed e v i c ei s a d d r e s s e dw i t h as e c o n d a r ya d d r e s so f 1 t h e nt h ed a t ai s l o a d e da t t h ea d d r e s s

g i v e nb y t h eh e a d e r .

1 0 2

Page 110: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 110/180

E x a m p l e :

L D A # 0

L D X# l o wb y t e a d d r e s s

L D Y# h i g hb y t e a d d r e s s

J S RL O A DS T XT E M P

S T YT E M P + 1

\ l o a df i l ef r o mt a p e

\ c a l lS E T L F Sa n dS E T N A Mf i r s t

\ s e tL O A Df l a g

\ s e tr e l o a da d d r e s si f r e q u i r e d

\ l o a dm e m o r y

\ i n d e xr e g i s t e r sn o wh o l dh i g h e s ta d d r e s s

\ l o a d e d — s a v ei f n e e d e d

E r r o r s r e t u r n e da r e0 , 4 , 5 , 8 ,9 ( s e eR E A D S T ) .

M E M B O TS e tb o t t o mo f m e m o r y .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 4 3 6( $ F F 9 C )

b o t hi n d e xr e g i s t e r s

n o n e

n o n e

T h i sr o u t i n ec a nb e u s e dt o e i t h e rr e a do r s e tt h eb o t t o mo f m e m o r y ,d e p e n d i n go n t h e

c o n d i t i o no f t h eC a r r yf l a g .I f c a r r yi s s e tt h e nt h ea d d r e s so f t h eb o t t o mo f m e m o r yi s

r e t u r n e di n t h eX a n dY r e g i s t e r s . I fc a r r yi s c l e a ro n e n t r yt o t h i sr o u t i n e , t h ev a l u e si n t h e

i n d e xr e g i s t e r sa r e i n t e r p r e t e d a sa n a d d r e s sa n da r el o a d e di n t ot h eM E M B O Tp o i n t e r

w h i c hp o i n t st o t h eb o t t o mo f R A M .T h i sr o u t i n ec a nb e u s e dt o c r e a t e' s a f e 'm a c h i n e

c o d es p a c eb y m o v i n gt h eM E M B O Tp o i n t e ru p t h em e m o r ym a p( s a y5 1 2b y t e su p ) , a s

t h ef o l l o w i n ge x a m p l es h o w s :

S E C

J S RM E M B O T

I N Y

I N Y

C L C

J S RM E M B O T

M E M T O PS e tt h et o po f R A M

\ r e a dc u r r e n tp o i n t e r

\ s e tC a r r yf l a g

\ p o i n t e ri n X a n dY

\ i n c r e m e n tp a g eb y t w o

\ c l e a rC a r r yf l a g

\ r e w r i t eM E M B O T

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 4 3 3 ( $ F F 9 9 )

b o t hi n d e xr e g i s t e r s

n o n e

2 b y t e s

T h i sr o u t i n ec a n b e u s e dt o e i t h e rr e a d o rs e tt h eb o t t o mo f m e m o r yd e p e n d i n go n t h e

c o n d i t i o no ft h eC a r r yf l a g .I fc a r r yi s s e tt h e nt h ea d d r e s so ft h et o po fm e m o r yi s r e t u r n e d

i n t h eX a n dY r e g i s t e r s . I ft h eC a r r yf l a gi s c l e a ro n e n t r yt o t h i sr o u t i n et h ev a l u e si n t h ei n d e xr e g i s t e r sa r ei n t e r p r e t e d a sa n a d d r e s s ,a n da r el o a d e di n t o t h eM E M T O Pp o i n t e r

w h i c hp o i n t st o t h et o p o fR A M .

O P E NO p e na l o g i c a lf i l e .

A d d r e s s 6 5 4 7 2( $ F F C 0 )

R e g i s t e r s a c c u m u l a t o r ,X r e g i s t e r ,Y r e g i s t e r

P r e p a r a t i o nS E T L F S ,S E T N A MS t a c ku s e n o n e

1 0 3

Page 111: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 111/180

T h i sr o u t i n ei s u s e dt o O P E Na l o g i c a lf i l ef o ri n p u to r o u t p u to p e r a t i o n s .B o t hS E T L F Sa n dS E T N A Mm u s tb e u s e dp r i o rt o t h eO P E Nr o u t i n e .T h ef o l l o w i n ge x a m p l es h o w s

h o wt h eB A S I Ce q u i v a l e n to f O P E N1 , 1 ,1 , " N A M E "c a nb e i m p l e m e n t e d :

\ l e n g t ho f f i l en a m e

\ h i g hb y t e a d d r e s sf i l e n a m e

\ l o wb y t e a d d r e s s f i l e n a m e

\ w r i t ef i l e n a m e

L D A# 4

L D Y # 3

L D X # 6 0

J S RS E T N A M

L D A# 1

L D Y # 1

L D X # 1

J S RS E T L F S

J S RO P E N

P L O TR e a d / s e tc u r s o rp o s i t i o n .

A d d r e s s 6 5 5 2 0( $ F F F 0 )

R e g i s t e r s a c c u m u l a t o r ,X r e g i s t e r ,Y r e g i s t e r

P r e p a r a t i o nn o n e

S t a c k u s e 2 b y t e s

T h i sr o u t i n ec a nb e u s e dt o r e a d o rs e tt h ec u r s o rp o s i t i o nd e p e n d i n go n t h ec o n d i t i o no f

t h eC a r r yf l a g .I f c a r r yi s s e tt h eX a n dY c o o r d i n a t e so f t h ec u r s o ra r el o a d e di n t ot h eXa n dY r e g i s t e r s r e s p e c t i v e l y .I f c a r r yi s c l e a rt h e nt h e c o n t e n t so f t h eX a n dY r e g i s t e r sa r e

u s e dt o r e p o s i t i o n t h ec u r s o ra t t h en e wX , Y c o o r d i n a t e s .T h ef o l l o w i n ge x a m p l es h o w s

h o wt h i sr o u t i n ec a n b eu s e d — i nt h i sc a s et o m o v et h e c u r s o ra c r o s sa n dd o w no n ep o s i t i o n :

S E C

J S RP L O T

I N X

I N Y

C L C

J S RP L O T

R D T I MR e a ds y s t e mc l o c k .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 5 0 2( $ F F D E )

a c c u m u l a t o r ,Xn o n e

2 b y t e s

\

\

\

\

\

\

r e g i s t e r ,

s e t c a r r y

r e a dc u r s o r c o o r d i n a t e s

a d do n et o X c o o r d i n a t e

a d do n et o Y c o o r d i n a t e

c l e a rc a r r y

r e p o s i t i o nc u r s o r

Y r e g i s t e r

T h i sr o u t i n ec a nb e u s e dt o r e a dt h es y s t e m( j i f f y )c l o c kw h i c h' t i c k s 'e v e r y 6 0 t h s e c o n d .

T h ea c c u m u l a t o rr e t u r n st h em o s ts i g n i f i c a n t b y t e ,t h eX r e g i s t e rt h e n e x tm o s ts i g n i f i c a n t

a n dt h eY r e g i s t e rt h el e a s ts i g n i f i c a n t b y t e .T h ej i f f yc l o c ki s m a i n t a i n e di n l o c a t i o n s$ A 0 ,

$ A 1a n d$ A 2t h o u g ht h e s e l o c a t i o n ss h o u l dn o tb e r e a dd i r e c t l y .

1 0 4

Page 112: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 112/180

E x a m p l e :

J S R R D T I M \ r e a dj i f f yc l o c k

S T A$ F B \ s a v et i m ei n z e r op a g e

S T X$ F C

S T Y$ F D

R E A D S TR e a ds t a t u sw o r d .

A d d r e s s 6 5 4 6 3( $ F F B 7 )

R e g i s t e r s a c c u m u l a t o r

P r e p a r a t i o nn o n e

S t a c ku s e 2 b y t e s

T h i s r o u t i n er e t u r n st h e c u r r e n ts t a t u so f a n i n p u t / o u t p u td e v i c e .S t a t u si s r e t u r n e da s a

s i n g l e - b y t eb i t p a t t e r ni n t h ea c c u m u l a t o r . T h i sr o u t i n es h o u l dg e n e r a l l yb e c a l l e do n

c o m p l e t i o no f a n y i n p u t / o u t p u tp r o c e d u r ew h i c hm i g h t c a u s e a ne r r o r .T h ee r r o r sa s s o c i a t e dw i t hp a r t i c u l a rb i t sa r es h o w ni n T a b l e1 7 . 3 .

T a b l e1 7 . 3

B i t

0

1

2

3

4

5

6

7

C a s s e t t er e a d

S h o r t b l o c k

L o n gb l o c k

R e a de r r o r

C h e c k s u me r r o r

E n do f f i l e

E n do f t a p e

S e r i a lR W

T i m e - o u tw r i t e

T i m e - o u tr e a d

E O Il i n e

N o d e v i c e p r e s e n t

T a p ev e r i f y / l o a d

S h o r t b l o c k

L o n gb l o c k

M i s m a t c h

C h e c k s u me r r o r

E n do f t a p e

F o re x a m p l e ,t h ef o l l o w i n gr o u t i n ec a n b e u s e dt o c h e c ka t a p el o a df o rc h e c k s u me r r o r s :

J S RR E A D S T

A N D# $ 2 0 \ c h e c k s u m ?

B E QE R R O R \ y e s ,c a l l ,h a n d l i n gr o u t i n e

R E S T O RR e s e ta l l s y s t e md e f a u l tv e c t o r s .

A d d r e s s 6 5 4 1 8( $ F F 8 A )

R e g i s t e r s a c c u m u l a t o r ,X r e g i s t e r ,Y r e g i s t e r

P r e p a r a t i o nn o n e

S t a c ku s e 2 b y t e s

A l ls y s t e mv e c t o r su s e di n K e r n a la n dB A S I C ,p l u st h e i n t e r r u p tv e c t o r s ,a r er e s e tt o t h e i r

d e f a u l tv a l u e s .

S A V ES a v em e m o r yb l o c kt o d e v i c e .

A d d r e s s 6 5 4 9 6( $ F F D 8 )

R e g i s t e r s a c c u m u l a t o r ,X r e g i s t e r ,Y r e g i s t e r

P r e p a r a t i o nS E T L F S ,S E T N A MS t a c ku s e n o n e

1 0 5

Page 113: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 113/180

T h ea c c u m u l a t o rp o i n t st o a z e r op a g ev e c t o rs p e c i f y i n g t h es t a r ta d d r e s so f t h em e m o r y

t o b e s a v e d ,a n dt h ei n d e xr e g i s t e r sh o l dt h ee n da d d r e s s .T h eS E T L F Sa n dS E T N A Mr o u t i n e sm u s tb e u s e dp r i o r t oS A V E .N o t et h a ta f i l e n a m ei s n o tn e e d e dw h e ns a v i n gt o

t a p e( d e v i c e1 ) .

T h ef o l l o w i n gr o u t i n es h o w sh o wa s e c t i o no f m e m o r ys t o r e df r o m$ C 0 0 0t o $ C 1 2 A( i . e .p a r to f t h eB A S I CR O M )m a yb e s a v e dt o t a p e :

L D A # 1J S RS E T L F S

L D A # 5

L D X# L O W

L D Y# H I G H

J S RS E T N A M

L D A# 0 0

S T A$ F B

L D A# $ C 0

S T A$ F C

L D A# $ F B

L D X# $ 2 A

L D Y# $ C 1

J S RS A V E

S C N K E YS c a nt h ek e y b o a r d .

\ d e v i c e1 t h e r e f o r et a p e

\ f i l e n a m e5 c h a r a c t e r sl o n gi . e ." F I L E 1 "

\ l o a d l o w b y t e a d d r e s so f f i l e n a m e

\ l o a d h i g hb y t ea d d r e s s o f f i l e n a m e

\ w r i t ef i l e n a m e

\ l o wb y t es t a r t

\ h i g hb y t es t a r t

\ p o i n ta c c u m u l a t o rt o S T A R Ta d d r e s s

\ l o wb y t eE N Da d d r e s s

\ h i g hb y t eE N Da d d r e s s

\ s a v em e m o r yb l o c k

A d d r e s s 6 5 4 3 9( $ F F 9 F )

R e g i s t e r s a c c u m u l a t o r ,X r e g i s t e r ,Y r e g i s t e r

P r e p a r a t i o nn o n e

S t a c ku s e n o n e

T h i sr o u t i n e s c a n st h ek e y b o a r dl o o k i n gf o ra ' d e p r e s s e d ' k e y .I f s u c ha k e yi s d e t e c t e di t s

A S C I Ic o d ei s p l a c e di n t ot h en o r m a lk e y b o a r d q u e u ef o rp r o c e s s i n g .T h ef o l l o w i n g

e x a m p l es h o w sh o wa m a c h i n ec o d ep r o g r a mc a nt r u l yh a n d l ei n p u tf r o mt h ek e y b o a r d :

K E Y J S RS C N K E YJ S RG E T I N

B E QK E Y

S C R E E NR e t u r n ss c r e e ns e t - u p .

\ s c a nk e y b o a r d

\ g e tc h a r a c t e r

\ b r a n c hi f n o k e yp r e s e n t

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 5 1 7( $ F F E D )X r e g i s t e r ,Y r e g i s t e r

n o n e

2 b y t e s

T h i sr o u t i n er e t u r n s t h en u m b e ro f c o l u m n si n t h eX r e g i s t e ra n dn u m b e ro f l i n e s i nt h e

Y r e g i s t e r .

1 0 6

Page 114: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 114/180

S E C O N DS e n ds e c o n d a r ya d d r e s sf o rL I S T E N .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 4 2 7 ( $ F F 9 3 )

a c c u m u l a t o r

L I S T E N

n o n e

T h i sr o u t i n ei s u s e dt o s e n da s e c o n d a r ya d d r e s so n t h es e r i a lb u sf o l l o w i n g ac a l lt o t h eL I S T E Nr o u t i n e .E r r o r sa r ei n d i c a t e di n t h es t a t u s b y t e .

S E T L F SS e tu p a l o g i c a lf i l e .

A d d r e s s 6 5 4 6 6( $ F F B A )

R e g i s t e r s a c c u m u l a t o r ,X r e g i s t e r ,Y r e g i s t e r

P r e p a r a t i o nn o n e

S t a c ku s e 2 b y t e s

T h i sr o u t i n ew i l ln o r m a l l yb e c a l l e dd u r i n gt h ei n i t i a l i z a t i o no f i n p u t / o u t p u tb y o t h e r

r o u t i n e s .I t i su s e dt o d e c l a r e t h el o g i c a lf i l en u m b e r ,d e v i c en u m b e ra n ds e c o n d a r ya d d r e s s( c o m m a n dn u m b e r ) .T h e s ea r e p l a c e di n t h ea c c u m u l a t o r ,X r e g i s t e ra n dYr e g i s t e r r e s p e c t i v e l y .I f n o s e c o n d a r ya d d r e s si s t o b e s e n tt h e nt h eY r e g i s t e rs h o u l d

c o n t a i n2 5 5( $ F F ) .

T o s e tu p t h ep r i n t e r a sl o g i c a ld e v i c en u m b e r3 , a n dt o s e n da s e c o n d a r ya d d r e s s o f7 s o

t h a ti t w i l lp r i n ti n l o w e rc a s e ,u s et h ef o l l o w i n g :

L D A # 3

L D X # 4

L D Y# 7

J S RS E T L F S

M S G C o n t r o l

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c k u s e

\ l o g i c a lf i l e3

\ s e l e c t s e r i a lb u sp r i n t e r

\ l o w e rc a s e

m e s s a g e s .

6 5 4 2 4 ( $ F F 9 0 )

a c c u m u l a t o r

n o n e

2 b y t e s

T h i sr o u t i n eg o v e r n sc o n t r o la n de r r o rm e s s a g e s .B i t s6 a n d7 o ft h ea c c u m u l a t o ri n d i c a t e

t h em e s s a g e ' so r i g i n .I f b i t7 i s s e ta n e r r o rm e s s a g ew i l lb e p r i n t e df r o mt h eK e r n a l ,i . e .

' F I L EN O TF O U N D ' .I f b i t6 i s s e t ,a c o n t r o lm e s s a g ei s o u t p u t ,i . e .' P R E S SP L A YO NC A S S E T T E ' .

M e s s a g e sc a n b ee n a b l e do r d i s a b l e da s f o l l o w s :

L D A # 0

J S RS E T M S G

L D A# 4 0

J S RS E T M S G

L D A# 8 0

J S RS E T M S G

N A MS e t u pf i l e n a m e .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 4 6 9( $ F F B D )

a c c u m u l a t o r ,Xn o n e

n o n e

\

\

\

\

\

r e g i s t e r ,

t u r no f fa l l m e s s a g e s

0 1 0 0 0 0 0 0b i t 6 o n

c o n t r o lm e s s a g e s o n l y

1 0 0 00 0 0 0b i t 7 o n

e r r o rm e s s a g e so n l y

Y r e g i s t e r•

1 0 7

Page 115: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 115/180

T h i sr o u t i n ei s u s e dt o s e tu p a f i l e n a m ef o r u s eb y t h eO P E N ,S A V Eo r L O A Dr o u t i n e s .

T h el e n g t ho f t h ef i l e n a m ei s l o a d e di n t ot h ea c c u m u l a t o ra n dt h ei n d e xr e g i s t e r sa r eu s e d

t o h o l dt h ea d d r e s sw h e r et h ef i l e n a m ei s s t o r e d — l o wb y t ei n X r e g i s t e rh i g hb y t ei n Yr e g i s t e r . I fn o f i l e n a m ei s r e q u i r e d t h ea c c u m u l a t o rc a n b es e tt o 0 a n dt h ei n d e xr e g i s t e r ' s

c o n t e n t s a r e i g n o r e d .

T o s e t t h ef i l e n a m ea s ' R E T U R N S ' ,w h i c hi s s t o r e da s a n A S C I Is t r i n ga t $ 0 3 3 4 ,t h e

f o l l o w i n gc o u l db e u s e d :

L D A# 7 \ f i l e n a m el e n g t h

L D X# $ 3 4 \ l o wb y t ef i l e n a m e a d d r e s s

L D Y# $ 0 3 \ h i g hb y t e f i l e n a m ea d d r e s s

J S RS E T N A M

S E T T I MS e tt h es y s t e mc l o c k .

A d d r e s s 6 5 4 9 9( $ F F D B )

R e g i s t e r s a c c u m u l a t o r ,X r e g i s t e r ,Y r e g i s t e rP r e p a r a t i o nn o n e

S t a c ku s e 2 b y t e s

T h i sr o u t i n ei s u s e dt o s e tt h es y s t e mj i f f yc l o c k .T h r e eb y t e s a r ee x p e c t e db y t h er o u t i n e ,

t h em o s ts i g n i f i c a n tb y t ei s p l a c e di n t o t h ea c c u m u l a t o r ,t h en e x ti n t h eX r e g i s t e ra n dt h e

l e a s ts i g n i f i c a n ti n t h eY r e g i s t e r .

S E T T M OS e tt i m e - o u to n s e r i a lb u s .

A d d r e s s

R e g i s t e r sP r e p a r a t i o n

S t a c ku s e

6 5 4 4 2( $ F F A 2 )

a c c u m u l a t o rn o n e

2 b y t e s

T h i sr o u t i n ec a n b e u s e dt o s e to r r e s e tt h et i m e - o u tf l a gf o rt h eI E E Es e r i a lb u s .

S T O PT e s tf o rS T O Pk e yb e i n gp r e s s e d .

A d d r e s s 6 5 5 0 5( $ F F E 1 )

R e g i s t e r s a c c u m u l a t o r ,X r e g i s t e r

P r e p a r a t i o nn o n e

S t a c ku s e n o n e

I f t h eS T O Pk e yi s d e t e c t e dd u r i n g ak e y b o a r ds c a nt h eZ e r of l a gi s s e t .I f t h eS T O Pk e y

i s n o td e t e c t e d ,t h e nt h ea c c u m u l a t o rh o l d sa b y t ec o r r e s p o n d i n gt o t h ev e r yl a s tr o wo f

t h ek e y b o a r ds c a n .

T A L KI n s t r u c tt h es e r i a lb u sd e v i c et o T A L K .

A d d r e s s 6 5 4 6 0( $ F F B 4 )

R e g i s t e r s a c c u m u l a t o r

P r e p a r a t i o nn o n e

S t a c ku s e n o n e

T h ea c c u m u l a t o rs h o u l dc o n t a i nt h en u m b e rw h i c hc o r r e s p o n d st o t h ed e v i c ea b o u tt o b e

a s k e dt o T A L K .C h e c ks t a t u sb y t ef o re r r o r s .

1 0 8

Page 116: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 116/180

T K S AS e n ds e c o n d a r ya d d r e s sa f t e rT A L K .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 4 3 0 ( $ F F 9 6 )

a c c u m u l a t o r

T A L Kn o n e

T h i sr o u t i n ei s u s e dt o s e n da s e c o n d a r ya d d r e s so n t h es e r i a lb u st o t h eT A L K i n gd e v i c e .T h es t a t u sb y t es h o u l d b ec h e c k e df o re r r o r s .

U D T I MI n c r e m e n ts y s t e mc l o c k .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 5 1 4( $ F F E A )

a c c u m u l a t o r ,X r e g i s t e r

n o n e

2 b y t e s

T h i sr o u t i n es i m p l y i n c r e m e n t st h es y s t e mj i f f yc l o c kb y o n es i x t i e t ho f a s e c o n d .

U N L S NC o m m a n ds e r i a ld e v i c et o u n L I S T E N .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 4 5 4( $ F F A E )

a c c u m u l a t o r

n o n e

n o n e

T h i sr o u t i n ei n s t r u c t sa l ld e v i c e s t h a ta r ec u r r e n t l yL I S T E N i n go n t h es e r i a lb u st o s t o p

d o i n gs o ! U s eR E A D S Tt o c h e c kf o re r r o r s .

U N T L KC o m m a n ds e r i a ld e v i c et o u n T A L K .

A d d r e s s

R e g i s t e r s

P r e p a r a t i o n

S t a c ku s e

6 5 4 5 1( $ F F A B )

a c c u m u l a t o r

n o n e

n o n e

I n s t r u c t sa l ld e v i c e s c u r r e n t l yT A L K i n go n s e r i a lb u st o s t o pd o i n gs o .E r r o r c h e c k sm a y

b e p e r f o r m e do n s t a t u s b y t e .

V E C T O RR e a d / s e tv e c t o r s .

A d d r e s s 6 5 4 2 1( $ F F 8 D )

R e g i s t e r s a c c u m u l a t o r ,X r e g i s t e r ,Y r e g i s t e r

P r e p a r a t i o nn o n e

S t a c ku s e 2 b y t e s

D e p e n d i n go n t h ec o n d i t i o n o ft h eC a r r yf l a gt h e 's y s t e mv e c t o r sw i l le i t h e rb e r e a do r

r e s e t .C a l l i n gt h er o u t i n ew i t hc a r r ys e tc a u s e st h es y s t e mv e c t o r st o b e s t o r e di n t h es e c t i o n

o f m e m o r yp o i n t e dt o b y t h ea d d r e s sh e l di n t h ei n d e xr e g i s t e r s .I f t h eC a r r yf l a gi s c l e a r ,

t h el i s tp o i n t e dt o b y t h ei n d e xr e g i s t e r si s c o p i e di n t o t h es y s t e mv e c t o r s .

1 0 9

Page 117: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 117/180

Page 118: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 118/180

p r o g r a m .T o f a c i l i t a t et h i sa f u r t h e ri n s t r u c t i o ni s p r o v i d e d :

R T I R e t u r nf r o mi n t e r r u p t

T h i si n s t r u c t i o nr e s e t st h e S t a t u sr e g i s t e ra n dP r o g r a mC o u n t e rt o t h ev a l u e sp r e v i o u s l y

s a v e do n t h es t a c k ,a n da l l o w st h eo r i g i n a lp r o g r a mt o c o n t i n u ef r o mt h ep o i n ta t w h i c hi t

w a si n t e r r u p t e d .

B e f o r ep e r f o r m i n gt h e i n d i r e c tj u m pt o t h e I R Qv e c t o rt h e K e r n a la l s os a v e st h e

c o n t e n t so f t h eo t h e rr e g i s t e r s .T h i si s v e r yi m p o r t a n tb e c a u s et h e yw i l lu n d o u b t e d l yb ea l t e r e db y t h ei n t e r r u p ts e r v i c er o u t i n e ,a n dw e n e e dt o e n s u r et h a t t h ec o n t e n t so f a l l

r e g i s t e r sa r ei n t h e i rp r e - i n t e r r u p tc o n d i t i o n b e f o r et h eR T Ii s e x e c u t e d .T h em a c h i n ec o d e

l o c a t e da t 6 5 3 9 4r e s p o n s i b l e( o r t h i sr e a d sa s f o l l o w s :

\ s a v ea c c u m u l a t o ro n s t a c k

\ s a v eX r e g i s t e ro n s t a c k .

\ s a v eY r e g i s t e ro n s t a c k

\ t r a n s f e rS t a c kP o i n t e rt o X r e g i s t e r

\ g e tS t a t u sr e g i s t e r

\ m a s ko f fh i g hn i b b l e

\ i f Z = 1 t h e nI R Q

\ j u m pt o I R Qs e r v i c e

A s y o uc a ns e e ,t h ea c c u m u l a t o ra n di n d e xr e g i s t e r sa r ep u s h e do n t o t h es t a c kb e f o r e

j u m p i n gt o t h e I R Qv e c t o r — a n yu s e r - s u p p l i e d r o u t i n e ss h o u l da c to n t h i sa n dh a n d l e

t h e ma s r e q u i r e d . S e v e r a lb y t e si n P a g e0 3 a r er e s e r v e da s s t o r el o c a t i o n s f o r t h er e g i s t e r s

( s e eT a b l e1 8 . 1 ) ,a n du s e r - s u p p l i e d r o u t i n e sc a na l s ou s e t h e s ei f s t a c ks p a c ei s a t a

p r e m i u m .( T h eJ M P( 7 9 0 )i n s t r u c t i o ni s d e s c r i b e di n t h en e x ts e c t i o n — B R E A K S . )

T a b l e1 8 . 1

6 5 3 9 4

6 5 3 9 5

6 5 3 9 6

6 5 3 9 7

6 5 3 9 8

6 5 3 9 9

6 5 4 0 0

6 5 4 0 3

6 5 4 0 5

6 5 4 0 7

6 5 4 1 0

P H A

T X A

P H A

T Y A

P H A

T S X

L D A2 6 0 ,X

A N D# 1 6

B E Q + 3

J M P( 7 9 0 )

J M P( 7 8 8 )

L a b e l A d d r e s s D e s c r i p t i o n

S A R E G

S X R E GS Y R E GS P R E G

7 8 0 ( $ 0 3 0 C )

7 8 1( S 0 3 0 D J

7 8 2( $ 0 3 0 E )

7 8 3 ( $ 0 3 0 F )

A c c u m u l a t o rs t o r e

X r e g i s t e rs t o r a g e

Y r e g i s t e rs t o r a g e

S t a c kP o i n t e r s t o r a g e

T h e V I C 2 0 ' s k e y b o a r di s i n t e r r u p td r i v e n .E v e r yt i m ey o u p r e s sa k e y a n

i n t e r r u p ts e r v i c er o u t i n ei s u s e dt o s t o r et h ed e p r e s s e dk e y ' sv a l u ei n t o t h ek e y b o a r db u f f e r

f o r s e r v i c i n g .A s a n a c t i v ee x a m p l ee n t e r t h ef o l l o w i n go n el i n ep r o g r a m :

1 0 F O RN = 0T O 2 0 0 0: N E X T N

T y p eR U Na n dh i ta f e wk e y so n t h ek e y b o a r dw h i l et h i sn o n s e n s e l o o pi s b e i n ge x e c u t e d .

W h e nt h el o o ph a sf i n i s h e d t h ek e y sy o up r e s s e dp r e v i o u s l ya p p e a ro n t h e s c r e e n ,p r o v i n gt h a ty o ui n t e r r u p t e dt h ep r o g r a ma t m a c h i n el e v e lw h i l s ti t w a sr u n n i n g .

B R E A K S

T h e r ei s a n i n s t r u c t i o ni n t h e V I C2 0 ' s 6 5 0 2i n s t r u c t i o ns e t w h i c ha l l o w s a

s o f t w a r et y p eo f i n t e r r u p tt o b e g e n e r a t e d — t h i si n s t r u c t i o ni s :

B R K B r e a k

1 1 1

Page 119: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 119/180

B R Ki s a s i n g l eb y t ei n s t r u c t i o n( o p c o d e$ 0 0 )w h i c hc a n b ei n s e r t e d i n t op r o g r a m sa s a n d

w h e nr e q u i r e d .W h e nt h e 6 5 0 2e n c o u n t e r sa B R Ki n s t r u c t i o ni t d o e sa n u m b e ro f

t h i n g s — i nf a c t ,i t p r o c e e d s a l o n ga s i m i l a rp a t ht o t h a tt a k e nb y a n I R Q .F i r s t l yi t

i n c r e m e n t st h eP r o g r a mC o u n t e rs o t h a ti t i s n o wp o i n t i n gt o t h ei n s t r u c t i o na f t e rt h e

B R K ,a n dt h e np u s h e st h i st w ob y t ea d d r e s so n t o t h eh a r d w a r es t a c k .N e x ti t s e t st h e

B r e a kf l a g ,w h i c hi s b i t4 o ft h e S t a t u sr e g i s t e r ,a n dt h e np u s h e st h i so n t o t h e s t a c kb e f o r e

j u m p i n gt o t h eB R Ks e r v i c i n gr o u t i n e .T h i sr o u t i n e ' sa d d r e s si s s t o r e di n l o c a t i o n s$ F F F E

a n d$ F F F Fa n dt h e r e f o r ei t i s t h es a m es e r v i c i n gr o u t i n ea s t h a tu s e db y a nI R Q .O r i s i t ?W e l ln o te x a c t l y — i tj u s te n t e r sa t t h es a m ep o i n t .R e f e r r i n gt o t h ei n t e r r u p ts e r v i c er o u t i n e

a d d r e s s 6 5 4 0 3 ,t h eh i g hb y t eo f t h e S t a t u sr e g i s t e r ,n o wi n t h ea c c u m u l a t o r ,i s m a s k e do f f

b y t h eA N D# 1 6i n s t r u c t i o n .N o wi f a B R Kh a do c c u r r e d ,b i t4 ( t h eB r e a kf l a g )w o u l db e

s e ta n dt h eB E Qw o u l dn o tt a k ep l a c e .I n s t e a d ,t h e r ew o u l db e a n i n d i r e c tj u m pt o t h e

B R Kv e c t o ra t 7 9 0 .

B yr e s e t t i n gt h eB R Kv e c t o ri t i s p o s s i b l et o p e r f o r ms i m p l em a c h i n ec o d e d e b u g g i n gb y

p o i n t i n gt h eB R Kh a n d l e rt o a u s e r - s u p p l i e d r o u t i n et h a tp r i n t so u tt h ec o n t e n t so fa l lt h e

p r o c e s s o r ' sr e g i s t e r sa t t h et i m et h eB R Ko c c u r r e d .

1 1 2

Page 120: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 120/180

1 9 P r e p a c k e dU t i l i t i

I a ms u r et h a ty o uw i l lf i n d t h ep r o g r a m st h a tf o l l o wi n t h i sc h a p t e rv e r yu s e f u lw h e ny o u

w r i t ey o u ro w ns e r i o u sm a c h i n ec o d e — t h u sI h a v ec a l l e dt h e mu t i l i t yp r o g r a m sb e c a u s e

t h e yh a v ea p r a c t i c a lu s e .I n c l u d e da r ep r o g r a m st o :

1 . C o n v e r ta n A S C I Ib a s e d h e xn u m b e ri n t oi t s b i n a r ye q u i v a l e n t .

2 . C o n v e r ta n dp r i n ta b i n a r y v a l u ea s a t w od i g i tA S C I Ib a s e d h e xn u m b e r .

3 . P r i n ta n A S C I Is t r i n gs t o r e dw i t h i nt h em a c h i n ec o d ei t s e l f .

H E X T OB I N A R YC O N V E R S I O N

T h ef o l l o w i n gr o u t i n ew i l lc o n v e r tt w oA S C I Ib a s e d h e x a d e c i m a lc h a r a c t e r si n t ot h e i r

e i g h tb i tb i n a r ye q u i v a l e n t .F o re x a m p l e ,i f t h e c h a r a c t e r sF E a r ei n p u t ,t h eb i n a r yv a l u e

r e t u r n e dw o u l db e 1 1 1 11 1 1 0 — t h i sw i l lo f c o u r s eb e p r i n t e da s 2 5 4 , t h ed e c i m a l

e q u i v a l e n t .T h i si s a p a r t i c u l a r l yi m p o r t a n t p r o c e d u r ee s p e c i a l l yi f p r o g r a m sh a n d l i n g

h e x a d e c i m a ld a t aa r ea n t i c i p a t e d .C o n v e r s i o ni s n o td i f f i c u l ta n dT a b l e1 9 . 1g i v e ss o m e

i n d i c a t i o no f w h a ti s r e q u i r e d .

T a b l e1 9 . 1

H e xc h a r a c t e r

0

1

2

3

4

5

6

7

8

9

AB

CDE

F

B i n a r yv a l u e

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 11 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

A S C I Iv a l u e

$ 3 0

$ 3 1

$ 3 2

$ 3 3

$ 3 4

$ 3 5

$ 3 6

$ 3 7$ 3 8

$ 3 9

$ 4 1

$ 4 2

$ 4 3

$ 4 4

$ 4 5

$ 4 6

A S C I Ib i n a r y

0 0 1 1 0 0 0 0

0 0 1 1 0 0 0 1

0 0 1 1 0 0 1 0

0 0 1 1 0 0 1 1

0 0 1 10 1 0 0

0 0 1 10 1 0 1

0 0 1 10 1 1 0

0 0 1 1 0 1 1 10 0 1 1 1 0 0 0

0 0 1 11 0 0 1

0 1 0 00 0 0 1

0 1 0 0 0 0 1 0

0 1 0 00 0 1 1

0 1 0 00 1 0 0

0 1 0 00 1 0 1

0 1 0 00 1 1 0

1 1 3

Page 121: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 121/180

I n t h ec a s eo f t h e c h a r a c t e r s0 t o 9 i t s h o u l d b ef a i r l yo b v i o u st h a ta l lw en e e dt o d o t o

c o n v e r tt h e mt o b i n a r yi s t o m a s ko u tt h eh i g hn i b b l eo f t h e c h a r a c t e r ' sA S C I Ic o d e ,

b e c a u s et h el o wn i b b l eb i n a r yi s t h es a m ea s t h eh e xc h a r a c t e ri t s e l f .

C o n v e r t i n gt h e c h a r a c t e r sA t o F i s a l i t t l el e s so b v i o u s .H o w e v e r ,i f t h eh i g hn i b b l eo f

t h eA S C I Ic o d ei s m a s k e do f f ,t h e nt h er e m a i n i n gl o wn i b b l ei s 9 l e s st h a nt h eh e xv a l u e

r e q u i r e d .F o re x a m p l e ,t h eA S C I If o r 4 D 'i s 0 1 0 0 0 1 0 0 ,m a s k i n go f ft h eh i g hn i b b l eg i v e s

0 1 0 0 ,w h i c hi s 4 , a d d9 t o t h i st o a r r i v ea t $ D = 1 1 0 1 .

P r o g r a m3 5

1 0

2 0

3 0

4 0

5 0

6 0

7 0

8 0

9 0

1 0 0

1 1 0

1 2 0

1 3 0

1 4 0

1 5 0

1 6 0

1 7 0

1 8 0

1 9 0

2 0 0

2 1 0

2 2 0

2 3 0

2 4 0

2 5 0

2 6 0

2 7 0

2 8 0

2 9 0

1 ( M \J v x f

3 1 0

3 2 0

3 3 0

3 4 0

R E M* * A S C I IH E X

C O D E= 8 2 8

F O RL O O P= 0 T O4 8

R E A DB Y T E

T O B I N A R Y* *

P O K EC O D E+ L O O P ,B Y T E

N E X TL O O P

*

R E M* * M / CD A T A

D A T A3 2 , 9 4 , 3

D A T A1 6 5 , 2 5 2

D A T A3 2 , 8 4 , 3

D A T A1 0

D A T A1 0

D A T A1 0

D A T A1 0

D A T A1 3 3 , 2 5 3

D A T A1 6 5 , 2 5 1

D A T A3 2 , 8 4 , 3

D A T A5 , 2 5 3

D A T A1 3 3 , 2 5 4

D A T A9 6

* *

R E M$ 2 0 ,$ 5 E , $ 3 —

R E M$ A 5 ,$ F C —

R E M$ 2 0 ,$ 5 4 ,$ 3 —

R E M$ 0 A —

R E M$ 0 A —

R E M$ 0 A —

R E M$ 0 A —

R E M$ 8 5 ,$ F D —

R E M$ A 5 ,$ F B —

R E M$ 2 0 ,$ 5 4 ,$ 3 —

R f c M$ 0 5 ,$ F D —

R E M$ 8 5 ,$ F E —

R E M$ 6 0 —R E M* * C H E C KS U B R O U T I N E: $ 0 3 5 4* *

D A T A2 0 1 , 5 8 :

D A T A1 7 6 , 3 :

D A T A4 1 , 1 5 :

D A T A9 6 :

D A T A2 3 3 , 5 5 :

D A T A9 6 :

R E M$ C 9 ,$ 3 A —

R E M$ B 0 ,$ 0 3 —

R E M$ 2 9 ,$ 0 F —

R E M$ 6 0 —

R E MA T O F

R E M$ E 9 ,$ 3 7 —R E M$ 6 0 —

R E M* * C H A R A C T E RS U B R O U T I N E: $ 0 3 5 E

D A T A3 2 , 2 2 8 , 2 5 5:

D A T A2 4 0 , 2 5 1 :

D A T A1 3 3 , 2 5 2

R E MF I R S T

R E M$ 2 0 ,$ E 4 ,$ F F —

R E M$ F 0 ,$ F B —

R E M$ 8 5 ,$ F C —

J S RC H A R A C T E R

L D A$ F C

J S RC H E C K

A S LA

A S LA

A S LA

A S LA

S T A $ F D

L D A$ F B

J S RC H E C K

O R A$ F D

S T A $ F D

R T S

C M P# $ 3 A

B C SA T O F

A N D# $ 0 F

R T S

S B C# $ 3 7

R T S

♦ *

J S R$ F F E 4

B E QF I R S T

S T A$ F C

1 1 4

Page 122: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 122/180

3 5 0 R E MS E C O N D

3 6 0 D A T A3 2 , 2 2 8 , 2 5 5: R E M$ 2 0 ,$ E 4 ,$ F F — J S R $ F F E 4

3 7 0 D A T A2 4 0 , 2 5 1 : R E M$ F 0 ,$ F B — , B E QS E C O N D

3 8 0 D A T A1 3 3 , 2 5 1 : R E M$ 8 5 ,$ F B — S T A$ F B

3 9 0 D A T A9 6 : R E M$ 6 0 — R T S

4 0 0 :

4 1 0 P R I N TC H R $ (1 4 7 )

4 2 0 P R I N T" E N T E RT W OH E XD I G I T S "

4 2 5 P R I N T

4 3 0 S Y SC O D E

4 4 0 P R I N T" T H E I RB I N A R YV A L U EI S :"

4 5 0 P R I N TP E E K ( 2 5 4 )

. T h e p r o g r a mb e g i n sb y c a l l i n gt h eC H A R A C T E Rs u b r o u t i n et o o b t a i nt w oA S C I I

b a s e dh e xc h a r a c t e r s( l i n e s3 1 0t o 3 9 0 )a n dp l a c e st h e mi n l o c a t i o n s2 5 1( $ F B )a n d2 5 2

( $ F C ) .T h eh i g hn i b b l ec h a r a c t e ri s c o n v e r t e df i r s tb y c a l l i n gt h eC H E C Ks u b r o u t i n e

( l i n e s2 3 0t o 2 9 0 ) .I f t h eA S C I Ib a s e dc h a r a c t e r b y t ei s i n t h er a n g e0 - 9t h eh i g hn i b b l ei s

m a s k e do f f( l i n e2 5 0 ) ,o t h e r w i s e 5 5i s s u b t r a c t e df r o mi t ( l i n e2 8 0 ) .T h i sh a st h es a m ee f f e c t

a s m a s k i n go f f t h eh i g hn i b b l ea n da d d i n gn i n e !

O n r e t u r n i n gf r o mt h eC H E C Ks u b r o u t i n et h er e s u l t ,n o wh e l di n t h el o wf o u rb i t s ,i s

s h i f t e dl e f ti n t o t h eh i g hn i b b l eo f t h ea c c u m u l a t o r( l i n e s1 2 0t o 1 5 0 )a n ds a v e df o r f u t u r e

r e f e r e n c e( l i n e1 6 0 ) .

A s i m i l a rp r o c e d u r ei s u s e dt o c o n v e r tt h el o wA S C I Ib a s e dc h a r a c t e r ,b u to n r e t u r n

f r o mt h eC H E C Ks u b r o u t i n et h er e s u l t a n tb i n a r yi s l o g i c a l l yO R e dw i t ht h ep r e v i o u s

r e s u l t ( l i n e1 9 0 )t o p r o d u c et h ef i n a lv a l u e .T h i si s t h e ns t o r e di n l o c a t i o n2 5 4( $ F D ) .

T h i sp r o g r a mc o u l d b ei m p r o v e di n a n u m b e ro f w a y s ;f o r i n s t a n c e ,t h e A S C I I

c h a r a c t e r s a r en o te c h o e dt o t h e s c r e e n ,n o ra r et h e r ea n yc h e c k st o e n s u r et h a to n l yl e g a l

h e xv a l u e s a r ee n t e r e d .Y o um i g h tl i k et o a d dt h e s e e x t r af a c i l i t i e sy o u r s e l f ?

B I N A R YT O H E XC O N V E R S I O N

T o c o n v e r ta n e i g h tb i t b i n a r yn u m b e ri n t oi t s A S C I Ih e xe q u i v a l e n tc h a r a c t e r s ,t h e

p r o c e s s d e s c r i b e da b o v ei s r e v e r s e d .H o w e v e r ,b e c a u s ec h a r a c t e r sa r ep r i n t e do n t h e

s c r e e nf r o ml e f tt o r i g h tw em u s t ,i n t h i si n s t a n c e ,d e a lw i t ht h eh i g hn i b b l eo ft h eb y t ef i r s t .

P r o g r a m3 6 r e q u e s t sa n u m b e rf o r c o n v e r s i o n( l i n e s3 0 0 - 3 7 0 )a n dh o l d si t i n t h e

a c c u m u l a t o r .I t i s t h e np u s h e do n t ot h es t a c k( l i n e9 0 ) ,a n dt h eh i g hn i b b l ei s s h i f t e df o u r

t i m e st o m o v ei t i n t ot h el o wn i b b l ep o s i t i o n( l i n e s1 0 0 - 1 3 0 ) .T h es u b r o u t i n eF I R S Td o e s

t h ec o n v e r s i o n . A f t e re n s u r i n gt h a tn o h i g hb i t sa r es e t ' ( l i n e1 7 0 )t h eb i n a r y v a l u ei s t e s t e d

t o s e ei f i t ' si n t h er a n g e0 - 9( l i n e1 8 0 ) . I fi t i s n o t ( a n di s t h e r e f o r ei n t h er a n g eA - F ) ,7 i s

a d d e dt o t h ea c c u m u l a t o r( l i n e2 0 0 — 6b y t h ec o m m a n dp l u s1 f r o mt h eC a r r yf l a g ) .L i n e

2 2 0 p e r f o r m st h ec o n v e r s i o nb y a d d i n g$ 3 0 ,w h i c he f f e c t i v e l y s e t s b i t s4 a n d5 . A f t e r

p r i n t i n gt h eA S C I Ic h a r a c t e r( l i n e2 3 0 )c o n t r o l r e t u r n sb a c kt o l i n e1 5 0 ,w h e r et h eo r i g i n a l

b i n a r yv a l u ei s p u l l e d o f f t h e s t a c ki n r e a d i n e s s f o r t h el o wn i b b l e( l i n e1 7 0 ) t ob ec o n v e r t e d

i n t o t h ea p p r o p r i a t eA S C I Ic h a r a c t e r .

P r o g r a m3 6

1 0 R E M* * P R I N TA C C U M U L A T O RA S H E XN U M B E R* *

2 0

3 0

4 0

5 0

C O D E= 8 2 8

F O R L O O P= 0 T O 2 1

R E A D

P O K E

B Y T E

C O D E+ L O O P ,B Y T E

1 1 5

Page 123: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 123/180

6 0 N E X TL O O P

7 0 :

R E M* * M / CD A T A* *8 0

9 0 D A T A7 2

1 0 0 D A T A7 4

1 1 0 D A T A7 4

1 2 0 D A T A7 4

1 3 0 D A T A7 4

1 4 0 D A T A3 2 , 6 9 , 3

1 5 0 D A T A1 0 4

R E M$ 4 8

R E M$ 4 A

R E M$ 4 A

R E M$ 4 A

R E M$ 4 A

R E M$ 2 0 ,$ 4 5 ,$ 0 3

R E M$ 6 8

— P H A

— L S RA

— L S RA

— L S RA

— L S RA

— J S R F I R S T

— P L A

1 6 0 R E M* * F I R S TS U B R O U T I N E: $ 0 3 4 5

R E M$ 2 9 ,$ 0 F

R E M$ C 9 ,$ 0 A

R E M$ 9 0 ,$ 0 2

R E M$ 6 9 ,$ 0 6

R E MO V E R

R E M$ 6 9 ,$ 3 0

— A N D# $ 0 F

— C M P# $ 0 A

— B C CO V E R

— A D C# $ 0 6

— A D C# $ 3 0

R E M$ 4 C ,$ D 2 ,$ F F — J M P$ F F D 2

1 7 0 D A T A4 1 , 1 5

1 8 0 D A T A2 0 1 , 1 0

1 9 0 D A T A1 4 4 , 2

2 0 0 D A T A1 0 5 , 6

2 1 0

2 2 0 D A T A1 0 5 , 4 8

2 3 0 D A T A7 6 , 2 1 0 , 2 5 5

2 4 0

2 5 0 R E M* * D E M OP R O G R A M* *

2 6 0 R E ML D A$ F B: J M P$ 3 3 C

2 7 0 P O K E8 2 0 ,1 6 5: P O K E8 2 1 ,2 5 1

2 8 0 P O K E8 2 2 ,7 6 : P O K E8 2 3 ,6 0 : P O K E8 2 4 ,3

2 9 0 P R I N T C H R $ (1 4 7 )

3 0 0 P R I N T" H I TA K E YA N DI T SH E X "

3 0 5 P R I N T" V A L U EI N A S C J IW I L L "

3 1 0 P R I N T" B ED I S P L A Y E D "

3 2 0 G E TA $

3 3 0 I F A $ = "" T H E NG O T O3 2 0

3 4 0 A = A S C ( A $ )

3 5 0 P O K E2 5 1 ,A

3 6 0 R E M* * C A L LL I N KR O U T I N E — L I N E S2 7 0a n d2 8 0* *

3 7 0 S Y S 8 2 0

3 8 0 R E M* * C A L L4 S Y SC O D E 'T O U S ED I R E C T L Y* *

P r o g r a m3 6 i s d e m o n s t r a t e db y p r e s s i n ga n yo f t h ea l p h a n u m e r i c k e y s — i tt h e np r i n t s

t h e i rA S C I Ih e x a d e c i m a lv a l u e .

O U T P U TA S C I IS T R I N G

T h i su t i l i t ys u b r o u t i n e — P r o g r a m3 7 — e n a b l e sA S C I Ic h a r a c t e rs t r i n g st o b e s t o r e d

w i t h i nt h eb o d yo f m a c h i n ec o d ep r o g r a m sr e a d yf o r p r i n t i n go n t o t h es c r e e n .I t h a st w o

1 1 6

Page 124: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 124/180

a d v a n t a g e so v e rt h en o r m a la b s o l u t e i n d e x i n ga p p r o a c h .F i r s t l y ,i t i s i n s e r t e di n t ot h e

p r o g r a ma t t h e p o i n ti t i s n e e d e da n ds e c o n d l y ,i t c a l c u l a t e si t s o w na d d r e s sa n di s

t h e r e f o r ef u l l yr e l o c a t a b l e .

P r o g r a m3 7

1 0 R E M* * A S C I IS T R I N GO U T P U TR O U T I N E* *

2 0

3 0

4 0

5 0

6 0

7 0

8 0

C O D E= 8 2 8

F O R L O O P= 0 T O 2 6

R E A DB Y T E

P O K EC O D E+ L O O P ,B Y T E

N E X TL O O P

R E M* * M / CD A T A* *

9 0 D A T A1 0 4

1 0 0 D A T A1 3 3 , 2 5 1

1 2 0 D A T A1 0 4

1 3 0 D A T A1 3 3 , 2 5 2

1 4 0

1 5 0 D A T A1 6 0 , 0

1 6 0 D A T A2 3 0 , 2 5 1

1 7 0 D A T A2 0 8 , 2

1 8 0 D A T A2 3 0 , 2 5 2

1 9 0

2 0 0 D A T A1 7 7 , 2 5 1

2 1 0 D A T A4 8 , 6

2 2 0 D A T A3 2 , 2 1 0 , 2 5 5

2 3 0 D A T A7 6 , 6 6 , 3

2 4 0

2 5 0 D A T A1 0 8 , 2 5 1 , 0

2 6 0

2 7 0 R E M* * D E M OR O U T I N E* *

2 8 0 R E M* * L O C A T E DA T$ 0 3 E 8

2 9 0 D E M O= 1 0 0 0

3 0 0 F O RL O O P= 0 T O 1 6

3 1 0 R E A DB Y T E

3 2 0 P O K ED E M O+ L O O P ,B Y T E

3 3 0 N E X TL O O P

3 4 0

3 5 0 D A T A1 6 9 , 1 4 7

3 6 0 D A T A3 2 , 2 1 0 , 2 5 5

3 7 0 D A T A3 2 , 6 0 , 1 3

R E M$ 6 8

R E M$ 8 5 ,$ F B

R E M$ 6 8

R E M$ 8 5 ,$ F C

R E MR E P E A T$ 0 3 4 2

R E M$ A 0 ,$ 0 0

R E M$ E 6 ,$ F B

R E M$ D 0 ,$ 0 2

R E M$ E 6 ,$ F C

R E MC L E A R

R E M $ B 1 ,$ F B

R E M$ 3 0 ,$ 0 6

— P L A

— S T A$ F B

— P L A

— S T A$ F C

— L D Y

— I N C$ F B

— B N EC L E A R— I N C$ F C

— L D A( $ F B ) ,Y

— B M IF I N I S H

R E M$ 2 0 ,$ D 2 ,$ F F — J S R$ F F D 2

R E M$ 4 C ,$ 4 2 ,$ 0 3 — J M P R E P E A T

R E MF I N I S H

R E M$ 6 C ,$ F B ,$ 0 0 — J M P( $ F B )

R E M$ A 9 ,$ 9 3 — L D A# $ 9 3

R E M$ 2 0 ,$ D 2 ,$ F F — J S R$ F F D 2

R E M$ 2 0 ,$ 3 C , $ 3 — J S RO U T P U T

1 1 7

Page 125: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 125/180

3 8 0 R E M* * N O WS T O R EA S C I IC O D E SF O RP R I N T I N G* *

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

4 0 0 R E MV , I , C , , 2 , 0 , < C R >

4 1 0 D A T A2 3 4 : R E M$ E A - N O P

4 2 0 D A T A9 6 : R E M$ 6 0 — R T S

4 3 0 S Y SD E M O

T h em a i nA S C I Io u t p u tr o u t i n ei s b e t w e e nl i n e s9 0 a n d2 5 0 ,a s h o r td e m o n s t r a t i o n

p r o g r a mi s i n c l u d e di n l i n e s3 5 0t o 4 2 0 .T h ed e m op r o g r a mb e g i n sb yc l e a r i n gt h e s c r e e n

( l i n e s3 5 0a n d3 6 0 ) ,t h e nt h eO U T P U Tr o u t i n el o c a t e da t $ 3 3 Ci s c a l l e d .I m m e d i a t e l y

f o l l o w i n gt h i sc a l lt h eA S C I It e x tf o ro u t p u ti s P O K E di n t om e m o r y . T h ee n do ft h es t r i n g

i s m a r k e db y a n e g a t i v eb y t e — o n et h a th a si t sm o s ts i g n i f i c a n tb i ts e t .N O Pi s i d e a lf o rt h i s

b e c a u s ei t d o e s n ' td o a n y t h i n g( l i n e4 1 0 ) !

T h eA S C l I p r l n tr o u t i n e ,w h i c hi s j u s t2 7b y t e sl o n g ,b e g i n sb yp u l l i n g t h eR T Sa d d r e s s

( f r o mt h ec a l l i n gs u b r o u t i n e )o f f t h es t a c ka n dp l a c i n gi t i n t ot w oz e r op a g el o c a t i o n s ,

2 5 1( $ F B )a n d2 5 2( $ F C ) .

B e c a u s et h es t r i n gi m m e d i a t e l yf o l l o w st h eC O D Es u b r o u t i n ec a l l( s e eF i g u r e1 9 . 1 ) ,

p o s t - i n d e x e di n d i r e c ta d d r e s s i n gc a nb e u s e dt o l o a dt h ef i r s ts t r i n gc h a r a c t e ri n t ot h e

a c c u m u l a t o r( l i n e2 0 0 ) .L i n e2 1 0t e s t st o s e ei f t h es t r i n g - t e r m i n a t i n g n e g a t i v eb y t eh a s

b e e nr e a c h e d .I f n o t ,t h ec h a r a c t e ri s p r i n t e d( l i n e2 2 0 ) .A J M Pb a c kt o R E P E A Ti s

i m p l e m e n t e d( l i n e2 3 0 )a n dt h ez e r op a g ea d d r e s si n c r e m e n t e d( l i n e s1 6 0 - 1 8 0 )s o t h a t

t h en e x ts t r i n gc h a r a c t e rc a n b e s o u g h to u t .O n c et h en e g a t i v eb y t ei s e n c o u n t e r e da n dt h e

t e s to f l i n e2 1 0s u c c e e d s ,a n i n d i r e c tj u m p( l i n e2 5 0 )v i at h ez e r op a g ea d d r e s sw i l lr e t u r n

c o n t r o l t o t h ec a l l i n gm a c h i n ec o d ep r o g r a m .

A d d r e s s

1 0 0 0

1 0 0 1

1 0 0 2

1 0 0 3

1 0 0 4

1 0 0 5

1 0 0 6

1 0 0 7

1 0 0 8

1 0 0 9

1 0 1 01 0 1 1

1 0 1 2

1 0 1 3

1 0 1 4

1 0 1 5

1 0 1 6

$ 3 E 8

$ 3 E 9

$ 3 E A

$ 3 E B

$ 3 E C

$ 3 E D

$ 3 E E

$ 3 E F

$ 3 F 0

$ 3 F 1

$ 3 F 2$ 3 F 3

$ 3 F 4

$ 3 F 5

$ 3 F 6

$ 3 F 7

$ 3 F 8

H e x

A 9

9 3

2 0

D 21

F FJ2 0

3 C 10 3 J5 6

4 9

4 32 0

3 2

3 0

0 D

E A6 0

M n e m o n i c / c h a r a c t e r

L D A #1 4 7

J S R

$ F F D 2

J S R

$ 0 3 3 C

V

I

c< S P >2

0

< C R >N O PR T S

F i g u r e1 9 . 1 M e m o r yl a y o u to fp a r to f P r o g r a m3 7 .

1 1 8

Page 126: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 126/180

1 T h eS c r e e n

T h ec h a r a c t e rs e tc a n b ed i s p l a y e do n t h es c r e e ni n t w od i f f e r e n tw a y s :

1 . B y p r i n t i n gt h eA S C I Ic o d e .

2 . B y s t o r i n g t h es c r e e nc o d ei n t os c r e e nm e m o r ya n ds e t t i n gt h ec o l o u rm e m o r y .

T h es c r e e na n dA S C I Ic o d e sa r el i s t e di n t h eM a n u a l .

T op r i n ta n A S C I Ic o d eo nt o t h es c r e e n ,f i r s tl o a dt h eA S C I Ic o d ei n t ot h ea c c u m u l a t o r

a n dt h e nc a l lt h eK e r n a lC H R O U Tr o u t i n ea t $ F F D 2 .F o r e x a m p l et o p r i n ta n ' A 'u s e :

L D A # 6 5 \ A S C I Ic o d ef o rA

J S R$ F F D 2 \ p r i n ti t

T h ep r i n tp o s i t i o nc a n b es p e c i f i e db y f i r s tc a l l i n gt h eK e r n a lP L O Tr o u t i n e .

U s i n gs c r e e nc o d e si s s l i g h t l ym o r ei n v o l v e d .F i r s tt h es c r e e nc o d em u s tb e p l a c e di n t o

t h er e l e v a n ts c r e e nm e m o r yp o s i t i o n ,a n dt h e nt h ec o r r e s p o n d i n gl o c a t i o ni n t h ec o l o u r

m e m o r ym u s tb e P O K E dw i t ht h es p e c i f i e dc o l o u rc o d et o ' t u r no n ' t h ep r i n tc o l o u r .F o r

e x a m p l e ,t o d i s p l a ya b l u e' A 'm i d w a yd o w nt h el e f t - h a n ds i d eo f t h es c r e e n t h e f o l l o w i n g

c a n b eu s e d :

L D A # 1 \ P O K Ec o d ef o rA

S T A7 6 8 0 \ s t o r ei n s c r e e nm e m o r y

L D X # 6 \ c o d ef o rb l u e

S T X3 8 4 0 0 \ s t o r ei n c o l o u rm e m o r yt o s h o wb l u e

l e t t e rA

F i g u r e sA l . la n d A 1 . 2s h o wt h es c r e e na n dc o l o u rm e m o r ym a p s .

1 1 9

Page 127: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 127/180

7 6 8 0

7 7 0 2

7 7 2 4

7 7 4 6

7 7 6 8

7 7 9 0

7 8 1 2

7 8 3 4

7 8 5 6

7 8 7 8

7 9 0 0

7 9 2 2

7 9 4 4

7 9 6 6

7 9 8 8

8 0 1 0

8 0 3 28 0 5 4

8 0 7 6

8 0 9 8

8 1 2 0

8 1 4 2

8 1 6 4

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

F i g u r eA 1 . 1 S c r e e nM e m o r yM a p

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

3 8 4 0 0

3 8 4 2 2

3 8 4 4 4

3 8 4 6 6

3 8 4 8 8

3 8 5 1 0

3 8 5 3 2

3 8 5 5 4

3 8 5 7 6

3 8 5 9 8

3 8 6 2 03 8 6 4 2

3 8 6 6 4

3 8 6 8 6

3 8 7 0 8

3 8 7 3 0

3 8 7 5 2

3 8 7 7 4

3 8 7 9 6

3 8 8 1 8

3 8 8 4 0

3 8 8 6 23 8 8 8 4

F i g u r eA 1 . 2 C o l o u rM e m o r yM a p

1 2 0

Page 128: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 128/180

2 T h e6 5 0 2

S o f a r t h r o u g h o u tt h i sb o o kw e h a v e b e e n c o n c e r n e dw i t ht h es o f t w a r ea s p e c t so f t h e

V I C ' s6 5 0 2 ,o r i n o t h e rw o r d s ,h o wt o p r o g r a mi t ! W e c o u l dn o t r e a l l y f i n i s h

w i t h o u th a v i n ga g l i m p s ea t i t sh a r d w a r eo r p h y s i c a lf e a t u r e s .F o re x a m p l e ,j u s th o wi s i t

o r g a n i z e di n t e r n a l l ya n dh o wd o e si t t r a n s f e rd a t at o a n df r o ?W h i l ei t i s n o ta b s o l u t e l y

v i t a lt o u n d e r s t a n dt h e s ef e a t u r e s ,a n u n d e r s t a n d i n g o fi t sd e s i g nw i l le n h a n c e y o u rn e w

f o u n dk n o w l e d g e .

F i g u r eA 2 . 1s h o w sa s i m p l i f e db l o c kd i a g r a mo f t h e6 5 0 2 ' sd e s i g n o ra r c h i t e c t u r ea s i t i s

m o r ec o m m o n l yc a l l e d .I f y o us t u d yi t m a n yo f t h ef e a t u r e sw i l lb e r e a d i l yr e c o g n i z a b l e .

T h e r ea r ea f e we x c e p t i o n st h o u g h ,i n c l u d i n g t h r e eb u s e s ,t h ea d d r e s sb u s , t h ed a t ab u s ,

a n dt h ec o n t r o lb u s .Y o u m a yw e l lb ew o n d e r i n gj u s tw h a ti s m e a n tb yb u s ?I t i s n o t , a sy o um a yh a v et h o u g h t , an u m b e r1 9 b o u n df o rH i g h b u r yB a r n — i t ' ss i m p l ya c o l l e c t i v et e r m

f o r a s e r i e so f w i r e s — o rt r a c k sa s t h e ya r ec a l l e do n a P r i n t e dC i r c u i tB o a r d( P C Bf o r

s h o r t ) — o n t ow h i c ha 1 o r a 0 c a n b ep l a c e de l e c t r o n i c a l l y .

B yp l a c i n ga s e r i e so f I s a n d0 s o n t ot h e e i g h tl i n e so ft h ed a t ab u s , a b y t eo f i n f o r m a t i o n

m a yb e t r a n s f e r r e d t oo r f r o mt h ea d d r e s ss p e c i f i e db y t h eb i n a r y v a l u e p r e s e n ta t t h a t

i n s t a n ti n t i m eo n t h e 1 6 l i n e so f t h ea d d r e s sb u s .

T h ec o n t r o lb u sl i n e sa r er e s p o n s i b l ef o rc a r r y i n gt h en u m e r o u ss y n c h r o n i z a t i o ns i g n a l s

t h a ta r er e q u i r e df o rt h eV I Ct o o p e r a t e .

E X E C U T I N GI N S T R U C T I O N S

W ec a nn o we x a m i n ej u s th o wt h e6 5 0 2f e t c h e s ,i n t e r p r e t sa n de x e c u t e se a c hi n s t r u c t i o n .

F i r s t l y ,t h e6 5 0 2m u s tl o c a t ea n dr e a dt h en e x ti n s t r u c t i o no ft h em a c h i n ec o d e p r o g r a m .I t

d o e st h i sb y p l a c i n gt h ec u r r e n tc o n t e n t so f t h eP r o g r a mC o u n t e ro n t ot h ea d d r e s sb u sa n d

s i m u l t a n e o u s l yp l a c i n ga r e a ds i g n a lo n t h e a p p r o p r i a t ec o n t r o lb u s l i n e .A l m o s t

i n s t a n t a n e o u s l yt h ei n s t r u c t i o n ,o r m o r ec o r r e c t l yt h eb y t et h a t c o n s t i t u t e st h ei n s t r u c t i o n ,

i s p l a c e do n t ot h ed a t ab u s .T h e6 5 0 2t h e nr e a d st h ec o n t e n t so ft h ed a t ab u si n t oa s p e c i a l

i n t e r n a l ,e i g h tb i tr e g i s t e r ,k n o w na s t h e I n s t r u c t i o n R e g i s t e r( I Rf o rs h o r t ) ,w h i c hi s u s e d

e x c l u s i v e l yb y t h e6 5 0 2t o h o l d d a t aw a i t i n gf o rp r o c e s s i n g .O n c ei n t h eI R , t h eC o n t r o l

U n i ti n t e r p r e t st h ei n s t r u c t i o na n dt h e ng e n e r a t e st h ev a r i o u si n t e r n a la n de x t e r n a ls i g n a l s

r e q u i r e dt o e x e c u t et h ei n s t r u c t i o n .F o re x a m p l e ,i f t h ed a t ab y t ef e t c h e dw a s$ A 5 ,t h e

6 5 0 2w o u l di n t e r p r e tt h i sa s L D Az e r o p a g e ,a n dw o u l df e t c ht h en e x t b y t eo f d a t aa n d

i n t e r p r e tt h i sa s t h ea d d r e s sa t w h i c ht h ed a t at o b ep l a c e di n t ot h ea c c u m u l a t o ri s l o c a t e d .

E a c ho n eo f t h e s eo p e r a t i o n sw o u l db e p e r f o r m e di n a m a n n e rs i m i l a rt o t h a ta l r e a d y

d e s c r i b e d .

O b v i o u s l yi n s t r u c t i o n sa n dd a t am u s tb e f e t c h e di n t h e c o r r e c ts e q u e n c e .T oe n a b l et h i s

t o h a p p e nt h eP r o g r a mC o u n t e ri s p r o v i d e dw i t ha n a u t o m a t i ci n c r e m e n t i n gd e v i c e .E a c h

t i m et h e P r o g r a mC o u n t e r ' sc o n t e n t sa r ep l a c e do n t ot h ea d d r e s sb u st h ei n c r e m e n t e r

a d d s o n et o i t sc o n t e n t s ,t h u se n s u r i n gb y t e sa r ef e t c h e da n ds t o r e di n t h e c o r r e c t o r d e r .

1 2 1

Page 129: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 129/180

M o m o r y

(

R O Ma n dR A M )

F i g u r eA 2 . 1

T h e6 5 < b 2 — b l o c kd i a g r a m .

Page 130: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 130/180

Page 131: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 131/180

A D C

A d dm e m o r yt o a c c u m u l a t o rw i t hc a r r y .

A d d r e s s i n g

A D Ci m m e d i a t e

A D Cz e r op a g e

A D Cz e r op a g e ,XA D Ca b s o l u t e

A D Ca b s o l u t e ,XA D Ca b s o l u t e ,YA D C( z e r op a g e ,X )

A D C( z e r o p a g e ) ,Y

N V* *

O p c o d e

D e c i m a l

1 0 5

1 0 1

1 1 7

1 0 9

1 2 5

1 2 1

9 7

1 1 3

— B D I

H e x

$ 6 9

$ 6 5

$ 7 5

$ 6 D$ 7 D$ 7 9

$ 6 1

$ 7 1

Z C

B y t e s

2

2

2

3

4

3

2

2

C y c l e s

2

3

4

4

4 / 5

4 / 5

6

5 / 6

O p e r a t i o nA d d st h ec o n t e n t so f t h es p e c i f i e dm e m o r yl o c a t i o nt o t h ec u r r e n tc o n t e n t so f

t h ea c c u m u l a t o r .I f t h eC a r r yf l a gi s s e t t h i si s a d d e dt o t h er e s u l tw h i c hi s t h e ns t o r e di n t h e

a c c u m u l a t o r .I f t h er e s u l ti s g r e a t e rt h a n$ F F( 2 5 5 ) t h eC a r r yf l a gi s s e t .I f t h er e s u l ti s

e q u a lt o z e r ot h eZ e r of l a gi s s e t .T h ec o n t e n t s o fb i t7 o f t h ea c c u m u l a t o ra r ec o p i e di n t o

t h e S t a t u sr e g i s t e r .I f o v e r f l o wo c c u r r e df r o mb i t 6 t o b i t 7 t h eO v e r f l o wf l a gi s s e t .

A p p l i c a t i o n sA l l o w ss i n g l e ,d o u b l ea n dm u l t i b y t en u m b e r st o b e a d d e dt o g e t h e r .

O v e r f l o wf r o mo n eb y t et o a n o t h e ri s p r o v i d e db y t h eC a r r yf l a gw h i c hi s i n c l u d e di n t h e

a d d i t i o n .

1 2 4

Page 132: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 132/180

A N D

L o g i c a lA N Do f m e m o r yl o c a t i o nw i t ha c c u m u l a t o r .

A d d r e s s i n g

A N Di m m e d i a t e

A N Dz e r op a g e

A N Dz e r o p a g e ,XA N Da b s o l u t e

A N Da b s o l u t e ,XA N Da b s o l u t e ,YA N D( z e r op a g e ,X )

A N D( z e r o p a g e ) ,Y

N V —

O p c o d e

D e c i m a l

4 1

3 7

5 3

4 5

6 1

5 7

3 3

4 9

B D I

H e x

$ 2 9

$ 2 5

$ 3 5

$ 2 D

$ 3 D

$ 3 9

$ 2 1

$ 3 1

Z C*

B y t e s

2

2

2

3

3

3

2

2

C y c l e s

2

3

4

4

4 / 5

4 / 5

6

5

O p e r a t i o nL o g i c a l l yA N D st h ec o r r e s p o n d i n gb i t so f t h ea c c u m u l a t o rw i t ht h es p e c i f i e d

v a l u eo r c o n t e n t so f m e m o r yl o c a t i o n .T h er e s u l to f t h e o p e r a t i o ni s s t o r e di n t h e

a c c u m u l a t o rb u tm e m o r yc o n t e n t sr e m a i nu n a l t e r e d .I f t h er e s u l to f t h eA N Di s 0 , t h e

Z e r of l a gi s s e t .I ft h er e s u l tl e a v e sb i t7 s e t ,t h eN e g a t i v ef l a gi s s e t .O t h e r w i s e b o t hf l a g sa r e

c l e a r e d .

A p p l i c a t i o n sU s e dt o ' m a s ko f f t h eu n w a n t e db i t so f t h ea c c u m u l a t o r .

A N D# $ F 0

A N D# $ 0 F

\ m a s k so f fl o w e rn i b b l e ,1 1 1 1 0 0 0 0

\ m a s k so f fh i g h e rn i b b l e ,0 0 0 0 1 1 1 1

1 2 5

Page 133: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 133/180

A S L

S h i f tc o n t e n t so f a c c u m u l a t o ro r m e m o r yl e f tb y o n eb i t .

A d d r e s s i n g O p c o d e

D e c i m a lH e xB y t e s C y c l e s

A S La c c u m u l a t o r

A S Lz e r op a g e

A S Lz e r o p a g e ,XA S La b s o l u t e

A S La b s o l u t e ,X

1 0

6

2 2

1 4

3 0

$ 0 A$ 0 6

$ 1 6

$ 0 E

$ 1 E

1

2

2

3

3

2

5

6

6

7

N V — B D I Z C

O p e r a t i o nS h u f f l e s t h eb i t s i na s p e c i f i e dl o c a t i o no n eb i tl e f t .B i t7 m o v e si n t ot h ec a r r y ,

a n da z e r oi s p l a c e di n t ot h ev a c a t e db i t 0 .

7 6 5 4 3 2 1 0

- H c

T h eC a r r yf l a gi s s e ti f b i t7 c o n t a i n e d a1 b e f o r et h es h i f t ,a n dc l e a r e di f i t c o n t a i n e d0 .

T h eN e g a t i v ef l a gi s s e ti f b i t6 p r e v i o u s l yc o n t a i n e da 1 . T h eZ e r of l a gi s s e ti f t h el o c a t i o n

h o l d s$ 0 0a f t e rt h es h i f t .( F o rt h i st o o c c u ri t m u s tp r e v i o u s l yh a v ec o n t a i n e de i t h e r$ 0 0

o r $ 8 0 .

A p p l i c a t i o n sM u l t i p l i e s t h eb y t eb y t w o .C a nb e u s e dt o s h i f tl o wn i b b l eo fb y t ei n t oh i g h

n i b b l e .

1 2 6

Page 134: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 134/180

B C C

B r a n c hi f t h eC a r r yf l a gi s c l e a r( C = 0 ) .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

B C Cr e l a t i v e 1 4 4 $ 9 0 2 2 / 3 / 4

N V — B D I Z C

O p e r a t i o nI f t h e C a r r yf l a gi s c l e a r( C = 0 ) t h e b y t ef o l l o w i n gt h e i n s t r u c t i o ni s

i n t e r p r e t e d a sa t w o ' sc o m p l e m e n tn u m b e ra n di s a d d e dt o t h ec u r r e n t c o n t e n t so f t h e

P r o g r a mC o u n t e r . T h i sg i v e s t h en e wa d d r e s sf r o mw h i c ht h ep r o g r a mw i l ln o we x e c u t e ,

a l l o w i n g ab r a n c ho f e i t h e r1 2 6b y t e sb a c ko r 1 2 9b y t e sf o r w a r d .I f t h eC a r r yf l a gi s s e t

( C = 1 ) t h eb r a n c hd o e sn o to c c u ra n dt h en e x tb y t ei s i g n o r e db y t h e6 5 0 2 .

A p p l i c a t i o n sT h eC a r r yf l a gi s c o n d i t i o n e db y a n u m b e ro f i n s t r u c t i o n ss u c ha s A D C ,S B C ,C M P ,C P Xa n dC P Y ,a n da b r a n c hw i l lo c c u ri f a n yo f t h e s er e s u l ti n c l e a r i n g t h e

f l a g .A ' f o r c e d 'b r a n c h c a n b ei m p l e m e n t e du s i n g :

C L C \ C = 0

B C Cv a l u e \' j u m p '

B C S

B r a n c hi f t h eC a r r yf l a gi s s e t ( C = 1 ) .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

B C Sr e l a t i v e 1 7 6 $ B 0 2 2 / 3 / 4

V — B D I Z C

O p e r a t i o nI f t h eC a r r yf l a gi s s e t( C= 1 ) t h eb y t e f o l l o w i n gt h e i n s t r u c t i o ni s i n t e r p r e t e d

a s a t w o ' sc o m p l e m e n tn u m b e ra n di s a d d e dt o t h ec u r r e n t c o n t e n t so f t h e P r o g r a m

C o u n t e r ;t h i sg i v e s t h en e wa d d r e s sf r o mw h i c ht h ep r o g r a mw i l ln o we x e c u t e ,a l l o w i n ga

b r a n c ho f e i t h e r1 2 6b y t e sb a c ko r 1 2 9b y t e sf o r w a r d .I f t h eC a r r yf l a gi s c l e a r( C= 0 ) t h e

b r a n c hd o e sn o to c c u ra n dt h en e x tb y t ei s i g n o r e db y t h e6 5 0 2 .

A p p l i c a t i o n sA s w i t hB C Cb u tt h eb r a n c hw i l lo n l yt a k ep l a c ei f a n o p e r a t i o nr e s u l t si n

t h eC a r r yf l a gb e i n gs e t .A ' f o r c e d 'b r a n c h c a nb e i m p l e m e n t e dw i t h :

S E C \ C = 1

B C Ss e t \ ' j u m p '

1 2 7

Page 135: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 135/180

B E Q

B r a n c hi f t h eZ e r of l a gi s s e t( Z = 1 ) .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

B E Qr e l a t i v e 2 4 0 $ F 0 2 / 3 / 4

N V — B D I Z C

O p e r a t i o nI f t h eZ e r of l a gi s s e t( Z= 1 )t h eb y t ef o l l o w i n gt h e i n s t r u c t i o ni s i n t e r p r e t e da s

a t w o ' sc o m p l e m e n tn u m b e ra n di s a d d e dt o t h ec u r r e n tc o n t e n t so f t h eP r o g r a mC o u n t e r ;

t h i sg i v e st h en e wp r o g r a ma d d r e s sf r o mw h i c ht h ep r o g r a mw i l ln o we x e c u t e ,a l l o w i n ga

b r a n c ho f e i t h e r1 2 6 b y t e sb a c ko r 1 2 9 b y t e sf o r w a r d .I f t h eZ e r of l a gi s c l e a r( Z = 0 ) t h e

b r a n c h d o e sn o to c c u ra n dt h en e x tb y t ei s i g n o r e db y t h e6 5 0 2 .

A p p l i c a t i o n sU s e dt o c a u s e ab r a n c hw h e nt h eZ e r of l a gi s s e t .T h i sh a p p e n sw h e na n

o p e r a t i o nr e s u l t si n z e r o( e . g .L D A# 0 ) .T h eB E Qc o m m a n di s u s e df r e q u e n t l ya f t e r a

c o m p a r i s o ni n s t r u c t i o n ,f o re x a m p l e :

C M P

B E QQ u e s t i o n m a r k

I f t h ec o m p a r i s o ns u c c e e d st h eZ e r of l a gi s s e t t h e r e f o r eB E Qw i l lw o r k .

B I T

T e s tm e m o r yb i t s .

A d d r e s s i n g

B I Tz e r op a g e

B I Ta b s o l u t e

O p c o d e

D e c i m a lH e x

3 6 $ 2 4

4 4 $ 2 C

N V — B D I Z C* * *

B y t e s

2

3

C y c l e s

3

4

O p e r a t i o nT h eB I To p e r a t i o na f f e c t so n l yt h eS t a t u sr e g i s t e r ,t h ea c c u m u l a t o ra n dt h e

s p e c i f i e dm e m o r yl o c a t i o n a r e u n a l t e r e d .B i t7 a n db i t6 o ft h em e m o r yb y t e a r ec o p i e d

d i r e c t l yi n t oN a n dV r e s p e c t i v e l y .T h eZ e r of l a gi s c o n d i t i o n e da f t e ra l o g i c a lb i t w i s eA N Db e t w e e nt h ea c c u m u l a t o ra n dt h e m e m o r yb y t e .I f a c c u m u l a t o rA N Dm e m o r y

r e s u l t si n z e r ot h e nZ = 1 , o t h e r w i s eZ = 0 .

A p p l i c a t i o n sO f t e n u s e di n c o n j u n c t i o nw i t hB P L / B M Io r B V S / B V Ct o t e s tb i t s7 a n d6

o f a m e m o r yl o c a t i o na n dt o c a u s ea b r a n c h d e p e n d i n go n t h e i rc o n d i t i o n .

1 2 8

Page 136: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 136/180

B M I

B r a n c hi f t h e N e g a t i v ef l a gi s s e t ( N = 1 ) .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

B M Ir e l a t i v e 4 8 $ 3 0 2 2 / 3 / 4

N V — B D I Z C

O p e r a t i o nI f t h e N e g a t i v ef l a gi s s e t ( N = 1 ) t h e b y t e f o l l o w i n gt h e i n s t r u c t i o ni s

i n t e r p r e t e d a sa t w o ' sc o m p l e m e n tn u m b e ra n di s a d d e dt o t h ec u r r e n tc o n t e n t s o ft h e

P r o g r a mC o u n t e r ;t h i sg i v e s t h en e wa d d r e s sf r o mw h i c ht h ep r o g r a mw i l ln o we x e c u t e ,

a l l o w i n ga b r a n c ho f e i t h e r1 2 6b y t e sb a c ko r 1 2 9b y t e sf o r w a r d .I f t h eN e g a t i v ef l a gi s

c l e a r( N = 0 ) t h eb r a n c hd o e sn o to c c u ra n dt h e n e x t b y t ei s i g n o r e db y t h e6 5 0 2 .

A p p l i c a t i o n sG e n e r a l l ya f t e ra n o p e r a t i o n h a sb e e n p e r f o r m e d( i . e .L D A ,L D Xe t c . )t h e

m o s ts i g n i f i c a n tb i to f t h er e g i s t e ri s c o p i e di n t ot h eN e g a t i v ef l a gp o s i t i o n .I f i t i s s e tt h e na

b r a n c hw i l lo c c u ru s i n gB M I . T h e' m i n u s *p a r to f t h em n e m o n i cd e n o t e st h i si n s t r u c t i o n ' s

i m p o r t a n c ew h e nu s i n g s i g n e da r i t h m e t i c — w h e r eb i t 7 i s u s e dt o d e n o t et h e s i g no f a

n u m b e ri n t w o ' sc o m p l e m e n tf o r m .

B N E

B r a n c hi f t h eZ e r of l a gi s c l e a r( Z = 0 ) .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

B N Er e l a t i v e 2 0 8 $ D 0 2 2 / 3 / 4

N V — B D I Z C

O p e r a t i o nI f t h eZ e r of l a gi s c l e a r( Z= 0 ) t h eb y t e f o l l o w i n gt h ei n s t r u c t i o ni s i n t e r p r e t e d

a s a t w o ' sc o m p l e m e n tn u m b e ra n di s a d d e dt o t h e c u r r e n tc o n t e n t so f t h eP r o g r a m

C o u n t e r ;t h i sg i v e st h en e wa d d r e s sf r o mw h i c ht h ep r o g r a mw i l ln o we x e c u t e ,a l l o w i n g a

b r a n c ho f e i t h e r1 2 6b y t e sb a c ko r 1 2 9b y t e sf o r w a r d .I f t h eZ e r of l a gi s s e t( Z = 1 ) t h e

b r a n c h d o e sn o to c c u ra n dt h en e x tb y t ei s i g n o r e db y t h e6 5 0 2 .

A p p l i c a t i o n sU s e dt o c a u s ea b r a n c hw h e nt h e Z e r of l a gi s c l e a r .I t ' so f t e nu s e d ,i n

c o n j u n c t i o nw i t ha d e c r e m e n t i n gc o u n t e r ,a s a l o o pc o n t r o l l i n gc o m m a n d .

D E X

B N EA G A I N

w i l lc o n t i n u eb r a n c h i n gb a c kt o A G A I Nu n t i lX = 0 a n d t h e Z e r of l a gi s s e t .

1 2 9

Page 137: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 137/180

B P L

B r a n c hi f t h eN e g a t i v ef l a gi s c l e a r( N = 0 ) .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

B P Lr e l a t i v e 1 6 $ 1 0 3 / 4 / 5

N V — B D I Z C

O p e r a t i o nI f t h e N e g a t i v ef l a gi s c l e a r( N = 0 ) t h eb y t ef o l l o w i n gt h e i n s t r u c t i o ni s

i n t e r p r e t e da s a t w o ' sc o m p l e m e n tn u m b e ra n di s a d d e dt o t h ec u r r e n tc o n t e n t so f t h e

P r o g r a mC o u n t e r ;t h i sg i v e s t h en e wa d d r e s sf r o mw h i c ht h ep r o g r a mw i l ln o we x e c u t e ,

a l l o w i n ga b r a n c ho f e i t h e r1 2 6b y t e sb a c ko r 1 2 9b y t e sf o r w a r d .I f t h eN e g a t i v ef l a gi s s e t

( N = 1 ) t h eb r a n c hd o e sn o to c c u ra n dt h en e x tb y t ei s i g n o r e db y t h e6 5 0 2 .

A p p l i c a t i o n sG e n e r a l l ya f t e ra n o p e r a t i o nh a sb e e n p e r f o r m e d( i . e .L D A ,R O L ,C P Xe t c . )t h em o s ts i g n i f i c a n tb i to f t h er e g i s t e ri s c o p i e di n t ot h eN e g a t i v ef l a gp o s i t i o n .I f i t i s

c l e a rt h e n ab r a n c hw i l lo c c u ri f B P Li s u s e d .T h e' p l u s 'p a r to f t h em n e m o n i cd e n o t e st h e

i n s t r u c t i o n ' si m p o r t a n c ew h e nu s i n gs i g n e da r i t h m e t i c ,w h e r eb i t7 i s u s e dt o i n d i c a t et h e

s i g no f a n u m b e ri n t w o ' sc o m p l e m e n tf o r m .I f a d e c r e m e n t i n gc o u n t e ri s b e i n gu s e di n a

l o o pt h i sb r a n c hi n s t r u c t i o na l l o w st h el o o pt o e x e c u t ew h e nt h ec o u n t e rr e a c h e sz e r o .

D E X

B P La g a i n

T h i sl o o pw i l lf i n i s hw h e nX i s d e c r e m e n t e df r o m0 t o $ F Fb e c a u s e$ F F= 1 1 1 11 1 1 1

b i n a r y ,w h e r eb i t 7 i s s e t .

B R K

S o f t w a r ef o r c e dB R E A K .

A d d r e s s i n g O p c o d e

D e c i m a lH e xB y t e s C y c l e s

B R Ki m p l i e d 0 0 $ 0 0

N V— B D I Z C

1

O p e r a t i o nT h eP r o g r a mC o u n t e ra d d r e s sp l u so n ei s p u s h e do n t ot h es t a c k ,f o l l o w e db yt h e c o n t e n t so f t h e S t a t u sr e g i s t e r .T h e B r e a kf l a g i s s e t a n d t h e V I Cp a s s e s

c o n t r o lt o t h eB R Ks e r v i c i n gr o u t i n ea t $ F F F E .

A p p l i c a t i o n sU s e da s a s o f t w a r ei n t e r r u p t .

1 3 0

Page 138: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 138/180

B V C

B r a n c hi f t h eO v e r f l o wf l a gi s c l e a r( V = 0 ) .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

B V Cr e l a t i v e 8 0 $ 5 0 2 2 / 3 / 4

N V — B D I Z C

O p e r a t i o nI f t h e O v e r f l o wf l a gi s c l e a r( V = 0 ) t h eb y t e f o l l o w i n gt h e i n s t r u c t i o ni s

i n t e r p r e t e d a sa t w o ' sc o m p l e m e n tn u m b e ra n da d d e dt o t h ec u r r e n t c o n t e n t so f t h e

P r o g r a mC o u n t e r . T h i sg i v e st h en e wa d d r e s sf r o mw h i c ht h ep r o g r a mw i l ln o we x e c u t e .

T h i sa l l o w sa b r a n c ho f e i t h e r1 2 6b y t e sb a c ko r 1 2 9b y t e sf o r w a r d .I f t h eO v e r f l o wf l a gi s

s e t( V = 1 ) t h eb r a n c hd o e sn o t t a k ep l a c ea n dt h e n e x tb y t ei s i g n o r e db y t h e 6 5 0 2 .

A p p l i c a t i o n sU s e dt o d e t e c ta n o v e r f l o wf r o mb i t6 i n t ob i t7 ( i . e .a c a r r yf r o mb i t6 t o b i t

7 ) w h e nu s i n gs i g n e da r i t h m e t i c .W h e nu s i n g s i g n e d a r i t h m e t i ct w o n u m b e r so f o p p o s i t e

s i g nc a n n o to v e r f l o w ,h o w e v e rn u m b e r so f t h es a m es i g nc a no v e r f l o w .F o re x a m p l e :

0 1 0 0 1 1 1 1 ( $ 4 F )

+ 0 1 0 0 0 0 0 0 ( $ 4 0 )

1 0 0 0 11 1 1 ( - $ 7 1 )

t1 — O v e r f l o wf r o mb i t 6 t o b i t 7

T h er e s u l ti s n o wn e g a t i v ew h i c hi s ,o fc o u r s e ,a b s u r d !S i m i l a r l ya d d i n gt w ol a r g en e g a t i v e

n u m b e r sc a n p r o d u c ea p o s i t i v er e s u l t .I n f a c to v e r f l o wc a no c c u ri n t h e f o l l o w i n g

s i t u a t i o n s :

1 . A d d i n gl a r g e p o s i t i v en u m b e r s .

2 . A d d i n gl a r g en e g a t i v en u m b e r s .

3 . S u b t r a c t i n g al a r g en e g a t i v en u m b e rf r o ma l a r g e p o s i t i v en u m b e r .

4 . S u b t r a c t i n g al a r g e p o s i t i v en u m b e rf r o ma l a r g en e g a t i v en u m b e r .

T h eO v e r f l o wf l a gi s u s e dt o s i g n a lt h i so v e r f l o wf r o mb i t6 t o b i t7 a n dt h e r e f o r e ,i n

s i g n e da r i t h m e t i c ,a c h a n g ei n s i g n .I f i t i s c l e a rn o o v e r f l o wh a so c c u r r e da n dB V Cw i l l

c a u s e a b r a n c h .

A ' f o r c e d 'b r a n c hm a yb e i m p l e m e n t e du s i n g :

C L V \ c l e a rV

B V CF o r c e d \ ' j u m p '

1 3 1

Page 139: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 139/180

B V S

B r a n c hi f t h eO v e r f l o wf l a gi s s e t ( V = 1 ) .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

B V Sr e l a t i v e 1 1 2 $ 7 0 2 / 3 / 4

N V — B D I Z C

O p e r a t i o nI f t h e O v e r f l o wf l a gi s s e t ( V = 1 ) t h e b y t e f o l l o w i n gt h e i n s t r u c t i o ni s

i n t e r p r e t e d a sa t w o ' sc o m p l e m e n tn u m b e ra n da d d e dt o t h ec u r r e n tc o n t e n t so f t h e

P r o g r a mC o u n t e r . T h i sg i v e s t h en e wa d d r e s sf r o mw h i c ht h ep r o g r a mw i l ln o we x e c u t e ,

a l l o w i n ga b r a n c ho f e i t h e r1 2 6b y t e sb a c ko r 1 2 9b y t e sf o r w a r d .I f t h eO v e r f l o wf l a gi s

c l e a r( V = 0 ) t h eb r a n c hd o e sn o to c c u ra n dt h en e x t b y t ei s i g n o r e db y t h e6 5 0 2 .

A p p l i c a t i o n sU s e dt o c a u s ea b r a n c hi f t h e s i g no f a n u m b e rh a sb e e n c h a n g e d .I n m o s t

i n s t a n c e st h i sw i l lo n l y m a t t e ri f s i g n e d a r i t h m e t i ci s b e i n ge m p l o y e d .S e eB V Cf o rm o r e

d e t a i l s .

C L C

C l e a rt h e C a r r yf l a g( C = 0 ) .

A d d r e s s i n g

C L Ci m p l i e d

O p c o d e B y t e s C y c l e s

D e c i m a lH e x

2 4 $ 1 8

N V — B D I Z C

0

O p e r a t i o nT h eC a r r yf l a gi s c l e a r e db y s e t t i n gi t t o z e r o .

A p p l i c a t i o n sS h o u l da l w a y sb e u s e db e f o r ea d d i n gt w o n u m b e r st o g e t h e ra s t h eC a r r y

f l a g ' sc o n t e n t sa r et a k e ni n t oa c c o u n tb y A D C .A ' f o r c e d 'b r a n c hm a yb e i m p l e m e n t e d

w i t h :

C L C

B C Cc l e a r

\ C l e a rC

\ a n d' j u m p '

1 3 2

Page 140: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 140/180

C L D

C l e a rt h e D e c i m a lf l a g( D = 0 ) .

A d d r e s s i n g O p c o d e

D e c i m a lH e x

B y t e s C y c l e s

C L Di m p l i e d 2 1 6 $ D 8

N V — B D I Z C

0

O p e r a t i o nT h eD e c i m a lf l a gi s c l e a r e db y s e t t i n gi t t o z e r o .

A p p l i c a t i o n sU s e dt o m a k e6 5 0 2w o r ki n n o r m a lh e x a d e c i m a lm o d e .

C L I

C l e a rt h e I n t e r r u p tf l a g( I = 0 ) .

A d d r e s s i n g O p c o d e

D e c i m a lH e x

B y t e s C y c l e s

C L Ii m p l i e d 8 8 $ 5 8

N V — B D I Z C0

O p e r a t i o nT h eI n t e r r u p tf l a gi s c l e a r e db y s e t t i n gi t t o z e r o .

A p p l i c a t i o n sC a u s e sa n yi n t e r r u p t so n t h eI R Ql i n et o b e p r o c e s s e di m m e d i a t e l ya f t e r

c o m p l e t i o no f c u r r e n ti n s t r u c t i o n .

1 3 3

Page 141: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 141/180

C L V

C l e a rt h eO v e r f l o wf l a g( V = 0 ) .

A d d r e s s i n g O p c o d e

D e c i m a lH e x

B y t e s C y c l e s

C L Vi m p l i e d 1 8 4 $ B 8

N V — B D I Z C

O p e r a t i o nT h eO v e r f l o wf l a gi s c l e a r e db y s e t t i n gi t t o z e r o .

A p p l i c a t i o n sU s e dt o c l e a r t h eO v e r f l o wf l a g a f t e ra n o v e r f l o wf r o mb i t6 t o b i t7 . I n m o s t

i n s t a n c e st h i si s o n l yi m p o r t a n ti f s i g n e da r i t h m e t i ci s b e i n gu s e d .

1 3 4

Page 142: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 142/180

C M P

C o m p a r ec o n t e n t so f m e m o r yw i t h c o n t e n t so f t h ea c c u m u l a t o r .

A d d r e s s i n g

C M Pi m m e d i a t e

C M Pz e r op a g e

C M Pz e r op a g e ,XC M Pa b s o l u t e

C M Pa b s o l u t e ,XC M Pa b s o l u t e ,Y

C M P( z e r op a g e ,X )

C M P( z e r o p a g e ) ,Y

N V*

O p c o d e

D e c i m a l

2 0 1

1 9 7

2 1 3

2 0 5

2 2 1

2 1 7

1 9 3

2 0 9

— B D 1

H e x

$ C 9

$ C 5

$ D 5$ C D$ D D$ D 9

$ C 1

$ D 1

[ Z C* *

B y t e s

2

2

2

3

3

3

2

2

C y c l e s

2

3

4

4

4 / 5

4 / 5

6

5 / 6

O p e r a t i o nT h ec o n t e n t so f t h e s p e c i f i e dm e m o r yl o c a t i o n( o r i m m e d i a t ev a l u e )a r e

s u b t r a c t e df r o mt h ec o n t e n t s o ft h ea c c u m u l a t o r .T h ec o n t e n t so f t h em e m o r yl o c a t i o n

a n da c c u m u l a t o ra r ej V O T a l t e r e d , b u tt h eN e g a t i v e ,Z e r oa n dC a r r yf l a g sa r ec o n d i t i o n e d

a c c o r d i n gt o t h er e s u l to f t h es u b t r a c t i o n .T op e r f o r mt h i ss u b t r a c t i o n ,t h e6 5 0 2f i r s ts e t s

t h e C a r r yf l a ga n dt h e na d d st h e t w o ' sc o m p l e m e n tv a l u eo f t h e m e m o r yl o c a t i o n ' s

c o n t e n t st o t h ea c c u m u l a t o r ' sc o n t e n t s .I f b o t hv a l u e s a r ee q u a l( m e m o r y= a c c u m u l a t o r )

t h eZ e r of l a gi s s e ta n dt h eC a r r yf l a gr e m a i n ss e t .I f t h ec o n t e n t so f m e m o r ya r el e s st h a nt h ea c c u m u l a t o r( m e m o r y< a c c u m u l a t o r )t h eZ e r of l a gi s c l e a r e da n dt h eC a r r yf l a g s e t . I f

m e m o r yc o n t e n t sa r e g r e a t e rt h a nt h ea c c u m u l a t o r( m e m o r y> a c c u m u l a t o r )t h e nb o t h

t h eZ e r of l a ga n dC a r r yf l a ga r ec l e a r e d .I f u n s i g n e db i n a r yi s b e i n gu s e dt h eN e g a t i v ef l a g

i s a l s os e t . I f s i g n e db i n a r yi s b e i n g u s e dt h e O v e r f l o wf l a gs h o u l d b ec h e c k e di n

c o n j u n c t i o nw i t ht h eN e g a t i v ef l a gt o t e s tf o ra ' t r u e 'n e g a t i v er e s u l t .

A p p l i c a t i o n sS h o u l db e u s e dt o t e s tf o ri n t e r m e d i a t e v a l u e st h a tc a n n o tb e t e s t e dd i r e c t l y

f r o mt h eS t a t u sr e g i s t e r .F o re x a m p l e :

C M P# 0 0

B E QA W A Y

i s a w a s t e o ft w ob y t e s ,a s t h e Z e r of l a gw i l lb e s e t i f t h ea c c u m u l a t o rc o n t a i n s$ 0 0 ,

t h e r e f o r ea l l t h a ti s n e e d e di s : B E QA W A Y .T o t e s tf o r a p a r t i c u l a r k e y , t h ef o l l o w i n g

C M Pm i g h t b eu s e d :

J S RG E T I N

C M P# A S C " Y "

B E QY E S

\ g e tk e y

\ i s i t Y k e y ?

1 3 5

Page 143: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 143/180

C P X

C o m p a r ec o n t e n t s o fm e m o r yw i t h c o n t e n t s o ft h eX r e g i s t e r .

A d d r e s s i n g

C P Xi m m e d i a t e

C P Xz e r op a g e

C P Xa b s o l u t e

N V*

O p c o d e

D e c i m a lH e x

2 2 4 $ E 0

2 2 8 $ E 4

2 3 6 S E C

— B D I Z C* *

B y t e s

2

2

3

C y c l e s

2

3

4

O p e r a t i o nT h ec o n t e n t so f t h e s p e c i f i e dm e m o r yl o c a t i o n( o r i m m e d i a t ev a l u e ) a r es u b t r a c t e df r o mt h ec o n t e n t s o ft h eX r e g i s t e r .T h ec o n t e n t so f t h em e m o r yl o c a t i o na n dXr e g i s t e ra r eN O Ta l t e r e d ,i n s t e a d t h eN e g a t i v e ,Z e r o a n dC a r r yf l a g sa r e c o n d i t i o n e d

a c c o r d i n gt o t h er e s u l to f t h e s u b t r a c t i o n .T o p e r f o r mt h i ss u b t r a c t i o nt h e6 5 0 2f i r s ts e t s

t h eC a r r yf l a ga n dt h e na d d st h et w o ' sc o m p l e m e n tv a l u eo f t h em e m o r yl o c a t i o nt o t h e

c o n t e n t so f t h eX r e g i s t e r . I fb o t hv a l u e s a r ee q u a l( m e m o r y= X r e g i s t e r )t h eZ e r of l a gi s

s e ta n dt h eC a r r yf l a gr e m a i n ss e t .I f t h ec o n t e n t so f m e m o r ya r el e s st h a nt h eX r e g i s t e r

( m e m o r y< X r e g i s t e r )t h eZ e r of l a gi s c l e a r e db u tt h eC a r r yf l a gr e m a i n ss e t .I f m e m o r y

c o n t e n t sa r e g r e a t e rt h a nt h eX r e g i s t e r( m e m o r y> X r e g i s t e r )t h e nb o t hZ e r oa n dC a r r y

f l a g sa r ec l e a r e d .I f u n s i g n e d b i n a r yi s b e i n gu s e dt h e nt h eN e g a t i v ef l a gi s s e t .

A p p l i c a t i o n sS h o u l db e u s e dt o t e s tf o r i n t e r m e d i a t ev a l u e sw h i c hc a n n o t b et e s t e dd i r e c t l yf r o mt h eS t a t u sr e g i s t e r .F o re x a m p l e ,t o t e s tt h eX r e g i s t e r ' sc o n t e n t sd u r i n gu s e

a s a l o o p c o u n t e rt r y :

L D X# 2 2 0 \ l o a dX w i t h2 2 0

A G A I ND E X \ d e c r e m e n tX

C P X# 8 7 \ h a sX r e a c h e d8 7 ?

B N EA G A I N \ n o ,g o a g a i n

1 3 6

Page 144: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 144/180

C P Y

C o m p a r ec o n t e n t so f m e m o r yw i t hc o n t e n t so f t h eY r e g i s t e r .

A d d r e s s i n g

C P Yi m m e d i a t e

C P Yz e r op a g e

C P Ya b s o l u t e

N V*

O p c o d e

D e c i m a lH e x

1 9 2 $ C 0

1 9 6 $ C 4

2 0 4 $ C C

— B D I Z C

B y t e s

2

2

3

C y c l e s

2

3

4

O p e r a t i o nT h ec o n t e n t s o ft h e s p e c i f i e dm e m o r yl o c a t i o n( o ri m m e d i a t ev a l u e ) a r es u bt r a c t e df r o mt h ec o n t e n t s o ft h eY r e g i s t e r .T h ec o n t e n t s o ft h em e m o r yl o c a t i o na n dY

r e g i s t e ra r e N O Ta l t e r e d ,i n s t e a d t h eN e g a t i v e ,Z e r oa n dC a r r yf l a g sa r ec o n d i t i o n e d

a c c o r d i n gt o t h er e s u l to f t h e s u b t r a c t i o n .T o p e r f o r mt h i ss u b t r a c t i o nt h e6 5 0 2f i r s ts e t s

t h eC a r r yf l a ga n dt h e na d d st h et w o ' sc o m p l e m e n tv a l u e o ft h em e m o r yl o c a t i o nt o t h e

c o n t e n t so f t h eY r e g i s t e r .I f b o t hv a l u e s a r ee q u a l( m e m o r y= Yr e g i s t e r )t h eZ e r of l a gi s

s e ta n dt h eC a r r yf l a gr e m a i n ss e t .I f t h ec o n t e n t so f m e m o r ya r el e s st h a nt h eY r e g i s t e r

( m e m o r y< Y r e g i s t e r )t h eZ e r of l a gi s c l e a r e db u tt h eC a r r yf l a gr e m a i n ss e t . I fm e m o r y

c o n t e n t sa r e g r e a t e rt h a nt h eY r e g i s t e r( m e m o r y> Y r e g i s t e r )t h e nb o t hZ e r oa n dC a r r y

f l a g sa r ec l e a r e d .I f u n s i g n e db i n a r yi s b e i n gu s e dt h e nt h e N e g a t i v ef l a gi s s e t .

A p p l i c a t i o n sS h o u l db e u s e dt o t e s tf o r i n t e r m e d i a t e v a l u e sw h i c hc a n n o tb e t e s t e dd i r e c t l yf r o mt h eS t a t u sr e g i s t e r .F o re x a m p l e ,t o t e s tt h eY r e g i s t e r ' sc o n t e n t sd u r i n gu s e

a s a l o o p c o u n t e rt r y :

A G A I N

L D Y# 2 2 0

D E Y

C P Y# 8 7

B N EA G A I N

\ l o a dY w i t h2 2 0

\ d e c r e m e n tY

\ h a sY r e a c h e d8 7 ?

\ n o ,g o a g a i n

1 3 7

Page 145: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 145/180

D E C

D e c r e m e n tm e m o r yc o n t e n t sb y o n e .

A d d r e s s i n g

D E Cz e r op a g e

D E Cz e r o p a g e ,XD E Ca b s o l u t e

D E Ca b s o l u t e ,X

N V

O p c o d e

D e c i m a lH e x

1 9 8 $ C 6

2 1 4 $ D 6

2 0 6 $ C E2 2 2 $ D E

— B D I Z C

B y t e s

2

2

3

3

C y c l e s

5

6

6

7

O p e r a t i o nT h eb y t ea t t h e a d d r e s ss p e c i f i e di s d e c r e m e n t e db y o n e( M E M O R Y=M E M O R Y- 1 ) .I f t h er e s u l to f t h eo p e r a t i o ni s z e r ot h eZ e r of l a gw i l lb e s e t .B i t7 o f t h e

b y t ei s c o p i e di n t ot h eN e g a t i v ef l a g .

A p p l i c a t i o n sU s e dt o s u b t r a c to n ef r o ma c o u n t e rs t o r e di n m e m o r y .

1 3 8

Page 146: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 146/180

D E X

D e c r e m e n tc o n t e n t so f X r e g i s t e rb y o n e .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

D E Xi m p l i e d 2 0 2 $ C A 1 2

N V— B D I Z C* *

O p e r a t i o nO n ei s s u b t r a c t e df r o mt h ev a l u e c u r r e n t l y h e l di n t h eX r e g i s t e r( X= X - 1 ) .I f

t h er e s u l to f t h eo p e r a t i o ni s z e r ot h eZ e r of l a gw i l lb e s e t .B i t7 i s c o p i e di n t o t h eN e g a t i v e

f l a g( N= 0 i f X < $ 8 0 ;N = 1 i f X > $ 7 F ) .T h eC a r r yf l a gi s n o ta f f e c t e db yt h ei n s t r u c t i o n .

A p p l i c a t i o n sU s e dw i t hi n d e x e da d d r e s s i n gw h e nt h eX r e g i s t e ra c t sa s a n o f f s e tf r o ma

b a s ea d d r e s s ,a l l o w i n g as e q u e n t i a ls e t o f b y t e st o b e a c c e s s e d . I n v a r i a b l yu s e dt o

d e c r e m e n tt h e X r e g i s t e rw h e nb e i n gu s e da s a l o o pc o u n t e r ,b r a n c h i n gu n t i lX = 0

( Z =1 ) .

D E Y

D e c r e m e n tc o n t e n t so f Y r e g i s t e rb y o n e .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

D E Yi m p l i e d 1 3 6$ 8 8 1 2

N V — B D Z C

O p e r a t i o nO n ei s s u b t r a c t e df r o mt h ev a l u ec u r r e n t l yh e l di n t h eY r e g i s t e r( Y= Y —1 ) .I f

t h er e s u l to f t h eo p e r a t i o ni s z e r ot h eZ e r of l a gi s s e t .B i t7 i s c o p i e di n t ot h eN e g a t i v ef l a g

( N = 0 i f Y < $ 8 0 ; N= 1 i f Y > $ 7 F ) .T h eC a r r yf l a gi s n o ta f f e c t e db y t h ei n s t r u c t i o n .

A p p l i c a t i o n sU s e dw i t hi n d e x e d a d d r e s s i n gw h e nt h eY r e g i s t e ra c t sa s a n o f f s e tf r o ma

b a s e a d d r e s s a l l o w i n ga s e q u e n t i a ls e t o f b y t e st o b e a c c e s s e d . I n v a r i a b l yu s e dt o

d e c r e m e n tt h e Y r e g i s t e rw h e nb e i n g u s e da s a l o o pc o u n t e r ,b r a n c h i n gu n t i lY = 0

( Z = 1 ) .

1 3 9

Page 147: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 147/180

E O R

A c c u m u l a t o re x c l u s i v e l yO R e dw i t hm e m o r y .

A d d r e s s i n g

E O Ri m m e d i a t e

E O Rz e r op a g e

E O Rz e r op a g e ,XE O Ra b s o l u t e

E O Ra b s o l u t e ,XE O Ra b s o l u t e ,YE O R( z e r op a g e ,X )

E O R( z e r op a g e ) ,Y

N V*

O p c o d e

D e c i m a l

7 3

6 9

8 5

7 7

9 3

8 9

6 5

8 1

— B D ,

H e x

$ 4 9

$ 4 5

$ 5 5

$ 4 D$ 5 D

$ 5 9

$ 4 1

$ 5 1

Z C

B y t e s

2

2

2

3

3

3

2

2

C y c l e s

2

3

4 / 5

4

4 / 5

4 / 5

6

5 / 6

O p e r a t i o nP e r f o r m sa b i t w i s e e x c l u s i v eO R b e t w e e nt h e c o r r e s p o n d i n gb i t s i nt h e

a c c u m u l a t o ra n d t h e s p e c i f i e dm e m o r yb y t e .I f t h e r e s u l t ,w h i c hi s s t o r e di n t h e

a c c u m u l a t o r ,i s z e r ot h eZ e r of l a gi s s e t .B i t7 i s c o p i e di n t ot h eN e g a t i v ef l a g .

A p p l i c a t i o n sU s e dt o c o m p l e m e n to r i n v e r ta d a t ab y t e .

I N C

I n c r e m e n tm e m o r yc o n t e n t sb y o n e .

A d d r e s s i n g

I N Cz e r op a g e

I N Cz e r op a g e ,XI N Ca b s o l u t e

I N Ca b s o l u t e ,X

N V*

O p c o d e

D e c i m a lH e x

2 3 0 $ E 6

2 4 6 $ F 6

2 3 8 $ E E2 5 4 $ F E

— B D I Z C*

B y t e s

2

2

3

3

C y c l e s

5

6

6

7

O p e r a t i o nT h eb y t ea t t h ea d d r e s ss p e c i f i e di s i n c r e m e n t e db y o n e .I f t h ea d d r e s s h o l d s

z e r oa f t e rt h eo p e r a t i o nt h eZ e r of l a gi s s e t .B i t7 o f t h eb y t ei s c o p i e di n t ot h eN e g a t i v e

f l a g .

A p p l i c a t i o n sA d do n et o a c o u n t e rs t o r e di n m e m o r y .

1 4 0

Page 148: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 148/180

I N X

I n c r e m e n tc o n t e n t s o fX r e g i s t e rb y o n e .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

I N Xi m p l i e d 2 3 2 $ E 8 1 2

N V — B D I Z C

O p e r a t i o nO n ei s a d d e dt o t h ev a l u e c u r r e n t l yi n t h eX r e g i s t e r( X= X + 1 ) .I f t h er e s u l t

o f t h eo p e r a t i o ni s z e r ot h eZ e r of l a gw i l lb e s e t .B i t7 i s c o p i e di n t ot h eN e g a t i v ef l a g

( N = 0 i f X < $ 8 0; N = 1 i f X > $ 7 F ) .T h eC a r r yf l a gi s n o ta f f e c t e db y t h ei n s t r u c t i o n .

A p p l i c a t i o n sU s e dw i t h i n d e x e d a d d r e s s i n gw h e nt h eX r e g i s t e ra c t s a sa n o f f s e tf r o ma

b a s ea d d r e s s ,a n da l l o w sa s e q u e n t i a ls e to f b y t e st o b e a c c e s s e d .O f t e n u s e da s a c o u n t e r

t o c o n t r o lt h en u m b e ro f t i m e sa l o o po f i n s t r u c t i o n si s e x e c u t e d .

I N Y

I n c r e m e n tc o n t e n t so f Y r e g i s t e rb y o n e .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

I N Yi m p l i e d 2 0 0 $ C 8 1 2

N V — B D I Z C* *

O p e r a t i o nO n ei s a d d e dt o t h ev a l u ec u r r e n t l yh e l di n t h eY r e g i s t e r( Y = Y + 1 ) .I f t h e

r e s u l to f t h eo p e r a t i o ni s z e r ot h eZ e r of l a gw i l lb e s e t .B i t 7i s c o p i e di n t ot h eN e g a t i v ef l a g .

T h eC a r r yf l a gi s n o ta f f e c t e d .

A p p l i c a t i o n sU s e dw i t hi n d e x e da d d r e s s i n gw h e nt h eY r e g i s t e ra c t s a sa n o f f s e tf r o ma

b a s ea d d r e s s ,a l l o w i n ga s e q u e n t i a ls e to f b y t e st o b e a c c e s s e d .O f t e nu s e da s a c o u n t e rt o

c o n t r o lt h e n u m b e ro f t i m e s al o o pi s e x e c u t e d .

1 4 1

Page 149: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 149/180

J M P

J u m pt o a n e wl o c a t i o n .

A d d r e s s i n g

J M Pa b s o l u t e

J M P( i n d i r e c t )

O p c o d e

D e c i m a lH e x

7 6

1 0 8

N V — B D I

$ 4 C

$ 6 C

z c

B y t e s

3

3

C y c l e s

3

3

O p e r a t i o nI n a n a b s o l u t eJ M Pt h et w ob y t e sf o l l o w i n gt h e i n s t r u c t i o n a r ep l a c e di n t ot h e

P r o g r a mC o u n t e r .I n a n i n d i r e c tj u m pt h e t w ob y t e sl o c a t e da t t h e t w ob y t ea d d r e s s

f o l l o w i n gt h ei n s t r u c t i o na r el o a d e di n t o t h eP r o g r a mC o u n t e r .

A p p l i c a t i o n s T r a n s f e r sc o n t r o l ,u n c o n d i t i o n a l l y ,t o a n o t h e rp a r to f a p r o g r a ms t o r e d

a n y w h e r ei n m e m o r y .

J S R

J u m p ,s a v e r e t u r n a d d r e s s .

A d d r e s s i n g

J S Ra b s o l u t e

O p c o d e

D e c i m a lH e x

B y t e s C y c l e s

3 2 $ 2 0

N V — B D I Z C

O p e r a t i o nA c t sa s a s u b r o u t i n ec a l l ,t r a n s f e r r i n gp r o g r a mc o n t r o lt o a n o t h e rp a r to f

m e m o r yu n t i la n R T Si s e n c o u n t e r e d .T h ec u r r e n tc o n t e n t so f t h eP r o g r a mC o u n t e rp l u s

t w oa r ep u s h e do n t ot h e s t a c k .T h eS t a c kP o i n t e ri s i n c r e m e n t e dt w i c e .T h ea b s o l u t e

a d d r e s sf o l l o w i n gt h e i n s t r u c t i o ni s p l a c e di n t o t h eP r o g r a mC o u n t e ra n d p r o g r a m

e x e c u t i o n c o n t i n u e sf r o mt h i sn e wa d d r e s s .

A p p l i c a t i o n sA l l o w sl a r g er e p e t i t i v es e c t i o n so f p r o g r a m st o b e e n t e r e d o n c e ,o u t o ft h e

w a yo f t h em a i np r o g r a m ,a n dc a l l e da s s u b r o u t i n e sa s o f t e na s r e q u i r e d .

1 4 2

Page 150: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 150/180

L D A

L o a dt h ea c c u m u l a t o rw i t ht h es p e c i f i e d b y t e .

A d d r e s s i n g

L D Ai m m e d i a t e

L D Az e r op a g e

L D Az e r op a g e ,XL D Aa b s o l u t e

L D Aa b s o l u t e ,XL D Aa b s o l u t e ,YL D A( z e r op a g e ,X )

L D A( z e r o p a g e ) ,Y

N V*

O p c o d e

D e c i m a l

1 6 9

1 6 5

1 8 1

1 7 3

1 8 9

1 8 5

1 6 1

1 7 7

— B D I

H e x

$ A 9$ A 5

$ B 5

S A D$ B D

$ B 9

$ A 1

$ B 1

Z C*

B y t e s

2

2

2

3

3

3

2

2

C y c l e s

2

3

4

4

4 / 5

4 / 5

6

5 / 6

O p e r a t i o nP l a c e st h ev a l u ei m m e d i a t e l yf o l l o w i n gt h e i n s t r u c t i o n ,o r t h ec o n t e n t so ft h e

l o c a t i o ns p e c i f i e d a f t e rt h ei n s t r u c t i o n ,i n t ot h ea c c u m u l a t o r .I f t h ev a l u el o a d e di s z e r o

t h e nt h eZ e r of l a gi s s e t .B i t7 i s c o p i e di n t ot h eN e g a t i v ef l a gp o s i t i o n .

A p p l i c a t i o n sP r o b a b l yt h em o s tf r e q u e n t l yu s e di n s t r u c t i o n ,i t a l l o w sf o rg e n e r a ld a t a

m o v e m e n ta n df a c i l i t a t e sa l l l o g i c a la n da r i t h m e t i c o p e r a t i o n s .

L D X

L o a dt h eX r e g i s t e rw i t ht h es p e c i f i e db y t e .

A d d r e s s i n g

L D Xi m m e d i a t e

L D Xz e r op a g e

L D Xz e r op a g e ,YL D Xa b s o l u t e

L D Xa b s o l u t e ,Y

N V

O p c o d e

D e c i m a lH e x

1 6 2

1 6 6

1 8 2

1 7 4

1 9 0

— B D I

$ A 2

$ A 6

$ B 6

$ A E$ B E

Z C*

B y t e s

2

2

2

3

3

C y c l e s

2

3

4

4

4 / 5

O p e r a t i o nP l a c e s t h ev a l u ei m m e d i a t e l yf o l l o w i n gt h ei n s t r u c t i o n ,o r t h ec o n t e n t so f t h e

l o c a t i o ns p e c i f i e da f t e rt h ei n s t r u c t i o n ,i n t o t h eX r e g i s t e r .I f t h ev a l u el o a d e di s z e r ot h e n

t h eZ e r of l a gi s s e t .B i t7 i s c o p i e di n t ot h eN e g a t i v ef l a gp o s i t i o n .

A p p l i c a t i o n sG e n e r a lt r a n s f e ro f d a t af o r p r o c e s s i n go r s t o r a g e .A l s oa l l o w s al o o p

c o u n t e rt o b e s e t t o i t s s t a r tv a l u e .

1 4 3

Page 151: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 151/180

L D Y

L o a dt h eY r e g i s t e rw i t ht h es p e c i f i e db y t e .

A d d r e s s i n g O p c o d e

D e c i m a lH e xB y t e s C y c l e s

L D Yi m m e d i a t e

L D Yz e r op a g e

L D Yz e r op a g e ,XL D Ya b s o l u t e

L D Ya b s o l u t e ,X

1 6 0

1 6 4

1 8 0

1 7 2

1 8 8

$ A 0

$ A 4

$ B 4

S A C$ B C

2

2

2

3

3

2

3

4

4

4 / 5

N V— B D I Z C

O p e r a t i o nP l a c e s t h ev a l u ei m m e d i a t e l yf o l l o w i n gt h ei n s t r u c t i o n ,o r t h ec o n t e n t so ft h e

l o c a t i o ns p e c i f i e da f t e rt h e i n s t r u c t i o n , i n t o t h eY r e g i s t e r . I ft h ev a l u el o a d e di s z e r ot h e

Z e r of l a gi s s e t .B i t7 i s c o p i e di n t ot h eN e g a t i v ef l a g .

A p p l i c a t i o n sG e n e r a lt r a n s f e ro f d a t af o r p r o c e s s i n go r s t o r a g e .A l s oa l l o w sa l o o pc o u n t e rt o b e s e t t o i t s s t a r tv a l u e .

1 4 4

Page 152: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 152/180

L S R

L o g i c a l l ys h i f tt h es p e c i f i e db y t er i g h to n eb i t .

A d d r e s s i n g O p c o d e

D e c i m a lH e x

B y t e s C y c l e s

L S Ra c c u m u l a t o r

L S Rz e r op a g e

L S Rz e r op a g e ,XL S Ra b s o l u t e

L S Ra b s o l u t e ,X

7 4

7 0

8 6

7 8

9 4

$ 4 A

$ 4 6

$ 5 6

$ 4 E

$ 5 E

1

2

2

3

3

2

5

6

6

7

N V — B D I Z Ca * *

O p e r a t i o nM o v e st h ec o n t e n t so f t h es p e c i f i e db y t er i g h tb y o n ep o s i t i o n ,p u t t i n ga 0 i n

b i t 7 a n db i t 0 i n t ot h eC a r r yf l a g .

7 6 5 4 3

C

2 1 0

T h eN e g a t i v ef l a gi s c l e a r e d ,a n dt h eC a r r yf l a gi s c o n d i t i o n e db y t h ec o n t e n t so fb i t0 . T h e

Z e r of l a gi s s e ti f t h es p e c i f i e db y t en o wh o l d sz e r o( i nw h i c hc a s ei t m u s tp r e v i o u s l yh a v e

c o n t a i n e d$ 0 0o r $ 0 1 ) .

A p p l i c a t i o n sD i v i d e sa b y t e v a l u eb y t w o( i fD = 0 ) w i t hi t s r e m a i n d e rs h i f t i n g i n t ot h e

C a r r yf l a gp o s i t i o n .C a na l s ob e u s e dt o s h i f tt h eh i g hn i b b l eo f a b y t ei n t o t h el o wn i b b l e .

N O P

N o o p e r a t i o n .

A d d r e s s i n g

N O Pi m p l i e d

O p c o d e

D e c i m a lH e xB y t e s C y c l e s

2 3 4 $ E A

N V— B D I Z C

O p e r a t i o nD o e sn o t h i n ge x c e p ti n c r e m e n tt h eP r o g r a mC o u n t e r .

A p p l i c a t i o n sP r o v i d e sa t w oc y c l e d e l a y .

1 4 5

Page 153: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 153/180

O R A

L o g i c a lO Ro f a s p e c i f i e db y t ew i t ht h ea c c u m u l a t o r .

A d d r e s s i n g

O R Ai m m e d i a t e

O R Az e r op a g e

O R Az e r op a g e ,XO R Aa b s o l u t e

O R Aa b s o l u t e ,XO R Aa b s o l u t e ,YO R A( z e r op a g e ,X )

O R A( z e r op a g e ) ,Y

N V*

O p c o d e

D e c i m a l

9

5

2 1

1 3

2 9

2 5

1

1 7

— B D I

H e x

$ 0 9

$ 0 5

$ 1 5

$ 0 D

$ 1 D$ 1 9

$ 0 1

$ 1 1

Z C*

B y t e s

2

2

2

3

3

3

2

2

C y c l e s

2

3

4

4

4 / 5

4 / 5

6

5

O p e r a t i o nL o g i c a l l yO R st h ec o r r e s p o n d i n gb i t so f t h ea c c u m u l a t o rw i t ht h es p e c i f i e d

v a l u e ,o r c o n t e n t so f a m e m o r yl o c a t i o n .T h er e s u l to f t h eo p e r a t i o ni s s t o r e di n t h e

a c c u m u l a t o r .I f t h er e s u l tl e a v e sb i t7 s e tt h eN e g a t i v ef l a gi s s e t ,o t h e r w i s ei t i s c l e a r e d .

A p p l i c a t i o n sU s e dt o ' f o r c e 'c e r t a i nb i t st o c o n t a i n ao n e .F o re x a m p l e :

O R A# $ 8 0 \ 1 0 0 0 0 0 0 0b i n a r y

w i l le n s u r eb i t 7 i s s e t .

P H A

P u s ht h ea c c u m u l a t o rc o n t e n t so n t ot h e ' t o p 'o f t h es t a c k .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

P H Ai m p l i e d 7 2 $ 4 8

N V — B D I Z C

O p e r a t i o nT h ec o n t e n t so f t h ea c c u m u l a t o ra r ec o p i e di n t o t h ep o s i t i o n i n d i c a t e db yt h e

S t a c kP o i n t e r .T h eS t a c kP o i n t e ri s t h e nd e c r e m e n t e db y o n e .

A p p l i c a t i o n sA l l o w sb y t e so f m e m o r yt o b e s a v e dt e m p o r a r i l y .T h ei n d e xr e g i s t e r sc a n

b e s a v e db y f i r s tt r a n s f e r r i n gt h e mt o t h ea c c u m u l a t o r ;m e m o r yb y t e s a r es a v e db y f i r s t

l o a d i n gt h e mi n t ot h ea c c u m u l a t o r .B y t e sa r er e c o v e r e dw i t hP L A .

1 4 6

Page 154: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 154/180

P H P

P u s ht h eS t a t u sr e g i s t e r ' sc o n t e n t so n t ot h et o po f t h es t a c k .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

P H Pi m p l i e d

N V — B D I Z C

O p e r a t i o n sT h ec o n t e n t so f t h e S t a t u sr e g i s t e ra r e c o p i e di n t ot h ep o s i t i o n i n d i c a t e db y

t h eS t a c kP o i n t e r .T h eS t a c kP o i n t e ri s t h e nd e c r e m e n t e db y o n e .

A p p l i c a t i o n sA l l o w st h ec o n d i t i o n so ft h ef l a g st o b es a v e d ,p e r h a p sp r i o rt o a s u b r o u t i n e

c a l l ,s o t h a tt h es a m ec o n d i t i o n sc a nb e r e s t o r e dw i t hP L Po n r e t u r n .

P L A

P u l lt h e' t o p 'o f t h es t a c ki n t ot h ea c c u m u l a t o r .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

P L Ai m p l i e d 1 0 4 $ 6 8

N V — B D I Z C* *

O p e r a t i o nT h eS t a c kP o i n t e ri s i n c r e m e n t e db y o n e ,a n dt h eb y t ec o n t a i n e da t t h i s

p o s i t i o ni n t h e s t a c ki s c o p i e di n t o t h ea c c u m u l a t o r .I f t h eb y t ei s $ 0 0t h eZ e r of l a gi s s e t .

B i t7 i s c o p i e di n t ot h eN e g a t i v ef l a g .

A p p l i c a t i o n sC o m p l e m e n t st h eo p e r a t i o no f P H At o r e t r i e v ed a t ap r e v i o u s l yp u s h e d

o n t ot h es t a c k .

1 4 7

Page 155: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 155/180

Page 156: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 156/180

R O L

R o t a t ee i t h e rt h ea c c u m u l a t o ro r a m e m o r yb y t el e f tb y o n eb i tw i t ht h eC a r r yf l a g .

A d d r e s s i n g O p c o d e

D e c i m a lH e x

B y t e s C y c l e s

R O La c c u m u l a t o r

R O Lz e r op a g e

R O Lz e r o p a g e ,XR O La b s o l u t e

R O La b s o l u t e ,X

4 2

3 8

5 4

4 6

6 2

$ 2 A

$ 2 6

$ 3 6

$ 2 E

$ 3 E

1

2

2

3

3

2

5

6

6

7

N V — B D I Z C* * *

O p e r a t i o nT h es p e c i f i e db y t ea n dt h ec o n t e n t so f t h eC a r r yf l a ga r er o t a t e dl e f tb y o n e

b i t i n a c i r c u l a rm a n n e r .

r

B i t7 i s r o t a t e di n t ot h eC a r r yf l a g ,w i t ht h ef l a g ' sp r e v i o u s c o n t e n t sm o v i n gi n t ob i t0 . T h e

r e m a i n i n gb i t sa r e s h u f f l e dl e f t .T h eN e g a t i v ef l a gi s s e t i f b i t 6 p r e v i o u s l yh e l d1 ;

c l e a r e do t h e r w i s e .T h eC a r r yf l a gi s c o n d i t i o n e db y b i t 7 , a n di f t h es p e c i f i e db y t en o w

h o l d s z e r ot h eZ e r of l a gi s s e t .

A p p l i c a t i o n sU s e di n c o n j u n c t i o n w i t hA S L ,R O Lc a n b e u s e dt o d o u b l et h e v a l u eo f

m u l t i b y t en u m b e r s ,a s t h eC a r r yb i ti s u s e dt o p r o p a g a t et h eo v e r f l o wf r o mo n eb y t e t o

a n o t h e r .I t m a ya l s ob e u s e db e f o r et e s t i n gt h e N e g a t i v e ,Z e r oa n dC a r r yf l a g st o

d e t e r m i n et h es t a t eo f s p e c i f i cb i t s .

1 4 9

Page 157: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 157/180

R O R

R o t a t ee i t h e rt h ea c c u m u l a t o ro r a m e m o r yb y t er i g h tb y o n eb i tw i t ht h eC a r r yf l a g .

A d d r e s s i n g O p c o d e

D e c i m a lH e x

B y t e s C y c l e s

R O Ra c c u m u l a t o r

R O Rz e r op a g e

R O Rz e r op a g e ,XR O Ra b s o l u t e

R O Ra b s o l u t e ,X

1 0 6

1 0 2

1 1 8

1 1 0

1 2 6

$ 6 A

$ 6 6

$ 7 6

$ 6 E

$ 7 E

1

2

2

3

3

2

5

6

6

7

N V — B D I Z C

O p e r a t i o nT h es p e c i f i e db y t ea n d . t h e c o n t e n t so f t h eC a r r yf l a ga r er o t a t e dr i g h tb y o n e

b i t i na c i r c u l a rm a n n e r .

B i t0 i s r o t a t e di n t ot h eC a r r yf l a gw i t ht h ef l a g ' sp r e v i o u sc o n t e n t sm o v i n gi n t ot h eb i t7

p o s i t i o n .T h er e m a i n i n gb i t sa r es h u f f l e dr i g h t .T h eN e g a t i v ef l a gi s s e ti f t h eC a r r yf l a g

w a ss e tp r e v i o u s l y ;o t h e r w i s ei t i s c l e a r e d .I fb i t0 c o n t a i n e da 1 t h eC a r r yf l a gw i l ln o wa l s o

b e s e t .I f t h es p e c i f i e db y t en o wh o l d s z e r ot h eZ e r of l a gi s s e t .

A p p l i c a t i o n sU s e di n c o n j u n c t i o nw i t hL S R ,R O Rc a nb e u s e dt o h a l v et h ev a l u eo f

m u l t i b y t en u m b e r s .I t m a ya l s ob e u s e db e f o r et e s t i n gt h eN e g a t i v e ,Z e r oa n dC a r r yf l a g s

t o d e t e r m i n et h ec o n t e n t so f s p e c i f i cb i t s .

1 5 0

Page 158: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 158/180

R T I

R e t u r nf r o mi n t e r r u p t .

A d d r e s s i n g O p c o d e

D e c i m a lH e xB y t e s C y c l e s

R T Ii m p l i e d 6 4 $ 4 0

N V — B D I Z C

O p e r a t i o n T h i si n s t r u c t i o ne x p e c t st o f i n d t h r e eb y t e so n t h es t a c k .T h ef i r s tb y t ei s

p u l l e df r o mt h es t a c ka n dp l a c e di n t ot h eS t a t u sr e g i s t e r — t h u s c o n d i t i o n i n ga l lf l a g s .T h e

n e x tt w ob y t e s a r ep l a c e di n t ot h eP r o g r a mC o u n t e r .T h eS t a c kP o i n t e ri s i n c r e m e n t e da s

e a c hb y t ei s p u l l e d .

A p p l i c a t i o n sU s e dt o r e s t o r ec o n t r o lt o a p r o g r a ma f t e ra n i n t e r r u p th a so c c u r r e d /O nd e t e c t i n g t h ei n t e r r u p t ,t h ep r o c e s s o rw i l lh a v ep u s h e dt h eP r o g r a mC o u n t e ra n dS t a t u s

r e g i s t e ro n t ot h e s t a c k .

R T S

R e t u r nf r o ms u b r o u t i n e .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

R T Si m p l i e d 9 6 $ 6 0

N V — B D I Z C

O p e r a t i o nT h et w ob y t e so n t h et o p o ft h es t a c k a r ep u l l e d ,i n c r e m e n t e db y o n e ,a n d

p l a c e di n t o t h eP r o g r a mC o u n t e r .P r o g r a me x e c u t i o nc o n t i n u e sf r o mt h i sa d d r e s s .T h e

S t a c kP o i n t e ri s i n c r e m e n t e db y t w o .

A p p l i c a t i o n sR e t u r n sc o n t r o lf r o ma s u b r o u t i n et o t h e c a l l i n gp r o g r a m .I t s h o u l d

t h e r e f o r eb e t h el a s ti n s t r u c t i o no f a s u b r o u t i n e .

1 5 1

Page 159: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 159/180

S B C

S u b t r a c ts p e c i f i e db y t ef r o mt h ea c c u m u l a t o rw i t hb o r r o w .

A d d r e s s i n g

S B Ci m m e d i a t e

S B Cz e r op a g e

S B Cz e r op a g e ,XS B Ca b s o l u t e

S B Ca b s o l u t e ,XS B Ca b s o l u t e ,YS B C( z e r op a g e ,X )

S B C( z e r op a g e ) ,Y

N V* *

O p c o d e

D e c i m a l

2 3 3

2 2 9

2 4 5

2 3 7

2 5 3

2 4 7

2 2 5

2 4 1

— B D I

H e x

$ E 9

$ E 5

$ F 5

$ E D$ F D$ F 9

$ E 1

$ F 1

Z C* *

B y t e s

2

2

2

3

3

3

2

2

C y c l e s

2

3

4

4

4 / 5

4 / 5

6

5 / 6

O p e r a t i o n S u b t r a c t st h ei m m e d i a t ev a l u e ,o r t h eb y t ec o n t a i n e da t t h es p e c i f i e da d d r e s s ,

f r o mt h ec o n t e n t so f t h ea c c u m u l a t o r .I f t h e v a l u ei s g r e a t e rt h a nt h ec o n t e n t s o ft h e

a c c u m u l a t o ri t w i l l' b o r r o w 'f r o mt h eC a r r yf l a g ,w h i c hs h o u l db es e ta t t h eo n s e t( o n l y )o f

a s u b t r a c t i o n .I f t h eC a r r yf l a gi s c l e a ra f t e rt h es u b t r a c t i o n ,a b o r r o wh a so c c u r r e d .I f t h e

r e s u l ti s $ 0 0t h eZ e r of l a gi s s e t .T h ec o n t e n t so f b i t7 a r ec o p i e di n t ot h ea c c u m u l a t o ra n d

V i s s e t i f a n o v e r f l o wf r o mb i t 6 t o b i t 7 o c c u r r e d .

A p p l i c a t i o n sA l l o w ss i n g l e ,d o u b l ea n dm u l t i b y t en u m b e r st o b e s u b t r a c t e df r o mo n ea n o t h e r .

S E C

S e tt h eC a r r yf l a g( C = 1 ) .

A d d r e s s i n g O p c o d eD e c i m a lH e x

B y t e s C y c l e s

S E Ci m p l i e d 5 6 $ 3 8

N V— B D I Z C1

O p e r a t i o nA o n ei s p l a c e di n t ot h eC a r r yf l a gb i tp o s i t i o n .

A p p l i c a t i o n sS h o u l da l w a y s b e u s e da t t h eo n s e to fs u b t r a c t i o na s t h eC a r r yf l a gi s t a k e ni n t oa c c o u n tb y S B C .

1 5 2

Page 160: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 160/180

S E D

S e t t h eD e c i m a lm o d ef l a g( D = 1 ) .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

S E Di m p l i e d 2 4 8 $ F 8

N V —B D I Z C1

O p e r a t i o nA o n ei s p l a c e di n t o t h eD e c i m a lf l a gp o s i t i o n .

A p p l i c a t i o n sP u t s t h e V I C i n d e c i m a lm o d e ,i n w h i c hB i n a r yC o d e dD e c i m a l

( B C D )a r i t h m e t i ci s p e r f o r m e d .T h eC a r r yf l a gn o wd e n o t e sa c a r r yo f h u n d r e d s ,a s t h e

m a x i m u mv a l u et h a tc a nb e e n c o d e di n a s i n g l eB C Db y t ei s 9 9 .

S E I

S e tt h e I n t e r r u p td i s a b l ef l a g( I = 1 ) .

A d d r e s s i n g O p c o d e

D e c i m a lH e xB y t e s C y c l e s

S E Ii m p l i e d 1 2 0 $ 7 8

N V — B D I Z C1

O p e r a t i o nA o n ei s p l a c e di n t o t h eI n t e r r u p tf l a gp o s i t i o n .

A p p l i c a t i o n sW h e nt h i sf l a gi s s e tn o i n t e r r u p t so c c u r r i n go n t h eI R Ql i n ea r ep r o c e s s e d .

H o w e v e rN M Ii n t e r r u p t s a r ep r o c e s s e d ,a s a r eB R E A K s .

1 5 3

Page 161: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 161/180

S T A

S t o r et h ea c c u m u l a t o r ' sc o n t e n t si n a m e m o r yl o c a t i o n .

A d d r e s s i n g O p c o d e

D e c i m a lH e xB y t e s C y c l e s

S T Az e r op a g e

S T Az e r op a g e ,XS T Aa b s o l u t e

S T Aa b s o l u t e ,XS T Aa b s o l u t e ,YS T A( z e r op a g e ,X )

S T A( z e r o p a g e ) ,Y

1 3 3

1 4 9

1 4 1

1 5 7

1 3 7

1 2 9

1 4 5

$ 8 5

$ 9 5

$ 8 D$ 9 D$ 9 9

$ 8 1

$ 9 1

2

2

3

3

3

2

2

3

4

4

5

5

6

6

N V — B D I Z C

O p e r a t i o n sT h ec o n t e n t so f t h e a c c u m u l a t o ra r e c o p i e di n t o t h es p e c i f i e dm e m o r yl o c a t i o n .

A p p l i c a t i o n sT os a v et h ec o n t e n t so f t h ea c c u m u l a t o r ,o r t o i n i t i a l i z ea r e a so fm e m o r yt o

s p e c i f i cv a l u e s .U s e di n c o n j u n c t i o nw i t hL D A ,b l o c k so fd a t ac a nb e t r a n s f e r r e df r o mo n e

a r e ao f m e m o r yt o a n o t h e r .

S T X

S t o r e t h eX r e g i s t e r ' sc o n t e n t si n m e m o r y .

A d d r e s s i n g

S T Xz e r op a g e

S T Xz e r op a g e ,XS T Xa b s o l u t e

N V

O p c o d e

D e c i m a lH e x

1 3 4 $ 8 6

1 5 0 $ 9 6

1 4 2 $ 8 E

— B D I Z C

B y t e s

2

2

3

C y c l e s

3

4

4

O p e r a t i o nT h ec o n t e n t so ft h eX r e g i s t e ra r ec o p i e di n t o t h e s p e c i f i e dm e m o r yl o c a t i o n .

A p p l i c a t i o n sT os a v et h eX r e g i s t e r ' sc o n t e n t s ,o r t o i n i t i a l i z ea r e a so fm e m o r yt o s p e c i f i cv a l u e s .

1 5 4

Page 162: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 162/180

S T Y

S t o r e t h eY r e g i s t e r ' sc o n t e n t si n m e m o r y .

A d d r e s s i n g

S T Yz e r op a g e

S T Yz e r o p a g e ,XS T Ya b s o l u t e

N V

O p c o d e

D e c i m a lH e x

1 3 2 $ 8 4

1 4 8 $ 9 4

1 4 0 $ 8 C

— B D I Z C

B y t e s

2

2

3

C y c l e s

3

4

4

O p e r a t i o n sT h ec o n t e n t s o ft h eY r e g i s t e ra r ec o p i e di n t ot h es p e c i f i e dm e m o r yl o c a t i o n .

A p p l i c a t i o n sT os a v et h eY r e g i s t e r ' sc o n t e n t s ,o r t o i n i t i a l i z ea r e a s o fm e m o r yt o s p e c i f i c

v a l u e s .

T A X

T r a n s f e rt h ea c c u m u l a t o r ' sc o n t e n t si n t o t h eX r e g i s t e r .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

T A Xi m p l i e d 1 7 0 $ A A 1

N V — B D I Z C* *

O p e r a t i o nT h ec o n t e n t s o ft h ea c c u m u l a t o ra r ec o p i e di n t ot h e X r e g i s t e r .I f t h e Xr e g i s t e rn o wh o l d sz e r o ,t h eZ e r of l a gi s s e t .B i t7 i s c o p i e di n t ot h eN e g a t i v ef l a g .

A p p l i c a t i o n sA l l o w st h ea c c u m u l a t o r ' sv a l u e st o b e s a v e dt e m p o r a r i l y ,o r p e r h a p su s e d

t o s e e d t h eX r e g i s t e ra s a l o o pc o u n t e r .O f t e nu s e da f t e rP L At o r e s t o r et h eX r e g i s t e r ' s

c o n t e n t s p r e v i o u s l yp u s h e d o n t ot h es t a c k .

1 5 5

Page 163: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 163/180

T A Y

T r a n s f e r a c c u m u l a t o r ' sc o n t e n t si n t o t h eY r e g i s t e r .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

T A Yi m p l i e d 1 6 8 $ A 8

V — B D I Z C

O p e r a t i o nT h ec o n t e n t so f t h e a c c u m u l a t o ra r ec o p i e di n t o t h eY r e g i s t e r . I ft h eYr e g i s t e rn o wh o l d s z e r ot h eZ e r of l a gi s s e t .B i t7 i s c o p i e di n t ot h eN e g a t i v ef l a g .

A p p l i c a t i o n sA l l o w st h ea c c u m u l a t o r ' sv a l u e st o b e s a v e dt e m p o r a r i l y ,o r p e r h a p su s e d

t o s e e d t h eY r e g i s t e ra s a j o o pc o u n t e r .O f t e nu s e da f t e rP L At o r e s t o r e t h eY r e g i s t e r ' s

c o n t e n t s p r e v i o u s l yp u s h e do n t ot h es t a c k .

T S X

T r a n s f e rt h eS t a c kP o i n t e r ' sc o n t e n t si n t ot h eX r e g i s t e r .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

T S Xi m p l i e d 1 8 6$ B A

N V —B D I Z C

O p e r a t i o nT h ec o n t e n t so f t h eS t a c kP o i n t e ra r ec o p i e di n t o t h eX r e g i s t e r .I f X n o w

h o l d sz e r o ,t h eZ e r of l a gi s s e t .B i t7 i s c o p i e di n t ot h eN e g a t i v ef l a g .

A p p l i c a t i o n sT o c a l c u l a t et h ea m o u n to f s p a c el e f to n t h e s t a c k ,o r t o s a v ei t sc u r r e n t

p o s i t i o nw h i l et h es t a c k c o n t e n t s a r ec h e c k e d .

1 5 6

Page 164: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 164/180

T X A

T r a n s f e rt h eX R e g i s t e r ' sc o n t e n t si n t o t h ea c c u m u l a t o r .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

T X Ai m p l i e d 1 3 8 $ 8 A

N V — B D I Z C

O p e r a t i o nT h ec o n t e n t s o ft h e X r e g i s t e ra r e c o p i e di n t ot h e a c c u m u l a t o r .I f t h e

a c c u m u l a t o rn o wh o l d sz e r ot h eZ e r of l a gi s s e t .B i t7 i s c o p i e di n t ot h eN e g a t i v ef l a g .

A p p l i c a t i o n sA l l o w st h e X r e g i s t e r ' sc o n t e n t st o b e m a n i p u l a t e db y l o g i c a l * o ra r i t h m e t i ci n s t r u c t i o n s .F o l l o w e db y a P H Ai t a l l o w st h eX r e g i s t e r ' sv a l u et o b e s a v e do n

t h e s t a c k .

T X S

T r a n s f e rt h eX R e g i s t e r ' sc o n t e n t si n t ot h e S t a c kP o i n t e r .

A d d r e s s i n g O p c o d e

D e c i m a lH e xB y t e s C y c l e s

T X Si m p l i e d 1 5 4 $ 9 A

N V — B D I Z C

O p e r a t i o nT h ec o n t e n t s o ft h eX r e g i s t e ra r ec o p i e di n t ot h e S t a c kP o i n t e r .

A p p l i c a t i o n sA l l o w st h ec o n t e n t so f t h e S t a c k P o i n t e rt o b e s e t o r r e s e tt o a s p e c i f i c

v a l u e .F o re x a m p l e ,o n ' p o w e r - u p 'o r B R E A K ,t h eK e r n a le x e c u t e s :

L D X# $ F F

T X S

t o ' c l e a r 't h e s t a c ka n dr e s e tt h eS t a c kP o i n t e r .

1 5 7

Page 165: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 165/180

T Y A

T r a n s f e rt h eY r e g i s t e r ' sc o n t e n t si n t ot h ea c c u m u l a t o r .

A d d r e s s i n g O p c o d e B y t e s C y c l e s

D e c i m a lH e x

T Y Ai m p l i e d 1 5 2 $ 9 8

N V — B D I Z C

O p e r a t i o nT h ec o n t e n t so f t h e Y r e g i s t e ra r e c o p i e di n t ot h e a c c u m u l a t o r .I f t h e

a c c u m u l a t o rn o wh o l d sz e r ot h eZ e r of l a gi s s e t .B i t7 i s c o p i e di n t ot h eN e g a t i v ef l a g .

A p p l i c a t i o n sA l l o w st h eY r e g i s t e r ' sc o n t e n t st o b e m a n i p u l a t e db y l o g i c a lo r a r i t h m e t i c

i n s t r u c t i o n s .W h e nf o l l o w e db ya P H A ,i t a l l o w st h eY r e g i s t e r ' sv a l u et o b e s a v e do n t h e

s t a c k .

1 5 8

Page 166: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 166/180

Page 167: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 167/180

t o

h

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

~

1 1 1

*

1

*

1

i t

1

^

1

= *

1

I

1

1

O N 1 1 1 1 1 1 1 1 1 1

O N 1 1 1 1 1 1 1 1 1 1

t o 1 1 O

NO N 1 1 1 1

t o 1 1 O

NO N 1 1 1 1

4 ̂ 1 1 1 1 1 1 1 1 1 1

4 ̂ 1 1 1 1 1 1 1 1 1 1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

"

1 1 1

*

1

*

1

^

1

^

1

-

1

^

1

1

1

t o 1 1

O N

O N 1 1 1 - 1

1 1 I O 1 1 1 1

1 1 t o 1 * 1 1 1

1 1 t o * * O

n 1

1 1 1 1 1 O N 1 1 1 1 1

1 1 . 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

t o 1 1 1 1 1 1 1 1 1 1

1

1

1

1

1

K ,

U .

* ,

O n

4 * >

O n

4 ̂

1

*

1

-

1

1

1 1 1 1 1 1 1 1 1 1

t o 1 1 1 1 1 1 1 1 1 1

1 1 1O N

O N 1 1 1 1

1 1t o 1 - 1 1 1 1 1

1 1 t o 1 1 1 1 1 1

I m p l i e d

R e l a t i v e

I m m e d i a t e

Z e r op a g e

Z e r op a g e ,X

A b s o l u t e

A b s o l u t e ,X

A b s o l u t e ,Y

( Z e r op a g e ,X )

( Z e r op a g e ,Y )

( I n d i r e c t )

Page 168: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 168/180

S T A

S T X

S T Y

T A X

T A Y

T S X

T X A

T X S

T Y A

I m p l i e d

R e l a t i v e

5 40 3

18 .

J < 3 f l <

D . 3 3 3

2 § 1 1

X

A A 1

2 —

2 —

2 —

2 —

2 —

2 —

— 3 4

— 3 4

— 3 4

4 5 5 6 6

4 _ _ _ _ _ _

4 _ _ _ _ _

♦ A d d1 c y c l ei f p a g eb o u n d a r yc r o s s e d .

* * A d d1 i f b r a n c ho c c u r st o s a m ep a g eo r a d d2 i f b r a n c ho c c u r st o a d i f f e r e n tp a g e .

1 6 1

Page 169: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 169/180

5 V I C2 0M e m o r yM a p

K e r n a lR O M

B A S I CR O M

E x p a n s i o nR O M

V I Cc h i p / c o l o u rR A M

I / OR A M

C h a r a c t e rR O M

E x p a n s i o nR A M / R O M

B l o c k3

E x p a n s i o nR A M /R O MB l o c k2

B x p a n s i o nR A M / R O M

B l o c k1

S c r e e nR A M

U s e rR A Mf o rB A S I CP r o g r a m s

E x p a n s i o nR A M

V e c t o r s

I n p u tB u f f e r s

S t a c k

Z e r oP a g e

$ F F F F

$ E 0 0 0

$ C 0 0 0

$ A 0 0 0

$ 9 0 0 0

$ 8 0 0 0

$ 4 0 0 0

$ 2 0 0 0

$ 1 E 0 0

$ 4 0 0

$ 3 0 0

$ 2 0 0

$ 1 0 0

$ 0 0

1 6 2

Page 170: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 170/180

M e m o r ye x p a n s i o n

W h e na d d i t i o n a lm e m o r yi s a d d e dt o B l o c k1 , a n dB l o c k2 a n d3 t h eK e r n a lm o v e st h e

f o l l o w i n ga r e a so f m e m o r yf o rB A S I C :

M e m o r y O l dA d d r e s s N e wA d d r e s s

S c r e e nM e m o r y$ 1 E 0 0 —$ 1 F F F( 7 6 8 0 - 8 1 9 1 )$ 1 0 0 0— $ 1I F F ( 4 0 9 6 - 4 6 0 7 )

C o l o u rM e m o r y$ 9 6 0 0 —$ 9 7 F F( 3 8 4 0 0 - 3 8 9 1 1 )$ 9 4 0 0 —$ 9 5 F F( 3 7 8 8 8 - 3 8 3 9 9 )B a s i cP r o g r a m $ 1 0 0 0 —$ 1 D F F ( 4 0 9 6 - 7 6 7 9 )$ 1 2 0 0 ( 4 6 0 8 - )

A r e a

1 6 3

Page 171: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 171/180

6 B r a n c hC a l c u l a t o r s

T h eb r a n c hc a l c u l a t o r s a r eu s e dt o g i v eb r a n c hv a l u e si n h e x .F i r s t ,c o u n tt h en u m b e ro f

b y t e sy o un e e dt o b r a n c h .T h e nl o c a t et h i sn u m b e ri n t h e c e n t r eo f t h ea p p r o p r i a t et a b l e ,

a n df i n a l l y ,r e a do f ft h eh i g ha n dl o wh e xn i b b l e sf r o mt h es i d ec o l u m n a n dt o pr o w

r e s p e c t i v e l y .

E x a m p l e F o ra b a c k w a r db r a n c ho f 1 6 b y t e s :

L o c a t e1 6 i n t h ec e n t r eo f T a b l eA 6 . 1( b o t t o mr o w ) ,t h e nr e a do f fh i g hn i b b l e( # F ) a n dl o w

n i b b l e( # 0 )t o g i v ed i s p l a c e m e n tv a l u e( # F 0 ) .

T a b l eA 6 . 1B a c k w a r db r a n c hc a l c u l a t o r

\ l s d

M S D ^

8

9

AB

CDEF

0

1 2 8

1 1 2

9 6

8 0

6 4

4 8

3 2

1 6

1

1 2 7

1 1 1

9 5

7 9

6 3

4 7

3 1

1 5

2

1 2 6

1 1 0

9 4

7 8

6 2

4 6

3 0

1 4

3

1 2 5

1 0 9

9 3

7 7

6 1

4 5

2 9

1 3

4 .

1 2 4

1 0 8

9 2

7 6

6 0

4 4

2 8

1 2

5

1 2 3

1 0 7

9 1

7 5

5 9

4 3

2 7

1 1

6

1 2 2

1 0 6

9 0

7 4

5 8

4 2

2 6

1 0

7

1 2 1

1 0 5

8 9

7 3

5 7

4 1

2 5

9

8

1 2 0

1 0 4

8 8

7 2

5 6

4 0

2 4

8

9

1 1 9

1 0 3

8 7

7 1

5 5

3 9

2 3

7

A

1 1 8

1 0 2

8 6

7 0

5 4

3 8

2 2

6

B

1 1 7

1 0 1

8 5

6 9

5 3

3 7

2 1

5

C

1 1 6

1 0 0

8 4

6 8

5 2

3 6

2 0

4

D

1 1 5

9 9

8 3

6 7

5 1

3 5

1 9

3

E

1 1 4

9 8

8 2

6 6

5 0

3 4

1 8

2

F

1 1 3

9 7

8 1

6 5

4 9

3 3

1 7

1

T a b l eA 6 . 2F o r w a r db r a n c hc a l c u l a t o r

M S D V

0

1

2

3

45

6

7

0

0

1 6

3 2

4 8

6 48 0

9 6

1 1 2

1

1

1 7

3 3

4 9

6 58 1

9 7

1 1 3

2

2

1 8

3 4

5 0

6 68 2

9 8

1 1 4

3

3

1 9

3 5

5 1

6 78 3

9 9

1 1 5

4

4

2 0

3 6

5 2

6 88 4

1 0 0

1 1 6

5

5

2 1

3 7

5 3

6 98 5

1 0 1

1 1 7

6

6

2 2

3 8

5 4

7 08 6

1 0 2

1 1 8

7

7

2 3

3 9

5 5

7 18 7

1 0 3

1 1 9

8

8

2 4

4 0

5 6

7 28 8

1 0 4

1 2 0

9

9

2 5

4 1

5 7

7 38 9

1 0 5

1 2 1

A

1 0

2 6

4 2

5 8

7 49 0

1 0 6

1 2 2

B

1 1

2 7

4 3

5 9

7 59 1

1 0 7

1 2 3

C

1 2

2 8

4 4

6 0

7 69 2

1 0 8

1 2 4

D

1 3

2 9

4 5

6 1

7 79 3

1 0 9

1 2 5

E

1 4

3 0

4 6

6 2

7 89 4

1 1 0

1 2 6

F

1 5

3 1

4 7

6 3

7 99 5

1 1 1

1 2 7

1 6 4

Page 172: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 172/180

7 6 5 0 2O p c o d e s

A l ln u m b e r sa r e h e x a d e c i m a l .

0 0 B R Ki m p l i e d

0 1 O RA ( z e r op a g e ,X )

0 2 F u t u r e e x p a n s i o n

0 3 F u t u r ee x p a n s i o n

0 4 F u t u r e e x p a n s i o n

0 5 O R Az e r op a g e

0 6 A S Lz e r op a g e

0 7 F u t u r e e x p a n s i o n

0 8 P H Pi m p l i e d

0 9 O R Ai m m e d i a t e

0 A A S La c c u m u l a t o r

0 B F u t u r ee x p a n s i o n

0 C F u t u r e e x p a n s i o n

0 D O R Aa b s o l u t e

0 E A S La b s o l u t e

0 F F u t u r e e x p a n s i o n

1 0 B P Lr e l a t i v e

1 1 O R A( z e r op a g e ) ,Y

1 2 F u t u r ee x p a n s i o n

1 3 F u t u r e e x p a n s i o n

1 4 F u t u r ee x p a n s i o n

1 5 O R Az e r op a g e ,X

1 6 A S Lz e r o p a g e ,X

1 7 F u t u r e e x p a n s i o n

1 8 C L Ci m p l i e d

1 9 O R Aa b s o l u t e ,Y

1 A F u t u r ee x p a n s i o n

I B F u t u r e e x p a n s i o n

1 C F u t u r e e x p a n s i o n

I D O R Aa b s o l u t e ,X

I E A S La b s o l u t e ,X

I F F u t u r ee x p a n s i o n

2 0 J S Ra b s o l u t e

2 1 A N D( z e r op a g e ,X )

2 2 F u t u r ee x p a n s i o n

2 3 F u t u r e e x p a n s i o n

2 4 B I Tz e r op a g e

2 5 A N Dz e r op a g e

2 6 R O Lz e r op a g e

2 7 F u t u r e e x p a n s i o n

2 8 P L Pi m p l i e d

2 9 A N D/ / i m m e d i a t e

2 A R O La c c u m u l a t o r

2 B F u t u r e e x p a n s i o n

2 C B I Ta b s o l u t e

2 D A N Da b s o l u t e

2 E R O La b s o l u t e

2 F F u t u r e e x p a n s i o n

3 0 B M Ir e l a t i v e

3 1 A N D( z e r op a g e ) ,Y

3 2 F u t u r e e x p a n s i o n

3 3 F u t u r e e x p a n s i o n

3 4 F u t u r e e x p a n s i o n

3 5 A N Dz e r o p a g e ,X

3 6 R O Lz e r op a g e ,X

3 7 F u t u r ee x p a n s i o n.

1 6 5

Page 173: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 173/180

3 8 S E Ci m p l i e d

3 9 A N Da b s o l u t e ,Y

3 A F u t u r e e x p a n s i o n

3 B F u t u r e e x p a n s i o n

3 C F u t u r ee x p a n s i o n

3 D A N Da b s o l u t e ,X

3 E R O La b s o l u t e ,X

3 F F u t u r e e x p a n s i o n

4 0 R T Ii m p l i e d

4 1 E O R ( z e r op a g e ,X )

4 2 F u t u r e e x p a n s i o n

4 3 F u t u r e e x p a n s i o n

4 4 F u t u r e e x p a n s i o n

4 5 E O Rz e r op a g e

4 6 L S Rz e r op a g e

4 7 F u t u r ee x p a n s i o n

4 8 P H Ai m p l i e d

4 9 E O R/ / i m m e d i a t e

4 A L S Ra c c u m u l a t o r

4 B F u t u r e e x p a n s i o n

4 C J M Pa b s o l u t e

4 D E O Ra b s o l u t e

4 E L S Ra b s o l u t e

4 F F u t u r e e x p a n s i o n

5 0 B V Cr e l a t i v e

5 1 E O R( z e r o p a g e ) ,Y

5 2 F u t u r e e x p a n s i o n

5 3 F u t u r e e x p a n s i o n

5 4 F u t u r e e x p a n s i o n

5 5 E O Rz e r op a g e ,X

5 6 L S Rz e r op a g e ,X

5 7 F u t u r e e x p a n s i o n

5 8 C L Ii m p l i e d

5 9 E O Ra b s o l u t e ,Y

5 A F u t u r e e x p a n s i o n

5 B F u t u r e e x p a n s i o n

5 C F u t u r e e x p a n s i o n

5 D E O Ra b s o l u t e ,X

5 E L S Ra b s o l u t e ,X

5 F F u t u r e e x p a n s i o n

6 0 R T Si m p l i e d

6 1 A D C( z e r op a g e ,X )

6 2 F u t u r e e x p a n s i o n

6 3 F u t u r ee x p a n s i o n

6 4 F u t u r ee x p a n s i o n

6 5 A D Cz e r op a g e

6 6 R O Rz e r op a g e

6 7 F u t u r ee x p a n s i o n

6 8 P L Ai m p l i e d

6 9 A D C/ / i m m e d i a t e

6 A R O Ra c c u m u l a t o r

6 B F u t u r ee x p a n s i o n

6 C J M P( i n d i r e c t )

6 D A D Ca b s o l u t e

6 E R O Ra b s o l u t e

6 F F u t u r e e x p a n s i o n

7 0 B V Sr e l a t i v e

7 1 A D C( z e r o p a g e ) ,Y

7 2 F u t u r e e x p a n s i o n

7 3 F u t u r ee x p a n s i o n

7 4 F u t u r e e x p a n s i o n

7 5 A D Cz e r o p a g e ,X

7 6 R O Rz e r op a g e ,X

7 7 F u t u r e e x p a n s i o n

7 8 S E Ii m p l i e d

7 9 A D Ca b s o l u t e ,Y

7 A F u t u r e e x p a n s i o n

7 B F u t u r e e x p a n s i o n

7 C F u t u r e e x p a n s i o n

7 D A D Ca b s o l u t e ,X

7 E R O Ra b s o l u t e ,X

7 F F u t u r e e x p a n s i o n

8 0 F u t u r ee x p a n s i o n

8 1 S T A( z e r op a g e ,X )

8 2 F u t u r e e x p a n s i o n

8 3 F u t u r e e x p a n s i o n

8 4 S T Yz e r op a g e

8 5 S T Az e r op a g e

8 6 S T Xz e r op a g e

8 7 F u t u r e e x p a n s i o n

1 6 6

Page 174: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 174/180

8 8 D E Yi m p l i e d

8 9 F u t u r e e x p a n s i o n

8 A T X Ai m p l i e d

8 B F u t u r e e x p a n s i o n

8 C S T Ya b s o l u t e

8 D S T Aa b s o l u t e

8 E S T Xa b s o l u t e

8 F F u t u r e e x p a n s i o n

9 0 B C Cr e l a t i v e

9 1 S T A( z e r op a g e ) ,Y

9 2 F u t u r e e x p a n s i o n

9 3 F u t u r e e x p a n s i o n

9 4 S T Yz e r op a g e ,X9 5 S T Az e r op a g e ,X

9 6 S T Xz e r op a g e ,Y

9 7 F u t u r e e x p a n s i o n

9 8 T Y Ai m p l i e d

9 9 S T Aa b s o l u t e ,Y

9 A T X Si m p l i e d

9 B F u t u r e e x p a n s i o n

9 C F u t u r e e x p a n s i o n

9 D S T Aa b s o l u t e ,X

9 E F u t u r e e x p a n s i o n

9 F F u t u r e e x p a n s i o n

A 0 L D Y/ / i m m e d i a t e

A l L D A( z e r op a g e ,X )

A 2 L D X/ / i m m e d i a t e

A 3 F u t u r e e x p a n s i o n

A 4 L D Yz e r op a g e

A 5 L D Az e r op a g e

A 6 L D Xz e r op a g e

A 7 F u t u r e e x p a n s i o n

A 8 T A Yi m p l i e d

A 9 L D A/ / i m m e d i a t e

A A T A Xi m p l i e d

A B F u t u r e e x p a n s i o n

A C L D Ya b s o l u t e

A D L D Aa b s o l u t e

A E L D Xa b s o l u t e

A F F u t u r e e x p a n s i o n

B 0 B C Sr e l a t i v e

B l L D A( z e r op a g e ) ,Y

B 2 F u t u r e e x p a n s i o n

B 3 F u t u r ee x p a n s i o n

B 4 L D Yz e r o p a g e ,X

B 5 L D Az e r o p a g e ,X

B 6 L D Xz e r o p a g e ,Y

B 7 F u t u r ee x p a n s i o n

B 8 C L Vi m p l i e d

B 9 L D Aa b s o l u t e ,Y

B A T S Xi m p l i e d

B B F u t u r ee x p a n s i o n

B C L D Ya b s o l u t e ,XB D L D Aa b s o l u t e ,X

B E L D Xa b s o l u t e ,Y

B F F u t u r e e x p a n s i o n

C 0 C P Y/ / i m m e d i a t e

C l C M P( z e r op a g e ,X )

C 2 F u t u r ee x p a n s i o n

C 3 F u t u r ee x p a n s i o n

C 4 C P Yz e r op a g e

C 5 C M Pz e r op a g e

C 6 D E Cz e r op a g e

C 7 F u t u r e e x p a n s i o n

C 8 I N Yi m p l i e d

C 9 C M P/ / i m m e d i a t e

C A D E Xi m p l i e d

C B F u t u r ee x p a n s i o n

C C C P Ya b s o l u t e

C D C M Pa b s o l u t e

C E D E Ca b s o l u t e

C F F u t u r ee x p a n s i o n

D 0 B N Er e l a t i v e

D l C M P( z e r o p a g e ) ,Y

D 2 F u t u r e e x p a n s i o n

D 3 F u t u r e e x p a n s i o n

D 4 F u t u r ee x p a n s i o n

D 5 C M Pz e r o p a g e ,X

D 6 D E Cz e r op a g e ,X

D 7 F u t u r ee x p a n s i o n

1 6 7

Page 175: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 175/180

Page 176: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 176/180

Page 177: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 177/180

O R D E RF O R M

I s h o u l dl i k et o o r d e rt h ef o l l o w i n gS h i v at i t l e s :

Q t y T i t l e I S B N P r i c e

E A S YP R O G R A M M I N GF O R T H EC O M M O D O R E6 4 0 9 0 6 8 1 26 4 X £ 6 . 9 5

_ C O M M O D O R E6 4 M A C H I N EC O D E 1 8 5 0 1 40 2 51 £ 6 . 9 5

C O M M O D O R E6 4 A S S E M B L YL A N G U A G E 0 9 0 6 8 1 2 9 68 £ 7 . 9 5

T H EC O M M O D O R E6 4 M U S I CB O O K 1 8 5 0 1 4 0 1 97 £ 5 . 9 5

G A T E W A YT O C O M P U T I N GB O O K1 : C O M M M O D O R E6 4 1 8 5 0 1 4 0 1 70 £ 4 . 9 5

_ G A T E W A YT O C O M P U T I N GB O O K2 : C O M M O D O R E6 4 1 8 5 0 1 4 0 3 59 £ 4 . 9 5

G A T E W A YT OC O M P U T I N GB O O K3 : C O M M O D O R E6 4 1 8 5 0 1 4 0 3 91 £ 4 . 9 5

C O M P U T E R SI N A N U T S H E L L 1 8 5 0 1 4 0 1 89 £ 4 . 9 5

_ B R A I N T E A S E R SF O RB A S I CC O M P U T E R S 0 9 0 6 8 1 23 6 4 £ 4 . 9 5

_ P R O G R A M M I N GF O RR E A LB E G I N N E R S :S T A G E1 0 9 0 6 8 1 23 7 2 £ 3 . 9 5

_ P R O G R A M M I N GF O RR E A LB E G I N N E R S :S T A G E2 0 9 0 6 8 1 25 9 3 £ 3 . 9 5

P l e a s es e n dm e a f u l lc a t a l o g u eo f c o m p u t e r b o o k sa n ds o f t w a r e :

N a m e

A d d r e s s .

T h i sf o r ms h o u l d b et a k e nt o y o u rl o c a lb o o k s h o po r c o m p u t e rs t o r e .I n c a s eo f

d i f f i c u l t y ,w r i t et o S h i v aP u b l i s h i n gL t d , F r e e p o s t ,6 4 W e l s hR o w ,N a n t w i c h ,

C h e s h i r eC W 55 B R ,e n c l o s i n ga c h e q u ef o r£

F o rp a y m e n t ,b y c r e d i tc a r d :A c c e s s / B a r c l a y c a r d / V i s a / A m e r i cE x p r e s s

C a r dN o S i g n a t u r e

Page 178: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 178/180

Page 179: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 179/180

Page 180: VIC-20 Machine Code

8/6/2019 VIC-20 Machine Code

http://slidepdf.com/reader/full/vic-20-machine-code 180/180