244
8/6/2019 KIM-1 Microprocessor Fundamentals http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 1/244 ulcnoPnocffffrlilo mD[.IEuTrLS , sEttll[.an, fonrBoor ASSORTCOT'NSEcR SCIEilTI{NS AITDE[I[}I[EERS Br BAJUOND I. BEIWEST II{D DR. JOgEPH . BGS flEruClu NTS8IN'TE FCR PBOFEfISIOI{IL EDUCAIION C.ER}IDOIEUIIDI}IG nrr.rgFrqt RD. uaDxso[, N. J. o7gb0

KIM-1 Microprocessor Fundamentals

Embed Size (px)

Citation preview

Page 1: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 1/244

ulcnoPnocffffrlilo mD[.IEuTrLS

, sEttll[.an,fonrBoor

A SSORTCOT'NSEcR

SCIEilTI{NS AITDE[I[}I[EERS

Br

BAJUONDI. BEIWEST

II{D

DR. JOgEPH . BGS

flEruClu NTS8IN'TE

FCR

PBOFEfISIOI{IL EDUCAIION

C.ER}IDOIEUIIDI}IGnrr.rgFrqt RD.uaDxso[,N. J. o7gb0

Page 2: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 2/244

PREFACE

As in learnJng to drlve a car, a nl,croprocessor nust be pnactlced

rLth. Iou cqnot really leara how tp use @e frm just read,i.rng ooks

alone. Sls course i.nclndes a ntcrocoqruter and nore lnfornatLon tlran

can be covered in a tbree-day senlnari because lt .l.s the autborst

purpose to glve yor suffLcient background, rsrlttea.naterlal, and

lurdrare to be able to des{gn a nLcroccnputer systen. BUT THIS C4$Rgl

hrFpea if the student does Dot strrdy ALL ttre lnfornatLon gLven rrltb the

course ald bulLd rry a systen using tbe lf,il-l,

Page 3: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 3/244

COUNSEOUTLINE

RElDIlKt .{$S]I}ilMESITS

EXPENI!,TENTS

1-1

2-L

3-13-33-53-83-93-lo

g[P.

EIP.ETP.ETP.EXP.E]F.

#t#zlf3#b#5#6

rcGIC AI{D NTERT'ACEEVTCES

B.SSTCPGIC

T. TOil-I}II'ENTINCBT'FFENII. II{VERTSE BUffER

rI[. .$ID SAIErT. $al{D GelSV. ORGITE

VI. NORGAEVTI. EXCU'SIYE-ORAIE

VIT[. EXCLTfiiIYE-ITO8AIEIX. DrSC'USSrOil F IOW-IRI,E

ruIP-EIOPSI. R-S LAICH

II. R-S TLIP-fLOPI[I. D-fNE TLIP-FIPPIY. J-tr ITPE ELIP-FIOPV. T-TIPE FLIP-EIOP

DECODERS,/DWT'LTIPIJAXENS

A{CODERSATIJTIPI,&TffiS

I}MffiFACEDE\IICESOPEI{-COIJ,ESTOROGICT?I-ST&TEIPGTCBUS TRANSCEIVERS

AlIltTZIilG SONilNJEEROBIE!{S

I'GIC

L.1-1

b.r-2lr.1-2b.1-3lr.l.-lrb.L-5b.1-6u.L-7lr.1-8lr.1-8

lr.2-L

b.2-Lb;2-2L.2-2I+.2-2

lr.3-1

b.h-1

h.5-1\ .5-2b.5-lr

5.o

5.L

5.2

5.3

SIIE SOFI'lflnEDESIGNPROCEDIIRE

SfEP 1: DEFINE tIE PA0BLEU

STEP2: P.0BTIIIO$ THEPROBLEI!BIOCKS

Slm 3; .0IEOBITHU ETEIOP!{E!$?

Il]R EACHPTRTITIOII

5-t

5-z

5-e

5-tz

INTO TUUCTIONAI'

Page 4: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 4/244

.lxttrzrNc soFlw^[RERoBIEI'IscomnlurD)

5.\ OBJECTTVESO FIOT'CHTBTS

5.5 PBOCEDURESrtER AICORT$IUDE\IEIOP!.IENT

QIIESTIONS

tm ilnomng,/sorrliltRr tpPRoAcE 0 I'frcRoccn-tnngREsrGu

II{IRODUCTION

5.1 HIRDWARE OST

6.1.1 STSTEM FEED6.L.2 DIn{OBI BEQUTBEI'{EIIIS6.L.3 Vo [email protected] PERIPEER.ALEVICES

6J.5 DEYICESTIPPORT6.L.6 tflcRoPnocEsgoR fiDi{tRESEI^ECTIO}Tt'MM.Off

6.2 SOTffARECOSTBt

6.2.L PROCESSOnRG.0IITZATIOI{6.2.2 PRSBAI'f-slBucrItnE6.2.3 rI{PIAMENTAIIoN,JuWiU&E

6.3 sf,sr$-f osrs

6.3.L DEVELoP!€NTosrs

6.3.2 MoDrrrclrroNosrs6,3.3 !4.[IUTEN.0]ICE6lS

6.h A PERSPECTTVEN C6TS

6.5 TBADrlteoFF sort'r{tRE ANDgtRD[ilaRE

6.9.L oOIIDITIONSWIIICH EADTODESIOI{1n'.CDEI'FS

6.5.2 STS1EU FEED ROBIJ!{S6.5.3 srsluMcosr PRoBLEl.ts

6.6 EenDt,t&EFEm n.{DE tr'rs6.6.L pRocE$sonsxD ltEl.loRrns6.6.2 I}ECODE'GIC6.6.3 I{BORI ilITFEBS6.6.b SPEcI.ILIZED !{TEBTAcE ETICEI6.6.5 D{IERRUPIS

6.7 SOFmAnERtDE OmS

6.7.1. FRMRA}TOOPSAI{DSUBROTNINES

5-n

5-22

5-23

6-L

6-2

6-26-36-56-7

6-76-9

6-9

6-106-116-II

6-L2

6-L2

6-r36-1I

6-L5

6-L6

6-L6

6-n6-A

6-2L5-2J6226226236-U

6-25

6-25

Page 5: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 5/244

6.7.2 FI'NCTIOIIAL OUpUTATIOTS6.7.3 BEPEAfED OUpUUIIoNS

5.8 $ruM.oR:r

RT,PNESEMTIIGI}IINT DAIA

NI'MBER TSTEUCO}MERSIOI{S

DECIilALTO BIT.ABTBIS.OBTc DECIUALDECIUALTO OCTALOCTEITO DECII{ALDECII{ALTO HEIADECII.IALHEX.CDECII.'ILO DECI}{ALcoNvmslous

OC:TIITO BI}IABI,

HEI.qDECIUALO BII{rff,.OCIIL TO HEI.ADECII{AL;fiO BACK

BCDmnAEnS

BII{IRI IIRICTIOI{S

BIUARTARITHMETICOIIDPGIC INSIRUCTIOTS

11.1 CoUPUTER0RI$IME?ICI{SmUctIOilS

L1.1.1 tldo'S COUPI,EMENTO4ATIO}IIL.I.z BINANI .0RIITIUEEIC

rL.2 COUpUmntrrc TNSTRUCTiOUS

TT.2.2 IOGIC COMPTE}IENTJJ.z.? IOGIC E}ID1L.2.3 IOOIC0RIl.z.lr IOOIC XOR

TPPESpICES

UODITIED55OOOPCODE .{BI,E

KIU INFOR}TIfIOII

IIU PNGil}T DATASNEET

rIil BIPCK DIII}BA}T

KIU INTER,FACIT{GATASHET

6-266-27

6-27

7-L

8-18-18-38-3&L8-5

8-5

Ll-1

u-1u-3

\-5

tL-511-6L1-6IL-7

9-L

10-1

A-1

B-1

B-2

B-3

l .

B.

Page 6: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 6/244

KIM MONITOR MPORTANTADDRESSES

COLLECTEDKIM SOFTWARE

DISPLAY ROUTINEDIRECTORYVU TAPESUPERTAPETAPE DUPEMOVEA-BLOCKHEX DUMPFREQUENCY OUNTERANALOGTO DIGITAL CONVERSION EMOREAL-TIME CLOCKTIT,IERHEDECBINARY MULTIPLICATION AND DIVISION

16 BrT SQUAREROOTLUNAR LANDERHORSERACEONE-ARMED ANDITKIMMAZEMUSIC MACHINEHUNT THE WUMPUS

KIM DEMONSTMTIONTAPE

INDEXPROGRAM EX DUMPS

SPECIAL APPTICATIONS

EIGHT BIT A TO D CONVERSIONMULTICHANNEL NALOG NTERFACE

KIM/6s00 INFORMATION OURCES

KIM SOFTWARE OURCES65OO MICROPROCESSORUPPTIERS

GENERALREFERENCENFORMATION

TTt REFERENCE HEETS

MOS TECHNOLOGY ATA SHEETS

MI CROCOMPUTER Bt IOGRAPHY

GLOSSARYOF COMMONLY SED TERMS

B-4

C.

c-1c-2c-3c-4t . -/

c-8c-10c-11c-13C-L4c-15c- 16C-L7

c-22c-23c- 26c-27c- 28c-31c-s3

D.

E.

F.

D-1D-2

E-1E-3

F-1F-5

G.

H.

I .

J.

K.

Page 7: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 7/244

3l

Page 8: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 8/244

MICROPROCESSNG FUNDAMENTALS

COURSEOUTLINE

FIRST DAY

I. Introduct ion to Microprocessors and MicrocomputersA. HardwareB. SoftwareC. Nurnber systems

II. Operat ing a Typical Microcornputer: The KIM-1A. Exanining and nodify ing memoryB. Loading and running sample programsC. Using the KIM audio cassette systenD. Using the single step mode

II I .Experinent 1: Loading and Running a Sinple

Program

IV. Microc.omputer Architecture and Elenentary PrograrnningA. Sinpl i f i -ed CPU modelB. Data, address, and control busesC. Memory and I /O addressingD. The KIM monitorE. A selected subset of instruct i -ons

V. Programming ExamplesA. Paral lel data input and outputB. Use of the KIM-1 keyboard and display

VI. Experinent 2: Paral lel Data Input and Output

SECONDDAY

I. Interfacing Microconputers to External DevicesA. Using programmable I /O l ines for device controlB. Device control sof tware techniquesC. Common nterface devicesD. Analog input and output techniques

II . Experiment 3: Control l ing External Devices

I I I . Further SoftwareA. Flags and condit ional branchesB. Count ing and t i rning loops

1-1

Page 9: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 9/244

THIRD DAY

I. Advanced SoftwareA. Binary and decimal ar i thrnet icB. Indexed addressing

C. Indirect addressingII . Interval Timersi and Interrupts

A. Using an interval t imer for t ime delaysB. The 6502 interrupt systemC. Interval t iner t r iggered interruptsD. fnterrupt appl icat ions

I I I . Experinents 5 and 6: Using the Interval Timer and Interrupts

IV. Serial Data Input and OutputA. The KIM-1 serial T/O systemB. 20 rnA current loop and RS-232 interfaces

C. The ASCII codeD. KIM monitor, rout ines for serial I /0

IV. Further Topics as Requested

L-2

Page 10: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 10/244

SNSo

Page 11: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 11/244

P.EADII'IG ASS GI!,IENTS

Ii is -.rirtua]]lr inrpossibla to reaci a.}l ihe r+rltten materia] given

rith this colrrse j-n the tno nights during wir-ich the course is given.

This rnaterial is given with the course to facilitate a hi.gher level

of expertise than can be presented or absorbed in a three-day seninar.

lhe readi-ng assignnents llsted belos are tr-ighly recornnended n order

to receive the most from the next dayrs lecture. These assignraents

O!fLYcover the two nights of the course. &ead these assignnents fo r

infor:nation and understanding, NOTFORDETAILED nowledge.

PIRST NIGHT

SECOT.IDIOHT

KII'I-I USEP,MAi{tJAT

Chapter 1Sections2.1 thru 2. l rChapter lSection h.1Chapter I

HANDWAREMANUAI

Sections1.0 ttru1.2, r.J.1,L.3.3 t1.)+ thru1.L.1.2.L

Sections1.3.2 thru1^^/

L.).2.O

1.5 thru./ l

. ,L.Oo4.J

PRGRA},IM..INUAT

ChapterChapter

Chapters^ !/U-JtUt>tor(

Section

11.3r11"3.1Appendix H

SEMINARWORKBOOK

Basic LogicInterf aceDevices

Glossary ofCornmon erms

l_

2

A5"TER OMPIETION F T}IE SE}"ID[AR:

You should reread aIL the reading assigrunents FORDETAILED OIOh|LEDGE.

Ttrere are many sections of the KIM-I USER ,lAMrAl, H.ARDWIREAI{DPROGRA},I

M4NUALS, hat were not made reading assigrunents. this D0ESNOt MEAI{

that they are wtimportant or not relevant. The reading assignnents were

made a basic understandiag for tbe lecture materia^L. You should reari

FOR.DEf,AILED C{O"{LEEE he entire set of manuals anci the SB{!\AR WORKBOOK.

You will firrd all the jaforrnation in the W0RKB00K, ighly eondensed and

extremely useful.

2-r

Page 12: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 12/244

sNUU

,

Page 13: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 13/244

KIM EXPERIMENTS

WARNING: Your KI}I-I experinental set-up operates on 1ow voltage on1y.

EXPERII,IEM 1 Loadi.og and Rrmning a Sinple Progran

1. KIM-I Ini.tializarion:Tura oa 5V power. Press the RS key (reset). The display should

light e''d show some ramdom hex nutbers.

2. Address Selectlon:Press AD to put ICIM ln address entry uode (address entry mode ls

autonatically seJ-ected after reset). Enter 0000 oo the keyboard.

Obsexive the dl-splay see 0000 tn the left four digLts. You arelooklug at locacloa 0000 in the KIM-I read/wrlt@ ul€rtrorlr Ttre

rlght two dlgits show the contents of thls Iocat,lon. Wtrat are the

cootents? Look at the next location by presslag *. Coatlnue pressing

* to see what aumbers are 1a your DeEory after system start uP.

Do you see a pattera to the ouubers? Go to locatlons 01001 0200t

0300, 0800, etc. and note the nunbers you flad. KIM readlwxLte

meaory rauges froa 0000 to 03I1F. I{hat utlrabers are found ln locatl-oos

whgre there is oo physlcal uenory?

3. Data Eatry:Go to address O0OO. Put KIII into the data entry node by pressJng the

DA key. Press varLous keye and obsenre the display, Togo

co theaext address, press *. For practLce enter the followLng data lnto

the KIM-I memory:

address data

0000000100020003

Ttre * key alJ.ows you to lncrenent the address Ln either the AD orDA mode. Eow do you go to a lower address or to a much hlgher

address?' You must retura to the address mode and key la the newaddress theo contlnue data entry in the DA node.

4. Load{ng a Carned prograu:

Enter the progrrnt a8 lleted on the codl-ng eheet folJ.owtng this page.This prograo w111 cycle through the meuory and dlsplay the conteutsof each locatlon. For uore lnforuatlon consult the prograo aocesin your literature package

00010203

3-1

Page 14: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 14/244

EPERIMENT 1 - Display Routine

MrcRopRocESSoR coDING SHEET PAGE oF

ADDRESS OPCODE MNEMONIC COI&i1I{TS

0000 A2

0001 04

0042 8A

0003 48

0004 A9

0005 62

0006 8D

0007 47

0008 L7

0009 20000A t9

0008 1F

000c 2c

000D 47

0008 L7

000F L0

0010 F8

0011 68

0012 AA

0013 ca,

o014 DO

0015 EC

00L6 E6

0017 rA

0018 DO

0019 E6

001A E6

0018 FB

001C DO

00lD E2

3-2

Page 15: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 15/244

Page 16: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 16/244

Use 8 w-ires to cormect the KIM PA output lines to the I LEDindicators on the LR-25. Connect:

pAO = piu 9 to IApAL = pin 10 to IBpA2 =

pin 1l to ICpA3 = pln J.2 to IDpA4 = pin 13 ro IEpA5 = pin 14 to IFpA6 = pin 15 ro IGpA7 = pia 16 to IE

Use 6 sires to connect the KIM PB ioput/output llnes to theswitches and pulsers on the LR-25. Connect:

pBQ = pin I to SApB1 = pt n 2 ro SBpBZ = pin 3 to SC

pB3 = pi n 4 to SDpB4 = pi n 5 ro pt (0 )pB 5 = pi:r 5 ro p2 (0 )

ac pin 7 used in interrupt e:cp.PB7 plu 8 ro 61[D

2. Eight Blt ParalJ-el Output:

Establish the eight PA lines as OUIPUT LINES by storiag theaumber $I"F fu the PA data direction register at locatloa

$1701. Use the KIM-1 keyboard to do thls. Now use theKIM-1 keyboard to write various hex oumbers into the outputregister and observe the effect oo the I LED lndicators.Go to

address$1700= PAD, press DA ,

thenpress hex keys.

You wllL see the blnary represenLatiou of the hex anrnbersshown in the data di.splay.

Note: Ttre RS key resets the data direction registers to

$00 = INPUT, so you must reenter the $Ff io $1701 each timeyo u use RS.

3. Parallel Input From ExternaL Swltches:Establish PBO - PB7 as INPUT by storLng $00 in the PB datadirection register at locatlon $1703. Remeruber hat thisls done automaticalJ.y by the RS key. Use the KIM-L keyboardto look at the conteats of the PB data register at locatioo

$L702. 0perate the exteroal switches and obserrze the effectou the memory contents.

4. Nr.rnerical Input frou the KilFl Keyboard:The KI!1-1 keyboard is scanned by a software routlne. If no keyls pressed the routlne returns wlth $15 1n the accrnulator. Ifa key ls pressed, the routlne returns w ith the hex key code ln theaccumulator. The followlng program ca1ls the keyboard lnputroutloe aad transfers the contents of the accumulator to thePA output port. This will enable yo u to see the key codes onthe 8 LED iadicators.

)- 4

Page 17: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 17/244

Keyboard Input Test, Program

0000 D8 CLD set binary mode0001 M LDX// estabLish PA as out0002 I'F $FF0003 8E STX@0004 01 $01

0005 17 $170006 20 JSR@ call keyboard input routine0007 64 $6A0008 1F $1F0009 8D STAC send contents of A out to PA

{ 000A' 00 $00.. ,,i* oooB 17 $rz

-, b*- ,r000c 4c JMPG J-oop back for more data

^. ,Q., T r 000D 06 $06

.,'iYt*

\ o00E o0 $oo)

To run thls prograu, go co addrees $0000, Ehea press G. Ttredisplay

wiJ-lgo

dark because lt is :rot used by thisprogram.

5. Prograro Output to the KIM-J. Dfsplay:The KIM-1 display is a softnare drlven multip3.exed seven segnentdisplay. We are going to use the dlsplay to output hex nr.rmbers,Three Eexoory locatioos hold the nuobers which are displayed bythe dlsplay routlne. Ttre leftmoet two diglts are stored ln

$0088, the niddle th'o 1n $00FA, the right two ln $00tr'9. Todisplay a number, we must store lt t4 the approprlate locatlonand then call the display routlne. If a contiauous dlsplay lsdesired, you must include the call instruction in a loop so that

i.t is repeatedly executed. The following prograrn displays0L0203 oa the KIM-I dlsplay.

Display Output Test Program

49 LDLII load first number01 $018D STA@ store lt ln left displayIB $TN00 $00A'9 LDA# load second nr.rmber02 $028D STA@ store it in niddle dispJ-ayFA $FA

00 $00A9 LDAI/I load thlrd nr.rober03 $038D STA@ store lt 1rr rlght dtsplayI .9 $r900 $0020 JSR@ call dlsplay routinelF $rrlF $r r4C JMPG loop back to call routlne agalnlE $1800 $00

000F00L0001L001200130014001500160017

0018100L9

. I 001A

{n I 00tBI 001c[ooroI 0018' 001F

-*'0920002L

^i *,- 'O022v''roo23

3-5

Page 18: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 18/244

Note that thls progrrn staree ee $00*1i" Gc che prograB

begtnnfug aod run the pragr.aa" 'Pr*ss RS te st6F the

Prograo.

As a final project, you rnright like to 1lnk the keyboardeatry program with the display outpr.tt progrso so that thehex key codes are displayed in the righE hand displays.Eow would the prognms given need to be nodifled? Try

it and see what you can do.

EXPERIMENT3 Cootrolliag ExternaL Deviees

1. Single Step Exeeutlon of Programs:Ihe KIM single step function uses the NMI interrupt feature.In order to actj.vate the slngle step futrctlon, you nust loadthe proper address into the II}fI vector locatioas. This isdoue by stoting $00 lu location $l"7F"E nd $1C tn location

$17E8. Ooce this vector has beea loaded the ST key can beused to stop a program and returu Lo the KIM monitor.

You are aow ready to try the single ste:, fr.rnctloa" Loada progrilm and set the address to poiat lo the progran start

location. Switch the keyboard switch to liSorr. Press Gand one lnstructlon vilL be executei. I{hile in ghe SS eode

' the data display wil l only show the first byte of each lnst,cuction.I,lhlle ln the SS mode, you can use the AD and DA modes to exanlne

and nodlfy ey memory l-ocatlon. T1'rePC key w111 recall theprogrErn counter vaLue for the next iastructlon to be executed.

After each i.nstruction, the CPU registers are stored in memory

where they can be examlned or nodi.fLed, this g*ves you theEeaas of checking program execution or nodifiyLng registervaLues between steps. Memory locatlons f,or regl.ster storage

are:

OOEF PCL00F0 .p6H

00FL status reglster (P )

00F2 stack pointer (S)

00F3 acetrmul"ator (A)

00F4 Lndex register (Y)

00F5 index register (X)

2. We are norr going ge r'nrm:giae that our KIM-I Ls connected to an

experlmental apparatus. The devlces to be cont'dolled are hooked

to the elght PA llnes (used agaln as output). 0f course we

will have to use appropriate polrer drlvers and Lnterface devlcee

to convert the TTL output slgnals to whatever is needed. Wew111 al.so have several feedback slgnals to feed lnto our KIM-I.

Ttrese are considered to be si"pLe contact closures aad are

" connected to the PB Lines whlch wtll be prograuned ae lnputs.

The devlces to be controlLed and their laput/output aesignments

are showu in the following schemati-c:

3-6

Page 19: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 19/244

, ,

7

3

fr9

7

LEVEL

lEl'tP

DRAIN

EEATSTART

STOP

li r (1)

nI \ r , /

cL (0 )

oN (1)

(1 )

(0)

Nco

A],ARIY

' .AFFFF

DNT

AGITAIOR

FILLii2

FILL#1

DMIN VALVE

6 ItE.\TrR4 nne

Let SA = Level, SB = Teup., SC = Drain, SD = I leat , Pl=

Start ,P2 = Stop.

3. We ar e now going to use the logical i.nstructions OR and AI.IDto turn individual devices on and off. Load che followingprogrr{ and single step through 1t so you can see the effectof each instruction on the output LEDrs which represenL theactual devices. NoEe that you wiLl have to look uP your own

op codes.Device Control Program

0000 A1 LDA/I $r r eshblish PA as output

2 vu SlAe $IioL5 A{ tDA/l $00 turn off al l devices7 g* STAG $1700A Arr LDAG $1700 get outPut statusD {81 oM/l $40 turn on coffee potF Se STAG $1700

12^p

LDAG $1700 set status

,"15'""-tsbnail*+o*i i"t bn ptni!r*,t-17 ep sTA.9*-JfZoU

-1A aD LDA@ $1702 get iupuE status -*LD h? AbID/l $04 check state of drain valve

r_ lF

2L2426292C2E

^i1\( \Oc'- ' -'  /t v- -

( , ;o" , -, ,r '

:. I_

t , .li

ft '

t ,i :I; -

li )

,l

" i r

\r^rU ,- ,l

\v . , j|t l

tt\

j

Ds glrgr $F9 if drain is open, loop back and check agai.n

A? LDAG $L700 ger sraruss? 0RA// $08 drain ls closed so start EL].L llF;. SreG $1700r:'liLDAG $1700 get statussX AIID/I $f7 turn off ELL]- llL$? STAG $17004,CJMP@$1C4F

etc.

As you run through the progiV.n, turn switch SC on and off co si,uulatehavi.ng the drain valve open and closed.

Program termination: r

ff you want to have a program run just oncer You must end it

with a command to return to the KIM monitor. This can be

done by terminating your Program with: JMP@ $1C4f' .

\D.l

D\ oo

. j : ,-7

Page 20: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 20/244

E)(PERIMENT4 Countlng and T{rn{ng Loops

1. Counting Loops:The following example shows how to set up a cotrnter (bere theX register) to a1low executioa of a progta'n segnent for somepreselected nunber of tlmes. We eould Just as easily used theaccumulator, the Y register or any r/w moory locatiou as a

couDter.

Counting Loop Prograo Example

LI)A# $l'f establish PA aa outputsrA@ $1701tDA/l $00 turn off al l LED'ssrAG $1700

COUNT LDX/ SOe load cormter wLrh 10,^LOOP INCG $1700 iocremeat rhe ourpurrflort

DEX decrement the cor:nterBNEr LoOP if cor"rater not zera. jr:mp to loop

DONE JMPG $1C4Freturn ro rhe monirorRr:n thls program in the SS node and at fu11 speed. Change thecount value and observe the result.

2. f{ming Loops:

. A11 operations lrr the KIM-I system are tioed by the crystal clockoscillator operatlng at a nominal 1.000 MIIz. The osclllator lsquite stable, but nay not be exactly L MEz slnce that would requlrea nore experisive crystal. If you need preclss. g{m{4g, check yourosclllator with a good frequeucy cornrter. Each instruction requiresa specific nr:mber of clock eycles for lts executlon. Ttrus progr€rnsegmeots and J-oops can be used to produce very preclse tlme delays

which are as stable as the crystal clock. The nunber of cycles foreach instructi.oo ls found otr the MCS6500 Srrnrrnary card and l.n theMOS Microcomputer Prograrrming ldanual" Ihe folJ.owi-ug progrErn yleldsa delay of 502 cycles = 502 oicroseconds froo a sr4gle loop.

Time Delay Program cycles

t"Dxlif $64 2LOOP DEX 2

Bl{Er LOOP 3

Ttre loop ls 5 eycles and 1s executed 100 tLmes. the Lal.tla1 LDX#adds

the last 2 cyeles. To obtaln long delays, loops cen be nestedto produce delays of aay length. Now that you have the baslc ideahere is a more coruplicated program. I{e put the ti-oe delay ln asubroutlne so that lt caa be readlly used by other progrsms. ThemaLa program clearg A then lacreuente lt and outputs Lt to the .

PA port. Each cycle 1s delayed by the tloe delay subroutlne.You w111 have to look up the op codes.- Start the oaln progrirm at0000 and the delay subroutlne ar 00L3.

aQ

)- v

Page 21: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 21/244

Tjoe Delay Test Program w:tth Subroutine

:ii::r.:i:,START tDA/l $ff

.L- srAG $1701{ LDA/I $00 clear AI SUOW STAG $1700 look at An CLC$

$D,9Jf,".,$Oradd 1 to A

rS JMPG SHOW J-oop back to SE0W16 ogtav LDY# $ce load 20019 i.uto Y =

i., i$ LOOPY tDX/l $62" load 98rn j-nto X =

iF STXZ $l'51 sr r w8$t€ 3-Eyeles

si i "i LOOPX DEX_9 o , * 'd decremeot X'

'1,* . , -o' t 'BNEr. ' ,1L0OPX if X not zeto, loopx

LS . DEY decreuent Y't"i BNEt''{LOOpy if Y not zero, loopy

clear carry before add

;'x

?-: RTS. return

The total tiue delay here ls TD = 5Ty( Tx + 2 ) + L4 microsec.

Run the program and try dlffcrent values for T., and T*. Youulght try to write a progrEu that would al1ow fou to 6nter tlneconstants from the keyboard ln real tLme as the program ls runnlng.

This is a good progran t,o use to see the effects of eorne of theother accr:uulator instructlons. Replace Ehe CLC, ADC# sequencewith SEC, SBC#, or RORa, ROLa, ASLa, LSRa. If yo u replace a twobyte instruction rrith a one byte lnstruction, be sure to adda NOP to fill rhe gap.

EXPERIMENT5 The Interval Timer

1. Ihe KIM-I j-n.terval tlmer can produce a wide range of progra'rnabletine delays from a few microseconds to 250 nSEC. the intenraltimer consl-sts of an eight bit down counter and a programmablecLock divider which produces time intervals of 1 uSEC, 8 uSEC,64 uSEC, or LO24 uSEC. The auuber of counts and the cor.rnt latervaLare easily controlJ.ed. In thls experiment we sha1l use theintenral tLmer to produce a Llme delay subroutlne. You shoulduse the sarnemain program used ln EXP. 4 to test thls routlne.start ldth Ehe rDLy address E $1707, then try the other valuessholrn in the following Eable:

TDLY Tlor (X) Delay

$L704 1 USEC $64 100 uSEC$1705 8 USEC $64 800 uSEC$L706 64 USEC $64 6400 uSEC$1707 I nSEC $64 100 nSEC

l-. '

:. , :.j. .

3-9

Page 22: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 22/244

Interval Timer Subroutl::e

INTDLY PEALDX/I $54SIXG SLY

WAIT LDAG $1707BEQr WAIT

DONE PI,ARTS

save the eontents of A

load ccuntload counter aad set divide ratlogec tjrner statusif status = 0, wait

restore aecunulatorretura

Note that the interrraL timer always runs io real time. If yousingle step through a program ccntinlng an interval tiner delay,the program wiLl flow rlght through the delay aad aot get huogup for N loops as is the case with tising loops.

H(PERIMENT 6 Interrupts

1. The interval tiuer can be prograurned to interrupt the KIM-I systemevery nnn machine cycles. In this experiment we ar e going to generate

an interrupt every 0.2 eec and uee ttili-s interrupt to run a progrs:lwhich will increment the PA output port" You shouLd run a ualnprogtam which does not use the PA port. flre g,ane prograrus, or Eh edisplay rout ine used in exper iment 1 are good for this purpose.Here is the interrupt rout ine:

Interval Timer Interrupt Program

1780 PHA save A1781 tDAil $Ce ioad A wirh 2001n1783 STAG $170f Load tiner and 3Et aiviae rarlo ro L{t24L786 rDAti $FF1788 STAG $1701 set P.A o out1788 INCG $1700 lncrenent PA lines178E Pl"A restore original A

enable interrupt1-78F RTI teturn froo interrupt

We pu t this program in one of the enoall blocks of t/ w Eemory notused by Bost programs. Set the IRQ interrupt veetor to polnt tcthe above routine by storing the entry addrese in $17FE an d $17FF( store 980 in $17fE and $17 ln $17FF ). You nnrst connect thethe lnterval t imer output slgnal to the IRQ lnput l.lne. This leacconpllshed as follows. Attach a Bpare 22 pLn edge connector tothe expansion Lines on the KIM-I board. Connect the orange clip

to the IRQ input (pin 4). Connect a- ihort jr:mper between pins7 and 8 of the dip plug. Make sure PB7 is prograrnmed as an lnputline eveo though it is used to send the tlmer signal out to IRQ.After a system reset (RS key used) you mrst enable the lntervaLt imer interrupt capabiLlty by readlng locat ion $170E once. thisca n be dcne manually uslng thc KII{ keyboarci. Yo u ar e now readyto run'your rrrain Program. You shctrld obeerve noruel Programexecutlon and apparently simultaneous lncrementing of the PAoutput lndlcat,ors. Be sure the processor atalcs wlth the interruptenabled by storing $00 in locatioa S00F1 befc're running the program.

TI{IS PBOGRAUWILI NOT T"TIIICTIONUNI,SS$ YOU REI'{OVETHE GNO$NDWIAE FRO},IprN # B ou nm 16-PI3l RIBB0:{coNhTcT0fi,"

3-1C

Page 23: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 23/244

Page 24: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 24/244

sAlNo3

Page 25: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 25/244

BXSIC IPSIC DE'IIICES

Although mLcroprocessors 6s:s sallsd (end oftEn are used as) logLc rerplace-

merrts, basJ,c logi,c gates are sttU. needed ln most nlcrocoqnrter systems. ThEr

are rrsed for &rffers, Latches, Ad&ess Decoderse and Sfgnal Condltloners.

Therefore, lt ls tnportat to bave a good rrnderstendl.rog ald rorklag borl'edge

of basl.c J.oglc gates.

Dl€ltal loglc operates tn tb€ btnary nlnber systan. Tberefore, ar\y one

taput or outlmt can oaly be l.a one of tno dlstlact stat€s, elllre a xJ'tr or

s trgltt. Norrnally, references nade !n regard, to a dJgltal sig[a,L, a loglcal-

ttUt ls greater than 2.0 volts and a logJcal ttf,tr 13 Less tban O.8 volts;

thls l.s gal1sd HICIH-TRUE r PGIIWE-IBUE L@IC. IPI{-ItsUE or II&ATIVD-TRUB

tCtiIC ts tlre opposlte, a loglcal ttUr ls lees then 0.8 volts and logleal- ndn

Js greater t'han 2.0 volts. Ott logJ.cal dlagrgs, ttro tJrpe of logJc (PoeXtlve

or Negatlve) ,.s stsnt by the use of a clrc.Le tn ttre fnfnrt/ortpUt lead tcrrch-

lng tbe logic synbol for the eate ta ladlcate a LOU-TRUE nprut/oaq)ut. The

absence of thls clrcle lndlcatps a HIGH-BIIE lrput/output.

PGITTYE IOCICINPUT

NUiAITVE I'GICI![PUT

t{hen the clrcle ls used ln an outprt J.ead of a POSITfV hput gate

or the absence of lt ln a IOW-TRIJEnput Eatr.t lt clunges tbs n:ne of tJe

gat€ bV a<lrt{ng he letter rrNfrln frcrrt of t,lte gatefs name, such 8Er

HIGH-IIR,{IE NPUT GATES-

LOI{-IRUE NPUTOAIEI-

fl

___<{-\ ___-ol--,I l- | lc,-- | br- | l-

a_/aND

-_/

NAIrD4*/ AtrD4_/ NAI{D

L.1-1

Page 26: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 26/244

.0nogll,anatJo of tbe bastc loglc gates folLlons:

I. }ION-IIffERTINGBUFFER

TblE devl,ce l^s used prlnarlly to lacrease tbe load handllag

capabdlltles of aotb€r dsvtce. &e ou@ut of thls dwlce rllJ.

alrry: be tJre sae loglc Level as ltE fuFnrt.

INSIICY:

ff.&s srlt€h closed represeots

"rr{gh lnput

The srltch opeo represents a Low laput

the lar;> on rslreseots a lrgh oulnrtthe lary of,f retrnreseots a J.ow out4nrt

C]'osrng tlte srltch ArrDsthe laq> ON. Ope'rhg tbssrLtcb turrs the lap OFF.

LOGICSIMBOT:

A - Inptrte - otttput

a.e

prlnarJty for loglc leve1 Luverelon. Tbe

rtllalrrys

be ths opposLteLoglc lsvel to

lbe erltcb cloaed repreeots a hlgh lapntThe erttch open rqreamts a 1or lnpntTbe J.arp oB represelats a hrgin @Ulutlbe 14l off rqrresente a lor output

Cl.osbg tbe srltch siA[ shortout tb 3'ap and turn Xt off .

Op€ltfug thc srltch rLLL rmove l'the abmt end turlu on tJo IaP.

A e

I

0

1

o

t?INE T.ABI,E;

BOOI,EAN QUATION:

II. ffYERTIIffi MT'SER

Tbls.devLce ls used

ollutof

t'bl,sdgvice

lts lnpet.

IITAI,OGT:

Page 27: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 27/244

lnu$t tABLEl-

POoLEailE@AITON:

A iE'

??.F INDIII.

srhlc devlce uaed pJnanfly to lndtcate rbsths e aot g!! of lts

lapte 4ts hlgh at tbe sametlneo Tbe ou@ut ls EE}H-TBIIE.

.0$IIOGIr-

I.OGIC $$TBOI,:-

A+e

Both srrttches mrst be closedto bltr t'be ].ap o" If eltheron both srLtcbes ere op@, thsIary rtl-l be off,o

I$GIC SIMSLT

A - IlputA - arEut

ths smet]. clrcJ.e at tb end of tbe€ate tadlcates outErt lsversis"

I srritch closed retrEesents a hJgh lap'ut

A srLtch opq retrneserts a lon lxpute Ttre J.ap oo represots a ldgb output

Xhe 1op off relreseots a 1or ortPut

l&B -INPUS!

a - 0Ut?Ul

A a

1

o

0

1

lr '1-3

Page 28: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 28/244

IAI]TE TABT,E:-

A B eo

0

I

1

0

I

o

I

0

0

o

1

B0oLEArEQITA?ION!

lo B s a

IY. U.OI{D

thls d€wl,ce ls used the sae es t&s .A![D,ercept tbe ortput ls LOtf-IRlIE.

INAIOGI:

4 srttcb c.loeed repreeerils a btgb 3srygA sritch otr].@,etreeets a 1or tnfnrtl&e ]'ap @ rspr€sents a ftl.gb mtpnrtlhe J'ap of,f represents a l.on outpr:*

tt@ bot& sritctps ae closede theyebort out ths lap ald tum, lt off.

If elths or botb sritrcbss open, tbashort rILt be rmoved ard trlrn ths3.fubtm.

IPGIC SIMBOI:

a&8

e

- Iuprts

- Artlnrt

I3IN[ ?TBT.E:-

A B a

0

0

I

L

0

1

o

I

1

I

1

0

L.1-L

Page 29: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 29/244

BO0r.E0s,QU48S:

Ao ?EE'

VO OR

Sls d€rrtce Ls used to ladLeatE rtFD qt lg_&st gq9 of Xts tapts ls

A srrttrh closed retraesents a hlgb floptrtA snttph open repreeeots a 1or tglnt&e 1ry m rspteseots a hlgh otpotlte lap of,f relneoeots a lor outPut

Clootrg of eLtlc or bot& srttcheg

turns tbc flght on" llJ. ths srrLtcbeeuut be open to 'lilnil ths lmp offo

rocrc 4agr:

IRUM TABI,E:

-

EOOI,EAII@IUTION:

A+Bte

A&B

e- IEPute

- 0utpt

hlgho lte o,$nrt ls EIDH-$UE.

A B eo

o

1

1

o

't

o

I

0

1

I

I

b.t-5

Page 30: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 30/244

VI. NOR

ltls d€nlae ls used for the sae Itulpose as the 0R gatee ercept tho

sutlnt ls l0tf-ffiIE.

4{4€'

A sttttcb closed relnesotg a h{gh lnprtAt Bt ,f1 C A srltph open rqpaesats a lor lnpst

lte laP ql rqlresots e rrgh ottrrteB lu1l off relneseots a lcr ootput

Closbg of ettlren or both snlte,hessbrts ouf tie Lry ad Utrns lt

offc Botb Errttthes nrst be oPento ADta o the lalr"

IPGIC SIilBOL:

A & B Irytrts

A OutErt

BINH TA8L8:-

BOOI.EAI{@ATION:

A + I EE

A B a

o

o

1

1

o

I

0

I

1

0

0

o

l+.1-6

Page 31: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 31/244

VII. EKCLItsIgg - OR

fbfu dtrLce ls rrsed to lxdfua.te rbea one, and o.ly oep icptrt is hl€b.

lbe otpnt ls ECiH-tRtIEo

a{3rpcr:

A srltsh ,n t&e ,,1r posltdolrrqneets a hlglt lnpt$

^A srrttch fu the n2r positlm

! relneeots a Lcrr laputthe 14l @ rqp€sats a hrdl outprtTbe 3-anp off represeote a 1or mttrnrt

Fc tbe 14l to be q,r qre srltchurst be ln tbe n3.'t trnsltton and oen1gt be ln tba r/n positJono Oth,ff_

rlse, tb f-ql rlAL be of,fo

IOGIC SI!{BOL:

18,I'THTABI,E:-

BOOI,EAI{EQIIATION:

A B ao

0

I

I

o

1

0

I

o

I

1

0

a(DB. aE+-. ln r e

A&B

a

- Inputc

- Ortput

lr.1-7

Page 32: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 32/244

VIII. EICLIBM-NOB

lbls d€wlcs Ls tne saFe as tbe EXCIJIIfIE-OB gatet ercept tbe Eutput

ls LOI|-IUIE.

IN.EIOGT:

eF orqy rqy to sbort-qrt tholap 8d Ulrtr tt off, ls tob^ge oe suitch ln, tbe nl,ttposXtioa ad one Erltch ia

ths r2r po€Ltt@c 0therrtse,tbe l.anp rtlt be o,o

&OGICSIMBOL:

A&

e- lnputs

- Output,lr:" ..

IRUB TIBI,E:-

A B

ao

0

1

L

o

1

o

1

I

o

o

I

EOOTE/ITIUATTON:

[email protected]+TB:0

I]T. DT.CSCI'SSIOIIF IPW-IRI'E IOGIC

lbe peceedbg dLscnsslon on tbe baglc J,oglc gates hae Dot dlgcnssed

gatee rl,ti LOt{e NE}ASM-$IIE fuputse 'l?r{o ls becanse there ar.e no

I.C.rs epeclf,lca{y deelgnat€d fon IOU-IBIIE l4nltsr h,t a close eraLnatlon

I srrttch tlr tha rln posltdCIa relreeotsg h{gh fDp11tA srttcb lD tbe nl; prosltJ.@,relroeeatea lon lnputlte Lql qn rspreseots a hrgh ouQnrtIlte 3.ep off represelrts a Low ertgxrt

lr.1-8

Page 33: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 33/244

of tbe inrth tables sbons t&e foltow{ng r*,rlatlors}rt5s:

NOIE: b tne foltoming talrrtb t,aLles, sLs & rEn ar:e used lngteadof nlrt & n0n to re&ce tbe enfuslm of rhat ls a I&IG.{Lnlr e rOil betrreea HIOH-B,UEand fp!{-!ffifi lalnt IffIC.b L4, Oc8voLts sFd atr H> 2oOvoltso

HIDH-lRllE INPUT r ISTf-TEIIE NPUT

HIGH-BIIE .eilD trOtf-IRIIE0B

HIOH-IRIIE N.0ND LOLJ-lfgtB ggi

A B e

L

L

H

H

t

E

L

R

L

L

L

H

A B eL

L

E

E

t

g

L

H

t

t

L

H

A B e

L

L

E

H

L

H

L

H

H

H

H

L

A B a?E

I

H

fl

t

H

I

E

H

g

H

L

l r .1-9

Page 34: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 34/244

HIIIH-BIIE OB t

HIDE-IBIIE NOB

IOtf-lBIIE AIID

IIW-tRIIE NIilD

A B at

t

g

H

L

E

L

H

L

H

E

E

A B a

L

t

H

E

t

E

t

E

L

H

H

H

l B eL

t

g

I

t

a

L

H

E

L

LL

I B eL

L

H

H

t

E

L

H

E

L

L

L

lr.1-10

Page 35: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 35/244

Lri -4

ELIP-ff[O-PSrff

I. 8"8 LAICE.

the n S, latcb rat probably the flrst t3pe of ft$-flop enrc tnrflte

lb mks tee 8€ lafnh tato a ctocked (Ltptlepr a d[oc& lnRrt urst be

addedo

II. B-g ErJp EIOP.

Ibe 8.8 fllp-fl.op ls tha slqfleet of t&e f,Llgrf,lqrc

B s e e

0o

I

t

oI

o

t

NO,1

0

1*

]HTM}I0

I

1*

xt{ot altmed

tha addlilpn of ths bto NAIID ates rrlt& t&e clock latrlt cbsses lt

lato a ctocked n S fljp-tXopc Ilbe bprlts (B & S) ca oly &ange tbe

otrtputs (e a O drrllog a fdgb lnfut dloek pnlsec Ibe A€, f,tlp-ffop tu

usualty dran tn tnfs nsrlnrt

p( .

.j! :, !

:",' )

ai r

{i

(n-Reset&S=$et)o

1*l 1*

] ' lo

ol l

Itilort dlmd

lr.2-1

Page 36: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 36/244

DATA RD-frpE FLrp-FIop:

Tire D-type F. F, is

effectively from an 8-S F.

for a data latch, It ca n be made

whenever data is to be trapped

as in shift registers. ft can

J K v

0

I

aI

o

1

o

1

an

0

t

6'tt

used primarily

F. by:

D

CIOCK

J.K IYPE FI,IP-FI!P:

fhe J-K or Master-Slave F. F. is used

and laiched at a given instant in time, such

be effectively made rom two R-S F. F.rs by:

WHERE:Qn = valueof Q duringprevi.ousclock eycle.

TOGGIEOR T-IYPE FLIP-FIOP:

Thc T-fype F. tr'. is used pri.rna-r'i1y n counters. It can be effectively

made ron a J-K (Master-Slave) F. F. by:

CL a a

1

I

U

1

1

o

U

1

I

cycle.

as the

For every complete clock cycle ( | ), O

Therefore, tb T-type F. F. divides the

ItTtr input is held high.

and 0 go through L of their

clock frequency by 2 as long

D a 0

1

0

1

n

U

1

It,2-2

Page 37: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 37/244

Dtr ODEB DN4II, TIPI,NXTNS

DECODERS:

Tbese devices are most comrorrly used for address decodlng. llrery are

avall able ln 2-Llae to l+-llner 3-1lne to B-line, h-Line to LO-Ilae, l+-].lne

to l6-$xe conffuuratiqr. For sinpl5.city, a 2-1jne to lr-llne decoder ls

sbffla belov:

B A o L 2 3

0

0

1

1

0

10

L

L

H

H

H

H

I

H

H

.H

ut

H

H

H

H

t

t'lhere n.0'nls the least-s{gniflp4lt blt Ard rtttt

ls the nost_stgnrflcantbit.

Witn thJs device, tt m.ly takes 2 llnes to speclfy or e'nable L dlfferent

devlces. the outtrnrt is lor-tarre"

DUJIIILTIPLF.XTnS

these gat€s are the same as a decoder, except tbe NAIiD gates have an

addltlqra.l lnprrt for data. lhis devlce eeparates serial data oa olre Llne

B A o I 2 3

0

0

t

t

o

1

0

I

D

H

H

H

H

D

H

H

H

H

D

E

H

H

H

D

where rrDrrls tbe DarApreseoted to the dataJngrt"

to separate Llnes.

Page 38: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 38/244

ENcopEvur&rrPr€Fm$

EIICODEFS:

Ibese devices are used to ccnvert several lnputs lnto a few encoded

Llrres. Tlrese are used m keyboards and nr:.ltLposltlon sritches.

I 2 3 B A

L

H

L

L

I

L

H

t

t

L

L

H

0

o

1

t

o

1

o

L

MULTIPLETffir

l0rltiplexorc or Data $electors are used to seleet qre of several

sources and plaoe tbs data frm tbat source qrto a stngle ortErt llne.

are avaJ'lable ln lr to 1, I to L, and 15 to L ccnfiguratlons,

I

3

data

these

h.lr-t

Page 39: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 39/244

z1

S0

T

0

T

0

T

oT

0

T

0

x

x

x

xx

x

x

x

T

o

x

xx

x

x

x

x

x

T

ox

x

x

x

x

x

x

xT

0

T

T

0

0

T

T

o

o

T

T

T

T

0

oo

o

I

Page 40: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 40/244

]NTERFACE EYICES

OPE}I-COLI,ECTORNGIO

There are severaL instances where a large multiple input oR gate

is needed. rn certai.n cases the common ractice is to create a

IfiRED-OR. This is done by riri:rg tro or more gate outputs together

to create a single inpui into anottrer gate. The WIRED-@ is a LoW-TRuE

output. the l{fRED-oR s used frequent\y to 0R several iaterrupts together.

BUT, this procedure cANNoT e d,onerith just any logic gate. The

standard TIL logic gate has both active pu11-up and active pull-dolrn.

Therefore, if two standard TTL outputs were tied together and one output

was hlghl nhile ttre other was low; each gate would try to make itrs

outprt prevail until finally one of the output transistors of one of the

gates burned out.

I'he only type of loglc that can be

logic. The inte:nal differenees of the

below:

STA}IDAND TLOUTPUTDRTVEA,

OUTFUT

WIRED-ORogether is 0PEN-C0r.T.trCTO

output driving circuits is shomn

OPEN-COII,ECTOROUTPUTDRTVER

Vsc VccEXIEPUil-URESI

0ulP

l+.5-t

Page 41: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 41/244

NOIE: The open-collector logic has no inter4:] pull-up device (neither

active nor passive). Therefore, the gate can 0NtY pull what is attacbed

to its outpu.t to grotnd. Sjnce there is no pull-up device in the gate2

several of these types of outputs call be rired together with no i1l

effects. But their cqrbiaed outputs must have two states (high and 1ow)

to be of any use as an input to another gate. Therefore, an external

pu1l-ry resistor must be added to the jrrnction of the WIRED-0R. The

value of the resistor is caleulated by:

2.6\D\1r .5

E 2 5' ." isE;

W}ERE:

I1X = Total of the leakage currents of all the gates ofthe IfJRED-0Rwhen thei-r outputs are aI[ high.

IS = The lowest mocimrln ctrrent sinking capaliU.ty ofany of the gates forming the WIRED-0Rwben itsoutput is 1or.

TRI.STATE I.OGIC

Il a micro-computer systern transferriry of data from oae part of the

systeua, o another is done via the DA?ABUS. In a large number of systemsl

the number of devices attached to the data bus exceeds tlie load driving

capa.bi'lities of the rnj.croprocessor or other devices ttrat are conrected to

it. Ttrerefore, there ls a aeed to buffer the sectious of the system to

ttre data bus. There is always more than one secti@r connected to the data

bus, so for intellegent commrnications, one and oaly one can cormrunicate

to the bus at arry one time. Therefore, there is a need to turn off on

discorurect al'l but the section ttrat has been enabled by the processor.

b.5-2

Page 42: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 42/244

But a large nr:rnber of devices only have tro output states (high or lon) -

So, there is a need. for a special output that has tbree statcs (higb, 1ow,

or off) . This is referenced to as tbee-state or TRI-STATE1ogic. The

logic symbols for these devices are belol:

ITIGII-TBUEEN^ABI"ES

IOhI-TRUEETIABI.ES

I+.5-3

Page 43: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 43/244

These gates when enabled, through the separate enable input, will

function like the standard gates that we have abeady <iiscuss€d.

Butr rhen they are disabled their outputs go to a high-inpedance or

off-staie. Therefore, many -state devices caa be attached to a

common lne withcut unwanted interaction as long as one ald onJ-y one

is enabled to output -uo that line at arry given tine.

BUS TBA}ISCETVERS

lhe TRI-STATE devices that have been di-scussed are essential

to one-way cornmunications to a bus, BUT, the processor and a number

of other derrices are by-directional and need to cqnnunicate in both

directions with the by-directj.onal data bus. this caused the creation

of BUS TRAIISCEIIERS. BUS TRINSCEIVER.S.re effecti.vely two IRI-STATE

buffers strapped together in sucb a nanner as to tie the input of each

buffer to the output of the other. Ore of the jr.rnctions is to be

attached to one of the d.ata bus lines whlle the other junction is attached.

to the sane res'pecti're line of a device or section that is to be buffereci.

One and only one gate is enabled at any given tjrne. The gate that is

enabled is deterrnined by the ciesired direction of communlcations (tr't

or OUT). This is uzual1y done by the READIdRITEcontrol line. There

gf,'susuelly fonr strapped pairs in one IC, In some Bus lbansceivers,

one of the junctions (j.rrput to output) is not rnade within the fC to

facilitate interfacing a bj--di-rectj-ona1 bus to a split data bus or

de'rice. If this is not desired cn needeci, the user can externally make

the connection.

IN/OUT

Page 44: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 44/244

s3g3ol

Page 45: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 45/244

ANALYZING OFTUAREROBLEMS

INTRODUCTION

Theobiect of this chapter ;s to presenta general procedure sed o

design sof tware to solve a prob' lem. This procedure s completelymach' ine

independent, nd' i t can be appl ied to any sof twareproblems ou are l . ikely

to encounter . Themost important hing to reme+nberbout this procedure

is that you do not concern ounsel f wi th the prograrnminganguage etai ls

unt i l wel l into the solut ion. This is t rue of even the seemingly t r iv ial "

programs. There s no waymorecertain to resul t in a programhat is

sloppy' i l l -designed, and hard to debug han to try to wr i te the program

direct ly f rom the prob' lem ef ini t ion. To be ef fect ive sof twaremust bedesigned i rst and then implementedsing the correct techniques.

5.0 The Sof twareOesionProcedure

The systemat icapproach o developinga prograr lned ystem s a logical

extensionof the normalproblem olving cycle engineersand scient ists

haveemployedor years. I t consists of sevenbasic steps:

1.

2.

3.

4.

5.

6.

7.

problemdef ini t ion,

prob' l mpart i t ioni ng

algor i thm developmentor eachpart i t ion,

wr i t ing the program or eachpart i t ion,

debugging achprogram,

integrat ing the programs ack nto the system,and

f inal system ebug.

Using this technique, the problen js brokendown nto smal ler and smal ler

sub-problems nt i t they are a size whichyou can dea' lwi th convenient ' ly

and ef fect ively. This is becauset is mucheasier to focus your at ten-

t ion on one smal ' l sect ion of the system t a t ime. Youdevelopeachof

these blocks and sub-blocks nto a groupof detai led f lowcharts and pro-

grams,eachof which is tested and debugged. Theyare then inter faced

and the whole system ested. This systemat icapproach s intended o help

you minimizeerrors, since the smal l highly local ized programs re much

easier to thoroughlycheckout than a single large, spreadout program.

5-t

Page 46: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 46/244

Graphical ly, the procedure s ' i l lustrated in Figure 1.1. Youstar t wi th

a central problemand part i t ion it jntcl logical blocks, solve and debug

eachof the blocks, and f inal ly integrate and ref ine the blocks into the

f inal system. Theremaybe one or many evejs of blocking, depend. ingn

the complexi tyof the problem. |. l i th exper ience, ou wi l l f ind thjs gen-

eral approach o be the mostdi rect and consistent way o implement

workingsof tware system, egardlessof s ize. Lessorganizedapproaches

maywork for smal ler systems,but you wi11 becomeopelessly angled as

the systems row n size. I t is best to learn the general procedure nd

use i t on al l prob' lems, mal l or large. Thegreatest disasters usual ly

occur when he who' le esign procedure s dispensedwith becausehe pro-blem s too " t r iv ial " to warrant the general approach. Conversely, ogged

appl icat ion of this approach an makemany ormidableproblems urn out

far bet ter and faster than ant ic ipated.

In the remainder f this Jessonwe wi l l in i t iate our study of the general

sof twaresolut ion procedure. Lessons hree hroughTenwil l then expand

and ref ine the techniques seddur ing the solut ion process.

5.1 Step 1: Def ine the Problem

As wi th any procedure or solving any problem, he f i rst step is always

the same and the hardest) : def ine the problem. For the case of sof tware

problems, ou mustdecide exact ly what the f inished sof twaresystem s to

do. This def ini t ion of the operat jonal character ist ics you want the f inal

system o have fs cal led the funct ional speci f icgt ion. Natural ly, i t is

easier to def ine and speci fy solut ions for some ype of problems han for

others. Problems hichare concerned ith the implementat ionf speci f ic

features are general ly easiest . Prob' lems hich require both judgement

and imp' lementat ionre the hardest . In the f i rst case, the task is to

f igure out how o do something. In the later case, i t is of ten a quest ion

of whetheror not the job can be done, and i f i t can, what is the best way

to do it . For example, program o wr j te single data bytes onto a mag-

net ic tape uni t is a fai r ly speci f ic problemwith a sj rni lar ly st raight-

forward funct ional speci f jcat ion. There s l i t t le conceptual esign work

to be done. I t is mainly a quest ionof using a programo control the

5-e

Page 47: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 47/244

I'IAJORSYSTEMLOCK

SYSTEI'ISUB-BLOCK

sYsTEt'lSUB.BLOCK

DEVELOPALGORITHM

SYSTEMSUB-BLOCK

II{TERFACENDDEBUGMAJORYSTEI'ILOCK

FIGURE "1 GENEML ROBLEMOLUTIONROCESS

)^

5-J

Page 48: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 48/244

selected hardware. 0n the other hand, he program equired to use this

program s part of a system o format sequencesf data bytes into recordson the tape wi l l require considerablymoredesign. Youwil l have o de-

cide on record length, record marks, whetheror not you want to format the

data with par i ty and/or checksum,and so on. Not only that , you must

decide on the probableusageof the rout ine. Thequick format program

required to test a tape deck's operat ion in the lab is apt to be qui te

di f ferent f rom a general usageexchangeorrnat or a tape l ibrary. In the

second aseyou mustconsider problems f compat ibi l i ty wi th di f ferent

hardware, el iabi l i ty, userdocumentat ion,nd many ther detai ls. Al l of

these quest ionsshould be set t led in the funct iona' l speci f icat ion before

you proceed o the next design phase. l rJe i ] ' l examine oth of these

casesas examples f general problemsolut ions in th' is and later lessons.

5.1.1 Informat ionRequiredFor A Funct ionalSpeci f icat ion

It is di f f icul t to give a compiete ef ini t ion of informat ion hat is always

required for a funct ional speci f icat ion. I t var ies widely f rom problem

to problem. Simp' le ystems an be speci f ied adequately n a few pages.

Large, cunplexsystemsmayhavehundreds f pagesof speci f icat ions andst l l l be inadequately ef ined. However,he fol lowing informat ion should

alwaysbe present .

1. A conciseproblem tatement. Oneshort paragraph escr ibing

the prob' lemhe system s beingdesigned o soive.

Required ardware. Youmust knowwhat signals and devices are

avai lable or required. The exact l /0 or memory ddresses renot importantat this point , but you must know he hardware

you wi l l be using.

3. Required of tware nter faces. When esigningprogramsr ou

wi l l of ten be placing them nto systerns here hey wi l l have

to co-exist with or ut i l ize other programs. I f th is is to be

the case, i t should be noted in the speci f icat ion. In this

case, exact detai ls are necessary; ou shouldment ion he

2.

5-lt-

Page 49: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 49/244

relevant systemstandardor format ( i .e. , al l output must

conform o system /0 standard -13) for al l rout jnes to be

inter faced. These equirements i lJ of ten havea signi f icantaf fect on your design.

4. A complete escr fpt ion of how he system s supposedo funct ion

when ompl te. This is usual ' ly the ' longestpar t of the func-

t iona' l speci f icat ion. This sect ion should' includea descr ipt ion

of user interact ion (i f any) , data required, output produced,

special featunes, error condi t ion handl ing, etc. In other words,

a complete escr ipt ion of how he systemwi l l look to the wor ld

from the outside wi th no considerat ion or how t wi l l look

from the inside.

This problemmakeswr i t ing the sof twarespeci f icat ion sound ' ike a rather

formidable task. I t is. A good, wel l thoughtout speci f icat ion is the

key to a good ( i .e.successf ,uj ! ) project . I t is wel l worth the t ime re-

qui :^ed o think the problem hroughcompletely. I f you knowwhatyou have

to do' i t becomes ucheasier to proceed irect ly to a solut ion than when

you must constant ly stop and star t to f i l l in the blanks in the problem

def ini t ion. Fewspeci f fcat ions are ever total ly complete,but you should

str ive to get as close as possible beforeyou star t the actual design.

0nceyou becomemmersedn the detai ls of the solut ion, i t becomes uch

moredi f f icul t to separate he normal mplementat ion rob' lemsrom those

causedby a fundamental esign' logic error .

Example .1

Consider he design of a program o inter face a magnet ic aperecorder to microcomputer .This program i l i control the transfer

of para' |1e1 ata betweenhe tape deck and the microcomputer . I t

wi l l control al l tape deck hardwareunct ions which are required to

perform hese data t ransfers. The ol lowing is a possjb1e unct jon-

al speci f icat ion.

5-5

Page 50: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 50/244

Page 51: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 51/244

READ =+ ADVANCEAPF i II

--> READ/WRITE

ENDOF TAPE

_> TRANSFER

+- DATA(S)

+- READY

WRITE ..+ ADVANCEAPE

-..-> READ/WRITE

<_- ENDOF TAPE

HIGH F PROTECTED1

LOI,JF ENABLEDI.JRITEPROTECT

DATA

TRANSFER

<-- READY

ENDOF

_->

TAPE

<--

ADVANCEAPE

ENDOF TAPE

FIGURE5.2

TAPEDECK IMINGJAVEFORMS

t .n

Page 52: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 52/244

Theabove xamples thespeci f icat ion

oran I /0 dr iver rout ine. Al l anI/0 driver does s control the transfer of data betweenhe cqnputer nd

an I /0 device. Note hat the specif icat ionmakes o mention f the re-

quirementsor init ial izat ion of the tapedrive, how he data is to be

formatted, tc. This is becausen I /0 driver is str ict ly concerned i th

transferr ingdata to or from he device t interfaces. I t is the responsi-

bi l i ty of thoseprograns hich t i l ize an I/0 driver to interpret the data

andsignals eturned. A completeape I/0 system hichwil l use his

dr iver wi l l be discussedn Lesson .

11.2 Using he Fungt ional peci f icat ion

The unct ional specif icat ion s the baseuponwhich ouwil l bui ld your

system. I f i t has been roperlydesigned,t wi l l support ndguide he

rest of your problem olvingeffort . l f i t hasnot been roperlydesigned,

your project is probablydoomedo failure or overrunbeforeyou evenget

started. Therefoie,once ouhaveestabl ished funct ionalspecif icat ion,

use t. I f you don't , youare apt to run into that dreaded oftware

disease nown s "creepingeatures". This happens hen n inadequaterdisregarded roblem pecif icat ion l lowsnon-specif iedneat" eatures o

creep nto the systgnafter rrprkhasbegun. This canbe disastrous,be-

cause hanges asily ac@rmodatedn the planningstagecanrequire massive

effort and e-designmrk during he impler i lentat iontage. Usual ly, he

farther work hasprogressed,he moreeffort is required o make ny sig-

nificant changes. Thedisease s often well advancedeforedetectedand

it can be fatal to even he best softwareprojects. (Professional ngineers

note: marketing eparfinentsre notoriouscarriers of this disease. l,lhile

they seldom how ny syrnptoms,hey are knowno infect entire departments.)

Theabove orrnents houldnot be construed o meanhat advancedeatures

are to be shunnedr omitted. Far from t. Themicrocomputerakeshese

featuresboth possibleandattainable. blhat s meant s that they should

be deslgnedn from the top, not added rom the side. Therefore,when ou

design our funct ional specif icat ions, ake someime. Brainstormor a

whi ' leandcome p with a l ist of features hat the system anreal ly accom-

pl ish. Try trading off some ardwarendsoftware o lowercost or increase

Page 53: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 53/244

systemperformance. Microcomput€rs akewholenew ields of features

possible, and it is worth your t ime to see i f you can f ind sonreor your

project . But once that funct ional speci f icat ion is done, st ick wi th i t .

I f real ly drast ic changes re needed, ou wi l l probablybe bet ter of f

star t ing over than t ry ing to patch an inadequate peci f icat ion.

5.2 Step 2: Part i t ion TheProblem nto Funct ' ion locks

0nceyou havecomp' letedhe funct ional spec' i f icat ion or your system,

you can begin to part i t ion it into operat ional blocks. An operat ional

block is a sect ion of the systemwhich is responsible or per formingsome

speci f ic system unct ion. 0perat ional blocks can be as complex s a com-

plete f loat ing point ar i thmet ic package r as simpleas a few instruct iondata conversions. n system perat ions, control passes rom one funct ional

block to another as the program xecutes. In this respect the block diagram

can actual ly be considered s a type of overal l system lowchart . I t d j f -

fers f rom the f lowchart in that i t does not speci fy lhe actual algor i thns

used o implementhe funct ions (see Sect ion5.3) . You i rst design the

structure of the program s a ser ies of successivelymoredetai led opera-

t ional blocks unt j l you reacha level of comp' lexi tyhat you can deal with

ef fect ively. You hen proceed o algor i thm developmentor each block.

Blocking and part i t ioning are the cornerstoneof convert ing a funct iona' l

speci f icat ion into a funct ional program. Youcan haveas many evels of

blocks and sub-blocksas the problem equires. l ,Jhenou are f i rst learn-

ing,you should not hesi tate to block down o sect ions which seem ' lmost

t r iv ial . As you gain exper ience ou wi l l be able to judge moreaccurately

what size blocks you can comfor tablyhandle. Also, extreme' ly nvolved

or complex ect ions of a systemmay equire muchmoredetai led blocking

than the morestraight forwarrd ect ions. The f lexibi l i ty of blocking is

that i t a l1owsyou to easi ly adjust the level of detai l to match he com-

plexi ty of the problem.

( .2.1 Decidingon the System locks

Thedecision of what blocks to divide the system nto ini t ia l ly is usua' l ly

made y r.efer . r ing o the character ist ics def ined in the funct ional speci-

f icat ion. Some gmmonni t ia l blocks are:

1-9

Page 54: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 54/244

a.

b.

input operat ions,

programunct ions ( t ransfer data, searchmsnory,do ar i thmet ic,

etc. ) ,system ontrol and t iminE,

output operat ion, and

major data structures ( tables, l ists, etc. ) .

c.

d.

e.

Theseblocks are then drawnand interconnected o form the systemblock

diagram. I t is important o rememberhat at this ini t ia l point you are

concerned i th ident i f icat ion of the major system tructures. Youare not

yet concerned i th thei r actual operat ion. Thedesign of how he opera-

t ional blocks wi l l implementheir funct ions wi l l cormence nce he overal l

systemstructure has beenestabl ished. In theory, i t shouldbe possible

to implement he system n either hardware,software, or some ombination

of hardware nd sof twareat the end of the blockingoperat ion. This

leavesyou with the maximumlexibi l i ty for actual system mp' lementat ion.

Example.2

Let 's take the speci f icat ion for the magnet ic ape I /0 dniver we

wrote in Example .1 anddo the block diagrams or that system.l . lecan see from the funct ional speci f icat ion that we wi l l require

blocks to input data, output data, and control the data t ransfers.

Figure 5.3a shows n ini t ia l block diagram or this s' imp1e ystem.

Note that i t shows l l data and control s ignals that .are passed

through the system. Since the data is transferred to and from the

tape deck in paral le l form, no fur ther blocking s neededor the

Input and 0utput b' locks. Howevet ' ,he control block is required to

performseveral operat ions. I t mustdetect endof tape, control

the read/wr i te l fne, sensea wr i te protect condi t ion, and advance

the tape. This block is suf f ic ient ly complex o warrant sub-blocking.

I t is shown ub-blockedn Figure 5.3b. Note howal ' l inputs and

outputs of the sub-blockdiagrammatch hoseon the main block

diagram. It is the same nter face expandedo showmoredetai l .

5-ro

Page 55: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 55/244

DATA INPUT

DATAOUTPUT

TAPEDATA N

ENDOFTAPE

WRITEPROTECT

READY

TAPEADVANCE

TRANSFERATA

TIMING

AND

CONTROL

ERRORNDICATOE

DATAFROM YSTEM

FIGURE.3a MAGNETICAqE/0 BLoCK IAGRAI1

ENDOFTAPE

OETECT

TAPEADVANCECONTROL

READ/t.IRITESELECT

DATA HPUTINTERFACEENDOF TAPESTATUS

TAPEADVANCE

WRITE ROTECTTRANSFERATA

READY

FIGURE.3b TIMII{G NOCONTROLUB-BLOCKIAGRAI'I

FTGURE.3

5-u

DATAOUTPUTINTERFACE

Page 56: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 56/244

5.2.2 Checkino he Bloc! 0iaqram

0nceyou haveblockedout the system,step back and see i f i t wi l l neet

your funct ional speci f icat ion. Be sure you haveaccounted oral l inputs,outputs, data transformat ions,systems unct ions, error condi t ions, and so

on. A useful test is to l ist al j the requfred systern ,eaturesand ver i fy

that you have ncluded al l the blocks required to perform hese funct ions.

Af ter you haveconf i rmed hat everything s there, be cer tain that the

blocks are detai led enough or you to proceed n to the togic design im-

plementat ion. I f some f the blocks sound ague r"only par t ly def ined,

you mayneed o add moreEub-blocks n that area. Repeat his procedure

unt i l you are convinced he system ef ined by the block diagran matches

your funct iona' l speci f icat ion. Once ou are sat isf ied that you havecovered

al l the required funct ions in suf f ic ient detai l , you are ready to proceed

to the next step and begin designing he actual logjc funct ions required

to implementhe systemb' locks

At this point i t is important o recognize hat i {hi le we are going to

cont inue using the assumpt ionhat we are designinga sof twdresystem, his

is not always he case. The problem peci f icat ion and blockingmethods e

havepresented o far are perfect ly general ; they can be appl ed with equalfaci l i ty to hardware,Sof tware,and hardware/sof twareystem esigns. In

the lat tercase, the opt imumrade of f betweenhe two implsnentat ion ech-

niques wi l l be looked or at this point . Background ect ion C is devoted

to how hese fundamental esign decisionsare made.

5.3 Step 3: Alqor i thn Developmentor LachPart_i t io l

Up to this point we haveonly beenconcerned i th. the funct ions to be

performed n a block (or non-funct ional) eve1" br i th algor i thmdevelop-

mentwemake he transi t ion from logical systempart i t ions to the actual

logic required to implementhe system. Most of our algor i t t rn develognent

wi ' l l be doneusing f lowcharts. The lowcharti s of en ment ioned s the

most importantstep in the sof twareprob' lem olut ion. This is plainly not

t rue. The f lowchart is simply a tool in the cont inuing design process

which beganwith the problern peci f icat ion. I t is no rnore orrect to si t

downand star t drawing f lowcharts than i t is to sj t downand star t wr i t ' ing

5-t2

Page 57: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 57/244

machine ode. Both operat ionshave heir place in the problem olut ion

procedure. Nei ther is sat jsfactory alone. Flowchartsare one possible

way o convenient lydevelopand check he logic of the problem locks forcorrect operat ion. Using lowcharts i t is possible to developprogranr

logic independent f any speci f ic computer . I t is also mucheasier to

f ind logic errors in the symbol ic lowchart than to try and hunt them

down nce hey are commit tedo programmplementat ion. (This is par t icu-

lar ly t rue wi th the relat ively pr imi t ive debug aci l i t ies current ly pro-

vided by microprocessor anufacturers.

5.311 Flowchart S.ymbol

Thedata processing ndustry has a standardset of f lowchart symbols nd

you shouldadhere o these in the interest of making our work usable to

others. ( IBMproduces n excel lent temp' late f al l the standardsymbols;

i t is widely avai lable in stat ionery supply houses.) Themostconrnon' ly

used symbols nd thei r funct t 'ons re shownn Figure 5.4 (see page -]di .

Thesesymbo'ls hould prove adequate or the construction of any flow-

charts you wi l l require.

( .3.2 Typeof Flowcharts

Flowcharts an be drawn o representalgor i thmsat any desi red level of

complexi ty. The two mostcormnonlysed ypes of f lowchart are the logic

f lowchart and the machine-dep.endentlowchart . A logic f lowchart repre-

sents algor i t lm logic in general operat ing termswith no reference o

speci f ic machine eatures (registers, memory, lags, etc. ) . Themachine

dependentlowchart presentsalgor i thm logic wi thin the context of the

features providedby some peci f ic processor. I t is advantageouso

ini t ia l ly draw a logic f lowchar: t or each unct ional block in the blockdiagram. Theseare then thoroughlydebugged nd usedas the basis for the

machine ependent lowcharts required for the computer ou are usin9.

I f you program n higher level languages, ou wi l l hardly ever use machine

dependentlowcharts. The ogic f lowcharts required to def ine the algo-

r i t l rn to be gsedare al l that are required. This is because l l of the

ma.chineependent etai ls wi l l be handledby the language rocessor.

5-L3

Page 58: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 58/244

SYMBOLS EXAI-IPLESPROGRAHLOW.ARROWSNDICATESEQUENCEHATTHEPROGRAHOLLO}JS.

PROCESS.HEFUNCTIONPECIT: IEDIN THERECTANGLES TOBEPER.F0RMED,.9. A IS T0 BEMULI-PLIED Y 2

PRE.DEFINEDROCESS.HEEXTER-NALROUTINEEFINEDY THENAIIIEIi 'I THERECTANGLES TO BT IIIVOKEDT0 PERF0RI4TS FUNCTI0N. .9. THEROUTINEEFINEDY THENAME'TTI' 'IS TOPERFORMFUNC'IION.

A=AX2

DECISIOI{.THEFLOI.JFTHEPROGMI4I.IILLBE BASED NTHECONDITION

SPECIFIEDNSIDE HEDIAMONO.e.g. IF A = ?, ADD. 0THERTJISEADD .

I/O OPERATION.HE NPUTOROUTPUTPEMTIONNDICATEON THEPARALLELOGRAMS TO BE PERFORI4ED,e.g. THEVALUE F THEVARIABLEIIAIIIS TO 8E SENT OAI I OUTPUTDEVICE.

TERI''IINALRINTERRUPT. HEOVALINDICATES}IEBEGINI{INGREI{DOFA PROGMI'IRAN INTERRUPTPERA.TI0t l , e.9. TNTRY0INTFOR 0UTINE

EIITER TI

,.TTI" .

CONNECTORS..IHET.ILOI.I,IIJST ROCEEDO ANOTHER\ / t j PAGER ANoTHERLACEN THESME PAGE, SEA\.-/ \,/ coNNEcr0RF IT Is AltKt{ARD0usEANARR0IJ.

CALLTTI

A=A+1

A=A+?

PRINT

FiGURE .4 FLOI.JHART YIIBOI.S

Page 59: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 59/244

Simi lar ly, general algor j thmsand problemsolut ions which are to be

impiernentedn a var iety of computers rebest

presentedsing

Iogic f low-

charts. Any user can then take the general logic f lowchart and use i t as

the basis for the imp' lementat ionf a solut ion on any computer r in any

language. As you gain exper iencewith your par t icular instal lat ion, you

wi l l be ab' le to go direct ly f rom the block diagrams o f low charts that

are a cross between urely logical and purely machine ependentlowcharts:

However,f you intend to save he algor i thm or solut ion for documentat ion

or possible use on some ther system, t would be a good dea to draw a

good ogic f lowchart af ter the system s completed.

5.3.3- How o DesiqnAlqor i thms

Thedesign of program lgor i t f rns' is actual ly

vast subject indeed. Wewi l l be cover ing a

next eight lessons. However, e can discuss

usedwhen ranslat ing a logical systemblock

the design of sof tware, a

port ion of that subject in the

some f the generai Procedures

to an algor i thm.

1. Decidewhat the block is to do. This is the same tep as whenwe

ini t ia l ly speci f ied the problem. The only di f ference is thatj t

isnowbeing done or a smal l , local program ather than for the whole

system. Natural y i the label on the block w' i ' l l provide a goodstar t -

ing place for this descr ipt ion. Usual ly a one or two sentence

descr ipt ion of the operat jon to be performed s al l that is required.

Decidewhere he data to be operatedupon s located. Is i t read in,

passed rom another block, looked up in a tabl€, or what? Youwi l l

needoperat jon blocks to input the required data. t l lh i leyou decide

where o get the data, decide if you need o do anything special to

i t before you use i t . Does t have o be complemented? otated?

Masked?Scaled? I f so, you know ou wi ' l l needsome ata transforma-

t ion blocks in the f lowchart .

Figure out how o perform he required operat ' ion. This is the real

meat of the algor i thm development. This wj l l be whereyou combine

processblocks, data and decisions to convert the data from the input

2.

J.

(_1 c

Page 60: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 60/244

4.

format to the output format. This par t of the processwi l l usua' l ly

account or the largest por t ion of your work. Remember,evelcpingthe algor i thm is an i terat ive process.

I t wi l l usual ly take several r iesbefore you get the algor i thrn

correct . Star t out by wr i t ing down he sequence f operat ions o

be performedn the order they must be performed, ike " read in data,

then test for control characters, then test for iower case characters" ,

and so on. This wi l ' l g ive you that al l important eel for the se-

quences f actions which are to be performed. After you have hegeneral f low, add the processand decision blocks you need o actua' l ly

perform he operations

After you havean algor i thm that shouldwork, t ry i t out wi th data

to see i f i t doeswork (al l on paper, of course) . Try to imagine

every possible data condi t ion that could occur and then be sure your

algor i thm can process t correct ly. Youmust be cer tain your logic

is correct in the algor i thm beforeyou proceed o cod' ing. Be part i -

cular ' ly careful that your algor i t l rmcan handleerror condi t ions.

This is an area which is par t icular ly suscept ible o errors which

wi l l be very hard to detect . Be pat ient and thorough. Timespent

get t ing the logic correct in the algor i thm wi l l be t ime saveddur ing

system ebugging. Think f i rst , programater .

Decidewhat to do wi th the f inished data. Does t have o be special ly

formatted? Doyou save t? Pass t back o a cal l ing rout ine? 0ut-

put it? Add the blocks reguired to get the output data ready for thereceiving routine or device.

Keep he structure simple. Hake t a goal to keep he f low straight-

forward, logical and clear . Be part icular ly careful about how ou

enter and exi t f rom the rout ines. Thereare real ly only a few simple

structures you shouldever need o use in construct ion of any algor i thm.

Wewi ' l l examine hese structures in the next few lessons.

5.

5-l.6

Page 61: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 61/244

Example .3

Let 's develop he algor i thms equ' i red or our magnet jc ape dr ive

inter face systemused n Examples .r andS.z. The irst thingthat becomespparent s that the data input and output blocks are

very large blocks and very smal l programs. Thedata is to pass

through the rout ine in paral lel wi thout beingmodi f ied. Thus he

f low charts for those blocks would be simply one block each:

The obviousconclusion s that the major i ty of these f lowcharts wi l l

be concerned i th when o read and wr i te the data, namely he t iming

and control blocks. Let 's take the read block f i rst . From he t im-

ing diagramwe can see that for this tape deck the sequence f control

for reading a data byte from the tape is advance he tape (f rom the

manufacturer 'sspeci f icat ion we f ind that i t automat ical iy advances

in one byte increments) , est for Endof Tape, set the Read/Wri te

l ine to Read,wai t for data ready, read the data, then exi t . The

algor i thm for this funct ion is shown n the logic f lowchart in

Figure 5.5. Note how he f ' lowchartdef ines a logical solut ion to

the prob' lem ithout reference o any speci f ic hardware.

A simi lar procedure s used o design the algor i thm for wr i t ing data.

For l , | r i te operat ion the t iming waveform peci f ies that we advance

the tape, test for Endof Tape, test for l , l r i te protect , set the Read/wr i te I ine to I ' l r i te, set up the output data, st robe the data t rans-

fer l ine, wai t foeData Ready nd exi t . This f lowcharr t s shown n

Figure 5.6. Using these two logic f lowcharts we could then draw the

machine ependent lowcharts or proceeddirect ly on to the actual

program

INPUTDATAFROM APEDECK OUTPUT ATATO TAPEDECK

5-L7

Page 62: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 62/244

EilTER

TAPEREAE

AEVANEE

TAPE

INPUT

TAPE lECK

STATUS

SETERROR

INDICATOR

OUTPUT

TRAilISFER

SI6NAL

I}IPUT

TAPEDECK

STATUS

DATARFADY

FIGURE.5 TAPE ECK EAD OGIC L0l ' l HART

Page 63: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 63/244

INPUTTAPE

STATUS

SET ERROR

INDICATORROTECT

FERSIGNAL

I NPUT

TAPESTATUS

FIGURE.6

TAPEWRITEOGIC LOt, lHART

Page 64: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 64/244

Page 65: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 65/244

Page 66: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 66/244

Page 67: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 67/244

QUESTIONS

1. Descr ibe he general sof twareproblem olut ion process. Is this the

wayyou normal lyapproach roblems? Doyou think the generai proce-

dure can be appl ied to other , non-sof tware roblems?

2. l r lhy s i t important o establ ish and fol low a funct ional speci f icat ion

at the outset of the solut ion to a problem?

3.Descr ibe"creeping eaturest ' . Have ou ever seen t in act ion? Whatwas the cause? Whatwas he resul t?

4. Descr ibe he di f ference between logic f lowchart and a machine

dependentlowchart . Whichdo you usual ly use? If you usual ly use

a machine ependentlowchart , do you usual ly drawa logic f lowchart

of the solut ion for future use?

PROBLEI{S

1. l lhat value of A wi l l be pr inted in the example low chart below:

B=B*2

B=A+1

Page 68: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 68/244

2- The Fibonacciser ies F(N) is a mathemat ical umber equence hich is

def ined for al l integer values of l { by the foj lowing algor i thmF(0) = g

F(1) = I

F( t t1= F(N - 1) + f(H - 2) for al l N > I

For examPle, (2) = F(2 - l ) + F (2 - 2)= F(1) + F(0)

=1+0

= t .

Thus he Fibonacci eries can be represented s followsN01?34567 N

F(N)0 rL2 3 s8 13. F(N 1) + F(N 2)

Draw he flowchart o compute (N) for any valueof N.

3. Draw flowchartwhich ncorporates he flowchartdevelopedn

Problern, to computendprint the f irst 100valuesof N and F(N).(Assumehat the cormandPrint" is suff ic ient to print a value.)

4. Onesimplemethod ften used o multiply tuo numbersogether s to

repeatedlyaddonenumbero itself. For example, * 4 can be thought

ofas 3 + 3 + 3 + 3= L2. Develophealgor i t tun omult ip ly two num-

bers using this method. Draw he flowchart. Doyou feel this is an

efficient way o multiply two numbers?s there any way o make his

basic algori thmmore ff ic ient?

5-U

Page 69: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 69/244

Page 70: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 70/244

THEHARDWARE/SOFT}JAREPPROACH

TOMICROCOMPUTERESIGN

INTRODUCTION

In the courseof designing a system here are a ser ies of crucial decisions

whichmustbe made egarding the u' l t imatesystem mplementat ion. Through-

out the sof twarecoursewe are concerned r imar i ly wi th the implementat ion

of the sof tware port ions of these systems nd how hey interact wi th avai l -

ab' lehardware. To be sure, this area is v i tal to the designer. However,

the thorniest problem ni t ia l ly confront ing most designersof microprocesso

basedsystems s how o part i t ion the system unct ions between ardwareand sof tware mplementat lons. This is understandablb ince r lost users are

far moreexper iencedwith hardware esign than sof twaredesign. However,

the plain truth is this: wi thin the speed imi ts imposed y any computer ,

anything that can be donewith hardware an be donewith sof tware. In fact ,

only a smal l percentage f appl icat ions wil l present speedproblems.

Usual ly even hese appl icat ions are only speedsensi t ive in areas which

can be readi ly ident i f ied and processed ith discrete logic to make hem

adaptable o a sof tware solut ion. ice hus havea sl id ing scale of imple-

mentat ionpossibi l i t ies from appl icat ions with no sof tware ( i .e. no micro-

processor) o appl icat ions where95% f the system ost wi l l be in the sof t -

ware. Given his wide rangeof possibi l i t ies, howdo we decide where o

draw he l ine? Where ndeed. Assuminghat the object ive is to do the

job and make omemoney, he answer s obvious: we draw the l ine at the

point wherewe find the lowest cost hardware/software ystem hat does

the job.

Beforewe cdn discuss how o trade hardware ost for sof twarecost , we

must f i rst ident i fy the areas that af fect cost in both of these areas.

For the purposes f discussion we shal l consider cost to be local ized in

three areas: hardware ost , SOftware ost ' and systemcost ' Af ter we

havediscussed he var ious cost areas we wil l be able to discuss tradeof fs

required to modi fy system ost and performance.

6-1

Page 71: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 71/244

TheCPU hosen or the systemwi l ' l have he central ef fect on the hardware

cost of the system. This is not because f the cost of the processor t-

sel f . For most systems he actual CPU ost wi l ' l be an insigni f icant por t ion

of the total systern ost . I t is a resul t of the ef fect of the CPU n ali

other aspectsof the system esign, both hardware nd sof tware. I t there-

fore makes he most sense o discuss these costs wi thin the context of the

CPUtsel f .

6.1 Hardware ost

Hardware ost wi l l be considered o be al l of the hardware hichmust be

designed o implementhe required system unct ions. This would nclude

themicroprocessor, emor ies,nter faces, clocks, powersuppl ies, terminals,

pr inters, or other pre-conf iguredper ipherals.

6.1.1 SystemSpeed

To paraphrase n old pol ice traf f ic slogan, "Spbed i l ' ls microcompUter

projects" . This is due to the sad fact that of al l the great things micro-

processors o, doing them ast isn' t thei r best at t r ibute. Mostcommonly

avai lable microprocessors avemaximumycle speeds n the ZMHzange.Execut ionof an instruct ion genera' l ly equires from 4 to 10 machine ycles.

l ' loreover, oing anything usef l wi1 requi e several i nstruct ions. l r lhat

al'l this meanss that a Itcfqproq-elqof-pe!:p!.9_"sJ-"q!_:_iqgfAhl.y*,q_1gle

convent ionalsequent ialand combinat ional ogic. As a rough rule of thurnb,|l@-' i f your system equires the processor o do anything aster than lOusec 'AC

(100 kHz)you wi l l need o be very careful in your design

Thereare a l imi ted number f high speedmicroprocessorsvai lable, but

these are sets of devices, not s ing' le packagemicroprocessors.Theyare

somewhatarder to use and considerablymoreexpensive. I f you.begin o

use these you maydiscoveryour cost rapidly exceeding he cosf lof some

other form of logic implementat ion.Also, high speed or the CPU eneral ly

requires high speedmemories,nter face ' logic,andper ipheral devices,

fur ther rais ing costs.

6-2

Page 72: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 72/244

As wement ioned ar l iero few projects haveoveral l speed equirements ha

are so severeas to precludemicroprocessor se. However,hey do exist ,

and i f you think you haveone, be very careful to be cer tain fr^omhe starthat a microprocessor i l l be able to do the job. Conversely, here is no

point in paying or system peed ou don' t need. Speed s expensive. Yo

general ly get a cer tain level of speedwith the microprocessor. I f you're

not using it r s€€ if you can trade i t for some nter face simpl ic i ty. No

use buyinga fast processor nd fast inter faces i f a fast processorand

some lower, dumber, nd cheaper nter faces wi l l do. t le ' l l ta]k moreabo

this later .

,6-.l.:,2 tleqgryRequi ements

The systemmemorys whereyou wil l store the programs nd data required

for system perat ion. l . l i th mostmicrocomputerystems his memory i l l

consist of a combinat ion f read/wr i te memoryRAM) nd read only memory

(R0M) (t,| i h someprocessors he CPU tsel f conta .ns a sma'l read/wr te

mernory,hus making t possib' le o implement imple systemswith just the

CPU nd ROM's. Larger systemswi '11 equire addi t ional read/wr i te memory

Theobiect of the game ere is, as usual , to minimizecost . This ' is done

by get t ing as much f the sof tware nto ROM s possible. This is because

ROMan be lef t with powerof f and the programwi l l st i l l be there when

power s restored. Alas, such s not the case for RAM. Thuswhen ou

hear peoplesay that programs houldbe in ROM ecauseROMs cheaper hen

RAM, t isn' t real ly t rue. Bi t for bi t the costs are becoming uite com-

parabl€r wi th many ypes of ROMonsiderablymoreexpensive han RAM. The

fact is that RAMs not pract ical in dedicated systemswhict tmustmaintain

the prograrnwithout re-loading memory very time the power s tunned0N.

Bead/write elqry can be broadlydivided nto stat ic RAM nddynamig 4F:.a

A stat ic*8&[*Wi" ] .J aintain i ts data as long as power s appl ied. A dynam

@.l l*p'srr* j "* ]k.Thisrefreshoperat ionisaciompl ishedby pulsing some f the address ines (usual ly the most signi f icant bi ts)

per iodical ly. To do this requires the addi t ion of special c i rcui t ry to

the system. In general , the integrated ci rcui t constraints are such that

a static memoryequiresmorea

Page 73: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 73/244

memory f s imi lar size. Stat ic memor ies lso dissipate morepowerper bi t .

The argest RAMmemories re, therefore, usual ' lydynamic, t least ini t ia l ly.

As the device technology mproves hese larger memor ies sual ' ly then be-

come vai lable in stat ic form.

The cost of both stat ic and dynamicmemor ies as decl ined and wi l ' l cont inue

to decl ine. This cost is basedon the absolute cost per bi t for a given

amount f storage. However,he device organizat ionand not this absolute

cost per bit is of ten more mportant n pract ical appl icat ions. In terms

of cost per bit, a 4096x 1 dynamicmemorymaybe much heaper han a 256 x 8

stat ic memory. However, ou wi l l needeight of the dynamicmemor ieso do

any good. Theywil l require refresh ci rcui t ry, and they wi l l take up eight

t imes moreP.C. board space n product ion. I f you only needa 128 byte

buf fer and somemiscel laneous rogram torage, the bigger "cheaper"memory

maycost far more. For cost ef fect ive design i t is imperat ive hat you

avoid memory verki l l . Design n whatyou need, al low some xtra for un-

foreseendi f f icul t ies and reasonable uture expansion nd stop.

The advancesn memoryechnology re impressiveand they receive lots ofpubl city. But the fact remains hat fglv *glg!5.,fe.ri-mas,5.-p1odu.9_!io1..ry!11

tggglqe*y.$l_3ll.9"l1.ng:*-9,f,-"SM.ftea nrin'i{'J[*P-?g!qq-e---c-9u[!""91das-e l.

:y*g_tg!,g.t'3ce""ylll-1.3.'.':-..:lTp"'!.!t.rhan heer"vglyrye. uv nedevelopmentystemwith lots of RAM. Use t to develop ots of systems

with only the RAMequired to do the job.

l , l i th ROM's, he si tuat ion is considerablydi f ferent . Read nly storage is

real ly only useful organized n mul t ip les of the computey'sbasicata word.

I t doesn' t makemuchsense o maskprogram wo 1023X 4 ROMsor use in an

1024X 8 system. As a resul t, ROMsre widely avai lable for eight-bi t

processors n sizes f rom B x 8 to 2048x 8. ROMsre avai lable in three

types, each sui table for cer tain areas of appl icat ion: ER0Ms, R0Msnd

maskedprogrammed OMs.

An ER0Ms a ROM hichcan be erasedand re-used. An EROMan be programmed

and, i f errors are found, erasedand reprogrammed. rasure s accompl ished

b4

Page 74: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 74/244

by exposing he ER0Mo intense ul t raviolet l ight for a hal f hour or so.

In this way the ER0Msan be re-used ndef ini tely. EROMsre the most

expensiveLypeof R0M. Theyare best used n development ork or low

volumeproduct ioneguipnentwhich require frequent changeso the operat-

ing program.

A PR0Ms a ROf ' l h ichcomes rom the manufacturerwi th al l locat ions as

one's or zero's. I t can then be programmedy the user . Unl ike an EROM

however, once programmed PR0f'fannot be erased. PR0l'ls re somewhat

lower in cost than EROl ' ls.However, requent program hanges an quickly

make hemmoreexpensive. Theyare best used n product ionsystemswhichwi l l requlre few changes ut whose roduct ' ion olume oesnot just i fy a

maskprogrammedOM.

A maskprogrammed0l' l s fabricated by the manufacturer o contain the

desired program. It is nei ther f ie ld programrnableor erasable. A ROM

is ordered by sending he serniconductor anufacturer our proqram. They

then generatea customROMrom your speci f icat ion. Thecost of ROMsro-

duced his way s the lowest avai lable. However,he ssniconductormanu-

facturers chargea f lat fee for the generat ionof the required mask. This

cost makesmaskprogrammedOMsost effective only for those high volume

productswhose rogram il ' l never (hopeful ly) require change.

6.1.3 I /0 Requi ! "ements

I t is rapidly becoming pparent hat I /0 is the sof t underbely of most

microprocessorbasedsystems. Interfacing the microprocessor o the rest

of the system is always a requirement. JE_fn-i_."rsp.r9cg9lgtg,*cgf.r-el!.U

.avai lable general ly provide only enough nter face capabi l i ty to di rect ly

Jll.II3.e onenormal Tt, evice. Thisme.qns"!h,q"t?l! .!.r"9,.[9.].s-1. g{ out

:l !rl.:*,_--Ti91oOrocesso.1u1tbg b.uffered,Further,control signalsmustbe

decoded, nterrupts must be processed, ata must be latched and held unt i l

the processor or peripheral is ready to accept it, and manyother system

requirementsmust be met. Al l th is fal ls wi thin the realm of I /0.

6-s

Page 75: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 75/244

The fundamental lementof microprocessor/0 operat ions s the l , rg por t .

An I /A port fs the point where he signals to and from the var ious 1/A

devices meet heir respect ive signals f rom the microprocessor. I /0 por ts

provide both buf fer ing and some ontrol decoding. The I /0 addresses ent

out by the CPU re decodedo provide an enablesignal to a speci f ic l lA

port , therebygat ing the informat ion from that por t onto the system ata

bus for a read operat ion or gat ing the informat ionon the system ata bus

into the port for a wr i te operat ion. Themechanics f how he port works

are not as importantas the real izat ion that all data into and out of the

microprocessors going to have o pass hrough /0 ports. This means

that you wi l l want to get your money'sworth out of every port . To helpyou do this, some rocessors rovide a smal l number usual ly two or four)

of I /0 por ts r ight on the CPU hip i tsel f . I f you only needone or two

ports for a simple system, his can be a signi f icant cost saving factor .

Af ter you've got the I /0 ports, Jou then mustdesign the speciai log' ic

rcquired to control t i re devices or ci rcui ts you are inter facing. For most

microprocessorappl icat ionshis is where ou wil l do the major i ty of your

hardware esign. i fyou

do lot ,s of microprocessor ystems,ou

wil leventual ly arr ive at some tandard /0 port design, but there wi l l a lmost

a' lways e some etai led inter face design work to be done.

l . lhenmaking he decisions about how o implementour I/0 por ts and control

logicr you maybe able to obtain some ost advantage y using a special ized

inter face device. Some icroprocesson anufacturers avedesignedspecial

fami l ies of devices to ease I/0 design. ' These evices usual ly consist of

several I /0 por ts, some ef ined logic funct ions, and al l required control

logic required to inter face some evice direct ly to the microprocessor i th

l i t t le or no external logic. For example, he data ports, control log' ic,

and inter face ci rcui t ry required to input and output paral le l data di rect ly

to a ser ial inter face is one popular example. 0thers include interrupt

handlers, real t ime clocks, bi -di rect ional data ports, and so on, wi th

morebecoming vai lable as the industry def ines what funct ions ane conrnonly

useful .. I f

you can f ind someof hese to f i t your needs, hey can save

you money.

s-o

Page 76: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 76/244

I /0 design is the area where ou can of ten achievesigni f icant savings bytrading hardwareor sof tware. I t is also the area where ou maybe able

to trade some ost for enough ddedspeed o make usable system. I/Odesign is an area wherecreat ive use of sof twareand hardware i l l resuJt

in opt imum ystemperfonnance t Jowestsystem ost .

6. 1.4 Per ipheral Devices

In terms of product ioncost the most expensive or t ions of your system

can easi ly turn out to be those assembl ies ou have o buy pre-assembled.

Al l types of computer eyboards, isplays, pr inters, tape equipment,A/0

and D/A converters, and simi lar per ipheralsare very expensive elat iveto the cost of the microprocessor ardware. In the normalmicroprocessor

system hese devices account or over 50% f the hardware ost . I f you

must include these componentsn your system, t is very important to make

a very careful analysis of whetheror not your product s st i ' l l cost ef fec-

t ive. I t can be devastat ing o have o add a $75 keyboard o a micropro-

cessor systemwhere he total componentost is only 950. In this type

of si tuat ion you might see i f you can use a less expensive evice and add

the other features wi th sof tware. Al l these types of decisions must be

weighed careful ly beforeyou star t the actual design.

Into this categorywe toss al l those microprocessor ystem etai ls that

dr ive your system ost up. Theseare part icularJy obnoxious ecause hey

are of ten over lookedunt i l i t is too late. The three most commonffenders

in this categoryare clocksr pow€F uppl ies and interface requirements.

The systemclock is used o provide the t iming signa' ls equired to run theCPU nd sorne f the other system ogic. Froma cost standpoint , there are

two areas of interest : whogenerates he clock and howgooddoes i t have

t0 be. In the f i rst case the answer s r : i ther the CPU r ihe system. I f

the CPU enerates ts ownclock ( i t mayneedan external resistor and

capaci tor) , you don' t have o worry about the second uest ion. I f you have

t0 generate he clockr Jou def ini tely have o worry about j t . Somemicro-

processorsare very f inicky about thei r c locks. This means pecial dr iver

6-7

Page 77: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 77/244

chips, crystals, iogicr pow€rsuppl ies ( i .e. money). I f you are in a

very cost sensi t ive operat ion, this can rnake signi f icant di f ference.

In addi t ion to the mafnCPU lock, c€!" tdin inter faces wi l l require thei r

ownclocks. This inc' ludes er ial inter faces, rea' l t ime clocks, and many

special inter faces. In some asesyou maybe able to der ive the required

clock(s) from the main system lock. i f nat , you wi l l have o plan on

the added ost of the required addi t ional clock(s) .

Power uppl ies are anotherarea where equinements' i f fer wide' ly rom

microprocessoro microprocessor. Somemicroprocessors i l l run off

the same 5Vpowersupply that ' is used or al l the logic. Someequire

up to three di f ferent pourer uppl ies. Power uppl iesare not cheapand

you can quickly add a large cost to the system hat you maybe able to

avoid ent i rely by chosinga di f ferent processor. (Note: af ter you go to

the trouble of picking a microprocessor" e sure the rest of the system

runs on the same oi tages. i t doesn' t makemuch ense o cut corners to

get a single supplymicroprocessor nd discover the memor ieshosenneed

three suppl ies anyway.

Besidespaying at tent ion to the number f systempowersuppl ies, you must

be awareof the overal ' l system urrent requirements. These equirernents

can vary widely, depending pon he CFU,m$rCIr ies, nd inter face logic

used. Youmust be certain that your powersuppTies an supply enough

current to meetpeaksystem sage. Conversel ,y,ou don' t want to pay for

morecapabi ' l i ty than you need. To solve this problem, ou usual ly don' t

set t le on the f inal product ionpowersupply rat ings unt i l the system s

complete nd i ts power equirements re character ized. This is in contrast

to the select ion of the systemhardwaren here he number f suppl ies to

be used n the system s determined efore beginning he design.

Inter face requirements elate to support c j rcui t ry required to use the

microprocessor j th other devices jn the systmn. A rnicropnocessorhat

is very,easy to use amonghe membersf i ts own ami ly of devicesmay

turn out to be a horror to inter face to the rest of the wor ld. This is

6-B

Page 78: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 78/244

part icular ly t rue of P-channel evices o be used n N-channel r TTL

systems. Incompat ibi l i t ies among ystem omponentsan lead to problems

and increased osts al l over the system, ncluding the previouslyment ion

clock and power upply areas.

6. I . 6 MicroprocessorHardware election SuJrnnarv

I t shouldbe obvious rom the precedingbr ief discussion that picking

microprocessor ardwares a tr icky business. Even gnor ing the sof tware

cr i ter iar |ou must be very cer tain you get a devicewhichwi l l meetyour

system equirements t the lowest cost . I t is important o remembert

this point that lowest system ost maynot alwaysbe the same s lowestpossible hardware ost . Modi f icat ion ease,maintenance nd other factors

mayenter into the picture. Thereare t imes when ou maywant to knowinE

al low some xtra hardware ost to lower the costs in some ther area. |r le

wi l l point out these areas as we go along.

6.2 SoftwareCosts

Softwarecosts are insidious. Youcan' t see it , or feel i t , or hear i t '

but sof twarecan breakyour microcomputerroject faster than almostany-

thing. As hardware ystems nd per ipheral devices become oreandmore

standard,moreandmoreof the design- to-pr ice burden s going to fal1 on

the designerwhohas to design the sof tware o hold these hardware locks

together .

Sof tware s character izedby a very high developmentost and a very 1ow

dupl icat ion cost . By wayof example, BM'ssof twaredevelopmentf 0S 360

(a very large and complex of twareproject , to put i t mi ldly) is est imate

to have taken over 5000manyears of developmentime. However, he entire

system an easi ly be dupl icated and stored on $1000worth of magnet ic ape

As we said, dupl icat ion is cheap,developments expensive. This characte

ist ic br ings wi th i t the fol lowing general izat ion: sof tware for use in

high volumeproductsmust be f ixed. I t is absolutely not possible to pro-

duce low cost customsoftware. 0nceyou cornnita program o R0l'1, on't

consider changing he program nless you are prepared o change very othe

ident ical ROMn every other system. (Not to ment ionupdat inga1l

5-9

Page 79: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 79/244

referencedocumentat ion.)The cost of custom of tware (unlessyou are in

that business) s so high as to completelypreclude t f rom volumesystems.

The sof twaredevelopmentost very quick' ly completelyovershadowshe hard-

ware cost .

Sof twareexerts cost pressureon projects fn two basic ways. The f i rst

is whenpoor techniqueand analysis lead to systemswith inef f ic ient use

of expensive ardwareesources. This causes he system o end up with

morememoryhan it reai ly needed,high speed nter faces that cou' ldhave

beenel iminated wi th goodsof twarer €XtFa /0 ports that some of tware

mui t ip lexing could haveel iminated, and so on. The secondway sof twareraises cost is in the development/supportycle. This resul ts in late

projects due to inadequateime requirement orecast ing, program ugs hat

turn up just af ter you take dej ivery on 10,000maskprogranmed 0Ms,

documentat ionhat requires a complete of twaresystem edesignwhen he

program as to be changed year af ter release, and other gory, expensive

examp' les.0f the two areas sof twarecausesprobiems, he second s far

moreser ious than the f irst. The f i rst set of problemswi l l natural ly

becomeess severeasyou

become ore ami l iar wi th hardware/sof twaresystemdesigns. (Af ter al '1, that 's what this course s here to teach you.)

The second et belong o that groupof prob' lemshat the ent i re computer

communi ty uf fers along wi th year af ter year. Some rogress s being

made,but i t is st i l l a thorny problem. Good ng' ineer ing ract ice is

your best defense. Rememberhis basic rule: hardware nd sof tware design

are equal ly compl icated. Theonly di f ference ' is the ruies.

Let 's look at those areaswheresof tware can raise (or lower) your hardware

costs. Remembere are cons' ider ing sl iding cost scale from al l hardware

to vi r tual ly a' l l sof tware.

6.2.1 Processorrqanizat ion

Thearchitectureof the processorou chooseor your system an havea

signi f icant ef fect on your sof tware osts. This is fe l t pr imar i1y n two

areas: memorynd /0. A processor hich s def ic ient in memoryddress-

ing modes i l l require arger programso accompl ishhe sameob as a

6-10

Page 80: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 80/244

processorwith more lexible addressing. Moreprogrammeansmorememor ies,

and morememor ies eansmorecost . A lack of on-chip registers may e-

guire you to use memoryor temporary ata storage. Thesememoryeferences

take more ime dur ing program xecut ionandmaymake he di f ference between

a simple ( i .e. cheap) nter face and a morecomplex i .e. expensive)one.

A versat i le interrupt systemmayenableyou to do most of the interrupt

decodingwi th logic bui l t into the CPU. 0therwise, you wi l l have o add

moreservice rout ines, I /0 devicesand money. A processorwi th a versa-

t i le instruct ion set mayenableyou to implement our programsmuchmore

ef f ic ient ly, thereby saving msnory pace. The ist goeson and on. Any

area of the microprocessor 's rchi tecture can become cost sensi t ivepoint in cer tain appl icat ions. Theul t lmate goal is to f ind the cost

sensi t ive areas in your appl icat ion and pick a processor hat is st rong

in those areas.

6.2.2 Program tructure

The program tructure, just as wi th the processorarchi tecture, exer ts i ts

primary effect on the systemmemoryequirementsand I/0 structure. Poorly

designedprogramswi ' l l of ten take. tur ice he memory f morecareful ly de-

signed programs. Younrustbalance he t ime and cost required to opt imize

programs gainst the cost of memory aved. ideal ly, you wi l l become

ski l led enough o design near opt imum ode he f i rst t ime, therebyavoid-

ing the expensive ef inement procedure. Also, di f ferent program tructures

can be used to get maximumpeedof programexecution in speedsensitive

areas. Fai lure to take advantage f these structures can resul t in the

use of moreexpensive /0 inter face hardwarehan is actual ly needed.

Thedifferent programstructures and their tradeoffs in speedand memory

usageare discussed hroughout he sof tware essons.

6.2.3 Implementat ion anquaqe

The level at which you developyour programshas its primary effect on

systemmemory ize and overa'l l systemspeed. Programs eve:lopedn higher

level languageswi l l general ly be faster to develop, but they wil l take

more time to.execute and occupy rom two to ten times morememoryhan the

same rogram one n assemblyanguige. Assemblyanguage rograms an

6. 1

Page 81: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 81/244

be designed or optimummemory sageand systemspeedbut they take more

t ime to develop. A data processingndustry est imate is that assemblylanguage rogramsake from two to f ive t imes longer to develop han com-

parable higher level language rograms. This is par t icular ly t rue of

large, complex ystems. Youmust balance he cost of developmentgainst

the cost of the addi t ional hardwareesources. As a general ru ' le, higher

level languages i l l be lower in cost for smal l quant i t ies of systemswith

assemblyanguage ecoming orecost ef fect ive as product ionquant i ty

increases. (This assumeshe higher ' level language rograms an meetal l

system peed equirements i thout extra work.) t t re hig 'her evel language/

assemblylanguagetradeof fs are discussed n Lessons and 10.

6.3 SystemsCos_t

Beyondhe costs associatedwith producing he hardware re those costs

associatedwith developingandmaintaining he product . Unl ike product ion

costs, which are incurred as a funct ion of howmany ni ts are produced,

these costs are largely independent f product ion. Indeed, t is possible

to incur very large costs in this area and never produce sing' feuni t .

6.3.1 Devel unentCosts

System evelopmentosts nclude al l of the expenses ou incur dur ing the

design of the product . Since these costs wi l l be incurred pr ior to pro-

duct ion, they wi l l usual ly have o be met f rom your avai lable resources.

The areas of cost in this phaseare aj l wel l known. However,he addi t ion

of sof twaredevelopment ddsa few extra categor ies.

Hardware elect ion

Al l t ime and money pent evaluat ingvar ious microprocessorsnd

system omponents r ior to commencinghe actual system esign.

This wouldalso include a1l analysis of crucial t iming and inter-

faces and the ini t ia l par t i t ioning of the system nto hardware nd

sof tware blocks

tgrdw.areesiSAl l t ime andmoney pentdesigningand&bugging he hardwareequired

to implementhe systemhardware.

2

Page 82: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 82/244

Page 83: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 83/244

funct ional changeswith l i t t le or no changes o the hardware. This is

because sof tware system an be re-conf iguredby changing he program.

Bear ing n mind that al l the sof twarecost rules st i l l applJ, this is

st i l l usual ly a very ef fect ive technique. Expanding r changingan exist -

ing system s one area where ou wi l l f ind that the money pent on docu-

mentat ionwaswel l spent . I t can of ten make he di f ference between

successfuland cost ef fect ive designmodi f icat ion or a complete e-design.

Program hangeswi ' l l of ten not be ef fect ive in productswhich wereopt imized

so completeiy ni t ia l ly that there is not muchextra hardwareeft to work

wi th. The program an, af ter al l , only per form unct ions which use avai l -able hardware. Nomatter howclever your programner, f there isn' t

enoughmemory r I /0 por ts, some hings just won' t be feasible. I f you

havea product which looks l ike i t is a candidate or later expansion, ou

maywish to incur a l i t t le higher product ioncost ini t ia l ly by adding some

hardwareor ' later use.

5.3.3 Maintenance osts

Any cost you incur when our product ai ls in the f ie ld comes nder hisheading. Al l those f ield servicemen,eturn clerks, rework ines, and

other support are expensive. Here oo, the microprocessor an saveyou

money. Almostby def ini t ion, the microprocessor ustcormunicate ith

the ent i re system. This meanshat wi th the addi t ion of some rogramming,

memory, nd sorne mall amounts f hardware ou can convert your micropro-

cessor basedsystem nto i ts owndiagnost ic tester . Youmaynot need o

provide thorough ests, but evensome imple tests can make roubleshoot ing

a lot easier . Anythingyou can do to make est ing and servic ing easier

wi l l lower your maintenanceosts.

Natural ly, you must weigh he benef i ts of sel f - test ing against the cost

i t wi l l add. Often, however, ou wil l d iscover at the endof the project

that you havesome xtra I /0 l ines or a part ia l ly ful l ROl{ . Since these

are going to be there anyhow, ou mayas we' l l use them f you can. Since

this type of thing is not usual ly discoveredunt i l wel ' l into the project ,

the addi t ion of sel f test features at that point is one of the few t imes

*14

Page 84: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 84/244

Page 85: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 85/244

In pract ical terms this means sing higher level languages whenavai lable) ,

hardware hat is designed or easeof debugging nd high rel iabi l i ty, and

a general emphasis n develoi lnent peed ather than low cost product ion.

Conversely, or high volume roduct ionwe wi ' l l want to absolutely minimr 'ze

product ioncosts. This means ighly opt imizedprogramso minimizememory

use, maximumse of program ontrol led inter faces to el iminate unneeded

hardware,mechanical esigns or easy product ionand any other techniques

which can be used o hold the cost down.

The exact point at which the emphasis hi f ts f rom f ixed cost reduct ion to

var iable cost reduct ion natural ly changesor every product . In general ,the moreexpensive he f inal product , the lower the emphasis n the var iable

costs.

6.5 Tradinq Off Sof twareand Hardware

Now hat we havediscussed he main factors af fect ing systemperformance

and cost , we can discusS he areaswheresystem roblemswi l l force us to

trade off hardware nd software to modify systemperformance nd cost.

As wement ioned ar l ier , high speed programmed,ardware, r whatever) ,

' largenumbers f pa: 'cs,and complex of twareare al l expensive. t{e wi l l

be t ry ing to implement l l required system unct ions using the minimum

cost combinat ion f these i tems

6.5.1 Condj t ions JhichLead o DesignTradeOffs

In the courseof the designwe wi l l be faced with several possible project

condi t ions, some f whichwi l l require us to consider he var ious possible

system radeof fs. These ondi tions can be summarizeds fol lows:

1. systemspeed oo low, systern ost too high,

2. systemspeed oo low, system ost acceptable,

3. systemspeed cceptable,system ost too high,

4. systemspeed cceptable,system ost acceptable,

5. systemspeed xcessive,system ost too high,

6. systemspeed xcessive,system ost acceptable.

6-t6

Page 86: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 86/244

Clear ' ly, eachof these condi t ions requires di f ferent remedialact ion.

Condi t ionone is an obviouscr is is si tuat ion. Unlesssomemajor break-

throughcan be discovered, he project is probab' ly oomed.Condi t iontwo is also fair ly cr i t ical . I t can be worked n only i f the necessary

speed an be acquiredwi thout dr iv ing cost into the unacceptableange.

Very careful analysis wi l l be required. Condi t ions hree and f ive areprobablyboth solvable by appl icat ion of some ardware/sof twarerade of fs.

Condi t ions our and six can be' lef t alone. Theymayalso be examinedo

see i f extra features might be added o ut i l ize the excesssystem peed

without increasing the cost to an unacceptableevel . I f you elect to

try this, be very careful not to go overboard.Any

addi t ionsare bestmade n very smal l control led increments. Avoid "creeping eatures"

(see Lesson ). I f you aren' t sure what o add, don' t . Be happy ou

brought his one in under budgetand saveyour money or next t ime.

Af ter you f igure out whichcondi t ion your project is in, yoU have hree

al ternat ives: bui l t i t , change t , or cancel i t . Bui lding i t or cancel-

ing it are decisions that you have o make n a si tuat ion by si tuat ion

basis. Changingt mayhelp you postponehat decision for awhi le,but

ul t imately you wil l st i l l have o decide. t , le an nowexamine ow o

change t so that hopeful ly you can decide to bui ld i t .

6.5.2 System peedProblems

As we haveemphasizedl l a long, speed sual ly costs money. Thereare

very few si tuat ions where ncreasingsystem peed owers the cost . I f you

havea project which haS o have ncreased peed,you might consider the

t i t le of this sect ion to be "TradeOffs that IncreaseCost" . l . l i th that

in mind, h,ecan examinewhere o look to increase system peed.

System peedproblems an be broadlydivided into data transfer rate

problems nddata manipulat ion ate problems. In system perat ion these

two types of problemswi l ' l require dist inct ly di f ferent solut ions.However,

the same eneral techniqueswil l apply to correct ing both.

6-17

Page 87: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 87/244

6.5.2.1 Data ransfer Rate Problems

Data t ransfer problems re encountered henrant 'err ing data betweenhe

computer nd system /0 devices. This class of speedproblsn can be fur-ther subdivided nto processor ate. imi ted problems nd per ipheral rate

l imi ted problems. Processor ate ' l imi ted problems r ise when he compu-

ter is t ransferr ing data to a device whichmust havea high, non-varying

transfer rate. This is character ist ic of many eal t ime inter faces, disk

dr ives, and high speedbuffered l /0 devices. In the case of the disk

dr ive, for example, t is not pract ical for the computer o vary the speed

of disk rotat ion. Therefore, the processormust be able to read the data

as fast as the rotat ing disk presents t to the read head. Data t ransfer

rate problems f this type wi l l resul t in lost or erroneous ata. They

represent the rnostserious systemspeedprob'lems nd they must be detected

and corrected before the systemwi l l funct ion proper ' ly.

Cur ingprocessor.ate i imi ted problems here he speeddi f ferent ial is

excessive equires the addi t ion of hardware' to ransfer some f the speed

burden rom the CPU. If the speed i f ferent ial is close, restructur ing

the program ect ions which perform he actual data transfers mayprovide

the speedmarginsyou need. However, ince instruct ions execute n f ixedmul t ip les of system ycle t imes, i t wi l l be impossible o adjust the sys-

tem speedany moreaccurately than the execut ion ime of the fastest

instruct ions. For this type of problem,adjust ing systemspeedby varying

the program tructure wi l l only be ef fect ive over a fai r ly narrow ange

of t iming.

Unl ike processor ate problems,per ipheral rate l imi ted problems urn up

when he computer s able to process he data at a muchhigher rate thanthe I /0 devices can supp' lyor accept t . This probiem s most conrnonly

encountered hen he microcomputers communicat ingi th per ipheralswhich

are mechanical r which require user interact ion, i .e. pr inters, tape

readers, teletypegrr i ters, etc. For example,many mal l microcomputer

systems ely on the TeletypeCorporat ion'smodelASR 3 teletype as the

main systern er iphera' l I t serves as the keyboard, isplay, punchand

reader for al l program /0 operat ions. Now he teletype can only t ransfer

6-18

Page 88: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 88/244

data at the rate of ten charactersper second,or one data byte every 100

mi l l iseconds. Pr int ing 2500characters (a snral l programist ing) wi l l

take over four minutes. In this case, the computer i l l be spendingmostof i ts t ime wai t ing for the teletype to f in ish pr int ing.

Per ipheral rate problems re probabty he mostcommonlyncountered ystem

speedproblems. Fortunately, they seldom resenta cr i t ica] design pro-

blem. The cure is usual ly to add a faster I /0 device. Even his solut ion

has l imi tat ions. Mostcomputer er ipherals involve mechanical evices,

and these wj l l a lmostalwaysbe slower than the computer . Youmust t rade

off the cost of the faster per ipheral against the t jme saved. If you

discover you havea systemwhich spendsmost of i ts t jme wai t ing for I /0

t ransfers (a condj t ion referred to as I /0 boun-d) , ou maywant tb see i f

you can come p wi th some eatures to ut i l ize what js essent ial ]y f ree

processor ime. Evenbetter , you maybe able to use some f that t ime to

replace some ardware nd fur ther lower system ost . 0n the other hand,

i f the system an do everything t needs o at a cost you can af ford, who

cares if i t spends 5% f i ts t ime wai t ing for the user to press a key?

Microprocessor ardwares going to become o inexpensive hat i t wi l l

probab]ybecomear moreeconomicalo underr . l t ii ze several microprocessOrsthan to spend he developmentost to opt imize he use of one.

6.5.2.2 Data Manipufgt ionRatePrbblemsWhere ata t ransfer rate problemswere related to how ast we can get data

in and out of the computer , he data manipu' lat ionate problems re con-

cernedwith how ast the data is processed nce he computer as i t .

Where ata t ransfer rate prob' lems i l l be solvedmainly be addingor

changingsystemhardware, ata manipulat ion ate problemswil l be solvedmainly by restructur ing the system's sof tware.

The typical data manipulat ionproblemar ises whensome ect ion (or sect ions)

of the systemprogramakes an excessiveamount f t ime to execute. The

morecormonlyused hat por t ion of the program, he worse he problem.

This type of problem s character izedby your pushinga but ton and wai t ing

for f i f teen seconds nt i l the teletypewr i ter pr ints the ten digi t answer

6.L9

Page 89: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 89/244

to your equat ion. Using some andheld scient i f ic calculators for compiex

calculat ions (try SIN 89o) providessome xcel lent examples f data man' i -pulat ion rate 1 mitat ions.

Some roblems f this type are unavoidable n microprocessor ystems.

Their low speed relat ive to minicomputersnd large computers) ,modest

instruct ion sets, and smal l data elementsize l imi t the ef f ic iency wi th

whichany programwi l l run. Theyare simply not designed or complex ata

processingappl icat ions. Nomatter howgood he algor i thm, cer tain classes

of operat ionsare going to take up signi f icant amounts f comput ing ime.

Some xamples f this groupare complexmathemat. icsout ines (anythingmorecompl icated han a sfxteen-bi t integer divide can safely be considered

compJex),arge memory earches,array operat ions, and movingblocks of

data around n memory. In the large andminicomputer orJd, another

pr imarycauseof this problem s mult ip le user systems. Fortunately, to

date the microprocessor or ld has beenspared his part icular problem.

If your system equires any of these types of operat iohs,you wi l l end up

paying some peedpenal ty. Youwi l l be able to minimize t to some xtent ,

but i t wi I l be there. Fortunately, the types of appl icat ions which wi l luse microprocessors o not normal ' ly equire large numbers f complex pera'

t ions. I f you haveone that does, you might ser iously considerone of the

sixteen-bi t microprocessors r a low endmin' icomputer .

6.5.3 . SystemCost_ loblems

System ost problems ecome igni f icant when ou havea workingsystem

whichmust be mademoreeconomicalor pract ical product ion. The term

"problems" n this context is probablymisleading. Vir tual ly al l systems

intended or high volume roduct ionwi l l go through some ost opt imizat ion

procedure etween rototypeand f inal product ion. Usual iyyou wit l have

decided hat the cost range or the product is acceptablebefore proceeding

w' i th the development.This decision is basedon marketstudies, compar i -

son wi th exist ing products,and other evaluat ionsof what s a reasonable

f inal sel l ing pr ice of the product . This number an then be proiected

back o arr ive at a cost range or the product .

6-20

Page 90: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 90/244

In general , the techniques or lower ingproductcost wi l l be the reverse

of techniques o increasespeed. Youwi l l want to remove xtraneous ard-

ware' compact l l programsnto minimum enory pace,and in general ,make he maximumse of the processorand sof tware o implement ystem

funct ions. This must al l be donewithout creat ing any system peedpro-

blems. Therefore, he proceedures best carr ied out in discrete steps.

You ef ine one sect ion of the system,make ure the system ti l l works,

andmove n to the next sect ion. Ul t imately you wil l reach a point where

no fur ther cost economiesan be achievedwithout compromisingystem

performance.

Cost opt imizat ion should alwaysbe undertaken i th the f irm real izat ion

that the endmust ust i fy the means. I t is an expensiveprocess hat is

usual ly only vigorously appl ied to productswhosehigh volumewi '11 ust i fy

the expense. 0therwise he cost of the opt imizat ion wi l l overshadowny

savingsmade n product ion.

6.6 Hardwgre peedTrade 0ffs

When ou mustmodi fy system peedusing hardware, ou wi l l be t ry ing to

ei ther increaseor decrease he amount f work done by the processor. Inthe f i rst caseyou wil l be trying to simpl i fy the systemhardware r re-

place much f i t with sof tware. This resul ts in decreased ardware ost

and lower system peed. In the second aseyou wi l l be trying to trans-

fer some f the work being performedby the software out to the hardware.

This wi l l resul t in higher system ost . tJ i thin this f rameworket 's

examine ome f the al ternat ives avai lable.

6.5.1 Processors nd Memorie:

A simple solut ion to some ystem peedproble{ns aybe to change rocessors

wi thin the same ami ly. Some anufacturers rovide microprocessors hich

are gradedby speed. I f the nominalprocessorspeed s 2 MHz,some evices

maybe'avai lable in selected speed anges rom 1 to 4 MHz. Since the

processor ost goesup wj th the speedrus' ing hjs method ou only have o

pay for the speedyou require.

6-21

Page 91: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 91/244

Page 92: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 92/244

buffer can be used o col lect the data dur ing the burst t ransmission,

wi th the CPU eading the individual data elements rom the buf fer af ter

the transmission s complete. This type of buf fer ing can also be usedconiunct ionwi th the computer 'sDl '1Aaci I i ty. In thi s case, the buf er

accumulateshe data and transfers i t into the main computermemoryn a

sing' le block transfer

Buf fers can a' lso be used o solve per ipheral data rate problems. In thj

case, the CPU ransfers the data out to the per ipheral buf fer . The per j

pheral can then take the charactersat i ts own ate wi th no fur ther proc

i ntervent ion

Addi t ion of buf fers to the system eguires the addi t ion of considerable

hardware xpense. Accordingly, hey shouldonly be added f the system

real ly needs hem. As long as speed s not a problem,mostmicroproces

can do a good ob of implement ing uf fers. Theycan do this using alrea

presentmain memory nd some rogranming. Data, is t ransferred into and

out of this type of buf fer using an interrupt . Thedevice interrupts

when t is ready for a t ransfer and the CPU erformsa single transfer .

Whenhe buf fer becomesul l or empty, he data is then processed, ust

as with a dedicatedbuf fer . This is alwaysmuch heaper han an externa

buf fer system. In the courseof the design, i f you think you needdata

buf fer ing, look very careful ly to see i f i t can be doneusing sof tware.

Evenaf ter the design is doneyou maydiscover that a hardware uf fer

ini t ia l ly thought necessary an actual ly be done n this way. I t maybe

worth the redesigncost to save he hardware ost , par t icular ly i f pro-

duct ion vo' lume i l l be high

6.6.4 Special ized Inter face Devices

A special ized inter face device is designed o performsome ef ined funct

in the system. Usual ly the funct ion to be performed ould be performed

using ei ther sof twareor the special ized device. Youwi l l consider a tra

off when ou ei ther f ind yoursel f wi th a.speedproblem nd no inter face

device or the inter face device and lots of program ime avai lable. in th

f i rst case iou design in the device to free up the program ime that

6-23

Page 93: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 93/244

performing he funct ion is tying up. In the second aseyou take out

the dev' iceand replace the funct ion wi th sof tware.

A cormon xample f this type of device is the UARTUniversalAsynchronous

ReceiverTransmit ter) . This device acceptsparal lel data and converts i t

to a ser ial bi t st reamconforming o the EIA RS232Cata transmissionstan-

dard. The funct ion can eas' i ly be performed nder program ontrol , but as

ment ioned ar l i€F, edchcharacter sent or received wi l l take up 100mi l l i -

seconds f computer ime. Dur ing his t ime the sof twaremustconvert a

character rom paral lel to ser ial , add star t and stop bi ts andgenerate

al l t iming and control s ignals required to perform he t ransfer . I f yoursystemhas the t ime, f ine. I f i t doesn' t , you add a UART. Theon' ly t ime

required now s the t ime required to wr i te one paral lel byte out to the

UART. After that , the UART enerates l l those funct ions that weredone

by the sof tware, f reeing your processor o do other things. Simi lar t rade

of fs can be made sing other pre-def ined unct ional devices.

6.6.5 Interrupts

In many ystems he computermust spend onsiderable ime responding o

interrupts. I f there is more han one possible interrupt ing device, the

processormustdeterminewhichdevice generated he interrupt before i t

can processany data. This ident i f icat ion can be done n a combinat ion

of hardware nd software ;hat can be varied to meet systemspeed/cost

requ remens .

For maximumystemspeedyou design the hardware o that each nterrupting

device responds o CPU cknowledgementi th the addressof i ts owndedi-

cated service rout ine. This gives maximumesponse peed,since no t ime

is spent decodingany device ident i f icat ion codes. In some rocessors

this can be reduced o the interrupt ing device providing an actual sub-

rout ine cal l instruct ion, making he interrupt almost t ransparent n terms

of overhead ime loss.

To lower hardware xpense, he device ident i f icat ion can be moved nto

the service rout ines. In this case, the interrupt ing devicesal ' l provide

6-24

Page 94: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 94/244

the same out ine address. The sof twaremust hen pol l al l devices in t

systern o see whogenerated he interrupt . This adds a signi f icant am

of overhead ime to the rout ine, and wi l l probablynot be sat isfactory

faster devices.

As a compromise,he system an be implementeds a combinat jon f di re

and indirect interrupt decoding. In this caser ou assign your highes

pr ior i ty or fastest (usual ly the same) evices heir own dent i f icat ion

address. Theywil l then interrupt di rect ' ly to thei r rout ines wi th mini

mumime loss. The ower pr ior i ty devices can then be assigned o a co

addressand these can be decoded nder slower, cheapersof twarecontrol

6.7 Sof twareTradeOffs

Software trade offs are made or the same eason as hardware rade offs,

namelymodi f icat ions of system ost and speed. Wherewe t raded of f har

ware for differ'ent hardware r a combinationof less hardwareand some

software, wi th sof twarewe wi l l usual ly be trading of f pt 'ogram peed ,o

memory ize. Increases n program peedwi l l of ten take morememory'

thereby cost ing moremoney. Conversely, f speed s not a problem,cer

program ypes can be replacedby markedly ess code, wi th a subsequen

lower ingof memory ize and cost . I t must be kept in mind, however, ha

not al l decreases n program ize' lower memoryost nor do al l increase

in program ize increasecost . Theonly t ime changes n program ize

af fect memoryost at al l is when he change esul ts in the savingor u

of an ent i re memory. For example, f your program s to be located in

2Kx8 maskprograrmed OMs,he only t ime that your cost wi l l change s

when our program ize exceedsmul t ip les of 2048bytes. Up to that poin

the memorys essent ial ly f ree. Simi lar ly, i f you discover your new' im

proved, program s now 2A75bytes long, Jou maywant to expendsome jme

el iminat ing those 27 extra bytes. (The termsand techniquesdiscussed

the next few sect ions are covered n greater detai l in the sof tware ess

6.7.1 Program oopsand Subrout ines

Programoops and subrout inesare used o minimizeprogram ize and con

execut ion. A sequence f operat ionswhich s to be executeda f ixed nu

6-28,

Page 95: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 95/244

of t jmes can be placed in a loop. A sect ion of codecommono severalpor t ions of

theprogram

an be placed n a subrout ine. Theactual codingis thereby only mit ten one time no matter howmany imes the' toop is

executed r the subrout ine s cal led. Loopsand subrout inesminimize

program ize at the expense f some rogram peed.

The instruct ions whichmust be executed o control execut ionof the loop

or the cal l ing of the subrout ine ake a cer tain amount f t ime that is

not required for the actual funct ion being performed. In speed r i t ical

si tuat ions the ef fect of these overheadnstruct ions can be e] iminated or

modi f ied to increase execut ionspeed. This is doneby replacing the loop

or subrout inewi th the actual st raight l ine code that wasor iginal ly there.

This el iminates the overheadnstruct ions completely. Al ternat ively, a

loop maybe modi f ied to use a lower percentage f i ts t ime for overhead.

This is doneby part ial ly replacing the loop wi th the straight l ine code

and ower ing the number f t imes through he loop. For example, ay a

cer tain funct ion is to be performed 0 t imes, once or eachexecut ionof

the loop. In this case, say loop overhead s 20%. By dupl icat ing the

funct ion and lower ing the loop count to f ive we wouiddo the same rocess-ing wi th only 10% verhead. Thepr ice nould be a doubl ing of the amount

of memory ccupiedby the funct ion.

6.7.2 Funct i .gng- l9omputat ions

Throughout our program ou wil l use funct ional computat ionso evaluate

data and decide on program esponseso input condi t ions. Youwi l l be

able to vary the execution speedand memory sageof manyof these blocks

basedon how ou evaluate the data. For example, et 's say we havean

appl icat ion wherewe need o mul t ip ly two eight-bi t integers. Onesolut ion

is to wr i te an algor i t tm whichwi l l mul t ip ly the tun numbers. I f for some

reason he speedof the algor i thm execut ionwas not adequate or our app' l i -

cat ion, wemight consfder stor ing al i possible resul ts in a ROMor par t

of a R0l' l). l , levould then use our two numbers o compute he addressof

the product , thus remov' ing ostof the ccxnputat ions.This method hould

executeconsiderably aster . Again, the pr ice is morememory sage.

6-26

Page 96: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 96/244

Page 97: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 97/244

vAggt

Page 98: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 98/244

"%"

REPRESENTINGINARY ATA

When orkingwi th digi tal computerst is necessaryo rvorkwith bina

data. Computeromponentsre bui l t up from electronic devices whic

only representdata as 0's and l 's. This nreansou wi l l have o use

binary to representnumbers. In spi te of this, i t is impossible o

escape rom the fact that binary data is not over ly convenient o us

l{e'haveall used base 10 numbers or years and the base 2 number yst

seems u' i te inef f ic ient by compar ison. I t takes 6 binary digi ts to r

resent the number 0rO 1100102), nd it gets worse. In this sect ion

wi l l d iscuss how he individua' l binary data e' lgnents re represented

how hey can be grouped ogether for moreconvenient se. Binary ar i

mat ic and logic are discussed n the fol lowing supplementaryect ion.

7.1 - Binary Data Elements

A computer ata element f arbi t rary length N is shown elow.

FT- llThe r ight most bit (bi t 0) is considered o be the least s iqni f icant

Bi t N, at the lef t mostposi t ion, is considered o be the most signi f icant bi t . Thusa computerwi th a 16-bi t d ata elementwould havedata

bit posi t ions 0-15:

16-Bit Data 'lord

Simi lar ly , an 8-bi t microcomputerould ave ata in bi t posi t ions0-

8-Bit Data {ord

Thuswhenwe speak f

bi t register , wewi l l

Ioading one's into bi ts f ive and seven

be loading the fol lowing pat tern.

15 L4 13 t2 11 10 9 8 7 6 5 4 3 2 1 0

7 5 5 4 3 2 1 0

7-L

of an eig

Page 99: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 99/244

Referenceso the bi t posi t ions

than to the binary numbern a

control and logic appl icat ions.

?.2 - Binary Numbers

Bit Posi t ion

of a register or memorylocat ion rather

register or memoryocat ion are cormon n

numbers s a funct ion of

individual digi ts. Anycan be represented s

AItAH-t .AtAo=ANRN+AN-txRN-l+ +AlxR1+A0xR0

whereA is any digl t in the range0 to R- l and N is the digi t posi t ion.

For example, onsider the number 36 n base10. hlehavedigi ts in posi-

t ions 0, 1 and 2. In this case, al l valuesof A must be in the range

0-9, and R = 10. l , le hus havea number epresented s

Al l number ystems including binary) represent

the radix (number ase)and the posi t ion of thenumber omposedf digi ts AH-AO n a radix R

fol I ows

t13610=1xR'+3x

\subscr ipt to=1x(to)z*=100+30+6

= 13610

Rl*6rRo

ident i fy nurnberase.

3x(10) +'6x1

Binary numbers an be simi lar ly represented. Thedi f ference is that wherein decimal we have en possible numbers0-9) , in binary we only have r ro

(0 and 1) . This meanshat represent inga given numbern binary wi l ' l re-

qui re moredigi t posi t ions than represent ing he same umbern decimal .

Thus he binary number 0110 s represented s

10110^.z'=

L x 24+ o x 23, L x zZ* I x ZL+ L x z0

1x16+0+4+2+0

2?to

7-2

1 0II

0 0 0 0 0

Page 100: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 100/244

stu

Page 101: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 101/244

NI'MBERSXSTiff COUVERStrONS

DECII'IAI ?0 Bn{lRy

To convert any decirnal nrmber to a bi.nary nrrmbere take the decimal

number and successively divide by n2n and,nrite dcnm ttre remainde,:r (1

or 0) as you continue divi{,ing until the nr:mber becores trOft.

ETI}IPI,E:

Convert b3ZrOto a bjnary number.

2 )blz

) 1oB /a

) itl

)zz

)r : / t

t6/ t

) t /o

)1 /r-lI

/t-, It lv*

)0

b3ero

ErNAnI T,O EqrUAr

As ln the deci:nal nunber systeu, the least signiJicant dlgtt ls on

the rlght and the most sigrrlficant digit ls on the left and each diglt

Ls a nultiple of a certeln poner of 10.

b x mA + ) x l0l + 2 x lO03zro

8- t

Page 102: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 102/244

firis is 'a1so true for a binary nurnber, except that it is a nultiple

of a certain power of trZn,

IOIIA = f x 23 + o x 22 + 1 x ZI + 1 x 2A

So to eonvert a binary number to a decimal nrurberr take each power

of nzil and change lt to its respective decimal nunber.

20=f

2L=Q

2?=L23 = 8

,lt = 16

ar6= 6r rg36

etc.

EXA}IPI,E:

Take the number 101101

1OL1O12 1 x 25 + O * 2L * Ix 23 + I x 22 + A x 2L +1x 2O

= 1x 32+Ox16+1 x8+Ixb+0 xZ+1 x1

- 32 +0+B+b+0+1

1011012 = h51o

8-2

Page 103: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 103/244

COI{YERTING ECI},I.AL 1] OCTAJ,

Use t'tre sane nethod as to convert decinal to bJ.ary except dlvide

by ttre base of n8n i-nstead of n2r.

EXAIIIPLE:

Convert 13110 to Octa1

) 131

)re /3

/o

/z

f : f

81 =,8

82 s d+

d=5L2

* r bo96

85 , 32T(i8

66 . 262]|o

etc.

Btao = e3g

CCIIVEBTI{G_oCTAL_TPJDE.II.{At

To convert from octal to decLnal use the same nettrod as for

b:inery to declmal converslon,except use the

poners of n|n lnstead ef ttltt.

EKAI{PI"E

8-3

Page 104: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 104/244

EXA!{PIE:

Convert 2O3U o decimal

2o3^ = 2xB2+ox81*3*80o

2x( i l+Ox8+3x1

= 128+O+l

= 131

c0livERTINGpECII.{ALTO.HEJilpECn{AI,

Agajnr use the sane nethod for decinal to biaary convErsion, except

use the base x16rt jastead and replace the renalnders of n10r to iltr5trby

the letters A to F respectively.

10=A

U=B

J2=C

13 a D

U=f,

$=f

EXAI"IPIE:

Convert 9L92n to hexadeclnal

) 35/ rJ t

) 2/3

) o/z

9192ro

=;; l

Page 105: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 105/244

colwERTIllG IIEX4)EC"I1{.qL 0. DECI]4AL

lgain, use the sane nethod fcr binary to decima-l conversiooe

except use the polters of 16 lnstead, and convert the letters A thrcrugb

F to 1O ttrough 1l respectively.

160=l

161 - 16

:162 = 256

- ba96

- 65536

EXIIMPI.E:

Convert 23881d to decirnal

L63

1*

238\6 = 2xLO+3xt62+Ex161 +8x160

= 2 xt63 + 3 x t62+ ].|r x t61 + B x t6o

2388:]6

s 2 xbO96 + 3 x 256 + ll+ x 16 + I x I

- 8192+768+zLt+8

a 9L92Lo

COT{VERTItrKICUL TOBIXANf,. EEtrIDECII.{AIO BIr.ONr.

OCT.[I. O GX'jDLCIMAI:ANDBACK

Convert to blnary firste tlren tl oeadrd' regroqp the bfuary nunbers

into the desj.red goqps of three c four btnary dlglts, (three for octaL

or fqrr for hexadeclnal). lnhese ranslate dlrectly to tbe deslrad nunber

sr5rsten. Alrays start tbe regrorrytng rlth the ISB.

8-5

Page 106: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 106/244

BinarY

000

001

o10

olJ

100

101

110

111

0ctaI

o

1

2

3

b

5

6

7

Bi-nary

oooo

0001

0010

oo11

0100

0101

OILO

o111

1000

100r

1010

1011

.ILOO

Ito1

1ILO

Ltu

llexadeciraal

o

I

2

3

b

5

6

7

I

I

A

B

c

D

EF

E]NAMPT.q:

1) convertbnzncaao octal

btcncr, = orco 1010001010111100

= ovoo VoLo oovo L1/LIV10o

' 01 OO1010 001 010 111 100

= 112l .27b

hmncr, = ltzl2?bg

8-6

Page 107: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 107/244

2) Convert U35S to Hexadeci:nal

rI35S = oO1 loo 011 101

= 0Ol VQo 01/1 101

= 0O11 0001 1101

= 31D

!+358 = 3St6

B-7

Page 108: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 108/244

sSo

Page 109: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 109/244

BCD}TIJI,IBERS

In someapplicaLions it is desirable to be able to directly rep-

resent decinal nurnbers n the binary computer. Th.is is done using

Binarv CociedDecimaL, BCD. Whenusing BCDwe do not use all possible

data values that the binary data element can represent. Instead, we

1!nit ourselves to the followirrg fou: bit patternsl

Decimal

0

1

I

L

5

6

1I

B

9

BCD

oooo

0001

0010

0011

o100

0101

UJ.l-U

0111

1000

1001

The o',her sj.x four bit combinations (1C10-111tr) are not used in BCD.

An eight-bit data element can hold two BCDdigifs. This means t can

represent decirnal nunbers from 0-99. BCD s very cornmonlyencoultered in

control and instrLment interface applications. As a resulte many computers

provide instructions to a1low direet arithmeric with BCDnwrbers.

e- ' l

Page 110: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 110/244

sA

Page 111: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 111/244

BINARYFRACTIONS

Binary numbersare generally considered as shole i.ntegers (i.e., 1,

2, 3, ..-). Hcrcever, t often becornes ecessary to represent nu-nbers

other then whole nurnbers. Binary fraction representation is an3.lagous o

cecimal fraction representati.on. In decimal nwrbers a fractlon consists

of digits to the right of a declmal. point; in biaar;y r we consider the bits

to the right of the binary point to be a fracticn. In a bilary fraction

the bits represent 2-N, where l,l = the bit posi.tion to the right of the

binary point. The powers of 2-N are shonn in the nunber tables. Con-

sider the following binary nrunber?

Binary Poj-nt

1101.1101

ltris binary nr:nber representation means

Z3 + 22 + O + ZO . Z-l * Z-2 + O + 2-3

=B+lr+1+.5r.25+.0625

= I3.B].,Z5

Numberscan be converted to and from binary fractions using the

techniques already shorn fe converting whcle binary nunbers. Unfortunately,

not all fractj-ons are as well behaved as the above exanple. Consi<ier the

decimal number 3 L/3. Whenwe try to convert j.t we end up with -

i r /-

3 L/3IO = 3.3333. . . . . .3rO

) V3LO = 11.01010101.. . . . .01-2

The fracti,on repeats and there is obviously no exact result. We

ri1l have to choosea bit posi.tion where re tnurcate the value. For

example, j.f we choosebit position sixl we end up with dn approximation.

) L/3n N 1 1 . 0 10 10 1

10-1

Page 112: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 112/244

The rouadlng errol introduced by ttris tnuncatio, can be coputed by

courerting the tnrncated fraction.

1 1 . O 1 O I 0 10 1 = 2 + I + .25 + .e62i + .OLS6ZS

=3.328L29

Tbe error is about .1t. lbe possibility of tJrls type of rounding

error must alrays be taken into cqrsideratLon whenusing binary .fractioas,

partlcularly ln dlvision operations. Very fen nunbens result tn eract

binary flacttons, so the possibility of erqr wlIL be ever lresent.

Page 113: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 113/244

s3ocHA

Page 114: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 114/244

BINARYRITHMETICtfpLgcrc rNSTRucTroNs

All computersrovide

a nr"rnberf instructions whichare used o performarithmetic and og'ic operationson data. As discussed lsewherer oCIpu

data consists of patternsof bits in registers andmemoryocations. How

ever' there is a fundamentalifference betweenhe way he arithmetic

instruct ionsand ogic instruct ions reat this binarydata. Thearithme

instruct ions nterpret the data as numbers.The ogic instruct ions,on

the other hand, nterpret the dataas a col lect ion of individual bits.

'11.1Computerrithmetic Instructi.ons

Themostbasiccomputer r i thmetic nstruct ion s addit lon. This instruc

and the logic complementnstruction can be used o lmplement ny known

n6thematicalunction. As a result, many omputers ffer addition as

their only arlthrnetic instruction, After additlon, the next mostcoflilno

arithrntic instruction is subtraction. This is because ubtractioncan

be perfomndusing the same asic hard*areas addition. After addition

andsubtractionyou have o go to a considerablymore omplex omputer

to get mult ip l icat ionanddiv is ion as bui l t - in funct ions. Thehardware

required or these operations s conslderablymore omplexhan that usedfor addit ionandsubtract ion. As of this wri t ing (July L976) here are

no microprocessorsi th bui l t - in mult iply anddivide hardware.Thls wl l l

certainly change. All of theseoperationsuse the contentsof the compu

accumulator(s) nd anotherdata sourceas operands ith the result endlng

up in the accumulator.

3I;X.l TnosComplementlotatlgThemost

cormonwayof representingnumbersor arlthmetic operatlonsn

the computers twos complementotation. To understandwos complernen

notation let's consider he binary nurnbershat can be represented y an

8-bit data element. lrleknow hat an 8-bit data elernent an represent256

individual values. When eusea reglster as a counter,wecan countup

to 256dlfferent values. Thebinary number ountlngmethodollows,

Lt-1

Page 115: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 115/244

Binary Count

00000000 0

00000001 100000010 2

00000011 3

00000100 4

: :

11111110 254

11111111 255

This is an examplef using he data element s an unsigned umber.The

numbersn the register are interpreted as being n the range+0 to +255.

Nowhis methods convenientor count ing,but awkwardor ari thmetic

becausehere is no way o representnegat_iveumbers.To circumvent

this 'problemwechangehe way n whichwe nterpret the 256possible,

numbersn the registersso that wewil l be able to represent oth posi-

tive and negativenumbers.This revised scheme ill be called g.igned-

twos complement

Anybinarynumbers convertedo its negat ive y complementing' i t ,

adding ne, and gnoringanycarry out causd J the addit ion. For example,

consider he bi narynumber5 in an 8-bit microcomputer;0000101. o

convert+5 to -5 we i rs t complement1111010,nd henadd1; 11111011.

If we perform he procedure n the result weget backour original number.

The256possiblenumbersn an 8-bit register now epresent osit ive and

negativenumbersn the range 128 to +127as follows:

IL.2

Page 116: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 116/244

00

00

000

000

000=0

001=1

:

1l l ' '+127

111= -1

110--2

101=-3

01

11

l l

11

111

111

1l l

111

: :

10000000'-128

t{obhow it 7 (the mostsignif icant blt) is always zero for al l posit ive

numbersndalwaysa one or negatlvenumbers.Thenpst slgniflcant bit

in a irl,os omplementumbers called the siqn bi3, because y testing

it you candeterrninef a numbers positive or negative.

tL. 1.2 BinarYAri hmtlcBlnary arithmetic is perforrnd uslng the ALUand two operands' The

operationcan be perfonned sing either unsignednr,mbersr slgned tms

complementumbers, epending pon he operation being perforrned' ibst

computerserformaddition and subtractionas unsigned perations. They

do provlde lags to indicate the result ln signed ms complement,ut

it ls up to you to keep rack of the slgn andmagnltude.

Addltion is perfonned y addlng he contentsof an operando the contents

of the accumulator. If the result ls greater than the largest number

whichcan be representedn the accumrlator,a flag rill be set to indl-

cate a carry out has Occurred. For example, onslder the operatlonof

addlng he number 5rO o an 8-blt accu,rulatorwhlchcontalns 25LO' The

operatlon wouldbe performed s follows.

IL.3

Page 117: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 117/244

Accumulator00011001+0perand 0000I111

Resul t 00101000=40,^

Now onsider he addi t ionof l l l r ' to 14510n the accumulator .

Accumulator10010001

+Operand 01101111

u00000000carry out

The resul t of this operat ion is 25510. It causesa cary out to indicatethat the accumulatoroverflowed.

Subtraction is performedby taking the twos complement f the subtrahend

and adding t to the minuendn the accumulator . Thus o subtract 10rO

from 25rOwe urouldperform the following operation

Subtrahend00001010

FormTwosComplement 1 1 1 0 1 I 0AddTo Accumulator 0 0 0 I 1 0 0 I

4000011carry out

Ignoring he camyout, we have result of 1510. Now onsider he

subtract ion f 35 from 15.

Subtrahend00100011

FormTwosComplement1 1 0 1 1 1 0 1

AddTo Accumulator 0 0 0 0 I I I 1

! /11101100no carry

Nocarry lndicatesa negat ive esult . I f weconvert he numbersingour

twosc6mplementules, weobtain the correct result , -20.

11=1510

11-ir

Page 118: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 118/244

n'.wr'^^Ir*d"

g*b*re-Iv,*A

K w-*+

Resul t 11101100

Complement 0010011

Addl 00010100=2010

Notice that the senseof the carry after a subtraction is reversed from

that of addi t ion. A carry out indici tes that the subtrahend as smal ler

than he minuend1nd he result of the subtract ionwasposit ive. &gry

-outndicates hat the subtrahendas arqer than the minuendnC hat

the resutt rvls nega This is cal led a borrpw ondit ' ion, nd t is

analagouso overf low n an addit ion operat ion. To avoidconfusion bou

the reversalof the state of the carry f lag, many omputer LU'S uto-matical ly complementhe carry f lag after a subtract ion. This makests

state after a subtract ionmatchmore losely l ts state after an addit ion

( i .e. camy set i f resul t cause borrow, lear i f the resul t d id not

cause borrow),

lL2 Computeroqic Instructions

In contrast o the ar i thmetic nstruct ions, the logic instruct ionsperfo

their operationswith no regard or the numberepresentation eingused

Thenumberseingoperated ponare simply treated as strings of bits.

That s why,these perations re often refemed to as bit by bit opera-

tions. Theoperationperformed n one bit in no wayaffects the operatio

upon djacentbits.

Ab

The our most cormon omputerogic

andExclusive0R. These perations

of the accumulator ndanotherdata

endingup in the accumulator.

instructions are Complement,ND'0R

(exceptcomplement)se he contents

sourceas operands, i th the result

9.2. I Loeic Conlplement

Thecomplementnstruction replaceseachbit in the accumulator ith its

logiccomplement . hus f theaccumulatorcontains1 0l 01 I 01, the

complernentperationyields the following result. ,r

u-5

Page 119: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 119/244

Accumulator

Complement

11.2.2 LoqicAND

TheLogic AND perations (Symbol

and an operand ccording o the

A) operatesupon he bits of

folloring truth table.

r0101101

01010010

the accumul

Thusgnly those bit positionswhichare logic ones n both the accumulato

andthe operandwill be logic ones n the accunnrlator fter a Logic Al{D

operationhasbeenperfonned. For example, onsider he following Logic

At{D peration.

Accumulator01101101

A0perand 11011011

Resul t 01001001

Only hose bits whichwereones n bothoperands re in the result.

Lt .2.3 Looic,0R

The Loglc 0R operation (symbolV) operatesupon he bfts of the

accumulatorndan operand ccording o the folloring truth table.

Accumulator 001

nd

Bit

Bi t 0

Resul tBit

Bit posit ionswhichare logic ones n

wil l be Logicones n the accumulator

performed. For example, onsider he

either the accunulaton r the operand

after a Logic0Roperationhas been

fol lowingLogic0Roperat ion.

AccumrlatorBi t 0011

i t

ResultBit

II-O

Page 120: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 120/244

Bit posi t ions which are Logic ones n ei ther the accumulator r the operand

wi l l be Logic ones n the accumulator f ter a Logic 0R operat ionhas been

performed. For example, onsider he fol lowing Logic 0R operat ion.

Accumulator

V Operand

Resut

10110110

00110011

11110111

All bi ts whichwereones n bcthoperandsre ones n the results.

q.2.4

-Loqic

XOR

TheLogic Exclusive Roperat ion symbol , o-ten cal led XOR)s not

found n al l computers. t operates pon he bits of the accumulator

andan operand ccordingo the fol lowing ruth tabSL

Accumulatori t 0011

and Bi t

Resul tBi t 0110

Bit posit ionswhichare a Logicone n either the accumulatorr theoperand ut not bothwil l be Logicones n the accumulatorf ter a logic

XOR perationhas beenperformed.For exanple,consider he following

Exclusve Roperat ion.

Accumulator 1100101.l f 0perand I 0 I l gJ I 0

Resul t I 1 0 I 0 0 I I

Those its whichwereones n only oneof the operandsre ones n the

resul .

u-7

Page 121: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 121/244

APPENDIX

MODIFIED500OPCODE ABLE

Page 122: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 122/244

0

I

2

3

4

5

6

7

8

9

A

I

c

D

B

F

0

8R K

BPLr

JSNG

EMIr

RT I

BVCr

RTS

E4rSr

*

BCCr

LDT#

BCSr

CPYf

BNEr

cPx*

BEQr

0

OR$(t *

ORAIy *

ANDxt *

ANDiy *

EORxi *

EORIy *

ADCxI *

ADCIy *

STAr(I *.

STAty *

LDAxl IDX#i

LDAIy *

CMP!(I *

CMPIy *

SBCII *

SBCIy *

l2

* ORAz ASLz *

* ORAzx ASLzx *

BITz, ANDz ROLz *

* ANDzx ROLzx *

tt EORs LSRz *

* EORzx LSRzx *

* ADCz RORa *

* ADCzx RORzx *

STYz STAz STXz *

STYzx STAzx STXzy *

LDYa LDAz I"DXz *

IDYzx LDAzx LDXzy *

CPYz CMPz DECz *

* CMPzx DECzx *

CPXz SBCa INCz *

* SBCzx INCzx *

MODIFIED 6500 oP coDETABLE

8

PHP

cIf

PLP

sEc

PHA

CLI

PIA

SE I

DET

TYA

TAY

cLv

INY

CI.D

INX

SED

I

* ORA@ ASI€ *'

:r ORAGX ASIGx *

BIIG AND@ ROIS * r

* ANDGx ROIGx *

JMF@ EORG LSR@ *

* EOR@x LSRGx *

JlrPt ADC@ RORG| *

* AD@x RORgn *

STTG STAG ST)@ *

* STA@x * *

u)YG I.DAG tDX@ *

IDI@x LDAGx LDXGy *

CPYG CMF@ DEOG ** a"tG* DECGx *

cP)(G 88C@ IN@ *

* SB@x INCGr *

ORA# ASLa

oRlGy *

A"llD# ROLa

ANDCy *

EOR# LSRa

EORey *

ADC# RORa

AD@y *

* TXA

sTAGy T)(S

I.DA# TN(

IJeGy TSX

CMP# DEX

c[@y *

SBC# NOP

SB@y *

9A

B

*

*

*

*

*

*

*

't

*

rb

*

*

*

*

*

*

B

Ke y to addresslng eldole:

t lnnrediate@ abeolutet 8ccumulatotr re lat ivea tero PagG

&t , Gy absolute tndexedN*,, zV Eero page tndexedrl lndercd lndtrectty lndlrcct lndexod

Page 123: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 123/244

APPENDIX

KIM INFORMATTON

Page 124: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 124/244

KIM PROGRA}MING ATA SHEET

.5500OP CODE AELE

o 8RK oR$(l t r

I BPLr oRAly * r

2 JSRG ANDX, * t

3 Bltlr ANDIy t *

4 RT I EoRr( * r

5 BfCr EoRfy t *

6 R?S A.DCxi * r

7 BVSr ADCty * *

SrSTAxttt

9 BCCr STAIy I *

A LDY+ .tDAxl lrxt .

B BCSr IDAIy * i

c cPIf cMht * *

D BNE! C!{Ply ) *

E CEK' SBGxt r .

F BEQr sBcty r t

ol2t

STASUSREGISTER

P: NV BDIZC76543210

I}IPORTAI{TDDRSSSES

00EF PCL 17rA t&tI-L ss=0000F0 PCH 17FB NUI-Hss=1c

4567

* oRAz ASLz *

i otu{zx ASLzx *

BITt A.liDz ROLz *

*AJ{Dzx ROLil

t

* EORZ IJRz *

* EORzx LSRzx *

* ADCZ RORZ t

r ADCzx RORzr *

STYZ SI.tz STXz *

STl:r STArr STXzy *

l.J)Yz ItAa lJXz t

U)Y?r lJAzx L}Xzy i

CPY8 CltPz DEC: *

tCliPzx DECzx

t

CEX8 SBC? lNc" *

* SBCzr INCa *

6567

9A t

ORA* ASIJ *

ORnGy * *

AND' ROL. t

AND@y* *

EOR# ISRa r

EO@y * *

ADC# RORs *

l\D@Y * *

*TXA*

STAGy fXS *

I.DA# TA,\ *

I,l@y TsX *

cMPrr D!!{ *

CilrGy*

'

60nf No F I

SB@y t *

9i{8

CDEF

* ORI{ ASI€ i

* OR{}x ASICI *

BITE ANDG ROItr *

*AN[ax ROLG!

*

JlaG Eo8€ tsR€ *

* ECRj-ex f-sRLlr t

.JnPt ADC.a RORG *

* ADC(ax RORGI *

sTr€ sTr@ sr:@ *

* sTAGx * *

rcl€ LDr& LD& r

IrlG* LDA(?x LDX?y *

cI'rG cliRd DE@ *

* C.'{I?x Df,CGr *

€8&r 5UW lH€g *

* SB@x fNO!fu *

CDEI

6

PHP

cLc

PLP

sEcPiIA

cL t

PIA

cFt

DEY

TfA

TAY

cLv

INY

ct

I:!X

SE D

8

ASCII/HEXCONVERSIONABLE

DECIT.{AL iTA( BII{ARY M

OOF1 Po0F2 sOOF3 AOOF4 Y

ITFC RST-L17 m RsT-H17FE IRQ/BRK-LITFF IRQ/BRK.H

0 0000 F1 0001 E

2 0010 D3 0011 c4 0100 B5 0101 A6 0110 97 0111 68 1000 79 1001 6a 1010 5B 1011 4

01

234

)578

00F5 X

w.i1, 0OF1- 00 (LD).1 ". -: ,-1700 pAD 17F5 SAL

... LTOL PADD I7F5 SAIT, 4L702 PBD L7F7 EAr+l

1703 PBDD 17F8 EAII' ,4 ,4 - 17F9 rBlt,/ ' i;t11s..t 1g0O DUMPI''

' / =,.,, ". , L873 LOADT. : . . r+-

IMERVALTIT'{ER

pRT to @: /ll INT

L704 1 D1705 8 DL706 64 DL707 LO24 D170c I E170D 8 E170E 64 El70F t024 E

9l0l1

READG I}NL7O7 STA?USL7O6 COUNT D17OE COTJIfI E

L2 c 1100 313 D 1101 214 E 1110 115 F 1111 0

DISPIAY OI'TPI.TT:

)g )0( xx00FB 00rA 0oF9

JSRG grFlF

KEYBOARDNPIIT:

JSRG $1F6A

OTTTPUTO IIY:

char ln AJsn@ 91EA0

II{PTIT FROM TY:

JSR@ $1E5Achar lntoA o .' 1

NULL

s7anr oF H€aorr{c. AtSo 6TAFTOF MESSAGE

START aF r€Xlj ALSO €OA. E( OOF AOORESS

eND OF lgxt; also €oM, Eil, oFMESSAOE

EH O OF ?FANSMr39tC{ tENOt

ENOUIRY I€NORYI- ALSO V'FUACXNO4LEOCE,

^LsONU

RINGSTH € A€LLBACKSPAC€HOAI2OiIIAL TA 'LINE FEED OR LIN€ SPACE il€WLTNEI AOVANCES?A?'A fOft€xr Lr i l€ a€GttNrNG oF Lttr€VFRTICAL TA 8 (VTAAI

FORM :EED TO'O P

OF NEX'PAG€ iPAGE}CABRIAG€ R€TUNN

sHrFt Ou tsHrtt rx

OATA LINX €SCAT€DgvrcE coN?roL t

oEvrcE coitleoL 2

cEv'cE coNTBor 3:tEvrCe CONIPCL ai/EcAttv€ Acracfvtlocc

3YIJCHHONOU' AL E IS

€NO CF rnANSVrSSrON

SArrCEL CALCLl

EwO Of storur,

3Utg?rrutg

€scAtE. Pil€Ftx

FILE SEPAiATOIGFOU' SEPAFATOR

R€COFIO EPARATORUTITS€PARATON

I {U L

I soHIsrx

€T X

EN OAC K

t€ L

ssHT

,.9n

CDt !a..

I

II

..iI

iI

I

I

I

t.&t

@

0t

03v\

060009OAoaocooo€OFt0tlr2?f,lal5r6l7

'|l9tA

'Ec

IE!F

cu

NU L

so xsl x

EI X

EO r

EflOAC K

se L

asHT

LF

so

OL €

oc3Oc.

SY N€t acAr{Et1su aE5 CFS

isUS

7.8'r

Ch, 8o.

:? f,

i2 4a? 5

e2 6,2 1

{? E

t2 9.? a

+2 9

,2 e

i2 F

r3 l

23 2

33: la3 4

53 5

i3 a,3 7

83 i

93!}

.3 8

.3 o

rl F

e. 0

r6 l

b6 ?

? 6:t

d&

.6 5r6 6

t €th6 €

.6 9

r6 ar5 a

r6 c

m6 0

n6 €

o6 F

Fr A

c? l.t 2

rt 3

r? a

r7 5r7 g

r1 7

r7 E

rE!t A

76

AL ' ?D

Es C'EeL . tt

EUBOUI

7'8 ' r

Chr No.

a 4l

e12

o{E4 !F4

ca 1Ba 8t4 9

K4 8

La cMa o

t. €

O4 FP5 q

o5 rR5 2

s5 374

u5 5

v1 6

w5 t

'x gl

Y! 9

z5 a

!5 8

15 0. .5F

\eo

OL E

'rC1

oc4

sY U

€r 8CA N

€tlsu 8

RSUS

Page 125: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 125/244

rII't BrocrDr.0oniM

DBO- DB7

6530-oo2

I.K ROM

TII,IER

648 RI{U

15 PIO

6s30-003

-1K ROt'{

TIMEF.

648 RI{U

15 PIO

.J

PAO . PA77

gBO . PB7

PAO- P.A,7

PBO PB7

Kf,YBO

DISST

TTYITATNTER

-rRQ NlIr R/W RAM R/W ABO- AB15

Page 126: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 126/244

KII"I INTERFACIY DATA SITEET

APPLICATIONCONNECTORLUG

TUNCTION PIN #

PB O IPB l 2PB 2 3PB3. 4PB4 5PB5 6INT(orange) 7PB7* 8

*6ee p. H-7 for

FI'NCTION PIN #

480 IA8 l 2AB2 3AB3 4K(green) 5EIF 602 7RAM /r{ 8

FUNCTION

PA7PA6PA5PA4PA3PA2PATPAO

detaits about this

BAUD I1O

l7F1 79l7r3 02

BAT'D ATECONTROL

60 0 1200 2400

75 38 1800 00 00

PI N I

l615r4l3t2l1IO9

Itne

4800

OA00

TTY

30 0

EA00

9600

0200

EKPANSIONCONNECTORLUG

FIJNCTION

DB7DB6DB5DB4DB3DB2DB IDBO

PI N #

16l5L413t211109 __l

(A

PR.GRAHMABLE/O LINES

PA DATARECISTER 17OO PA DIRECTIONREGISTER 1?OI.PB DATAREGISTER 1702 PB DIRECTIONREGISTER 1703

(0=lnput, 1=output )

TT Y

OATAou T

TT YOATAIN

;;)<H

TAPE

GNDAI'DIO INAUDIO OTIT

KEYBDRET.PRINTERRET.KEYBOARI)PRINTER

RECORDERONNECTIONS

PIN f COLORCODE NOTES

TTY/CRT CONNECTIONS

PIN # COLORCODE

BRO{rtNtsR(NNVIOI.ETYULLCH

GREY GNDBLUE FROMEARPITONEUTPUTRED TO MIC INPUT

KLl.{

Rst

u

NOTES

(+ )(+ )20 nA current Loop20 nA current loop

IL

EXTERNAL SWITCH IO SEEITHER MOD€

FO R TT Y OPENATIONUMPf R

Mt c

-J;)REMOTE

oEA RPHONE

-o7

6-o

-o3

4-o

7c

G

6o

KEYBOARO R€TURN

{_--- KtM --:j

Page 127: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 127/244

KIM MONITOR MPORTANT DDRESSES

OOEF USER PC LOWBYTEOOFO USER PC HIGH BYTEOOFl USERSTATUSREGISTEROOF2 USER STACK POINTEROOF] USERACCUMULATOROOF4 USER Y REGISTEROOF5 USER X REGISTEROOF6 CHECKSUMOOFT CHECKSUM

OOF9 STORAGE OR RIGHTHANDDISPLAY DIGIT PAIROOFA STORAGE OR CENTERDISPLAY DIGIT PAIROOFB STORAGE .ORLEFTHANDDISPLAY DIGIT PAIR

17OO PORTA.DATA

LTOT PORT A DIRECTION CONTROLREGISTERI7O2 PORT B DATAL7O' PORT B DIRECTION CONTROLREGISTERL7O4-L707 INTERVAL TIMER #1LTOC-L7OF INTERVAL T.IMER#T

L744-I747 INTERVAL TIMER #2L74C-I74T INTERVAL TIMER #2I7F2-T7F3 SERIAL T O BAUD RATE CONTROLI7F5 TAPE DUMPSTARTINGADDRESSLOWBYTEL7F6 TAPE DUMPSTARTINGADDRESSHIGH BYTEI7F7 TAPE DUMPENDING ADDRESS+I LOWBYTE17F8 TAPE DUMPENDINGADDRESS+I HIGH BYTE

L7F9 TAPE FILE INDENTIFICATION NUMBER

ITFA NMI VECTORLOWBYTE17FB NMI VECTORHIGH BYTE

LTFE rRQ VECTORLOWBYTELTFF IRQ VECTORHIGH BYTE

18OO ENTRY POINT FOR TAPE DUMPROUTINE

1873 ENTRYPOINT FOR TAPE LOAD ROUTINE

ICOO NONDESTRUCTIVE ONITORENTRY POINT

lC+F DESTRUCTIVEMONITORENTRY POINT

IEAO SERIAL OUTPUTENTRY POINT

1E5A SERIAL INPUT ENTRY POINT

lFlF ENTRYPOINT FOR DIGIT DISPLAY ROUTINE

IF6A ENTRYPOINT FOR KEYBOARDREAD ROUTINE

B-4

Page 128: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 128/244

APPENDTXc

C. KTM SOFTWARE COLLECTTON

Page 129: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 129/244

KIM User Notes vl- /13

Cass R. LewartHoI"mde1,N. J.

DISPI,AY ROUTINE

This rout ine wil l display any program showing each successivelocat ion and the contents of that locat ion. The rout ine is fu1lvrelocatabLe. By stor ing in the 17FA and LTFB l-ocat ions thestart ing address of this rout ine one can use the ST key to star t

the program. The display can be stopped by pressing RS and cont inuedby pressing ST again. The program starts dispLaying consecut ivelocat ions star t ing with the locat ion shown in the displ-ay bypressing ST. The second prograrn MULTcontrols the displa.v t ime.With val-ue 04 i t is 0.4 sec per Locat ion.

OO A2 04 THREE LDX/I MULT02 8A TWO T)(A03 48 PHA04 A9 62 LDAIf $62 .1 sec/cycle06 8D 47 L7 STAG $L747 Load timer09 20 L9 \F ONE JSRG SCANDS Display

0C 2C 47 17 BITG $L747 Check t imer0F 10 F8 BlLr ONE11 68 PtAT2 AA TAX13 CA DEXL4 D0 EC BNEr TI^IOL6 E6 FA INCz $FA18 D0 E6 BNEr THREE1A E6 FB INCz $FB1C D0 E2 BNEr TI'IO

e.g. to star t displayipg at. 2LO: AD,O,2,1r0,STif the DISPLAYstarts at 300: AD, L,7,F,A,DA,0,0,+,0,3,AD,go

to desired locat ion,ST,. , . .

l l q l l+i *11r.*'L.vs$d*f-'t"",.*-

c-1

Page 130: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 130/244

KIM User Notes vL l/t4

Ji m ButterfieldToronto

DIRECTORY:A KIM-I UTILITY PROGMI'I

Program DIRECTORY Llows yo u 254 program IDs to choose from .. . enoughfor most program libraries with some to spare. The program is fu1lyreLocatabl-e, so pu t it anlnohere convenient. Start at the first instruction(0000 in the l ist ing). IncidentaLly, 000L to 001D of this program arefunctionaLly identical to the KI M monitor L88C to 18CL.

After you start the program, start your audio tape input. WhenDIRECTORYinds a prograu, it will display the Start Address (firstfour digits) and the Program ID. Hit any key and it wiLl scan forthe next prograu.

0000 D80001 A9

0003 8D0006 200009 460008 05000D 85000F c90011 D00013 2000L6 c600t8 L000LAc9001c D00018 A2oo20 20oo239s0025 E80026 3A0028 200028 D0002D F0

CLD

LDA# $OZ

STAG SBDJSRG RDBITLSRz INHORAz INHSTAz INHcMHl $l eBNEr SYNJSRG RDCHTDECz INHBPLT TSTcu"tt $2ABNET TSTLDXtI $rDJSRG RDBYTSTAzx POINTII+IINXBMIT RDJSRG SCANDSBNEr GOBEQr SHOI{

o7

42 L74t 1AF9E9F9L6F324 LLF9F52AF1FDF3 19FC

F8lF lF

D3F9

Directional reg

Scan thru bits. . ,

. .shif t ing new bi t

. . into lef t of

. .byte INHSYNCcharacter?no, back to bitsget a charactercount 22 SYNC's

then test astk, .or SYNC

if aster isk,stack 3 bytesinto display

atea

., .and shineuntil keyed

atf s al l fol ,ks

c-2

Page 131: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 131/244

VU TAPE

KIM User Notes vl l t2

Jim Butterf ield

Toronto

Program VUTAPE ets you actual-1y see the contents of a KIM format tapeas i t 's going by. I t shows the data going by very qrr ickly, because of thetaPe speed .. but you can at least 'sense' the kind of mater ial on the tape.In case of tape t roubles, this should give you a hint as to the area ofyour problem:

nothing? noise? dropouts? And you can prepare a test tape(see beLow) to check out the tape quali ty and your recorder, The testtape wi l l a lso help you establ ish the best set t ings for your volume andtone controls.

Perhaps VUTAPE'smost useful funct ion, though, is to give you atfeel ing' for how data is stored on tape. You can actual ly watch the

Processor try ing to synchronLze into the bit st ream. Once it rs synched,you' l l see the characters rol l ing off the tape unt i l an ENDor i l legalcharacter drops you back into the sync mode agaLn. I t rs educat ional to

watch. And since the program is fair ly short , you should be able to trace

out just how the processor tracks the input tape.VUTAPE tarts at locat ion 0000 and is fu1-J-y elocatable (so you can

load i t anyplace it f i ts) .

OOOO 8 START CLD0001 A9 7F LDAI| $7r0003 BD 4L L7 STA@ PADD set display dir reg

0006 A9 13 SYN LDA/f $13 ..window 6 and tape in

0008 85 E0 STAz POINT and keep pointerOOOA D 42 17 STA@ SBD000D 20 41 1A JSRG RDBIT get a bi t and0010 46 F9 LSRz INH ..sLip i t into0012 05 F9 ORAz INH . . the r ight-hand

00L4 85 F9 STAz INH ..side;0016 8D 40 17 STA@ SAD show bit f lag on display

0019 C9 16 TST CMIVf $16 .. is i t a SYNC?0018 D0 E9 BNEr SYN nope, keep 'em rol l ing

001D 20 24 LA JSRG RDCHT yup, start grabbing. . .

OO2OC9 2A CMH| $2A .8 bits at a t ime and..

0022 D0 F5 BNEr TST .. i f i t 's not an r*r ."

0024 49 00 STREAM In.Ait $OO .. then start showing

0026 8D E9 L7 STA@ SAVX ..characters 1 at a t ime

OO2920 24 LA JSRG RDCHT002C 20 00 LA JSRG PACKT ..convert ing to hexadec..

002F D0 D5 BNEr SYN . . i f legal0031 A6 E0 LDXz POINTOO33E8 INX0034 EB INX Move al-ong to next. .

0035 E0 1-5 c?x/ f $15 ..display posit ion

0037 D0 02 BNEr OVER (i f last digit , . .

0039 A2 09 LDX/F $09 ..reset to f irst )

0038 86 E0 OVER STKz POINTOO3D8E 42 T7 SD(@ SBD0040 AA TAX change character read

0041 BD E7 \F LDAGx TABLE . . to segments and. .

0044 8D 40 17 STA@ SAD send to the dLapLay

0047 D0 DB BNEr STREAM uncondit lonal jurnp

c-3

Page 132: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 132/244

PROGRAM O CHECKOUT TAPES/RECORDERS

Make a test taPe contal.ning an endless stream of SYNCcharacterswith the folLowlng program:

0000 A0 BF cO LDy# $B r directionaL..0002 8C 43 L7 STlf@ PBDD .,regtsrers0005 A9 16 LP LDA/I $rO SYNCoooT 20 7A 19 JSR@ OUTCH ..our to rape0O0A D0 F9 BNEr Lp

Now use program WTAPE. The display should show a steady synchronizatLoapattern. Tty praying with your controls and see over !f,hat range th ePattern stays l-ocked in. Th e wider the range, the better your cassettel

recorder.

c-4

Page 133: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 133/244

KIM User Notes v1/12

Jim Butter f ieldToronto

SUPERTAPE

0100 A9 AD DIIMPT LDA# $AO op code LDAO1O2 8D EC L7 STAG VE B

010520

32 L9 JSRG INTVEB ser up subrtnoL08 A9 27 LDAIF 5270104 85 El STAz GANG fl-ag to go to SBD010c 49 BF LDA/I $sr010E 8D 43 L7 STAG PBDD open the channelsOLLLA2 64 LDx/f $64 send 100.. .0113 A9 16 LDA/I $16 ..SYNC chars0115 20 61 01 JSRG rrrc011-8A9 6- tDA/f S2A send aster isk011A 20 88 0l_ JSRG OUTCHT011D AD F9 n LDA@ ID then the IDOI2O 20 70 01 JSRG OUTBIT0123 AD F5 L7 LDAG SAL followed by

0L26 20 6D 01 JSRG OUTBTC rhe srarr addressOLzg AD E6 L7 IDAG SAH (1ow and hieh)

OLaC 20 6D 01 JSR@ OUTBI'COL2E 20 EC L7 DIMPT4 JSRG VEB get memory word

OL32 20 6D 01 JSRG ouTBTc and send it

0135 20 EA l.9 JSRG rNcvEB on to next addressO].38 AD ED 17 LDAG VEB+I0138 CD E7 17 CMP@ EAL is the address. .013E AD EE L7 LDAG VEB+z ..at the end?

0141 8D F8 17 SBC@ EAH

0L44 90 E9 BCCr DUMPT4 no, go back;

0146 A9 2F LDA/F $2F Yes: send end-data

0L48 20 88 01 JSRG OUTCITT

0148 AD W T7 LDAG CIIKL . . and checksumOL4E 20 70 01. JSR@ OUTBT0L51 AD E8 17 LDAG CHKII . .hi an d Low. .

OL54 20 70 O]. JSRG OUTBT0L57 A2 02 LDKIF $OZ send two..

0159 A9 04 LDA/,[ $O + EOT characters0158 20 61 0l- JSRG HrC

015E 4C 5C 18 JI4FG DISPZ and werre finished

; subroutines foll-ow here0161 86 E0 HIC Sfiz TIC count0163 48 HrCl PHA0L64 20 88 01 JSRG oUTcHT send character

0167 68 PLA . .and br ing i t back

0168 C6 E0 DECz TIC

016A D0 F7 BNEr HICL do it again

016C 60 RTS

c-5

Page 134: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 134/244

016D20 4C L90L70 480l_71- AoL72 4LoL73 4A

oL74 4A.0L75 20 7p 010178 68oL79 2A 7D 0101.7c60

0LTD 29017FC90181 180L82 30oL84 690L86 590188 A0018A 84018CA00188 840190 BE019348oL94 2C0197 L00L99 89019C 8D019FA501A1490143 8D

01A6 850LA8 cA0l_A9D0OI.AB6801Ac c6ol.AEr00180 300LB2 4A0183 900185 A00187 F00189 C6O1BB O

01BD60

SpeedX3X6

OUTBTC JSRG

OUTBT PHALSRaLSRaLSRa

LSRaJSNGPLAJSNGRTS

IID(OUT AND/TCMI{Ic16BMlrADCI|

ITH(I ADC'T

OUTCIIT I.D'TII

STtzlRY T.NYNI.

STYz

ZON T,DXGYPHA

ZON1 BII'GBPLTLDAaySTAGLDAzEOR/ISTAG

STA.zDm(BNErPT.ADECzBEQrBMIrLSRaBCCr

SETZ TNYIIBEQr

ROUT DECzBNEr

' RTS

CHKT compute checksumsave the character

. .and take i tsfour lef t bits. .

r , f r i te rem.. .

now the 4 r ight bits. .

remove unwanted bits

change to ASCII by. .

adding:

i fAtoFif numericthe eight bits, .

send 3 unitsstarting at 3600 hertz

number of half cycl.eskeep the characterwait for the previous, .

cycle to completeget the t ime to the. .

. .next pulse ($78 or C3)

flip between 1 an d 0

have we sent al l the cycles?

nope, aend another on eget back the characterone less unit to send

and the last oners here

none tef t? quit

take next bi t

. .and l f l t fs a one..

switch to 24AA cycLes/sec

unconditionat return

one less bi t

any more? go back

$01"c00605

$:z$30for

OFOA

02073008E2o2E3BE 01

47 L7FBBF 01T+T7E1.8042 t7

E1

E9

E305o7

DB00D7E2CF

HHKOUT

$0F$oe

HH(T.

$oz$go$08conNT$ozTRIB

NPUL

CLKRDIz0N1TIMGCLKlTGAIIG

$80SBD

GANG

zoN1

TRIBstv,ROUl

zoN$ooz0NCOT'NTTRY

I frequency/density controls01BE02 NPUL .BYTE $OZ two pulses; one cycl.e!01BFC3 03 7E TrMG .BYTE $C3,$03,$78

end

Tining Data: $01BE0402

c-6

Page 135: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 135/244

KIM- 1 User Note s vl lf4

Jim Butter f ieldAPE DUPLICATIONPROGRAM

L78O L9 27 START LDA/f $27 SBD value1782 A2 3F GO LDX/f $3F set direct ional register to1784 8E 43 17 STX@ PBDD input

L787 A2 07 LDX/I $07 PB 5 (cont) set for input1789 8E 42 L7 STXG SBD17BC A0 5E LDY/f 94 high frequencyl78E 2C 42 L7 BITG SBD zero or one?L79L lO 02 BPLr OVER1793 A0 A3 tDY/l L63 low frequencyL795 A2 BF OVER LDX// $BF set direct ional register toL797 8E 43 L7 STX@ PBDD outputL79L 49 80 EORif $80 reverse output bitL79C 8D 42 L7 STAG SBD and send i tL79F 8C 44 L7 STYG CLKIT set timerLTLZ 2C 47 17 WAIT BITG CLKSTAT and wait1745 10 FB BPLr WAITI7L7 30 D9 BMIr cO

Connect your two cassette recorders in the usual way at the AIIDIO IN

and AIJDIOOUTpoints. With the program running, star t the recorders.

A11 programs wil l be copied from one tape to the other. This program

works on speeds up to 3X. I f bad copies are obtained, t ry reducing

the volume on the playback machine.

c-7

Page 136: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 136/244

MOVE-A.BLOCK

KIM User Notes vL lf 4

Edward J. BechteL, M.D.Nerrport Beach, Cal i f .

The MovE-A-BLocK program wilL move a block of bytes up to 25 6 bytesLong forewards or bachwards any distance. The bI-ock ca n be across pageboundar ies -- i t does not have to reside in one page. The start ingaddress and ending address of the block is entered in 00E0 - 00E3. TheNEII star t ing address of the moved block ( i .e. , where you want to move

i t) is entered at 00E4 - 0085. r located it in 1780 ro be general lyout of the way, but l f you wish, you can use i t to reLocate itself anlmhere.

lhe program calculates whether the move is forewards or backwards,then moves from the top up, or from the bottom down. Th e number of spacesthe block is moved (in signed notation) is stored by the program in0086 - 00E7' and the number of bytes that nere moved is stored in 00E8.Also, the new ending address of the moved block is automat ical l-y placedin 0082 - 0083, for subsequent use.

1780 38 SECL78L A5 E4 LDA.z $W+1783 E5 E0 sBCz

$ro1785 85 E6 srAz $roL787 A5 E5 wilz $gs1798 E5 EL SBCZ $ErL78B 85 E7 STAz $rZ178D 90 18 BCCr MOVEB178F 38 MOVEF SECL79OA5 E2 IJi.AZ $821792 E5 EO SBCz $rOL794 L8 TAY1795 84 E8 slYz $ngL797 E6 E8 INCZ $EgL799 BL EO LooPl- LDAiy $80

L79B 9L E4 srAiy $84179D88 DEYT79EDO ^9 BNEr L00p117A0 81 E0 LDAiy $80L7A2 9L E4 srAiy $saL7A4 88 DEYL7A5 30 L4 BMIr ENDL7A7 38 MOVEB SEC17A8A5 E2 LDAZ $NZ17AAE5 E0 SBCz $rO17Ac 85 E8 STAz $ee17AEE6 E8 INCz $ee1780 A0 00 rDYtt $OOl7B2 81 EO LOOP? LDAiy $nOL7B4 9L E4 SIAIy $ra1786 C8 INYL7B7C4 E8 cwz $rgt7B9 D0 F7 BNEr LOOP217BB 18 END CI.ELTBOA5 EZ LDAz $82LTBE65 E6 A,DCz $UOL7c0 85 E2 STAz $pZL7C2A5 E3 LDAz $UgL7c4 65 9,7 ADCz $E717c6 85 E3 STAz $83

L7C8 4C 4F I.C JMPG STARTc-8

Page 137: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 137/244

0OEO= SAL)00E1 = SAH) Original

) block of00E2 = EAL) bytes00E3 = EAH)

00E4 = SAL) New locationO0E5 = SAH)

00E6 = dif L) Number of spaces00E7 = dif H) block is moved

(signed notat ion)00EB = Number of bytes in block

c-9

Page 138: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 138/244

IiEX DI]MP

by J.B. Ross

Here is a program to print out machine language programs in

hexadecimel format. To use the Program' load the start ing address

of the dump in $17F5 (SAL) and $17F6 (SAH), the ending address *1

in $17F7 (EAt+l) an d $17F8 (EAH), then run IIEX DUMP starting at

$0100. HEX DUMP s re locateabLe so you can nove' i t to other memory

locat ions as needed. As wri tcen, I IEX DUMPcenters the pr int -out on

an 80 character l ine wieh 11 spaces on the left . The pr int -out i tsel f

requi res 53 spaces. To modify the lef t margin, change the data inlocat ions $0113 and $0137.

EsI BITIP

1OO AD P5 17 SfBt LDA€I S17Fg gct lor startiag eddress103 85 FA ,SfAU POINTIT save it in POINTL1O 5 AD r'6 17 LDA@ $17r'6 get high startiag address108 85 FB STAZ POINTS save it in POINTH

104 20 2F tE JsR@ CRLF print Cn/LrlO D A9 0A LDA# 'LF' prlnt another LF1SF 20 AO LE .rSR@ OUTCTTLI,z AZ OF LDX# $Of print 15 spaces on lett114 SO 9E 1E IOOP1 JSR@ OUTSP117 CA DEX118 DO FA BNEA LOOP1114 A2 10 L$Xll $1 0 print headlng:11C A9 FF LDA# $ff start wlth A at -11lE 48 PEA save A11F 20 9E 1E JSR@ OttTSP print 1 spacet22 2A 9E 1E LOOP2 JSR@ OUTSP priot 1 space125 68 PLA restore A126 18 CLC127 69 01 ADC# $01 add 1 to AI29 48 PFA save A12A 2A 38 lE

JSll@pRTgYT prlnt

A as bex nunber12D CA DEX12S DO F2 BNER LOOP?130 20 2F 1E JsR@ CRLF prlnt CR/LF133 20 2F lE LOOpS JSR@ CRLF print CR/LF136 A2 0B l,DX# $OB print 11 spaces oa left138 20 9E 1E IOOP3 JSR@ OUTSp1.38 CA DEX13C DO lA BI\'ER L0OP313 8 AZ 10 LDX# $1 0 se t up data counterL4O 20 1E 1E JSR@ pBfP$? print address143 20 9E 1E .tSR@ OUTSP space146 20 9E lE LOOP4 JSR@ OUTSP space149 A0 0O LDY# $O O zero Y148 81 FA LDAIY F,OINTI get data from addresst4D 20 38 1E JSR@ PRTBYT print data15 0 20 63 1F JSn@ INCPT increnent address pointer

153 A5 FB LDAZ POIN'fg test for maximum address1s5 CD F8 1_7 CMp@ $17F8158 90 09 BCCR MORE15A A5 TA LDAZ POINTL15C CD F7 L7 C',lP@ $17F715F 90 02 BCCR MORE161. BO 06 BCSts DGNE163 CA MORE DEX decrement data counter164 D0 E0 BNHR LOOP4 repeat if counter not uero166 18 CtC go to I.OOPS16? 90 CA BCCIT LOOPS169 20 2f 18 DONE JSR@ CRLF priat two blank lines16C 20 ?F 1E J$&@ CRLF16 f 4C 4F 1C JtrP@ KIU return to monitor

tr*10

Page 139: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 139/244

KIM-1 User Notes v1 #3

Joe LaughterMemphis, Tenn.

FREQUENCYOI'NTERROUTINE

This routine counts frequency using input PBO at a maximum ateof 2O KHz. I t counts DATA for I second. To count ' for 10 secondsload $29 into address 60. I t uses PB7 for int . req. (connect PB7to IRQ. .

0000 A9 01 r_DNt0002 85 65 STAzOOO4 8 SED0005 A9 36 LDA/fOOOT D FE L7 STAG000A 49 00 LDA/rOOOC D FF 17 STAG000F 58 cl,r0010 00 BRKOO11EA NOPOO12AD 02 L7 CKL6^I LDAG0015 29 01 ANdt

0017 D0 F9 BNErOO].9AD 02 T7 CKHIGH LDAG001c 29 01 AND/r0OLEF0 F9 BEQr0020 18 crc0021 A9 01 LDNIOO2365 F9 ADCz0025 85 F9 STAz0027 A9 00 LDLI10029 65 FA ADCz0028 85 FA STAz002D A9 00 Trlill002F 65 FB ADCz

0031 85 FB STAz0033 4c 12 00 JMP@0036 48 INT PHA0037 49 90 LDAiiOO39 BD 04 L7 STAG003c 2c 07 L7 BrT@003F 10 FB BPLr0041 A9 F4 LDA/F0043 BD 0F 17 SrA@0046 c6 65 DECz0048 F0 02 BEQr004A 68 PtA

OO4B40 RTIOO4CA9 FF DISP LDAif0048 85 66 STAzOO5O20 lF lF OUT JSRG0053 C6 66 DECz0055 D0 F9 BNEr0057 49 00 Tr}ilt

$orlUECNT

INTLOW set int . vector

$17FEINTHIGH

$17FF

PB check for input lotr

$or

CKLCffPB check for input high

$01CKHIGH

add count to total

$or$F9$re$oo$ra$FA$00$FB

$FBCKLCI^I

check time

$eo$r.704$L704DEI,AY

$f+ set t imer for another int .

$170rII'{ECNT check remaining time

DISP Lf zero disPlaY counts

$FF set dispLay loop count

SCANCTSCANDS output data

SCANCT dee. loop count

OUT rept. d isp lay t i l l looP

$00 count Ls zeto

c-11

Page 140: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 140/244

0059 85 F90058 85 rAo05D 85 FB0o5F A9 050061 85 6s

0063 680064 400065 050066 rF

STAz $rgSTAz $mSTAz $TBrDAtl $OSSTAz T'{BCNT

PI,ARTI

*DATA (${ECNT)*DATA (SCANCT)

set total counts to zero

reset I see timer

c-12

Page 141: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 141/244

ANALOGTO DIGITAL CONVERSION EMONSTMTION ROGRAI-T

Display ADC Output in H EX Format

0000 A9 FF START LDA/I $f f se t PA port to output0002 8D ol 17 srAG $17010005 AD 03 17 LDAG $1703 set PB4 to be input0008 29 sF AND/f $EF000A 8D 03 17 SrAG $1703000D 20 B0 00 LOOP JSRG ADC call ADC subroutine0010 85 F9 STAz $fg store ADC output in r ight display

0012 20 lF 1F JSRG SCANDS dispLay data

0015 4C 0D 00 JMP@ L0OP loop back for more data

Display ADC Output in BCD Formrt

0020 A9 FF START LDA/f $f f set PA port to output0022 8D 01 17 STAG PADD0025 AD 03 17 LDAG PBDD set PB4 to be input0028 29 EF AND/} $nr002A 8D 03 17 STA@ PBDDO02D 20 80 00 READ JSRG ADC read ADC0030 85 E7 STAz HEDEC-L set up data for binary to BCD convers

0032!,2 00 r.Dxlt $00OO3486 E6 STXz HEDEC.H0036 20 00 02 JSRG HEDEC cal l binary to BCD converslon rout lne0039 46 Ei IDXz $f f ge t BCD result high0038 86 FB STXz $FB store result in lef t display003D 46 E2 LDXz

$8 2ge t BCD resul-t Iow

003F 86 FA STXz $fe store result in niddle dllsplay

0041 A2 00 IJX/i $O O zero the right display

0043 86 F9 STXz $r g :

OO4520 lF lF JSRG SCANDS display final BCD value0048 4C 2D 00 Jl€@ READ loop back for more data

note: In order to perforrn the binary to BCD conversion, yo u nust loadthe IIEDECprogram into the memory starting at address $0200.

c-13

Page 142: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 142/244

REAL.TIHE CLOCK

Kllt-l Ueer Notee v. l f4Charlee H. parsone

80 Longview Rd.Monroe, CT 06469

This progran util izes th e interval tr'er to produce an NHr rnterruptevery 249,856 mlcroseconds, A fine adjustment to L/ 4 second is done wlthth e sane tlme In th € interuppt ptogr.ri--This f lne adjustn€nt ca n b€ vrrledby.changlng th e nuqber fn focation-$OSAS. A dtsplay routine is lncludedwhlcb shous rh e t*oe on-the KrM-1 di;; t ; i . yo u ca n exlt rhis rourrncand get back to th e Bonltor Uy pressfnt ih . ,, I , , k"y.

To run the clock program you Duat conoect pB7 to expanaron connecEor

ll l 9 "19_l"tup

Eh e r{!rl interiupt vector by storing $eS'i"-Siirl "o a03 in $17F8. Th e cloci< la se t iy"" i"g-tte

KIl, nonltor to ent€r th ccurrent ttlre lnto the HR, MIN, ani SEC Iocatlone glven below.

1/ 4 SE C- $0080 l/4 second counrer

SE C- $00E1 gecond counter

MIN = $0092 minute counter. IiR . $0093 hour counter

Llz DAI- $0084 day counter for am-pm

*:.:I 11:t1.V.proglanonce starring ar g0370 to se t th e interrupr

ioutlne going, then re-enter the disf lay routine"i

$OfZg I,heneveryo$ want to rho{ th. ttDc.

IIAI,-TIII CITCK - DIs?IAY ROUTIIII

0370 A9 00 START0372p5 800374A9 F4

0376 8D 0F 1?0379 A5 81 D$PLY0378 85 19037DA5 820371 85 FA0381A5 830383 85 FB0385 20 6A lF0388c9 or038AD0 0D038c 20 lp lF038F 20 6A 1r0392c9 010394 D0 030396 4C 4F tC0399 20 lF lE0t9c ll0t9D 90 br

REAL-TIME CLOCK INTERRI'FTROUTINE

03A5 4803A6 8A03A7 4803A8 9803A94803AA49 8303Ac 8D 0403AF2C 070382 10 rB0384 E6 800386 A9 040388 C5 80038AD0 38

03BC 9 0003BE85 8003c0 1803c1F803c245 8l03c4 69 0103c685 81o3c8 c9 6003cAD0 2803cc 49 0003cE85 8l03D0A5 8203D2180tD3 59 01O3D5E5 E?03D7c9 6003E9D0 1903Dl r.9 0003DDE5 8203DF45 8303El 18

0382 69 010384 85 E303E6c9 1203E8D0 0203EAE6 8403ECC9 1303BED0 040310 A9 010312 85 8303F4D803F5A9 rA03178D0F 1703rA68O3FBA803rc68O3TDAA03F! 68otrt 40

RTCLK PHATt(APHATYAPE[

. r.DA{f $83STAG TIME4

TM BIIG TI}TESBPLR TMINCZ qSEC

r.DA# $04CMPZ QSECBNER RTN

u)A# $ooS1AZ QSECcLcSEDI.DAZ SECADC{I $OrSTAZ SECcMP# 60BNER RTNI.DA# OOSTAZ SECI"DAZ MINcIctoGt 0lstlz xtxctot 60trat luIDA' @sttz tErI.DAZ HRcLc

ADC# 01STAZ H8,cMP# 12BNER THINCZ DAY

TH CMP# 13BNER RTNr.DA# 01STAZ HR

RTN CI.DLDA# $rlSTA@ TI,}MFFI.4TAYPIATA:(PIATTI

L7L7

aave A

gave X

Save Yftne adJust t iuring

te8t t lnler statusloop untll t ine outcount 1/4 secondsdo four t ines before updating lccon

zero QSEC nd update clock

change to decirnal nodeincreuent seconds

untll eeconds= 60

reset seconds to 00

lncreroent..mlnutes

untll tlhnter . 60

rcrot Elnutcr to (b

lncrenent houra

untll hours-

12

lnc!€nent L/2 daycheck fo r 13 houre

statt agalo rlth on e

teturn to blnary Eodeset tlne! to lnterrupt Ln 24grg56

reetole Y

restore X

re8tore 4raturn fron lnttrrupt

IDA#STAZIDA#

STAGI.DAZSTAZLDAZSTAZI.DAZSTAZJSR,@CMP#BNERJSRGJSRGcl{P#BNERJUPGJSRGGTfBGM

$00 zeto Ll4 second neryryQSEC$F4 eet tlEer to lntelrupt in 1/4 rcc.TIMEFSEC get aeconds$P g eend to rlght dlsplay palrMIN get rnloutes$F A cend to rolddle dlsplay patrHR get houre$F B sent to left dlsplsy patrGETIGY check fo r r'1r key pressed$0 1ENDRSCAMS dlsplay tlue an d delayGETKEY check fo r "I i l key preised agatn$0 rENDR

YOXTR Junp back to oonitor if 'r1r' prcrredSCAI{DS dtaplay time agaln

tr0p b{dL to DSpLy te coatlrxl.DSPLT

Page 143: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 143/244

TIMER (STOPWATCH)

Klm-l User Notesv, L ll 2

Joel Swank 11864655 S. W. l42ndBeaverton, 0R 97005

TIMER urns KIM-I lnEo a digital stopwatch showing up to 99 mi.nutesan d 59.99 eeconds. It ls designed to be accurate to 50 uricrosecondspe raecond. The KLM-I lnterval t iurer ls used to count 9984 nachine cyclesand the instructlons between t ime-out and the reset of the t imer make

up th e renalnlng 16 cycles needed to produce a t ime delay of 0.0100 sec.Th e keyboard controls th e routine as follows:

FI.'NCTIONBtopstar tresetptlnt t ine on terainalreturn to KIM monitor

KET01234

0342 c9 02 NoPRT0344 F0 C40346 c9 0r0348 D0 C8

034A A9 9C034c 8D 06 17O34F 20 IF IF DISPL0352 AD 07 17 D(PCK0355 F0 FB0357 8D 00 1C035A A9 9c035c 8D 06 t7335F 181360 F83361 A5 F90363 69 010365 85 F90367 A5 rAG369 69 000368 85 FA036D C9 60036F D0 0B0371 A9 000373 85 FAG375 45 rBC'377180378 69 01a37A 85 rBC37CDB CKEYc37D 20 6A lF0380 c9 000382 D0 cB0384 F0 8c

cw# $02BEQR RESETnMDJI (111

Yvr

BNER HOLD

r,DA# $9cSTA@ TIMSETJSRG SCANDSI.DAG TIMCETBEQR D(PCKSTAG ROMI.DA/I $9cSTAG TIMSETcLcSE DLDAZ INHADCII $01STAZ INHLDAZ POINTLADC# $00STAZ POINTLcMPit $60BNER CKEYLDA# $00STAZ POINTLLDAZ POINTH

cLcADC{it $01STAZ POINTHCIIDJSR@ GETKEYcMP/f $00BNER DISPLBEQR Hor.D

ke y 2

back to zero

key 1

se t t iner

dlsplay value

check t iner

wait loop

delay 4 usec.

se t t imer

8e t f lags

decimal node

lncrement hundredths

tncrement seconds

stop at 60

zero seconds

lncreroent mlnutes

read keyboard

ke y 0

6toP

STOPI,IATCH

0300 A9 79 BAUDR03028D F2 170305A9 020307 8D F3 17O3OA 9 OO RESET030c 85 F90308 85 FA031085 FB0312 20 lF lF Hor,D0315 20 6A lF0318C9 04031AD0 03031C4C 64 lC031r c9 03 NoQUIT0321D0 lF0323 A5 rB0325 20 38 lE0328 A9 3A032A20 A0 lEO32DA5 FA032F20 38 lE0332A9 2E0334 20 A0 lE0337A5 19033920 38 IE033C20 2F rE033F 380340 B0 D0

97 9 set baud rate to 110 for printer

$ 7F 2

$0 2$17F3

90 0 zero displayINHPOINTLPOINTHSCANDS light dlsplayGETKEY read keyboard

$0 4 key 4NOQUITCLEAR return to KIM Sonitor$0 3 ke y 3NOPRTPOINTHPRTBYT print tiroe on terminalt: t

OUTCH?OINTLPRTBYTt. t

OUTCHINHPRTBYTCRLF end of prlnt routine

Jurnp to HOLDHOI.D

r.DA#[email protected]#STAG

STAZSTAZSTAZJSRGJSRGCMP/IBNERJMPGCMP#BNERI.DAZJSRGI.DA{[email protected]#JSR@LDAZJSRGJSR@sEcBC S

Page 144: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 144/244

KI M User Notes vl /f 1

H. T. GordonBerkeley, Cal i f .

HEDEC

HEDEC onverts a 4-digit he x number in 00 E6 (h i byte) and 00 E7(Lo byte) into a decimal equivalent stored in 00 80, 00 El, and 00 E2.I t uses 00 E3, 00 E4, and 00 E5 to store calculated conversion factorsfor each of L6 binary bits. Length: 67 bytes, Conversion t imes: 0.7mil l isec for hex 0000, 1.5 ms for hex 1LL1", 1".4 ms for hex 8080, and2.L2 ms for hex FFFF. Times ar e proportionaL to the number of binary1 bits, not to the numericaL val-ue.

0200 F8 (sets decirnal mode)98 (pushes Y, then X index into stack)488A48

0205 A9 00 (zeros 00 E0 to 00 E5 in a Loop)

A2 06 (sets X- lndex for 6 operat ions)95 DF (zero-page, X stor ing)CA

020c D0 FBE6 E5 ( increments 00 E5 to 01, to be fLrst conversion factor)

02L0 A5 E7 (accumulator pick-up of Lo hex byte)

02L2 48 (stored in stack)A0 08 (sets Y- lndex for test ing of 8 bits)

0215 68 (pul ls hex byte fron stack)4A (one logical shift rLght, lowest bi t in carry)48 (stores shif ted hex byte in stack)

0218 90 0C (i f carry cl.ear, bit was a zero. skip to O226)

42 03 (i f not, do tripl-e-precision add of conversion factor

18 to the decimal Locat lons)OZTD85 E2

75 DF.95 DFCA

0224 DO F70226 A2 03 (next conversion factor atways calculated, doubLing

L8 previous factor by adding it to itseLf' gi-ving a

85 E2 sequence 1, 2, 4, 8, to f inal 65536 (not used))

75 E2

95 E2CA

0230 D0 17

88 (DEY)

0233 D0 E0 (i f not zero, back to 02L5 fo r next bit)

0235 68 (this PLA stack pu1l needed to equallze PIIAe and PLAs)

A5 E3 (LDA highest converslon factot location)

0238 D0 04 (i f not zeto, Job ts f inlshed, eo exit )

A5 E6 (Lf zero, Load hl hex byte)

023C D0 D4 (t f not zero, back to 02L2 for blt test lng)

0238 68 (restore X, then Y, lndexes)AA68

A80242 D8 (clear decimal node)

0243 60 (RrS)

c-15

Page 145: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 145/244

BINARY MATH ROUTINES KIl4-1 User Notes vl / f3

I i . T, GordonBerke1ey, Cal i f

MULTIA SUBROUTINE

Program MULTIA (second, revised version) does binary mult ipl- icat ionof tswo8-bit numbers that have been stored (before the JSR to MULTIA)

in 0083 and 00E4 and are destroyed by the operat ion of the subrout ine.The hi 8 bits of the product are stored in 00E0 and the low I bits in00E1; the subrout ine init iaLLy zeras these locat ions, and aLso 00E2.Operat ions use LSRs on the mul. t ip l ier i .n 00E4 to move up to B bits insequence into the carry f lag. I f the carry is set , the mult ipl icand( in 00E2 and 00E3) is double-p: :ecis ion added to the product locat ions.I f bi ts remain in the mult ipl ier (00E4 not zero), the mult ipl icand isshif ted lef t in the 16 birs of 0082-00E3; crherwise rhe subrour ineexits. Program length: 36 bytes. Maximun product (FF X fF) is FE01or decimaL 65025, with execut ion t ime about 380 rnicroseconds. Timedecl ines ta 240 microseconds for 80 X 80" 160 microseconds for 10 X 10,70 microseconds for 01 X 0l-" 40 microseconds for 00 X 00.

000A A9 00 (zeros locat ions 00E0 to 0082)85 E285 El85 E0

OOL246 E4 (LSR 00E4, lowest bit into carry)0014 90 0D (i f carry clear, skip the addit ion, go to 0023)0016 18 (CLC starts double-precision add)

45 E].65 E3 (running totals stored in 00E0-0081)85 El

001D A5 E065 E2

85 E00023 A5 E4 (LDA of 00E4, zero fLag set i f zero)

F0 06 (exit to 002D if zero)0027 06 E3 (ASL shif ts highesr biE of 00E3 into carry,

26 E2 ROL shif ts carry intc, loisest bi t of 00E2)0028 90 E5 (carry is always ctear, so baek to 0012)002D 60 (RTS exit )

NOTE: This subrout ine assumes that the processor is in the binary(not the decimal rnode) I t should not be necessary lor subrout ines

to protect themselves (by a CLD) from this problem.

c-r7

Page 146: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 146/244

Page 147: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 147/244

Execut ion t ime depends both on the number of quot ient locat ions tobe f i lLed and on the number of l-bits to be inserteci. Thus FFF,F/gl runss lowly because i t requires insert ion of 16 l-bits into Lwo locat ions.The rrhi/ l -o exchange" operat ion at 022g speeds up many operat ions witha d iv idend of 00xx. rn general, higher speed wi l l require sacr i f ic ingprecision, and a precision-byte of 04 wi l l be ar lequate" My reason forf imit ing

the dividend to L6 bits and the divisor to 8 birs was that datamore Precise than 1 part Ln 256 wi l - l be rare, so that most data wi l l besingl-e-byte, and data sets with more than 256 items wiLl be uneof lnnon.calculat ion of the average of 255 one-byte data items is within thecapacity of DIVIDA. When there are more, they can be divided into subsetsof 255 or ferter' the averages fo r aL1 subsets acided, and the average of theset of subsets calculated. we are now in the t ime range of seconds!with more bits, i t would be minutes. people who neeci ar i thmet ic speedhad better get a 16-bit microprocessor (oi bet ter st i l i , she1l out forhardware mult iply-div ide) .

Those who want integer ar i thrnet ic operat ions wil t do betcer usinga_dividend of type D(00 and precision-uyte of 01, However, simir .aref fects can usually be obtained more quickLy an<i by other Logic, not

div is ion. The number of poesible ways of doing di-vis ion is ir rcrediblylarge, but I wi1"1- e surpr ised if an operat ion l i lce that of DIVIDA canbe done with many fewer bytes or much r, ign"" speer l alfhough using theROR nstruct ion rnight help.

c-19

Page 148: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 148/244

SUBROUTINE EROER

0200 A9 00 (rDA/i 00 )95 DF (STA zero-page, X)

0204 cA (DH()

D0 FB (BMo if * 0, back to 0202)

o2a7 60 (Rrs)

SUBROUTIM DIVIDA(Note that 3 Locations are unused between the end of ZEROER nd the

start of DIVIDA. This is to aLl.ow users (i f the subroutines are inRAM) to insert 3 instructions folLowing the LDA divisor instructionax O2L3. If the divisor is 0G, DIVIDA is wrong. The instructi.onsD0 01 00 substltute for this a BREAK o 1C00. If something morecomplex is needed, the 3 ins'tructions can be a Jl'lP or JSR to alonger sequence of instruct ior ts.)

o2oB L2 06 (I,DA/I 06)20 00 02 (JSR ZEROER,Eo zero 00E0 to 00E5)

021_0 8 (sEc)

26 E5 (ROL sets Blt-Byte to 01 and clears carry)02L3 A5 E8 (LDA dtvisor byte)

30 05 (8M1, i f bl t 7 = L, sk ip to 021C)o2L7 26 E5 (ROL Blr-Byre)

0A (ASL, Left-shtft divlsor Ln accumulator)021A D0 F9 (BNE, Lf. * 0n back ro BMI ar O2L5)

85 E8 (STA bit-pattern L)C0(XruO( nto dlvl sor locatlon)

021-EA5 E6 (tDA dividend-hi)B0 0F (BCS, if carry set, go to subtraction at O23L)

0222 D0 09 (BNE, lf * 0, go to CMP at 022D)A5 E7 (LDA dividend-lo)0226 FO 28 (BEQ, dlvldend = 0 so exit to 0250)

85 E6 (STA dtvidend-lo into dlvidend-hi l-ocatlon)O22L 86 EV (STK zeros dfvldend- lo)

E8 (INX to shift to next higher quotient Locatlon)

022D C5 E8 (CMPdividend-hi with dfvisor)

90 0B (BCC, dl.vlsor too large, bypass to 023C)0231 E5 E8 (SBC, subtract divlsor frorn divldend-hl)

85 E6 (STA renainder Lnto dlvidend-hi)0235 L8 (CLC for addlt ion)

85 E0 (LDA zero-pager X the proper quotl.ent byte)

0238 65 E5 (ADC the nit-Byte)95 E0 (STA zero-pager X back lnto quotient locatlon)

023C 46 E5 (LSR the ntt-nyte)D0 09 (BM, i f * 0, bypass resett ing)

O24OEg (INI( to shift to next higher quotient locatl.on)E4 E9 (CPt( to preeision-byte)

0243 I'0 0B (BEQ, lf equal exLt to 0250)A9 80 (LDAtf 80 to reser)

0247 85 E5 (STA inro E5 reeers nt t -nyte)

c-2 0

Page 149: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 149/244

T

(S(1

(s

(

d

rT

A

q

6

0

ZH99L9

Page 150: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 150/244

15 BIT SQUARE OOT

Ilere te a progrsrn which takee the square root of a 16 bit blnary

aod ylelda a! elght blt lnteger plus elght blt blnary fractlon

Thlg routlne na s tra$alated by J.B. Rosg frou an g0g0 progrrn

by B.E. DuPuy. The prograo is rrlltten as a subroutlne and

rtth other programs vta rnemory ocstlone. Alt cpu .reglatctr

changed by thls routlne. tnput and output data are located as

8 blt taput (high) 900808 bt t tnput (1ov) 9O0Sl

8 blt output (tnteger) 900E08 blt output (factlon) 90081

otlter locatioue ueed are : $0082 - 900E8

SQUARE OOTSIDROIITINE

0100A9 000102 85 82010485 E30106 49 Fr'0108 85 E4010A85 E5010c A'9 100l0E 85 E8

0110A2 02011206 Er011426 E0011626 E3011826 E20114 cA0118D0 F5011D06 E5011F26 g+0121 E6 E50123A5 E4012585 E50127 A5 E5oL29 85 E70t2B 06 E70t2D 26 E6012F 86 E70131180132 A5 E70134 65 E3013685 E7

0138 A5 E6013A65 E2013c 85 E6013890 0A0140c6 E5oL42 L5 E7014485 E30146 A5 E60148 85 E20t4A c6 E8014cF0 030l4E 18014F90 Br0151A5 E4015349 FF015585 E00157 A5 E5015949 FF0t5B 85 ElouD 60

SQRT LDA/ISTAZSTAZI.DA#STAZSTAZI,DA#STAZ

LOOP I.DXiiSI{FT ASLZ

ROLZROLZROLZDEtrBNERASLZROLZINCZI.DAZSTAZI,DAZSTAZASLZROLZINCZcLcwAzADCZSTAZ

IDAZADCZSTAZBCCRDECZLDAZSTAZwAzSTAZ

NOGO DECZBEQRcItBCCR

DONE I-DAZEORfSTAZI.DAZ808#8TAZft8

$0 0$82$E 3$rF$84$ns$1 0colrNl

$0 29E l$no$E 3982

SHTT$85)e4

$a:$84$uo$Es$87987986$87

$87$nr$8 7

$so9E2$86NOGO985$8 7$8 3$86$a zcilnnDONE

LOOP$E/t

$Fr9so$85$rrerr

lnlt iallze extended ergunent

loltiallze cooplenented result

tnlt lst lze loop count

double lefr shifr of E2-E3-80-81

shift part lat result left

ehlft ln a one on tbe rightmake a eopy of shlfted part ial rcrult

shift copy of part lal reeult left

shlft ln 8 one on the rightsubtract ehtfted part ial result fron

hlgh L6 of curreot renainder (byadding conplernent)

test 8ubtraction resulttack a zrto onto complenented rerultreplace hlgh order 16 of current

renainder wlth subtractlon rerult

decresent and test loop count

Juop to loop

conpleloent result and store ln E0-81

rcturn

Page 151: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 151/244

BYTE Aprit l9??

r tFr; t t +\ll l ; l j

[,il ufffI Gses tCI jtv-4.,ft

u;'(,

F;;,:E;;.,i;liEuERy oi s I

Figure l: A generalblockdiagramof a

simple lunarfanderprogrom. tt can beseen thot a tunar londerprogram bosicolly breaksdawn into o number ofupdating rautines. Thseupdating routines orecon-tinuously repeated untilthe lunor lander hasreachedhesurface.

Jim Butterfield

14ErooklynAvToronro Ontario ol4M XSCANA

There ar e quite a few lunar landingpgramsavailable owadays:some or poccalculators,others using graphic displTh e on e I wrote fo r my KlM.l, based n tftfOSTechnology 65A2microprocessor, lltrates many of the techniques neededdevelop he program.

The KIM-I comeswith a six digit LEdisplay, which can be accessedy the useused ihe first fbur digits to representcraft 's alt itude, an d optionally, the furemaining.Th e last two digits, rvhich aslightly separated rom the rest of tdisplay, are used for rate of descent. Bovalues hange ontinuallyas he craft mov

Th e KIM-l keyboard s usedas he pilocontrol panel. Thrusr is set by presscontrols 1 to 9. A value of 1 is minimuthrust, and the craft's rate of descentwincrease ue to gravity. Nine is maximuthrust, which slows th e rate of descesharply. n addition to power control. thpilot can elect to view either current alr

tude,.by pressingA, or remaining fuel, bpressing .

The Equationsof Motion

The craft, of course,moves n accordanwith the .forces acting upon it : thrust angraVity'." physics textbook shows somrathe;"'orrmidableequations.However, hecari"beboiteddown to rhe followingsimplgrocedure:

NT , FUEL

c-.23

Page 152: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 152/244

Every .01 econd,add 0.01 of the

veloety ;add 0-01 of the

tude;subtract0.01 of

fuel.

acceleration o th e

veiocity to the alt i-

the thrust frorn the

The acceleration s set equal o thrust minusgravity, and gravity is set at the constantvalue5.

The time period of S.01 s is arbitrary"Since KIM can op€rate n decimal mode,dividing by 100 becon'resan elementaryoperation. Everything would work iust aswell if it weredone in.any other srnall imeincrernent.

Figure 1 shows an elementary blockdiagram of tfie program" After setting rheinit ial f l ight valuesu e settl€ nto threemainjobs: updating th e flight, l ighting th e dis-

play,an ddetecting nput from th e pilot"

Sctting lnitial Values

An interesting light ean be obtainedbystarting the lunar rnodule at a height of

4,500 feet with 800 pounds of fuel. That's

rnore than rufficient fuel for a safe anding,

but not enough to allow for prclonged

hovering

It 's not diff icult to 5et al l the inirialvalues by programming hern individually.Howerrer,a faster method is to set them al ltogethe!' in rnemory and use a loop to

init ializeali of them" Thls is what I did asshown in lisring

.lon hexadecimal ines0000

ro 0007.

Updatinghe Flight

Every0.0i s we must updaleour rateofdescent, lt itude and fuel. As previouslyindicated,we have c add 0"01of variousvalues nto the totals. Ve can accornpllshthisquiteeasily y using gimmick.nsteadof holding heallirude, or exarnple,n feet,let's ute two n'loredigits arid store t asmultiples f 0"{}.1eet" ,lowwe canaddrhe

rate of ascent irectly nt o the si x digitnumber; nd the divisionby 100happensautomatically, or dispiay purposcs, fcourse, e drop the ast wo digits, o ha twe'reback o height n fcet,Usinghes;rrnetechnique n theotherparameters,e findthat the updating oLi becomeselativelyeasy.

During he updaringask,we mustalsodetecI wo special onditions; ouchdownand oul of fuai. T'his *effis airly sim nle

Listing t: Atr example luns lander proqran writt€n for the Klfrt-lmicropracessar thot usesthe flowchart af l'igure I ss s bsse" The input ondoutpat o{ this pragram is handled by rautines thot src inherent to the KIM-l

systcm. The dota display is seenon the keypad ond LED dispfay of the KIM-Iassembly" This disploy continuously shows the rate of descent, und ontornman,l will display either the qmaufit of fuet left, ar the altitade of thecroft. Keys I through 9 are used t# !ftput thrust commands, while key A

c*ssses the altitude disploy mode and the F hey choases the fuel disploytnsde. A!! the numbes in this listing arc in hexadecimal unles otherwise

stsfe#.

Addrcs 0p Optrad L.bcl Mnwmonie Gorm*tary

$s$o A2*fi42 850004 950s06 eA000? 'r000{rg A?0s0s 4,0$#dn F800$E '!E0fl0F 8500r1 75$sT3 950s15 eAss'r6 8g00'! 1000rs 85ffixg "!oEStS rqgs01F ?5s0?1 95c023 cA0c?.4 x0

ss?s ,q5

0eB8E2

Ft t

0sol

€2E4€2

roF6

a299E2F",

E5

E2

o8ooa2E2E8

FC

€DEAEOole8o0EB

GO l-Dx sSCLPl tSA trutT,x

5TA ALT,XEE X,8F L LP T

CALC LDX *SFRECAL LSY.,*S1

*g n

cr,gDIGIT LD A AI.T"X

AFE ALT+?,XgTA ALT,XD€ X0€YBP[-BISITLSA ALT+3.X$F L INCR[-sA#sg

INCR AD S ALT,XSTA ALT,XD€ XEP LR€gI{L

LDA ALT

8FL UFI,.DA ffiOLDX *S2

DD STii.&Lf"XSTA TF|?,XogxBp[ s&

UP C€CLSA FTJEL+zsse TF{flLrsT$!.A FU€L+2LSX.#*1

LF2 L*A F{,I*L,X$80 **Ssi'A F{J#L.Xil€xBPL LF?geg TAr{KLS4 #0LSX *SS

LP3 I9TATHSUST,XDE XBPL O-F3J5FI?HfiSET

TANK LSA futI)OESi\{ES}'{GFL

tDA A{,'1"LO X AL,T+isEs $'f"stvtr $f

LINK gg 0 EALOSHOFL I"CIA U€ L

tSX FU€t+1ST $TA POIru?H

sTX p8iiitTL. LSAX,1&L

Bf,{isffl /F{LFA 1l€€-+XE#fl FLYgfl,g€FLY

DOWN Sge'r-p&#{ffis8 * vsL+x

init,sliee veldGs;

X:*O5;Y:*Ol;serd€cir:al ma&;clear carry;l

)' add eachdigir;l

I) set up nert digit;I

G0?8 10so?A .49s02c A20$28 gsfi030 95ss32 cA0fi33 10

**35 3Sf;836 A5smSs E5s$3.4 850s3c A?ss3tr Ess0,40 E9fii84? 95s$li4 eA0s45 'r06Sd7 S00{J49 A9fls4B Alt004D 950s4F cA0050 r0s0$2 ?0o$gs A5$s6? n0

eounter:*counter - l;il counter pgitirr€ go taR€CAL;elsccheck it altiarde ir$'6ititG;it altiwde positilr{ go to UP;elr€ sltitude:*q);X:*O?

lI els* turn off$!gino;I

3et e8r{'y;tI uodoto fuel;

$iI

i check if fuel left;l

I-if fuel left 9o to TAI$K;I

Ielse urn off engine;

Iea to THflSET;A:*display rlrods;il rnode not 0Ogo to

SFiSFL;AX :-locaticn of eltituda;

go to $T;

A:*F[.i€L;X;TFUEL+li

I dlrrlovvaluce;A:welocityslgn;if *ignn*grtlvc0o to DOWN;A;./wlociry/;

I so e FLY:

b1 vst@city:*Amto€ity/;a

0c5g A501158 46005n Fi)OfisF D06061 F0&s63 A500€s A6ss6? siiCI*69 8Ss0s8 .A5s060 30ilSSF rx56)07! F0ss?s o0&8?5 3g0s7s A90*?s Hs

f -e 4

F70eoo03EA

F8AA OOEEOA

€?E30806,4€EBga <

F8FAE506CD

07ne

80c!'

Page 153: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 153/244

Listing l, continued:

Address Op Operand Label Mnemonic Cornmlntary

FLY ST A IN HLD A =O 2 !

STA DECK lDEcK:=o2; counterl

FLITE JS RSCANDS look fo r depressedey ;8EO NOKEY if no inputgo ro NOKEY:JS RGETKEY else o to GETKEY;

JSR DOKEY go to DOKEY;NOKEY DEC DECK DECK:-DECK-I:BN E FLITE i{ DECKno t egual o 0 go o

FLITE;elrego o LINK;A:=fuelmode?;it not fuel modego toNALT;elseMODE:= uel mode;return;A:raltitude mcdre?;if not go ro NAL2;elsemode: altitudemode:MODE:-A;return;return; fillegalmodel€lseX:-A;A:-THRUST;i f thru:t :=0go ro RETl;elseTFIRUST:*X;A:.THRUST;3etcarry;THRUST:*THRUST O5 ;TH2+1:.THRUST;I

I A:'00;TH2:-OO;raturn;)) [inatiat eishrl,I) [initial-soeedlII

| [initi"t acceleration]

iinitial thrustl

)) [ init ial uellI

tmoacl

untif we realize hat both the altitudeandthe fuelgauge il l probably orightpast hezeromark, umping irectly roma positiveto a negative alue;so a zero test is out.Instead, we take action the instant thenumbergoesnegative,estoringt to zeroand then taking whateverother action scalledor.

Lightinghe Display

The display s quite straightforward;nfact, the KIM-I monitor programhas asubroutineo do the ob .

Dependingn the displaymode lag,al lwe need o do is to move ltitude r fuel othe display area, togetherwith rate ofdcscent.Then we call the slbi2rllins 1ttransfert to the LEDs.

Of course, emust emembero drop helast two digits from the displayed alues

(0.01of units, cmember?) nd to ri

ratc of dcsccnt.wherc'nccessaiy,

showsas a positive umbcr.

Detecting nput

Tlrr KIM-l monitorsubrout ineh

rh e displaygivesus a frecbonus: t

us whcther or not a kcy ir dcpress

keyboard.To find out which key,

cali another subroutine in the mon

gram.

lf we discover het the uscr has

thrust command. buttons I to 9,

check to see that tlrc motor is on a

we have fuel. Then we set the thr

also calculate the acceleration a

rninus 5, where 5 repretents the f

gravity.

The two orher legalkeys, A and F

display mode to altitude or fuel. T

grarn sets a memory location whiEh

testedby the display outine.

The programdoesn't need o worr

vrhen a button is released. Althougucstion can be quite important f

grams that must distinguishbetwee

an d99 on the input, he lunar ande

really care. f you leaveyour finge

butron, it wil l keep on setting the

over and over to the same value,

affecting the fligfit.

Coming Down

Th e programdoesn'tstop. f you

of fuel, yo u will wateh yourself fre

the surface.Whenyou land,with or w

fuel, your rateof descentreezes 0 hcan seeho w hardyo u landed.

It would be easy to have the

change after you land, to show wor

as "SAFE" or "DEAD." The KIM-I

is segmentdriven so that yo u canproduce pecial ombinations.

The novice astronautwh o would'try his or her hand at flying this, or

craft should keep the following r

mind:

1. Always conserveuel at the be

by reducing ower o minimum

2. Don't le t your rate of descexcessively igh;with my piogr

wise to steadyup with a thrus

of 5 when your speedgetsover

pe rsecond.

3. As you get to lower alt itudes

balance ou r alt itudeagainst o

of descent.At 1000 feet, a

' descent of 500 feet per seco

bring you down in 20 seconds

is reasonable. KeeP that s

balance.r

007AooTc007Eo080oo83oo85

0088oo88ooSD

008F00910093

(X)gs 850097 60(X)98 C9oo9A DOo09c A9009e 8500Ao. 6000Ar 10OOA3 AAooA4 A500A6 FOooAS 86OOAA A5ooAc 38OOAD E900AF 850081 A90083 E900Bs 850087 600088 45(n89 00ooEA @ooBB 99ooBc 8[)00BD 00ooBE 9900BF 9800c! 02

00c1 08ooc2 00ooc3 0000qr 00

BEO LINKDOKEY CMP=1 5

BN E NALT

STA MODERTS

NALT CMP:10BN E NALzLDA =OOST A MOOE

BET1 BTSNAL2 BPL RET1

TAXLD A THRUST8EQ RETlSTX THRUST

THRSET LDATHRUSTsEcSgC;{)5ST A TH2+1LOA C)OsBc oSTA TH2RTS

INIT

85 F9A9 0285 E120 tF rFF0 0620 6A tF

20 91 00c6 ElDO FI

FO DOc9 15DO 03

EE

roo5o0EE

FO

EAF8

€AEA

o5FO

0000EE

c-25

Page 154: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 154/244

HORSERACE

Eight 1ap

whip your horse

too much and he

Horse

Prince CharmingColorado CowboyIr ish Rai-r

Start program at

to go faster.

probably poops

Track

topmiddlebottom

A27F. Bace is

Warni.ng--whip the horse

out.

Whipping button

PCc4

eight laps.

KIM-1 User Notes v1 #3Charles K. Eaton19606 Gary Ave.Sunnyvale, CA 94086

horse raee and you ean be the jockey and

HORSE RACE

00 01 02 03 04 05 06 07 08 09 0A 0B 0c 0D 0E 0F

0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D80280 A2 L3 BD 7C 07 95 7C CA 10 F8 A9 7F 8D 41 t7 A00290 00 A2 0g 89 7c 00 84 FC 20 4E lF C8 C0 05 90 F30240 20 5D 1F A5 8F

'0

Et A2 03 CA 3A DE D6 86 D0 F9

0280 85 99 A4 99 86 83 89 90 03 35 7C EA EA EA EA EA02cg 95 7C E8 96 8l 89 90 03 49 FF 15 7C 95 7C E0 0502D0 50 t8 D0 0b A5 8F F0 28 D0 30 A2 02 l8 85 83 E902E0 06 95 83 CA 10 F6 A2 06 85 7C 95 76 A9 80 95 7COTFO CA DO F5 EA EA EA EA EA EA EA EA EA EA EA EA EAOSOO C6 8F DO 06 45 8T 09 05 85 81 EA EA EA EA EA EA0110 89 89 00 F0 0B 20 68 03 29 tC D0 18 99 89 00 EAg32A 20 68 03 29 t8 85 94 89 8C 00 30 0B 29 t8 C5 9A0330 B0 05 A9 FF 99 86 00 2A 5D 1F A0 FF 46 99 3D 9305+0 03 F0 0i 88 98 55 89 85 9A EA EA 2D 68 0t 38 29O55O 01 65 9A 18 A6 99 75 8C EA EA EA EA EA EA EA EA0160 95 8c 95 86 4c A9 02 t8 18 A5 92 65 95 65 96 850370 91 A2 04 85 91 95 92 CA 10 F9 50 80 80 80 80 80

0580 80 80 80 FF FF FF 80 80 80 00 00 00 80 80 80 080t90 FE BF F7 01 0i 04

c-26

Page 155: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 155/244

ANDI,T Start progrsmPress any ke y

er $0200to spin wheelsA9 25

0520 BA 02

0085 06

8D 02D0 FBE6 09

8D 02r5 F0 r'9

A9 038s 06

38A5 05E9 0t85 05

BA 0?09

20 8D 02c6 08D0 19A{ i 06

09:, 9 $6

01

45 090906

DOE7

04c5 03

37

D0 33A2 10C9 4CF0 0D

42C706

c9 4401

CA

J. Butterf leldToronSo

0258 86 07

0260A9 B00?62B5 080?6420 8t] c2c267 c6 080269s0 F90?68 c6 0.r0268 FO 9C026F 180270F8s27t A5 Crs0?73$9 0i ,0275s0 9402?7 B5 0502?9-20BA 0202?c Ds S2

4?T,Fi i: $l]il?fl,j CP 4d,O?S? F$ DA&3,i!4 1{! 8D u;+3Ei ,;J 0S

{r?89 s0 {i0t2sil $Ll F?

; A !{INI PAY AI'toUM.FAY STXz RWD

PAx rrA# $80STAZ STALLIT,P9 JSR@ DISPIY

DgCz STALLtr,BNEU tl'9DECg RIJDEDQr LplcLcSE D

- LDAz AMTAlcf $01BCgr Lpi-STAZ AlffJSRG CVA.}ffiB}q$r PAX

: WllEEl-$NOf .d]^,t$Al4Ei{0i'l,tT Lc$# $*3

CltPi? $45sEqr FAy

L#li JSRG nlsFr."fLDAa Slfi'

bt{Er t,tr "EEtlu ItJ$.

" enEffK FOFi 3lti,i,t $iIS

CEERRY

co rDA# $25STAa Al'ffJSRG CVA}ff CHANGE O DISPLDA# $0OSTAz ARRCI,J

: HAII.I DISPLAY LooPLP l JSRG NISPLY

EIIEr LP IROIL lNCz TLI},IBLEJSRG DISPIAYBEqr I{OLLLDAII $03STAa .qRRCt"tSE DsE CLDAz AMISBC# $01. CHAR.6E BTJCK,iTAz At-fT

-TSRG C'VAHTROLZ TL&$TJ8

LP2 JSFLG D SPLYOECz STALLI ilAITBi{Er l,PzLily;n An-R.CSfIDAZ TI,JlIEL4tu\D# *36$R.e.{l $40 ,cF.!-L\}til$rJL'iSTAZ:- irilr.ilst=-1..1 ?i3 FegFi,p^'i

[.SBa ?]ttl'i&LEL$Ra ?UMBLS, EEC3 4,RRC+i

$Nnr LP z; S?.L *llin$L5 *q'IOPPSD Cei;l?LrygpAy0?t

L0eu ilINDoJ+q{:t'tPe }III.ID@{+38)inr NOMATCtlPz SLND{nf+gENEr NOitfAtrDx+ $10cr'tr# $40 gr5 rp 3 $AesBEqr pAy

ilJlx* $08cliP# $42 $10 rF 3 uPsDEQT PAYrsx# $06cllP* $44 $5 rF 3 D&'NSBEQT PAYDEI(

TN :T , lfrp"aX SUBII0U;

0288 A5 06 DISPIJ LoXz AARs028f 1$ 02 BPLr INB1029!, F6 02 OVfiR lttCzx WIND0293 CA INB15 DAX0294 l0 Fb BPLr OVEas296 i. 9 7F LDA# $7F0298 &D 4l J.? $TA0 pr.DD0298 A0 CB r.Drdi gilBO29DA2 At+ LIX/I ${)rr0291' 85 00 LITE LDAzx it')tirx02Al 8{ /+? l? s't'\ig SBri02A4 BD 40 1? s?AG SAtO2A7 D8 CLDO2A849 7F T"DA# 9? r02AA E9 0t ztrP stsrii $0102AC F0 ir{l Bttpjr. i:i}}02Ai; 8* 42 L? s?,a/i Siii-..02Bi Cg ItL1:O2B? CE II.iY0283 CA on x028{,.1S g;{, Fpt r'

1"l t.t0286 2S 40 lF" JS!{r-g fr-hrijtO2I]9 6G RT$

I

: At'tflUNT C8trVtii{il iC

02BA5 05 iueo*r02BC 9 0F0?8s &{OzBFBD E7 },F02c2 85 0002c4 45 0502C6 rA02c7 4402c8 4A02c9 4AO2CA AO?CB D E7 l"F02c0, 5 0102D060

I.DAz A|$.A,ND/i $0FTAXIlld0x TAt]1.STAa tlINDS!,DAz AKI'i,$RaI^SReLSR4LSRaTAXI^DA{9x TABLSTAz rriINDC&TS

Page 156: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 156/244

KIM-I User Notes v1{f4

Stan OckersJim Butterfield

KIMMAZE

Find your way out of the maze. Yourre the fl-ashing f.ight in thecenter of the display. As you move up (key 9), dorm (key 1), lef t(key 4), or r ight (key 6), KIM wiLl keep you in the central display;you'11 see the walls of the maae moving by as you travel. . Like walkingthrough a real- maze, yourLl only see a smalt part of the maze as youpass through i t . I f you can get out, your 11 f ind yourself in a largeopen area; that means youfve won.

Program starts at address 0200.

O2OODB START CI,DOaOLL2 OZ LDX{f 2 3 values0203 BD 85 02 SETUP LDA@x INIT from init0206 95 D2 STAzx |"LZPT. , . to maze ptr

O2O3CA DEX

0209 10 rB BPLr SEfitP;--pick out specifLc part of maze

O2OBAO OB MAP lDYii 1.1020D B1 D2 GEXI,IOR r.DAiy YEPT 6 rows X 2

O2W 99 D8 00 sTAay WORKo2l2 88 DSY0213 10 FB BPLr GEAnOR

;--shif t to posit ion vert ical ly

O2L5 A2 0A T-DXlt 10 for each of 6 ro'ws, .O2L7 A4 D4 NXDIG LDYz POSIT shtft Y positions

0219 A9 FF I,DA{i $f f filling with rwalls'

0218 38 REROL S0C ..on both sidesOzl.C 36 D9 ROLzx I{ORK+i.

02LE 36 D8 ROLzx WORK ro11 'e mO22O2A ROLaO22L 88 DEY0222 DA E7 BNEr REROL

;--calculate segments0224 29 07 AbIrHi 7 take 3 birs0226 A8 TAY & change to

0227 89 A0 02 LDAGy T48L segnent pattern

022A 95 DB STAzx WORK ,.and store

O22C CA DE'X022D CA DD(

O22E LO E7 BPLr }IXDIG

;-- test f ! "asher0230 C6 D5 LIGHT DECz PLUG time out?

0232 L0 0A BPLr MUG ,.no0234 Ag 05 LDA{I 5 . ,!e8 e reset0236 85 D5 STAz PLUG

0233 A5 DE LDAz WORK{6 ..and..023h49 40 EOtVl $40 .,fLLp.,023C 5 DE STAz WORK{6 . ,. f lasher..

c-28

Page 157: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 157/244

023E'02400243o245o247o249024c

o24Fo25L02530254025502560257

0259o25Co25F026L0263

02.65A?0267 DD026AF0026CCAo26DLO026F 30027L CA0272 30

A9 7F8D 41 17A0 09A2 OA85 DB8D 40 178C 42 L7

c6 D6DO FCCBCBCACA10 EE

40 lF6A ].FD7CDD7

a4A8 0205

2020c5FO85

; - - l ight displayMU G LDA/f $Z r open the gare

STA@ SADDr.DYlt $OgLDXit 10

SHOI,{ LDAzx I,JORK tiptoe thru. .STAG SAD . . the seguenrsSTY@ SBD

STL DECz STALL .. .pausingBN T ST1INYINYDEXDEXBPLr SHCff

; - - test new key depressionJSRG KEYIN ser dir regJSRG GETKEY key?CMPz SOK ,.same as l"ast?BEQT LIGHTSTAz SOK no, record i t

; - - test which keyLDX/I 4 5 i tems in tahle

SCAN CMFGx TAB2BEQr FOIINDDEXBPLT SCANBMIT LIGHT

FOI]ND DD(BMIr START go key?

;-- test i f wal lLDY@x TAB3tDAGy WORKAND@x TAB4

BNET LIGIIT; --move

DEXBPLT NOTUPDECz POSIT upr4Tardmove

MLINK BNEr MA P l-o-n-g branch!NOTUP BNEr SIDEI^IY

INCz POSIT dormward moveBMT MLINK

SIDEWY DEXBMT LEFTDECz MZPT right moveDECz MZPTBN T MLINK

LEFT INCz WW left noveINCz NIZPTBN T MLINK

; -- tabLes (hex Listed)00 08 40 48 01 09 4L 4913 09 01 06 0406 06 04 08

0r. 08 40 40

F8BC

0274 BC AD0277 B9 DBO27A3D BL

027DD0 81

o27FCA0280 10 040282 C6 D40284 D0 850286 D0 040288 E6 D4028AD0 F8028C CA02BDD0 06o28F c6 D2029L C6 D20293 D0 EF0295 E6 D20297 E6 D20299 DO E9

o200o2

TAB1 O2AOTAB2 O2A8TAB3 O2AD

TAB4 O2BL

c-29

Page 158: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 158/244

; - -sampLe maze fol lolrs

;- - f i rst 3 bytes are init ia l cursor pointerINIT O2B5 84 02 08MAZE O2B8 FF FF 04 08 F5 7E 15 OO 41 FE 5F 04

51 7D 5D 04 51 86 54 L4F7

D504 547F 5E 01 00 FD FF 00 00 00 00 00 00

00 00 00 00 00 00

Maze construction: every two bytes, starting at MITZE, epresents acomplete cross section of the mazei a one bit in any position representsa wa11.

In the example above, the first cross sectioa is FF FF (a11 onebits) - this would be an inpassable section of watL. Th e next crosssect ion (04 03) has only rwo pieces of waL1 in it , at posit ions 6 and13. The zeros at the end represent the topen spacet.

c-30

Page 159: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 159/244

MUSIC MACHINE

Descript ion

This progran plays on e or several tunes vi a th e rAudio Outrintetface of KIM-1. Us e the sane connection as that fo rrocording on cassette tape. If your tape recorder ha s atnonitort feature, Io u can listen to the tune as well asrecord it . Alternatively, an anplif ier ca n be used to playth s tune through a speaker.

Ho wto Ru n

Load the program. Load th e tune(s) from cassette or fromth e keyboard. Tunes start at location$0000. Be sure tostore the value $F A at th e end of each tune, and behind th elast tune, store: $FF, $00. Since this progran uses th eBreak instruction to transfer control back to the nonitorafter each tune is played, Io u nust set up the softwareinterrupt vector by stoxing 90 0 in g17FE, an d gl C in g17FF.

Th e start ing address fo r the progaan is 90200. To play th enext tune, press G0 .

Ho w to Write your own Tune

Each note goes into a byte of storage, start ing at location$0000 of mernory. Each tune should end with the value $F Awhich stops the program until GO is pressed.

Special codes are incorporated in the p!ogram to a1lowcertain effects - adjustnent of speed, tone, etc. The codesar c followeil by a value which sets the part icular effect.Th e codes are l isted below:

Th e progran can be easily converted to a subroutine by

replacing th e BRK instruction with RTS. This allows th

prograaner to play various rphrasesr of music to produc

quite conplex tunes.

Th o lowest note yo u ca n play is A belos niddle C. Yo uplsy short notcs an d long notes (a long note is twice a

long as a short note). If yo u nant to stretch out a noevcn longer than a long note a11ows, pu t a rpauset noteafter it . Sone of the notes axe as follows:

Note Short LongA -- - -- 79 - ----- F9Af 72 F2B ----- 6C ------ EC

niddle C 66 E6c#----- 60 ------ E0D5ADAD#--- -- 56 ------ D6E 51 DlF ---- 4C ------ CC

F. J. Butterf ieldToronto

4844 ------403D ------3936 ------33

30 ------2D28 ------2600 ------

c8c4c0BDB9B6B3

BOADA8A680

sl 4C C4 C4 C4 Dl33 2D A8 80 80 3351 E6 EO 80 FA FE5A 5A 51 48 DA EO6C 60 DA DA FA FEE6 E6 80 00 s6 s648 4C 4C 4C 4C 56s6 5A 66 56 5A 66cc 72 5L cc 80 BBFF OO

Code

FBFC

FDFEFF

$3 0$0 ?

$0 1$F F$0 0

E600c4485lJA

tt

4C5AE6

Effect

sets sp6ed of tunesets length ofrlongrnotes

sets pitchsets instrurnentsets addTess fo rtune

I-nit ially Exanpl.es-

18 is quick;60 is slow2 neans tlongrnote laststwice as longras I short I

2 is bass; 4 is deep bassFF is piano, 00 is clarinet00 wil l take yo u back tof i rs t tune; like a tjunpt

18 FE FF 44 51BD BD OO 44 BDB5 B0 80 44 51FB 28 SA 5A 515A st 48 44 485A 5A 5A 5A 5A56 56 56 5A 6656 4C 00 C4 4480 FE 00 00 724C 56 5A s6 5A

Fo r example, at any t ine during a tune, yo u nay insert th esequence $FB $18 an d the tune wil l begin to play at a fastspeed. Insert ing $FF $45 will cause a switch to the tune atzero page address $0045. Th e init ial values shown can bereset at any t ime by start ing at address $0200.

No tune should extcnd bcyond address $00DF, r lnce prog!anvalucs arc stored at $00E0 and up.

Sanple Tgnqq

0000001 0002000 30004000500060007000800090

E6 66 5A44 3D 3680 80 5A5A 48 DlsA 60 7e66 72 7980 80 4C56 5A 5Acc 72 5AF2 80 FA

FBBD14005AiF565A

80

Page 160: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 160/244

HUSIC MACHINE

0200 A2 050202 BD 86 020205 9s E00207 cA0208 l0 F8

020A A9 BF020c 8D

43 L7020F A0 000211 B1 E40213 E6 E40215 C9 FA0217 D0 04

000e1A EA02rD F0 ED

j0210 s0 0BO21F E9 FB

zzr nI oz22 81 E4;0224 E6 E4

1 22 6 es EoB0 E0

022A A6 E0a22C 86 E7022E A6 El

0230 A8o23L 30 020233 A2 010235 86 E6o2s7 29 7F0239'85 E90238 F0 02023D 85 EA023F As E9024L 25 Es0243 F0 040245 E6 EA_0247C6 E90249 A6 E90248 A9 47024D 20 5D 020250 30 88

; lnit ializc

t

START !DX#LP I LDA@X

STAZXDE XBPLR

F. J. Butterf ie ldToront o

$osINITWORK

LP I

0252 A60254 A902s6 2002s9 300258 10

025D A4

025F 840261 860263 E00265 D00267 A60259 C60e6B D0026D F0026F 8D4272 CA02 7 C60275 D00277 C60279 D00278

^427 D 84027F C6028r D00283 A90285 60

0286 300287 020288 010289 FF026A 000288 00

00E000E 600E 9OOEAOOEB00Ec

EA275DAFE2

E2

EBEIJ

0008ECEIF61642

E8IL

E7E8FN

E6EOFF

vz

[DXf vAtlLDA# $2 7JSRO SOUNDBMIR GOBPLR HUSH

; subroutine to send at

SOUND LDYZ WORK+2

STYZ TIMER. sTxz xsAv

slooP cPx# $ooBNER CONTLDXZ ISAVDECZ TIXER,B}IER SLOOPtEqR gE r

COI{T STAO SB DD8 XDECZ LIMIT+2

. BNER SLOOPDECZ LIMIT+1BNER SLOOPLD'TZ WORKSTYZ LIMIT+ 1DECZ LIMITBNER SLOOPLDA# $r r

SE X RT S

; init ial constaotst

bi t

octave fleg

,,t

GO

nain routine here - WORK ot resot

NEXT

$B F

PBDD open output channel$0 0WORK+4 ge t next noteWORK+4

$F A tost fo r haltNEXT

(o r RT S if usod as subroutino)

G0 losune when G0 pressedNoTE is it a note?$F B if not, decode instruction

and put into XWORK+4 ge t paraneterWORK+4 an dWORK store in work tableGO Junp to G0

tDA#

STAELD YLDAIYINCZCM PBNERBR KNO PBEQRBCCRsB c#TA XLDAIYINCZSTAZXBC R

L7

! ," t up tinlng fo r note

NOTE LDXZ WORK tiningSTXZ LIMIT+lLDXZ WORK+I long

note facto!TA Y test aicuraulator- BMIR OVER long note?

LDX# $O f nope, ge t short note0VER STXZ LIMIT

-stoie length factor

1I9t $z r renov€ short/tong ftagSTAZ VALzBEQR HUSH is it a pause?STAZ VALI no , set pitch

HUSH LDAZ VAt2 get t irning an dANDZ WORK+5 bypass if nut,edBEQR ONINCZ VALl else fade th eDECZ VALZ note

ON LDX# V AL2LDA# $A 7JSRO SOUNDBMIN, GO

iI work areas reserved

lfORK *e * +6 speed/length ratio/octave/toneLIMIT *= * +3 tining of noteVALZ *= * *1 narking an d spacingVAtl *= * +1 durationsTIMER *= * rl octave counterXSAV rr r tl

Page 161: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 161/244

EUNT THE WUMPUS

Gameby Gregory YobAdapted for the KIM-1 by Stan Ockers

Stan OckersR.R. #4 Bo x 20 9tockport, I11 6044L

Klm- 1 Us er Notes v. 1 #2

CAVE ITAPI first ra n across the 1WMPUSn TI{E BEST OF CREATIVE

COMPUTING_here it is programmed in ba@isEAGI on-th is program witn modif icat ions so I could f i t ih eprogratn an d messages in the KIM-1 memory. The messages appearon the display i. n scannj.ng form rvith "sort-of" a lphanumericletters.

The II I I IMPUSives ln a cave of 16 rooms (labeled p - f ).Each room has four tunnels leading to other rooms (see thenrap below). When the program is started, yo u and theWUUPUS re p!-aced at random. AIso placed at random are twobottomless pits (they donrt bother tbe WUMPUS, e has sucker-

, type feet) and two rooms with SUpERBATS, a1so no trouble to,WUMPUS, e' s too heavy). If yo u enter a room with a pit , you

fal l in and lose. I f yo u enter a BAT'S room yo u ar e pickedup and f lown at random to another room. You wil l be warnedwhen BATS, PITS, or the WUMPUSre nearby. If yo u enter th eroom with \ryItMPUS,e wakes and either moves to an adjacentroo& or Just eats yo u up (you lose). In order to capture the1YUMPUSnd wln, yo u must use "MOODCIIANGE"gas. When thrownlnto a room contaln ing

the IYUI,{PUS,hega s causes

hi mto turn

from a v ic ious snarl ing beast into a meek and loveable creature.Ee wil l even cone out and give yo u a hug. Beware though, yo uhave only three cans of ga s and once yo u toss a can of ga s j,rti)

a room it is contaminated and yo u cannot enter or yo u wil-1 beturned lnto beast (you lose) !

Th e prograrn starts at $0300. If yo u lose an d want every-th ing to remaln the same, (except th e rocm yo u are in), resartat $0316. Use tbe reset key to stop th e program because abouthal"f of page on e ls used and i f yo u just use the ST key thestack wlL l eventual ly work i ts wa y down into the progri ln . Th e'byte at $0229 contro ls the speed of the d ispla;r . Once yo u ge tused to th e characters yo u ca n speed things up by putt ing in alower number. The message normally given te1ls yo u what roonyo u ar e ln and what the choices are fo r th e next roorn. In orderts f lre the mood gas, press PC (pitch can) when tbe rooms to beselected are dfspl"ayed. Then indicate th e room lnto whlch yo uwant to pitch the can. It takes a fresh can of ga s to ge t tb eWUMPUShe ma y move into a room already gassed). COODHUNTING:

Page 162: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 162/244

Page 163: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 163/244

KII{. 1 DEMONSTMTIONTAPE

Index

Notes:

ID'/l Name

01 DIRECTORY

02 VU TAPE

03 SITPER AP E (3X speed)

04 MOVEA BLOCK

05 HmEC

06 ADC DEMONSTRATION BINARY

- BCD

07 FREQUENCY OLNTER

08 TAPE DIIPE

09 REAL TIME CLOCK

OA STOP WATCH

10 LI'NAR I.AI{DER

11 TIORSERACE

L2 ONE ARMEDBANDIT

13 KIMAZE

T4 MUSIC MACHINE

15 IIT'NI THE WIffPUS

Entry Point Address Range

$1780 $1780-$17AF

$0000 $0000-$oo4e

$0100 $oloo-$01c2

$1780 $1780-$17cB

$o2oo $o2oo-$0244

$oooo $oooo-$ooA4$0020

$0000 $0000-$0067

$1780 $1780-$17Ae

$0370 $0370-$o4oo

$o3oo $o3oo-$0386

$oooo $oooo-$ooc6

$027F $027r-$0396

$0200 $0200-$02D1

$0200 $0200-$0210

$o2oo $oooo-$028c

$0300 $0000-$0400

Supertape is set for 3X speed. To obtain the 6X speed changelocat ion $Ofnr to $02 and $01C0 to $03.

l.love A Block uses data stored in memory as follows:

$OOro SAL old $0081 SAH old

$OOrZ EAL old $0083 EAH old

$0084 SAL new $0OnS SAL new

Frequency Counter: Connect IRQ to PB7. Signal input is PB0.

Mrslc lGchine: Be sure to set up the BRK vector by stortng

$00 ln $17rE and $lC ln $17FF.

Real Tlne Clock: Connect NMI to PB7, Btore $A5 ln $17FA and

$03 in $17F8. Restart display program at $0379. I teas rt lr '

to return to the KIM monltor.

D-1

Page 164: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 164/244

DI RECTORY

1780 D8 A9 07 8D 42

1790 16 D0 F3 20 24l7A0 20 F3 19 95 FC

VU TAPE

2A 41 1A 46 F9 05 F9 85 F9 C9

C6 F9 10 F5 C9 2A DO Fl A2 FD30 F8 20 LF lF DO D5 FO F9

00 01 02 0t 04 05 06 07 08 09 0A 0B 0c 0D 0E 0F

L7

1AE8

00 01 a2 05 04 05 06 07 08 09 0A 0B 0c 0D 0E 0F

0000 D80010 460020 c90050 D500+0 AA

A9 7FF9 052A DO46 EOBD E7

8D 41F9 85F5 A9E8 E8lF 8D

L7 A9 L3F9 8D 4000 8D EgE0 15 D040 17 D0

85 E0t7 c917 2002 A2DB

8D 42 17 2A 41 1A16 D0 E9 20 24 1A24 LA'20 00 1A D009 86 E0 8E 42 L7

SUPERTAPE ('X)

00 01 02 05 0r+ 05 06 07 08 09 OA OB OC OD OE OF

MOVEA BLOCK

00 01 02 0l 04 05 06 07 08 09 0A 0B 0c 0D 0E 0F

0100 490r l0 170120 200rr0 Ec0140 L70150 010160 189170 480 r80 0A0190 BE01A0 E10180 300 1c0 06

AD 8D ECA2 64 A970 01 ADt7 20 6DED F8 T7AD E8 L786 E0 484A 4A 4A18

3002

BE 01 48+9 80 8D07 4A 907E

L7 2016 20F5 L701 2090 E920 7020 884A 2069 A72C 4742 L7DB AO

32 1961 012A 6DEA 19A9 2F01 A20r. 587D 0169

30L7 r085 El00 F0

A9 27A9 2A01 ADAD ED20 8802 49c5 E068 2AA0 08FB 89CA DOD7 C6

85 El A92A 88 01F6 L7 2017 CD F701 AD E704 20 61D0 F7 607D 01 6084 E2 A0BF 01. 8DE9 58 C6E2 DO CF

BF 8D 43AD F9 L76D 01 20L7 AD EEL7 20 7001 4C 5C20 4c 1929 0F C9

a2 84Et

44 L7 A5E1 F0 0560 04 c3

OE OF

E6 E5E2 75E2 CA68 AA

t780 581790 A517A0 B

1780 A0L7C0 85

HEDEC

A5 E4 E5E2 E5 EOE0 91 E4

00 B1 E0E2 A5 E3

E0 85A8 8488 30

91 E465 E7

E6 45 E5E8 E6 E81t+ l8 A5

c8 c4 E885 E3 4C

E5 ElB1 EOE2 E5

DO F74F lC

85 E7 90 18 3891 E4 88 D0 F9EO 85 E8 E6 E8

18 45 E2 65 E5

00 01 02 0t 04 05 06 07 08 09 0A 0B 0c 0D

0200 F802r0 450220 DF02ta D002q0 6B

98 48 8AE7 48 A095 DF CAF7 88 D0A8 D8 60

q8 A9 00 A2 06 95 DF CA D0 FB08 68 4A 48 90 0c A2 0t 18 85D0 F7 A2 A3 18 85 E2 7' E2 95E0 68 A5 E5 D0 04 A5 E5 D0 Dt+

D-2

Page 165: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 165/244

ADC DEMONSTRATION

00 01 02 03 04 05 06 07 08 09 0A 0B 0c 0D 0E 0F

0000 A90010 850020 Ag00 0 850040 FA0050 000060 000070 000080 A90090 10OOAO EE

0370 A90380 FA0390 6A

03A0 000tB0 0703c0 180lDo A50tE0 8503F0 A9

FF 8D 01F9 20 1FFF 8D 01E7 A2 00A2 00 8600 00 0000 00 0000 00 0080 85 EEDO 09 AD90 E3 60

17 AD1F 4C17 AD86 E6F9 2A00 0000 0000 00A9 0000 17

03 770D 0003 L720 001F 1F00 0000 0000 0018 6538 E5

29 EF00 0029 EF02 464C 2D00 0000 0000 00EE 8DEE 4C

80 0000 0080 00E2 8600 0000 0000 0000 0017 2917 46

8D 03 L7 2000 00 00 008D 03 t7 20El 86 FB A600 00 00 0000 00 00 0000 00 00 0000 00 00 0000 t7 AD 029F 00 AD 00

FREQUENCY OUNTER

00 01 02 0t 04 05 05 07 08 09 OA OB OC OD OE OF

0000 A9 01 85 650010 00 EA AD 020020 18 A9 01 6500t0 FB 85 FB t+C

OO4O FB A9 F4 8D0050 20 lF lF C60060 05 85 55 68

TAPE DUPE

F8 A9L7 29F9 85L2 000F t766 D040 03

36 8D FE01 D0 F9F9 49 00+8 A9 90c6 65 F0F9 A9 0000

t7 A9AD 0265 FA8D 0402 5885 F9

OO 8D FFL7 29 0185 FA A9L7 2C 0740 A9 FF85 FA 85

L7 58FO F900 65L7 1085 65FB A9

00 01 02 03 04 05 06 07 08 09 0A 0B 0c 0D 0E 0F

1780 A9 27 A2 3F 8E 43 L7 A21790 17 10 02 A0 A3 A2 BF 8Er7A0 4t+ L7 2C 47 17 10 FB 3A

REAL.TIME CLOCK

8E 42 17 A0 5E 2C 42L7 49 80 8D 42 t7 8C

a743D9

00 0r 02 05 04 05 06 07 08 09 0A 0B 0c 0D 0E 0F

00 85A5 83lF Cg

00 00L7 10F8 A582 1818 6901 85

80 A9 F485 FB 2001 D0 03

00 00 48FB E6 8081 69 0169 01 8501 85 8383 D8 A9

8D OF L764 lF C94C 4F lC

8A 48 98A9 04 C585 81 C982 C9 60c9 L2 D0F4 8D OF

45 8101 D020 1F

48 A980 D060 D0D0 1g02 E6L7 68

85 F9 A50D 20 lFr .F 18 90

83 8D 0458 A9 0028 A9 00A9 00 8584 C9 L3A8 68 AA

82 851F 20DA OO

L7 2C85 8085 8182 A5D0 0468 40

D-3

Page 166: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 166/244

STOP WATCH

0500 490310 850t20 at0350 380340 B00150 lF0560 F80170 0Bd:so c9

75 8D F2FB 20 7FDO lF 45IE A9 2ED0 c9 02IF AD 07A5 F9 69A9 00 8500 D0 cB

00 01 02 03 04 05 06 g7 08 09 0A 0B 0c 0D 0E 0F

026A

'BEc9FBr9FB

t71FFB20FO

T701FAFO

A92020AOc4FO85A58C

8D F3lF CglE A9A5 F901 D08D 00A5 FA18 69

17 A904 D03A 2020 3Bc8 A9lC Ag69 0001 85

00 85 F9 85 FAst 4c 64 lC c9AO lE 45 FA 20].E 20 2F lE

'8C 8D 06 t7 209C 8D 06 t7 1885 FA C9 60 D0FB D8 20 6A lF

LUNAR LANDER

00 01 02 03 04 05 06 07 08 09 0A 0B 0c 0D 0E 0F

0000 A2 0c 85 88 95 E2 CA 10 F9 A2 05 A0 01 F8 18 850010 E2 75 E4 95 E2 CA 88 10 F6 85 E5 10 02 A9 99 750020 E2 95 E2 CA r0 E5 45 E2 10 0B A9 00 A2 02 95 E2OO'O 95 E8 CA 10 F9

'8A5 ED E5 EA 85 ED A2 01 85 EB

0040 E9 00 95 EB CA 10 F7 B0 0C 49 00 A2 A3 95 EA CAOO5O 10 FB 2O AA OO 45 EE DO OA 45 E2 A6 E3 FO 08 DO0060 06 F0 A5 A5 EB 46 EC 85 FB 85 FA 45 E5 30 06 A50070 E5 F0 07 D0 05 38 A9 00 E5 E6 85 F9 A9 02 85 El0080 20 lF lF F0 06 20 6A lF 20 91 00 C5 El D0 Fl F00090 D0 c9 15 D0 03 85 EE 60 C9 10 D0 05 A9 00 85 EEOOAO 50 10 FD AA A5 EA FO F8 85 EA A5 EA 38 E9 05 85

0080 E9 A9 00 E9 00 85 E8 60 45 00 00 99 80 00 99 9800c0 02 08 00 00 00 00

D-$.

Page 167: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 167/244

00 01

0270 00 000280 A2 t3

0290 00 A202A0 20 3D0280 86 9902c0 95 7C02D0 30 1802E0 06 9502F0 cA D00r00 c6 8F0310 89 890320 20 680530 B0 050540 03 F0

0350 01 650t60 95 8C0370 91 A20r80 80 80O39O FE BF

HORSE RACE

0200 A90210 E6022A 01

0230 060240 E70250 0D0260 A90270 F80280 c90290 0202A0 000280 1.702c0 E702D0 50

00 00 0005 95 7C7C 00 848F 30 E386 85 8983 89 90A5 8F FO10 F6 A2EA EA EAA5 81 0g0B 20 6838 85 9A99 86 0098 55 89

46 99 754C A9 0291 95 92FF FF 8002 04

00 00 00 00cA 10 F8 A9

FC 20 4E lFA2 03 CA l090 03 35 VC03 49 FF L528 D0 30 A206 85 7C 95EA EA EA EA06 85 81 EA0t 29 3C D089 8C 00 t020 tD lF A085 9A EA EA

8C EA EA EA38 l8 A5 92cA r.0 F9 6080 80 00 00

00 00 00 00 D87F 8D 41 17 A0

c8 c0 06 90 F3DE D6 86 DO F9EA EA EA EA EA7C 95 7C E0 0502 38 85 83 E976 A9 80 95 7CEA EA EA EA EAEA EA EA EA EA18 99 89 00 EA0B 29 t8 C5 9AFF 46 99 1D 9320 68 03 18 29

EA EA EA EA EA65 95 55 95 8580 80 80 80 8000 80 80 80 08

02 03

00 00BD 7C09 89lF A5A4 99E8 96D0 0683 CAF5 EAD0 0500 F003 29A9 FF01 88

9A 1895 8604 858O FFF7 01

0I+ 05 06 07 08 09 0A 0B 0c 0D 0E 0F

ONE ARMEDBANDIT

00 01 02 03 04 05 06 07 08 09 OA OB OC OD OE OF

25 8509 2A85 05

A5 09A5 04A2 OB80 85A5 0546 F0F6 028C 42c8 c81F 85

05 208D 0220 BA

29 06c5 03c9 4208 2069 01DA 20cA 1017 8DcA 1000 A5

BA 02FO F902 26

09 40D0 37F0 078D 02B0 948D 02FB A9f+0 L7E9 2005 4A

A9 00A9 0309 20

95 01c5 02A2 06c6 0885 05A5 057F 8DD8 A940 1FtlA 4A

85 0685 068D 02

46 09D0 33c9 44DO F920 BAD0 804L L77F E960 454A AA

20 8DF8 38c6 08

46 09A2 10F0 01c6 0702 D0FO F7AO OB01 D0c5 29BD E7

O2 DO FBA5 05 E9DO F9 A6

c6 06 D0c9 40 F0cA 86 07F0 9C 18E2 A2 0146 06 r0A2 04 85FC 8D 42OF AA BDlF 85 01

D-5

Page 168: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 168/244

K I MAZE

0200 D8 A2 02 BD 85 02

0210 D8 00 88 L0 F8 A20220 2A 88 D0 17 29 A7a2t0 c6 D5 10 0A A9 050240 8D 41 17 A0 09 A20250 D6 D0 FC C8 C8 CA0260 D7 F0 CD 85 D7 A2027A BC CA 30 8C BC AD0280 l0 04 c6 D4 D0 850290 D2 C6 D2 D0 EF E602A0 00 08 40 48 01 090280 08 01 08 40 40 8402c0 41 FE 5F 04 51 7D

02D0 71 5E 01 00 FD FFozEA 00 00 00 00 00 00

MUSIC MACHINE

OOOO FB 18 FEOO1O BD BD BD0020 44 83 800010 00 FB 280040 5A 5A 51OO5O FF 5A 5A

0060 56 56 56007CI 5A -56 4cOOSO F2 BO FE0090 80 4C 56

FF r+4 5100 44 BD80 ttq 515A 5A 5148 44 485A 5A 5A

56 5A 6600 c4 4400 00 725A 56 5A

BD 86 02Er+E6 E481 E4 E602 A2 01E3 F0 04

46 EA A9EC E0 00cA c6 E8EO A9 FF

00'0t 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

95 D2 CA

0A Ah Dr+A8 89 AO85 D5 A5OA 85 D8CA 10 EE04 DD A8O? 89 D8D0 04 E6D2 E6 D241 r+9 L302 08 FF5D 04 51

oCI 00 0000 00 00

F8 AO OB

FF 38 1695 D8 CA49 40 85+0 t7 8c40 lF 20F0 05 cA5D 81 02DO F8 CAE9 00 0001 06 040,+ 08 F55+ 14 F7

00 0000

00 00 00

D2 99

56 D810 E7A9 7Ft7 c6lF C5F8 t0BI CA06 c600 0006 0415 0004 5400 0000 00

c4 c4 Dl80 80 3380 FA FE48 DA EODA FA FE56 56 56

4C 4C 5656 5A 66cc 80 88

B1

D9CADE426A10DODO00067ED50000

10

A902DE8D20a200D4DO09FFB5

0000

00 01 s2 05 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

t rb

00c4485'15A

D94C5AE6

E5 6544 5D80 8054 t l8

5A 6065 72

80 8056 5Acc 72F2 80

5A 5r36 3t5A 5TD1 5A79 6C79 E6

4C 485A 565A CCFA FF

4C C42D A8E6 8054 5T60 DAE6 80

4C 4C5A 6672 5400

00 01 a2 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

0200 A2 050210 00 81O22A FB AA02t0 A8 ,00240 E9 25

0250 30 880250 EB 860270 42 t70280 E6 D0

95 E0 CAC9 FA DOE4 95 H086 E6 29E6 EA C5

27 20 5DD0 08 A5D0 EC C660 50 02

r .0 180tr 00BO EO7F 85H9 46

02 30EC C6E7 DOO1 FF

A9 BFEA FOA5 EOE9 FOE9 A9

AF 10EB DOE8 A400 00

8D 43ED 9086 E702 85A7 20

E2A4

F6 FOE0 84

L7 AOOB E9A5 ElEA A55D 02E2 84r6 8DE7 C6

D-5

Page 169: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 169/244

Page 170: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 170/244

Page 171: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 171/244

APPENDIX .

SPECIALPPLICATIONS

Page 172: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 172/244

Single Channel Analog to Digital Conversion

SUBROTITINEDC - 8 Bit Analog to DigltaL Comrersion

0080 49 80 ADC LDAti00E2 85 EE STAZ0084 A9 00 r.DAJtOOE6 E MCTBITCLC

0087 65 EE ADCz0089 8D 00 17 STd@OOECAD 02 17 I.DJG0088 29 10 allDit0091 D0 09 BNEr0093 aD 00 17 r,Da@0096 38 s8c0097 E5 EE SBCz0099 4c 9F 00 JlcGOO9CAD OO 17 SAVE I,DAGOO9F45 EE SHIFT I,SRZ0041 90 E3 BCCr00a3 60 RTs

Hardware:

s80TRIAL

$0 0

TRIALPADPBD

$10SAVEPAD

TRIATSHIF1.PADTRIA].lDffBIT

eoter trlal Bo.save itclear Aclear carry before add

ad d tlial to AoutPut to DACcheck cooparatoroask all. but bit 4if conP. = 1, save resulttoo big, get no. fronr DACset carry before subtractsubtract trial no .

load DAC oto Adlvide trlaL by 2done 1f t l ial less thao 1retura with final no . la A

' "40 -PB4 s

PA7 are out to DACto froo conparator

+15 VRef. input

-10 v

PA7

PA6

PA5

PA4

PA3

Pta

PAl

PAO

V output

+uv

-15 V

+5V

w4

100 K

V lnput

r l - ' l

2.2 K

C@parator output

Page 173: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 173/244

AMLOG TO DIGITAL CONVERSION EMONSTRATIONROGRAM

Display ADC Output in HEX Fornat

0000 A9 FF START LDA/i $ff' set PA port to output0002 8D oL L7 STAG $17010005 AD A3 L7 LDA@ $1703 se t Pts4 to be input0008 29 EF AND/f $EF000A BD 03 L7 srA@ $1703000D 20 B0 00 LOOP JSRG ADC call ADC subroutine

0010 85 I'9 STAz $F9 store ADC output in right displayO0L2 20 lF lF JSRG SC^ANDS dispLay data

0015 4C OD 00 JMPG LOOP Loop back for more data

Display ADC Output in BCD Format

0020 A9 FF START LDAit $ff' set PA port to outputoo22 8D 01 17 STA@ PADD

0025 AD 03 L7 LDA@ PBDD set PB4 to be input0028 29 EF AND/f $EFOO2A 8D 03 L7 STA@ PBDDO02D 20 80 O0 READ JSR@ ADC read ADC0030 85 E7 STAz HEDEC-L se t up data fo r binary to BC D converslo0032 A2 00 r,Dxit $oo0034 86 E6 STXz IIEDEC-H0036 20 O0 02 JSRG HEDEC call blnary to BC D conversion routlne0039 A6 El LDXz $8 1 ge t BCD result high

0038 86 FB STIk $f B store result in left display003D 4'6 E2 LDXz 982 get BCD result LowO03F 86 F'A STXz $f A store result in middle display

0041 42 00 LDX/I $0 0 zero the right display

0043 86 19 STKz $r gOO4520 1F 1F JSRG SCANDS display final BCD value0048 4C 2D 00 Jl@G READ loop back for more data

note: In order to perform the binary to BCD conversion, you nnrst loadthe HEDECprogram into the memory starting at address $0200.

This program uses.,:.t 'h€-eircuit an d ADC subroutine phown on page E-1.

Page 174: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 174/244

MULTICHANNEL NALOG NPUT/OUTPUTSYSTEMFOR KII"I.1

by J.B. Ross

A mult ichannel analog I /O system whlch is ideal ly suited to the

KIM-I system was developed by Douglas R. Ikaul (BYTE June 1977, pP. L8-23).

This system (see diagram on p.E-7) provides B channels of analog input

and output. The circuit uses standard conponents and can be constructed

using wire-wrap techniques for less than $50.00.

The ruult ichannel I /O system is inter faced to KIM-1 via the

progragmabLe I/O lines as fol lows:

Counect the 8 data l ines dr iv ing the DAC to port PA--

DAC 0 tn PAODAC I to PAI

: : :DAC 7 to PA7

Connect the remaining control l ines to port PB--

SELECT0 to PBOSELECT1 to PBlSELECT2 to PB2STROBE to PB 3

SIGN BIT to PB4

The cornplete dr iver sof tware is given on the fol lowing Pages.

The interface dr iver uses the KIM-I . interval t imer to t r igger an NMI

interrupt to update the inputs and outputs every 50 rnSec so you must

also connect PB7 to pin 6 of the expansion connector. The NMI interrupt

vector is set up by the init ia l iz ing rout ine star t ing at $0380.

To make the inter face system operate, load the Analog Inter face Driver

Rout ine, the Analog to Digital Conversion Subrout lne, and the Init ia l izat ion

Rout ine. Start the program at $0380. Control w111 be t ransferred inrnediately

back to the KIM monitor . I f the display begins to f l icker, the program

ls operat ing proper ly. Eight b it data to be sent to output channels 0

through 7 is stored ln locat ions $00C0 through $OOCZ,elght bi t lnput

E- j

Page 175: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 175/244

data from channels 0 through 7 is written into tocations $00C8 through

$oocr. when the interface driver is operating, the keyboard monitor

ca n be used to enter data fo r the analog outputs and to examine data

from the analog inputs. This feature rnrkes calibration of the Lnterface

very convenient.

Since the analog data is transferred to and from the rerrory table

by the interface driver software, users need concern themselves only

with the detai ls of how to use the dlgital data contained in the table.

Programs can readily be written to examine input data an d generate output

data. I f a user program does any cr i t ical t ln lng, . there is a posalbi l i ty

of lnter ference by the inter face dr iver. A complete update of al l inputs

and outputs reguires about 5 n^Secand takes place automatLcal ly every

50 nSec. If a timing loop is used, it nay be lengthened by 5 n^Sec.

Ttre lnterface driver uses the interval timer located at $L704 - $170tr'

so this souLd not be used'by another program. the other t imer at

$L744 - $L74Fis available fo r general

tlnlng use,. but has no eignal

output for lnteruppt ing the ptocessor, ,

The dr iver sof tware also includes an elght bit counter in locat ion

$OOOO hich increments by one each time the interface is serviced, and

a four digit BCD I 'c lockr ' in locat ions $OOnf and $00D2 which is incremented

oace'each 0. 1 Sec (approxirnately) .

E-4

Page 176: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 176/244

Page 177: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 177/244

ANALOC TO DIGITAL CONVERSIONSTEROUTINE

0358 A9 80 ADC LDA# $80 enter trial number0354 85 EE STAz TRIAL save it

035C 49 00 lDA/l $OO clear A0358 18 MCIBIT CtC clear carry before addition035F 65 EE ADCz TRIAL add trial value to A0361 8D 00 17 STA@ DAC send trtal value to DAC0364 C6 E3 DECz $fS naste 5 microseconds0366 AD AZ L7 IJA@ COMP get comparator status0369 29 LO ANDii $fO mask to recover bit 40368 D0 09 BNEr SAVE save result if comparator = I036D AD 00 17 LDAG DAC too big, get number from DAC0370 38 SEC set carry before subtract ion0371 E5 EE SBCz TRIAL subtract trlal nurnber0373 18 CLC0374 90 03 BCCr SIIIFT Jr.mp to shift

0376 AD 00 17 SAVE l,DA@ DAC get nuober from DAC0379 46 EE SHIFT LSRz TRIAL divlde trial number by 20378 90 El BCCr N XIBIT done if carry is 1O37D 60 RTS return wlth finaL valud in A

INITIALIZATION ROUTINE FOR INTERFACEDRIVER

0380 A9 FF INTLZ LDA# $FF set PA port to output0382 8D OL t7 STA,G $17010385 49 0F LDAtf $0f set PBO - PB3 to output

0387 8D 03 17 STAe $1703 ,

038A' 49 00 IJA/F $00 clear A038C 85 D0 STAz COUNT clear COIJNT0388 85 Dl STAz TIUE-L cLear TIME-L0390 85 D2 STAz TIME-H clear TIME-II0392 8D gA L7 STA@ NMI-L set up NMI interrupt vector0395 A9 03 tDAilf $Or0397 8D FB 17 STAG NMI-H,

0394 AD 0E 17 LDAG $170E enable tlmer lnterrupt039D 4C 4F IC JIC@ $1C4F jtrnp. to monitor (o r user program)

E-6

Page 178: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 178/244

MULTICHANNEL ANALOG INTERFACE

IC 4

IC 5

tc?

nl

5 l4 \ourP3 f FoflaIr lo)

IP F

IC t2LM3II

\ 6rooopF

|t,h

rt

. / t t *-' T

rooopF

IC I TO 8

ca3r30

-3 y

-r5

t

IOPORT

Number Type +5 V GN D -15 V +1 5V -5V

1ro8I

101l1213

cA 3 130cD4051cD4051MCt408L-8LM31LM318

16 .'t 6

13

Ia

2I 4

48B

41

E-7

Page 179: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 179/244

Page 180: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 180/244

KIM SOFII^IARE OURCES

KIM-1/650X User Nores109 Centre Ave.West Norr i ton, PA 19401Published every 5 to B weeks. Subscr ipt ion: $5.00 forsix issues. Back issues may be avai lable. Highlyrecoumended.

ARESCO314 Second Ave.Haddon Heights, NJ 08035

4K version of FOCAL or $40, 2.5K assesrbler (nonstapdardmnemonics) for $30, 6K assembler/ text editor (standardmnemonics) for $60. Send 92.00 for l i terature.

6502 PROGRAM XCHANGE

2920 l{oanaReno, Nevada 895094K FOCAL(FCL-65), . scient i f ic rout ine package (writ ren inFOCAL), games and general sof tware for 6500 systems usingthe KIM and TIM monitors. Send $0.50 for program list .

THE COMPUTERISTP.O. Box 3S. Chelmsford, MA OL824

High quali ty sof tware. PLEASE ame package fot KIM-I :$10.00 (cassette) . HELP ext editors and word processingprograms-send for descr ipt ion-$15.00 per cassette. MICRO-CHESSChess play ing program for KIM-L: $15.00.

PYRAMIDDATA SYSTEMS6 Terrace AvenueNew Egypt, NJ 08533

rrXIMil extended I/O nonitor package fo r KI M (requires morethan lK of memory) $12 for manual and cassette.

MICRO-h7ARETD.27 Firstbrooke RoadToronto, Ontar ioCanada M4E 2L2

Assembler, dissassembler, and text editor for 6502 with

4K memory. Manual and KIM cassette: $25, source l ist ing:$eS. Well documented.

IGnneth I.l. Ensele1337 Foster Rd.Napa, CA 94558

Source for Tom Pit tnans 2K TINY BASIC on KIM cagsette.Specify st ,ar t lng address $0200 or $2000. $9.50 fortape plus $1.00 handltng and postage.

F-1

Page 181: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 181/244

Page 182: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 182/244

6500 MICROPROCESSORUPPLIERS

MOSTechnology950 Rit tenhouse

Rd.Norr istown, pA 19401 (2L5) 666_1950

Rockwell Microelectronic DevicesP.O. Box 3669Anaheim, CA 92903 eL4) 632_3729

Synertek3050 Coronado Dr.Santa C1ara, CA 95051 (40g) 9g4_g900

6500 BASEDMICROCOMPTIfERIIPPLIERS

Apple Computer Inc.20863 Stevens Creek Blvd.Bldg. B3-CCupert ino, CA 950L4 (40g) 996_1010

Coumodore Business Machines901 Cali fornia Ave.Palo Alto, CA 94304 (4L5) 326-4000

ECDCorp.

196 BroadwayCambridge, I,rA A2L39 (6tt1 66L-440O

Ohio Scient i f icLI679 HaydenHiram, Ohio 44234

F-3

Page 183: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 183/244

Nwtro

0

Page 184: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 184/244

6530 TI i 'JERTL'NCTIOI. IS ND PROFERTIES

A . T I } ' IE-OUTFLAG AND i NTf RRUFT E}{ABLE REG STER

t. ALL I^JRITE PERATIOI. I9TD THE CO'JNTER 0UCH THE INTERRUPTENABLE RT$1STER (AL'TTRESSsiT 3, THE ,8, BIT, IS COPIED INTOTHE I NTF-' I I?LJPTNABL.EREG STER .

?. ALL READ T}PERATIO|"I : :I . i THE COUNTER EVEH ADDRESSESiTOUCH

TI{E I NTERRUPT I. . iTiBi-EEG STER.

3. ALL READ OPERATISI{SON THE TI|,1E-OUTFLAG (ODD ADDRESSES}LEAVE THE l I . {TEFTRUPTI.{AgLEREGISTERUNTOUCHED.

4 . AFTER COI' IPLETOii OF T I . {E_OUT.FLAG READ OPERATONS OO HOTCLEAR THE TiI ' iE_OU'TFLAG.

5 , AFTER COh,IFLETOi'; AF T I ' !E-IJUT, C{JLJI. ITEREAD OPER*T ONS CLEART I bIE-OUTFLAG

6 . ALL COUI. . ITERR TE OPERfiTOHS CLEfiR THE T I ME-OUT FLAG.

B. PRE-SCALERBIT$'

1. P|?E-SCALERBITS ARE T0UCHEDot ' lLY EY I IRITE OPERATI0I ' |g(ADDI?ESSsITS @ ANO I, THE 'T' ATJD Z' BITS, ARE COPiED INTOTHE PRE-SCiILERREGISTER)

?. THE C0UNTERCAI' {EE LOAI,EDAT ALL ADDRESSES ROtt L7@4-L7AV ANFROMT7T\C.T76F BUT I T CA|.{BE REA'I OI. ' I-YAT THE EVEH ASORESS

3. THE TIME-OUT FLAG C,IFIBE REAF OI. IL-/AT $09 f,XDEES1JES; UCHREAD 0PEHATIC'NSALI^l f tYSRETURI' I I ' |HER 36 0R AA tHEX).

C0NSEGUENCES |

1. SETTII ' {GTl jE PRE-SCALEREiTS RE0UIRES A'rrRITE

oPEli :ATi0H.

? . ENABL NG THE I HTERP'"IPT ECIUPES f1 ldR TE 0PERRT 0N AT ADilRESL7OC,_1.7@F, H A FEA', OPEF:ATIOI{ T EITHER L7AC,OR t ,7bE.

3. DISABLJNG THT II{TERPUPTREAUIRE$ A I^IRITEOFEI?ATIOI. I T ABDREt7a4-i7a7, 0R A REA! 0FERATi0N A1' TITHER r7' ,+4 0R t768.

4. ALL TRA|. I ; :ACTI0NS T EVEt. lTIDDRESSES LEa{RTHE TIhIE-0UT FLAGIF IT HAPPEI.{ID O gE r-IET.

G-1

Page 185: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 185/244

(\ .) rl

I NTERRUPTXPERT4ENT

@a60 A9 4g LDA# g40@AOE 8D FE L7 STAE f i1"7F8ooo5 A9 oo LDA* g.CIo

--.).

6@07 8D FF 1.7 STA@FLTFF IRO VECTOR NSTALLEDg,@OA 8D CI3 1"7 STAS f iX.703 PORTB INPUTOOOD Ag FF LDA* $FF , t^

0o6F 8D 6t L7 , STA@ 1.7Ot poRt A oUTPUTA@ft. 8D 6F L7 STAB *DAF 'e*--* ' *9TARTUP TIMER 1pi{ " ' r * '* i ' n

OO15 58 CLI ENABLE NTERRUFTS@016 F8 sED DECIMALMODE@o7? A9 0g LDA{I$00aa19 85 F9 STHZ$F9OO1B 85 FA STAZ SFAOO1D 85 FB STAZ $FB. ZEROOUT DISFLAYDIGITSAO1F 38 STC USE CARRY O DO THE INCREMEN6IA?A AA FD LDX$ $FD NOTE IRAP-AROUNDNDEXINGbq?? 85 I--C LDAZX$FC TO GET TO LOEATON F9 F RSTg@?4 69 00 ADCS AO80A6 95 FC STqZY, FC I,JRITE ACKUPDATED IGIT PAIR

OOE8 90 03 BCCSO3 FALL OUT IF NO CARRY-OUTI NX IJPDATE NDEX F NEEDBE07.f1 E8

OO?B DO F5 SNE $F5 FALL OUT IF ALL DIGITS DONEeo?D A9 ?0 LDA'$ $e6Oq?F 85 80 STAZ #BA USE LOC. 8CIAS DISFLAYLOOPCT@931 EO 1F LF JSR@ lF1F EALL TO DISPLAYDITI ITSQO34 C6 80 t r fcz SB0 CoUNTD0tdt ' t ISpLAYCALLS@036 DA F9 ENE$F9 DO ANOTHER ISPLAYCALLOO38 FO E5 EEO E5 UPDATE SPLAYCONTEI ' ITS

NOtdTHE I NTERRUFT-DRVEN PR')GRAhl

@O4O 48 FHASAVE

ACCUIdULNTORa6+1 nD 02 t7 LDAo #t702 GET Sh|ITCHESO@44 OA ASL A SHIFT UFOO45 AA AgL A TIdICEOO46 DA OA BNE $OA iF f iLL $I^ ' ITUHES RE ZEROCI048 A9 FF LDAS $FF USE $FF FOR DEFAULTOO4A 8D qF f i 5TNE $X7OF RESTART IMEROt)40 EE Oq T,7 I N' ;@#i7A@ UPDATE ORTAOOSO 68 PLA RITR EVE ACCUbIULATOR-fJO51 40 RT RETURN RO}' I NTENRUFT

NOTES:

1. GR0UNDINGIAfTCHESLrILL SPEEDUP THE UPDATES N P0RT A.

?, LOCATION OAECOI,{TROLSHE COUNTING ATEON THE DIGIT DISPLAY

G-2

Page 186: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 186/244

CODECO|'IPAN.]ONCiIART

DECII-{AL

T5

14

r)L2-

11

10

9

I

76

,

I+

3

2

1

o

-1

-?.

-3

-l+

-5

-6

-7

-B

-9

-10

-11

-12-1,3

-1l}

-15

-16

,+-BITI]INARX

SIGN AI'ID 5-BITI"L\GNI'I'UDBFF'SET

ls COl,lPL. s COF{P. 5-BITI]INAITY BINARY GRAY

I 111

1110

11011100

1011

101o

1001

1000

0111

0110

0101

o100

oo11

oo10

oool

oooo

(*=o_ = 1)

o 1111

o 1110

o 1101o'1100

o 1011

o 1010

o 1001

o 1000

o 0111

o 0110

0 0101

o 0100

o ool_t

o oo10

o oool

o ooco

1 0co1

1 0010

L 0011"

1 0100

1 0101

1 0110

1 0111

1 1000

1 1001

1 1010

1 1011

1 1100

1 1101

1 1L10

1111.1

o 1111

o 1110

o 1101o 1100

o 1011

o r,o10

o 1001

o 1000

o 0111

0 0110

0 0L01

0 0100

o oo11

o oo10

o oool

o oooo

1'11L1

L 1110

1 1101

L 1100

1 1011

r 1010

1 1001

I 1000

L 0111

1 01.10

1 0L01

1 0100

1 0011

1 0010

1 0001

1 0000

o1000

o1001

o1011o1010

01110

01111

ol to1

01100

00100

00101

00111

00110.

00010

ooo11

oooolooooo

10000

10001

10011

10010

10110

10111

10101

10100

11100

11101

11111

11110

11010

11011

11001

11000

BINARY

1 1111 O 1111

1 1r.10 0 1110

1 1101 0 11011 1100 0 1100

1 L011 0 1011

1 1010 0 1010

1 1001 0 1001

1 1000 0 10oo

1 0111 0 0111

1 0110 0 0110

1 010r. 0 0101

1 0100 0 0100

L 001L 0 0011

t 0010 0 @10

1 0001 0 0@1

loooo?ff io 1111 1 11tO

o 1110 1 1101

0 1101 1 1100

0 1100 1 L011

o 1011 1 1010

0 1010 I 1001

0 1001 1 1000

0 1000 1 0111

0 0111 1 0110

0 0110 1 0101

o 0101 L 0100

o 0100 1 0011

0 0011 1 0010

0 00to I 0001

o 0001 1 0000

o 0000

Offsct blnary and 2s corngrlement lf fer only ln the slafc of ihe slgn blt, .Cray code ls not vrclght,t :c1;t can only be converLed info a binary blf s[ring,whlch must Lhen be fur.t,hcr lnternrcLed.

Page 187: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 187/244

OVBRFLOI{ ND .NDER}'Lo}I'tITI{ SIGIIUDARITill'tL'tIC

For the purpose at hand wc w-i}l use a 3-bit binary adder which rvill

accept a pair of 3-bit lnputs (the addends) to fornr a i,-bit output by

the rules of strai6ht ("unsi-gncd't) bj.nary addition. In additlon to the

1O bits nnaking up the inputs and the output, we uiIl define one more.

signal, v;hich is the carry lnto the leftnost bit position of the addends:

i lHH EHi l i lTo keep a running count of overflow and underflor.l el.ents rve ui1l need

one more reglster, here also shown as 3 bits vride. Because spill-ouL from

the adder may have a ueight of +l+or -4 (overflow or underflpw), it vrill.

be convenient to assign a weight of lr to M2r a;:d to treat the contentsof l'l as another sigtred nunber which may 'oe i-ncremented or decrernented

by the sar:readd/subtract strate$r we ti-I} devclop for A, B, and S. The

bit welghts for all bits are shovn Ln the diagran; they corlespond to

the standard convention for tvro's conplenent signed integers. In the

exarnplesbe3-ow, he bit locations and fonnats rti.ll be as shovmabove,

but the bit weights r,,'i11not be shown,

Two factors may be held accountable for most of the confuslon around

signed arithmeti,c:

1. The term l.'lSB rnost significant b'it) is often used rn{.th an irnpliclt

convention which may assign the name ,tSB o either bit O or bit 1 of

a h'ord. fn recognit lon of this, we wil l noL use the term l{SB here.

2. The signals Ln the o corunn may have either a positive rvei6ht (c.-)

or a neEativc weight (Aor Bo). Thc adder nakes no such airi ir. i i l l ;

the lnterpretation of bits as weighted nurnhors s stri"cLly ourBr

+

+2L=+2

Az

+2o=+L

Bz

+20

6-{

Page 188: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 188/244

sig,rredarit l tnctic p. 2

Having recognized fhc sources of confusion, lef us attennpt to create

someorder by inspecting all possible conbinations of sign bits and

carry-in signals:

A.Cir,=O; Ao=Oi Bo =Q

oO 1 O +2 Addition of tr,'o snalL posiii_ve

O01 +1 numbers.

OOO O O11 +3 Nooverf lol t ,nounderf low

B. Cirr=O; Ao -0; Bo=1 (orAo=1; Bo=O)

o

O 1 0 +2 Addition of a rosi-tive and a1 O 1 '3 ne3ati're number, result negative.

000 O 111 -1 l i looverf lox,nouncierf lor i

C. C.-=O; Ao=1; Bo=1Lno

1 O 1 -3 Acid:ition of tuo negative nuslbers.

11O -2 Underf low

000 1 011 -5 Cohasaweightof 2x- l+, rr 'hich

111 is reCistributed Lo 14, a,rd So

111 111 -L+-1

D. Cirr=1; Ao=O; Bo=0

1

0 1 1 +3 Addition of tuo positive nunbers.

OO1 +1 Overf low

000 O 100 +t+ Soasformed.hasarieightof +! . ,

001 000 +4+0 vrhj-chismovedtoM,

B. Cin=1; Ao=O; Bo=1 (orAo=1; Bo=O)

1

O 1 O t'?. Adrji.l; lon of a positj-ve ancl a negaLive

110 -2 nurnber.

000 1 OOO O llooverf lo' ,v, nounderf low

llote that the weigtrt of Co is zeroi

.!_qCo is pro<iucr:d y t 'addll ion" of C.r,

Page 189: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 189/244

signed arithmetic p. 3

l,i.th rveight +lr and Bo tdt'h weight -4.

F. Cir, = 1; Ao = 1i Bo = 1

L

1 i. O -2 AdCition of ti*o small negative

111 -1 nu, 'nbers.

0OO 1 101 -3 Nounderf lovtrnooverf low

Again Cr* neutralizes one of the

sign bits. The o+,her sign bit

re:pPears as 5o.

fn sumnary:1. If carry-in is produced, but no carry-out 1s generated, theri

overflotv has occurred.

2. If a carry-out is procluced vrithout help from a carry-in, then

underfLow occurred.

3. If no earries are generated, neit,her overilool nor underflot* occurred.

l+. ff a carry-in produces a carry-out, this announts o neutralization

of the posj-tive lveight of the carry-in by the negative i+eight of

one of the si-gn bits, I{either overflow nor urjderflou has occurred.

5. l.lhenever overflovl or underflor.r oecus, So must be compLernented,

to ma}:eS suitable as input to the adder for further arifhmetic

operations. If Cooi=l, l4 must be decrenented; if Co,rr=0, M must

be incremented.

fn logical terms, spill-out can be deteeted as Crr, 0 Corrt, The slgn of

the spilI-ouf is given b/ Co,rt,

l'ihen all additions have been rnade, we should combine the spill-out

counter with the S legister to make a double-length bit string renresenting

the. end result in tr.rors conplernen| format" llorv there are !t,,'obi t positions

with an acsolute treight of 4; the lor,r-oz'der sign bit, So, and the LSB

of the spll1-oub counter, l'{r. These tvro bits rnust be cornblned, and then

the vacafed bi t position must be climinated to shift ihe high order bits

into posif ions corresponcling o their assigned weight,

Page 190: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 190/244

sulu

HX0

Page 191: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 191/244

TTL REFEREI'ICE HXET#1

7402 7474

7490 DECADECOT'NTER

:r F 2q

1-r5lcx

Gi'"I!t

i€ lBl

7408

7432

BUFFER

H' high laval, L - lo w lavat. X

-

i rrr lavrnr

qt - thr level ol O bato.! th . h igh-tg . low rr .6 . l t ion ol G

6C D COUNT SEOU€NCE(S.. t{otc Al

74L38 1-OF-8 DECODER

FUI\ICTIONTABLE

INPUTS OUTPU'S

PRESET CLEAR CLOCX D ooLHXX

HLXX

LLXX

HHTII

HHIL

HHLX

HL

LH

HL

LH

ooq7t+04

hh

i lll r ! il f \ |

l ru i It . .- I ii l i l

I r l -I IJ_

' . I_

---.t7 IlL I

8095 TRI-STATE

Gz 16 ya 15

COUIYTOUTPU'

Oo Qc Oa Oa

0

I

2

1

5

6

8q

LLLL

LLLH

LLHL

LLHH

LHLL

LHLH

LHHL

LHHI{

HLLL

r.r L L r,{

FESE',/COUN''RUTH IASLE

RES€T NPUTS i OUrpUr

R0(il Ror2l R9{',il F9{21 Q6 Q6 06

H

H

X

X

X

H

H

x

X

L

xH

L

x

L

\L

t{

L

x

L

x

LLLI

LLLL

HLLH

COUNT

COUNT

COUNT

COUNT

INPUTS OUTPUTS

OG ooL

H

X

H

H

L

Ll {

HL

os 60

INPUTSOUTPU'S

ENAELE SELECT

GI G?' c8 A YO Yl Y2 Y3 Y4 Y5 Y6 Y7

XH

LX

|t L

HL

HL

HL

HL

HT

HL

HL

xx xxx xLL L

LI.H

LH L

LH H

HL L

IILH

HH L

HH H

HHHHHHI{H

HHHHHHHH

LHHI.IHH}IH

HLHHHHHH

HTILHTIHHH

HHHLHIIHH

IIHHHLHHH

IIHHHHLHH

HHHHHHLH

HHHHHHHI

.Gt-G?A.GrE

Page 192: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 192/244

74L53 MUI.TIPI"EXERstRcgf A DArA lN?lrls

vc c lG stlEcr -^ -

Gno

TTL REFERENCEHEET#2

:Es€L€ct

sTqoBfIG

DUAL PERIPI1ERAT RTVERS 300 trA'' 20 V

REI"AY DRTVERS

-v

74148 PRIORITY E.NCODER

!trrgtt

75454

RS-232C- rTL CoTWERTERS

oa?a rttuts

S.rH idgur! A afrd La c066on lo bolh clisr

H-

hi$ fi.f, t-

ld lst, X' i.rdffi

rtt tt

7545L

+v

-r .d6r

dryld

-dl rrdqa

aaDC

FUilCTTOil TAALE

SELEC"

INPUTSOATA I'I?I'TS sTnoSE ouTn r

I A ct cil c:lo o v

xL

L

L

LH

H

H

H

xL

L

H

H

L

L

H

*l

xxxL

Hxxxx

xxxx

xLtl

xx

xxxx

xxxL

H

xL

H

x

xxxxx

H

L

L

L

L

L

L

L

I

L

H

L

tl

L

H

tt

tatalrtaraa

$tPt Ts outrur3

EI 0 2 3 4 5 5 7 A2 AI AO (;:3 €O

H

L

L

L

L

L

L

L

I

L

xxHH

xxxxxxxxxxxxXL

L ll

xtl

xxx

x

x

L

H

H

x

H

xxx

x

L

|l

H

H

xH

xxxL

il

H

lt

H

xH

xx

L

t{

t{

t{

H

H

xH

xL

H

l{

H

H

H

H

x

H

X

H

H

X

H

xH

H

H

L

L

L

L

H

H

H

A

H

l"l

L

L

H

H

L

H

H

H

H

L

H

I

H

I

H

tH

x

ll

L

L

L

L

L

L

t{

H

!!

xtl

x

H

X

H

75452 75453

DS3686 DS36E7 L489 1488

Page 193: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 193/244

sHAS

Ix

Page 194: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 194/244

gHw

moa TEGf{XOLOOY. tXC.vAtltv foncE co8ponArE EtrtR 21t| 6.rtt0950BrTTtlfi0us€R0A0. tonRtsTowil.A. t9a0t

PRELIifiIIUABY

OATA

SHEET

MAY.19?6

MC$6500ilCROPF0CE||SoS

TheMC$6500,MicroprocesoramilyConcept--

The l-1CS6500eries Microprocessors represent the first totally software compatiblern icroprocessor fani ly. This faniTy of products includes a range of softwarL compatiblemicroprocessors which provide a select ibn of addressable nenory range, interrupt inputoPtions and on-chip clock ossci l la tors and dr ivers. Al l of the microprocessors in theII{CS6500rouP are software cornpatibl.ewithin th e group an d are bus compatible with th eM6800product offering.

The family includes f ive microprocessors with on-board clock osci lLators and dr iversand four microprocessors dr iven by external

c locks. The on-chip clock versions areained at high performance, low cost appl icat ions where s ingle phase inputs, crysralur. 'RU rrrpuLspr luvi r . - le l re Liurebase. The er. ternal c locl : versions arc geared for thenult i processor system appl icat ions where naxinum tining control is mandatory. Al lversions of the microprocessors are avai lable in 1 MHzand 2 MHz ("At ' suff ixon product numbers) rnaxinun operating frequencies.

Featuresf heMCS6500amily

Single f ive vol t supplyN channel , s i l icon gate, de-plet ion load technologyEight bit paral1e1 processing56 Instruct ions

Deciural and binary arithmeticThirteen addressing modesTrue ind€xing capabilityProgranmable stack pointer

Var lable length stackInterrupt capabl l i tyNon-maskable interruptUs e with an y type or speed memoryBi-d i rect ional Data Bus

Inst ruct ion decoding and controlAddressable memory range of up to65K bytes

"Ready" inputDirect memory.acce.ss capabillty

Bu s compatible with MC6800Choice of external or on-board c locksIJl{dz and 2tl}lz operationOn-the-chl.p cLock optlcns* External elngle clock input* RC time base input* Cryetal t ine base lnput40 and 28 pln, package veraionsPipel ine archi tecture

Membersf the Family

Microprocessors

On-BoardClock

with

0sci1 ator

Microprocessors with

External Two PhaseClock Input

I|- ucsosrz

l-"rrur*If-r'rcsosr+Il- ucsosrs

MCS6s02

MCS6s03

MCS6s04

MCS6505

MCS6s06

L1-l

Page 195: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 195/244

Commentsn theDataSheet

The data sheet is constructed to review f irs t th e basic "Comnon Character is t ics" - those

features which are common to the general family of microprocessors. Subsequent to a

review of th e fani ly character is t ics wl1l be sect ions devoted to each member of the group

with speci f ic features of each.

COMMO CHAHACTERISTICS

.- RgctsT[RsEcTtoN CONTROL SECTION

Pg rtrq rta

ADDRESSBU S

AB O

A8 |

AB 2

AB J

A8,l

AB 5

A8 6

A8 ?

AB'I

A I}.,

A 810

AB I I

A8t2

ABI]

ABI4

ABI 5

gr rrr

Ier tnr

J

aroa* IrNPr.r

J

f1 oU r

fi:-

MCS6512,13,14.15

MCS6502,3,4,s,r

f l =, ,,,,n,

|=rnrrr - r r i r

DB'DB IDA2

oB 3

D84

DB '

lr86

D61

OATA

8U S

Note: l . Clock (lenerator s no t included on MCS6512'13' l4, lS

2. AddressingCapabil i ty an d contro l opl ions vary with each

of the Mcs6500 Products.

MC56500nternalrehitectue

IN5TRUCTIONDECODE

'1,.1-2

Page 196: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 196/244

COMMON }IARACTEISTICS

AD C

AN!)AS L

EC C

BC S

BE QBt l

BM I8NF:

lrPt.

BR K

BV C

8V S

Add HeBrry io Accumulator p lr .h Carry

" iL \u" Mcnrrry wi th Accumulnt( ,rS lr l f ! Ie f t On€ B1t (Memort or Accumulstor)

I l rdur l l on Cdrry C eargranch 0n Carry se tl i rdnch o0 Resui! Zero

Test IJ . i ts in }{ercrt wl th Accumulncor

Branch on Result HlnusBr,rDch on Result not Zero

Brailclr oo Result PlusForcc Break

Erench on overflou C1(ar

IJLdnch un Overflou S(t

INSTRUCTIONET ATPHABETICEOUEHCE

DI C Decrenent lretury by Ooe

oE X Decrehent Index X by on eDIY D€crenenl lndex Y by One

UO R "l ixc1!s ive-or ' r Menory rith Accuhulatot

ln_C Increnent Menory by 01e

Ir_X Incranenc Index X by 0n€

Il{Y Incremett Inde}: Y hy One

Junp to Neu Locatton

Jump !o Nea Locatlon Savlng Relurn Address

Lo6d Accunulator uith Memory

Load Indea X wlth Mercr)'Load Index Y sith l lemort

Shift ooe 8ir Rlghr (I tercry or Accwulator)

liOP lio operatlon

oF.A "O R Menory e l th Accuulator

Pusb Acc@ulator on S:ack

Puah Proceasg! Status on Scack

Pull Acc@slator froh stack

Pull Proceesor Status fron Stack

Rotste Otrc Bl t L . f ! (Ue@ry or Accuelator)

Rotate Gre Bit Righ? {Venor)' or Accuhulator}

Retulo floD In lerrupt

Return fron Subrou!lne

Ssbtract Mesory f lcm -Accunuletoillth Eorro

set Csrry FIag

set Decl@t Uode

set IntefruPt Dl.sable ststs

Store Accumulator ln He@rY

Slore Index X la MehorY

Stole lodct Y ln ltemrt

Transfer Accmulalor !u fndet x

trrnafer Accaslator to lndex Y

Tlaasfer Stack Polnter to Index x

fran€fer Index X to AccuNlator

TranEfer Indcx X to Stack Polnter

Trsafer lnd.a Y to Accdqlator

JMP

JS R

LDA

LD X

LD Y

LS R

FHA

PH P

?LP

ROL

ROR{TtRTS

s8 c

ST A

STY

TAXTAY

rxATX S

CLC Ciear Carry FlaSC!-D Clear DeciMl Hode

CLI Clear In terrupt D. isab le 8 i . tC,,V (l lear Overf lou l lag

CM P Conpare Hemcrt and AccuDulator

CPX Conpa r(' !lem(,r! rnd lnd€x XCPI Cohpare ilemry and lndex Y

ADORESSIilGODESAucU!4ULATUltDDRESSING lh ls.form of addres6ing ls repreaenred wlth a one byte lnatruct lon ' lrnplytng an

operal ion on the accumulator,

IMMEDIATEADDRESSING In lmredlate sddresslng, the operand 1s confalned ln the second byte of ghe instructloR'

u ith no further menory addresslng required.

ABSOLUTE DDRESSINC- In absolute addressing, rhe second byte of the lnstruct{on apeclf les the €lght 1o * ordcr

blts of the effect lve address nhLle rhe thlrd byte ep€c{f lee the elght hlgh order bltE. Thus' th€

ebsolute addreBelng mode a1lows acceeE to the entlre 65K bytee of addreaesble nemory.

zERo PACEADDRESSING The zero page lnstructlone allord for ehorter code l.ld ex€cstlon tln€s by only fetchtng

the eecond byte of the lnstruct lon and aseunlng a zero htgh addreee byte. Carefu l us e of the zero

page cen reeult ln s lgnif lcant lncrease l-n code eff ic lency.

INDEXEDZEROPAGEADDRESSING (X , Y indexlng) - Thls forur of addresalng 18 u6€d ln conjunctton ttlth the lndex

register an d ls referred to as "Zeio Page, X" orttzero Page, \". The effect lve eddrese is ealculated'

by addlng the oecond byte to the contenrs of the lndex t . l l " t " r . Slnce th le le a forn of "Zero Page"

addreseing, the eontent of the second byce references a locagion ln page zero. Addlt lonal ly due to

ch e "Zero Page" addreesing nature of this node, no carry la edded to the hlgh order I blts of ntet:ory

. an d croselng of page boundarles doe6 not occur.

INDEXEDABSOLUTE DDRESSINC (X , Y lndexing) - This form of addresslng lB used ln eorijuoction with X en d Y

lndex regleter and ls referred to as rrAbsolute, Xrr, and "Abaolute, Y'r , ?he effect lve addreae ls

formed by addlng the content.s of x or Y to the addrese contalned 1Ir the gecond and thlrd bytes of the

lnstrucelon. Thls mode allowe the i .ndex reg{ster to concain lhe lndex or count vaXuc and the ln-

structlon to contaln the base address. Thls type of Lndexlng a1lo!r8 any locetlon ref€f,e$clng and

the index to modi.fy mult ip le fte lds result ing In reduced codlng and executlon tl f te.

IHPLIED ADDRESSING- In the lmplied addreeslng mode, the addresB contaln lng the operand 18 lnpl lc l t ly tt l ted

ln th e operatlon code of the ln8truct lon,

RELATIVEADDRESSING Relatlve addresalng i s used only wi th branch lnstruct lons rn d asrabl lshes a dert lnst{on

for the condlt lonal branch.

The second byte of the lnetruction becones the operand rhlch la .n [Offlct't sdded !o qh c contentd of

the lower elght blts of th e progran counter when the counter ls se t at th€ next ln itructf* f l" Th e

range of the offset 1g -128 Eo +L27 bytes from the next lnEtruct lon,

INDEXED NDIRECTADDRESSINC In indexed lndirect addreseing (referred to as (Ind{rec!,X)), the geeond byte of' the instruct lon is added to the contents of the X lndex reglater, d lrcardlng th e earry. Th a re8ult

of th ls addlt lon polncs to a hemory local ion on page zero nhose contents ls tha Lolr ordcr e lght blte

of the effective address. The next menory location in page zero contalns th e high order €ltht bltr

of the effect lve address. Both nemory locatlons speclfy lng th e hl.gh and lon order bytes of the

effect lve address must be 1n page zero.

INDIRECT NDEXED DDRESSING- In lndlrect lndexed addres8tng (referrcd to.. ( Indlr€cg)rY), thc t.coad byt.

of the lnrtruct ion polnts to a $emory locatlon ln page zero. thc contcnta of ghls aqlory locatlon

ia added to the coni€nt8 of rhe Y lndex regisrcr, ihe rerult bolng th6 lo lt order eltht b lt t of tha

effect lvc rddress. The carry from thls addlt lon 1g addrd to thc contcnta of th . naxt prSc t i ro

n.nory locrt ion, th e rasult belng the hlgh ordar elght b ltr of thr rf f€ct lvc eddr. lr '

ABSOLUTENDIRECT - The tccond byce of the inatrucrlon contalna thc lo w ordrr Gttht bltc of r ttremory locatlon'

Th e hlgh order elghr b its of rhar memory ocarlon le contained ln the th l rd byte of th e lnstructLon'

Th e concents of r f ,e fu l ly speclf led mernory ocatlon Ls the low order byte of the effect lve addr.ee'

The next memory locatlon contalns the hlg i order byte of thc cffect lve rddrcst rh lch ls loeded

into the slxtcen bltr of the program counter.

1r ,

Page 197: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 197/244

I c0MM0NUHARACTERTSTTCSI

PHOGNAMMINGOOET

r--T-:-_l

r---;------l

8l

r.r_l+l rl s

- .lI I"J

PROCESSOASTATTJS .i€c

ACCUMULATOR

INDEX REGISIER

INDEX REGISTER

PROGFA[,?COUNTEB

S-IACK FOJNTER

I = RESUL;

IRODIS,ABLE ]=DISA

DECIM.AL !4ODE 1= TRU

BR K COMMAND

OV€RFLOW

NTGATIVE

ltusrBusrlsluET sp sODEs,xecutionime" ennoryequlrementsrNSttwTtdE

TS X

it A

YI S

u) aoo 1 ro N. rr pac6 touN06y :s cFoss{D

rzr Aoo 1 tc r" r : tFANch occ!nt to tAtuja raa€Aoo, lo N

'fanANCH OCCUFS ?O OrraiF€!r r i6!

{! r CAirY NOT, 3OAfiOw4 A(rr 'uL;i^ i i re

.rr

( r l r r \ i t!

[ .1-8

i {i r '' \ f i rr,!Y B'i

--*_-J

Page 198: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 198/244

Va a

RD Y

61(OUT)

I RO,

N.C,

t tMl

sYl{cVc c

48 0

A8 l

482.

RES

e Z(OUTIs.o.oq(ltr)N.C.N. C.R/ W0B oo8 ro8 2D85DB4oB 5DB6DA 7a8 t5ABI4AAr3AB I2v3 S

AB348 4aa 5A8 6a8 7a8 sABAEtOABII

r4 0

6! 5

93 ?ro 5li l30

t6 2a

t7 24r t 2f9 2

20 2l

MCS650 2

* 65K Addressable Bytes of Memory

't IRa Interrupt * mf Interrupr* On-the-chip Clock

/ TTL Level Single Phase Inpur/ RC Tlme Base Input/ Crystal Time Base Input

?tSYNCSignal(can be used fo r single instruction

executlon)* RDY Signal

(can be used for single cycleexecutlon)

x Two Phase Output Clock fo rTining of Supporr Chips

Feafiresof il{C$6b02

t2227

4255?4623722821

rol

l4 l

i l l8

t2 t7t3 16

R-3Vcr

m6'NMIVcc

ABOABIAA?AB3AB4AB5

A86

AB7AB8

O2(a0Tloq( lN)

R/W080DBI

DB2oB3D84D85D86Dts7ABI

AB OAB9

MCS6503

* 4K Addressable Bytes ofMemory (A800-A'811)

* On-the-chlp CLock

* EQ' tnterrupt

't m Interrupt

* 8 Bit Bi -Dlrect ional- Data 8us

Featursst [tCS6503

MGS6504 28 PinPackage

* 8K Addressabl-e Bytes ofMemory (A800-A812)

* On-the-chip Clock

* TEQ.nterrupt

* 8 Btt Bl-Dlrectlonal Data

?82726

232423z22ll201re lr8 lt7 l16lt5l

I rl23

4s67

I9lo

l l

12t3t4

REVss

TFTVccABOABIA82

AB3

AB4A85AB6

AB7A88A89

o2@UTlOO( N,

R/W

080DBIoa2083DB4DB5o86oa7AB12ABIAB O

MCS6304 Featuru fMCS6504

Page 199: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 199/244

ItlCS6505 28 PinPackage

REVssRDYrmVccABOABI

AB2483

AB4A85A86

AB7A88

bZ@UTl09( lN)R/VtDBODBI082D83

D84085

DB6DB7ABIIA8 to489

4K Addressable Bytes ofMemory (A800-A811)

On-the-chip Clock

TQ rnterrupr

RDY Signal

8 Bit Bi-Direct ional- Data

Featuresf &tiG$$505

Bus

MCS6505

ryqqq50628PinFackage

0n-t

m0

4K Addressable Bytes ofMemory A800-A811]

he-chip Clock

Interrupt

Trrrophases off

8 Bi t Bi-Direct ional Data

Feetuyesf MS$6506

Bus

RE S

vs5

O OUT)

tRcVccABOABIAB2AB3

AB4AB5

486AB7

AB8

I

z

3

4E

67€t

9

2827262524

a2(aUTl9o( lN)R/w0BoDBI

082DB3DB4DB5D86oa7

ABI IABIO

/t B9

23222l2At9t8

t. .

t5

MCS6506

MCS65I1-40 PinPackage

65K

TN'EmnRDY

Addressa!:1eBytes of Memor,v

Interrupt

Interrupt

Signal

8 Bit Bi-Direct i"onal Data Bus

SYNCSignal

Two phase input

Data Bus Enable

Lt-10

F*at$resf MS$S51f

Page 200: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 200/244

Page 201: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 201/244

TIMEsASE Ef{EhnTIfiNfiF ru$}g.r LCIrK

ry.g$gLff?,yf;$q504,C$6SSS,$$65SS

MCS 65 03,4, 5, 6 Parailet Mode Crv stdlCont"clleC Osillator

SYSTF[,I ,

SYSTF,M

MCS 65 A3_,4,5, S eriesM ode CrystatControlled Oscillator

MC56503, lttcs6S04, MCS6S0S, M€56506 Time BaseGenerationRC Network

trl|CS6502

sYsTEil{2

0o (lN)

0: (ourl

MCS6502 Paralle!Mode Crystal Contrclled'Oscillator

SYSTEM O]

@, , lN )

O: (OUT)

MCS6502 Series Mode Crystal ContolledOscillator

SYSTEM J

0, ' ( lN)

0: (ouT)

fl cnvsrnl

MCS6502TimeBaseGenerator RC Network

I r'Rvsrnl

Page 202: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 202/244

lBl&$ot r tc l tBNoLooY. t l tc.

v^rtEy FofiGt oRpoRAT€txTER2ll)6c8.t9t0tto RrrTtf,flousE 0A0. lonnlsTor,t. A. t9a0r

PROCIUCT

ANiTOUNCEMET

BUU-ETtt

SEPTEMBEB,g?S

MCE652O ERIPHERALADAPTER

9ESCRTPTTON

The MCS6520Peripheral Adapter is designed to solve a broad range of peripheral

control problens in th e inplementation of microcomputer systerns. This device allows

a vety effect ive trade-off between software and hardware by providing signif icantcapabil ity and f lexibil i ty in a low cost chip. l{hen coupled with th e power an d

speed of the MCS6500 amily of rnicroprocessors, the MCS6520allows inplementationof very conplex systems at a nininum overall cost.

Control of peripheral devices is handled prinarily through two 8-bit bi-direc-

tional ports. Each of these lines can be prograrmed to act as either an input or

at r output. ln addit ion, four peripheral contnol/ interrupt input l ines are provided.

these l ines can be used to interrupt the processor or for rhand-shakingrr data

between the processor and a peripheral device.

High perfornance replacenent forMot o ro I a,/Alrl /liOSTEK/H t ach pe i phe raladapter.

N channel, deplet ion load technology,single +5 V supply.

Completely Stat ic and TTL conpatible.

CttllS conqratible peripheral control lines.

Fully automatic ?thand-shake'rallows veryposit ive control of data transfers betweenprocessor and peripheral devices.

f",,,  I,ATA usMtcnoPnocEssoRs

Hcr6snx1

|-r.r.o,

t

?€TIPIIEn^LDEVTCES.

'RINTERg.APLAYS. TC,

Sosic NC5653o Intcl\<'( Dioglaa

I

3

561

I9l01tll

72131415l61' 7

l8TY

2A

4A3938

36

34

31JU

LJ

28aaat

2625., 4

MCS65 O

vssPAgPAlPA2PA3PA4PA5PA6PA7PB9PBI

PB2PB3PB4P85P86P87

cBtcB2vcc

CA1wn L

rm,-Ai RiiB

RSgRSlRES

D9D1D2D3

D4D5D6D702CSicszCSfiR/ft'

Page 203: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 203/244

SUMMARYOF MCS652O PERATION

See MOS TECHNOLOGYMicrocomputerHardwareManual or detaileddescription f MCS6520operation.

cAl/CBt CONTROT_cR4 tc_RB)

Bit I Bir 0

0

I

I

*Note:

0

t

Bi t 7 of^l ^-^1>rtrrdl .

Act i ve Tra-ns t i on

of Input Signal*

of Inout Sicnal*

IRQA(IRQB)

l":s::gPlqgg:E

rRQA lRQB)

Interrupt Output

negative Disable--renrain high

negative Enable--goes lo w when brt 7 in CR A (CRB) is se t by ,active t.ransit ion of s ignal on CA I (CBl l

posit ive Oisable--remain h igh

posit ive Enable--as expla ined above

CRA (CRB) wil l be set to a logic i by an active transit ion of the CA_tThis is jndependent of the state of Bit 0 in CRA (CRB).

cA2lCBzActive Transit i on

I I \ |PUT ODESCR A(CRB)

Bi t 5 Bir 4 Bi t 3

00 0

001

0t 0

011

*Note: Bi t 6 of CR Asignal. This

negatlve i) isable--remains high

negative Enab1e--goes low when bi t 6 in CR-A CRB) is se t byactive transit ion of s ignal on CA2 (CB2)

posit ive Disable--renains high

posit ive Enable--as expla ined above

iCRB) wil l be set to a logic 1 by an acrive transit ion of the CA2 (CtsZ)is independent of thc state of Bit 3 in CR A (CRB).

CAz OUTPUTMODES

Bi t 5 Bit 4 Bit 3 Mo<ie !:-:Jl:1:igl

I 0 0 "i landshake" CA2 is set h igh on an active transit ion oF the Cnl t l l rcrrupton Read input s ignal and set low by a microorocessor t 'Read A Data"

operation. This a l lows posit ive corltro l of data transfersfrom th e peripheral device to the microprocessor.

I 0 I Pulse Output CA 2 goes low for one cycle after a "Read A Datariorrerat ion.

This pulse can be used to s ignal th e peri.pheral device that

data wa s taken.

i I 0 Manual Output CA2 se t low

I I I Manual Output CA 2 set h igh

CR A

CR B

Bit 5 Bit 4 Bi t 3

t0 0

Mode

'rHandshake"on Writc

Pul-se Output

Manrral Output CB2 set low

Marrual Output CB 2 se t high

CBz OUTPIJTMODES

I les cr ipt i on

CB2 is set low on nicroprocess<.rr " l { r i te B Datai l operation an d

is set h igh by an active transit ion of the CBI interrupt

input s ignal. lh is a l iows posit ive contro l of data transfersfrom the microprocessor to the peripherai device.

CB 2 goe.s low for on e cycle after a microprocessor ' ,Write tsData[ opr:rat ion. Thi,s can be used to signal th e 1;er ipheraldevice ihat . data is avai lable.

0

I

tn1t .L '2

Page 204: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 204/244

MAXIMUM ATINGS

Ratin.g Symbol Value Unit

supply voltage Vc c -0-3 to +7,0 vd c This device contains circuitryto protect lhe inputs against

Input Voltage Vin -0.3 to +7.0 Vd. danage due to h igh stat icvoltages, however, i t is

operating TenPerature Ratrge T4 0 to +70 oC advised that normal precautionsbc taken to avoid annlicat ion

Storage TemPerature Ranse Trtg -55 to +ls0 oc of any voltage highei thannaximun rated voltages to th is

ci rcui t .STATIC D.C. CHARACTERISTICSVC C= 5.0 V + 5%, VSS =

Character ist ic

Input High Voltagc (Nornal Operating Levels)Input Low Voltage (NormaI Operating Levels)Input Threshold VoltageInput Leakage Current

vi n = o to 5.0 VdcR/l{,Resea,RSo,RSr,cso,csr,eSZ,clr,c}t ,o2

Three-State (Off Srate Input Current

_(Vin-.: 0. 4 to 2.4 Vdc, V66 = rnax) D0-D7,PB9-?B7,CB2

Input High Current(.Yy1 = 2.4 vdc) pA[-pA7,CAz

Input Lo w Current(vr l = 0.4 Vdc) PA1-PA7,CA}

Output High Voltage

(VCC = min, ILoatl = -I00 pAdc)Output Lo w Voltage

IVCC = nin, l load = 1. 6 mAdc)Output High Current (Sourcing)

(von = 2. 4 Vdc)(VO = 1. 5 Vdc, the current for dr iv ing other than

TTL, e.g., Darl ington Base) p}g-pB7.,CB2

Output Lo w Current (Sinking.l(voL = o- 4 Vdc)

Output Leakagc Currcnt {Uff Statc.) I&a-A-, na EPowcr DissipationInput Capacitance

(Vin - o, TA = 25oc, f = i.0 Ml.tz)D9-D7 PA0-qA7PB4-PB7CAz,CB2R/t i ,Resct, kS0,RSl,CSO,r;Sl,CS2,( ;AI ,CBI

'2utput Capaci ance(Vin - 0, Tn = 25oC, f = 1. 0 MHz)

0, TA = 25oC unless otherwise noted)

Symbol Min Typ Max Unit

vt H +2.0 - vc c vd cVI L -0.3 - +. 8 VdcVt t 0. 8 - 2. 0 VdcI It't pAdc

.1.0 +2.5

Ir s t+2.0

'i H-100 -250

I IL_ _1.0

vott1A

Vol

IoH-100 -t000-1.0 -2.5

Io L

1.6 mAdcloff - 1.0 l0 uAdcP9 - 2OO 500 mWci n PF

+ 0 pAdc

- uAdc

-1.6 nAdc

- Vd c

+0.4 Vd c

- pAdc

- mAdc

Cout

IU

7. 01A

l0 l) F

N0TF: Negative sign indicates outward current f low, posit ive indicatcs. inward f low.

FIGURE 1 _ READ TIMING CHARACTERISTICS

Oai6

Ortr Bur

ca 2(Puts Out)

ca l

CA ?(r i ."d Shrr.)

o.4 v

2.4 V

2.4 V

0.4 v

2, 4 v

o.a v

z,a v

o.a v

2,4 V

aa v

t.L3

Page 205: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 205/244

FIGURE 2 - WFITE TIMTNG CHAFACTERISTICS

Addr€ss

o.4 v

2-a v

o. 4 v

2. 4 V

o. 4 v

30 %

2.4 V

o.4 v

2-4 V

o.4 v

R€od/Write

oab Bus

P€riph6ral Data

cB 2(Pul* Outl

TPDw _ _vcc_

cB l

cB 2(Hand Shrko)

rnsz

2. 4 V

o.4 V

?.1v

o. 4 v

A.C. CHAMCTERISTICS

Read Timing Character ist ics (Figure .1 , Lcading f3 0 pF and one TTL load)

Characterrst ics Syrnbol M1n Typ

Delay Time, Address val id to Enable posit ive transit ion TnfW 18 0

Delay Tine, Enable posit ive transit ion to Data val id on bus TEOq

Peripheral Data Setup Tine TPDSU 300Data Bus Hold Tine TH n l0DeLay Time, Enable negative transit ion to CA2 negative transit ion ' ICA.Z

Delay Tine, Enable negative transit ion to CA2 posit ive translt lon TnSt

Rise and Fall T ime for CAI and CA2 input s i.gnals tr , t f

Delay Time fron CAI activc transit ion to CA2 posit i .ve transit ion TRSZRise and Fall T i ine for Enable input t rE, t fE

Wr i te Timing Character ist ics (Figure 2)

Ma x Unlc

-ns395 ns

-n s1.0 us1. 0 us1. 0 us2.0 us

25 us

Min'typ Ma x Unitharact er i st i cs

Enable Pulse Width

Delay Tirne, Address val id to Enable posit ive transit ion

Delay Tine, Data val id to Enable negative transit ion

Delay Time, Read/l{r ' i te negative transit ion to Enable posit ive

transit ion

Data Bus Hold Time

Delay Tirne, Enable negatj.ve transit ion to Peripherdl Data

DeIay Time, Enable negativc transit j .on to Peripheral Data

Ttll,lvalici TpOWValid, TCMOS

Synbol

TF

TerwTosuTwe

a.47018030 013 0

10

25 us- lt5

-n s

-nsI 'o us2, O us

I . 0 l is1. 5 us1.0 usI . 0 lrs2.0 us

cMos (vcc - 30e,) PA0-PA7,CAzDelay ' l ime, Enable posi t ive t ransi t ion to CB2 ncgat ive t ransi t ion TCAI0eiay Tirne, Per ipheral Data val id to CB z negat ive t ransi t ion TOCDelay Tine, Enable posi t ive t ransi t ion to CB2 posit ive t ransi t ion TRSiRise and Fal l Tine for CB.land CB2 nput s ignal5 t1, t fDelay Timc, CBI act ive t ransi t ion ra C8 2 posit ive t ransi t ion TRSZ

1.2-4

Page 206: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 206/244

rB&@ffioa r*c} | i lo l - (Dov, l rc.

vAu.Ev oRG€ offrofiATEcfirtF (2r516c-t9t0t50 ElTTfr{}rousE0A$, r088rsT0!Yfl.A. rtaSl

PBELIf,IIIUARY

OATA

SHEET

ilARCH, t73

MCS653(!MEMORY,I /0,IMER RRAY}

The MCS6530 s designed to operate in conjunct ion with the MCS650XMicroprocessorFarnily. It is comprised of a mask progranmable L024 x 8 ROM, a 64 x B static Ml"t,two software control led B bit bi-direct i onal data ports al lowing direct inter facingbetween the microprocessor unit and per ipheral devices, and a software programmableinterval t imer with interrupt , capable of r iming in var ious intervals fromL co 262,L44 cLock per iods.

x 8.bit bi*direct ional Data Bus for direct communicat ionwith the microprocessor

*1024x8ROM

x 64 x 8 stat ic RAM

* Two 8 bit bi-direct j-onal daLa ports for lnter face to per ipherals

* Two prograrunable I/O Peripheral Daca Dlrect lon Regist .ers

* Programmable Interval T imer

* Programmable Intervai Timer Interrupt

* TTL & CMOS ompat ible per ipheral l ines

* Per ipheral p ins with Direet TranslsLor Dr ive Capabil l ty

* High Impedance Three-StaEe Data Pins

* Allows up to 7K cont iguous bytes of ROMwith no external decoding

PAO P47

OATABUSBUFFER

A9 CSr CS z 02 R/W R.Fs

Figrrre. MCS6530 lock iagranr

DATACONTROLREG STER

A

PERI PHERALDATA BUFFER

INTERVALTI MER

PERIPHERALDATA BUFFER

B

AODRESSDECODER

CHIP

SELECTR/W

Page 207: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 207/244

Page 208: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 208/244

CHARACTERISTIC SYMBOLMIN. TYP. l,IAt(. I]NIT

Ciock Per iod Tcvc I 10 uS

Rise & Fal1 Times TR, TF 25 NS

Clock Pulse Width T\J 470 NS

R/W val id before posit ive transit ion of clock TWCW 180 NS

Address val id before posit ive t ransi t j -on of c lock TACW 180 NS

Dat .a Bus val id before negat ive transit ion of c lock TDCW 300 NS

Data Bus HoldTime THI{ 10 NS

Peripheral data val id after negat ive transit ion

of c lock

TCPW I uS

Peripheral data val id after negat ive transit ion

of clock dri-ving CMOS (Level=VCC-302)TCMOS uS

WR TETIMINGCHARACTERSTICS

READTIM NGCHARACTERSTICS

CITAMCTERISTIC SYI''IBOLMIN. TYP. MAX" IJNIT

R/W val id before posi - t ive transit ion of clock TWCR 180 NS

Address val id before posi t i -ve transj-t ion of c lock TACR 180 NS

Peripheral data val id before posi t ive transit ion

of clock

TPCR 300 NS

Data Bus val id after posit ive transit ion of c lock TCDR 395 NS

Data Bus Hold Tine THR 10 NS

EQ (fttt.rval Timer Interrupt) valid beforeposit ive fransit ion of c lock

TIC 200 NS

Loading = 30 pf + 1 TTL load for pAg-PA7, PB'-PB7

=130 pf + 1 TTL load for D0-D7

I.3-3

Page 209: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 209/244

Tcyc

l*-"LOCK INPUT

R/W

ADDRE S

DATA BUS

PERIPHERAL

DATA

CLOCK INPUT

R/W

ADDRESS

PER PHERALDATA

DATA BUS

PB7(TRO)

THw

TocwTcpw

Tcuos

WHITETIMINGCHARACTERISTICS

Figure

Twcn

T

Tpcn

Tcon

BEAD IMING HARACTEBISTICS

Figure

t.3-4

Twcw

o.8v

Tncw

Vc c -30o/"

2.4V

o.4v

?.4 V

o.4 v

2.4V

o.4v

2.4V

o.4v

2.4V

o.4v

2.4V

o.4 v

Page 210: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 210/244

INTERFACEIGIVALOESCRIPTION

During system init ial izat ion a Logic "0" on the RES nput wil l cause

a zeroLng of al l four I IO registers. This in turn wil l eause aLJ' I/O

buses to act as inputs Ehus protect ing external comPonents from possible damage

and erroneous data while the system i; being conf igured under sof tware control '

The Data Bus Buffers are puE int-o an OFF-STATE tttt tg Reset ' Interrupt

capabil i ty is disabled with the REF signal. The RESsignal must be held

low for at least one clock Per iod when reset is required'

Input Clock

The input clock is a system Phase Two clock which can be either alow level g. lgck (Vt l .0.4. Urr , > 2.4' , or high level clock (VtL < 0'2.

VrH v"" l ' j ) .

ReadWrite ( R W )

The R/W signal is suppl ied by the nicroprocessor atray and is used to

control the transfer of data to and from the microProcessor atray and the

MCS6530. A high on Ehe R/I , Ipin al1ows the processor to read (with proper

addressing) the data supplied by the MCS6530. A low on the n/W pin al lows

a wr ite (with proper addressing) to the MCS6530.

Interrupt equest lRO)

The IRQ pin is an interrupt pin f rom the interval t imer. This same pin'

i f not used as an interrupt , can be used as a per ipheral- I /O pin (PB7). When

used as an interrupE, the pin shouLd be set up as an i-nput by the data direct lon

register . The pin wil l be normally high with a low indicat ing an interrupt f rom

the MCS6530. An external pul l-up device is not required; however, i f col leccor-O

with other devices, the internal pul lup may be omit ted with a mask opt ion'

0ataBus ( D0-07

The MCS6530 as eighr bi-direct ional data pins (D0-D7). These pins

connect to the systemt" a"ta l ines and allow transfer of data to and from

the microprocessor at tay. The output buffers remain in the off state exceptwhen a Read operat ion occurs.

P_egghelq!ataPorts

' t ' l r t rMCS6530ras I6 yr lns av{r l lablc for per lpheraL I/A operat lonc. [ iaclt

p ln is lncl lv ldual ly e<.r f twareprogrammable to act as el lher an lnpur or 8n

ourpur. ' l 'he 16 plns are divlded lnto 2 B-bit ports ' PAO-PA7and PB0-P87.

pB5, PlJ6 and PB7 also have other uses which are dlecussed 1n la ter aect lone.

The pins are set up as an input by wr it ing a "0" lnto the corresponding bl t

of the data direct ion regi-ster . A rr lr t inEo Che data dlrect ion reglster w111

cause i ts corresponding Uit to be an output. Wtren n the input mode, the

EesetBES)

r.3-5

Page 211: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 211/244

per ipheral output buffers are in the "1" state and a pul l -up device acts as

less Ehan one TTL load to the peripheral data l ines. On a Read operat ion,the microprocessor uni t reads the per ipheral p in. When the per i .pheral

device geLs information from the MCS6530 i t receives data stored in the

data register . The mj-croprocessor wi l l read correct information i f the

peripheral l ines are greater than 2.0 volts for a "1" and less than 0.8

volts for a "0" as the per ipheral - p ins are al l TTL compatible. Pins PAO

and PBO are a lso capable of sourcing 3 na at 1.5v, thus making then capable

of Darl ington drive.

AddressinesA0-A9)

There are 10 address pins. In addit ion to these 10, there is the

ROM SELECT pin. Th e above pins, A0-A9 and ROM SELECT, are always used as

addressing pins. There are 2 addic ional pins which are mask prograrnmable

and can be used either individual ly or together as CHIP SELECTS. They are

pins PB5 and PB6. When used as per ipheraL data pins they cannor be used as

chip selects.

INTERNAIOBGANIZATION

A block diagram of the internal architecture is shorvn in Figure l.The MCS6530 s divided into four basic sections, RAll, ROl"l, /O and TII.{ER.

The RAI'Iand ROM nterface directly with the microprocessor through thesystem data bus and address l ines. The I /O sect ion consists of 2 8-bithalves. Each half contains a Data Direct ion Register (DDR) and an I/0Registe r .

HOM K Byte 8K Bits)

The BK ROM s in a L024 x 8 conf igurat ion. Address l ines A0-A9, aswell as RSOare needed to address the ent ire ROM. With the addit lon of CSland CS2, seven MCS6530'smay be addressed, gi-v ing 7168 x 8 bits ofcont iguous ROM.

RAM-64 Bytes512Bits)

A 64 x 8 stat ic RAM s contained on the MCS6530. I t is addressedby A0-A5 (Byte Select) , RS0, A6, A7, A8, A9 and, depending on rhe numberof chips in the system, CSl and CS2.

InternalPeripheral egisters

There are four internal registers, thro data direct ion registers andtvo per ipheral r /o data registers. The two data direct lon registers(A s ide and B slde) conErol the dlrect ton of the data into and out oft l te per lplreral plns. A r '1 'r wr l t ten tnto the Data Di rect lon Reglster setsup the correspondlng per lpheral buf fer pln as arr output . Therefore, anythlng

then wr it ten l-nto the I /O Reglster wl11 appear on t t rat corresponding per lpheral

r.3-6

Page 212: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 212/244

pin. Arr0r t wri t . ten into the DDR inhibi ts the output buffer from trans-

rni t t ing data to or f rom the I /0 Register. For example, a "1" loaded into

data di rect ion regi -ster A, posit ion 3, sets up per ipheral p in PA3 as an

output. I f a "0" had been loaded, PA3 would be conf igured as an inputand remain in the high state. The two data I/O registers are used ro

latch data from the Data Bus dur ing a Wri te operat ion unEi l the per ipheral

device can read the data suppl ied by the microprocessor array.

Dur ing a read operat ion the microprocessor is noE reading the I /O

Registers but in fact is reading the per ipheral data pins. For the

per ipheral data pins which are programmed as outputs the rnicroprocessor

wi l l read the corresponding data bits of the I10 Register . The only way

the I /0 Register data can be changed is by a microprocessor Write operat ion.

The I/O Register is not affected by a Read of the data on the per ipheral p ins.

!nlerygljrnet

The T i rnr:r r;ccL. ion of the )fCS6 30 containn f h ree bas ic parts :

prel iminary div ide down register , programmable B-bi t register and

interrupt 1ogic. These are i l lust rated in Figure 4.

The interval t imer can be prograul rned to count up to 255 t ime interval s

Each t ime inlerval can be either 1T, BT, 64T or LO24T increments, where T

i 's the system clock period. h'hen a fu11 count is reached, an interrupt

f lag is set to a logic "1." After the interrupt f lag is set the internal

c lock begins count ing dovm to a maxi -mumof -255T. Thus, af ter: t i te

interrupt f lag is set , a Read of the t imer wil l te1l how long since the

f lag was set up to a maximum of 255T.

The 8 bi t system Data Bus is used to t ransfer data to and from the

Interval Timer. I -f . a count at 52 t ime intervals were to be counted, r-he

pattern 0 0 1 I C I 0 0 v iould be put on the Data Bus and wri t ten into Ehe

Interval Time register .

At Ehe same t ime that data is being wr i t ten to the Interval Timer, Lhe

count ing intervals of 1, B, 64, 1-024T are decoded from address l ine:; A0 an<. i

A1. Dur ing a Read or Wri te operaEion address l ine A3 conLrols the interrupt

capabi l i ty of PB7, i .e. , A" = 1 enables IRQ on PB7, A" = 0 dlsables IRQ on

PB7. When PB7 is to be usdd as an interrupt f lag witd-Ehe interval t imer

i t should be programmed as an input. I f PB7 is ena bled by 43 and an

interrupt occurs PB7 wi l l go 1ow. When the t imer is read pr ior to the

interrupt f lag being set , the number of t iure intervals remaining wil . l beread, i .e. , 51, -50, /+9, etc.

When the t i mer has r:ounted down to 0 0 0 0 0 0 0 0 on the next count

t ime an interrupt wi l l <-rcr.cur nd the <:ounter wi lL read I I I I I I I I

Af ter inEerrupt, thei t . mer regist r : r decrements at a divide by "1" ra lc () f

the system clock. fJ: afcer interrupt, the Limer is read and a value t l f

1 I 1 0 0 I 0 0 is read, t t re t ime since interrupt is 28T. lhe value read

is in twots complemenc.

Valueread=11100100

Complement=00011011

ADD 1. = 0 0 0 I I r 0 0 = 28.

Page 213: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 213/244

Thus, Lo arr ive at the total elapsed t ime, merely do a twors complement add

to the or ig inal t ime wri t ten into the t imer. Again, assume time writ ten as

0 0 1 I 0 1 0 0 (=52;. With a div ide by 8, total t ime to interrupt is

(52 x 8) + 1 = 4L7T. Total elapsed t ime would be 416T + 28T = 444T, assum-

ing the value read after interrupt was I l i l 0 0 1 0 0.

Af ter the interrupt, whenever the t i -ngr is wrl t ten or read the interrupt

is reset. However, the reading of the timer at the same tirne the interrupt

occurs wi l l not reset the interrupt f lag. When the interrupt f lag is read onDB7 aLL other DB outputs (DBO thru DB6) go to tr0r' .

F igure 5 i l lust rates an exarple of int 'errupE.

R/W A3 D7 D6 D5 D4 D3D2U DO R/W AI AO

IR Q

D6 D5 D4 D3 D2 DI DO

BASIC LEMENTSF INTERVAtIMER Fisure

Jt'n-l'- L/-"t--J.'1

PROGRAMMAELE

REGISTER

DIVIDE

DOWN

02 tN

WRITET

rRo

1.

2,

Figure

Data wr it ten inEo interval t imer

Data i .n Interval t imer is 0 0 0 I52-213- l=52-26-7=25

8Data in Interval timer is 0 0 0 0

52-4L5- l=52-51-1=08Interrupt has occurred at 0Z puLse

Data in Interval t lmer = I 1 I 1 1

Data in Interval t imer is 1 0 I 0 1twots comptement s 0 1 0 I 0

84+(SZx8)=5001s

= 84to

should be low so as to

fuEure Lnterrtrpts unt i l

ls0011

1001=

00 00=

0 I 0 0 = 5219

25to

oro.

4.

5.

l l416111

100100

When reading the t ime r after an interrupt, 43

disable the IRQ pin. This is done so as to avold

al ' ter another Wri te Eimr:r t lDerirt l -on.

r.3-8

Page 214: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 214/244

ADI}RESSING

Addressing of the MCS6530 offers many variat ions to the user forgreater f lexibi l i ty. The user may conf igure his system with RAM in lower

memory, ROM in higher memory, and I /O registers with interval t imers between

Ehe exEremes. There are 10 address l ines (A0-A9). In addi t ion, there is

the possib i l i ty of 3 addit ional address l ines to be used as chip-selects

and to dist inguish between ROM, RAM, I /O and interval t imer. Two of the

addit ional l ines are chip-selects I and 2 (CS1 and CS2). The chip-select

pins can also be PB5 and PB6. Whether Ehe pins are used as chip-selects or

per ipheral f /O pins is a mask opt ion and must be specif ied when order ing

the part . Both pins act independent ly of each other in that ei ther or both

pi -ns may be designated as a chip-select . The third addit ional address l ine

is RSO. The MCS6502 and MCS6530 in a 2-chlp systern would use RSO to dis-t inguish between ROM and non*ROM seCtiurrn of uhe I ' {US6530. With Ehe

addressing pins avai lable, a total of .7K cont iguous ROMmay be addressed

wi th no external decode. Below is an example of a l -chip and a 7-chip

MCS6530 Addressing Sc-heine.

0ne-Chip ddressing

Figure 6 i l lusLrates a l-chip system decode for the MCS6530.

s're!-c$p-.1Al!!1esr!s

In the 7-chip system the object i .ve would be to have 7K of cont iguous

ROM, with RAI'I in lo w order memory. The 7K of ROM could be placed between

addresses 651535 and IA24. For Ehis case, assume A13, A14 and A15 are al l

1 when addressing ROM, and 0 when addressing RAM or I/0. This would place

the 7K ROM between Addresses 65,535 and 58,367. The 2 pins designated

as chip-select ot I /O would be rnasked programmed as chip-select p ins.

Pin RSO would be connected to address l ine A10. Pins CSl and CS2 would

be connected to address l ines Al1 and A12 respect ively. See Figure 7.

The two examples shown would allow addressing of the ROMand MI"I;however, once the I /O or t imer has been addressed, fur ther decoding isnecessary to select which of the I /O registers are desired, as wel l asthe coding of the interval t imer.

l/0 RegisterTimerAddressing

Figure B i l lustrates the address decoding for the lnternalelements and t imer programming. Addrese l lnes A2 dlat lngulshes L/Oregisters from the t inter . l ,JhenA2 is high and I/O t lmer select is hlgh, thel/o registers are addressed. Once the I /O reglsters are addressed, addressl ines A1 and A0 decode the desired register .

When the t imer is selected A1 and A0 decode the divide by macr ix.

This decoding is def ined in Figure 8. In addi t ion, Address 43 isused to enable the interrupt f lag Eo PB7.

Page 215: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 215/244

rIII

I/ O TIMER SEL.

INT. TIMER SEL.

A3INTERVAL

AITIMER

A9

r/o sEL.

Al uoA9

RA M SEL.

A5

44

A' 3 RA M

A2

AI

A9

IIIII

I

IIIt

RO M SEL.

A9

A8

A7

A6

A6

A5

A4

A3

A2

AI

A9

A. X indicates askprogramming

i.e. ROM select= eSloRSO

RAM select= gSloRSObA9.A7.A6

I/O TIMER SELECT = ffi.p5g.A9.A8.A7.A6B. Noticc ha t A8 is ad<,rn'tar e or

RA M select

C. CS 2canbe used spB 5 in thisexample.

MCS6530neChip ddres ncodingiagramFigure

r .3_10

Page 216: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 216/244

The addressing of the ROM select , RAM select and I /O Timer select l ines

would be as fol lows:

MCS6530 11, RO M SELECT

RAM SELECT

I/O TIMER

ROM SELECT

RA,MSELECT

I/ O TII'f iR

ROM SELECT

RAI'{ SELECT

I/O TImR

ROM SELECT

RAI.{ SELECT

I/O TIMER

ROM SELECT

RAI.{ SELECT

I/O TIMER

ROM SELECT

RAM SELECT

I/O TIMER

RO M SELECT

RAM SELECT

I/O TIMER

v1cs6530l2 ,

MCS6s30i3,

MCS6s30t4,

MCS6530 15,

MCS6530 16,

MCS6530 /7,

* RAMselect for MCS6530 t5 would

cs2 csl RsoA72 A11 A10 A9

00lx

0000

0001

010x

0000

0001

01lx

0000

0001

100x

0000

0001

10lx0000

0001

110x

0000

0001

111X

0000

0001

A8 A7

XX

00

00

XX

00

00

XX

01

01

XX

01

01

XX10

10

XX

10

10

XX

T1

11

A6

]1'

0

0

x

1

I

X

0

0

X

1

I

X0

0

X

1

1

X

0

0

read = A12.A11.A10.eg.eeN. A6

MCS6530even hip ddressingcheme

Figure

I.3"1

Page 217: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 217/244

ADDRESSING OECODE

ROM SELECT RAM SELECT I /O TIMER SELECT

READ ROM

WRITE RAM

READ RAM

WRITE ODRA

READ DDRA

WRITE DDRB

READ DDRB

WRITE PER.REG.

REAO PER.REG.A

WRITE PER.REG.

READ PER.REG.B

WRITE TIMER

+lr

+87+ 647+ to24T

READ TIMER

READ NTERRUPTLAG

I

o

ooooo

oooo

oI

I

oooooooo

ooo

AO

X

xX

I

I

I

I

oooo

oI

o

A3 A2 AI

xxxXXX

XXX

xooxooxolxotxooxooxolxol

)( tot ( lo*r lxrr

wI

oI

o

I

oI

oI

oI

oooo

o

ooo

o

ooo

oo

X

X

oo

xx

oI

* As = | Enobles RQ to PB7A3 = O Disobles RQ o PB7

I.6OOmox.

(15.24mm)

-T-

2.O2O mox.(51.30mm )

Pin No. i r in lowcr lcf corncrwtcnsymbollzot ion is in normolor lcnfot ion

PACKAGE OUTLINE

,l55 mox.(3 93mm)

Vss

PA O

o2

RS O

A9

A8

A7

A6

l /wA5

A4

A3

A2AI

AO

FEsIRQ/PS7

cst/ PB6

cs2l PB5

Vcc

. l90 mox.(4.82mm)

PAI

PA2

PA 3

PA4

PA5

PA 6

PA7

DBO

D8l

o8'2

D83

DB4

DB5

DB6

DB7

PBO

PBI

P8?

PB3

PB4

.3lOmor.(7.87mm)

(r .65)o65i l .or) .o40( .551 O22(.45).Or8

. lOOmln.(2.54mm)

.OlOmin.(.25mm)

Addrcrsing Occode tor | O RcAisterond TimcrFIGURE 8

lOomor.

\

tffi";JI l trcLt ssstd- t

40

39

38

37

36

35Mc34s6336

5 32o 3l

30

t2 29

f328

t4 27

f326

f625

t7 24

f823

19 ?2

20 2l

t.3-12

PIN DESIGNATION

Page 218: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 218/244

flmw

rol TCcl . tHoloov. txc.vAtrty fonc€ C0Rp0RATIEtrrfs?r5} 66 95005 0 rrTtiH0ustRoA0. l0RBtsToryt.A t9401

PROOUCT

Ail i lOUNCEME

BULLETIN

SEPTEMEER197

MCS6532 RAM/IO/INTERVALTIMER CI.IIP

Th e MCS6532 s designed to operate in conjuncEion wi th the MCS650XMicroprocessor Family. l t iscomprised of a 128 x 8 scatic RA.f, l , wo soft.ware controLLed 8 b it b i-d irect ional data ports

al lowing direct in terfacing beEween the mi(:roprocessor unit and peripheral devices, a sofcwareprograrnmable incerval t imer with interrupt, capable of c iming in various j.ntervals from I co 262,

144 c lock periods, and a programable edge deteci: c ircuit .

* 8 b it b i-d ireccional Daca Bus for d irect corurunicaEion with the microprocessor

*Edge Sense Interrupt (Pcrsi. t ive or l.{egative Edge: Programmable)

* I28 x I sEatic Ram

* Tw o 8 bit b i-d irect ional daca porrs for incerface to perlPherals

* Tw o programmable I/0 Peripheral Data Direct ior Regisrers

* Programmable lnterval ' I im(.r

* ProgrammabLe lnterval T imer ln lerrupt

* TT L & CMOS ompatib le peripheral l ines

t Peripheral p ins with Direct Transisror Drive Capabil lEy

* HiSh lmpedance Three-StaLe Data Pins

I

MCS6532NTERFACE IAGRAM

TOPROCESSOR

TOPIRI PTIERAL

DEVICES

IIRAM

II

23456789

101it2

14l5l ( ;

t7t8i9zt )

4U

39.38

373655

s332

3t30:v

282726l524

22?l

VssA5A4A3

A2AI

AOPA OPAI

PA2PA3PA4PA5

PA 6PA7P87

PB(rPB5PI}4

vcc

/\ o

62CSlLJ Z

F5R/ivl ( l ; )

DBODBl

DB2I)11.UIJ4

Dl l5

t) l ]6DltTnaPBOPr]Pt]2PB3

Page 219: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 219/244

MCS6522 ERSATILE NTERFACEADAPTER

Thc ttl0STcchnology, Inc. lfCS6522s a second-g€neration pcriphcral adapter dcsignedbring increased capability to the nicrocouputer systen designer for the solution of pcriphercontrol and systen tining problens. It conbines thc gencral purposc pcripheral ports, handshaking, intc"rupt handling, etc. of the !1CS6520lth a pair of very flexiblc interval tiaerand a scrial-out/scrial- in shift rcgister. In addit ion, thc chip is organized to sirpl i fy tsoftware involvcd in controlling the nany functions provided by thi.s deyicc.

Sorneof the iuportant fcatures of the MCS6522axe as follows:

r Coupat ible uith the MCS650X nd MCS6SlX amily of nicroprocessors.

r Eight-bit bi-ditcct ional data bus for cormunicat ion with the nicroprocessor.

r Tno eight-bit bi-direct ional ports for inter face to per ipheral devi.ces.

' Data Direction Registers allou each peripheral pi n to act as eithcr an input or anoutput.

r Interrupt Flag Register allors the microprocessor to deternine the source of anintcrrupt vcry conveniently.

r Interrupt Enable Register allows ve ry convenient control of interrupts within thechip.

r Handshake control logic fo r input and output peripheral data transfer operntlons.

r Cl lOS-compat ible rrArrand "8" per ipheral ports.

r Data latching on pcr ipheral ports.

r Two ful ly-programable interval t imers.

r Eight-bit Shif t Register for ser ial inter face.

' Forty-pin plast ic or ceramic DIP package.

t.4-2

Page 220: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 220/244

Auo

ro

Page 221: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 221/244

BUGBOOKII book $15.00by Rony, Larsen, & Tituspublished by X. & L. Instruments

A complete inLroduction to operation, prograrlming andinterfacing of an 8080 based microcomputer" TexL is keyed tothe use of the E. & L. IvlD-I microcomputer, but is a very

useful reference for al l seeking hardware information about8080 based systems.

BUGBOOKV and BUGBOOK I booksby Rony, Larsen, and Tituspublished by E. & L. Instruments

A complete and novel treatment of microprocessors anddigi tal c ircui t ry. 8080 oriented but contains much usefulmater ial on j-nterfacing microcomputers to external devices.

CMOSCOOKBOOK book $9.95by Don Lancaster

Howard W. SamsI977

HOWTO BUY AND USE MINICOMPUTERS& IvIICROCOMPUTERSook $9.95by Wil l iam Barden, Jr.Howard W. SamsI97 6pp. 240

INTEL EOBOASSEMBLY ANGUAGE ROGRAMMINGANUAL Manuf. Data S5.OO7975pp. 75

obtain from--fnteI Corp.3065 Bowers AvenueSanta C1ara, Ca. 95051

orLocal Intel Representative or Distributor

rNTEL 8O8O I\4ICROCO},IPUTERYSTEMSUSER'S }IANUAL Manuf . Manual $5.0obtain f rom--Intel Corp.

orLocal Intel Representative or Distributor

AN INTRODUCTIONTO IUICROCOMPUTERS: books $7.50 eachby Adam Osborne

*Volume I - Basic Concepts #20ALVolume II - Some Real Products #30018080 Programming for Logic Design #400f6800 Programming for Logic Design #5001 i

Osborne & Associates, fnc.P.O. Box 2036Berkeley, CA 94702

J-1

Page 222: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 222/244

MICROCOMPUTERPPLICATI0NSHANDBOOK handbookby David J. Guzeman

Iasis Inc.

815 W. Maude AvenueSunnyvale, CA 94085

A complete deser ipt ion of hardware and software forIaslsts single borad microcomputer.

MICR0C0MPUTERESIGI, I book $25.00by Donald P, Mart in

7976pp. 400

Mart in Research

3336 Comnerci.al Avenue' Northbrook, IL 60062

A conprehensive treatment of hardware and software forsnal l- microcomputer systems uslng the 8008 and 8080 micro-processors, This ls the only book givlng detai led i.nfor-mat lon on the 8008.

MiCR0C0MPUTERNDMICR0PROCESS0R bookby Hilburn and Julick

Copyr lght 1976 by Prent ice Ha11, Inc.pp. 375

Ttre book ls intended for al l persons involved in the

deslgn, use, or mainLenance of digltal systerns us ing micro-computers. The book is wr it ten at a leve1 r,rhich can beunderstood by persons with 11tt le prevlous exper ience.

Topics include: digital 1ogic, nurnber systems and codes,mi crocomputer architecture, sof tware, inter facing and per ipheral

devlces, microcomputer systems [4040, 8080, 8008, 5800, IMP-4, PPS4, COSMAC'

PPS-8, PACEI design methodology and applicat ions.

MICROPROCESSORSMICROCOMPUTERSby Branko Soucek

Wiley-Intersc j.ence

1976pp. 607

book $23.00

A general lntroducclon to digltal systems and mlcroconputersnlth detal led descr ipElons of popular 4,8112 and 16 b i t rnicro-processorg lncludlng rhe 6800, 8080, and LSI-11.

J-2

Page 223: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 223/244

'MICR0PR0CESSORS:NI} 'JDIRECTI0NSFORDESIGNERS collected art ic le

Edited by Edward A. Torrero $8.95

L975

PP. 135

seleeted art lc les repr inted frou @ Design Magazine.

SCELBI S0FTI, IARE ANUALS book $1e.e5

Machine Language Prograrnmiag fo r the 8008

Scelbi Co4uter Consult ing Ine.

7322 Rear Bostcn Post Rd .

l t i l ford, CT 05460

pP. 170

Intro. to assernbly language Programlng. Includes discussion

of biuary and fl"oating point arlthmetlc.

SCELBi S0FTI,IARE ANIjALSB0B0 books

8080 Moni tor Rout ines $f1.95 ppd

An 8080 Assembler Program $f7.95 ppd

An 8080 Editor Prograur $14.95 PPdScelbi Couputer Consult ing Inc. al l three for $39.50 ppC

well docuBented software packages with program listings

in octal (paper tapes abailable) . uses non-standard memonic

codes

SCELBI 'S '8080' SOFTWAREGOURMETGUIDE AND COOKBOOK book $9.95

Machine Language Programing for the 8080

pP. 170SceLbi ComPuter Consult ing Ine.

Introduetlon to assernbly language prograrnnring fo r the 8080.

Includes several routlnes which ca n be used for number conversion

f loat lng point ar i thnet lc and I/OProcessing.

sc/MPMICRoPR0CESS0RPPLICATI0NSANDBooKI4ANUFACTURERATA 00K

pubJ-ished by National Serniconductor Corp.

2900 Seulconductor Drive

Santa C1ara, CA. 95051

available from loca1 National Sernicooductor TechnicaL representative

Hardwane and softward applicatlons of th e SC/l@'

SCELBI 'S '6800' SOFTWAREGOURMETGUrDE AND COOKBOOK book $9.95

I4achine Language Programming for the 6800

Scelbi Computer Consult ing Inc.

J._3

Page 224: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 224/244

SOFi lARDESiGNORMICROPR0CESS0R5 book $12'es

by John G. Wester and Wi11lam D. Simpson

copyright 197.6 by Texas Instrument Inc.

PP. 372

order from: Texas InstrumentsP.O. Box 3640, M/S-84

Dal1as, TX 75285

Book was wri i ten to assist Eechnical and non-technieal people

in taking their f i rst steps toward designing with mircroprocessors

and related software. Topics range from basic binary numbers Eo

eomplex examples of microcgmputer applications. Book was written

pr inar i ly for those with l i t t l -e or no prograrnrning exper ience but

it conEains excellent application exampl-es which should be of

interest even to seasoned Programmers.

TTL C00KB00K reference book $8.95

by Don Lancaster

r974pp. 335

published by Howard W. Sams & Co. r Inc.

TV TYPEbJRITER00KB00Kreferencebook s8'9s

by Don LancasterL976publlshed by HowardW. Saurs& Conrpanyr nc.

k'f,o* '*-*"gr*-'a* ?'4'+{"l''+r*"'""pe'e"#'*vs"

r l '10n\}*v

-. (|

w

,i r'*'0"*'l ' r iv

f\*'r"f:"{"L'

{t-

',t' tll

r tfl,dr"i|"'r.r

11' j

l/, .'L,{J

l iv l t

a:I

r l-.f 1. ru' .4'

J-L

Page 225: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 225/244

B. PERIODICALS

AMERICANABORATORY

BYTEpubllshed monthly by.- Byte Publlcat lons, fnc.

70 Maln Street

$12.00 per year Peterborough, N'H' 03458

COMPUTERESIGNpublished eonthly by - Conputer Deslgn Publishing Conpany

clrculat ton address - Compueer Deslgn

Circulatlon Department

P.O. Box A

free to quallfied persons - others g20 per l^Ilnchester, llA 01890

year

CONTROLNGINEERINGpubllshed nonthly by - Control Englneering

free to qualifled p.."ori"tb"eriptlonaddress ' 666 Fifth Avenue

New York, NY 10019

Contains useful artlcles on appllcatlons of nlcrocomputers to

lndustr ial control

DIGITAL ESIGNpubli.shed nonthly by - Benwlll Publlshing Corp.

Clrculatl.on DlrectorDIGITAL DESIGN167 Corey RoadBrookllne, l,tA 02146

lfree to quallf ied persons, $25.00 Eo others, request quallf lcatlon cardon company etterhead]

Dr. Dobbs ournal of COMPUTERALISTHENICSORTH0D0NTIApubllshed ten (10) tlnes per year bY -p"opres

computer companyBox E

$L2.oo per yearMenlo Park ' cA 94025

Devoted to publlcatlon of nicrocornputer oriented software such asTIIIY BASIC.

J-5

Page 226: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 226/244

ELECTRONICESIGNpublj .shed biweekly by - Hayden publishlng Company, Inc.

50 Essex Street ,

Rochelle Park, NJ 07662

Ifree if qual i f ied, othensise, $30.00 per year]

ELECTRONICESIGN EI,ISpublished nonthly by - Cahners Publishing Company

[free to quali f ied persons; very hard to get]

ELECTRONICNGINEERINGII4ESpublished biweekly by - CMPPublicat ions

suscr ipt ion address - Electronic Englneer i.ng Tirnes

free'to qual i f led persons280 communi ty Dr iveGreat Neck, I IY 11021

[useful for news and announcements of new mlcroprocessor products.Has bingo card for new product ads]

ELECTRONC5published biweekly by - McGraw-ltill, Inc.

suscr ipr ion address - ELECTR0NICS

McGraw-Hi11 BuiLiing

L22L Avenue of the Americas$12.00 per year to quali f led persons New York, l fY 10020

INTERFACEpublished Eonthly by - southern cal- l . foruia computer society

I f ree wlth $10.00 menbership ln SCCS]

INTERFACEGE newmagaziney publ isherof or igina't NTERFACE]published nonthly by - McPheters, Wolfe & Jones

6515 Sunset B1vd.

Suite 202$10.00 per year Hollywood, CA 90028

INSTRUMENTSCONTROLYSTEMSpublished monthly by - Chil ion Company

suscr ipcion address - Chi lcon CompanyChll ton WayP.O. Box 2025Radnor, PA 19089AEcenEion: Clrculat ion Dept,

I f ree to quali f ied persons, others g25.00 per year]

J-6

Page 227: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 227/244

s0ANJAg

x

Page 228: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 228/244

GIISSARY OF COMMONI,YSED ,ECNOPROCESSORER,}4S

ABSOLUTE DDRESSI}Xi - SEE DIREC? ADDRESSING

aBSOLirtE rNDExm TDDRLSSTNG- the effective address is formedadding the index regi.ster (x

or T) to the second and thirdof the instruction.

Acctil'ltILATOR - A register that holds one of the operands and theresult of aritbnetic and logic operations that are perfornedby the central processing unit. Also cor'uronly used to holddata tna.nsfemed to or fron I/O devi.ces.

AccuMUr.lftOn rDDRESsrNc - ore byte instructioa operating on theacsuuulator.

ACIA - fs an Asynchronous Corumrnications Interface Adapter. Thisis an NMOS,SI device produced by Motorola for interfa.ciag

Seria-l. ISCII cievices to a micro*processor systen.

ADDRESS A nunber that designates a memoryor T/o rocatj-on.

ADDRESSUS - A multiple-bit output Bus for transmittir€ an ad.dressfrom the CPU o the rest of the system.

AIS0RfT$'I - The sequerEe of operatj.ons which defines the solutj.onto a problem.

ALFHANID{xnrc - Pertainjng to a character set that contains bothletters a:rd numerals and usually other characters.

AIU (AnIfiS'IETIc/I.r,cTG I'IIIT) - The unit of a computing system thatperfcnms arittrmetic and logic operations.

A^SCIICODE the America-n Standard Code for Infornati.on Interchange..a seven-bi.t character code without the parity bit, or an eight-bit character code with the parity bit.

.0.ssn'IBLER a program tha.t traaslates symbolic operation codes intomachine languager syurbolic addresses to memory addresses andassigns values to all progran symbols. rt translates sourceprograns to objeet prograns.

.[9SF.I4BLYIRECffgE - A nnenonic that nodifles the assenbler operationbut does not produce an object code (e.g,1 a pseudo instruction).

A.ssn'lBLr tAl[cuAGE - A corlection of symbolic IabeIs, mnemonics, anddata which are to be translated into binary machlne codes by theassembl-er.

by

byte

K-1

Page 229: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 229/244

&SI-NCi{R0N0US Not occurring at the sane time, or not exhibitinga constant repetltion rat'e; irregular.

BesE _ 'rsEE R.S,DIX!r.

BCD - Binary Code Decj.nal-. A means by wirich decjma.Lnunbers arerepresented as binary values, where j-:rtegers i-:r the raage 0-!are represented by the four-bit binary codes from 0@0-1001,

BIDIRECTIONALDATABUS - A data bus in which digital information canbe transferred in either direction

BIN.C.Hf - The base two nunber systems. All nunbers are eryressed aspolrers of two. ls a consequeneer only two symbols (0 & 1) arerequ,ired to represent any nunber.

BIT - the smallest unit of jrtformation which can be represented.A bit may be in one of tro states, represented by the binary

digits 0 and 1,

BIOCK DIAOR.AI,I A diagrarn in rhlch the essential units of anysysten are drawn in the forn of blocks, and thejr relationshipto each other is indicated by appropriately connected lines.

BR.II'ICHNSTRUCTION - i" lnstructi.on that causes a program Jump to aspecified address and execution of the instruction at that address.During the executicar of the br.neb instruction, the central proces-sor replaces itre contents of the progran counter with the specifiedaddress.

BREAKP0INT- Pertaining to a type of instruction, i.nstruction digit,

or other condition used to intenupt or stop a computer at aparticular place i-u a prugram. A place in a program where suchan iaterrupticn occurs or can be made to oecur.

BUFTER - .[ noniaverting digital circuj.t elenent that uray be used tohanile a large fan-out or to invert i-nput and output levels.

A storage derj.ce used to corpensate for a difference irr rateof flow of data, qr time of occurrence of events, when transraittingdata from one devi.ce to another.

BITE - .{ seqrrenceof eight adJacent binary diglts operates upon as a

unit.

Clr.L - A special type of junp il which the central processor islogical.ly requJred to rrremembernthe contents of the prograncounter at the time that the junp occurs. ltris "]lous theprocessor later to res@e execution of. the main program, whenit is flnished rlth the last instruction of the subroutlne.

K-2

Page 230: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 230/244

Page 231: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 231/244

DECODER/DRffER- A code eonversion device that can also has sufficientvoltage or current output to drive an external device such as adi.splay or a lamp monltor

DE4IILTIPLE$R - A digital device that directs infornation from a s5.ng1ei.aput to one of several outputs. Information for output-channelselection us-ually is pesented to the device in binary weigh,tedforn a.nd s decoded internally. lhe deyice also acts as

"single-

pole rnrltipositi.on sodtcb that passes digital i-nfca"raation in adi.rection opposite to tbat of a rnultiplexer.

DESIINATION - Register, memory ocation or I/A devlse shich can beused to recei.ve dat,a during instruciion execution"

DEVICESE[,EC?PUI,SE - A softr+are-generated positlve or negativeclock pulse frora a ccmputer ihat is used to strobe the operationof one or nore I/0 devices, includirg i-ndividual integratedcircuit chips.

DInEgI ADDRESSISrc The second and thirdbyte of the instruction contain the address of operand to beused.

DD,fADI&ECTMW0RI ACCESS) - Suspension of processcrr operatioa toa'l'low peripheral units exberaal to the CPU o exercise controlof nencry for botlt RE.AD nd l,RIlE rithout altering the lnterna1state of the processor.

DINAMIC8.Al'{ - .d random access nemory that uses a capaciti're elementfor storing a data bit. They reqrira REISBSH.

EECDIC - The Extendeo Binary Coded Decirnal Interclusrge Cocie, adi€itaJ- code prinari.ly used by Sli[. It c]osely resenbles t]rehalf-.A,SCII code.

mGE - The transition fror logic 0 to logic 1, or from logic 1to logic 0, in a cLock pulse.

EDIIOR - A program used foc preparing and modifying a sourc€progran or other fiJe by additlon, deletion or change.

EflFECTM iDDRESS The actual address of ihe desired location Lnmemory, usually derived by smre forn of calculation.

ilP.tl{SION - The process of inseriing a sequence of operationsrepresentea bI a macro nane when the macro nagre s refereneedin a trrrogran.

FALL TIME - The tirne requi.red for an output voltage of a digitalclrcult to change from a loglc I to a logic 0 state'

K*ll

Page 232: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 232/244

FAII-OU? - The nunber of para]le1 loads uifhin a given logic f anilythat caa be drlven fron one output mode of a logic cjrcuit.

FETCH - One of tim twc functional parts of an instruction cycIe.fhe collectj.ve actions of acquiring a mencry a<idress, and then

an instnuctisn cr data byte from nemory.

FTT:T.D - An area of an instruction mnenonic.

FTr.n A collection of data reeords treated as a single u-nit.

ruFO (I'IRST IN, F'IRSI 0UT) - ?he terrn applies to the sequence ofenteriag data into and retri.eviag dat,a from data storage"The flrst data entered is the first data obtaiaable wi.th FIFO.

FT,AG - A status bit which indicates that a certaln condition hasarisen during the cource af aritlmetic or logical marriprrlationsor data transmission between a pair of digi.tal. electronj.cdevices" $ome lags uraybe tested and thus be used for deter-mfnlr€ subsequeat,actlons"

ELlo RffiISTER - A reglster consisting of the flag flip-flops.

ELOWCHIRf - A symbolie representation of tbe algorithn required tosolve a problear"

FRQUENCY - fhe rnrnber of recumences of a perlod,ic phenornenon na unii of tirne. Electrical frequency is specified as so nenycycles per second, 3r llertz.

FUIL DUPLEX - A <iata transnission modewhich provides simultaneousand independent transm:i,ssion and reception.

HALF-.ASCfi - A 6l+-character A,SCII code that contalnsttre code rordsfor nusleric d5gits, alphabetie characters, and symbols but notkeyboard operatlons"

HAIF DUPLE{ - 4 data tnansnnlsslon modewhich provides both trans-mlsslon and reception but not simultaneously.

zuNDSHAKE - Interactive conmr:nicatlon betrreen two system conponents,such as betseen the CPUand a peripheral; often required to preventloss of data.

HeRDI'tlRE - Physical equS.pment echanical, eleetrlcal., or electronicdevices

HH$DECII,IAI - A nunber system based upon the radlx-16, ln whlch thedeclmal nunbers 0 ttnough 9 and the letters A through F representthe slxteen distlnct states ln the code.

K-5

Page 233: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 233/244

HIGH .ADDRESSYTE - ?he eight most si.gn-ificant bits in ttre 15-bitmemory address wtrd. *bbreviated H or E.

Ic (wrmaetnn elRcuII) * (f) A conrbination of i:rterconaectedcircui.t elements inseparably associated on or rj.t&1n a con-

tjrmous substrate. (a) ^Anyelectronic derrice in which botbactive and passi.ve elements ae contained in a single package.In di€i.ta: el"e*tronies, tire term ehiefly applies io circuitscontaisliag senriconductor eleraents.

IMMEDIJITEADDaESSE'I* - lbe operand is the second byte of Lbeinstruction, rather tha:i its address.

IMPilm .ADDRESSI]&3 A one-byte instruction that stipulates anoperation i:rternal t,o the processor. DOESNOT equire aryaddltlonal" operand"

INCRET{E$IT ?o inerease the value of a binary word" Typically,to iacrease the vaiue by 1,

INDE@ ATDRESS - SJa nd*xed address is a m,enory address fornedby adding lmnediaie daia j.ncluded rith the i-nstruction to thecontents of sorqe egister or menory location.

Il$DF:lm)$IDIP,$CT ADDRE*9G{G- The secq:d byte of the inst'ru.ctionis added to the eontents of the rtXrt ind€x register, d.lscardfulgthe earryu tc forrn a aero-Fa€e effectlve address"

INDIRECTAESAIU"IEAIDRESSISIS - ?he secsrd a::d third bytes of theinsirucii"*n con?,ei:l the address for the first of ilro bytes ln

nemor-v tha,t, s*ntsin ihe effective address *

IllDIRneT mFElmD IDDRF"SSfiffi - fhe second byt,e of tluis insiructlonis a aero-pege adfu*ss. fhe eontents of this a*ro*pege addressare added to the ilYil ind.ex reglster to fcrn the lcr*er I Uitsof the effective acidress. Then the caruy (:f any) is addedto the conteats of the nexi aero-page address to form theh"lgher I bits of ile effective address"

INDIRECT ADDRE$S - An ad.dress used. rnith an instructlon that indlcatesa nanory locatim or a register that ln turn conta:i.ns the actualaddress of an operand" ?he i.ndirect address may be lncluded with

the j-nstruction, contalned ln a register (regl.ster indirectaddress) or conta-3::ed st a memqry ocatlon (menory directediadj-z'*ct address)

IIITERfAC:IiG - The jot"nSng nf membersof a group {suci: ae people,instn*neats n eac ") ::l su.cb a ray that they are able tafuaction 1n a r:ompat*ble and coordlaated fEnh{ oR,

*-o

Page 234: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 234/244

INSTRU0TI0$ * A statement t'hat specifies an operationor locaii"ons of its operaoreis.

INSTRUCTIOH CSS * A rxri.que binary nus&er that encodestha.i a comp:,ter can grerform"

and the values

an operation

INSTRUC?IO}I YCLE - A s::ccessive groep of mach:inecyclese as fewas on€ or as many as sesen, whlch together perforn a singlemiers_socess<>:r.nstruetion lrithjn ilie rnicroprcces$tr chip.

n'lSTAUCfI0l{ FECSDER - A de*oder withi-n a 6?U that deeodes thelnstrucilorr code rnta a series of actions ihat ihe conputerperforms*

INSTBUffiIG$ f-{SGi$mR - The resister that contaLms the instructioncode.

INTERPRETffi * A language translaior whj.ch converts indieidua1 sourcestatements ilto mul"tiple machj$e instruetions by translating andexecutlag each staieraent as it is encountered. Can not be usedto generate ohje*t code.

INISERUPT - In a compr:.ter, a break in the normal fl"on of a systemor routine such that the flow ca.n be resusred frqrr that polntat a ]ater tj"me" ?he soulce of the lnternupt nay 1:e-.internalcnr external"

I/0 DEVICE - input/output, devi,ce - any *igii.ta-l device, 1-neludiaga si.lrgle i-ntegrated. circuit chip, ihat transnits data on strobeprlses i.s 8, *€npuhe:: ar receises ciata or sirabe puSses from a

e cEnpui*r-

JUMP - (1) To cause the next instructioa to be seleesed from aspecified storage location in a computer" (2) A ciev-iationfron the acrmal $equence of execution of instructions ia acoraputer

L{FEL - One or more characters that, serve ta define an i.tem ofdata or the location of an instructlon or subroutine. Acharacter is cne symbol of a set of elementary symbols, suchas those corresponding to typewriter keys

I,ATCH - & simple logic st,orage element. A feedback loop used lna q'nmnetrical d.igital e!'cu-it, such as a flip*fJ-op, to retai.n^ ^+^+^DU(LUq.

LnaDING mGE - the transi"tion of a oulse ihat oecurs first.

K-7

Page 235: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 235/244

t@ (LIGIIT-S{ITTEG DIoDE) - A pn junction that ernits light whenbiased in the forward direction.

LEVEL-IRIGCERED - The state of the clock inputr bebg either logi.cO or logie I carries out a transfer of i.nformation or completesan action.

tffo (UtsT S, FInST oUT) - The latest data entered is the firstdata obiainable frcrn a LIFO stach or nemory section.

I.SB (IJ.LST SIGNITIC.ANTBIT) - Tlre digit with the lowest weight,ing1u a binary nnber.

TISTING - An assenbler output containlng a listing of prograrnmnemoa-ics, he nachine code produced, and diagnostics, i.f an;r.

ItrfC - (1) The science deal.ing wlth the basic princlples andapplications of truth tables, orltchingl gatlng, etc. (2) SeeIcglcal Deslgn. (3) 41so called symbolic logic. A nathenaticalapproach to the soluti-on of complex situations by the use ofspnbols to defile basic concepts. The three basic logic syrnbolsare AND, oR, and [gt. l{hen u,sed in Boolean algebrap these synbolsare somewhatanalogous to addition.and nultiplication, (L) fnconrputers and fufornation-processing networks, the systematicnethod ttrat governs the operati.ons perforned on lnformatlon,usually with each step influencing the one that follows. (5)The systenatlc plan that, defines the iateractions of slgnalsin the design of a system fe automatic data processlng.

tGICeI, DECISIOII - The ability of a computer to make a cholcebetween tro alternatives; basically, the ability to ansneryes or no to certain fundanental questions concerrring equality

and relative magnitude.

LOGIC.0LDESEIV ,- fhe syntheslzing of a network of logical elementsto perforrr a specifi.ed fuoction. h digltal electronics, theselogical- elements are digltal electronic devlces, zuch as gates,flip-flops, decoders, counters, etc.

IOGICAI ELEMENT - Iio a computer cr data-pnocessing system, thesaral'lest buildiag blocks which operators can represent in anappropriate system of symboJ.ic Iogic. gpical logical. elementsare ttre IND gate ard the nflip-flopn.

IOOP-

A sequease of instructlons that is repeated unti-La

ccn-diticaral exit situatloa is met.

I,0i{ ADDRESS IYIE - The eight least slgn'l ficant bits ln the 16-bltmemory address rord. Abbreviated L or LO.

K-B

Page 236: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 236/244

Page 237: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 237/244

Page 238: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 238/244

NIBBLE - A sequsr:.ceef fcu:r acija*ent bits,ribble" *, hex*-decimal- m FCF ciieit cana s:ibbl"e.

PiRTITIONII'& - The Froeess of assiguing specified.systen respcnsibi.lity for perform:ing specified

PC - See TTPAGRAMe0U$?ERtt

behalf a byie, isrepresented il r

NON-OVEEI.AFFSIGI{#*FHA$Hel,(]Str * A, tr.ro*phase cloc}t i-a nh1ch theclock pulses of *I:e indiv-idual phases do not overlap.

NON-VOLA?II& ffilfiRY - A semieonduc'i;cr nenory devi.ce in wirj.ch thestored d*glt'*3 data j.s not lost when the power is removed.

OCTAL A nrmber: sysi*m based upon the radix 8, fu which thedecisral snmbers 0 through f represent ihe eight distinetstates "

0IIE-BYTE-INSfffJC?IC31 - An jrstructicn that ccarslsfs of eightcontigu,cus hits oc*upging one successive location.

OPSI-COIJ,ECTORt?fF:JT * *n outlrut, frst an integrated circultdevice in r,rirlcS: he f*nal ttpu1l-upn resistor in the ou+.put

transi,stor fry the Cesiee is nissing and imsi beprovided

by tirc user before the cjrcuit j.s cmiple*"ed.

0PEA.A],ID Eata wh*eh is, or wllI beo operated upon by an arlthnetic/logic i:r,structj"on; usually identified by the address portion ofan instruction, explic*tJ"y or implicitly.

OPEAAIIOS - Moving or manS.pulating data ln tbe CPUor betrceen theCPUand periphe'aJs.

P.AGE - A page consists of aJJ the locations that can be addressedUy 8-U1ts (a- total at 256 Locatj.ons) startiag ai 0 and goingthrough ?55" iix,e address witiein a page is determined by the

lorer 8-Alts of the adCress and the page nunber i0 tiraugh255) is determined. by ihe higher B-bits of a i5-bit address.

PARITY - "4,metleed. f checking the accuraey of binary nr-rilbers, tfeven parity is used, the sun of all the 3t s in a nunber andits cerespondS-ng partty bi-t is always ev€oo If odd parlty.is used, the sum cf all the lrs alrd the parity bit is always odd.

portions of afi:nctions"

PIe

PERIPHER"AI, A devi*e sr subsystem external to the 0PU rha*" prwldesadditional sysiem capablliti.es.

POLLINC - Pe:'iodlc interrcgation of each of the devices that sharea cormrunications l-i^ne to deternlne r*hether it reqrires servlcirtg.the mmlttplexer er *ontrol statlon sends a po}l tirat has theeffect of asklng the selected devlce, ttDo you havo anythingto transrlt?fr

POP-

Retrieving ciaf."aron a stack.

Page 239: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 239/244

PORT A device or netnork through wh-ich data raaybe transferredsr where device or network variables may be observe<i or measured.

POSI?fVE EDGE The tnansition fronr logic 0 to logtc 1 in a clockpulse.

POSfTfqE-mCiE TRIGGERED I?ansfer of infornation occurs on tbe

positive edge of the clock pulse.

POSITfYE IOOIC - A feur of logic irt rhich the more positlve voltagelevel represents logic 1 and the nor€ negative 1evel representslogic 0.

PRIORIIY - A preferentiaL ratlng. Pertains to operati.ons that aregiven trrreferenc otheq system operations.

PROCESSOR Shorthand word for nicroprocessor

PRqiR.A$ - A group of ilstructdons rhtch causes the compute,r to per-form a specified furction.

P86R"A!,1O0UIITER - A register contedniry the address of the nextinstruetion to be executed. It ls automatically lncrenentedeach time progran instructions are executed,

PRGzu!{ ljIBEL - A strrnbol w}tlch is used to repesent a memoryaddress.

Pn@{ (Pn*zu},lM4BLg RE0MNIJr MneBI) .C,ead-or'}y..nenortrr,that:.isfJ.eJ:d:programnable. by, fhe,. lrE€F

PROP.{GATIONETAI A measure of t'he tlme required fe a logi.cslgnal to travel thnough a logic devlce or a seri-es d J.ogic

devices. It occurs as the result of four types of cLrcultdelays - storagep riser fe]], srd turn-gn-delay - and isthe tir:e betseen when the inprrt signal crosses the threshold -voltage point aad when the responding voltage at the outputcrosses the samevoltage point.

PSEIIDO-INSTRUCTION A mnemonic that modifies the assenbler opera-t'j.on but does not produce an object code.

PULL-IIP RESIST0B - A resistor connected to the positlve supplyvoltage to the outgut coLJ-ector of open-collector logic. Alsoused occaslonally rith nnechanical slriiches to insnre thevoltage of one or more swi.tch positlons.

P{ILSEWIDXtI - .A,lso called pulse length. lhe td.ue lnterval betweentile polnts at whLch the lnstantaneous vslue on the leading andt'ra"lling edges bears a specifled relatlonship to the peak prrlsear:Plltude.

K-T2

Page 240: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 240/244

Page 241: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 241/244

ROIITIIIE - A group od lnstructi-ons that causes tbe courputer toperforrn a specified frrnction, eogr €Lprogran.

SCRA?CH .AD the temr applies to nemory that is used tenporarilyby the CPU o store i.:etermedi.ate results.

SE'IIEII-SEG]{BI? ISPTAI - ln electroni.c display that contains sevenlines ot segnents spati-a.Lly arranged in such a manner thatthe digits O through 9 can be represented through tJre selectivelaghtiq of certain segnents to form. the diglt.

S${IC0NDUCTOR EMOFf A di€ital. eLectronic memory d,evice ln nhichlrs and Ors are stored, that ls a product of semiconductormarrufacturlng"

SUIF? RE0ISISR - A digltal storage cjrcuit in which infomatlon isslui:flted from one f]ip-f1op of a chain to the adjacent flip-floprryon appllcation fo each clock puIse. Data may be shtfted

several places to the rigbt or left, depending on addltlonalgatjlg and the nunber of clock pulses applled to the 3'pgis!s1'.Depead:ing oa the nunber of positions shifted, the rightmostcharacters are lost ln a right shift, and the lef,tnrost char-acters are lost i.n a left shifb.

S$flIt.{IOR A progran whicb re,presenbs ttre finctioruing of onecoryuter systern

ltilizi-aga.rcther coqruter system.

SOflfmRE - fhe means by which any defined grocedure is speclfiedfor conputer execution"

SOURCE Register, memory locatioa or T/O device whtch can be

used to supply data for use by al instruction.

SOURCE RGR.AI{ .* group of statenents confor&ing to the syntaxrequiremrents of a language processor.

SFLIT D^{IA BiF - Is two data buses, one for lncoming commutdca-tions aBd one for outgoing corrunulrications. An 8-bit data busin split data bus system talces 16 llles.

STACK - A speclfied section of sequential neaory Locations usedas a LIFO (fast T.a, !'irst Out) file. The last elenent enteredis the fjrst one agaiLabLe for output,. A stack is used to store

program datae subroutine return arlrt'ess6s, processor statusl etc.

Sti0f POINTER S) - A register rh-i.ch contains the address of thesystem read/write menory used as a stack. It is autoruatlcaltyincrenented or decremented as instructions penforrn operationsH:ith tbe stack"

f-Ir

Page 242: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 242/244

ST.AIEMA{I - An instruction ia source language.

STATIC R"Att - A rqrdom access memory tbat uses a flip-f1op fcnstorlng a binary daia bit. Does not require reibesh.

STRINO A series of values.

$fBBOUTINE - A routine that causes the execution of a specifiedfirnction and uhJ.ch also provides fc transfer of control backto the ca-ll5ng routine upon sompletj.on of the function,

SIlBOf, lny character string used to represent a Iabel, menonic,or data constant"

SYI'lBOtfC ADDRESS- Also caaled floaiing a.ddressn In digita1 co6-puter prograrndngr a 1abe1 chosen in a routine to ideatify aparticular word, function, or other informatj-on that ls inde-pendent

of the location of the information w'it}.in the routine"STI,IBOTIC OD8 - A code by which programs are exFressed ln source

language; that is, storage locations and machine operationsare referred to by sprboli"c nanes and addresses that do notdepend upon their hardware-deterzrjned nanee and address€so

S$4BOIJCCODING - In digital conputer programring, aq cod,fngsysten usfug symbolic rather tttan actual conputer addresses"

Sgl{C}lRChlOUS- Operatipn of a s:*itchiag network by a clock pulsegenerator" .Lll cjrcuits in the netlrork sritcb sjmuLtaneously,and all actions take plaee synchronously rdith the clock"

SWT.AXERROR - An occurrence in the source progran of a labele4pression, or conditj.on that does not meet the .f,orrnatrequirernents of the assembler program.

TABLE A data structure used to contaj.nr sequences of lnstruc-tions, addresses, or data constants.

TR{IIING EDGE The transition of a pulse that occurs last, suchas the hlgb-to-low transltion of a posi.tive clock pulse.

IAAIISITIOI{ The jrstanee of chang"jng fbon one state to a second

state.

IIiREE-STATEDEVICEor IRI-STATE DEVICE A serricqrductor logicdevice j.n wbich there are three possible output, states: (1)a nlggC.c0n state, (Z) a ttlog:Lc ltt state, or (3) a state irri.n rhicb the ouSut is, jn effect, disconnected frorn the restof the circrrlt ard has no j.nfluence upon it.

K-l:5

Page 243: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 243/244

ITIREE-BEfE INSTRIICTION - An instruction that, conslsts of trenty-four colrtiguous bits oecupying tbree successive nemory locations.

TBUIU TIBLE A tabulation that shows the relati.on of all outputloglc levels of a *igitaf. circuit to all possible conbinatj.ons

of iaput logi-c levels in such a lray as to charactenize tbecircuit fi:nctioas ccrryletely.

1'IfO-BIITE NSTRUCTION - 4n instructLon that consists of sirtdeticontlguous bits occupying tro successive nemory locations.

IWO-PHASECLOCtr A tro-outpu'b tinine device that prorides trlocontinuous series of timing pulse from the second serlesalrays foll.ocing a siagle clock pulse frcn the first series.Depending on the type of two-phase clock, the pulses in thefirst and second series nay or nay not orerlap each other.Usually i.derrbified as Phase'I & Phase 2.

ITNCOMiITIONAI llot srrbject to conditLons external to the speclficcornputer jlstructi-on .

ttilCOl\DIfIONAI CALL - A ca]] Lustructlon that is uncondltional.

ItNcqilErrro$.qr, fiffP I connputer instruction tbat iaterrupts thenormaL process of obtai-njng the inst,ructlons in an ordered.sequence and specifi.es the address frosr whlch the ne:cbinstruction must be taken. :r

UNCOIIDITIOilAL E'IIAN - A retrrrn instructlon that ls unconditional.

nsl (VERT AncE-scAla I}IImRATIoN) Monolithlc dlglta-l integratedcircuit chips rith a typtcal conplexJ.ty of tro thousard or noregates or gate-equivalent circuits.

VOIATIIE I{El"l0RI A seniconductor memory derrLce ln lrhich t}p storeddigital data is lost when the power is remwed.

IIEIGIITING - ltost corrnters in the 71100serles of integrated cjrcultchips are weighted counters, that is, re can asslgn a nelghtedvalue to each of the fl:ip-flop outputs tn the counter. Bynm*ng the product of the logic state times the relghtln-gvalue for each of the fllp-flops, re c€ur conpute tlre courter

state. For exanple, the weighting factcs fe a h-bit binary' cornter are D - neight of 8, C = weight of l+, B . relght of 2,ard A = weight of 1. The binary output, DCBA= 1101A, frm alr-Uit binary counter would therefone be 13. - #',

I{IRED-ORCIRCUIT - A clrcuit consistlng of two or more sernlconductordevlces wittr cpen.colLector outputs ln rhj.ch the outputs arerlred together. The output frcn tbe circuLt is at a logtc Oif devlce A or device B or derrice C or . . . . " is at a loglcO state. - :-

K-16

Page 244: KIM-1 Microprocessor Fundamentals

8/6/2019 KIM-1 Microprocessor Fundamentals

http://slidepdf.com/reader/full/kim-1-microprocessor-fundamentals 244/244

WORD - lre naxilmn ntnber of bjoary dlgits that can be stored ira a

sLngle addressable nemory locatlon of a given conputer system.

fAnS In semiconductors and ot}er types of menory derices - to

transmit data lnto a nrnory device frsr some otlrer digitalelectrmtc device. To l{RIlE ls to SICIRE.

ZERO-P{}E The lonest 256 address locations ln neuory. Wherethe highest 8-bits of address are alrays Ots and the loner8-bits identif,y any location flour O to 255. lbereforer onlY