Machine Language for the Absolute Beginner

206
8/6/2019 Machine Language for the Absolute Beginner http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 1/206

Transcript of Machine Language for the Absolute Beginner

Page 1: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 1/206

Page 2: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 2/206

C o m m o d o r e 6 M a c h i n e L a n g u a g ef o t h A b s o l u t e B e g i n n e r .

Page 3: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 3/206

Page 4: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 4/206

C o m m o d o r e 6 4M a c h i n e L a n g u a g ef o t h A b s o l u t e B e g i n n e r .

D a n n y D a v i s

M e l b o u r n e H o u s e

Page 5: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 5/206

P u b l i s h e d i t h U n i t e d K i n g d o m b y M e l b o u r n e H o u s e ( P u b l i s h e r s ) L t d . ,M e l b o u r n e H o u s eC h u r c h Y a r d ,T r i n g , H e r t f o r d s h i r e H P 2 3 5 L U .I S B N 0 8 6 1 6 1 1 4

P u b l i s h e d i A u s t r a l i a b y M e l b o u r n e H o u s e ( A u s t r a l i a ) P t y . L t d . ,7 P a r k S t r e e t ,S o u t h M e l b o u r n e , V i c t o r i a , 3 2 0 5 .P u b l i s h e d i t h U n i t e d S t a t e s o A m e r i c a b y M e l b o u r n e H o u s e S o f t w a r e I n c . ,3 4 R e e d w o o d D r i v e ,N a s h v i l l e T 3 7 2 1 7 .

1 9 8 4 b B e a m S o f t w a r e .

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

P r i n t e d i H o n g K o n g b C o l o r c r a f t L t d .1 s t E d i t i o n

D C B A 9 8 7 6 5 4 3 2 1 0

Page 6: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 6/206

C o n t e n t sF o r e w o r dC h a p t e rI n t r o d u c t i o n t M a c h i n e L a n g u a g e 3U s i n g m a c h i n e l a n g u a g e p r o g r a mM e m o r y a d d r e s s i n gS u m m a r yC h a p t e rB a s i c s o M a c h i n e L a n g u a g e P r o g r a m m i n gT h r e g i s t e r sA d d r e s s i n g m o d e sA s s e m b l y l a n g u a g e 1 S c r e e n m e m o r y 1 S u m m a r y 1 C h a p t e rI n t r o d u c t i o n t H e x a d e c i m a l 1 7B i n a r y 1 W h h e x a d e c i m a l ? 1 A b s o l u t e a d d r e s s i n g 2 C o n v e r t i n g h e x a d e c i m a l t d e c i m a l 2 S u m m a r y 2 C h a p t e rI n t r o d u c t i o n t A L P A 2 S u m m a r y 3 C h a p t e rM i c r o p r o c e s s o r E q u i p m e n t 3 S t o r i n g n u m b e r s 3 A d d i n g n u m b e r s 3 T w b y t e a d d i t i o n 3 S u b t r a c t i n g n u m b e r s 3 S u m m a r y 3 C h a p t e rP r o g r a m C o n t r o l 3 S p r i t e s 3 L o o p i n g u s i n g J M 4 I n f i n i t e l o o p s 4 C o m p a r i n g n u m b e r s 4 R e l a t i v e a d d r e s s i n g 4 S u m m a r y 4 C h a p t e rC o u n t i n g , L o o p i n g a n P o i n t i n g 5 1C o u n t i n g t c o n t r o l l o o p 5

a n r e g i s t e r s 5 U s i n g t h r e g i s t e r a c o u n t e r 5

Page 7: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 7/206

U s i n g t h r e g i s t e r a a i n d e x 5 S u m m a r y 5 C h a p t e rU s i n g I n f o r m a t i o n S t o r e d i T a b l e s 6 D i s p l a y i n g c h a r a c t e r s a s g r a p h i c s 6 G r a p h i c s m e m o r y 6 R e g i s t e r t r a n s f e r i n s t r u c t i o n s 6 S u m m a r y 7 C h a p t e rP r o c e s s o r S t a t u s C o d e s 7 B C r e p r e s e n t a t i o n 7 S u m m a r y 7 C h a p t e r 1 L o g i c a l O p e r a t o r s a n B i M a n i p u l a t o r s 7 C h a n g i n g b i t s w i t h i n m e m o r y 7 R o t a t i n g b i t s w i t h i n b y t e 8 C l e v e r m u l t i p l i c a t i o n 8 S u m m a r y 8 C h a p t e r 1 D e t a i l s o P r o g r a m C o n t r o l 8 P r o g r a m c o u n t e r 8 S t a c k c o n t r o l s t r u c t u r e 8 S u b r o u t i n e s a n t h s t a c k 9 S u m m a r y 9 C h a p t e r 1 D e a l i n g w i t h t h O p e r a t i n g S y s t e m 9 T h k e r n a l 9 C L 9 R T 9 S u m m a r y 9 A p p e n d i c e s 1 0 A p p e n d i x 6 5 1 0 i n s t r u c t i o n c o d e s 1 0 3A p p e n d i x 6 5 1 0 m i c r o p r o c e s s o r r e g i s t e r s 1 1 A p p e n d i x H e x a d e c i m a l t d e c i m a l c o n v e r s i o n t a b l e 1 1 A p p e n d i x R e l a t i v e b r a n c h a n t w o s c o m p l e m e n t n u m b e r i n g t a b l e s . . 1 1 A p p e n d i x 5 C o m m o d o r e 6 4 m e m o r y m a 1 1 A p p e n d i x T h s c r e e n c h i p 1 2 A p p e n d i x T h e s o u n d c h i p 1 2 A p p e n d i x C I i n t e r f a c e c h i p 1 3 A p p e n d i x M e m o r y u s a g e d i r e c t o r y 1 4 A p p e n d i x 1 0 O p e r a t i n g s y s t e m r o u t i n e s 1 4 A p p e n d i x 1 T a b l e o s c r e e n c o d e s 1 6 5A p p e n d i x 1 2 C u r r e n t k e p r e s s e d 1 6 A p p e n d i x 1 A L P A 1 6 A p p e n d i x 1 S c r e e n c o d e s 1 8 G l o s s a r y 1 8

Page 8: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 8/206

F O R E W O R DS o y o u ' v e h a y o u r C 6 f o w h i l e a n y o u ' v e b e e n u s i n g B A S I C t w r i t e p r o g r a m s t d s i m p l e t a s k s . Y o u ' v e s l o w l y b e e n e x p l o r i n g a n e x p e r i m e n t i n g w i t h y o u r n e c o m p u t e r .

M a y b e y o u ' v e u s e d y o u r c o m p u t e r t r u s o m e p r o f e s s i o n a l l y w r i t t e ns o f t w a r e : w o r d p r o c e s s i n g , a c c o u n t i n g s y s t e m s , e d u c a t i o n a l s o f t w a r eo g a m e s .

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

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

M a c h i n e l a n g u a g e i m u s t f o t h r e a l l y s e r i o u s p r o g r a m m e r . M o s tg a m e s , u s e f u l u t i l i t i e s a n i n t e r f a c e p r o g r a m s a r w r i t t e n i m a c h i n el a n g u a g e .

T h i s b o o k a t t e m p t s t g i v e y o a i n t r o d u c t i o n t t h w o r l d o m a c h i n el a n g u a g e , t h e o t h e r s i d e o y o u r C o m m o d o r e 6 4

Y o w i l l b l e t h r o u g h t h m i c r o p r o c e s s o r ' s i n s t r u c t i o n s e s l o w l y a f i r s t , p r a c t i s i n g e a c h i n s t r u c t i o n l e a r n e d u s i n g t h m o n i t o r / p r o g r a me n t r y p r o g r a m A L P A ( A s s e m b l y L a n g u a g e P r o g r a m m i n g A i d ) .

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

Y o a r e n c o u r a g e d t h r o u g h o u t t h b o o k t c h e c k t h a t t h c o m p u t e r ' s o u t p u t i w h a t y o u w o u l d l o g i c a l l y e x p e c t i t b e K e e pp e a n p a p e r c l o s e a h a n d t c o p y o p a p e r w h a t t h m i c r o p r o c e s s o ri d o i n g t g e i t a n s w e r s a n t s e i y o u r a n s w e r s a g r e e .

A p p e n d i c e s w i t h e x p l a n a t i o n s a r s u p p l i e d a t h b a c k o t h b o o ka n y o w i l l o f t e n b r e f e r r e d t t h e s e i t h t e x t o t h b o o k . T h r e s t a r p r o v i d e d t g i v e y o s o m e i n f o r m a t i o n t c o n t i n u e o a f t e r y o u h a v ef i n i s h e d w o r k i n g y o u r w a t h r o u g h t h i s b o o k . l i s t o c o m m o n l y u s e dt e r m s i a l s o p r o v i d e d i y o b e c o m e c o n f u s e d b t h t e r m s u s e d i t h b o o k .

T h a u t h o r g r a t e f u l l y a c k n o w l e d g e s t h a s s i s t a n c e o P a u l R o s h a ma n C a r o l y n S p a r k e i t h p r e p a r a t i o n o t h b o o k .

Page 9: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 9/206

Page 10: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 10/206

C h a p t e rI n t r o d u c t i o n t M a c h i n e L a n g u a g e

O n a d v a n t a g e o m a c h i n e l a n g u a g e ( M . L . ) i t h a t i a l l o w s t h ep r o g r a m m e r t p e r f o r m s e v e r a l f u n c t i o n s t w h i c h B A S I C i n o s u i t e d .T h m o s t r e m a r k a b l e a d v a n t a g e o m a c h i n e l a n g u a g e , h o w e v e r , i i t s p e e d . O t h C 6 y o c a c a r r y o u a p p r o x i m a t e l y 1 0 0 , 0 0 0 M . i n s t r u c t i o n s p e s e c o n d . B A S I C c o m m a n d s a r s e v e r a l h u n d r e d t i m e ss l o w e r .

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

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

M a c h i n e l a n g u a g e p r o g r a m s c a b t h o u g h t o a s u b r o u t i n e s l i k es u b r o u t i n e i B A S I C p r o g r a m w i t h i n a n o t h e r p r o g r a m t h a t c a n b e

u s e d a n y w h e r e i t h p r o g r a m a n r e t u r n s t w h e r e i w a c a l l e d f r o mw h e n i i f i n i s h e d . Y o u s t h c o m m a n d s G O S U B a n R E T U R N t e x e c u t e a n t h e n r e t u r n f r o m s u b r o u t i n e .

1 G O S U B 1 0 0 0

1 0 0 0 0 R E T U R N

Page 11: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 11/206

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

U s i n g m a c h i n e l a n g u a g e p r o g r a mT c a l l m a c h i n e l a n g u a g e s u b r o u t i n e f r o m B A S I C p r o g r a m y o u u s et h c o m m a n d " S y s a d d r e s s " . J u s t a w i t h t h G O S U B c o m m a n d y o m u s t t e l l t h c o m p u t e r w h e r e y o u r s u b r o u t i n e s t a r t s . " G O S U B 1 0 0 0 "c a l l s t h s u b r o u t i n e a l i n e n u m b e r 1 0 0 0 . S i m i l a r l y " S y s 1 0 0 0 " c a l l s t h m a c h i n e l a n g u a g e s u b r o u t i n e a m e m o r y a d d r e s s 1 0 0 0 .

N O T E h e r e t h a t m e m o r y a d d r e s s 1 0 0 0 i v e r y d i f f e r e n t t o l i n e n u m b e r1 0 0 0 . m e m o r y a d d r e s s i n o p r o g r a m l i n e n u m b e r , i i t h ' a d d r e s s ' o a a c t u a l p i e c e o m e m o r y i t h c o m p u t e r .M e m o r y a d d r e s s i n gY o h a v e h e a r d t h a t t h C 6 h a 6 4 o m e m o r y . 6 4 r e p r e s e n t s t h n u m b e r o i n d i v i d u a l p i e c e s o m e m o r y i t h c o m p u t e r . E a c h p i e c e o m e m o r y c a b t h o u g h t o a a b o x w h i c h c a n c o n t a i n o n c h a r a c t e r ,o n p i e c e o i n f o r m a t i o n .

W i t h o v e r 6 5 , 0 0 0 s e p a r a t e b o x e s t h c o m p u t e r m u s t h a v e f i l i n gs y s t e m t k e e p t r a c k o t h e m , s t h a t i c a f i n d e a c h s e p a r a t e p i e c e o i n f o r m a t i o n w h e n i n e e d s i t T h f i l i n g s y s t e m i u s e s g i v e s e a c h b o a ' a d d r e s s ' , w h i c h i l i k e t h a d d r e s s o y o u r h o u s e . Y o u s e a d d r e s s e s t f i n d t h o n p a r t i c u l a r h o u s e y o a r l o o k i n g f o a n y w h e r e w i t h i n a b u s yc i t y . Y o u s t h i s a d d r e s s t v i s i t h o u s e , t s e n d i m a i l o r t p i c k u p a r c e l f r o m i t T h c o m p u t e r , l i k e u s s e n d s i n f o r m a t i o n a n m o v e s f r o mo n p l a c e ( s u b r o u t i n e ) t a n o t h e r u s i n g i t s y s t e m o a d d r e s s e s .

T h c o m p u t e r ' s s y s t e m o a d d r e s s i n g i s i m p l e r t h a n o u r s f o i a n y w a y a i s t a r t s a o n e e n d o m e m o r y a n c a l l s i a d d r e s s z e r o . I t h e n c o u n t s t h r o u g h t h m e m o r y ' b o x e s ' , g i v i n g e a c h o t h e m n u m b e ra i g o e s f r o m z e r o a o n e e n d t 6 5 5 3 5 r i g h t a t h e o t h e r e n o t h m e m o r y . F o u t h i s w o u l d b v e r y d i f f i c u l t t r e m e m b e r b u f o t h c o m p u t e r i i t h l o g i c a l w a t d t h i n g s . T h e s e n u m b e r e d b o x e s c a nb t h o u g h t o a p o s t o f f i c e b o x e s . I y o p u s o m e t h i n g i t h b o a a d d r e s s n u m b e r o n e , i w i l l s t a y t h e r e u n t i l y o p u s o m e t h i n g e l s e i t h e r e i i t p l a c e .

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

T h c o m m a n d " S y s 1 0 0 0 " t e l l s B A S I C t e x e c u t e m a c h i n el a n g u a g e s u b r o u t i n e w h o s e f i r s t i n s t r u c t i o n i s t o r e d i t h b o a a d d r e s s 1 0 0 0 .

U s i n g m e m o r y d i r e c t l y f r o m B A S I CT h e r e a r t w o t h e r b a s i c c o m m a n d s y o w i l l f i n d e x t r e m e l y u s e f u l i t h i s w o r k .

Page 12: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 12/206

T h e y e n a b l e u s t p u t t h i n g s i a n c o l l e c t t h i n g s f r o m t h b o x e s i m e m o r y . T h e s e c o m m a n d s a r " P E E K " a n d " P O K E " . P r i n t P E E K ( 5 0 0 )p i c k s u t h c o n t e n t s o t h b o a m e m o r y a d d r e s s 5 0 a n p r i n t s i t T h i s c a b u s e d l i k e a n o t h e r f u n c t i o n w i t h i n B A S I C p r o g r a m , e . g .L e P E E K ( 3 8 7 ) o L E 7 * P E E K ( 1 0 7 8 ) 1 4 P O K E 1 1 0 0 , 2 7 p u t s t h n u m b e r a f t e r t h c o m m a , i t h i s c a s e 2 7 i n t ot h b o a m e m o r y a d d r e s s 1 1 0 0 , e . g . P O K E 2 1 7 9 . B o P O K E C , X . T r t h i s :

P R I N T P E E K ( 1 0 0 0 )P O K E ( 1 0 0 0 ) , 2 0 0P R I N T P E E K ( 1 0 0 0 )

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

M a c h i n e l a n g u a g e a s s u b r o u t i n eY o h a v e r e a d o u r m a c h i n e l a n g u a g e p r o g r a m s w i l l b u s e d l i k es u b r o u t i n e i B A S I C . I p l a c e o t h " G O S U B " w u s t h " S Y S "c o m m a n d .

I B A S I C , a y o k n o w , s u b r o u t i n e m u s t e n w i t h t h c o m m a n dR E T U R N .

G O S U B 1 0 0 0

1 0 0 0 . . . .

1 0 2 0 R E T U R NS t o o u m a c h i n e l a n g u a g e r o u t i n e s m u s t e n w i t h c o m m a n d t R E T U R N t t h m a i n p r o g r a m b u i w i l l n o b B A S I C c o m m a n d , i w i l lb m a c h i n e l a n g u a g e i n s t r u c t i o n .

T h m a c h i n e l a n g u a g e i n s t r u c t i o n f o R E T U R N i 9 — T h a t ' s i t j u s t 9 6 9 i w h a t t h m i c r o p r o c e s s o r u n d e r s t a n d s a s c o m m a n d t R E T U R N f r o m s u b r o u t i n e . I w o u l d o c o u r s e b i m p o s s i b l e f o u t r e m e m b e r t h a t 9 i R E T U R N a w e l l a l i s t o h u n d r e d s o o t h e ri n s t r u c t i o n s , s w h a v e n a m e s f o e a c h i n s t r u c t i o n . T h e s e n a m e s a r

Page 13: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 13/206

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

T h m n e m o n i c f o 9 i R T S . R T s t a n d s f o R E T U R N f r o mS u b r o u t i n e . W h e r e n e c e s s a r y t h r o u g h o u t w w i l l p r o v i d e b o t h t h m a c h i n e c o d e n u m b e r s a n t h m n e m o n i c s o a i n s t r u c t i o n , a t h i sm a k e s i r e a d a b l e t y o w h i l e a t h s a m e t i m e p r o v i d i n g t h ei n f o r m a t i o n t h c o m p u t e r n e e d s .

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

P O K E 4 9 1 5 2 , 9 6T h i s p u t s 9 ( t h e v a l u e o t h R T i n s t r u c t i o n ) i n t o t h b o a m e m o r ya d d r e s s a l o c a t i o n 4 9 1 5 2 .

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

G O S U B 4 0 04 0 R E T U R N

S i t t i n g i t h b o a m e m o r y a d d r e s s 4 9 1 5 2 i t h i n s t r u c t i o n 9 ( R T S ) .W w i l l n o r u i j u s t t c h e c k t h a t i w o r k s u s i n g t h c o m m a n d " S y s " .

T y p e i t h f o l l o w i n g B A S I C l i n e :S Y 4 9 1 5 2

T h c o m p u t e r s h o u l d r e s p o n d w i t h R E A D Y . I h a j u s t e x e c u t e d y o u rp r o g r a m .

C h a p t e r S U M M A R Y1 A s s e m b l y c o d e i f a s t . I a l l o w s a c c e s s t c o m p u t e r i n b u i l t h a r d w a r e

f u n c t i o n s t h a t a r n o c o n v e n i e n t t u s f r o m B A S I C .2 C o m m a n d s h a v e v e r y m i n o r f u n c t i o n s w h i c h t h e y c a p e r f o r m .3 M e m o r y i " a d d r e s s e d " u s i n g n u m b e r s f r o m t 6 5 5 3 5 .4 m e m o r y a d d r e s s c a b t h o u g h t o a p o s t o f f i c e b o x , w h i c h c a

o n l y h o l d o n p i e c e o i n f o r m a t i o n a t i m e .5 P E E K i u s e d t e x a m i n e t h c o n t e n t s o m e m o r y l o c a t i o n f r o m

B A S I C .6 P O K E i u s e d t p u s o m e t h i n g i n t o m e m o r y l o c a t i o n f r o m B A S I C .7 S y i u s e d t r u m a c h i n e l a n g u a g e p r o g r a m f r o m B A S I C .8 T h v a l u e 9 ( R T S ) m u s t b p l a c e d a t h e n o e v e r y m a c h i n e

l a n g u a g e p r o g r a m t t e l l t h c o m p u t e r t " R E T U R N f r o ms u b r o u t i n e " .

Page 14: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 14/206

C h a p t e rB a s i c s o M a c h i n e L a n g u a g eP r o g r a m m i n g

U s i n g m e m o r y f r o m m a c h i n e l a n g u a g eS f a w h a v e d i s c u s s e d M E M O R Y , d i s c u s s e d h o y o c a l o o k a t h i n g s i m e m o r y f r o m B A S I C , a n h o t p u t h i n g s i m e m o r y f r o mB A S I C .

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

T h r e g i s t e r sT h e r e a r t h r e e o t h e s e h a n d s ( r e g i s t e r s ) c a l l e d A a n Y e a c h o w h i c h i s u i t e d t p a r t i c u l a r r a n g e o t a s k s i t h s a m e w a t h a t r i g h th a n d e d p e r s o n u s e s h i r i g h t h a n d t p l a y t e n n i s , h i l e f t h a n d t t h r o wt h b a l l i t h a i t s e r v e , a n w h e n n e e d e d b o t h h a n d s , e . g . t t i h i s h o e s .

T h e s e h a n d s ( r e g i s t e r s ) c a p i c k u i n f o r m a t i o n f r o m t h m e m o r yb o x e s . L i k e m e m o r y t h e y c a o n l y h o l d o n p i e c e o i n f o r m a t i o n a t i m e , b u t t h e y a r e n o t h e m s e l v e s p a r t o t h m e m o r y a t h e y h a v e n a d d r e s s . T h e y a r a a c t u a l p a r t o t h m i c r o p r o c e s s o r a n t h e r e a r s p e c i a l m a c h i n e l a n g u a g e i n s t r u c t i o n s w h i c h d e a l w i t h e a c h o t h e ms e p a r a t e l y .

T h a c c u m u l a t o rT h f i r s t r e g i s t e r w w i l l t a l k a b o u t i t h ' A r e g i s t e r ( o A c c u m u l a t o r ) . A

Page 15: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 15/206

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

I m o s t c a s e s t h m i c r o p r o c e s s o r m u s t b h o l d i n g s o m e i n f o r m a t i o ni o n o i t h a n d s ( r e g i s t e r s ) b e f o r e i c a d a n y t h i n g w i t h i t T g e t h m i c r o p r o c e s s o r t p i c k u s o m e t h i n g f r o m o n o t h b o x e s i m e m o r y ,u s i n g t h a c c u m u l a t o r , y o u s t h i n s t r u c t i o n " L D A " . T h i s m n e m o n i cs t a n d s f o l o a d a c c u m u l a t o r . T h i s l o a d s t h c o n t e n t s o o n o t h b o x e si m e m o r y i n t o t h m i c r o p r o c e s s o r ' s a c c u m u l a t o r h a n d , e . g .

L D 2 5 T h i s c o m m a n d t a k e s t h c o n t e n t s o t h b o a m e m o r y a d d r e s s 2 5 a n p u t s i i t h m i c r o p r o c e s s o r ' s h a n d ( a c c u m u l a t o r ) . T h e m a c h i n ec o d e v a l u e o t h i s c o m m a n d i 1 6 2 5 3 .

N O T E h e r e t h a t t h m a c h i n e c o d e i i t w p a r t s . U n l i k e t h e c o m m a n dR T w h i c h i i o n p a r t , - 9 6 - , t h L D 2 5 h a o n p a r t f o t h c o m m a n d L D A , - 1 6 5 - , a n o n p a r t f o t h a d d r e s s o t h b o i m e m o r y w h i c h c o n t a i n s t h i n f o r m a t i o n b e i n g p i c k e d u p - 2 5 3 - .T h e s e t w p a r t s o t h i n s t r u c t i o n a r e p u t i s e p a r a t e m e m o r y b o x e s s t h b o x e s c o n t a i n i n g t h p r o g r a m L D 3 w o u l d l o o k l i k e : R T

A d d r e s s i n g m o d e sM o s t m a c h i n e l a n g u a g e i n s t r u c t i o n s h a v e s e v e r a l d i f f e r e n t f o r m s o m o d e s , w h i c h a l l o w t h p r o g r a m m e r f l e x i b i l i t y i c h o o s i n g h o a n w h e r e h w i l l p u h i d a t a i m e m o r y f o h i p r o g r a m t o p e r a t e o n T h e r ea r e i g h t d i f f e r e n t f o r m s f o L D a l o n e , c a l l e d A d d r e s s i n g M o d e s .

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

F o e x a m p l e , a s s u m e y o h a a i n s t r u c t i o n t o t a k e l e t t e r o u o c e r t a i n p o s t o f f i c e b o x . Y o u r i n s t r u c t i o n s c o u l d t e l l y o t d t h i s i s e v e r a l d i f f e r e n t w a y s :1 Y o c o u l d b t o l d t o l o o k f o b o n u m b e r 1 7 2 Y o c o u l d b t o l d t o l o o k f o t h b o t h i r d f r o m t h r i g h t o t h s e c o n d

b o t t o m r o w .3 Y o c o u l d b t o l d t o l o o k f o t h b o o w n e d b M r S m i t h .4 Y o c o u l d b t o l d t o l o o k f o t h b o w h o s e a d d r e s s w a c o n t a i n e d i

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

Page 16: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 16/206

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

M o d e 1 6 2 5 L D 2 5 T h i s i s h o r t f o r m o t h L D A . F o r e a s o n s w h i c h w i l l b e x p l a i n e d l a t e r ,i c a o n l y a c c e s s m e m o r y o v e r s m a l l r a n g e o p o s s i b l e a d d r e s s e s .T h i s s h o r t f o r m i c a l l e d z e r o p a g e a d d r e s s i n g .

M o d e 1 7 5 L D 1 0 7 9T h i s i l o n g e r f o r m o t h L D c o m m a n d ; i c a a c c e s s a b o x a n y w h e r ei m e m o r y . N O T E h e r e t h a t t h m a c h i n e c o d e i i t h r e e p a r t s . T h f i r s tp a r t 1 7 i t h c o m m a n d f o L D i t h i s t h r e e p a r t f o r m . T h 5 a n t h r e p r e s e n t t h a d d r e s s o t h b o 1 0 7 9 w h i c h c o n t a i n s t h d a t a t b p u i t h h a n d . T h r e a s o n s f o r t h i s a p p a r e n t l y s t r a n g en u m b e r w h i c h m a k e s 1 0 7 9 i n t o 5 5 , 4 w i l l b e c o m e c l e a r i t h f o l l o w i n gc h a p t e r . T h i s m o d e i c a l l e d a b s o l u t e a d d r e s s i n g .

M o d e 3 — 1 6 9 7 L D # 7 T h i s c o m m a n d i d i f f e r e n t f r o m t h p r e v i o u s t w o . I n s t e a d o l o o k i n g f o t h i n f o r m a t i o n t b p u i t h a c c u m u l a t o r i o n o t h b o x e s i m e m o r y , t h i n f o r m a t i o n y o u w a n t i g i v e n t y o a p a r t o t h i n s t r u c t i o n . I t h i s c a s e t h n u m b e r 7 w i l l b p u i t h a c c u m u l a t o r . I h a n o t h i n g a a l t d w i t h t h b o a a d d r e s s n u m b e r 7 1 T h i s i l i k ee x a m p l e n u m b e r o p a g e 8 N o t e h e r e t h a t t h i s d i f f e r e n t t y p e o a d d r e s s i n g k n o w n a ' i m m e d i a t e ' a d d r e s s i n g i s h o w n i t h m n e m o n i cb ' # s y m b o l b e f o r e t h n u m b e r .W n o k n o w h o t g e t h m i c r o p r o c e s s o r t p i c k s o m e t h i n g u f r o m m e m o r y , b u t b e f o r e w c a d a n y t h i n g u s e f u l w h a v e t k n o wh o t g e t h m i c r o p r o c e s s o r t d s o m e t h i n g w i t h i t T g e t h m i c r o p r o c e s s o r t p l a c e t h e c o n t e n t s o i t h a n d ( a c c u m u l a t o r ) i m e m o r y , w u s t h i n s t r u c t i o n S T w h i c h s t a n d s f o S t o r eA c c u m u l a t o r . T h i s p u t s t h c o n t e n t s o t h a c c u m u l a t o r i s p e c i f i e db o i m e m o r y .

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

M o d e l — 1 3 3 4 S T A 4 1T h i s i n s t r u c t i o n p u t s t h c o n t e n t s o t h a c c u m u l a t o r i t h b o a a d d r e s s 4 1 A i t h L D A , t h s i m i l a r i n s t r u c t i o n i t w p a r t s ( z e r o p a g em o d e ) c a o n l y r e a c h l i m i t e d n u m b e r o a d d r e s s e s i m e m o r y b o x e s .

Page 17: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 17/206

M o d e 1 4 5 0 S T 8 2 T h i s i l i k e M o d e e x c e p t t h a t i c a p u t h c o n t e n t s o t h a c c u m u l a t o ri b o x a n y w h e r e i m e m o r y ( a b s o l u t e a d d r e s s i n g ) . T h 1 4 s p e c i f i e s t h i n s t r u c t i o n a n t h 5 a n t h c o n t a i n t h a d d r e s s o b o x 8 2 5 ( t h i s i e x p l a i n e d i C h a p t e r 3 ) Q U E S T I O N : W h i t h e r e n ' S T A 1 i m m e d i a t e m o d e ( s e e L D 7 1 ) ?A N S W E R : T h ' i m m e d i a t e ' m o d e i ' L D A 7 1 p u t s t h n u m b e r i t h i n s t r u c t i o n - 7 i n t o t h a c c u m u l a t o r , s o m e w h a t l i k e b e i n g h a n d e d| e t t e r , n o j u s t p o s t o f f i c e b o n u m b e r o w h e r e t f i n d t h l e t t e r . S T i m m e d i a t e m o d e w o u l d a t t e m p t t p u t h c o n t e n t s o t h a c c u m u l a t o r i t h S T i n s t r u c t i o n i t s e l f . T h i s i l i k e b e i n g t o l d t p u l e t t e r n o i n t op o s t o f f i c e b o b u i n t o t h i n s t r u c t i o n s y o u h a v e b e e n g i v e n . O b v i o u s l yt h i s h a s n o p r a c t i c a l m e a n i n g .

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

P R I N T C H R $ ( 1 4 7 ) ; "1 R E T H I S P R O G R A M W I L L M A K E I E A S I E R T E N T E R

M A C H I N E C O D E P R O G R A M S2 R E A D A3 I F A = - 1 T H E N G O T O 7 4 P O K E 4 9 1 5 2 X 5 6 G O T O 2 7 P R I N T " B E F O R E . . . - L O C A T I O N 1 0 2 4 " ; P E E K ( 1 0 2 4 )8 S Y S 4 9 1 5 29 P R I N T " A F T E R . . . - L O C A T I O N 1 0 2 4 " P E E K ( 1 0 2 4 )1 0 E N 1 0 0 0 D A T A 1 6 9 , 1 R E L D A # 11 0 1 0 D A T A 1 4 1 , 0 , 4 : R E S T 1 0 2 41 0 2 0 D A T A 9 6 R E R T 9 9 9 9 D A T AL I N E S 1 0 0 0 - 9 9 9 9 c o n t a i n o u m a c h i n e l a n g u a g e p r o g r a m .L I N E S 2 0 - 6 0 p u t s o u p r o g r a m f r o m d a t a s t a t e m e n t s i n t o m e m o r y

b o x e s s t a r t i n g f r o m 4 9 1 5 2 s i c a b r u n .L I N E S 7 0 - 9 0 p r i n t " B E F O R E " a n d " A F T E R " t e s t s o t h m e m o r y

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

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

1

Page 18: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 18/206

A d d r e s s D a t a4 9 1 5 2 1 6 4 9 1 5 34 9 1 5 4 1 4 4 9 1 5 54 9 1 5 64 9 1 5 7 9

F o t h p r o g r a m m e r ' s b e n e f i t t h i s i w r i t t e n o u i m n e m o n i c f o r m a f o l l o w s :

4 9 1 5 2 L D A # 14 9 1 5 4 S T A 1 0 2 44 9 1 5 7 R T

A s s e m b l y l a n g u a g ep r o g r a m w r i t t e n o u i m n e m o n i c f o r m i c a l l e d a ' a s s e m b l y l a n g u g e '

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

a d d r e s s4 9 1 5 2 :4 9 1 5 4 :4 9 1 5 7 :

c o d e1 6 1 4 9

m n e m o n i c sL D A # 1S T A 1 0 2 4R T

O u b a s i c p r o g r a m , a s w e l l a p l a c i n g o u m a c h i n e c o d e i m e m o r y ,r u n s o u p r o g r a m ( s e e l i n e 8 0 ) .

Y o w i l l s e b o u b e f o r e a n a f t e r a n a l y s i s o m e m o r y a d d r e s s 1 0 2 4t h a t i h a b e e n c h a n g e d b o u p r o g r a m a w i n t e n d e d . T h o r i g i n a lv a l u e o f l o c a t i o n 1 0 2 4 c o u l d h a v e b e e n a n y t h i n g . T h n u m b e r y o s e m a c h a n g e e a c h t i m e y o r u n t h e p r o g r a m . I i i m p o s s i b l e t k n o ww h a t w i l l b i m e m o r y b e f o r e y o p u s o m e t h i n g i t h e r e y o u r s e l f , j u s ta y o c a n ' t t e l l w h a t m i g h t b l e f t o v e r i p o s t o f f i c e b o y o h a v e n ' tl o o k e d i n t o b e f o r e . T h v a l u e i m e m o r y a d d r e s s 1 0 2 4 a f t e r t h p r o g r a mh a b e e n r u i : 1 T h i s s h o w s t h a t o u p r o g r a m d i w h a t w a e x p e c t e d

i l o a d e d t h n u m b e r i n t o t h a c c u m u l a t o r a n t h e n s t o r e d i i n t om e m o r y a 1 0 2 4 .

S c r e e n m e m o r yT h e r e i o n r e s u l t f r o m t h i s p r o g r a m w h i c h y o m a n o h a v e e x p e c t e d .L o o k a t h t o l e f t h a n d c o r n e r o t h s c r e e n . Y o w i l l s e i c o n t a i n s a ' A ' . L i n e o t h p r o g r a m c l e a r s t h s c r e e n , a n d n o w h e r e i t h b a s i cp r o g r a m w a t h ' A p r i n t e d o t h s c r e e n , t h e r e f o r e i m u s t h a v e b e e np u t h e r e b t h m a c h i n e l a n g u a g e p r o g r a m . W k n o w t h m a c h i n e

1

Page 19: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 19/206

l a n g u a g e p r o g r a m p u t s t h e v a l u e i n t o l o c a t i o n 1 0 2 4 . C o u l d t h i s p r i n ta ' A o t h s c r e e n ? T r i f r o m B A S I C a n s e w h a t h a p p e n s . P r e s s t h C L t c l e a r t h s c r e e n . T y p e :

P O K E 1 0 2 4 , 1Y o w i l l s e t h a t t h ' A h a s r e a p p e a r e d o t h t o l e f t c o r n e r o t h

s c r e e n . T h s h a s h a p p e n e d b e c a u s e m e m o r y a 1 0 2 4 h a d u a lp u r p o s e . I i u s e d t d i s p l a y t h i n g s o t h s c r e e n , a w e l l a c a r r y i n go u t t h e r e m e m b e r i n g f u n c t i o n s a n o r m a l m e m o r y . T h p o s t o f f i c e b o d e s c r i p t i o n i s t i l l v a l i d , b u n o t h b o x e s s e e m t h a v e g l a s s f r o n t s s t h a t y o u c a n s e e o n y o u r s c r e e n w h a t t h b o x e s h a v e i n s i d e t h e m . I y o l o o k a t h t a b l e o s c r e e n d i s p l a y c o d e s i a p p e n d i x 1 4 y o w i l l s e t h a tf o t h v a l u e t h a t w p l a c e d i l o c a t i o n 1 0 2 4 , t h e c h a r a c t e r t h a t s h o u l db d i s p l a y e d i a ' A ' . ( S E T i u s e d b d e f a u l t . T c h a n g e t h c h a r a c t e r s e b e i n g u s e d , p r e s s t h c o m m o d o r e k e a n t h s h i f t k e a t h s a m e t i m e . )

L e t ' s t r t d i s p l a y s o m e o t h e o t h e r c h a r a c t e r s i t h t a b l e o t h s c r e e n . L e t ' s t r t p r i n t a ' X o t h s c r e e n . F i r s t w n e e d t l o o k u t h t a b l e o s c r e e n d i s p l a y c o d e s t f i n d t h v a l u e c o r r e s p o n d i n g t t h l e t t e r ' X ' . Y o w i l l f i n d t h a t t h i s v a l u e i 2 4 T p u t h i s i m e m o r y a a d d r e s s 1 0 2 4 w w i l l u s t h p r o g r a m w w r o t e e a r l i e r :

L D A # 1S T A 1 0 2 4R T

B u t h i s t i m e w w i l l c h a n g e t h L D t L D 2 4 U s i n g t h s a m eB A S I C p r o g r a m t p u t h i s i n t o m e m o r y , w m u s t f i r s t c h a n g e l i n e 1 0 0 0w h i c h h o l d s t h d a t a f o t h L D c o m m a n d . T h i s m u s t n o r e a d :

1 0 0 0 D A T A 1 6 9 , 2 4 R E L D 2 O u m a c h i n e l a n g u a g e p r o g r a m w i l l n o ( w h e n t h b a s i c p r o g a m i

r u n ) r e a d :4 9 1 5 2 1 6 9 2 4 L D # 2 4 9 1 5 4 1 4 S T A 1 0 2 44 9 1 5 7 9 R T

W h e n t h i s i r u y o w i l l n o s e a ' X a p p e a r i t h t o l e f t h a n d c o r n e ro y o u r s c r e e n .

A t h i s s t a g e y o m i g h t a s k , h o d p r i n t s o m e t h i n g s o m e w h e r e e l s eo t h s c r e e n ? T h a n s w e r i s i m p l e . ' S c r e e n M e m o r y ' ( t h e s e' g l a s s f r o n t e d ' b o x e s ) e x i s t s i m e m o r y f r o m 1 0 2 4 a l t h w a t h r o u g h t 2 0 2 3 . I i s e u i 2 r o w s o 4 c o l u m n s a y o s e o y o u r s c r e e n .M e m o r y a 1 0 2 4 a p p e a r s o n t h t o l e f t c o r n e r , 1 0 2 5 a p p e a r s n e x t t t h a t t t h r i g h t , a n 1 0 2 6 n e x t t t h a t . S i m i l a r l y 1 0 2 4 4 ( 1 0 6 4 )a p p e a r s i m m e d i a t e l y u n d e r 1 0 2 4 o t h l e f t e d g e a t h s e c o n d t o r o a n 1 0 6 4 4 ( 1 1 0 4 ) u n d e r t h a t , a n s o n

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

1

Page 20: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 20/206

p l a c e o t h s c r e e n i g i v e n b 1 8 ) 2 4 4 ( ( s c r e e n b a s e + r o w )1 0 6 4 .

T h e r e f o r e w w a n t o u p r o g r a m t b e L D A # 2 4 C h a r a c t e r ' X 'S T A 1 0 6 4 F i r s t c o l u m n S e c o n d r o R T

T d t h i s w c h a n g e t h d a t a f o o u p r o g r a m o l i n e 1 0 1 0 t r e a d :1 0 1 0 D A T A 1 4 1 , 4 0 : R E M S T 1 0 6 4

T h m a c h i n e l a n g u a g e p r o g r a m w i l l n o p r i n t a ' X o t h s e c o n d l i n ef r o m t h t o o t h s c r e e n .P r i n t i n g m e s s a g eW w i l l n o u s o u B A S I C p r o g r a m t o w r i t e b i g g e r p r o g r a m w h i c h w i l lw r i t e m e s s a g e o t h s c r e e n . T y p e t h f o l l o w i n g l i n e s :

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

D A T AD A T AD A T AD A T AD A T AD A T AD A T AD A T AD A T AD A T A

1 6 9 , 81 4 1 , 0 , 41 6 9 , 51 4 1 , 1 , 41 6 9 , 1 21 4 1 , 2 , 41 4 1 , 3 , 41 6 9 , 1 51 4 1 , 4 , 49

N o r u t h p r o g r a m . Y o w i l l s e t h a t i h a p r i n t e d " H E L L O " a t h t o o t h s c r e e n . T h m a c h i n e l a n g u a g e p r o g r a m w w r o t e t d t h i s w a s :

A d d r e s s M A C H I N E C O D E A S S E M B L Y C O D E4 9 1 5 2

4 9 1 5 44 9 1 5 7

4 9 1 5 94 9 1 6 2

4 9 1 6 44 9 1 6 74 9 1 7 04 9 1 7 24 9 1 7 5

1 6

1 4 1 6

1 4 1 6

1 4 1 4 1 6 1 4 9

1

1

L D A # 8

S T 1 0 2 4L D A # 5

S T 1 0 2 5L D A # 1 2

S T 1 0 2 6S T 1 0 2 7L D A # 1 5S T 1 0 2 8R T

S C R E E N D I S P L A YC O D E F O ' H

S C R E E N D I S P L A YC O D E F O ' E

S C R E E N D I S P L A YC O D E F O 1

S C R E E N D I S P L A YC O D E F O ' 0

1

Page 21: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 21/206

Page 22: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 22/206

s p e c i a l f u n c t i o n s . D i f f e r e n t a r e a s o m e m o r y a r u s e d t c o n t r o l s c r e e nc o l o u r s , g r a p h i c s , s p r i t e s , s o u n d , t h k e y b o a r d , g a m e s c o n t r o l l e r s( j o y s t i c k ) a n m a n y o t h e r I / ( i n p u t / o u t p u t ) f u n c t i o n s . T h e s e a r e a s w i l lb r e f e r r e d t t h r o u g h o u t t h b o o k o n p u r e l y i n t r o d u c t o r y l e v e l . W e n c o u r a g e y o t f i n d m o r e d e t a i l e d d e s c r i p t i o n s f r o m m o r e a d v a n c e dt e x t s e . g . ' C o m m o d o r e 6 E x p o s e d ' , B r u c e B a y l e y , p u b l i s h e d b M e l b o u r n e H o u s e , a n t h ' C o m m o d o r e 6 P r o g r a m m e r s ^ R e f e r e n c eG u i d e ' .

C h a p t e r S U M M A R Y1 T h m i c r o p r o c e s s o r u s e s r e g i s t e r s ( l i k e h a n d s ) t m o v e t h i n g s a b o u t

a n t w o r k o n m e m o r y .2 I h a t h r e e g e n e r a l p u r p o s e h a n d s ( A ( a c c u m u l a t o r ) , a n Y )

3 W u s t h L D A c o m m a n d t g e t h m i c r o p r o c e s s o r t p i c ks o m e t h i n g u i t h a c c u m u l a t o r ( h a n d ) .

4 W u s t h S T c o m m a n d t g e t h m i c r o p r o c e s s o r t p u t t h ec o n t e n t s o t h a c c u m u l a t o r i n t o m e m o r y .

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

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

6 p r o g r a m w r i t t e n o u i m n e m o n i c f o r m i c a l l e d a a s s e m b l yc o d e p r o g r a m .

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

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

9 M e m o r y i u s e d t c o n t r o l o t h e r I / ( i n p u t / o u t p u t ) f u n c t i o n s o t h c o m p u t e r .

1

Page 23: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 23/206

Page 24: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 24/206

C h a p t e rI n t r o d u c t i o n t H e x a d e c i m a l

U s e s o h e x a d e c i m a lS f a i t h i s b o o k w h a v e t a l k e d a b o u t m e m o r y i s e v e r a l d i f f e r e n tw a y s , b u w h a v e n o b e e n s p e c i f i c a b o u t w h a t i c a a n c a n n o t h o l d .W h a v e u s e d m e m o r y t h o l d n u m b e r s w h i c h r e p r e s e n t e d c h a r a c t e r s ,n u m e r i c v a l u e s , m a c h i n e c o d e i n s t r u c t i o n s a n m e m o r y a d d r e s s e s . W h a v e m e r e l y h a t p u n u m b e r w w a n t i m e m o r y w i t h o u t t h i n k i n gh o t h c o m p u t e r a c t u a l l y s t o r e s i t i a l b u o n c a s e . I i t h a b s o l u t ea d d r e s s i n g m o d e w h i c h h a s s h o w n u t h a t t h c o m p u t e r ' s n u m b e r i n gs y s t e m i n o a s i m p l e a w m i g h t h a v e a f i r s t t h o u g h t , e . g . 1 4 i t h m a c h i n e c o d e f o S T 1 0 2 9 . T h 1 4 1 r e p r e s e n t s t h S T A , l e a v i n g t h en u m b e r s a n s i g n i f y i n g t h a d d r e s s 1 0 2 9 . T h e r e i o b v i o u s l ys o m e t h i n g g o i n g o h e r e w h i c h w h a v e n o a c c o u n t e d f o r .

W h a v e p r e v i o u s l y c o m p a r e d t h m i c r o p r o c e s s o r ' s r e g i s t e r s a n m e m o r y t h a n d s . H o b i n u m b e r c a y o h o l d i y o u r h a n d ? W e l lt h a t d e p e n d s o w h a t w m e a n b h o l d . Y o c a u s y o u r f i n g e r s t c o u n t t f i v e , s y o u c a n u s e o n e h a n d t h o l d n u m b e r f r o m z e r o t f i v e .D o e s t h a t m e a n t h b i g g e s t n u m b e r y o u c a n h o l d i f i v e ? Y o m a b s u r p r i s e d t k n o w t h a t t h a n s w e r i N O

C o u n t i n g f r o m t o y o u r f i n g e r s l i k e t h i s

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

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

y o u r f i n g e r s , i c a t e l l w h i c h o i t ' f i n g e r s ' i o a n w h i c h i o f f . I o t h e r

1

Page 25: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 25/206

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

N o t r t c o u n t b a d d i n g t h n u m b e r s r e p r e s e n t e d b e a c h f i n g e r i t h u ( o n ) p o s i t i o n :

T r t r e p r e s e n t t h f o l l o w i n g n u m b e r s o y o u r f i n g e r s : 7 , 1 6 , 1 0 , 2 1 ,2 9

Q W h a t i t h b i g g e s t n u m b e r y o c a r e p r e s e n t o y o u r f i n g e r s ?A 1 + 2 + 4 + 8 + 1 6 3

A y o c a s e 3 i q u i t e s i g n i f i c a n t i m p r o v e m e n t o o u o r i g i n a le f f o r t o 5 T h c o m p u t e r ' s ' h a n d s ' a r d i f f e r e n t f r o m o u r s i s e v e r a lw a y s . I t f i n g e r s a r e l e c t r o n i c s i g n a l s w h i c h c a e i t h e r b o o o f f , a o p p o s e d t o u f i n g e r s b e i n g u o d o w n . F o t h p r o g r a m m e r ' s b e n e f i tt h e c o n d i t i o n o i g i v e n t h v a l u e a n t h e c o n d i t i o n o f i g i v e n t h v a l u e 0 T h o t h e r m a j o r d i f f e r e n c e i t h a t t h c o m p u t e r h a e i g h t' f i n g e r s ' o e a c h ' h a n d ' . T h i s m a s o u n d s i l l y , b u t h e r e i n r e a s o n f o i n o t b t h a t w a y . A i t u r n s o u i i f a i r l y e a s y s e t u p t h a n d l e . T h c o m p u t e r ' s e i g h t f i n g e r e d h a n d i c a l l e d ' b y t e ' o m e m o r y . A w i t h o u o w f i n g e r s , w g i v e e a c h o t h c o m p u t e r ' s ' f i n g e r s ' o n o t h f o l l o w i n gv a l u e s : 1 , 2 , 4 , 8 , 1 6 , 3 2 , 6 4 , 1 2 8 .

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

1

Page 26: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 26/206

E i g h t f i n g e r e d C o m p u t e r ' s ' h a n d 'h a n d b y t e

N u m b e r

3 2 + 1 6 + 1 4

1 2 8 + 6 4 + 4 = 1 9

^ 0 0 0 J 1 6 + 1 1

Q W h a t i t h b i g g e s t n u m b e r t h a t c a n b e r e p r e s e n t e d b t h c o m p u t e r ' s ' e i g h t f i n g e r e d h a n d ' ?

A 1 2 8 + 6 4 + 3 2 + 1 6 + 8 + 4 + 2 + 1 2 5 W i t h o u t r e a l i s i n g i t w h a t w h a v e d o n e i t h i s c h a p t e r i i n t r o d u c e t h

b i n a r y n u m b e r i n g s y s t e m ( b a s e t w o ) . A l c o m p u t e r s w o r k i b a s er e p r e s e n t i n g e l e c t r i c a l o n ' s a n o f f ' s b y a n e n d l e s s s t r e a m o 1 ' a n 0 ' s . T h i s o c o u r s e w o u l d m a k e t h p r o g r a m m e r ' s t a s k o u n d e r s t a n d i n gw h a t i g o i n g o i n s i d e t h c o m p u t e r e v e n m o r e c o n f u s i n g t h a n i a l r e a d y i s e . g . ,A s s e m b l y C o d e M A C H I N E C O D E B I N A R YL D # 1 6 1 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0S T 1 0 2 9 1 4 9 4 1 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1R T 9 6 0 1 1 0 0 0 0 0

W h h e x a d e c i m a l ?T h i s o c o u r s e w o u l d b i m p o s s i b l e f o p r o g r a m m e r t r e m e m b e r , a n d i f f i c u l t t t y p e c o r r e c t l y . W c o u l d o c o u r s e j u s t u s d e c i m a l a l i s t e d i t h m a c h i n e c o d e c o l u m n . A i t u r n s o u t , t h i s i n o t t h e m o s t c o n v e n i e n tf o r m t u s e . W h a t w d u s i h e x a d e c i m a l o b a s e s i x t e e n . T h i s m a s o u n d s t r a n g e b u i b e c o m e s v e r y e a s y t u s b e c a u s e i r e l a t e sc l o s e l y t t h e a c t u a l b i n a r y r e p r e s e n t a t i o n s t o r e d b t h c o m p u t e r .

T c o n v e r t b e t w e e n b i n a r y a n h e x a d e c i m a l i e a s y . E a c hh e x a d e c i m a l d i g i t c a s t o r e n u m b e r b e t w e e n a n 1 j u s t a e a c hd e c i m a l d i g i t m u s t b b e t w e e n a n 9 T h e r e f o r e o n h e x a d e c i m a l d i g i tr e p r e s e n t s o n h a l f o b y t e ( e i g h t f i n g e r e d h a n d ) .

B i n a r y H e x a d e c i m a lM 0 - 1 5 0 - 1 5 0 - 1 5 0 - 1 5

1

Page 27: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 27/206

T h w h o l e e i g h t f i n g e r e d h a n d c a b s h o w n b t w h e x a d e c i m a l d i g i t s .Y o m i g h t b w o n d e r i n g h o o n d i g i t c a s h o w n u m b e r b e t w e e n o n a n f i f t e e n . W e l l i i e x a c t l y t h s a m e a d e c i m a l b u t t h e n u m b e r s 1 0 1 1 , 1 2 , 1 3 , 1 a n 1 a r r e p r e s e n t e d b t h l e t t e r s A B C D E r e s p e c t i v e l y .

B I N A R Y0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1

1 0 0 0 0

D E C I M A L

1 1 1 1 1 1 1

s h o w s t h a t c o n v e r t i n g

H E X A D E C I M A L

1 f r o m b i n a r y t h e x a d e c i m a l i

i i n g i n t o e a s y - t o - s e e s e g m e n t s o f o u r ( f i n g e r s ) .

| 1 | 0 I 0 | 1 | 1 I 1 I 1 I 0 I I 1 I 1 I 1 I 1 I 1 I 1 I 0 I 1 I I < Z H 0 H I 0 | 0 | 1 I 1 I 1 Ir — v

H e a n b i n a r y m a t h e m a t i c a l l yM a t h e m a t i c a l l y a n y b a s e 1 0 , 2 , 1 6 o 1 7 f o l l o w s s i m p l e f o r m a t . E a c hd i g i t t a k e s t h v a l u e A ( B A S E ) P o s i t i o n - 1

I o t h e r w o r d s i d e c i m a l 9 8 6 1 7 i 7 x 1 0 ° + 1 x 1 0 l 6 x 1 0 2 8 x 1 0 3 9 x 1 0 4 9 8 6 1 77 x 1 + 1 1 0 + 6 x 1 0 0 + 8 x 1 0 0 0 + 9 x 1 0 0 0 0 9 8 6 1 7

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

I b i n a r y 0 1 0 1 1 1 0 1 i 1 x 2 0 0 x 2 l 1 x 2 2 1 x 2 3 + 1 x 2 41 x + 0 x 2 + 1 x 4 + 1 x 1 x 1 6 0 x 3 2 1 x 6 4 0 x 1 2 8 9 1 + 1 6 = 9

2

Page 28: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 28/206

I h e x a d e c i m a l A 7 C 4 E i

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

S e v e r a l p o i n t s s h o u l d b n o t e d h e r e . F i r s t l y , a n n u m b e r w h i c h c a b s t o r e d i o n m e m o r y b o ( n u m b e r f r o m t 2 5 5 ) c a b s t o r e d i b i n a r y d i g i t s ( b i t s ) , o a w h a v e b e e n c a l l i n g t h e m t i l l n o ' f i n g e r s ' . A n n u m b e r f r o m t 2 5 c a a l s o f i i t w h e x a d e c i m a l d i g i t s ( F 1 1 6 1 2 5 5 ) . T h i s , h o w e v e r , i w h e r e o u p r o b l e m w i t h a b s o l u t ea d d r e s s i n g o c c u r s . I w c a n ' t p u n u m b e r b i g g e r t h a n 2 5 i n t om e m o r y , h o d w s p e c i f y a a d d r e s s w h i c h m a b e b e t w e e n a n 6 5 5 3 5 ( 6 4 K ) ? T h s o l u t i o n i t u s t w b o x e s , n o a d d e d t o g e t h e r b u ta p a r t o t h s a m e n u m b e r . W h e n d e a l i n g w i t h a d d r e s s e s w a r d e a l i n g w i t h 1 f i n g e r ( 1 b i t ) ( b y t e ) b i n a r y n u m b e r s . T h i s i t h s a m ea s a y i n g f o u r d i g i t h e x a d e c i m a l n u m b e r s . T h l a r g e s t n u m b e r w c a h o l d i f o u r d i g i t h e x a d e c i m a l n u m b e r i

F F F F 1 5 x 1 + 1 5 x 1 6 1 5 x 2 5 6 1 5 x 4 0 9 61 2 4 3 8 4 0 6 1 4 4 06 5 5 3 5 6 4

w h i c h i l a r g e e n o u g h t a d d r e s s a l o m e m o r y , e . g . , t h b y t e ( 1 6 b y t e )h e n u m b e r 1 3 A 9 e q u a l s

0 0 0 1 0 0 1 1 1 0 1 0 1 0 0 11 3 x 1 6 2 + A 9 x 1 6 °1 3 x 2 5 6 + A

4 8 6 4

F o e x a m p l e , t h b y t e h e n u m b e r 0 4 0 5= 4 x 2 5 6

1 0 2 41 0 2 9

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

L D 1 0 2 91 4

2

Page 29: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 29/206

T h m o s t s i g n i f i c a n t b y t e ( h i g h b y t e ) i p l a c e d l a s t , a n t h l e a s ts i g n i f i c a n t b y t e ( l o w b y t e ) i s t o r e d f i r s t . N O T E t h i s i o p p o s i t e t n o r m a l , e . g . , n o r m a l l y 1 w h e r e i t h m o s t s i g n i f i c a n t d i g i t ( 1 0 a n i s t o r e d f i r s t . T h ( 1 i l e a s t s i g n i f i c a n t a n c o m e s s e c o n d .F o s o m e r e a s o n t h e b y t e s o a a b s o l u t e a d d r e s s a r a l w a y s s t o r e d l o b y t e , h i g h b y t e .

T h i s c h a p t e r a l s o e x p l a i n s z e r o p a g e a d d r e s s i n g . T w b y t ei n s t r u c t i o n s l e a v e o n l y b y t e t s p e c i f y t h a d d r e s s , e . g . , L D 3 1 6 3 8 W h a v e s a i d b e f o r e t h a t w h e n u s i n g b y t e w c a o n l y c o u n tf r o m t 2 5 5 . T h e r e f o r e z e r o p a g e a d d r e s s i n g c a o n l y a d d r e s s t h f i r s t2 5 b y t e s o m e m o r y . b l o c k o 2 5 b y t e s i c a l l e d p a g e .

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

L D 1 0 2 4 i t h s a m e a L D $ 4 0 0L D 6 5 5 3 5 i t h s a m e a L D $ F F F FL D i t h s a m e a L D $

F r o m n o o a l m a c h i n e c o d e l i s t i n g s w i l l a l s o b s h o w n i h e x a d e c i m a l ,

A d d r e s s M A C H I N E C O D E A S S E M B L Y C O D E4 9 1 5 2 A L D # $ 4 9 1 5 4 8 0 S T $ 4 0 04 9 1 5 7 A 5 L D # $ 5 34 9 1 5 9 8 S T 1 0 2 54 9 1 6 2 6 R T

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

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

$ 2 3 r r o d o w n1 1 t h c o l u m n f r o m l e f t

P r i n t e d t h e r e i L H [ 4 1 0 7 5 2 1

L o o k a t h n u m b e r u n d e r L ( L o w b y t e ) . 4 i d e c i m a l f o $ 2 h e x . F o b y t e h e n u m b e r s d i v i d e i n t o s i n g l e b y t e s . F o t h l e f t b y t e ( o h i g h

b y t e ) l o o k u u n d e r H a n a d t t h l o b y t e L O e . g . ,$ 7 1 5 6 d i v i d e H $ 7 L $ 5 H 7 - 8 t h r o d o w n

2 n c o l u m n f r o m l e f t

2

Page 30: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 30/206

L H [ 1 1 3 2 8 9 2 8 ]L 5 6 t r o d o w n

7 t c o l u m n f r o m l e f tL H [ 8 2 2 0 1 6 ]

A d h i g h a n l o 2 8 9 2 8 8 2 9 0 1 4$ 7 1 5 6 2 9 0 1 4

N O T E : i a l c a s e s L H I Y

= 2 5 6 * XT h h i g h b y t e i 2 5 t i m e s t h e v a l u e o t h s a m e l o b y t e .

C h a p t e r S U M M A R Y1 I c o u n t i n g o n c o m p u t e r ' s ' f i n g e r s ' , p o s i t i o n ( w h i c h f i n g e r s ) , a

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

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

P o s i t i o n - 1 , 2 , 4 , 8 , 1 6 , 3 2 , 6 4 , 1 2 8 B i n a r y .5 H e x a d e c i m a l ( b a s e s i x t e e n ) i t h g r o u p i n g t o g e t h e r o b i n a r y .

H e d i g i t b i n a r y d i g i t s . H e i e a s i e r t h a n d l e t h a n b i n a r y o d e c i m a l .

6 D E C I M A L 0 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8H E 0 1 2 3 4 5 6 7 8 9 A B C D E F 1 0 1 1 1 2 e t c .

7 Z e r o p a g e a d d r e s s i n g c a a c c e s s t h f i r s t 2 5 b i t s , t h m a x i m u ma d d r e s s a b l e b b y t e .

8 A b s o l u t e a d d r e s s i n g c a a c c e s s 6 5 5 3 6 ( 6 4 K ) b y t e s o m e m o r y( a l l ) , w h i c h i t h m a x i m u m a d d r e s s a b l e b y 2 b y t e s .

9 A b s o l u t e a d d r e s s e s a r a l w a y s s t o r e d l o b y t e f i r s t t h e n h i g h b y t e ,e . g . 8 D 9 8 1 7 L D A $ 1 7 9 8 .

1 0 H e x a d e c i m a l n u m b e r s a r s p e c i f i e d b p r e f a c i n g t h e m w i t h a s i g n .

1 1 R e m e m b e r t h q u i c k c o n v e r s i o n t a b l e f o h e t d e c i m a l i a p p e n d i x 3

2

Page 31: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 31/206

Page 32: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 32/206

Page 33: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 33/206

i n c l u d e d a i n b u i l t , s e l f - t e s t m o d u l e t c h e c k t h a t A L P A h a b e e n t y p e di c o r r e c t l y .

1 T y p e i t h p r o g r a m e x a c t l y a i h a b e e n l i s t e d i A p p e n d i x 1 3 2 W h e n y o h a v e f i n i s h e d t y p i n g i i n s a v e A L P A i m m e d i a t e l y ( f o r

c a s s e t t e s a v e t y p e : S A V E ' A L P A 1 ; f o d i s k s a v e , t y p e S A V E ' A L P A ' , 8 )3 T y p e : R U 6 2 0 0 0T h i s r u n s t h s e l f - t e s t p a r t o t h p r o g r a m . T h s e l f - t e s t c r e a t e s' c h e c k s u m ' f o e a c h l i n e o t h p r o g r a m a n p r i n t s i o u i t h e f o r m :

l i n e n u m b e r c h e c k s u m .A t h e n o t h l i s t o l i n e n u m b e r c h e c k s u m s i c h e c k s u m t o t a l :

T O T A L t o t a l o c h e c k s u m sT h e r e i a l s o l i s t o t h c h e c k s u m s i A p p e n d i x 1 3 I y o u r t o t a l i e q u a l t t h t o t a l p r i n t e d i A p p e n d i x 1 3 c h a n c e s a r y o u r p r o g r a m w i l l

w o r k . I i d o e s n ' t w o r k , o i y o u r t o t a l d o e s n o m a t c h o u r s , y o m u s t g t h r o u g h c o m p a r i n g y o u r c h e c k s u m l i n e f o l i n e a g a i n s t t h o s e i t h b o o k . O l i n e s w h e r e t h c h e c k s u m s d i f f e r , y o h a v e m a d e t y p i n ge r r o r .N O T E : 1 I y o h a v e m a d e a e r r o r i t y p i n g i t h s e l f - t e s t p o r t i o n o

t h p r o g r a m ( l i n e s 6 2 0 0 0 - * y o m a n o g e a n o u t p u t .2 T h e r e m a b b u i t h p r o g r a m . O c c a s i o n a l l y , b u t r a r e l y ,

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

U s i n g A L P AA l n u m b e r s u s e d i A L P A ( e x c e p t l i n e n u m b e r s ) a r t b i n p u t t e d i h e x i d e c i m a l . W h e n A L P A i R U N , a n h a i n i t i a l i s e d i t s e l f , i w i l l a s y o t h e q u e s t i o n :

L O C A T E P R O G R A M A A D D R E S S : ?T h i s i a s k i n g y o w h e r e y o u w a n t A L P A t s t o r e t h p r o g r a m y o w i l lw r i t e i m e m o r y . A y o w i l l s e l a t e r o ( M e m o r y U s a g e I A L P A ) , m o s to o u p r o g r a m s a r d e s i g n e d t s i i m e m o r y a $ C 0 0 0 ( 4 9 1 5 2 ) .T h e r e f o r e t y p e i C 0 0 0 i r e s p o n s e t t h i s q u e s t i o n . I i i n e c e s s a r y t c h a n g e t h i s , y o w i l l b t o l d t o d s u s i n g t h C H A N G E c o m m a n d ( s e el a t e r C O M M A N D S i A L P A ) . T h c o m p u t e r w i l l a s k y o u f o i n p u t b p r i n t i n g t h f o l l o w i n g l i n e :

C O M M A N D O L I N E N U M B E R ( # # # )A t h i s s t a g e y o a r r e a d y t t y p e i y o u r p r o g r a m . T h p r o g r a m s y o

w i l l w r i t e w i l l b i t h f o l l o w i n g f o r m a t :l i n e ( S P A C E ) H E B y t e ( H E X B y t e ) ( H E X B y t e )

2

Page 34: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 34/206

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

1 A 9 0 5o 2 8 D 3 4 1 2

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

1 0 A 9 0 5t h c o m p u t e r w i l l r e s p o n d w i t h :

1 0 . A 9 0 L D A # $ 0 5T h i s f e a t u r e e n a b l e s y o t c h e c k y o u r c o d e a i i t y p e d i n b

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

1 0 A 9 0 5 L D A # $ 0 52 0 8 D 3 4 1 2 S T A $ 1 2 3 4

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

T h l i n e n u m b e r i n g s y s t e m u s e d i A L P A i t h s a m e a t h a t u s e d i B A S I C :

l i n e # # c o d ep u t s t h c o d e o l i n e # # r e p l a c i n g a n y t h i n g p r e v i o u s l y o

t h a t l i n e .l i n e # #

d e l e t e s l i n e # #

A L P A c o m m a n d sT h f o l l o w i n g c o m m a n d s a r a v a i l a b l e i A L P A .

1 L I S T o L I S T l i n e # # T h i s c o m m a n d l i s t s t h f i r s t 2 l i n e s o y o u r p r o g r a m f r o m t h b e g i n n i n g o f r o m t h l i n e # # s p e c i f i e d .

2 E N T E R ( T h i s i n o t h E N T E R k e y ! )T h i s c o m m a n d s t o r e s y o u r p r o g r a m i m e m o r y a t h a d d r e s ss p e c i f i e d b t h e q u e s t i o n ' L O C A T E P R O G R A M A A D D R E S S : ? ' a t h b e g i n n i n g o t h p r o g r a m . N O T E y o m u s t E N T E R a p r o g r a mb e f o r e y o c a R U i t

2

Page 35: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 35/206

3 R U T h i s c o m m a n d e x e c u t e s y o u r p r o g r a m i m e m o r y s t a r t i n g f r o mt h f i r s t a d d r e s s i w a s t o r e d a t T h E N T E R c o m m a n d m u s t b u s e d p r i o r t o t h R U c o m m a n d .

4 W A T C HT h i s c o m m a n d a s k s y o u w h i c h a d d r e s s y o u w a n t t ' W A T C H ' .T h c o n t e n t s o t h a d d r e s s s p e c i f i e d w i l l b p r i n t e d b e f o r e a n a f t e r t h p r o g r a m i m e m o r y i R U N . T h i s i u s e d t o b s e r v e t h r e s u l t s o p r o g r a m .

5 N W A T C HT h i s c o m m a n d t u r n s o f t h W A T C H f e a t u r e .

6 C H A N G ET h i s c o m m a n d a s k s y o t h q u e s t i o n ' L O C A T E P R O G R A M A W H A T A D D R E S S : ? ' , a n i u s e d t c h a n g e t h s t o r a g e a d d r e s sw i t h o u t r e s t a r t i n g t h p r o g r a m .

7 M E M O R YT h i s c o m m a n d a s k s y o t h q u e s t i o n ' D I S A S S E M B L E F R O MW H A T A D D R E S S : ? ' I w i l l t h e n d i s a s s e m b l e ( p r o d u c e a s s e m b l yc o d e ) u s i n g t h c o n t e n t s o m e m o r y f r o m t h a d d r e s s s p e c i f i e df o o n s c r e e n . A n k e y e x c e p t w i l l p r o d u c e a n o t h e r s c r e e n o d i s a s s e m b l y . P r e s s t h k e t e x i t t n o r m a l c o m m a n d m o d e .

8 D U M PT h i s c o m m a n d a s k s y o t h q u e s t i o n ' D U M P M E M O R Y F R O MW H A T A D D R E S S : ? 1 I w i l l t h e n p r o d u c e a ' H e x a n A S C I I d u m p 'o m e m o r y f r o m t h a t a d d r e s s . I o t h e r w o r d s , i w i l l p r i n t o u t h c o n t e n t s o m e m o r y f r o m t h a t a d d r e s s a s e r i e s o h e b y t e s ,f o l l o w e d b y s e r i e s o c h a r a c t e r s w h i c h a r r e p r e s e n t e d b t h o s e n u m b e r s i t h A S C I I c h a r a c t e r c o d e .

9 L O A DT h i s c o m m a n d l o a d s a A L P A p r o g r a m s a v e d u s i n g t h S A V Ec o m m a n d i A L P A f r o m c a s s e t t e .

1 0 S A V ET h i s c o m m a n d s a v e s t h c u r r e n t A L P A p r o g r a m t c a s s e t t e f o L O A D i n g i f u t u r e t w o r k o w i t h o u t h a v i n g t t y p e i i a g a i n .

1 1 N E T h i s c o m m a n d c l e a r s t h e c u r r e n t A L P A p r o g r a m , t h E N T E Ra d d r e s s a n t h W A T C H a d d r e s s .

1 2 Q U I TT h i s c o m m a n d e x i t s A L P A a n r e t u r n s y o t B A S I C .

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

E N T E R c a n b e t y p e d a s E M E M O R Y c a n b e t y p e d a s M

N O T E : L i s t i L b u L I S T l i n e # # m u s t b t y p e d i f u l l .

2

Page 36: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 36/206

M e m o i y U s a g e i A L P AY o w i l l n o t i c e t h a t w h a v e , c o n s i s t e n t l y t h r o u g h o u t t h b o o k , u s e d o n l ya f e w a r e a s o m e m o r y f o o u p r o g r a m s a n o u d a t a . W h a v e n o d o n et h i s b e c a u s e t h e y a r t h e o n l y o n e s w h i c h w i l l w o r k , b u b e c a u s e w h a v e t r i e d t u s m e m o r y w h i c h w a r s u r e n o b o d y e l s e ( B A S I C , t h O p e r a t i n g S y s t e m a n A L P A i t s e l f ) w i l l b u s i n g .

T h p r o g r a m s t h a t r u w i t h i n t h e . c o m p u t e r a l t h t i m e , B A S I C a n t h O p e r a t i n g S y s t e m , u s s p e c i f i c a r e a s o m e m o r y t s t o r e t h e i r o w d a t ai n I i g o o d p r o g r a m m i n g p r a c t i c e t k n o w a n a v o i d t h e s e a r e a s t e n s u r e t h a t y o u r p r o g r a m d o e s n o s t o p t h O p e r a t i n g S y s t e m o B A S I Cf r o m f u n c t i o n i n g p r o p e r l y . ( R e m e m b e r A L P A i w r i t t e n i B A S I C . ) B c h e c k i n g t h r o u g h t h m e m o r y m a p s a n m e m o r y u s a g e c h a r t sp r o v i d e d i A p p e n d i c e s a n 1 0 y o w i l l b a b l e t o f i n d o t h e r a r e a s t u s e , b u t h r o u g h o u t t h b o o k w h a v e m a i n l y u s e d m e m o r y a t

$ C 0 0 $ C F F F$ 3 3 4 - $ 3 3$ F $ F ( z e r o p a g e )

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

I a p r o g r a m w r i t t e n i m a c h i n e c o d e l o o k s a i i i n e v e r g o i n g t q &s t o p , i m a w e l l n o t . T h w a t s t o p t h e s e p r o g r a m s i t h o l d d o w n yt o g e t h e r t h R U N - S T O P a n t h R E S T O R E k e y s . Y o w i l l b l e f t l o o k i n ga c l e a r s c r e e n w i t h " r e a d y " i t h l e f t h a n d c o r n e r . Y o a r n o i B A S I C .

T c o n t i n u e i A L P A w i t h y o u r p r o g r a m i n t a c t , t y p e G O T O 2 0 2 0 . T h i si a l s o t h p r o c e d u r e t f o l l o w i y o a c c i d e n t l y g e o u o A L P A , e . g . b p r e s s i n g R U N - S T O P . I t h i s d o e s n o w o r k , t y p e R U N . T h i s s h o u l d g e A L P A w o r k i n g a g a i n , b u t y o u r p r o g r a m w i l l b l o s t .

W h e n a s k e d t h q u e s t i o n , " L O C A T E P R O G R A M A A D D R E S S : ? " ,y o s h o u l d a l w a y s a n s w e r C 0 0 0 u n l e s s o t h e r w i s e i n s t r u c t e d .

W w i l l n o r e p e a t s o m e o t h p r o g r a m s w u s e d e a r l i e r t d e m o n s t r a t e t h u s e s o A L P A , e . g . ,

1 0 A 9 0 12 0 8 D 0 0 0 43 6

L D A # $ 0 1S T A $ 0 4 0 0R T

T h i s i t h p r o g r a m w u s e d a t h b e g i n n i n g o C h a p t e r 2 T u s A L P A ,t e s t i n g l o c a t i o n $ 4 0 0 ( 1 0 2 4 ) b e f o r e a n a f t e r t h p r o g r a m , t y p e t h n u m b e r s o t h l e f t h a n d s i d e o t h p r o g r a m a b o v e , e . g . ,

1 0 A 9 0 12 8 D 0 0 0 43 6

2

Page 37: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 37/206

T h c o m p u t e r w i l l p r i n t t h a s s e m b l y c o d e t t h r i g h t o t h l i n e . T w a t c h t h c h a n g e i l o c a t i o n $ 4 0 0 t y p e :

W A T C H . ( W H A T A D D R E S S ) = $ 4 0 0( I y o d i n o s e p r o g r a m l o c a t i o n t $ C 0 0 0 a t h b e g i n n i n g o A L P A ,d i n o u s i n g C H A N G E . ) T y p e E N T E R , p r e s s t h C L k e t c l e a r t h s c r e e n a n t y p e R U N . A l t e r i n g t h p r o g r a m i n o j u s t m a t t e r o c h a n g i n g t h l i n e / s c o n c e r n e d , e . g . ,

T y p e 1 0 A 9 1 8 L D A # $ 1 8L I S T t h p r o g r a m n o w .T y p e E N T E R , c l e a r t h s c r e e n w i t h t h C L k e y , a n R U i t

I w w a n t t o . ' w e c a d i s a s s e m b l e o u p r o g r a m i m e m o r y t m a k e s u r et h a t i h a b e e n e n t e r e d a w e x p e c t e d b y t y p i n g M E M O R Y ( A W H A TA D D R E S S : ? ) C 0 0 0 . T h l i s t i n g p r o d u c e d w i l l s h o w y o u r p r o g r a m a t h t o p , f o l l o w e d ( a f t e r y o u r R T S ) b y g a r b a g e . P r e s s t e x i t t h d i s a s s e m b l y a n L I S T t h p r o g r a m . I w w a n t t o w c a s a v e t h i s t c a s s e t t e .

N O T E : S A V E a n L O A D t a k e f e m i n u t e s e a c h t d o T y p e N E a n t r o u s o m e o t h e o t h e r p r o g r a m s i C h a p t e r 2 u s i n g

A L P A . R e m e m b e r t h a t A L P A t r e a t s a l n u m b e r s a h e n u m b e r s ( e x c e p tl i n e n u m b e r s ) a n t h a t C h a p t e r 2 u s e s d e c i m a l .

F u r t h e r f e a t u r e s o A L P A w i l l b d e s c r i b e d a s t h e y b e c o m e r e l e v a n t t t h c o m m a n d s b e i n g d i s c u s s e d .C h a p t e r S U M M A R Y1 W w i l l u s A L P A t e n t e r a l o o u m a c h i n e l a n g u a g e p r o g r a m s a f t e r

t h i s c h a p t e r .2 A L P A ' s c o m m a n d s ( w h i c h m a b a b b r e v i a t e d t t h f i r s t l e t t e r s ) a r

a f o l l o w s :L I S TE N T E RR U W A T C HN W A T C HC H A N G EM E M O R YD U M PL O A DS A V EN E Q U I T

3 A l t h o u g h w w i l l l i s t p r o g r a m s i t h f o r ml i n e # # I n s t r u c t i o n s i H e I n s t r u c t i o n s i A s s e m b l y C o d e

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

3

Page 38: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 38/206

C h a p t e rM i c r o p r o c e s s o r E q u i p m e n t

I t h p r e v i o u s f i v e c h a p t e r s w h a v e c o v e r e d l o o t h g r o u n d w o r kn e e d e d t u n d e r s t a n d t h i n t r i c a c i e s o f m a c h i n e c o d e p r o g r a m m i n g .M o r e o t h b a s i c s w i l l b i n t r o d u c e d a w g o n W h a v e c o v e r e de n o u g h a t h i s s t a g e t m o v e o t s u c h t h i n g s a u s i n g m a c h i n el a n g u a g e t d s o m e a r i t h m e t i c .

S t o r i n g n u m b e r sW k n o w f r o m C h a p t e r t h a t t h l a r g e s t n u m b e r w c a s t o r e i s i n g l eb y t e ( m e m o r y l o c a t i o n ) i 2 5 5 . W h a v e a l s o s e e n t h a t f o a d d r e s s e sb i g g e r t h a n 2 5 w c o u l d u s t w b y t e s t r e p r e s e n t t h e m i l o b y t e / h i g h b y t e f o r m a t s t h a t A d d r e s s l o b y t e 2 5 h i g h b y t e .

S u r e l y t h e n w c o u l d u s t h s a m e m e t h o d t r e p r e s e n t a n s o r t o fn u m b e r g r e a t e r t h a n 2 5 a n l e s s t h a n 6 5 5 3 6 ( 6 5 5 3 5 2 5 2 5 6 x2 5 5 ) , a n i f a c t i n e c e s s a r y t h i s c a b t a k e n e v e n f u r t h e r t r e p r e s e n te v e n h i g h e r n u m b e r s :

N u m b s b y t e 2 5 2 n b y t e 6 5 5 3 6 3 r b y t e + . . . e t c .

T h c a n y f l a gN o w , w h e n w a d t w b y t e n u m b e r s t o g e t h e r i i p o s s i b l e t h a t t h r e s u l t i g o i n g t b b i g g e r t h a n 2 5 5 . W h a t t h e n c a w d w i t h t h r e s u l to t h e a d d i t i o n ? I w p u t t h e r e s u l t i o n b y t e i c o u l d b n b i g g e r t h a n2 5 5 , s

2 0 1 9 4 0 m o 2 5 1 4 b u t a l s o

5 8 1 4 S u r e l y t h e r e i s o m e t h i n g w r o n g h e r e . W m u s t s o m e h o w b a b l e t

s t o r e t h e x t r a i n f o r m a t i o n l o s t w h e n r e s u l t i l a r g e r t h a n 2 5 5 . T h e r e i p r o v i s i o n f o r t h i s w i t h i n t h 6 5 1 0 m i c r o p r o c e s s o r i t h f o r m o s i n g l e

3

Page 39: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 39/206

b i ( s i n g l e f i n g e r ) ' f l a g 1 c a l l e d t h c a r r y f l a g . T h c a r r y f l a g i ' s e t ' ( t u r n e do n i r e s u l t i g r e a t e r t h a n 2 5 5 , e . g . ,

2 0 7 + 1 9 1 4 5 ; c a r r y5 8 8 1 4 5 ; c a r r y

N O T E : s i n g l e b i i l a r g e e n o u g h t c o v e r a l p o s s i b l e c a s e s o f c a r r y .1 1 1 1 1 1 1 1 2 5 1 1 1 1 1 1 1 1 + 2 5 5

V 1 1 1 1 1 1 1 0 2 5 4 c a r r y( c a r r y b i

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

3 0 A 7 + 2 C C 4 5 D 6 B

i d o n e i t h f o l l o w i n g m a n n e r :l o b y t e s

A C 6 c a r r yh i g h b y t e s3 2

( c a r r y b i t )

A n s w e r 5 D 6 B

A d d i n g n u m b e r s

T h a n d l e t h i s , t h m a c h i n e l a n g u a g e i n s t r u c t i o n t a d t w b y t en u m b e r s t o g e t h e r i A D ( a d d w i t h c a r r y ) . T h i s a d d s t h s p e c i f i e dn u m b e r ( o m e m o r y ) t t h a c c u m u l a t o r a n l e a v e s t h r e s u l t i t h a c c u m u l a t o r . T h i n s t r u c t i o n a u t o m a t i c a l l y a d d s i t h c a r r y b i t i t c a l c u l a t i o n . T h e r e f o r e s i n c e t h e c a r r y b i c o u l d b s e t a n y t h i n g b e f o r ey o p u s o m e t h i n g i i y o u r s e l f ( l i k e m e m o r y s e C h a p t e r 1 ) i i n e c e s s a r y t s e t h c a r r y t z e r o b e f o r e a a d d i t i o n i t h a t a d d i t i o n d o e sn o w a n t t a d t h c a r r y o p r e v i o u s c a l c u l a t i o n . T s e t h e c a r r y f l a gt z e r o w u s t h i n s t r u c t i o n C L ( C l e a r C a r r y f l a g ) b e f o r e s u c h A D C ' s .

3

Page 40: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 40/206

Page 41: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 41/206

T y p e t h f o l l o w i n g l i n e s :1 A 9 2 7 L D A # $ 2 71 5 1 8 C L 2 6 9 F 4 A D C # $ F 42 A 9 0 3 L D A # $ 0 33 0 6 9 1 4 A D # $ 1 4E N T E R a n R U t h p r o g r a m .a d d r e s s 3 3 b e f o r ea d d r e s s 3 3 a f t e r 1

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

2 F C a r r y 1

1 ( c a r r y )

1 N o c h a n g e l i n e 2 a n r e p e a t

2 0 6 9 2 0 A D # $ 2 0a d d r e s s 3 3 b e f o r e 1 a d d r e s s 3 3 a f t e r = 1

2 2 + 1 4 c a r r y ( c a r r y )

1 F r o m t h e s e w s e h o t h e c a r r y b i i ' c a r r i e d ' a l o n g f r o m t h r e s u l t o fo n a d d i t i o n t a n o t h e r .

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

T w b y t e a d d i t i o nS u p p o s e w w a n t t a d t h n u m b e r s 6 C 6 7 a n 4 9 B 2 .

6 C 6 74 9 B 2? ? ? ?

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

B + 4 / 1 ( c a r r y )^ c a r r y B

3

Page 42: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 42/206

C l e a r t h p r e v i o u s p r o g r a m u s i n g N E a n t h e n t y p e t h f o l l o w i n g :1 A 9 6 7 L D A # $ 6 72 1 C L 3 6 9 B 2 A D # $ B 24 8 D 3 4 0 3 S T A $ 3 3 45 A 9 6 C L D A # $ 6 C6 0 6 9 4 9 A D # $ 4 97 8 D 3 5 0 3 S T A $ 3 3 58 6 R T

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

E N T E R a n R U t h p r o g r a mA d d r e s s 3 3 b e f o r e ? A d d r e s s 3 3 a f t e r 1

N o t y p e :W A T C Hw a t c h w h a t a d d r e s s ? 3 3 R U A d d r e s s 3 3 b e f o r e ? A d d r e s s 3 3 5 a f t e r B

N o j o i n t h h i g h b y t e a n l o b y t e o t h r e s u l t s t o g i v e t h a n s w e r :6 C 6 74 9 B 2B 6 1 9

S u b t r a c t i n g n u m b e r s

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

s u b t r a c t c o m m a n d . S i m i l a r t t h A D c o m m a n d t h S B ( S u b t r a c tw i t h C a r r y ) u s e s t h c a r r y f l a g i i t c a l c u l a t i o n s . B e c a u s e o t h w a i w h i c h t h m i c r o p r o c e s s o r d o e s t h s u b t r a c t i o n , t h c a r r y b i i i n v e r t e d( b e c o m e s a n b e c o m e s 1 i t h c a l c u l a t i o n , t h e r e f o r e

b u - C A R R Y ( C A R R Y 1

_

3

Page 43: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 43/206

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

N E t c l e a r t h e p r o g r a m1 A 9 0 8 L D A # $ 0 82 1 C L 3 E 9 0 5 S B # $ 0 54 8 D 3 4 0 3 S T A $ 3 3 45 0 6 0 R T W A T C Hw a t c h w h a t a d d r e s s ? 3 3 E N T E R a n t h e n R U t h i s p r o g r a m .

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

T Y P E2 3 S E E N T E RR U

Y o w i l l n o s e t h a t w h a v e t h e c o r r e c t a n s w e r :

- - ^ J ( C A R R Y = 0 ) - ( C A R R Y = 1 )_

Y o m a h a v e w o n d e r e d h o t h m i c r o p r o c e s s o r h a n d l e s s u b t r a c t i o n sw h e r e t h r e s u l t i l e s s t h a n z e r o . T r f o e x a m p l e - 6 C h a n g el i n e 3 o t h p r o g r a m , E N T E R a n R U i t

3 E 9 0 E S B C # $ 0 EA d d r e s s 3 3 b e f o r e ? A d d r e s s 3 3 a f t e r F

- -

N O T E :

o

t h a tF

B O R R O W

F

1 0 c a r r y c l e a r e d t z e r o-

F

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

E 6 1 5 - 7 1 9 8

3

Page 44: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 44/206

H e r e i a e x a m p l e :T y p e N E 1 A 9 1 52 3 3 0 E 9 9 84 8 D 3 4 0 35 A 9 E 66 E 9 7 17 8 D 3 5 0 38 6

L D A # $ 1 5S E S B # $ 9 8S T A $ 3 3 4L D A # $ E 6S B # $ 7 1S T A $ 3 3 5R T

E N T E R a n R U t h i s , n o t i n g t h e r e s u l t s . U s W A T C H t o b s e r v e 3 3 t h h i g h b y t e o t h r e s u l t a n R U a g a i n . C o m b i n e t h e h i g h a n l o b y t e s o t h r e s u l t t g e t h a n s w e r 7 A I D .T h e s e i n s t r u c t i o n s A D a n S B c a b u s e d i m a n y a d d r e s s i n gm o d e s , l i k e m o s t o t h e r i n s t r u c t i o n s . I t h i s c h a p t e r w h a v e o n l y u s e di m m e d i a t e a d d r e s s i n g .

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

A e x e r c i s eW r i t e p r o g r a m t a d t h v a l u e $ 3 t t h c o n t e n t s o m e m o r y l o c a t i o n$ 3 3 4 u s i n g A D i t h ' a b s o l u t e ' a d d r e s s i n g m o d e , a n d p u t t h e r e s u l tb a c k t h e r e . U s W A T C H t o b s e r v e t h r e s u l t s .

N O T E h e r e :L D A # $ F FC L A D # $ 0 1

l e a v e s t h v a l u e $ i w i t h t h c a r r y s e t , a n L D A # $ 0 0S E S B # $ 0 1

l e a v e s t h v a l u e $ F i w i t h t h c a r r y c l e a r ( b o r r o w ) .T h e r e f o r e w h a v e w h a t i c a l l e d ' w r a p a r o u n d ' . C o u n t i n g u p a s t 2 5

w i l l s t a r t a g a i n f r o m 0 a n d o w n w a r d s p a s t z e r o w i l l c o n t i n u e f r o m 2 5 d o w n .

C h a p t e r S U M M A R Y1 A n s i z e n u m b e r m a b r e p r e s e n t e d b u s i n g m o r e t h a n b y t e .

N u m b 1 s b y t e 2 n b y t e 2 5 3 r b y t e 6 5 5 3 6 + . . . e t c .

3

Page 45: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 45/206

2 T h e 6 5 1 0 m i c r o p r o c e s s o r h a c a r r y f l a g w h i c h i s e t o s i g n i f y t h c a r r y o d a t a i n t o t h h i g h b y t e o t w b y t e a d d i t i o n .

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

4 A D s e t s t h c a r r y f l a g i t h r e s u l t i g r e a t e r t h a n 2 5 5 , a n c l e a r s i i i i n o t . T h a n s w e r l e f t i t h a c c u m u l a t o r i a l w a y s l e s s t h a n 2 5 6 .( R e s u l t M o 2 5 6 )

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

6 S B s e t s t h c a r r y f l a g i t h r e s u l t d o e s n o r e q u i r e b o r r o w ( 0 ) T h c a r r y i c l e a r e d i ( 0 a n t h r e s u l t l e f t i i 2 5 ( A - M ) .

7 T w b y t e a d d i t i o n :C L E A R C A R R Y

X A D L O B Y T E S ( C A R R Y 0 Y A D H I G H B Y T E S ( C A R R Y ? R e s u l t $ Y Y X X

8 T w b y t e s u b t r a c t i o n :S E T C A R R Y

X S U B T R A C T L O B Y T E S I N V E R S E ( C A R R Y 1 Y S U B T R A C T H I G H B Y T E S I N V E R S E ( C A R R Y ? R e s u l t $ Y Y X X

3

Page 46: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 46/206

C h a p t e rP r o g r a m C o n t r o l

S p r i t e sB a c k i C h a p t e r w s a w h o w w c o u l d d i s p l a y i n f o r m a t i o n o t h s c r e e n b p l a c i n g t h a t d a t a i ' s c r e e n m e m o r y ' . T h e r e i s p e c i a l ' c h i p 'i t h C 6 w h i c h h a n d l e s s c r e e n o r i e n t e d t a s k s . I i c a l l e d t h ' V I C - I I 'c h i p . ( b r i e f g u i d e t i a p p e a r s i A p p e n d i x 6 . U s i n g t h t e c h n i q u e s o a d d i t i o n a n s u b t r a c t i o n t h a t w l e a r n e d i t h p r e v i o u s c h a p t e r , w w i l ll o o k a s o m e o t h f e a t u r e s a v a i l a b l e o t h V I C - I I c h i p .

T y p e i t h f o l l o w i n g p r o g r a m , u s i n g A L P A :

N E N W A T C H1 A 9 0 12 8 D 1 5 D 03 8 D 2 7 D 04 8 D 4 0 2 05 A 9 3 26 8 D 0 0 D 07 8 D 0 1 D 08 0 6 0E N T E R a n R U N .

L D # $ 0 1S T A $ D 0 1 5S T $ D 0 2 7S T A $ 2 0 4 0L D # $ 3 2S T A $ D 0 0 0S T A $ D 0 0 1R T

T h i s s h o u l d p r o d u c e a s q u a r e b l o b o t h t o l e f t o t h s c r e e n . T h i ss q u a r e i k n o w n a ' s p r i t e ' . I i t h s i z e o n i n e c h a r a c t e r s b u c a n b em o v e d a b o u t t h s c r e e n e a s i l y , q u i c k l y a n Q v e r o t h e r c h a r a c t e r s . I i c o n t r o l l e d b t h r e g i s t e r s ( h a n d s ) o t h V I C - I I c h i p . T h e s e r e g i s t e r s a r s i m i l a r t t h r e g i s t e r s o t h m i c r o p r o c e s s o r b u i o r d e r t u s t h e md i r e c t l y t h e y h a v e b e e n ' m a p p e d ' o n t o m e m o r y f r o m D 0 0 0 t D 0 2 E . T h t e r m m a p p e d m e a n s t h a t t h e s e r e g i s t e r s h a v e b e e n p u o v e r t h m e m o r y . W h e n y o u a c c e s s t h m e m o r y , y o a r i f a c t d e a l i n g w i t h t h r e g i s t e r s o t h V I C - I I c h i p o w h a t e v e r e l s e m a b ' m a p p e d ' o v e r t h a tm e m o r y . T o u s t h d e s c r i p t i o n o t h p o s t o f f i c e b o x e s w w e r e u s i n gb e f o r e , y o c o u l d i m a g i n e t h i s s o r t o f m a p p e d m e m o r y a p o s t o f f i c eb o x e s w i t h f a l s e b o t t o m s , w i t h c h u t e s t h a t c o n n e c t t h b o t s o m e s o r to m a c h i n e s o m e w h e r e e l s e i t h p o s t o f f i c e .

3

Page 47: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 47/206

M o v i n g t h s p r i t eW h a t w a r g o i n g t d i w r i t e p r o g r a m t a n i m a t e t h a t s p r i t e , t m o v e i a r o u n d t h e s c r e e n .

T h t w r e g i s t e r s w h i c h c o n t r o l t h p o s i t i o n o t h s p r i t e s ( a n c o - o r d i n a t e s ) a r l o c a t e d a a d d r e s s e s D 0 0 0 a n D 0 0 1 . M o r e d e t a i l i g i v e n a b o u t t h i s i A p p e n d i x 6 O u p r o g r a m w i l l a d t t h c o - o r d i n a t e r e g i s t e r a l o c a t i o n D 0 0 0 s e v e r a l t i m e s t m o v e t h s p r i t eh o r i z o n t a l l y a c r o s s t h s c r e e n . T y p e t h f o l l o w i n g l i n e s o n t o t h p r o g r a m a l r e a d y e n t e r e d :

8 A D 0 0 D 0 L D A $ D 0 0 09 0 6 9 0 4 A D # $ 0 4

1 0 8 D 0 0 D 0 S T A $ D 0 0 01 1 0 6 9 0 4 A D # $ 0 41 2 8 D 0 0 D 0 S T A $ D 0 0 01 3 0 6 9 0 4 A D # $ 0 41 4 8 D 0 0 D 0 S T A $ D 0 0 01 5 0 6 9 0 4 A D # $ 0 41 6 8 D 0 0 D 0 S T A $ D 0 0 01 7 0 6 9 0 4 A D # $ 0 41 8 8 D 0 0 D 0 S T A $ D 0 0 01 9 6 R T E N T E R a n R U t h p r o g r a m .

Y o w i l l s e t h a t t h s p r i t e h a m o v e d a c r o s s t h s c r e e n . I p r o b a b l ym o v e d t o f a s t f o y o t s e i m o v e b u i o b v i o u s l y m o v e d . Y e t , w i t h a l t h o s e e x t r a m a c h i n e l a n g u a g e s t a t e m e n t s , i d i d n ' t m o v e v e r y f a r , a n c e r t a i n l y n o f o v e r y l o n g . H o t h e n d w g e t h s p r i t e t o m o v e r i g h ta c r o s s t h s c r e e n , a n h o d w g e i t k e e p m o v i n g f o r e v e r ? S u r e l yw c a n ' t j u s t k e e p a d d i n g m o r e s t a t e m e n t s ? W h a t w n e e d i c o m m a n d l i k e t h b a s i c ' G O T O ' c o m m a n d . W n e e d t p u t t h e a d d i n gi n s t r u c t i o n s i n s i d e l o o p s t h a t t h s a m e i n s t r u c t i o n s a r p e r f o r m e da g a i n a n a g a i n .

L o o p i n g u s i n g J M T h e r e i a i n s t r u c t i o n f o t h i s i i t h J M ( J U M P ) i n s t r u c t i o n .L i k e B A S I C ' S ' G O T O ' y o h a v e t t e l l t h e ' J M P ' w h e r e t j u m p t i t h f o r m J M a d d r e s s ( J M P L o B y t e H i g h B y t e ) ( A B S O L U T EA D D R E S S I N G ) .

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

4

Page 48: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 48/206

I N I T I A L I S E

1 0 X = X + 4G O T 0 1 0 0

T y p e t h f o l l o w i n g :1 9 1 8 1 7 1 6 1 5 1 4 1 3 1 2 1 1 4 C L 9 01 2 6

t d e l e t e t h e s e l i n e s .

J M P L 9 0R T

A L P A l i n e n u m b e r a d d r e s s i n gT h a d d r e s s i n g m o d e u s e d i l i n e 1 1 i n o a a d d r e s s i n g m o d e a a l l ,i i p a r t o A L P A . O n o A L P A ' s f e a t u r e s i t h a t i w i l l c a l c u l a t ea d d r e s s e s f o y o u . N o r m a l l y , w h e n u s i n g J M i a b s o l u t e a d d r e s s i n gm o d e , y o w o u l d h a v e t w o r k o u t t h e a d d r e s s y o w a n t t h J M c o m m a n d t g t w h i c h c a b n u i s a n c e a s i s h o w n i t h f o l l o w i n g s a m p l e s :

1 C 0 0 0 : 4 C 0 8 C 0C 0 0 3 : A 9 0 C 0 0 5 : 8 3 0 C 0 0 8 : 6 0

J M P $ C 0 0 8L D A # $ 0 2S T A $ 3 3 4R T

2 3 3 5 : 4 C 3 D 0 3 J M P S 3 3 D3 3 8 : A 9 0 2 L D A # $ 0 23 3 A : 8 D 3 4 0 S T A $ 3 3 43 3 0 : 6 0 R T

3 C 0 0 0 : 4 C 0 B C 0 J M P $ C 0 0 BC 0 0 3 : A 0 L D # $ 0 2C 0 0 5 : 1 8 C L C 0 0 6 : 6 9 0 A D # $ 0 4C 0 0 8 : 8 D 3 4 0 S T A $ 3 3 4C 0 0 B : 6 R T

4

Page 49: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 49/206

T c r e a t e p r o g r a m 2 f r o m p r o g r a m 1 I o t h e r w o r d s t m o v e t h s a m e p r o g r a m t d i f f e r e n t p a r t o m e m o r y ,y o w o u l d h a v e t g t h r o u g h t h w h o l e p r o g r a m , e a c h t i m e c h a n g i n ga l t h J M c o m m a n d s t h a t J M t a n a d d r e s s w i t h i n t h p r o g r a m , a n c h a n g i n g t h e m ( a n d o n l y t h e m ) t p o i n t t n e a d d r e s s .

T c r e a t e p r o g r a m 3 f r o m p r o g r a m 1 T h i s i d o n e b t h a d d i t i o n o f e s h o r t c o m m a n d s , s o m e t h i n g y o m i g h t o f t e n d w h i l e d e b u g g i n g . Y o w o u l d a l s o h a v e t c h a n g e a n J M c o m m a n d s t n e a d d r e s s . T h i s w o u l d o c o u r s e b e x t r e m e l yf r u s t r a t i n g , t i m e c o n s u m i n g a n d e r r o r p r o n e . T h e r e f o r e A L P A h a f a c i l i t y f o s p e c i f y i n g t h e a d d r e s s o t h J M a l i n e n u m b e r o t h p r o g r a m t y p e d i n t o A L P A ( l i n e n u m b e r i t h s o u r c e c o d e ) . W h e n t h p r o g r a m i E N T E R e d i n t o m e m o r y , A L P A c o n v e r t s t h i s r e f e r e n c e t l i n e n u m b e r t a a b s o l u t e a d d r e s s w h i c h t h m i c r o p r o c e s s o r c a u n d e r s t a n d .

L I S T t h p r o g r a m w t y p e d i p r e v i o u s l y .1 0 A 9 0 12 8 D 1 5 D 03 8 D 2 7 D 04 8 D 4 0 2 05 A 9 3 26 8 D 0 0 D 07 8 D 0 1 D 08 A O 0 0 D 09 6 9 0 4

1 0 8 D 0 0 D 01 1 4 C L 9 01 2 6 E N T E R t h p r o g r a m .

L D A # $ 0 1S T A $ D 0 1 5S T A $ D 0 2 7S T A $ 2 0 4 0L D # $ 3 2S T A $ D 0 0 0S T A $ D 0 0 1L D A $ D 0 0 0A D # $ 0 4S T A $ D 0 0 0J M L 9 R T

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

1 1 4 C L 9 09 6 9 0 4O

w h i c h i n d i c a t e s t h a t i t c a l c u l a t i o n o t h a d d r e s s o l i n e 9 ( L 9 0 ) h a b e e n d o n e . T y p e M E t g e l i s t i n g o t h p r o g r a m i m e m o r y :

D i s a s s e m b l e f r o m w h a t a d d r e s s ? C 0 0 0

4

Page 50: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 50/206

T h c o m p u t e r w i l l r e s p o n d w i t h :C 0 0 0 : A 9 0 C 0 0 2 : 8 D 1 5 D 0C 0 0 5 : 8 D 2 7 D 0C 0 0 8 : 8 D 4 0 2 0C 0 0 B : A 9 3 2C 0 0 D : 8 D C 0 1 0 : 8 D 0 1 D C 0 1 3 : A D 0 0 D 0C 0 1 6 : 6 9 0 C 0 1 8 : 8 D 0 0 D 0C 0 1 B : 4 C 1 6 C 0C 0 1 E : 6 0C 0 1 F : ?

L D A # $ 0 1S T A $ D 0 1 5S T A $ D 0 2 7S T A $ 2 0 4 0L D A # $ 3 2S T A $ D 0 0 0S T A $ D 0 0 1L D A $ D 0 0 0A D # $ 0 4S T A $ D 0 0 0J M P $ C 0 1 6R T

A y o c a s e A L P A h a c o r r e c t l y c a l c u l a t e d t h J M a d d r e s s .N o u s t h C H A N G E c o m m a n d t E N T E R t h p r o g r a m a $ 3 3 4 a n

d i s a s s e m b l e i t h e r e . A l o c a t i o n s $ 3 4 F t $ 3 5 1 y o w i l l s e t h a t A L P Ah a a g a i n c a l c u l a t e d t h a d d r e s s o t h j u m p c o r r e c t l y w i t h o u t y o h a v i n g t c h a n g e t h p r o g r a m . N o u s C H A N G E a g a i n t r e t u r n t h p r o g r a m t a d d r e s s $ C 0 0 0 . E N T E R t h p r o g r a m a n R U i t

Y o w i l l n o t i c e t h a t t h s p r i t e i m o v i n g a c r o s s t h s c r e e n a s p e e d st h a t m a k e i b l u r c o m p l e t e l y . T h i s i o n l y s m a l l i n d i c a t i o n o t h s p e e do a m a c h i n e c o d e p r o g r a m .I n f i n i t e l o o p sY o w i l l a l s o n o t i c e t h a t t h p r o g r a m i s t i l l g o i n g . J u s t l i k e t h p r o g r a m

1 1 0 G O T O 1 0 0

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

T h R U N / S T O P k e w i l l n o g e u o u o t h l o o p . T h e r e i m a c h i n ec o d e p r o g r a m w h i c h i p a r t o f B A S I C w h i c h t e s t s t o s e i t h r u n s t o pk e i b e i n g p r e s s e d , b u o u p r o g r a m d o e s n o l o o k a t h a t k e y b o a r d .T h e r e a r o n l y t w w a y s o g e t t i n g o u o m a c h i n e c o d e i n f i n i t e l o o p .O n w a i t p r e s s R U N / S T O P a n R E S T O R E k e y s a t h s a m e t i m e .T h i s c r e a t e s h a r d w a r e s i g n a l - N M I ( N o n M a s k a b l e I n t e r r u p t ) w h i c hw i l l s t o p t h c o m p u t e r a n d r e t u r n i t B A S I C . T h o t h e r w a t s t o p t h p r o g r a m i t t u r n t h c o m p u t e r o f f . P r e s s R U N / S T O P R E S T O R E t s t o p

4

Page 51: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 51/206

Page 52: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 52/206

B r a n c h i n s t r u c t i o n sT h o t h e r i n s t r u c t i o n w s a i d w w o u l d n e e d t w r i t e o u p r o g r a m , i o n w h i c h w o u l d j u m p t a a d d r e s s d e p e n d a n t o t h v a l u e s o t h p r o c e s s o r s t a t u s f l a g s . T h i s f o r m o i n s t r u c t i o n i c a l l e d ' b r a n c h 'i n s t r u c t i o n . I i d i f f e r e n t t t h J M i n s t r u c t i o n n o o n l y i t h f a c t t h a t i i c o n d i t i o n a l ( d e p e n d e n t o t h e c o n d i t i o n s o t h s t a t u s f l a g s ) , b u i i u n i q u e i t h a t i u s e s t h r e l a t i v e a d d r e s s i n g m o d e . R e l a t i v e a d d r e s s i n gm e a n s t h a t t h a d d r e s s u s e d i c a l c u l a t e d r e l a t i v e t t h b r a n c hi n s t r u c t i o n . M o r e w i l l b s a i d a b o u t r e l a t i v e a d d r e s s i n g a n t h w a b r a n c h i n s t r u c t i o n s w o r k a t h e n o t h i s c h a p t e r . M e a n w h i l e w w i l lu s A L P A t c a l c u l a t e t h e a d d r e s s f o u a w d i w i t h t h J M i n s t r u c t i o n .

Z e r o f l a gT t e s t i t h r e s u l t o f C M i n s t r u c t i o n i t h a t t h t w n u m b e r sc o m p a r e d w e r e e q u a l , a n b r a n c h i t h e y w e r e , w u s t h B E ( B r a n c ho E q u a l ) c o m m a n d .

T a d t h i s t o u p r e v i o u s m a c h i n e l a n g u a g e p r o g r a m t y p e :9 6 9 ( 9 1

1 1 C 9 6 41 2 ( 9 F 0 L 1 4 01 3 4 C L 9 01 4 0 6 0

A D # $ 0 1/ C M P # $ 6 4

B E Q L 1 4 0J M L 9 R T

L i n e 9 h a b e e n c h a n g e d s t h a t t h s p r i t e d o e s n o m o v e a f a i e a c h j u m p , h e n c e t h s p r i t e w i l l b s l o w e d d o w n . I w i l l s t i l l b m o v i n gt o f a s t t o b s e e n . L I S T , E N T E R a n R U t h i s p r o g r a m .

N O T E : A L P A h a c a l c u l a t e d a n ' O K ' e d b o t h a d d r e s s e s u s i n gl i n e n u m b e r .

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

P r o g r a m s u m m a r yl i n e s 1 0 8 i n i t i a l i s a t i o nl i n e s 9 0 - 1 3 0 s p r i t e m o v e m e n t l o o pl i n e s 1 1 1 2 t e s t f o e n c o n d i t i o nl i n e 1 4 E N

W h a v e m a n a g e d t f i n d w a t u s e a l o o p t h a t t e s t s f o c o n d i t i o no n w h i c h t j u m p o u o t h l o o p . W c o u l d h o w e v e r m a k e t h i s m o r ee f f i c i e n t b c r e a t i n g p r o g r a m t h a t l o o p e d u n t i l c e r t a i n c o n d i t i o n i r e a c h e d . T h d i f f e r e n c e i s u b t l e b u t i i s h o w n b t h i s B A S I C p r o g r a mi c o m p a r i s o n t t h p r e v i o u s o n e .

4

Page 53: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 53/206

1 P R I N T " H E L L O " ; X1 2 I F X O 1 0 4 G O T O 1 03 E N

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

T h i s p r o g r a m m i n g m e t h o d t r a n s l a t e s w e l l i n t o m a c h i n e l a n g u a g eu s i n g t h e B N ( B r a n c h o N o E q u a l ) c o m m a n d . T a c h i e v e t h i s t y p e :

1 2 D 0 L 9 0 B N E L 9 01 3

L I S T t h p r o g r a m a i c u r r e n t l y s t a n d s .

P r o g r a m s u m m a i yl i n e s 1 0 8 i n i t i a l i s a t i o nl i n e s 9 0 - 1 2 0 s p r i t e m o v e m e n t l o o pl i n e 1 4 E N

Y o w i l l s e t h a t b c h a n g i n g t h l o o p w h a v e u n t a n g l e d t h f l o w o t h p r o g r a m . E N T E R a n R U t h p r o r j r a m t v e r i f y t h a t i s t i l l f u n c t i o n st h s a m e d e s p i t e t h c h a n g e s . A y o c a s e e , t h e r e a r m a n y w a y s t w r i t e p r o g r a m . W h i c h i r i g h t a n w h i c h i w r o n g n o n c a s a y , b u t h b e t t e r p r o g r a m i s o t h e w h o l e , t h o n w h i c h i m o s t r e a d a b l e a n e a s i e s t t d e b u g . T h i s i t h m o s t e f f i c i e n t w a t w r i t e t h m o s t e f f i c i e n tc o d e .

T h e r e i l o w c a l e a r n b y k n o w i n g h o a i n s t r u c t i o n w o r k s . T h C M i n s t r u c t i o n f o e x a m p l e c o m p a r e s t w n u m b e r s b d o i n gs u b t r a c t i o n ( a c c u m u l a t o r m e m o r y ) w i t h o u t s t o r i n g t h r e s u l t . O n l y t h s t a t u s f l a g s a r s e o r e s e t . T h i n s t r u c t i o n s w h a v e j u s t u s e d ( B E Qa n B N E ) d n o r e f e r t h e i r ' e q u a l n e s s ' t t h n u m b e r s b e i n g c o m p a r e d .T h e y i f a c t t e s t t h s t a t u s r e g i s t e r s ' z e r o ' f l a g , a n s t a n d f o r :

B E B r a n c h o E q u a l t Z e r oB N B r a n c h o N o E q u a l t Z e r o .

I i t h e c o n d i t i o n o t h z e r o f l a g w h i c h i s e b t h r e s u l t o t h s u b t r a c t i o n d o n e b t h C M c o m m a n d ( a c c u m u l a t o r m e m o r yw h i c h s e t s t h z e r o f l a g 1 ) T h i s f l a g i t h e n t e s t e d b t h B E o B N c o m m a n d . T h i s m a s e e m t b a m e a n i n g l e s s p o i n t u n t i l y o r e a l i s et h a t , s i n c e t h C M c o m m a n d i d o n e b y s u b t r a c t i o n , t h e c a r r y f l a gw i l l a l s o b s e b t h r e s u l t . I o t h e r w o r d s , i t h s u b t r a c t i o n p e r f o r m e d

4

Page 54: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 54/206

b t h C M n e e d s ' b o r r o w ' ( M e 0 l e s s t h a n m e m o r y ) , t h e nt h e c a r r y w i l l b c l e a r e d ( C A R R Y 0 ) I t h s u b t r a c t i o n d o e s n o n e e d' b o r r o w ' ( M e m > 0 g r e a t e r t h a n o e q u a l t m e m p r y ) , t h e n t h c a r r y w i l l b s e ( C A R R Y 1 )

T h e r e f o r e t h C M c o m m a n d t e s t s n o o n l y M e b u a l s oM e a n A > M e m a n t h e r e f o r e ( i A > M e m b u M e m ) t h e nM e m . W c a n o w r i t e o u B A S I C p r o g r a m :

1 P R I N T " H E L L O " ; X1 2 I F X < 1 0 1 G O T O 1 03 E N

T h i s m a k e s t h p r o g r a m l i t t l e m o r e s e l f e x p l a n a t o r y . I s h o w s c l e a r l yt h a t v a l u e s o b i g g e r t h a n t h c u t o f f 1 0 w i l l n o b p r i n t e d . T t e s t f o t h a c c u m u l a t o r l e s s t h a n m e m o r y , y o u s C M f o l l o w e d b B C ( B r a n c h o C a r r y C l e a r ) b e c a u s e b o r r o w w i l l h a v e o c c u r r e d . T t e s t f o t h a c c u m u l a t o r g r e a t e r t h a n o e q u a l t m e m o r y , u s C M f o l l o w e d b B C ( B r a n c h o C a r r y S e t ) .

W r i t e m a c h i n e l a n g u a g e p r o g r a m t m o v e t h s p r i t e a c r o s s t h s c r e e n u s i n g t e s t f o m e m o r y ( a i p r e v i o u s B A S I C p r o g r a m s ) .

R e l a t i v e a d d r e s s i n gA l b r a n c h i n s t r u c t i o n s u s a a d d r e s s i n g m o d e c a l l e d r e l a t i v ea d d r e s s i n g ( J M P i n o b r a n c h i n s t r u c t i o n . ) I r e l a t i v e a d d r e s s i n g t h a d d r e s s ( t h e d e s t i n a t i o n o t h b r a n c h ) i c a l c u l a t e d r e l a t i v e t t h b r a n c h i n s t r u c t i o n . A l b r a n c h i n s t r u c t i o n s a r t w b y t e s l o n g o n b y t e s p e c i f y i n g t h e i n s t r u c t i o n a n t h o t h e r s p e c i f y i n g t h e a d d r e s s i s o m e w a y . T h i s w o r k s b t h s e c o n d b y t e s p e c i f y i n g a o f f s e t t t h a d d r e s s o t h f i r s t b y t e a f t e r t h i n s t r u c t i o n a c c o r d i n g t t h e t a b l e s i A p p e n d i x 4 F r o m 7 m e a n s a e q u i v a l e n t b r a n c h f o r w a r d a n f r o m8 F m e a n s a B r a n c h b a c k w a r d o 2 5 t h v a l u e . T h e r e f o r e :

F 0 0 3 B E Q t o h e r e8 D 3 4 0 S T A $ 3 3 4

t o h e r e 6 R T w i l l b t h s a m e n m a t t e r w h e r e i i p l a c e d i m e m o r y .

T h v a l u e a p a r t o t h b r a n c h i s n t r u c t i o n i t h n u m b e r o b y t e sf r o m t h b e g i n n i n g o t h n e x t i n s t r u c t i o n ( 8 D ) .

1 s n e x t b y t e ( 3 4 )2 n n e x t b y t e ( 0 3 )3 r n e x t b y t e ( 6 0 )

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

4

Page 55: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 55/206

C 0 0 0 : F 0 0 3 B E Q $ C 0 0 5C 0 0 2 : 8 D 3 4 0 S T A $ 0 3 3 4C 0 0 5 : 6 0 R T

a n 3 3 4 : F 0 0 3 B E Q $ 0 3 3 93 3 6 : 8 D 3 4 0 S T A $ 0 3 3 43 3 9 : 6 0 R T

T h m a c h i n e c o d e r e m a i n s t h s a m e b u t t h e d i s a s s e m b l e d v e r s i o nd i f f e r s . T h p r o g r a m w i l l w o r k e x a c t l y t h s a m e a e i t h e r a d d r e s s . T h i s i c o m p l e t e l y o p p o s i t e t t h c a s e o t h J M w h i c h u s e s a b s o l u t ea d d r e s s i n g a n c a n n o t b ' r e l o c a t e d ' ( m o v e d t a n o t h e r m e m o r ya d d r e s s ) . F o r t u n a t e l y w d n o h a v e t c a l c u l a t e t h o f f s e t s u s i n g t h t a b l e s , b e c a u s e t h e s e o f f s e t s w o u l d h a v e t b r e c a l c u l a t e d e v e r y t i m ea e x t r a i n s t r u c t i o n w a i n s e r t e d b e t w e e n t h b r a n c h c o m m a n d a n i t d e s t i n a t i o n . W h e n w u s t h b r a n c h c o m m a n d w e c a g e A L P A t c a l c u l a t e t h e o f f s e t v a l u e f o u u s i n g b r a n c h l i n e n u m b e r .

U s A L P A t o w r i t e s o m e p r o g r a m s w i t h b r a n c h e s i t h e m u s i n g t h el i n e n u m b e r f e a t u r e , a n d c h e c k A L P A ' s o u t p u t b d i s a s s e m b l i n g t h E N T E R E D c o d e a n v e r i f y t h a t t h b r a n c h t a k e s t h c o r r e c t p a t h u s i n gt h r e l a t i v e b r a n c h t a b l e i A p p e n d i x 4

C h a p t e r S U M M A R Y

1 s p r i t e i c h a r a c t e r t h s i z e o n i n e n o r m a l c h a r a c t e r s ( 3 w h i c h c a b m o v e d o v e r t h s c r e e n o t o o o t h e r c h a r a c t e r s b c h a n g i n g i t X c o - o r d i n a t e s c o n t a i n e d i o n o t h V I C - 1 1 s c r e e nc h i p ' s r e g i s t e r s .

2 T h c o m m a n d J M P a d d r e s s i e q u i v a l e n t t B A S I C ' S G O T Ol i n e n u m b e r c o m m a n d . I m a k e s t h p r o g r a m ' J u m p ' t t h a d d r e s ss p e c i f i e d .

3 A L P A h a n d l e s a d d r e s s e s i n t e r n a l t t h p r o g r a m b r e f e r r i n g t t h e mb l i n e n u m b e r , e . g . J M L 4 ( J u m p t l i n e 4 0 ) .

4 T b r e a k o u o a ' i n f i n i t e l o o p ' , p r e s s R u S t o p R e s t o r e . T s t a r tA L P A w i t h o u t l o s i n g y o u r p r o g r a m , t y p e g o t o 2 0 2 0 .

5 T h m i c r o p r o c e s s o r ' s S T A T U S C O D E R e g i s t e r h a s e v e n f l a g s ( a n do n b l a n k ) w h i c h a r s e b m a n y m a c h i n e c o d e i n s t r u c t i o n s .

6 B r a n c h i n s t r u c t i o n s j u m p c o n d i t i o n a l o t h s t a t e o t h f l a g r e f e r r e dt b t h i n s t r u c t i o n e . g .

4

Page 56: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 56/206

B E B r a n c h o E q u a lB N B r a n c h o n N o t E q u a lB C B r a n c h o C a r r y S e B C B r a n c h o n C a r r y C l e a r C

7 T h C M i n s t r u c t i o n c o m p a r e s t w b y t e s ( b d o i n g s u b t r a c t i o nw i t h o u t s t o r i n g t h r e s u l t ) . O n l y t h f l a g s a r s e b t h o u t c o m e .

F l a g s C A R R Y Z E R O S i g n i f i e s0 M e

V a l u e M e M e

> M e m8 R e l a t i v e a d d r e s s i n g m o d e , u s e d o n l y f o b r a n c h i n s t r u c t i o n s ,

s p e c i f i e s a a d d r e s s r e l a t i v e t t h i n s t r u c t i o n w h i c h u s e s i t e . g .B N 0 m e a n s b r a n c h m e m o r y a d d r e s s e s f o r w a r d ( s e e t a b l eA p p e n d i x 4 )

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

4

Page 57: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 57/206

Page 58: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 58/206

C h a p t e rC o u n t i n g , L o o p i n g a n P o i n t i n g

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

1 2 3 4 5

7 :

P R I N T " 7 * 3 = " ; TI w o u l d b m u c h e a s i e r a n d m o r e p r a c t i c a l ( e s p e c i a l l y f o l a r g en u m b e r s ) t d t h i s i l o o p , e . g . ,

1 2 3 4 5

7

B - I F B O 0 G O T O 2 0P R I N T " 7 * 3 = " ; T

N O T E : t h i s i b n m e a n s t h b e s t w a t m u l t i p l y t w o n u m b e r s , b u w a r o n l y i n t e r e s t e d i t h i n s t r u c t i o n s h e r e . p r e f e r r e d m e t h o d i d e s c r i b e d i C h a p t e r 1 0

C o u n t i n g u s i n g t h a c c u m u l a t o rI t h i s s h o r t p r o g r a m , u n l i k e a n o t h e r p r o g r a m w h a v e d e a l t w i t hp r e v i o u s l y , t h e r e a r t w v a r i a b l e s . A w h i c h w a r a d d i n g t t h t o t a l ,a n B w h i c h c o n t r o l s t h l o o p . I t h i s c a s e w c o u l d n ' t s t o p o u r l o o p a w h a v e d o n e i t h p a s t b t e s t i n g t h t o t a l , b e c a u s e w w o u l d h a v e t k n o w t h a n s w e r b e f o r e w c o u l d w r i t e t h p r o g r a m . O u m a c h i n el a n g u a g e p r o g r a m w o u l d l o o k , a l o n g t h l i n e s o w h a t w h a v e d o n ep r e v i o u s l y , l i k e t h i s :

5

Page 59: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 59/206

L D A # $ 0 0S T A AL D A # $ 0 3S T A B

l o o p L D C L A D # $ 0 7S T A AL D A BS E S B # $ 0 1S T A BB N l o o pR T

C o u n t i n g u s i n g m e m o r yM o s t o t h i s p r o g r a m c o n s i s t s o l o a d i n g a n s t o r i n g b e t w e e n t h a c c u m u l a t o r a n m e m o r y . S i n c e w s o f t e n s e e m t b a d d i n g o s u b t r a c t i n g t h e n u m b e r o n f r o m v a l u e a c o u n t e r , o f o o t h e rr e a s o n s , t h e r e a r s p e c i a l c o m m a n d s t d t h i s f o u s I N ( I n c r e m e n tM e m o r y ) a d d s t t h c o n t e n t s o t h a d d r e s s s p e c i f i e d a n p u t s t h er e s u l t b a c k i m e m o r y a t h s a m e a d d r e s s . T h s a m e g o e s f o D E ( D e c r e m e n t M e m o r y ) , e x c e p t t h a t i s u b t r a c t s f r o m m e m o r y .

N O T E : I N a n D E d n o s e t h e c a r r y f l a g t h e y d s e t h z e r of l a g .

W w i l l n o w r i t e t h p r o g r a m t h u s :1 A 9 0 32 8 D 3 4 0 33 A 9 0 04 1 5 0 6 9 0 76 C E 3 4 0 37 D 0 L 4 08 8 D 3 5 0 39 6

W A T C H a d d r e s s ? 3 3 E N T E RR U

L D # $ 0 3S T A $ 3 3 4L D # $ 0 0C L A D # $ 0 7D E $ 3 3 4B N L 4 S T A $ 3 3 5R T

P r o g r a m s u m m a r yl i n e s 1 0 - 3 0 I n i t i a l i s el i n e s 4 7 0 L o o p u n t i l R e s u l t o D E l i n e 8 0 — 9 0 E n

5

Page 60: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 60/206

U s i n g I N o D E w c a u s e a n y m e m o r y a c o u n t e r , l e a v i n g t h a c c u m u l a t o r f r e e t d o t h e r t h i n g s .A e x e r c i s eR e w r i t e t h p r e v i o u s p r o g r a m u s i n g I N C a n d C M t o t e s t f o t h e n o t h l o o p .

T h a n r e g i s t e r sT h e r e a r h o w e v e r e v e n e a s i e r w a y s o c r e a t i n g c o u n t e r s t h a n u s i n gI N a n D E C . L o o k i n g b a c k t C h a p t e r 2 w m e n t i o n e d t h a t t h 6 5 1 0m i c r o p r o c e s s o r h a t h r e e g e n e r a l p u r p o s e r e g i s t e r s A a n Y T h e n f o t h l a s t f e c h a p t e r s w h a v e b e e n t a l k i n g s o l e l y o t h m o s tg e n e r a l p u r p o s e r e g i s t e r , t h r e g i s t e r t h a c c u m u l a t o r . S o y o m a n o a s k , w h a t a r e t h e o t h e r ' h a n d s ' o t h m i c r o p r o c e s s o r , t h a n r e g i s t e r s , u s e d f o r ?

A n w h a t d o e s ' g e n e r a l p u r p o s e ' m e a n ? W e l l , s f a w h a v e m e t o n en o n - g e n e r a l - p u r p o s e r e g i s t e r t h p r o c e s s o r s t a t u s r e g i s t e r ( t h e r e a r a n o t h e r t w w h i c h w w i l l m e e t i f u t u r e c h a p t e r s ) . T h s t a t u s b y t e c a o n l y b u s e d t c o n t a i n s t a t u s f l a g s a n n o t h i n g e l s e , a c o m p a r e d t t h a c c u m u l a t o r w h i c h c a h o l d a n n u m b e r b e t w e e n a n d 2 5 5r e p r e s e n t i n g a n y t h i n g . T h a n r e g i s t e r s c a n , l i k e t h a c c u m u l a t o r ,h o l d a n n u m b e r b e t w e e n a n 2 5 5 , b u t h e r e a r m a n y f u n c t i o n s o t h a c c u m u l a t o r t h a t t h e y c a n n o t d o e . g . A d o r S u b t r a c t . T h a n r e g i s t e r s a r e x t r e m e l y u s e f u l a c o u n t e r s .

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

L D L O A D A C C U M U L A T O R W I T H M E M O R YL D L O A D W I T H M E M O R YL D L O A D W I T H M E M O R YS T S T O R E A C C U M U L A T O R T M E M O R YS T S T O R E T M E M O R YS T S T O R E Y T M E M O R YI N I N C R E M E N T M E M O R Y " !I N I N C R E M E N T H M P L I E D A D D R E S S I N G M O D EI N I N C R E M E N T

D E D E C R E M E N T M E M O R Y " ]D E D E C R E M E N T I M P L I E D A D D R E S S I N G M O D ED E D E C R E M E N TC M C O M P A R E A C C U M U L A T O R W I T H M E M O R YC P C O M P A R E W I T H M E M O R YC P C O M P A R E W I T H M E M O R Y

5

Page 61: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 61/206

U s i n g t h r e g i s t e r a a c o u n t e rW w i l l n o r e w r i t e o u m u l t i p l i c a t i o n p r o g r a m u s i n g t h r e g i s t e r a t h c o u n t e r . T y p e

N E W A T C H1 A 2 0 32 A 9 0 03 1 4 6 9 0 75 C 6 D 0 L 3 07 8 D 3 5 0 38 6 E N T E RR U

( W H A T A D D R E S S ? ) 3 3 L D X # $ 0 3L D A # $ 0 0C L A D # $ 0 7D E B N L 3 S T A $ 3 3 5R T

T h i s r o u t i n e i s l i g h t l y s h o r t e r a n c o n s i d e r a b l y f a s t e r t h a n t h o r i g i n a lb u o t h e r w i s e n o a l t h a t d i f f e r e n t . R e w r i t e a l t h c o m m a n d s u s i n g t h r e g i s t e r , r e p l a c i n g t h e m w i t h t h e e q u i v a l e n t r e g i s t e r c o m m a n d .P r a c t i s e u s i n g t h e a n r e g i s t e r s i p l a c e o t h a c c u m u l a t o r w h e r ep o s s i b l e i t h p r o g r a m s i p r e v i o u s c h a p t e r s .

M o v i n g b l o c k s o m e m o r yH o w o u l d y o w r i t e p r o g r a m t m o v e b l o c k o m e m o r y f r o m p n p l a c e t a n o t h e r ? e . g . t m o v e t h m e m o r y f r o m C 1 0 0 C 1 5 0 t t h m e m o r y a C 2 0 0 C 2 5 0 . O b v i o u s l y w c o u l d n o w r i t e i a s

L D A $ C 1 0 0S T A $ C 2 0 0L D A $ C 1 0 1S T A $ C 2 0 1L D A $ C 1 0 2

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

W c o u l d w r i t e t h p r o g r a m :L D A $ C 1 0 0S T A $ C 2 0 0

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

5

Page 62: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 62/206

m o d i f y i n g c o d e ' . B u t , b e c a u s e i c h a n g e s i t s e l f , i i v e r y d a n g e r o u s t u s e . I i c o n s i d e r e d v e r y p o o r p r o g r a m m i n g p r a c t i c e t u s i b e c a u s ei i p r o n e t e r r o r s o c a t a s t r o p h i c p r o p o r t i o n s ( w r i t i n g o v e r t h w r o n gp a r t s o t h p r o g r a m a n d t h e n t r y i n g t o e x e c u t e i w i l l p r o b a b l y c a u s ey o t h a v e t t u r n y o u r c o m p u t e r o f a n o a g a i n b e f o r e y o c a c o n t i n u e ) . S e l f m o d i f y i n g c o d e i a l s o e x t r e m e l y d i f f i c u l t t d e b u g . I i a i n t e r e s t i n g c o n c e p t b u d n o u s i w i t h i n s e r i o u s p r o g r a m . S e l fm o d i f y i n g c o d e i t h e r e f o r e o b v i o u s l y n o t t h e a n s w e r t o u r p r o b l e m .

T h a n s w e r i f a c t , l i e s i a d d r e s s i n g m o d e s . O r i g i n a l l y w c a l l e da d d r e s s i n g m o d e s w a y s o a c c e s s i n g d a t a a n m e m o r y i d i f f e r e n tw a y s a n f o r m a t s . W h a v e s f a s e e n :

I m p l i e d a d d r e s s i n gT h d a t a i s p e c i f i e d a p a r t o t h i n s t r u c t i o n , e . g . S E C , D E Y .

R e l a t i v e a d d r e s s i n gA d d r e s s i n g r e l a t i v e t t h i n s t r u c t i o n u s o n l y i b r a n c h e s .

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

Z e r o p a g e a d d r e s s i n gT h d a t a i s p e c i f i e d b b y t e a d d r e s s a n h e n c e m u s t b w i t h i n t h f i r s t 2 5 b y t e s o m e m o r y .

I n d e x e d a d d r e s s i n gO u n e m e t h o d o a d d r e s s i n g i c a l l e d ' i n d e x e d a d d r e s s i n g 1 . I f i n d st h d a t a t b u s e d i t h i n s t r u c t i o n b a d d i n g o n b y t e ' i n d e x ' t o t h a b s o l u t e a d d r e s s s p e c i f i e d i t h i n s t r u c t i o n . T h i n d e x i n g b y t e i t a k e nf r o m t h o r e g i s t e r ( d e p e n d i n g o t h i n s t r u c t i o n u s e d ) . T h a n r e g i s t e r s a r c a l l e d ' I n d e x ' r e g i s t e r s .

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

5

Page 63: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 63/206

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

N E 1 A 2 0 02 B D C 8 0 43 9 D F 0 O 44 E 5 0 E 0 2 86 D O L 2 07 6 E N T E R

L D X # $ 0 0L D A $ 0 4 C 8 , XS T A $ 0 4 F 0 , XI N C P # $ 2 8B N E L 2 0R T

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

B D C 8 0 4 L D A $ 0 4 C 8 , XB 9 C 8 0 4 L D A $ 0 4 C 8 , Y

I i t h i n s t r u c t i o n , n o t h a d d r e s s f i e l d , w h i c h c h a n g e s i t h a c t u a lm a c h i n e c o d e . R U t h p r o g r a m . A y o c a s e e , w h a v e u s e d s c r e e nm e m o r y a g a i n t s h o w t h a t w h a v e i f a c t d u p l i c a t e d b l o c k o m e m o r y . O n l i n e o t h s c r e e n w i l l b c o p i e d o n t o t h l i n e b e l o w ( t h e6 t l i n e o n t o t h 7 t l i n e ) . B s u r e t h a v e t e x t o t h 6 t l i n e t s e t h e f f e c t !

N o n - s y m m e t r y o c o m m a n d sI f a w a s u g g e s t e d w h e n w i n t r o d u c e d t h a n t h r e g i s t e r s , y o h a v e s u b s t i t u t e d t h o f o t h a c c u m u l a t o r i s o m e o t h e a r l yp r o g r a m s , y o m a b w o n d e r i n g i w c o u l d d t h a t h e r e . T h a n s w e r i n o N o a l t h c o m m a n d s c a u s a l o t h a d d r e s s i n g m o d e s . N e i t h e r

n o ( o b v i o u s l y n o t X c a u s t h i n d e x , a d d r e s s i n g m o d e b e i n gu s e d h e r e w i t h t h s t o r e ( S T A ) . ( I i p o s s i b l e t d L D A D D R . X b u n o S T A D D R . X ) . F o l i s t o a l a d d r e s s i n g m o d e s p o s s i b l e f o e a c hi n s t r u c t i o n , d o n ' t f o r g e t A p p e n d i x 1

S e a r c h i n g t h r o u g h m e m o r yW c a u s t h k n o w l e d g e w h a v e g a i n e d u t t h i s p o i n t t a c h i e v es o m e i n t e r e s t i n g t a s k s q u i t e s i m p l y . F o e x a m p l e , i a s k e d t f i n d t h f o u r t h o c c u r r e n c e o c e r t a i n n u m b e r , e . g . A w i t h i n 2 5 b y t e s o g i v e n a d d r e s s , h o d w d i t

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

5

Page 64: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 64/206

L D Y # $ 0 0L D # $ A 9

l o o p C M P $ F 0 0 0 , YB E f o u n dI N B N l o o pR T S ( N O T H A V I N G F O U N D A f r o m F 0 0 0- F 0 F F )

f o u n d R T ( H A V I N G F O U N D a A 9

W w o u l d p u c o u n t e r p r o g r a m a r o u n d t h i s r o u t i n e :L D # $ 0 0

C O U N T L O O P F I N D ' A 9 'I N C P # $ 0 4B N C O U N T L O O P

W c a n c o m b i n e t h e s e i n t o s i n g l e p r o g r a m t h u s :1 A 2 0 02 0 A 0 0 03 A 9 A 94 D 9 0 0 F 05 F 0 L 9 06 C 7 D 0 L 4 07 8 E 3 4 0 38 0 6 09 0 E 8

1 0 0 E 0 0 41 1 D 0 L 6 01 1 8 E 3 4 0 31 2 0 6 0

L D # $ 0 0L D Y # $ 0 0L D A # $ A 9C M P $ F 0 0 0 , YB E L 9 I N B N L 4 S T X $ 0 3 3 4R T I N C P # $ 0 4B N L 6 S T X $ 0 3 3 4R T

I t h i s p r o g r a m — w h e n f i n i s h e d , i 4 t h e n t h e f o u r t h o c c u r r e n c e o A w a a $ F 0 0 0 ( t h r o u g h R T l i n e 1 2 0 ) ,

— i X < 4 , t h e r e w e r e n o f o u r o c c u r r e n c e s o A f r o m$ F 0 0 0 t $ F 0 F F ( t h r o u g h R T l i n e 8 0 ) ,

— l i n e 1 1 c o n t i n u e s t h f i n d r o u t i n e f r o m t h ' I N Y ' . I i s t a r t e d f r o m t h ' C M P ' i w o u l d s t i l l b l o o k i n g a t h ' A 9 ' i f o u n d b e f o r e .

T y p e W A T C H a d d r e s s ? 3 3 E N T E R a n R U t h i s p r o g r a m . T h r e s u l t s w i l l t e l l y o w h e t h e r f o u r' A 9 ' s ' w e r e f o u n d . C h a n g e t h p r o g r a m t t e l l y o w h e r e t h f o u r t h ' A 9 'w a f o u n d ( S T Y $ 3 3 4 ) . E N T E R a n R U i a g a i n t s e t h r e s u l t s . V e r i f yt h i s u s i n g t h m e m o r y D U M P c o m m a n d o A L P A ( a d d r e s s ? F 0 0 0 ) .

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

5

Page 65: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 65/206

4 5 6 7 8 9

1 0 1 1 1 2

7 1 1

C F 0 L 1 1 0D 9 F F E FD 0 L 4 0E E 0 0 4D 0 L 4 08 E 3 4 0 36

I N B E Q L 1 1 0C M P $ E F F F , YB N L 4 I N C P X # $ 0 4B N L 4 S T X $ 0 3 3 4R T

A s s h o w n b e f o r e , t h i s ' u n t a n g l e d ' p r o g r a m s h o u l d b e a s i e r t f o l l o w .L I S T

l i n e s 1 0 3 i n i t i a l i s a t i o nl i n e s 4 0 7 F i n d ' A 9 ' l o o pl i n e s 8 0 — 1 0 0 C o u n t e rl i n e s 1 1 0 — 1 2 0 E n

( S i n c e i i n c r e m e n t e d b e f o r e i i u s e d , i t i n i t i a l i n d e x v a l u e i 1 T h e r e f o r e t h c o m p a r e i n s t r u c t i o n s a d d r e s s f i e l d h a b e e n s e b a c k b 1

E N T E R a n R u t h p r o g r a m . T h W A T C H f u n c t i o n w i l l s h o w y o t h r e s u l t s : t h c o n t e n t s o $ 0 3 3 4 c o n t e n t s o n u m b e r o A 9 ' s ' f o u n d .( T h e m a x i m u m i w i l l f i n d i s t i l l y o u c a n c h a n g e t h i s i l i n e 9 i y o w i s h ) .

U s i n g m o r e t h a n o n i n d e xW w i l l n o w r i t e a p r o g r a m u s i n g b o t h i n d e x r e g i s t e r s t i n d e x d i f f e r e n td a t a a t h s a m e t i m e . O u p r o g r a m w i l l c r e a t e l i s t o a l t h n u m b e r sl o w e r t h a n $ 3 f r o m $ F 0 0 0 t $ F 0 F F . T y p e t h f o l l o w i n g :

N E 1 0 A 2 0 02 0 A 0 F F3 C 4 0 B 9 0 0 F 05 0 C 9 3 86 0 B 0 L 9 07 0 9 D 0 0 C 28 0 E 89 0 C 0 F F

1 0 0 D 0 L 3 01 1 0 8 E 3 4 0 31 2 0 6 0W A T C H

L D X # $ 0 0L D Y # $ F FI N L D A $ F 0 0 0 , YC M # $ 3 8B C L 9 S T A $ C 2 0 0 , XI N C P Y # $ F FB N E L 3 0S T X $ 0 3 3 4R T ( w h a t a d d r e s s ? ) 3 3

5

Page 66: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 66/206

h e r e i u s e d a p o i n t e r ( i n d e x ) t w h e r e w a r s t o r i n g o u r e s u l t s .i u s e d a p o i n t e r t w h e r e w a r r e a d i n g o u r d a t a f r o m . N O T E h e r et h a t s t a r t s a t $ F F , i i n c r e m e n t e d a n s a t h f i r s t $ A t h r e g i s t e rc o n t a i n s z e r o .

T t e s t f o n u m b e r s l e s s t h a n $ 3 w h a v e u s e d C M a n B C ( A M e s e C h a p t e r 6 t s k i p t h s t o r e a n i n c r e m e n t s t o r a g e p o i n t e ri n s t r u c t i o n s . E N T E R a n R U t h i s p r o g r a m . U s t h m e m o r y D U M Pf e a t u r e ( a d d r e s s ? C 2 0 0 ) t c h e c k t h a t t h n u m b e r s s t o r e d a r l e s s t h a n$ 3 8 .

Z e r o p a g e i n d e x e d a d d r e s s i n gA l t h e i n d e x i n g i n s t r u c t i o n s w h a v e u s e d s f a h a v e b e e n i n d e x e df r o m a a b s o l u t e a d d r e s s ( a b s o l u t e i n d e x e d a d d r e s s i n g ) . I i a l s op o s s i b l e t i n d e x f r o m z e r o p a g e a d d r e s s ( s e e C h a p t e r 2 z e r o p a g ei n d e x e d a d d r e s s i n g ) . T r e w r i t e t h p r e v i o u s p r o g r a m t l o o k t h r o u g ht h f i r s t 2 5 b y t e s o m e m o r y ( 0 - 2 5 5 ) , a l w n e e d t d i c h a n g e l i n e4 t L D $ 0 0 , Y B u t , i y o c h e c k w i t h t h l i s t o i n s t r u c t i o n s i A p p e n d i x1 t h e r e i n ' L D A z e r o p a g e , Y o n l y ' L D A z e r o p a g e , X . W h a v e t w c h o i c e s o w h a t t d h e r e . I p r a c t i c e w w o u l d p r o b a b l y c o n t i n u eu s i n g t h a b s o l u t e i n d e x e d i n s t r u c t i o n .

B D 0 0 0 0 L D A $ 0 0 0 0 ,F o t h p u r p o s e s o t h i s e x e r c i s e , h o w e v e r , w w i l l s w a p a l t h

u s a g e s o t h a n t h Y a n u s L D z e r o p a g e , X T y p e :1 A 0 0 02 A 2 F F3 E 4 0 B 5 0 07 9 9 0 0 C 28 C 9 0 E 0 F F

1 1 8 C 3 4 0 3L I S TE N T E R a n R U

L D Y # $ 0 0L D X # $ F FI N L D A $ 0 0 , XS T A $ C 2 0 0 , YI N C P X # $ F FS T $ 0 3 3 4

T h i s s h o w s t h a t y o m u s t b c a r e f u l w i t h y o u r c h o i c e o r e g i s t e r s .A l t h o u g h t h e y c a n d o m a n y o t h s a m e t h i n g s , t h e r e a r s o m ec o m m a n d s w h i c h c a n n o t b d o n e b s o m e r e g i s t e r s i s o m ea d d r e s s i n g m o d e s . I i w i s e t c o n s t a n t l y r e f e r t t h l i s t o i n s t r u c t i o n si A p p e n d i x w h i l e w r i t i n g p r o g r a m s .C h a p t e r S U M M A R Y1 I N a d d s o n t t h c o n t e n t s o m e m o r y a t h a d d r e s s s p e c i f i e d .2 D E s u b t r a c t s o n f r o m t h c o n t e n t s o m e m o r y a t h a d d r e s s

s p e c i f i e d .

5

Page 67: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 67/206

3 T h z e r o f l a g ( b u t n o t h c a r r y ) i s e b t h e s e i n s t r u c t i o n s .4 T h e s e a r u s e d m o s t l y a l o o p c o u n t e r s t k e e p t h a c c u m u l a t o r f r e e

f o o t h e r t h i n g s .5 a n Y t h m i c r o p r o c e s s o r ' s o t h e r t w g e n e r a l p u r p o s e r e g i s t e r s

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

a b s o l u t e ( o z e r o p a g e ) a d d r e s s u s e d t c a l c u l a t e t h f i n a l a d d r e s so t h d a t a t b u s e d .

7 M a n y o t h i n s t r u c t i o n s a r s i m i l a r i u s e d o A o Y b u t t h e r e a r c e r t a i n i n s t r u c t i o n s a n a d d r e s s i n g m o d e s w h i c h a r n o t a v a i l a b l ef o e a c h r e g i s t e r . W h e n w r i t i n g p r o g r a m s , m a k e s u r e t h i n s t r u c t i o n sy o a r t r y i n g t o u s e x i s t i t h f o r m a t y o w i s h t u s t h e m i n

6

Page 68: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 68/206

C h a p t e rU s i n g I n f o r m a t i o n S t o r e d i T a b l e s

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

D i s p l a y i n g c h a r a c t e r s a g r a p h i c sO n s u c h c o n v e r s i o n , f o w h i c h t h e r e i n f o r m u l a t h a t c a n b e u s e d , i t h c o n v e r s i o n f r o m s c r e e n c o d e t t h s h a p e o t h c h a r a c t e rd i s p l a y e d o t h e s c r e e n . N o r m a l l y t h i s i d o n e b t h c o m p u t e r ' sh a r d w a r e a n w d n o h a v e t w o r r y a b o u t i t W h e n w e a r i g r a p h i c sm o d e , h o w e v e r , t h i s p a r t o t h c o m p u t e r ' s h a r d w a r e i t u r n e d o f f . I n o r m a l c h a r a c t e r s c r e e n m o d e , o u p o s t o f f i c e b o x e s w i t h i n s c r e e nm e m o r y d i s p l a y t h r o u g h t h e i r ' g l a s s ' f r o n t s t h c h a r a c t e r w h i c hc o r r e s p o n d s t t h n u m b e r s t o r e d i t h a t b o x . T h a t i s w a r s e e i n gw h a t i i t h b o t h r o u g h s o m e s o r t o f ' f i l t e r ' w h i c h c o n v e r t s e a c hn u m b e r i n t o d i f f e r e n t s h a p e t d i s p l a y o t h s c r e e n . I g r a p h i c sm o d e , t h i s ' f i l t e r 1 i t a k e n a w a y a n w h a t w s e i e a c h b i ( f i n g e r ) o e a c h n u m b e r s t o r e d t h r o u g h o u t s c r e e n m e m o r y . F o e a c h b i t i n e a c hb y t e w h i c h i t u r n e d o n t h e r e i d o ( p i x e l ) o t h s c r e e n . F o r e a c h b i w h i c h i t u r n e d o f t h e r e i b l a c k d o o t h s c r e e n .

I o t h e r w o r d s t h e b y t e $ 1 w h i c h l o o k s l i k e l O I P I P 1 1 | O I 0 I O I 1 | w o u l db d i s p l a y e d o t h s c r e e n a e i g h t d o t s , t h r e e b l a c k d o t s f o l l o w e d b o n w h i t e d o t , f o l l o w e d b t h r e e b l a c k d o t s , f o l l o w e d b o n w h i t ed o t . D e p e n d i n g o y o u r t e l e v i s i o n , y o m a b a b l e t s e t h d o t sm a k i n g u t h c h a r a c t e r s o y o u r s c r e e n . E a c h c h a r a c t e r i m a d e u b

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

6

Page 69: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 69/206

F o e x a m p l e , t h c h a r a c t e r w o u l d l o o k l i k e :8 x p i x e l g r i d

1 5

E U W t H J Zl _ y j ■ ! ■ ■ ^ ■ ■ ■ ^_ ■ i = n

b i n a r y b y t ee q u i v a l e n t

0 0 0 1 1 0 0 00 0 1 0 0 1 0 00 1 0 0 0 0 1 00 1 1 1 1 1 1 00 1 0 0 0 0 1 00 1 0 0 0 0 1 00 1 0 0 0 0 1 00 0 0 0 0 0 0 0

h e x a d e c i m a l b y t ee q u i v a l e n t

1 2 4 7 4 4 4

T h i s s t r i n g o e i g h t b y t e s 1 8 , 2 4 , 4 2 , 7 E , 4 2 , 4 2 , 4 2 , 0 — i e x a c t l y w h a tw f i n d i t h ' c h a r a c t e r g e n e r a t o r ' m e m o r y .G r a p h i c s m e m o i yT h m e m o r y a d i s p l a y e d i g r a p h i c s m o d e d o e s n o r u s i m p l y a c r o s st h e s c r e e n . I n o r m a l c h a r a c t e r m o d e w s a t h a t $ 4 0 0 w a o t h t o l e f t o t h e s c r e e n , $ 4 0 1 n e x t t t h a t , $ 4 0 2 n e x t t t h a t , a n s o t t h e n o t h f i r s t r o a $ 4 2 7 . $ 4 2 8 w a a g a i n t h f i r s t c h a r a c t e r i t h s e c o n d r o w , d i r e c t l y u n d e r $ 4 0 0 a n s o f o 1 0 0 0 b y t e s ( 2 r o w s 4 c h a r s ) . I n g r a p h i c s m o d e , h o w e v e r , i d o e s n o t r u n s s i m p l y . B y t e $ 4 0 1i a g a i n i t h t o l e f t o t h e s c r e e n , b u t $ 4 0 2 a p p e a r s u n d e r t h a t , $ 4 0 3u n d e r t h a t a n s o u n t i l $ 4 0 7 . A f t e r $ 4 0 7 , $ 4 0 8 a p p e a r s o t h t o r o n e x t t $ 4 0 1 , $ 4 0 9 a p p e a r s u n d e r $ 4 0 8 a n s o t i l l $ 4 0 F ; $ 4 1 0a p p e a r s n e x t t $ 4 0 8 a n s o n I t h i s w a t h s c r e e n m e m o r y i d e f i n e d o n c h a r a c t e r b l o c k a t i m e ( e i g h t b y t e s v e r t i c a l l y ) a c r o s s t h s c r e e n . T h i s g o e s o f o a l f o r t y c h a r a c t e r p o s i t i o n s a c r o s s t h s c r e e n .

T h i s m e a n s t h a t t h e r e a r f o r t y b y t e s b e i g h t b i t s ( 4 3 2 p i x e l s )a c r o s s t h s c r e e n . I a l s o m e a n s t h a t t h p o s i t i o n u n d e r n e a t h $ 4 0 7 w i l lb a $ 4 0 0 4 b y t e s h o r i z o n t a l l y b y t e s v e r t i c a l l y $ 4 0 0 $ 3 2 0$ 4 0 0 + $ 1 4 0 $ 5 4 0 .

$ 4 0 0$ 4 0 9

$ 4 0 3$ 4 Q A

$ 4 0 4 $ 4 g C$ 4 0 5 $ 4 Q D$ 4 0 6$ 0 $ 4 0 7

$ 4 0 E$ 4 0 F

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

$ 5 4 8

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

l $ 5 3 0 $ 5 3 8$ 5 3 9$ 5 3 B$ 5 3 C$ 5 3 D$ 5 3 EI I 5 3 F

- 3 2 0

2 0

6

Page 70: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 70/206

T h e n t i r e s c r e e n i 3 2 2 0 p i x e l s a n t a k e s u 3 2 2 0 - * 8 0 0 0b y t e s o m e m o r y . T h e s t a r t i n g p o i n t o s c r e e n m e m o r y i b o t h g r a p h i c sa n c h a r a c t e r m o d e c a b c h a n g e d t s u i t t h p r o g r a m m e r ( s e eA p p e n d i x 6 ) I t h i s c a s e , s c r e e n m e m o r y w i l l o v e r l a p w i t h o u B A S I Cp r o g r a m ( s e e A p p e n d i x 6 ) W w i l l a c t u a l l y b a b l e t s e t h B A S I Cp r o g r a m ( A L P A ) o t h s c r e e n a s e r i e s o d o t s . I i v i t a l l y i m p o r t a n tt h a t w m a k e s u r e w d n o o v e r w r i t e t h i s p r o g r a m w h i l e d r a w i n g o t h s c r e e n .

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

C o p y i n g t h c h a r a c t e r s e t s f r o m R O T y p e i t h f o l l o w i n g p r o g r a m . I w i l l c o p y s o m e o t h c h a r a c t e r s e t sd o w n f r o m c h a r a c t e r m e m o r y t w h e r e t h e y c a b m o r e e a s i l y u s e d .( D o n ' t w o r r y a b o u t t h o s e i n s t r u c t i o n s n o y e c o v e r e d . )

N E 1 A 9 F E2 2 D 0 E D C3 8 D 0 E D C4 A 9 F B5 2 5 0 16 8 5 0 17 A 2 0 08 B D 0 0 D 09 9 D 0 0 C F

1 0 B D 0 0 D 81 1 9 D 0 0 C E1 2 0 E 81 3 D 0 L 8 01 4 A 9 0 41 5 0 5 0 11 6 8 5 0 11 7 A 9 0 11 8 0 D 0 E D C1 9 8 D 0 E D C2 0 6 N W A T C H

L D # $ F EA N D $ D C 0 ES T A $ D C 0 EL D A # $ F BA N $ 0 S T A $ 0 1L D X # $ 0 < 9L D A $ D 0 0 0 , XS T A $ C F 0 0 , XL D A $ D 8 0 0 , XS T A $ C E 0 0 , XI N B N L 8 L D # $ 0 4O R A $ 0 1S T A $ 0 1L D # $ 0 1O R A $ D C 0 ES T A $ D C 0 ER T

E N T E R a n R U t h i s p r o g r a m .Y o n o h a v e c o p i e s o t h f i r s t t h i r t y t w c h a r a c t e r s f r o m b o t hc h a r a c t e r s e t s a $ C E 0 0 a n $ C F 0 0 ( s e e A p p e n d i x 1 1 ) .

6

Page 71: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 71/206

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

N E 1 A 9 0 82 8 D 0 0 C D3 0 A 9 0 54 8 D 0 1 C D5 A 9 0 C6 8 D 0 2 C D7 8 D 0 3 C D8 A 9 0 F9 8 D 0 4 C D

1 0 0 6 0E N T E R a n R U t h i s

W n o h a v e t a b l e s i

L D A # $ 0 8S T A $ C D 0 0L D A # $ 0 5S T A $ C D 0 1L D A # $ 0 CS T A $ C D 0 2S T A $ C D 0 3L D A # $ 0 FS T A $ C D 0 4R T

p r o g r a m .m e m o r y :

C D 0 0 - > M e s s a g e t b p r i n t e dC E 0 0 - > S e c h a r a c t e rC F 0 0 - S e c h a r a c t e r s

S e v e r a l t h i n g s m u s t b n o t e d i t h g r a p h i c s m o d e w w i l l b u s i n g i t h f o l l o w i n g p r o g r a m .1 S c r e e n C O L O U R m e m o r y , w h i c h w w i l l m e n t i o n i A p p e n d i x 6 w i l l

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

2 W h a v e u s e d v e r y n o n - s t a n d a r d s e t u p o g r a p h i c s a n c o l o u rs c r e e n s h e r e b o t h f o s i m p l i c i t y a n t d e m o n s t r a t e p o i n t . W h a v ep u C O L O U R m e m o r y a $ 4 0 5 ) ( 1 0 2 4 ) $ 8 0 8 ) ( 2 0 4 8 ) . S c r e e ng r a p h i c s m e m o r y w e h a v e p u f r o m $ $ 2 0 0 0 ( 8 1 9 2 ) . T h e r e f o r e o u rs c r e e n w i l l d i s p l a y d a t a f r o m $ t $ 2 0 0 0 .W w i l l a c t u a l l y b a b l e t s e e B A S I C ' S a n t h O p e r a t i n g S y s t e m ' s

v a r i a b l e s o z e r o p a g e ( s e e A p p e n d i x 9 ) W w i l l b a b l e t s e t h s y s t e m s t a c k ( s e e C h a p t e r 1 2 ) , A L P A , t h p r o g r a m w h a v e t y p e d a B A S I C v a r i a b l e s , a n t h v a l u e s i c o l o u r m e m o r y . T h i s w i l l a l b v e r yc o n f u s i n g t s e e , e s p e c i a l l y a e a c h b y t e w i l l a p p e a r a s t r i n g o e i g h td o t s .

S i n c e w c a s e t h e s e t h i n g s i m e m o r y o t h e s c r e e n , w m u s t b c a r e f u l n o t d r a w t h e r e o w w i l l o v e r w r i t e t h i s i m p o r t a n t d a t a . W w i l lb d r a w i n g i b y t e s s t a r t i n g f r o m $ 4 0 0 . T h i s , a y o k n o w , i a l s o b e i n gu s e d a C O L O U R m e m o r y , s t h a t a w s t o r e e a c h b y t e y o w i l l s e c h a r a c t e r o t h s c r e e n c h a n g e c o l o u r .

6

Page 72: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 72/206

W h e r e w i l l o u d r a w i n g s a p p e a r ?G r a p h i c s m e m o r y a w h a v e a r r a n g e d i s t a r t s a t $ a n w a r d r a w i n g s t a r t i n g f r o m $ 4 ( 9 ( 9 . S i n c e e a c h c h a r a c t e r r o i ( a w h a v ea l r e a d y s a i d ) 4 ( $ 1 4 0 b y t e s l o n g , o u d r a w i n g w i l l a p p e a r a $ 4 0 0 / $ 1 4 0 w h i c h i o t h f o u r t h c h a r a c t e r r o w , e i g h t c h a r a c t e r s a l o n g .W a r d r a w i n g f i v e c h a r a c t e r s b y t e b b y t e . A e i g h t b y t e s p e c h a r a c t e r w w i l l b s t o r i n g 4 b y t e s . W h a v e s a i d t h a t c o l o u r m e m o r yc o i n c i d e s w i t h w h e r e w w i l l b d r a w i n g o t h g r a p h i c s s c r e e nm e m o r y . T h e r e f o r e t h f i r s t f o r t y b y t e s o c o l o u r m e m o r y w i l l b a l t e r e da n t h t o l i n e o t h s c r e e n w i l l b e c o m e v a r i e t y o d i f f e r e n t c o l o r s .N O T E a l s o t h a t t h s c r e e n i c l e a r e d b H O M E b e f o r e t h p r o g r a m s t h a t t h c o m p u t e r d o e s n o s c r o l l t h s c r e e n t p r i n t s o m e t h i n g w h e n i i f i n i s h e d . T h i s w o u l d s c r o l l c o l o u r m e m o r y a l s o , a n o u c o l o u r s w o u l db s h i f t e d a n t h l e t t e r s w h a d r a w n w o u l d b l o s t a t h t o o t h c o l o u r m e m o r y s c r o l l .

S C R E E N S C R O L L T o l i n e i l o s t i s c r o l l .

W c a n o s t a r t o t h p r o g r a m p r o p e r . T y p e :N E

A 9 0 F L D A # $ 0 FA 2 F F L D X # $ F F9 D 0 0 0 4 S T A $ 4 0 ( 9 , XC D E D 0 L 3 B N E L 3A 9 1 0 L D A # $ 1 08 D 1 8 D 0 S T A $ D 0 1 8

1 A 9 3 B L D A # $ 3 B1 8 D 1 1 D 0 S T A $ D 0 1 11 A 0 0 0 L D Y # $ 0 01 8 C 0 0 C C S T Y $ C C 0 01 8 C 0 1 C C S T Y $ C C 0 11 B E 0 0 C D L D X $ C D 0 0 , Y2 A 9 F 8 L D A # $ F 82 1 C L 2 4 6 9 0 8 A D # $ 0 82 C D E 2 E 0 F F C P X # $ F F3 D 0 L 2 2 B N E L 2 2

6

Page 73: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 73/206

3 A 3 A E 0 0 C C3 A 9 0 83 8 D 0 2 C C4 B 9 0 0 C E4 C 4 9 D 0 0 0 44 E 4 C E 0 2 C C5 D 0 L 4 05 8 E 0 0 C C5 A C 0 1 C C5 C 5 C 0 0 66 D 0 L 1 66 6

T A L D X $ C C 0 0L D # $ 0 8S T A $ C C 0 2L D A $ C E 0 0 , YI N S T A $ 0 4 0 0 , XI N D E C $ C C 0 2B N L 4 S T X $ C C 0 0L D Y $ C C 0 1I N C P Y # $ 0 6B N E L 1 6R T

N O T E : t h i s p r o g r a m w i l l l e a v e y o i g r a p h i c s m o d e . T r e c o v e r ,p r e s s R u n - S t o p - R e s t o r e a n t y p e G O T O 2 0 2 0 .

P r o g r a m s u m m a r yL i n e s 1 — s e c o l o u r s .L i n e s 1 2 — 1 3 s e u g r a p h i c s m o d e .L i n e s 1 4 — 1 6 s e t z e r o p r i n t p o s i t i o n p o i n t e r ( a C C 0 0 ) a n r e a d

c h a r a c t e r f r o m m e s s a g e p o i n t e r ( C C 0 1 ) .L i n e s 1 6 1 g e t c h a r a c t e r t b p r i n t e d n e x t .L i n e s 2 0 — 3 0 f i n d t h s t a r t o t h d a t a f o t h c h a r a c t e r t b p r i n t e d b

m u l t i p l y i n g t h v a l u e b y ( b y t e s p e c h a r ) .L i n e 3 T A Y . T h i s i n s t r u c t i o n ( T r a n s f e r A c c u m u l a t o r t Y m e r e l y

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

L i n e s 3 6 — 3 8 s e u c o u n t e r t l i m i t t h d a t a c o p y i n g a $ C C 0 2 .L i n e s 4 0 — 5 0 c o p y t h d a t a f r o m i t p l a c e i t h e t a b l e t i t p l a c e o

t h e s c r e e n , i n d e x i n g b o t h p o i n t e r s a i g o e s .L i n e 5 s a v e s t h p o i n t e r t w h e r e w a r p r i n t i n g o t h s c r e e n

f o u s e b y t h e n e x t c h a r a c t e r ( $ C C 0 0 ) .L i n e s 5 4 — 6 0 i n c r e m e n t t h p o i n t e r t t h l i s t o l e t t e r s w h i c h m a k e u

o u m e s s a g e a n l o o p b a c k t p r i n t t h n e x t , u n l e s s t h e yh a v e a l b e e n p r i n t e d .L i n e 6 E N E N T E R P r e s s C L a n R U t h i s p r o g r a m .Y o w i l l n o t i c e t h a t i h a p r i n t e d o u m e s s a g e ' H E L L O ' n e a r t h t o l e f th a n d c o r n e r o t h s c r e e n .

6

Page 74: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 74/206

I n d i r e c t i n d e x e d a d d r e s s i n gT h e r e w i l l b s o m e c a s e s w h e r e y o m a b u n s u r e a t w h i c h t a b l ey o w a n t t o f i n d y o u r d a t a i n I o t h e r w o r d s , i m a g i n e a p r o g r a m w h i c hl e t s y o d e c i d e w h e t h e r y o w a n t e d t p r i n t t h m e s s a g e i u p p e r o l o w e r c a s e l e t t e r s a f t e r t h p r o g r a m h a r u n . Y o w i l l w a n t t u s o n o t h t w t a b l e s d e c i d e d o m i d w a y t h r o u g h t h p r o g r a m . T h i s c o u l d b d o n e b h a v i n g t w n e a r l y i d e n t i c a l p r o g r a m s , e a c h a c c e s s i n gd i f f e r e n t t a b l e i m e m o r y a n h a v i n g t h b e g i n n i n g o t h p r o g r a md e c i d e w h i c h o t h t w t u s e . O c o u r s e , t h i s i w a s t e f u l o m e m o r y . T a c c e s s d a t a b t h i s m e t h o d , t h e r e i a a d d r e s s i n g m o d e c a l l e d i n d i r e c ti n d e x e d a d d r e s s i n g , w h i c h a l l o w s y o u e v e n g r e a t e r f l e x i b i l i t y a t w h e r e y o u m u s t p l a c e y o u r d a t a . I n d i r e c t i n d e x e d a d d r e s s i n g i j u s t l i k ea b s o l u t e i n d e x e d a d d r e s s i n g , e x c e p t t h a t t h a b s o l u t e a d d r e s s i n o p a r t o t h i n s t r u c t i o n b u i h e l d i t w s u c c e s s i v e z e r o p a g e l o c a t i o n sa p o i n t e d t b t h i n d i r e c t i n d e x e d i n s t r u c t i o n . I o t h e r w o r d s , t h c o n t e n t s o t h z e r o p a g e a d d r e s s p o i n t e d t b t h i n d i r e c t i n d e x e di n s t r u c t i o n , i t h l o b y t e o l o b y t e / h i g h b y t e p a i r w h i c h c o n t a i n s a a d d r e s s w h i c h i t h e n i n d e x e d b t h i n d e x r e g i s t e r t o b t a i n t h e f i n a la d d r e s s . ( I n d i r e c t i n d e x e d a d d r e s s i n g i a l w a y s i n d e x e d u s i n g t h r e g i s t e r . )

I m a g i n e t h f o l l o w i n g s i t u a t i o n , u s i n g o u p o s t o f f i c e b o a n a l o g y . Y o a r h a n d e d a i n s t r u c t i o n t l o o k i b o ( z e r o p a g e ) . T h n u m b e r y o f i n d i t h a t b o a n t h b o n e x t t i t g t o g e t h e r t m a k e a a b s o l u t ea d d r e s s ( l o w b y t e / h i g h b y t e f o r m a t ) . Y o a r e t h e n t o l d t a d a i n d e x( Y t t h i s a d d r e s s t f i n d t h a d d r e s s y o u a r l o o k i n g f o r .

T h m n e m o n i c f o t h i s a d d r e s s i n g m o d e i Q Q ( Z P ) , Yw h e r e Q Q i a i n s t r u c t i o n , e . g . L D

Z i o n b y t e z e r o p a g e a d d r e s sa n t h i o u t s i d e t h b r a c k e t s t s i g n i f y t h a t t h i n d i r e c t i o n i t a k e nf i r s t , a n t h i n d e x e d a d d e d l a t e r .

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

W w i l l n o a l t e r o u p r o g r a m t d t h i s . T y p e :4 B 1 F D

A 9 C F8 5 F E

1 A 9 0 01 8 5 F DL I S T

L D A ( $ F D ) , YL D A # $ C FS T A $ F EL D # $ 0 0S T A $ F D

E N T E R a n R U t h i s p r o g r a m .P r e s s R U N S T O P - R E S T O R E t e x i t , G O T O 2 0 2 0 .

N o b o n l y c h a n g i n g t h L D l i n e t A 9 C E L D # $ C E , t h i ss a m e p r o g r a m w i l l n o c h a n g e c a s e . T y p e i l i n e a n E N T E R a n R U i t

6

Page 75: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 75/206

J u s t f o i n t e r e s t s a k e , c h a n g e l i n e t l o a d v a l u e w h i c h i n o $ C o $ C F , e . g . $ 4 7 . T h i s w i l l m a k e t h p r o g r a m l o o k f o i t d a t a a s o m ea d d r e s s o t h e r t h a n w h e r e w p l a c e d o u c h a r a c t e r d a t a . N O T E t h a t t h p r o g r a m w i l l s t i l l w o r k , b u t w h a t i p r i n t s o u w i l l b m e a n i n g l e s s . T h c o m p u t e r c a n n o t t e l l t h d i f f e r e n c e b e t w e e n m e a n i n g f u l a n m e a n i n g l e s s d a t a .

R e g i s t e r t r a n s f e r i n s t r u c t i o n sB a c k i l i n e 3 o o u p r o g r a m , w s n u c k i a i n s t r u c t i o n w h i c h y o uh a d n ' t p r e v i o u s l y m e T A ( T r a n s f e r i n t o Y ) . T h i s i o n l y o n o g r o u p o q u i t e s i m p l e i n s t r u c t i o n s u s e d t c o p y t h c o n t e n t s o o n r e g i s t e r i n t o a n o t h e r .

T h a v a i l a b l e i n s t r u c t i o n s a r e :

T A ( T r a n s f e r i n t o X T A ( T r a n s f e r i n t o Y T X ( T r a n s f e r i n t o A T Y ( T r a n s f e r i n t o A

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

N O T E : t h e r e i n i n s t r u c t i o n t o t r a n s f e r b e t w e e n a n Y I n e c e s s a r y t h i s m u s t b e d o n e t h r o u g h A

T h e r e a r t w a d d r e s s i n g m o d e s w h a v e n o t y e t c o v e r e d w h i c h w w i l l b r i e f l y t o u c h o h e r e . T h f i r s t i c a l l e d I n d e x e d I n d i r e c t A d d r e s s i n g .N o i i n o t h o n w h a v e j u s t c o v e r e d , t h a t w a I n d i r e c t I n d e x e dA d d r e s s i n g . T h o r d e r o t h w o r d s e x p l a i n s t h o r d e r o t h e o p e r a t i o n s .P r e v i o u s l y w s a i n d i r e c t i n d e x e d i t h f o r m Q Q ( Z P ) , Y , w h e r e t h i n d i r e c t i o n w a p e r f o r m e d f i r s t f o l l o w e d b t h i n d e x i n g . I i n d e x e di n d i r e c t , Q Q ( Z P . X ) , t h i n d e x i n g i d o n e f i r s t t c a l c u l a t e t h e z e r op a g e a d d r e s s w h i c h c o n t a i n s t h f i r s t b y t e o a t w o b y t e a d d r e s s ( l o wb y t e / h i g h b y t e f o r m a t ) , w h i c h i t h e e v e n t u a l d e s t i n a t i o n o t h i n s t r u c t i o n .

I m a g i n e t h a t y o u h a d a t a b l e o a d d r e s s e s i z e r o p a g e . T h e s ea d d r e s s e s p o i n t t d a t a o s e p a r a t e t a b l e s i m e m o r y . T f i n d t h f i r s tb y t e o t h e s e t a b l e s , y o w o u l d u s t h i s i n s t r u c t i o n t o i n d e x t h r o u g h t h z e r o p a g e t a b l e a n u s t h c o r r e c t a d d r e s s t f i n d t h d a t a f r o m t h t a b l e y o u w e r e l o o k i n g f o r . I t e r m s o p o s t o f f i c e b o x e s , w a r s a y i n gh e r e i t h n u m b e r o p o s t o f f i c e b o ( z e r o p a g e ) . A d t o t h a t a d d r e s st h v a l u e o t h i n d e x i n g b y t e ( r e g i s t e r ) . F r o m t h a t c a l c u l a t e d a d d r e s s ,a n f r o m t h b o n e x t t i ( l o w b y t e / h i g h b y t e ) , w c r e a t e t h a d d r e s sw h i c h w w i l l u s t f i n d t h d a t a w w a n t t w o r k o n

6

Page 76: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 76/206

I n d i r e c t a d d r e s s i n gT h l a s t a d d r e s s i n g m o d e w e w i l l c o v e r i c a l l e d I n d i r e c t A d d r e s s i n g .T h e r e i o n l y o n i n s t r u c t i o n w h i c h u s e s i n d i r e c t a d d r e s s i n g a n t h a t i t h J M c o m m a n d .

T h J M c o m m a n d u s i n g a b s o l u t e a d d r e s s i n g ' J u m p s ' t h p r o g r a mt t h a d d r e s s s p e c i f i e d i t h i n s t r u c t i o n ( l i k e G O T O i B A S I C ) .

I i n d i r e c t a d d r e s s i n g , ' J M P ( A d d r ) ' , t h t w b y t e ( a b s o l u t e ) a d d r e s sw i t h i n t h b r a c k e t s i u s e d t p o i n t t a a d d r e s s a n y w h e r e w i t h i nm e m o r y w h i c h h o l d s t h l o b y t e o t w b y t e a d d r e s s w h i c h i t h d e s t i n a t i o n o t h i n s t r u c t i o n . I o t h e r w o r d s , t h i n s t r u c t i o n p o i n t s t a a d d r e s s t h a t , w i t h t h e n e x t a d d r e s s i m e m o r y , s p e c i f i e s t h d e s t i n a t i o no t h j u m p . I p o s t o f f i c e b o t e r m s , t h i s m e a n s t h a t y o a r h a n d e d t h n u m b e r o b o x . Y o l o o k i t h a t b o x a n d t h b o n e x t t i t p i e c et o g e t h e r ( l o w b y t e / h i g h b y t e f o r m a t ) t h e a d d r e s s w h i c h t h J M i n s t r u c t i o n w i l l u s e . T h m a j o r u s o t h i s i n s t r u c t i o n i i w h a t i k n o w na v e c t o r e d i n p u t o r o u t p u t . F o e x a m p l e , i y o w r i t e a p r o g r a m w h i c hj u m p s d i r e c t l y t t h R O o u t p u t c h a r a c t e r a d d r e s s t p r i n t c h a r a c t e r ,a n y o t h e n w a n t t h o u t p u t t b s e n t t t h e d i s k i n s t e a d , y o u w o u l dh a v e t c h a n g e t h J M i n s t r u c t i o n . U s i n g t h v e c t o r e d o u t p u t , t h p r o g r a m d o e s J M i n d i r e c t o R A m e m o r y l o c a t i o n . I t h e d i s ko p e r a t i n g s y s t e m i t o l d t t a k e c o n t r o l o o u t p u t , i s e t s u t h v e c t o rl o c a t i o n s s J M i n d i r e c t w i l l g t i t p r o g r a m s . I o u t p u t i d i r e c t e d t t h s c r e e n , t h o s e m e m o r y l o c a t i o n s w i l l h o l d t h e a d d r e s s o t h R O p r i n t i n g r o u t i n e s , a n y o u r p r o g r a m w i l l o u t p u t t h r o u g h t h e r e . H e r e i l i s t o d i f f e r e n t a d d r e s s i n g m o d e s a v a i l a b l e o t h 6 5 1 0 :

I m p l i e d Q Q A b s o l u t e Q Q a d d rZ e r o p a g e Q Q Z I m m e d i a t e Q Q Q # b y t eR e l a t i v e B Q B y t e ( f r o m A L P A )

^ A b s o l u t e X Q Q Q a d d r . Xl n d e x P r i ^ A b s o l u t e ' Q Q a d d r ' Ym a e x e a ^ Z e r o p a g e , X Q Q Q Z P . X

x Z e r o p a g e , Y Q Q Q Z P . YI n d i r e c t i n d e x e d Q Q ( Z P ) , YI n d e x e d i n d i r e c t Q Q ( Z P , X )I n d i r e c t J M ( a d d r )a l s oA c c u m u l a t o r Q Q

( A o p e r a t i o n p e r f o r m e d o t h a c c u m u l a t o r , s e e C h a p t e r 1 0 . )

6

Page 77: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 77/206

C h a p t e r S U M M A R Y1 I g r a p h i c s m o d e y o c a ' s e e ' t h c o n t e n t s o s c r e e n m e m o r y .

b i m e a n s p i x e l ( d o t o s c r e e n ) .2 C h a r a c t e r s a r e d e f i n e d w i t h i n p i x e l b p i x e l b l o c k s .3 S c r e e n m e m o r y i g r a p h i c s m o d e r u n s i c h a r a c t e r b l o c k s , t h e n

a c r o s s t h s c r e e n l i n e b l i n e .4 C h a r a c t e r s e t s a r e s t o r e d i R O ' s w i t c h e d i n o v e r m e m o r y f r o m

$ D 0 0 0 o n w a r d s .5 I n d e x r e g i s t e r s a r u s e d t l o o k u t a b l e s ( a m o n g o t h e r t h i n g s ) ,

u s i n g s e v e r a l i n d e x e d a d d r e s s i n g m o d e s .6 I n o r m a l i n d e x e d a d d r e s s i n g , t h i n d e x r e g i s t e r i a d d e d t a

a b s o l u t e ( o z e r o p a g e ) a d d r e s s t c a l c u l a t e t h e e v e n t u a l a d d r e s s .7 I i n d i r e c t i n d e x e d a d d r e s s i n g , t h e e v e n t u a l a d d r e s s i c a l c u l a t e d

b a d d i n g t h r e g i s t e r t t h b y t e a d d r e s s s t o r e d i t h z e r op a g e l o c a t i o n s p o i n t e d t b t h b y t e a d d r e s s i t h i n s t r u c t i o n .

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

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

1 0 T A X , T A Y , T X a n T Y a r u s e d t t r a n s f e r d a t a b e t w e e n t h i n d e xr e g i s t e r s a n t h a c c u m u l a t o r .

1 1 . I n d i r e c t a d d r e s s i n g ( f o r J M o n l y ) u s e s t h c o n t e n t s o t w b y t e s( n e x t t e a c h o t h e r ) , a n y w h e r e i m e m o r y , a t h d e s t i n a t i o na d d r e s s f o t h j u m p .

7

Page 78: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 78/206

C h a p t e rP r o c e s s o r S t a t u s C o d e s

W m e n t i o n e d i C h a p t e r s a n t h c o n c e p t s o f l a g s w i t h i n t h m i c r o p r o c e s s o r . W t a l k e d a b o u t t h e c a r r y f l a g a n t h z e r o f l a g , a n w d i s c u s s e d t h b r a n c h i n s t r u c t i o n s a n o t h e r i n s t r u c t i o n s a s s o c i a t e dw i t h t h e m , e . g . S E C , C L C , B C S , B C C , B E a n B C C . W s a i d t h a t t h e s ef l a g s , a l o n g w i t h s e v e r a l o t h e r s , w e r e s t o r e d i s p e c i a l p u r p o s er e g i s t e r w i t h i n t h m i c r o p r o c e s s o r c a l l e d t h p r o c e s s o r s t a t u s c o d er e g i s t e r o r s i m p l y , t h s t a t u s r e g i s t e r . T h i s r e g i s t e r i s e o u t , l i k e a n o t h e r r e g i s t e r o b y t e i m e m o r y , i e i g h t b i t s ( f i n g e r s ) . E a c h b i r e p r e s e n t s f l a g f o d i f f e r e n t p u r p o s e :7 6 5 4 3 2 1 0

/ o v e r f l o w ! b r e a k ! i n t e r r u p t c a r r yn e g a t i v e b l a n k d e c i m a l z e r o

( U N U S E D )

l i s t o w h i c h i n s t r u c t i o n s s e w h i c h f l a g s c a b s e e n i t h t a b l e i A p p e n d i x 1 1 T h c a n y ( C f l a g , a w h a v e a l r e a d y s e e n , i s e t o r c l e a r e d t

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

2 T h z e r o ( Z ) f l a g , a w h a v e a l r e a d y s e e n , i s e t o r c l e a r e dd e p e n d i n g o t h r e s u l t o a o p e r a t i o n , c o m p a r i s o n o r t r a n s f e r o d a t a ( L o a d o S t o r e ) . p r o g r a m c a n t e s t f o z e r o s e t o r c l e a r e d b u s i n g B E o B N r e s p e c t i v e l y .

3 S e t t i n g t h b r e a k ( B f l a g u s i n g t h B R c o m m a n d c a u s e s w h a t i k n o w n a a i n t e r r u p t . M o r e w i l l b s a i d a b o u t i n t e r r u p t s i C h a p t e r1 1 U s i n g B R c o m m a n d w i l l c a u s e y o u r m a c h i n e l a n g u a g ep r o g r a m t s t o p a n t h c o m p u t e r t j u m p i n d i r e c t o t h c o n t e n t s o

7

Page 79: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 79/206

$ F F F E a n $ F F F F . T h e s e R O a d d r e s s e s h o l d t h a d d r e s s o b r e a k r o u t i n e w h i c h w i l l r e t u r n y o t B A S I C . U s i n g t h B R c o m m a n d i v e r y e f f e c t i v e w a o d e b u g g i n g p r o g r a m . B i n s e r t i n g t h i s c o m m a n d i n t o y o u r p r o g r a m a s p e c i f i c p o i n t s , y o w i l lb a b l e t t r a c e ( b w h e t h e r t h p r o g r a m s t o p s o h a n g s ) h o f a p r o g r a m i g e t t i n g b e f o r e i i d o i n g t h w r o n g t h i n g . T h i s i n s t r u c t i o ng i v e s y o u a c h a n c e t s t o p p r o g r a m a n t e s t i t v a r i a b l e s i m e m o r y t s e i t h e y a r w h a t y o u w o u l d e x p e c t a t t h i s p o i n t i t h p r o g r a m . U s t h B R c o m m a n d w i t h i n o n o t h p r o g r a m s f r o mC h a p t e r t p r a c t i s e u s i n g i a d e b u g g i n g t o o l .

4 T h i n t e r r u p t ( I f l a g m a b s e o c l e a r e d u s i n g S E I a n C L r e s p e c t i v e l y . W h e n s e t , t h i n t e r r u p t f l a g w i l l d i s a b l e c e r t a i n t y p e s o i n t e r r u p t s f r o m o c c u r r i n g ( s e e C h a p t e r 1 1 ) .

5 T h d e c i m a l ( D f l a g m a b s e o c l e a r e d u s i n g t h S E a n C L c o m m a n d s r e s p e c t i v e l y . W h e n t h d e c i m a l f l a g i s e t , t h m i c r o p r o c e s s o r g o e s i n t o d e c i m a l o B C m o d e . B C s t a n d s f o B i n a r y C o d e d D e c i m a l a n i m e t h o d o r e p r e s e n t i n g d e c i m a ln u m b e r s w i t h i n t h c o m p u t e r ' s m e m o r y . I t h B C r e p r e s e n t a t i o n ,h e x a d e c i m a l d i g i t s a r r e a d a t h e i r d e c i m a l e q u i v a l e n t s a n t h d i g i t s F h a v e n o m e a n i n g . I o t h e r w o r d s ,

B C R E P R E S E N T A T I O NB i n a r y0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 10 0 0 0 0 0 1 00 0 0 0 0 0 1 10 0 0 0 0 1 0 00 0 ( 9 0 0 1 0 10 0 0 0 0 1 1 00 0 0 0 0 1 1 10 0 0 0 1 0 0 00 0 0 0 1 0 0 10 0 0 1 0 0 0 00 0 0 1 0 0 0 10 0 1 0 0 0 1 00 1 0 0 0 0 1 11 0 0 1 1 0 0 0

H e 0 0 0 0 0 0 0 0 0 0 1 1 2 4 9

D e c i m a l v a l u e o f B C

1 1 2 4 9

T h i s s h o w s t h a t t h e r e a r s i p o s s i b l e c o d e s b e t w e e n t h e v a l u e s o a n 1 w h i c h a r w a s t e d .

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

D e c i m a l F l a g D e c i m a l F l a g1 1

+ 2 + 2 3 ~ ~ 4 3 ^

7

Page 80: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 80/206

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

c o u l d b h e l d w i t h i n s i n g l e b y t e w e r e t h o s e b e t w e e n a n 2 5 5 . W h a v e t a l k e d a b o u t h a v i n g t d e a l w i t h n u m b e r s b i g g e r t h a n 2 5 b u s i n g t w b y t e s , b u w h a v e n o m e n t i o n e d a n y t h i n g a b o u t n u m b e r sl e s s t h a n z e r o . W h a v e u s e d t h e m b r i e f l y w i t h o u t r e a l i s i n g i b a c k i C h a p t e r 6 W h a v e s e e n f r o m o u u s o n u m b e r s f r o m 2 5 t r e p r e s e n t a n y t h i n g f r o m n u m b e r s t a d d r e s s e s , f r o m c h a r a c t e r s t B C n u m b e r s , t h a t t h m i c r o p r o c e s s o r w i l l b e h a v e t h s a m e n m a t t e r h o w u s t h e s e n u m b e r s . T h m e m o r y m i g h t b c h a r a c t e r o a a d d r e s s o a i n s t r u c t i o n , b u i w a d o n t i t h m i c r o p r o c e s s o r w i l l n o c a r e w h a t i i w a r r e p r e s e n t i n g . I w i l l j u s td i b l i n d l y . I C h a p t e r 6 w t o o k o u n u m b e r b e t w e e n a n d 2 5 5 a n c h o s e t u s i a t h v a l u e o r e l a t i v e b r a n c h ; w c h o s e $ 0 t $ 7 a f o r w a r d ( p o s i t i v e ) a n $ 8 t $ F a b a c k w a r d ( n e g a t i v e )b r a n c h . T h i s n u m b e r i n g s y s t e m i p u r e l y a r b i t r a r y b u t , a i t u r n s o u t ,i i m a t h e m a t i c a l l y s o u n d t u s i f o r e p r e s e n t i n g p o s i t i v e a n n e g a t i v e n u m b e r s . T h s y s t e m w u s i c a l l e d T w o ' s C o m p l e m e n tA r i t h m e t i c . W c a u s t h t a b l e i A p p e n d i x 0 0 t c o n v e r t b e t w e e nn o r m a l n u m b e r s a n t w o ' s c o m p l e m e n t n u m b e r s , l o o k i n g f o t h n u m b e r i d e c i m a l i t h e c e n t r e a n f i n d i n g t h c o r r e c t t w o ' sc o m p l e m e n t h e v a l u e o t h o u t s i d e . M a t h e m a t i c a l l y , w t a k e t h ec o m p l e m e n t o t h e b i n a r y n u m b e r ( a l l 1 ' b e c o m e 0 ' a n a l 0 ' b e c o m e ' s a n t h e n a d 1 e . g .

C O M P L E M E N T3 0 0 0 0 0 0 1 1 - 1 1 1 H 1 | 1 1 1 | 1 | 0 | 0 |

U s i n g t h i s r e p r e s e n t a t i o n , y o w i l l s e t h a t a n b y t e w h o s e v a l u e i g r e a t e r t h a n 1 2 ( w i t h i t h i g h b i t , b i 7 t u r n e d o n r e p r e s e n t s n e g a t i v en u m b e r , a n a n v a l u e l e s s t h a n 1 2 ( h i g h b i t u r n e d o f f ) r e p r e s e n t sp o s i t i v e n u m b e r .

X X X X X X X — N E G A T I V E0 X X X X X X X — P O S I T I V ET h n e g a t i v e f l a g i t h s t a t u s r e g i s t e r i a u t o m a t i c a l l y s e ( l i k e t h

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

7

Page 81: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 81/206

t h r e s u l t o f a o p e r a t i o n .S i n c e t h e h i g h b i o t h b y t e i s i g n b i ( r e p r e s e n t i n g t h e s i g n o t h

n u m b e r ) w a r l e f t w i t h o n l y s e v e n b i t s t s t o r e t h a c t u a l n u m b e r . W i t hs e v e n b i t s y o c a r e p r e s e n t a n n u m b e r b e t w e e n 0 a n 1 2 b u t , s i n c e

- 0 o t h n e g a t i v e s i d e w a d o n e . S t w o ' s c o m p l e m e n tn u m b e r s c a r e p r e s e n t a n n u m b e r f r o m - 1 2 8 t + 1 2 7 u s i n g o n b y t e .

L e t ' s t r s o m e m a t h e m a t i c s u s i n g o u n e n u m b e r i n g s y s t e m .

T w o ' s C o m p l e m e n t B i n a r y D e c i m a l v a l u e

P o s i t i v e P o s i t i v e ( n d i f f e r e n t n n o r m a l )0 0 0 0 0 1 1 1

+ 0 0 0 0 1 0 0 1 + + 0 0 0 1 0 0 0 0 1 0 0

P o s i t i v e N e g a t i v e ( n e g a t i v e r e s u l t )0 0 0 0 0 1 1 11 1 1 1 0 1 0 0 + - 1 21 1 1 1 1 0 1 1 0 0

P o s i t i v e N e g a t i v e ( p o s i t i v e r e s u l t )0 0 0 0 0 1 1 1

+ 1 1 1 1 1 1 0 1 + ( 1 ) 0 0 0 0 0 1 0 0 + C 1

P o s i t i v e P o s i t i v e ( a n s w e r g r e a t e r t h a n 1 2 7 )0 1 1 1 0 0 1 1 1 1

+ 0 0 1 1 0 0 0 1 4 1 0 1 0 0 1 0 0 - 9 C = 0 V

N O T E : t h i s a n s w e r i w r o n g !T w o ' s c o m p l e m e n t n u m b e r i n g s e e m s t h a n d l e p o s i t i v e a n n e g a t i v e

n u m b e r s w e l l , e x c e p t i o u l a s t e x a m p l e . W s a i d p r e v i o u s l y t h a t t w o ' sc o m p l e m e n t c o u l d o n l y h o l d n u m b e r s f r o m - 1 2 8 t + 1 2 7 . T h a n s w e rt o u q u e s t i o n s h o u l d h a v e b e e n 1 6 4 . A i C h a p t e r 3 t h o l d n u m b e rb i g g e r t h a n 2 5 w n e e d e d t w b y t e s , h e r e a l s o w m u s t u s e t w o b y t e s .I n o r m a l b i n a r y c a r r y f r o m b i ( t h e h i g h b i t ) i n t o t h h i g h b y t e w a d o n e t h r o u g h t h c a r r y . I t w o ' s c o m p l e m e n t w h a v e s e v e n b i t s a n s i g n b i s t h h i g h b i i b i 6 T h m i c r o p r o c e s s o r , n o k n o w i n g w a r u s i n g t w o ' s c o m p l e m e n t a r i t h m e t i c , h a a u s u a l ' c a r r i e d ' b i i n t o b i 7 T e n a b l e u t c o r r e c t t h i s , i h a s e t h e o v e r f l o w f l a g t t e l l u t h a t t h i sh a h a p p e n e d .

7

Page 82: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 82/206

7 T h o v e r f l o w f l a g . T h i s f l a g i s e b y c a r r y f r o m b i t b i t 7 .

e . g . | P | 1 1 1 | 1 | 1 | 1 | 1 | 1 | | 0 l 0 | 0 | 0 | 0 | 0 1 0 1 1 1 | i | 0 l 0 | 0 | 0 l 0 | 0 T g |1 2 1 2

T h m a j o r u s o t h o v e r f l o w f l a g i i s i g n a l l i n g t h a c c i d e n t a lc h a n g i n g o s i g n c a u s e d b a ' o v e r f l o w ' u s i n g t w o ' s c o m p l e m e n ta r i t h m e t i c . T c o r r e c t f o r t h i s a c c i d e n t a l c h a n g e o s i g n s , t h e s i g n b i t ( b i t7 m u s t b c o m p l e m e n t e d ( i n v e r t e d ) a n o n c a r r i e d o t h i g h b y t ei n e c e s s a r y .

T h i s w o u l d m a k e o u p r e v i o u s l y w r o n g r e s u l t o - 9 ( 1 0 1 0 8 ) 1 0 0 )b e c o m e 1 2 ( h i g h b y t e ) 3 ( 0 0 1 0 0 1 0 0 ) . 1 2 3 1 6 w h i c h i t h c o r r e c t a n s w e r .

p r o g r a m c a t e s t f o t h n e g a t i v e f l a g b e i n g s e o c l e a r e d u s i n gB M ( B r a n c h o M i n u s ) o B P ( B r a n c h o P l u s ) r e s p e c t i v e l y .

p r o g r a m c a n t e s t f o t h e o v e r f l o w f l a g b e i n g s e o c l e a r e d u s i n gB V ( B r a n c h o O v e r f l o w S e t ) o r B V ( B r a n c h o O v e r f l o w C l e a r )r e s p e c t i v e l y . T h o v e r f l o w f l a g c a b c l e a r e d u s i n g t h C L c o m m a n d .

C h a p t e r S U M M A R Y1 T h m i c r o p r o c e s s o r c o n t a i n s s p e c i a l p u r p o s e r e g i s t e r , t h

p r o c e s s o r s t a t u s c o d e r e g i s t e r .7 6 5 4 3 2 1 0

O V E R F L c J i r t / B R E A K I N J E R R U ^ C A R R YN E G A T I V E B l t \ N K D E C I M A L ^ Z E R O

( U N U S E D )2 C A R R Y - S E C , C L

B C S , B C S e i c a r r y c o n d i t i o n o c c u r s .

3 Z E R O — B E Q . B N ES e i r e s u l t o t r a n s f e r 0

4 B R i a i n s t r u c t i o n w h i c h s e t s t h b r e a k f l a g a n h a l t s t h m i c r o p r o c e s s o r ( u s e f u l f o d e b u g g i n g p u r p o s e s ) .

5 I N T E R R U P T — S E I . C L IS e C h a p t e r s 1 1 , 1 2 .

6 D E C I M A L — S E D . C L DS e t s d e c i m a l m o d e . A d d i t i o n a n s u b t r a c t i o n a r d o n e u s i n g B C ( B i n a r y C o d e d D e c i m a l ) .

7

Page 83: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 83/206

7 T w o ' s c o m p l e m e n t n u m b e r i n g r e p r e s e n t s n u m b e r s f r o m - 1 2 8 t 1 2 7 .n e g a t i v e ( c o m p l e m e n t ( X ) )

8 N E G A T I V E f l a g s e i b i o r e s u l t i t u r n e d o ( = 1 )B M I , B P

9 O V E R F L O W s e o t w o ' s c o m p l e m e n t c a r r yC L B V S , B V

7

Page 84: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 84/206

C h a p t e r 1 L o g i c a l O p e r a t o r s a n B i M a n i p u l a t o r s

C h a n g i n g b i t s w i t h i n m e m o r yI t h i s c h a p t e r w w i l l b l o o k i n g a a g r o u p o i n s t r u c t i o n s u n l i k e a n o t h e r s w h a v e l o o k e d a p r e v i o u s l y , y e t h e y a r e a b s o l u t e l yf u n d a m e n t a l t t h w o r k i n g s o c o m p u t e r . T h e y a r t h ' l o g i c a l ' o ' B o o l e a n ' o p e r a t i o n s . T h e y a r t h c o m m a n d s A N ( L o g i c a l A N D ) , O R ( L o g i c a l O R ) , a n E O ( L o g i c a l E x c l u s i v e O R ) . T h e s e f u n c t i o n s c a b b u i l t u u s i n g f a i r l y s i m p l e c i r c u i t r y , a n a l m o s t a l f u n c t i o n s o t h c o m p u t e r a r b u i l t u b s e r i e s o t h e s e c i r c u i t s . T h l o g i c a l o p e r a t i o n so t h e s e c i r c u i t s a r a v a i l a b l e t u t h r o u g h t h e s e i n s t r u c t i o n s a n i i t h i s , a n n o t h h a r d w a r e , w i t h w h i c h w w i l l c o n c e r n o u r s e l v e s i t h i sc h a p t e r .

W k n o w t h a t b y t e s o m e m o r y a n t h r e g i s t e r s a r m a d e u o g r o u p s o e i g h t b i t s :

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

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

7

Page 85: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 85/206

" " ^ ^ I N P U T II N P U T 2 " ^ ^

O U T P U TF O 0 ,

O U T P U TF O 1 ,

O U T P U TF O 0 ,

O U T P U TF O 1 ,

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

^ - - ^ M E M O R YA C C U M U L A T O R ^ — - ^ .

W h e n e x t e n d e d t a e i g h t b i b y t e t h i s m e a n s t h a t :

A N

T h z e r o f l a g i s e i t h r e s u l t 0 i . e . i t h e r e a r n c o i n c i d e n t o n e s i t h b i t s o t h t w b y t e s u s e d .

T h A N i n s t r u c t i o n i u s e f u l i c r e a t i n g ' m a s k ' t t u r n o f c e r t a i n b i t sw i t h i n b y t e . S u p p o s e , w i t h i n b y t e o a n v a l u e , w w i s h t t u r n o f t h 3 r d , 5 t a n 6 t b i t s . W w o u l d c r e a t e ' m a s k ' w i t h o n l y t h e 3 r d , 5 t a n 6 t b i t s t u r n e d o f a n A N t h i s w i t h t h e b y t e i q u e s t i o n .

7 3 1 M a s k 1 | 0 | 0 | 1 | 0 | 1 ~ T T T T | $ 9

A N # $ 9 7w o u l d t u r n o f t h 3 r d , 5 t a n 6 t b i t s o w h a t e v e r w a i t h a c c u m u l a t o r .

7

Page 86: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 86/206

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

T h O f u n c t i o n o u t p u t s i i n p u t i o i n p u t i 1 T h t r u t ht a b l e f o t h i s f u n c t i o n l o o k s l i k e :

O ~ ~ ~ ~ ~ - - - - - ~ - _ _ M E M O R YA C C U M U L A T O R - - - - - ^

W h e n e x t e n d e d t a e i g h t b i b y t e t h i s m e a n s t h a t :

O R 1

T h z e r o f l a g i s e i b o t h b y t e s a r u s e d a n d h e n c e t h r e s u l t i z e r o .T h O R i n s t r u c t i o n i u s e f u l f o t u r n i n g o c e r t a i n b i t s w i t h i n b y t eu s i n g t h m a s k i n g t e c h n i q u e .S u p p o s e w w a n t t o t u r n o t h 2 n d , 3 r d a n 7 t b i t s w i t h i n b y t e . W

w o u l d u s e a m a s k w i t h o n l y t h e 2 n d , 3 r a n 7 t b i t s t u r n e d o n .7 4 3 2 1 0

M a s k i | P l g | g | i h f g | 0 i $ 8 O R # $ 8 C

w o u l d t u r n o t h e 2 n d , 3 r a n 7 t b i t s o w h a t e v e r w a i t h a c c u m u l a t o r .

T h l o g i c a l e x c l u s i v e O T h l a s t o t h l o g i c a l o p e r a t o r s i t h E O R . T h i s d o e s l o g i c a l e x c l u s i v e

O o t h a c c u m u l a t o r a n m e m o r y l e a v i n g t h r e s u l t i A T h e x c l u s i v e O f u n c t i o n o u t p u t s i i n p u t i o i n p u t i b u n o i b o t h a r 1 T h t r u t h t a b l e f o t h i s f u n c t i o n l o o k s l i k e :

E O ^ ^ ^ ^ M E M O R YA C C U M U L A T O R

7

Page 87: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 87/206

W h e n e x t e n d e d t a e i g h t b i b y t e t h e e x c l u s i v e O p r o d u c e s :

E O

T h e x c l u s i v e O i u s e d t c o m p l e m e n t ( i n v e r t ) c e r t a i n b i t s w i t h i nb y t e u s i n g m a s k i n g .T i n v e r t t h s t 2 n d a n d 4 t b i t s o b y t e w w o u l d u s m a s k w i t h

t h o s e b i t s t u r n e d o n .

M a s k = | 0 | E O R # $ 1 6

5 4 3 2| 0 | 1 | 0 | 1 | 1 | 0

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

N E 1 A 9 C A2 0 2 9 9 F3 8 D 3 4 0 34 A 9 A 25 0 9 8 46 4 D 3 4 0 37 8 D 3 4 0 38 6

i n t o A L P A t o t e s

L D A # $ C AA N D # $ 9 FS T A $ 0 3 3 4L D A # $ A 2O R A # $ 8 4E O $ 0 3 3 4S T A $ 0 3 3 4R T

W A T C H ( a d d r e s s ? 3 3 4 )P r o g r a m s u m m a r y

L i n e 1 L i n e 2 A N $ 9 L i n e 3 S T O R EL i n e 4 L i n e 5 0 O R A $ 8 4L i n e 6 E O $ 3 3 4

A = $ C A$ 8

A $ 3 3 4$ A # A $ 2

$ 1

> t h e s e i n s t

1 1 0 0 1 0 1 01 0 0 0 1 0 1 01 0 0 0 1 0 1 01 0 1 0 0 0 1 01 0 1 0 0 1 1 00 0 1 0 1 1 0 0

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

T h b i i n s t r u c t i o nT h e r e i u s e f u l i n s t r u c t i o n i t h 6 5 1 0 i n s t r u c t i o n s e w h i c h d o e s a i n t e r e s t i n g s e o t e s t s a n c o m p a r i s o n s . W d i s c u s s e d i C h a p t e rh o t h C M c o m m a n d d i s u b t r a c t i o n s e t t i n g t h s t a t u s f l a g s b u n o s t o r i n g t h r e s u l t . S i m i l a r l y B I ( c o m p a r e m e m o r y b i t s w i t h t h

8

Page 88: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 88/206

a c c u m u l a t o r ) d o e s l o g i c a l A N o a n m e m o r y , s e t t i n g o n l y t h ef l a g a r e s u l t . T h b i i n s t r u c t i o n a l s o c o p i e s b i i n t o t h n e g a t i v e f l a ga n b i i n t o t h o v e r f l o w f l a g .

R o t a t i n g b i t s w i t h i n b y t eW w i l l n o d i s c u s s f o u r o t h e r b i m a n i p u l a t i o n i n s t r u c t i o n s a n s o m e o t h e i r c o n s e q u e n c e s . T h f i r s t i n s t r u c t i o n w w i l l l o o k a i A S ( A r i t h m e t i c S h i f t L e f t ) . T h i s i n s t r u c t i o n s h i f t s a l t h b i t s i t h s p e c i f i e db y t e l e f t b o n b i t , i n t r o d u c i n g z e r o a t h l o e n d a n d m o v i n g t h h i g h b i o f i n t o t h c a r r y f l a g .

C A R R Y 4

h e n c e

b e c o m e sC a n

b e c o m e s

B a c k i C h a p t e r w h e n w e x p l a i n e d h e a n b i n a r y w m e n t i o n e dt h a t e a c h b i h a t h e v a l u e o p o s i t i o n -

i . e . I i 2 8 l 6 4 l 3 2 | i 6 l 8 l 4 | 2 | iY o w i l l n o t i c e t h a t t h v a l u e o e a c h b o x i t w t i m e s t h v a l u e o t h b o t t h r i g h t o i t h e n c e :

0 0 0 0 0 0 0 1 x 2 0 0 0 0 0 0 1 0 a n 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0

a n f u r t h e r m o r e0 0 1 1 1 0 0 1 x 2 0 1 1 1 0 0 1 0

T h o p e r a t i o n r e q u i r e d t m u l t i p l y a n b y t e b t w i t h o p e r a t i o np e r f o r m e d b y t h A S i n s t r u c t i o n .T u s o u e x a m p l e s f r o m b e f o r e :

0 1 0 1 0 1 0 1 ( $ 5 5 ) x 2 - * C 1 0 1 0 1 0 1 0 ( $ A A )a n

1 0 1 1 0 1 1 0 ( $ B 6 ) x 2 - > C 0 1 1 0 1 1 0 0 ( $ 6 C C A R R Y )

8

Page 89: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 89/206

T y p e i t h f o l l o w i n g p r o g r a m :N E 1 A 9 0 A L D A # $ 0 A2 0 A S L A3 8 D 3 4 0 3 S T A $ 0 3 3 44 6 R T W A T C H ( a d d r e s s ? 3 3 4 )E N T E R a n R U

L i n e 2 u s e s t h e ' a c c u m u l a t o r ' a d d r e s s i n g m o d e . I u s e s t h c o n t e n t s o t h a c c u m u l a t o r a s d a t a a n r e t u r n s t h r e s u l t t h e r e .

N O T E : t h i s i d i f f e r e n t t i m p l i e d a d d r e s s i n g b e c a u s e A S L m a y b u s e d o n d a t a f r o m m e m o r y .

W c a u s t h i s i n s t r u c t i o n t m u l t i p l y n u m b e r b y a n y p o w e r o ( 1 2 , 4 , 8 . . . ) . T u s t h p r e v i o u s p r o g r a m t m u l t i p l y b e i g h t i n s t e a d o t w o , i n s e r t t h f o l l o w i n g t w l i n e s :

1 0 A S L A2 ^ A S L AE N T E R a n R U t h p r o g r a m w i t h t h e s e a l t e r a t i o n s :$ 0 A x 8 = 5

R o t a t i o n w i t h c a n yA w i t h o u a d d i t i o n r o u t i n e s , w m a f i n d w w a n t t m u l t i p l y n u m b e r sg r e a t e r t h a n 2 5 ( t w o o m o r e b y t e n u m b e r s ) . T d t h i s t h e r e i s h i f tc o m m a n d w h i c h u s e s t h c a r r y o t h i n p u t e n o t h s h i f t a w e l l a t h o u t p u t e n d :

7 3 1

C A R R Y

T h i n s t r u c t i o n t d t h i s i R O ( R o t a t e O n b i L e f t ) . T d t w b y t em u l t i p l y b f o u r , t y p e t h f o l l o w i n g l i n e s :

A 9 1 78 D 3 5 0 3

1 2 E 3 5 0 32 5 2 E 3 5 0 3L I S T

L D A # $ 1 7S T A $ 0 3 3 5R O $ 0 3 3 5R O $ 0 3 3 5

W a r m u l t i p l y i n g t h t w b y t e n u m b e r $ 1 7 0 A b f o u r .N O T E : 1 T a v o i d s w a p p i n g r e g i s t e r s w h a v e u s e d R O a b s o l u t e

w h i c h s t o r e s i t r e s u l t b a c k i m e m o r y .2 W h a v e r o t a t e d b o t h b y t e s o n c e a n d t h e n r o t a t e d b o t ha g a i n . R o t a t i n g t h e l o b y t e t w i c e a n t h e n t h e h i g h b y t e t w i c e

8

Page 90: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 90/206

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

E N T E R a n R U t y p e W A T C H ( A d d r e s s 3 3 5 )R U t h p r o g r a m a g a i n

P u t t o g e t h e r t h h i g h a n l o b y t e s o t h a n s w e r a n c h e c k t h a t i e q u a l s f o u r t i m e s o u o r i g i n a l n u m b e r .

R o t a t i n g t t h r i g h t

L S a n R O a r t h e e q u i v a l e n t i n s t r u c t i o n s t A S a n R O L , e x c e p tt h a t t h e y s h i f t t h b i t s i t h o p p o s i t e d i r e c t i o n .

L S 6 4 3 1 C A R R Y[ p * ^ ^ ^ ^ 1 r | ^ p ^ l ^ I ™ t i ^ ? ^ ™ * ^ I

R O 6 3

C A R R Y- C 3 -J u s t a t h e i r o p p o s i t e s c a b t h o u g h t o a m u l t i p l i c a t i o n s b t w o , s

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

r e m a i n d e r s

L S L S L S

0 0 0 1 1 1 0 1- 5 0 0 0 0 1 1 1 0H - 0 0 0 0 0 1 1 1- 5 0 0 0 0 0 0 1 1

2 1

r e m a i n d e r

- 1 = - » 0 1 =

1 0 = N O T E : J u s t b e c a u s e t h s h i f t a n r o t a t e i n s t r u c t i o n s c a b u s e d f o

a r i t h m e t i c , d n o f o r g e t t h e i r u s f o s h i f t i n g b i t s , e . g . s h i f t i n g i n t o c a r r yf o t e s t i n g .

C l e v e r m u l t i p l i c a t i o nW h a v e s a i d t h a t b s h i f t i n g b i t s w c a m u l t i p l y b y a n y p o w e r o ( 1 , 2 ,4 , 8 . . . 1 2 8 ) . T h e s e a r t h s a m e v a l u e s t h a t r e p r e s e n t e a c h b i w i t h i nb y t e . W h a v e s h o w n i C h a p t e r 3 t h a t b a d d i n g t h e s e v a l u e s w c a p r o d u c e a n n u m b e r b e t w e e n a n 2 5 5 .

8

Page 91: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 91/206

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

$ 1 6 x $ 5 9 = 0 0 0 1 0 1 1 O $ 5 0 0 0 1 0 0 0 0 $ 5 0 0 0 0 0 1 0 0 $ 5 0 0 0 0 0 0 1 O $ 5

1 6 x $ 5 9 4 x $ 5 9 2 x $ 5 9w h i c h w k n o w h o t w o r k o u f r o m o u r p r e v i o u s m u l t i p l i c a t i o n .

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

1 0 1 1 0 x $ 5 9r o t a t e $ 5 r o t a t e $ 5 a d t t o t a lr o t a t e $ 5 a d t t o t a lr o t a t e $ 5 r o t a t e $ 5 a d t t o t a l

F o s i m p l i c i t y ' s s a k e , o u g e n e r a l i s e d m u l t i p l i c a t i o n r o u t i n e w i l l o n l yh a n d l e r e s u l t s l e s s t h a n 2 5 5 .

T m u l t i p l y $ 1 b y $ 0 9 t y p e :N E

1 A 9 1 B L D A # $ 1 B2 8 D 3 4 0 3 S T A $ 0 3 3 43 0 A 9 0 9 L D A # $ 0 94 8 D 3 5 0 3 S T A $ 0 3 3 55 A 9 0 0 L D A # $ 0 06 0 6 E 3 5 0 3 R O R $ 0 3 3 57 2 E 3 5 0 3 R O L $ 0 3 3 58 0 4 E 3 4 0 3 L S R $ 0 3 3 49 9 0 L 1 2 0 B C C L 1 2 0

1 0 1 C L 1 1 6 D 3 5 0 3 A D $ 0 3 3 51 2 D 0 L 7 0 B N E L 7 01 3 8 D 3 6 0 3 S T A $ 0 3 3 61 4 6 R T

P r o g r a m s u m m a r yl i n e s 1 6 i n i t i a l i s e v a l u e s t b m u l t i p l i e d a n t h t o t a l t 0 T h

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

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

8

Page 92: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 92/206

l i n e s 8 9 r o t a t e s t h o t h e r n u m b e r ( 1 b i b b i i n t o t h c a r r y , a n t h e n t e s t s t h c a r r y t s e i t h e o t h e r n u m b e r ( 2 s h o u l db a d d e d t h i s t i m e a r o u n d t h l o o p . I t h c a r r y i c l e a r ,t h p o s s i b i l i t y t h a t t h n u m b e r ( 1 h a b e e n s h i f t e dc o m p l e t e l y t h r o u g h ( 0 M u l t i p l i c a t i o n i c o m p l e t e d )i t e s t e d — l i n e 1 2 0 .

l i n e s 1 0 0 - 1 1 0 a d t t h t o t a l ( i A t h n u m b e r ( 2 w h i c h i b e i n gm u l t i p l i e d b t w e a c h t i m e a r o u n d t h I d o p .

l i n e 1 2 i t h b r a n c h o l i n e 9 w a t a k e n , t h i s w i l l t e s t f o t h e n o f m u l t i p l i c a t i o n ( n u m b e r ( 1 s h i f t e dc o m p l e t e l y t h r o u g h ) . I t h b r a n c h o l i n e 9 w a n o t a k e n , t h i s b r a n c h o n o e q u a l w i l l a l w a y s b t r u eb e c a u s e w a r a d d i n g n u m b e r ( 2 g r e a t e r t h a n z e r ot t o t a l w h i c h w i l l n o b g r e a t e r t h a n 2 5 5 .

l i n e s 1 3 0 - 1 4 0 E N D .N O T E : t h i s m u l t i p l i c a t i o n r o u t i n e i m u c h m o r e e f f i c i e n t t h a n t h o n

g i v e n i C h a p t e r 7 B t h a t m e t h o d w w o u l d h a v e h a t l o o p a l e a s tn i n e t i m e s , w h e r e a s w i t h t h i s , h a w s w a p p e d a n u s e d a n u m b e r( 1 a n $ 1 a n u m b e r ( 2 ) , w w o u l d h a v e o n l y l o o p e d f o u r t i m e s( n u m b e r o b i t s n e e d e d t m a k e 1 0 0 1 ) .

T y p e :W A T C HE N T E RR U

( a d d r e s s ? 3 3 6 )

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

( m a k e s u r e t h a n s w e r < 2 5 6 ) , e . g .1 A 9 0 6 L D A # $ 0 63 A 9 2 5 L D A # $ 2 5E N T E R a n R U

w i t h t h e s e v a l u e s a n a g a i n v e r i f y t h r e s u l t s f o y o u r s e l f .

C h a p t e r 1

1 A N

2 O R

S U M M A R Y

m o s t o f t e n u s e d t m a s k o f b i t s .

m o s t o f t e n u s e d t m a s k o b i t s .

8

Page 93: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 93/206

3 E O ( e x c l u s i v e o r

m o s t o f t e n u s e d t m a s k i n v e r t b i t s .

4 B I T p e r f o r m s A N w i t h o u t s t o r i n g t h r e s u l t .i s e t o r c l e a r e db e c o m e s b i b e c o m e s b i

5 A S 7

< — H - * « « C A R R Y

m o s t o f t e n u s e d t m u l t i p l y b 2 6 R O 7 6 4 3

7 L S

8 R O

A r i t h m e t i c S h i f t L e f t•

R o t a t e O n B i L e f t

C A R R Y

5 4 1 L o g i c a l S h i f t R i g h t

C A R R Y

7 5 1 R o t a t e O n B i R i g h t

C A R R Y

8

Page 94: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 94/206

C h a p t e r 1 D e t a i l s o f P r o g r a m C o n t r o lT h p r o g r a m c o u n t e rW h a v e t a l k e d l o a b o u t t h d i f f e r e n t o p e r a t i o n s t h a t t h m i c r o p r o c e s s o r c a p e r f o r m , b u w h a v e s a i d v e r y l i t t l e a b o u t h o i g o e s a b o u t t h o s e t a s k s . T h i s i p e r f e c t l y a l r i g h t , b e c a u s e i m o s t c a s e sw d o n ' t n e e d t k n o w . I o n c a s e , h o w e v e r , k n o w i n g h o t h m i c r o p r o c e s s o r i o p e r a t i n g l e a d s u i n t o w h o l e n e l i s t o c o m m a n d sa n p o w e r f u l a r e a o t h m i c r o p r o c e s s o r ' s c a p a b i l i t i e s .

T h m i c r o p r o c e s s o r c o n t a i n s s p e c i a l p u r p o s e , t w b y t e r e g i s t e rc a l l e d t h P r o g r a m C o u n t e r ( P C ) , w h o s e s o l e j o i t k e e p t r a c k o w h e r e t h n e x t i n s t r u c t i o n i c o m i n g f r o m i m e m o r y . I o t h e r w o r d s , t h p r o g r a m c o u n t e r c o n t a i n s t h e a d d r e s s o t h e n e x t b y t e t b l o a d e d i n t ot h m i c r o p r o c e s s o r a n u s e d a c o m m a n d .

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

A 9 L D # $ 5 75 8 3 0 6 0 J J

S T A $ 0 3 3 5

R T T ' r u n ' o u p o s t o f f i c e b o p r o g r a m , w w o u l d g t h r o u g h e a c h b o i t u r n a n a c o t h d a t a w i t h i n e a c h b o x . N o i m a g i n e t h e r e w a l a r g ec l o c k t y p e c o u n t e r s h o w i n g a b o a d d r e s s w h i c h w l o o k e d a t k n o ww h i c h b o t f i n d . N o r m a l l y t h i s c o u n t e r w o u l d g u o n b o n e , t a k i n gt h n e x t b y t e i o r d e r . H o w e v e r , i i w a n t e d u t m o v e t n e a r e a o t h b o x e s , i w o u l d j u s t f l a s h u t h a d d r e s s o t h e n e x t i n s t r u c t i o n i w a n t e d u t f i n d . T h i s i e x a c t l y h o t h J M c o m m a n d o p e r a t e s .

S t o r i n g i n t o t h p r o g r a m c o u n t e rT h i n s t r u c t i o n J M $ a d d r e s s o n l y l o a d s t h t w b y t e $ a d d r e s s i n t o t h p r o g r a m c o u n t e r , t h e n e x t i n s t r u c t i o n i t h e n l o a d e d f r o m m e m o r y a t h a ta d d r e s s , a n J M h a b e e n e x e c u t e d .

8

Page 95: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 95/206

N O T E : t h b r a n c h i n s t r u c t i o n s a d o s u b t r a c t f r o m t h p r o g r a mc o u n t e r i s i m i l a r w a y , t h e r e b y c r e a t i n g ' r e l a t i v e ' j u m p .

T h p r o g r a m c o u n t e r a n s u b r o u t i n e sI i w e r e p o s s i b l e t s t o r e t h p r o g r a m c o u n t e r j u s t b e f o r e d o i n g J M a n c h a n g i n g i t n e a d d r e s s , w w o u l d l a t e r b a b l e t o r e t u r n t o t h s a m e p l a c e i m e m o r y b r e l o a d i n g t h a t s t o r e d p i e c e o m e m o r y b a c ki n t o t h p r o g r a m c o u n t e r . I o t h e r w o r d s , i w h a n o t i c e d t h a t t h p o s to f f i c e b o c o u n t e r w a a b o u t t c h a n g e , a n w n o t e d d o w n t h a d d r e s s i s h o w e d ( o u r c u r r e n t a d d r e s s ) b e f o r e i c h a n g e d , w w o u l d a s o m e f u t u r e s t a g e p l a c e t h a t b a c k o t h c o u n t e r a n r e t u r n t w h e r e w h a l e f t o f f .

T h i s , o f c o u r s e , i s u b r o u t i n e s t r u c t u r e , e . g .1 P R I N T " H E L L O W O R L D "2 G O S U B 1 0 03 0 P R I N T T F I N E "4 E N

1 0 P R I N T " H O W A R Y O U ? "1 1 R E T U R N

w o u l d p r i n t :H E L L O W O R L DH O A R Y O U ?I ' F I N E

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

Y o c a a l s o c r e a t e s u b r o u t i n e s f r o m w i t h i n m a c h i n e l a n g u a g ep r o g r a m . T h e y a r c a l l e d u s i n g t h J S ( J u m p t S u b r o u t i n e )c o m m a n d . A w h e n c a l l e d f r o m B A S I C , t o r e t u r n f r o m m a c h i n el a n g u a g e s u b r o u t i n e y o u u s e t h R T ( R e t u r n F r o m S u b r o u t i n e )c o m m a n d .

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

W A T C H1 A 9 0 12 8 D 1 5 D 03 8 D F 8 0 74 A 9 3 25 8 D 0 0 D 06 8 D 0 1 D 07 2 0 L 1 1 08 C 9 F A9 D 0 L 7 0

1 0 0 6 0

L D A # $ 0 1S T A $ D 0 1 5S T A $ 0 7 F 8L D A # $ 3 2S T A $ D 0 0 0S T A S D 0 0 1J S R L 1 1 0C M P # $ F AB N E L 7 0R T

Page 96: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 96/206

1 1 E E 0 1 D 01 2 A D 0 0 D 01 3 1 1 4 6 9 0 41 5 8 D 0 0 D 01 6 6 E N T E RR U

I N C $ D 0 0 1L D A $ D 0 0 0C L A D # $ 0 4S T A $ D 0 0 0

- s u b r o u t i n e

R T

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

I i g o o d p r o g r a m m i n g s t y l e t o u s s u b r o u t i n e s f o t w m a j o rr e a s o n s . F i r s t l y , i i e a s y t l o c a t e a n f i e r r o r s w i t h i n s u b r o u t i n e s . T h e yc a b t e s t e d a n f i x e d i n d e p e n d e n t l y o t h r e s t o t h p r o g r a m .S e c o n d l y , b u s i n g s u b r o u t i n e s i i p o s s i b l e t b u i l d u ' l i b r a r y 1 o u s e f u l s u b r o u t i n e s , e . g . s p r i t e m o v e r s , s c r e e n c l e a r e r s , b y t e f i n d e r s e t c .w h i c h m a b a d d e d a s u b r o u t i n e t a n p r o g r a m .

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

T h s t a c k c o n t r o l s t r u c t u r eF i r s t l y , i m u s t b f l e x i b l e a n e a s y t u s e . S e c o n d l y , w w o u l d l i k e t b a b l e t p r o v i d e f o t h p o s s i b i l i t y t h a t s u b r o u t i n e w i l l b c a l l e d f r o mw i t h i n s u b r o u t i n e ( c a l l e d f r o m w i t h i n s u b r o u t i n e , c a l l e d f r o m w i t h i n. . . ) . I t h i s c a s e w h a v e t u s e a s y s t e m w h i c h w i l l n o o n l y r e m e m b e rr e t u r n a d d r e s s f o e a c h o t h s u b r o u t i n e s c a l l e d , b u w i l l h a v e t r e m e m b e r w h i c h i t h e c o r r e c t r e t u r n a d d r e s s f o e a c h s u b r o u t i n e . T h s y s t e m w h i c h w u s t s t o r e t h a d d r e s s e s o d a t a s t r u c t u r e i c a l l e d' s t a c k ' . s t a c k i a L I F O s t r u c t u r e ( L a s t I F i r s t O u t ) . W h e n a R T i r e a c h e d , w w a n t t h l a s t a d d r e s s p u o t h s t a c k t b u s e d a r e t u r n a d d r e s s f o t h s u b r o u t i n e .

I m a g i n e t h s t a c k t b e o n e o t h o s e s p i k e s t h a t p e o p l e s o m e t i m e sk e e p m e s s a g e s o n

E v e r y t i m e y o u s e e J S i n s t r u c t i o n , y o c o p i e d d o w n t h r e t u r na d d r e s s o n t o s c r a p o p a p e r f r o m t h p o s t o f f i c e b o c o u n t e r . A s o o na y o h a d o n e t h i s , y o s p i k e d t h p i e c e o p a p e r o n t h s t a c k . I y o c a m e a c r o s s a n o t h e r J S y o m e r e l y r e p e a t e d t h p r o c e s s . N o w h e ny o c o m e a c r o s s a R T S , t h o n l y p i e c e o p a p e r y o c a t a k e o f t h s p i k e ( s t a c k ) i t h t o o n e . T h o t h e r s a r a l b l o c k e d b t h o s e o t o o t h e m . T h i s t o p p i e c e o p a p e r w i l l a l w a y s c o n t a i n t h e c o r r e c t r e t u r na d d r e s s f o t h e s u b r o u t i n e y o a r r e t u r n i n g f r o m ( t h a t w h i c h w a m o s tr e c e n t l y c a l l e d ) .

8

Page 97: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 97/206

S u b r o u t i n e s a n t h s t a c kT h J S a n R T c o m m a n d s d t h i s a u t o m a t i c a l l y u s i n g t h s y s t e ms t a c k . T h s t a c k s i t s i m e m o r y f r o m $ 1 0 0 t $ 1 F F ( P a g e 1 a n d g r o w sd o w n w a r d s . ( I m a g i n e t h s p i k e t u r n e d u p s i d e d o w n ) . T h i s m a k e s n d i f f e r e n c e t i t o p e r a t i o n . T h t o o t h s t a c k ( o a c t u a l l y t h b o t t o m ) i m a r k e d b y s p e c i a l p u r p o s e r e g i s t e r w i t h i n t h m i c r o p r o c e s s o r c a l l e dt h S t a c k P o i n t e r ( S P ) . W h e n J S i d o n e , t h t w b y t e p r o g r a mc o u n t e r i p u o t h e s t a c k a n t h s t a c k p o i n t e r ( S P ) i d e c r e m e n t e d b t w ( t w b y t e a d d r e s s i p u o n ) .B E F O R E

P r o g r a m C o u n t e r S A $ C S T A C K

S P = X X $ J A d d r e s sS 1 0 0 + X X

A F T E R ( J S R $ P Q M N )P r o g r a m C o u n t e r $ P $ M N ]

S T A C K

S P = X X - 2$ J S A $ C

A d d r e s sS 1 0 0 + X XS 1 0 0 + X X - 1S 1 0 0 + X X - 2

A n R T S t a k e s t h t o t w b y t e s o f t h s t a c k a n r e t u r n s t h e m t t h p r o g r a m c o u n t e r . T h s t a c k p o i n t e r i i n c r e m e n t e d b t w o .B E F O R E _ _ _ _ .

P r o g r a m C o u n t e r $ P M N S T A C K

A F T E R ( R T S )S P = Y Y

P r o g r a m C o u n t e r

$ J S A $ C

A d d r e s sS 1 0 0 + Y Y + 2S 1 0 0 + Y Y + 1S 1 0 0 + Y Y

S A $ C D |S T A C K

S P = Y Y + 2 $ J A d d r e s sS 1 0 0 + Y Y + 2D U M P m e m o r y f r o m $ 1 0 0 t $ 2 0 0 t h a v e a l o o k a t h s t a c k m e m o r y .

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

9

Page 98: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 98/206

1 2 2 0 L 1 7 01 7 C 9 5 01 8 0 9 0 L 1 9 51 9 E E 0 1 D 01 9 6

J S R L 1 7 0C M # $ 5 0B C C L 1 9 5I N # D 0 0 1R T

E N T E R a n R U t h p r o g r a m .O n m a j o r a d v a n t a g e o t h s t a c k i t h a t i c a a l s o b u s e d t s t o r e

d a t a b u s i n g t h e i n s t r u c t i o n s P H ( P u s h A c c u m u l a t o r o n t o t h S t a c k )a n P L ( P u l l A c c u m u l a t o r o f t h e S t a c k ) r e s p e c t i v e l y t p u t t h ec o n t e n t s o t h a c c u m u l a t o r o a n o f t h s t a c k .

W A R N I N G : m a k e s u r e y o p u t h i n g s o a n o f t h s t a c k i t h c o r r e c t o r d e r .

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

L e u u s t h e s e i n s t r u c t i o n s t o t e s t t h e o p e r a t i o n o t h s t a c k . T y p e :N E W A T C H

1 2 0 L 4 02 E E 2 0 D 03 6 4 6 5 A 6 6 7 8 E 3 4 0 38 8 D 3 5 0 39 4

1 0 1 1 4 1 2 0 6 0

P r o g r a m s u m m a r y

( a d d r e s s ? 3 3 4 )J S L 4 I N C $ D 0 2 0R T P L T A P L S T X $ 0 3 3 4S T A $ 0 3 3 5P H T X P H R T

L i n e 1 J S r e t u r n a d d r e s s ( a d d r e s s o n e x t i n s t r u c t i o n i p l a c e d o t h s t a c k ) . ( A c t u a l l y i p o i n t s t t h b y t eb e f o r e t h e n e x t i n s t r u c t i o n b e c a u s e t h P i i n c r e m e n t e d e a c h t i m e b e f o r e b y t e i ' f e t c h e d ' f r o mm e m o r y . )

L i n e 2 i n c r e m e n t s s c r e e n b o r d e r c o l o u r ( s e e A p p e n d i x 6 j u s tt s h o w t h a t t h p r o g r a m h a r e t u r n e d s a t i s f a c t o r i l y ,s a t i s f a c t o r i l y .

L i n e 3 E N L i n e s 4 6 t a k e t h t o t w b y t e s o t h s t a c k .L i n e s 7 8 s t o r e t h e m l o b y t e / h i g h b y t e a $ 3 3 4 , $ 3 3 5 .L i n e s 9 - 1 1 0 r e t u r n b y t e s t s t a c k I C O R R E C T O R D E RL i n e 1 2 E N o S u b r o u t i n e .

9

Page 99: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 99/206

E N T E R a n R U t h i s p r o g r a m . C h a n g e w a t c h t t e s t a d d r e s s $ 3 3 5 ,R U a g a i n . P u t t h e r e s u l t s t o g e t h e r a n c o m p a r e t h e m a g a i n s t t h e x p e c t e d a d d r e s s .

T h t w i n s t r u c t i o n s T S ( T r a n s f e r S i n t o X a n T X ( T r a n s f e r i n t oS P a r a v a i l a b l e t d d i r e c t m a n i p u l a t i o n s o t h S P W r i t e p r o g r a mw i t h s u b r o u t i n e w i t h i n s u b r o u t i n e , b o t h o w h i c h s a v e t h S i m e m o r y ( v i a X t s e t h c h a n g e i S w h e n s u b r o u t i n e i c a l l e d a n w h e n a R T i e x e c u t e d .

T h s t a c k a n i n t e r r u p t sW m e n t i o n e d i C h a p t e r 9 t h B R K c o m m a n d a n i t u s i d e b u g g i n gp r o g r a m s b h a l t i n g t h e m a n g i v i n g y o c h a n c e t e x a m i n e v a r i a b l e si ' m i d - f l i g h t ' . W h a t t h B R c o m m a n d a c t u a l l y d o e s i s o m e t h i n g l i k et h e o p e r a t i o n o J S R . T h B R c o m m a n d e x e c u t e s J S i n d i r e c t o $ F F F E , $ F F F F . I o t h e r w o r d s , t h c o n t e n t s o t h o s e b y t e s a r e p u t i n t ot h P a n t h p r o g r a m c o n t i n u e s t h e r e ( a R O b r e a k h a n d l i n gr o u t i n e ) . T h B R c o m m a n d a l s o p u s h e s t h v a l u e o t h p r o c e s s o rs t a t u s c o d e r e g i s t e r ( P o n t o t h s t a c k .

T h i s c a n b e d o n e o u t s i d e t h e B R K c o m m a n d u s i n g t h e P H ( P u s hP r o c e s s o r S t a t u s b y t e ) a n P L ( P u l l P r o c e s s o r S t a t u s b y t e )i n s t r u c t i o n s . T h i s a l l e a d s u t f a i r l y m a j o r a r e a o m a c h i n e l a n g u a g ep r o g r a m m i n g o t h C o m m o d o r e 6 I n t e r r u p t s . H o w e v e r , w w i l l n o c o v e r t h e s e , a t h e y a r e t o o a d v a n c e d f o t h i s b o o k b u w w i l l a t t e m p t t t e l l y o h o w , w h e r e a n w h t h e y w o r k . I g e n e r a l , a i n t e r r u p t i s e n t t t h m i c r o p r o c e s s o r b t h c o m p u t e r ' s h a r d w a r e t a l e r t i t s o m e t h i n gg o i n g o i t h o u t s i d e w o r l d w h i c h r e q u i r e s i t a t t e n t i o n , e . g . k e b e i n g p r e s s e d , r e a l t i m e c l o c k , o r g r a p h i c s a l e r t s ( s e e C h a p t e r 1 2 A p p e n d i x a n A p p e n d i x r e s p e c t i v e l y ) .

T h e s e i n t e r r u p t s a r h a r d w a r e s i g n a l s a n t h e i r e f f e c t i t h a l t t h m i c r o p r o c e s s o r i t h m i d d l e o w h a t e v e r i w a d o i n g , a n j u m p t a i n t e r r u p t s e r v i c e r o u t i n e ( v i a v e c t o r s a $ F F F E , $ F F F F ) .

I s i m i l a r w a t t h B R K , a i n t e r r u p t s t o r e s t h P o t h s t a c k( w i t h t h a d d r e s s o t h i n s t r u c t i o n i w a i t h m i d d l e o d o i n g n o t h e n e x t i n s t r u c t i o n ) . I t h e n s t o r e s t h s t a t u s r e g i s t e r ( P o t h s t a c ka n d o e s a i n d i r e c t j u m p o t h c o n t e n t s o l o c a t i o n $ F F F E a n $ F F F F ,w h i c h t a k e i t R O i n t e r r u p t r o u t i n e .

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

P r e s s R U N S T O P - R E S T O R E t r e t u r n t h s c r e e n t n o r m a l . T y p eG O T O 2 0 2 8 ) .

9

Page 100: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 100/206

C h a p t e r 1 S U M M A R Y1 P r o g r a m C o u n t e r ( P C ) p o i n t s t t h e n e x t b y t e i m e m o r y t b u s e d

a a i n s t r u c t i o n .2 J M s t o r e s a d d r e s s i P C 3 B r a n c h e s a d o r s u b t r a c t f r o m P C 4 J S s t o r e s P o s t a c k a n s t o r e s n e a d d r e s s i P ( s u b r o u t i n e ) .5 R T t a k e s t h t o t w b y t e s o f s t a c k s t o r e s i P ( r e t u r n a d d r e s s ) .6 T h s t a c k c a o n l y h a v e t h i n g s p u o a o n e n d . T h e y c a n o n l y b

t a k e n o f f r o m t h s a m e e n i t h s a m e o r d e r t h e y w e r e p u o n 7 T h s t a c k p o i n t e r k e e p s t r a c k o t h ' t o p ' o t h s t a c k .

R T = S P = S P + 2J S = S P = S P - 2

8 P H A , P L s t o r e a n r e t r i e v e t h a c c u m u l a t o r f r o m t h s t a c k . B s u r e t t a k e t h i n g s o f t h s t a c k i t h s a m e o r d e r t h e y w e n t o n

9 T X S , T S t r a n s f e r c o n t e n t s b e t w e e n t h s t a c k p o i n t e r a n X 1 0 B R P - > S t a c k ( 2 b y t e s )

S t a t u s b y t e - » S t a c kC o n t e n t s o ( F F F E . F F F F ) - + P C

1 1 P H P , P L p u s h a n p u l l p r o c e s s o r s t a t u s w o r d o n t o t h s t a c k .1 2 . I n t e r r u p t s c o m e f r o m c h i p s e x t e r n a l t t h m i c r o p r o c e s s o r

P - > S t a c k ( 2 b y t e s )S t a t u s b y t e - » S t a c k

( F F F E . F F F F ) - * P CT h e y a r h a n d l e d b y R O h a n d l i n g r o u t i n e s .

9

Page 101: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 101/206

Page 102: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 102/206

C h a p t e r 1 D e a l i n g w i t h t h O p e r a t i n g S y s t e m

T h K e r n a lT h i s c h a p t e r w i l l t e l l y o s o m e t h i n g a b o u t d e a l i n g w i t h t h o p e r a t i n gs y s t e m o t h C o m m o d o r e 6 4 T h o p e r a t i n g s y s t e m i p r o g r a m i R O s o m e t i m e s c a l l e d t h K e r n a l . I s i t s i m e m o r y f r o m $ E 0 0 0 t $ F F F F a n d e a l s w i t h t h h a r d w a r e s i d e o t h c o m p u t e r ( o t h e r R O d e a l s w i t h B A S I C o C h a r a c t e r s e t c ) . T h e r e a r r o u t i n e s i t h k e r n a l f o o p e n i n g a n c l o s i n g f i l e s , p r i n t i n g c h a r a c t e r s t t h s c r e e n , g e t t i n gc h a r a c t e r s f r o m t h k e y b o a r d , m o v i n g t h c u r s o r a r o u n d t h e s c r e e n ,l o a d i n g a n s a v i n g f i l e s , a n o t h e r s u c h m u n d a n e b u n e c e s s a r y t a s k s .I t h i s c h a p t e r w w i l l g i v e e x a m p l e s o h o t u s a f e w o t h e s er o u t i n e s ( t h e A p p e n d i c e s w i l l g i v e c l u e s t m o r e b u t t h e r e s t i u t y o u ) . A r m e d w i t h t h e s e m e t h o d s a n t h i n f o r m a t i o n g i v e n i t h A p p e n d i c e s ( a n d a n y o c a s c r o u n g e f r o m e l s e w h e r e ) , y o w i l l b a b l e t c r e a t e p r o g r a m s w h i c h c a n e a s i l y a n e f f e c t i v e l y c o m m u n i c a t ew i t h t h o u t s i d e w o r l d . O n o t h m a j o r u s e s o t h k e r n a l i i d e a l i n gw i t h i n t e r r u p t s . I n t e r r u p t s m a b s e n t b p e r i p h e r a l s , t h s o u n d c h i pa n t h c l o c k a w e l l a m a n y o t h e r p l a c e s . T h c l o c k s e n d s o u a i n t e r r u p t e v e r y 1 / 5 0 o s e c o n d ( 1 / 6 0 i t h U . S . A . ) . T h i s i n t e r r u p t i u s e d b t h e k e r n a l t u p d a t e t h t i m e o d a c l o c k a n t c h e c k t h k e y b o a r d f o k e y p r e s s .

W s a i d i t h p r e v i o u s c h a p t e r t h a t a i n t e r r u p t , a w e l l a p u t t i n gr e t u r n a d d r e s s a n t h s t a t u s b y t e o t h s t a c k , d i a i n d i r e c t J U M P o t h c o n t e n t s o m e m o r y l o c a t i o n s $ F F F E a n $ F F F F . W s a i d t h i s w a d i r e c t e d t t h o p e r a t i n g s y s t e m s i n t e r r u p t h a n d l e r i R O M . T h i s R O r o u t i n e d o e s i t w o r k a n t h e n g i v e s t h p r o g r a m m e r a c c e s s t t h i n t e r r u p t p r o c e s s b d o i n g j u m p t h r o u g h i n t e r r u p t v e c t o r s p l a c e d i R A a l o c a t i o n s $ 3 1 4 , $ 3 1 5 ( l o w b y t e / h i g h b y t e f o r m a t ) . S i n c e t h e s ev e c t o r s a r p l a c e d i R A t h e y c a b c h a n g e d t p o i n t t o u p r o g r a m .

O u i n t e r r u p t r o u t i n e m u s t d o n o t w t h i n g s . I m u s t e i t h e r r e t u r n v i at h o p e r a t i n g s y s t e m w h e n i i f i n i s h e d ( v i a t h a d d r e s s w h i c h w a i t h i n t e r r u p t v e c t o r b e f o r e w c h a n g e d i t o w m u s t ' c l e a n u p t h s y s t e m a n r e t u r n p r o p e r l y f r o m a n i n t e r r u p t . I p r a c t i c e i i g e n e r a l l y

9

Page 103: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 103/206

e a s i e r t t a k e t h f i r s t c h o i c e . I w d i o o u o w n , o u p r o g r a m m u s tf i n i s h b y 1 T a k i n g t h r e g i s t e r s o f t h s t a c k . W h e n t h R O i n t e r r u p t r o u t i n e i

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

2 W m u s t r e - e n a b l e i n t e r r u p t s . T h R O r o u t i n e , a w e l l a s d o i n g a S E w h i c h s e t s t h i n t e r r u p t f l a g i t h s t a t u s r e g i s t e r , t u r n s o f t h i n t e r r u p t s f r o m t h e i r s o u r c e .

3 D a R T I ( R e t u r n F r o m I n t e r r u p t ) .H a v e l o o k a t h R O i n t e r r u p t e x i t r o u t i n e b d i s a s s e m b l i n g

m e m o r y f r o m $ E A 3 1 o n w a r d s .N O T E : S E ( S e t I n t e r r u p t F l a g ) w i l l s t o p t h m i c r o p r o c e s s o r f r o m

r e c e i v i n g a n m o r e i n t e r r u p t s . T h i s i s e a t h b e g i n n i n g o t h i n t e r r u p tr o u t i n e t m a k e s u r e t h a t a n t i m e - c r i t i c a l i n t e r r u p t s a r c o m p l e t e db e f o r e a n o t h e r i s t a r t e d ( t a l l o w f o t h c h a n c e o b e i n g i n t e r r u p t e dd u r i n g t h i n t e r r u p t r o u t i n e ) .

C ( C l e a r I n t e r r u p t F l a g )T h i s r e - e n a b l e s i n t e r r u p t s t o c c u r . T h i s i n s t r u c t i o n i u s e d a t h e n o s o m e i n t e r r u p t r o u t i n e s , o i t h i n t e r r u p t i n o t i m e - c r i t i c a l .R T ( R e t u r n F r o m I n t e r r u p t )S o m e w h a t l i k e t h R T S , t h i s i n s t r u c t i o n r e m o v e s t h o s e t h i n g s p l a c e d o t h s t a c k b t h i n t e r r u p t s ( s t a t u s b y t e , p r o g r a m c o u n t e r ) , t h e r e b yr e t u r n i n g t w h e r e t h p r o g r a m l e f t o f ( w i t h t h s t a t u s b y t e u n d i s t u r b e d ) .T h i s , b r e s t o r i n g t h s t a t u s b y t e , w i l l c l e a r t h i n t e r r u p t f l a g ( i c o u l d n o h a v e b e e n s e w h e n t h i n t e r r u p t w a r e c e i v e d ! )

O u s a m p l e i n t e r r u p t p r o g r a m w h i c h f o l l o w s i i t w p a r t s . T h f i r s tp a r t s e t s u t h i n t e r r u p t v e c t o r s a l o c a t i o n $ 3 1 4 , $ 3 1 5 ; i i c a l l e d o n c ew h e n t h p r o g r a m i R U a n t h e n r e t u r n s . T h e s e c o n d p a r t , w h i c h i p o i n t e d t b t h a l t e r e d i n t e r r u p t v e c t o r s , i c a l l e d 5 t i m e s s e c o n d( w h e n a i n t e r r u p t i m a d e b t h c l o c k c h i p ) .

T y p e t h f o l l o w i n g :N W A T C HN E 1 A 9 4 C1 8 D F 0 C F1 A 9 4 91 6 8 D F 1 C F1 A 9 5 32 8 D F 2 C F2 A 9 5 4

L D # $ 4 CS T A $ C F F 0L D # $ 4 9S T A $ C F F 1L D # $ 5 3S T A $ C C F 2L D # $ 5 4

9

Page 104: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 104/206

2 8 D F 3 C F2 A 9 0 D2 8 D F 4 C F3 A 9 0 03 8 D F 5 C F3 7 3 A 9 2 B3 8 D 1 4 0 34 A 9 C 04 8 D 1 5 0 34 5 4 6 6 2 0 9 F F F6 A 6 C 66 F 0 L 9 06 C 6 B D 7 7 0 27 C 9 8 57 D 0 L 9 07 A 0 F F7 C 8 0 E 88 B 9 F 0 C F8 9 D 7 7 0 28 D 0 L 7 88 8 6 C 69 4 C 3 1 E A

P r o g r a m s u m m a r y

S T A $ C F F 3L D # $ 0 DS T A $ C F F 4L D # $ 0 0S T A $ C F F 5S E L D # $ 2 BS T A $ 0 3 1 4L D A # $ C 0S T A $ 0 3 1 5C L R T J S $ F F 9 FL D X $ C 6B E L 9 D E L D A $ 0 2 7 7 , XC M # $ 8 5B N L 9 L D # $ F F

N I N * L D A $ C F F 0 , YS T A $ 0 2 7 7 , XB N L 7 S T X $ C 6J M P $ E A 3 1

T h i s o r o a r a m s e t s u t h f u n c t i o n k e F t p r i n t L I S T l R E T U R N l w h e nt h k e i h i t . T h i s c a b d o n e f o a n s t r i n g f o a n k e a n c a s a v ey o f r o m t y p i n g c o m m o n l y u s e d c o m m a n d s .P a r t i l i n e s 1 0 - 4 6

l i n e s 1 0 - 3 2i n i t i a l i s a t i o ns e u i m e m o r y , f r o m $ C F F 0o n w a r d s , s t r i n g o c h a r a c t e r s ,L - l - S - T I R E T U R N I f o l l o w e d b v z e r o

l i n e 3

l i n e s 3 6 - 4 2

l i n e s 4 4 - 4 6

s i g n i f y i n g t h e n o t h s t r i n g .t u r n s o f t h i n t e r r u p t s b s e t t i n g t h i n t e r r u p t f l a g . T h i s m u s t b d o n e w h i l ec h a n g i n g t h i n t e r r u p t v e c t o r s .c h a n g e t h i n t e r r u p t v e c t o r s t p o i n t t P a r t o t h p r o g r a m . ( P a r t w i l l s t a r tf r o m l o c a t i o n $ C 0 2 B c o u n t t h b y t e s . )r e - e n a b l e t h i n t e r r u p t s a n d E N D .

9

Page 105: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 105/206

P a r t l i n e s 6 0 - 9 0

l i n e 6

l i n e 6

l i n e 6 l i n e 6 l i n e s 6 8 - 7 2

l i n e s 7 4 - 8 6l i n e 8 l i n e 9

w i l l b p u a $ C 0 2 B a n b c a l l e d 5 t i m e s s e c o n d v i t h i n t e r r u p tv e c t o r s .J S t t h k e m a l ' s k e y b o a r d s c a nr o u t i n e . T h i s r o u t i n e s c a n s t h k e y b o a r d a n r e t u r n s w i t h a n k e p r e s s e d i t h i n p u t b u f f e r a $ 2 7 7o n w a r d s .l o a d s w i t h t h e l e n g t h o t h i n p u tb u f f e r ( p o i n t e r t n e x t e m p t y s p a c e i b u f f e r ) ,i b u f f e r e m p t y r e t u r n .p o i n t s p o i n t e r t p r e v i o u s e n t r y i h i f f o rk J K J l I l o a d p r e v i o u s c h a r a c t e r i i i n o t h F k e r e t u r n .o u s t r i n a C L I S T I R E T U R N D i n t o b u f f e r .s a v e s n e p o i n t e r t b u f f e r l e n g t h .r e t u r n s v i R O i n t e r r u p t h a n d l e r .

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

h a a u t o m a t i c a l l y t y p e d t h L I S T c o m m a n d f o y o a n d i s p l a y e d t h p r o g r a m .

T h t a b l e s p r e s e n t e d i t h A p p e n d i c e s a r n o i n t e n d e d t e x p l a i ne v e r y ( o e v e n s o m e ) R O k e r n a l r o u t i n e i d e t a i l . T h a t w o u l d p r o v i d ee n o u g h t e x t f o a e n t i r e b o o k o i t o w n . T h i s b o o k d o e s g i v e y o t h e n t r y p o i n t s ( a d d r e s s e s ) o s o m e o t h k e r n a l r o u t i n e s , a n g i v e s y o d e t a i l s o t h r e q u i r e m e n t s a n a c t i o n s o f e o t h m o s t c o m m o n l yu s e d r o u t i n e s . T h o n l y w a t f i n d o u m o r e i b y c o m b i n a t i o n o t r i a la n e r r o r a n b d i s a s s e m b l i n g t h r o u t i n e s a t h e y a r i m e m o r y .

G O O D L U C K !O H T h e r e i o n 6 5 1 0 i n s t r u c t i o n w h i c h h a v e n o t y e t m e n t i o n e d .

T h a t i t h N O ( N O p e r a t i o n ) i n s t r u c t i o n . A l t h o u g h i d o e s n o t h i n g , i t a k e s c e r t a i n a m o u n t o t i m e t d o I i u s e d s u r p r i s i n g l y o f t e n w i t h i nt i m e d e l a y l o o p , o t f i l l p a t c h w i t h i n p r o g r a m w h e r e y o h a v ed e c i d e d t r e m o v e i n s t r u c t i o n s . T h e v a l u e f o f o t h i n s t r u c t i o n N O i S E A .C h a p t e r 1 S U M M A R Y1 K e r n a l i R O h a n d l e s t h c o m p u t e r ' s c o n t a c t w i t h t h o u t s i d e

w o r l d .2 K e r n a l r e s i d e s i m e m o r y f r o m $ E 0 0 0 t $ F F F F .3 S E S e t s i n t e r r u p t f l a g a n e x c l u d e s a n f u r t h e r i n t e r r u p t s f r o m

o c c u r r i n g .

9

Page 106: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 106/206

4 C L c l e a r s i n t e r r u p t f l a g , r e - e n a b l e s i n t e r r u p t s .5 R T r e t u r n f r o m i n t e r r u p t .

S T A C K - > S t a t u s b y t eS T A C K - » P C ( b y t e s )

6 N O n o p e r a t i o n .

9

Page 107: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 107/206

Page 108: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 108/206

A P P E N D I C E S

I n t r o d u c t i o n t o t h A p p e n d i c e sW h a v e p r o v i d e d y o w i t h c h a r t s a n t a b l e s o u s e f u l i n f o r m a t i o nn e c e s s a r y f o m a c h i n e c o d e p r o g r a m m i n g o t h C o m m o d o r e 6 4 T h i n f o r m a t i o n p r e s e n t e d w i l l s t a n d a u s e f u l r e f e r e n c e l o n g a f t e r y o h a v e l e f t ' b e g i n n e r 1 s t a t u s b u t . u n t i l t h e n t h e s e t a b l e s c a b u s e d b t h e b e g i n n e r . W h a v e p r o v i d e d e x p l a n a t i o n s a n o c c a s i o n a l l ye x a m p l e s o t h m o s t u s e f u l p a r t s o t h t a b l e s . T h o s e t h a t h a v e n oa c c o m p a n y i n g e x p l a n a t i o n a r e r e a l l y b e y o n d t h s c o p e o t h i s b o o ka n a r e i n c l u d e d f o r i n t e r e s t ' s s a k e , a w e l l a t g i v e y o h a n d yr e f e r e n c e a n s t a r t t o w a r d s m o r e c o m p l e x a n d i n t r i c a t e p r o g r a m m i n gi t h f u t u r e .

1 0

Page 109: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 109/206

Page 110: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 110/206

A p p e n d i x

6 5 1 0 I n s t r u c t i o n C o d e sT h e s e t a b l e s s h o u l d b c o n s t a n t r e f e r e n c e w h i l e w r i t i n g m a c h i n ec o d e o a s s e m b l y c o d e p r o g r a m s . T h e r e i l i s t o e v e r y i n s t r u c t i o n w i t h

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

1 0

Page 111: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 111/206

6 5 1 0 M i c r o p r o c e s s o r I n s t r u c t i o n si a l p h a b e t i c a l o r d e rA D A d M e m o r y t A c c u m u l a t o r w i t h L D

C a r r yA N " A N D " M e m o r y w i t h A c c u m u l a t o r L D A S S h i f t L e f t O n B i ( M e m o r y o L D

A c c u m u l a t o r ) L S B C B r a n c h o n C a r r y C l e a rB C B r a n c h o n C a r r y S e N O B E B r a n c h o n R e s u l t Z e r o O R B I T e s t B i t s i M e m o r y w i t h P H

A c c u m u l a t o r P H B M B r a n c h o n R e s u l t M i n u s P L B N B r a n c h o R e s u l t n o Z e r o P L B P B r a n c h o n R e s u l t P l u s R O B R F o r c e B r e a kB V B r a n c h o O v e r f l o w C l e a r R O B V B r a n c h o n O v e r f l o w S e C L C l e a r C a r r y F l a g R T IC L C l e a r D e c i m a l M o d e R T C L C l e a r I n t e r r u p t D i s a b l e B i S B C L C l e a r O v e r f l o w f l a gC M C o m p a r e M e m o r y a n S E

A c c u m u l a t o r S E C P C o m p a r e M e m o r y a n I n d e x S E C P C o m p a r e M e m o r y a n I n d e x S T D E D e c r e m e n t M e m o r y b O n S T D E D e c r e m e n t I n d e x b O n S T D E D e c r e m e n t I n d e x b O n e T A XE O " E x c l u s i v e - O r " M e m o r y w i t h T A

A c c u m u l a t o r T S I N I n c r e m e n t M e m o r y b O n T X I N I n c r e m e n t I n d e x b O n T X I N I n c r e m e n t I n d e x b O n e T Y AJ M J u m p t N e L o c a t i o nJ S J u m p t N e L o c a t i o n S a v i n g

R e t u r n A d d r e s s

L o a d A c c u m u l a t o r w i t hM e m o r yL o a d I n d e x w i t h M e m o r yL o a d I n d e x w i t h M e m o r yS h i f t R i g h t o n B i ( M e m o r y o A c c u m u l a t o r )N O p e r a t i o n" O R " M e m o r y w i t h A c c u m u l a t o rP u s h A c c u m u l a t o r o S t a c kP u s h P r o c e s s o r S t a t u s o S t a c kP u l l A c c u m u l a t o r f r o m S t a c kP u l l P r o c e s s o r S t a t u s f r o m S t a c kR o t a t e O n B i L e f t ( M e m o r y o A c c u m u l a t o r )R o t a t e O n B i R i g h t ( M e m o r y o A c c u m u l a t o r )R e t u r n f r o m I n t e r r u p tR e t u r n f r o m S u b r o u t i n eS u b t r a c t M e m o r y f r o mA c c u m u l a t o r w i t h B o r r o wS e t C a r r y F l a gS e D e c i m a l M o d eS e I n t e r r u p t D i s a b l e S t a t u sS t o r e A c c u m u l a t o r i M e m o r yS t o r e I n d e x i M e m o r yS t o r e I n d e x i M e m o r yT r a n s f e r A c c u m u l a t o r t I n d e xT r a n s f e r A c c u m u l a t o r t I n d e xT r a n s f e r S t a c k P o i n t e r t I n d e xT r a n s f e r I n d e x t A c c u m u l a t o rT r a n s f e r I n d e x t S t a c k P o i n t e rT r a n s f e r I n d e x t A c c u m u l a t o r

1 0

Page 112: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 112/206

6 5 1 0 I n s t r u c t i o n C o d e s

N a m eD e s c r i p t i o nA D A d m e m o r y t a c c u m u l a t o r w i t h c a r r y

A N " A N D " m e m o r y w i t ha c c u m u l a t o r

A S S h i f t l e f t o n b i ( M e m o r y o A c c u m u l a t o r )

1 C J H 7 | 6 | 5 | 4 | 3 | 2 | 1 | O N O IB B B r a n c h o n c a r r y c l e a rB C B r a n c h o c a r r y s e B E B r a n c h o r e s u l t z e r oB I T e s t b i t s i m e m o r yw i t h a c c u m u l a t o rB M B r a n c h o n r e s u l t m i n u sB N B r a n c h o r e s u l t n o z e r oB P B r a n c h o n r e s u l t p l u sB R F o r c e B r e a k

B V B r a n c h o o v e r f l o w c l e a r

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

I m m e d i a t eZ e r o P a g eZ e r o P a g e . XA b s o l u t eA b s o l u t e . XA b s o l u t e . Y( I n d i r e c t . X )( I n d i r e c t ) . Y

I m m e d i a t eZ e r o P a g eZ e r o P a g e . XA b s o l u t eA b s o l u t e . XA b s o l u t e . Y( I n d i r e c t . X )( I n d i r e c t ) . Y

A c c u m u l a t o rZ e r o P a g eZ e r o P a g e . XA b s o l u t eA b s o l u t e . X

R e l a t i v e

R e l a t i v e

R e l a t i v e

Z e r o P a g eA b s o l u t e

R e l a t i v e

R e l a t i v e

R e l a t i v e

I m p l i e d

R e l a t i v e

A s s e m b l yL a n g u a g eF o r m

A D # O p e rA D O p e rA D O p e r . XA D O p e rA D O p e r . XA D O p e r . YA N ( O p e r . X )A D ( O p e r ) . Y

A N D # O p e rA N O p e rA N O p e r . XA N O p e rA N O p e r . XA N O p e r . YA N ( O p e r . X )A N ( O p e r . ) Y

A S A S O p e rA S O p e r . XA S O p e rA S O p e r . X

B B O p e r

B C O p e r

B E O p e r

B I O p e rB I O p e r

B M O p e r

B N O p e r

B P o p e r

B R

B V O p e r

N B y t e s

<

H E O

C o d e

6 6 7 6 7 7 6 7

2 2 3 2 3 3 3 3

O 0 1 O 1

9

B

F

2 2

3

D

1

0

5

S t a t u sR e g i s t e r

N V B D Z

N B Z •

N V - B D Z • •

N B Z

N B Z

N B Z

N B Z M

N B Z

N V - B D Z

N B Z

N B Z 1

N B Z

1 0

Page 113: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 113/206

6 5 1 0 I n s t r u c t i o n C o d e s

M O M I Ar a t t n i t jD e s c r i p t i o nB V B r a n c h o o v e r f l o w s e C L C l e a r c a r r y f l a gC L C l e a r d e c i m a l m o d eC C l e a r i n t e r r u p t f l a gC L C l e a r o v e r f l o w f l a gC M C o m p a r e m e m o r y a n a c c u m u l a t o r

C P C o m p a r e m e m o r y a n i n d e x

C P C o m p a r e m e m o r y a n i n d e x

D E D e c r e m e n t m e m o r yb o n

D E D e c r e m e n t i n d e xb o n D E D e c r e m e n t i n d e xb o n

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

R e l a t i v e

I m p l i e d

I m p l i e d

I m p l i e d

I m p l i e d

I m m e d i a t eZ e r o P a g eZ e r o P a g e . XA b s o l u t eA b s o l u t e . XA b s o l u t e . Y( I n d i r e c t . X )( I n d i r e c t ) . Y

I m m e d i a t eZ e r o P a g eA b s o l u t e

I m m e d i a t eZ e r o P a g eA b s o l u t e

Z e r o P a g eZ e r o P a g e . XA b s o l u t eA b s o l u t e . X

I m p l i e d

I m p l i e d

A s s e m b l yL a n g u a g en o r m

B V S O p e r

C L

C L

C L

C L

C M P # O p e rC M O p e rC M O p e r . XC M O p e rC M O p e r . XC M O p e r . YC M ( O p e r . X )C M ( O p e r ) . Y

C P X # O p e rC P O p e rC P O p e r

C P Y # O p e rC P O p e rC P O p e r

D E O p e rD E O p e r XD E O p e rD E O p e r . X

D E

D E

N B y t e s

H E O

C o d e

7

1

D

5

B

C C D C D D C D

E E E

C C C

C D C D

D

8

S t a t u sR e g i s t e r

N B Z

N B Z

N V - B D I Z C

N V - B D I Z C

N B Z

N B Z

N B Z

N B Z

N B Z

N B Z

N B Z

1 0

Page 114: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 114/206

6 5 1 0 I n s t r u c t i o n C o d e s

N a m eD e s c r i p t i o nE O " E x c l u s i v e O r m e m o r yw i t h a c c u m u l a t o r

I N I n c r e m e n t m e m o r yb o n

I N I n c r e m e n t i n d e x b o n I N I n c r e m e n t i n d e x b y o n eJ M J u m p t n e l o c a t i o n

J S J u m p t n e l o c a t i o ns a v i n g r e t u r n a d d r e s sL D L o a d a c c u m u l a t o rw i t h m e m o r y

L D L o a d i n d e xw i t h m e m o r y

L D L o a d i n d e xw i t h m e m o r y

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

I m m e d i a t eZ e r o P a g eZ e r o P a g eA b s o l u t eA b s o l u t e . XA b s o l u t e . Y( I n d i r e c t . X )( I n d i r e c t ) . Y

Z e r o P a g eZ e r o P a g e . XA b s o l u t eA b s o l u t e . X

I m p l i e d

I m p l i e d

A b s o l u t eI n d i r e c t

A b s o l u t e

I m m e d i a t eZ e r o P a g eZ e r o P a g e . XA b s o l u t eA b s o l u t e . XA b s o l u t e . Y( I n d i r e c t . X )( I n d i r e c t ) . Y

I m m e d i a t eZ e r o P a g eZ e r o P a g e . YA b s o l u t eA b s o l u t e . Y

I m m e d i a t eZ e r o P a g eZ e r o P a g e . XA b s o l u t eA b s o l u t e . X

A s s e m b l yL a n g u a g eF o r m

E O R # O p e rE O O p e rE O O p e r . XE O O p e rE O O p e r . XE O O p e r . YE O ( O p e r . X )E O ( O p e r ) . Y

I N C . O p e rI N O p e r . XI N O p e rI N C O p e r . X

I N

I N

J M O p e rJ M ( O p e r )

J S O p e r

L D A # O p e rL D O p e rL D O p e r . XL D O p e rL D O p e r . XL D O p e r . YL D ( O p e r . X )L D ( O p e r ) . Y

L D X # O p e rL D O p e rL D O p e r . YL D O p e rL D O p e r . Y

L D Y # O p e rL D O p e rL D O p e r . XL D O p e rL D O p e r . X

N B y t e s

_ .

H E O

C o d e

4 4 5 4 5 5 4 5

E F E F

E

C

4 6

2

A A B A B B A B

A A B A B

A A B A B

S t a t u sR e g i s t e r

N B Z •

N B Z •

N B Z •

N B Z •

N B Z

N B Z

N B Z •

N V - B D Z •

N B Z

1 0

Page 115: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 115/206

6 5 1 0 I n s t r u c t i o n C o d e s

N a m eD e s c r i p t i o nL S S h i f t r i g h t o n b i ( m e m o r y o a c c u m u l a t o r )

I o k 7 l 8 l 6 l 4 | 3 l 2 H I O K l c I

N O N o p e r a t i o nO R " O R " m e m o r y w i t ha c c u m u l a t o r

P H P u s h a c c u m u l a t o ro s t a c kP H P u s h p r o c e s s o r s t a t u so s t a c kP L P u l l a c c u m u l a t o rf r o m s t a c kP L P u l l p r o c e s s o r s t a t u sf r o m s t a c kR O R o t a t e o n b i l e f t( m e m o r y o a c c u m u l a t o r )

I j 7 6 5 4 3 2 O M c WR O R o t a t e o n b i r i g h t( m e m o r y o a c c u m u l a t o r )

i j c l H 7 4 3 0 | - l

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

A c c u m u l a t o rZ e r o P a g eZ e r o P a g e . XA b s o l u t eA b s o l u t e . X

I m p l i e d

I m m e d i a t eZ e r o P a g eZ e r o P a g e . XA b s o l u t eA b s o l u t e . XA b s o l u t e . Y( I n d i r e c t . X )( l n d i r e c t ) . Y

I m p l i e d

I m p l i e d

I m p l i e d

I m p l i e d

A c c u m u l a t o rZ e r o P a g eZ e r o P a g e . XA b s o l u t eA b s o l u t e . X

A c c u m u l a t o rZ e r o P a g eZ e r o P a g e . XA b s o l u t eA b s o l u t e . X

A s s o i i i b l yL a n g u a g eF o r m

L S L S R O p e rL S R O p e r XL S R O p e rL S R O p e r X

N O

O R A # O p e rO R O p e rO R O p e r . XO R O p e rO R O p e r . XO R O p e r . YO R ( O p e r . X )O R ( O p e r ) . Y

P H

P H

P L

P L

R O R O O p e rR O L O p e r . XR O O p e rR O L O p e r . X

R O R AR O O p e rR O O p e r . XR O O p e rR O O p e r . X

N B y t e s

H E O

C o d e

4 4 5 4 5

E

0 0 1 O 1 1 0 1

4

0

6

2

2 2 3 2 3

6 6 7 6 7

S t a t u sR e g i s t e r

N B Z •

N B Z

N B Z

N B Z

N B Z

N B Z

N V B Z

N B Z •

N B Z •

1 0

Page 116: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 116/206

Page 117: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 117/206

6 5 1 0 I n s t r u c t i o n C o d e s

N a m eD e s c r i p t i o nT X T r a n s f e r i n d e xt a c c u m u l a t o rT X T r a n s f e r i n d e x t s t a c k p o i n t e rT Y T r a n s f e r i n d e xt a c c u m u l a t o r

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

I m p l i e d

I m p l i e d

I m p l i e d

A s s e m b l yL a n g u a g eF o r m

T X

T X

T Y

N B y t e s

H E O

C o d e

B

9

9

S t a t u sR e g i s t e r

N B Z

N B Z

N B Z

1 1

Page 118: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 118/206

6 5 1 0 M i c r o p r o c e s s o r O p e r a t i o n C o d e si n u m e r i c a l v a l u e o r d e r

0 0 - B R K0 — O R A — ( I n d i r e c t . X )0 2 - ? ? ?0 ? ? 0 4 - ? ? ?0 5 - O R A - Z e r o P a g e0 — A S L — Z e r o P a g e0 7 - ? ? ?0 8 — P H P0 — O R A — I m m e d i a t e0 A — A S L — A c c u m u l a t o r0 B - ? ? ?0 C - ? ? ?0 D - O R A - A b s o l u t eO A S A b s o l u t eO F — ? ? ?1 0 - B P L1 1 _ 0 R A - ( l n d i r e c t ) . Y1 2 - ? ? ?1 3 - ? ? ?1 4 - ? ? ?1 5 - O R A - Z e r o P a g e . X1 — A S L — Z e r o P a g e . X1 ? ? 1 — C L C1 9 - O R A - A b s o l u t e .1 A - ? ? ?1 B - ? ? ?1 C - ? ? ?1 — O R A — A b s o l u t e . X1 — A S L — A b s o l u t e . X1 F — ? ? ?2 0 - J S R2 1 — A N D — ( I n d i r e c t . X )2 ? ? 2 ? ? 2 4 - B I T - Z e r o P a g e2 5 - A N D - Z e r o P a g e2 - R O L - Z e r o P a g e2 7 - ? ? ?2 8 - P L P2 9 - A N D - I m m e d i a t e2 A R O A c c u m u l a t o r2 B - ? ? ?2 C — B I T — A b s o l u t e2 — A N D — A b s o l u t e2 E - R O L - A b s o l u t e

2 F — ? ? ?3 0 — B M I3 A N D — ( I n d i r e c t ) .3 2 - ? ? ?3 3 - ? ? ?3 ? ? 3 — A N D — Z e r o P a g e . X3 6 - R O L - Z e r o P a g e . X3 ? ? 3 8 - S E C3 9 - A N D - A b s o l u t e .3 A - ? ? ?3 B — ? ? ?3 C - ? ? ?3 — A N D — A b s o l u t e . X3 E _ R O L - A b s o l u t e . X3 F — N O P4 0 — R T I4 E O — ( I n d i r e c t . X )4 2 - ? ? ?4 ? ? 4 ? ? 4 5 — E O R — Z e r o P a g e4 6 - L S R - Z e r o P a g e4 ? ? 4 8 - P H A4 E O I m m e d i a t e4 L S A c c u m u l a t o r4 B — ? ? ?4 J M P — A b s o l u t e4 D — E O R — A b s o l u t e4 E — L S R — A b s o l u t e4 F — ? ? ?5 0 — B V C5 E O ( I n d i r e c t ) . Y5 ? ? 5 ? ? 5 ? ? 5 E O Z e r o P a g e . X5 6 — L S R — Z e r o P a g e . X5 ? ? 5 8 C L 5 9 — E O R — A b s o l u t e . Y5 A - ? ? ?5 B - ? ? ?5 C - ? ? ?5 E O A b s o l u t e . X

5 E — L S R — S b s o l u t e . X5 F — ? ? ?6 0 — R T S6 1 — A D C — ( I n d i r e c t . X )6 2 - ? ? ?6 3 - ? ? ?6 ? ? 6 — A C D — Z e r o P a g e6 6 — R O R — Z e r o P a g e6 ? ? 6 8 — P L A6 — A D C — I m m e d i a t e6 R O A c c u m u l a t o r6 — ? ? ?6 J M P — I n d i r e c t6 — A D C — A b s o l u t e6 E — R O R — A b s o l u t e6 F — ? ? ?7 0 - B V S7 i _ A D C - ( l n d i r e c t ) . Y7 2 - ? ? ?7 ? ? 7 4 - ? ? ?7 5 - A D C - Z e r o P a g e . X7 6 - R O R - Z e r o P a g e . X7 ? ? 7 — S E I7 9 — A D C — A b s o l u t e . Y7 A — ? ? ?7 B - ? ? ?7 — ? ? ?7 — A D C — A b s o l u t e . X7 E — R O R — A b s o l u t e . X7 ? - 7 T >8 0 — ? ? ?8 — S T A — ( I n d i r e c t X )8 2 - ? ? ?8 3 - ? ? ?8 4 - S T Y - Z e r o P a g e8 S T Z e r o P a g e8 6 - S T X - Z e r o P a g e8 7 - ? ? ?8 8 — D E Y8 9 — ? ? ?8 A — T X A8 B — ? ? ?8 — S T Y — A b s o l u t e

1 1

Page 119: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 119/206

8 D - S T A -8 S T 8 F 9 0 - B C C9 1 _ S T A -9 2 - ? ? ?9 3 - ? ? ?9 4 _ S T Y -9 — S T A -9 6 S T 9 7 — ? ? ?9 8 - T Y A9 9 - S T A9 A — T X S9 B - ? ? ?9 C - ? ? ?9 D - S T A9 E - ? ? ?9 F - ? ? ?A O L D A L D A 2 — L D XA 3 - ? ? ?A 4 - L D YA 5 — L D AA 6 — L D XA 7 — 7 7 ?A 8 - T A YA 9 - L D AA — T A XA B - ? ? ?A C - L D YA D - L D AA E — L D XN F — 7 7 7B O - B C SB 1 - L D AB 2 - ? ? ?B 3 - ? ? ?

A b s o l u t eA b s o l u t e

( I n d i r e c t ) . Y

Z e r o P a g e . XZ e r o P a g e . XZ e r o P a g e . Y

- A b s o l u t e . Y

- A b s o l u t e . X

I m m e d i a t e( I n d i r e c t . X )I m m e d i a t e

Z e r o P a g eZ e r o P a g eZ e r o P a g e

I m m e d i a t e

A b s o l u t eA b s o l u t e

A b s o l u t e

( I n d i r e c t ) . Y

B 4 - L D Y -B 5 L D B 6 — L D XB — ? ? ?B 8 C L B 9 - L D AB A - T S XB B - ? ? ?B C - L D Y -B D - L D A -B E — L D X -B F - ? ? ?C O - C P Y -C 1 — C M PC 2 - ? ? ?C 3 - ? ? ?C C P Y -C 5 - C M PC 6 - D E C -C 7 - r nC 8 - I N YC 9 - C M PC A - D E XC B — ? ? ?C C - C P Y -C D — C M PC E - D E C -C F - ? ? ?D O - B N EC C M D 2 - ? ? ?D 3 - ? ? ?D 4 — ? ? ?D 5 — C M PD 6 - D E CD 7 - ? ? ?D 8 - C L DD 9 — C M PD A - ? ? ?

Z e r o P a g e . XZ e r o P a g e . XZ e r o P a g e . Y

A b s o l u t e . Y

A b s o l u t e . XA b s o l u t e . X

A b s o l u t e . Y

I m m e d i a t e( I n d i r e c t . X )

Z e r o P a g eZ e r o P a g eZ e r o P a g e

I m m e d i a t e

A b s o l u t eA b s o l u t e

A b s o l u t e

( I n d i r e c t ) . Y

Z e r o P a g e . XZ e r o P a g e . X

A b s o l u t e . Y

D — ? ? ?D C — ? ? ?D D - C M PD E - D E C -D F E O — C P X -E — S B C -E 2 - ? ? ?E 3 - ? ? ?E 4 C P X -E 5 - S B C -E 6 — I N CE 7 — ? ? ?E 8 I N E 9 — S B CE A — N O PE B - ? ? ?E C - C P X -E S B C -E E - I N C -E F - ? ? ?F O - B E QF 1 - S B CF 2 — ? ? ?F 3 - ? ? ?F 4 — ? ? ?F 5 — S B C -F 6 — I N CF — ? ? ?F 8 - S E DF 9 - S B CF A - ? ? ?F — ? ? ?F C — ? ? ?F D - S B C -F E - I N C -F F — ? ? ?

A b s o l u t e . XA b s o l u t e . X

I m m e d i a t e( I n d i r e c t . X )

Z e r o P a g eZ e r o P a g e

Z e r o P a g e

I m m e d i a t e

A b s o l u t eA b s o l u t e

A b s o l u t e

( I n d i r e c t ) . Y

Z e r o P a g e . XZ e r o P a g e . X

A b s o l u t e . Y

A b s o l u t e . XA b s o l u t e . X

? ? ? U n d e f i n e d O p e r a t i o n

1 1

Page 120: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 120/206

A p p e n d i x6 5 1 0 M i c r o p r o c e s s o r R e g i s t e r s

1 P C P C

A C C U M U L A T O R

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

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

P R O G R A M C O U N T E R

_ S T A C K P O I N T E R

i N l V l - l B l p l l Z l C ] P R O C E S S O R S T A T U S R E G I S T E R , " P

C A R R Y■ Z E R O- I N T E R R U P T D I S A B L E

D E C I M A L M O D E- B R E A K C O M M A N D

O V E R F L O WN E G A T I V E

1 1

Page 121: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 121/206

                              

                  

   8  

                                             

      

   

   

    

    

    

    

    

    

    

    

    

    

    

    

    

                                             

            

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

         

 

   

 

   

     

     

     

     

      

      

      

      

      

      

      

      

      

                                             

            

    

    

    

    

    

    

    

    

    

    

    

    

    

    

                                              

      

   

   

   

    

    

    

    

    

    

    

    

    

    

    

    

    

                                              

      

   

   

   

    

    

    

    

    

    

    

    

    

    

    

    

    

                                              

      

   

   

   

    

    

    

    

    

    

    

    

    

    

    

    

    

                                              

      

   

   

   

    

    

    

    

    

    

    

    

    

    

    

    

    

                                              

      

   

   

    

    

    

    

    

    

    

    

    

    

    

    

    

    

                                            

      

   

   

    

    

    

    

    

    

    

    

    

    

    

    

    

    

                                                

      

   

   

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

      

 

   

 

   

     

     

     

 

    

      

      

      

      

  

    

      

      

      

      

      

                                                

      

   

   

    

    

    

    

    

    

    

    

    

    

    

    

    

    

                                                

      

   

   

    

    

    

    

    

    

    

    

    

    

    

    

    

    

  

                                             

      

   

   

    

    

    

    

    

    

    

    

    

    

    

    

    

    

                                              

      

   

   

    

    

    

    

    

    

    

    

    

    

    

    

    

    

Page 122: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 122/206

A p p e n d i xH e x a d e c i m a l t D e c i m a l C o n v e r s i o n T a b l eT h i s t a b l e c a b u s e d t c o n v e r t u t f o u r d i g i t h e n u m b e r s t d e c i m a l .

H o t u s t h t a b l e :1 D i v i d e t h n u m b e r i n t o g r o u p s o t w d i g i t s ,

e . g . $ F 1 7 B ^ F 1 7 $ - * 2 A

2 T a k e t h l o b y t e o t h n u m b e r ( f r o m a b o v e 7 o 2 A a n l o o k i u i t h c h a r t . F i n d t h m o s t s i g n i f i c a n t d i g i t ( 7 i t h c o l u m n o n t h l e f t , f i n d t h l e a s t s i g n i f i c a n t d i g i t ( 8 i t h r o a l o n g t h t o p , a n f i n dt h b o i w h i c h t h r o ( 7 a n t h c o l u m n ( B c r o s s . I t h a t b o y o w i l l f i n d 2 n u m b e r s , 1 1 2 3 3 1 4 8 8 1 . T h e s e a r t h v a l u e s o 7 i t h l o b y t e a n t h h i g h b y t e . S i n c e w a r l o o k i n g u t h l o b y t e , t a k et h v a l u e 1 2 3 . N o f i n d t h l o c a t i o n o t h e h i g h b y t e o o u n u m b e r( F 1 ) o t h c h a r t . T h e b o x h e r e c o n t a i n s 1 2 4 1 6 1 6 9 6 1 S i n c e w a r n o d e a l i n g w i t h t h e h i g h b y t e , t a k e t h v a l u e 6 1 6 9 6 f r o m t h a tb o a n d a d d i t t h v a l u e w f o u n d e a r l i e r f o t h l o b y t e 1 2 3 .

6 1 6 9 61 2

6 1 8 1 9 w h i c h i t h d e c i m a l v a l u e o $ F 1 7 B

N O T E : t o f i n d t h d e c i m a l v a l u e o a t w o d i g i t n u m b e r , e . g . 2 A l o o k i u i t h c h a r t t a k i n g t h e l o b y t e v a l u e ( 4 2 ) . F o o n d i g i t n u m b e r , e . g .E c r e a t e t w d i g i t n u m b e r b a d d i n g l e a d i n g z e r o ( 0 E ) , a n s i m i l a r l ym a k e t h r e e d i g i t n u m b e r s f o u r d i g i t s w i t h l e a d i n g z e r o .

1 1

Page 123: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 123/206

R e l a t i v e B r a n c h T a b l e s a n T w o ' s C o m p l e m e n t N u m b e r i n g t a b l e s

F O R W A R D R E L A T I V E B R A N C H P O S I T I V E N U M B E R S

1

3 4

6 8

9 1 1

1

3 4

6 8

9 1 1

1

3 5

6 8

9 1 1

1

3 5

6 8

9 1 1

2

3 5

6 8

1 0 1 1

2

3 5

6 8

1 0 1 1

B A C K W A R D R E L A T I V E B R A N C Hl o V \ h i

1 2 1 1

9 8

6 4

3 1

1 2 1 1

9 7

6 4

3 1

1 2 1 1

9 7

6 4

3 1

1 2 1 0

9 7

6 4

2 1

1 2 1 0

9 7

6 4

2 1

1 2 1 0

9 7

5 4

2 1

2

3 5

7 8

1 0 1 1

1 2 1 0

9 7

5 4

2 1

2

3 5

7 8

1 0 1 1

1 2 1 0

8 7

5 4

2

2

4 5

7 8

1 0 1 2

1 2 1 0

8 7

5 4

2

2

4 5

7 8

1 0 1 2

1 1 1 0

8 7

5 3

2

1 2

4 5

7 9

1 0 1 2

1 1 1 0

8 7

5 3

2

1 2

4 5

7 9

1 0 1 2

1 2

4 6

7 9

1 0 1 2

1 2

4 6

7 9

1 0 1 2

1 3

4 6

7 9

1 1 1 2

1 3

4 6

7 9

1 1 1 2

N E G A T I V E N U M B E R S

1 1 1 0

8 6

5 3

2

1 1 1 0

8 6

5 3

2

1 1 9

8 6

5 3

1

1 1 9

8 6

5 3

1

1 1 9

8 6

4 3

1

1 1

Page 124: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 124/206

A p p e n d i xR e l a t i v e B r a n c h a n T w o ' s C o m p l e m e n t N u m b e r i n g T a b l e s1 T c a l c u l a t e r e l a t i v e b r a n c h e s , l o c a t e t h a d d r e s s i m m e d i a t e l y a f t e r

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

2 T c o n v e r t f r o m s i g n e d d e c i m a l n u m b e r b e t w e e n - 1 2 8 a n 1 2 t a h e x t w o ' s c o m p l e m e n t n u m b e r , f i n d y o u r d e c i m a l n u m b e r i t h b o d y o t h a p p r o p r i a t e c h a r t ( p o s i t i v e s a n n e g a t i v e s ) a n r e a d o f t h h e t w o ' s c o m p l e m e n t n u m b e r f r o m t h s i d e s ( h i g h d i g i t , l o d i g i t ) . T h r e v e r s e p r o c e s s ( t w o ' s c o m p l e m e n t h e t s i g n e dd e c i m a l ) i s i m p l y m a t t e r o f i n d i n g t h h i g h d i g i t o t h c o l u m n o t h l e f t , t h l o d i g i t o t h t o r o w , r e a d i n g o f t h n u m b e r w h e r e t h r o a n c o l u m n m e e t , a n i i t h n e g a t i v e c h a r t m a k e t h n u m b e rn e g a t i v e .

1 1

Page 125: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 125/206

C O M M O D O R E 6 M E M O R Y M A

C h a r a c t e r sR O

$ F F F F

$ E 0 0 0$ D C 0 0$ D 8 0 0$ D 0 0 0

$ C 0 0 0

$ A 0 0 0

$ 8 0 0 0( 3 2 7 6 8 )

$ 4 0 0 0( 1 6 3 8 4 )

$ 2 0 0 0( 8 1 9 2 )

$ 1 F F$ 1 0 0

$ 0 0 0 0

( 6 5 5 3 5 )

K E R N A L R O ( 5 7 3 4 4 )

C I 1 C I A 2- ( 5 5 3 2 0 ) -

C o l o u r R a N i b b l e s■ ( 5 5 2 9 6 ) "

V I I S O U N D( 5 3 2 4 8 )4 K R A M

- ( 4 9 1 5 2 ) -B A S I C

I N T E R P R E T E RR O

- ( 4 0 9 6 0 ) -

B A S I CU s e r R A

- ( 5 1 1 ) -S T A C K

Z E R O - P A G E

M E M O R Y L O C A T I O N $ 0 0 0 1V A L U EX X X X X 1 1 1X X X X X 1 1 0X X X X X 1 0 1x x x x x i 0 X X X X X 0 1 1x x x x x O T Ox x x x x O O lx x x x x O O O

M E M O R Y F O R M A TN o r m a l ( N o t A B o D

A . B . CA , C , A C , ( N o t B

1 1

Page 126: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 126/206

A p p e n d i x

C o m m o d o r e 6 4 M e m o i y M a Y o h a v e h e a r d t h a t t h C o m m o d o r e 6 h a 6 4 o R A M , a n w k n o wt h a t i t w b y t e a d d r e s s w c a o n l y a c c e s s 6 4 K . W h e r e t h e n a r t h o s e R O r o u t i n e s w h i c h h o l d c h a r a c t e r s e t s , B A S I C a n t h o p e r a t i n g s y s t e m ? I t h C 6 t h e r e i 2 0 o R O a w e l l a t h 6 4 o R A M . I c e r t a i n a r e a s t h e r e i R A ( o R A a n t h C h a r a c t e rG e n e r a t o r R O M ) ' m a p p e d ' o n t o n o r m a l m e m o r y . T h i s m e a n s t h a tn o r m a l m e m o r y i t h o s e p l a c e s c a b s w i t c h e d o u a n t h e x t r am e m o r y c a b s w i t c h e d i i n s t e a d .

T h ' s w i t c h ' w h i c h p e r f o r m s t h i s t a s k i l o c a t e d a a d d r e s s $ 0 0 0 1 . T h f i r s t t h r e e b i t s o $ 0 0 0 1 a r u s e d t d e f i n e w h i c h m e m o r y i u s e da c c o r d i n g t t h t a b l e i n c l u d e d . W h a v e a l r e a d y u s e d t h i s s w i t c h i n g i a n o u o m e m o r y t r e a d f r o m t h C h a r a c t e r G e n e r a t o r R O i C h a p t e r 8 R e f e r t i f o t h m e t h o d u s e d .

1 1

Page 127: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 127/206

V I C - I I C H I P R E G I S T E R M A R e g . #

1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4

S p r i t e #S p r i t e # 0S p r i t e #S p r i t e #S p r i t e #S p r i t e # 2S p r i t e # 3S p r i t e # 3S p r i t e # 4S p r i t e #S p r i t e #S p r i t e #S p r i t e #S p r i t e # 6S p r i t e # 7S p r i t e # 7

S p r i t e # " m s T

S p r i t e # E X S o t o ? r E D

S p r i t e # B i m a

S p r i t e # S n a f t

p o s i t i o ny — p o s i t i o nx — p o s i t i o ny — p o s i t i o n

— p o s i t i o ny — p o s i t i o n

p o s i t i o ny p o s i t i o n

p o s i t i o n— p o s i t i o n

p o s i t i o ny p o s i t i o n

p o s i t i o n— p o s i t i o n— p o s i t i o n

p o s i t i o nS p r i t e # S p r i t e #

h e i g h "S p r i t e #

T E S TS p r i t e #

R a s t e r r e g i s t e rL i g h t p e L i g h t p e

S p r i t e #

S p r i t e #

I R I R

S p r i t e # S p r i t e # S p r i t e # S p r i t e # S p r i t e #

S p r i t e #

S p r i t e #

S p r i t e # S p r i t e # S p r i t e # S p r i t e # S p r i t e #

S p r i t e #

S p r i t e #

S p r i t e # S p r i t e # S p r i t e # S p r i t e # S p r i t e #

S c r e e n b o r d e r C o l o u rB a c k g r o u n d C o l o u r # B a c k g r o u n d C o l o u r # B a c k g r o u n d C o l o u r # B a c k g r o u n d C o l o u r # S p r i t e m u l t i c o l o u r # S p r i t e m u l t i c o l o u r # S p r i t e # C o l o u rS p r i t e # C o l o u rS p r i t e # C o l o u rS p r i t e # C o l o u rS p r i t e # C o l o u rS p r i t e # C o l o u rS p r i t e # C o l o u rS p r i t e # C o l o u r

S p r i t e # M u l t ic o l o u r

S p r i t e #

_

S p r i t e # S p r i t e # S p r i t e # S p r i t e # S p r i t e #

S p r i t e # ^ S t h "

S p r i t e # P

S p r i t e # S p r i t e # S p r i t e # S p r i t e # S p r i t e #

S p r i t e #

S p r i t e # a r a c t e r b

S p r f t e ^ i t eS p r i t e # S p r i t e # S p r i t e # S p r i t e # S p r i t e #

S p r i t e # H o r i z o n t a l

s c r o l lS p r i t e #

S p r i t e -b g n d o o l s i o fb ' c j n o o o O i s i o r

S p r i t e # S p r i t e # S p r i t e # S p r i t e # S p r i t e #

S p r i t e #

S p r i t e #

R a s t e rR a s t e r

S p r i t e # S p r i t e # S p r i t e # S p r i t e # S p r i t e #

M S o — p o s i t i o nM o d e s c r o l l

S p r i t e e n a b l eM u l t i c o l o u r s c r o l lS p r i t e e x p a n d

I n t e r r u p t r e g i s t e rI n t e r u p t e n a b l eS p r i t e b a c k g r o u n d p r i o r i t yS p r i t e m u l t i c o l o u r s e l e c tS p r i t e e x p a n dS p r i t e t S p r i t e c o l l i s i o nS p r i t e t b a c k g r o u n d c o l l i s i o n

1 2

Page 128: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 128/206

A p p e n d i xT h S c r e e n C h i pT h V I C - I I s c r e e n c h i p i a e x t r e m e l y f l e x i b l e d i s p l a y c o n t r o l l e r w h i c hh a n d l e s a l t h t e x t , g r a p h i c s a n s p r i t e s o t h C o m m o d o r e 6 4

T h c h i p a d d r e s s e s 1 6 o m e m o r y , i o t h e r w o r d s , a l t h g r a p h i c sa n c o l o u r m e m o r y i n f o r m a t i o n m u s t b s t o r e d w i t h i n O N o t h f o u r1 6 ' b a n k s ' o m e m o r y w h i c h m a k e u t h 6 4 o m e m o r y w i t h i n t h C o m m o d o r e . T c h o o s e t h b a n k y o w a n t , y o s e t h a p p r o p r i a t e b i t si t h I / O p o r t s o t h C I A # 2 a a d d r e s s $ D D 0 0 ( s e e A p p e n d i x 8 ) . F i r s th o w e v e r , t h d a t a d i r e c t i o n p o r t m u s t b s e t .

T h B A S I C s t a t e m e n t t d t h i s i a f o l l o w s :P O K E 5 6 5 7 8 , P E E K ( 5 6 5 7 8 ) O

T h B A S I C s t a t e m e n t t s e l e c t t h v i d e o b a n k i a f o l l o w s :P O K E 5 6 5 7 6 , ( P E E K ( 5 6 5 7 6 ) A N 2 5 2 ) O ( B A N K )

w h e r e t h v a l u e o B A N K d e p e n d s o t h f o l l o w i n g t a b l e :

V a l u e o f S t a r t i n gB a n k B i t s B a n k L o c a t i o n V I C - I I C h i p R a n g e

0 $ 0 0 0 0 0 - 1 6 3 8 3 ( D e f a u l t b a n k )0 $ 4 0 0 0 1 6 3 8 4 1 6 3 8 4 - 3 2 7 6 71 $ 8 0 0 0 3 2 7 6 8 3 2 7 6 8 4 9 1 5 11 $ C 0 0 0 4 1 9 5 2 4 9 1 5 2 6 5 5 3 5

T h V I C - I I c h i p i n o r m a l l y s e t l o o k a t h f i r s t 1 6 o m e m o r y ( B a n k 0 ) T h s t a r t o t h V I C - I I m e m o r y w i l l b r e f e r r e d t a t h B A S E a d d r e s s .

V I C - I I C h i pR e g i s t e r s 1 a $ D 0 0 0 $ D 0 0 F ( 5 3 2 7 2 5 3 2 8 7 )

s p r i t e 0 - p o s i t i o n r e g i s t e r s .E a c h s p r i t e h a t w p o s i t i o n r e g i s t e r s a n w h i c h h o l d v a l u e e q u a lt t h v i s i b l e s c r e e n b u r e l a t i v e t t h r a s t e r b e a m ( t h e e l e c t r o n b e a mi n s i d e t h T . V . w h i c h c r e a t e s t h p i c t u r e ) . ( S e e s p r i t e p o s i t i o n i n g c h a r t . )

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

1 2

Page 129: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 129/206

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

Y o w i l l n o t i c e t h a t t h v a l u e s c a a l f i i n t o b i t s ( a r e l e s s t h a n 2 5 6 ) ,b u t h c o - o r d i n a t e s c a b l a r g e r u t $ 1 5 8 ( 3 3 4 ) o s c r e e n . F o rt h s o l u t i o n t t h i s p r o b l e m s e e R e g i s t e r 1 6

R e g i s t e r 1 a $ D 0 1 0 ( 5 3 2 8 8 )R e g i s t e r 1 c o n t a i n s t h m o s t s i g n i f i c a n t b i o e a c h o t h s p r i t ec o - o r d i n a t e s p r i t e p o s i t i o n r e g i s t e r s . T h i s a l l o w s f o p o s i t i o n s g r e a t e rt h a n 2 5 5 .

R e g i s t e r 1 a t $ D 0 1 1 ( 5 3 2 8 9 )

B I T S V E R T I C A L S C R O L LT h v a l u e i t h e s e b i t s ( f r o m 7 s h i f t s t h s c r e e n u o d o w n b y a ne q u i v a l e n t n u m b e r o p i x e l s . B i n c r e m e n t i n g t h i s t h r e e b i v a l u e a n s c r o l l i n g t h s c r e e n a s i j u m p s f r o m o n e x t r e m e t t h o t h e r , y o c a c r e a t e a s m o o t h v e r t i c a l s c r o l l w h i c h i e x t r e m e l y i m p r e s s i v e i m a n yg a m e s p r o g r a m s .

B I S C R E E N H E I G H TT h i s b i c o n t r o l s w h e t h e r 2 o 2 r o w s o t e x t w i l l b d i s p l a y e d . I i m o s to f t e n u s e d i c o n j u n c t i o n w i t h t h v e r t i c a l s c r o l l t e l i m i n a t e t h ' g a p 'p r o d u c e d w h e n s c r o l l i n g p i x e l b p i x e l .

B I T 4 D I S P L A Y E N A B L ET h i s b i c o n t r o l s w h e t h e r a n y t h i n g i d i s p l a y e d o n o t . I c a b u s e d t q u i c k l y b l a n k t h s c r e e n o t b l a n k d u r i n g a n n o y i n g o u t p u t , e . g . o c a s s e t t e l o a d s . ( T h i s d o e s n o c h a n g e t h d a t a t b d i s p l a y e d ; i j u s ts t o p s i b e i n g s h o w n t i l l i t v a l u e i c h a n g e d a g a i n . )

B I T 5 B I T M A PT h i s b i s w i t c h e s t h V I C - I I i n t o a n o u o b i m a m o d e . F o d e s c r i p t i o n o b i m a m o d e s e l a t e r .

B I E X T E N D E D C O L O U RT h i s b i s w i t c h e s t h V I C - I I i n t o a n o u o e x t e n d e d c o l o u r m o d e . I t h i sm o d e e x t r a c o l o u r s c a b u s e d o n t e x t o g r a p h i c s a t h p r i c e o l o s so p r i n t a b l e c h a r a c t e r s o r a l t e r n a t e l y , h o r i z o n t a l r e s o l u t i o n .

1 2

Page 130: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 130/206

B I T 7 M S R A S T E R R E G I S T E RT h i s i t h m o s t s i g n i f i c a n t b i o t h r a s t e r r e g i s t e r ( n u m b e r 1 8 $ D 0 1 2 )

R e g i s t e r 1 8 a t $ D 0 1 2 ( 5 3 2 9 0 )

R A S T E R R E G I S T E RT h r a s t e r r e g i s t e r , i r e a d , c o n t a i n s t h n u m b e r o t h c u r r e n t l i n e w h i c hi b e i n g d r a w n o t h s c r e e n . M a c h i n e c o d e p r o g r a m s a r s f a s t t h a ts e v e r a l t h o u s a n d o t h e m o c c u r i t h t i m e i t a k e s f o t h t e l e v i s i o n t d r a w o n e s c r e e n ( t h e s c r e e n i c o m p l e t e l y r e d r a w n f i f t y t i m e s e v e r ys e c o n d ) . w r i t e ( o s t o r e ) i n t o t h r a s t e r r e g i s t e r w i l l c a u s e a i n t e r r u p tt b s e n t t t h m i c r o p r o c e s s o r e v e r y t i m e t h r a s t e r b e a m d r a w s t h l i n e s p e c i f i e d i t h s t o r e ( i t h i n t e r r u p t r e g i s t e r a $ D 0 1 h a b e e n s e t e n a b l e r a s t e r i n t e r r u p t s ) .

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

R e g i s t e r 1 2 0 a t $ D 0 1 3 $ D 0 1 4 ( 5 3 2 9 1 5 3 2 9 2 )L i g h t P e a n

R e g i s t e r 2 a $ D 0 1 5 ( 5 3 2 9 3 )R e g i s t e r 2 1 e n a b l e s ( t u r n s o n e a c h o t h s p r i t e s 0 - b t u r n i n go t h e q u i v a l e n t b i i t h r e g i s t e r .

R e g i s t e r 2 a $ D 0 1 6 ( 5 3 2 9 4 )B i t s 0 - H o r i z o n t a l S c r o l l

S e V e r t i c a l S c r o l lB i S c r e e n w i d t h

S e s c r e e n h e i g h t w i d t h v a r i e s b e t w e e n 3 8 o 4 c h a r a c t e r s .

B i t s 4 - S e a n R e s e t M u l i c o l o u r m o d eS i m i l a r t e x t e n d e d c o l o u r m o d e , s e l a t e r .

B i t s 6 - 7 u n u s e d .R e g i s t e r 2 a $ D 0 1 7 ( 5 3 2 9 5 )

R e g i s t e r 2 e x p a n d s b y f a c t o r o t w ( d o u b l e s ) t h h e i g h t o e a c h o t h s p r i t e s b t u r n i n g o t h e e q u i v a l e n t b i t i n t h r e g i s t e r .

R e g i s t e r 2 a $ D 0 1 8 ( 5 3 2 9 6 )T h i s r e g i s t e r d e f i n e s t h e l o c a t i o n o s c r e e n m e m o r y , c o l o u rm e m o r y o c h a r a c t e r m e m o r y d e p e n d i n g o n t h m o d e y o a r i n T h i s w i l l b e x p l a i n e d f u r t h e r w h e n t h e v a r i o u s m o d e s a r d i s c u s s e d .

R e g i s t e r 2 2 a $ D 0 1 9 t $ D 0 1 ( 5 3 2 9 7 5 3 2 9 8 )T u r n i n g o b i i r e g i s t e r 2 w i l l e n a b l e a i n t e r r u p t t o o c c u r , e . g .t u r n i n g o b i z e r o w i l l a l l o w a i n t e r r u p t t o c c u r w h e n t h r a s t e rb e a m d r a w s t h l i n e s p e c i f i e d i t h r a s t e r r e g i s t e r . W h e n a

1 2

Page 131: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 131/206

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

R e g i s t e r 2 a $ D 0 1 ( 5 3 2 9 9 )U s e d t c o n t r o l w h e t h e r i n d i v i d u a l s p r i t e s a p p e a r i f r o n t o o b e h i n d o t h e r d a t a d i s p l a y e d o t h s c r e e n .

R e g i s t e r 2 a $ D 0 1 ( 5 3 3 0 0 )U s e d t m a k e a n s p r i t e a p p e a r i m u l t i c o l o u r m o d e .

R e g i s t e r 2 a $ D 0 1 ( 5 3 3 0 1 )H o r i z o n t a l e x p a n d ( d o u b l e ) . S e r e g i s t e r 2

R e g i s t e r 3 t 3 a $ D 0 1 t $ D 0 1 ( 5 3 3 0 2 5 5 3 0 3 )I t h i n t e r r u p t e n a b l e r e g i s t e r a $ D 0 1 A i s e f o s p r i t e - s p r i t ec o l l i s i o n s , o f o s p r i t e - b a c k g r o u n d c o l l i s i o n s , t h e s e r e g i s t e r s w i l ld e f i n e w h i c h s p r i t e s w i l l c a u s e a i n t e r r u p t o c o l l i s i o n a n w h i c hw i l l n o t .

R e g i s t e r s 3 4 a $ D 0 2 0 t $ D 0 2 E ( 5 3 3 0 4 t 5 3 3 1 8 )S e l f e x p l a n a t o r y .

S t a n d a r d C h a r a c t e r M o d eI s t a n d a r d c h a r a c t e r m o d e o u s c r e e n m e m o r y i 1 0 0 0 b y t e s l o n g .E a c h b y t e r e p r e s e n t s o n o 2 5 c h a r a c t e r s . T h c o l o r o e a c h b y t e i d e f i n e d b c o l o u r R A w h i c h i 1 0 0 0 l o c a t i o n s f r o m $ D 8 0 0 $ D B E 8( 5 5 2 9 6 5 6 2 9 5 ) . E a c h p i e c e o m e m o r y i c o l o u r R A i o n b i t s l o n ga n c a o n l y s t o r e n u m b e r s f r o m t 1 ( s e e t a b l e o c o l o u r v a l u e s ) .

B o t h s c r e e n m e m o r y a n c h a r a c t e r m e m o r y m a b d e f i n e da n y w h e r e w i t h i n t h 1 6 v i d e o b a n k i u s b s t o r i n g v a l u e s i t h V I C - I Ir e g i s t e r # 2 4 . T h a d d r e s s o s c r e e n m e m o r y i d e f i n e d b t h t o b i t s( 4 o f r e g i s t e r 2 4 F o u r b i t s s p e c i f y n u m b e r b e t w e e n a n 1 6 s S c r e e n a d d r e s s B a s e a d d r e s s 1 0 2 4 T o f o u r b i t s r e g i s t e r 2 4

B c h a n g i n g t h a d d r e s s o c h a r a c t e r m e m o r y t R A a d d r e s s w c a r e d e f i n e o u c h a r a c t e r s e ( o r j u s t s w a p s e t s ) ( s e e C h a p t e r f o d e t a i l s o c h a r a c t e r s e t s ) . B i t s d e f i n e t h l o c a t i o n o t h c h a r a c t e rs e i m e m o r y . T h i s i a b i n u m b e r ( 7 ) t h e r e f o r e :

c h a r a c t e r a d d r e s s B a s e A d d r e s s 1 0 2 4 B i t s r e g i s t e r2

T a c c e s s t h R O c h a r a c t e r s e t , s e b i t s t 0 1 f o S e o 0 1 f o S e 2 . B i t o r e g i s t e r 2 a $ D 0 1 8 i i g n o r e d .

M u l t i c o l o u r C h a r a c t e r M o d eT h i s i t h s a m e a s t a n d a r d c h a r a c t e r m o d e e x c e p t f o t h w a i w h i c h c h a r a c t e r s a r e d e f i n e d ( s e e C h a p t e r 8 ) I s t a n d a r d m o d e , o n e

1 2

Page 132: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 132/206

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

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

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

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

E x t e n d e d B a c k g r o u n d C o l o u r M o d eT h i s i s i m i l a r t o m u l t i c o l o u r m o d e e x c e p t t h a t i n s t e a d o l o s i n gr e s o l u t i o n w r e d u c e t h n u m b e r o d i f f e r e n t c h a r a c t e r s w c a p r i n tf r o m 2 5 t 6 3 T h i s m e a n s t h a t t h t o t w b i t s o e v e r y s c r e e n b y t e c a b u s e d t s p e c i f y o n o t h b a c k g r o u n d c o l o u r r e g i s t e r s o t h V I C - I Ic h i p . T h e r e f o r e e a c h c h a r a c t e r c a t a k e a n o n o f o u r b a c k g r o u n dc o l o u r s . T h f o r e g r o u n d i s t i l l s p e c i f i e d b c o l o u r R A M .

I t h t o t w b i t s o s c r e e n m e m o r y b y t e0 0 — > b a c k g r o u n d c o l o u r # 0 — > b a c k g r o u n d c o l o u r # 1 — » b a c k g r o u n d c o l o u r # 1 - b a c k g r o u n d c o l o u r #

B i M a M o d eT h t e c h n i c a l i t i e s o b i m a m o d e h a v e b e e n d i s c u s s e d i C h a p t e r 8 T h b i m a p p e d s c r e e n t a k e s u 8 o m e m o r y a n i m u s t s t a r t o a 8 b o u n d a r y a d e f i n e d b t h l o b i t s o f r e g i s t e r 2 a $ D 0 1 8 . T h t o f o u rb i t s d e f i n e a a r e a o m e m o r y w h i c h i u s e d a c o l o u r m e m o r y . F o e a c hc h a r a c t e r p o s i t i o n y o c a d i s p l a y t w c o l o u r s — o n e i t h t o f o u r b i t so t h e c o l o u r m e m o r y s p e c i f i e d a n t h e o t h e r i t h l o f o u r b i t s .

M u l t i c o l o u r B i M a M o d eS i m i l a r l y t m u l t i c o l o u r c h a r a c t e r m o d e , h e r e w t a k e l o s s o r e s o l u t i o ni r e t u r n f o e x t r a c o l o u r c a p a c i t y . E a c h b y t e i a g a i n d i v i d e d i n t o b i p a i r s w h i c h a r d i s p l a y e d a f o l l o w s :

0 0 - > b a c k g r o u n d c o l o u r # 0 — l o w e r b i t s o s p e c i f i e d c o l o u r m e m o r y1 — u p p e r 4 b i t s o s p e c i f i e d c o l o u r m e m o r y1 1 - * f o u r b i t s o c o l o u r R A M .

1 2

Page 133: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 133/206

T A B L E O C O L O U R V A L U E SB l a c kW h i t eR e C y a n

P u r p l eG r e e nB l u eY e l l o w

1 1

O r a n g eB r o w nL i g h t R e G r e y i

1 1 1 1

G r e yL i g h t G r e e nL i g h t B l u eG r e y

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

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

1 1 1 1 1 1

t ^

t ^

t ^

J

1

i ^

t ^

I

J

t ^

1

1

1

*

1

1

J

1 1 1

U G o o d M i F a i r M i P o o r M i

1 2

Page 134: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 134/206

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

$ 1 8 ( 2 4 )

$ 3 2 ( 5 0 )

$ 1 5 8 ( 3 4 4 )

$ 3 2 ( 5 0 )

$ F A ( 2 5 0 )

$ 1 8 ( 2 4 )

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

$ F A ( 2 5 0 )

$ 1 5 8 ( 3 4 4 )

A D D R E S SH E

D 0 0 0 - D 1 F FD 2 0 0 - D 3 F FD 4 0 0 - D 5 F FD 6 0 0 - D 7 F FD 8 0 0 - D 9 F FD A 0 0 - D B F FD C 0 0 - D D F FD E 0 0 - D F F F

D E C I M A L5 3 2 4 85 3 7 6 05 4 2 7 25 4 7 8 4

5 5 2 9 65 5 8 0 85 6 3 2 05 6 8 3 2

C O N T E N T SU p p e r c a s e c h a r a c t e r sG r a p h i c s c h a r a c t e r sR e v e r s e d u p p e r c a s ec h a r a c t e r sR e v e r s e d g r a p h i c sc h a r a c t e r sL o w e r c a s e c h a r a c t e r sU p p e r c a s e g r a p h i c sc h a r a c t e r sR e v e r s e d l o w e r c a s ec h a r a c t e r sR e v e r s e d u p p e r c a s eg r a p h i c s c h a r a c t e r s

N O T E : s e A p p e n d i x 0 o m e m o r y m a p p i n g t s e h o t a c c e s s t h i sm e m o r y .

1 2

Page 135: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 135/206

A p p e n d i xT h S o u n d C h i pT h S o u n d C h i p R e g i s t e r s

R E G N o . b 7N l _ 7N H P L

N o i s eA S

b N l _ 6N H P L

A S

B i s i g n i f i c a n c e

b N L N H P L

A S

D N L N H P L . 4

A A S

b N L N H P L P H

T E S TD R

b N l _ 2N H P L P H R I N GM O D R

b N L N H P L P H

S Y N CD R

b N L N H P L P H

G A T ED R

R e g i s t e r u s a g( V o i c e - 1 )

L o b y t e o n o t e f r e q u e n c yH i g h b y t e o n o t e f r e q u e n c yL o b y t e o p u l s e w i d t hH i g h b y t e o p u l s e w i d t h

W a v e f o r m c o n t r o lA t t a c k / d e c a y f o e n v e l o p eS u s t a i n / r e l e a s e f o e n v e l o p e

V o i c e s a n a r m i r r o r i m a g e s o t h a b o v e e x c e p t t h a t t h e y a r s t o r e d i r e g i s t e r s t 1 a n 1 t 2 r e s p e c t i v e l y .

B i s i g n i f i c a n c e

2 2 2 2

2 2 2 2

C H R 3 O F F

C H R H

C H R B

C H R L

C H F e V

C l _ 2C H F V

C L C H F V

C L C H F V

B i s i g n i f i c a n c e

P P 0 E

P P 0 E

P P 0 E

P P 0 E

P P 0 E

P P 0 E

P P O E

P P O E

R e g i s t e r u s a g e( F i l t e r )

L o c u t o f f f r e q u e n c yH i g h c u t o f f f r e q u e n c yF i l t e r s w i t c h e s a n r e s o n a n c eF i l t e r m o d e s a n v o l u m e

R e g i s t e r u s a g e( M i s c . )

P a d d l e - xP a d d l e - yO s c i l l a t o r - 3 o u t p u tE n v e l o p e o u t p u t

N O T E : T h e s o u n d c h i p r e g i s t e r s a r a c c e s s e d v i m e m o r y l o c a t i o n s$ D 4 0 0 t $ D 4 1 ( 5 4 2 7 2 t 5 4 3 0 0 ) .

1 2

Page 136: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 136/206

H O T U S

P l a y i n g T u n e sT h m o s t p r a c t i c a l w a o f w r i t i n g B A S I C p r o g r a m t p l a y t u n e i t s t o r e t h t u n e a d a t a . F o r s i m p l e t u n e s , o n l y t w i t e m s o d a t a a r n e e d e d : t h n o t e f r e q u e n c y a n t h d u r a t i o n o e a c h n o t e t b p l a y e d .T h f o l l o w i n g s t e p s a r n e c e s s a r y w h e n w r i t i n g B A S I C p r o g r a m t p l a y s i m p l e t u n e .1 S i m p l i f y t h a d d r e s s i n g o a l s o u n d r e g i s t e r m e m o r y l o c a t i o n s t b

u s e d b a s s i g n i n g v a r i a b l e n a m e t e a c h l o c a t i o n .2 C l e a r t h s o u n d c h i p b s e t t i n g a l t h s o u n d c h i p r e g i s t e r s t z e r o .3 P O K E t h a t t a c k / d e c a y r e g i s t e r s a n t h e s u s t a i n / r e l e a s e r e g i s t e r s

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

4 L o a d t h v o l u m e r e g i s t e r w i t h t h m a x i m u m v o l u m e ( i . e . 1 5 5 S e u p r o g r a m l o o p t h a t d o e s t h f o l l o w i n g :

R e a d t h f r e q u e n c y o t h n e x t n o t e a n t h e d u r a t i o n o t h n o t e . I t h e r e a r e n m o r e f r e q u e n c i e s t h e n e n d . O t h e r w i s e , l o a d t h ef r e q u e n c y r e g i s t e r s w i t h t h e i r d a t a . T u r n o t h w a v e f o r m a n t h G A T E b i ( s e e r e g i s t e r m a p ) . U s F O N E X T l o o p t l o o p f o t h d u r a t i o n . T u r n o f t h g a t e b i t . U s F O N E X T l o o p t c r e a t es u i t a b l e p a u s e ( s a y 5 c o u n t s ) . G b a c k a n d d i a g a i n .

6 U s t h n o t e t a b l e a t h e n o t h i s c h a p t e r a n d u r a t i o n s u s i n g 1 0 0 0a a a p p r o x i m a t i o n o a b o u t s e c .

7 E n d a t a w i t h t h r e e n e g a t i v e v a l u e s t s i g n a l e n d - o f - t u n e . Y o u rp r o g r a m s h o u l d l o o k s i m i l a r t t h f o l l o w i n g :

R E T U N E1 C H I P = 5 4 2 7 2 C = C H I P

2 N L = + 0 N H = + 1 U = + A D C 0 = + 5 : S R C= C + 6 : V O L U l v E : = C + 2 4

3 F O R E G = C H I P T O C H I P + 2 4 : P O K E R E G , 0 : N E X T4 P O K E A D C 0 > , 6 4 + 9 P O K E S R C 0 > , 2 4 0 + 05 P O K E V 0 L U I * E , 1 56 R E A D F , D U R I F < T H E N P O K E U K 0 ) , 0 : E N D6 D U R = D U R * 2 07 N H 1 I N T C F / S 5 6 > 2 | S L X 1 > = F - N H C * 2 5 6 P O K E N H C

N H 1 ) : P O K E N L C 0 ) , N L C 1 8 P O K E W C 0 ) , 3 2 + l : R E M A D F O G A T E9 F O C O U N T = 1 T D U N E X T C O U N T1 0 P O K E U Q ) , 3 2 : R E M T U R N O F G A T E

1 2

Page 137: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 137/206

1 1 F O P A U S E = 1 T 5 N E X T1 2 G O T O 6 3 1 D A T A 4 8 2 0 , 8 , 6 4 2 0 , 8 , 6 4 2 0 , 1 2 , 6 0 6 8 , 4 , 6 4 2 0 , 8 ,

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

9 6 3 7 , , 7 2 2 0 , , 7 2 2 0 1 , 6 0 6 8 , 3 4 0 D A T A 6 0 6 8 , 8 , 5 3 9 6 , 8 , 4 8 2 0 , 1 63 9 D A T A - 1 , - 1 , - 1R E A D Y .

R e g i s t e r s a n ( L o c a t i o n $ D 4 0 0 a n $ D 4 0 1 ) ( 5 4 2 7 2 a n 5 4 2 7 3 )( L o w a n h i g h b y t e s o n o t e f r e q u e n c y )T h e s e t w r e g i s t e r s f o r m t w b y t e v a l u e c o r r e s p o n d i n g t t h

f r e q u e n c y o n o t e p l a y e d . T o b t a i n t h e a c t u a l f r e q u e n c y o t h n o t eb e i n g p l a y e d , m u l t i p l y t h t w b y t e v a l u e b 0 . 0 5 9 6 0 4 6 4 5 .

R e g i s t e r s a n ( L o c a t i o n $ D 4 0 2 a n d $ D 4 0 3 ) ( 5 4 2 7 4 a n 5 4 2 7 5 )( L o w a n h i g h b y t e s o p u l s e w i d t h o p u l s e w a v e )T h e s e t w r e g i s t e r s f o r m 1 2 - b i t v a l u e c o r r e s p o n d i n g t t h p u l s ew i d t h o t h p u l s e w a v e . T h w i d t h o t h l o p u l s e o t h p u l s e c y c l e a p e r c e n t a g e o t h e w i d t h o t h p u l s e c y c l e i g i v e n b t h f o l l o w i n g

f o r m u l a :L o p u l s e w i d t h ( 1 2 - b i t v a l u e / 4 0 . 9 5 ) % o t h p u l s e c y c l e ; w h e r e l o p u l s e w i d t h o 0 o 1 0 0 % i c o n s t a n t D s i g n a l ( i . e . z e r o o u t p u t ) a n

l o p u l s e w i d t h o 5 0 i s q u a r e w a v e .

R e g i s t e r ( L o c a t i o n $ D 4 0 4 ) ( 5 4 2 7 6 )( W a v e f o r m c o n t r o l )T h i s r e g i s t e r s e r v e s s e v e r a l f u n c t i o n s w h e r e e a c h b i s e r v e s

s e p a r a t e f u n c t i o n .B i ( G a t e B i t ) :T h g a t e b i c o n t r o l s t h e n v e l o p e g e n e r a t o r . S e t t i n g t h i s b i t t u r n so t h A D S R e n v e l o p e a n b e g i n s t h e n v e l o p e c y c l e a t h a t t a c ks t a g e , g o e s o t t h d e c a y s t a g e a n f i n a l l y t h s u s t a i n . T h e s o u n d w i l lc o n t i n u e a t h s u s t a i n l e v e l u n t i l t h g a t e b i i s e t t o z e r o , i w h i c h c a s ee n v e l o p e c o n t r o l w i l l c o n t i n u e t t h e r e l e a s e s t a g e . I t h g a t e b i i s e t z e r o b e f o r e t h s u s t a i n s t a g e h a b e e n r e a c h e d , t h e n e n v e l o p e c o n t r o lw i l l j u m p t t h r e l e a s e s t a g e .B i t - 1 ( S y n c B i t ) :S e t t i n g t h s y n c b i t c a u s e s t h w a v e f o r m f r o m v o i c e t b

1 3

Page 138: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 138/206

s y n c r o n i z e d w i t h v o i c e 1 V a r y i n g t h f r e q u e n c y o v o i c e w i l l c h a n g et h o v e r a l l w a v e f o r m o u t p u t o v o i c e 1 B i t - 2 ( R i n g M o B i t ) :S e t t i n g t h r i n g m o b i t r e p l a c e s t h t r i a n g l e w a v e f o r m o v o i c ew i t h ' r i n g - m o d u l a t e d ' c o m b i n a t i o n o o s c i l l a t o r s a n f o g i v i n g t h o u t p u t b e l l t y p e s o u n d . V a r y i n g t h f r e q u e n c y o o s c i l l a t o r c a u s e sc h a n g e s i t h o v e r a l l w a v e f o r m o u t p u t o v o i c e 1 B i t - 3 ( T e s t B i t ) :M a i n l y u s e d f o t e s t i n g , t h i s b i t , w h e n s e t 1 c a u s e s o s c i l l a t o r t r e s e tt a n l o c k t h e r e u n t i l t h b i i r e s e t . H o w e v e r , i c a b u s e d t s y n c h r o n i z e o s c i l l a t o r t a e x t e r n a l d e v i c e .B i t - 4 ( T r i a n g l e W a v e f o r m ) :W h e n s e t 1 t h i s b i s e l e c t s t h e t r i a n g l e w a v e f o r m t b u s e d f o o u t p u to o s c i l l a t o r 1 B i t - 5 ( S a w t o o t h W a v e f o r m ) :W h e n s e t 1 t h i s b i s e l e c t s t h s a w t o o t h w a v e f o r m .B i t - 6 ( P u l s e W a v e f o r m ) :W h e n s e t 1 s e l e c t s t h p u l s e w a v e f o r m .B i t - 7 ( N o i s e W a v e f o r m ) :W h e n s e t 1 s e l e c t s t h e n o i s e w a v e f o r m .

R e g i s t e r ( U o c a t i o n $ D 4 0 5 ) ( 5 4 2 7 7 )( A t t a c k / d e c a y )T h i s r e g i s t e r i u s e d t s e l e c t t h e a t t a c k a n d d e c a y r a t e f o v o i c e '

A D S R e n v e l o p e .B i t s 4 ( A t t a c k R a t e ) :S e l e c t s a a t t a c k r a t e f r o m 2 4 w h e r e t h e a t t a c k t i m e s r a n g e f r o m2 m t o 8 s .B i t s 0 - ( D e c a y R a t e ) :S e l e c t d e c a y r a t e f r o m 0 - 1 5 w h e r e t h d e c a y t i m e s r a n g e f r o m 6 m t 2 4 s .

R e g i s t e r ( L o c a t i o n $ D 4 0 6 ) ( 5 4 2 7 8 )( S u s t a i n / r e l e a s e )T h i s r e g i s t e r i u s e d t s e l e c t t h s u s t a i n l e v e l a n r e l e a s e r a t e f o

v o i c e ' A D S R e n v e l o p e .B i t s 4 - ( S u s t a i n R a t e ) :S e l e c t s s u s t a i n l e v e l f r o m 2 4 w h e r e t h s u s t a i n s e t t i n g i p r o p o r t i o n o t h v o l u m e s e t t i n g . T o b t a i n t h e a c t u a l s u s t a i n v o l u m e ,u s t h f o l l o w i n g e q u a t i o n :S u s t a i n v o l u m e ( v o l u m e s e t t i n g ' s u s t a i n s e t t i n g ) 2 4

1 3

Page 139: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 139/206

B i t s 0 - ( R e l e a s e R a t e ) :S e l e c t s r e l e a s e r a t e f r o m 1 w h e r e t h e r e l e a s e t i m e s r a n g e f r o m6 m t 2 4 s .

R e g i s t e r s 7 - 1 3 ( L o c a t i o n s $ D 4 0 7 t $ D 4 0 D ) ( 5 4 2 7 9 t 5 4 2 8 5 )( V o i c e 2 T h e s e r e g i s t e r s a r f u n c t i o n a l l y i n d e n t i c a l t r e g i s t e r s 0 - ( v o i c e 1

w i t h t h f o l l o w i n g e x c e p t i o n s :1 S Y N C S y n c h r o n i z e s o s c i l l a t o r w i t h o s c i l l a t o r 1 2 R I N G M O R e p l a c e s t h t r i a n g l e o u t p u t o o s c i l l a t o r w i t h t h r i n g

m o d u l a t e d c o m b i n a t i o n o f o s c i l l a t o r s a n 1

R e g i s t e r s 1 2 ( L o c a t i o n s $ D 4 0 E t $ D 4 1 4 ) ( 5 4 2 8 6 t 5 4 2 9 2 )( V o i c e 3 T h e s e r e g i s t e r s a r f u n c t i o n a l l y i d e n t i c a l t o r e g i s t e r s 0 - ( v o i c e 1

a n r e g i s t e r s 7 - 1 3 ( v o i c e 2 ) w i t h t h f o l l o w i n g e x c e p t i o n s :1 S Y N C S y n c r o n i z e s o s c i l l a t o r w i t h o s c i l l a t o r 2 2 R I N G M O R e p l a c e s t h t r i a n g l e o u t p u t o f o s c i l l a t o r w i t h t h r i n g

m o d u l a t e d c o m b i n a t i o n o f o s c i l l a t o r s a n 2

R e g i s t e r s 2 a n 2 ( L o c a t i o n s $ D 4 1 5 a n $ D 4 1 6 ) ( 5 4 2 9 3 a n 5 4 2 9 4 )$ D 4 1 5 $ D 4 1 6

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

( o c e n t r e ) f r e q u e n c y o t h p r o g r a m m a b l e f i l t e r . T h e y s e l e c t c u t o f fv a l u e o 2 6 w h e r e t h c u t o f f f r e q u e n c y r a n g e s f r o m 3 H 1 2 K H z .

R e g i s t e r 2 ( L o c a t i o n $ D 4 1 7 ) ( 5 4 2 9 5 )( R e s o n a n c e / f i l t e r )T h i s r e g i s t e r i u s e d t s e l e c t t h r e s o n a n c e a n f i l t e r s w i t c h e s .

B i t - 0 ( F i l t e r S w i t c h 1 ) W h e n s e t 1 v o i c e i s e n t t h r o u g h t h f i l t e r s b e f o r e o u t p u t . W h e n s e t 0 v o i c e i s e n t d i r e c t l y t o o u t p u t .

1 3

Page 140: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 140/206

B i t s a n ( F i l t e r S w i t c h e s a n 3 ) S a m e a b i b u f o v o i c e s a n r e s p e c t i v e l y .B i t - 3 ( F i l t e r S w i t c h E X T ) :S a m e a b i b u f o e x t e r n a l a u d i o i n p u t .B i t s 4 - ( R e s o n a n c e S e t t i n g ) :T h i s r e g i s t e r f o r m s 4 - b i t v a l u e c o r r e s p o n d i n g t t h r e s o n a n c e s e t t i n go t h p r o g r a m m a b l e f i l t e r . T h e y s e l e c t r e s o n a n c e s e t t i n g s t h a t r a n g ef r o m 1 2 4 i s t e p s o 1 6 T h r e s o n a n c e a c t s o s m a l l b a n d o f r e q u e n c i e s a r o u n d t h s e l e c t e d c u t o f f f r e q u e n c y .

R e g i s t e r 2 ( L o c a t i o n $ D 4 1 8 ) ( 5 4 2 9 6 )( V o i c e 3 ' s w i t c h / f i l t e r m o d e s / v o l u m e s e t t i n g )

B i t s 0 - ( V o l u m e S e t t i n g ) :T h e s e f o u r b i t s a r u s e d t s e l e c t v o l u m e s e t t i n g s w h i c h r a n g e f r o m1 5 T h i s i a m a s t e r v o l u m e c o n t r o l , h o w e v e r e a c h v o i c e m a b v a r i e db e i t h e r s e t t i n g l a r g e a t t a c k a n s e t t i n g t h g a t e b i t d u r i n g a t t a c k ,o b s e t t i n g d i f f e r e n t s u s t a i n l e v e l f o r e a c h v o i c e , t h u s a c h i e v i n gd i f f e r e n t v o l u m e l e v e l s f o e a c h v o i c e w i t h i n t h a b s o l u t e l e v e l s e b t h a b o v e f o u r b i t s .B i t s 4 - ( F i l t e r M o d e s ) :T h e s e t h r e e b i t s a r u s e d t s e l e c t t h e f i l t e r m o d e s f o t h p r o g r a m m a b l e f i l t e r . B i s e l e c t s t h ' l o w p a s s ' f i l t e r , b i s e l e c t s t h ' b a n d p a s s ' f i l t e r a n b i s e l e c t s t h ' h i g h p a s s 1 f i l t e r . M o r e t h a n o n f i l t e r m a b s e l e c t e d a o n t i m e . F o e x a m p l e , ' n o t c h r e j e c t 1 f i l t e r c a b s e u b s e l e c t i n g t h e l o w p a s s a n h i g h p a s s f i l t e r s .B i t - 7 ( V o i c e S w i t c h ) :S e t t i n g t h i s b i t c a u s e s v o i c e o u t p u t t b d i s c o n n e c t e d w i t h o u te f f e c t i n g a n o t h e v o i c e c o n t r o l s . T h i s s w i t c h i u s e d w h e n v o i c e i u s e d t c o n t r o l a n o t h e r v o i c e a n t h o u t p u t o v o i c e i n o n e e d e d .

R e g i s t e r s 2 a n 2 ( L o c a t i o n $ D 4 1 9 a n d $ D 4 1 A ( 5 4 2 9 7 a n 5 4 2 9 8 )( P a d d l e s )

T h e s e r e g i s t e r s a l l o w t h e m i c r o p r o c e s s o r t r e a d t h p o s i t i o n s o p a i ro p a d d l e s c o n n e c t e d t p o r t - 1 ( l a b e l l e d p o r t - 2 o c o m p u t e r c a s i n g ) .T h p a d d l e s s h o u l d g i v e r e a d i n g s o f o m i n i m u m r e s i s t a n c e a n d 2 5 5f o m a x i m u m r e s i s t a n c e . B r e a d i n g t h e s e r e g i s t e r s a n w r i t i n g t h e i rc o n t e n t s t o t h e r s o u n d c h i p r e g i s t e r s , i i p o s s i b l e t c o n t r o l t h s o u n dc h i p w i t h t h p a d d l e s .

1 3

Page 141: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 141/206

R e g i s t e r 2 ( L o c a t i o n $ D 4 1 B ( 5 4 2 9 9 )( O s c i l l a t o r o u t p u t )T h i s r e g i s t e r a l l o w s t h m i c r o p r o c e s s o r t r e a d t h w a v e f o r m o u t p u t

o v o i c e w h e r e a n w a v e f o r m w i l l p r o d u c e v a l u e s b e t w e e n a n 2 5 5 .F o e x a m p l e , i t h s a w t o o t h i s e l e c t e d , r e g i s t e r 2 w i l l o u t p u ti n c r e m e n t i n g v a l u e s f r o m t 2 5 a r a t e d e p e n d i n g o n t h f r e q u e n c ys e t t i n g o v o i c e 3

R e g i s t e r 2 ( L o c a t i o n $ D 4 1 C ( 5 4 3 0 0 )( E n v e l o p e o u t p u t )S a m e a r e g i s t e r 2 7 b u t h i s r e g i s t e r a l l o w s t h m i c r o p r o c e s s o r t

r e a d t h e n v e l o p e o u t p u t o v o i c e 3

1 3

Page 142: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 142/206

Page 143: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 143/206

                    

               

         

   2 4

     

  

  

   

   

   

   

   

   

       

    

    

    

  

  

  

  

              

              

             

             

    

         

    

          

    

         

    

          

                  

             

             

    

           

               

                     

        

        

                

                             

                       

              

     

              

     

                 

                 

                 

                 

         

         

         

         

       

                   

                  

                  

                

                        

           

                    

                   

       

       

       

       

       

       

       

       

       

                 

                

                

Page 144: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 144/206

A p p e n d i xC o m p l e x I n t e r f a c e A d a p t e r( C I A ) I n t e r f a c e C h i p

T h e r e a r t w C I c h i p s o t h C o m m o d o r e 6 a n g e n e r a l l y o n i i s e df o s y s t e m f u n c t i o n s a n o n f o u s e r f u n c t i o n s . E a c h c h i p ( # 1 a n # 2 h a s 1 6 r e g i s t e r s m a p p e d o n t o m e m o r y f r o m $ D C 0 0 $ D C 0 F ( # 1 ) a n $ D D 0 0 $ D D 0 F ( # 2 ) .

R e g i s t e r s 0 - T h e s e f o u r r e g i s t e r s a r c o m b i n e d t c r e a t e t w ' b i d i r e c t i o n a l ' I / r e g i s t e r s . R e g i s t e r s a n c o n t a i n t h e d a t a f o r t h i s I / w h i l e r e g i s t e r sa n c o n t a i n m a s k s t c o n t r o l t h m o v e m e n t o t h i s d a t a . I r e g i s t e rc o n t a i n s $ E ( 1 1 1 0 0 0 0 0 ) a s m a s k o n l y t h t o b i t s o r e g i s t e r w i l l b e f f e c t i v e . ( F o r R e a d ( L D A R e 0 b i t s 5 6 w i l l b i n p u t s , F o W r i t e( S T A R e 0 b i t s 5 6 w i l l b o u t p u t s ) . T h s a m e a p p l i e s f o r e g i s t e ra n r e g i s t e r 1

C I A # 1

W r i t eR e a d

W r i t eR e a d

R e g i s t e rb i t sb i t s 0 - O b i t sb i t sO b i b i t s

R e g i s t e rb i t sb i t sO b i t sO b i b i t s 0 -

$ D C 0 0 ( 5 6 3 2 0 )k e y b o a r d s c a n c o l u m nl i g h t p e

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

J o y s t i c k © f i r e b u t t o nJ o y s t i c k © d i r e c t i o n( S e e J o y s t i c k d i r e c t i o n t a b l e )$ D C 0 1 ( 5 6 3 2 1 )T i m e r a n t o g g l eK e y b o a r d s c a n R o v a l u e s

P a d d l e f i r e b u t t o n s

J o y s t i c k f i r e b u t t o n sJ o y s t i c k d i r e c t i o n( S e e J o y s t i c k d i r e c t i o n t a b l e )

1 3

Page 145: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 145/206

J o y s t i c k D i r e c t i o n T a b l e

C I A # 1

B i t s - D i r e c t i o nN o n eU D o w nL e f tU a n L e f tD o w n a n L e f t

R i g h tU a n R i g h tD o w n a n R i g h t

— F I R E R I G H T L E F T D O W N U

( B i t s u s e d b l o c a t i o n 5 6 3 2 0 a n 5 6 3 2 1 f o j o y s t i c k p o r t s a n r e s p e c t i v e l y ) .

1 3

Page 146: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 146/206

C I #

W r i t e

R e a d

R e g i s t e r $ D D 0 0 ( 5 6 5 7 6 )b i s e r i a l b u d a t a o u t p u tb i s e r i a l b u c l o c k p u l s e o u t p u tb i s e r i a l b u A T s i g n a l o u t p u tb i R S - 2 3 2 d a t a o u t p u t ( u s e r p o r t )b i - V I C - I I c h i p m e m o r y s e l e c t

( s e e A p p e n d i x V l C - l I b a n k s e l e c t )b i s e r i a l b u d a t a i n p u tb i s e r i a l b i c l o c k p u l s e i n p u tR e g i s t e r $ D D 0 1 ( 5 6 5 7 7 )U s e r P o r tO b i R S - 2 3 2 D a t a s e r e a d yb i R S - 2 3 2 C l e a r t s e n db i R S - 2 3 2 C a r r i e r d e t e c tb i R S - 2 3 2 R i n g i n d i c a t o rb i R S - 2 3 2 D a t a t e r m i n a l r e a d yb i R S - 2 3 2 R e q u e s t t s e n db i R S - 2 3 2 R e c e i v e d d a t a

T h f o l l o w i n g r e g i s t e r s a r u s e d s i m i l a r l y o C I # 1 a n d C I A # a n s a r l i s t e d t o g e t h e r .

R e g i s t e r sD a t a d i r e c t i o n r e g i s t e r s f o r e g i s t e r s a n 1 C I # $ D C 0 2 a n $ D C 0 3 ( 5 6 3 2 2 5 6 3 2 3 ) f o $ D C 0 0 a n $ D D 0 1C I # $ D D 0 2 a n $ D D 0 3 ( 5 6 5 7 8 5 6 5 7 9 ) f o $ D D 0 0 a n $ D D 0 1

R e g i s t e r sT i m e rT i m e rT i m e rT i m e r

l o w - b y t eh i g h - b y t el o w - b y t eh i g h - b y t e

C I A # 1$ D C 0 4$ D C 0 5$ D C 0 6$ D C 0 7

C I # $ D D 0 4$ D D 0 5$ D D 0 6$ D D 0 7

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

1 3

Page 147: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 147/206

C I A # 1$ D C 0 8$ D C 0 9$ D C 0 A$ D C 0 B

C I # $ D D 0 8$ D D 0 9$ D D 0 A$ D D 0 B

C I # U s e r t i m e r i n t e r r u p t sW r i t e T h 1 b i v a l u e w r i t t e n i n t o t h e h i g h h i g h - b y t e , l o w - b y t e

c o m b i n a t i o n w i l l c a u s e a i n t e r r u p t w h e n t h c o r r e s p o n d i n gt i m e r r e a c h e s t h a t 1 b i v a l u e , i t h c o r r e c t e n a b l e b i t sa r s e t .

R e a d T h 1 b i c u r r e n t v a l u e o t h t i m e r .

R e g i s t e r s 8 - 1 1T i m e o D a c l o c k : 1 / 1 0 s e c o n d sT i m e o D a c l o c k : s e c o n d sT i m e o D a c l o c k : m i n u t e sT i m e o D a c l o c k : b i t s h o u r s

b i t 7 A M / P M

C I A # 1F o B a s i c a n d S y s t e m c l o c k

C I # W r i t e R e s e t t i m e w r i t e t h o u r s r e g i s t e r s t o p s t h c l o c k t a l l o wy o t s e u a l f o u r t i m e - o f - d a y c l o c k r e g i s t e r s w i t h o u tl o s i n g a c c u r a c y , w r i t e t / 1 s e c o n d s r e g i s t e r r e s t a r t s c l o c kO ( d e p e n d i n g o c o n t r o l r e g i s t e r b i 7 s e a l a r m f u n c t i o nt i m e .

R e a d R e a d s t i m e o d a y . W h e n h o u r s r e g i s t e r i r e a d , c l o c kc o n t i n u e s b u p r e s e n t t i m e w i l l b R E A D o a l r e g i s t e r su n t i l t h 1 / 1 0 s e c o n d s r e g i s t e r s i r e a d .

R e g i s t e r s C I A # 1 C I # $ D C 0 C $ D D 0 C

S e r i a l I / D a t a B u f f e r

R e g i s t e r 1 C I A # 1 C I # $ D C 0 D $ D D 0 D

W r i t e b i I s e t , w r i t t e n b i t s s e t t o w i l l s e c o r r e s p o n d i n g b i t , w r i t t e n b i t s s e t z e r ow i l l b u n a f f e c t e d .I c l e a r , w r i t t e n b i t s s e t w i l l c l e a rc o r r e s p o n d i n g b i t , w r i t t e n b i t s s e t z e r o w i l lb u n a f f e c t e d .

1 4

Page 148: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 148/206

b i t s E n a b l e i n t e r r u p t s w i t h i n C I c h i p f r o ms t a t e d a r e a s .

S e t / c l e a r F l a g S e r i a lP o r t

A l a r m T i m e r T i m e r

R e a d b i I n t e r r u p t h a o c c u r r e d .b i t s S i g n a l s w h i c h o t h f o l l o w i n g c a u s e s w a

t h s o u r c e o t h i n t e r r u p t .

I n t e r r u p t I F l a g S e r i a lP o r t A l a r m T i m e r T i m e r

C I A # 1 F l a g N M O c c u r r e d .C I # F l a g I R O c c u r r e d .

R e g i s t e r 1 4 - 1 5C o n t r o l R e g i s t e rC o n t r o l R e g i s t e rW r i t e b i

b i

b i b i

b i

C o n t r o l R e g i s t e rb i

b i

b i

C o n t r o l R e g i s t e rb i t s 5 - 6

C I A # 1$ D C 0 E$ D C 0 F

C I # $ D D 0 E$ D D 0 F

- S t a r t T i m e rS t o p T i m e r

T i m e r o v e r f l o w t a p p e a r i t i m e r t o g g l er e g i s t e r 1 T i m e r b i 6 T i m e r b i t 7 .T i m e r o u t p u t m o d e t b i o f r e g i s t e r 1

O n s h o t ( c o u n t t z e r o t h e n s t o p )C o n t i n u o u s ( c y c l e )L o a d v a l u e i n t o t i m e rN a c t i o n

T i m e r c o u n t s C N s i g n a l sT i m e r c o u n t s s y s t e m c l o c k p u l s e

s i g n a l sS e r i a l p o r t o u t p u tS e r i a l p o r t i n p u t

- C l o c k o 5 H C l o c k o n 6 0 H

0 C o u n t s y s t e m c l o c k p u l s e s i g n a l s0 - C o u n t C N s i g n a l s1 C o u n t T i m e r u n d e r f l o w p u l s e s i g n a l s1 C o u n t T i m e r u n d e r f l o w w h i l e C N s e

1 4

Page 149: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 149/206

Page 150: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 150/206

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

A d d r e s s( H e x )0 0 0 00 0 0 1 - 0 0 0 20 0 0 3 - 0 0 0 40 0 0 5 - 0 0 0 60 0 0 7

0 0 0 80 0 0 90 0 0 A0 0 0 B0 0 0 C0 0 0 D0 0 0 E

0 0 0 F0 0 1 00 0 1 10 0 1 20 0 1 30 0 1 4 - 0 0 1 5

0 0 1 60 0 1 7 - 0 0 1 80 0 1 9 - 0 0 2 10 0 2 3 - 0 0 2 50 0 2 6 - 0 0 2 A0 0 2 B - 0 0 2 C0 0 2 D - 0 0 2 E

0 0 2 F - 0 0 3 0

A d d r e s s( D e c i m a l )

1 - 3 - 5 -

1 1 1 1 1

1 1 1 1 1 2 0 - 2 1

2 2 3 - 2 42 5 - 3 33 4 - 3 73 8 - 4 24 3 - 4 44 5 - 4 6

4 7 - 4 8

D e s c r i p t i o n

C h i p d i r e c t i o n a l r e g i s t e rM e m o r y a n t a p e c o n t r o lF l o a t i n g p o i n t f i x e d p o i n t v e c t o rF i x e d p o i n t f l o a t i n g p o i n t v e c t o rB A S I C c o u n t e r . S e a r c h c h a r a c t e r ' : ' o e n o l i n eS c a n - q u o t e s f l a gC o l u m n p o s i t i o n o c u r s o r o l i n eF l a g ; L O A D , V E R I F YB A S I C i n p u t b u f f e r p o i n t ; s u b s c r i p t n u m b e rD e f a u l t D I f l a gV a r i a b l e t y p e f l a g : F s t r i n g , 0 n u m e r i cN u m e r i c t y p e f l a g : 8 i n t e g e r ,0 f l o a t i n g p o i n tD A T A s c a n f l a g : L I S T q u o t e f l a g ; m e m o r y f l a gS u b s c r i p t f l a g ; F N f l a gF l a g ; I N P U T , 1 5 R E A D , 6 G E A T s i g n f l a g ; c o m p a r i s o n e v a l u a t i o n f l a gC u r r e n t I / p r o m p t f l a gW h e r e B A S I C s t o r e s i n t e g e r s u s e d i c a l c u l a t i o n sT e m p o r a r y s t r i n g s t a c k p o i n t e rL a s t t e m p o r a r y s t r i n g v e c t o rS t a c k f o t e m p o r a r y s t r i n g d e s c r i p t i o n sU t i l i t y p o i n t e r a r e aP r o d u c t a r e a f o m u l t i p l i c a t i o nP o i n t e r t s t a r t o B A S I C p r o g r a mP o i n t e r t e n o B A S I C p r o g r a m ; s t a r t o B A S I C v a r i a b l e sP o i n t e r t e n o v a r i a b l e s ; s t a r t o a r r a y s

1 4

Page 151: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 151/206

A d d r e s s( H e x )0 0 3 3 - 0 0 3 40 0 3 5 - 0 0 3 60 0 3 7 - 0 0 3 80 0 3 9 - 0 0 3 A0 0 3 B - 0 0 3 C0 0 3 D - 0 0 3 E0 0 3 F - 0 0 4 00 0 4 1 - 0 0 4 20 0 4 3 - 0 0 4 40 0 4 5 - 0 0 4 60 0 4 7 - 0 0 4 80 0 4 9 - 0 0 4 A0 0 4 B - 0 0 4 C0 0 4 D0 0 4 E - 0 0 4 F0 0 5 0 - 0 0 5 10 0 5 20 0 5 30 0 5 4 - 0 0 5 60 0 5 7 - 0 0 6 00 0 6 1 - 0 0 6 6

0 0 6 70 0 6 80 0 6 9 - 0 0 6 E0 0 6 F0 0 7 00 0 7 1 - 0 0 7 20 0 7 3 - 0 0 8 A

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

A d d r e s s( D e c i m a l )5 3 - 5 45 5 - 5 65 7 - 5 85 9 - 6 06 1 - 6 26 3 - 6 46 5 - 6 66 7 - 6 86 9 - 7 07 1 - 7 27 1 - 7 17 3 - 7 47 5 - 7 67 7 8 - 7 98 0 - 8 18 8 8 4 - 8 68 7 - 9 69 7 - 1 0 2

1 0 1 0 1 0 5 - 1 1 01 1 1 1 1 1 3 - 1 1 41 1 5 - 1 3 8

1 3 9 - 1 4 31 4 1 4 1 4 1 4 1 4 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 6 0 - 1 6 2

D e s c r i p t i o n

P o i n t e r t e n o s t r i n g s t o r a g eP o i n t e r t t o o R A a v a i l a b l e t B A S I CC u r r e n t B A S I C l i n e n u m b e rP r e v i o u s B A S I C l i n e n u m b e rP o i n t e r t o B A S I C s t a t e m e n t ( f o r C O N T )C u r r e n t D A T A l i n e n u m b e rP o i n t e r t c u r r e n t D A T A i t e mJ u m p v e c t o r f o I N P U T s t a t e m e n tC u r r e n t v a r i a b l e n a m e

C u r r e n t v a r i a b l e a d d r e s sV a r i a b l e p o i n t e r f o F O R / N E X T s t a t e m e n t

s a v e ; o p e r a t o r s a v e ; B A S I C p o i n t e r s a v eC o m p a r i s o n s y m b o lW o r k a r e a ; f u n c t i o n d e f i n i t i o n p o i n t e rW o r k a r e a ; s t r i n g d e s c r i p t o r p o i n t e rL e n g t h o s t r i n gG a r b a g e c o l l e c t u s J u m p v e c t o r f o f u n c t i o n sN u m e r i c w o r k a r e aF l o a t i n g p o i n t a c c u m u l a t o r 1 E x p o n e n t ,

b y t e M a n t i s s a , S i g nS e r i e s e v a l u a t i o n c o n s t a n t p o i n t e rA c c u m u l a t o r o v e r f l o wF l o a t i n g p o i n t a c c u m u l a t o rS i g n c o m p a r i s o n A c w i t h A c A c r o u n d i n gC a s s e t t e b u f f e r l e n g t h ; s e r i e s p o i n t e rC H R G O T B A S I C s u b r o u t i n e g e t s n e x tB A S I C c h a r a c t e rR N s t o r a g e a n w o r k a r e aS T s t a t u s b y t eS T O P a n R E V E R S E f l a g s ; K e y s w i t c h P I AT i m i n g c o n s t a n t f o t a p eF l a g : L O A D , V E R I F YS e r i a l o u t p u t : d e f e r r e d c h a r a c t e r f l a gT a p e E O r e c e i v e dR e g i s t e r s a v eN u m b e r o O P E N f i l e sC u r r e n t i n p u t d e v i c eC u r r e n t o u t p u t ( C M D ) d e v i c eT a p e c h a r a c t e r p a r i t yF l a g : b y t e r e c e i v e dO u t p u t c o n t r o l f l a g : d i r e c t 1 2 8 ; r u nT a p e p a s s e r r o r l o T a p e p a s s e r r o r l o J i f i e c l o c k T a n T l u s t h i s

1 4

Page 152: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 152/206

A d d r e s s( H e x )

0 0 A 30 0 A 40 0 A 50 0 A 60 0 A 70 0 A 80 0 A 90 0 A A0 0 A B0 0 A C - 0 0 A D0 0 A E - 0 0 A F0 0 B 0 - 0 0 B 10 0 B 2 - 0 0 B 30 0 B 40 0 B 50 0 B 60 0 B 70 0 B 80 0 B 90 0 B A0 0 B B - 0 0 B C0 0 B D0 0 B E0 0 8 F0 0 C 00 0 C 1 - 0 0 C 20 0 C 3 - 0 0 C 40 0 C 50 0 C 60 0 C 70 0 C 80 0 C 9 - 0 0 C A0 0 C B0 0 C C0 0 C D0 0 C E0 0 C F0 0 D 00 0 D 1 0 0 D 20 0 D 30 0 D 40 0 D 50 0 D 6

0 0 D 70 0 D 8

A d d r e s s( D e c i m a l )

1 6 1 6 1 6 1 6 1 6 1 6 1 6 1 7 1 7 1 7 2 - 1 7 31 7 4 - 1 7 51 7 6 - 1 7 71 7 8 - 1 7 91 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 7 - 1 8 81 8 1 9 1 9 1 9 1 9 3 - 1 9 41 9 5 - 1 9 61 9 1 9 1 9 2 0 2 0 1 - 2 0 22 0 2 0 2 0 2 0 2 0 2 0 2 0 9 - 2 1 02 1 2 1 2 1 2 1

2 1 2 1

D e s c r i p t i o n

S e r i a l b i c o u n tC y c l e c o u n tT a p e w r i t e b i c o u n tP o i n t e r t t a p e b u f f e rT a p e w r i t e c o u n t ; i n p u t b i s t o r a g eT a p e w r i t e n e b y t e ; R e a d e r r o r ; i n p u t b i c o u n tW r i t e s t a r t b i t ; R e a d b i e r r o rT a p e s c a n ; c o u n tW r i t e r e a d l e n g t h ; R e a d c h e c k s u m ; p a r i t yP o i n t e r t t a p e b u f f e r ; s c r o l l i n gT a p e e n d a d d r e s s e s ; e n o p r o g r a mT a p e t i m i n g c o n s t a n t sP o i n t e r t o s t a r t o t a p e b u f f e rT a p e t i m e r ; b i c o u n tR S 2 3 2 n e x t b i t s e n dR e a d c h a r a c t e r e r r o r ; n e x t b y t e o u N u m b e r o c h a r a c t e r s i c u r r e n t f i l e n a m eC u r r e n t l o g i c a l f i l e n u m b e rC u r r e n t s e c o n d a r y a d d r e s sC u r r e n t d e v i c e n u m b e rP o i n t e r t c u r r e n t f i l e n a m eW r i t e s h i f t b y t e ; R e a d i n p u t c h a r a c t e rN u m b e r o b l o c k s r e m a i n i n g t R e a d / W r i t eS e r i a l w o r d b u f f e rT a p e m o t o r i n t e r l o c kI / s t a r t a d d r e s s e sK E R N A L s e t u p p o i n t e rC u r r e n t k e p r e s s e d ( s e e A p p e n d i x H K e y b o a r d b u f f e r c o u n t e rF l a g : s c r e e n r e v e r s e - 1 i o n i o f P o i n t e r t e n d - o f - l i n e f o i n p u tC u r s o r l o g ( r o w , c o l u m n )C u r r e n t k e p r e s s e dF l a g : c u r s o r b l i n k e n a b l e ( i o n C u r s o r b l i n k d e l a yC h a r a c t e r u n d e r c u r s o rF l a g : c u r s o r o n / o f fI n p u t f r o m s c r e e n / k e y b o a r dP o i n t e r t s c r e e n l i n e o n w h i c h c u r s o r a p p e a r sP o s i t i o n o c u r s o r o l i n e

d i r e c t c u r s o r , e l s e p r o g r a m m e dS c r e e n l i n e l e n g t h , 2 1 , 4 3 , 6 5 , 8 7C u r r e n t s c r e e n l i n e n u m b e r T o c h a n g ec u r s o r p o s i t i o n , 2 0 1 , 2 1 0 , 2 1 1 a n 2 1 m u s tb c h a n g e dA S C I I v a l u e o l a s t c h a r a c t e r p r i n t e dN u m b e r o I N S E R T S o u t s t a n d i n g

1 4

Page 153: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 153/206

A d d r e s s( H e x )

0 0 D 9 - 0 0 F 00 0 F 10 0 F 20 0 F 3 - 0 0 F 40 0 F 5 - 0 0 F 60 0 F 7 - 0 0 F 80 0 F 9 - 0 0 F A0 0 F B - 0 0 F E0 0 F F0 1 0 0 - 0 1 0 A0 1 0 0 - 0 1 3 E0 1 0 0 - 0 1 F F0 2 0 0 - 0 2 5 80 2 5 9 - 0 2 6 20 2 6 3 - 0 2 6 C0 2 6 D - 0 2 7 60 2 7 7 - 0 2 8 00 2 8 1 - 0 2 8 20 2 8 3 - 0 2 8 40 2 8 50 2 8 60 2 8 70 2 8 80 2 8 9

0 2 8 A0 2 8 B0 2 8 C0 2 8 D

0 2 8 E0 2 8 F - 0 2 9 00 2 9 10 2 9 20 2 9 30 2 9 40 2 9 5 - 0 2 9 60 2 9 70 2 9 80 2 9 9 - 0 2 9 A0 2 9 B0 2 9 C0 2 9 D0 2 9 E0 2 9 F - 0 2 A 00 2 A 1

A d d r e s s( D e c i m a l )

2 1 7 - 2 4 02 4 2 4 2 4 3 - 2 4 42 4 5 - 2 4 62 4 7 - 2 4 82 4 9 - 2 5 02 5 1 - 2 5 42 5 2 5 6 - 2 6 62 5 6 - 3 1 82 5 6 - 5 1 15 1 2 - 6 0 06 0 1 - 6 1 06 1 1 - 6 2 06 2 1 - 6 3 06 3 1 - 6 4 06 4 1 - 6 4 26 4 3 - 6 4 46 4 6 4 6 4 6 4 6 4

6 5 6 5 6 5 6 5

6 5 6 5 5 - 6 5 66 5 6 5 6 5 6 6 6 6 1 - 6 6 26 6 6 6 6 6 5 - 6 6 66 6 6 6 6 6 6 7 6 7 1 - 6 7 26 7

D e s c r i p t i o n

S c r e e n l i n e l i n k t a b l eD u m m y s c r e e n l i n e l i n kS c r e e n r o m a r k e rP o i n t e r t c u r r e n t l o c a t i o n i c o l o u r m e m o r yP o i n t e r t k e y s c a n t a b l eP o i n t e r t R S - 2 3 2 r e c e i v e r b u f f e r s t a r tP o i n t e r t R S - 2 3 2 t r a n s m i t t e r b u f f e r s t a r tF r e e z e r o - p a g e l o c a t i o n sB A S I C s t o r a g eF l o a t - A S C I I w o r k a r e aT a p e e r r o r l o gP r o c e s s o r s t a c k a r e aB A S I C i n p u t b u f f e rL o g i c a l f i l e t a b l e f o O P E N f i l e sD e v i c e n u m b e r t a b l e f o O P E N f i l e sS e c o n d a r y a d d r e s s t a b l eK e y b o a r d b u f f e rP o i n t e r t s t a r t o m e m o r y f o o p e r a t i n g s y s t e mP o i n t e r t e n o m e m o r y f o o p e r a t i n g s y s t e mS e r i a l b u t i m e o u t f l a gC u r r e n t c o l o u r c o d e ( f o r P R I N T e d c h a r a c t e r )C o l o u r u n d e r c u r s o rS c r e e n m e m o r y p a g e i n d i c a t o rM a x i m u m l e n g t h o k e y b o a r d b u f f e r m u s t b el e s s t h a n 1 K e a u t o r e p e a t ( c u r s o r c o n t r o l s , 2 5 a l l )P r e - r e p e a t d e l a yI n t e r - r e p e a t d e l a yK e y b o a r d f l a g f o S H I F T , C T R L a n k e y s . I S H I F T p r e s s e d , b i i s e t , i C T R L , b i 1 i b i L a s t s h i f t p a t t e r nP o i n t e r f o k e y b o a r d t a b l e s e t - u pS h i f t m o d e ( e n a b l e d , 1 2 d i s a b l e d )A u t o s c r o l l d o w n f l a g ( o n e l s e o f f )R S - 2 3 2 c o n t r o l r e g i s t e rR S - 2 3 2 c o m m a n d r e g i s t e rN o n - s t a n d a r d ( b i t t i m e / 2 - 1 0 0R S - 2 3 2 s t a t u s r e g i s t e rN u m b e r o b i t s t s e n dB a u d r a t e ( f u l l ) b i t i m eP o i n t e r t R S - 2 3 2 r e c e i v e r b u f f e r ( e n d )P o i n t e r t R S - 2 3 2 r e c e i v e r b u f f e r ( s t a r t )P o i n t e r t R S - 2 3 2 t r a n s m i t b u f f e r ( s t a r t )P o i n t e r t R S - 2 3 2 t r a n s m i t b u f f e r ( e n d )H o l d s I R d u r i n g t a p e o p e r a t i o n sC I ( N M I ) I n t e r r u p t c o n t r o l

1 4

Page 154: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 154/206

A d d r e s s( H e x )0 2 A 20 2 A 30 2 A 40 2 A 50 2 A 60 2 A 7 - 0 2 F F0 3 0 0 - 0 3 0 10 3 0 2 - 0 3 0 30 3 0 4 - 0 3 0 50 3 0 6 - 0 3 0 70 3 0 8 - 0 3 0 9 .0 3 0 A - 0 3 0 B0 3 0 C0 3 0 D0 3 0 E0 3 0 F0 3 1 0 - 0 3 1 10 3 1 4 - 0 3 1 50 3 1 6 - 0 3 1 70 3 1 8 - 0 3 1 90 3 A - 0 3 1 B0 3 1 C - 0 3 1 D0 3 1 E - 0 3 1 F0 3 2 0 - 0 3 2 10 3 2 2 - 0 3 2 30 3 2 4 - 0 3 2 50 3 2 6 - 0 3 2 70 3 2 8 0 3 2 90 3 2 A - 0 3 2 B0 3 2 C 0 3 2 D0 3 2 E - 0 3 2 F0 3 3 0 - 0 3 3 10 3 3 2 - 0 3 3 30 3 3 4 - 0 3 3 B0 3 3 C - 0 3 F B

0 3 F C - 0 3 F F

A d d r e s s( D e c i m a l )6 7 6 7 6 7 6 7 6 7 6 7 7 6 7 6 8 - 7 6 97 7 Q - 7 7 17 7 7 7 7 7 4 - 7 7 57 7 6 - 7 7 77 7 7 7 7 8 7 8 7 8 7 8 7 8 4 - 7 8 57 8 8 - 7 8 97 9 0 - 7 9 17 9 2 - 7 9 37 9 7 9 7 9 7 9 7 9 8 - 7 9 98 0 0 - 8 0 18 0 2 - 8 0 38 0 4 - 8 0 58 0 6 - 8 0 78 0 8 - 8 0 98 1 0 - 8 1 18 1 2 - 8 1 38 1 4 - 8 1 58 1 6 - 8 1 7 -8 1 8 - 8 1 98 2 0 - 8 2 78 2 8 - 1 0 1 9

1 0 2 0 - 1 0 2 3

D e s c r i p t i o n

C I T i m e r c o n t r o l l o gC I I n t e r r u p t l o gC I T i m e r e n a b l e f l a gS c r e e n r o m a r k e rP A L / N I S C f l a g , N T S C , P A U N U S E DE r r o r m e s s a g e l i n kB a s i c w a r m s t a r t l i n kT o k e n i z a t i o n r o u t i n e l i n kP r i n t t o k e n s l i n kS t a r t n e B A S I C c o d e l i n kG e a r i t h m e t i c e l e m e n t l i n kT e m p o r a r y s t o r a g e o d u r i n g S Y T e m p o r a r y s t o r a g e o d u r i n g S Y T e m p o r a r y s t o r a g e o d u r i n g S Y T e m p o r a r y s t o r a g e o d u r i n g S Y U S f u n c t i o n j u m pH a r d w a r e i n t e r r u p t v e c t o r ( E A 3 1 )B r e a k ( B R K ) i n t e r r u p t v e c t o r ( F E 6 6 )N M i n t e r r u p t v e c t o r ( F E 4 7 )O P E N v e c t o r ( F 3 4 A )C L O S E v e c t o r ( F 2 9 1 )S e i n p u t d e v i c e v e c t o r ( F 2 0 E )S e t o u t p u t d e v i c e v e c t o r ( F 2 5 0 )R e s t o r e I / v e c t o r ( F 3 3 3 )I n p u t v e c t o r ( F 1 5 7 )O u t p u t v e c t o r ( F 1 C A )T e s t S T O P - k e y v e c t o r ( F 6 E D )G E v e c t o r ( F 1 3 E )C l o s e a l f i l e s v e c t o r ( F 3 2 F )U s e r v e c t o r ( F E 6 6 )L o a d - f r o m - d e v i c e v e c t o r ( F 4 A 5 )S a v e t d e v i c e v e c t o r ( F 5 E D )U N U S E DC a s s e t t e b u f f e r u s e f u l f o h o l d i n g m a c h i n ec o d e w h e n n f i l e s a r b e i n g u s e dU N U S E D

1 4

Page 155: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 155/206

Page 156: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 156/206

Page 157: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 157/206

3 N a m e : C H K O U TP u r p o s e : O p e n c h a n n e l f o o u t p u tA d d r e s s : $ F F C 9C o m m u n i c a t i o n r e g i s t e r s : X l o a d w i t h l o g i c a l f i l e n u m b e r t b

u s e dP r e p , r o u t i n e s : O P E NP o s s i b l e e r r o r s : 3 , 5 ,S t a c k :R e g i s t e r s u s e d : A

4 N a m e : C H R I NP u r p o s e : G e t a c h a r a c t e r f r o m i n p u t c h a n n e lA d d r e s s : $ F F C FC o m m u n i c a t i o n r e g i s t e r s : A d a t a b y t e r e t u r n e d i P r e p , r o u t i n e s : O P E N , C H K I N ( u n l e s s d e v i c e i k e y b o a r d )P o s s i b l e e r r o r s : s e R E A D S TS t a c k :R e g i s t e r s u s e d : A

5 N a m e : C H R O U TP u r p o s e : O u t p u t c h a r a c t e rA d d r e s s : $ F F D 2C o m m u n i c a t i o n r e g i s t e r s : A l o a d b y t e t b o u t p u t i P r e p , r o u t i n e s : O P E N , C H K O U T ( u n l e s s d e v i c e i s c r e e n )P o s s i b l e e r r o r s : s e R E A D S TS t a c k :R e g i s t e r s u s e d :

6 N a m e : C I O U TP u r p o s e : T r a n s m i t b y t e o v e r t h s e r i a l b u A d d r e s s : $ F F A 8C o m m u n i c a t i o n r e g i s t e r s : A l o a d b y t e t b o u t p u t i P r e p , r o u t i n e s : L I S T E N , ( S E C O N D i d e v i c e n e e d s s e c o n d a r y

a d d r e s s )P o s s i b l e e r r o r s : s e R E A D S TS t a c k :R e g i s t e r s u s e d :

7 N a m e . C L A L LP u r p o s e : C l o s e a l f i l e sA d d r e s s : $ F F E 7C o m m u n i c a t i o n r e g i s t e r s : n o n eP r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k : 1 R e g i s t e r s u s e d : A

8 N a m e : C L O S EP u r p o s e : C l o s e l o g i c a l f i l eA d d r e s s : $ F F C 3

1 5

Page 158: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 158/206

C o m m u n i c a t i o n r e g i s t e r s : A l o a d w i t h l o g i c a l f i l e n u m b e r t b c l o s e d

P r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : A

9 N a m e : C L R C H I NP u r p o s e : C l e a r I / c h a n n e l sA d d r e s s : $ F F C CC o m m u n i c a t i o n r e g i s t e r s : n o n eP r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : A

1 0 N a m e : G E T I NP u r p o s e : G e c h a r a c t e r f r o m k e y b o a r d b u f f e rA d d r e s s : $ F F E 4C o m m u n i c a t i o n r e g i s t e r s : A c h a r a c t e r c o d e r e t u r n e d i P r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : A

1 1 N a m e . l O B A S EP u r p o s e : D e f i n e I / m e m o r y p a g eA d d r e s s : $ F F F 3C o m m u n i c a t i o n r e g i s t e r s : X , Y ; r e s p e c t i v e l y l o a n h i g h a d d r e s s

b y t e s o m e m o r y s e c t i o n w h e r e m e m o r y m a p p e d I / d e v i c e s a r l o c a t e d a r r e t u r n e d i X

P r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k : T w r e g i s t e r s u s e d : X

1 2 N a m e : L I S T E NP u r p o s e : C o m m a n d d e v i c e o t h s e r i a l b u t r e c e i v e d a t aA d d r e s s : $ F F B 1C o m m u n i c a t i o n r e g i s t e r s : A l o a d w i t h n u m b e r 4 - 1 , i n d i c a t i n g

d e v i c e .P r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : s e R E A D S TS t a c k :R e g i s t e r s u s e d :

1 3 N a m e : L O A DP u r p o s e : L o a d R A f r o m d e v i c e , o v e r i f yA d d r e s s : $ F F D 5C o m m u n i c a t i o n r e g i s t e r s : A ; s e t t f o l o a d , f o v e r i f y . X , Y ; l o

a n h i g h b y t e s o f s t a r t i n g a d d r e s s o l o a d

1 5

Page 159: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 159/206

P r e p , r o u t i n e s : S E T L F S , S E T N A MP o s s i b l e e r r o r s : 0 , 4 , 5 , 8 , 9S t a c k :R e g i s t e r s u s e d : A X

1 4 N a m e : M E M B O TP u r p o s e : S e o r e a d t h a d d r e s s o t h b o t t o m o R A A d d r e s s : $ F F 9 CC o m m u n i c a t i o n r e g i s t e r s : C a r r y f l a g ; t r e a d , t s e b o t t o m o

m e m o r y . X , Y ; l o a n h i g h b y t e s o a d d r e s s . I c a r r y i s e t , t h a d d r e s s w i l l b r e t u r n e d i X Y I c a r r y c l e a r , a d d r e s s i X w i l lb t r a n s f e r r e d t p o i n t e r t b o t t o m o R A

P r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : X , Y ,

1 5 N a m e : M E M T O PP u r p o s e : S e o r e a d t h a d d r e s s o t o o R A A d d r e s s : $ F F 9 9C o m m u n i c a t i o n r e g i s t e r s : C a r r y , X Y a f o M E M B O TP r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : X , Y , C a r r y

1 6 N a m e : O P E NP u r p o s e : O p e n l o g i c a l f i l eA d d r e s s : $ F F C 0C o m m u n i c a t i o n r e g i s t e r s : n o n eP r e p , r o u t i n e s : S E T L F S , S E T N A MP o s s i b l e e r r o r s : 1 , 2 , 4 , 5 , 6S t a c k :R e g i s t e r s u s e d : A X

1 7 N a m e : P L O TP u r p o s e : S e c u r s o r l o c a t i o n o r e a d c u r s o r l o c a t i o nA d d r e s s : $ F F F 0C o m m u n i c a t i o n r e g i s t e r s : C a r r y : f o s e c u r s o r l o c a t i o n f o r e a d

c u r s o r l o c a t i o n . X c o l u m n n u m b e r ( 0 - 2 1 ) r e t u r n e d t o l o a d e df r o m . Y r o n u m b e r ( 2 2 r e t u r n e d t o l o a d e d f r o m .

P r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : C a r r y , X

1 8 N a m e : R D T I MP u r p o s e : R e a d s y s t e m c l o c k - 3 b y t e v a l u eA d d r e s s : $ F F D E

1 5

Page 160: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 160/206

C o m m u n i c a t i o n r e g i s t e r s : A m o s t s i g n i f i c a n t b y t e r e t u r n e d . X n e x tm o s t s i g n i f i c a n t b y t e r e t u r n e d . Y l e a s e s i g n i f i c a n t b y t e r e t u r n e d .

P r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : A X

1 9 N a m e : R E A D S TP u r p o s e : r e a d s t a t u s w o r d a n s e t u p e r r o r s .A d d r e s s : $ F F B 7C o m m u n i c a t i o n r e g i s t e r s : A ; e r r o r c o d e r e t u r n e d i A S e d i s c u s s i o n o S i B A S I C s e c t i o n f o c o d e s a n m e a n i n g sP r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d :

2 0 N a m e : R E S T O RP u r p o s e : R e s t o r e d e f a u l t s y s t e m a n i n t e r r u p t v e c t o r sA d d r e s s : $ F F 8 AC o m m u n i c a t i o n r e g i s t e r s : n o n eP r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : A X

2 1 N a m e : S A V EP u r p o s e : S a v e m e m o r y t d e v i c eA d d r e s s : $ F F D 8C o m m u n i c a t i o n r e g i s t e r s : A l o a d w i t h z e r o - p a g e a d d r e s s . T h i s

a d d r e s s a n t h n e x t b y t e c o n t a i n t h a d d r e s s o t h s t a r t o m e m o r y t b s a v e d . X Y l o a n h i g h b y t e s o e n a d d r e s s o m e m o r y t b s a v e d .

P r e p , r o u t i n e s : S E T L F S , S E T N A M ( S E T N A M n o n e e d e d i n a m e l e s s s a v e t D a t a s e t t e i d e s i r e d )P o s s i b l e e r r o r s : 5 , 8 , 9S t a c k :R e g i s t e r s u s e d : A X

2 2 N a m e : S C N K E YP u r p o s e : S c a n t h k e y b o a r d , p u v a l u e i k e y b o a r d q u e u eA d d r e s s : $ F F 9 FC o m m u n i c a t i o n r e g i s t e r s : n o n eP r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : A X

1 5

Page 161: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 161/206

2 3 N a m e : S C R E E NP u r p o s e : R e t u r n n u m b e r o s c r e e n r o w s a n d c o l u m n sA d d r e s s : $ F F E DC o m m u n i c a t i o n r e g i s t e r s : X n u m b e r o c o l u m n s r e t u r n e d i X . Y ;

n u m b e r o r o w s r e t u r n e d i P r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : X

2 4 N a m e : S E C O N DP u r p o s e : S e n d s e c o n d a r y a d d r e s s f o L I S T E NA d d r e s s : $ F F 9 3C o m m u n i c a t i o n r e g i s t e r s : A l o a d w i t h s e c o n d a r y a d d r e s s t b

s e n tP r e p , r o u t i n e s : L I S T E NP o s s i b l e e r r o r s : s e R E A D S TS t a c k :R e g i s t e r s u s e d :

2 5 N a m e : S E T L F SP u r p o s e : S e u l o g i c a l f i l e n u m b e r , d e v i c e a n s e c o n d a r y

a d d r e s s e sA d d r e s s : $ F F B AC o m m u n i c a t i o n r e g i s t e r s : A l o a d l o g i c a l f i l e n u m b e r i n t o A X

d e v i c e n u m b e r . Y c o m m a n d ( s e c o n d a r y a d d r e s s )P r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : A X

2 6 N a m e : S E T N A MP u r p o s e : S e t u f i l e n a m eA d d r e s s : $ F F B DC o m m u n i c a t i o n r e g i s t e r s : A l o a d l e n g t h o f i l e n a m e i n t o A . X , Y ;

l o w , h i g h b y t e s o a d d r e s s o s t a r t o m e m o r y w h e r e f i l e n a m e i s t o r e d

P r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : A X

2 7 N a m e : S E T T I MP u r p o s e : S e t h s y s t e m c l o c k - 3 b y t e v a l u eA d d r e s s : $ F F D BC o m m u n i c a t i o n r e g i s t e r s : A m o s t s i g n i f i c a n t b y t e . X n e x t m o s t

s i g n i f i c a n t b y t e . Y l e a s t s i g n i f i c a n t b y t eP r e p , r o u t i n e s : n o n e

1 5

Page 162: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 162/206

P o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : A X

2 8 N a m e : S T O PP u r p o s e : C h e c k i s t o p k e p r e s s e dA d d r e s s : $ F F E 1C o m m u n i c a t i o n r e g i s t e r s : z e r o f l a g ; s e i S T O P k e p r e s s e dP r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e d : z e r o f l a g , A

2 9 N a m e : T A L KP u r p o s e : C o m m a n d d e v i c e o t h s e r i a l b u t T A L KA d d r e s s : $ F F B 4C o m m u n i c a t i o n r e g i s t e r s : A l o a d d e v i c e n u m b e r i n t oP r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : s e R E A D S TS t a c k :R e g i s t e r s u s e d :

3 0 N a m e . T K S AP u r p o s e : s e n d a s e c o n d a r y a d d r e s s t d e v i c e c o m m a n d e d t

T A L KA d d r e s s : $ F F 9 6C o m m u n i c a t i o n r e g i s t e r s : A l o a d s e c o n d a r y a d d r e s s i n t oP r e p , r o u t i n e s : T A L KP o s s i b l e e r r o r s : s e R E A D S TS t a c k :R e g i s t e r s u s e d :

3 1 N a m e . U N L S NP u r p o s e : C o m m a n d a l d e v i c e s o t h s e r i a l b u t s t o p r e c e i v i n g

d a t aA d d r e s s : $ F F A EC o m m u n i c a t i o n r e g i s t e r s : n o n eP o s s i b l e e r r o r s : s e R E A D S TS t a c k :R e g i s t e r s u s e d :

3 2 N a m e : U N T L KP u r p o s e : S e n d a U N T A L K c o m m a n d t a l d e v i c e s o s e r i a l b u A d d r e s s : $ F F A BC o m m u n i c a t i o n r e g i s t e r s : n o n eP r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : s e R E A D S TS t a c k :R e g i s t e r s u s e d :

1 5

Page 163: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 163/206

3 3 N a m e : V E C T O RP u r p o s e : S e o r e a d s y s t e m R A v e c t o r sA d d r e s s : $ F F 8 DC o m m u n i c a t i o n r e g i s t e r s : X , Y ; a d d r e s s o l i s t o s y s t e m R A

v e c t o r s . C a r r y f l a g ; i s e t , t h R A v e c t o r s a r e r e a d i n t o t h l i s tp o i n t e d t b X a n i c l e a r , t h c o n t e n t s o t h l i s t p o i n t e d t b X a r r e a d i n t o t h R A v e c t o r s .

P r e p , r o u t i n e s : n o n eP o s s i b l e e r r o r s : n o n eS t a c k :R e g i s t e r s u s e c k C a r r y f l a g , X

E r r o r C o d e sV a l u e M e a n i n g

R o u t i n e t e r m i n a t e d b S T O P k e T o m a n y o p e n f i l e sF i l e a l r e a d y o p e nF i l e n o o p e nF i l e n o f o u n dD e v i c e n o p r e s e n tF i l e i n o a i n p u t f i l eF i l e i n o a o u t p u t f i l eF i l e n a m e i m i s s i n gI l l e g a l d e v i c e n u m b e r

1 5

Page 164: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 164/206

K e r n a l R O R o u t i n e s

A d d r e s s( H e x )E 0 9 7E 1 2 AE 1 5 6E 1 6 5E 1 B EE 1 C 7E 1 D 4E 2 0 EE 2 1 9E 2 6 4E 2 6 BE 2 B 4E 3 0 EE 3 7 BE 3 9 4E 3 A 2E 3 B FE 4 5 3E 4 5 FE 5 0 0E 5 0 5E 5 0 AE 5 1 8E 5 4 4E 5 6 6E 5 6 CE 5 A 0E 5 B 4E 6 3 2E 6 8 4E 6 9 1E 6 B 6E 6 E DE 7 0 1E 7 1 6E 8 7 CE 8 9 1E 8 C BE 8 E AE 9 6 5E 9 C 8E 9 F 0E A 8 7E B 7 9E B 8 1

A d d r e s s( D e c i m a l )5 7 4 9 55 7 6 4 25 7 6 8 65 7 7 0 15 7 7 9 05 7 7 9 95 7 8 1 25 7 8 7 05 7 8 8 15 7 9 5 65 7 9 6 35 8 0 3 65 8 1 2 65 8 2 3 55 8 2 6 05 8 2 7 45 8 2 9 25 8 4 5 15 8 4 6 35 8 6 2 45 8 6 2 95 8 6 3 45 8 6 4 85 8 6 9 25 8 7 2 65 8 7 3 25 8 7 8 45 8 8 0 45 8 9 3 05 9 0 1 25 9 0 2 55 9 0 6 25 9 1 1 75 9 1 3 75 9 1 5 85 9 5 1 65 9 5 3 75 9 5 9 25 9 6 2 65 9 7 4 95 9 8 4 85 9 8 8 86 0 0 3 96 0 2 8 16 0 2 8 9

F u n c t i o n o R o u t i n e

R N S Y S A V EL O A DO P E NC L O S EP a r a m e t e r s f o L O A D / S A V EC h e c k f o c o m m aP a r a m e t e r s f o O P E N / C L O S EC O S I T A A T W a r m s t a r tI n i t i a l i z eC H R G E T f o z e r o p a g eI n i t i a l i z e B A S I CI n i t i a l i z e v e c t o r sP o w e r - u p m e s s a g eG e I / a d d r e s sG e s c r e e n s i z eP u t / g e t r o w / c o l u m nI n i t i a l i z e I / C l e a r s c r e e nH o m e c u r s o rS e s c r e e n p o i n t e r sS e I / d e f a u l t sI n p u t f r o m k e y b o a r dI n p u t f r o m s c r e e nQ u o t e t e s tS e t u p s c r e e n p r i n tA d v a n c e c u r s o rR e t r e a t c u r s o rP r e v i o u s l i n eO u t p u t t s c r e e nG t n e x t l i n e< r e t u r n > k e S e t c o l o u r c o d eS c r o l l s c r e e nO p e n s p a c e o s c r e e nM o v e s c r e e n l i n eI n t e r r u p tR e a d k e y b o a r dK e y b o a r d s e l e c t v e c t o r sK e y b o a r d - u n s h i f t e d

1 5

Page 165: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 165/206

A d d r e s s( H e x )E B C 2E C 0 3E C 4 4E C 4 FE C 7 8E C B 9E C F 9E D 0 BE D 1 1E D 4 0E D B 2E D E FE E 0 3E E 1 3E E 8 5E E 8 EE E 9 7E E A 0E E A 9E E B BE F 0 6E F 3 BE F 4 AE F 5 9E F 7 EE F C 4E F C CE F C FE F D 2F 0 1 7F 0 4 DF 0 A 4F 1 3 EF 1 5 7F 1 9 9F 1 C AF 2 0 EF 2 5 0F 2 9 1F 3 0 FF 3 1 FF 3 2 FF 3 3 3F 3 4 AF 4 0 9F 4 9 EF 5 A F

A d d r e s s( D e c i m a l )6 0 3 5 46 0 4 1 96 0 4 8 46 0 4 9 56 0 5 3 66 0 6 0 1§ 0 6 6 56 0 6 8 36 0 6 8 96 0 7 3 66 0 8 5 06 0 9 1 16 0 9 3 16 0 9 4 76 1 0 6 16 1 0 7 06 1 0 7 96 1 0 8 86 1 0 9 76 1 1 1 56 1 1 9 06 1 2 4 36 1 2 5 86 1 2 7 36 1 3 1 06 1 3 8 06 1 3 8 86 1 3 9 16 1 3 9 46 1 4 6 36 1 5 1 76 1 6 0 46 1 7 5 86 1 7 8 36 1 8 4 96 1 8 9 86 1 9 6 66 2 0 3 26 2 0 9 76 2 2 2 36 2 2 3 96 2 2 5 56 2 2 5 96 2 2 8 26 2 4 7 36 2 6 2 26 2 8 9 5

F u n c t i o n o R o u t i n e

K e y b o a r d 2 - s h i f t e dK e y b o a r d ' c o m r n *G r a p h i c s / t e x t c o n t r o lS e g r a p h i c s / t e x t m o d eK e y b o a r d 4V i d e o c h i p s e t u pS c r e e n i a d d r e s s l o S e n d ' t a l k 1S e n d ' l i s t e n 'S e n d t s e r i a l b u S e r i a l t i m e o u tS e n d ' u n t a l k 'S e n d ' u n l i s t e n *R e c e i v e f r o m s e r i a l b u S e r i a l c l o c k o S e r i a l c l o c k o f S e r i a l o u t p u t ' 1 S e r i a l o u t p u t ' 0 G e s e r i a l i R S - 2 3 2 s e n dS e n d n e R S - 2 3 2 b y t eD i s a b l e t i m e rC o m p u t e b i c o u n tR S - 2 3 2 r e c e i v eS e t u p t r e c e i v eR e c e i v e p a r i t y e r r o rR e c e i v e o v e r f l o wR e c e i v e b r e a kF r a m i n g e r r o rS e n d t R S - 2 3 2 b u f f e rI n p u t f r o m R S - 2 3 2C h e c k s e r i a l b u i d l eG e t . .I n p u tG e t . . t a p e / s e r i a l / R S - 2 3 2O u t p u t . .S e i n p u t d e v i c eS e t o u t p u t d e v i c eC l o s e f i l eF i n d f i l eS e f i l e v a l u e sA b o r t a l f i l e sR e s t o r e d e f a u l t I / O p e n f i l eO p e n R S - 2 3 2L o a d p r o g r a m' s e a r c h i n g '

1 5

Page 166: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 166/206

A d d r e s s( H e x )

F 5 C 1F 5 D 2F 5 D DF 6 8 FF 6 9 BF 6 B CF 6 D DF 6 E 4F 6 E DF 6 F BF 7 2 CF 7 6 AF 7 D 0F 7 D 7F 8 1 7F 8 2 EF 8 3 8F 8 4 1F 8 6 4F 8 D 0F 8 E 2F 9 2 CF A 6 0F B 8 EF B C 8F B C DF C 5 7F C 9 3F C B 8F C C AF C D 1F C D BF C E 2F D 1 5F D 1 AF D 3 0F D 5 0F D 9 BF D A 3F D D DF D F 9F E F E 0 7F E 1 8F E 1 CF E 2 1F E 2 5F E 2 7

A d d r e s s( D e c i m a l )

6 2 9 1 36 2 9 3 06 2 9 4 16 3 1 1 96 3 1 3 16 3 1 6 46 3 1 9 76 3 2 0 46 3 2 1 36 3 2 2 76 3 2 7 66 3 3 3 86 3 4 4 06 3 4 4 76 3 5 1 16 3 5 3 46 3 5 4 46 3 5 5 36 3 5 8 86 3 6 9 66 3 7 1 46 3 7 8 86 4 0 9 66 4 3 9 86 4 4 5 66 4 4 6 16 4 5 9 96 4 6 5 96 4 6 9 66 4 7 1 46 4 7 2 16 4 7 3 16 4 7 3 86 4 7 8 96 4 7 9 46 4 8 1 66 4 8 4 86 4 9 2 36 4 9 3 16 4 9 8 96 5 0 1 76 5 0 2 46 5 0 3 16 5 0 4 86 5 0 5 26 5 0 5 76 5 0 6 16 5 0 6 3

F u n c t i o n o R o u t i n e

P r i n t f i l e n a m e' l o a d i n g / v e r i f y i n g 'S a v e p r o g r a mP r i n t ' s a v i n g 'B u m p c l o c kL o P I A k e y r e a d i n gG e t i m eS e t t i m eC h e c k s t o p k e O u t p u t e r r o r m e s s a g e sF i n d a n t a p e h e a d e rW r i t e t a p e h e a d e rG e b u f f e r a d d r e s sS e b u f f e r s t a r t / e n d p o i n t e r s' p r e s s p l a y 1C h e c k t a p e s t a t u s' p r e s s r e c o r d 1S t a r t t a p e r e a dS t a r t t a p e w r i t eC h e c k t a p e s t o pS e r e a d t i m i n gR e a d t a p e b i t sS t o r e t a p e c h a r s .R e s e t p o i n t e rW r i t e d a t a t t a p eI R e n t r y p o i n tW r i t e t a p e l e a d e rR e s t o r e n o r m a l I R S e I R v e c t o rK i l l t a p e m o t o rC h e c k r / p o i n t e rB u m p r / p o i n t e rP o w e r r e s e t e n t r yK e r n a l r e s e tK e r n a l m o v eV e c t o r sI n i t i a l i z e s y s t e m c o n s t s .I R v e c t o r sI n i t i a l i z e I / E n a b l e t i m e rS a v e f i l e n a m e d a t aS a v e f i l e d e t a i l sG e s t a t u sF l a g s t a t u sS e s t a t u sS e t t i m e o u tR e a d / s e t t o o m e m o r yR e a d t o o m e m o r y

1 5

Page 167: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 167/206

F E 2 DF E 3 4F E 4 3F E 6 6F E B 6F E B CF F 4 3F F 4 8F F 8 1F F F 6

6 5 0 6 96 5 0 7 66 5 0 9 16 5 1 2 66 5 2 0 66 5 2 1 26 5 3 4 76 5 3 5 26 5 4 0 96 5 5 2 6

S e t t o p o m e m o r yR e a d / s e t b o t t o m o m e m o r yN M e n t r yW a r m s t a r tR e s e t I R e x i tI n t e r r u p t e x i tF a k e I R I R e n t r yJ u m p t a b l eH a r d w a r e v e c t o r s

' B A S I C R O R o u t i n e sA d d r e s s( H e x )A 0 0 0A 0 0 CA 0 5 2A 0 8 0A 0 9 EA 1 9 EA 3 2 8A 3 5 BA 3 8 9A 3 B 8A 3 F BA 4 0 8A 4 3 5A 4 3 7A 4 6 9A 4 7 4A 4 8 0A 4 9 CA 5 3 3A 5 6 0A 5 7 9A 6 1 3A 6 4 2A 6 5 EA 6 8 EA 6 9 CA 7 4 2A 7 E DA 8 1 DA 8 2 CA 8 2 FA 8 3 1A 8 5 7A 8 7 1

A d d r e s s( D e c i m a l )4 0 9 6 04 0 9 7 24 1 0 4 24 1 0 8 84 1 1 1 84 1 3 7 44 1 7 6 84 1 8 1 64 1 8 6 54 1 9 1 24 1 9 7 94 1 9 9 24 2 0 3 74 2 0 3 94 2 0 8 94 2 1 0 04 2 1 1 24 2 1 4 04 2 2 9 14 2 3 3 64 2 3 6 14 2 5 1 54 2 5 6 24 2 5 9 04 2 6 3 84 2 6 5 24 2 8 1 84 2 9 8 94 3 0 3 74 3 0 5 24 3 0 5 54 3 0 5 74 3 0 9 54 3 1 2 1

F u n c t i o n o R o u t i n e

R O c o n t r o l v e c t o r sK e y w o r d E x e c u t i o n v e c t o r sF u n c t i o n v e c t o r sO p e r a t o r v e c t o r sK e y w o r d sE r r o r m e s s a g e sE r r o r m e s s a g e v e c t o r sM i s c e l l a n e o u s m e s s a g e sS c a n s t a c k f o F O R / G O S U BM o v e m e m o r yC h e c k s t a c k d e p t hC h e c k m e m o r y l e n g t h' o u t o m e m o r y 1E r r o rB R E A K' r e a d y 'R e a d y f o B A S I CH a n d l e n e l i n eR e - c h a i n l i n e sR e c e i v e i n p u t l i n eC r u n c h t o k e n sF i n d B A S I C l i n eN E C L B a c k u t e x t p o i n t e rL I S TF O E x e c u t e s t a t e m e n tR E S T O R EB r e a kS T O PE N C O N TR U

1 6

Page 168: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 168/206

A d d r e s s( H e x )

A 8 8 3A 8 A 0A 8 D 2A 8 F 8A 9 0 6A 9 2 8A 9 3 BA 9 4 BA 9 6 BA 9 A 5A A 8 0A A 8 6A A A 0A B 1 EA B 3 BA B 4 DA B 7 BA B A 5A B B FA B F 9A C 0 6A C F CA D 1 EA D 7 8A D 9 EA E A 8A E F 1A E F 7A E F FA F 0 8A F 1 4A F 2 8A F A 7A F E 9A F F 0B 0 1 6B 0 8 1B 0 8 BB 1 1 3B 1 1 DB 1 9 4B 1 A 5B 1 B 2B 1 D 1B 2 4 8B 2 4 DB 3 4 C

A d d r e s s( D e c i m a l )

4 3 1 3 94 3 1 6 84 3 2 1 84 3 2 5 64 3 2 7 04 3 3 0 44 3 3 2 34 3 3 3 94 3 3 7 14 3 4 2 94 3 6 4 84 3 6 5 44 3 6 8 04 3 8 0 64 3 8 3 54 3 8 5 34 3 8 9 94 3 9 4 14 3 9 6 74 4 0 2 54 4 0 3 84 4 2 8 44 4 3 1 84 4 4 0 84 4 4 4 64 4 7 1 24 4 7 8 54 4 7 9 14 4 7 9 94 4 8 0 84 4 8 2 04 4 8 4 04 4 9 6 74 5 0 3 34 5 0 4 04 5 0 7 84 5 1 8 54 5 1 9 54 5 3 3 14 5 3 4 14 5 4 6 04 5 4 7 74 5 4 9 04 5 5 2 14 5 6 4 04 5 6 4 54 5 9 0 0

F u n c t i o n o R o u t i n e

G O S U BG O T OR E T U R ND A T AS c a n f o n e x t s t a t e m e n tI R E O G e f i x e d p o i n t n u m b e rL E P R I N T #C M P R I N TP r i n t s t r i n g f r o m ( y . a )P r i n t f o r m a t c h a r a c t e rB a i n p u t r o u t i n eG E I N P U T #I N P U TP r o m p t i n p u tR E A DI n p u t e r r o r m e s s a g e sN E X TT y p e m a t c h c h e c kE v a l u a t e e x p r e s s i o nC o n s t a n t — p iC a l c u l a t e b r a c k e t s• ) C o m m aS y n t a x e r r o rC h e c k r a n g eS e a r c h f o v a r i a b l eS e t u p F O A N C o m p a r eD I L o c a t e v a r i a b l eC h e c k a l p h a b e t i cC r e a t e v a r i a b l eA r r a y p o i n t e r s u b r o u t i n eV a l u e 3 2 7 6 8F l o a t - f i x e dS e u a r r a y' b a d s u b s c r i p t '' i l l e g a l q u a n t i t y 'C o m p u t e a r r a y s i z e

1 6

Page 169: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 169/206

A d d r e s s( H e x )

B 3 7 DB 3 9 1B 3 9 EB 3 A 6B 3 B 3B 3 E 1B 3 F 4B 4 6 5B 4 7 5B 4 8 7B 4 F 4B 5 2 6B 5 B DB 6 0 6B 6 3 DB 6 7 AB 6 A 3B 6 D BB 6 E CB 7 0 0B 7 2 CB 7 3 7B 7 6 1B 7 7 CB 7 8 2B 7 8 BB 7 9 BB 7 A DB 7 E BB 7 F 7B 8 0 DB 8 2 4B 8 2 DB 8 4 9B 8 5 0B 8 5 3B 8 6 AB 9 4 7B 9 7 EB 9 8 3B 9 E AB A 2 BB A 5 9B A 8 CB A B 7B A D 4B A E 2

A d d r e s s( D e c i m a l )

4 5 9 4 94 5 9 6 94 5 9 8 24 5 9 9 04 6 0 0 34 6 0 4 94 6 0 6 84 6 1 8 14 6 1 9 74 6 2 1 54 6 3 2 44 6 3 7 44 6 5 2 54 6 5 9 84 6 6 5 34 6 7 1 44 6 7 5 54 6 8 1 14 6 8 2 84 6 8 4 84 6 8 9 24 6 9 0 34 6 9 4 54 6 9 7 24 6 9 7 84 6 9 8 74 7 0 0 34 7 0 2 14 7 0 8 34 7 0 9 54 7 1 1 74 7 1 4 04 6 1 2 54 7 1 7 74 7 1 8 44 7 1 8 74 7 2 1 04 7 4 3 14 7 4 8 64 7 4 9 14 7 5 9 44 7 6 5 94 7 7 0 54 7 7 5 64 7 7 9 94 7 8 2 84 7 8 4 2

F u n c t i o n o R o u t i n e

P e r f o r m [ F R E ]F i x - f l o a tP e r f o r m [ P O S ]C h e c k d i r e c tP e r f o r m [ D E F ]C h e c k n s y n t a xP e r f o r m [ F N ]P e r f o r m [ S T R $ ]C a l c u l a t e s t r i n g v e c t o rS e u s t r i n gM a k e r o o m f o r s t r i n gG a r b a g e c o l l e c t i o nC h e c k s a l v a g e a b i l i t yC o l l e c t s t r i n gC o n c a t e n a t eB u i l d s t r i n g t o m e m o r yD i s c a r d u n w a n t e d s t r i n gC l e a n d e s c r i p t o r s t a c kP e r f o r m [ C H R $ ]P e r f o r m [ L E F T S ]P e r f o r m [ R I G H T S ]P e r f o r m [ M I D $ ]P u l l s t r i n g p a r a m e t e r sP e r f o r m [ L E N ]E x i t s t r i n g - m o d eP e r f o r m [ A S C ]I n p u t b y t e p a r a m e t e rP e r f o r m [ V A L ]P a r a m e t e r s f o P O K E / W A I TF l o a t - f i x e dP e r f o r m [ P E E K ]P e r f o r m [ P O K E ]P e r f o r m [ W A I T ]A d 0 . S u b t r a c t f r o mP e r f o r m [ s u b t r a c t ]P e r f o r m [ a d d ]C o m p l e m e n t F A C # 1' o v e r f l o w 'M u l t i p l y b z e r o b y t eP e r f o r m [ L O G ]M u l t i p l yM u l t i p l y - a - b i tM e m o r y t F A C # 2A d j u s t F A C # 1 / # 2U n d e r f l o w / o v e r f l o wM u l t i p l y b y 1 0

1 6

Page 170: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 170/206

A d d r e s s( H e x )B A F 9B A F EB B 1 2B B A 2B B C 7B B F CB C 0 CB C 1 BB C 2 BB C 3 9B C 5 8B C 5 BB C 9 BB C C CB C F 3B D 7 EB D C 2B D C DB D D DB F 1 6B F 3 AB F 7 1B F 7 BB F B 4B F E D

A d d r e s s( D e c i m a l )4 7 8 6 54 7 8 7 04 7 8 9 04 8 0 3 44 8 0 7 14 8 1 2 44 8 1 4 04 8 1 5 54 8 1 7 14 8 1 8 54 8 2 1 64 8 2 1 94 8 2 8 34 8 3 3 24 8 3 7 14 8 5 1 04 8 5 7 84 8 5 8 94 8 6 0 54 8 9 1 84 8 9 5 44 9 0 0 94 9 0 1 94 9 0 7 64 9 1 3 3

F u n c t i o n o R o u t i n e

1 i f l o a t i n g p t D i v i d e b 1 D i v i d eM e m o r y t F A C # 1F A C # 1 t m e m o r yF A C # 2 t o F A C # 1F A C # 1 t o F A C # 2R o u n d F A C # 1G e s i g nS G A B C o m p a r e F A C # 1 t m e m .F l o a t - f i x e di n S t r i n g t o F A C ( V A L )G e A S C I I d i g i tP r i n tP r i n t l i n e n u m b e rF l o a t t A S C I ID e c i m a l c o n s t a n t sT c o n s t a n t sS Q P o w e rN e g a t i v eE X

1 6

Page 171: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 171/206

Page 172: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 172/206

A p p e n d i x 1

T a b l e o S c r e e n C o d e sT h i s i l i s t o t h e c h a r a c t e r s t h a t w i l l b d i s p l a y e d w h e n t h n u m b e r i t h v a l u e c o l u m n i p l a c e d i s c r e e n m e m o r y w h i l e i n o r m a l t e x t m o d e .

S e a n S e r e f e r t t h t w d i f f e r e n t c h a r a c t e r s e t s a v a i l a b l e . T h s a m e v a l u e i m e m o r y m a d i s p l a y d i f f e r e n t c h a r a c t e r , d e p e n d i n g o w h i c h c h a r a c t e r s e i b e i n g d i s p l a y e d . T s w i t c h b e t w e e n t h t w c h a r a c t e r s e t s y o u c a n e i t h e r p r e s s t h s h i f t a n C o m m o d o r e k e y st o g e t h e r , o y o c a c h a n g e t h v a l u e o t h c h a r a c t e r m e m o r y p o i n t e rb y t e a $ D 0 1 8 ( 5 3 2 7 2 ) b e t w e e n i t n o r m a l v a l u e $ 1 ( 2 1 ) u p p e r c a s ea n g r a p h i c s ( s e t 1 ) a n $ 1 ( 2 3 ) u p p e r a n l o w e r c a s e ( s e t 2 )

N O T E : w h e r e o n l y o n s y m b o l a p p e a r s f o p a r t i c u l a r v a l u e , t h a ts y m b o l i d i s p l a y e d b b o t h c h a r a c t e r s e t s .

1 6

Page 173: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 173/206

 

 

 

 

 

 

 

 

 

 

 

 

Page 174: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 174/206

A p p e n d i x 1

C u r r e n t K e P r e s s e dL o c a t i o n 1 9 s t o r e s c o d e d v a l u e o t h c u r r e n t k e p r e s s e d . I m o r et h a n o n k e i p r e s s e d t h h i g h e r v a l u e i s t o r e d .

V a l u e

1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3

K e D E

R E T U R NC R S R - >

F F F F

C R S R

N O N E

V a l u e3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6

K e

C L E A RN O N E

N O N ES P A C EN O N EN O N E

1 6

Page 175: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 175/206

Page 176: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 176/206

A p p e n d i x 1 3R E

1 0 R E * * * * • * - * * * * * * * A L P A # # # * # * # * # # #1 1 R E P . R O S H A M , 1 2 / 4 / 1 9 8 4 *1 1 R E A N D D A N N Y D A V I S *1 1 R E * 1 1 R E A S S E M B L Y L A N G U A G E *1 1 R E P R O G R A M M I N G A I D1 1 R E 1 2 R E * * X X - X - X - J H H H H H H t » X X < * » *1 5 G O T O 9 0 0 01 0 0 0 R E 1 0 1 0 R E M P R O C E S S L I N E1 0 2 0 R E M1 0 3 0 f = 0 : f m = 0 : e r = 01 0 4 0 f o r j = p 1 t o p 21 0 5 0 I C * ( J , 1 > = " A T H E N 1 1 1 01 0 5 3 C O * = C * ( J , 1 ) : I F C * ( J > 2 ) O M " T H E N C O » « C O » * C » < J 2 1 0 5 4 I F C « ( J , 3 ) < > " " T H E N C O * = C O * + C * < J , 3 1 0 5 5 G O S U B 3 0 0 0 01 0 5 6 I E R > 0 T H E N 1 1 1 01 0 6 1 I J < 1 0 0 T H E N P R I N T " " 1 0 6 2 I J < 1 0 T H E N P R I N T " " 1 0 6 9 p r i n t J ; - : - 1 0 7 0 I L E F T « ( C » ( J , 2 ) , l ) = n L " T H E N 1 0 7 51 0 7 1 G O T O 1 0 8 01 0 7 5 P R I N T C * ( J , 1 ) + " M + C * ( J , 2 ) + C * ( J , 3 ) < * M j : G O T O 1 0 9 01 0 8 0 P R I N T C * ( J , 1 ) ; M M ; C * ( J , 2 ) | " w ; C * ( J , 3 ) j1 0 9 0 F = F + 11 0 9 5 P R I N T S P C ( 8 ) | D I *1 1 0 0 I F = 2 2 T H E N G O T O 1 1 2 01 1 1 0 N E X T1 1 2 0 R E T U R N2 0 0 0 R E M2 0 1 0 R E M M A I N R O U T I N E2 0 2 0 A * = M " : I N P U T " C O M M A N D O L I N E ( t t t t t t ) A 2 0 4 0 I L E F T * ( A * , 1 ) > " 9 " G O T O 3 0 0 02 0 4 2 P R I N T " a * ; : F O R I = 1 T O 3 6 : P R I N T " • ; : N E X T I : P R I N T C H R * ( 1 3 ) ;

" 2 0 4 5 I L E F T * ( A * , 1 ) < " 0 M G O T O 2 0 2 02 0 5 0 K * = O M : F O R K = 1 T O2 0 6 0 I M I D * < A * , K , 1 ) = " G O T O 2 0 9 02 0 6 5 I M I D 9 ( A S , K , l ) s « » T H E N A » = " ^ ^ ^ ^ ^ ^ . ^ ^ . ^ " U

= V A L ( K * ) I N = J : G O T O 2 1 7 02 0 6 7 I M I D * ( A * , K , 1 ) > M 9 " O R M I D * ( A * , K , 1 ) < " 0 " T H E N P R I N T 1 1 I N V A L I D

L I N E » - : G O T O 2 0 2 02 0 7 0 K $ = K * + M I D * ( A * , K , 1 )2 0 8 0 N E X T

1 6

Page 177: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 177/206

2 0 9 0 I K = O V A L ( K * ) = Z E O V A L ( K * ) > L N 6 0 T 0 2 0 2 02 1 0 0 J = V A L ( K * ) : N = J2 1 1 0 A * = R I G H T * ( A « , ( L E N ( A * ) - K ) )2 1 2 0 L E K * = M H2 1 3 0 F O R K = 1 T O L E N ( A « )2 1 4 0 I M I D * ( A * , K , 1 ) < > " T H E N K * = K * * M I D * ( A * , K , 1 >2 1 5 0 N E X T

2 1 6 0 A * = K *2 1 6 2 I L E F T * ( A « > 1 ) = M L " T H E N G O T O 2 0 2 02 1 7 0 F O R I = i T S T E P2 1 8 0 K = I N T ( I / 2 + l )2 1 9 0 C * ( J , K ) = M I D * ( A « , I , 2 )2 1 9 5 C * < J , K ) = L E F T * ( C * ( J , K ) + a " , 2 >2 2 0 0 N E X T I2 2 1 0 I C * ( N , O E ) = M ^ " T H E N 2 2 5 02 2 2 0 I N < T P T H E N T P = N2 2 3 0 I N > B P T H E N B P = N2 2 4 0 G O T O 2 3 2 02 2 5 0 I F N < > B P G O T O 2 2 8 02 2 6 0 I B P = 1 O C * ( B P V 1 ) < > " " G O T O 2 3 2 02 2 7 0 B P = B P - O E : G O T O 2 2 6 02 2 8 0 I N O T P G O T O 2 3 2 02 2 9 0 I C $ ( T P , 0 E ) O M " T H E N G O T O 2 3 2 02 3 0 0 I T P O B P A N T P O L N T H E N T P = T P + O E : G O T O 2 2 9 02 3 1 0 T P = O E2 3 2 0 P P = N2 3 3 0 I N < T P T H E N P P = T P : G O T O 2 3 8 02 3 4 0 N U = Z E2 3 5 0 I P P = T P O N U = 0 T H E N G O T O 2 3 8 02 3 6 0 I C * ( P P , O E K > n T H E N N U = N U + O E2 3 7 0 P P = P P - O E : G O T O 2 3 5 02 3 8 0 P 1 = P P I P 2 = P P2 3 8 5 I C * ( N , 1 ) = - T H E N 2 0 2 02 3 9 0 G O S U B 1 0 0 02 3 9 1 I E R = 1 T H E N P R I N T " I L L E G A L O P - C O D E "2 3 9 2 I E R = 2 T H E N P R I N T " I N V A L I D O P - C O D E M2 3 9 3 I E R = 3 T H E N P R I N T " I N V A L I D L E N G T H O P E R A N D "2 3 9 4 I E R = 4 T H E N P R I N T " I L L E G A L O P E R A N D "2 4 0 0 G O T O 2 0 2 02 5 9 0 R E M J H H H H H H H H H H t W A T C H / N O W A T C H2 6 0 0 I N P U T " W A T C H W H A T A D D R E S S M I Q Z » : X Q » « R I G H T « ( ( " 0 0 0 0

2 6 1 0 G O S U B 1 5 0 0 0 : I F E R = 1 T H E N 2 6 0 02 6 2 0 W Q = X Q : W Q » = X Q * : G O T O 2 0 2 02 6 3 0 I W A O i T H E N 2 6 4 02 6 3 5 P R I N T - A D D R E S S " ; W Q * ; B = ^ < B E F O R E > » " | : E T = P E E K ( W Q ) :

G O S U B 4 0 0 0 02 6 3 6 P R I N T R I G H T * ( H B * , 2 )2 6 4 0 I P E E K ( R ) = 0 T H E N P R I N T " N P R O G R A M I M E M O R Y " : P R I N T

. ' G O T O 2 6 4 52 6 4 1 S Y 2 6 4 5 I W A O I T H E N 2 6 6 02 6 5 0 P R I N T " A D D R E S S " ; W Q * ; " = < A F T E R * " 5 : E T = P E E K ( W Q )

: G O S U B 4 0 0 0 02 6 5 5 P R I N T R I G H T » ( H B » , 2 )2 6 6 0 G O T O 2 0 2 02 7 0 0 R E M * * * * * * * * * D U M P M E M O R Y2 7 1 0 D C * = d 0 0 0 0 "

1 7

Page 178: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 178/206

2 7 2 0 I N P U T - D U M P F R O M W H A T A D D R E S S • | D M ©2 7 3 0 X Q * = R I G H T * < ( D C * * D M * > , 4 ) : G O S U B 1 5 0 0 0 : I F E R = 1 T H E N 2 7 2 02 7 4 0 D M = X Q2 7 5 0 P R I N T " L D U M P I N G F R O M A D D R E S S » M | X Q «2 7 5 5 G = D M2 7 6 0 F O R M M = G T O ( G + 1 7 6 ) S T E P 8 : F « = t t l t2 7 6 5 E T = M M : G O S U B 4 0 0 0 0 : P R I N T H B » j " " 2 7 7 0 F O M W = 0 T O 7 : M Q ( M W ) = P E E K ( M M + M W )2 7 7 5 A = M Q ( M W ) : I F A < 3 2 O A > 1 2 7 O A > 1 5 ? T H E N F * = F * + C H R * < 3 2 ) :

G O T O 2 7 8 02 7 7 6 F * = F * + C H R * ( A )2 7 8 0 H = I N T ( M Q ( M W ) / 1 6 ) : L = M Q ( M W ) - 1 6 * H2 7 8 5 P R I N T M I D * ( D * , H + 1 , 1 ) + M I D * < D « , L + l , 1 ) ;2 7 8 9 N E X T M W : P R I N T S P C ( 8 ) | F *2 7 9 0 N E X T M 2 7 9 5 G E K * f I F K * = " " T H E N 2 7 9 52 8 0 0 I K » O " M ° T H E N G = M M : G O T O 2 7 6 02 8 1 0 G O T O 2 0 2 03 0 0 0 R E 3 0 0 5 I A $ = M M G O T O 2 0 2 03 0 1 0 R E * * * * * * C O M M A N D S * * * * * *3 0 2 0 K * = L E F T * ( A « , T W )3 0 3 0 I K * = " E N " T H E N 5 0 0 03 0 4 0 I K * = M Q U " T H E N S T O P3 0 4 4 I K « = t N W A M T H E N W A = 1 : G O T O 2 6 0 03 0 4 6 I K ^ - N W T H E N W A = 0 : G O T O 2 0 2 03 0 5 0 I K S ^ ' L I 1 1 T H E N 4 0 0 03 0 6 0 I K * = " L O M T H E N 7 0 0 03 0 7 0 I K * = " M E " T H E N 6 0 0 03 0 8 0 I K » = " N E " T H E N R U N3 0 9 0 I K » = " R U I ) T H E N G O T O 2 6 3 03 1 0 0 I K $ = U S A M T H E N 8 0 0 03 1 1 0 I K * = » C H " T H E N 9 1 5 03 1 1 5 I K * = " D U t > T H E N 2 7 0 03 1 1 9 P R I N T " I N V A L I D C O M M A N D3 1 2 0 G O T O 2 0 0 04 0 0 0 R E M4 0 1 0 R E * * * * L I S T R O U N T I N E * * * * * *4 0 2 0 P 1 = T P : P 2 = B P4 0 2 5 I F L E N ( A 9 ) < 5 T H E N 4 0 4 04 0 3 0 N 1 = A S C ( M I D « ( A * , 6 , 1 ) )4 0 4 0 I L E N ( A * ) > F R A N N l > 4 7 A N N K 5 8 T H E N P 1 = V A L ( M I D « ( A » , 5 , 3 )

4 0 4 5 P R I N T4 0 5 0 G O S U B 1 0 0 04 0 6 0 G O T O 2 0 2 05 0 0 0 R E 5 0 1 0 R E M D U N P R O U T I N E * * * * * * *5 0 2 0 G = R : P R I N T " E N T E R I N G A A D D R E S S • " | : E T = G : G O S U B 4 0 0 0 0 :

P R I N T H B *5 0 4 0 F O R J = T P T O B P5 0 5 0 I C $ ( J , O E ) = " " T H E N G O T O 5 4 7 05 0 6 0 I M I D * ( C » ( J , T W ) , l , l ) < > n L - T H E N 5 3 8 05 0 7 0 p o k e g , z e : p o k e g + o e , z e : p o k e g + t w , z e : p o k e g + t r , z e5 0 8 0 j 1 = v / a l ( m i d * ( c * ( j , t w ) , t w , 1 ) + c * ( j , t r )5 0 9 0 i f l e f t * ( c * ( j , 2 ) , 1 ) = m l " t h e n p r i n t j ; ■ " ; c » ( j , 1 ) ♦ • " +

» ( J , 2 ) + C » ( J , 3 ) : G 0 T 0 5 1 0 05 0 9 5 p r i n t j ; " - ; c » ( J , i ) ; - - ; c » ( J , 2 )5 1 0 0 I J K Z E O J 1 > L N T H E N 5 4 6 0

1 7

Page 179: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 179/206

5 1 1 0 J J f » * C » ( J , 1 : G O S U B 2 0 * > 0 0 : C J « J J5 1 2 0 I F L E F T * ( C * ( J , 2 ) , 1 ) < > W L " T H E N 5 1 2 55 1 2 1 P R I N T J l j " " | C » ( J 1 , 1 ) * " " + C » ( J 1 , 2 ) + C » ( J 1 , 3 ) : Q 0 T 0 5 1 35 1 2 5 P R i N T J i j - r t ; c * ( J i , i ) ; - " ; c * ( J i , 2 ) ; - " } C * < j i , 3 )5 1 3 0 I A B S ( C J ) < > O T H E N G O T O 5 4 6 05 1 4 0 D D = ( J l < J ) - ( J l > J )5 1 5 0 J A = G : D P = Z E5 1 6 0 I J 1 = J T H E N G O T O 5 2 7 05 1 7 0 C L = J + D D5 1 8 0 N 1 = Z E : I F C S ( C L , O E ) = M " T H E N G O T O 5 2 2 05 1 9 0 I L E F T * ( C $ ( C L , 2 ) , 1 > = " L " G O T O 5 2 0 05 1 9 2 N 1 = O E - ( C * ( C L , T W > < > " ^ M ) - < C » < C L , T R ) < > M « ) I G O T O 5 2 2 05 2 0 0 J J * = C * ( C L , 1 ) : G O S U B 2 0 0 0 0 : T J = J J5 2 1 0 N l = < < T J = O E ) * T R + < T J - O E ) * T W > * - 15 2 2 0 I C L = J 1 A N D D > 0 G O T O 5 2 7 05 2 3 0 D P = D P + N 15 2 4 0 I C L = J 1 T H E N G O T O 5 2 7 05 2 5 0 C L = C L + D D5 2 6 0 G O T O 5 1 8 05 2 7 0 i c j = 1 t h e n j a = j a + d d * d p + ( d d > 0 ) * - 3 : g o t o 5 3 1 05 2 8 0 i d d > z e t h e n d p = d p + 25 2 9 0 i d p > 1 2 6 a n d d d < z e t h e n g o t o 5 4 6 05 3 0 0 i d p m 2 9 a n d d d > z e t h e n g o t o 5 4 6 05 3 1 0 x q * = m i d $ ( c * ( j , 1 ) , 1 , 2 ) : g o s u b 1 0 0 0 0 : v = x q5 3 2 0 p o k e g , v : g = g + o e5 3 3 0 i c j = o e t h e n p o k e g , j a - i n t ( j a / q k ) * q k : g = g + o e : p o k e g , i n t ( j a / q k

) : g = g + o e : g o t o 5 3 6 05 3 4 0 i d d < z e t h e n d p = 2 5 6 - d p5 3 4 5 i d p = 0 t h e n d p = 2 5 65 3 5 0 d p = d p - t w : p o k e g , d p : g = g * 15 3 6 0 p r i n t m o k m5 3 7 0 G O T O 5 4 7 05 3 8 0 F O R I = 1 T O S T E P5 3 9 0 K = I N T < I / T W + O E >5 4 0 0 X Q $ = M I D $ ( C * ( J , K ) , 1 , 2 ) : G O S U B 1 0 0 0 0 I V = X Q5 4 1 0 I E R = 1 O R V = - l T H E N G O T O 5 4 4 05 4 2 0 P O K E G , V5 4 3 0 G = G + O E5 4 4 0 N E X T5 4 5 0 G O T O 5 4 7 05 4 6 0 P R I N T " * * E R R O R - B R A N C H O U O R A N G E * * 5 4 7 0 N E X T J5 4 8 0 G O T O 2 0 2 06 0 0 0 C O * = " M6 0 1 0 R E M * * * * * * * * * D I S E M B L E6 0 2 0 D C $ = " 0 0 0 0 "6 0 3 0 I N P U T " D I S A S S E M B L E F R O M W H A T A D D R E S S " J D M *6 0 3 5 X Q * = R I G H T * ( ( D C * + D M * ) , 4 ) : G O S U B 1 5 0 0 0 : I F E R = 1 T H E N 6 0 3 06 0 3 8 D M = X QO 0 3 9 P R I N T " L D I S A S S E M B L I N G F R O M A D D R E S S « N | X Q «6 0 4 0 G = D M : F = 0 : F M = 06 0 5 0 F = F + l : C O * = M l t6 0 6 0 F O R I = 1 T O 36 0 7 0 V ( I ) « - P E E K ( G ) : H « * I N T ( V M I ) / 1 6 ) : L - V ( I ) - 1 6 t H6 0 8 0 R * ( I ) = M I D * ( D * , m - l , 1 + M I D * ( D » , L + 1 , 1 6 0 9 0 G = G + l : N E X T I6 1 0 0 F O R I = 1 T O P C ( V ( 1 ) + 1 ) : C O * = C O * + R * ( I ) : N E X T I6 1 1 0 G O S U B 3 0 0 0 0

1 7

Page 180: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 180/206

6 1 1 5 e t = d m : g o s u b 4 0 0 0 0 : p r i n t h b * i n : - 6 1 1 7 F O R I « 1 T O P C < Y >6 1 2 0 P R I N T R « ( I H t t M 6 1 3 0 N E X T I6 1 3 4 W W = 1 5 - ( L E N ( C 0 » ) + P C ( Y ) ) : P R I N T S P C ( W W ) ; D I «6 1 3 8 G = ( G - 3 ) + P C ( Y ) : D M = G6 1 4 0 I F O 2 2 T H E N G O T O 6 0 5 06 1 5 0 G E K » : i F K » = w " T H E N 6 1 5 06 1 6 0 I K * O " M " T H E N F = Z E : G O T O 6 0 5 06 2 0 0 G O T O 2 0 2 07 0 0 0 R E M7 0 1 0 R E M * * * * * * * * L O A D7 0 2 0 P R I N T " L 7 0 3 0 P R I N T " L O A D P R O G R A M "7 0 3 5 I N P U T " I N P U T F I L E N A M E " i N *7 0 3 7 I N » = " " T H E N 7 0 3 57 0 4 0 O P E N 1 , 1 , 0 , N *7 0 4 1 T = 0 : F F = 07 0 4 5 F O R I = 1 T O 2 0 0 : C D * ( I ) = H " : J * ( I ) = M M7 0 4 6 T = T + 17 0 4 7 G E T K 1 , I * ( I )7 0 4 8 I I * ( I ) = C H R * ( 1 3 ) T H E N F F = 0 : G O T O 7 0 5 87 0 4 9 I I » C ! ) = " , " T H E N F F = 1 : G O T O 7 0 4 77 0 5 0 I F F » 1 G O T O 7 0 5 77 0 5 1 I I * ( I ) > C H R * ( 4 7 ) A N I » ( I ) < C H R * < 5 8 ) A N D F F - 0 T H E N J » ( I ) = J » ( I

) + I * ( D : G O T O 7 0 4 77 0 5 4 I I * < I ) = " * " T H E N 7 0 5 97 0 5 5 I I * ( I ) = M T H E N 7 0 4 77 0 5 7 C D * ( I ) = C D * ( I > ♦ I » ( I ) : G O T O 7 0 4 77 0 5 8 N E X T I7 0 5 9 C L O S E 17 0 6 0 F O 1 = T T - 7 0 6 1 X ( I ) = V A L ( J » ( I ) ) : Y = l7 0 6 2 F O J = 1 T O 37 0 6 3 C S < X ( I ) , J ) = M I D * ( C D $ ( I ) , Y , 2 )7 0 6 6 C * ( X ( I ) , J ) = L E F T » ( C * ( X ( I ) , J ) + " w , 2 )7 0 6 7 Y = Y + 27 0 6 8 N E X T J C N E X T7 0 6 9 F O 1 = T 2 0 7 0 7 0 T P = I7 0 8 0 I C * ( I , 1 ) < > - ^ " T H E N 7 1 0 07 0 9 0 N E X T I7 1 0 0 F O R I - 2 0 0 T O 1 S T E P - 7 1 1 0 B P = I7 1 2 0 I C * ( I , l ) O a " T H E N 7 1 4 07 1 3 0 N E X T I7 1 4 0 G O T O 2 0 2 08 0 0 0 R E M8 0 1 0 R E M - J H H H H H H H H e S A V / E8 0 2 0 I N P U T " E N T E R N A M E " ; N *8 0 3 0 I N * = " M T H E N 8 0 2 08 0 3 5 R * = " , M8 0 4 0 O P E N 1 , 1 , 1 , N $8 0 5 0 F O R I = 1 T O 2 0 08 0 5 2 I C » ( I , 1 ) = " " T H E N 8 0 8 08 0 5 5 C O * = C * ( 1 , 1 ) + C * ( 1 , 2 ) + C * ( 1 , 3 )8 0 6 0 P R I N T t t l , I ; R * C O *8 0 8 0 N E X T8 0 9 0 P R I N T * » 1 , " * W : C L O S E 1

1 7

Page 181: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 181/206

8 1 0 0 G O T O 2 0 2 09 0 0 0 R E M9 0 1 0 R E M I N I T I A L I S A T I O N9 0 2 0 Z E - 0 : O E = 1 : T W = O E + O E : T R = O E + T W : F R = T W + T W : Q K = 2 5 6 : M R = 2 0 2 0 : L N = 2 0 09 0 3 0 D I A * ( 1 5 ) , J * < 2 0 0 > , X < 2 0 0 >9 0 4 0 t p = l n : b p = o e : r e m l i n e , b u f f e r9 0 5 0 d i c * ( l n , t r > , i * ( 1 2 0 0 >9 0 6 0 P R I N T " ^ t i ^ . ^ ^ ^ ^ . ^ ^ ^ . ^ . ^ ^ ^ . I N I T I A L I S I

N G 9 0 7 0 F O R I = O E T L 9 0 8 0 F O R J = O E T O T R9 0 9 0 C » ( I , J ) = M9 1 0 0 N E X T J9 1 2 0 N E X T9 1 2 5 D I P C ( 2 5 6 ) , D S * < 2 5 6 > , R * ( 7 ) , C D * < 2 0 0 ) , M Q < 1 7 6 )9 1 2 6 F O R A = 1 T O 2 5 6 : R E A D P C ( A ) , D S * ( A ) : N E X T A9 1 3 0 D * = M 0 i 2 3 4 5 6 7 8 9 A B C D E F "9 1 5 0 P R I N T " L 9 1 6 0 I N P U T " L O C A T E P R O G R A M A A D D R E S S " | X Q * : X Q » =

L E F T * ( X Q * + " 0 0 0 0 " , 4 )9 1 7 0 G O S U B 1 5 0 0 0 : I F E R = 1 O R X Q = 0 T H E N 9 1 6 09 1 7 5 R = X Q : P O K E R , 09 1 8 0 P R I N T " L 9 1 8 5 E T = R : G O S U B 4 0 0 0 09 1 9 0 P R I N T B P R O G R A M T B L O C A T E D A A D D R E S S « " J H B »9 1 9 1 G O T O 2 0 2 09 1 9 8 R E A L S P A C E S I D A T A S T A T E M E N T S M U S T B T Y P E D I 9 1 9 9 D A T A 1 , B R K , 2 , " O R A ( , X ) " , 1 , ? ? ? , 1 , ? ? ? , 1 , ? ? ? , 2 , O R A •

2 , A S L * , 1 , ? ? ?9 2 0 0 D A T A l , P H P , 2 , O R A # * , i , A S L A , 1 , ? ? ? , 1 , ? ? ? , 3 , O R A 9 , 3 , A S L * , 1 , ?

? 9 2 0 1 D A T A 2 , " B P L9 2 0 2 D A T A 2 , B O R A A ( ) , Y " , 1 , ? ? ? , 1 , ? ? ? , 1 , ? ? ? , 2 , " O R A

, X " , 2 , M A S L , X 9 2 0 3 D A T A l , ? ? ? , 1 , C L C , 3 , " O R C ^ ^ , Y " , 1 , ? ? ? , 1 , ? ? ? , 1 , ? ?

? , 3 , H 0 R A A * A ^ , X 9 2 0 4 D A T A 3 , B A S L A A X 1 ? ? ? , 3 J S R , 2 , " A N D (

, X ) W , 1 , ? ? ? , 1 , ? ? ? , 2 , I I B I T • 9 2 0 5 D A T A 2 , A N D * , 2 , R 0 L * 1 ? ? ? , 1 P L P , 2 A N t » * , l , R O L A , 1 , ? ? ? , 3 , B

B I * 9 2 0 6 D A T A 3 , A N D » , 3 , R 0 L * 1 ? ? ? , 2 B M » , 2 , " A N D ( , * ) , Y "9 2 0 7 D A T A 1 , ? ? ? , 1 , ? ? ? , 1 , ? ? ? , 2 , M A N D , X 9 2 0 8 D A T A 2 , " R O L X 1 ? ? ? , 1 S E C , 3 " A N D ^ ^

, Y % 1 , ? ? ? , 1 , ? ? ? , 1 , ? ? ?9 2 0 9 D A T A 3 , " A N D A . X ' ^ / R O L A A , X % 1 ,

? ? ? , 1 , R T I , 2 , " E O R ( , X ) M , 1 , ? ? ?9 2 1 0 D A T A l , ? ? ? , 1 , ? ? ? , 2 , E O R » , 2 , L S R * , 1 , ? ? ? , 1 , P H A , 2 , E O R * * , i , L S R

A , l , ? ? ?9 2 1 1 D A T A 3 , J M P , 3 , E O R * , 3 , L S R * , 1 , ? ? ? , 2 , " B V C9 2 1 2 D A T A 2 , M E 0 R ( ^ ) , Y " , 1 , ? ? ?9 2 1 3 D A T A l , ? ? ? , 1 , ? ? ? , 2 , W E O R * , X " , 2 , M L S R A , X M , 1 ,

? ? ? , l , C L I , 3 , " E 0 R A » , Y 9 2 1 4 D A T A 1 , ? ? ? , 1 , ? ? ? , 1 , ? ? ? , 3 , M E O R A , X " , 3 , M L S R

^ ^ , X M , 1 , ? ? ? , 1 , R T S9 2 1 5 D A A 2 " A D C . . < X 1 ? ? ? , 1 ? ? ? , 1 ? ? ? , 2 A D * , 2 , R 0 R

* , 1 , ? ? ? , 1 , P L A9 3 1 3 D A T A 2 , A D C t t * , l , R O R A , 1 , ? ? ? , 3 , J M P ( , 3 , A D C $ , 3 , R 0 R * , 1 , ? ? ?9 3 1 4 D A T A 2 , B V S , 2 , " A D C ( A ) , Y "9 3 1 5 D A T A 1 , ? ? ? , 1 , ? ? ? , 1 , ? ? ? , 2 , " A D C ^ , X " , 2 f - R O R

, X " , 1 , ? ? ? , 1 , M S E I "

1 7

Page 182: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 182/206

9 3 1 6 D A T A 3 , " A D C ^ ^ Y 1 ? ? ? , 1 ? ? ? , 1 ? ? ? , 3 A D - > < ■ > - > - , X M , 3 , M R O R ^ ^ , X

9 3 1 7 D A T A 1 , ? ? ? , 1 , ? ? ? , 2 , " S T A ( , X ) " , 1 , ? ? ? , 1 , ? ? ? , 2 , S T Y » 2 , S T A » , 2 , " S T X »

9 3 1 8 D A T A 1 , ? ? ? , 1 , D E Y , 1 , ? ? ? , 1 , T X A , 1 , ? ? ? , 3 , S T Y * , 3 , S T A » , 3 , S T X » 1 , ? ? ?

9 3 1 9 D A T A 2 , B C C , 2 , - S T A ( , X ) M9 3 2 0 D A T A 1 , ? ? ? , 1 , ? ? ? , 2 , " S T Y ^ , X " , 2 , " S T A - . . X "9 3 2 1 D A T A 2 , " S T X , Y " , 1 , ? ? ? , 1 , T Y A , 3 , N S T A A ^ ^ ^

, Y 9 3 2 2 D A T A 1 , T X S , 1 , ? ? ? , 1 , ? ? ? , 3 , " S T A ^ f X w , 1 , ? ? ? , 1 , ?

? ? , 2 , B L D Y t t * B9 3 2 3 D A T A 2 , " L D A ( , X ) " , 2 I L D X « ♦ » , 1 ? ? ? , 2 , L D Y » , 2 , L D A » ,

, L D X * , 1 , ? ? ?9 3 2 4 D A T A l i T A Y , 2 , L D A « » * , 1 T A X , 1 ? ? ? , 3 L D » , 3 , L D A » , 3 , L D X « , 1 ,

? ? 9 3 2 5 D A T A 2 . B C S , 2 , W L D A A ( » A ) , Y " , 1 , ? ? ? , 1 , ? ? ? , 2 , " L D Y

f X H v 2 0 " L D A ^ , X 9 3 2 6 D A T A 2 , M L D X Y 1 ? ? ? , 1 C L V , 3 " L D A ^

, Y " , 1 , T S X , l , ? ? ? , 3 f " L D Y + ^ - . » X "9 3 2 7 D A T A 3 , M L D A A X " 3 " L D X ^ ^ , Y " , l t

? ? ? , 2 , C P Y « * , 2 , " C M P ( , X > "9 3 2 9 D A T A 1 , ? ? ? , 1 , ? ? ? , 2 , C P Y $ , 2 , C M P * , 2 , D E C • , 1 , ? ? ? , 1 f I N Y , 2 , C M P

♦ * * , 1 , D E X9 3 3 1 D A T A l , ? ? ? , 3 , C P Y * , 3 , C M P 9 , 3 , D E C » , 1 , ? ? ? , 2 , " B N E " , 2 , - C M P

< - ) , Y "9 3 3 3 D A T A 1 , ? ? ? , 1 , ? ? ? , 1 , ? ? ? , 2 , I I C M P , X " , 2 , " D E C

, X n , 1 , ? ? ? , 1 , C L D9 3 3 5 D A T A 3 , » C M P A A ^ , Y " , l , ? ? ? , l , ? ? ? , l f ? ? ? , 3 l " C M P

A , X « , 3 , « D E C A $ A A , X 9 3 3 7 D A T A 1 , ? ? ? , 2 , C P X ♦ ♦ • , 2 , I 1 S B C < * , X 1 ? ? ? , 1 ? ? ? , 2 C P

» , 2 , " S B C • 9 3 3 9 D A T A 2 , I N C * 1 ? ? ? , 1 I N X , 2 S B 4 * * , 1 N O P , 1 ? ? ? , 3 C P * , 3 , N S B

» 9 3 4 1 D A T A 3 , I N C » , 1 , ? ? ? , 2 , B E Q , 2 , " S B C ( ) , Y " , 1 , ? ? ? , 1 , ? ? ?

, 1 , ? ? ?9 3 4 3 D A T A 2 , " S B C , X " , 2 , " I N C ^ , X " , 1 , ? ? ? , 1 , S E D , 3 ,

" S B C A , « . . , Y " , 1 , ? ? ? , 1 , ? ? ?9 3 4 5 D A T A 1 , ? ? ? , 3 , I I S B C A A , X » , 3 , " I N C A A « . « .

, X " , 1 , ? ? ?1 0 0 0 0 I F X Q * = I ' " T H E N X Q = - l : E R = l : R E T U R N1 0 0 0 5 A S - A S C ( L E F T » ( X Q » , 1 ) - 4 8 : I F A S > 2 2 T H E N E R « = l : R E T U R N1 0 0 0 6 I A S < 1 0 A N A S > - 1 T H E N G O T O 1 0 0 1 01 0 0 0 7 A S = A S - 7 I I F A S < 1 0 T H E N E R = l : R E T U R N1 0 0 1 0 X Q = A S C ( R I 6 H T * ( X Q * , 1 ) ) - 4 8 : l F X Q > 2 2 T H E N E R = l : R E T U R N1 0 0 1 6 I X Q < 1 0 A N D X Q > - 1 T H E N 6 0 T 0 1 0 0 2 01 0 0 1 7 X Q = X Q - 7 : i F X Q < 1 0 T H E N E R = l : R E T U R N1 0 0 2 0 x q ^ x g h > 1 6 * a s : e r - 0 : r e t u r n1 5 0 0 0 Q Q * = L E F T * ( X Q * , 2 ) : Q W * = R I G H T 9 X Q * , 2 )1 5 0 0 5 X Q $ = Q Q * : G O S U B 1 0 0 0 3 : Q Q = 2 5 6 * X Q1 5 0 0 7 I E R = 1 T H E N R E T U R N1 5 0 1 0 X Q $ = Q W * : Q O S U B 1 0 0 0 51 5 0 2 0 X Q = X Q * Q Q : X Q » = Q Q » + Q W »1 5 0 3 0 R E T U R N2 0 0 0 0 J J ( J J * = W 9 0 I ) ( J J « = " B 0 " ( J J * = " F 0 " ( J J * = « " 3 0 " ( J J » = " D 0 "

< J J * = " 1 0 " )2 0 0 1 0 J J = ( J J - K J J » = B 3 0 l l ) - « ' ( J J 9 « " 7 0 " ) ) - < J J » - " 4 C " ) ( J » « M 6 C " ( J J 9 "

" 2 0 " ) )

1 7

Page 183: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 183/206

2 0 0 2 0 R E T U R N3 0 0 0 0 X Q * = L E F T * ( C O * , 2 ) : I F X Q * * B ^ T H E N D I * = " " : R E T U R N3 0 0 0 1 f l = 0 : s h = 0 : e r = 03 0 0 0 2 6 0 S U B 1 0 0 0 0 1 Y = X Q + i : X Q = 03 0 0 0 3 G O S U B 3 2 0 0 03 0 0 0 4 I E R = 2 A N F M = 1 T H E N 3 0 0 1 13 0 0 0 5 I E R > 0 O R X Q = - 1 T H E N C * ( J , 1 ) = " " : R E T U R N3 0 0 1 0 J J * = X Q * : G O S U B 2 0 0 0 03 0 0 1 1 I P C ( Y ) = 1 T H E N D I * = D S * ( Y ) : R E T U R N3 0 0 1 5 D I * » L E F T * ( D S * ( Y ) , 5 )3 0 0 2 0 I J J O 0 T H E N 3 0 1 4 03 0 0 3 0 I R I G H T * ( D I * , 1 ) = " ( " O R R I G H T * ( D I * , 1 ) = " t t " T H E N D I * = D I * + W * "3 0 0 4 0 I P C ( Y ) = 2 T H E N D I * = D I * + R I G H T * ( C O * , 2 )3 0 0 5 0 I P C ( Y ) = 3 T H E N 3 0 0 9 03 0 0 6 0 I L E N ( D S * ( Y ) ) = 9 T H E N D I * = D I * + R I G H T * ( D S * ( Y ) , 2 )3 0 0 7 0 I L E N ( D S * ( Y ) ) = 1 1 T H E N D I * = D I * + R I G H T * ( D S * ( Y ) , 3 )3 0 0 8 0 R E T U R N3 0 0 9 0 O P * = R I G H T * ( C O * , 2 ) + M I D * ( C 0 * , 3 , 2 )3 0 1 0 0 I L E N ( D S * ( Y ) = T H E N D I $ = D I * + O P *3 0 1 1 0 I L E N ( D S * ( Y ) ) = 1 0 T H E N D I * = D I * + O P * + R I G H T * ( D S * ( Y ) , 1 )3 0 1 2 0 I L E N ( D S * ( Y ) ) - i l T H E N D Z » - D X * * O P » + R I G H T * ( D S * ( Y ) , 2 )3 0 1 3 0 R E T U R N3 0 1 4 0 0 P * = R I G H T * ( C 0 * , 2 ) + M I D * ( C O * , 3 , 2 )3 0 1 5 0 I M I D * ( C 0 * , 3 , l ) = " L " T H E N D I * = D S * ( Y ) + R I G H T * ( C O » , ( L E N ( C O * ) - 2

) ) : S H = 13 0 1 5 7 I J J = 1 A N D F M = 1 T H E N D I * = D I * + O P *3 0 1 7 0 I J J = 1 A N F M = 0 A N S H = 0 A N L E N ( D S * ( Y ) ) = 4 T H E N D I * = D I » + O P

3 0 1 7 5 I J J = 1 A N F M = 0 A N S H = 0 A N L E N ( D S * ( Y ) ) = 5 T H E N D I « « D S * ( Y )♦ O P * + " ) M3 0 1 8 0 I J J O - 1 O F M O 1 T H E N R E T U R N3 0 1 9 0 X Q * = R I G H T * ( C 0 * , 2 ) : G O S U B 1 0 0 0 0 : Z Z = ( G - 3 ) + P C ( Y )3 0 2 0 0 I X Q > 1 2 7 T H E N X Q = - 1 * ( 2 5 6 - X Q )3 0 2 1 0 E T = Z Z + X Q : G O S U B 4 0 0 0 03 0 2 2 0 D I * = D I * + H B * : R E T U R N3 2 0 0 0 I E R = 1 G O T O 3 2 0 9 03 2 0 1 0 I D S * ( Y ) " ? ? ? • ' T H E N E R = 2 : G O T O 3 2 0 9 03 2 0 2 0 I L E N ( C 0 * ) O P C ( Y ) * 2 A N D M I D * ( C O * , 3 1 < > " L " T H E N E R = 3 : G 0 T 0 3

2 0 9 03 2 0 3 0 F O R F I = 2 T L E N ( C O * )3 2 0 4 0 I M I D * ( C 0 * , 3 , l ) « M L " T H E N 3 2 0 8 03 2 0 5 0 I M I D * ( C O * , F I , 1 X C H R * ( 4 8 ) T H E N E R = 43 2 0 6 0 I M I D * ( C O * , F I , 1 > C H R * ( 5 7 ) A N D M I D * ( C O * , F I X C H R * ( 6 5 )

T H E N E R = 43 2 0 7 0 I M I D * ( C O * , F I , 1 ) > C H R * ( 7 0 ) T H E N E R = 43 2 0 8 0 N E X T F I3 2 0 9 0 R E T U R N4 0 0 0 0 H B * = " B : I F E T > 6 5 5 3 5 T H E N E T = E T - 6 5 5 3 6 : G O T O 4 0 0 0 04 0 0 0 3 F O R R R = 3 T O 0 S T E P - 14 0 0 0 5 R T = I N T ( E T / ( 1 6 " R R ) )4 0 0 1 0 E T = E T - R T * 1 6 A R R : R T = ( R T + 4 8 ) - 7 * ( R T > 9 )4 0 0 1 5 H B * = H B * + C H R * ( R T ) : N E X T R R4 0 0 2 0 R E T U R N6 0 0 0 0 R E M * # * * * * * * * * C H E X S U M6 0 0 1 0 R E W A R N I N G P R O O F R E A D T H I S S E C T I O N6 0 0 2 0 R E C A R E F U L L Y6 2 0 0 0 T = P E E K ( 6 2 ) * 2 5 6 + P E E K ( 6 1 ) + i6 2 0 1 0 I N P U T M T O P R I N T E R ( O Q 6 2 0 1 1 I Q * O M Y " T H E N 6 2 0 2 0

1 7

Page 184: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 184/206

6 2 0 1 5 C O S E 4 , 4 1 0 P E N 4 , 4 : C M D 4 : P R I N T C H R * < 1 ) I C H R * ( 1 2 9 )6 2 0 2 0 P R I N T C H R * ( 1 4 7 ) i " C H E C K S U : - « : L I N K = P E E K ( 4 4 ) * 2 9 6 + P E E K ( 4

3 ) : E = 6 2 0 0 06 2 1 0 0 R E M * * * * M A I N L O O P6 2 1 2 0 T = L I N K6 2 1 3 0 L I N K = P E E K < T + 1 ) * 2 3 6 + P E E K < T >6 2 1 3 5 L N = P E E K < T + 3 ) * 2 9 6 + P E E K ( T + 2 >6 2 1 3 6 I L N > E T H E N P R I N T : P R I N T " T O T A L = " ; C H : C L 0 S E 4 , 4 : E N D6 2 1 3 7 S * = S T R * ( L N ) : L « L E N ( S » ) - l : S * = M I D « ( S * , 2 , L >6 2 1 3 8 P R I N T S P C ( 6 - L ) | S * |6 2 1 4 0 c s = 0 : n = 0 : c = 06 2 1 5 0 F O R P = T + 4 T L I N K - 2 : P K = P E E K ( P )6 2 1 6 0 I P K = 1 4 3 T H E N P = L I N K - 2 : G O T O 6 2 1 9 06 2 1 6 5 I P K = 3 4 T H E N C = ( C = 0 )6 2 1 7 0 I C = A N P K = 3 2 T H E N 6 2 1 9 06 2 1 8 0 I P K = 1 3 7 T H E N N = N + 1 : C S = C S + ( 2 0 3 O R N ) : P K = 1 6 46 2 1 8 5 N = N f l : C S = C S + ( P K O R N )6 2 1 9 0 N E X T P : C H = C H + C S : P R I N T " = - i R I 6 H T « ( S T R » ( C S ) , L E N ( S T R » ( C S ) ) - l ) :

G O T O 6 2 1 2 06 2 9 9 9 R E M

C H E C K S U M O U T P U T( S e e C h a p t e r 4 T G e A L P A R u n n i n g )

0 - 1 0 0 = 0

U £ = 01 1 3 = 01 1 6 = 01 1 8 - 01 2 0 * 01 5 0 - 3 8 7

1 0 0 0 = 01 0 1 0 = 01 0 3 0 - 01 0 3 0 - 1 2 3 11 0 4 0 - 6 3 01 0 9 0 - 1 2 5 91 0 9 3 - 3 4 8 41 0 9 4 - 2 9 6 21 0 3 3 = 4 0 21 0 5 6 = 9 2 11 0 6 1 - 1 0 6 31 0 6 2 - 1 0 0 81 0 6 9 - 9 2 31 0 7 0 - 1 6 9 21 0 7 1 - 9 8 71 0 7 9 = 3 0 7 41 0 8 0 - 2 0 4 71 0 9 0 - 9 4 71 0 9 9 - 6 7 91 1 0 0 - 1 2 7 81 1 1 0 - 2 0 91 1 2 0 - 1 4 3

2 0 0 0 = 0

2 0 1 0 - 02 0 2 0 - 2 4 9 92 0 4 0 - 1 9 9 92 0 4 2 - 3 0 6 62 0 4 9 - 1 9 9 92 0 9 0 - 1 1 2 22 0 6 0 - 1 6 8 22 0 6 9 - 4 1 2 0£ 0 6 7 - 4 8 7 62 0 7 0 - 1 2 2 92 0 8 0 - 2 0 62 0 9 0 - 3 0 6 62 1 0 0 - 1 0 9 82 1 1 0 - 1 9 2 42 1 2 0 - 9 1 02 1 3 0 - 1 0 0 82 1 4 0 - 2 8 9 92 1 9 0 - 2 0 62 1 6 0 = 3 9 82 1 6 2 - 1 7 4 32 1 7 0 - 8 8 92 1 8 0 = 1 0 9 72 1 9 0 - 1 2 2 92 1 9 9 - 1 8 3 72 2 0 0 - 2 0 62 2 1 0 - 1 3 9 72 2 2 0 - 1 1 7 22 2 3 0 - 1 1 4 22 2 4 0 - 9 8 42 2 9 0 - 1 3 4 92 2 6 0 - 2 3 8 82 2 7 0 - 1 9 0 12 2 8 0 - 1 3 6 4

2 2 8 0 - 2 0 7 92 3 0 0 - 3 4 9 12 3 1 0 - 4 9 42 3 2 0 = 4 2 02 3 3 0 - 1 9 4 32 3 4 0 - 9 0 82 3 9 0 - 2 0 3 32 3 6 0 - 2 3 7 92 3 7 0 * 1 9 3 02 3 8 0 - 1 0 9 92 3 8 9 - 1 2 6 02 3 9 0 - 3 4 82 3 9 1 - 2 1 4 12 3 9 2 - 2 1 9 72 3 9 3 - 2 8 1 92 3 9 4 - 2 1 6 22 4 0 0 - 9 8 12 9 9 0 - 02 6 0 0 - 3 8 7 02 6 1 0 - H 2 02 6 2 0 - 1 6 7 ?2 6 3 0 - 1 1 2 12 6 3 9 - 3 8 9 42 6 3 6 - 7 3 02 6 4 0 - 3 8 0 12 6 4 1 - 2 4 12 6 4 9 = 1 1 2 12 6 9 0 - 3 8 1 92 6 9 9 - 7 3 02 6 6 0 - 9 8 12 7 0 0 - 02 7 1 0 - 6 6 02 7 2 0 - 2 3 0 8

1 7

Page 185: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 185/206

2 7 3 0 * 2 9 9 82 7 4 0 - 9 0 42 7 5 0 = 2 3 8 62 7 9 9 - 3 9 72 7 6 0 * 1 9 9 72 7 6 9 - 1 8 1 62 7 7 0 - 2 3 2 02 7 7 9 = 4 4 6 42 7 7 6 - 9 2 42 7 8 0 - 2 6 9 42 7 8 3 = 2 2 0 32 7 8 8 - 9 7 02 7 9 0 - 2 8 92 7 9 9 « 1 2 9 92 8 0 0 - 2 0 3 32 8 1 0 - 9 8 13 0 0 0 - 03 0 0 9 - 1 1 1 83 0 1 0 * 03 0 2 0 - 9 2 63 0 3 0 - 1 0 8 43 0 4 0 - 1 0 1 83 0 4 4 - 1 8 2 73 0 4 6 - 1 8 3 03 0 9 0 - 1 0 8 03 0 6 0 - 1 0 8 13 0 7 0 - 1 0 8 33 0 8 0 - 9 7 83 0 9 0 - 1 4 9 33 1 0 0 - 1 0 8 73 1 1 0 - 1 0 8 13 1 1 9 - 1 0 8 03 1 1 8 - 1 4 3 83 1 2 0 - 5 7 84 0 0 0 - 04 0 1 0 - 04 0 2 0 - 1 0 3 84 0 2 9 - 1 1 8 14 0 3 0 - 1 2 3 14 0 4 0 - 3 6 6 24 0 4 9 - 3 7 24 0 5 0 - 3 4 84 0 6 0 - 9 8 19 0 0 0 - 05 0 1 0 - 09 0 2 0 - 3 8 2 49 0 4 0 - 8 7 69 0 9 0 - 1 7 6 89 0 6 0 - 2 1 3 19 0 7 0 - 3 1 1 89 0 8 0 - 2 9 8 59 0 9 0 - 4 9 4 35 0 9 9 - 2 2 3 29 1 0 0 - 1 6 7 99 1 1 0 - 1 8 3 09 1 2 0 - 1 8 8 89 1 2 1 - 3 9 5 95 1 2 5 - 2 6 5 45 1 3 0 - 1 8 7 1

5 1 4 0 = 1 4 7 45 1 5 0 - 9 6 85 1 6 0 - 1 3 1 35 1 7 0 - 7 1 85 1 8 0 - 2 4 6 85 1 8 0 - 1 8 8 45 1 8 2 - 4 1 5 65 2 0 0 - 1 8 0 05 2 1 0 - 3 2 0 75 2 2 0 - 1 7 8 55 2 3 0 - 7 8 35 2 4 0 - 1 3 8 05 2 5 0 - 7 8 35 2 6 0 - 5 9 25 2 7 0 - 3 6 7 25 2 8 0 - 1 5 5 35 2 8 0 - 2 0 9 95 3 0 0 - 2 1 0 75 3 1 0 - 2 3 3 05 3 2 0 - 1 0 8 05 3 3 0 - 6 3 1 95 3 4 0 - 1 6 6 45 3 4 5 - 1 2 8 33 3 3 0 - 2 0 0 85 3 6 0 - 3 8 45 3 7 0 - 5 8 55 3 8 0 - 8 8 95 3 9 0 - 1 2 8 85 4 0 0 - 2 3 4 85 4 1 0 - 1 8 8 55 4 2 0 - 3 5 55 4 3 0 - 6 4 45 4 4 0 - 2 0 65 4 5 0 - 9 8 59 4 6 0 - 2 9 4 29 4 7 0 - 2 0 99 4 8 0 - 5 8 16 0 0 0 - 4 4 46 0 1 0 - 06 0 2 0 * 6 6 06 0 3 0 - 2 8 2 36 0 3 5 - 2 8 8 86 0 3 8 - 5 0 46 0 3 8 - 2 8 7 56 0 4 0 - 1 2 3 66 0 5 0 - 1 0 7 86 0 6 0 - 6 5 66 0 7 0 - 3 2 5 26 0 8 0 - 2 5 4 26 0 9 0 - 8 1 76 1 0 0 - 2 8 1 26 1 1 0 - 4 0 26 1 1 5 - 1 7 5 66 1 1 7 - 8 3 06 1 2 0 - 6 8 86 1 3 0 - 2 0 66 1 3 4 - 2 7 4 86 1 3 8 - 1 6 5 56 1 4 0 - 1 4 6 4

6 1 5 0 - 1 2 9 36 1 6 0 - 2 0 4 86 2 0 0 - 5 8 17 0 0 0 - 07 0 1 0 - 07 0 2 0 - 3 7 27 0 3 0 - 1 1 5 77 0 3 5 - 1 5 0 87 0 3 7 - 9 2 47 0 4 0 - 5 7 97 0 4 1 - 7 5 67 0 4 9 - 2 1 9 77 0 4 6 * 9 7 77 0 4 7 - 9 6 77 0 4 8 - 2 2 9 17 0 4 8 - 1 8 8 27 0 9 0 - 1 1 3 97 0 9 1 - 9 0 9 97 0 9 4 - 1 1 9 67 0 9 9 - 1 1 9 37 0 9 7 - 2 1 0 47 0 9 8 - 2 0 67 0 9 9 - 2 1 27 0 6 0 - 9 1 97 0 6 1 - 1 3 9 07 0 6 2 - 6 9 97 0 6 3 = 1 7 9 97 0 6 6 - 2 3 1 87 0 6 7 - 9 8 77 0 6 8 = 4 7 97 0 6 9 - 7 6 67 0 7 0 - 4 2 37 0 8 0 - 1 4 4 07 0 9 0 = 2 0 67 1 0 0 = 1 1 6 77 1 1 0 - 4 0 97 1 2 0 - 1 4 4 47 1 3 0 = 2 0 67 1 4 0 = 9 8 18 0 0 0 - 08 0 1 0 - 08 0 2 0 - 1 3 2 18 0 3 0 - 9 1 28 0 3 9 = 4 2 18 0 4 0 - 9 8 08 0 9 0 - 7 6 68 0 9 2 - 1 2 6 48 0 9 9 - 2 0 1 08 0 6 0 - 7 1 68 0 8 0 = 2 0 68 0 8 0 - 6 6 28 1 0 0 - 9 8 19 0 0 0 - 09 0 1 0 - 09 0 2 0 - 9 8 8 68 0 3 0 - 1 3 0 69 0 4 0 - 1 1 2 99 0 9 0 - 1 1 9 99 0 6 0 - 2 1 6 4

1 7

Page 186: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 186/206

9 0 7 0 = 8 5 49 0 8 0 = 8 7 39 0 9 0 = - 7 3 39 1 0 0 * 2 0 59 1 2 0 = 2 0 69 1 2 5 - 2 5 6 59 1 2 6 = 2 1 0 49 1 3 0 - 1 4 7 89 1 5 0 = 3 7 29 1 6 0 - 4 5 0 39 1 7 0 - 2 0 3 29 1 7 3 - 8 3 99 1 8 0 = 3 7 29 1 8 5 - 9 1 19 1 9 0 - 3 2 6 39 1 9 1 - 5 8 19 1 9 8 = 09 1 9 9 - 4 0 0 39 2 0 0 - 3 6 2 59 2 0 1 - 5 8 59 2 0 2 - 4 0 5 79 2 0 3 = 4 0 1 49 2 0 4 - 4 3 8 89 2 0 5 - 3 9 5 69 2 0 6 - 2 7 9 29 2 0 7 - 2 0 3 99 2 0 8 = 3 7 2 59 2 0 9 - 4 5 3 99 2 1 0 - 4 1 7 89 2 1 1 - 2 3 9 59 2 1 2 - 1 3 1 59 2 1 3 = 4 7 9 69 2 1 4 - 4 1 4 39 2 1 5 - 4 0 2 59 3 1 3 - 3 3 0 09 3 1 4 - 1 4 0 49 3 1 5 - 3 9 6 79 3 1 6 - 4 3 0 69 3 1 7 - 4 4 5 89 3 1 8 - 4 0 0 89 3 1 9 - 1 4 0 69 3 2 0 - 2 5 5 89 3 2 1 - 2 6 7 19 3 2 2 - 3 7 2 09 3 2 3 - 3 8 5 09 3 2 4 - 3 6 7 49 3 2 5 - 4 1 3 29 3 2 6 - 4 9 6 09 3 2 7 - 4 0 8 19 3 2 9 - 4 2 4 49 3 3 1 - 3 9 4 99 3 3 3 - 3 8 0 39 3 3 5 - 4 3 4 69 3 3 7 = 3 9 6 79 3 3 9 - 3 9 5 19 3 4 1 - 3 3 3 79 3 4 3 = 4 7 5 29 3 4 5 - 2 6 8 2

1 0 0 0 0 - 2 0 3 6

1 0 0 0 3 - 3 0 6 01 0 0 0 6 - 2 1 4 31 0 0 0 7 - 2 1 8 31 0 0 1 0 - 3 0 9 01 0 0 1 6 - 2 1 8 11 0 0 1 7 - 2 2 4 31 0 0 2 0 - 1 6 4 71 5 0 0 0 - 2 1 8 61 5 0 0 5 - 2 0 4 11 5 0 0 7 - 8 3 81 5 0 1 0 - 1 1 0 51 5 0 2 0 - 2 0 0 41 5 0 3 0 - 1 4 3

2 0 0 0 0 - 6 1 8 62 0 0 1 0 - 5 6 1 22 0 0 2 0 - 1 4 33 0 0 0 0 - 2 7 7 13 0 0 0 1 - 1 3 3 63 0 0 0 2 - 1 6 2 43 0 0 0 3 - 4 0 23 0 0 0 4 = 1 5 7 23 0 0 0 5 - 2 5 3 93 0 0 1 0 - 1 0 8 83 0 0 1 1 - 1 9 2 83 0 0 1 5 - 1 1 5 63 0 0 2 0 - 1 1 7 13 0 0 3 0 - 3 4 0 73 0 0 4 0 - 2 3 6 43 0 0 5 0 - 1 1 9 03 0 0 6 0 - 2 9 3 13 0 0 7 0 = 2 9 9 33 0 0 8 0 - 1 4 33 0 0 9 0 - 1 9 3 43 0 1 0 0 - 2 2 6 33 0 1 1 0 - 3 4 0 53 0 1 2 0 - 3 4 0 63 0 1 3 0 - 1 4 33 0 1 4 0 - 1 9 3 43 0 1 5 0 = 4 4 0 63 0 1 5 7 = 2 3 0 53 0 1 7 0 - 4 2 0 73 0 1 7 5 - 4 7 3 03 0 1 8 0 - 1 9 7 93 0 1 9 0 = 2 9 3 23 0 2 0 0 - 2 2 3 83 0 2 1 0 - 1 3 9 23 0 2 2 0 - 1 1 2 13 2 0 0 0 - 1 1 9 73 2 0 1 0 - 2 2 8 93 2 0 2 0 - 4 5 2 73 2 0 3 0 - 1 1 6 23 2 0 4 0 - 1 6 3 53 2 0 5 0 - 2 1 2 33 2 0 6 0 - 3 9 2 93 2 0 7 0 - 2 1 1 83 2 0 6 0 - 2 7 63 2 0 9 0 - 1 4 34 0 0 0 0 - 3 2 3 84 0 0 0 3 - 1 1 5 1

4 0 0 0 5 - 1 5 3 54 0 0 1 0 * 3 4 6 14 0 0 1 5 - 1 5 6 34 0 0 2 0 - 1 4 36 0 0 0 0 - 06 O 0 1 0 - O6 0 0 2 0 - 06 2 0 0 0 - 1 6 4 6

T O T A L - 6 8 1 5 0 8

1 7

Page 187: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 187/206

Page 188: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 188/206

A p p e n d i x 1 S c r e e n C o d e sC h a r a c t e r C h a r a c t e r S c r e e n

e

1

£

S e C o d e

1 1 1 1 1 I 1 1 1 1 2 2 2 2 2 2 2 2 2

2

1 8

Page 189: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 189/206

C h a r a c t e rS e

s p a c e

S

a E

C h a r a c t e rS e

S c r e e nC o d e3 3

3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5

6 6 6 6 6 6 6 6 6 6

1 8

Page 190: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 190/206

C h a r a c t e rS e

E

E

i n

I E

n

E H

s p a c ef t ' ig

i V

C h a r a c t e rS e

s

S c r e e nC o d e7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9

9 9 9 9 1 O 1 O 1 O 1 O 1 O 1 0 1 O 1 0 1 0

1 8

Page 191: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 191/206

C h a r a c t e rS e

c

a

1 V I T

I

E p

C h a r a c t e rS e t 2

S c r e e nC o d e1 O n 1 1 1 1 1 1 1 1 U 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2

C o d e s 1 2 8 - 2 5 5 p r o d u c e r e v e r s e d i m a g e s o c o d e s 0 - 1 2 7

1 8

Page 192: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 192/206

G L O S S A R Y

A S S E M B L E RT h i s i p r o g r a m w h i c h t a k e s p r o g r a m w r i t t e n i A S S E M B L YL A N G U A G E , f o r m w h i c h t h p r o g r a m m e r c a u n d e r s t a n d b u w h i c h i m e a n i n g l e s s t t h m i c r o p r o c e s s o r , a n c o n v e r t s i t M A C H I N E C O D Ew h i c h t h m i c r o p r o c e s s o r c a u n d e r s t a n d b u w h i c h i d i f f i c u l t f o t h p r o g r a m m e r t w o r k w i t h .

A S S E M B L Y C O D ES e A S S E M B L Y L A N G U A G E

A S S E M B L Y L A N G U A G ET h i s i a p r o g r a m w r i t t e n o u i f o r m t h p r o g r a m m e r c a u n d e r s t a n db u w h i c h m e a n s n o t h i n g d i r e c t l y t t h M I C R O P R O C E S S O R u n t i l r u t h r o u g h a A S S E M B L E R . A n l a r g e M A C H I N E C O D E p r o g r a m w i l l b w r i t t e n v i a A S S E M B L Y L A N G U A G E ( s e e A S S E M B L E R ) .

B I N A R YB a s e 2 U s e d b a l m o s t a l c o m p u t e r s . E a c h d i g i t c a h a v e o n l y t w p o s s i b l e v a l u e s a n ( e l e c t r i c a l l y o a n o f e t c . ) . B m a k i n g t h p o s s i b l e v a l u e o t h d i g i t w o r t h m o r e d e p e n d i n g o n i t p o s i t i o n a w d i d e c i m a l e t c .

1 4 1 x 1 0 0 4 x 1 0

b i n a r y b e c o m e s e t c .

1 8

Page 193: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 193/206

1 0 1 11 x 8 + 0 x 4 + 1 x 2 + 1 x 1 1 d e c i m a l

B I O n B I N A R Y d i g i t , w h i c h c a o n l y t a k e t h v a l u e o a o n e o z e r o .W h e n s t r u n g t o g e t h e r i c a b u s e d t f o r m l a r g e r n u m b e r ( s e eB I N A R Y , s e B Y T E ) .

B U F F E RA a r e a o m e m o r y s e a s i d e f o t e m p o r a r y s t o r a g e o d a t a . U s u a l l y u s e di r e l a t i o n t o i n p u t / o u t p u t f u n c t i o n s .

B Y T ET h b a s i c u n i t o t h c o m p u t e r ' s M E M O R Y . O n M E M O R Y L O C A T I O Nc a h o l d B Y T E o f i n f o r m a t i o n . E a c h B Y T E i m a d e u o 8 B I T S a n c a s t o r e n u m b e r b e t w e e n a n 2 5 5 . T h i s n u m b e r m a r e p r e s e n tc h a r a c t e r , a n u m e r i c v a l u e , o p a r t o m i c r o p r o c e s s o r i n s t r u c t i o n . C a b s t r u n g t o g e t h e r l i k e B I T S t f o r m l a r g e r n u m b e r s ( s e e B I N A R Y ) .

C H A R A C T E RG e n e r a l l y a n s y m b o l w h i c h c a n b e p u o t h s c r e e n b p r e s s i n g k e o t h k e y b o a r d . A n s y m b o l ( a l p h a n u m e r i c ) y o c a w r i t e ( t h a t i n o d r a w i n g o p i c t u r e ) i C H A R A C T E R . N O T E : f o a e x c e p t i o n s e G R A P H I C S C H A R A C T E R S .

C H A R A C T E R S E T h s e o a l C H A R A C T E R S w h i c h c a n b e p r i n t e d o t h T E X T s c r e e n .

1 8

Page 194: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 194/206

D E C I M A LB a s e 1 0 O u n o r m a l e v e r y d a y w a o c o u n t i n g i c a l l e d t h d e c i m a ln u m b e r s y s t e m .

D I S A S S E M B L E Rp r o g r a m w h i c h t a k e s M A C H I N E C O D E p r o g r a m a n p r i n t s i o u i

A S S E M B L Y L A N G U A G E s t h p r o g r a m m e r c a r e a d i ( s e eA S S E M B L E R ) .

D U M Pm e m o r y D U M P i d i s p l a y o t h c o n t e n t s o m e m o r y i n u m e r i c a l o

c h a r a c t e r f o r m ( n o t a A S S E M B L Y C O D E i n s t r u c t i o n s ) .

G R A P H I C SI G R A P H I C S m o d e y o c a d i s p l a y a n y t h i n g o t h s c r e e n t h a t y o c a d i s p l a y u s i n g t h r e s o l u t i o n o t h d o t s t h c o m p u t e r p u t s o u ( t h es i z e o f u l l s t o p ) .

G R A P H I C S C H A R A C T E RP a r t o t h C H A R A C T E R S E i m a d e u o C H A R A C T E R S w h i c h a r o n l y s h a p e s a n d h o l d n s y m b o l i c m e a n i n g . T h e s e a r G R A P H I C SC H A R A C T E R S .

H E X A D E C I M A LB a s e 1 ( s o m e t i m e s c a l l e d H E X ) . B a s e 1 i u s e d i d e a l i n g w i t hm a c h i n e c o d e b e c a u s e i i a n e a s y w a o d e a l i n g w i t h B I N A R Yn u m b e r s , w h i c h v e r y s o o n b e c o m e c u m b e r s o m e . B Y T E i d i v i d e d i n t ot w s e c t i o n s o f o u r b i n a r y B I T S , e a c h c a p a b l e o s t o r i n g n u m b e r f r o m

1 8

Page 195: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 195/206

0 ~ 1 5 T h n u m b e r i r e p r e s e n t e d b y H E d i g i t - 9 - F T h u sb y t e c a n b e d i s p l a y e d b u s i n g t w H E d i g i t s . s i g n i u s u a l l y u s e dt o s i g n i f y H E n u m b e r .

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

M A C H I N E C O D ES o m e t i m e s c a l l e d M A C H I N E L A N G U A G E , i i t h w a o d e s c r i b i n gp r o g r a m t h a t c a n b e d i r e c t l y r u b t h M I C R O P R O C E S S O R .M A C H I N E C O D E p r o g r a m i m a d e u o s t r i n g o f n u m b e r s w h i c h m a b p u i n t o t h c o m p u t e r b t h p r o g r a m m e r i H E X , o a s s e m b l e du s i n g a A S S E M B L E R f r o m a p r o g r a m w r i t t e n i A S S E M B L Y C O D E .

M A C H I N E L A N G U A G ES e M A C H I N E C O D E .

M E M O R YB o x e s a p i g e o n h o l e s w i t h i n t h c o m p u t e r w h i c h a r u s e d t h o l dn u m b e r s , m a c h i n e l a n g u a g e i n s t r u c t i o n s a n c h a r a c t e r s . E a c h b o x c a nh o l d o n l y B Y T E o m e m o r y a t i m e . T h C 6 h a 6 4 ( 6 5 5 3 6 ) b y t e s o m e m o r y .

M E M O R Y A D D R E S SE a c h m e m o r y b o h a s a n u m b e r f r o m t 6 5 5 3 5 w h i c h i u s e d t o r e f e r t oi f r o m a m o n g t h 6 5 5 3 6 w i t h i n t h c o m p u t e r . n u m b e r u s e d f o t h i sp u r p o s e i c a l l e d a a d d r e s s .

1 8

Page 196: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 196/206

M E M O R Y L O C A T I O NA e a s i e r w a o s a y i n g m e m o r y a a d d r e s s .

M I C R O P R O C E S S O RT h c e n t r a l p r o c e s s i n g a n c o n t r o l u n i t o t h c o m p u t e r . I c a b c o m p a r e d t t h h u m a n b r a i n ( a s l o n g a s y o u r e a l i s e t h a t t h e b r a i n i o c o m p a r a t i v e l y i m m e n s e p o w e r w i t h h u g e m e m o r y a n e n o r m o u s l yc o m p l e x p r o g r a m s ) . T h m i c r o p r o c e s s o r c o n t r o l s a l m o v e m e n t o d a t a ,a l d e c i s i o n s a n a l c a l c u l a t i o n s w i t h i n t h c o m p u t e r .

T E X TI T E X T m o d e y o c a o n l y d i s p l a y C H A R A C T E R S w h i c h a r i t h C H A R A C T E R S E o t h s c r e e n ( s e e G R A P H I C S ) .

V E C T O RI t h n a m e g i v e n t b y t e s i R A w h i c h s t o r e t h a d d r e s s o R O r o u t i n e . T h e s e b y t e s a r u s e d s t h a t t h p r o c e s s o t h o p e r a t i n gs y s t e m o b a s i c c a l l i n g R O i n p u t / o u t p u t r o u t i n e s m a b a c c e s s e d b t h u s e r . T h p r o g a m m e r w i l l s e t h e s e R A b y t e s t p o i n t t h i o w p r o g r a m t h a n d l e i n p u t / o u t p u t i h i o w w a y .

Z E R O P A G EA n o t h e r n a m e f o t h f i r s t 3 5 b y t e s o m e m o r y f r o m $ t $ 2 5 5 .

1 8

Page 197: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 197/206

Page 198: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 198/206

I n d e xA b s o l u t e a d d r e s s i n g 9 , 1 7 , 2 1 , 4 0A c c u m u l a t o r 7 - A d d i t i o n 3 A d d i t i o n t w b y t e 3 A d d r e s s e sA d d r e s s i n g m o d e s 8 , 5 5 , 6 9 , 1 0 3A L P A 2 A L P A c h e c k s u 2 6 , 1 8 2A L P A c o m m a n d s 2 A L P A c o n t i n u i n g w i t h p r o g r a m i n t a c t 4 A L P A l i n e n u m b e r a d d r e s s i n g 4 A L P A m e m o r y u s a g e 2 9A L P A p r o g r a m 1 6 A L P A s t a r t i n g 2 A L P A w o r k i n g w i t h 2 A N 7 7 7 A n i m a t i o n 4 A S 8 A s s e m b l e r 1 1 , 1 8 7A s s e m b l y l a n g u a g e 1 1 , 1 8 7

B A S I C m e m o r y u s a g e 1 4 3 , 1 4 9B A S I C r o u t i n e s 1 6 B C 4 7 , 7 1B C 7 B C 4 7 , 7 1B E 4 5 , 7 1B i n a r y 1 7 , 1 8 7B i t m a p m o d e 1 2 B i t s 2 1 7 7 , 8 0B M 7 3 7 B N 4 6 7 B o o l e a n o p e r a t i o n s 7 B o r r o w 3 B P 7 3 7 B r a n c h e s 4 4 , 4 5 , 4 7 , 8 B r e a k 7 B R 7 1 , 9 2B V 7 B V 7 B y t e 1

C a l l i n g p r o g r a mC a r r y f l a g 3 1 , 4 6 , 7 C h a r a c t e r 1 8 C h a r a c t e r g e n e r a t i o n R O 6 2 , 6 3 , 1 1 9 , 1 2 7C h a r a c t e r m o d e 1 2 C h a r a c t e r s e 1 2 , 6 2 , 6 3 , 1 2 7 , 1 8 8C I i n t e r f a c e c h i p 1 3 C L 7 C L 7 C L 7 2 . 9 6C l o c k 1 3 C L 7 C M 4 4 , 4 6C o l o u r 1 2 2 . 1 2 3C o l o u r m e m o r y 6 C o l o u r m i c h a r t 1 2

1 9

Page 199: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 199/206

C o l o u r v a l u e s 1 2 6C o m p a r i s o n s 4 C o n v e r t i n g b i n a r y t h e x i d e c i m a l 1 C o n v e r t i n g h e x i d e c i m a l t d e c i m a l 2 2 , 1 1 5C o u n t e r s 5 C o u n t i n g 5 1 , 5 2

D e b u g g i n g 7 D E 5 D e c i m a l 1 8 9D e c i m a l f l a g 7 D i s a s s e m b l e r 1 8 9D i v i s i o n " . N 8 D u m p 1 8

E f f i c i e n c y 1 ^ 4 6 , 8 5E n t e r i n g p r o g r a m 1 E O 7 7 , 8 0E x t e n d e d b a c k g r o u n d c o l o u r m o d e 1 2

F l a g s 4 4 , 7 1 , 1 1 3

G t 4 G r a p h i c s 6 1 , 1 2 2 , 1 8 9G r a p h i c s c h a r a c t e r 1 8 G r a p h i c s f i n i s h i n g 6 G r a p h i c s m e m o r y 6 2 , 6 4G r e a t e r t h a n 4

H e x a d e c i m a l 1 7 , 1 8 9H o r i z o n t a l s c r o l l 1 2

I m m e d i a t e a d d r e s s i n gI N . 5 I n d e x 1 9 I n d e x r e g i s t e r 5 3 , 5 6 , 6 1I n d e x e d a d d r e s s i n g 5 I n d e x e d i n d i r e c t a d d r e s s i n g 6 I n d i r e c t a d d r e s s i n g 6 I n d i r e c t i n d e x e d a d d r e s s i n g 6 I n f i n i t e l o o p s 4 I n s t r u c t i o n s e t 1 0 I n t e r r u p t 1 9 I n t e r r u p t s 7 1 , 7 2 , 9 2 , 9 5I n t e r r u p t f l a g 7 I n v e r t i n g b i t s 8

J M 8 J o y s t i c k 1 3 J S 8 J u m p 4 J u m p c o n d i t i o n a l 4

K e r n a l 9 K e r n a l m e m o r y u s a g e 1 4 3 , 1 4 9K e r n a l r o u t i n e s . . . " 1 4 K e y b o a r d i n p u t 9 7 1 3 7 ( 1 5

L D L e s s t h a n 4

1 9

Page 200: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 200/206

L i g h t p e 1 2 3 , 1 3 7L o g i c a l o p e r a t i o n s 7 L o o p i n g 5 1 5 L S 8

M a c h i n e c o d e 1 M a c h i n e l a n g u a g eM a s k s 7 M a t h e m a t i c s 3 M e m o r y 4 , 1 9 0M e m o r y a d d r e s s 1 9 0M e m o r y c o n t e n t s 5M e m o r y l o c a t i o n 1 9 M e m o r y m a 1 1 M e m o r y u s e s 1 M e m o r y u s a g e 1 4 M e m o r y u s a g e n u m b e r s 1 M a c h i n e c o d e i n s t r u c t i o n sM i c r o p r o c e s s o r 1 9 M n e m o n i c s 6 , 1 1M o v i n g m e m o r y 7 , 5 4M u l t i c o l o u r b i t m a p m o d e 1 2 M u l t i c o l o u r c h a r a c t e r m o d e 1 2 M u l t i p l i c a t i o n 5 1 , 8 1 , 8 M u l t i p l y t w b y t e 8 M u s i c 1 2

N e g a t i v e f l a g 7 N e g a t i v e n u m b e r s 7 3 , 1 1 7N O 9 N u m b e r s 3

O p e r a t i n g s y s t e m 9 O p e r a t i n g s y s t e m r o u t i n e s 1 4 O R 7 7 7 O v e r f l o w f l a g 7

P a d d l e b u t t o n s 1 3 P e e kP H 9 P i c k i n g u m e m o r yP i x e l 6 P L 9 P o k eP r i n t i n g 1 P r i n t i n g m e s s a g e 1 P r i n t i n g o g r a p h i c s 6 1 P r o c e s s o r s t a t u s c o d e r e g i s t e r 4 4 , 7 1P r o g r a m c o u n t e r 8 P u t t i n g t h i n g s i m e m o r y

R a s t e r r e g i s t e r 1 2 R e g i s t e r s 7 , 5 3R e g i s t e r 5 , 1 1 3R e g i s t e r t o r e g i s t e r t r a n s f e r s 6 R e l a t i v e a d d r e s s i n g 4 5 , 4 7 , 1 1 7R e l o c a t i o n 4 R e t u r nR e t u r n a d d r e s s 8 9R O 8 R o t a t i n g b i t s 8 R O 8

1 9

Page 201: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 201/206

R S 2 3 2 1 3 R T 9 R T 6 8 8 , 9 0

S B 3 S c r e e n c h i p 3 9 , 1 2 1S c r e e n c o d e s 1 6 S c r e e n d i s p l a y c o d e 1 S c r e e n h e i g h t 1 2 S c r e e n m e m o r y 1 1 , 3 9 , 1 2 1S c r e e n m o d e s 1 2 S c r e e n w i d t h 1 2 S c r o l l — v e r t i c a l 1 2 S c r o l l i n g 6 S e a r c h i n g m e m o r y 5 S E 3 3 7 S E 7 S E 7 2 , 9 6S e r i a l I / 1 3 9 , 1 4 0S h i f t i n g b i t s 8 S i g n e d a r i t h m e t i c 7 S o u n d 1 2 S p e e dS p r i t e s 3 9 , 1 2 1 . 1 2 3S p r i t e c o l l i s i o n s 1 2 S p r i t e p o s i t i o n c h a r t 1 2 S T 9 , 1 0S t a c k 8 9 , 9 0 , 9 1 . 9 2S t a c k p o i n t e r 9 0 , 9 2S t a t u s b y t e 4 4 , 7 1S t a t u s r e g i s t e r 1 0 3 , 1 1 3S u b r o u t i n e s 3 , 8 8 , 9 0S u b t r a c t i o n 3 S w i t c h i n g m e m o r y b l o c k s 1 1 S Y 4 ,

T a b l e s 6 1 , 6 7T a b l e s — z e r o p a g e s 6 T e x t 1 9 1T i m e r 1 4 T r u t h t a b l e s 7 7 - 7 8T S 9 T u r n i n g b i t s o f 7 T u r n i n g b i t s o 7 T w o s c o m p l e m e n t a r i t h m e t i c 7 3 , 1 1 7T X 9

V e c t o r i n g 6 V e c t o r s 9 5 , 1 9 1V I C - I I c h i p s 3 9 , 1 2 1V i d e o b a n k 1 2

X - r e g i s t e r s 5 3 5

Y - r e g i s t e r s 5 3 . 5 6

Z e r o f l a g 4 5 , 4 6 . 7 Z e r o p a g e 1 9 Z e r o p a g e a d d r e s s i n g 9 . 2 2Z e r o p a g e i n d e x e d a d d r e s s i n g 5

1 9

Page 202: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 202/206

C o m m o d o r e 6 4 M a c h i n e L a n g u a g ef o t h A b s o l u t e B e g i n n e r .

M E L B O U R N E H O U S E R E G I S T R A T I O N C A R DP l e a s e f i l l o u t h i s p a g e a n r e t u r n i p r o m p t l y i o r d e r t h a t w e m a y k e e py o i n f o r m e d o n e b o o k s a n s o f t w a r e a n s p e c i a l o f f e r s t h a t a r i s e .S i m p l y f i l l i a n i n d i c a t e t h e c o r r e c t a d d r e s s o n t h r e v e r s e s i d e .N a m eA d d r e s s

C o d eW h a t p r o d u c t d i y o u p u r c h a s e ?W h i c h c o m p u t e r d y o o w n ?W h e r e d i y o l e a r n o t h i s p r o d u c t ?

M a g a z i n e . I s o w h i c h o n e ?T h r o u g h f r i e n dS a i i R e t a i l S h o pO t h e r . P l e a s e s p e c i f y

W h i c h m a g a z i n e s d y o u p u r c h a s e ?R e g u l a r l y :O c c a s i o n a l l y :W h a t A g a r y o u ?

1 0 - 1 5 1 6 - 1 9 2 0 - 2 4 O v e r 2 5W a r c o n t i n u a l l y w r i t i n g n e m a t e r i a l a n w o u l d a p p r e c i a t e r e c e i v i n gy o u r c o m m e n t s o o u p r o d u c t .H o w o u l d y o r a t e t h i s b o o k ?

E x c e l l e n t V a l u e f o m o n e yG o o d P r i c e d r i g h tP o o r O v e r p r i c e d

P l e a s e t e l l u w h a t b o o k s a n s o f t w a r e y o u w o u l d l i k e t s e p r o d u c e df o y o u r C O M M O D O R E 6 4

Page 203: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 203/206

      

                    

                        

                                                 

                       

         

                  

                                       

                         

                              

                                     

              

Page 204: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 204/206

N O T E S

Page 205: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 205/206

N O T E S

Page 206: Machine Language for the Absolute Beginner

8/6/2019 Machine Language for the Absolute Beginner

http://slidepdf.com/reader/full/machine-language-for-the-absolute-beginner 206/206