`Petitioner Ex. 1033 p. 001
`
`
`
`The Blacksburg Continuing Education^^ Series
`
`The B l a c k s b u rg C o n t i n u i ng
`o r i e n t ed a p p r o a ch
`
`to e l e c t r o n ic topics. Present a nd
`
`E d u c a t i on Series^^' of b o o ks p r o v i de o
`titles
`
`f o r t h c o m i ng
`
`L a b o r a t o r y — or e x p e r i m e n t-
`in
`
`this s e r i es i n c l u d e;
`
`• D B U G: An 8 0 80
`
`Interpretive D e b u g g er
`
`• Design of A c t i ve Filters, W i th E x p e r i m e n ts
`• D e s i gn of O p - A mp Circuits, W i th E x p e r i m e n ts
`
`• Design of P h o s e - L o c k ed Loop C i r c u i t s, W i th E x p e r i m e n ts
`
`• Design of T r a n s i s t or Circuits, W i th E x p e r i m e n ts
`
`• Design of V M OS C i r c u i t s, W i th E x p e r i m e n ts
`•
`
`The 8 0 8 0A B u g b o o k ®; M i c r o c o m p u t er
`
`I n t e r f a c i ng a nd P r o g r a m m i ng
`
`• 8 0 8 0 / 8 0 85 S o f t w a re D e s i gn (2 V o l u m e s)
`
`• 5 55 T i m er A p p l i c a t i o ns S o u r c e b o o k, W i th E x p e r i m e n ts
`
`• G u i de to C M OS D e s i gn Basics: C i r c u i ts a nd E x p e r i m e n ts
`•
`
`I n t e r f a c i ng a nd Scientific D a ta C o m m u n i c a t i o ns Experiments
`
`•
`
`Introductory E x p e r i m e n ts
`and
`
`I n t e r f a c i ng (2 V o l u m e s)
`
`in Digital E l e c t r o n i cs a nd 8 0 8 0A M i c r o c o m p u t er P r o g r a m m i ng
`
`•
`
`Logic & M e m o ry E x p e r i m e n ts Using TTL
`
`I n t e g r a t ed Circuits (2 V o l u m e s)
`
`• M i c r o c o m p u t e r — A n a l og C o n v e r t er S o f t w a re a nd H a r d w a re
`
`I n t e r f a c i ng
`
`• M i c r o c o m p u t er I n t e r f a c i ng W i th the 8 2 55 PPI C h ip
`
`• N CR B a s ic E l e c t r o n i cs C o u r s e, W i th
`• N CR D a ta C o m m u n i c a t i o ns C o n c e p ts
`
`E x p e r i m e n ts
`
`• N CR D a ta P r o c e s s i ng C o n c e p ts C o u r se
`
`• N CR E DP C o n c e p ts C o u r se
`
`• P r o g r a m m i ng a nd
`
`I n t e r f a c i ng the 6 5 02
`
`• 6 8 00 M i c r o c o m p u t er
`
`Interfacing a nd P r o g r a m m i n g, W i th E x p e r i m e n ts
`
`• 6 5 02 S o f t w a re D e s i gn
`
`•
`• TRS-80
`
`I n t e r f a c i ng
`
`TEA: An 8 0 8 0 / 8 0 85 Co-Resident E d i t o r / A s s e m b l er
`
`• Z-80 M i c r o p r o c e s s or P r o g r a m m i ng &
`
`I n t e r f a c i ng (2 V o l u m e s)
`
`In most cases,
`ili-nioiislrate a nd e x p l o re the concepts that o re c o v e r ed
`111.- vi'iy
`
`t h e se b o o ks p r o v i de both
`
`text m a t e r i al a nd e x p e r i m e n t s, w h i ch permit o n«
`
`in
`
`the b o o k. T h e se b o o ks
`
`to
`r e m a in a m o nu
`l e a rn b a s ic electronic m ii
`wiro a c t u al c i r c u i t s, test microcomputer i n t e r f a c e s, a nd p r o g r am c o m p u t e rs b a s ed on |JO|MI
`t he electronic mrvn M
`
`fow
`
`that p r o v i de step-by-step instructions c o n c e r n i ng how
`
`to
`
`IMI microprocessor c h i p s. We h o ve found
`whtr (^(ir^s to
`
`join
`
`t he " e l e c t r o n i cs r e v o l u t i o n ," w i th minimum
`
`time a nd effort.
`
`AtlilllrurmI i n f o r m a t i on a b o ut the " B l a c k s b u rg G r o u p"
`
`is p r e s e n t ed inside
`
`the
`
`r e ar cover.
`
`Jonathan A. Titus, Christopher A. Titus, a nd David G. Larsen
`
`"The Blacksburg G r o u p"
`
`iin.i ,,v,pl„,l ii.i.lriM.irk N.motran,
`
`Inc., Blacksburg, VA 24060
`
`t
`
`I-.
`
`ri-.l"riMl Ir.idomiirk of E & L Instruments,
`
`Inc., Derby, CT 06418
`
`t h at
`
`t he b o o ks o re v e ry useful
`
`to
`
`8 0 8 0 / 8 0 85
`
`Software Design
`
`Book 1
`
`by
`
`Christopher A. Titus, Peter R. Rony,
`David G. Larsen, and Jonathan A. Titus
`
`Also published as
`
`8080/8085 Software Design
`
`by E & L Instruments, Inc.
`
`HouuQrd ID. Sams & Co., Inc.
`
`4 3 00 W I SI
`
`(iL'NU ST.
`
`I N D I A N A P O L I S,
`
`I N D I A NA 4 6 2 68 U SA
`
`Inter Partes Review of Pat. No. 9,165,593
`Petitioner Ex. 1033 p. 002
`
`
`
`Copyright © 1978 by Christopher A. Titus,
`Peter R. Rony, David G. Larsen,
`and Jonathan A. Titus
`
`F I R ST E D I T I ON
`T H I RD P R L \ T I N G - 1 9 80
`
`All rights reserved. No part of this book shall be
`reproduced, stored in a retrieval system, or transmitted
`by any means, electronic, mechanical, photocopying,
`recording, or otherwise, without written permission
`from the publisher. No patent liability is assumed with
`respect to the use of the information contained herein.
`While every precaution has been taken in the
`preparation of this book, the publisher assumes no
`responsibility for errors or omissions. Neither is any
`liability assumed for damages resulting from the use
`of the information contained herein.
`
`International Standard Book Number: 0-672-21541-1
`Library of Congress Catalog Card Number: 78-57207
`
`Printed
`
`in the United
`
`States of
`
`America.
`
`Preface
`
`Fn the supermarket, the electronic cash register not only performs
`.ill of the tasks of its mechanical predecessor, but it can also perform
`inventory control. Some sewing machines no longer require complex
`and cams to do special stitches. Instead, a microcomputer
`•u':us
`controls the position of the needle when a particular stitch is used.
`[\\c near future, you will probably be able to even "teach" your
`In
`• . ( • w i ng machine the latest stitch.
`
`Although it did not look like a revolution at the time, the Intel
`Corporation introduced the world to the concept of microprocessors
`and microcomputers with its four-bit 4004 microprocessor "chip."
`The microcomputer revolution gained momentum as improvements
`were made in earlier integrated circuits, and more and more manu-
`lacturers began to produce microprocessor integrated circuits and
`microcomputers. Now these devices, made from one of the chemical
`components of purified sand, have begun to truly change the way
`in which we live.
`
`Inst(>ad of using a slide rule to perform complex calculations, cal-
`r n l i i l o rs can be used that have more "power" than state-of-the-art
`coinpntcrs produced 10 or 20 years ago. Watches no longer have to
`counterclockwise
`be wound, and, in fact, the terms clockwise and
`iiiAv s o on be archaic. Today, you can even use a checkbook that elec-
`h i u i i c a l ly keeps track of how much money you have in your check-
`nir, acconnt. No longer do you have to balance your checkbook every
`In the not-too-distant future, microwave ovens may "know"
`n i d i i l l i.
`n n i ic iihont cooking than you do.
`
`( )l conrsc, to use a microcomputer to solve a problem requires
`I I I P I II luirdiimre and software. The hardware consists of the micro-
`(•••sor integrated circuit(s) and possibly some memory inte-
`
`Inter Partes Review of Pat. No. 9,165,593
`Petitioner Ex. 1033 p. 003
`
`
`
`Some current microcomputer users program their microcomputers
`in the BASIC* programming language. To do this, a BASIC inter(cid:173)
`preter, an assembly language program, must be stored in from 5000
`to 8000 memory locations. This assembly language program enables
`you to enter a BASIC program into the microcomputer and actually
`execute it. Like everything else in the world, there are advantages
`and disadvantages to programming a microcomputer in the BASIC
`language. Due to the disadvantages of using the BASIC
`language,
`is often used when programming microcom(cid:173)
`assembly
`puters. This is the type of programming language that we will dis(cid:173)
`cuss in this book.
`
`language
`
`grated circuits, light-emitting diodes, and interface electronics so
`(lights, mo(cid:173)
`that the microcomputer can control peripheral devices
`tors, valves, solenoids, or gauges). The software consists of the
`sequence of instructions that the microcomputer executes so that it
`can process data or control peripheral devices. Unfortunately, the
`design and implementation of software is not as well defined as the
`design and implementation of hardware.
`
`is the
`more difficult of the two to teach and to learn. You cannot write an
`assembly language program in 10 or 15 minutes that will calculate
`the cube roots of all numbers between 1 and 1000 to six significant
`language, you probably could. However,
`digits. Using the BASIC
`there are advantages in using assembly language.
`In fact, many
`tasks can be performed using assembly language
`that cannot be
`performed using the BASIC
`language, particularly in the areas of
`process control, peripheral control, high-speed calculations, and
`real-time data acquisition. In fact, most consumer products that in(cid:173)
`corporate microcomputers are programmed in assembly
`language;
`video (television) games, microwave ovens, sewing machines, elec(cid:173)
`tronic cash registers (point-of-sale terminals), gasoline pumps, and
`is a veiy
`blood-pressure monitors. Therefore, assembly language
`powerful and useful language to learn.
`
`There is no doubt in our minds that assembly language
`
`In the first chapter of this book, we do not discuss any assembly
`language programming, but rather the characteristics of the 8080
`includes a dis(cid:173)
`and 8085 microprocessor
`cussion of the various registers contained within these two integrated
`circuits. These registers are important because you will use them
`time and time again in your assembly language programs. The next
`three chapters deal with the assembly language instructions that the
`8080 and 8085 can actually execute. You will not find long, detailed
`programs in these first few chapters, since you will not have enough
`familiarity with all of the important instructions to understand long.
`
`integrated circuits. This
`
`" B A S IC i.s a registered trademark of the trustees of Dartmouth College.
`
`complex programs. When these iiTstructions are understood, you can
`begin to program the microcomputer in assembly language so that
`it performs useful tasks. The remaining chapters of the book deal
`instructions
`with the application of the 8080's assembly language
`to mathematical operations, number-base conversions, and input/
`output device (peripheral device) control.
`
`There are some unusual features of this book which we believe
`that you will appreciate. We have not included a chapter on binary,
`octal, hexadecimal, and decimal numbering systems. In some of the
`chapters, we do show you how some of these operations are per(cid:173)
`formed using paper and pencil. However, we are personally more
`interested in the instruction sequence that the microcomputer must
`execute to perform these same operations. If you need more informa(cid:173)
`find it in just about
`tion on basic mathematical operations, you can
`any other book on computer programming. You will also
`find that
`the programs in this book can be executed on just about any 8080-
`based microcomputer. We do not have hardware or software exam(cid:173)
`ples that feature one or another manufacturer's hardware. The
`program examples will execute equally well on a MITS, Processor
`Technology, Intel Corporation, National Semiconductor Corporation,
`Digital Group, Control Logic, IMS Associates, or E & L Instruments
`8080-based microcomputer. Of course, peripheral devices may vary
`from system to system just as device addresses may vary from system
`l() system.
`
`In the Input/Output chapter (Chapter 7), we have included the
`(•l(-ctrical schematic diagrams for the devices that we are controlling
`listing of a program that controls a
`with software. A software
`peripheral device is worthless unless you can see how the peripheral
`to the microcomputer. Also,
`device is actually wired (interfaced)
`il yon want to use a particular program on your own microcomputer,
`von will probably need the schematic diagram of the peripheral
`device in order to duplicate the hardware.
`
`In the first three chapters of the book, we have included both
`oelal and hexadecimal op codes for the instructions being discussed.
`\Vc pn^fcn- the octal numbering system. We feel strongly that the
`instructions are easier
`(>l> e()d(\ for the 8080's assembly language
`In remember
`in octal, and when you examine an octal op code, it
`V. easy lo determine the registers or memory locations that are af-
`is
`( I led by lh(! instruction. If the hexadecimal numbering system
`used, (his process is very difficult. On the other hand, many pro-
`I'.iammers prefer the hexadecimal numbering system because they
`oiilv hav(> lo remember a two-digit op code rather than a three-
`d i r il o e l al op code. The only conclusion that we could reach was
`111 nse bolli n i M n b c r i ng systems in our examples. We recommend
`ilial a l)e!';inniiig 8080 Or 8085 programmer use octal, simply because
`
`Inter Partes Review of Pat. No. 9,165,593
`Petitioner Ex. 1033 p. 004
`
`
`
`Another goal that we had was to provide detailed descriptive ex(cid:173)
`planations of how the f)rogram examples operate. We do not say,
`"Here it is, you figure out how it works." You would learn very
`little if this approach were used. Instead, we develop programs,
`starting with the simplest sequence of instructions that can accom(cid:173)
`plish a particular task. These programs often have limitations, and
`if they do, we add instructions so that the microcomputer can better
`perform either a more general-purpose task or a specific task. There(cid:173)
`fore, we design the best solution to a problem, learning from pre(cid:173)
`vious examples.
`
`it is easier to remember. At a later time, it may be more convenient
`to use hexadecimal. If you are unsure of which numbering system
`to use, try both and stay with the numbering system that you are
`the most comfortable with. Hexadecimal numbers are usually found
`in the text bracketed with parentheses; e.g.,
`
`(5F).
`
`As you go through this book, you may notice that the computer
`printouts in the program examples are in a format that is different
`than the formats used by other authors. The reason that we have
`chosen the format that we have is so that newcomers to assembly
`language programming can grasp the concepts of assembly language
`programming. One of the most important concepts is the fact that
`multibyte instructions must be stored in consecutive memory loca(cid:173)
`tions. This concept is difficult to grasp if you look at the computer
`printouts used as examples in other books. For this reason, we have
`the
`written a coresident editor/assembler
`listings that we felt would be most appropriate to a book on as(cid:173)
`sembly language programming. It is important to emphasize that
`once you learn the principles of good assembly language program(cid:173)
`ming, it really does not matter what editor/assembler
`software
`package you use
`language program development.
`Remember, editors and assemblers are only the means to the end.
`They are just tools that are used to aid you in the development of
`a properly operating assembly language program.
`
`(TEA)
`
`that produces
`
`for assembly
`
`One of the nice features of software is that it is easy to print and
`distribute. Because of this, a number of professional and hobbyist
`computer magazines provide listings and source and object paper
`tapes or audio cassettes for the programs in their software libraries.
`Software listings often appear in Electronic Design, Computer De(cid:173)
`(Mc-
`sign, and Electronics.
`Pheters, Wolfe & Jones, Cerritos, CA 9 0 7 0 1 ), SCCS Interface
`(SCCS,
`Santa Monica, CA 9 0 4 0 5 ), Kilobaud and Byte
`(both of Peterbor(cid:173)
`ough, NH 0 3 4 5 8 ), and Dr. Dohhs Journal of Computer Calisthenics
`(Menlo Park, CA 9 4 0 2 5) also have numerous pro(cid:173)
`and Orthodontia
`gram listings. There are also a number of software libraries, includ(cid:173)
`ing the Intel User's Library, 3 0 65 Bowers Ave., Santa Clara, CA
`
`The hobbyist magazines, Interface Age
`
`9 5 0 5 1, and the Microcomputer Software Depository, 2 3 61 E. Foot(cid:173)
`hill Blvd., Pasadena, CA 9 1 1 0 7. Entries in the Depository are listed
`in Interface Age every month.
`
`Tychon, Inc., is dedicated to educating the scientist, engineer, and
`electronics/computer hobbyist in the areas of digital electronics,
`microcomputer hardware, and microcomputer software. We cur(cid:173)
`rently have monthly columns that appear in American
`Laboratory
`(International Scientific Communications, Inc., 8 08 Kings High(cid:173)
`the Thai publication. Semiconductor
`way, Fairfield, CT 0 6 4 3 0 ),
`Journal (Science, Engineering and Education Co., Ltd.,
`Electronics
`Bangkok, Thailand), and the German publication,
`Elektroniker
`(Burgdorf, Switzerland). Our columns also appear in
`Electronic
`News (IPC Business Press Pty. Ltd., Sydney, Australia), Ham Radio
`(Concord, M A ), and Radio-
`(Creenville, N H ), Computer Design
`Electronics
`(New York City, N Y ). Our books are currently being
`translated into Italian, German, French, Spani,sh, and Thai.
`
`If you are interested in learning basic digital electronics, a two-
`Se(cid:173)
`
`Integrated
`
`and Scientific Data Communications
`
`Experiments,
`
`Interfacing
`Experiments
`
`and
`in
`
`volume set of books in the Blacksburg Continuing Education
`ries'™, entitled Logic <Lr Memory Experiments Using TTL
`Circuits, will introduce you to the subject and give you the ability
`10 try student-proven experiments. Another book in the series, In-
`has
`Icrfacing
`been .specifically written for those engineers, scientists, and hobby-
`i'.ls interested in asynchronous communications techniques using
`U A U T s. This book includes experiments that will permit you to use
`;r;vii<'hronous communications techniques
`to interface instrumen-
`l.ilioii to computers or other UART-based devices. Three books in
`i hr N c i i cs have been written about the 8 0 80 microprocessor/micro-
`. u r n p n U i r: The 8080A Bugbook®: Microcomputer
`and a two-volume set, Introductory
`rmrnnnming,
`I >i:'.i(iit I'Jectronics cmd SOSOA Microcomputer Programming and In-
`irilacing. These self-teaching texts describe the design of elementary
`ml. i L i cc hardware and software and how they are applied to prob-
`M. n r ., lh(^ substitution of software for hardware, and many other in-
`11 M'.iing topics. One of our latest books. Microcomputer—Analog
`deals entirely with
`t ',nifi-rtcr
`
`. . . .. . . i n p n l c r s. The number of titles in the Blacksburg
`iihir.ilioii
`
`m l.
`
`I
`
`I t . . I ll
`
`M
`
`. l
`
`l\.
`
`i i i\I I lie programming concepts that are presented
`l i a vr \)c('u incorporated into the material taught at seminars
`
`in this
`
`I I I ..
`
`/...../,
`
`!•.
`
`II K^Kistcred trademark of E & L Instruments, Inc., Derby, CT
`
`I I I, I I 'i
`
`i l l ! '; digital-to-analog and analog-to-digital converters to mi-
`Continuing
`Series™ grows constantly. They are listed on the inside
`
`Software and Hardware
`
`Interfacing,
`
`Inter Partes Review of Pat. No. 9,165,593
`Petitioner Ex. 1033 p. 005
`
`
`
`presented by Tychon, Inc., here in Blacksburg. Three courses are
`(626),
`currently being taught: Designing with Microcomputers
`Microprocessor
`the
`8080/8085 Processors (690). If you are interested in these courses,
`write to The Course Director, Tychon, Inc., P . O. Box 242, Blacks(cid:173)
`burg, VA 24060. Courses are also provided through the Center for
`Continuing Education and the Extension Division at Virginia Poly(cid:173)
`technic Institute and State University, Blacksburg, VA 24061. Call
`Dr. Linda Leffel at (703 ) 961-5241 for further information.
`
`Interfacing (628), and Software Design for
`
`Again, we would like to thank Mr. Murray Gallant of E & L In(cid:173)
`struments, Inc., for his continued support of our educational efforts.
`
`CHRISTOPHER A. TITUS
`PETER R. RONY
`DAVID G. LARSEN
`JONATHAN A. TITUS
`
`Contents
`
`I J I ST OF PROGRAM EXAMPLES
`
`CHAPTER 1
`
`AN INTRODUCTION TO THE 8 0 8 0 / 8 0 85 MICROPROCESSORS
`
`The 8080 Microprocessor—Machine and Assembly
`in This
`8085 Microprocessor—Conventions Used
`Format-Similarities Between the 8080 and 8085
`
`Language—The
`Book—Program
`
`CHAPTER 2
`
`l
`
`i
`
`i
`
`j; BASIC 8080/8085 INSTRUCTIONS
`
`Instructions—Using R/W M e m o ry for Data
`'I'lio Data-Movement
`Instructions—Simple Register Pair
`.Storage—The Move-Immediate
`Instructions—Input and O u t p ut Instructions—The Eight-Bit Logical
`Instructions—Mathematical
`and Mathematical Instructions—Logical
`liislructions—Branching, Transfer-of-Control, and Decision-Making
`11 IN 1 n ictions—Conclusion
`
`11
`
`17
`
`29
`
`CHAPTER 3
`
`' . u n i K i i ir INKS AND U SE OF T HE BASIC INSTRUCTIONS
`
`81
`
`( liilliriK Subroutines—Time-Delay Subroutines—Conditional Call and
`l l i l i i r ii Instructions—Using the Basic Instructions—I/O Device Syn-
`I /O and Character Manipulations—
`iliioiii/ulion—Teletypewriter
`I. I i i v p i w r i t cr and Terminal Programs — An Electronic
`L o c k—
`
`Inter Partes Review of Pat. No. 9,165,593
`Petitioner Ex. 1033 p. 006