Byte Magazine Volume 00 Number 11 - Core Memories

This book was produced in EPUB format by the Internet Archive.

The book pages were scanned and converted to EPUB format automatically. This process relies on optical character recognition, and is somewhat susceptible to errors. The book may not offer the correct reading sequence, and there may be weird characters, non-words, and incorrect guesses at structure. Some page numbers and headers or footers may remain from the scanned page. The process which identifies images might have found stray marks on the page which are not actually images from the book. The hidden page numbering which may be available to your ereader corresponds to the numbered pages in the print edition, but is not an exact match; page numbers will increment at the same rate as the corresponding print edition, but we may have started numbering before the print book's visible page numbers. The Internet Archive is working to improve the scanning process and resulting books, but in the meantime, we hope that this book will be useful to you.

The Internet Archive was founded in 1996 to build an Internet library and to promote universal access to all knowledge. The Archive's purposes include offering permanent access for researchers, historians, scholars, people with disabilities, and the general public to historical collections that exist in digital format. The Internet Archive includes texts, audio, moving images, and software as well as archived web pages, and provides specialized services for information access for the blind and other persons with disabilities.

Created with abbyy2epub (v.1.7.0)

SUPPLIES THE MISSING LINKAC-30 CASSETTE INTERFACE

Been looking for a practical way to inputand dump programs to your computer?Well your search is over.

With our new AC-30 Cassette Interface youwill be able to store and input programdata to any computer system having RS-232 serial interfaces and a UART circuithaving an accessible 16X clock frequency.Data format is the "Kansas City" standardwhich was selected for its tolerance ofspeed variations in the recording device.The AC-30 may be used with any cassetterecorder of reasonable quality.

If both your computer and terminal haveaccessible 16X UART clocks and will oper-ate at 300 baud—as do our 6800 computerand CT-1024 terminal system—the AC-30may be used between the terminal's serialinterface and the computers control inter-face. This eliminates the need for a separateinterface to drive the cassette unit. It alsoallows you to use the computer system'stape load and dump routines built intoMikbug® or similar ROM software.

for two audio cassette recorders (not in-cluded in the kit). One recorder's tape maybe read while the second is recording a newupdated tape;making it possibleto generatenew program tapes, data tapes and to createprogram object tapes while reading andassembling program source tapes. The oper-ating mode for each recorder is selected byswitches on the front panel and LED indi-cators show the mode that is selected atany particular time. Computer controlledrecord, play and motor control commandsmay be used with this system if they areavailable from the terminal being used. Thisfeature is available on our CT-1024 terminalif the CT-CA cursor control card is installed.

The AC-30 is housed in a 12%" x 3" x 121/2"aluminum chassis. It is powered by a selfcontained 115/230 Volt AC 50-60 Hzpower supply. Data is FSK format using1200 Hz and 2400 Hz at a 300 baud datarate. Recorder speed tolerance need beonly ±20%.

©Trademark Motorola

Independent control circuits are provided AC-30 Cassette Interface Kit $79.50 ppd

Southwest Technical Products Corporation

219 W. Rhapsody

San Antonio, Texas 78216

How to useyour computer

with

analog signals

JOYSTICKS

PRESSURE TRANSDUCERS

GAMES

MODEMS

PROCESS CONTROL DEVICES

AMPLIFIERS

TEMPERATURE DEVICES

LIGHT SENSORS

INSTRUMENTS /

GAUGES

SCALES

HYDRAULIC SYSTEMS

SECURITY DEVICES

MAGNETIC TAPES

FREQUENCY SENSORS

PRODUCTION LINE DEVICES

INERTIAL DEVICES

COMPUTEROUTPUTPORTS

OSCILLOSCOPES

RECORDERS

DATA TERMINALS

METERS

FANS

PRINTERS

MOTORS

PLOTTERS

VISUAL MONITORS

CONTROL DEVICES

INSTRUMENTS

HEATERS

MODEMS

RECEIVERS

VALVES

ALARMS

ROBOTS

FILTERS

DIGITALOUTPUT

Now you have a way to get analoginformation into and out of your micro-computer. It's an easy, fast, and unbe-lievably inexpensive way.

It's Cromemco's new D+7A™ high-performance I/O module which givesyou:

• 7 channels of 8-bit analog-to-digitalconversion (to input analog data tothe computer)

• 7 channels of digital-to-analog con-version (to output computer datain analog form)

• an 8-bit parallel I/O port to inputand output data in digital form.

• a fast conversion time of 5 micro-seconds.

A MULTITUDE OF USES

The D+7A makes it easy to use yourcomputer for the jobs you want it todo—such as process control, digitalfiltering, games, oscilloscope graphics,speech recognition, speech and musicsynthesis.

The D+7A lets you input and outputanalog data with all sorts of devices:joysticks, ham radio gear, measurementinstruments, machine tools, transducers,control systems, motors, recorders, andplotters, to name just a few.

NO FURTHER SOFTWARE NEEDED

The D+7A I/O plugs directly into theAltair 8800 or IMSAI 8080 microcom-puters. Analog signal range is from -2.56to +2.56 volts (20-millivolt increments)on both input and output sides.

Simple "Input" and "Output" in-structions initiate A/D conversion andread in or out the ensuing 8 bits of data.No further software is required. Duringconversion the D+7A holds down thecomputer "Ready" line.

Addresses of the input and outputports are jumper-wire selectable inblocks of 8. Sample-and-hold circuitryis used to "latch" the analog outputs.

LOW-PRICED

The low price of the D+7A is a result

of Cromemco's design leadership. TheD+7A and all Cromemco peripheralsare of advanced computer-grade quality.The D+7A is solder-masked and printedwith full legend for easy, error-freeassembly.

AT COMPUTER STORES/MAIL

You can get the D+7A at computerstores in either kit or assembled form.

Or order directly by mail from Cro-memco. Delivery is from stock to 30days. The D+7A is certain to be popularso order now.

D+7A™ I/O kit $145

D+7A™ I/O assembled $245

Each D+7A includes a connector to con-nect to the 8 input and 8 output ports.

Shipped prepaid if fully paid with order.

California users add 6% sales tax.

Mastercharge and BankAmericard acceptedwith signed order. Please include cardnumber and expiration date.

a CromemcoSpecialists in computer peripheralsOne First St., Los Altos, CA 94022 • (415) 941-2967

page 6

We commissioned Robert Tinney todo an oil painting for the Bicentennialcover of BYTE. The theme is ahumorous anachronism in several re-spects. The obvious anachronism is the18th century philosopher and patriotsitting at a very 20th century hardcopy terminal, holding a referencevolume, America's first best seller. It isnot clear how the quill pen and inkoutput mechanism of the hard copyterminal works. There are moreanachronisms in the picture, whichwe'll leave to BYTE readers to pointout A full-size poster of the originalpainting in color is available fromBYTE (see page 96).

In This EITE

page 58

Robert Suding asks "Why Wait?" ina rhetorical fashion, and proceeds todemonstrate his schematic of a fastcassette interface which uses softwareand a one bit 10 port to implement anaudio cassette system.

Have you ever looked through thesurplus catalogs and wonderedwhether those memory core planesand stacks advertised could be used foranything other than tea strainers? Fortheory and practical information onCoincident Current Ferrite CoreMemories turn to James R Jones'article.

Bruce A Anderson describes hisexperiences Assembling a Sphere in hisreview of what rolled out of theproduction facilities in Bountiful UTlast fall.

One of the most important ques-tions people ask is "how do I learnabout what a computer does?" Oneway to help out friends who are tryingto get into the swing of things withprogramming is to implement a versionof Charles Howerton's Educator-8080program so that they can interactivelyExplore an 8080 with Educator-8080.

A thorough explanation of theinstruction set should accompany anyproduct intended for wide distribu-tion. An example of such an explana-tion is provided by Nat Wadsworth's

Machine Language Programming forthe "8008" and Similar Microcompu-ters, a manual which is sold by ScelbiComputer Consulting Inc. In this issueis the first of three direct reprints fromthat manual: Chapter 1 which de-scribes the 8008 instruction set.

One of the problems of interfacingunknown electronics is figuring outhow to accomplish the match. KenBarbier built a character generator,went out and bought a TV set, thenfaced the problem of building a driverfor the TV. The result was The"Ignorance is Bliss" Television DriveCircuit.

While not really promising the en-tire big blue sky, when you Put the"Do Everything" Chip in your NextDesign you'll end up with a computerthat has five separate programmablereal time clocks, standard serial com-munications data rates from 110 baudto 9600 baud, automatic generation ofan 8080's RST n interrupt vectors, an8 bit parallel output and an 8 bitparallel input port. Turn to RobertBaker's latest article to find out aboutthis nifty chip.

What's it like to be isolated frombountiful US surplus markets? In asense, it means a relative isolationfrom modern LSI products, as DrMichael N Hayes reports on hisexperiences in Tokyo and Manila inDecember 1975. Read his report onSurplus Electronics in Tokyo andManila in this issue.

There are many ways to wire acircuit. The most common manufac-turing method is printed wiring. Butyou can also Make Your Own PrintedCircuits at home, using techniquesdescribed by James Hogenson in hisarticle.

One of the most interesting applica-tions of computers is in the area ofgraphic outputs. Using a vector CRTor a plotter, drawing pictures ofmathematically generated abstractionsor simple cartoons can be thebeginning of hours of fun. But A PlotIs Incomplete Without Characters soRichard J Lerseth concocted somesoftware described in his article on thegeneration of an ASCII character set(or special characters) for a plotter orvector display device.

In the Queue

eite #

JULY 1976

6223846

183040545864

Foreground

COINCIDENT CURRENT FERRITE CORE MEMORIES

Recycling — JonesEXPLORE AN 8080 WITH EDUCATOR-8080

Software — HowertonTHE "IGNORANCE IS BLISS" TV DRIVE CIRCUIT

Hardware — BarbierWHY WAIT? BUILD A FAST CASSETTE INTERFACE

Hardware — Suding

Background

ASSEMBLING A SPHERE

Review — AndersonMACHINE LANGUAGE PROGRAMMING FOR THE "8008"-Chapter 1

Software — WadsworthPUT THE "DO EVERYTHING" CHIP IN YOUR NEXT DESIGN

Hardware — BakerSURPLUS ELECTRONICS IN TOKYO AND MANILA

Travelogue — HayesMAKE YOUR OWN PRINTED CIRCUITS

Hardware — HogensonA PLOT IS INCOMPLETE WITHOUT CHARACTERS

Software — Lerseth

Nucleus

2

In This BYTE

4

The Trend Toward Hassle Free Products

39

Tool Box

44,

79

BYTE's Bits

74

Good Grief!

76,

102

What's New?

81

Software Bug of the Month 2

83

What Happened at Trenton

86

Clubs, Newsletters

90

Letters

95

Ask BYTE

96

Reader's Service

98

Classified Ads

100

BYTE's Bugs

104

Book Reviews

112

BOMB

PUBLISHERS

Virginia PeschkeManfred PeschkeEDITOR

Carl T Helmers, JrGENERAL MANAGERManfred PeschkePRODUCTION MANAGERJudith Havey

PRODUCTION ASSISTANTElizabeth AlpaughCIRCULATIONDeborah R LuhrsDEALER CIRCULATIONDeena Zealy

PUBLISHERS ASSISTANTS

Cheryl HurdCarol Nyland

ADVERTISING

Elizabeth Alpaugh

Virginia Peschke

TYPOGRAPHY

Custom Marketing Resources, Inc

Goodway Graphics

Mary Lavoie

Taimi Woodward

PHOTOGRAPHY

Ed Crabtree

Custom Marketing Resources, Inc

ART

Mary Jane Frohlich

Bill Morello

PRINTING

Custom Marketing Resources, Inc

The George Banta Comdany

ASSOCIATES

Bob Baker

Dan Fylstra

Don Lancaster

Harold A Mauch

Chris Ryland

CONTEST EDITOR

Janice D Black

BYTE magazine is publishedmonthly by BYTE Publica-tions, Inc., 70 Main St, Peter-borough, New Hampshire03458. Subscription rates are$12 for one year worldwide.Two years, $22. Three years,$30. Second class postage paidat Peterborough New Hamp-shire 03458 and at additionalmailing offices. Phone603-924-7217. Entire contentscopyright 1976 BYTE Publica-tions, Inc, Peterborough NH03458. Address editorial cor-respondence to Editor, BYTE,70 Main St, Peterborough NH03458.

The Trend Toward Hassle Free Products

Editorial by Carl Helmers

Articles Policy

BYTE is continually seek-ing quality manuscripts writ-ten by individuals who areapplying personal systems, orwho have knowledge whichwill prove useful to our read-ers. Manuscripts should havedouble spaced typewrittentexts with wide margins. Num-bering sequences should bemaintained separately for fig-ures, tables, photos and list-ings. Figures and tables shouldbe provided on separate sheetsof paper. Photos of technicalsubjects should be taken withuniform lighting, sharp focusand should be supplied in theform of clear glossy black andwhite prints (if you do nothave access to quality photog-raphy, items to be photo-graphed can be shipped to usin many cases). Computer list-ings should be supplied usingthe darkest ribbons possibleon new (not recycled) blankwhite computer forms or bondpaper. Where possible, wewould like authors to supply ashort statement about theirbackground and experience.

Articles which are acceptedare typically acknowledgedwith a binder check 4 to 8weeks after receipt. Honorari-ums for articles are basedupon the technical quality andsuitability for BYTE's reader-ship and are typically $15 to$30 per typeset magazinepage. We recommend that au-thors record their name andaddress information redun-dantly on materials submitted,and that a return envelopewith postage be supplied inthe event the article is notaccepted. "

One item which backyard entrepeneurstend to overlook is the fact that the hard-ware and software engineering of computersystems which are both manufacturable andmarketable is a complex process. I had ataste of the problems of working out thedetails of a system about the time BYTEbecame a much more compelling personalproject in mid 1975. I quickly dropped anyillusions of converting the designs I wasworking upon at that time into a manu-factured product when BYTE with its ownintricate and unique challenges came intobeing. But the period of time spent thinkingabout the problem of engineering a salablecombination of hardware and softwareleaves an impression.

There are a myriad of details which mustconverge into a well defined, usable productfor personal computing applications. Thesedetails are handled naturally and implicitlywhen the advanced amateur or full timeengineer assembles a "one of a kind" systemas a personal vehicle or engineering test bed.But documenting the critical parameters,converting a one of a kind electronic systeminto a mass produced design, providing thelevel of support needed and expected bycustomers — these are not trivial tasks at all.One of the wonders of the field to this dateis that the complicated objects of ourcomputer affections are as free of design andassembly hassles as they are at the presenttime. Simply look at all the system designprinciples which have been properly imple-mented and provided in existing products,and for the moment ignore the obviousresidual improvements that would make acomplicated product "more perfect" bysome standard.

But technology almost by definition isnot static. One of the significant indicationsof personal computing's ever improving

technology is the trend toward minimizinghassles involved in getting a productionmodel computer system up and running.This trend affects both existing product linesand new products which will shortly cometo market.

• Item: In talks with the MITS people atthe recent World Altair ComputerConvention, one point which wasmade is that an increasing number ofcustomers order assembled and testedAltairs. This delivery of assembledunits, both direct from the factory andthrough computer stores, significantlyreduces the time and hassle overheadof getting a system up and running.

• Item: In a recent visit to Sphere, thesame story was heard: While initiallythe kit orders predominated, a growingnumber of purchasers are opting forassembled systems.

• Item: A new firm (let it be known as"brand A" for now) recently con-tacted BYTE with a report on itsproduct, the inspiration for this com-mentary. The product's significance isthat it comes in one and only oneform: a completely tested board ofmoderate size which needs only apower supply, monitor with EIA videoinput, keyboard with parallel TTLinterface and audio cassette recorderto complete the system. The price ofthe board is well under $1000 and aBASIC software package is thrown inas part of the deal. The memorycapacity of this 6502 based systemwas quoted as 8 K, with an option toreplace the 4 K dynamic memorychips with pin compatible 16 K chips

Continued on page 110

IIIII1I I •

BYTES ON-LINE!

The Digital Group Cassette Storage System

The Digital Group Cassette Storage System gives you totalmagnetic tape data storage and retrieval for your micropro-cessor, capable of operating 1 to 4 computer-controlled Phi-Deck cassette transports. Within seconds (20 at most), yoursystem zips to any of over one-quarter million 8-bit bytesper drive. And that really puts it all on-line!The Digital Group Cassette Storage System is ideal for:

• Large data files — names, accounts, etc.

• Indexed computer-controlled program files

• Sorts

• Inexpensive mass storage

• Work files

• Indexed random retrieval

• Multi-pass compilers

• System residence

In addition, with a Digital Group System and a Phi-Decktransport, your total load procedure is reduced to a singleaction - turning on power. Everything else is automatic!Your Digital Group System is completely ready for use in avery few seconds. And you avoid a large investment insingle-use PROM memory.

MAJOR STORAGE SYSTEM COMPONENTS

1. Controlling and Formatting Interface - single cardfor 1 to 4 drives

2. Software Operating System

3. Computer-controlled Cassette Drive(s)

Selected Specifications

Data Rate: 800 bytes per second, 8K loads in 10 secondsMedia: High-quality standard audio cassettesSearch Speed : 1 00 inches per secondTape Speed: 5 inches per second

Power Requirements: +12V to +20V at .7A peak and +5V

at 1A plus 60ma per drivePort Requirements: One 8-bit parallel input port plus two

8-bit parallel output portsCassette Drive is an enhanced Phi-Deck with a digital head,

cast head bar, stronger capstan, and four-foot cabling.

SOFTWARE OPERATING SYSTEM

8080 based - 650 bytes

Error Detection: CRC

Retries after soft errors

Automatically bypasses hard errors

Block size = 1 to 256 bytes or multiple of 256 bytes

Functions supplied:

O Record multiple blocks

o Record 1 block

o Read 1 block

OCRC check

O Fast reverse

O Fast forward

o Search for block

For more information, drop us a line or call . . . but by allmeans, get on our mailing list.

Prices: Interface - full kit PHI-F $135 ppd

Each Drive - assem. PH 1-1 $115 ppd

THE DIGITAL GROUP INC

RQ BOX 6528DENVER, CO 80206(303)861-1686

WIRE

Figure 1: For a wire carry-ing current i directed outof the page, the magneticfield H is proportional toi/r. The direction of H istangential to the circle ofradius r, as shown forpoints Pi, P2 and P3.

Coincident CurrentFerrite Core Memories

James R Jones111 E JeffersonColorado Springs CO 80907

Have you ever looked through the surpluscatalogs and wondered whether those mem-ory core planes and stacks advertised couldbe used for anything other than tea strain-ers? How are they supposed to work, andwhat kind of circuitry is required? Couldyou troubleshoot and repair that surpluscore memory and drive electronics? Whatgood is a core stack without data? Is it aworthwhile project to build a memory sys-tem around a core stack?

Some of these questions can be answereddirectly in what follows. Others can beanswered at least partially in terms of myown experience: getting one surplus corestack to work as the main memory of myhome brew computer by building the neces-sary electronics without the benefit ofmanufacturer's data.

Perhaps the biggest advantage of the corememory over other types of random accessmemories is its ability to retain stored datawhen power is removed, and to have itreadily available when power is restored.This feature is sometimes used by minicom-puter manufacturers to ship their productswith preloaded systems software. Also, forsome forms of core memory, the storagecapacity increases much faster than theamount of driving electronics. In order tounderstand the functional requirements andthe operating restrictions placed on core

memory driving circuitry, it is necessary totake a close look at how cores work, andhow they are typically organized to formlarge capacity stacks.

Magnetic Fields and Hysteresis

The memory storage element is the ferritecore itself. Its function is to accept, store,and read out a bit of information. It can dothis by virtue of its ferromagnetic properties.These allow it to be easily, but strongly,magnetized in a preferred direction by anexternally applied magnetic field to signify a1 bit value, to be easily magnetized inanother direction to signify a 0 bit value,and to retain its magnetic direction when theexternal field is removed. Physically the coreis a small doughnut shaped object made ofpressed, heat treated, non-conductive, ironoxide powder. A typical dimension is 0.02to 0.2 inches in diameter (0.5 to 5 mm). Theexternal magnetic fields are applied to thecore by means of wires passing through itcarrying controlled amounts of current.

A straight wire carrying a current givesrise to a vector field, H, in the surroundingspace, called the magnetic field strength. H isproportional to the current i, and is a vectordirected as shown in figure 1. The arrowsindicate the directions the north end of acompass needle would point if placed at thepoints shown. Another vector quantity, the

6

Figure 2: The direction ofmagnetic induction B inthe core results from align-ment of core structureswith the magnetic fielddue to current i.

magnetic field of induction, B, is also con-sidered to exist, and describes the overallmagnetic effects due to H and the presenceof matter. In figure 1, B behaves like H. Ifthe wire passes through a ferrite core, the Hfield generated by the wire causes molecularand microscopic sized magnetic domains(regions magnetized like the compass needle)in the core to align themselves in thedirection of H, resulting in a B field in thecore with direction around the circum-ference of the core as shown in figure 2. Thisfield is much stronger than that due to thewire alone, because the structures in the coreadd their fields to the wire field whenaligned.

Because of the geometry of the coreswith respect to the wire, it is possible for usto drop the vector notation and simply referto the magnitude of B and H in thediscussion which follows. The exact way thestrength of B in the core depends on thestrength of applied field H (proportional tocurrent i) is represented graphically in thescalar B versus H curve of figure 3. Aftermanufacture, the core has no magnetization,and B = 0. If applied field H is increasedfrom 0 to Hp, B increases along path 0-l-c-e.,If H decreases to 0, B decreases from e to b,leaving the core magnetized with no appliedfield present. Decreasing H from 0 to Hmcauses B to move along b-a-g-f, changingdirection as it passes through 0. As Hincreases to 0, B moves to h, again leavingthe core magnetized with no applied field,but in a direction opposite that above. As Hincreases again from 0 to Hp, B moves alongh-j-d-e. If H is again varied as describedabove, B will trace the same counter-clockwise path.

This effect of tracing two alternate pathsbetween two fixed states, instead of tracinga single path, is called hysteresis. In the core,

Figure 3: Memory properties are derived from the hysteresis properties of thecore material. When the applied H value is 0, the residual B value in the corematerial will depend upon the past history of magnetization. This figure andsubsequent figures show the magnitude of the vector quantities H and B, withpositive and negative values corresponding to the two directions of rotationabout the core axis.

SENSE tlIRE

INITIAL ft FINALB DIRECTION

■ TIME

F

APPLIEDCURRENT

SENSEVOLTAGE

0. NON-SWITCHING CORE (INITIAL STATEb IN FIGURE 3 )

b. SWITCHING CORE (INITIAL STATE hIN FIGURE 3 )

this is due to the alignment of the magneticdomains, a process which requires a mini-mum applied field to force alignment in agiven direction. When the applied field isremoved, the aligned structures provide thecore with its own field. Path segments a to gand j to d, where this effect occurs, aretermed irreversible. Reversible magnetic ef-fects also occur in the core. For example, ifB is at position h, H can be varied to move Bback and forth along line f-j as many timesas desired as long as B is not increased pastpoint j. Variations along line a-e are alsoreversible to point a. This effect is due toelastic deformation of the microscopic struc-tures and alignment of molecular structures,both of which return to normal when theapplied field is removed. Both effects areimportant: Hysteresis is the memory pro-

Figure 4: Sense voltages perceived on a wirestrung through the core depend upon theprevious B magnetization state in the core asa current pulse is passed through the wire. Anon-switching core produces a simple tran-sient due to reversible B field changesinduced In the core by the current edges asat (a). When the core switches as at (b), anextra transient pulse is induced in the sensewire.

perty; reversibility, although the largestnoise contributor in the core, allows the coreto act as an AND gate, a key principle inselection of individual bits.

Sensing Core Magnetism Changes

Changes in the core B field are sensed bymeans of a second wire passed through thecore. The voltage difference appearing at theends of the sense wire is proportional to thechange in B, and inversely proportional tothe time required for the change. So that anirreversible change can produce a largesignal, H is made to change as fast aspossible. However, this causes the reversiblechanges to produce large signals also; but thespeed tends to separate the signals: Deforma-tion effects can occur much more rapidlythan gross microscopic realignments, eg: fora fast increase of H from 0 to Hp in figure 3,B would not follow h-j-d-e, but rather h-j-s-e,so most reversible changes occur first. Figure4 illustrates the voltages appearing across thesense wire for a core in initial state b, and ininitial state h, resulting from a fast risingcurrent pulse generating field Hp.

Using the Core to Remember

If we now interpret the initial directionof B in the cores to represent a stored 0

READ A "0"

READ A "I"

WRITE A "0"

WRITE A "I"

INITIAL B STATE

FINAL B STATE

SENSE V

Figure 5: Using thephysics of core switching.This figure shows the fourbasic operations needed tomanipulate the binarystate of a memory core:Read a "0", read a "1",write a "0" and write a"7".

CURRENT i

SENSE V

K1

XT

NO SWITCHOCCURS

I/2--

SWITCHOCCURS

TIME

NO SWITCHOCCURS

THRESHOLD

HYSTERESISCURVE

Figure 6: How hysteresis makes coincident current bit selection possible. The principle involvedis simple: A current of I is sufficient to generate an H field strength which will drive the corefrom one state to the opposite state, but a current of i/2 is insufficient to cause the core tocross the threshold of the hysteresis curve. The H field of two separate wires add so that if twowires carry currents of i/2 In the same direction, the result is the same as a single wire carrying acurrent of I. The hysteresis curve at the right (d) shows the paths taken by the B field in thecase of a single i/2 current (a), additive ij2 currents forcing a change (b), and additive i/2currents causing no change since the core is a/ready in a state aligned with the H field (c).

(figure 4a) or a stored 1 (figure 4b), and readthe core contents by the method of figure 4,then read and write operations can beperformed as indicated in figure 5. Twothings should be noted: First, a stored 1 isdestroyed in the process of reading it be-cause the core is reset to the 0 state. If it isnecessary to retain the 1 in memory for lateruse, a special refresh write operation isrequired to restore the 1. Second, the casesof writing into a core already containing a 1are not shown, because the memory controllogic is usually designed such that a destruc-tive read cycle always occurs before thewrite cycle, for a given core.

Memories Larger Than One Bit

Using the method of figure 5 can be anexpensive undertaking if one wants to store4096 bits, for instance. Although the senseline can be made to pass through all thecores to detect switching of a selected core,circuitry must be built which can select anyone of 4096 cores and supply the properread or write current to it alone. To reducethe amount of selection circuitry required

Figure 7: The concept of a coincident current selection is implemented usingan array of cores with X and Y lines. In this example, a total of 20 cores iswired with a single sense wire, 4 Y selection wires and 5 X selection wires.When i/2 (see figure 6) is flowing through one X and one Y line, the matrixintersection point is addressed. In this example, the core at (2,3) will eitherbe read or written. Actual core arrays are much larger than this simpleconceptual illustration.

for large memories, the cores' reversibilityproperty is used to assist in the selectionprocess. This is done by passing two inde-pendently controlled current lines instead ofjust one through a given core; each line canpass half the current of the original line. Dueto the shape of the B versus H curve, if onlyone line passes half the required switchingcurrent required, B remains in the reversibleregion and returns to the original state(figure 6a) when the current is removed. Ifboth lines pass current, core switchingoccurs if the core is in the proper originalstate (figure 6b and c).

Coincidence Current Selection

Thus by the means of coincident cur-rents, the core acts as an AND gate; bothcurrents need to be present simultaneously

Figure 8: The half-select current i/2 must generate an H field less than Hk if achange of state is to be avoided. Similarly, the full select current of i mustgenerate an H field strength greater than Hs to ensure switching. This leaves arange of field strengths (and corresponding current values) from Hs/2 to Hkwhich introduces a critical tolerance for the select currents in a core memorydesign.

to choose the core and allow it to switch if itis in the proper state. A multiple bit memorycan now be constructed as shown in figure 7.If currents are applied to lines X2 and Y3,the core at (2,3) is selected. Other cores onthe lines X2 and Y3 are half selected. Onlyone pair of lines is allowed to carry currentat any one time. To read the core contentsat (2,3), current is passed as indicated. To

^QMdII1 ^

Figure 9: The inhibit lineis added to the array as-sembly of cores so that itis possible to avoidchanging the state of agiven core with coincidentcurrent selection.

X SELECT CURRENT

now write a 1, the current is reversed; towrite a 0, no current is applied.

Property and Operation Restrictions

Arrangement of cores in the coincidencecurrent mode imposes some rather severerequirements on core fabrication and mem-ory operating conditions. For a core in Bstate x in figure 8, the half select currentmust generate a field less than Hk to preventB from passing the "knee" of the curve. Butthe total select current must generate afieldgreater than Hs to ensure full switching ofthe core. Thus the half select current canonly produce fields in the range shown bythe heavy line. As the quantity (Hs — Hk)gets smaller, the operating range gets larger.So the cores are made with (Hs —Hk) assmall as possible, but even if it were zero,the half select current would have a maxi-mum tolerance of 33% of its midrange value.The operating range is further restricted bytwo more factors. First, manufacturing andassembly tolerances allow memories to beconstructed of cores with slightly differing Bversus H curves, effectively increasing thedifference (Hs — Hk) as all cores are con-sidered. Second, as the memory is operated,the cores heat up due to switching losses,select line heat, and heat from nearbyelectronics, causing the entire B versus Hcurve to shrink towards the origin. Newercore memories are made using ferrite withlow temperature sensitivity; but this is nottrue of older memories, and such measuresas constant temperature ovens, forced aircooling, and power supply temperature com-pensation have been used to ensure reliableoperation.

Reading and Writing Words: The 3D Memory

The coincidence current scheme certainlycuts down the required selection circuitry,although at the expense of operating toler-ances. The 20 cores of figure 7 are selectedby nine lines, and the 4096 bit memorymentioned earlier, if arranged in a 64 X 64array, has only 128 select lines. Furthereconomy is realized if the idea is expandedto word organized memories. For example,consider the 16 bit array of figure 9 whichhas an added winding —the inhibit line (thearrows on the select lines indicate the readcurrent directions). If a 16 word memory of3 bits per word is desired, three of these bitplanes are interconnected as shown in figure10.

Sending half select currents through X1and Y1 select lines in the arrow directionswill cause the core at (1,1) in each array toread out via the associated array sense line.Reversing the select current directions will

10

SENSE 3

INHIBIT I

X SELECT

Figure 10: 3D Plane Interconnections. In a 3D memory, three dimensions of addressing areimplicit: There is an X and Y dimension for each plane, and one plane is used for each bit ofthe parallel computer word. In this picture, three planes of a 3 bit wide memory are shown.Only two lines are shown connected in each X and Y direction. Other X and Y lines areconnected between planes in a similar fashion.

cause a 1 to be written in each (1,1)position. In order to write a 0 in some ofthe (1,1) positions, a half select current isalso applied to the desired inhibit lines in thedirection of the arrows at the time 1 's are tobe written. This inhibit current appears asread half select current at all cores of theassociated array, cancelling half the writeselect current at the selected core, and thuspreventing the writing of a 1 at that core.

For a 4 K word memory of 16 bit words,the assembly (called a stack since the arraysare often stacked like pancakes for simpleinterconnection along the edges) would have128 select lines, 16 sense lines, and 16inhibit lines. The connection scheme istermed 3D, and is most economical in termsof support circuitry.

Other Arrangements

Bit oriented memories of'the form offigure 7 are called 2D memories. Anothercommonly used word oriented connectionscheme, 2J4D, will not be discussed becauseof the relatively large amount of selectcircuitry used. Interested readers are referredto the bibliography at the end of this article.A variation of the 3D memory replaces theinhibit and sense lines by a single line whichperforms both functions, since they occur atseparate times. At the cost of additionalcircuit complexity, the variation allowssmaller cores and more closely packed arraysto be used.

Minimizing the Noise

A core can be oriented two ways at aselect line intersection, and sense and inhibit

lines can string the cores of a plane in manypatterns. Advantage is taken of these facts tominimize noise from sources which couldotherwise mask the sense line signal due tocore switching. Major noise contributors arepulses from half selected cores (path a infigure 6d). Although small for a single core,the composite signal due to 126 half selectedcores in a 4 K array will spread and totallymask a switching signal. A diagonal patternthat results in almost complete cancellationof half select pulses is shown in figure 11a.Noise is also generated through capacitivecoupling between select and sense lines,allowing select current edges to induceringing in the sense line. This effect can beminimized by running the sense line parallelto one select line direction as shown infigure 11b. The parallel select line is turnedon first, a large noise pulse is induced whichdies down, then the other line is turned onto select the core. Little noise is nowgenerated because capacitive coupling issmall.

There are other lesser noise effects whichmake the 4096 core array about the largestto be practically served by a single sense line.Larger stack word capacities are realized byusing multiple sense lines on each plane, thusrequiring additional sense circuitry.

Driving the 3D Memory

The half select current tolerances men-tioned in connection with figure 8 arefurther reduced to less than 20% per line bythe addition of the inhibit line. Unfor-tunately, the amplitude of the core switchsignal depends on the total select current

11

a.DIAGONAL SENSE

Figure 71: Noise pickup isminimized by threadingthe sense line through thecore array in a way whichcauses induced noisevoltages to cancel eachother.

b. RECTANGULAR SENSE

present, so the select current must bemaintained at the higher allowed values toobtain a favorable signal to noise ratio onthe sense line. This reduces current toler-ances to around 5% to 10%. Depending onthe type of cores used, half select currentsare in the range of 150 to 500 mA. Current

I-VS125V

i READ(I WRITEOPPOSITE)

Figure 12: Select Line Test Driver. For testing, build two of these with oneused to drive an arbitrary X select line, one used to drive an arbitrary Y selectline. Rl is a current limiting resistor selected as described in the text.

rise time of the last select line turned on (toread) should be about half the core designtime for a 1 peak (figure 4b) to occur, whichranges from 100 nanoseconds to about amicrosecond for older large diameter cores.Current should last for at least twice thepeaking time to allow the core to switchcompletely.

Getting a Memory to Work(Starting from Scratch)

My surplus Spectra 70 stack (built byElectronic Memories, Inc ) arrived with noinformation except that its organization was128 x 136 words x 18 bits with four senseline groups of 64 x 68 words. Of that Iintended to initially use a 64 x 64 word x 16bit segment. Not being able to obtain manu-facturer's data, I proceeded to discover thestack characteristics for myself. For readersin similar situations, I would recommendsuch a course of action only if you have lotsof spare time, like surprises, and have accessto a 15 MHz dual trace scope.

The physical dimensions of the stackwere 5 by 5 by 3 inches (12.7 by 12.7 by7.6 cm) not counting connectors. Tamperproof, auto destruct construction precludeda view of cores or windings. X and Y lineswere labelled; an ohmmeter was used toassociate sense and inhibit connector pins tocore planes. Memory construction suggestedthe rectangular winding of figure 11b.

Tests

Several test circuits were built to deter-mine core switching characteristics. Figure12 shows the select line driver circuit, two ofwhich are required to drive an X and a Yline. The Texas Instruments Memory CoreDriver integrated circuit (SN75325) is used.The external diodes simulate the steeringdiodes required to select more than one line,and to direct reverse voltages (generated atcurrent turn off time by the inductive loadof the select lines) to the sink transistorcollector which is internally diode clampedto source voltage Vs. Vs is regulated andvariable over about a 5 volts range, and R1 ischosen for the current range to be tried.Figure 13 shows the inhibit driver circuit.The dual gates of the integrated circuit areconnected in parallel to increase the currentsinking capacity. Again the output must bediode clamped, and R2 is chosen as required.Figure 14a shows the sense amplifier withterminating resistors and means for varyingthe threshold voltage. The sense amplifieroperates by generating an internal voltageproportional to the voltage difference ap-pearing on the sense line wire pair. Thisvoltage is compared with the adjustable

12

threshold reference voltage, and a TTL highlevel output is generated if the threshold isexceeded. Figure 14b illustrates the outputsproduced at two threshold levels for anarbitrary input signal.

Timing signals used are shown in figure15 along with resulting current directions.The logic diagram illustrates a circuit whichcan be used to generate this timing. Theenveloping of X ENABLE and Y ENABLEeliminates part of the half select noise in theread cycle, and ensures that the inhibitcurrent is at maximum level when full writeselection takes place. Repetition rate of thememory cycle during testing is kept under1 kHz to prevent damage to the SN75325s.Changing the mode, WRITE, with bothenable signals low ensures that a glitch willnot short current through a directly con-nected source to sink pair.

Two select line drivers were connected toan arbitrary select line pair, and the senseamplifier was connected to a sense linethought to pass through the X Y intersec-tion. With no signals to the select linedrivers, the sense amplifier threshold voltagewas advanced from zero until SENSE OUTwas a steady logic 0. Starting with a low(about 150 mA) half select current, the linedrivers were started, and, with the senseamplifier output monitored on the oscil-loscope, the threshold voltage was adjustedto show a series of spikes corresponding toselect current edges as shown in figure 16a.As half select currents were increased equal-ly, additional pulses emerged after spikesnumbered 3 and 11, as indicated by thearrows in figure 16a. These pulses indicatedcore switching. Some experimenting wasrequired to obtain proper select currentbalance and strength, which occurs when theswitching pulses completely disappear (andnot just shift) when either half select currentis temporarily interrupted. Too much drivecurrent was also indicated by a decrease insize of the switching pulses with correspon-ding pulses appearing behind spikes number1 and 9.

Choosing inhibit drive resistor R2 toprovide half select current in the rangedetermined necessary above, the inhibit linecorresponding to the sense line used wasfound by driving an inhibit current througheach inhibit line in turn until the switchingpulses were seriously disturbed. Furtheradjustments of the inhibit, X, and Y currentseventually resulted in the switching pulseappearing and disappearing as the inhibitcurrent is turned off and on. In my memorystack, about 380 to 400 mA half selectcurrent is required to cause the core toswitch, producing a sense amplifier output

+ Vs<25V

.. ' ccco

7408

_Y ENABLE

:4°crr

[SN75452

* ,, OPEN TO "7

S WRITE A "O"

1

INHIBIT LINE.CURRENT< 600mA

cccc

Figure 13: Inhibit LineTest Driver. For testing,one of these circuits isused to pick an inhibitline. R2 is a current limit-ing resistor set as describedin the text of the article.

+ 5VA

s j a j o

( SENSE LINE

V j 0 0 p

21

is Ik

0>^>

4 27KI VW-

sioonj

ooft^ioofl I

I

I

TS

SENSE OUT

NOTE-REFERENCE IS SHAREDBY SECOND SECTION OFIC (NOT SHOWN)

PART OF SN7524

85V

SENSE LINEVOLTAGE(ARBITRARYEXAMPLE)

SENSE OUT ATTHRESHOLD NO. I

SENSE OUT ATTHRESHOLD NO. 2

THRESHOLD NO. I

THRESHOLD NO. 2

] n □ n i—i n

ua

n

Figure 14: Sense Amplifier. The purpose of the sense amplifier is to create anoutput signal which can be strobed into a TTL latch at the appropriatemoment, given the signals induced into the sense wire of the memory. Fortesting, the thresholds are set using the variable resistance of 200 ohms in avoltage divider from the +5 volt supply.

13

pulse sketched in figure 16b. The smallerpulse generated for a 0 is also shown. The 1pulse at the sense line terminals is on theorder of 40 mV amplitude.

An experiment verified the memory has arectangular sense winding parallel to the Yselect lines, requiring the latter to be turnedon first in the read cycle. This was done byswapping the X ENABLE and Y ENABLEsignals, and noting which arrangement pro-

duced the most sense noise at clock time 3

of figure 15.

Selecting the Select Lines

Success in getting the stack to respond toprodding induced me to go ahead withmemory circuit construction. The SN75325swere employed in a commonly used schemeof line selection illustrated in figure 17, inwhich one of four X lines is chosen by foursource to sink pairs, determined by a two bit

Figure 15a:

Y ENABLE

START CYCLE~l KHz DURING TESTING.CONTROLLED BY CPU INSYSTEM OPERATION.

iCLOCK~l MHz DURING TESTING2MHz FOR 8/iS CYCLE TIMEIN SYSTEM OPERATION

POWER

PINS

+ 5V

GND

ICI

74193

16

8

IC2

74154

24

12

IC3

7408

14

7

IC4

7474

14

7

IC5

74 74

14

7

IC6

7474

14

7

IC7

7411

14

7

o Y ENABLE

Figure 15b:

CLOCK-

X ENABLE■

WRITE

INHIBIT

i INH

0 I 2 3 4 5 6 7 8 9 10 11 IS 13 14 IS (0) STATER

I I I

i r

j \_

. TTL LEVELS) TO DRIVERS

CURRENT

CORE STACK WIRES

Figure 15: A suggested circuit (a) and timing wave forms (b) for driving core memories in testing and later in the final workingversion. The cycle time is set by the clock into pin 5 of the counter IC1. A positive transition at pin 11 of IC6 Initiates a singlememory cycle Illustrated in (b). During testing, approximately 1 kHz will provide a good repetition rate which avoids burning updriver circuits; In final system operation, this circuit can also be used to generate the read then write cycle of core memoryoperation. For an 8 ps full cycle time, the clock should be 2 MHz.

14

address (low order bits 0 and 1). X READENABLE equals X ENABLE AND NOTWRITE; X WRITE ENABLE equals X EN-ABLE AND WRITE. By extension of thisscheme (see the Tl catalog listed in thebibliography), 16 source to sink pairs arerequired to select one of 64 X lines. I foundthat a single source resistor (R1 of figure 12)could service all source transistors used toselect X drive lines, which eliminated thenecessity of matching resistor values toprovide the same current flow as differentlines are selected. Two 3 to 8 decoders usesix address bits to enable two source to sinkpairs. The above circuitry is duplicated forthe 64 Y lines, thus a 12 bit address isdecoded into a unique X Y intersection ofthe core matrix. A total of 16 SN75325integrated circuits and 4 decoders are re-quired, along with diode arrays. Three in-dependently regulated and variable supplyvoltages were provided to allow adjustmentof X, Y, and inhibit currents. Inhibit driveresistors (R2 of figure 13) must be closelymatched to allow operation from a commonsupply voltage.

1 I

sense out JLJVa_JVVLJI_A^JWL

CLOCK EDGE(SEE FIGURE 15)

SENSE OUTVOLTS

400 500 600 nSEC'—READ STROBE POINT■ O AT X ENABLE LEADING EDGE

Figure 16: Sense Amplifier Outputs. Spikes will be seen in the sense amplifieroutputs following current changes through the cores. Detection of a "0" or"1" is obtained by observing at the "read strobe point" which follows theleading edge of the X enable pulse. This observation point is typically 400nanoseconds after the leading edge of the X enable pulse which drives one ofthe X select lines.

Memory Operation

Figure 18 illustrates control and dataflow of the memory logic. Read data isstored, by means of the Read Strobe signal,in a buffer where it is used for restoring thememory word in a central processor readoperation. In a central processor write opera-tion, this read information is ignored anddata from the CPU controls the inhibitdrivers during memory writing. Timing is ofthe form of figure 15, except that the

memory cycle (read then write) is accele-rated to 8 microseconds in my system.Inhibit and sense circuits are similar to thoseof figures 13 and 14a.

The arrangement of figure 18 is wastefulof central processor time, because data andaddress information must be held until thememory cycle is completed. Buffering dataand address information in the memory logicwould allow the processor to continue after

Figure 17: X Line SelectSwitch. This arrangementis an extension of thatillustrated for testing pur-poses in figure 12. For75325 pin connections seefigure 12, or page 10-21 ofThe Linear and InterfaceCircuits Data Book for De-sign Engineers by TexasInstruments, 1973 edition.

ENABLE

BITO

XWRITEENABLE

T°^I

-VW———>Vs

Rl

1/275325

X SELECT LINES

1 £^&&&&- }

rti a

1/2 in

75325 ii

-€h9£H5>~

■€h9^9-

-ZhchShSh

15

6 BITS

XSELECTSWITCH

YSELECTSWITCH

MEMORYSTACK

SENSEAMPLIFIERS

READ/WRITEENABLE

READ STROBE

2 BITS

INH. GROUP SELECT

BUFFERREGISTER

16 LINES

4 GROUPS OF

MEMORYTIMING aCONTROL

(EACH INHIBITWINDING IS SPLITINTO 4 SECTIONS)

READ/WRITECOMMAND—MEMORY-

/

WRITE ENABLE/

INHIBITDRIVERS

WRITE/READREFRESH

MULTIPLEXER

DONE [CPU DATA B US AI

MEMORY DATAREGISTER

-CPU-

ADDRESSREGISTER

CPU/MEM CYCLE

CPU DATA BUS B

MULTIPLEXER

Figure 18: System diagram of a memory built according to the principles described in thisarticle. The basic memory cycle is set up by a circuit such as the one shown in figure 15 as asource of timing control. In a read cycle, data is first read, then rewritten; in a write cycle, olddata is read and new data written.

issuing a write command, or to wait for onlyhalf the memory cycle for data needed by aread operation.

The memory is coarsely adjusted byelectronically forcing repeated manual writecycles through the processor's control panel.This allows adjustment of the half select andinhibit currents, sense amplifier thresholds,and read strobe. The read strobe point isadjusted to occur at the point of senseamplifier output that provides best dis-crimination between 0 and 1 levels (seefigure 16b). Short program loops can thenbe used to make finer adjustments.

Conclusion

Recently completed, the 4096 x 16 mem-ory subsystem described here was built forless than $400, including stack, power sup-plies, and miscellaneous electronic andmechanical parts; and can be expanded to16 K for about $200. In most of thememory, storage reliability is good; althougha few blocks of addresses tend to pick uprandom bits. Bugs have been eliminated in astraightforward manner, most having beentraced to poorly made connections to selectlines and to a bad batch of inhibit driverintegrated circuits. Building a memory

around a core stack is an interesting but timeconsuming project that can definitely resultin a usable end product. As with manysurplus items however, performance dependsa lot on how much you can find out aboutthe stack, and on the hardware designconcessions that have to be made in theinterest of financial solvency."

BIBLIOGRAPHY

Fundamental Principles of Switching Circuits and

Systems. New York: American Telephone and

Telegraph Company, 1961.The Integrated Circuits Catalog for Design

Engineers Dallas: Texas Instruments, Inc (First

Edition).Daly, Edmund B: "Noise Problems in Ferrite Core

Coincident Current Memories." Computer

Design (November 1967), 46-50.Hawkins, Joseph K: Circuit Design of Digital

Computers. New York: John Wiley and Sons,

Inc, 1968.

T, and D Johnson: "Design of

Low-Cost Core Memories for SLT

Computer Design (April 1968),

Kirkpatrick,Modular,Systems."60-71.

Smith, James E: "A 650 Nanosecond 2M>D Mem-ory." Computer Design (October 1966), 80-87.

Zinschlag, Howard P: "A 2J4D Integrated CircuitMemory." Computer Design (September 1966),26-39.

16

5CCU3IfOPTW

Introducing SCELBAL,the new microcomputerlanguage that's simplerthan machine language.

A complete language for"8008"/"8080" systemsincluding source listings,routines, flow charts andmore!

SCELBAL. Scientific ELementaryBAsic Language for "8008"/"8080"systems. A complete, illustrated program book. Routines.Techniques. Source Listings. Flow Charts. And more.Took several years to develop. Now yours for many yearsto come. First time that intimate details of higher levellanguage has been offered for such a low price. Only $49!You get 5 Commands: SCR, LIST, RUN, SAVE, LOAD.14 Statements: REM, LET, IF . . . THEN, GOTO, FOR withSTEP, END, INPUT, PRINT, NEXT, GOSUB, RETURN andoptional DIM. 7 Functions: INT, SGN, ABS, SQT-i, RND,CHR, TAB. And, it runs in 8K and more. Here's all thedata needed to customize a high level language for yoursystem ... at a fraction of the cost!

Order your copy today! Get $^ Q

started advancing your system!

ppd.

&!!WA«*WU

Here's SCELBI's First Book ofComputer Games for the 8008/8080.Action-packed. And fun.

Try to beat the computer at its own game.Here's the first complete machine languagecomputer manual for computer games toinclude source listings, flow charts,routines and more. Space Capture — Youagainst the computer using "search anddestroy" strategy to shoot down roamingI alien spaceships in outerspace. Hexpawn, —a mini-chess game that lets the■' computer make mistakes ... but only\ once. Hangman — an updated versionI of the great kid game. Computer selectsj words at random from long, expandablelist. Try to beat it in 8 moves or less.Illustrated. Fun extras to put yourcomputer to challenging, competitive,fun use. _ . ... *t/|95

•rV i

Order yours today!

PPd-

SCELBI's new microcomputerGame Book of Outer Space...

Captain your own crusading starshlpagainst the logic of your "8008" or"8080". You must destroy a randomnumber of alien ships without runningout of stardates, out of fuel, outof ammunition or out of the galaxy.Plan your mission. How much fuel Isused for your warp factor? Don't runinto roaming stars that can damage yourship. Suddenly! Condition Red! Allen Insight! How big is he? Fire a phasor ortorpedo! He's damaged or destroyed.But, you've used valuable fuel. That'sJust the beginning. A new game everytime. Complete program book in machinelanguage for 4K memory, includingsource listings, flow charts, routines, etc.Great intergalactic adventure and fun.

Order "GALAXY" today! 1495 PPd-

G4MXY

"8080"SOFTWARE MANUALS

Three new basic, com-plete "MUST" manuals!"8080" Assembler Pro-gram operates easily in4K bytes of RAM (Includ-ing symbol table). Uniquefeature: How to acceptmnemonics related to"8008" based machineson "8080". Includes allmajor routines, pertinentflow charts, highly com-

mented assembled listingand more. $17.95."8080" Editor Programidentical to "8008"Editor, with machinecodes for "8080". $14.95."8080" Monitor Routinessame functions as "8008"specifically developedto utilize expandedcapabilities Of "8080".$11.95.

MOIM,

so0t

ITQ„

BOlJT"Mes /.'•

1495

PPd.

SAVE $5.35! BUY ALL 3

1195 "pp*FOR ONLY

$39.50!

MACHINE LANGUAGEPROGRAMMING

FOR THE "8008"

(and similar microcomputers)

MB***?

1995PPd.

Here's the detailed,basic manual you need todevelop today's machinelanguage programs. 170pages. Illustrated. Easy-to-read, understand. Mosttechniques applicable toother micro-computers,Including "8080".Floating-point arith-metic package Isworth the pricealonelOrder todayl

Detailed presentation of "8008" codes • Flow ChartsMapping • Floating-point Package • DebuggingBasic programs: loops, counters, masksOrganizing Tables • Editing/AssemblingMath operations • I/O, Real Time ProgrammingMaximizing memories • And lots more.

Master Charge, Postal and Bank Money Orders preferred.Personal checks delay shipping up to 4 weeks. Pricing,specifications, availability subject to change without notice.Prices for U.S. and Canadian delivery at book mailing rate.Add $2.50 for each publication If Priority Air Service (U.S.)desired. Foreign orders add $6.00 for each publication.

fCELBI COMHJ1WCONIULYINO INC.

1322 Rear Boston Post Rd., Milford, CT 06460Telephone: 203/874-1573

Assembling a Sphere

Bruce A Anderson4554 Chinook CtSan Diego CA 92117

Sometime in J uly an advertisement wasbeing run in several magazines which offereda complete computer system for only $650.Up until this time I had been interested inmicroprocessors but had not even remotelyconsidered buying one. I sent off for thebrochure anyway. After reading the claims

Photo 1: The Sphere system features a completely separate power supply. Allregulation is done in the unit shown here, which eliminates the need for onboard regulators and the extra heat dissipation on logic cards.

about the system, I quickly convinced my-self that I could justify the expense as aneducational expense; so I sent off a check toBountiful UT where resides Sphere Corpora-tion, the company making these claims.

I ended up ordering a "SYS2/KIT — Intelligent" which included aMotorola 6800 processor with 4 KB ofprogrammable memory, full keyboard, TVinterface, a cassette interface and what wasprobably the biggest selling point, 1 KB ofEROM which had software for what Spherecalls a "mini assembler," text editor and adebug routine. All this (during the specialintroductory period) for only $750. Clearlya bargain!

By mid August I had received con-firmation of my order and a promiseddelivery date of the second week in October.Part way through this 60 day wait I heard arumor that Sphere had not delivered anysystems and that all the company consistedof was two people in a garage. When thesecond week in October arrived and my kitdidn't, I put in my first call to Utah anddiscovered that it would be about two weekslate because they hadn't been able to get allthe parts from their suppliers on time to putthe kits together. October 30, as promised,brought a box from Sphere which had mostof the electronics (all except the cassetteinterface) but no metalwork; so the next dayI again called, this time to find out about themetalwork and two or three parts whichwere not exactly as specified on the partslist Fortunately all the parts were usablesubstitutions and the metalwork arrived thesame day so I commenced to build.

Sockets are provided for all the expensiveMOS devices, but I decided to use sockets on

18

everything so for the next four days Isoldered in sockets in all my spare time. Iwas soon ready to plug it in except that theinterconnection and power cables had beenback ordered and had not come yet. Soinstead I inspected the boards again, modi-fied a TV for monitor use and waited for aweek until they arrived.

Finally I was ready to try out my system;and sweating profusely, I threw the powerswitch. When no smoke appeared I let out asigh of relief and then began trying to findout why it wasn't doing what I thought itshould be doing.

The television interface seemed to beworking, but all that was showing on thescreen was a set of random characters andnone of the keys would affect anything.Looking at the address lines with a scope, itbecame obvious that the processor was stuckin a loop. One of the things noticeablylacking from the manual was a set ofdebugging procedures for the hardware, soagain I called Utah. In response to thequestion of debugging procedures, I was toldthat it was almost certainly a solder splashon the address lines, although it was possiblythe refresh clock notworking.

Even though I had already checked forsolder splashes at least twice I went back andlooked again just to make sure. When nosplashes turned up and the refresh clockappeared to be working correctly, I triedfinding out what memory locations werebeing addressed in the loop (no simple taskwith only a single trace scope). Finally Ipulled out the address drivers (here is wheremy foresight in using sockets paid off) andmanually input the addresses which were inthe loop to see what was in these locationsin the PROM. Sure enough, with the pro-gram which was in the PROM, once themicroprocessor got to this point (which itwould upon startup), there was no way toget out of the loop.

Armed with what I thought would beconvincing data I again called Sphere andthis time was asked to send in the PROMsalong with a $5 shipping and handlingcharge. Two weeks later the PROMs cameback with the explanation that someonemust have forgotten to plug in a masterwhen one of the PROMs had been pro-grammed. I plugged in the chips again,turned on the power supply and lo andbehold I had a blinking cursor and anotherwise blank screen. Well, an almostblank screen anyway. Several nonblinkingcursor blocks would not clear from thescreen but would only move around. Idecided to ignore these for a while as theyseemed to be only an annoyance andnothing disastrous.

lllj!rmm. "" " /

» h 9 i i~i t i i i o -- i h- i- * -*

ipsa****!*. m««,«HK * *\«,

B F 8 H J K L ! ' - IT .8 »

■ * b ■ m ■ m, ^,m ■ ■ i ■

,1 «. 13

la

.-«

Photo 2: Here are the three main boards of the Sphere system. At the upperleft is the video interface board with 512 bytes of memory used for thedisplay. At upper right is the main processor board with the 6800, 4 KB ofdynamic memory and I KB of EROM. The lower board is the keyboardassembly, which includes a numerical keypad and cursor control keys as wellas a full alphanumeric keyboard.

A short while later I had the editorprogram working as well as the debugprogram for opening and changing the con-tents of memory locations. Unfortunatelythere was little documentation about the"mini assembler" and I could not figure outhow to use this feature based on the originaldocumentation package. So after a few daysof inputting simple programs through thedebug routine, I went back to trying to fixthe TV display.

By this time the problem had become alittle more than annoying. On four of the 16lines of display, several blocks would notclear as noted above, but far worse, if thecursor was placed on any of these lines,more blocks would be created randomly inthe two or three positions following thecursor. On four other lines several characterswould not be displayed as the correctsymbol. By swapping memory ICs, I deter-mined that the problem was in the M6810chips used for character storage in the TVdisplay. Rather than waiting two weeks forreplacements from Sphere, I bought twonew ones from an outside vendor. One ofthese also had a minor defect, so I wasrunning a 50% failure rate on these chips.

I decided to call Sphere and find outabout the "mini assembler." It turned outthis call was unnecessary since a manualupdate covering the "mini assembler" and

19

Photo 3: It works! Here ismy completed Spheresystem in operation driv-ing a small video monitor(not purchased fromSphere). The board inter-connections are made withflat ribbon cables, and thekeyboard is shownmounted in its case.

including a memory map had been mailedthe day before I called. I also asked aboutthe problems with the character memoriesand was told that actually the M6810 wasnot specified to be fast enough for theapplication but that because Motorola gen-erally made the chips better than spec, theyhad decided to use them instead of theslightly more expensive M6810-1 which wasguaranteed to be fast enough. Personally, Iwould have preferred to pay the extra cost(< $5 extra for the four chips according toMotorola price lists) and have a display thatworked the first time.

Finally the manual addition arrived and Icould use the "mini assembler" and couldstart writing programs seriously. Also withthe manual update was a notice about theserial interface board which still had notarrived. Shortly after Sphere started ship-ments, a conference sponsored by BYTE washeld to try to determine some standards forcassette interfaces. Sphere then stoppedshipment of all their cassette boards so theycould redesign the board so it met thestandards which were decided on. Thismeant another wait of about two months,but the eventual cassette interface wouldmeet the provisional industry standards andeven included the option of interfacing totwo cassettes which the original design didnot offer.

Probably the worst fault I found with mySphere system is its lack of documentation.With the manual addition received in Decem-ber, a start was made towards correcting thisfault. For example, assembly instructions

should include some sort of debugging sug-gestions. The manual I received providedlittle if any advice on debugging a nonfunc-tioning system other than: Look for soldersplashes. Solder splashes do occur, but otherfaults (like misprogrammed EROMs) alsooccur and the method of detecting thesefaults should not be left entirely up to thecustomer.

When all things are considered, I thinkSphere has done a very good job in the shorttime the company has been in existence. Thehardware supplied in the kits is generally ofgood quality. In the few cases where thehardware is not up to par, they are workingto improve it and usually will retrofit kitsalready shipped when they do. The problemsand delays I faced should no longer facefuture buyers since the Sphere people arehard at work ironing out bugs and glitches inthe product and its documentation.

The programs in the EROM provide anincredible amount of flexibility, especiallyconsidering that everything is stuffed intoonly 1 KB of memory; and certainly thekeyboard, TV interface and EROM combina-tion make program entry an order of magni-tude simpler than the switch and LED frontpanel method.

Computer systems can get quite complex.I extend my praise to Sphere for getting allthe myriad pieces together in such a shorttime. If a company which has been inbusiness less than a year has no faults greaterthan these, it will quite likely become one ofthe leaders of the industry in a very shortperiod of time."

20

...we disigned our computers for people like youwho are interested in having one, but up 'til nowdidn't have $30 or $40 thousand to put into one. It isall together in one package now, thanks to ad-vanced technology and the good ole american spiritof doing it faster, better, and cheaper than the other

guy.

Because we are a young company (we just celeb-rated our first birthday) we have a lot of that "spirit"and some pretty capable men who came up with acomputer that others are just now beginning tocopy. While copying us is a real compliment, no onehas yet equalled or bettered what we have de-veloped.

We have a Central Processing Unit (CPU) thatcontains the most advanced technology availabletoday. That means to you that the CPU will do what aCPU ought to do. It's reliable, and THAT'S APLEASER.

We have a Serial Interface Module (SIM) that is avery powerful idea in the computer world today. Letme explain. You can have an inexpensive audio cas-sette player/recorder as a mass-memory storagedevice.Understand the power of the SIM board. Forjust pennies you can store vast amounts of Data onan ordinary audio cassette. NOW THAT'S APLEASER Sphere also offers the floppy disc as anoption when time gets to be a premium.

We have a Program Development System (PDS)that is an aid to programming. What an idea! It re-members its job even when the computer is off. Withinstant call-up of the program outline when thepower is turned on. There is an Editor, an Assem-bler, and a Debugger to help you do your program-ming correctly, and quickly, leaving you a lot moretime to actually use the computer as a data handler...and THAT'S A PLEASER.

As if that weren't enough ...we have a newly addedfeature THE4KROM BD. A board containing up to4000 bytes of Read Only Memory. (The Stuff that'son it doesn't go away when the computer is off.) Youput your most used applications and computergames on the ROM board Turn on the power, locateyour favorite game, and you're up and hummin im-mediately. This makes using the computer lots offun for a change. WHAT A PLEASER.

This is what you get. A computer that does whatyou want it to do when you want it to do it, at a pricethat you can finally aford. NOW, THAT'S REALLY APLEASER!!!

from SPHERE

the COMPUTER PEOPLE

who have it ALL TOGETHER.

P.S. There's much much more, so write today forprices and information.

I

CORPORATION

940 North 400 EastNorth Salt Lake,Utah 84054(801) 292-8466

Photo 1: In this example,Educator-8080 is shownbefore (left) and after(right) the execution of anXRA A instruction. Theeffect of this instruction isof course to clear the ac-cumulator A, as is shownat the right.

Explore an 80S0with Educator-8080

Charles P Howerton

President, Digital Group Software Systems Inc

PO Box 1086

Arvada CO 80001

What Is an Educator?

Educator-8080 was designed as a class-room instruction aid for a microprocessorprogramming course. The principal designgoals were to develop a system which wouldillustrate the architecture of the machineand the effect of the execution of variousinstructions. For example, the reader mightask to what use the logical EXCLUSIVE ORfunction may be put in an 8080. Thisfunction, which operates on each bit, has avalue of 1 if either of the two operands orarguments, but not both, has a value of 1;otherwise it has a value of 0. The Edu-cator-8080 can simply illustrate thisfunction. In the example shown in photo 1(left and right), both arguments of thisfunction are equal: the first argument is thevalue in the accumulator (A) and the secondargument is also the value stored in theaccumulator (A). The function value (ie: theresult) is placed in the accumulator after

execution. The left photo shows the ac-cumulator (and other registers, etc, whichare not affected) before execution of theinstruction XRA A, and the right photoshows it after execution. The result is thatthe accumulator (A) is cleared, ie: it con-tains eight 0 bits. This result is consistentwith the definition of the EXCLUSIVE ORabove: Whenever both bit arguments are 0,or are 1, a value of 0 is returned. Thisexample shows that the Educator-8080 is aconvenient means to illustrate rather com-plex operations which facilitate learning theinstruction set and architecture without thetedium of plowing through books. A sub-ordinate goal was to implement the entiresystem with the exception of the physicalinput output routines and the stack in 1024bytes of memory. All of the design goalswere met. In addition, if the IO devices areASCII oriented, a reduction in the length ofthe error messages (perhaps limiting them tothe error code number) should providesufficient space for the inclusion of thephysical input output routines and the stackwithin the 1 K byte memory space.

Educator-8080 is written in a fairlystraightforward manner and it should not beparticularly difficult to adapt it to any 8080system with more than 1 K bytes of pro-

22

grammable memory, a keyboard, and anoutput device of some kind. It is designed tooperate with a television display device andto dynamically show the results of theexecution of the input commands.

It would probably be desirable to modifythe display function somewhat if the outputdevice is a hard copy device such as aTeletype. The content could be the same butthe elimination of blank lines and printingthe titles only every 10 or 15 instructionswould speed things up considerably on aTeletype device. The input output routinesrequired to adapt Educator-8080 to almostany system are described functionally butare not given in detail. They should beadapted from routines already in use for agiven system.

The Instruction Set

The Educator-8080 instruction set is asubset of the 8080 instruction set. Thecommands implemented within Edu-cator-8080 were selected to provide repre-sentative instructions from most of thefunctional instruction groups. Since the in-structions are to be executed one at a timefrom keyboard input, there was no need toincorporate any of the Jump, Call or Returninstructions; however, since the flags aredisplayed after each operation, it is very easyto determine whether or not a given con-ditional Jump, Call or Return would cause atransfer of control by simply observing thesetting for the flag whose status is beingtested. In addition, because of memorylimitations none of the instructions whichcause memory to be read or written wereimplemented. Finally, no instruction whoseaction could not be readily observed wasimplemented.

To keep the display as uncluttered aspossible the registers which could be ac-cessed by Educator-8080 instructions werelimited to the accumulator and the B and Cregisters. It would not be particularly dif-ficult to incorporate the rest of the registersinto the display and as operands for theEducator-8080 instruction subset. However,unless the ability to address memory isdesirable the only instructions which couldbe added to the subset would be the DADand the XCHG.

The instruction subset and the validoperands for each instruction are shown intable 1. Table 2 contains the correspondinginformation as it is loaded into the com-puter's memory and used by Educator-8080.

Immediate Operands

Almost half of the instructions supportedby Educator-8080 require immediate

Table I: Command List for Educator-8080. In order to illustrate theoperations of the 8080 processor, Educator-8080 interprets a subset of the8080's instructions. The subset generally references the accumulator, A, andregisters B or C; it excludes all branching and program control operations.The complete list of available operations is found in this table.

Command Description of Operation

ACI i Acid the value ol the Carry Flag and the value ot the

Immediate operand i to the contents of theaccumulator

ADC t Add the value ol the Carry Flag acid the contents of

r agister r to the contents ol the accumulator.

K.v:

Values forFLAGS:

—Flagi-Z S A C

X X X X X

X X X X X

ADDr

Add the contents of register r to the accumulator

X

X

X

X

X

ADI i

Add the value ol the immediate operand i to theaccumulator

X

X

X

X

X

ANA r

Logically AND the contents of register r with theaccumulator.

X

X

X

X

0

ANI I

Logically-AND the value ol the immediate operandi with the contents of the accumulator.

X

X

X

X

0

CMA

Complement the contents ol the accumulator,changing all ol the zeros to ones and all ol the onesto zeros

N

N

N

N

N

CMC

Complement the value of the Carry Flag, if it iszero make it one, or if it is one make it zero

N

N

N

N

X

CMP.

Compare the contents ol register r with the contentsof the accumulator

X

X

X

X

X

CP1 i

Compare the value of the immediate operand i withthe contents ot the accumulator.

X

X

X

X

X

DAA

Decimal adjust the value in the accumulator (after anarithmetic command using decimal numbers)

X

X

X

X

X

DCR t

Decrement (subtract 1 from) the contents olregister r

X

X

X

X

N

DCX rp.

Decrement thu contents ot the register pair rp

N

N

N

N

N

INR .

Increment larid 1 to) the contents of register r

X

X

X

X

N

INX rp

Increment the contents ot the register pair rp

N

N

N

N

N

MVI r.i

Move the value ol the immediate operand i intoregister r

N

N

N

N

N

MOV r.J

Move the value of the contents of register s intoregister r leaving s unchanged.

N

N

N

N

N

NOP

No operation do nothing

N

N

N

N

N

ORA.

Logically OR the contents o( register r with theaccumulator

X

X

X

0

0

ORI i

Logically OR the value of the immediate operandi with the accumulator

X

X

X

0

0

RAL

Rotate the contents of the accumulator left one bit

N

N

N

N

X

position with the high order bit going to the CarryFlag and the Carry Flag going into the low order bitof the accumulator

Rotate the contents of the accumulator right one N N N N X

bit position with the low order bit of the accumulator.(Oing into the Carry Flag and the Carry Flag goinginto the high order bit ol the accumulator.

Rotate'the contents of the accumulator left one N N N N X

bit position with the high order bit going into boththe low order bit and the Carry Flag

Rotate the contents of the accumulator right one bit N N N N X

position with the low order bit going into both thehigh order bit and the Carry Flag.

SBBr

Subtract the values of the Carry Flag and register rl.om the accumulator

X

X

X

X

X

SBI i

Subtract the values ol the Carry Flag and theimmediate operand i from the accumulator.

X

X

X

X

X

STC

Set the Carry Flag to a 1 value

N

N

N

N

1

SUB.

Subtract the contents of register r from theaccumulator

X

X

X

X

X

SUI i

Subtract the value of the immediate operand i from

X

X

X

X

X

accumulator.

XRAr

Logically Exclusive OR the contents of icgistei rwith the accumulator.

X

X

X

0

0

XRI i

Logically Exclusive OR the value of the immediate

X

X

X

0

0

operand i with the accumulator

i any valid immediate operand (see text).

r any one ol the three registers displayed A, 8, or C.

rp must be the reyister pair B and C which is designated B.

s any one of the three registers displayed A, B, or C

X Changed value depends on operands and command.

0 Reset to ^ero always.

1 Set to one always

n Not changed by this command.

23

Photo 2: What happenswhen an 8080 executes anADD B instruction? Aspecific example is il-lustrated in this set of be-fore and after snapshots.

operands. An immediate operand is a con-stant value which is part of the instructionbeing executed and it immediately followsthe operation code of the instruction, hencethe name immediate.

Whenever a single byte "constant" isrequired in a program, its inclusion as theimmediate value of an appropriate instruc-tion reduces the length of the programbecause there is no need to address the value

Table 2: Operation Code Table for the Educator-8080 program. Table Ishowed the command list for the program. This table gives the absolutemachine codes for the command table beginning at address <2>/122. Eachcommand is represented by a 3 byte ASCII character string mnemonicfollowed by the naked (without register values) 8080 operation code and theaddress of the routine which interprets the command. The routine name isshown symbolically in the right hand column, and can be found in theprogram of listing I.

Address

ASCIIMnemonic

Mnemon

Octal Code—

ic Opcode

Routine

RoutineName

<2>/122

'ACI'

101

103

111

316

212<1>

IMMED

<2>/130

'ADC

101

104

103

210

152<1>

RG210

<2>/136

'ADD'

101

104

104

200

152<1>

RG210

<2>/144

'ADI'

101

104

111

306

212<1>

IMMED

<2>/152

'ANA'

101

116

101

240

152<1>

RG210

<2>/160

'ANI'

101

116

111

346

212<1>

IMMED

<2>/166

'CMA'

103

115

101

057

144<1>

DIRCT

<2>/174

'CMC

103

115

103

077

144<1>

DIRCT

<2>/202

'CMP'

103

115

120

270

152<1>

RG210

<2>/210

'CPI'

103

120

111

376

212<1>

IMMED

<2>/216

'DAA'

104

101

101

047

144<1>

DIRCT

<2>/224

'DCR'

104

103

122

005

245<1>

RG543

<2>/232

'DCX'

104

103

130

013

264<1>

RG54B

<2>/240

'INR'

111

116

122

004

245<1>

RG543

<2>/246

'INX'

111

116

130

003

264<1>

RG54B

<2>/254

'MOV

115

117

126

100

145<1>

MOVRT

<2>/262

'MVI'

115

126

111

006

205<1>

MVIRT

<2>/270

'NOP'

116

117

120

000

144<1>

DIRCT

<2>/276

'ORA'

117

122

101

260

152<1>

RG210

<2>/304

'ORI'

117

122

111

366

212<1>

IMMED

<2>/312

'RAL'

122

101

114

027

144<1>

DIRCT

<2>/320

'RAR'

122

101

122

037

144<1>

DIRCT

<2>/326

'RLC

122

114

103

007

144<1>

DIRCT

<2>/334

'RRC

122

122

103

017

144<1>

DIRCT

<2>/342

'SBB'

123

102

102

230

152<1>

RG210

<2>/350

'SBI'

123

102

111

336

212<1>

IMMED

<2>/356

'STC

123

124

103

067

144<1>

DIRCT

<2>/364

'SUB'

123

125

102

220

152<1>

RG210

<2>/372

'SUI'

123

125

111

326

212<1>

IMMED

<3>/000

'XRA'

130

122

101

250

152<1>

RG210

<3>/006

'XRI'

130

122

111

356

212<1>

IMMED

directly. Immediate values have an impliedaddress which is the address of the bytefollowing the opcode and this address issupplied from the program counter registerautomatically whenever an immediate typeinstruction is executed. In the Edu-cator-8080 system the "program counter" isprovided by the operator's sequence ofcommands which are executed one by one.

Educator-8080 has three different typesof immediate values as part of the inputcommand and defaults to one of these typesif the input command omits typeinformation.

The general form of an immediateoperand is as follows:

TpVpWhere: T is the type code which designatesthe form of the immediate value andmay be any of the following:B — for a binary immediate valueQ — for an octal immediate valueH — for a hexadecimal immediatevalue

If the type code is omitted entirelyand the first nonpunctuation characterencountered is a numeric digit 0 to 7,then a default type of octal is as-sumed.

p is any form of punctuation (eg:single or double quotes, parentheses,etc). Punctuation is not required, andprovision for its inclusion is solely inthe interest of enabling the user toenter commands in a format consistentwith that of various advanced assem-blers.

V is the value of the immediateoperand expressed in a form consistentwith the explicit or implied typeselected. The form and content of thevalue field for each type is as follows:T = B: V is a series of eight con-secutive numeric characters whichhave the value zero or one.Example: B'l 1000111'. V is11000111, quotes are optional.T = Q or T omitted: V is a series of

24

Photo 3: To illustrate theuse of hexadecimal im-mediate values, this photoshows the operation ofXRI H'C3'.

0 SAM V<>

\

i aiiaiifl

0-4M »••••••••«•«

11181 ••••iitiw«

^r ^*^^™^^^^^^^^^^^^^^^H

OCT M(

PITsI

i 1 • I 1 1 • • 114 CC

Listing 1: The Educator-8080 program expressed as an absolute assembly language listing. The notations <0>, <1>, <2> and<3> are used to denote the high order (page) address bytes of four consecutive pages in memory address space. When loadingthe program into a given system, these notations become bytes with consecutive octal values. Thus to load the program atlocation 200/000 in memory address space, the values utilized would be 200, 201, 202 and 203.

three consecutive numeric characterswhich have octal digit values of from 0to 7.

Example: Q'307' V is 307, quotes areoptional.

T=H: V is a pair of consecutive charac-ters which have hexadecimal digitvalues from 0 to F.

Example: H'C7'V is C7, quotes areoptional.

With the exception of the move imme-diate (MVI) command which requires adestination register, immediate commandsare entered as the mnemonic opcode fol-lowed by the immediate operand in any ofits valid forms.

Some "before and after" examples ofEducator-8080 commands are shown inphotos 1 through 3. In each case, a com-mand is typed into the keyboard of thecomputer, then the Educator-8080 displayfollowing the command is depicted.

Entering Commands

Commands are entered intoEducator-8080 as a string of characters (eg:letters, numbers, spaces and punctuation)followed by a command termination charac-ter. As written, Educator-8080 assumes thatthe command termination character will bean ASCII carriage-return (octal 015). How-ever, any other keyboard character codemay be used as the command terminationcharacter by changing the value of theimmediate operand in the instruction lo-cated at address <0>/341 which tests forcommand termination. (See listing 1.)

Since it is not uncommon to make errorswhen keying information into a computer,two provisions have been made in Edu-cator-8080 for correcting or eliminating

address

Ol

:tal-cc

ida

label

op

operand

commentary

•The control routi

ne is the top of the structure and con

trols the operation

of the entire program.

<0>/000

061

XXX

XXX

CNTRL

LXI

SP, STACK

Set stack pointer to programmable memory;

<0>/003

315

026

<0>

NOT2ER

CALL

DSPLY

Display contents of registers;

<0>/006

315

316

<0>

CALL

CMDNT

Enter a command;

<0>/011

315

063

<!>

CALL

FETCH

Fetch the correct opcode;

<0>/014

267

ORA

A

Set zero flag as per contents;

<0>/015

302

003

<0>

JNZ

NOTZER

Jump if not zero error occurred;

<0>/020

315

030

<2>

CALL

XQTER

Go execute the current command;

<0>/023

303

003

<0>

JMP

NOTZER

Loop forever;

•This diiplay routine controls the generation

of the dynamic display.

<0>/026

041

167

<3>

OSPLY

LXI

H.TITLS

Load address of titles into HL;

<0>/031

315

261

<0>

CALL

CHEDT

Display titles;

<0>/034

041

257

<3>

LXI

H.BLINE

Loadaddrof BLINE title;

<0>/037

072

351

<3>

LDA

BREG

Load contents of BREG into A;

<0>/042

315

132

<0>

CALL

DSPCV

Convert and display;

<0>/045

041

271

<3>

LXI

H.CLINE

Load addr of CLINE title;

<0>/050

072

350

<3>

LDA

CREG

Load contents of CREG into A;

<0>/053

315

132

<0>

CALL

DSPCV

Convert and display;

<0>/066

041

304

<3>

LXI

H.AFHDR

Load addr of A flans title;

<0>/061

315

261

<0>

CALL

CHEDT

Display titles;

<0>/064

052

346

<3>

LHLD

PSWA

Load flags and A into HL;

<0>/067

175

MOV

A,L

Move flags to A;

<0>/070

346

004

ANI

B'00000100'

AND off all but parity flag;

<0>/072

315

237

<0>

CALL

DSPFG

Display the flag value;

<0>/075

175

MOV

A,L

Move flags to A;

<0>/076

346

100

ANI

B-01000000'

AND off all but zero flag;

<0>/100

315

237

<0>

CALL

DSPFG

Display the flag value;

<0>/103

175

MOV

A.L

Move flags to A;

<0>/104

346

200

ANI

B'10000000'

AND off all but sign flag;

<0>/106

315

237

<0>

CALL

DSPFG

Display the flag value;

<0>/1ll

175

MOV

A.L

Move flags to A;

<0>/112

346

020

ANI

B'00010000'

AND off all but auxiliary carry flag;

<0>/114

315

237

<0>

CALL

DSPFG

Display the flag value;

<0>/1l7

175

MOV

A.L

Move flags to A;

<0>/120

346

001

ANI

B'00000001 •

AND off all but carry flag;

<0>/122

315

237

<0>

CALL

DSPFG

Display the flag value;

^0>/125

174

MOV

A.H

Move A register value to A;

<0>/126

315

137

<0>

CALL

DSPCN

Display with no title print;

<0>/131

311

RET

Return to the CNTRL routine;

"The display conversion

routine prints binary

, octal and

hexadecimal.

<0>/132

365

DSPCV

PUSH

PSW

Save output value for CHEDT;

<0>/133

315

261

<0>

CALL

CHEDT

Display line title addr in HL;

<0>/136

361

POP

PSW

Retrieve saved output value;

<0>/137

036

010

DSPCN

MVI

E,QD10'

Move 8 to E register;

<0>/141

007

DSPBT

RLC

Rotate MSB into Carry and LSB;

<0>/142

365

PUSH

PSW

Save current value;

<0>/143

346

001

ANI

Q'OOV

AND off ell but LSB;

<0>/145

315

237

<0>

CALL

DSPFG

Go display bit value;

<0>/150

361

POP

PSW

Retrieve saved current value;

<0>/151

035

DCR

E

Decrement loop count;

<0>/152

302

141

<0>

JNZ

DSPBT

Jump if loop count not zero;

<0>/155

267

ORA

A

Reset carry;

<0>/156

036

003

MVI

E,Q'003'

Move 3 to E register;

<0>/160

027

DSPQT

RAL

MSB to Carry, Carry to LSB,

<0>/161

027

RAL

do it again.

<0>/162

027

RAL

three times for octal digit shift;

<0>/163

365

PUSH

PSW

Save current value;

<0>/164

346

007

ANI

Q'007'

AND off all but octal LSD;

<0>/166

366

060

ORI

Q'060'

OR on bits to make ASCII numeric character;

<o>/170

315

XXX

XXX

CALL

CHRPR

Output the character;

<0>/173

361

POP

PSW

Retrieve saved current value;

<0>/174

035

DCR

E

Decrement loop count;

<0>/175

302

160

<0>

JNZ

DSPQT

Jump if loop count not zero;

<0>/200

315

251

<0>

CALL

DSPSP

Output a space;

<0>/203

036

002

MVI

E.Q'002'

Move 2 to E;

<0>/205

007

DSPHT

RLC

Rotate MSB into Carry and LSB,

<0>/206

007

RLC

do it again.

<0>/207

007

RLC

four times for.

<0>/210

007

RLC

hexadecimal shift;

<0>/211

365

PUSH

PSW

Save current value;

<0>/212

346

017

ANI

B'00001111'

AND off all but hexadecimal LSD;

<0>/214

306

060

ADI

Q'060'

Add on bits to make ASCII numeric character

<0>/216

376

072

CPI

Q'072'

Compare result to one more than 9;

<0>/220

332

225

<0>

JC

DSPHS

If numeric then skip adjustment;

<0>/223

306

007

ADI

Q'007'

Add 7 giving ASCII 'A' thru 'F' codes;

25

Listing 1, continued:

operand

<0>/225

315

XXX XXX

DSPHS

CALL

CHRPR

<0>/230

361

POP

PSW

<0>/231

000

NOP

<0>/232

035

DCR

E

<0>/233

302

205 <0>

JNZ

DSPHT

<0>/236

311

RET

commentary

Output the character;Retrieve saved current value;

Decrement loop count;Jump if loop count not zero;Return to calling routine;

'Display flag or binary digit followed by a space. Alternate entry is used to display a space.

<0>/237

312

244

<0>

<0>/242

076

001

<0>/244

306

060

<0>/246

315

XXX

XXX

<0>/251

365

<0>/252

076

040

<0>/254

315

XXX

XXX

<0>/257

361

<0>/260

311

DSPFG

JZ

DSPFZ

MVI

A.Q'OOV

ADI

Q'060'

CALL

CHRPR

PUSH

PSW

MVI

A.CT040'

CALL

CHRPR

POP

PSW

RET

•The character string output edit routine.

<0>/261

176

CHEDT

MOV

A.M

<0>/262

376

200

CPI

Q'200'

<0>/264

310

RZ

<0>/265

322

277

<0>

JNC

CHSPA

<0>/270

315

XXX

XXX

CALL

CHRPR

<0>/273

043

CHEND

INX

H

<0>/27'4

303

261

<0>

JMP

CHEDT

<0>/277

326

2O0

CHSPA

SUI

Q'200'

<0>/301

107

MOV

B.A

<0>/302

076

040

CHSPL

MVI

A,Q'O40'

<0>/3O4

315

XXX

XXX

CALL

CHRPR

<0>/307

005

DCR

B

<0>/310

302

302

<0>

JNZ

CHSPL

<0>/313

303

273

<0>

JMP

CHEND

Jump if passed value is a zero;

Otherwise move a 1 into A;

Convert into ASCII numeric character;

Output the character;

Save the flags and value in A;

Move space into A;

Output the space;

Retrieve the saved flags and A;

Return to the calling routine;

Move next character into A;

Compare it to 200 octal;

Return if equal it's end of string;

Jump if greater for space routine;

Else go output the character;

Increment the string index;

Loop for next character;

Subtract 200 octal from value;

Move space count to B;

Move space to A;

Output the space;

Decrement space count;

Jump if count not zero to start of loop;

Jump back into CHEDT loop;

"The command entry routine accepts input from the keyboard for commands.

<0>/316

041

332

<3>

CMDNT

LXI

H.CMDMS

<0>/321

316

261

<0>

CALL

CHEDT

<0>/324

041

352

<3>

LXI

H.CMDAR

<0>/327

006

026

MVI

B,Q'026'

<0>/331

315

XXX

XXX

CMDKB

CALL

KEYBD

<0>/334

376

014

CPI

Q'OH'

<0>/336

312

000

<0>

JZ

CNTRL

<0>/341

376

015

CPI

Q'015'

<0>/343

312

376

<0>

JZ

CMDND

<0>/346

376

177

CPI

Q'177'

<0>/350

302

355

<0>

JNZ

CMDST

<0>/353

076

033

MVI

A,Q'033'

<0>/355

167

CMDST

MOV

M.A

<0>/356

315

XXX

XXX

CALL

CHRPR

<0>/361

043

INX

H

<0>/362

005

DCR

B

<0>/363

302

331

<0>

JNZ

CMDKB

<0>/366

076

001

MVI

A.Q'OOV

<0>/370

315

063

<2>

CALL

ERROR

<0>/373

303

000

<0>

JMP

CNTRL

'The command compress routine eliminates all but letters end numbers.

<0>/376

041

352

<3>

CMDND

LXI

H.CMDAR

<1>/001

345

PUSH

H

<1>/002

321

POP

D

<1>/003

076

026

MVI

A,Q'026'

<l>/005

220

SUB

B

<1>/0O6

107

MOV

6.A

<1>/O07

176

CMDNX

MOV

A.M

<1>/010

376

033

CPI

QD33'

<1>/012

302

027

<1>

JNZ

CMDCH

<1>/015

076

352

MVI

A.CMDAR-L

<1>/017

273

CMP

E

<1>/020

322

065

<1>

JNC

CMDNS

<1>/023

033

DCX

D

<1>/024

303

055

<1>

JMP

CMDNS

<1>/027

376

060

CMDCH

CPI

Q-060'

<1>/031

332

055

<1>

JC

CMDNS

<!>/034

376

072

CPI

Q'072'

<1>/036

332

053

<1>

JC

CMDSV

<1>/041

376

101

CPI

Q'lOV

<1>/043

332

055

<1>

JC

CMDNS

<1>/046

376

133

CPI

Q'133'

<1>/O50

322

055

<1>

JNC

CMDNS

<l>/053

022

CMDSV

STAX

D

<l>/054

023

INX

D

<1>/055

043

CMDNS

INX

H

<1>/056

005

DCR

B

<l>/057

302

007

<1>

JNZ

CMDNX

<1>/062

311

RET

"The FETCH instruction/command routine

validates and builds the objec

<l>/063

041

122

<2>

FETCH

LXI

H.OPTAB

<l>/066

036

037

MVI

E.Q-037'

<1>/070

345

FLOOP

PUSH

H

<1>/071

001

352

<3>

LXI

B.CMDAR

<1>/074

026

003

MVI

D.Q-003'

<1>/076

012

FCOMP

LDAX

B

<1>/077

276

CMP

M

<1>/100

302

125

<1>

JNZ

FNXEL

<1>/103

003

INX

B

<1>/104

043

INX

H

<1>/105

025

DCR

D

<1>/106

302

076

<1>

JNZ

FCOMP

<1>/111

343

XTHL

<1>/112

341

POP

H

<1>/113

136

MOV

E,M

<1>/114

325

PUSH

D

<1>/115

043

INX

H

<1>/116

136

MOV

E,M

<1>/117

043

INX

H

<1>/120

126

MOV

D,M

<1>/121

353

XCHG

Move address of COMMAND ? ' to HL;

Display the message;

Move address of command input area HL;

Move maximum length to B;

Get an input character;

Is it a control-1 line delete?

If so then restart program;

Is it a carriage return?

If so then go compress input;

Is it a delete character?

If not then go store the character;

If so replace with back arrow;

Store input character in command buffer;

Display the input character;

Increment command work area index;

Decrement command length count;

If not full then reiterate;

If buffer full then select error

number 1 and print its message;Restart the program;

Load H L with address of work area;Push & pop move it to DE

as the compression pointer;Load A with maximum length;Subtract remaining length from B;Move actual length to B;Move command character to A;Is it a back arrow (character delete)'If not then go to other tests;Low address byte of CMDAR to A;Compare to current low address byte;If not greater then skip save;Else back up compression pointer;Skip saving the character;Is the character leu than '0'?If so then skip saving it;Is the character less than '9' + 1 ?If so then save numeric value;Is the character leu than 'A'?If so then skip saving it;Is the character greater than 'Z7If so then skip saving it;Store character in compressed area;Increment compreuion pointer index;Increment input string pointer;Decrement actual length count;If length is not zero then reiterate;Else return to CNTRL calling point;

Load addreu of opcode table HL;

Move table element count to E;

Save current element addreu;

Load addreu of CMDAR into BC;

Move opcode length to D;

Load command character to A indexed by B;

Compare it to table character;

If not equal then go to next element;

Increment command character index;

Increment table character index;

Decrement opcode length counter;

If not zero continue test loop;

Exchange HL with top of stack;

Pop HL from stack to clear it;

Move naked opcode to E, D is zero;

Save naked opcode;

Increment table pointer;

Decode routine low addreu byte to E;

Increment table pointer;

Decode routine high addreu byte to D;

Move decode routine addreu to HL;

errors. The ASCII delete character code(octal 177) is used to delete the last re-maining character in the input string. Since adeleted character is not considered to exist,N consecutive delete characters will deletethe N preceding characters. For example, ifthe delete character is shown as a back arrow(*-), RAX<-L will be reduced to RAL andCQP-^-MA will be reduced to CMA. Charac-ters which have been keyed in are displayedafter they have been tested. The displayfunction uses the octal value 177 as a clearscreen control code; therefore, characterdeletes are transformed into the back arrowbefore they are displayed and stored. Edu-cator-8080 users with systems whichhave a back arrow (octal 033) key on theirkeyboards may use it as a character deletecode and it will have the same effect as thedelete key assumed in this version. Userswho have neither of these keys can designateany keyboard character as the delete charac-ter code by changing the immediate operandin the instruction located at<0>/346 whichtests for the delete character. (See listing 1).The other, and somewhat more drastic,method of eliminating keying errors is todelete the entire input line. This is usuallydone when an error is detected before thecommand termination character is input butseveral characters after the error occurred.The procedure for deleting an entire line isto enter an ASCII form feed code (octal014) which is a "control L" combination ontypical ASCII keyboards. This will clear theinput line and restart the command entryprocedure. Like the command terminationand the character delete codes, the linedelete code can be made to be any keyboardcharacter by changing the value of theimmediate operand in the instruction atlocation <0>/334 which tests for the linedelete code.

A very useful feature of Educator-8080permits the user to execute the last com-mand input several times. This is accom-plished by simply keying the commandtermination character when the system callsfor the entry of a new command. In order toprovide this facility the input buffer is notcleared prior to calling for the entry of anew command, so the last previously enteredcommand is still in the buffer. This feature isespecially handy when demonstrating theeffect of multiple executions of the rotate,increment, decrement, arithmetic and logicalcommands.

The general format for entering a com-mand is as follows:

OPCODE[p OPERAND-1[p OPERAND-2] ]t

Where:

OPCODE is the mnemonic opcode for the

26

command. For example; MOVXRI.etc.

p is any desired form of punctua-

tion or a space, p is not requiredand, therefore, may be omittedentirely.

OPERAND-! is the first or only operand re-quired by an instruction. It maybe a register identification or animmediate value. See table 1 forthe operand requirements.

OPERAND-2is the second operand where re-quired by a specific instruction.See table 1.

t is the command termination char-

acter, an ASCII carriage return inthe listing 1 version of Educator-8080.

The brackets ([ ] ) shown in the generalformat are used to indicate that the itemswithin them are optional, since some com-mands do not require any operands (eg:RAL, STC, CM A, etc), some require oneoperand only (eg: AD I, CMP, XRA, etc),and some commands require two operands(eg: MOV and MVI).

Listing 1, continued:

commentary

Unsave naked opcode to DE;

Clear A, no error code;

Jump to address of decode routine;

Load double length 6 into BC;

Unsave currant element address;

Add 6 to it;

Decrement table element count;

Reiterate to test next element;

Move error code 2 to A;

Go display error 2, opcode unknown;

No operation filler;

'The instruction decoder routines follow.

'Instructions using the DIRCT routine require no decoding. Example RAL, CMA, etc.

<1>/144 311 DIRCT RET Return to CNTRL for execution;

address

octal-code

<1>/122

321

<1>/123

257

<1>/124

351

<1>/125

001

006 (

<1>/130

341

<1>/131

011

<1>/132

035

<1>/133

302

070 <

<1>/136

076

002

<1>/140

303

063 <

<1>/143

000

POP

D

XRA

A

PCHL

LXI

B.Q'OOOOOe'

POP

H

DAD

B

DCR

E

JNZ

FLOOP

MVI

A,Q'002'

JMP

ERROR

NOP

"The MOVRT is used only by the MOV command.

<1>/146

315 245

<1>

MOVRT

CALL

<1>/150

267

ORA

<1>/151

300

RNZ

Instructions using the RG210 routine require a source register.

<1>/152

012

RG210

LDAX

B

<1>/153

003

INX

B

<1>/154

315

173 <1>

CALL

REGAN

<1>/157

322

166 <1>

JNC

RGERR

<1>/162

203

ADD

E

<1>/163

137

MOV

E.A

<1>/164

257

XRA

A

<1>/165

311

RET

'The register error routine is used to indicate register designation errors.

<1>/166

076 003

RGERR

MVI

A.Q-003'

<1>/170

303 063 <2>

JMP

ERROR

Validate destination register;Set flags based on A contents;Return not 2ero with error;Else fall thru to RG210;

Load next command character into A;Increment command character index;Analyze for valid register;If CY=0 then register not valid;Add naked opcode to register value;Move result back to E;Clear A indicating no errors;Return to CNTRL;

Move error code 3 to A;

Go display error 3, invalid register;

Error Messages

In the process of entering and executingcommands under Educator-8080 there are anumber of errors which can occur. When thishappens an error message is displayed on theoutput device. For the benefit of users withtelevision displays, a delay of approximatelytwo seconds occurs as the message is beingdisplayed, to provide time to read it. Afterthe two second delay the normal Edu-cator-8080 display is generated and thecommand entry mode is reentered. Teletypeor other hard copy users will probably wishto alter the error display routine slightly byeliminating the extraneous spaces which areused to center the error messages on the TVmonitor screen.

The errors which can occur are listed inabsolute octal form in table 3. The errornumbers and extended explanations of con-ditions are as follows:

1. INPUT TOO LONG: The input stringexceeds 22 characters in length pro-bably because too many characterswere deleted since delete charactercodes count as input characters. Twen-ty two characters should be sufficientfor any normal entry including punc-tuation and several character deletes.

2. INVALID COMMAND: The inputcommand mnemonic is not one of theones implemented by Educator-8080.

3. INVALID REGISTER: The operandregister is not A, B or C for acommand which requires a singleregister as an operand or it was not B

'The register analysis and validation routine is used by RG543, RG210 and RG54B.

<1>/173

326 101

REGAN

SUI

Q'lOl'

<1>/175

376 003

CPI

O'003'

<1>/177

320

RNC

<1>/200

075

DCR

A

<1>/201

346 007

ANI

Q'007'

<1>/203

067

STC

<1>/204

311

RET

"The MVIRT is used only by the MVI command.

<1>/206 315<1>/210 267<1>/211 300

CALL

ORA

RNZ

RG543A

"Instructions requiring an immediate operand use the IMMED routine.

<1>/212

012

IMMED

LDAX

B

<1>/213

003

INX

B

<1>/214

376

102

CPI

Q'102'

<1>/216

312

301

<1>

JZ

BINRY

<1>/221

376

121

CPI

0'12V

<1>/223

312

336

<1>

JZ

OCTAL

<1>/226

376

110

CPI

Q'110'

<1>/230

312

367

<1>

JZ

HEX

<1>/233

376

070

CPI

0070'

<1>/235

332

335

<1>

JC

OCTAD

<1>/240

076

005

MVI

A.Q'005'

<1>/242

303

063

<2>

JMP

ERROR

'Instructions using the RG543 routine require a destination register.

<1>/245

012

RG543

LDAX

B

<1>/246

003

INX

B

<1>/247

315

173

<1>

CALL

REGAN

<1>/252

322

166

<1>

JNC

RGERR

<1>/255

007

RLC

<1>/256

007

RLC

<1>/257

007

RLC

<1>/260

203

ADD

E

<1>/261

137

MOV

E.A

<1>/262

257

XRA

A

<1>/263

311

RET

'Instructions using the RG54B routine are INX and DCX.

Subtract an 'A' from the character;

Compare the result to 3;

If not less than 3 return with CY=0;

Decrement result: A=377, B=000, C=001 ;

AND off all but octal LSD;

SetCY=1 indicating no error;

Return to calling routine;

Validate destination register;Set flags based on A contents;Return not zero with error;Else fall thru to IMMED;

Load next command character into A;

Increment command character index;

Is the command character a *B'?

If so then process as binary;

Is the command character a 'Q'?

If so then process as octal;

Is the command character an 'H?

If so then process as hexadecimal;

Is the command character less than '8'?

If so then treat as octal;

Move error code 5 to A;

Go display error 5, invalid immediate;

Load next command character into A;Increment command character index;Analyze for valid register;If CY=0 then register not valid;Shift octal register valueleft threeplaces;Add naked opcode to shifted value;Move result back to E;Clear A indicating no errors;Return to calling routine;

<1>/264

012

RG54B

LDAX

B

Load next command character into A;

<1>/265

003

INX

B

Increment command character index;

<1>/266

315

173

<1>

CALL

REGAN

Analyze for valid register;

<1>/271

376

000

CPI

Q'OOO'

Is the register a zero?

<1>/273

310

RZ

If so it's 'B' so return;

<1>/274

076

004

MVI

A.Q'004'

Move error code 4 to A;

<1>/276

303

063

<2>

JMP

ERROR

Go display error 4, invalid register;

"The BINRY routine converts a t

linBry imn

lediate value into usable form.

<1>/301

046

010

BINRY

MVI

H.Q'010'

Move 8 to H for count;

<1>/303

012

BLOOP

LDAX

B

Load next command character into A;

<1>/304

326

060

SUI

Q'060'

Subtract a '0' from it;

<1>/306

376

002

CPI

Q'002'

Is the result less than 27

<1>/310

322

330

<1>

JNC

IMMER

If not then go displey immediate error;

<1>/313

345

PUSH

H

Save the count;

<1>/314

152

MOV

L.D

Move D to L (immediate byte);

<1>/315

051

DAD

H

Shift HL left one bit;

<1>/316

205

ADD

L

Add L to bit in A;

27

Listing 1, continued:

address octal-code label

<1>/317

127

<l>/320

341

<1>/321

003

<1>/322

045

<1>/323

302 303 <1>

<t>/326

2S7

<1>/327

311

•The immediate error routine

<1>/330

076 006

<1>/332

303 063 <2>

op

operand

MOV

D.A

POP

H

INX

B

OCR

H

JNZ

BLOOP

XRA

A

BET

b immediate value erro

MVI

A,O'006'

JMP

ERROR

commentary

Move the remit back to 0;

Unieve the count;

Increment command character index;

Decrement the count;

If not zero then reiterate;

Clear A indicating no erron;

Return to CNTRL;

Move error code 3 to A;

Go display error 3, invalid immediate;

"The OCTAD entry point to the OCTAL routine it for the default condition.<1>/335 013 OCTAD DCX B

Decrement command cheracter index;

"The OCTAL routine converts an octal immediate value into usable form.

<1>/336

046

003

OCTAL

MVI

H,Q'003'

Move a 3 into H lor count;

<1>/340

012

OLOOP

LDAX

B

Load next command character into A;

<1>/341

326

060

SUI

Q'060'

Subtract a '0' from it;

<1>/343

376

010

CPI

Q'010'

li command character less than 8?

<1>/345

322

330

<1>

JNC

IMMER

If not then go display immediate error;

<1>/350

345

PUSH

H

Save the count;

<1>/3S1

152

MOV

L,D

Move D to L immediate byte;

<1>/352

051

OAO

H

Shift immediate

< 1 >/353

051

OAD

H

byte left

<1>/354

051

DAD

H

three bits;

<1>/3S5

206

ADD

L

Add L to value in A;

<1>/356

127

MOV

D,A

Move result back to D;

<1>/3S7

341

POP

H

Unsave the count;

<1>/360

003

INX

B

Increment command character index;

<1>/381

045

DCR

H

Decrement the count;

<1>/362

302

340

<1>

JNZ

OLOOP

If not zero men reiterate;

<1>/365

257

XRA

A

Clear A indicating no errors;

<1>/386

311

RET

Return to CNTRL;

"The HEX routine converts a hexadecimal i

mmediate value into usable form.

<1>/367

046

002

HEX

MVI

H.O'002'

Move a 2 into H for count;

<1>/371

012

HLOOP

LDAX

B

Load next command character into A;

<1>/372

326

060

SUI

Q'060-

Subtract a '0' from it;

<1>/374

376

012

CPI

Qt>12'

Is it less man '9' + 1?

<1>/376

332

010

<2>

JC

HCHOK

If so then numeric character is OK;

<2>/001

326

007

SUI

Q'007'

Else convert alphabetic to numeric;

<2>/003

376

020

CPI

Q'020'

Is cheracter value greater than 157

<2>/005

322

330

<1>

JNC

IMMER

If so then invalid hexadecimal velue;

<2>/010

345

HCHOK

PUSH

H

Save the count;

<2>/011

152

MOV

L,D

Move D to L immediete byte;

<2>/012

051

DAD

H

Shift immediate

<2>/013

051

DAD

H

byte left

<2>/014

051

DAD

H

four

<2>/015

051

DAD

H

bits;

<2>/016

205

ADD

L

Add L to value in A;

<2>/017

127

MOV

D.A

Move result back to D;

<2>/020

341

POP

H

Unsave the count;

<2>/021

003

INX

B

Increment command character index;

<2>/022

045

DCR

H

Decrement the count;

<2>/023

302

371

<1>

JNZ

HLOOP

If not zero then reiterate;

<2>/026

257

XRA

A

Clear A indicating no errors;

<2>/027

311

RET

Return to CNTRL;

■The XQTER routine executes the generated object code for Educator-6080.

--2>/030

353

XQTER

XCHG

<2>/031

042

046

<2>

SHLD

XQTOP

<2>/034

062

346

<3>

LHLD

PSWA

<2>/037

345

PUSH

H

<2>/040

361

POP

PSW

<2>/041

052

360

<3-

LHLD

BANDC

<2>/044

345

PUSH

H

<2V045

301

POP

B

<2>/046

000

XQTOP

NOP

<2>/047

000

NOP

<2>/050

305

PUSH

B

<2>/051

341

POP

H

<2>/052

042

350

<3>

SHLD

BANDC

<2>/055

365

PUSH

PSW

<2>/056

341

POP

H

<2>/057

042

346

<3>

SHLD

PSWA

<2>/062

311

RET

'The ERROR rout

ine is

used to

display error messages.

<2>/063

365

ERROR

PUSH

PSW

<2>/064

041

162

<3>

LXI

H.ERRSP

<2>/067

315

261

<0>

CALL

CHE0T

<2>/072

361

POP

PSW

<2>/073

041

014

<3>

LXI

H.ERTAB

<2>/076

205

ADD

L

<2>/077

157

MOV

L.A

<2>/100

156

MOV

L,M

'Note: HL

now contains the address of the

error message.

<2>/101

315

261

<0>

CALL

CHEDT

<2>/104

021

000

000

ERTIM

LXI

D.Q'OOOOOO'

<2>/107

035

DCR

E

<2>/110

302

105

<2>

JNZ

ERTIM*!

"The above JMP goes tc

the first 000 in the

LXI command which is an el

<2>/113

025

DCR

D

<2>/114

302

105

<2>

JNZ

ERTIM+1

<2>/117

076

377

MVI

A,Q'377'

<2>/121

311

RET

Move generated opcode to HL;Store it at execution point;Load working PSW & A into HL;Push & pop sets values for

working register and flags;Load working B and C into HL;Push & pop sets values for

working B and C registers;The command to be executed;Immediate value or NOP;Push B and C working register values;Pop them into HL;Store them in save area;Push PSW and A working values;Pop them into HL;Store them in save area;Return to CNTR L for next command; I

Save error code in A;

Load address of error header spaces;

Go output error header spaces

Unsave error code;

Load address of error message table;

Add low address byte to error code;

Move result to L, points to offset;

Move offset to L;

Output the error message;Load DE with timing loop value;Decrement value in E 256 timesReiterate loop 256 times;

Decrement D;

Reiterate outer loop 256 times;Move a 377 to A indicating error;Return to CNTRL;

•Note; for Teletype or hard copy output bytes <2>/104 thru <2>/116can be replaced by 000 NOPs.

for the INX or DCX commands whichrequire register pairs as operands.

4. INVALID IMMED TYPE: The typecode for an immediate operand is notB, Q, or H, or if the default wasattempted the first digit of the impliedoctal value was not a digit from 0 to 7.

5. INVALID IMMED VALUE: One ofthe characters in the immediateoperand value string was inconsistentwith the immediate type code. Forexample, a digit in a binary inputstring was not a zero or a one. This canalso be caused by not providing thecorrect quantity of digits for the im-mediate type specified; too few digitswill possibly cause a problem. If toomany digits are entered only the firstN will be used (N=8 for binary, N=3for octal and N=2 for hexadecimal).

6. ERROR! This message should notoccur unless a grave internal erroroccurs in Educator-8080.

Educator-8080 Program Listing

The Educator-8080 program is presentedin an assembly language format as listing 1.It was hand assembled and, therefore, someliberties were taken in the way it waspresented. Addresses are shown in a splitoctal ("Intelese") format of page andaddress within page. Educator-8080 requiresfour contiguous 256 byte pages of memory(it just fits); to ease the implementationprocess all addresses and address sensitivebytes are shown with relative page numbersin the format <P>, where P is a 0,1, 2 or 3.A simple process of substitution as theprogram is being put into the machine willprovide the ability to locate Educator-8080in any four contiguous pages provided theprogram begins on a page boundary.

The assignment of three addresses is leftto the user. These three addresses are shownsymbolically in both the source and theobject code. The first address is for thelocation of the STACK; insert the address ofthe stack in the command at location<0>/000. The stack should be capable ofbeing at least 10 to 12 levels deep tofunction correctly. The second and thirdaddresses are the addresses of the physicalinput and output routines which must beprovided by the user. These routine ad-dresses are shown symbolically as KEYBDand CHRPR in the source listing. The valuesare shown as 'XXX XXX' in the object code.

Input and Output Routines

The Educator-8080 program referencestwo subroutines for the purpose of exe-

28

Table 3:

Error Messages. This table consists of a list of address offsets (location <3>/014) followedby the ASCII error message strings. The octal values 201 through 377are used to encode fromI to 177 spaces (I to 127 decimal). The strings contain a single space for these codes. The octalvalue 200 is used to indicate end of string, and is shown symbolically as the character "v". Theoctal value 177 is used to indicate the clear screen operation, and is shown symbolically as thecharacter "■".

cuting 10 operations. The KEYBD sub-routine is used to read a single character ofinput from an ASCII keyboard device. TheCHRPR subroutine is used to display (orprint) a single character. These routines arenot shown in the listings, but should beadapted from the routines normally usedwith the particular system in which theprogram is run. Both KEYBD and CHRPRuse the accumulator (A) to pass a singlecharacter argument. KEYBD defines a valuein A obtained from the input device.CHRPR displays the value in A on a devicesuch as a video display or Teletype. All otherregisters of the 8080 processor should be leftunchanged upon return from either of theseroutines. Entry to the 10 routines is shownusing a CALL instruction in these listings. Acorresponding RET instruction in the rou-tine should return control when eitheroperation is completed. An alternate methodof entry would be to employ the 8080 RSTinstruction in place of CALL. If the Edu-cator-8080 listings accompanying this articleare used without reassembly, then the CALLinstructions would be replaced by an RSTand two single byte NOP instructions.

The keyboard entry routine KEYBD

Continued on page 75

Address Octal Code

<3>/014 153 024 043 063 063 104 127 153

<3>/024 111 116 120 125 124 040 124 117

<3>/034 117 040 114 117 116 107 200

<3>/043 111 116 T26 101 114 111 104 040

<3>/053 103 117 115 115 101 116 104 200

<3>/063 111 116 126 101 114 111 104 040

<3>/073 122 105 107 111 123 124 105 122

<3>/103 200

<3>/104 111 116 126 101 114 111 104 040

<3>/114 111 115 115 105 104 040 124 131

<3>/124 120 105 200

<3>/127 111 116 126 101 114 111 104 040

<3>/137 111 115 115 105 104 040 126 101

<3>/147 114 125 105 200

<3>/153 105 122 122 117 122 041 200

ASCII String Value

Address Offsets for messages 0 through 7'INPUT TOO LONG V '

'INVALID COMMANDV '

'INVALID REGISTER V '

'INVALID IMMED TYPE V '

'INVALID IMMED VALUEV '

'ERRORIV '

The following string is given the name "ERRSP" and is used to clear the screen, then space down to thecenter prior to displaying an error message.

<3>/162

177 377 377 211 200

Address

Octal Coda

Name

ASCII Value

<3>/167<3>/177<3>/207<3>/217<3>/227<3>/237<3>/247

177120137122

117040040

211122137131103066062

105055137137124040040

104070137137040065061

125060102137110040040

103070111137130064060

101060116137212040250

124264

101040067063200

TITLS

'• EDUCAT'OR-8080

• ry. I . 1 .'OCT HX 7'6543'210V

<3>/257<3>/267

102040

055200

122

105

107

040

076

076

BLINE

'B-REG >>

■ V •

<3>/271<3>/301

241076

103040

055200

122

105

107

040

076

CLINE

' C-REG

' > V '

<3>/304<3>/314<3>/324

240103040

106103101

114227040

101120103

107040227

123132200

046040

101123

AFHDR

' FLAGS&A'CC P Z S

' A C V

<3>/332<3>/342

240

040

103077

117040

115200

115

101

116

104

CMDMS

' COMMAND'? S7 •

Table 4: Educator-8080 standard display format messages. This table contains the definitions ofseveral character string messages which are used to format the output display device. As in table3, the codes from octal 201 to 377 represent from I to 177spaces transmitted. The character"V" is used to indicate an end of text code, octal 200. The character "■" Is used to indicate aclear screen code, octal 177.

SOLID STATES MUSIC PRODUCTS

4Kx8 Static Memories

MB-1 MK-8 board, 1usec 2102s or equiv-alent.

Kit $103

MB-2 Altair 8800 compatible, may bepiggybacked for 8Kx8.

Kit (1 us 2102s or equiv.) $112

Kit (.55us 91 L02As) $132

Erom Board

MB-3 1702A's Eroms, Altair 8800 &IMSAI 8080 plug compatible, on boardselection of address & wait cycles, 2Kmay be expanded to 4K.

Kit 2K (8 1 702A's) $145

Kit 4K (16 1 702A's) $225

I/O Boards

1/0-1 8 bit parallel input & output ports,common address decoding jumper se-lected, Altair 8800 plug compatible.

Kit.

$42 PC Board only . . . $25

I/0-2 I/O for 8800, 2 ports committed,pads of 3 more, other pads for EROMSUART, etc.Kit $47.50 PC Board only ... $25

Misc.

Altair compatible mother board . . . .$4532x32 Video board Kit $125

2102's

1usec

.65usec

.5usec

ea32

$1.95$59.00

$2.25$68.00

$2.50$76.00

1702A*

1us

$10.00

2112-1

$4.50

1702A*

.5us $13.00

74C89

$3.50

2101

$ 4.50

74L89

$3.50

2111-1

$ 4.50

74200

$5.90

4002-1

$ 7.50

74L200

$5.90

4002-2

$ 7.50

8223

$3.00

7489

$ 2.50

91L02A

$2.55

'Programing

send

32 ea

$2.40

hex list

$ 5.00

2602

$2.00

Please send for complete listing of IC's andXistors at competitive prices.

MIKOS

419 Portofino Dr.San Carlos. Calif. 94070

Check or money order only. Calif, residents 6% tax. Allorders postpaid in US. All devices tested prior to sale.Money back 30 day Guarantee. $10 min. order. Pricessubject to change without notice.

29

Reprinted from MACHINELANGUAGE PROGRAMMINGFOR THE "8008" (and similarmicrocomputers).

Author: Nat WadsworthCopyright 1975Copyright 1976 - RevisedScelbi Computer Consulting IncWith the permission of thecopyright owner.

MACHINE LANGUAGE

Chapter I

THE '8008' CPU INSTRUCTION SET

The '8008' microprocessor has quite acomprehensive instruction set that consistsof 48 basic instructions, which, when thepossible permutations are considered, resultin a total set of about 170 instructions.

The instruction set allows the user to directthe computer to perform operations withmemory, with the seven basic registers in theCPU, and with INPUT and OUTPUT ports.

It should be pointed out that the sevenbasic registers in the CPU consist of one"accumulator," a register that can performmathematical and logic operations, plus anadditional six registers, which, while nothaving the full capability of the accumulator,can perform various useful operations. Theseoperations include the ability to hold data,serve as an "operator" with the accumulator,and increment or decrement their contents.Two of these six registers have special sig-nificance because they may be used to serveas a "pointer" to locations in memory.

The seven CPU registers have arbitrarilybeen given symbols so that we may refer tothem in an abbreviated language. The firstregister is designated by the symbol 'A' in thefollowing discussion and will be referred toas the "accumulator" register. The next fourregisters will be referred to as the 'B,' 'C,' 'D'and 'E' registers. The remaining two specialmemory pointing registers shall be designatedthe 'H' (for the HIGH portion of a memoryaddress) and the 'L' (for the LOW portion ofa memory address) registers.

The CPU also has several "flip-flops" whichshall be referred to as "FLAGS." The flip-flops are set as the result of certain operationsand are important because they can be "test-ed" by many of the instructions with the in-struction's meaning changing as a conse-quence of the particular status of a FLAG atthe time the instruction is executed. There arefour basic flags which will be referred to inthis manual. They are defined as follows:

The 'C flag refers to the carry bit status. The carry bit is a one unit register whichchanges state when the accumulator overflows or underflows. This bit can also beset to a known condition by certain types of instructions. This is important toremember when developing a program because quite often a program will have along string of instructions which do not utilize the carry bit or care about its status,but which will be causing the carry bit to change its state from time-to-time. Thus,when one prepares to do a series of operations that will rely on the carry bit, oneoften desires to set the carry bit to a known state.

The 'Z' for zero flag refers to a one unit register that when desired will indicatewhether the value of the accumulator is exactly equal to zero. In addition, immed-iately after an increment of decrement of the B, C, D, E, II or L registers, this flagwill also indicate whether the increment or decrement caused that particular registerto go to zero.

The 'S' for sign flag refers to a one unit register that indicates whether the valuein the accumulator is a positive or negative value (based on two's complementnomenclature). Essentially, this flag monitors the most significant bit in the accumu-lator and is "set" when it is a one.

The 'P' flag refers to the last flag in the group which is for indicating when theaccumulator contains a value which has even parity. Parity is useful for a number ofreasons and is usually used in conjunction with testing for error conditions onwords of data especially when transferring data to and from external devices. Evenparity occurs when the number of bits that are a logic one in the accumulator is aneven value. Zero is considered an even value for this purpose. Since there are eightbits in the accumulator, even parity will occur when zero, two, four or six bits are inthe logic one condition regardless of what order they may appear in within theregister.

It is important to note that the Z, S, andP flags (as well as the previously mentionedC flag) can all be set to known states bycertain instructions. It is also important tonote that some instructions do not resultin the flags being set so that if the program-mer desires to have the program makedecisions based on the status of flags, theprogrammer should ensure that the properinstruction, or sequence of instructionsis utilized. It is particularly important tonote that load register instructions do notby themselves set the flags. Since it is oftendesirable to obtain a data word (that is,load it into the accumulator) and test itsstatus for such parameters as whether ornot the value is zero, or a negative number,and so forth, the programmer must rememberto follow a load instruction by a logicalinstruction (such as the NDA - "and theaccumulator") in order to set the flags beforeusing an instruction that is conditional inregards to a flag's status.

The description of the various types ofinstructions available using an '8008' CPUwhich follows will provide both the machinelanguage code for the instruction given asthree octal digits, and also a mnemonic namesuitable for writing programs in "symbolic"type language which is usually easier thantrying to remember octal codes! It may benoted that the symbolic language used is thesame as that originally suggested by IntelCorporation which developed the '8008'CPU-on-a-chip. Hence users who may alreadybe familiar with the suggested mnemonicswill not have any relearning problems andthose learning the mnemonics for the firsttime will have plenty of good company.If the programmer is not already aware ofit, the use of mnemonics facilitates workingwith an "assembler" program when it isdesired to develop relatively large andcomplex programs. Thus the programmer isurged to concentrate on learning themnemonics for the instructions and notwaste time memorizing the octal codes. Aftera program has been written using themnemonic codes, the programmer can alwaysuse a lookup table to convert to the machinecode if an assembler program is not avail-able. It's a lot easier technique (and lesssubject to error) than trying to memorize

30

BYTE Reprint

PROGRAMMING FOR THE "$008"and similar microcomputers

the 170 or so three digit combinations whichmake up the machine instruction code set!

The programmer must also be aware, thatin this machine, some instructions requiremore than one word in memory."Immediate" type commands require twoconsecutive words. JUMP and CALLcommands require three consecutive words.The remaining types only require one word.

The first group of instructions to bepresented are those that are used to loaddata from one CPU register to another, orfrom a CPU register to a word in memory,or vice-versa. This group of instructionsrequires just one word of memory. It isimportant to note that none of theinstructions in this group affect the flags.

LOAD DATA FROM ONE CPU REGISTERTO ANOTHER CPU REGISTER

MNEMONIC

MACHINE CODE

LAA

300

LBA

310

LAB

301

The load register group of instructionsallows the programmer to move the contentsof one CPU register into another CPU regis-ter. The contents of the originating (from)register is not changed. The contents of thedestination (to) register becomes the same asthe originating register. Any CPU register canbe loaded into any CPU register. Note thatloading register A into register A is essen-tially a NOP (no operation) command. Whenusing mnemonics the load symbol is the letterL followed by the "to" register and then the"from" register. The mnemonic LBA meansthat the contents of register A (the accumu-lator) is to be loaded into register B. Themnemonic LAB states that register B is tohave its contents loaded into register A.It may be observed that this basic instruc-tion has many variations. The machine lan-guage coding for this instruction is in thesame format as the mnemonic code exceptthat the letters used to represent the registersare replaced by numbers that the computer

can use. Using octal code, the seven CPUregisters are coded as follows:

Register A = 0Register B = 1Register C = 2Register D = 3Register E = 4Register H = 5Register L = 6

Also, since the machine can only utilizenumbers, the octal number '3' in the mostsignificant location of a word signifies thatthe computer is to perform a "load" opera-tion. Thus, in machine coding, the instruc-tion for loading register B with the contentsof register A becomes '310' (in octal form).Or, if one wanted to get very detailed, theactual binary coding for the eight bits ofinformation in the instruction word wouldbe '11 001 000.' It is important to notethat the load instructions do not affect anyof the flags.

LOAD DATA FROM ANY CPU REGISTERTO A LOCATION IN MEMORY

LMA

370

LMB

371

LMC

372

LMD

373

LME

374

LMH

375

LML

376

This instruction is very similar to theprevious group of instructions except thatnow the contents of a CPU register will beloaded into a specified memory location. Thememory location that will receive the con-tents of the particular CPU register is thatwhose address is specified by the contents ofthe CPU H and L registers at the time the in-struction is executed. The H CPU registerspecifies the HIGH portion of the addressdesired, and the L CPU register specifies theLOW portion of the address into which datafrom the selected CPU register is to be loaded.Note that there are seven different instruc-

tions in this group. Any CPU register can haveits contents loaded into any location in mem-ory. This group of instructions does notaffect any of the flags.

LOAD DATA FROM A MEMORYLOCATION TO ANY CPU REGISTER

LAM

307

LBM

317

LCM

327

LDM

337

LEM

347

LHM

357

LLM

367

This group of instructions can be consid-ered the opposite of the previous group.Now, the contents of the word in memorywhose address is specified by the H (forHIGH portion of the address) and L (LOWportion of the address) registers will beloaded into the CPU register specified by theinstruction. Once again, this group of in-structions has no affect on the status of theflags.

LOAD IMMEDIATE DATA INTO ACPU REGISTER

LAI

006

LBI

016

LCI

026

LDI

036

LEI

046

LHI

056

LLI

066

An IMMEDIATE type of instructionrequires two words in order to be complet-ely specified. The first word is the instruc-tion itself. The second word, or "immed-iately following" word, must contain thedata upon which "immediate" action istaken. Thus, a load IMMEDIATE instruc-tion in this group means that the contentsof the word immediately following the in-struction word is to be loaded into the speci-fied register. For example, a typical load im-mediate instruction would be LAI 001.This would result in the value 001 (octal)being placed in the A register when the in-struction was executed. It is important toremember that all IMMEDIATE type in-

31

structions MUST be followed by a data word.An instruction such as LDI by itself wouldresult in improper operation because thecomputer would assume the next word con-tained data. If the programmer had mistaken-ly left out the data word, and in its place hadanother instruction, the computer would notrealize the operator's mistake. Hence the pro-gram would be fouled-up! Note too, that theload immediate group of instructions does notaffect the flags.

LOAD IMMEDIATE DATA INTO AMEMORY LOCATION

LMI

076

This instruction is essentially the same asthe load immediate into the CPU registergroup except that now, using the contents ofthe H and L registers as "pointers" to the de-sired address in memory, the contents of the"immediately following word" will be placedin the memory location specified. This in-struction does not affect the status of theflags.

The above rather large group of LOAD in-structions permits the programmer to directthe computer to move data about. Theyare used to bring in data from memory whereit can be operated on by the CPU. Or, totemporarily store intermediate results in theCPU registers during complicated and ex-tended calculations, and of course allow data,such as results, to be placed back into mem-ory for long term storage. Since none of themwill alter the contents of the four CPU flags,these instructions can be called upon to setup data before instructions that may affector utilize the flag's status are executed. Theprogrammer will use instructions from thisset frequently. The mnemonic names for theinstructions are easy to remember as they arewell ordered. The most important item toremember about the mnemonics is that theTO register is always indicated first in themnemonic, and then the FROM register.Thus LBA equals "load TO register B FROMregister A.

INCREMENT THE VALUE OF ACPU REGISTER BY ONE

INB

010

INC

020

IND

030

INE

040

INH

050

INL

060

This group of instructions allows the pro-grammer to add one to the present value ofany of the CPU registers except the accumu-lator. (Note carefully that the accumulatorcan NOT be incremented by this type of in-struction. In order to add one to the accumu-lator a mathematical addition instruction,described later, must be used.) This instruc-tion for incrementing the defined CPU regi-sters is very valuable in a number of appli-cations. For one thing, it is an easy way tohave the L register successively "point" to astring of locations in memory. A feature thatmakes this type of instruction even more

powerful is that the result of the incrementedregister will affect the Z, S, and P flags. (It-will not change the C or "carry"flag.) Thus,after a CPU register has been incremented bythis instruction, one can utilize a flag test in-struction (such as the conditional JUMP andCALL instructions to be described later) todetermine whether that particular register hasa value of zero (Z flag), or if it is a negativenumber (S flag), or even parity (P flag). It isimportant to note that this group of instruc-tions, and the decrement group (described inthe next paragraph) are the only instructionswhich allow the flags to be manipulated byoperations that are not concerned with theaccumulator (A) register.

DECREMENT THE VALUE OF ACPU REGISTER BY ONE

DCB

011

DCC

021

DCD

031

DCE

041

DCH

051

DCL

061

The DECREMENT group of instructionsis similar to the INCREMENT group exceptthat now the value one will be subtractedfrom the specified CPU register. This in-struction will not affect the C flag. But, itdoes affect the Z, S, and P flags. It shouldalso be noted that this group, as with theincrement group, does not include theaccumulator register. A separate mathemat-ical instruction must be used to subtract onefrom the accumulator.

ARITHMETIC INSTRUCTIONS USING THEACCUMULATOR

The following group of instructions allowthe programmer to direct the computer toperform arithmetic operations between otherCPU registers and the accumulator, or be-tween the contents of words in memory andthe accumulator. All of the operations for thedescribed addition, subtraction, and compareinstructions affect the status of the flags.

ADD THE CONTENTS OF A CPUREGISTER TO THE ACCUMULATOR

ADA

200

ADB

201

ADC

202

ADD

203

ADE

204

ADH

205

ADL

206

This group of instructions will simply ADDthe present contents of the accumulatorregister to the present value of the speci-fied CPU register and leave the result in theaccumulator. The value of the specifiedregister is unchanged except in the case ofthe ADA instruction. Note that the ADAinstruction essentially allows the program-mer to double the value of the accumulator(which is the A register)! If the addition

causes an overflow or underflow then thecarry (C flag) will be affected.

ADD THE CONTENTS OF A CPU

REGISTER PLUS THE VALUE OF THE

CARRY FLAG TO THE ACCUMULATOR

ACA

210

ACB

211

ACC

212

ACD

213

ACE

214

ACH

215

ACL

216

This group is identical to the previousgroup except that the content of the carryflag is considered as an additional bit (MSB)in the specified CPU register. The combinedvalue of the carry bit plus the contents of thespecified CPU register are added to the valuein the accumulator. The results are left in theaccumulator. Again, with the exception ofthe ACA instruction, the contents of thespecified CPU register are left unchanged.Again too, the carry bit (C flag) will beaffected by the results of the operation.

SUBTRACT THE CONTENTS OF A CPUREGISTER FROM THE ACCUMULATOR

SUA

220

SUB

221

sue

222

SUD

223

SUE

224

SUH

225

SUL

226

This group of instructions will cause thepresent value of the specified CPU register tobe subtracted from the value in the accumu-lator. The value of the specified register is notchanged except in the case of the SUA in-struction. (Note that the SUA instructionis a convenient instruction with which to"clear" the accumulator.) The carry flagwill be affected by the results of aSUBTRACT instruction.

SUBTRACT THE CONTENTS OF A CPU

REGISTER AND THE VALUE OF THE

CARRY FLAG FROM THE

ACCUMULATOR

SBA

230

SBB

231

SBC

232

SBD

233

SBE

234

SBH

235

SBL

236

This group is identical to the previousgroup except that the content of the carryflag is considered as an additional bit (MSB)in the specified CPU register. The combinedvalue of the carry bit plus the contents of thespecified CPU register are SUBTRACTEDfrom the value in the accumulator. The re-sults are left in the accumulator. The carry

32

bit (C flag) is affected by the result of theoperation. With the exception of the SBAinstruction the content of the specified CPUregister is left unchanged.

COMPARE THE VALUE IN THEACCUMULATOR AGAINST THECONTENTS OF A CPU REGISTER

SUBTRACT THE CONTENTS OF A

MEMORY WORD FROM THE

ACCUMULATOR

CPA

270

CPB

271

CPC

272

CPD

273

CPE

274

CPH

275

CPL

276

The COMPARE group of instructionsare a very powerful and somewhat uniqueset of instructions. They direct the com-puter to compare the contents of theaccumulator against another register and toset the flags as a result of the comparingoperation. It is essentially a subtractionoperation with the value of the specifiedregister being subtracted from the value ofthe accumulator except that the value of theaccumulator is not actually altered by theoperation. However, the flags are set in thesame manner as though an actual subtrac-tion operation had occured. Thus, by sub-sequently testing the status of the variousflags after a COMPARE instruction has beenexecuted, the program can determine whetherthe compare operation resulted in a match ornon-match. In the case of a non-match, onemay determine if the compared register con-tained a value greater or less than that in theaccumulator. This would be accomplished bytesting the Z flag and C flag respectivelyutilizing a conditional JUMP or CALL in-struction (which will be described later).

ADDITION, SUBTRACTION, AND

COMPARE INSTRUCTIONS THAT USE

WORDS IN MEMORY AS OPERANDS

The five types of mathematical operations:ADD, ADD with CARRY, SUBTRACT,SUBTRACT with CARRY, and COMPARE,which have just been presented for the caseswhere they operate with the contents of CPUregisters, can all be performed with wordsthat are in memory. As with the LOAD in-structions that operate with memory, the Hand L registers must contain the address ofthe word in memory that it is desired toADD, SUBTRACT, or COMPARE to theaccumulator. The same conditions for theoperations as was detailed when using theCPU registers apply. Thus, for mathematicaloperations with a word in memory, the fol-lowing instructions are used.

ADD THE CONTENTS OF A MEMORYWORD TO THE ACCUMULATOR

ADM

207

ADD THE CONTENTS OF A MEMORY

WORD PLUS THE VALUE OF THE

CARRY FLAG TO THE ACCUMULATOR

SUM

227

SUBTRACT THE CONTENTS OF A

MEMORY WORD AND THE VALUE

OF THE CARRY FLAG FROM THE

ACCUMULATOR

SBM

237

COMPARE THE VALUE IN THE

ACCUMULATOR AGAINST THE

CONTENTS OF A MEMORY WORD

CPM

277

ACM

217

IMMEDIATE TYPE ADDITIONS,

SUBTRACTIONS, AND COMPARE

INSTRUCTIONS

The five types of mathematical opera-tions discussed above can also be performedwith the operand being the word of dataimmediately after the instruction. This groupof instructions is similar in format to thepreviously described LOAD IMMEDIATEinstructions. The same conditions for themathematical operations as discussed for theoperations with the CPU registers apply.

ADD IMMEDIATEADI 004

ADD WITH CARRY IMMEDIATEACI 014

SUBTRACT IMMEDIATE

SU) 024

SUBTRACT WITH CARRY IMMEDIATESBI 034

COMPARE IMMEDIATECPI 074

LOGICAL INSTRUCTIONS WITH THEACCUMULATOR

There are several groups of instructionswhich allow BOOLEAN LOGIC operations tobe performed between the contents of theCPU registers and the A (accumulator) regis-ter. In addition there are logic IMMEDIATEtype instructions. The boolean logic opera-tions are valuable in a number of program-ming applications. The instruction set allowsthree basic boolean operations to be per-formed. These are: the LOGICAL AND, theLOGICAL OR, and the EXCLUSIVE OR

operations. Each type of logic operation isperformed on a bit-by-bit basis between theaccumulator and the CPU register or memorylocation specified by the instruction. A de-tailed explanation of each type of logicoperation, and the appropriate instructionsfor each type is presented below. The logicinstruction set is also valuable because all ofthem will cause the C (carry) flag to be placedin the zero condition. This is important ifone is going to perform a sequence of in-structions that will eventually use the statusof the C flag to arrive at a decision as itallows the programmer to set the C flag toa known state at the start of the sequence.All other flags are set in accordance with theresult of the logic operation. Hence, the groupoften has value when the programmer desiresto determine the contents of a register thathas just been loaded into a register. (Sincethe load instructions do not alter the flags.)

THE BOOLEAN AND'OPERATIONINSTRUCTION SET

When the boolean AND instruction is ex-ecuted, each bit of the accumulator will becompared with the corresponding bit in heregister or memory location specified by tneinstruction. As each bit is compared a logicresult will be placed in the accumulator foreach bit comparison. The logic result is de-termined as follows. If both the bit in theaccumulator and the bit in the register withwhich the operation is being performed are alogic one, then the accumulator bit will heleft in the logic one condition. For all otherpossible combinations (A hit equals one, Xbit equals zero; A bit equals zero, X bit equalsone; or A bit equals zero, X hit equals zero),then the accumulator bit will be cleared tothe zero state. An example will illustrate thelogical AND operation.

INITIAL STATE OF THE ACCUMULATOR

10 10 1 0 10CONTENTS OF OPERAND REGISTER

11 0 0 1 10 0

FINAL STATE OF THE ACCUMULATOR10 00 1000

There are seven logical AND instructionsthat allow any CPU register to be used as theAND operand. They are as follows.

NDA

240

NDB

241

NDC

242

NDD

243

NDE

244

NDH

245

NDL

246

33

The contents of the operand register isnot altered by an AND logical instruction.

There is also a logical AND instructionthat allows a word in memory to he used asan operand. The address of the word in mem-ory that will he used is pointed to by the con-tents of the H and L C'PL' registers.

NDM

247

And finally there is also a logical ANDIMMEDIATE type of instruction that will usethe contents of the word immediately follow-ing the instruction as the operand.

NDI

0-44

The next group of boolean logic instruc-tions direct the computer to perform thelogical OR operation on a bit-by-bit basiswith the accumulator and the contents of a('I'll register or a word in memory. Thelogical OR operation will result in theaccumulator having a bit set to a logic one ifeither that hit in the accumulator, or thecorresponding hit in the operand register isa logic one. Since the case where both theaccumulator bit and operand bit are a onealso satisfies the criteria, that condition willalso result in the accumulator bit being leftin the one state. If neither register has a logicone in the hit position, then the accumulatorbit for that position remains in the zerostate. An example illustrates the results ofa logical OR operation.

INITIAL STATE OF THE ACCUMULATOR

10 10 1 0 10

CONTENT OF THE OPERAND REGISTER

11 00 1 100

FINAL STATE OF THE ACCUMULATOR11 10 1 110

There are seven logical OR instructionsthat allow any CPU register to be used asthe OR operand.

ORA

260

ORB

261

ORC

262

ORD

263

ORE

264

ORH

265

ORL

266

By using the H and L registers as pointersone can also use a word in memory as an ORoperand.

ORM

267

There is also the logical OR IMMEDIATEinstruction.

ORI

064

As with the logical AND group of instruc-tions, the logical OR instruction does notalter the contents of the operand register.

The last group of boolean logic instruc-tions is a variation of the logic OR. Thevariation is termed the EXCLUSIVE ORlogical operation. The EXCLUSIVE OR oper-ation is similar to the OR except that whenthe corresponding bits in both the accumu-lator and the operand register are a one thenthe accumulator bit will be cleared to zero.Thus, the accumulator bit will be a one afterthe operation only if just one of the registers(accumulator register or operand register) hasa one in the bit position. (Again, the opera-tion is performed on a bit-by-bit basis.) Anexample provides clarification.

INITIAL STATE OF THE ACCUMULATOR

10 101 0 10

CONTENTS OF THE OPERAND REGISTER

11 00 1 10 0

FINAL STATE OF THE ACCUMULATOR0 1 100 110

The seven instructions that allow the CPUregisters to be used as operands are shownnext.

XRA

250

XRB

251

XRC

252

XRD

253

XRE

254

XRH

255

XRL

256

The instruction that uses registers H and Las pointers to a memory location is:

XRM

257

And the EXCLUSIVE OR IMMEDIATEtype instruction is:

XRI

054

As in the case of the logical OR operation,the operand register is not altered except forthe special case when the XRA instruction isused. This instruction, which directs the com-puter to EXCLUSIVE OR the accumulatorwith itself, will cause the operand register,since it is the accumulator, to have its con-tents altered (unless it should happen to bezero at the time the instruction is executed).

This is because, regardless of what value is inthe accumulator, if it is EXCLUSIVE OR'edwith itself, the result will be zero! Theexample below illustrates the specific-operation.

ORIGINAL VALUE OF ACCUMULATOR10 101 010

EXCLUSIVE OR'ed WITH ITSELF10 101 0 10

FINAL VALUE OF ACCUMULATOR00 000 000

This only occurs when the logicalEXCLUSIVE OR is performed on theaccumulator itself. It can be shown thatthe results of performing the logical OR orlogical AND between the accumulator anditself will result in the original accumulatorvalue being retained.

INSTRUCTIONS FOR ROTATING THECONTENTS OF THE ACCUMULATOR

It is often desirable to be able to shift thecontents of the accumulator either right orleft. In a fixed length register, a simple shiftoperation would result in some informationbeing lost because what was in the MSB orLSB (depending on in which direction theshift occured) would be shifted right out ofthe register! Therefore, instead of just shiftingthe contents of a register, an operationtermed ROTATING is utilized. Now, insteadof just shifting a bit off the end of the regis-ter, the bit is brought around to the other endof the register. For instance, if the register isrotated to the right, the LSB (least significantbit) would be brought around to the positionof the MSB (most significant bit) whichwould have been vacated by the shifting ofits original contents to the right. Or, in thecase of a shift to the left, the MSB would bebrought around to the position of the LSB.

The carry bit (C flag) can be considered asan extension of the accumulator register. Theinstruction set for this machine allows twotypes of ROTATE instructions. One con-siders the carry bit to be part of the accumu-lator register for the rotate operation. Theother type does not. In addition, each typeof rotate can be done either to the right or tothe left.

It should be noted that the rotate opera-tions are particularly valuable when it is de-sired to multiply a number or divide a num-ber. This is because shifting the contents ofa register to the left effectively multipliesa binary number by a power of two. Shiftinga binary number to the right provides theinverse operation.

ROTATING THE ACCUMULATOR LEFTRLC 002

34

Rotating the accumulator left with theRLC instruction means the MSB of theaccumulator will be brought around to theLSB position and all other bits will be shift-ed one position to the left. While this in-struction does not shift through the carrybit, the carry bit will be set by the statusof the MSB of the accumulator at the startof the ROTATE LEFT operation. (Thisfeature allows the programmer to determinewhat the MSB was prior to the shifting opera-tion by testing the C flag after the rotateinstruction has been executed.

ROTATING THE ACCUMULATOR LEFTTHROUGH THE CARRY BIT

RAL

022

The RAL instruction will cause the MSBof the accumulator to go into the carry bit.The initial value of the carry bit will beshifted around to the LSB of the accumu-lator. All other bits are shifted one positionto the left.

ROTATING THE ACCUMULATORRIGHT

RRC

012

The RRC instruction is similar to theRLC instruction except that now the LSB ofthe accumulator is placed in the MSB of theaccumulator. All other bits are shifted oneposition to the right. Also, the carry bitwill be set to the initial value of the LSB ofthe accumulator at the start of the operation.

ROTATING THE ACCUMULATOR RIGHTTHROUGH THE CARRY BIT

RAR

032

Here, the LSB of the accumulator isbrought around to the carry bit. The initialvalue of the carry bit is shifted to the MSB ofthe accumulator. All other bits are shifted aposition to the right.

It should be noted that the C flag is theonly flag that is altered by a rotate instruc-tion. All other flags remain unchanged.

JUMP INSTRUCTIONS

The instructions discussed so far have allbeen "direct action" instructions. The pro-grammer arranges a sequence of these typesof instructions in memory. When the programis started the computer proceeds to executethe instructions in the order in which theyare encountered. The computer automati-cally reads the contents of a memory loca-tion, executes the instruction it finds there,and then automatically increments a specialaddress register called a PROGRAMCOUNTER that will result in the machinereading the information contained in thenext sequential memory location. However,it is often desirable to perform a series ofinstructions located in one section of mem-ory, and then skip over a group of memorylocations and start executing instructions inanother section of memory. This action canbe accomplished by a group of instructions

that will cause a new address value to beplaced in the PROGRAM COUNTER. Thiswill cause the computer to go to a new sec-tion of memory and then execute instruc-tions sequentially from the new memorylocation.

The JUMP instructions in this computeradd considerable power to the machine'scapabilities because there are a series of"conditional" JUMP instructions available.That is, the computer can be directed totest the status of a particular FLAG (C, Z,S or P). If the status of the flag is the de-sired one, then a JUMP will be performed.If it is not, the machine will continue toexecute the next instruction in the currentsequence. This capability provides a meansfor the computer to make "decisions" andto modify its operation as a function of thestatus of the various flags at the time that aprogram is being executed.

In a manner similar to IMMEDIATE typesof instructions, the JUMP instructions requiremore than one word of memory. A JUMP in-struction requires three words to be proper-ly defined. (Remember that IMMEDIATEtype instructions required two words.) TheJUMP instruction itself is the first word. Thesecond word must contain the LOWADDRESS portion of the address of the wordin memory that the PROGRAM COUNTER isto be set to point to, which is the new loca-tion from which the next instruction is to befetched. The third word must contain theHIGH ADDRESS (sometimes referred to asthe PAGE) of the memory address that theprogram counter will be set to. That is, thehigh order portion of the address in memorythat the computer will JUMP to in order toobtain its next instruction.

THE UNCONDITIONAL JUMPINSTRUCTION

JMP

1X4

Note: The machine code 1X4 indicates thatany code for the second octal digit of themachine code is valid. It is recommended as astandard practice that the code '0' be used.Thus, the typical machine code would be 104.

Remember, the JUMP instruction must befollowed by two more words which containthe LOW, and then the HIGH (PAGE) portionof the address that the program is to JUMPto!

JUMP IF THE DESIGNATED FLAGIS TRUE (CONDITIONAL JUMP)

JTC

140

JTZ

150

JTS

160

JTP

170

As with the UNCONDITIONAL JUMPinstruction, the CONDITIONAL JUMP in-structions must be followed by two words ofinformation. The LOW portion, then theHIGH portion, of the address that programexecution is to continue from if the jump is

executed. The JUMP IF TRUE group of in-structions will only jump to the designatedaddress if the condition of the appropriateflag is TRUE (logical one). Thus, the JTCinstruction states that if the carry flag (C) isa logical one (TRUE) then the jump is to beexecuted. If it is a logical zero (FALSE) thenprogram execution is to continue with thenext instruction in the current sequence ofinstructions. In a similar manner the JTZinstruction states that if the ZERO FLAG isTRUE then the jump is to be performed.Otherwise the next instruction in the presentsequence is executed. Likewise for the JTSand JTP instructions.

JUMP IF THE DESIGNATED FLAGIS FALSE (CONDITIONAL JUMP)

JFC

100

JFZ

110

JFS

120

JFP

130

As with all JUMP instructions these in-structions must be followed by the LOWaddress then the HIGH address of the mem-ory location that program execution is tocontinue from if the jump is executed. Thisgroup of instructions is the opposite of thejump if the flag is true group. For instance,the JFC instruction commands the com-puter to test the status of the carry (C) flag.If the flag is FALSE (a logic zero), then thejump is to be performed. If it is TRUE, thenprogram execution is to continue with thenext instruction in the current sequence ofinstructions. The same procedure holds forthe JFZ, JFS and JFP instructions.

SUBROUTINE CALLING INSTRUCTIONS

Quite often when a programmer is develop-ing computer programs the programmer willfind that a particular algorithm (sequence ofinstructions for performing a function) can beused many times in different parts of the pro-gram. Rather than having to keep entering thesame sequence of instructions at differentlocations in memory, which would not onlyconsume the time of the programmer, butwould also result in a lot of memory beingused to perform one particular function, it isdesirable to be able to be able to put an oftenused sequence of commands in just onelocation in memory. Then, whenever the par-ticular algorithm is required by another partof the program, it would be convenient tojump to the section that contained the oftenused algorithm, perform the sequence of in-structions, and then return back to the mainpart of the program. This is a standard prac-tice in computer operations. A frequentlyused algorithm can be designated aSUBROUTINE. A special set of instructionsallows the programmer to CALL aSUBROUTINE. In other words, specify aspecial type of JUMP command that willeventually allow the program to RETURNto the original "jumping" point in the pro-gram. A second type of instruction is used toterminate a SUBROUTINE. This specialterminator will cause the program to revertback and pick up the next sequential in-

35

struction in memory that immediately fol-lows the original CALLING instruction. Agreat deal of computer power is provided bythe instruction set in this machine that allowsone to CALL and RETURN from SUB-ROUTINES. This is because, in a mannersimilar to that provided for the CONDI-TIONAL JUMP instructions, there are anumber of CONDITIONAL CALL andCONDITIONAL RETURN commands in theinstruction set.

Like the JUMP instructions, the CALL in-structions all require three words in order tobe fully specified. The first word is the CALLinstruction itself. The next two words mustcontain the LOW and HIGH portions of thestarting address of the subroutine that isbeing "called."

When a CALL instruction is encounteredby the computer, the CPU will actually savethe current value of the PROGRAM COUNT-ER by storing it in a special PROGRAMCOUNTER PUSH-DOWN STACK. Thisstack is capable of holding six addresses plusthe current operating address. What thismeans is that the machine is capable of"nesting" up to seven subroutines at onetime. Thus, one can have a subroutine, thatin turn calls another subroutine, that in turncalls another one, up to seven levels, and themachine will still be able to return to theinitial calling location. The programmer mustensure that subroutines are not nested morethan seven levels otherwise the PROGRAMCOUNTER PUSH-DOWN STACK will pushthe original calling address(es) completely outof the push-down stack. The program couldthen no longer automatically return to theinitial calling location.

The RETURN instruction which termi-nates a SUBROUTINE only requires oneword. When the CPU encounters a RETURNinstruction it causes the PROGRAM COUNT-ER PUSH-DOWN STACK to "pop" up onelevel. This effectively causes the address savedin the stack by the calling routine to be takenas the new program counter. Hence, programexecution returns to the calling location.

THE UNCONDITIONAL CALLINSTRUCTION

Program execution willthe address saved bycalling instruction.

continue fromthe subroutine

CAL

1X6

This instruction followed by two wordscontaining the LOW and then the HIGH orderof the starting address of the SUBROUTINEthat is to be executed is an UNCONDITION-AL CALL. The subroutine will be executedregardless of the status of the FLAGS. Thenext sequential address after the CAL in-struction is saved in the PROGRAM COUNT-ER PUSH-DOWN STACK.

THE UNCONDITIONAL RETURNINSTRUCTION

RET

This instructionto unconditionallycounter push-down

0X7

directs the CPU"pop" the programstack UP one level.

CALL A SUBROUTINE IF THEDESIGNATED FLAG IS TRUE

CTC

142

CTZ

152

CTS

162

CTP

172

In a manner similar to the conditionalJUMP IF TRUE instructions, these instruc-tions (which must all be followed by theLOW and HIGH portions of the called sub-routine's starting address) will only performthe "call" if the designated flag is in theTRUE (logical one) state. If the designatedflag is FALSE then the CALL instruction isignored. Program execution then continueswith the next sequential instruction.

RETURN FROM A SUBROUTINE IF THEDESIGNATED FLAG IS TRUE

RTC

043

RTZ

053

RTS

063

RTP

073

These one word instructions will cause aSUBROUTINE to be TERMINATED only ifthe designated flag is in the logical one(TRUE) state.

CALL A SUBROUTINE IF THEDESIGNATED FLAG IS FALSE

CFC

102

CFZ

112

CFS

122

CFP

132

These instructions are the opposit of theprevious group of calling commands. The sub-routine is called only if the designated flagis in the FALSE (logical zero) condition.Remember, these instructions must be fol-lowed by two words which contain theLOW and HIGH part of the starting addressof the SUBROUTINE that is to be executedif the designated flag is FALSE. If the flagis TRUE, the subroutine will not be calledand program operation will continue withthe next instruction in the current sequence.

RETURN FROM A SUBROUTINE IF THfDESIGNATED FLAG IS FALSE

RFC

003

RFZ

013

RFS

023

RFP

033

er stack UP one level) if the designated flagis FALSE. Otherwise, the instruction is ig-nored and program operation is continuedwith the next instruction in the subroutine.

THE SPECIAL RESTART SUBROUTINECALL INSTRUCTIONS

There is a special purpose instruction avail-able that effectively serves as a one wordSUBROUTINE CALL. (Remember that itnormally requires three words to specify asubroutine call.) This special instructionallows the programmer to call a subroutinethat starts at any one of eight speciallydesignated memory locations. The eightspecial memory locations are at locations:000, 010, 020, 030, 040, 050, 060 and 070on page zero. There are eight variations of themachine code for the RESTART instruction.One for each of the above addresses. Thus,the one word instruction can serve to CALL aSUBROUTINE at the specified starting loca-tion (instead of having two additional wordsto specify the starting address of a sub-routine). It is often convenient to utilize aRESTART command as a quick CALL to anoften used subroutine. Or, as an easy way tocall short "starting" subroutines for large pro-grams. Hence, the name for the type of in-struction. The eight RESTART instructions,in their mnemonic and machine code forms,along with the starting address associated witheach one is listed below.

RST0

005

00 000

RST1

015

00 010

RST2

025

00 020

RST3

035

00 030

RST4

045

00 040

RST5

055

00 050

RST6

065

00 060

RST7

075

00 070

INPUT INSTRUCTIONS

In order to receive information from an ex-ternal device the computer must utilize agroup of special signal lines. The typical'8008' computer is designed to handle up toeight groups (each group having eight signallines) of INPUT signals. A group of signals isaccepted at the computer by what is referredto as an INPUT PORT. The computer con-trols the operation of the INPUT PORTS.Under program control, the computer can bedirected to obtain the information that is on agroup of lines coming in to any INPUTPORT. When this is done the informationwill be transferred to the accumulator.Various types of external equipment, such asan electronic keyboard or measuring instru-ments, can be connected to the INPUTPORTS. The INPUT PORTS are typically re-ferred to as having numbers from '0' to '7.'The typical mnemonics and machine codesfor INPUT instructions are shown next.

These one word instructions will termi-nate a subroutine ("pop" the program count-

INP0INP 1

101103

INP6INP 7

115117

36

It may be interesting to note that themachine codes for input ports increase by afactor of two for each port. Note too, thatwhile the mnemonic for an input instructionhas two parts, the machine code only requiresone word in memory. It is also important torealize that while an input instruction bringsdata into the accumulator it does not affectthe status of any of the CPU flags!

OUTPUT INSTRUCTIONS

In order to output information to an ex-ternal device the computer utilizes anothergroup of signal lines which are referred to asOUTPUT PORTS. A Typical '8008' systemmay be equipped to service up to twenty-fourOUTPUT PORTS. (Each OUTPUT PORT ac-tually consists of eight signal lines.) AnOUTPUT instruction causes the contents ofthe accumulator to be transferred to the sig-nal lines of the designated OUTPUT PORT.The output ports are normally designated byoctal numbers in the range 10 to 37. The listbelow shows the typical mnemonics used tospecify an OUTPUT PORT along with theassociated machine code. (It may beinteresting to note again that the machinecode increases by a factor of two for eachport.)

INFORMATION ON INSTRUCTION EXECUTION TIMES

OUT 10OUT 11

OUT 21

OUT 36OUT 37

121123

141

175177

An OUTPUT instruction only requires onemachine code word (even though the mne-monic is typically specified in two parts).OUTPUT PORTS are connected to externaldevices that one desires to have the computertransmit information to, such as a CRT dis-play, or machinery that is to be placed undercomputer control.

THE HALT INSTRUCTION

There is one more instruction in the'8008' instruction set. This instructiondirects the CPU to stop all operations andto remain in that state until an INTERRUPTsignal is received. In a typical '8008' systeman INTERRUPT signal may be generated byan operator pressing a switch or by an exter-nal piece of equipment sending an elec-tronic signal to the CPU. This instructionis normally used when the programmerdesires to terminate a program or when itis desired to have the computer wait for anoperator or externa] device to perform someaction. There are three machine codes thatmay be used for the HALT command.

HLT

000

HLT

001

HLT

377

When programming for "real-time" appli-cations it is important to know how muchtime each type of instruction requires to beexecuted. With this information the pro-grammer can develop "timing loops" or de-termine with substantual accuracy how muchtime it will take to perform a particular seriesof instructions. This information is espec-ially valuable when dealing with programsthat control the operations of externaldevices which might require events to occurat specific times.

The following table provides the nominalinstruction execution time for each cate-gory of instruction used in an '8008' system.The precise time needed for each instruction

depends on how close the master clock hasbeen set to a nominal value of 500 kilo-hertz. The table shows the number of cyclestates required by the type of instructionfollowed by the nominal time required toperform the entire instruction. Since eachstate executes in four microseconds, thetotal time required to perform the instruc-tion as shown in the table was obtained bymultiplying the number of states by fourmicroseconds. By knowing the number ofstates required for each instruction the pro-grammer can often rearrange an algorithmor substitute different types of instructionsto provide programs that have events occur-ing at precisely timed intervals.

INSTRUCTION EXECUTION TIME TABLE

LOAD DATA FROM A CPU REGISTER TO ANOTHER CPU REGISTER

LOAD DATA FROM A CPU REGISTER TO A LOCATION IN MEMOR\

LOAD DATA FROM MEMORY TO A CPU REGISTER

LOAD IMMEDIATE DATA INTO A CPU REGISTER

LOAD IMMEDIATE DATA INTO A LOCATION IN MEMORY

INCREMENT OR DECREMENT A CPU REGISTER

ARITHMETIC/COMPARE BETWEEN ACCUMULATOR & A CPU REGISTER 5

ARITH/COMPARE BETWEEN ACCUMULATOR & A WORD IN MEMORY

IMMEDIATE.ARITHMETIC AND COMPARE

BOOLEAN OPS BETWEEN ACCUMULATOR AND CPU REGISTERS

BOOLEAN OPS WITH ACCUMULATOR & A WORD IN MEMORY

IMMEDIATE BOOLEAN OPERATIONS

ROTATE THE ACCUMULATOR

JUMP AND CALL COMMANDS (UNCONDITIONAL)

JUMP/CALLS WHEN CONDITION NOT SATISFIED (CONDITIONAL)

JUMP/CALLS WHEN CONDITION SATISFIED (CONDITIONAL)

RETURN (UNCONDITIONAL)

RETURN WHEN CONDITION NOT SATISFIED (CONDITIONAL)

RETURN WHEN CONDITION SATISFIED (CONDITIONAL)

RESTART COMMAND

OUTPUT COMMAND

INPUT COMMAND

HALT COMMAND

5

20 Us

7

28

8

32

8

32

9

36

5

20

5

20

8

32

8

32

5

20

8

32

8

20

5

20

11

44

9

36

11

44

5

20

3

12

5

20

5

20

6

24

8

32

4

16

The HALT instruction does not affectthe status of the CPU flags.

Chapters 2 and 3 of MACHINE LANGUAGE PROGRAMMING FOR THE "8008" (andsimilar microcomputers) will appear in BYTE's August and September issues,respectively.*

37

The "Ignorance Is Bliss"Television Drive Circuit

ZENITH CHASSIS I2FBI2X

Figure I: The "IgnoranceIs Bliss" Television DriveCircuit. The componentsto the left of the dashedline were added as part ofthe interface. The com-ponents to the right of thedashed line are part of theZenith 12FB12X chassiswhich was used for thetelevision display.

Ken BarbierPO Box 1042Socorro NM 87801

I had not yet heard of BYTE magazine,or hams building such hardware, when Ibuilt my CRT terminal (a computerhead'sterm for "TV typewriter") in the fall of1975. I didn't even own a TV set! Twosituations resulted: I had to buy a new allsolid state TV, and I didn't have any ideahow to interface with it. I knew approxi-mately what it took to create horizontal andvertical sync, but had no idea whether levels,pulse widths, and frequencies would benoncritical. I was delighted, therefore, whenmy sync generator worked just fine the firsttime I patched its output across the videodriver base resistor using the circuit as shownin figure 1. My big fat TTL level pulsesswamp the AGC circuity so effectively thatnormal signals and noise from the TV IF justdisappeared and I had nothing to switch off!

Not having any idea how to mix in myvideo (character generator output) with thesync, I just hooked up a 2 K pot where the620 ohm is shown, and started reducingvideo until it stopped interfering with the

sync, and there I was at 620 ohms. All wasfine, until I erased my character memoryand started typing in one character at a time.Contrast went all to pot! 1 had provided noDC restoration. And I never did. At least notin the TV set circuitry.

My terminal design produces 24 lines of64 characters each, with a total of 270 scanlines per frame. Vertical sync is the 10 scanlines that would have been character line 26.To eliminate the need for the type of DCrestoration as detailed in "Television Inter-face" (page 20, BYTE, October 1975), Igenerated a black level blanking signal cover-ing what would have been character lines 25thru 27. This signal enters the blanking gate,IC1, at pin 2 in figure 1. Now, when I turnon my system and erase the memory, my TVfield shows a nice white area with a blackborder top and bottom. My character gen-erator output produces black on whitecharacters which I find preferable to theusual white on black.

Simply by turning off the logic power Ican be instantly flooded with the inanitiesemanating from the vast TV wasteland. Withthis design, I have no need to pull plugs orthrow switches. Sometimes ignorance can bebliss."

38

Tool Box

Robert Baker34 White Pine DrLittleton MA 01460

How many different tools and fastenerscan you find hidden in the matrix? Theletters of each tool name are in a straightline, going horizontally, vertically ordiagonally, either backwards or forwards.See how many words you can find "openloop." The official list will appear in nextmonth's BYTE.

HSU

R B WMWR A E H S

0 R

A J P

E A 1 1

1

R E

M M A H U

L D L A W R C

R V 1

TAP

1 L

1 R 1

MLER

E

H 1

V T A Y E

G 1 E

E T C 0 S

C A S E U

H R

N L R

R WR MT

N S

RET

C A

M L F

S E 1 E

R

U R

E D N

E U

E 0 0 A E MT

1

P 0 V P 1

R Q

N 0 R WZ P E

P

R S

1 A B

E S

T T C

R E E R P

E S

R R B

D C

S 0 E

E R R U

E

T 1

D W L

L R

E T P

N S N A

R

N C T E E

0 1

K 0 S

C C F 1

L

E S

U R R S B

1 M E

H T A L

X C K N 1 F

E E

D N E

E D L E

N 0 S

E WO T R

Components and Parts Answer

Here is the solution to the Componentsand Parts puzzle which appeared on page 64of the June 1976 BYTE.

«•

H

0

T

oTf

R

A|N|S|l|S|T|0|R

i|n|d

u

c

T

0

R

oB

»

ES

A

UB

E

EGULA

T

C

r| i

A

c

R

v|c

0

E_

N_

T

1

0

M

E

N_S

V

1

D|l C

0

«

ZE

B

0|L

T

N

s

M

A

u

f|a

N

F

• E

T

7[F

N

u

T

EC

0

RM_

E

0

E

T

0|R |0

i

D

R

mm

1

E

R

R

ju

N

s

0

C|K|E

T

N

R

0

d|i

S

p|l|a

Y

HEA

T

c

s

c

R

71

H

*

R

M|||S|T|0|R

u

LA

C

H

0

K E

A

P

E|

I

ru

■

*

rJh

o|s|t|a|t|

VA

L

'

f

D|l

A

L

c

T

R

A

N

s

1

S

T

o

_A^M

P

C

1T

c

0N

A

T

T|E|N|U|A|T|0

R

0_R

MP

E

1

NK

»

R

_A_C

P |H

0

tIoIcIbIlU

s|o

L

e In

0

I

D

°w

L

Tj

a|n

T

A|L|U

M

I

R

EN

s

tJh

Y

R|l |S|T|0|R

°l

1

EM

0R

LE

F

^F

T1

T

R | 1 |M

M

e|r

\T

s

E

D

1 |0|D

E

c

0 |R

E

m| i

C

R|0

p

R|0|C|E|S

s

0

R

R

RYS

R

E

c

R

E

k|e

Y

b|o|a

R

D

KN

P

A

D D|E]R

GA

E

K

c

0|,

L

ME

T

e|r

C|H

0

P |P

E

"

W

1

T

c|h

H

A

T

A

B

R

E

p

L

UG

p

■-K

IMSAI

announcesa unique

4KRAMboardfor just$139.

Nobody has a 4K RAM boardthat gives you so much for yourmoney. It's fully compatible withthe Altair 8800.

Through the front panelor under software control, youcan write protect or unprotectany IK group of RAM's. Alsounder software control you cancheck the status of any 4K RAMboard in IK blocks to determinewhether it's protected or not. Theboard has LED's that clearly showyou the memory protect statusof each IK block and whichblock is active. And there's acircuit provided that will let youprevent the loss of data in thememory if there's a power failure.This low power board has aguaranteed 450 ns cycle time-no wait cycle required. There'snothing like the IMSAI 4K RAMboard around.

Dealer inquiries invited.

M

IMS Associates, Inc.

17.

IMS Associates, Inc. Dept. B-71922 Republic Ave.San Leandro, CA 94577(415) 483-2093

Order Your IMSAI 4K RAM Board ForOnly $139. Use BankAmericard.Master Charge, personal check ormoney order.

7

□ Send .

□ Charge to my credil cardD BAC NoD MC No..

. 4K RAM boards today

Signature

Name

Address

Cilu/Slate/Zip.

Lr

zJ

Put the "Do Everything"Chip in Your Next Design

Robert Baker34 White Pine DrLittleton MA 01460

The TMS-5501 is a multifunction, 10controller available from Texas Instrumentsin a 40 pin dual in line package. It providesan asynchronous communications interfacewith programmable data rate, a parallel data10 buffer, interrupt control logic, and fiveprogrammable interval timers in a singlechip. Although designed specifically for usewith a TMS-8080 central processor, it maybe used with almost any other micropro-cessor as described in this article. Figure 1shows a functional block diagram of theTMS-5501 and table 1 lists the pin assign-ments along with a brief description of eachpin.

The system data bus is used for datatransfers between the TMS-5501 and themicroprocessor as controlled by the inter-rupt, chip enable, sync, and address lines. A

convenient method of addressing theTMS-5501 is to connect the chip enable tothe high order address line and the fourTMS-5501 address inputs to the four lowerorder address bits of the address bus, limit-ing the system to 32 K bytes of memoryspace (on an 8080 based system). Alter-nately, a full address decode could be donewith additional hardware logic. The fourmemory address inputs of the TMS-5501 arethen used to select one of the 14 possiblecommands shown in table 2. The individualcommands are actually generated by exe-cuting memory reference instructions, withthe low order hexadecimal memory addressbeing the TMS-5501 command. This pro-vides great flexibility by allowing the use ofany memory reference instruction for IOoperations.

SYNC CE

i_

INT ■>A0-A3-

00-07

CONTROL

BUFFER

8

-t—

INTERVALTIMERS

INTERRUPTREGISTER

rm

SENS

INTERRUPTADDRESS

PRIORITYLOGIC

8

-V »

MASKREGISTER

8

RECEIVERBUFFER

XI

RECEIVERREGISTER

INPUTPORT

8

RATEREGISTER

RCV/XMTCONTROL

RCV

XO

OUTPUTPORT

'8

TRANS-MITTERBUFFER

TRANS-MITTER

REGISTER

lXMT

Figure 1: Block Diagramof the Texas InstrumentsTMS-5501 Design. Thisdiagram shows the ele-ments which are containedwithin this "do every-thing" IO chip. Notationsnext to the intercon-nection lines specify thenumber of bits involved inthe data path.

40

Table 1: TMS-5501 PinAssignments and Func-tions. This information istaken directly from theTexas Instruments Incor-porated TMS-5501 Multi-function Input/OutputController Manual.

Command Functions

Addressing the "Issue Discrete Com-mand" function (storing data in memorylocation XXX4) will cause the TMS-5501to decode the data bus information as shownin figure 2. Bits 1, 2, and 3 are latched untila new discrete command is received. Settingthe RESET bit low has no effect, whilesetting it high will:

1. Clear the receiver flags in theTMS-5501 but not the receiver buffer.

2. Set the transmitter data output high(marking) and set the XMIT BUFFEREMPTY bit high to indicate the bufferis ready to accept a character from theprocessor.

3. Clear the interrupt register except forthe transmitter buffer interrupt.

4. Inhibit interval timers.

Setting the Interrupt Acknowledge Enablebit high will allow the TMS-5501 to decodethe processor status (bit 0 of the data bus atSYNC of each 8080 machine cycle) todetermine if an interrupt acknowledge isbeing issued by the processor and initiateappropriate interrupt operation. Otherwise,with the bit set low, the TMS-5501 willignore the interrupt acknowledge. Bits 4 and5 are only used for testing purposes andshould always be kept low.

Reading the TMS-5501 status (memoryreference to address XXX3) will return adata byte indicating the status of the con-troller as shown in figure 3. A brief descrip-tion of each bit follows:

BitO —A high indicates a framing errordetected on the last receivedcharacter.

Bit 1 — A high indicates a new characterwas loaded into the receiver buf-fer before the previous characterwas read.

Bit 2 — Normally high when no data isbeing received.

Bit 3 — A high indicates a new characteris in the receiver buffer.

Bit 4 —A high indicates an emptytransmitter buffer ready to ac-cept a character.

Bit 5 — A high indicates one or more

SIGNATURE

PIN

CE

18

A3

17

A2

16

Al

15

A0

14

SYNC

19

DESCRIPTIONINPUTS

Chip enable - When CE is low, the TMS 5501 address decoding is inhibited, whichprevents execution of any of the TMS 5501 commands.

Address bus - A3 through AO are the lines that are addressed by the TMS 8080 toselect a particular TMS 5501 function.

Synchronizing signal — The SYNC signal is issued by the TMS 8080 and indicates thebeginning of a machine cycle and availability of machine status. When the SYNCsignal is active jhigh), the TMS 5501 will monitor the data bus bits DO (interruptacknowledge) and D1 (WO, data output function).

Receiver serial data inputline - RCV must be held in the inactive (high) state whennot receiving data. A transition from high to low will activate the receive circuitry.

X10

39

External inputs

- These

eight external inputs are gated to the

data bus when the

Xll

38

read-external-inputs function is addressed. External input n is gated bus bit n without

X12

37

conversion.

X13

36

X14

35

X15

34

X16

33

X17

32

SENS

22

External interrui

3t sensing - A transition from low to high at SENS sets a bit in the

interrupt register

, which.

if enabled, generates an interrupt to the TMS 8080.

OUTPUTS

XOO

24

External outputs

- These

eight external outputs are driven by the

complement of the

X0 1

25

output register;

i.e.: if ol

itput register bit n is loaded with a high (

low! from data bus

X0 2

26

bit n by a load-output register command, the external output n will be a low (high).

X0 3

27

The external out

puts change only when a load-output-register function is addressed.

X0 4

28

X0 5

29

X0 6

30

X0 7

31

XMT

40

Transmitter serial data output line — This line remains high when the TMS 5501 is not

transmitting.

DATA BUS INPUT/OUTPUT

DO

13

Data bus — Dati

i transfers between the TMS 5501 and the TMS 8080 are made via

Dl

12

the 8 bit bidirect

ional data bus. DO is the LSB. D7 is the MSB.

D2

11

D3

10

D4

9

D5

8

D6

7

D7

6

INT

23

Interrupt — When active

(highl, the INT output indicates that

at least one of the

interrupt conditions has occurred and that its corresponding mask-

register bit is set.

POWER AND CLOCKS

vss

4

Ground reference

VBB

1

Supply voltage 1-

-5 V nominal)

vcc

2

Supply voltage (5 V nomi

nail

VDD

3

Supply voltage (12 V non-

linal)

*1

20

Phase 1 clock

02

21

Phase 2 clock

Low Order

Binary Address

Address

(Hexadecimal)

A3 A2

A1

AO Command

Function

0

L L

L

L Read receiver buffer

RBn-> Dn

1

L L

L

H Read external inputs

Xln-Dn

2

L L

H

L Read interrupt address

RST- Dn

3

L L

H

H Read TMS 5501 status

(Status) -» D

n

See figure 3

4

L H

L

L Issue discrete command.'

i See figure 2

5

L H

L

H Load rate register

See figure 4

6

L H

H

L Load transmitter buffer

Dn-* TBn

7

L H

H

H Load output port

Dn-XOn

8

H L

L

L Load mask register

Dn-> MRn

9

H L

L

H Load interval timer 1

Dn -» Timer

1

A

H L

H

L Load interval timer 2

Dn -» Timer

2

B

H L

H

H Load interval timer 3

Dn -» Timer

3

C

H H

L

L Load interval timer 4

Dn ■* Timer

4

D

H H

L

H Load interval timer 5

Dn -» Timer

5

E

H H

H

L No function

F

H H

H

H No function

Table 2: TMS-5501 Commands. The commands presented to this device arebest implemented by memory references to addresses XXXO through XXXF(hexadecimal) where XXX is an arbitrary location in memory address space.The low order hexadecimal address for each command, along with the binarycode presented to the address lines. The notation Dn refers to data bus line"n" where n is 0 to 7.

41

NORMALLY LOWA

BIT:

NOTUSED

NOTUSED

TESTBIT

TESTBIT

3

INT.ACK.

ENABLE

H: Enables interrupt acknowledge —L: Inhibits interrupt acknowledge —

INT. 7SELECT

H: Selects XI 7-L: Selects interval timer 5-

BREAK

RESET

— H: ResetL: No action

H: L Sets XMT output lowL- L: H Sets XMT output high

Figure 2: Discrete Com-mand Format. The databus contents stored in theTMS-550J when addresslocation XXX4 receivesprocessor data is inter-preted using this format.

interrupt conditions have oc-curred and the correspondinginterrupt is enabled.

Bit 6 — A high indicates detection of thefirst data bit of a receive-datacharacter.

Bit 7 — A high indicates detection of thestart bit of an incoming datacharacter.

Addressing the load rate register function(storing data in memory location XXX5)will allow the TMS-5501 to load the internaldata rate register from the data bus. The bitassignments of the rate register are il-lustrated in figure 4. Bit 7 selects the desirednumber of stop bits while setting a bitbetween bits 0 and 6 selects the transmitter/receiver baud rate between 110 and 9600baud. If more than one rate bit is high, thehighest rate will be selected. If bits 0 to 6 areall low, the receiver and transmitter circuitrywill be disabled.

Reading the receiver buffer (addressXXXO) or external inputs (address XXX1)will return the data received from the ex-ternal devices while loading the transmitterbuffer (address XXX6) or output port (ad-dress XXX7) will output data to the externaldevices. The load mask register (addressXXX8) function loads the data byte into aninterrupt mask register where a high in bit"n" enables interrupt "n". See table 3 for alist of the possible interrupts, their priorities,and information on the corresponding RSTinstruction for an 8080 processor. Address-ing the read-interrupt address function willreturn the highest priority interrupt address

BIT:

7START

BITDETECT

6

FULL

BIT

DETECT

5

INTRPT

PENDING

4

XMITBUFFEREMPTY

3

RCV

BUFFER

LOADED

2

SERIALRCVD

1

OVERRUN

ERROR

0

FRAMEERROR

(the RST instruction) and clear the corre-sponding bit in the interrupt register. TheTMS-5501 status should be checked for aninterrupt pending before trying to read aninterrupt address to avoid false data.

Loading an interval timer loads the con-tents of the data bus into the correspondinginterval timer and activates that particulartimer. The timer then counts down inincrements of 64 microseconds providing aprogrammable interval of 64 to 16,320microseconds with longer intervals generatedby cascading timers through software. Whena timer reaches zero, it generates an inter-rupt which in turn can control any desiredfunction such as scanning a keyboard orswitch matrix, time slicing in a multipro-gramming environment, etc. Loading a newvalue while a timer is counting overrides theprevious value and the timer starts countingdown the new value. If a zero value is loadedto a timer, an interrupt is generatedimmediately.

Interrupt System

The TMS-5501 provides several interruptcontrol functions by receiving external inter-rupt signals, generating interrupt signals tothe processor, masking out undesired inter-rupts, establishing priority of interrupts, andgenerating RST instructions for an 8080processor. External interrupts are normallyreceived on pin 22, the SENS input, but anadditional external interrupt can be receivedat the XI7 input pin if selected by a discretecommand. The TMS-5501 will generate aninterrupt to the processor whenever any ofthe five internal interval timers counts to

Figure 3: Status Word For-mat. The data read intothe processor whenTMS-5501 address loca-tion XXX3 is referenced isin this format.

42

BIT:

7

6

5

4

3

2

1

0

STOP

9600

4800

2400

1200

300

150

110

BIT(s)

baud

baud

baud

baud

baud

baud

baud

— H: One stop bit

— L:

Two stop bits

zero, the receiver buffer is loaded, or thetransmitter buffer is empty. When an inter-rupt signal is generated, it is compared withthe mask register. If that particular interruptis enabled, it is passed on to the prioritylogic which allows the highest priority inter-rupt to generate an RST instruction to the8080 processor only if no higher priorityinterrupt is still pending.

Two methods of servicing interrupts areprovided: an interrupt driven system utili-zing the RST instructions or a polled inter-rupt system utilizing bit 5 of the TMS-5501status byte (the interrupt pending bit). In aninterrupt driven system, the INT outputsignal of the TMS-5501 is connected to theINT input of an 8080 processor. The normalinterrupt sequence would be as follows:

1, TMS-5501 receives an external inter-

rupt or generates an internal interruptsignal and sets the appropriate RSTinstruction.

2. The INT output goes high signaling theprocessor that an interrupt has oc-curred.

3. If the 8080 is enabled to acceptinterrupts, it sets the INTA (interruptacknowledge) status bit high at SYNCtime of the next machine cycle.

4. If the TMS-5501 has previously re-ceived an interrupt acknowledge en-able command from the processor (seebit 3 of discrete command), the RSTinstruction will be transferred on thedata bus to the CPU.

In a polled interrupt system, the INToutput is not used and the interrupt se-quence would be as follows:

Figure 4: Data Rate Com-mand Format. The databus contents stored In theTMS-5501 address loca-tion XXX5 has this for-mat, and is used to controlthe internal data rategenerator for serial com-munications. A high levelon the appropriate selec-tion bit sets that data rateunless another bit at ahigher rate is also selected.

MODEL CC-7 SPECIFICATIONS:

A. Recording Mode: Tape saturation binary.This is not an FSK or Home type recorder.No voice capability. No Modem. (NRZ)

B. Two channels (1) Clock, (2) Data. OR, Twodata channels providing four (4) tracks onthe cassette. Can also be used for Bi-Phase,Manchester codes etc.

C. Inputs: Two (2). Will accept TTY, TTL orRS 232 digital.

D. Outputs: Two (2). Board changeable fromRS 232 to TTY or TTL digital.

E. Runs at 2400 baud or less. Synchronous orAsynchronous. Runs at 4800 baud or less.Synchronous or Asynchronous. Runs at3.1 "/sec. Speed regulation ±.5%

F. Comparability: Will interface any computeror terminal with a serial I/O. (Altair, Sphere,M6800, PDP8, LSI 11, IMSAI, etc.

G. Other Data: (110-220 V), (50-60 Hz); 3Watts total; UL listed 955D; three wire linecord; on/off switch; audio, meter and lightoperation monitors. Remote control of mo-tor optional. Four foot, seven conductorremoting cable provided. Uses high gradeaudio cassettes.

H. Warrantee: 90 days. All units tested at 300and 2400 baud before shipment. Test cas-sette with 8080 software program included.This cassette was recorded and played backduring quality control.

ALSO AVAILABLE: MODEL CC-7A with vari-able speed motor. Uses electronic speed controlat 4"/sec. or less. Regulation 1 .2%Runs at 4800 baud Synchronous or Asynchro-nous without external circuitry.Recommended for quantity users who ex-change tapes. Comes with speed adjusting tapeto set exact speed.

DIGITAL DATA RECORDER $149.95

FOR COMPUTER or TELETYPE USEAny baud rate up to 4800

Uses the industry standard tape satura-tion method to beat all FSK systems ten toone. No modems or FSK decoders required.Loads 8K of memory in 17 seconds. Thisrecorder, using high grade audio cassettes,enables you to back up your computer byloading and dumping programs and data fastas you go, thus enabling you to get by withless memory. Can be software controlled.

Model CC7.Model CC7A.

.$149.95..$169.95

NATIONAL multiplex

CORPORATION

NEW - 8080 I/O BOARD with ROM.Permanent Relief from "Bootstrap Chafing"

This is our new "turnkey" board. Turn onyour Altair or Imsai and go (No Bootstrap-ping). Controls one terminal (CRT or TTY)and one or two cassettes with all programsin ROM. Enables you to turn on and justtype in wfiat you want done. Loads, Dumps,Examines, Modifies from the keyboard inHex. Loads Octal. For the cassettes, it is afully software controlled Load and Dump atthe touch of a key. Even loads MITS Basic.Ends "Bootstrap Chafe" forever. Uses 512bytes of ROM, one UART for the terminaland one USART for the Cassettes. Ourorders are backing up on this one. No. 2SIO(R)

Kit form $140. — Fully assembled andtested $170.00

Send Two Dollars for Cassette Operating

and Maintenance Manual with Schematics

and Software control data for 8080 and

6800. Includes Manual on

I/O board above. Postpaid

Master Charge & BankAmericard accepted.

On orders for Recorders and Kits please add$2.00 for Shipping & Handling.(N.J. Residents add 5% Sales Tax)

3474 Rand Avenue, Box 288South Plainfield, New Jersey 07080(201) 561-3600

43

Data Bus Bit

Priority

0

1

2

3

4

5

6

7

Interrupt Caused By

1

H

H

H

L

L

L

H

H

Interval Timer 1

2

H

H

H

H

L

L

H

H

Interval Timer 2

3

H

H

H

L

H

L

H

H

External Sensor

4

H

H

H

H

H

L

H

H

Interval Timer 3

5

H

H

H

L

L

H

H

H

Receiver Buffer

6

H

H

H

H

L

H

H

H

Transmitter Buffer

7

H

H

H

L

H

H

H

H

Interval Timer 4

8

H

H

H

H

H

H

H

H

Interval Timer 5 or X17

Table 3: Interrupt Assignments. This tablelists the priority level and source of eachinterrupt. For 8080 systems without pre-viously dedicated restart instructions, theTMS-5501 can be used to automaticallygenerate RST n where n is the priority level.Otherwise, some form of polling is required.

1. The TMS-5501 receives or generates aninterrupt and sets the correspondingRST instruction.

2. The TMS-5501 interrupt pendingstatus bit (see bit 5 of status byte) isset high.

3. At some predetermined time, the pro-cessor polls the TMS-5501 by readingthe status byte and checking the inter-rupt pending bit.

4. If the bit is high, the processor shouldthen read the interrupt address whichwill cause the TMS-5501 to transferthe RST instruction to the processoras data.

5. The software can then decode the RSTinstruction to determine the inter-rupting device.

With an 8080 processor, the TMS-5501controller may be used in either interruptmode. For any other microprocessor basedsystem, the TMS-5501 would be easiest toimplement using a polled interrupt systemthat would not require any extra hardwareto interface with the CPU. An alternatemethod would use part of both interruptschemes by connecting the INT output tothe CPU interrupt input but disabling theTMS-5501 interrupt acknowledge enable bit(bit 3 of discrete commands = low). Thiswould eliminate the need to poll theTMS-5501 status byte but the interruptaddress (the RST instruction) would stillhave to be read and decoded by the CPU.

Applications

The TMS-5501 appears to be an idealinterface for the typical personal computersystem with many different possible applica-tions. For example, suppose we connected aCRT to the external output port and anASCII keyboard to the external input port.The serial 10 port could then be used with aTeletype for hardcopy, an accoustic couplerfor loading from another system (or inter-system communications), or for a cassettedrive. You may want to connect a switch tothe SENS input to cause an interrupt thatwould return to a system control or debugroutine.

For an ideal cassette interface, the serial10 could transfer data to and from thecassette deck while the external outputscould be used to control drive functionssuch as forward, reverse, fast forward, etc.The external inputs might be used forinputting status information from the drivesuch as end of tape, start of tape, tape jam,etc. With this scheme, true searches and tapescans could be accomplished under fullsoftware control with no manual actionsrequired once a tape is inserted in the drive.

As you can clearly see, there's an endlessnumber of possibilities for the TMS-5501limited only by your imagination. Even ifyour system is not based on an 8080processor, it is well worth looking at theTMS-5501 for your IO needs.■

Election Program

The following is paraphrased from aversion submitted by Mark T O'Bryan ofPortage Ml, who credits it to a friend atMIT.

Question: "What's the biggest problem inwriting

Answer: Trying to figure out what to do withthe other 4095 bytes of memory."

Jerry Ford1 Scoop JacksonJimmy CarterRonald Reagan

simulator for an Altairwith only 4096 bytesof memory?

New Hope For Computer Phreaques

According to a report published inElectronic Products magazine, April 1976,page 16, Commander Thomas Orr ofWarsash, England, has created a digitalelectronic watch which reads the pulse rateof its wearer. Just think, now you can checkto see if you're dead or not. The watch ismarketed in the United States by PulseWatch of Tiburon CA and the transducertechnology on which it is based has muchwider applications in medical electronics."

44

Now, you can buy an Altair 8800 orAltair 680 computer kit right off theshelf. Most ail Altair options, softwareand manuals are also available. TheMITS Dealer List below is just thebeginning:

off the shelf

RETAIL COMPUTER STORE,410 N. E. 72ndSeattle, WA 98115

(206)524-4101

COMPUTER KITS1044 University Ave.Berkeley, CA 94710(415)845-5300

ARROWHEAD COMPUTER(THE COMPUTER STORE)820 BroadwaySanta Monica, CA. 90401

INC.

CTI DATA SYSTEMS3450 East Spring St.Long Beach, CA 90806

(213)426-7375

GATEWAY ELECTRONICS2839 W. 44th Ave.Denver, CO 80211(303)458-5444

CO.

BYTETRONICS5604 Kingston PikeKnoxville, TN 37919

(615)588-8971

the COMPUTER STORE, INC.120 CambridgeBurlington, Mass. 01803

(617)272-8770

THE COMPUTER SYSTEMCENTER

3330 Piedmont RoadAtlanta, GA 30305

(404)231-1691

GATEWAY ELECTRONICS8123-25 Page Blvd.St. Louis, MO 63130

(314)427-6116

MARSH DATA SYSTEMS5405-B Southern Comfort Blvd.Tampa, FL 33614

(813)886-9890

MICROSYSTEMS6605A Backlick Rd.Springfield, VA 22150

(Washington DC area)(703)569-1110

THE COMPUTER ROOM3938 Beau D'Rue DriveEagan, Minn. 55122(612)452-2567COMPUTER PRODUCTS UNLIMITED

4216 West 12th St.

Little Rock, Arkansas 72204

(501)666-2839

NOTE: Altair is a trademark of MITS, Inc.

Why Wait?

Build a FAST Cassette Interface

Dr Robert Suding

Research Director for Digital Group Inc

PO Box 6528

Denver CO 80206

This cassette interface does not have a±30% speed tolerance. The design requires±12V and +5 V to run. A good qualityrecorder must be used, along with excellentquality tapes. Careful adjustments arerequired.

So why use it? Well, it works! It'sdependable. And it's fast. In contrast, theproposed BYTE standard cassette interfaceruns at 300 Baud. A Teletype paper tapereads @ 110 Baud. I have 24 K on mysystem. How long would it take me tocompletely load my system (not includingany Bootstrap Loader operations)?

Teletype @ 110 Baud - 40 minutes 58

secondsProposed BYTE standard @ 300 Baud -

15 minutes 1 second

The system to be shown in this article hasbeen running for almost a year at 1100 Baud(with an upper limit of 1750 Baud withcritical tuning).

Suding system @ 1100 Baud — 4 minutes6 seconds

Past issues of BYTE have included severalarticles on cassette interface proposals and

circuits. I would suggest re-reading thesearticles. You will find one common element.Slow. If you get the impression that I'mimpatient, you're right. I'll bet you are too.Imagine reading 300 Baud for 15 minutes todiscover a noise pulse had destroyed data,requiring re-reading. Ugh!

Thus the proposed standard of the BYTEKansas City conference in 1975 has a majordisadvantage: The use of a redundant Man-chester format with a 1200 Hz low fre-quency critically restricts the user to slowerdata rates. A related disadvantage for thosewho use filters or phase lock loops as aninput detection method is the fact that theManchester code employs harmonically re-lated frequencies; this leads to designproblems in detectors based upon frequencydiscrimination techniques.

The system shown in this article avoidsthe above pitfalls. It uses the non-harmoni-cally related tones of 2125 Hz — Mark and2975 Hz — Space. The second harmonic of2125 Hz occurs at 4250 Hz, well down onthe passband of a 2975 Hz detector. Suffi-cient space exists between the two frequen-cies to allow for reasonable recorder speeddiscrepancies. The higher frequencies in-volved permit increasing the data rate.

Several approaches are possible in cassetteinterfacing, as seen in past BYTE articles.However, their emphasis on wide cassettespeed tolerance made them slower. My

46

FULL WAVE DETECTORS

2975 HzBANDPASS FILTER

FROM CASSETTERECORDER OUTPUT Rl8

-w

DS5IN4I48

-w

DS4IN4I4B

R29IOK

^

R3IIOOK

—wv—

DS6

IN414B

DS7

IN4I48

R3447K

R33IOOK

DS9IN4I48DS8N4I48

R42

50 K TO TTL

READ OFFSET ADJUST INPUT PORT

Figure 1: The schematic of the Sliding cassette input interface as found in the Digital Group systems. This interface amplifiesand clips the cassette output with limiting amplifier IC34, discriminates the two data frequencies (see table 1) with bandpassfilters followed by full wave detectors, passes the detected signal through a 3 pole active low pass filter, then converts the resultto a TTL level which is read by a single bit input port. One example of software (see listing I) to drive this input interface uses aprogrammed simulation of UART input algorithm; an actual UART or AC I A device could be substituted if desired.

approach to "out of specification cassettespeed" is — "put it in the specification, orget a good recorder." More of that later.

Theory of Operation

The 1100 Baud Digital Group system usesthe circuits of figures 1 and 2. The cassettereceive circuitry detects the prerecordedfrequency shift keying and produces a "1"or a "0" output as a result of a detected2125 Hz or 2975 Hz tone at the input. A741 operational amplifier, IC34, is used as aclamped limiter which prevents variations incassette amplitude from affecting the detec-tion process. The output of the limitershould be about .6 V peak to peak, roughlya square wave with rounded edges of theincoming frequency, constant in amplituderegardless of tape volume setting or minortape "dropout" problems.

Two bandpass active filters (IC35) thenamplify a tone five times when actuallytuned to their respective frequencies of 2975Hz for the top filter, and 2125 Hz for thelower filter. The further off the tunedfrequency the tone is, the less amplificationthe filter will produce. The gain, bandwidth,and tuned frequency are set by the threeresistors and two condensers in each filter.Each filter may be exactly tuned to fre-quency by carefully setting the variableresistance value (which may be either apotentiometer or selected fixed values).

Full wave active detectors producerectified full wave pulses at the summingjunction, pin 5 of IC37. The 2975 Hz tonesare rectified to a positive voltage, and the2125 Hz tones are rectified to a negativevoltage. As received tones depart from eitherexact frequency, a value less positive or

47

SPACE ADJ

(2975 Hz)

R40

5K „ R|2

1 DSI-T- IN4I48

A

FROM TTLOUTPUT PORT

TO CASSETTEMICROPHONEINPUT OR "AUX"

Figure 2: The schematic of the Suding cassette output interface as found inthe Digital Group systems. The output interface is a simple audio frequencyshift key er made up of a 566 voltage controlled oscillator with two frequencystates controlled by a single TTL data line. The TTL level which drives theoutput modulator is a single bit derived from an output port. The software(see listing 2) to drive this output interface is shown as a programmedsimulation of a UART output algorithm; an actual UART or AC IA devicecould be substituted if desired.

negative is produced until approximatelymidway (2550 Hz) a summed voltage of 0results.

A three pole lowpass active filter thenremoves the remaining traces of pulsatingDC from the summed signal with almost noeffect on the data pulses up to a speed of1000 bits per second. If lower data rateswere to be utilized, an improved signal tonoise ratio could be obtained by multiplyingthe values of C12, C13, and CI 1 by thereciprocal of the data rate ratio. Table 1shows some component values for alter-native frequency designs.

The final receiver section is a 741 opera-tional amplifier, IC38, connected as a slicer.This operational amplifier detects whetherthe voltage at its pin 2 is positive or negativewith respect to the constant voltage at itspin 3. The output voltage will then swingeither to nearly -12 V or to nearly +5 V.Notice that this operational amplifier has +5as its positive supply voltage, pin 7. Aforward biased germanium diode preventsthe actual output voltage from going less

Tune Up Notes

The cassette interface must be carefully tunedto achieve proper performance. Careless tuning hasbeen the most frequent cause of cassette systemfailure.

1. Plug in the six integrated circuits of thecassette interface.

2. Connect a calibrated audio oscillatorbetween the limiter input and ground. Adigital frequency counter driven by theaudio oscillator is highly recommended. Theoscillator should cover the desired range of2 — 3 kHz, with a sine wave output of .5 orso, although the precise level is not at allcritical.

3. Apply +5 and ±12 voltages to the circuit.Measure the output at pin 6 of the 741limiter (IC34) with an oscilloscope. Thewave shape should be a rounded squarewave of about .6 V peak to peak.

4. Set the audio oscillator to 2125 Hz. Measurethe output at pin 1 of the 5558 activebandpass filter. Slowly turn R25 until thesignal peaks. Be sure that you are peaking at2125 Hz, not a harmonic. Vary the oscil-lator frequency a few decades to insure2125 Hz is the tuned frequency.

5. Similarly, set the oscillator to 2975 Hz andmeasure the output at pin 7 of the 5558(IC35). Slowly turn R26 until the signalpeaks. Vary the oscillator to insure a 2975Hz peak.

6. Measure the detected voltages at pin 5 ofIC37. When the oscillator approaches 2125,the voltage should go negative. When ap-proaching 2975, the voltage should go posi-tive. Trouble in this area would most likelybe caused by reversed or defective diodes, orshorts between adjacent lines.

7. Measure the voltage at the cathode (bar) endof the output clamping germanium diode

(G1). Sweeping the frequency between2125 and 2975 Hz should result in a cleanvoltage jump somewhere between 2125 and2975 Hz. Measure the output swing toinsure that it does not exceed +5, —.3 V.

8. Remove the audio oscillator and short inputconnector J1 temporarily to ground. Meas-ure the output at pin 6 of IC34. A stablecondition (no oscillation) should be seen.Connect the oscilloscope to the cathode ofG1 again. Adjust the balance potentiometer(R42) so that the output voltage is anegative level. Slowly turn the potentio-meter until the output voltage jumps to apositive level and leave the setting at thispoint.

9. Disconnect the temporary jumper from theinput connector and reconnect the audiooscillator. Perform step 7 again. The cross-over threshold should be close to 2550 now.If all proceeds well at this point, the cassetteinterface is ready to receive data.

10. Connect the oscilloscope to pin 4 of the566 voltage controlled oscillator (1C33). Atriangular wave output should be seen.

11. Connect a temporary jumper between theTTL input going to DS1 and +5 V. Connecta frequency counter to pin 3 of the VCO(IC33). Adjust potentiometer R41 for aresultant output frequency of 2125 Hz.

12. Remove the jumper from +5 V and connectthe jumper from DSVs input to ground.This time adjust R40 for 2975 Hz output.

13. Remove the jumpers, and you are ready forfinal tune in the driving circuit. Connect thecassette interface to the driving output port,and program the driving processor to send aTTL high level ("1") output to the cassetteinterface. Adjust R41 to 2125 Hz. Thenhave the processor send a "0" level. Thistime adjust R40 for 2975 Hz output. Thecassette interface is now ready for use.

48

than ss -.2 V, so that valid TTL levels arenot exceeded. An offset adjusting poten-tiometer allows the output to be placed in a"Mark Hold" condition when no tone inputis being detected.

The cassette recording section (figure 2)uses a single integrated circuit, a 566 voltagecontrolled oscillator, IC33. A logic levelfrom the computer's output port controlsthe resultant audio frequency output to thecassette recorder microphone input. A highinput ("1") produces a 2125 Hz output, anda low input ("0") results in 2975 Hz. Theoutput wave shape is a symmetrical trian-gular wave. Should the user object to using atriangular wave, a more nearly sine wave canbe obtained by connecting a pair of back toback 1N914 diodes between ground and theoutput side of the coupling capacitor C5.

Exact values and high quality com-ponents will result in a trouble-free voltagecontrolled oscillator. The 47 K(R17) resistorin series with the output is a typical value tobe used when coupling to the low level, lowimpedence external microphone inputs ofmost cassette recorders. Using the "AUX"input of your cassette recorder generallygives better results.

Construction

The cassette interface is available as a partof a printed circuit board kit from theDigital Group. The printed circuit board isshared by a television display circuit to bedescribed in the next article in this series. Akit of the cassette interface only is alsoavailable from the Digital Group for $30,which includes all parts and the printedcircuit board. The experienced builder canbuild the circuit in an evening or two byhand wiring components on standard .1 inchgrid Vectorboard. All the circuitry can becontained in an area of approximately 3 inchby 5 inch (about 8 cm by 13 cm).

Be sure to use only high quality com-ponents, particularly in the active bandpassfilters and voltage controlled oscillator.Some strange "frequency jump" problemshave been traced to surplus 566s which weretemperature sensitive. Lay out the receivecircuit to avoid feedback paths from outputto input, particularly in the limiter, activebandpass filters, and slicer areas. Differentop amps could be used, but may result ininstability or degradation of final perfor-mance due to suboptimization.

Modifying Your Cassette Recorder

It is very helpful to listen to the datafrom the cassette so that the beginning ofthe data burst may be detected, as well as

VIDEOTERMINAL

For youR

ALTAIR

OR

IMSAI

VIDEO TERMINAL INTERFACE

Connects to standard TV monitor (or modified receiver)to display 16 lines ot 64 or 32 characters in a 7 x 9matrix Character set includes 128 upper and lower caseASCII characters and 64 graphic characters lor plotting48 x 64 (128 with memory option) array. Text and graph -ics may be mixed on the same screen. 8-bit keyboardinput port is provided. Characters are stored in the on-board memory and may be read or written by the com-puter. Cursor control, text editing and graphics softwareis included. Fully compatible with Altair and IMSAISockets included

VTI/32 32 character line $185.00 kitVTI/64 64 character line $210.00 kit $285.00 assd.

ANALOG INTERFACE

Complete interface for a CRT graphics display or X-Yplotter Provides 8 channels ol software-controlled A/Dconversion. 1 or 2 channels ol analog output with 10-bitresolution (0-10vor + 5v out), 6 bits of latched digitaloutput, and 8 analog comparators Software included torA/D conversion by successive approximation and track-ing Sockets includedADA/1 1 analog output $145 00 kitADA/2 2 analog outputs $195 00 kit $255 00 assd

SEE THESE AND OTHER

PRODUCTS AT THE FOLLOWING

COMPUTER STORES

THE COMPUTER STORE (213)478-3168

Los Angeles, CA

THE COMPUTER MART (714)633-1222

Orange, CA

COMPUTERS & STUFF (415)278-4720

San Lorenzo, CA

COMPUTERS* STUFF (801)377-1717

Provo, Utah

COMPUTER SYSTEMS CENTER (404)231-1691Atlanta, GA

RYTESH0P (415)969-5464

Mountain View, CA

DEALER INQUIRIES INVITED

All prices and specifications subject Id change wilhout notice Prices are USA onlyCalif residents add 6 i sales lax Add 5% shipping, handling, and insurance

POLYMORPHICSYSTEMS

737 S. Kellogg, Goleta, CA 93017 1805)967-2351

Bank American] .mil Master Charge Accepted

49

Low Filter High Filter Low Pass Filter VCO

R21 R24 R25 R22 R23 R26^^C13 C12 C14~ R12 R15

* »

2125-2975 Hz

1100 Baud 6.8 k 68 k 938 4.7 k 47 k 697 .0056 pF .01 .015 2.7 k 1.3 k

1200-2400 Hz300 Baud

(Simple) 6.8 k 68 k 4173 4.7 k 47 k 1162 .0056 MF .01 .015 470 k 2.7 k

1200-2400 Hz

300 Baud

(Correct) 12 k 120 k 1668 5.6 k 56 k 906 .015mF .033 .047 470 k 2.7 k

2125-2295

100 Baud

(Simple) 6.8 k 68 k 938 4.7 k 47 k 1301 ..0056mF .01 .015 47 k 2.7 k

2125-2295

100 Baud

(Correct) 36 k 360 k 156 27 k 270 k 179 .056mF .1 .15 47 k 2.7 k

* means that the value so indicated is the typical calculated value. The precise value is dependent on componenttolerance.

Table 1: Theoretical values of components for alternate frequencies. This table gives values ofcomponents to be used with the circuits of figures 7 and 2 in order to make this cassette interfacework with several alternate specifications. See the text for a definition of the various comments atthe left of the table.

Potential Troubles

Knowing about potential problem areas is afirst step to minimization of their effects. Troublesseem to break down into six classes.

• Cassette recorders and the cassettes used: Amarriage between your $1000 microprocessor andjunior's $20 cassette recorder, which has beenusing 3CW cassettes for the last five years, will notproduce happy offspring! I have been using aSuperscope C-104 for the past year, and can reportno failures except for defective cassette tapes. TheC-104 has several attractive features. Besides theusual conveniences such as index counter, cuing,etc, it has a variable readback speed control, dandyfor out of spec cassettes from friends. Inside,another special motor speed control potentiometeris located near the speaker which allows preciselysetting the record/write speed. Quality controlseems good overall, and the list price of $120(cheaper at discount stores) is worth the invest-ment. Don't waste your money on cheap cassettes.Sony Low Noise C-45s have been generally good.Some $2 — $4 Data Certified Cassettes aresuperior, but not needed.

• Microprocessor caused problems: Somemicroprocessor designs will not work directly withthis interface system. This interface was designedto be connected directly to a single bit IO port,with the processor handling all of the bit timingsthrough timing loops. If your processor mustperiodically catch its breath for such things asdynamic memory refreshing, you may be unable todirectly use the "Software UART" system. What ashame! However, a hardware UART will permitusing the system even with a system of this nature.

• Cabling problems: It is possible to connectyour cassette recorders with the read and writecables reversed. Enough crosstalk from the writeline to the read limiter existed to give theappearance of data being read, but so many errorsresulted that the programming would not run.

• Tuning problems: Circuit tuning is the mostcommon problem. Carefully tune the active filters!

• Cassette Crashes: Cassette damage is frequent

on tapes which have always worked before, but

now mysteriously fail. The most common cause of

this is removing a cassette from the recorder

without completely rewinding. The exposed oxide

then gets damaged, and is no longer usable.

• Miscellaneous circuit problems:

Defective level output from cassette read limiter.

1. None at all: Check for ±12 V to IC34, andIC34.

2. Too high output level: Diodes (DS4 andDS5) open, or one is reversed.

Bandpass active filters don't filter.

1. Off frequency

2. Bad 5558

3. Check for shorts or out of tolerance con-densers C8, C9, C10, or C11. Disk ceramicsare a "no-no" in tuned circuits.

4. Resistors improperly wired or inserted.Full wave detector does not work as described:

1. Diodes open, reversed or shorted.

2. Defective IC36.

Low pass active filter fails to work:

1. Shorted or out of tolerance condensers.

2. Defective IC37.

Output sheer (IG38) fails to produce TTL levels:

1. Reversed, open or not Germanium diode atDG1.

2. Too heavily loaded output. This circuitshould drive no more than one TTL load(standard for most IO ports).

VCO won't oscillate.

1. Defective 566 (IC33).

2. Shorted condenser C6.

VCO has parasitic oscillation (high frequency):

1. C7 not connected.

2. Defective 566.

3. C6 is open, producing a very high fre-quency.

VCO won't tune to frequency or stay there:

1. Out of tolerance or defective C6. You reallydidn't use a disk ceramic here, did you?

2. Defective 566.

3. Non-TTL levels used to drive VCO.

4. Defective potentiometers R40 or R41.

5. DS1 or DZ2 reversed or defective.

50

hearing the end of the data. When thecassette read cable is plugged into mostcassette recorders' earphone output jack, thespeaker output is usually cut off. However,since a closed circuit jack is all that isinvolved, a quick solution is to connect ajumper on the jack so that the speaker is notdisconnected. Even better, use a 100 ohm 14watt resistor instead of the jumper, and thedata howl won't be so loud. A 10 ohm, '/4watt resistor from the amplifier lead to jack,to the jack frame will prevent potentialdamage to the output driving transistor(s).

Alternative Frequencies and Applications

The cassette interface design may be usedwith the proposed BYTE standard shouldyou so desire. Table 1 has appropriatecomponent values calculated for two alter-native possibilities: the simple way (lessdesirable) and the "right way". The simpleway permits using a switch on the bandpassactive filters to select the frequency pairs.The right way involves setting the circuit tothe optimal values, and using separate inter-faces for each frequency pair.

Amateur radio (ham) radioteletype(RTTY) generally uses 2125 - 2295 Hzfrequency shift keying for 170 Hz shift. Theexisting cassette interface can be used by"straddle tuning," but improved per-formance may be obtained by selecting asecond R26 which will tune the high filter to2295. The cassette read cable may then beattached to the short wave receiver and themicroprocessor, programmed as a radiotele-'type video terminal, which can replace thenoisy Teletype machine. Of course, acassette interface specifically designed forthis 170 Hz shift at 100 WPM will givesuperior performance under marginal condi-tions.

The cassette interface may be used as astand alone radioteletype terminal unit andaudio frequency shift keying if desired, andworks quite nicely in this application.

Software

I would suggest using software for yourcassette read and write timings. Sample 8080software is included as listing 1. Timings atlocations <0>/116, <0>/133, <0>/241,and <0>/260 are based on an 8080 systemwith a 500 ns T time and no wait states.Slower systems will require proportionatelydecreased loop timings.

A UART could be used instead of the"software UART" system shown. However,several disadvantages arise. First, a slightlygreater cost and complexity. More impor-tant, however, is a degradation in total

If you want a microcomputerwith all of these standard features • •.

• 8080 MPU (The onewith growing soft-ware support)

• 1024 Byte ROM(With maximum capacity of 4K Bytes)

• 1024 Byte RAM(With maximumcapacity of 2KBytes)

• TTY Serial I/O•E1A Serial I/O

• 3 parallel l/O's•ASCII/Baudotterminal com-

patibility with TTY machines or video units• Monitor having load, dump, display, insertand go functions

• Complete with cardconnectors■ ComprehensiveUser's Manual, plusIntel 8080 User'sManual• Completelyfactory assembledand tested —nota kit

• Optional ac-cessories: Key-board/videodisplay, audiocassette modem

interface, power supply, ROM programmerand attractive cabinetry... plus more optionsto follow. The HAL MCEM 8080. $375

• • .then let us send you our card.

HAL Communications Corp. hasbeen a leader in digital communi-cations for over half a decade.The MCEM-8080 microcomputershows just how far this leadershiphas taken us... and how far itcan take you in your applications.That's why we'd like to sendyou our card—one PCboard that we feel is thebest-valued, most complete

ffl

microcomputer you can buy. Fordetails on the MCEM-8080, writetoday. We'll also include compre-hensive information on the HALDS-3000 KSR microprocessor-based terminal, the terminal thatgives you multi-code compati-bility, flexibility for futurechanges, editing, and aconvenient, large videodisplay format.

HAL Communications Corp.

Box 365,807 E. Green Street, Urbana, Illinois 61801

Telephone (217) 367-7373

51

Listing 1: Stand AloneSudlng Cassette Input Pro-gram. This program is aself contained data trans-fer routine which willtransfer a block of datafrom cassette to split octalmemory locationsxxx/xxx through yyy/OOO.This program assumes thatMEMTOCAS (see listing 2)was used to create the tapebeing read. A more gener-ally useful input facilitywould be modelled on thisprogram and linked to asystem monitor as a sub-routine.

Split

Octal

Address

Octal Code

Label

Op.

Operand

<0>/100

041

XXX

XXX

CASTOMEM

LXI

H,xxx/xxx

<0>/103

021

010

000

STARTBYT

LXI

D,000/000

<0>/106

333

001

SYNCHLOO

IN

1

<0>/110

346

001

AMI

1

<0>/112

302

106

<0>

JNZ

SYNCHLOO

*<0>/115

006

300

MVI

B.300

<0>/117

005

WSYNCH

DCR

B

<0>/120

302

117

<0>

JNZ

WSYNCH

<0>/123

333

001

GETDATA

IN

1

<0>/125

346

001

AMI

1

<0>/127

202

ADD

D

<0>/130

017

RRC

<0>/131

127

MOV

D,A

*<0>/132

006

200

MVI

B,200

<0>/134

005

WD ATA

DCR

B

<0>/135

302

134

<0>

JNZ

WDATA

<0>/140

035

DCR

E

<0>/141

302

123

<0>

JNZ

GETDATA

<0>/144

162

MOV

M,D

<0>/145

043

INX

H

<0>/146

174

MOV

A,H

^ <0>/147

376

yyy

CPI

vw

<0>/151

302

103

<0>

JNZ

STARTBYT

<0>/154

166

HLT

Commentary

Load starting address in HL pair;

Load E, clear D;

Port 1 bit 0 read for input;

Mask all but bit 0;

If not start bit then reiterate loop;

Time delay to middle of first data bit*;

Decrement synch wait count;

If not done then keep waiting;

Read port 1 bit 0 again;

Mask all but bit 0 again;

Sum old bits with new bit;

Rotate new and old into next position;

Save result back in D;

Time delay between bits;

Decrement data wait count;

If not done then keep waiting;

Decrement data count loaded at 0/103;

If not done then repeat for next bit;

Save received data in memory;

Point to next available location;

Move high order address to A for end check;

Has high order address reached end?

If not then reiterate for next byte;

End input;

Notes:

Listing 2: Stand AloneSuding Cassette OutputProgram. This program is aself contained data trans-fer routine which willtransfer a block of datafrom split octal memorylocations xxx/xxx throughyyy/OOO onto cassettetape after a five secondleader output delay. Thisprogram assumes thatCASTOMEM (see listing 1)will be used to read thetape being created. A moregenerally useful output fa-cility would be modelledon this program and linkedto a system monitor as asubroutine.

Input is assumed to be wired to bit 0 of port 1, from output of IC38 pin 6 via resistor R38 and shunted

by diode DG1.

Loading proceeds from split octal address xxx/xxx to address yyy/OOO. Enter this program by jumping to

location <0>/100 after setting up constants of address.

"*" indicates a timing constant for the "software UART" inputs.

" 'J " indicates the end of transfer comparison mentioned in text.

<0> indicates an arbitrary page location for this program, to be replaced by a real memory page number

when actually loading the program at byte 100 of some page.

Commentary

Split

Octal

Address

Octal Code

Label

Op.

Operand

<0>/200

041 xxx

xxx

MEMTOCAS

LXI

H,xxx/xxx

<0>/203

076 001

MVI

A,1

<0>/205

323 001

OUT

1

<0>/207

026 012

MVI

D.012

<0>/211

006 377

LEADER5S

MVI

B.377

<0>/213

016 377

LEADER5X

MVI

C.377

<0>/215

015

LEADER5Y

DCR

C

<0>/216

302 215

<0>

JNZ

LEADER5Y

<0>/221

005

DCR

B

<0>/222

302 213

<0>

JNZ

LEADER5X

<0>/225

025

DCR

D

<0>/226

302 211

<0>

JNZ

LEADER5S

Load starting address in HL pair;

Start port output in high state;

Send initial state out;

Outer leader delay count;

Outer leader delay loop return;

Middle leader delay loop return;

Inner leader delay loop return;

If inner loop not done then reiterate;

Middle leader delay count;

If middle loop not done then reiterate;

Outer leader delay count;

If outer loop not done then reiterate;

Upon reaching this point, 5 seconds of mark (high) state havebeen output to the cassette interface.

<0>/231

016

011

BYTEOUT

MVI

C,011

<0>/233

257

XRA

A

<0>/234

176

MOV

A,M

<0>/235

027

RAL

<0>/236

323

001

WNEXBIT

OUT

1

*<0>/240

006

200

MVI

B.200

<0>/242

005

WOUTLOOP

DCR

B

<0>/243

302

242

<0>

JNZ

WOUTLOOP

<0>/246

037

RAR

<0>/247

015

DCR

C

<0>/250

302

236

<0>

JNZ

WNEXBIT

<0>/253

076

001

MVI

A,001

<0>/255

323

001

OUT

1

*<0>/257

006

377

MVI

B,377

<0>/261

005

WIBDELAY

DCR

B

<0>/262

302

261

<0>

JNZ

WIBDELAY

<0>/265

043

INX

H

<0>/266

174

MOV

A,H

7<0>/267

376

VW

CPI

VW

<0>/271

302

231

<0>

JNZ

BYTEOUT

<0>/274

166

HLT

Define output bit count (decimal 9);Clear carry (start bit level is 0);Move current byte to A;Rotate bit into position (carry=0 first);Send current LSB to output port;Time delay between bits;Decrement delay count;If time left then reiterate;Rotate new bit into position;Decrement output bit count;If data left then reiterate;Stop bit state defined

then sent out to port;Stop bit value set;Decrement stop bit counter;If time left then reiterate;Increment memory address;Move high order address to A for end check;Has high order address reached end?If not then continue output process;End output;

Note:

Output is assumed to be wired from bit 0 of port 1 to DS1 in figure 2.See notes to listing 1 for listing conventions.

52

system flexibility. The "software UART"allows the timing constants to be dynami-cally modified (if desired) by detecting thevariations in the stop bit timing, therebycompensating for wow and flutter. Digitalintegration of the incoming data bits ispossible by setting a register to octal 200 atthe beginning of each bit time. During thebit time, repeated sampling either adds orsubtracts from the register (depending onwhether 1 or 0) and a "branch minus"instruction system effectively eliminates re-ceive problems. This digital integrationdetection is utilized by the Digital GroupZ-80 cassette read software.

Versions of this "software UART" sys-tem have been written for 8008, 8080, Z-80,6502, and 6800. All work satisfactorily.

Operation

This cassette system is utilized by firstturning on the cassette recorder and waitinguntil the lower tone 5 second leader tone isheard. At this point, restart the system tothe beginning address of the "Cassette toMemory" software.

Cassette writing is accomplished by re-starting the system to the beginning of the

"Memory to Cassette" programming. Be sureto set the appropriate start and stop ad-dresses prior to beginning the read or writeoperations. The monitor programs in thevarious Digital Group systems automaticallyset the start and stop addresses. The checkmarks in the listing (\J) indicate the pointswhere start and stop addresses may have tobe modified.

The software may be adjusted to run atdifferent data rates by changing the values atthe addresses mark with an asterisk (*). Notethat the constants at <0>/1 33 and <0>/241are the same. The constant at <0>/116 is50% greater and the constant at <0>/260 istwice the value of the constant at<0>/241.

Summing It Up

This cassette interface represents a simplebut fast and dependable way to store pro-grams and data for the serious hobbyist. Itdoes not seek to be all things to all users, buta number of applications can be run usingthe same basic design. The detail interfacedesign has independence from other com-ponents in the system, allowing variousprocessors to use the same cassette system(with appropriate software)."

UNBELIEVABLE!!!!!

The intecolor® 8001 Kit

A Complete 8 COLOR intelligentCRT Terminal Kit

$1,395

Complete" Means

• 8080 CPU • 25 Line x 80 Character/Line • 4Kx8 RAM /PROM Software

• Sockets for UV Erasable PROM • 19" Shadow Mask Color CR Tube

• RS232 I/O • Sockets for 64 Special Graphics • Selectable Baud Rates to9600 Baud • Single Package • 8 Color Monitor • ASCII Set

• Keyboard • Bell • Manual

And you also get the Intecolor" 8001 9 Sector Convergence System forease of set up (3-5 minutes) and stability.Additional Options Available:

• Roll • Additional RAM to 32K • 48 Line x 80 Characters/Line • Light Pen

• Limited Graphics Mode • Background Color • Special Graphics Characters

• Games

ISC WILL MAKE A BELIEVER OUT OF YOU.

Send me_

(no.) Intecolor" 8001 kits at $1,395 plus $15.00 ship-

ping charges each

Enclosed is my □ cashier s check. □ money order. □ personal check*

□ $350 deposit/kit for COD shipment for $

NAME :

ADDRESS

CITY

STATE.

ZIP_

•Allow 8 weeks clearance on personal checks.Delivery 30-60 days ARO

Inrollinont Cuctomc fnrn 4376 Rid9e Cate Drive, Duluth, Georgia 30136iiilemyei11 ayiicms v.uip.„ Telephone(404)449 5961

53

Surplus Electronics in Tokyo and Manila

Dr Michael N Hayes

PO Box 167

Port Orchard WA 98366

Both Manila and Tokyoare characterized by alarge number of very com-petitive shops which dealprimarily in components.

Integrated circuits are ararity in the surplus elec-tronics markets. A shop inManila keeps integratedcircuits in a glass casesimilar to those found in ajewelry shop.

This article is a brief summary of some ofmy experiences, opinions, and observationswhile searching for and buying surpluselectronic components in Tokyo, Japan,during October 1975; and in Manila, Re-public of the Philippines, during November1975. Perhaps this information will be ofinterest to US buyers and hobbyists forcomparison purposes or in case they havethe opportunity to visit these places.

In summary, the surplus electronics mar-ket in Tokyo is far better than that inManila, but neither place offers the quantityof sophisticated computer electronics andintegrated circuits available in the UnitedStates. The primary surplus electronic itemssold in both cities are components: resistors,capacitors, switches, panel lights, terminals,connectors, transistors, etc. Componentprices in Tokyo are roughly two thirds of USmainland prices, whereas in Manila the com-ponent prices are about the same as USprices. An important consideration here isthat these components really aren't con-sidered as surplus electronics in these cities,but are sold as retail electronics, subject toconsiderable bargaining, through hundredsof small shops and stands concentrated intospecific areas of each city. Time did notpermit investigation of industrial surplusoutlets or auctions, but the impressionformed is that the large numbers and compe-titiveness of these small stores preclude easybargains from auctions or company sales.

Prices quoted in this article are of specificsampled items and are for illustration pur-

Photo J: The author infront of a surplus outlet inManila, Philippines.

poses only. All prices are in US dollars orcents with the following approximate ex-change rates in effect: Tokyo, 300 yen perUS $1; Manila, 7.5 pesos per US $1. Therewas a considerable disparity in prices amongvarious stores; and thus, much like a market-place, significant price savings could befound on selected items by spending thetime to shop around. In many cases priceson selected items in one store, especially inManila, might be half or double what wasfound in another store.

The real surplus electronics bargains ofthe Far East are rumored to be found inTaiwan, Hong Kong, and related areas.Perhaps a reader who has visited these areascould write in and supply additional find-ings.

Tokyo, Japan

The entire Tokyo surplus electronics mar-ket, along with significant portions of theretail electronics market, is concentrated inan area called Akihabara (pronounced ah-kee-ha-ba-rah), northeast of the downtownarea. To reach it, one simply takes one ofthe many trains available from the elaborateTokyo train and subway system.

What is incredible about Akihabara is notso much what they have, as the quantity inwhich they have it. There are literallyhundreds of tiny outlets here selling every-thing imaginable in the way of electrical andelectronic goods: televisions, stereos,speakers, tape recorders, radios, ham equip-ment, light bulbs, tools, wire, refrigerators,air conditioners, etc. Much of the electronicmarket is transistor radios and calculators,but the number of components stores andamount of available "surplus" electroniccomponents to be found far exceeds anycomparable area I have seen in any US city.

Each of these shops has components incounters, bins, or stands by the hundreds,with small signs marking the types andprices. Bargaining is expected in most storesbut frowned upon in a few. Most of theseshop owners are hard bargainers, but in mostcases a 1 0 — 20 percent savings can result.

54

Here is a list of some sample items andprices in Tokyo:

Ribbon cable, 10 conductor, Spectra

Strip — 1 0c" per fool.Toggle switches — 754 to $1.Small experimenter's PC cards (2 inch

square) - I Of!.MC 7805s-$2.50.

44 pin PC board edge connectors — 75a1.Small capacitors — 5^ to I 0i/ .7400s — 554 (there are not really too

many ICs available).PC boards with components — 25c/ to 50ci

to $1 (most have Japanese numbered

transistors and ICs).Resistors - 24 to 5</.General 50 pin connectors — $2.Crystals — small types — 51.Partial calculator PC boards — no cases —

older styles - $2.Partial cassette tape decks, audio, missing

or damaged electronics — $ I to $3.IC sockets - 30</ to 60?!.

Manila, Republic of the Philippines

The main area of Manila for surpluselectronics is called Raon (pronounced rah-own) Street and is located in a district nearthe downtown area called Quiapo (pro-nounced Kee-c//7-po). The name of RaonStreet, including its signs, was recentlychanged to Gonzalo Puyat; but the Jeepneydrivers still know it as Raon Street or Raondistrict. The best way to get to Raon is totake a Jeepney, which is any of the old WWII jeeps which have been painted and elabor-ately decorated and are now used as taxisthroughout the Philippines. The ride willcost about 25</ from anywhere in the down-town Manila area. English is spoken and usedextensively in the Philippines making it veryeasy for an American to get around and tobe understood.

The Raon District has about 30 smallshops which sell electronic parts in displaycases and parts bins. The setup is similar tothat in Tokyo, but Manila has only a smallfraction (less than 10 percent) of thenumber of stores. The quantity of merchan-dise available in each store was considerablyless than in the typical Tokyo store.Bargaining in Manila is expected and a 20 to30 percent savings is not hard to get.

I also found several stores in San Fer-nando, a small town about 40 miles west ofManila. These stores were very similar to theones in Manila and seemed to support thelocal TV repair shops.

None of the shops in Manila or SanFernando had any computer equipment, andonly a few of them had any integrated

circuits. The integrated circuits were usuallyonly a handful, mounted in styrofoam andkept by the owner in a glass display case,like jewels in a jewelry store.

Here is a list of some sample items andprices in Manila:

Small capacitors - \04 to 20e\

7400s — $1 lo $3 depending upon the

store.Alligator clips 20c\Panel lights, small - 504 to 604; no LEDs

available.Medium sized capacitors - 204 to 304-Larger electrolytic capacitors — $1 to

$1.50.Small variable capacitors — 154.Power transistors (T03), general types -

20(zf to 30s/.Small potentiometers - 254 to 50jdRegular metal potentiometers — 504-12 Watt transformers - $ 1.50.Small plastic transistors -10^ to 20^.7472 - $3, 7423 - $6, 7485 - $4, 7473

-$1.50, UA709- $1.50 to $2,

LM311 -- $3.25.44 pin PC board edge connectors —

$ 1.40Transistor heal sinks — 154-Resistors - 54 lo \Q>4-

In conclusion, it's probably not worth-while to make a special trip lo either Tokyoor Manila to purchase surplus electronicsfrom these markets. However, if one hap-pens to be visiting cither city, there are someselected bargains to be had by shoppingaround."

It's probably not worth-while to make a specialtrip to either Tokyo orManila to buy surpluselectronics; but if youhappen to pass througheither town on other busi-ness, the surplus marketsare definitely worth a sidetrip.

Photo 2: Bargain hunting in Akihabara, a district of Tokyo.

55

The Great 6<

With 0060 plug-in modules and software fromthe capabilities you've been dreaming of 1

Sound Memory Judgment

Processor Technology nowoffers two options in low-power, faststatic memory. Our read/write staticmemory modules—the 4KRA (4096words) and the double-density 8KRA(8192 words)—are more reliable,less expensive, and require lesspower than any other availablemodules of comparable capacity.

Doth memories use the samelow-power static RAM's (our primesupplier is AMD). All RAM's are manu-factured to exacting military specifi-cation MIL STD-883C The 2102A-4RAM's used by our competitors arenot low power—their data sheetsshow they use more than double thepower (worst case) of ours. Both ofour modules will retain data whenpowered by two MD" flashlight cells.

(Connectors for battery powerand re-charging are built in.)

The 8KRA has an exclusiveaddress offset switch. This allows it torecognize any 8K address segment atIK intervals, such as from 2K to 10K.

Each integrated circuit has itsown premium grade, low profile ICsocket (optional in the 4KRA). ICsockets make assembly testing andrepair many times easier. You'llquickly grow to appreciate them.

4KRA (without sockets or DIP switch)4096-word Static MemoryModule$139

4KRA (all sockets and switch incl) $154

8KRA 8192-word Static Memory Module(all sockets included) $295

>0O Cvolution

Processor Technology, you con now afford to>your Altoir or 1MSAI minicomputer system.

Accessible Software!

We firmly believe that" good software should be easily obtainable for thehobbyist. You shouldn't have to resort to searching or copying source listings,just because some software can cost you as much as your entire minicomputersystem. Processor Technology now offers four well-tested software packages.

Their prices are within reach, and more are on the way!

Software Packaged

Resident Assembler/Cdhor/Monitor

SW#1 is very easy to use, even if youhove little or no software background. Ifgives you power to develop and debugsmall to medium programs in 8080assembly language. It allows programentry and editing by line number. Up tosix program files may be stored at oncein memory. This sort of Assembly Languageprogramming should be used with anyhigh speed, real time, or complex I/Oapplications. (Recommended totalmemory: 8192 bytes or more.) SourceListing: $5.00—Paper Tape: $9.50.

Software Package#2

BASIC

This conversational language is mostuseful in scientific, educational and recrea-tional applications. Commands and state-ments are close to normal English. Thefloating-point calculations in our 5K BASICare considerably faster than most other8080 versions. (Any BASIC language is,however, best used in programs with fairlylow speed requirements.) Ours is the onlyBASIC available that can store severalprograms in memory at once. Its formattedoutput provides for easier financial calcu-lations, with multiple statements per line'and assembly language routine callingcapability. (Recommended total memory:8192 bytes or more, from address zero.)Source Listing only: $5.00.

OCAL

(®Dlgital equipment Corporation)

This is a math oriented languagedesigned for scientific and educationalapplications. All programs written in stan-dard DEC FOCAL for the PDP-8 will run on8080 based machines, using our versionof FOCAL. (Recommended total memory:8192 bytes or more.) Source Listing: $5.00—Paper Tape: $9.50.

Math Pack

Scientific NotationCalculator Program

Our Math Pack will provide basicmath functions in a small memory system.In essence, it's a calculator that will add,subtract, multiply, divide and square root.You are allowed four variables, and youcan set the decimal point (fixed or floating)between 0 and 12. Utilize either Algebraicor Reverse Polish logic —or mix them! (Pro-gram Requirements: 4096 total bytes,starting at address zero; 1300 bytesreserved for program space.) Source Listingand Paper Tape (combination only): $9.50.

Processor Technology manufacturesa full line of plug-in modules compatiblewith the Alfair and IMSAI minicomputers.Write us now for our free brochure or thelocation of your nearest PTCO dealer.

Technology

6200-L Hollis StreetEmeryville, CA 94608

Photo I: The Direct Etch Method. In this method, a one of a kind printed circuit is made by putting the pattern directly ontothe copper. A San ford's "Sharpie" pen (available in most stationery stores) can be used to draw patterns directly, and tape resistcan be used for more uniform runs. If tape resist is used, care should be taken to avoid gaps in the adhesion of the tape to thecopper.

Make Your Own Printed Circuits

James Hogenson

Box 295

Halsted MN 56548

Photos accompanying thisarticle arc by Ed Crab tree,using materials supplied bythe author.

The widespread commercial use ofprinted circuits in electronic equipmentbegan a few decades back when engineersstarted looking for more efficient wiringtechniques to replace laborious hand-wiringmethods. One of the first methods tried wasto deposit (in other words, to print) aconductive ink pattern on a base of insulat-ing material. The original method, printing,gave its name to all subsequent methods.Today, the term printed circuit refers to anyelectrical circuit in which individual wirelead connections have been replaced by atwo dimensional conductive pattern bondedto an insulating base material.

Contemporary printed circuits consist ofetched copper foil wiring patterns bonded to

any of several insulating substrate materialssturdy enough to serve as a mounting basefor the actual electrical components whichmake up the circuit. Although originallydeveloped for mass production applications,printed circuit fabrication techniques havebeen refined until they can now be used byalmost anyone with average mechanicalskills.

Choosing your base material, the board, isa matter of price and purpose. The best isthe epoxy glass board while phenolic (bake-lite) is the cheapest. Phenolic base material isperfectly adequate for many applications,but since small boards are relatively inex-pensive, epoxy glass is usually the optimumchoice. The base material often comes

58

Photo 2: Printing the Cir-cuit. Once a negative ofthe artwork has beencreated, the next step is toprint the circuit. The nega-tive is placed over a sensi-tized PC board and heldfirmly in place by a glasscover plate in the printingframe. The glass guar-antees smooth and evencontact for accurate trans-fer of the image. Theboard is then exposed to aphotoflood lamp for oneto three minutes.

laminated with copper foil on one or bothsides.

The toughest part of making your firstprinted circuit board is getting started. Inother words, the process may not be asdifficult as you had thought.

A pattern of etch resist is applied by oneof several methods to the copper foil. Theboard is then immersed in a chemical solu-tion (usually a ferric chloride solution)which etches away all exposed copper. Thenthe board is washed and the etch resistpattern removed. The copper foil that wascovered by etch resist remains on the boardto provide you with a printed circuit.

Plan the Layout

The first step toward making your ownprinted circuit board is planning the layout.

Draw the circuit pattern on paper as itshould appear on the printed circuit board.You will use this as a guide for laying outthe actual etch resist pattern. Keep in mindthat you are looking at your board from thebottom when looking at the foil side. Becareful not to put the pattern on the printedcircuit board upside down. (I've made thatmistake more than once!)

Direct Etch

Direct resist is a method often used whena one of a kind board pattern is needed. Drytransfer etch resistant patterns are applieddirectly to the copper. The dry transferpatterns form integrated circuit pads, tran-sistor pads, edge connectors, round donutpads, etc. Narrow etch resistant tape isapplied to complete the circuit path between

A printed circuit is anyelectrical circuit in whichindividual wire leads havebeen replaced by a twodimensional conductivepattern bonded to an in-sulating base material.

The toughest part aboutmaking your own printedcircuits is getting started.

Photo 3: Results of Ex-posure. After being ex-posed, the photosensitivelayer is developed, usingan appropriate solution.An etch resist pattern willthen remain on the boardas in the example at left.(The dark blotches are oxi-dation on the copper.) Theboard is then etched withthe usual ferric chloridesolution. The finished pro-duct (hopefully free of im-perfections) is a printedcircuit board such as theone at right.

59

component pads. Etch resistant ink pens andresist paint are also available for directetching, as illustrated in photo I.

After etching, copper will remain on theboard only where dry transfer patterns orresist ink protected the copper foil from theetching solution. It should be noted that theetch resistant tape must be applied firmly,especially at overlaps, to keep the etchingsolution from getting under the tape andbreaking the conductive copper path.

The direct resist method does not requireextra steps for developing, as does the photoetch method. If only one printed circuitboard is going to be made from a pattern,the direct etch method may be a time saver.If more than one board is to be made fromone pattern, the direct etch method willquickly turn the element of time againstyou, since the pattern must be reconstructedon each board.

Photo 4: The "Cut-N-Peel" Method. A sheet of red mylar film on clearacetate backing is placed over the pattern to be copied. The negative is madeby carefully tracing the pattern with a razor or sharp knife, then removing thered film wherever component pads and connections are to be made, (A tradename for the film used in this method is "Ruby/ith. ") The negative is thentransferred to sensitized copper and etched.

W§^

Photo 5: The Bishop Graphics " 'B' Neg" Method. In this method, a negativeis made directly, using self adhesive black patterns on a mylar backing. Theconnections between patterns are made by cutting away the black layer witha sharp knife as in the "Cut-N-Peel" method.

Photo Etching

The photo resist method is the mostefficient method for making more than oneprinted circuit board of a kind. Photo resistetching is probably the most popular meth-od, and is often preferred even for one of akind printed circuit boards. The differencebetween photo resist and direct resist is theway the resist pattern is applied.

The copperclad board to be photo etchedis first sprayed with a thin coat of a photosensitive etch resist. This etch resist issensitive to ultraviolet light The sensitizedboard must be handled in a darkened roomusing a yellow light for illumination.

After the resist is dry, a negative of theprinted circuit pattern is placed over thesensitized board in a print frame, as shownin photo 2. The board is exposed to the lightof a photo flood lamp through the negativefor one to three minutes. It is then immersedin a resist developer solution for about oneminute. Only the etch resist which wasexposed to the bright light will remain onthe copper foil, as in photo 3. The resist isno longer light sensitive after developing, butshould be allowed to dry for a short time.The board may then be etched. The copperwhich is protected by the remaining etchresist will not be removed. After the boardhas been etched, the resist is removed andthe board may be cut, drilled, andassembled.

Making Negatives

It is plain to see that exposing a boardthrough a reusable negative is much simplerthan reconstructing the pattern by handeach time the pattern is used. The negative

60

may be obtained by a number of methods.If a pattern is not too complex, the"Cut-N-Peel" method of photo 4 can beused. The pattern is simply cut into a redfilm on a clear acetate backing. The red filmis peeled off, leaving a negative of thepattern.

If the pattern involves integrated circuits,the "Cut-N-Peel" method becomes ratherdifficult. The Bishop Graphics" 'B' Neg" ™method would be more suitable. The readymade negative component patterns are laidout on a mylar sheet according to desiredcomponent placement. The areas betweenthese self adhesive patterns are blacked out,using solid black acetate film. The onlycutting necessary is for connections betweencomponent patterns. Photo 5 illustrates thismethod. The finished product is a negativeof the entire printed circuit pattern.

Photographic Negatives

Perhaps the easiest and certainly the mostpopular method of obtaining the necessarynegative is to first make a positive pattern,then produce a negative by photographicmethods.

Positive artwork is made on a sheet ofclear mylar film with matte finish on oneside. This film is dimensionally stable andsimilar to plastic drafting film used bydraftsmen. Positive artwork patterns arewidely available in a large number of sizesand shapes. Photo 6 shows an example of acircuit being laid out with these patterns.Unless the artwork is going to be photo-graphically reduced, use 1:1 artwork pat-terns. The self adhesive positive artworkpatterns are laid out on the mylar sheetaccording to your pencil layout. Narrowblack tape is used to form conductive pathsbetween components. Graph paper or asimilar grid should be used as a guide fororderly and uniform positioning of patterns.Since components are normally configuredfor dimensions which are multiples of 0.1inch a 0.1 inch grid should be used.

A negative reproduction of your positivepattern can be made by a photographer or(preferably) by you. If you enjoy experi-menting with photography, you might tryexperimenting with lithographic and ortho-graphic films.

Photography Without a Darkroom?

The most popular negative producingmethod does not require photographic dark-room facilities. The special reversing filmused may be handled in subdued light or in adarkened room using a dim yellow light.The positive pattern is placed directly on top

Photo 6: The Traditional Photo Negative Method. In this method, a positiveartwork pattern is created, using preprinted self adhesive patterns andartwork tape. A sharp knife is used to cut the tape as it is being applied to themylar film backing. A photographic process must be used to invert the imageand create the negative form (see photo 5).

of the reversing film. The film is exposedthrough the positive artwork pattern to aphoto flood lamp for one to three minutesand developed by rubbing gently with acotton swab and a little film developingsolution, as shown in photo 7. The opaqueor colored emulsion on the film will rub offareas not exposed to light. The result is aclear pattern on a dark background.

A somewhat more involved but ratherunique artwork developing system is madeby Dalak. With the Datak film and develop-ing solutions, any of the following can bemade: (1) negative from film positive ororiginal artwork, (2) film positive fromnegative, (3) negative from negative, (4) filmpositive from film positive or original art-work, (5) film positive from black image onwhite paper, (6) film negative from blackimage on white paper. The last two methodsallow you to copy a printed circuit patterndirectly from a magazine page.

The Datak film is developed by methodssimilar to standard photographic procedures,so this method is more complicated and timeconsuming. Exposure and developing timesare somewhat more critical.Datak film may,however, be handled in subdued tungstenlight.

For a one shot printedcircuit, simply draw thepattern onto copper with aresist pen and dump theboard into ferric chlorideuntil done.

Advantages of Photo Resist Techniques

One of several advantages in using thephoto resist method will become apparentwhen a modification of an existing board is

61

Photo 7: Creating a Photo Negative for Etching. A negative is reproduced from the positive artwork pattern, using a reversingfilm, The film is exposed with a bright light, then developed by rubbing gently with a cotton swab and developing solution. Theresult is a negative version of the artwork with a 1:1 scaling.

For a unique approach tomaking jumpers on onelayer boards, see Don Lan-caster's "How to Build aMemory With One LayerPrinted Circuits" in theApril 1976 BYTE, page28.

made. (Like when you need to make a boardover because you forgot two or three con-nections. This does happen!) Rather thanreconstructing an entire printed circuit pat-tern, make only the necessary changes oradditions on the original artwork, then makea new negative and a new board. Making anew negative using reversing film requiresonly a few minutes of your time.

Double Sided Boards?

Sometimes a circuit will be too complexto fit on one side of a circuit board. Since aprinted circuit is only two dimensional,conductor paths cannot cross. Jumper wirescan be used to provide some crossovers, butif the circuit requires a large number ofcrossovers, a double sided circuit boardmight be considered. A double sided PCboard is one which has a copper foil patternon each side. The major consideration inmaking a double sided PC board is gettingthe pattern and terminals lined up. Bothsides of the board are developed and etchedat the same time.

Drilling

The step following the fabrication of a PCboard is drilling out the holes. A small benchtype drill press is ideal for this purpose. Astandard hand held drill is unsatisfactory asthe small drill bits break at low speeds.Commercially, small holes are drilled inboards at speeds as high as 70,000 RPM. ADremel "Moto-tool" is a suitable com-promise for work on printed circuit boards.This tool runs at 30,000 RPM. Such a toolwill not only drill out extremely small holes,but cut and shape printed circuit boards, andlend itself to a host of other uses not relatedto making boards. A multipurpose tool likethis is handy, especially for cutting outthings like board edge connectors.

If repairs or small changes are needed ona printed circuit board, a piece of bare wiresoldered over the foil is the cheapest andquickest modification. A conductive silverpaint is available for printed circuit repairs,but the paint is quite expensive. GC Electro-nics, Techniques Inc, Kepro, and Datakeach manufacture printed supplies for the

62

hobbyist in addition to their commercialproducts. Such supplies are distributedthrough a large number of mail order firmsand retailers. The appendix lists the variousproducts and who makes them. Cost ofmaterials will vary depending upon a numberof factors, but a figure of 20 cents persquare inch of printed circuit board willprovide a good rule of thumb to estimate thecost per board.

You will notice that Techniques andKepro do not manufacture photo resistspray. Instead, they sell printed circuit boardpanels with the photo resist already applied.Presensitized panels (which come wrappedindividually in dark paper) will assure you ofa uniform and dustfree coating of photoresist. However, if you make a mistakedeveloping the resist pattern, you willwaste the extra cost of presensitized panels.It is a good idea to start with a spray resist,then graduate to presensitized panels onceyou have refined your circuit fabricationtechniques. And the keys to refining yourtechniques are: Read instructions and famili-arize yourself with what you're doing, fol-low the instructions, take your time, becareful, and practice first, using small sampleboards. Follow those hints and you maysurprise yourself with the fine boards youcan turn out."

APPENDIX: Sources of Supply

Direct etch materials

Ink resist is made by GC Electronics, Tech-niques, and Kepro.

Dry transfer resist patterns are made by Tech-niques, Datak, and Kepro.

An ordinary "Sanford's Sharpie" marking penavailable for about 49 cents at any stationery storecan be used as a resist pen.

Photo etch supplies

"Cut-N-Peel" and " 'B' Neg" supplies aredistributed by GC electronics. (The " 'B' Neg"materials are manufactured by Bishop Graphics.)

Rubylith material, available at art supplyhouses, can also be used for cutting and peelingpatterns.

Positive artwork patterns and supplies are madeby Datak, Kepro, and Techniques. GC Electronicsdistributes artwork materials made by BishopGraphics. Bishop Graphics materials are also dis-tributed by independent distributors.

Photo etch supplies

Photo resist spray and developer are made byGC and Datak. Presensitized panels are distributedby Techniques and Kepro. Reversing film anddeveloper are made by Techniques, Kepro, andDatak.

All of the above mentioned manufacturers makeor distribute plain PC board panels (unsensitized)and etching solutions.

Photo flood lamps are available at photo supplyhouses. (Look for 375 Watt reflector flood lamp orNo. 2 (EVB) Photoflood.)

Photo 8: Close up, a successfully etched printed circuit will have even lineswith no hairline cracks or other imperfections. This example shows such aresult, prior to drilling out the holes for component leads.

Photo 9: When various imperfections enter the picture, the result is not soclean. Here is a high contrast picture of an imperfect result. The resist layerhas separated from the copper during the etch process at several points,resulting in holes in the copper and, in several instances, complete breaks incircuit runs.

63

A Plot 1$ IncompleteWithout Characters

Who would want to missthe opportunity of cre-ating customized graphicsfor special applications?

The design of a plottingdata format can be likenedto designing a special pur-pose computer instructionset; this instruction set isemulated by the plottingsoftware in real time.

Richard J Lerscih

8245 Mediterranean Way

Sacramento CA 95826

As computer hobbyists, a number of uswill sooner or later play around withgraphics using vector CRTs or XY penplotters; but very few of us will be willing topay the high price of a number of copy-righted plotting packages available todaythrough computer graphics houses. Besides,most of us will not want to miss theopportunity of creating our own packages.

So, in the process of interfacing yourgraphic media to your computer, you willnormally have built the software needed tocontrol simple vector moves on your media,as well as be able to window your plottings(that is, confine your moves within a speci-fied area).

But, you will find that one of your majorefforts will be building the character genera-tion module. As you will soon realize,computer graphics take large chunks ofmemory space for the graphic routines andplotting tables describing plotting sequences.Particularly, you will find that charactergeneration will take a large portion of thatmemory space.

In this article, I will describe some of thebasic concepts of character generation, anddescribe techniques of saving memory spacethrough efficient programming and by maxi-mizing the packing of information in theplotting tables.

I assume at this point that you havewithin your basic plotting software: (1) thecapability of shifting the relative originwithin the plotting frame and (2) the capa-

bility of chain plotting. That is, plotting avector from the ending point of the lastvector move to the new position on theplotting field without explicitly defining thebeginning point every time you make avector move. We make full use of these twocapabilities in plotting the character strings.

Plotting Frame

The easiest way of plotting a character isto define a plotting frame or grid uponwhich a sequence of vector moves are madefrom grid point to grid point. To minimizethe complications involved with signed vec-tors, it is best to set the origin in the lowerleft hand corner of the field on which thecharacter is to be plotted. With this conven-tion, the vector moves are positive upwardand to the right in the grid. In this way, wecan define the ending point of a vector movewith positive integer coordinates.

Limiting Frame and Plotting Resolution

Next, we have to define the resolution inplotting the characters. That is, we have todecide how many grid points we desirewithin a character frame. This depends onmany factors: How fine you want yourplotting; how many different characters youare to plot; how you are to pack the movesinto memory; what special effects or optionsyou desire. These considerations are allinterrelated and must be considered as awhole.

I will propose an optimum character gridfield within a limiting frame which will havea resolution as fine or finer than any usedtoday by the graphic houses in their charac-

64

The choice of a charactergrid should reflect the re-alities of the commonmachine designs. For mostmicrocomputers (andminicomputers), a charac-ter frame optimized for 8or 16 bit words isdesirable.

ter plotting packages. It will minimize theuse of storage, and will also have somecapability for special options. However, as auser of this software, you can make appro-priate changes in your own system to reducethe resolution or to eliminate some of thespecial options.

Figure 1 shows the (8 x 16) grid Ipropose. The storage origin (0,0) is definedto be in the lower left hand corner of thegrid. The character base origin (0,5) is at thelower third point of the left hand side of thelimiting frame such that upper case alpha-betic characters will be confined to theupper two-thirds of the grid frame. Thelower third will be used for the tails of lowercase alphabetic characters. The lower row ofthe grid will not be used for plotting; thisrow of 8 points will be reserved for flaggingspecial options, which will be explainedlater.

Specifying Moves

Since most of us are using or will beusing 8 or 16 bit machines, choosing thisgrid optimizes the packing of informationfor a vector move into an 8 bit byte ofmemory. A move to any point in this gridfield (figure I) could be defined with 3 bitsfor the horizontal (H) position, 4 bits for thevertical (V) position, and 1 bit for the Zfunction or the status (P) of the move (penup or pen down for pen plotters, or intensitymodulation in video graphics).

The 8 bits of H, V and P data for a movecan be packed in the six different ways, suchas HVP, VPH, PHV, VHP, HPV, orPVH. However, when packing such data into

the byte, one must consider which is thefastest way to unpack the values. Thisgreatly depends on the machine used. Inmost cases, it simply entails masking andshifting. I am going to use (VHP) as mystandard. Why? No reason except that it canbe implemented on most of the micros inuse today without excessive effort. Oneprocedure of unpacking the byte is given inappendix A.

To clarify further discussions on vectormoves, the coordinates of the moves withinthe limiting frame will be written as (V,H).When the Z function is included, the movewill be defined as (V,H,P) where

V is the vertical portion of the move

H is the horizontal portion of the move

P is the status of the Z function where,

0 is pen down or display tube electrongun on

1 is pen up or display tube electrongun off.

The lower portion of the grid (V = 0; H = 0to 7; P = 0 or I) will be reserved for specialoptions which will be defined later.

Optimization of the Storageof Character Moves

Once a user starts playing around withdeveloping the moves for each and everycharacter, he soon realizes that there are anumber of instances where a chain of movesis duplicated in the patterns of severalcharacters. One can take advantage of thisby building subchains and referencing themwhere it is appropriate to combine them in alarge sequence. For example, the upper case

Figure I: 8 by 16 Charac-ter Frame. Characters areplotted (or drawn on avector graphics display)with reference to this localcoordinate system, Aseries of 8 bit codes identi-fies the successive loca-tions of the pen (or elec-tron beam) and whether ornot a line is to be drawnwhile moving to the loca-tion, Fhe codes whichreference the bottom rowof this grid are treated asspecial operation codes forthe plotting software: sub-chain reference, half shiftright option, and floatingsubchain operation are de-fined in this article.

When implementing thissoftware for a graphic dis-play mechanism such as aCRT, pay attention tospeed of execution.Flicker will result if yourcomputer and softwarecannot keep up withyour eye's timing charac-teristics.

65

With the character de-fined, the next task is toshift, twist, stretch orsqueeze the characters asthey are drawn.

alphabetic characters, (G, C, 0, and Q1) canall be combined together in one single chain.Also, the many lower case alphabetic charac-ters have (c, o, or o) as part of their chain.Taking advantage of such duplications cansignificantly lower the storage requirementsof character plotting tables.

Special Options

When I defined the character limitingframe previously, I reserved the lowest hori-zontal line of grid points for special options.There are 8 grid points on this line. Thisgives 8 special options that can be used. Ifone considers the Z function, there are 16options in all. Whenever (0,H,P) isencountered in a plotting chain of moves,then a special option is initiated. The specialoptions can use the following bytes in theplotting sequence and, as such, can involveone, two, three, or more bytes.

The first special option we need is asubchain option. I shall define the code as(0,0,0). When this code is encountered, thenext byte in sequence is the subchain num-ber. As one can see, there can be 256subchains. You will probably never need all256 unless you build a large multi-languageor multi-font character set.

The second option needed is a 1/2 shiftright option. The code I used is (0,1,0). Thisoption increases the resolution of the plot-ting in the horizontal direction and comes inhandy when plotting upper case alphabetic

APPENDIX AUNPACKING A VECTOR MOVE FROM AN EIGHT BIT BYTE

Using V, H and P to denote bits, the move is VVVVHHHP in packed form. Theunpacking procedure is as follows:

1. An arithmetic shift right will make the Z function of the move available in the carryflag. The user can make use of this information through appropriate compares andjumps. Note that masking all but Bit P will also make the Z function available, butthe action of shifting also readies the horizontal position of the move.

2. Temporarily store present value of the accumulator in any other register.

3. Mask the accumulator with octal 7. The horizontal position is now available. Send itout to the graphic device or store it for later use in another register.

4. Bring back the stored value of the accumulator from Step 2, shift right three timesand mask the result with octal 17. Now the vertical portion is available.

The 8008 microprocessor assembly code would look like:

Shift right.

Load results temporarily in Register B.

User defined portion using the Z function code in the carry flag.

Load ACC with value in Register B.Mask the ACC with 0078.

User defined portion using the unpacked horizontal portion of the

Load ACC with value in Register B and rotate rightthree times.

Mask ACC with 017g.User defined portion using the unpacked vertical portion of the move.

032

RAR

310

LBA

I

User defined

301

LAB

044 007

NDI 007

I

User definec

r

move.

301

LAB

012

RRC

012

RRC

012

RRC

044 017

NDI 017

M, T, V, W and a number of other charactersto make them symmetric in the particulargrid frame I propose. It is a one byteinstruction to shift the horizontal portion ofthe next move byte one half grid space tothe right. That is, if the sequence of bytes(5,0,0) (0,1,0) (5,3,0) (5,4,0) wasencountered, then the next two moveswould begin at (5,0), move to (5,3-1/2) andend at (5,4) with pen down (or gun on).

These last two options I consider to bethe minimum you should have in yoursystem if you are to have the resolutionrequired to plot large character sets.

Another option that could be used is thefloating subchain option, (0,2,0). (Thisoption is not shown in figure 6.) It takesthree bytes of code to complete the se-quence of this option. For instance, a periodis used extensively for a number of punctua-tion characters and lower case i's and j's. Thesubchain sequence (1,0,1) (1,1,0) (2,1,0)(2,0,0) (1,0,0) plots a period in the lowerleft hand corner of the grid. Now, by usingthe floating subchain option, this period canbe floated anywhere on the grid. A three-byte sequence (0,2,0), (SV,SH,0), (subchainno.) will move the period to any locationdesired by using positive offset values(SV,SH). This would save at least two bytesof storage for every different position of theperiod in the grid field, if there are morethan two positions to be plotted. But, ittakes some extensive programming toinclude this option; the advantage is large inlarge character sets, but minimal in smallsets. Also, since timing is important in usingCRT graphic systems, one must considerwhether the extra computing effort is worththe savings in memory. I will leave it up toyou to dream up exotic plotting options ofyour own for the 13 additional optionswhich remain undefined.

Pointer and Move Sequence Tables

The pointer and move sequence tablesnow have to be established. A generalschematic of the tables is shown in figure 2,along with the relationship of the tables toone another.

The primary pointer table defines thestarting point in the character vector movesequence table, and the number of moves foreach particular sequence. The pointer tableis two bytes per character and shown infigure 3. Five bits of the first byte gives amaximum number of 31 primary steps percharacter. This is more than enough for anycharacter contemplated, even if it werescript or gothic. It is conceivable that asequence table can be as large as 8 pages or2 K bytes long. The remaining 3 bits of thefirst byte could designate the page number.

66

The second byte would designate thestarting point within that page.

This two byte table will fit into one 256byte page of memory if there are 128 or lesscharacters in your set. So, the full ASCIIcharacter set would fit easily in one page.The 7 bit ASCII code, if it resides in theupper portion of the address byte (bits 7-1)with a zero in the LSB of the byte, canaddress the location table directly. Thelocation table for the subchains will also usethe same format.

In figure 4, I give my version of the fullASCII 128 character set. Tables 1-3 give thevalues needed to plot this set. The tablescontain octal 2235 (decimal 1181) bytes ofdata. The tables are set up so that you caneasily reduce the size of the tables to aminimum set containing only 63 upper casealphabetic, numeric, and punctuation char-

Table 7 (continued):

Table 1.

u -o

o<

000002004006010012014016020022024026030032034036040042044046050052054056060062064066070072074076100102104106110112114116120122124126130132134136140

PRIMARY POINTER VALUES

T3OCJ

2 u

o CO

o<

000001002003004005006007010011012013014015016017020021022023024025026027030031032033034035036037040041042043044045046047050051052053054055056057060

DecimStartirLocati

° -'

01 0

DZ

587

11

598

17

615

12

627

8

635

10

645

12

657

14

671

9

680

10

690

8

698

8

706

6

712

7

719

11

730

2

732

4

736

11

747

7

754

9

768

8

776

6

782

10

792

14

806

14

820

6

826

8

834

6

840

10

850

4

854

6

860

9

869

6

875

1

245

11

262

12

274

8

278

14

292

9

301

12

256

6

323

6

329

6

313

6

317

6

243

7

317

2

245

5

335

2

147

13

O riiui

132-113212-126142-147102-163122-173142-205162-221112-237122-250102-262102-272062-302072-310132-317022-332042-334132-340072-353112-362103-000063-010123-016163-030163-046063-064103-072063-102123-110043-122063-126113-134063-145013-153130-365141-006101-022161-026111 -044141-055061-000061-103061-111061-071061-075070-363021-075050-365021-117150-223

u "□

o<

142144146150152154156160162164166170172174176200202204206210212214216220222224226230232234236240242244246250252

254256260262264266270272274276300302304306310312314316320322324326330332334336340342344346350352354356360362364366370372374376

SOo CO

o<

061062063064065066067070071072073074075076077100101102103104105106107110111112113114115116117120121122123124125126127130131132133134135136137140141142143144145146147150151152153154155156157160161162163164165166167170171172173174175176177

_ c

to ™ O

111

o> iS oO co-i

160

165

174

185

189

206

217

198

222

233

238

344

337

341

347

359

0

8

23

34

41

41

20

47

53

61

67

73

76

82

23

86

23

86

95

107

113

119123129133141378382384388391393395407397418397422430437444446456462467479409483487491497512518525529534538545551565558567571

© oQZ

5

911

4

911

517111012

3

4

31219

812

8

7

6

511

6

8

6

6

3

6

4

9

711

912

6

6

4

6

4

24322

10

1084

10877

10

1065

1249446

1267454767274

16

2 >■* ■§

3°? So

O (NO. CJ

050-240110-245130-256040-271110-275130-316050-331210-306130-336120-351140-356031-130041-121031-125141-133231-147100-000140-010100-027070-042060-051050-051130-024060-057100-065060-075060-103030-111060-114040-122110-027070-126130-027110-126140-137060-153060-161

040-167060-173040-201100-205060-215041-172021-176041-200031-204021-207021-211121-213121-227101-215041-242121-215101-246071-256071-265121-274121-276061-310051-316141-323041-337111-231041-343041-347061-353141-361062-000072-006042-015052-021042-026072-032062-041072-047022-065072-056042-067202-073

67

Table 2.

acters. Appendix B explains how to reducethe size of the tables to the minimum set.But, I encourage you to go in the oppositedirection and build up other subsets to addto this basic set. For example: Greekalphabet and mathematical sets, or centeredsymbol sets for line graphs.

SUBCHAIN POINTER VALUES

t/1

(/)03

o -a

o<

oo

_ c

DecimalStartingLocation

QJ

>

.1 o

u •

0> 0

02

Octal2-BytePackedCode

000

1

397

8

101-215

002

2

409

8

101-231

004

3

438

6

061-266

006

4

598

6

062-126

010

5

617

10

122-151

012

6

627

6

062-163

014

7

604

5

052-134

016

8

578

4

042-102

020

9

578

9

112-102

022

10

671

5

052-237

024

11

617

6

062-151

026

12

701

5

052-275

030

13

598

11

132-126

032

14

571

7

072-073

034

15

571

11

132-073

036

16

587

4

042-113

040

17

665

6

062-231

042

18

629

4

042-165

044

19

784

6

063-020

046

20

802

4

043-042

050

21

591

4

042-117

052

22

810

10

123-052

054

23

810

4

043-052

056

24

627

5

052-163

060

25

842

6

063-112

Table 3.

MOVE SEQUENCE VALUES

An Aside:

The techniques used Inthis article can be directlyapplied to any repeatableset of plotting sequencesfor display on a vectorgraphics device. For ex-ample, the chess piecesand chess board of a chessgame display are one possi-ble data display; similarly,a Space War game's spaceship symbol output to agraphic display devicecould use techniques ofvector generation and rota-tion.

Position, Orientation, and Scale

Now that we have the ability to pull outthe coordinates for a sequence of moves, wehave just begun the job of plotting acharacter chain. We must translate eachcharacter into its appropriate position on theplotting media, then scale it up or down,rotate it into the proper position, and ifdesired, slant the character. What usually isdone is to build conversion coefficients priorto plotting the desired character string.While going through the process of plotting,these coefficients transform the move co-ordinates residing in the move sequencetable to the appropriate coordinates on theplotting media.

This requires that you have the capabilityof multiplying and dividing floating pointnumbers in your system. I assume you willeither have a calculator chip interface or afloating point software package to draw on.Additionally, you will need the capability ofobtaining sines and cosines if you want theability to rotate the character string out of ahorizontal position or to define the slant ofa character with an angle.

Before we get into the procedure ofshifting, twisting, stretching or squeezing thecharacters onto the plotting media, we mustdefine a few parameters which are requiredprior to plotting the character string. In

000

040

100

140

200

240

300

340

000

040

100

140

200

240

300

340

121

167

132

124

376

325

176

224

307

234

347

226

365

242

346

262

320

076

176

132

121

370

256

260

350

174

002

206

370

142

326

000

364

121

376

176

376

130

312

320

370

152

146

147

130

355

330

003

372

360

121

216

361

125

300

364

366

142

371

144

124

134

271

263

336

372

360

252

136

134

360

372

346

365

346

124

241

000

266

022

136

336

377

244

361

321

374

336

350

320

264

126

304

001

126

000

221

176

200

300

002

364

273

276

305

360

224

146

236

353

026

002

236

132

245

320

226

372

314

172

346

376

146

273

101

372

062

000

121360

120

241

136361

364372

376002

336276

354372

124

366364

120137

130367

310306

116323

364124

363122

001

311

275

372

354

250377

120136

336361

227

002

254202

364342

330326

344346

132176

350272

264224

214

127122

143274

034

275

263

314

360

121

376

126

120

302

306

311

136

232

206

134

243

207

264

272

120

360

002

213

136

264

310

352

255

150

210

155

250

134

124

260

136

002

367

304

363

221

171

372

130

126

232

132

000

371

205

273

121

126

002

361

376

264

210

370

124

125

313

124

001

366

272

236

360

376

126

376

314

272

206

350

160

372

212

142

275

126

234

176

241

136

361

120

272

236

166

352

220

301

174

242

054

125

143

132120

256377

121360

160

124

136

266273

176132

170067

221236

326346

316201

216336

264272

032024

130

121

124

125

132

251

136

136

132

142

236

124

130

277

364

216

372

254

042

260

154

256

365

376

176

200

176

160

131

260

362

161

364

214

363

241

174

136

372

121

376

300

132

220

150

367

340

256

320

202

122

262

212

337

002

360

361

342

124

324

146

124

320

320

160

363

243

264

204

372

367

372

002

364

160

372

126

131

136

337

124

122

264

246

222

364

002

336

126

372

133

321

130

372

143

240

132

143

272

126

242

320

126

276

376

354

372

360

002

355

354

176

373

124

254

247

264

160

125

232

361

316

160

376

167

344

343

341

366

132

134

270

272

124

132

220

122

216

176

210

370

322

154

364

126

154

125

272

254

132

221

231

002

154

161

130

366

262

241

372

132

254

130

254

000

176

160

136

246

132

124

277

002

244

256

336

365

272

331

134

000

336

124

161

134

124

132

232

166

252

002

254

132

264

350

123

000

037

077

137

177

237

277

337

377

037

077

137

177

237

277

337

377

UPPERCASE ALPHA

N

UMERALS

PI

JNCTUATION

LOWER CASE ALPHA

68

figure 5, we see that we need the standardheight (S) and width (W) of each character,the gap (G) between each character, thestarting coordinate position (X0,Yo) of thecharacter string defined as the baseline origin(identical to the relative origin), and theangles (6<&|3) defining the orientation andslant of the character string. These param-eters must be made available prior to plot-ting the character string.

Now, let's list the formulae you will use inyour plotting routine.

1. Scale Equations

SS = S/10.0 vertical scale (1)

SW = W/7.0 horizontal scale (2)

SG = G/SW width-gap ratio (3)

2. Rotation Equations

a. Horizontal (H) portion of moveHX = Cos 8 (4)HY = Sin0 (5)

b. Vertical (V) portion of move

VX = -Sin0 = -HY (6)

VY = Cos0 = HX (7)

c. Vertical (V) portion of movecorrected for the slant

VX = -HY + HX*Sinj3 (8)

VY = HX + HY*Sin 0 (9)

3. Final Coefficients for Rotation andScale

DHX=HX*SW (10)

DHY = HY*SW (11)

7 BIT ASCI I CODE OR USER DEFINED CODERESIDING IN UPPER 7 BITS OF THE ACCESSBYTE W/LSB EQUAL TO ZERO

PRIMARY POINTER TABLE

VECTOR MOVESEQUENCE TABLE

NO. MOVES PG NO BEGINNING ADD

if

2550

0

SUBCHAIN POINTER TABLE

254

NO. MOVES | PG NO

BEGINNING ADD

Jl

000 040

263

274

272

205

331

212

346

263

126

274

132

122

263

134

142

373

124

366

132

270

154

246

275

230

134

126

263

132

002

365

126

370

274

266

261

250

122

226

206

130

132

124

274

371

123

130

274

221

263

264

134

232

263

276

124

261

132

360

025

364

030

346

132

306

037 077

LOWER ADDITIONALCASE PUNCTUATIONALPHA

237 277 337 377 037 077ASCII CONTROL CHARACTERS

255O

PAGEN < 7

PRIMARY SEQ.

SUBCHAIN SEQ

VERT. HORIZ.

SUBCHAINOPT. CODE

7 4 3 I 0

Figure 2: Relationship of the CharacterGeneration Tables. The selected charactercode is rotated left by one bit to define anumber from 0 to 254. This number accessesa 16 bit quantity in the primary pointertable. The primary pointer table in turnlocates the beginning of a series of penlocations in the move sequence table whichdefine the character's plot representation.Within that series, there might be a pointerto the subchain table, which in turn pointsto an often used fragment of the graphicsrepresentation located at a different place inthe move sequence table. Note that tominimize retrieval effort on machines suchas the 8008 and 8080, sequences of movesshould be restricted to single pages ofmemory.

BYTE I

BYTE 2

7

6

5

4

3

2

I

O

7

6

5

4

3

2

I

0

PAGE

STARTING LOCATION

NUMBER OFMOVES IN

NO.

ADDRESS OF FIRST

SEQUENCE

MOVE OF THESEQUENCE

Figure 3: Primary and Subchain PointerFormats. The pointer tables are composed oftwo byte elements which contain informa-tion on the number of moves required, andthe address of the first move of thesequence.

69

As always, climb thehighest mountain ratherthan be content with amole hill.

DVX = VX*SS (12)

DVY = VY*SS (13)

4. Shift Coefficients Between CharacterBaseline Origins

DSX = DHX (7.0 + SG) (14)

DSY = DHY (7.0 + SG) (15)

5. Final Transformation Equations to beApplied to Each Move

X = XO + H * DVX + (V-5.0) * DHX

(16)

Y = YO + H * DVY + (V-5.0) * DHY

(17)

LOW

ORDER

BITS

000

001

010

HIGH ORDER BITSOil 100

101

no

ii i

0000

N

\

0

@

p

\

P

0001

%

1

1

a

1

n

Q

Q

q

OOIO

%

%

V

2

B

R

b

r

OOII

\

%

#

3

c

S

C

s

0100

%

%

%

4

D

T

d

t

0101

\

\

Z

5

E

U

e

u

0110

%

\

h

6

F

V

f

V

0111

\

%

•}

7

G

w

9

w

1000

%

\

(

8

H

X

h

X

1001

ht-

^

)

9

I

Y

o

I

y

1010

■f

%

X

aa

J

Z

a

i

z

ION

*r

%

+

a

K

[

k

{

MOO

FF

F5

7

<

L

\

[

1

1101

*

\

—

M

]

m

}

1110

Tj

1

a

>

N,

/N,

n

S^S

llll

s,

•4

/

9

a

0

0

\

Figure 4: an ASCII Graphic Character Set. The plotting tables 1-3 are used todefine this set of characters when displayed or drawn on an XYplotter. Thisfigure was prepared by the author, using a commercial plotter as the outputdevice.

6. Shift Relative Origin from CharacterXO = XO+DSX (18)

YO = YO+DSY (19)

Formulas (1) through (15) are calculatedprior to plotting the first character of a line.The coefficients thus derived will not changethroughout the plotting of the characterchain. Note that the equations simplify con-siderably when the angles 8 and |3 are limitedto special cases. Two common special casesare 8 = 0°, 0 = 0° and 9 = 90°, (3 = 0°.Substituting the special values of sine andcosine for these angles produces the specialcases. These values are:

SIN(0) = 0.0 COS(0) = 1.0SIN(90) = 1.0 COS (90) = 0.0

Equations (16) and (17) are the transforma-tion equations used during the plotting whereonly the values (H) and (V) change for eachmove. XO and YO are updated as we moveto the next character in line to be plotted byusing equations (18) and (19).

Plotting Routine

The plotting routine is outlined in figures6 and 7 as a flow chart. If you have BASIC,you should not have any problems imple-

APPENDIXABRIDGING THE ASCII PLOTTING TABLES

NOTES:

1. To abridge the plotting tables, do thefollowing:

A. For upper case alphabetic, numerals, andpunctuation, only use:

Primary Pointer Table — bytes (octal) 100

to 301

Subchain Pointer Table — none

Move Sequence Table - bytes (octal) 0 to

613

B. For all characters except ASCII controlcharacters, use:

Primary Pointer Table — bytes (octal) 100

to 375.

Subchain Pointer Table — bytes (octal) 0 to

5

Move Sequence Table — bytes (octal) 0 to

1070

2. If you want abridged Set A above, note thatyou do not need to include the traps for specialsubchain option in your program.

3. Note that the move sequence table is set up sothat no sequence of moves crosses theboundary of a 256 byte page of memory. Thiseases the programming of micros such as theIntel 8008 or 8080.

4. Note that the blank or space character wasincluded at the end of the move sequence table.If you abridge the table, move the code to theend of your abridged table and correct thelocation code in the primary pointer table.Better yet, include in your program a trap tocatch any spacing, as there is no actual plottingfor this character. Just shift the relative originto the next character to be plotted.

70

meriting this routine, as BASIC has therequired floating point arithmetic and thetranscendental functions, sine and cosine. Ifyou plan to implement the routine inmachine language, then I dare say you willhave a little more work cut out for you. But,the advantage of going this route is that youwill take full advantage of your micro-computer's design in order to minimize theuse of memory and increase the speed ofplotting. Speed is very important if you havea CRT graphics terminal, because of therefreshing problem.

Summary

In summary, I think you have here a startin creating your own vector character gene-ration package on whatever graphic mediayou have or plan to use. You can implementthe package as I have given it to you orabbreviate, expand, or abridge the packageto suit your needs.

I encourage you, though, to expand the

CHARACTER SLANT ANGLE

B

ORIENTATION ANGLEOF CHARACTERSTRING

Figure 5: Character Orientation, To add an element of finesse to the plottingfunction, provision for general purpose rotation and slanting is a desirablefeature. There are two angles to specify: angle 6 is the orientation angle ofthe baseline for a character string; angle j3 Is the frame slant relative to aperpendicular through the base line.

(charplot j

CALCULATE

DHX,DHY,DVX

DVY.DSX.DSY

GET NEXTPRIMARY CODEAND UNPACK

GET NEXTMOVE CODEAND UNPACK

' 1

I CALCULATE-_| TRANSFORMATION

| COEFFICIENTS. SEE TEXT,

I FORMULI (I) TO CI5)

L I

I 1

| HALF

I SHIFT OPTION (--

I ENABLE

I I

l ■

| FOR EACH I

,_i CHARACTER |

OF A LINEI 1

r— —- "n

| OEFINES VALUES I

—I OFNM.NPG.NB |

I I

THE TRAP POINT FOR INCLUSION OF OTHER j

j SPECIAL OPTIONS YOU DESIRE TO PUT INTOI THE ROUTINEI (EXAMPLE: FLOATING CHAIN OPTION)

FOR EACH MOVE IOF A CHARACTER I

1 DEFINES VALUESH OF V, H,P I

I I

H> H +0.5FPi'O

TRANSFORMAND PLOTTHE MOVE

I

—I

I

FORMULI18 a 19

(return J

FORMULI16 8 17

Figure 6: CHARPLOTspecified as a flow chart.This is a subroutine whichis called whenever it isdesired to draw a characterstring of output. Sub-routines referenced byCHARPLOT are: SUB-CHAIN (see figure 7) andSHIFT. SHIFT is a routinewhich is used to move therelative origin of charac-ters from the present char-acter position to the nextcharacter position.

71

basic character set I have given you toinclude foreign language alphabets, a musicsymbol set, a mathematical symbol set, or acentered symbol set for line graphs. Thehorizon in character plotting is only limitedto your own efforts or imagination. Climbthe highest mountain, rather than be contentwith a mole hill."

SUBCHAIN )

GET NEXTSUBCHAIN CODEAND UNPACK

k:-o

r 1

I DEFINES VALUES■"1 OF MM.MPG.MB

I I

GET NEXTMOVE CODEAND UNPACK

I HALF

I SHIFT OPTION I—

I ENABLE I

Figure 7: SUBCHA INspecified as a Flow chart.This is a subroutine whichis called whenever it isdesired to reference a sub-chain when drawing acharacter pattern. Bypicking commonly usedsegments of character pat-terns and putting thesesegments in isolated sub-chains, table storage isconserved.

FOR EACH-J SUBCHAIN

I MOVE I

I J

I 1

J DEFINES VALUES |

"~j OF SV.SH.SP !I I

fs: -osh:-sh+o.s

TRANSFORMAND PLOTTHE MOVE

I

I

FORMULI16 a 17

(return J

Byte: A cell in memory which can store 8 bits ofinformation.

Chain: A set of vector moves to be performedsequentially.

Chain plotting: The technique of specifying amovement of the plotting or display mechanism bya series of small movements.

Character frame: A small region of the plottingmedium in which motions will take place whileplotting a single character. See figure 1.

Coordinates: A point in a two dimensional spacecan be specified by a pair of numbers. Thesenumbers are the coordinates of the point withrespect to a reference point called the origin.

Masking: The technique of selecting bits forinspection using the AJMD operation and a mask.The word which is being tested is combined withthe mask using the AND operation. Every logical 1bit in the mask will select a corresponding bit inthe word being tested; every logical zero bit in themask forces a zero in the result independent of theword being tested.

Medium: A plot or a display is usually performedon a two dimensional object which can be viewedby a human being. In the context of this article,the medium is the piece of paper or display tubeon which you see the resulting characters.

Page: In many microcomputers it is convenient todivide memory into blocks of multiple bytes,called pages. In the context of this article, the Intel8080 and 8008 definition is intended: a block of256 bytes whose high order address byte isidentical.

Plotting frame: The range of possible positions forthe plotting or display mechanism. In most equip-ment, this is a grid of points specified by twointeger coordinates for horizontal and verticalposition.

Relative origin: A local origin which is used forconvenience of programming. The relative origin isspecified by a coordinate pair with respect to anabsolute origin of the mechanism used; movementsinvolved in plotting a character are specified withrespect to the relative origin to simplify placementof character patterns.

Resolution: A degree of detail involved in the plot.Ultimately this is limited by the resolution ofhardware, which is specified as the number ofpoints per linear inch (or centimeter) of display ineach coordinate direction.

Subchain: In a chained plotting table, a subchain islike a subroutine of a computer program. It is afragment of a plot which is often referenced, so useof the subchain economizes the memory require-ments of the data tables.

GLOSSARY

Absolute origin: In a typical plotter or displaydevice, there is an absolute origin for all possiblepositions of the writing mechanism. A commonlocation of this origin is the lower left hand cornerof the plotting field, so that points to the right andabove can be specified by positive integerdisplacements.

Vector move: In the context of this article, avector is a line segment which connects two pointsin the plotting frame. A vector move is the act ofmoving the plotting mechanism (pen or electronbeam) from one of the points to the second point.In a chained approach, as used in uiis article, thestarting point is implied by the last position of themechanism and the ending point of the move isspecified by the coordinates of the position.

72

NEW!

Get a

LEARN

UCOMPUTER

SOFTWARE

mouthful to

^=^( At^Ffxfcf ^/j^^^

$49.95 BUYS ACOMPLETE COURSE IN

talk about,

^vfi^ ^H

PROGRAMMING FOR THESMALL SYSTEM ENGINEER• PRINCIPLES

&^r

#^ Captain Video 1

• TECHNIQUES

J( X Keyboard/Display 1/ Module 1

• EXAMPLES

Subscribe to

Ideal forcommunicatingwith yourmicroprocessor!

RS-232 interface x 32 characters S400 1TV/TTY kbd./dlsplay (16 lines x 64 characters) S500 IKeyboard/CRT Monitor (24 lines x 80 characters) S700 1

• APPLICATIONS

LOGICAL

SERVICES INCORPORATED

Creative Computer Division

•j ii 1 %

CALL OR WRITE FOR DETAILS. TODAY!

711 Stierlin Road

Mtn View, CA 94043

1 #i!l 1 9

CO &

(415) 965-8365

FREE BROCHURE

2520akSIreet Oakland. California 94607 (415) 763-6033 J

I MSA I

8080

SYSTEM

IN STOCK ATDISCOUNT PRICES

Call or write for details &catalog

SYNCHRO-SOUND ENTERPRISES

193-25 JAMAICA AVE.

H0LLIS, N.Y. 11432

(212)468-7067(9 AM-5 PM)

C-a

ompuler

%p

Wart

%,

4

[/fork Jrt

Authorized dealer for:

Sphere • IMSAI

Processor Technology

National Semiconductor Scamp

Featuring a complete line oftechnical publications and booksand a full line of chips and partsat MAIL ORDER PRICES. Re-pair service for all 8080 and6800 microprocessors

Friendly Service AdviceProblem Solving

Open Monday through Saturday10-6, Thursday until 9:30

314 Fifth Avenue

New York NY 10001

212 279-1048

SURPLUS JUP& TERMINAL

• Not a KIT! Ready to use

• 2 ea; 400 line (80 char/line)Cassette Tapedecks

• Kbd, juP, 9" dia Video Display,& Power Supply.

• Modular 'Card' Construction

• MOS-LSI, ASCII, RS-232C

• NEW or like-New, GUAR-ANTEED

• Size: 20"Wx24"Lx33"D

• Everything INCLUDED

This Data-Management-Station(DMS) is a business-oriented, highlyversatile, machine especially suitedfor mailing, addressing, filing, label-ling, data storage, and other time &personnel consuming tasks.DMS SPECIAL PRICE: $699.00

♦T^ SoSatS 603-382-5179Ay^^i Box F ■ Newton 9:00-5:00 ESTw \ UN 03858

We also offer many ELEC-TRONIC MUSIC SYNTHESIS

kits, plans, parts, and more . . .

mail us a S.A.S.E. or POSTAGEfor FREE INFORMATION

Good Grief!

Dave Brockman, 11648 Military Rd S, Seattle WA 98168, has a fairly sophisticated home brew system which includes a vectorgraphics output capability implemented with a surplus CRT display, heavily modified and interfaced to his PDP-8/S. One resultis this vector graphics representation of a famous personality which was taken using a 35 mm camera with multiple exposures tocompensate for the slowness of the film used. A program was written to paint a oneshot picture on the screen in response to aninput keystroke. The program and camera were set up, the computer room was darkened with blackout curtains, the camerashutter was opened, the oneshot picture-drawing program was cycled several times to burn the image onto the film, then theshutter was closed.

74

Continued from page 29

should accept the character from the key-board, then force lower case letters to beupper case letters. In order to avoid inter-ference with the special meanings of thevalues octal 200 to octal 377, the high orderbit should be forced into a zero state by anAND operation with octal 177. After thisprocessing, the input value should be left inthe accumulator prior to return.

The character display routine, CHRPR,accepts a seven bit ASCII code which ispassed from the calling routine in the ac-cumulator. The characteristics of CHRPRwill vary from device to device and it is theresponsibility of the person using this pro-gram to provide an appropriate CHRPR. Theoriginal Educator-8080 program was de-signed to be used with a Digital GroupTV-Monitor output device which displays 16lines of 32 characters. This device auto-matically- begins a new line whenever theprevious line has been filled, so the user of aTeletype or a video display with line lengthgreater than 32 should generate theequivalent of a carriage return and line feedat the end of each 32 character line. This canbe done by setting a software counter to 32at the start of a line, and decrementing everytime a displayable character is reached.When the counter reaches zero, the line feedand carriage return codes are sent and thecounter is reset to the starting value.

There is one special character value, octal177, which must be detected by CHRPR andinterpreted if necessary. This is the characterused for clearing the screen of a videodisplay, or doing a form feed operation on aprinting device. For a Teletype device, the

Table 5: Work Areas. The Educator-8080 program employs several work areasin programmable memory. These work areas are listed In this table, alongwith initial values where applicable, and commentary. Not shown in this tableis one very important work area which is part of listing 1: the locationXQTOP (address <2>/046) identifies a two byte area which must beprogrammable to allow an 8080 operation code to be "dummied in" andexecuted based upon the user's input command.

Address

<3>/346<3>/350<3>/350<3>/351<3>/352

Name

PSWABAN DCCREGBR EGCMDAR

Length

221122

OctalInitial Value

000 000000 000

form feed operation can be simulated byspacing out the listing. Simply emit a car-riage return followed by several line feeds.For a video display communications ter-minal, the ASCII form feed character, octal014, is often interpreted as a command toclear the screen. For the Digital GroupTV-Monitor display the screen is clearedthen the screen address is set for the upperleft hand corner.

The Educator-8080 is very useful to thenovice. On the other hand, its implementa-tion requires a skill level beyond that of thebeginner, who might fare well to obtain thehelp of an advanced hobbyist in imple-menting the program.

For The Digital Group 8080 system, aversion of this program is available on acassette including documentation — contactThe Digital Group Software Systems Inc,POB 1086, Arvada CO 80001 .■

Commentary

Initial PSWand A values.Reference to B and C symbolically.Equivalent to BANDC C value.Equivalent to BANDC+1, B value.Command work area, uninitialized.

The Data Domain is a computer store serving the Central U.S. Many of you have alreadycontributed to our success, and we wish to thank you. If you have not yet entered The Data Domain,we'd like to hear from you. We are here to serve your needs with a full line of products and services,and to offer assistance in solving both hardware and software problems.

The retail computer store is more than a business to us. The Data Domain is a personal commitmentof over 18 years of computer experience toward the growth of an industry which we are convincedwill be of major significance to our nation's future in science, education and business.

ATA

O

OMAIN

111 S COLLEGE AVENUE * SlOOM/NGrON. INDIANA 47401

PHONE (812) 334 3607

Offering IMSAI Processors and all major brands of accessories

75

What's

New?

New Products Policy

Insertions in this section of BYTE arechosen at our discretion from unsolicited"press release" materials sent by vendors.New companies inexperienced in the gameof publicity seeking are advised that a pressrelease on a hardware product should con-tain a descriptive text plus glossy black andwhite photograph (or photographs) of theitem. Software products should includeample descriptive text to convey an idea ofwhat is being marketed; if there are anycharacteristic graphic materials associatedwith the software product, pictures orcamera ready copy should also be supplied.

Appearance of descriptive information ona product in these columns does not con-stitute an endorsement of that product."

Itty Bitty Computers Tiny BASICfor the 6800

Tom Pittman is a professional softwareperson who has developed a debugged andrunning version of Tiny BASIC for the 6800.Paper tape and documentation are availablefor $5. The object of Mr Pittman's enterprise,Itty Bitty Computers, is to perform "an ex-periment in favor of the hobbyist." In aletter to BYTE, Mr Pittman points out thathis regular customers are commercial customsoftware purchasers, who pay the usual highcosts of custom software; at $5 for a highlevel language, users will get quite a bargainsince you will receive a fairly thick papertape and a 24 page computer printed instruc-tion manual. To order Tiny BASIC for the6800, send $5 to Tom Pittman, PO Box23189, San Jose CA 95153."

Photo 1: The Solid State Sales Video Camera Kit, as assembled. The kitincludes the two printed circuit boards and all electronic parts, but does notinclude the packaging into a neat box with lenses, etc. The charge coupleddevice sensor is shown mounted between the two boards in this photograph.

Photo 2: The video signalout of the Solid StateSales Video Camera Kit isshown here on an oscillo-scope. This sort of cameracould be used as an in-expensive starting pointfor software experimenta-tion in pattern recognitionusing personal systems.

Will You Look at That?

Solid State Sales, PO Box 74B, SomervilleMA, has introduced a video camera kitwhich uses a 100 x 100 resolution chargecoupled device to produce an EIA videosignal which can be used to drive a standardvideo monitor. The product comes in theform of a kit of parts including the imagingarray, printed circuitry and electronic parts.Since the solid state imaging array does notrequire any high voltages, the camera is anideal product for experimentation withvideo and as a source of video signals to beconverted to digital form in the context ofpattern recognition experiments. Thespectral range of the charge coupled devicesensor array starts in the infrared region andincludes the visible wavelengths of light, soin security applications it could be used withan invisible infrared light source. The priceof the kit is $225 including the circuitboards and sensor array as shown in photo 1.For pattern recognition applications a simpleconverter circuit is needed to convert thevideo into a binary (black and white) TTLsignal with an adjustable threshold. Also,depending upon the application, the usermust supply a case and the optics needed toform an image plane at the surface of thesensor array. An example of a digitizedsignal displayed with the help of an oscillo-scope and some external timing circuitry isillustrated in photo 2."

76

FREE!

New CAMBION XQ cata-log. Scores of famous CAM-BION electronic compo-nents for hobbyist or exper-imenter in small packs orindividually at modest cost.Parts available at retail elec-tronic shops or by mailfrom factory. Coils - chokes- IC sockets - tools - patchcords, and lots more. CircleReaders Service numbernow.

CAMBION

Cambridge Thermionic Corp.

445 Concord Avenue,

Cambridge, Massachusetts 02138

Phone: 617-491-5400

WANTED

Microprocessors Kit or Assembled

ALTAIR • SPHERE • MOTOROLAINTEL & OTHERS

Memories, I/O boards, chassis, powersupplies, modems, peripherals, spe-cials, prom programmers, ADCS,DACS, GPIOS, RS232 faces, and anyassociated software

FORWARD INFORMATION AND/OR

INQUIRIESTO:

AMERICAN USED MICROPROCESSORS,

EQUIPMENT & SUPPLY CORP.

BOX 515,

PRAIRIEVIEW, ILLINOIS 60069

TELEPHONE (312) 634-0076

For complete monthly catalog ofitems available and in stock Enclose$10. for six issues. Many new un-used items. Amazing values foreveryone. A-70

TIRED OF LOADING YOURCOMPUTER BY HAND?

TURN AN AUDIO CASSETTE RECORDER INTO A FASTRELIABLE PROGRAM LOADER AND MASS DATA STORAGEUNIT WITH THE PprCom CASSETTE INTERFACE FORS59.95

• Fully assembled and (ested

• BYTE Standard (see Feb '76 BYTEI

• Load a IK program in 40 seconds

• May be upgraded to 218 bytes/sec

• Siore 100K bytes on C 60 casselle

• Standard B bit parallel interface

• Easily connected to any computer

• Little or no software required

• Provision for custom interfaces

• Signal level sensor

• Sidetone circu'l

• Operate 7 tape units simultaneously

• Standard sued circuit card (4V t 6*A")

• Described in BYTE (March April "761

• Comprehensive Induction Manual

■■ ■■;::. *: t~ ... . :

*.g:

TO ORDER Send chprk c rr&% MatlerChaieW B»nkAme>.<yuui O'de- Allow 2 3 w«(ki

PerCom - 'peripherals for personal computing'Custom Design Services ■ 4021 WindsorGarland. Texas 75042 . (214) 276 1968

6 TV GAMESON A CHIP

Single MOS/LSI Chip

$39.95 each - supply limited

Kit $69.95 (includes chip)

or send $1.00 for kit info

and data sheet

21L02 (500 ns) 1.95

2102 (500 ns) 1.75

8080A 24.95

6800 27.95

AY51013A 5.00

Add $1.00 to cover handling

on orders under $25.00.

$10.00 Min. Order.

Calif, residents add 6% tax.

Advanced Microcomputer

Products

P.O. Box 17329

Irvine, CA 92713

*********************************

898 § 8t « 89 I

t • i a a

• 9 9 88

Mi I I

9 Ml 9 9 99899

8 9 99 • 9

I 9 9 « 9 999

9 8 8 99 889998 889 9 9 98989

999988

A CLASSITIEV AWERTISING NEWSLETTER

tXVOTEV TO THE COMPUTER H0BBV1ST

******************************************

ARE YOU LOOKING FOR?

- LOW COST USED COMPUTER EQUIPMENT

NEW "

- ADVANCE INFORMATION ON NEW PRODUCTS

- SOFTWARE - ASSEMBLERS, SCIENTIFIC,ETC

- A WAV TO ASK FOR INFORMATION OR AID

- COMPUTER CLUB MEETING SCHEDULES

IT'S ALL IN 0 N _ LIN E !

HOW OLD IS THIS AD??

fi.pfi.il 20th woi uiien BVT£ needed thii ad{Otheh magazine* have i-unUaA ickedulei I

' WHAT'S THE DATE NOW?

Trj OH LIWE'4 deadline wete A.ptu.1 tOtli,that iiiaz mould be in tlie FIRST CLASSmail an ifj, uay to you Aplil 24tli!And , ive publish eveMj tlinee iveeki!

******************************************18 ISSUES (1 Vr.)-$3.75 36 ISS.-$7.00Sample on meque&t, on added to iub&cAip.

24695 SANTA CRUZ HWV.

LOS GAT0S, CA 95030******************************************

Pictured above is the new OP-80AHigh Speed Paper Tape Reader fromOAE. This unit has no moving parts,will read punched tape as fast as youcan pull it through (0-5.000 cp.s.),and costs only $74.50 KIT, $95.00ASSEMBLED & TESTED. It ineludes a precision optical sensor ar-ray, high speed data buffers, and allrequired handshake logic to interfacewith any uP parallel I/O port.

To order, send check or money order(include $2.50 shipping/handling) toOliver Audio Engineering, 7330Laurel Canyon Blvd.. No. Holly-wood. CA 91605, or call our 24 hr.M/C-B/A order line: (213) 874-6463.

PRIZES

Grand prize winner will receive, inaddition to the fame of having hisentry appear on the cover of theDecember 1976 issue of BYTE,

• $100

• A lifetime subscription to BYTE

• A bound volume of BYTEVolume 1.

Two runners up will receive $100 anda five year subscription to BYTE.Five honorable mention winners willreceive a tee shirt wardrobe (one fromCreative Computing, one from Com-puter Lib, and one from BYTE) and aone year subscription to BYTE.

COMPUTER ART CONTEST

BYTE announces a contest for art-work suitable for use on the cover ofBYTE Magazine. Entries can either beartwork created by a computer orhuman produced artwork on a com-puter theme.

All entries become the property of BYTEPublications but will be returned if accom-panied by a self addressed stamped enve-lope. Though only one grand prize winnerwill be chosen to appear on the cover of the

December 1976 issue of BYTE, any entries

which the BYTE staff like well enough to

use as covers will be purchased at our usual

rates.

All entries must be received by August 31

1976.

Mail to:

Ms Janice Black

Contest Editor

BYTE Publications Incorporated

70 Main Street

Peterborough NH 03458

78

Some Electronics Industry News

For those who are not familiar with theelectronic engineering marketplaces, Elec-tronic News is one of the best places to findout about late breaking developments in thehardware end of computing. We refer readersto the May 10th edition of that publication,which had the following interesting tidbits:Page 65: Motorola Semiconductor willshortly (early 1977) be sampling the newM6900 processor. This is described as a16 bit processor aimed at the computer in-dustry. In short it should be like the centralprocessor of a minicomputer.Page 66: Mostek and Zilog have made asecond sourcing agreement for the new ZilogZ-80 super 8080 processor. [BYTE hasscheduled a Microprocessor Update articleon the processor for August 1976, to befollowed by Dr Robert Suding's detailedcentral processor hardware design in theSeptember 1976 issue.]Page 68: Motorola will have a 16 K dynamicprogrammable random access memory in a16 pin package, to be sampled later thisyear. The pinout is compatible with similardevices from Tl and Mostek. [It is said thatthe 16 pin dynamics are pin compatible withthe present 16 pin 4 K devices.]

For the details, reference Electronic News.The address of the publication is FairchildPublications, 7 E 12th St, New York NY.Subscriptions to this weekly paper are $12per annum."

SOFTWARE AVAILABILITY NOTE:

Perspective Plot Package

(in ANSI FORTRAN Language)

The subroutine package contains 22 calls neededto generate a perspective plot of a threedimensional object or scene described by coordi-nate points and line segments between such points.The package uses two external calls to the CalComp's basic drum plotter system. These calls canbe converted very easily to any other system.

This package is being made available, free ofrestrictions and cost (except copying and mailingcharge), to the individual hobbyist, clubs, schools,colleges, and universities for their own computersystems.

Any commercial use of the package in any part,form, or media for sale as Software or given as aninducement to selling other Software or Hardwareis strictly forbidden without the expressedpermission of the author.

Copying and mailing cost for each copy is $5,which includes:

1. Users Manual — 37 pages.

2. Hard copy listing of Subroutines — 23 pages.

Richard J Lerseth

8245 Mediterranean Way

Sacramento CA 95826

(916) 381-0335 (after 5:00 PM)

0

pO

J)

101 BASIC Computer Games is the most popularbook of computer games in the world. Every pro-gram in the book has been thoroughly tested andappears with a complete listing, sample run, and de-scriptive write-up. All you need add is a BASIC-speaking computer and you're set to go.

101 BASIC Computer Games. Edited by David H.Ahl. 248 pages. 872x11 paperbound. $7.50 plus Ibipostage and handling ($8.25 total) from CreativeComputing, P.O. Box 789-M, Morristown, NJ 07960.

<D AMAZIN■p ANIMAL

AWAHIBAGLESBANNERBASBAlBASKETBATNUM

8

i

BATTLE

BLKJAC

BLKJAK

BOAT

BOMBER

BOUNCE

BOWL

BOXING

BUG

BULC0W

BULEYEBULL

BUNNYBUZZWD

CALN0RCAN-AM

CHANGECHECKRCHEMST

CHIEF

CHOMP

CIVILWCRAPSCUBE

01AMNDDICE

DIGITS

DOGS

EVEN

FIPFOP

FQCTBL

FOTBAL

FURS

GOLF

G0M0K0

GUESS

GUNNERGUN! IllHANGHELLO

HEX

BiMrf LWiaiftfion

Play acey-dutey wild the compute

Computet constructs a maze

Computet guesses animals and learns new

ones I torn youAncieni game el rotating beans in pitsGuess a mystery 3-digit number by logicPrints any message on a large banneiBaseball gameBasketball gameMatch wits m a battle ol numbets «

Ihe computerDecode a maim to locate enemy

battleshipComputer ptints your catd and calls

the numbersBlackjack Ivery comprehensive). Las

Vegas tulesBlackjack (standatdgamelDestroy a gunboat Itom yout subnutmeFlyWotlrtWar II bombing missionsPlot a bouncing ballBowling at the neighborhood lanes3-round Olympic boxing matchRoll dice vs Ihe computet to drawabugGuess a mystery 5 dig11 number vs

Ihe computetThrow darts

You're ihe matador in a championshipbullfight

Computer dtawing ol the Playboy bunnyCompose your speeches with the latest

buzzwordsCalendar tor any yearOrive a Group 7 car in a Can-Am road iaceComputer imitates a cashierGame ot checkersDilute krypiocyamc acid to make nharmless

Silly arithmetic drillEat a cookie avoiding the poison piece

|2 ot mote players)Fight iheCivil WarPlay craps (dice). Las Vegas styleNegotiate a 3-0 cube avoiding hidden

landminesPrints I page diamond patternsSummarizes dice rollsComputer lues to guess digits you

select ai randomPenny arcade dog raceTake objects Itom a pile - try to end wilh

an even numberSame as EVEN - computer improves

its playSolitaire logic game - change a row

olXsloOsProfessional football (very comprehensive IHigh School footballTrade (urs with Ihe white manGoll game - choose your clubs and swingAncienl hoard game of logic and strategyGuess a mystery numbet - computer

gives you cluesFne a cannon at a stationary targetFne a cannon at a moving largeiHangman vvoid guessing gameComputer becomes yout friendly

psychiatristHexapawngame

HKO

Hl-Q

HMRABI

HOCKEY

HORSES

KURKLE

K1NEMA

KING

LETTER

LIFE

LITQZMATHD1

MNOPLY

MUGWMP

NUMBER1CHECK

PIZZA

POETRY

POETPOKEROUBICQUEEN

REVRSE

ROCKET

flOCKT1

R0CKT2

RDCKSP

ROULET

RUSROU

SALVO

SALV01

SLOTS

SNOOPY

SPACWR

SPLAT

STARS

STOCK

SYNONM

TARGET

30 PLOT

TICTACTOWERTRAINTRAP

23MTCH

UGLY

WAR

WAR-2

WEKOAY

WORD

YAHTZI

ZOOP

Try to hit ihe mystery jackpot

Try to remove all Ihe pegs (torn a board

Govern the ancient city-state ol Sumetia

Ice Hockey vs Cornell

Off-Hack belting on a horse tace

FindtheHurklehidingona lOxlOgnd

Drill in simple kinematics

Govern a modern island kingdom wisely

Guess a mystery letiet -computer

gives you cluesJohn Conway's Game ol LifeCompetitive game ol life 12 or mote

player siChildren'sliteratutequizChildren's arithmetic drill using

plctutes of diceMonopoly for 2 playersLocate 4 Mugwumps hiding on a IQi 10

OHdComputer guesses number you think ofChinese game oINimSilly number matching gameChallenging game to remove checkers

Horn a boardDestroy an or biting geim-teiden enemy

spaceshipDeliver pizzas successfullyComputer composes poetry in 4-part

harmonyComputer composes random poetryPoker game

3-dimensional lic-tac toeMove a single chess queen vs the

computerOf der a series ot numbers by reversingLand an Apollo capsule on the moonLunar landing from 500 feet (with plat IVery comprehensive lunat landingGame of rock, scissors, paperEuropean routetle tableRussian rouletteDestroy an enemy Heel of shipsDestroy 4 enemy outposisSlot machine lone-arm bandit)Pictures ol SnoopyComprehensive game ol space warOpen a parachute at the last possible

momentGuess a mysterynumber-slats give

you cluesStock market simulationWord synonym drillDestroy a target in 3-0 space-very trickyPlots lamihes ol curves- looks 3-

dimensionalTic-tac-toe

Towers ol Hanoi puzzleTime-speed-distance quizTrap a mystery numbet - computer gives

you cluesGame oi 23 matches- try not to take

Ihe last oneSilly profile plat of an ugly womanCard game of watTtooplacticsnwaiFacts about yout birthdayWord guessing gameDice gameolYahlzeeBASIC programmer's nightmare

o0

0

oc

0Q0

oc

00.

79

BYTE UNDER GLASS

Paul Terrell, founder of the BYTE Shop, the world's first computer store franchise, putslock and key to "the family jewels." Each BYTE Shop Computer Store has on display, as adistinguishing mark of its identity, BYTE magazines under glass. The BYTEs were placed underglass as a result of an unfortunate rip off of issue number one after a BYTE subscription adentitled "A Lesson in Economics" mentioned that number ones were selling for $15.

Though current issues of BYTE are not yet as rare as the first few, they soon will be, as wedo not print a large overrun. Don't miss any. Subscribe today. Use the pull out card in this issueor the coupon below.

****** SPECIAL ******

Subscribe to BYTE and Creative Computing and save $2.

Since we feel that you really need both magazines to be fully informed in the small systemsfield, the publishers are offering a special package. Receive one year of both BYTE and CreativeComputing, normally $20, for only $18. A ten percent saving.Please enter my subscription to:

□ BYTE 1 year $12, 2 years $22, 3 years $30 (circle one)

□ BYTE and Creative Computing 1 year $18, 3 years $46l~l Check enclosed

□ Bill me

□ Charge to MC# BAC# .

Exp. date

Name.

Address .City

State .

Zip

BYTE Publications Inc

Please allow six weeks for processing.

70 Main St

Peterborough NH 03458

80

Software Bugof the Month 2

A programmer was trying to learn how towrite DO loops without using DO state-ments, and was getting exceedingly frus-trated. Every other time he wrote a loop,there would be either one case too many, orone case too few.

As an example, he was trying to print outa table of sines, cosines, and tangents, just asone would find in trigonometry tables. Hewas doing it by degrees, from one degree upto 90, and somehow the program alwaysended up printing an extra case, for 91degrees.

Our programmer knew that the sine,cosine, and tangent functions work withradians, not with degrees. He thereforestarted with the number that is equivalent toone degree in radians, and worked upwardfrom there. Thus his FORTRAN programwas as follows:

PI =3.1415926DEGREE = PI/180.0X = DEGREE1 Y = X/DEGREE

WRITE (6,91) Y, SIN(X), COS(X), TAN(X)91 FORMAT(F6.2,3F15.8)X = X + DEGREEIF (X.LT.PI/2+DEGREE) GO TO 1STOPEND

The statement Y = X/DEGREE converts Xfrom radians back to degrees, in order tomake the table come out with a value indegrees.

Can you find the bug?

Solution in next month's BYTE

SOLUTION TO BUG OF THE MONTH 1

The problem \snot in the statement J = (I+ K)/2. It is true that I + K might be an oddnumber, and thus (I + K)/2 might not beexactly half of I + K; but this, as it turnsout, doesn't matter.

The problem is in the figure, which wasdrawn in a misleading manner. At the right isthe figure as it should have been drawn.

The element with index J is the lastelement of the first half of the table. Thefirst element of the second half of the tableis therefore the element with index J + 1,not J. Therefore the new value of I, if X >A(J), is J + 1, and not J. We should changestatement number 2 to read I = J + 1.

What happens if the bug is not fixed canbe seen, for example, if X = A(2). Eventually

The Original 8K Low Power Static Memory KitStill at the Low Price of $285.

• PLUG DIRECTLY INTO 8800 or 8800 BOARD COMPATIBLE SYSTEM •TURNS OFF YOUR WAIT LED (8080 RUNS AT FULL SPEED) • LESS THAN520 nS ACCESS AND CYCLE TIME • LOW POWER (LESS THAN 225 mA/1Kat 5 VOLTSI • 100% NEW INDUSTRIAL COMPONENTS • EASY INTERFACETO HOME BREW • 50/50 GOLD PLATED EDGE CONTACTS • EPOXY BOARDWITH PLATED THRU HOLES • 8K or 4K WITH EXPANSION • SOCKETPROGRAM 4K or 8K ADDRESS SLOT • DETAILED ASSEMBLY AND THEORY

8K LOW POWER RAM KIT: 8KLST $285.004K LOW POWER RAM KIT: 4KLST $159.004K EXPANSION FOR 4KLST:4KXST $139.00

PLUS SHIPPING

WRITE TO DA VE (K6LKL) at

ON DISPLAY AT

BYTE SHOP

MT. VIEWCA

MARSH DATA SYSTEMS

TAMPA FL

P.O. Box 9160,Stockton CA 95208

•CALIF. RES. ADD SALES TAX•MASTER CHARGE - OK•BANKAMERICARD - OK

J+1

100

New I if X < = A(J)

New K if X < = A(J)

New I if X > = A(J)

first halfsecond half

New K if X > = A(J)

we will get down to I = 1 and K = 2. Now Jis set equal to 1, which is all right in itself;we test X against A(1), and find that it issmaller than A(1). But then I is set equal toJ, which is 1, exactly the same as it wasbefore. This causes the endless loop wementioned. You can check that it does notoccur for any possible value of I for which X= A(l) (which ones does it occur for?)."

W Douglas MaurerUniversity Library Room 634George Washington UniversityWashington DC 20052

81

l

&

*u -tM^

~i

1* „

'■■ :

| ,Ttl9Transistorand Diode

.3IM-

Interface

»The 01TTL |pala m

Data Book

GreurtsData

took

-3

CD

..£L

Book

rwife

*1

l.nS*^-

s

1

r

3

p

OJ

'.:■■

,•■

.

n\

"

You'll Want to IMybbleat these Byte Books

Where does the editor of a computer magazine turn to when he mustverify some author's hardware design? Information on a 75450interface gate, or a 74147 priority encoder circuit does not spring forthby magic. Checking the information supplied by authors is part ofBYTE's quality control program.When you build a project, you need this same sort of information. All you find in the advertisements for parts are.mysterious numbers identifying the little beasties ... hardly the sort of information which can be used to design acustom logic circuit. You can find out about many of the numbers by using the information found in these books. Nolaboratory bench is complete without an accompanying library shelf filled with references - and this set of TexasInstruments engineering manuals plus Don Lancaster's TTL Cookbook will provide an excellent starting point oraddition to your personal library.

• The TTL Cookbook by Don Lancaster, published by HowardW. Sams, Indianapolis, Indiana. Start your quest for data here withDon's tutorial explanations of what makes a TTL logic design tick.335 pages, $8.95.

• The TTL Data Book for Design Engineers, \by TexasInstruments Incorporated. How does an engineer find out aboutthe TTL circuits? He reads the manufacturer's literature. This 640page beauty covers the detailed specs of most of the 7400 seriesTTL logic devices. No experimenter working with TTL has acomplete library without The TTL Data Book for DesignEngineers. Order yours today, only $3.95.

• The Supplement to The TTL Data Book for Design Engi-neers, by Texas Instruments Incorporated. What happens whenyou can't find a 7400 series device listed in The Data Book forDesign Engineers? Before you start screaming and tearing yourhair out in frustration, turn to the Supplement. The Supplementhas 400 pages of additional information including a comprehensiveindex to both TTL Data Book volumes. To be complete (and keepyour hair in place and vocal cords intact) you'd best order thesupplement at $1.95 to accompany the main volume.

• The Linear and Interface Circuits Data Book for DesignEngineers, by Texas Instruments Incorporated. When you runacross one of those weird numbers like 75365 the immediatefrustration problem occurs again. What kind of gate could that be?We won't tell in this ad, but you can find out by reading thespecifications in The Linear and Interface Circuits Data Book forDesign Engineers. You can interface your brain to the 72xxx(linear) and 75xxx (interface) series of functions by ordering yourcopy of this 688 page manual at only $3.95 .

• The Semiconductor Memory Data Book for Design Engi-neers, by Texas Instruments, Incorporated. Don't forget theimportance of memories to your systems. Refer to this 272 pagemanual to find out about the T.I. versions of many of the popularrandom access memories and read only memories. Order yourpersonal copy today, only $2.95 .

• The Transistor and Diode Data Book for Design Engineers,

by Texas Instruments, Incorporated. You'd expect a big fat databook and a wide line of diodes and transistors from a companywhich has been around from the start of semiconductors. Well, itsavailable in the form of this 1248 page manual from T.I. whichdescribes the characteristics of over 800 types of transistors andover 500 types of silicon diodes. This book covers the T.I. line oflow power semiconductors (1 Watt or less). You won't find everytype of transistor or diode in existence here, but you'll find mostof the numbers used in switching and amplifying circuits. Orderyour copy today, only $4.95 .

• The Power Semiconductor Handbook for Design Engineers by

Texas Instruments, Incorporated. To complement the low powertransistor handbook, T.I. supplies this 800 page tome on highpower transistors and related switching devices. Here is where youfind data on the brute force monsters which are used to controlmany Watts electronically. Fill out your library with this book,available for only $3.95.

• Understanding Solid State Electronics by Texas Instruments,Incorporated. This is an excellent tutorial introduction to thesubject of transistor and diode circuitry. The book was created forthe reader who wants or needs to understand electronics, but can'tdevote years to the study. This 242 page softbound book is a mustaddition to the beginner's library at only $2.95.

• The Optoelectronics Data Book for Design Engineers byTexas Instruments, Incorporated. This 366 page book is acompendium of information on T.I. phototransistors, LEDs andrelated devices. Order yours at $2.95.

Buyers of these books should be cautioned: heavy reading will be required. Thesebooks are so filled with information that they weigh in at a total of about 190ounces (5387 grams). On the basis of sheer mass, these books have got to be thebargain of the century. Make sure that you use a structurally sound book shelf andabove all avoid dropping one of these books on your foot.

.TTL Cookbook @ $8.95

.TTL Data Book @ $3.95

. Supplement to TTL Data Book @ $1.95

. Linear and Interface Circuits @ $3.95

. Semiconductor Memory Data @ $2.95

. Transistor and Diode Data Book @ $4.95

. Understanding Solid State Electronics @ $2.95

. Optoelectronics Data Book <°> $2.95

. Power Semiconductor Handbook @ $3.95

Please add 75 cents for postage and handling.

Send to: Name

Please allow six weeks for delivery.

Address

City

State

Zip

BIT!

□ Check enclosed

□ Bill MC#

□ Bill BA#_

Exp. Date..Exp. Date.

PETERBOROUGH, NH 03458

Signature

82

What Happened at Trenton May 2

On May 2 1976, the Amateur ComputerGroup of New Jersey held the first TrentonComputer Festival, a combination of manu-facturers displays, flea market activities, andtechnical presentations. The site of the affairwas Trenton State College, in Ewing Town-ship NJ. The photos give several vignettes ofthe activities.

There were a total of 45 exhibitorspresent, and 25 speakers in the technicalprogram. The attendance was counted bythat effective method of selling ticketswhich registered guests for the door prizedrawing. Of the 1500 people who purchasedtickets at the door, 180 received door prizesat the end of the day. People from 16different states attended.

Despite a torrential downpour (which setlocal records) the day before, the skiescleared for a beautiful sunny festival day.This made the outdoor flea market activitiesa big success. Items on sale at the fleamarket moved quite briskly, and ranged inprice from 25 cents or less to the $10,000asking price one individual had on hisoriginal Samuel FB Morse telegraph key.

Exhibitors booths included firms rangingfrom computer stores to such firms as

Photos by Marj Kirk

Photo 1: Claude Kagan, a researcher at Western Electric, gives a talk on"Computers in the Home, Present and Future."

Motorola Semiconductor Products, DigitalEquipment Corporation, and RCA SolidState Division."

More Trenton photos on page 85.

C. Itoh Introduces

tow Cost, Full Alpha-Numeric,

Dot-Matrix Impact Printers

BOTSUEAR - NYLON JACKETHOUSEWARES - NEAS. CUPHENSUEAR - SWEATER

SUB TOTAL

TAX («)

TOTALAMOUNT TENDERED

CHANGE

35.. 35A O .. O 0

A .. A 5

T H A N K Y O U .. .. C O M E A G A J: NXYZ DEPARTMENT STORE

PRINTED BY

I...RC 7OA0- C )MATRIX PR

Model 7040

Model 7040-T

Speed: 1.25 L/S (on 60 Hz) -Print Line Capacity: 3V3"Media: Max. 3W Roll, or ticket • Multi-Copy CapabilityPrint Solenoid Power: 40 VDC ± 10% '40-Column

Capacity (at 12 characters to the inch)

Motor(s): 100-125 VAC, 50/60 Hz

Variable font and density capability undersoftware control

Simple electronic interface

C ITOH ELECTRONICS. INC.

Los Angeles Office: New York Office:

5301 Beethoven Street 280 Park AvenueLos Angeles. CA 90066 New York. NY. 10017Tel (213) 390-7778 Tel (212) 573-9456

573-9467Developed and Manufactured byLRC. INC . RIVERTON. WYOMING. U.S.A.

83

Still More

BYTE's

Books

•DESIGNING WITH TTL INTE-GRATED CIRCUITS by the ComponentsGroup, Texas Instruments Inc. Edited byRobert L Morris and John R Miller.

People often ask questions like "Wheredo I get basic information on hardwaredesign?" One answer is in "Designing WithTTL Integrated Circuits."

This book, published by McGraw Hill in1971, is a fundamental starting point forany person designing peripherals and customlogic employing TTL integrated circuits.While its publication date precludes anyreference to the later additions to the TTL7400 series of components found in theData Books, it is nevertheless the source of awealth of ideas on TTL integrated circuitsand design of logic with this family ofcircuits.

What is fanout? You may have heard thisterm mentioned at computer club meetingsor in advertisements for circuitry, or inarticles in BYTE. You can find outbackground information on the calculationof fanouts by reading the chapter on CircuitAnalysis and Characteristics of Series 54/74.

Worried about noise, shielding, ground-ing, decoupling, cross talk and transmissionline effect? (Or, more properly, did youknow you should worry about these effectsin certain circumstances?) Find out aboutgeneral precautions and background infor-mation by reading the chapter on NoiseConsiderations.

The chapter on Combinatorial Logic

Design gives 53 pages of backgroundinformation on Boolean algebra and practi-cal representations of logic in the form ofSSI gates. The chapter includes a descriptionof Karnaugh mapping techniques and theminimization of logic. From combinatorialdesign, the book progresses into Flip Flops,including background information on theworkings of these devices, and fairlydetailed descriptions of the uses andapplications of these devices includingsynchronization of asynchronous signals,shift registers, flip flop one shots, etc. Thenthe book returns to static combinatoriallogic with its description of the Decodersavailable in the 7400 line as it stood in1970-1971.

A chapter on Arithmetic Elements givesfundamental descriptions of binary arithme-tic, diagrams of the basic gate configurationsfor combinatorial logic adders, and a sectionon number representations for use incomputers. Much of the material in thissection is dated, due to the fact that thelater 74181 series of multiple functionarithmetic units had not yet appeared whenthe book was written. But for a backgroundon arithmetic operations implemented withthe simpler 7483 circuits, this chapter isideal. A chapter on Counters and a chapteron Shift Registers complete the detail logicsections. The book is closed out by achapter on miscellaneous Other Applica-tions including a simple binary multipliers12 hour digital clock and a modulo-360adder.

EITE

PETERBOROUGH, NH 03458

1

Designing With TTL Integrated Circuits $24

Microcomputer Design $25

Send to: Name

Address

City

State

Zip

L

O Check enclosed

□ Bill MCNo.

□ Bill BA No.

Signature

Exp. DateExp. Date .

The most important use of this book is itsvalue as an introduction to TTL logic. Byreading and studying it, you will begin tounderstand the ways in which SSI and MSITTL gates can be utilized in your ownexperimental logic designs. After studyingthis text, you should be able to make muchmore sense out of the technical informationsummaries typically published as specifica-tions sheets and data catalogs.

Order your copy today from BYTE'sBooks, $24 postpaid.

•MICROCOMPUTER DESIGN by Don-ald P Martin, Martin Research. Edited andPublished by Kerry S Berland, MartinResearch.

Purchase your copy of the definitivesource for circuitry and hardware designinformation on the 8008 and 8080 com-puters today.

Even Intel, the originator of the micro-processor revolution, is hard put to competewith the wealth of information found inMartin Research's new second edition ofMicrocomputer Design. This is the bookwhich was originally published as anexpensive (but quite practical) engineeringreport in loose leaf form, at about the timethe microprocessor technology was firstcatching on in the form of the 8008. This388 page second edition of the manual isloaded with detailed information on how tobuild and use computers based on the 8008and 8080.

But even if you do not intend to use the8008 or 8080, the practical pointers ondigital logic design, peripherals and applica-tions of hardware techniques will more thanjustify the new low price of $25 for thishandbook. Microcomputer Design is a mustfor 8008 owners and 8080 owners whowant to truly understand how theirprocessors process.

Microcomputer Design is complete withnumerous illustrations, tables and diagrams,plus reprints of the specifications sheets forthe Intel processors. There are numerouspractical examples of circuitry and manycomplete computer designs ranging from"minimal microcomputers" to a full blown8080 processor.

Order your copy today, $25 postpaidfrom BYTE's Books.

84

Photo 2: Herb Nellnger ofMiami FL gets a demon-stration of one of theDelta Data CRT terminalswhich were sold at thefestival. To his completesurprise, Kevin Moran ofDelta Data sold out all histerminals practically be-fore the doors had openedas the A CGNJ people run-ning the show snappedthem up.

MIKRA-D 16K STATIC RAM

ALTAIR/IMSAI Plug-in Compatible

— 16K BYTES of static 500ns. memory for yourALTAIR/IMSAI Microcomputer.

— YOUR processor runs at full speed.

— PLUGS directly into ALTAIR/IMSAI machine.

— START with 4K — expand to 16K IN ONE SLOT usingour expansion kit.

— ALLOWS maximum possible 8080 memory (64K bytes)in 4 slots.

— MIL-SPEC tested memory chips use low-powertechnology.

— MEMORY protect feature. Buffered inputs.

— SOLVES DMA problem caused by Dynamic memories.

PRICES

MD-2046-4 $175.00 MD-2046-12 $455.00

MD-2046-8 $315.00 MD-2046-16 $595.00

Expansion Kit $140.00

AUTOMATIC 1702A PROM PROGRAMMER

MD-2044

RS 232 compatible interface. Use with any computer serialoutput. Programs 1702A in 2 minutes. Completeself-contained unit. Simple software routine allows you toread or program 1702A completely under software control.

I™^^™™^"-^™! Kit—$149.50

MIKRA-D | Assembled—$169.50

INCORPORATED

Mikra-O'P.O. Box 403'Holliston, Mass. 01746«Tel. 617-881-3111

Photo 3: For some (name-ly the lucky winners) thedrawing at the end of theday's activities was thehigh point. The younglady holding the cardboardbox has won an MOSTechnology KIM-1 pro-cessor board which wasone of the 180 door prizesgiven out at the festival.

ALTAIR 8800 OWNERS

We recently received the following letter:

APRIL 26* 1976

GENTLEMEN:

I JUST WANTED TO TELL YOU THAT I THINK YOUR CLOCK FIX-IT KIT ISREALLY GREAT1 I WAS HAVING TR0U3LE RUNNING BASIC AND AFTERINSTALLING YOUR KIT FOUR OF MY KITS BCAH'DS THAT WEREN'T RUNNINGCAME BACK TO LIFE AND NOW ARE HELPING ME TO WRITE THIS LETTERON THE COMPUTER. ENCLGSED IS ANOTHER ORDER FOR A CLOCK KIT.THIS IS FOR THE SECOND ALTAIR THAT I'AM NOW IN THE PROCESSOF BUILDING.AGAIN I'iANY THANKS FDR SUCH A FINE PRODUCT.

SINCERELYLLGYC L. S

How well does your Altair run?

A Clock Fix Kit is only $15 postpaid.

PARASITIC ENGINEERING

PO BOX 6314

ALBANY CA 94706

85

Clubs and Newsletters

SCCS Personal Computing '76 trip.

The Southern California Computer Soci-ety has made arrangements with TravelCoordinators, 8317 W Third St, Los AngelesCA 90048, for a group tour travelarrangement for individuals attending Per-sonal Computing '76, August 28 and 29. Theshow looks like a big event, and will be heldin Atlantic City NJ with representatives ofmost manufacturers in the field purchasingbooth space and contributing door prizes.

The tour basis group rate air fare will beavailable through Travel Coordinators fromany major city in the US. For informationwrite Personal Computing '76 Trip, TravelCoordinators, 8317 W Third St, Los AngelesCA 90048, or call (213) 655-0650. To makea reservation by phone call (213) 655-0650collect.

Wisconsin

Don Stevens, 545 Meadow Ln, Sheboy-gan Falls Wl 53085, is the contact person fora computer club which has been formed inWisconsin. An alternate contact for this clubis James S White, 1202 Riverview Ln,Watertown Wl 53094.

Kansas City

Harold Schwarz, 7631 Broadmoor Ln,Overland Park KS 66204, would like any-one in the Kansas City MO and Kansasgreater metropolitan area to contact him ifinterested in forming a computer club.Phone (913) 371-2616 from 9 AM to 4:30PM or (913) 648-5410 after 6 PM.

Language Processor's Committee?

Here is an idea for a club or interestgroup defined by a logical classificationrather than a geographical one: RobertHeller, Box 51A Star Route, Wendell MA01379, requests "anyone interested in start-ing a committee to study the possibility ofwriting language processors for PL/M orSNOBOL 4 for 8008, 8080 or 6800 systems,please write to me." The idea presumably isto achieve the necessary software by writingprocessors for the fun of it, and incidentallyachieve a time and money sharing effect.

San Diego Computer Society

The latest Personal Systems (the SDCSnewsletter) to pass our desk was Volume IIIssue 1 for March 1976. In this issue was an

excellent potpourri of technical and miscel-laneous information including: RalphMcElroy's article on how to convert atelevision into a video monitor as exem-plified by a Hitachi portable TV chassisconversion made with the aid of a SamsPhotofact File; "Understanding the VDM"by Stan Skoglund, wherein you'll find infor-mation on how the Processor TechnologyVDM module can be programmed andutilized; a reprint of part one of AlanHastings' "A Software UART" found in 77?eAnalytical Engine of the Chesapeake MicroComputer Club; a BASIC game calledAMAZIN by Frank Maclachlan, "A Micro-processor Survey" by Lance A Leventhal,"Power Supplies and Regulators" by DavidG Llenaresas, and a Super Nim program byJim Farschon. The technical content ofPersonal Systems is excellent, and will bene-fit many readers. This newsletter can beobtained for an SDCS membership at $10per annum. Contact SDCS, PO Box 9988,San Diego CA 92109, attn: Newsletter.

The Analytical Engine, Continued

Each issue of The Analytical Engine putout by the Chesapeake micro ComputerClub, 236 St David Ct, X4, Cockeysville MD21030 (phone (301) 667-9690) is an excel-lent addition to the literature of personalcomputing. Here is a club newsletter that iswell worth a subscription even if you live inPrudhoe Bay AK. The March issue containedseveral views about the issue of softwarepiracy and proprietary rights. The majortechnical contribution of this issue was CarlHallberg's background article on use of thecommon garden variety programmable

86

mm

BE

91 SI H

Personal

^ Computing

76

Consumer Trade Fair

'"'-\-~V ■■

w..-'. ■-

Atlantic City, N.J.August 28th-29th

'-■

..,-

;■'•»

- m:,)*.:m$MMMk»m»4

%&•■&

^.^"•^-^"--■':--^'

*4& * f IS

: ' - ~y-.;r

few.*"

i, ■: on

■0"

1 , **■*

is

▼ What its all about!

Software DevelopmentMicro ComputersHardware DevelopmentDisc Memories-Computer ComparisonsInterfacingProgram ImplementationAMSAT. Computerized MusicVideo TerminalsKit ConstructionPrintersComputer GamesDigital Tapes

• Seminars and Technical talks By leading electronic equipment manufacturers

• Major Exhibits from all over the country

• Demonstrations in many areas including Home and Personal Computing

• Door Prizes, Free Literature and Free Mementos

• All this plus Sun and Surf - Fun and Excitement - Relaxation and Leisure

Weekend Fair admission $5.00 advanced. $7.50 at dodrAdmission includes Exhibits, Seminars

Write for FREE TRIP-KIT to Personal Computing 76 Fair Headquarters Shelburne Hotel-MotelBox 1138 Boardwalk and Michigan Ave. Atlantic City, New Jersey 08404EXHIBITION BOOTHS STILL AVAILABLE - CALL (609) 927-6950

ran Miawiitim m\mm

WMb Mffll

w/mn

UART integrated circuits, and a continua-tion of John A Hastings' article on program-ming a software UART algorithm. Besidesthe technical "meat" found in the twoasynchronous communications articles, the16 page Analytical Engine includes a flourishof professionalism with halftone photos.

Washington Amateur Computer Society

The nation's capital computer club sent aFebruary edition of their newsletter,Volume 1 Number 1. It is one of the fewsuch papers prepared and reproduced using aline printer. (The dot matrix (5 by 7) upperand lower case listing suggests it is theproduct of a DECWriter.) The newsletterincluded the club constitution (brief and tothe point), plus a questionnaire. ContactWACS c/o Robert J Jones, 4201 Massa-chusetts Av, Washington DC 20016.

Are There Any Others in Idaho?

Edwin S Hill, 1900 W Quinn #117,Pocatello ID 83201, would like to meetothers who want to form a club to servicesoutheastern Idaho, southwestern Wyoming,northwestern Colorado and northeasternUtah. We know there are a bunch of BYTEreaders in that area, so how about a club?

Westchester Amateur Computer Society

The kickoff meeting of the WestchesterAmateur Computer Society was April 11976 at the Community Room of theGreenburgh Public Library in Elmsford NY.For residents of Westchester County NYinterested in further information, call HaroldShair at (914) 967-7853, or write him at 41Colby Av, Rye NY 10580.

Quest: Philadelphia

Walter White and Everett Holland areinterested in making contacts for computerclub activities in the Greater PhiladelphiaArea. Anyone interested, please drop a lineto Everett Holland, PO Box 462, Wayne PA19087, or call evenings at (215) 647-8460.

Re-Quest: Philadelphia

2005AD Inc, Philadelphia PA, wishes toestablish a computer club in the metro-politan area. Write 2005AD Inc, 2005Naudain St, Philadelphia PA 19146. [Seealso page 70 of February 1976 BYTE for alisting of the SCCS Delaware Valley chapterin Philadelphia/Camden area.]

CACHEingIN?

A quite unofficial contact from CharlesDouds reported on some of the activities ofthe Chicago Area Computer Hobbyist Ex-change. In his letter, he mentioned that theMarch 28 meeting included a speaker fromMotorola talking about the 6800 family(what else?) and an IBM salesperson giving"a full blown IBM dog and pony show"about their top of the line (for those withlimited budget) IBM 5100 table top APLand BASIC machine. [The 5100 is aninteresting beast; word on the technologicalgrapevine has it that the APL and BASICwere implemented by having a microcon-troller emulate the System/360 (370) archi-tecture. Then IBM engineers stored themachine language object code of an appro-priately patched version of the "big system"APL and BASIC in the monstrously largeROM chips IBM uses.] Also reported inCharles' letter is a suggestion attributed toRuth Lowe that the name of the CACHENewsletter be changed to "CACHERegister" on the grounds that nobody everhas enough registers to work with in lowlevel code.

Individuals interested in finding outabout CACHE should write CACHE, PO Box36, Vernon Hills IL 60061.

Unofficial Purdue University Club —Philanthropists Take Notice

"A group of (insane) Computer Bums atPurdue University is looking for a PDP-11series mini, along with associated equipment.We are interested in any and all hardwarewhich might be useful for same. In trade wecan offer a limited amount of cash, and/orcustom software work. We are very familiar

88

with: CDC-6000 series, CDC-1700 series, allPDP series, HP-2100 series, Imlac graphics,PDP graphics, 8008, 8080, 6800, and others,all major languages. If you have spare equip-ment you don't use and need custom soft-ware, we welcome your inquiries. Contact:JGM/TGI/GHG at PO Box 2345, WestLafayette IN 47906 or (317) 463-7167.Philanthropists very, very welcome."

North Alabama Club Activity

Persons in the Huntsville — NorthAlabama area interested in any aspect ofamateur or hobby computing are invited tojoin the North Alabama Computer Club(NACC). Contact Jack Crenshaw, 1409Blevins Gap Rd SE, Huntsville AL 35802.Phone (205) 859-7344 or 883-7973.

Mid Michigan Microcomputer Group (IVPG)

Activities in the central portion ofMichigan have resulted in the "Mid MichiganMicrocomputer Group." For further infor-mation, contact William Serviss, president, at13121 Tucker Dr, DeWitt Ml 48820, phone(517) 669-3179, or Daniel Herrick, vicepresident, at 1214 Frederick St, Box 513,Owosso Ml 48867, phone (517) 723-3264.

ALTAIR OWNERS! . . . WANT TO COMMUNICATE WITHTHE ANALOG WORLD??

Available now is an analog to digital converter, (ADC) and adigital to analog converter, (DAC); both on the same card whichplugs directly into your 8800 and is low power!

Features... DAC ADC

Resolution 8 Bits, Binary 8 Bits, Binary

Linearity .2% Fullscale .2% Fullscale

Temp Coef SO ppm 50 ppm

Ranging 0-10V,± 10 V, ± 5V 0-10V, 110V, ♦ 5V

Settling Time 5 Micro-Sec N/A

Conversion Time N/A 15 micro-sec

External Inputs N/A Convert start*, Analog in

External Outputs Analog out Serial Out, Strobe for

serial data. Status

- Both ADC and DAC have full software and interruptcapabilities -

* NOTE: Convert start input may be either software or hardwareinitiated, or both

KIT: $250.00 Assembled and tested: $300.00

BankAmericard, Master Charge accepted

AVAILABLE SOON: An eight channel multiplexer anddemultiplexer board which bolts directly to theconverter board and expands input-output capabilities.

Write or call for more information: 3199 Trinity PI

San Jose, CA 95124(408) 377-8025

MICRO DATA < flj[ff >

OSSEKCP $OtKV

CHEflTJJE

CaMPLITJNG

STLIrT!!

Please send me the following:Item

Price

Creative ComputingMagazine

A bi-monthly 88-page magazine for students,hobbyists, and anyone curious about computers.Fiction, articles, humor about computers,cybernetics, careers, building info., etc. Emphasison games, puzzles, and projects. Contemporary,non-technical approach. Subscription. $8.00 pp.

Games & Puzzles Issue ofCreative Computing

88 pages of games and puzzles for pocketcalculators, computers, and humans. "Beating theGame," "Computer Chess," "Hunting a Wumpusin a Cave," building your own computer, reviews of24 games, books, and much more! $1.50 pp.

Futures Issue of Creative Computing

Artificial Intelligence (Bertram Raphael, HerbertDryfus, etc.), Extraterrestrial Intelligence (IsaacAsimov, Martin Harwit, etc.), microprocessors,videodiscs as an ultimate computer input device, 4new games, and more. 88 big pages! $1.50 pp.

Artist and Computer

A high-quality, 4-color book edited by Ruth Leavittwhich displays the work of 35 internationally-known computer artists. Each artist describes hisor her work in non-technical terms. 140 il-lustrations. $4.95.

topjot !

Shipping (books only) $1.00

All orders outside U.S.A. add $1.00

New Jersey residents add 5% sales tax

Total

The Best of Creative Computing

A 328-page book featuring stories by Isaac Asimovand others; articles on cybernetics, robots,computer crime, privacy; computer games such asStar Trek, Rabbit Chase, Magic Square, Madlib,and 14 more; super computer graphics; cartoons,reviews; poetry; and more! $8.95.

Creative Computing T-Shirt !

Albert Einstein portrait produced by Blocpix'" [process. Scarlet trim, black design. Available in .adult sizes: S, M, L, XL. $4.00 pp.

Mr. Spock Computer Image

Big 17x22" computer scanner image. Heavy stock. [

Comes in strong mailing tube. $1.50 pp.

Star Trek People Computer Images ! CKv

Six 814x 11 computer images on heavy stock of jKirk, Spock, McCoy, Scott, Chekov, and Uhura.$1.50 pp.

DCash, check, M.O. enclosedDCharge my Bankcard (minimum charge $15)OBankAmericard DMaster Charge

Acct. No.

Expiration date. Mo..

_Yr.

Name.

Address

State

.Zip.

101 BASIC Computer Games

A collection of 101 games in BASIC, each one with ■a complete listing, sample run, and write -up. 256 ■pages. $7.50. '

Creative Computing, P.O. Box 789-M.Morristown, N.J. 07960, U.S.A.

Letters

THE POLAROID HARD COPY UNIT?

I want to suggest a cheap, portable,multiuse, easy to interface, and inexpensivehard copy unit for BYTErs with videoterminals — the camera. I suggest:

1. A multipurpose camera loaded withcheap black and white film for photo-graphic listings.

2. That the camera and film should becompatible with the home productionof microfiche (a viewer can be builtfor $15 - reference on request). Ahigh resolution film will be desirableto make eventual computer scanningof your fiche easier (assuming that youwill make fiche of things not in thecomputer system already — quitelikely since costs can be less than 1|£per page).

3. Personally, I would like to add aPolaroid SX70 for instant color ($1per picture) copies of Dazzler displays.

Last — since I know nil about photog-raphy, would some BYTEr write an articleabout photographic copy systems for homecomputers, preferably with all the informa-tion a novice needs to get a system up andrunning, plus cost information for thecameras, film and developing needed?

Martin Buchanan

2040 Lord Fairfax Rd

Vienna VA 22180

AN OPINION ON SOFTWAREMARKETING

Let me first say that I write as aconcerned hobbyist. My comments are myown and do not necessarily reflect theopinions of any organization of which I maybe a member.

Bill Gates' "An Open Letter to Hobby-ists" very clearly explained one of the chiefproblems of the hobby computer industry,the low Return on Investment (ROI) on the

software component of the system sold [fora copy of Bill Gates' views, see page 14 ofRadio Electronics, May 1976, page 24 ofMarch-April 1976 PCC (Box 310, MenloPark CA 94025), page 3 of February 1976Computer Notes (published by MITS Inc) ].I have no solution to this problem. I onlywish to express my personal views on threerelated aspects of the computer hobbyistmarket: recovery cost per unit, softwaredelivery methods, and target market expan-sion.

Recovery Cost per Unit

When was the last time you saw the word"profit" written on a rest room wall? Profitis not a four letter word. It is the incentivethat brings vendors into this insane world ofhome computing. It is no more evil thanindirect addressing or fig newtons. Assumethat a vendor adopts the following profitphilosophy.

Profit will be generated from the hard-ware sold. Since hardware is of no usewithout good software, a high initial capitalinvestment will be made in software. Thiscost will be partially recovered with eachunit sold. Recovery cost per unit must be aslow as possible to discourage unauthorizedduplication of software.

You can see from this that

(Recovery cost per unit) is equal to(Total software cost) divided by(Number of units sold)

Therefore, to minimize recovery costs,vendors must view the hobby market not interms of hundreds or thousands, but tens ofthousands of units.

One problem with a volume of this size isthat present software delivery methods ofcassettes and paper tape will not be eco-nomical. New delivery methods must beused.

Software Delivery Methods

A high volume software delivery methodshould be based on proven technology, useagreed upon standards (such as Kansas City),be easily adaptable by all hobbyists, andhave a low per unit cost in high volume.

One method that may work, although it'sprobably not the best, is the use of standard33 1/3 rpm long playing phonograph re-cords. It meets all of the requirements fromabove. Interfacing would be done from theturntable to the cassette input. A trans-former may be needed for impedance match-ing. I'm sure other hobbyists will devisebetter methods.

Now that the need for a high volume ofsoftware and a possible delivery method

90

have been established, the question remainsof how to create a market to justify this.

Target Market Expansion

The best approach to increasing the num-ber of computer hobbyists is to publicizeour activities in a medium that is accessibleto the general public. Once people see whatwe are doing with a few K of memory, acouple of LEDs, and a lot of sweat, I'm sureit won't be long before they too are"hooked."

I therefore propose that hobbyists, indi-vidually and through their local clubs, startwriting to their local Public Broadcastingtelevision station suggesting that they joinwith other stations to produce a special onthis "world's greatest toy."

Who knows, we may one day be able toenjoy a weekly half hour program on homecomputing while our micros are storing thelatest game of the week, by frame grabbing,off the same television signal.

To summarize, I believe software costscan be reduced considerably by increasingthe size of the market by at least an order ofmagnitude, and devising new deliverymethods to meet that market. It remains forhobbyists to inform the general public ofour activities so that all this may happen.

What are you waiting for? Fire up yourpencils, pens, 33 ASRs, and matrix printers.Send that letter off now. Address it to thedirector of programming in care of yourlocal PBS station.

You might even begin it with, "As oneprogrammer to another. . . . "

Robert H WadaGarden Grove CA

LET'S HAVE A SNOBOL FIGHT(BUT ICEBOLs ARE NO FAIR)

"The Magic of Computer Languages"[April 1976 BYTE, page 24] was a goodarticle, but I wish people would stop writingabout "compiling languages" and "inter-pretive languages." Any language can beeither compiled or interpreted. [Quite true.]Small machines tend to use interpreters andlarge machines tend to use compilers. Nodoubt 4096 people have already pointed outthat APL programs are executed from rightto left, so I won't mention that. [?]SNOBOL has been simplified already; haveyou never heard of ICEBOL? [No.]

"Frankenstein Emulation" [April 1976BYTE, page 50] was interesting. I suspectthat the Main Processor only appears to befaster than the Top Processor because it does

THIS IS DJH CDPVCflT CDPYCflT

HER NAME IS TCHEBYCHEU .__

0 0

This month we are offering a I |~| 4Zi t to the firstto correctly guess what our Copydat Copycat is doing.The prize: your choice of one of our P.C. cards listedbelow. (Hint: it's related to our newest product line,the COPYDAT blueprint copiers.) Next month weprint the answer and the prizewinner. Send in yourguess today!

The "old standby" line of Hardware Assemblers:

CDA 1.1

CDA 2.1CDA 3.1

CONNECTOR

4KX8 Memory Matrix Prototyping Card for 2102 - 2602 -9102 Static RAMS. 7" x 9", predrilled wirewrap custom decoding area and plated-through holes in RAM area. $34.95.

General Purpose Prototyping Card, predrilled for wire-wrap, pictured in BYTE Dec. '75, 7" x 9", $34.95.Digital Graphic Display forOscilloscopes designed by Jim Hogenson and featured in BYTE Oct. '75,double-sided card with plated-through holes. $29.95. „

-For CDA 1.1, 2.1 - 70-pin wire wrap, Viking NORSMAN - $5.00. (Postage and packaging per card: $2.00.)

Our newest line -the COPYDATS, starting at $149.95 FOB Amherst, N.H.

COPYDAT I - for copies up to 12" x 18"

COPYDAT II - for copies up to 24" x 36"

Copies for less than 3d each (Copydat I) — without sacrificing quality.

Send for a brochure and sample print today!

CELDflT DESIGN ASSOCIATES

BDtt 755 AMHERST.N.H. 03031

91

very little computing, operating mainly bytable lookup and short library routines. Onlythe Top Processor seems capable of real timeoperation. The biggest glitch in the wholesystem is the Value Judgement Table. TheMain Processor was never designed to handlevalue judgements, but insists on trying. Nowonder an external Diagnostic Processor isneeded!

Great article on the TMS9900 [April1976 BYTE, page 64], but a bit too short.How about publishing a similar one on theRCACDP1800?

J GordonLos Angeles CA

A STAR TREK PRODUCT

Several letters have recently appeared inBYTE concerning the history of the StarTrek game. A version of the game is nowavailable for the Altair 8800. It is written inAltair 4 K BASIC and is available fromInternational Data Systems Inc. The pur-chase price of $10 (checks OK) includes acomplete program source listing, operationalinstructions, tips on how to "patch" theprogram to add your own features, a oneyear limited warranty against "bugs," andpostage and handling. The limited warrantystates that a corrected copy will be providedif any errors are identified. The limitedwarranty does not provide replacement fortime or resources lost as a result of sucherrors. Orders should be addressed to StarTrek Offer, International Data Systems Inc,PO Box 593001-AMF, Miami FL 33159.

D E Hipps

Vice President

International Data Systems Inc

SPACE WAR ORIGINS UNVEILED

I'd like to answer the comment in ABBonds' letter (page 8 of April 1976 BYTE)on the "mysterious" origins of Space War. Ibelieve that the first Space War was imple-mented on a PDP-1 at MIT. This machinewas one of the first models of one of thefirst minicomputers ever made. It wasdonated by DEC to MIT where it created anew type of student — the "computerhacker." Several members of the Tech ModelRailroad Club attached themselves to thismachine, developing, besides the originalSpace War, one of the first timesharingsystems, predecessors to DDT and TECO,and I believe the first LISP implementation.This Space War had a sun with gravity,torpedos, and hyperspace. It ran in 4 Kwords of memory.

Several of the PDP-1 hackers went on tothe MIT Artificial Intelligence Laboratorywhen it started up with a PDP-6. Space Warcame with them. My introduction to thegame at MIT was on the Al lab's PDP-6.That version was similar to the PDP-1version. One of its new features was anaccurate star field in the background (withproper magnitudes) that moved slowly as thegame progressed and the observer movedaround the sun.

I have since seen a Space War implemen-tation on a PDP-9, a PDP-7 and even on anIBM 7040/7094 DCS. The latter was a largescale second generation batch system atYale. The only way we could take over themachine to play was with the cooperation ofsome third shift operators who were alsoSpace War addicts. We would check thecontrol cards of the night's runs to see howmuch time we could spend playing and stillget all the users' jobs done by morning. Wewould then send out for pizza and startplaying.

The best version of Space War I have yetseen was developed on the MIT Al Lab'sPDP-6 by a person with the login ID KLH.This is a Star Trek-y game, with one shiplooking like the Enterprise and optional useof phasers and deflector shields instead oftorpedos and hyperspace. This game also hasspace mines and invisibility shields.

Sidney MarkowitzCambridge MA

Then, of course, there are the MITundergraduate courses in digital electronicswhich come up with a new variation ofSpace War as a lab project each year.

MORSE POWER TO YOU

I have just received my April issue ofBYTE and regarding Richard Fall's requestfor information on Morse translationalgorithms: I wish him luck. There is aremarkable dearth of information availableto the average person. I have been workingon my master's thesis and have been re-searching this area for over a year. I will tryto save Richard and others like him thetrouble of looking for information that isnot really there. Virtually all of the infor-mation available today is either militaryrelated (that generally means classified!) oris closely guarded by civilian companies thatare hoping for government contracts (thatgenerally means classified too, or evenworse, proprietary to the company).

There are a few articles on hard wiredMorse decoders in amateur radio magazines

92

from which a simple mathematical modelcan be derived, but 1 caution the overzealousexperimenter for there is probably no ONEsatisfactory algorithm to translate HAND-sent Morse code. Dut to the high degree ofvariability of mark/space characteristics (forthose who don't care for the higher mathterms, this means that the lengths of dots,dashes, and the various spacing intervals areconstantly changing) ANY fixed algorithmwill eventually fall apart and fail to decodeproperly mainly because we do have somepretty rotten fists on the air today!

Obviously, the more complex thealgorithm, the more memory it will require.Some professionally designed and pro-grammed algorithms I have seen onPDP-11-type machines run in the vicinity of8 K for a BASIC decoder. This figure can goas high as 250 K or more for the moresophisticated models, but in most cases thesimpler models will work fine for jistingcopy (getting the general trend) and aregenerally unsatisfactory if your interest is insolid copy.

Machine-sent Morse and also RTTY arecompletely different problems, since theyrepresent machine-to-machine interfacerather than man-to-machine interface. Iwould advise interested readers to look up:

(1) November 1971 Ham Radio magazine

(2) January 1971 QST magazine (3) Oc-tober-December 1975 QST and either orboth of the following papers if they areavailable at your library (try college librariestoo):

(1)"On Computer Transcription ofManual Morse," Journal of the Associ-ation for Computing Machinery,Volume 6 #3, July 1959 (?), pp429-442, by Charles R Blair.

(2)"Machine Recognition of Hand SentMorse Code," IRE Transactions onInformation Theory, March 1959, pp17-24, by Bernard Gold.

These articles are NOT simple, but shouldprovide some insight to the magnitude of theproblem of Morse Code translation.

WAHickey

Naval Postgraduate School

Monterey CA

TAKE A STAND?

Is the computer hobbyist getting state ofthe art components? How many years mustpass before the hobbyist gets newdevelopments?

EXAMPLE: Electronics magazine, Janu-ary 8 1976, page 76: Matsushita Electrical

MERRIMAC PROCESSOR SYSTEMSANNOUNCES THE CRTV

A complete low cost Teletype ®Model 33 KSRreplacement using a standard TV as themonitor. Complete, whether purchased as akit or assembled.

(1) Full cursor controls - clear, home, cursorup, down, left, right.

(2) Infinite scrolling.

(3) Selectable data rate to 600 baud.

(4) Half/full duplex; local mode.

(5) "Break" function allows entering manydebug routines.

(6) Model 33 keyboard with added cursorfunctions, clear, and home keys.

(7) Housed in attractive enclosure.

Completely assembled and tested . . . $495.00Complete kit $355.00

For Complete Information write —

Merrimac Processor Systems

P.O. Box 76Chester, New Hampshire 03036

mp-40

THE ONLY PRINTER

IN ITS CLASS

$425

• PARALLEL INTERFACE

• 5 x 7 IMPACT DOT MATRIX

• 64 CHARACTER ASCII

• 40 COLUMNS AT 12 CHAR./IN.

• 75 LINES PER MINUTE

• ORDINARY ROLL PAPERCOMPLETELY ASSEMBLED AND READY-TO-RUN

SEND FOR FREE LITERATURE

Utah Residents Add 5% Sales Tax • Allow 60 Days for Delivery

mpi/P.O.BOX 22101/SALT LAKE CITY/UT/84122801-566-0201

93

BYTE's election year stand on motherhood, applepie, computer power for the people, and state of theart components for hobbyists.

Industrial Company has developed a floppydisk memory at the price of a digitalcassette.

EXAMPLE: Calculator and computercompanies are using 4 K RAMs now. Someuse 4 K RAMs in designs that permit anexchange for 16 K RAMs when they appearin quantity this summer.

EXAMPLE: Electronics magazine, Janu-ary 22 1976, page 40: Axiom Corp ismanufacturing a microprocessor controlledline printer at a cost of $1000 in a singlequantity, and $500 in OEM quantities.

When do we get these components in ourkit versions?

Where does BYTE magazine stand on thisissue of state of the art components hobby-ists?

Edward L TottleBaltimore MD

To paraphrase Ted Nelson s introductionto his talk at the MITS World Altair Com-puter Convention: "Motherhood!" "ApplePie!" "computer power for the people!". Ofcourse the computer hackers are gettingstate of the art components. State of the artmeans current technology which both worksand is manufacturable and salable. As fortiming of specific items based on what yousee in electronics engineering magazines, thatis up to the entrepeneurial designers whocreate actual products which can be mar-keted to the personal computing consumer.So, as with motherhood, apple pie andcomputer power for the people, BYTE isdefinitely in favor of advances in the state ofthe art.

SUPER SERVICE TESTIMONIAL

I don't know how many computerhobbyists are at the hardware experimenta-tion stage. If the computer club here inColumbus OH is any indication most areprobably still at the thinking and planninglevel, but for those who are building I wouldjust like to provide a little "reader feedback"on the service from a couple of youradvertisers. All us hardware types arefamiliar with the "back order blues" thatholds up experimentation for months, so theultra fast turn around service I got from

Advanced Data Sciences (they sell keyboxes)and S D Sales (they sell parts) deservesspecial credit.

Since it was a letter just like this one in anamateur radio magazine that put me onto SD, I just thought a little feedback amongcomputer types might be of a little interestfor those who are about ready to buy.

B F Jacoby

88 W Frankfort

Columbus OH 43206

WHERE IS THE INEXPENSIVEGRAPHICS DISPLAY CIRCUIT?

I can't understand it! There are so manycomputer hobbyists that I know withoutany 10. And yet we can find no circuit thatwill take our 8 bit output and put it on ourTV sets.

There are many TV typewriters, TVgames, TV graphics (most in the range of$160- $300).

Where is the circuit (inexpensive) thatwill accept 8 bits of x, y, brightness (what-ever the TV will need) and convert it tovideo for my portable TV?

My 6800 is waiting, as are many others!!This circuit would be more versatile than adedicated TV typewriter or game.

Let the computer owner make it to fitinto his system to accommodate his needs.Let him decide on where the memory shallreside.

There is a need! See what you can do!

Paul Hyde JrMilwaukee Wl

Take a look at "Build a Television Dis-play" by C W Gantt in the June 1976 issueof BYTE, page 16. If "will accept 8 bits" isloosely interpreted as an ASCII character,then Mr Gantt's circuit fills the bill.

However, the author-engineers in ouraudience should take a cue from this letterof Mr Hyde. Here is a functional specifica-tion challenge:

Design a 256 by 256 point displaymodule which maps 2?6 bits of mem-ory (organized as 2'3 = 8 K bytes)into a standard EIA composite videosignal which will drive a TV monitor.We 'II all look forward to the first such highresolution plotting module since it willenable us to do detailed graphics for a"reasonable" price. But TANSTAAFL(There Ain't No Such Thing As A FreeLunch). The minimum price you can expecton such a graphics display is the cost of thememory and the cost of the video monitorcombined.

94

Ask BYTE

What computer systems are available thatwould store five thousand (5,000) patientrecords? Each record would consist of name,address, telephone number, age, prescrip-tions and date of last examinations.

Dr Sydney B SchrumGoldsboro NCBYTE Replies:

A first step is to calculate specificallywhat your data base requirements are. Thenwhat you want in the way of access andmanipulation of the data. In your case,picking numbers which look "typical, " sup-pose each record is (worst case lengths):

Name:

30 bytes

Address:

line #7

30 bytes

line #2

30 bytes

zip

5 bytes

Telephone:

JO bytes

Age:

2 bytes

Prescriptions

text:

30 bytes(? length)

Date of last exam:

6 bytes

A fixed length record format based onthis information would require 143 bytesper patient. Multiply this figure by 5,000 tofind the total storage requirement of715,000 bytes. If you use a varying lengthrecord format, this number can be shrunkconsiderably (perhaps 20-50%); since thetypical name, address, prescription, etc, willnot use all of the worst case length allowedto it.

Now, what does this mean in terms ofsystem hardware? The implications dependupon how you want to get at the data. Ifyou only intend to access the data serially ina personal computer version of a "batch"tape oriented system, several channels ofaudio cassette would be an inexpensive butslow access method. Assuming a high per-formance cassette interface at 1200 baud,and a 12 bit UART data format (start, 8data bits, 1 parity bit, 2 stop bits), it willtake you a total of 7150 seconds or nearlytwo hours to read, process and write thedata in an update run. It would thus taketwo hours worth of cassettes or 4 standardC-30 cassettes, and you would have tochange tapes every half hour.

If you want "instantaneous" access, thena higher cost floppy disk system would berequired. With one floppy drive, you can

store "on line" typically 200,000 to250,000 bytes depending upon formatting.Thus you would have to spread your filesout over about 3 to 4 diskettes in order tostore all 715,000 records. "Instantaneous"would work out to be the time required toload and start the proper disk then accessthe desired patient record. If all the recordsare to be stored on line at one time, three tofour floppy disk drives are required (or twodual disk drives).

Ancillaries you will need to make yoursoftware development convenient in eitheraccess method are a high level language likeBASIC with string capability (to handlenames, addresses, etc) and probably 4 K to8 K or programmable memory work space inaddition to the space required for the BA SICinterpreter. You should also have a hardcopy printer such as a Teletype if you wantto program your patient billing and appoint-ment reminder messages. ■

Some letters to BYTE aretechnical in nature and arebest served by some form ofresponse. We will try toanswer as many such letters aspossible. If you have a puzzleconcerning some aspect of thepersonal computing field,write down a clear statementof your question and send itto:

Ask BYTE

Byte Publications Inc

70 Main St

Peterborough NH 03458.We will publish names andaddresses of individualsmaking inquiries unless youspecifically request us to omitthe reference."

Introducing

A New and Unique

Computer Graphics Terminal

To Fit Your Altair

B+W MatrixVertical Dots

of 128 Horizontal x 192

* 3K x 8 No Wait, Static RAM, ON BOARD

* Light Pen And Control Panel Included

* Bandwidth is Compatible with standard TVSet

* Output is 2.25V PP Video

GDT-1 is a 2 slot Altair plug-in graphicsterminal that generates 24K dots on astandard B+W TV set. Unit displays datastored in on board 3K x 8 memory, which isfully computer accessible. Control panelallows data to be entered by light pen orcomputer.

Kit $185., Assembled $235

Computer graphics. Associates

56 Sicker RoadLatham, N.Y. 12110

N.Y. Res. add Sales Tax - Add $2.00 ShippingSend $1.00 for Data Pkg.

95

BOTE

To get further information on the products advertised in BYTE, fill out the readerservice card with your name and address. Then circle the appropriate numbers for theadvertisers you select from this list. Add a 9 cent stamp to the card, then drop it in themail. Not only do you gain information, but our advertisers are encouraged to use themarketplace provided by BYTE. This helps us bring you a bigger BYTE.

readermvi

A75

Advanced Microcomputer Products 77

A70

American Microprocessor 77

BYTE's Books 82,84, 102

BYTE's Subscriptions 80

BYTE's Poster 96

A88

Cambion 77

A37

Celdat 91

A89

CFR Associates 73

A91

C. Itoh 83

Computer Art 78

A92

Computer Graphics 95

A81

Computers and Stuff 73

A83

Creative Computing Books 79

A87

Creative Computing Subscriptions 89

A41

Cromemco 1

A85

Custom Design Services 77

A97

Data Domain 75

A7

Delta 101

A78

Digital Group 5

A8

Dutronics 81

A9

Godbout 99

A69

HAL Communications 51

•

IMS Associates, Inc CHI, 39, 112

A38

Intelligent Systems 53

A15

James 97,105

A90

Logical Services 73

A94

Merrimac 93

A18

Meshna 110, 111

A93

Micon 73

A95

Micro Data 89

A71

Micro Peripherals 93

A57

Mikos 29

A20

Mikra-D 85

*

MIT? CIV,45

A22

National Multiplex 43

A64

Oliver Audio Engineering 77

A98

On-Line 77

A63

Parasitic Engineering 85

A23

Polymorphic Systems 49

A24

Processor Tech 56, 57

A26

Scelbi 17

A27

SD Sales 108, 109

A59

Solid State Sales 103

A29

Southwest Tech CM

A30

Sphere 21

A96

Synchronous Sound 73

A32

Tri Tek 107

•Reader service inquiries not solicited. Correspond directly with company.

Computing 1776 Poster

Robert Tinney painted a beautiful oil painting on a bicentennialtheme bridging two centuries of America's development. Thispainting has been reproduced on the cover of this issue, and afull-sized poster in color without the BYTE logo has beenprinted for you. It will make a perfect wall decoration in youroffice, home or computer room.

The poster is 20" by 24" (51 cm by 61 cm) large with a whiteborder of 2 inches (5 cm) at all four sides. The image size is 16"by 20" (41 cm by 51 cm), and it is the original size. The price is$2.95 postpaid, and the poster is shipped in a mailing tube toavoid folding. Only 2,000 copies have been printed on the firstrun which will be sold on a first come first served basis. So hurryif you want to be among the first to show this beautiful posterto your friends.

BYTE Publications, Inc.

70 Main Street

Peterborough, New Hampshire 03458

603-924-7217

Name.

Posters $2.95 each

Address .

City.

-State.

-Zip.

Q Bill BankAmericardDBill Master Charge

n Check Enclosed

96

f%

7400NTTL|

SN7400N*SN?401WSN7J02N

SN7403N

SN7404N*

SN7405N

SN74Q6N

SN7407N

SN7408N

SN7409N

SN7410N*

SN7411N

SN7412N

SN7413N

SN741-1N

SN7416JJ

SN7417N

SN742QN

SN7421N

SN7J22N'

SN7423N

SN742SN

SN742GN

SN7427N

SN7429N

SN7430N

SN7432N

SN7437N

SN7438N

SN7439JJ

SN7440N

SN7441N

SN7442N

SN7443N

SN7444N

SN7445N

SN7446N

SN7447N*

SN7448N

SN7450N

SN7451N

SH7453N

SN7454N

SN7459A

SN7460N

SN747QN

SN7471N*

SN7472N

SN7473N'

SH7474N-

SN7475N*

SN7476N*

SN7479N*

SN7480N

SN7482N

SN7483N

SN74B5N

5N7486N

SN7488N

SN7489N

SN7490N*

SN7491N

SN7492N

SN7493N*

SN7494N

SN7495N

SN7496N

Srj7497W

SN74100N*

SN74107N

SN74121N"

SN74122N

SN74123N-

SN7J125N

SN74126N

SN74132N

SN74136N

SN7414IN

SN74142N"

SN74143N'

SN7-IU4N*

SN74145N

SN74147N

SN74148N

ml

SN 741 SONSN74151NSN74153MSN74154N*SN74155NSN74156NSN74157NSN74160NSN74161IJSN74163-J*SN74I64NSN74165N,SN74!66'JSN74167NSN7417Q\SN74172MSN74173'JSN74174NSN74175YSN74176NSN74177NSN74180NSN74I81NSN74182NSN74184NSN74185NSN74186N'SN74187NSN74190MSN74191NSN74192N*SN74193N*SN74194NSN74195NSN74196NSN74197NSN74198NSN74199NSN742O0NSN74279N'SN74251NSN74284NSN74285N

CO4O00COJ0O1CO4O02CD4006CD4007CD40O9CD401OCD4Q11CO4012CD4D13CD40I6CO40I7CD4019CO4O20CO4022CD4Q23C04024C04Q25CD4027CD4028CD4029CD4030

.65

CMOS

CD4035 1 85

CD4040 2 45

CD4042 1.90

CO4044 1 50

CD4046 2 51

C04047 2 75

CD4049 79

CD4050 .79

CD4051 2.95

CD4053 2.95

CD4060 3.25

CD4066 1 75

CD4069 45

CD4071 45

CD4072' 45

CO40B1 «

CD4511 2 5C

C0451S 2 5C

74C00N 39

74C02N .5;

74C04N

74C10N

74C20N

74C30N

74C42N

74C73N

74C74

74C90N

74C95N

74C107N

74C151

74C154

74C157

74C160

74CI61

74C163

74C164

74C173

74C193

74C195

MC4Q44'

MC140I6*

LM30DH 80

LM301H 35

LM301CN 35

LM302H 75

LM304H 100

LM305H 95

LM307CN 35

LM308H 100

IM30BCN 1 00LM309H 1 10

LM309K 99

LM310CN 1.15LM311H 90

LM311N .90

LM318CN 1 50LM319N 1 30

LM319D 5 00

LM320K-5 135LM320K-5 2 1 35LM320K-12 I 35LM320K-15 135LM320T-5" 1 75LM320T-8* 175LM320T-12' 1 75LM320T-18- 1.75LM323K-5'LM324NLM339NLM340K-5LM340K-12LM340K-15LM340K-24LM340T-5LM340T-6LM340T-8'LM340T-16*LM340T-12LM340I-!5LM340T-24LM350NLM351CNIM370NLM370HLM373N

LINEAR

9.95

LM377N

LM380N

LM380CN

LM3S1N

LM3B2N

NE501K

NE510A

NE531H

NE536T

NE540L

NE550N

NE553

NE555V*

NE560B*

ME561B-

NE562B-

NE565H*

NE565N"

NE566CN*

NE567H*

NE567V*

LM703CN

LM709H

LM7Q9N

LM710N

LM711N

LM723N

LM723H

LM733N

LM739N

LM741CH

LM741CN

LM741 14N

LM747H

LM747N

LM74BH

LM748N

LM1303N

LM1304N

LM1305N

LM1307N

LM131DN

XR-22D6KA SPECIAL $17.95

Includes monolithic function generator IC. PC board, and assembly instructionmanual

XR.2206KB SPECIAL $27.95

Same as XR 220SKA above and includes external components lot PC board

LM135IN

LM1414N

LM145BC

LMI496N

LM1555V

LM2111V

LM2901IJ

LM3055H

LM3900N

LM3905V

LM3909*

LM5556N

MC555BV

LM75251J

LM7535!)

803BB*

LM75450

754S1CN

7S452CN

75453CH

75454CN

75491 CfJ

75492CN

75494CN

RCA LINEAR

CA3013

CA3023

CA3035

CA3039

CA3046

CA3059

CA3060

CA3080

CA3081

CA30B2

CA30S3

CA3086

CA3Q89

CA3Q91

CA3123

CA3130'

CA3600

RG4194

RC4195

kits EXAR

ICS

TIMERS

XR-555CP S.69

XR-320P 1-55

XR-5S6CP 1.85

XR-2556CP 3.20

XR-2240CP 325

PHASE LOCKED LOOPS

XR-210 520

XR-215 6 60

XR-567CP 1 95

XR-2567CP 2 99

STEREO OECODERSXR-1310PXR-1310EPXR1800P

WAVEFORM GENERATORS

XR-205

XR-2206CP

XR-2207CP

MISCELLANEOUS

XR-2211CP

XR-2261

XR4136

S3.203.20

3.20

DATA HANDBOOKS

7400 Pin-out & Description of 5400/7400 ICS $2.95

CMOS Pin-out & Description of 4000 Series ICS S2.95

-LINEAR Pin-out & Functional Description S2.95L ALL THREE HANDBOOKS $6.95

CONSUMER ELECTRONICS

exelar

DIGITAL WATCH

This watch is manufacturedUy National Semiconductor.' It provides 5 functions,hours, minutes, seconds,date. A M indicator dolAccuracy is assured to 5seconds per month by pre-cision quartz crystal. IIsomething should go wrongwith Hie watch, repair is as-sured wrihin 48 hours alter ilis received. Complete withsteel black leather band

ES4-YS

3 MICRON GOLDPLATE BEZEL

$29.95

i NOT A KIT

Novus

DIGITAL ALARM CLOCK

Tins 4 digil Novus Alarm Clock is a very reliable and smartly■ Styled unit It provides such features as an alarm sellable to arvminute ol tl"e day. a 7 minut.es snooze alarm, a power failure

Indicator, and even an am , p m indicator.

NOT A KIT

$19.95

xciton OPTO ELECTRONICS

LITRONIX DISCRETE LEDS

MONSANTO

125" dia.

.185" dia.

.190" dia.

XC209RXC209GXC209YXC2090

XC526RXC526GXC526YXC5260

XC111GXC111YXC1110

«fc

.200" dia.

XC22RXC22GXC22YXC220

.200" dia.

XC556R 5'S1

XC556G 4S1

XC556Y 4-S1

XC5560 4 SI

DISPLAY LEDS

MAN 2 MAN 4 MAN 7

.085" dia.

MV50085' ftred led

d.707 DISPLAY LEDS

FND503 FND70 ^^m mH 2 MM ' M-AfJ 7

■ I 11 IS ■

TYPE POLARITY HT TYPt POLARITY

TYPE

WAN 1 COMMON ANODE 270 S3.25 MAN

MAN 2 5«7 DOT MATRK 300 4.95 DL707

MAN 3 COMMON CATHODE 125 .39

MAN 4 COMMON CATH03E 187 1 95

MAN 7 COMMON ANODE 300 1 50

MAN 7G COMMON ANODE-GREEN 300 2 50

MAN 7Y COMMON ANODE-YELLOW 300 2 50

MAN 72 COMMON ANODE 300 1.50

POLARITYCOMMON CATHODECOMMON ANODE:OMMON ANODECOMMON CATHODECOMMON CATHODECOMMON CATHODECOMMON CATHODE

DL747

DL750

DL33B

TND70

FND503

fND507 COMMON ANUIH

300 SI 50300 S1-50500 2.25

18 pin22 pin

IC SOLDERTAIL— LOW PROFILE (TIN) SOCKETS

24p,n28 pm36 pin40 pin35 SOLDERTAIL STANDARD (TIN)

28 pin35 pin40 pin

SOLOERTAIL STANDARD .(GOLD)

24 pin28 pin36 pin40 pin

10 pinM pinIS pin18 pin

WIRE WRAP SOCKETS (GOLD) LEVEL #3

HI HI ' ^"

24 pin28 pin

40 pm

50 PCS. RESISTOR ASSORTMENTS $1.75 PER ASST.

ASST. 1ASST. 2ASST. 3

ASST. 4

10 OHM 12 OHM 15 OHM

27 OHM 33 OHM 39 OHM

58 OHM 82 OHM 100 OHM

1BG0HM 220 OHM 270 OHM

470 OHM 560 OHM 580 OHM

18 OHM 22 OHM

47 OHM 56 OHM

120 OHM 150 OHM

330 OHM 390 OHM

820 OHM IK

1 2K

150K5 ea. 390K

1.5K

180K470K1 2M3.3M

ALL OTHER RESISTORS FROM 2 25-25 PCS .05 ea 30-95 PCS

1 8K

33K82K220K560K1.5M3 9MOHMS04 ea

2 2K5 6KI5K39K

2.7KG.8K

18K

120K

330K

820K

2.2M

4 7M 5.6M

5.6M AVAILABLE

100-495

100K270K

680K1 BM

1/4 WATT 5% 50 PCS.

50 PCS.50 PCS.

1/4 WATT 5%MULTIPLES UF :a SOU-995: .0275

14 PCS. POTENTIOMETER ASSORTMENTSASST A2ea- 10 OHM-20 OHM-50 OHM-100 OHM-200 OHM-250 OHM-500 OHMASST. B 2 ea: IK. 2K. 2 5K 10K, 20K. 25K. 50KASST. C2ea: 50K. 100K. 230K. 250K. 5O0K. 1M. 2M $9.95 PeT ASSt.

Each assortment contains 14 pes ol 10 ti

ipots.

II pots a

IV.il 1.1 Ilk! ■!■

; $.99 e

'Astrisk Denotes Items On Special For This Month'Satisfaction Guaranteed. S5.00 Mm. Order. U.S. Funds.California Residents — Add 6% Sales Tax — Data Sheets 25c eachSend a 13c Stamp (postage) for a FREE 1976 Catalog

1021 HOWARD ST., SAN CARLOS, CA. 94070PHONE ORDERS — (415) 592-8097

74LSO074LS0274LS0374LS0474LS0574LS0B74LS1074LS1374LSI474LS2074LS2674LS2774LS2874LS3074LS3274LS4074LS51

74LS00 TTL

74LS5574LS7374LS7474LS7574LS7674LS8374LSG674LS9074LS9274LS9374LS9574LS9674LS10774LS11274LS13274LS13674LS13B

.65

1.S

74LSI5174LSI5374LS15774LS16274LS15374 LSI 6474LS18174LS19074LS19174LS19274LS19374LS19474LS19574LS25774LS26074LS27974LS670

3.692 852852.852 852.252.25

DL728

The DL728 is a dual 0.5" common c=1hooe reddisplay. It is ideal for use with clock chips, assegments are already multiplexed $2.95

o.ot

an

I

XI

ion

»«

'W

0,

Off

0.

„.

3 OS

IBB

,3.3

.»

ON

"~

on

■

2,«

I.3S

1431

LSI

jHJ

ON

«.E

ON

in

3 35

13»

1.431.31

1.3.

MINATURETOGGLE

4

PUSH BUHON

Model 1 Quanity net pricesNumber Each 2-9 10-29 30-99PB-123 S2.35 $1.95 $1.47 S1.30

PB-126 $235 SI 95 $1.47 $130

l

THUMBWHEEL SWITCHES

Mil! Body

B POSITION ROTARY SWITCH Tnese switches are a 7 position, oneposition open, rotary swilcri enclosed ina TO-5 can Tney nave a Siandard 8 pmconfiguration and will mount perlectlyi printed circuit boaid

$.79

TYPE

IN 746

1N751A

1N752

IN 753

1N754

1N965B

1N5232

1N523-1

1N5235

\NWM\

1N45G

IN45B

IH4SSA

1N4001

1NJ002

1N4003

INiOOl

ZENERS—DIODES—RECTIFIERS

400m400mJOOm400m400m500m500m

50°IV100 PIV200 PIV■100 PIV

TYPE VOLTS1N-I0D5* 600 PIV

1N4006* 800 PIV1N4007* 1000 PIV1N3600 501N41J8 751N4154 351N4734 5.61N4735 6.2IN4736 6.81N473B 8.21N4742 121N4744 151N1183 50 PIV1N1184 100 PIVINI 186 200 PIVINI 188 400 PIV

1 AMP1 AMP1 AMP200m

61.00151.0012 1 00

35 AMP35 AMP35 AMP

UPS A05MPSA06?N2?1UA2H?22\

:'N,':.7?a2N23B9KH2309A

FNS-115PN34B4

WtSXA

2N2907A2M29252N3QS32KM5SMj[30biMJLJ9553N339!2N339B

TRANSISTORS

PH3&67PN3S6SPN35692N3704

atSTDS

:jN3/0ii?nmi

2N371'2N37J4!M373b2N39032N3901?N390S2f.39062N40132N4014

PN3569 J.'SI 00

T2N3704 5/S1 00 „.

2N3705 RSI CD il

2N3706 5/SI.00 jT

2N3707 5-S1.00 i

2N3711 5S1 00 I1.

PN42W 4.S1 OC

PHJ2M 4SI OC

2N4400 4iS1 00

2N4401 4'SI OC

2NJ402 4/S101

2N4403 4/S1.QC

2N4409 5/S1 0(

2N508G 4/S1 IX

2N5087 441 M

2N50aB 4.S1 OC

JN50B9 4 Si a

2NS129 5 SI 01

2N5138 SSI 0)

2N5139 5.S1 0

2N5209 5 S< 01

2NS95I S-St OlC106B1SCH 2S' 0

2N5432 S2 0

100 pi220 pi470 pi

001ml.00220047mlClml

1 35V15 35V22 35V33 35V4735V.0835 V1035V

47 50VI 0 50V3.3 50V4,7 25V10 25V10 50V22 25V22 50V47 25V47 50V100 25V100 50V220 25V220 50V470 25V1000 16V>200 16V

CAPACITOR CORNER

50 VOLT CERAMIC DISC CAPACITORS10-49 50-100 1-9 10-

.04 03 .00 VF 05 -0

.04 03 C047*iF .05 0

.04 03 Ol^F .05 0

.04 .03 022MF 06 0

.04 .03 047,jF .05 0

.04 .035 VF 12 D

100 VOLT MYLAR FILM CAPACITORS

022ml

047ml

10

.07

.1ml

.27

10 07 22ml

20% DIPPED TANTALUMS (SOLID) CAPACITORS.23 .17 1.5 35V .30 .26

.23 .17 2.2 25V .31 21

.23 .17 3 3 25V ,31 .27

.23 .17 4 7 25V .32 .28

.23 ,17 6 8 25V .36 .31

.23 .17 10 25V 40 35

.23 .17 15 25V 63 , -50

MINIATURE ALUMINUM ELECTROLYTIC CAPACITORS

Axial Lead15 .13

.10

.47 25V ..47 50V

1 0 16V .15

1.0 25V 16

1.0 50V 16

4,7 16V .15

4.7 25V .15

4.7 50V .16

10 16V .14

10 25V .15

10 50V .16

47 50V 24

100 16V .19

100 25V .24

100 50V 35

220 16V 23

170 25V 31

Radial Lead.13 ' '

Classified Ads for Individuals and Clubs

Readers who have equipment,software or other items tobuy, sell or swap should sendin a clearly typed or printednotice to that effect. Thenotices are free of charge andwill be printed one time onlyon a space available basis.Insertions should be limited tono more than 100 words.Notices can be accepted fromindividuals or bona fide com-puter users' clubs only. Com-mercial advertisers should con-tact Virginia Peschke at BYTEfor the latest rate card andterms.

Before sending your classifiedad to BYTE, read it over. Didyou include your name, ad-dress, phone number (witharea code) in the text of thead? B YTE has received severalads with incomplete phonenumbers or missing addresses.

WANTED: Any low cost computer terminal forprivate use. Please contact Robert Brodie, 15Harwich Rd, Chestnut Hill MA 02167, (617)332-8034.

The Beta Terminal owners group of the ComputerHobbyist Group of North Texas is interested inestablishing communications with owners of ter-minals that use the Univac 0769 Series printmechanism. We are looking for Beta keyboards(Microswitch No. 53SW1-2). One of our membershas some spare parts for Beta terminals for sale.Contact L G Walker, Rt 1 Box 272, Aledo TX76008, (817) 244-1013.

WANTED: Complete working computer or onestill in kit form. Need E&L LR-outboards and E&Lmark 80 microcomputer system or its equivalent.State condition and give lowest price. JohnWaskowitz, 35-30 73rd St, Flushing NY 11372.

WANTED: New or used: computers; peripherals;components; plans; software; robots; laserweapons; science fair projects; Star Trek items;rockets; electronics equipment; amateur radio;antennas; satellites; whatever you have I will makea cash offer. Please send your specifications to JoeHalligan, 3331 Altamont Dr, Wilmington DE19810.

WANTED TO MEET: Individuals using the Univac769 printers for hobby purposes. I have knowledgeof how to use these printers and will share same.FOR SALE or TRADE: 3 serial punch devicesfrom Teletype Corp, new, very similar to the ASR35 punch units; take 20 mA current loop input ofASCII and require a drive motor. Jim Beistle, 3728Wilkie Way, Ft Worth TX 76133.

FOR SALE: IBM Selectric Printer/Keyboard unit(Serial #4600785). Originally used as console forIBM 1410. Has 1407-type keyboard, mounts like2741 in a table well. Convertible to computerconsole, terminal, or Selectric typewriter withproper user-supplied power supply and controllogic. Needs minor repair. Sorry, no FE manuals ordata sheets. Weight: approximately 40 lb. Bestoffer above $75 takes it. M Scherer, RR 2, Box116, Bedford NY 10506.

1702s PROGRAMMED - I can program your1702s for $3 or duplicate for $1.50. Changes in aduplication 10d each + duplicating charge. Also, Ihave a limited number of 4 KE PROM kits for theAltair/lmsai that hold up to 16 1702s for $65 each(1702s are not included). Please send material tobe programmed in HEX (Base 16). Include returnpostage. John B Jay, 165 River Valley Rd NW,Atlanta GA 30328.

FOR SALE: Wurlitzer Electric Piano. Uses stan-dard piano action to strike tuning forks withelectronic pickup. Sounds like an amplifiedclavichord. Has controls for volume and optionalvibrato; headphone and auxiliary amplifier jack.Best offer over $550. Call Carl Helmers, BYTEPublications, (603) 924-7217, or write to 70 MainSt, Peterborough NH 03458.

FOR SALE OR TRADE: Friden FlexowriterModel FPC-8, 8 level code printer, keyboard, papertape punch and paper tape reader with table.Excellent condition $500. Also disk memory, 27track fixed head, 5454 bits per track $100,HP120A oscilloscope with 2 Tektronix probes$150. J G Hansen, PO Box 1337, Fort Davis TX79734 (915) 426-3331 (evenings).

WANTED: Humane individual to provide backissues of BYTE from "GO" to number 5 inclusive.Will pay all costs and bribery. P L Christie, 20James St, Adelaide, 5000, Australia. (I'm notnecessarily interested in original copies, only theinformation therein. [BYTE won't mind if someindividual makes an international good will gestureby loaning Mr Christie copies of BYTE #1 to #5for the purpose of limited Xerox reproduction.] )

FOR SALE: DEC PDP-8/S, one working, goodcondition, one for parts (both $2000), IBM 024keypunch for experimenter $150. NCR cardreader, new-unused, EM-D2, $100. Call or writeReg Conkling (516) 744-9475, Box 310, ShorehamNY 11786.

ALTAIR 8800 computer, fully assembled andoperative, with 4K static RAM, $575. MITSVLCT, assembled and working, with non-MITSkeyboard and no case, $85. You pay shipping, Ipay crating charges. James R Einolf, 12149 NPiney Lake Rd, Parker CO 80134. (303) 841-2105.

"Hints for troubleshooting and suggestions forapplication of the Viatron 21 Data ManagementStation." Write Greg Ludwig, Box 408, Rice LakeWl 54868.

Will swap my time to help you set up, program,develop system(s), or to give you training in theabove, in return for using your system. Or wouldbe interested, also, in swapping my time to secure asystem of my own. Have an extensive backgroundin systems/programming, many systems, manylanguages, including assembly and higher level.Please contact Toby Maki, 102 Minott Rd, West-minster MA 01473, (617) 874-5410.

Will trade comics, bicycle magazines, or pre-1950radio magazines for microcomputer magazines orhardware. Ian MacMillan, PO Box 128, MountRoyal, Quebec, Canada H3P3B9.

FOR SALE OR TRADE: 5 channel TTY; IBMSMS logic; CDC 2816 office typewriters withoptical paper tape reader and high speed paper tapepunch and controller (paper tape version ofMTST). W Palya, St Joseph's College, RensselaerIN 47978, (219) 866-7111.

FABULOUS SALE! Spectrum Analyzer unit 10cps to 100 kHz expand to MHz. Displays spectrumon any scope with documentation, cost $1475new, sell for $550 or trade. VIATRON 21-PARTSIParts, documentation and all the goodies includingRS-232 interface. Can provide repair service. RBrown, PO Box 83, Marcy NY 13403.

Bell 103 compatible Acoustic Couplers. TTL com-patible data lines, single +12 volt supply. Optionalsignals provided: Clear to Send, DAA input. Switchselectable Up/Inverted code. We have used thesewith HP, DEC and Burroughs timesharing. Includesschematic- and interfacing information, $50.George H Enos 2400 W Valley Pkwy, Sp 42Escondido CA 92025.

98

MA

!HSUT-

mm

HTACA

* 24.50

ii ii

• From the same people who brought you Vectorboard, the

• time-saving Wire Pencil, and the Altair Universal Pro-

# tptype Board comes a truly revolutionary tool. The

0 "Slit-N-Wrap" tool provides for the first time a

0 fast manual wrapping device which supplies insulated9 wire from a spool directly to wrap posts WITHOUT any

# external precutting or prestripping. It can do this% in a "daisy chain", so more than one level is rarely0 required...thus saving space when you want to stack

0 cards. Wires are cut off only at the end of lines

0 no premeasuring of wires is necessary. The secret?A An almost undetectable slit is cut into the wire asa it leaves the tool's tip; as the wire pulls past thea wrap post, the copper is exposed to the post. Qualityf of wrap is extremely good another advantage.

::

CAVE • •

The Slit-N-Wrap package comes 9 9complete with tool, 200 feet #•of wire, and instructions. # •Add 1 pound shipping, please.0 ♦

::

A fULL f EATURE : 8080 CHIP SET :

# K y OJMICftOMONITOft:

^^™ B B ^^ ^^^ 0 THE 8080 IS A HOBBYIST STANDARD IC. BUT A

MirDnDonrcccno cav ttcci c: nnceu »x ucaki ui iru

BOARD

MICROPROCESSOR BY ITSELF DOESN'T MEAN MUCHWITHOUT SOME MEMORY, AND PREFERABLY SOMEKIND OF MONITOR ROUTINE SO YOU CAN AT LEASTFILL AND EXAMINE THE MEMORY. SO , HERE'SWHAT YOU GET IN OUR CHIP SETi

S99.95:

1 - TMS8080 MICROPROCESSOR

8 - 2102 IK STATIC RAMS

1 - 5204 4K EROM (eraseable, programable)

Now that other companies have pickedup on our buffering and static oper-ation... and on adding hysteresis tothe data in lines (for unambiguousdata transfer)...we decided to con-tinue staying ahead of the pack by giving more features at •a lower price. Like our previous memory kits, this one is 9FULLY PLUG-IN COMPATIBLE WITH BOTH IMSAI AND ALTAIR 8800 •MICROCOMPUTERS. The board features buffered address, data •out, and data in lines...zero wait states... 1A typical •power consumption. .. low power Schottky for all TTL support #—ICs...on board regulation with 3 regulators, situated for % ^optimum thermal stability . . . lots of bypassing (39 disc £ ^

ceramics, and 7 tantalums for power supply decoupling)... {§ J so available separately for S29.95.a DIP switch for the address select an industrial-quali- * %•••••••••••••«>••••••••••

ty, double-sided plated through PC board (epoxy glass baselike our other kits)... sockets for all ICs...plus ease ofassembly, thanks to our simple- to- follow instructions.Documentation also includes a logic print of the memory. .Others can incorporate the engineering, but we've got the 5recipe on keeping the price down.

i

The cost of this chip set is $59.95. How-ever, BY ADDING $10 WE'LL PROGRAM YOUR 5204WITH THE 8080 MICRO-MONITOR. THE SOFTWAREIN THE 5204 ALLOWS YOU TO EXAMINE AND FILLMEMORY, PUNCH AND READ PAPER TAPE, BRANCHTO AND RECOVER FROM PROGRAMS.

k A COMPLETE SOFTWARE LISTING COMES WITH THEMICRO-MONITOR. THE MICRO-MONITOR IC IS AL-

• ••••••••••••••••••••••••••

•OTHER CHIP SETS*:

8008 CHIP SET $32.50

::

v

n

S€NTft!J O&STAIS

_*.

(1)8008 CPU and (8) 2102s,

THAN PIN0UT INCLUDED,

No DATA OTHER

W.95 EACH, Excellent for frequency calibrators,

HAMS, OR COMPUTER BUGS. SERIES MODE, FUNDAMENTALOPERATION, WIRE LEADS. CHOOSE FROM THE FOLLOWINGFREQUENCIES:

4 MHz (PACE clock frequency), 5 MHz, 8 MHz, 10 MHz,12 MHz, 15 MHz, 18 MHz (8080 clock frequency), and20 MHz.

5

PACE BASIC CHIP SET (16 BITS) $125.00

(1) PACE cpu... (4) DS3608...Q) DS0026...(1) DM8837..(2) 5204 EROMs..plus the PACE

DATA PACKET.

PACE DELUXE CHIP SET $195.00

(1) PACE cpu... (4) DS3608...Q) DS0026...(1) DM8837...(32) 2102s...(1) 5204 EROMs,

AND OUR PACE DATA PACKET,

•••••••••••••••••

^•••••••••••••••••••••••%

•FREE FUJER!

BILL GODBOUT ELECTRONICSBOX 2355, OAKLAND AIRPORT, CA 94614

The best thing in life is free, so 9

they say...but so are some of the %

second and third best things, like 0

our flyer. Send us your name and f

address If you're In a hurry, or f

circle the reader service card if £

you can afford to wait a little 0

longer. A

i

YTE'SUGS

Here lies documenta-tion of known bugs de-tected in previous editionsof BYTE. ..

Patching the Biorhythm Program

Don Libes, 995 Chimney Ridge, Spring-field NJ, reports that the biorhythm pro-gram in the April issue of BYTE (page 22)incorrectly calculates a person's life span. Hesuggests the following patch to correct theproblem. Delete lines 130 to 470 of thelisting as printed, and replace them with thefollowing set of lines:

150160

or IF Y/4-INT(Y/4)

-D/4I+D

or IF Y/4-INT(Y/4)

130 FOR X=1, M-1140 D=T(X)+D

NEXT X

IF M<=2THEN 180

#0THEN 180170 D=D+1

180 D=(Y-1)*365+INT((Y-190 D4=D1200 FOR X=1,M1-1210 D4=T(X) + D4220 NEXTX230 IF M1=<2THEN 250

*0THEN 250240 D4=D4+1

250 D4=(Y1-1)*365+INT((Y1-1)/4)+D4260 D3=D4-D

With this patch, all cycles should now startin phase at one's birthdate and calculate thebiorhythm correctly according to the bio-rhythm hypothesis as stated. However, thispatch does not affect the question ofwhether the biorhythm hypothesis as statedand programmed is valid."

How to Do It Better

Michael M Dodd, 291 Waples Estates, Fairfax VA 22030, sent us a lengthynote commenting upon the design of Robert Bosen's interface, page 42 ofApril BYTE. It is reprinted here with a couple of editorial notes interjected.The key to the notes is as follows: [Oops] indicates a design flaw that shouldhave been corrected editorially; [Point] indicates a possible better way tohave done something; [Good point] indicates a place where an engineer withconsiderable experience would have done things differently, and the reasonswhy. Michael's letter is printed as much for the two real [Oops] class errorsas it is for the tutorial value of his comments concerning design practice.

In reading the article, "Controlling Exter-nal Devices With Hobbyist Computers" byRobert Bosen in the April issue of BYTE, Inoticed several cases of what I consider to bepoor hardware design. I would like to pointthem out to possibly help someone wantingto build a similar circuit.

1. The IC inverting bit D4 in figure 1should be a 7404, not a 7400 (the pinnumbers are wrong for a 7400). [Oops] Inaddition, it is generally not good practice toparallel TTL gates; if you need more drive,split the load. It is possible that one of thegates could produce a slightly lower zerovoltage and take all the current while theother one did nothing. [Goodpoint]

2. Pin 10 (the preset input) and pin 4(same) of the 7474 flip flops should be tiedto +5 V; leaving it open is inviting falsetriggering due to noise pickup. [Goodpoint]

3. Driving the base of transistors withTTL outputs can cause overheating of thedevice. A three volt drop across a 1 k resistorcauses 3 milliamps to be drawn from theTTL output in the high state; this is far inexcess of the 400 microamps specified.[Good point]

4. The jumpering scheme in figure 2 iswrong. It will cause the outputs of theinverters to go low when the inputs are leftfloating; this will short the address bus linesto ground. The jumpers should be betweenthe inputs of the 7430 and either theoutputs of the inverters or the address busdirectly. [Oops]

5. Mr Bosen's point about saving addressloading by using low power TTL is welltaken. The second input of any 7400 used asan inverter should be tied to +5 V to reduceloading, not to the active input. This willsave one input load on the address line.[Good point]

6. In figure 3a the diode across the relaycoil does not have to be a Zener. When themagnetic field collapses, a spike is indeedgenerated, but it is of the opposite polarity;thus, a common silicon diode (polarity asshown) will shunt the spike, protecting thetransistor. [Good point]

1. On the software side, I might pointout that with the "clear" line on bit D4'(figure 1) connected as shown, a zero on D4will cause a "clear" condition. Many peoplelike to work with active high (a one per-forms the operation) and one inverter isrequired to achieve this. It sometimes helpsin programming if you use active high.[Point]

8. Also on software, the descriptionabout clocking another output channel toget the pulse necessary to toggle the flip flopis not really necessary. The chip enableinputs to the 75154 (figure 1) are designedto put all the outputs in a high state whenthe chip is disabled. All that is necessary toget a pulse is to tie either pin 18 or 19 to anunused bit on the output port (there arethree left) and wiggle that bit while main-taining the channel selection number on thelower four bits. This may or may not beeasier than selecting another channel, but atleast you don't have to worry about whatchannel to select to get your pulse. [Point]

I just wanted to point out these items.Since Mr Bosen has obviously built thedevice, I can't argue with success; but someerrors must have crept in between his wirewrap tool and your pages."

100

DELTA ELECTRONICS

POST OFFICE BOX 2, AMESBURY, MASSACHUSETTS 01913

Phone (617) 388-4705

Bolt, Baranek & Newman DATA CODER

These DATA CODERS are moving fast, but we still have a few left. They are made by Bolt,Baranek & Newman for use in the medical electronics field, but have many other applications.Any data to be digitized (charts, maps, waveforms, drawings, game grids, etc.) is placed in thebed, and the sight is moved along the data. This generates vertical & horizontal displacementcodes, which can be stored and processed by your calculator or micro-cpmputer.

The bed size is 1 2%" x 10 5/8", and is translucent for use as a light table. Some units have a7" x 10%" translucent portion, the rest being opaque. Each is divided into 128 increments, fora total of 16,384 bits over the bed. Horiz. increment size = .10", vert, increment size = .083".Each axis generates an 8 bit code by means of high reliability spring wipers on a gold plated PCencoding board. Easily interfaced to any logic family with appropriate pull-up resistors. Over-all size 18%" x 17%" x 3" high, shipping weight 10 lbs. Complete with coding data.

Buy one while you can. It is unlikely that this item will ever become available again.

STOCK NUMBER B5352 $79.95 each

TRANSFORMERS

We carry one of the largest & most diversified stocks of transformers in the country,below is a sampling of our many different types. Our free catalog lists many more.

Listed

PRIMARY

115v or 230v

115v

115v

115v or 230v

115v

115v

SECONDARY NO. 1 NO. 2 NO. 3

34v, 3 A, CT 17v, 4 amps 11v, 5 amps

26v, 1 A, CT 6.3v, 14 amp

34v, 6.5 A, CT 6v, 2 amps

17v, 4 A, CT 170v, 350 ma. (Nixie supply)

64v, 4 amp, CT, taps for 32v, 5.5 A 17v, 7 A,

18v, 4 amps 17v, 2.5 amps 10v, 5 amps

NO. 4 SIZE LBS.

6.3v, 1.5 amps 3% x 41/2 x 454 10

3 x 2'/2 x 2% 4

3 x 3% x 4J4 9

3% x 3% x3% 6

CT 380v, .4A.CT 4V4 x 4 x 4 11

2% x 3% x 3V4 6

STK. NO. PRICE

B9397 $12.95 ea, 2/24.00

B9907B9888B9796B9905B9906

3.75 ea, 2/7.00

10.95 ea, 2/21.00

3.50 ea, 3/9.00

11.95 ea, 2/22.00

8.95 ea, 2/16.00

AUTOTRANSFORMERS: 2 KVA rating, voltage taps every 5 volts from 85v to 125v. Valuable in areas of low or fluctuating line

voltage. 4'/2 x 5'/2 x 4%, 15 lbs. STOCK NO. B9721 $9.95 ea, 2/18.00

2 KVA rating, step up/step down autotransformer. Taps at 100v, 115, 125, 200, 220, and 230v.

3% x4'/2 x41/2, 11 lbs. STOCK NO. B9856 $12.95 ea, 2/25.00

ISOLATION TRANSFORMER: 11 5v to 115v, 100 watts continuous. 3 x 31/2 x 31/2, 7 lbs. STK NO. B9971 $5.95 ea, 2/11.00

Viatron System 21 PC BOARDS

B6362

B6364

Recently, Viatron System 21 Data Management Stations have become available from several surplus sources. While this is anexcellent machine, the availability of spare parts is practically nil. We have these three PC boards available for this system. Theyare in new, unused condition, but do NOT have the LSI chips. We are offering them for their use as replacements or for parts.

KEYBOARD TYPE 2, number 109207.

DISPLAY ARRAY PARTITIONING, number 109300 Rev. B

STOCK NO. B6362STOCK NO. B6363

$9.95 each$9.95 each

COMMUNICATIONS ADAPTOR BOARD, number 1 099 Rev. B. Used in the 6003 and 6004 Communication Adapter,which provides an ASCII interface to other equipment. STOCK NO. B6364 $14.95 each

Current factoryprice is $12.

Philbrick/Nexus OPERATIONAL AMPLIFIER

Philbrick/Nexus Model SQ-10a is a high gain, high stability general purpose op amp. It operates over the temp,range of —25°C to +85"C. Both inputs & output are fully protected against shorts to ground or the power supply.It may be used open loop as a voltage crossing detector. 1 Mhz unity gain bandwidth. Open loop gain 60,000 min.Slew rate 1.1 V/ sec. min. 100 nA. max input bias current. Nominal power supply ±1 5 v. 1 1/8" x 1 1/8" x V4"STOCK NO. B4539 With data $1.75 each, 4/6.00

Send for our latest free catalog. Minimum order $5, phone orders welcome. Include sufficient postage (2 lbs min.), excess willbe refunded. BANKAMERICARD & MASTERCHARGE welcome, ALL numbers needed for processing. Minimum charge $15.

What's

New?

But It's New to Me?

Yours truly [CH] had a little argumentwith photographer Ed Crabtree over thisitem, the "Hexadat" mechanical calculatoravailable from Radix Precision Co, AtlantaGA. The "Hexadat" is a boon to all lovers of4 bit representations of binary data ashexadecimal digits. Hexadecimal notation isthe natural way to represent memory con-tents in lieu of other formatting conventionsfor any machine with a word length that is amultiple of 4 bits (but not divisible by 3 orelse octal lovers will have a good argument).

But hexadecimal arithmetic is anothermatter, a technique which takes practice tomake perfect or reliable as anyone withexperience puzzling out an OS 360 or 370core dump can attest. So, several years ago,the Radix Precision people created this neatlittle mechanical adding machine which isoperated by a stylus and uses base 16notation. Now that the microprocessor eraof 8 bit processors is upon us, the sameproblem of hexadecimal addition and sub-traction which afflicts users of large scaleIBM machines is repeated in miniature forthose of us who use hexadecimal for 8 bitprocessors. And this same mechanical cal-culator will provide excellent service forhexadecimal arithmetic in your own com-puter laboratory. It comes in a carrying casewith a reference card for base conversionsand the stylus used to perform operations.Which brings the subject back to acertain argument. When Ed Crabtree re-turned with the pictures, he protested that"there's nothing new here!" Whereupon heproduced from his pocket a neat littlemechanical calculator circa 1900 which hadbeen used by his grandfather. In "the olddays" people apparently got along withoutthe convenience of the $8.95 hand cal-

Continued on page 112

Stamp Out Cybercrud

COMPUTER

Have you every been victimized byone of a myriad computer based inter-personal putdowns? In Ted Nelson'sbook, Computer Lib/Dream Machines,you'll find an excellent essay on thenature of this "cybercrud."

Have you ever wondered where to gofor a basic starting point in your questfor information about computer applica-tions and uses? Ted Nelson's book,Computer Lib/Dream Machines, is theplace for you to begin.

Computer Lib/Dream Machines is forthe layman — the person who is intelli-gent and inquisitive about computers. Itis written and self published by aphilosopher who is also a self confessedcomputer fan and an excellent teacher ofbasic concepts. (For those who have notyet heard, ivory towers are constructedout of real and substantial white bricks.)The most important aspect of this book

is its inspirational data content. Themachines we're all busy working on aredeep personal expressions, and not thecold and inhuman monsters of the tradi-tional stereotype. The book definesmany of the terms and explains many ofthe techniques which can be used in thepersonal computer systems we're allbusy constructing and programming. Itperforms this service in a way whichadds color and excitement to this newestof art forms, the computer application.

Computer Lib/Dream Machines ismust reading for the beginner, and is alsoa refreshing self examination for the oldhand at programming and systems work.

You can order your copy of Com-puter Lib/Dream Machines from BYTE'sBooks for $7. Send your order today toBYTE's Books, 70 Main St, Peter-borough NH 03458. Help stamp outcybercrud.

Please add 50 cents for postage and handling. Please allow six weeks for delivery.Send copies of Computer Lib/Dream Machines to:

Name

EUTE

PETERBOROUGH, NH 03458

Address

City

State

Zip

ii Check enclosedn Rill MP #

□ Rill RA ii

Signature

Fvp Datp

102

FeaturesValue

SPECIAL PURPOSETRANSISTORS

INTEGRATED CIRCUITS

HARDWARE

+P.C. SOCKETS

SILICON POWERRECTIFIERS

ZENERS

TRIACS

SCRS

LIGHT EMITTINGDIODES

SPECIAL

PURCHASE

ITEMS

11

VIDEO CAMERA KIT

A UNIQUE ALL SOLID STATE CAMERA KITFEATURING A ... 100 x 100 BITSELF SCANNING CHARGEDCOUPLED DEVICE

INCLUDES THE FOLLOWINGUNIQUE FEATURES...FOUND IN FAR MOREEXPENSIVE CAMERASIF AVAILABLE

LOW VOLTAGE SUPPLY IORBATTERIES) * 5 ANO t 15 VOLTSSENSITIVE TO INFRA HED ASWELL AS VISIBLE LIGHTMAY BE USED FOR IRSURVEILLANCEWITH AN IRLIGHT SOURCEEXCELLENT FOR STANOARDSURVEILLANCE WORK BECAUSEOF ITS LIGHTWEIGHT ANDSMALL SIZE

ALL COMPONENTS MOUNTEDON TWO PARALLEL 3"n6'-SINGLE SIDED BOARDS TOTALWEIGHT UNDER 2 LBSMAY BE WIRED BY PERSON

ER UNBELIEVABLE ^^ i*

$295 °° !!

SCHEMATIC FORCOMPUTERINTERFACESUPPLIED

MAYBE USEDWITH AMATEURRADIO FOR VIDEO

USED FOR CHARAC-TER RECOGNITIONFOR COMPUTERSWITH EXTERNALCIRCUITS

MAYBE USED INA VACUUM, UN-DER WATER, HIGHALTITUDE, ANDIN MAGNETICENVIRONMENTBECAUSE THEREIS NO HIGHVOLTAGE ORMAGNETICDEFLECTION

WE SUPPLY ALLSEMICONDUCTORS,BOARDS, DATA SHEETS.DIAGRAMS, RESISTORSAND CAPACITORS

SORRY, WE DO NOT SUPPLYTHE CASE, BATTERIESIOR SUPPLY) THE LENS(NOT SUPPLIED) DEPENDSUPON THE USE

INTEL 8080 CPU $29.50

I 2518-HEX 32 BIT SR $6.00

] 8008 8 BIT MICRO PROCESSING CHIP

(with Data Book) $19.00

2102-1 1024 BT RAM $ 2.60

5202A UV PROM $12.50

MM5203 UV PROM $12.50

1702A UV PROM $12.50

5204-4K PROM $24.95

MINIATURE MULTI-TURN TRIM POTS100. 500, 5K, 10K, 25K, 50K, 100K, 20QK

$/;§ each^ 3/S2.00

MULTI-TURN TRIM POTS Similar to Bourns3010 style 3/16"x5/8"x1-1/4"; 50, 100,IK, 10K, 50K ohms

£1.50 ea. . . . . . 3,'$4.00

LIGHT ACTIVATED SCR's

TO-1 8, 200V 1 A $ 1.75

PRINTED CIRCUIT BOARD

4-1/2" x6-1/2" SINGLE SIDED EPOXVBOARD 1/16" thick, unetcheci

$.50 ea 5/S2.20

VECTOR BOARD 1" SPACING

4.5" x 6" SHEET $1.50

2N 5460 P FET $ .45

2N 5457 N FET $ .45

2N 4891 UJT $ .45

TIS43 UJT $ .35

ER 900 TRIGGER DIODES 4/$1.00

2N6028 PROG. UJT $ .65

VERIPAX PC BOARD

This board is a 1/16" single sided paper epoxvboard, 4J4"x6H" DRILLED and ETCHEDwhich will hold up to 21 single 14 pin IC'sor 8, 16, or LSI DIP IC's with busses forpower supply connector. $5.25

MV 5691 YELLOW-GREEN

IIPOLAR LED $1.25

MT-2 PHOTO TRANS $ .60

RED, YELLOW, GREEN OR

AMBER LARGE LED's . . . ea. $ .20

14 PIN DIP SOCKETS $ .35

16PIN DIP SOCKETS $ .35

MOLEXPINS 100/$1.00

1000/$8.00

j 8 PIN MINI DIP SOCKETS $.30

10WATT ZENERS 3.9,4.7,

18 OR 22V ca. $ .60

I WATT ZENERS 4.7, 5.6, 10, 12, 15,

180R 22V ea. S .25

VERAS-8 MICROPROCESSOR KIT ^

IS ONE OF THE MOST ADVANCED MCUSYSTEMS ON THE MARKET TODAY FOR ONLY

$159.00

2) Two

31 64 b

4) A uu

51 /

i and +12 voli powei lupplv.on ihe CPU chip, and ROM. makmg 32 bsi HAM jcrauboad buili mlo ihe CPU chii

Table <r

e 1 byto.

61 60% of 1

7) TTL I/O compatibility.

8) Conjumus less than 300mw of power per

9) A local interrupt with automatic adresi tfi10) Expandable to 64K bytes 12102-I'll of rr111 20 mil loop and HS - 232 included.

12) minimum freq. response 1 MHZ

13) 22 pin edge lor easy servicing

The VERAS-8 Kit has enough pans and in

KIT 5159.00

1.

38G3Siaii

H-

2102-1

I'n

s CMOS on

4K

MEMOHV

M

mory Boar

11

S Ml bidi.

71

On hoard

HI

Address b

51

No on boa

ullered.

ul 2102 1 sialic RAM'sulaiion io cause Iipply needed.

.ISGspjciiui). This feaiXPAMDER BOARD

expanded to t

1 kilobytes

EXPANDER KIT WITH ONE EDGE CONNECTOR S59.00

a 44 Pin C

S2.5Q e

TRANSISTOR SPECIALS

2N3585 NPN Si TO-66 $ .95

2N3772 NPN Si TO-3 $ 1.60

2N4908 PNP Si TO-3 $ 1.00

2N6055 NPN Si TO-3 Darlington . $1.30

2N5086 PNPSiTO-92 4/$ 1.00

2N4898 PNP TO-66 $ .60

2N404 PNPGE TO-5 5/$ 1.00

2N3919 NPN Si TO-3 RF $ 1.50

MPSA 13 NPN Si TO-92 3/$ 1.00

2N3767 NPN Si TO-66 $ .70

2N2222 NPN Si TO-18 5/$ 1.00

2N3055 NPN Si TO-3 $ .80

2N3904 NPN Si TO-92 5/$ 1.00

2N3906 PNP Si TO-92 5/$ 1.00

2N5296 NPN Si TO-220 $ .50

2N6109PNPSiTO-220 $ .55

2N3866 NPN Si TO-5 RF $ .75

2N3638 PNP Si TO-5 5/$ 1.00

2N6517 NPN TO-92 Si 3/$ 1.00

TANTULUM CAPACITORS

4 WATT IR LASER DIODE $7.95

.22UF 35V 5/S1.00

.47UF 35V 5/$1.00

.68UF 35V 5/$1.00

1UF35V 5/$1.00

4.7UF 35V 4/$1.00

6.8UF 35V 3/$1.0033UF 25V $ .4030UF6V 5/$1.00150UF20V $ .50

CT7001 ALARM CLOCK CHIP .

. $5.75

NATIONAL MOS DEVICES

MM1402-3.20 MM5057-4.00

MM1403-3.20 MM5058-4.95

MM1404-2.50 MM5060-4.95

MM501 3-7.75 MM5061-4.30

MM5016-3.50 MM5555-6.25

MM5017-4.75 MM5556-6.25

MM5055-4.OO MM5210-1.95

MM5056-4.00 MM5260-2.95

Silicon Power Rectifiers

PRV 1A 3A 12A 50A 125A

100 .06 .14 .30 .80 3.70

200 .07 .20' .35 1.15 4.25

'400 .09 .25 " .50 1.40 6~50

BOP. .11 AQ_ .70 1.80 8.50

800 .15 .35 " .90 2.30 10.50

1000 .20 .45 1.10 2.75 12.50

REGULATED MODULARPOWER SUPPLIES

+ -15 VDC AT lOOma

115VAC INPUT $27.95

5VDC AT 1 A. 11 5VAC INPUT . . . $24.95

12 VDC AT .54 $24.95

IN 4148 (IN914) 1 5/$1.00

SILICON SOLAR CELLS

2Vi" diameter.5V at 500 ma $5.00 ea., 6/$27.50

Terms: FOB Cambridge, Mass.Send Check or Money Order.

4L00-

25

7400-

.IB

7401-

.16

7402-

.16

7403-

.20

7404-

.20

7405-

27

7406-

35

7407-

.33

7408-

.22

7409-

.75

7410-

.IK

7411-

.25

7412-

30

7413-

B0

7414-

80

7416-

3.?

7417-

.33

7420-

16

7426-

.3b

7427-

.28

7430-

.16

7432-

.30

7437-

.29

7438-

2a

7440-

in

7441-

.82

TTLIC

744274457446744774487472-7473^7474747574767480-7483748574867489749074917492749374947495749674107741217412374125

SERIES

74126-74150-74151-74153-74154-74155-74157-74161-74164-74165-74173-74174-74175-74177-74180-74181-74190-74191-74192-74193-74194-74195-74196-74283-75324-75491-75492-

.901.00.80

1.001.051.051.351.00

.951.001 002.101.151.10

.75

1.501.75

MINIATURE DIP SWITCHESCTS-206-4 Four SPST switches

in one minidip package. . . $1.80CTS-206-8 Eight SPST switches in a 16

pin DIP package $2.75

AT-5-1013-30K ser./par., par./ser., uni-versal UART $8.50

ALCO MINIATURE TOGGLE SWITCHES

MTA106SPDT $1.20

MTA 206 DPDT $1.70

C/MOS (DIODE CLAMPED)

74C02- .30 4016- .50 4035-1.25

74C01- .30 4017-1.10 4042- .75

4001- .24 4018-1.20 4046-2.20

4002- .24 4019- .50 4047-2.204006-1.20 4022- 1.00 4049- .504007- .30 4023- .25 4050- -50

4009- .50 4024- .85 4055-1.95

4010- .50 4025- .25 4066-1.10

4011- .25 4027- .55 4071- .25

4012- .25 4028- .95 4077- .25

4013- .35 4029-1.25 4081- .254015-1.10 4030- .95 4076-1.20

LED READOUTS

FND 500-.5" C.C $1.75

HP 7740-.3"C.C $1.40

MAN-4-.25" C.C $1.20

MAN-7-.3" CA $1.25

DL747-.6" CA SI .95

NS 33-3 dig. array $1-35

Full Wave Bridges

PRV 2A 6A 25A

200 J5_ 1.25 2.00

400 ' 1.15 1J50 3.00

600 1.35 _JJ5 4.00

CD 110 LINEAR 256 XI BIT SELFSCANNING CHARGED COUPLEDDEVISE $125.00

SAN KEN AUDIO POWER AMPS

Si 1010 G 10 WATTS $ 6.90

Si 1020 G 20 WATTS $13.95

Si 1050 G 50 WATTS $24.95

LINEAR CIRCUITS

LM309K 5V 1A REGULATOR . . .$1.00723 -40 + 40VV REGULATOR ... $ .54

301/748-Hi Per. Op. Amp $ .35

320T5, 12, 15, OR 24V

NEGATIVE REG $1.35

741 A or 741C OP AMP S .35

710 COMPARATOR S .32

307 OP AMP $ .25

CA 3047 Hi Pef. Op. Amp S .95

340T5, 6, 8, 12, 15, 18,24V POS

REG. TO-220 $1.20

101 OPER. AMP. HI PERFORM. ... $ .75LM 308 Oper. Amp., Low Power ... $1.05

747 - DUAL 741 $ .65

556 - DUAL TIMER $ .95

537 - PRECISION OP. AMP $1.70

540-70W POWER DRIVE $2.75

LM 3900 - QUAD OP. AMP S .49

LM 324 - QUAD 741 $1.50

560 - PHASE LOCK LOOP $2.00

561 - PHASE LOCK LOOP S2.00

565 - PHASE LOCK LOOP $1.50

566 FUNCTION GEN S1.65

567 - TONE DECODER $1.75

LM 131 ON FM STEREO DEMOD. . . $2.758038 IC VOLTAGE CONT. OSC. . . $3.90LM 370 - AGC SQUELCH AMP. . .$1.15

555 - 2ms - 2 HR. TIMER $ .53

553 QUAD TIMER $2.50

FCD810OPTO-ISOLATOR $ .80

1458 DUAL OP AMP $ .55

LM 380 - 2W AUDIO AMP $ .95

LM 377 - 2W Stereo Audio Amp. . . $2.50

LM381 -STEREO PREAMP $1.25

LM 382 - DUAL AUDIO PREAMP .$1.25LM311 - HI PER. COMPARATOR .$ .95LM 319 - Dual Hi Speed Comp. . . . $1.10LM 339 - QUAD COMPARATOR . $1.40

1A

10A

25A

1.5A

100

.40

.70

1.30

.40

.50 1.20

200

,70

1.10

1.75

.60

.70 1.60

400

1 10

1.60

2.60

1.00

1.20 2.20

600

1.70

2.30

3.60

1.50 3.00

Send 25c for our catalog featuring

Transistors and Rectifiers

145 Hampshire St., Cambridge, Mass.

SOLID STATE SALES

P.O. BOX 74B I

SOMERVILLE, MASS. 02143 TEL. (617) 547-4005

WE SHIP OVER 95%

OF OUR ORDERS THE

DAY WE RECEIVE THEM

BOOK REVIEWS

Microprocessors and Microcomputers byBranko Soucek. Published by John Wileyand Sons, New York.

This over 600 page book contains impor-tant information for the experienced hard-ware and software person but is still veryreadable for the neophyte. The informationpresented is both valuable in learning thebasics of microprocessors and in selecting amicroprocessor or microcomputer.

The first 100 pages cover numbersystems, digital circuits, and basic micro-computer instructions in enough depth toget the beginner up to speed. In the chapteron basic microcomputer instructions and inmuch of the material which follows, theDEC PDP-8 minicomputer (or Intersil 6100microprocessor) instruction set is used as anexample. Although this is a somewhat primi-tive instruction set, it is sophisticatedenough to get the concepts across withoutconfusing the beginner with a complicatedmachine language.

This introduction to basic hardware isfollowed by about 50 pages of discussion ofprogramming, both in assembly language andin FORTRAN. Throughout this chapterFORTRAN source code is presented withthe assembly code which performs the samefunction.

The last chapter in Part I presents infor-mation on microcomputer 10 and inter-facing. The necessary hardware and softwarefor both programmed 10 and direct memoryaccess are discussed.

Part II is a detailed discussion (almost250 pages) of representative micro-processors. The architecture, instruction set,timing, and interfacing are discussed andprogramming examples are presented for thefollowing microprocessors:

4004/4040

8008/8080 and MCOM-8

M6800

PPS-4

PPS-8

IMP 4/8/16 and PACE

Part III, called "New Microprocessors andSpecial-Purpose Microsystems," is much likePart II. It presents detailed discussions ofmicroprocessors and hardware which issimilar to microprocessors. The subjects in-clude:

PDP-11 Minicomputer and

LSI-11 MicrocomputerF8 MicroprocessorSMS MicrocontrollerIM6100 Microprocessor andPDP-8 Minicomputer

Phil Hughes

PO Box 43

Richland WA 99352 ■

Amateur Radio Publications

The world of amateur radio has been oneof the long time homes for individualspracticing state of the art electronics tech-niques. In the present state of the art, thecombination of microprocessors withamateur radio communications practicesleads to some exciting applications such aspacket switching communications networks,automated amateur radio stations, etc. (Thefirst prize winner in the World AltairComputer Convention which MITS put on inMarch was an amateur radio operator.) Toprovide a pointer into amateur radio circles,the following is a set of short reviews ofsome amateur radio publications whichappear monthly.

QST

QST was the first amateur radio magazineever, it is published monthly by theAmerican Radio Relay League, 225 Main St,Newington CT 06111. It is professionallyedited and currently is run in a full sizemagazine format (before January 1976, allthe ham magazines were in small magazineformat). Each issue typically has a mixtureof technical articles, tutorial articles, and a

104

Par! #

CY1A

CV2A

CY3A

CY7A

CY12A

CY14A'

CY19A

CY22A

CY30B

W) CRYSTALS |S

r1^? [these frequencies only %~A

J THESE FREQUENCIES ONLY' Frequency Case/Style

1,000 MHz2.000 MHz4.000 MHz5.000 MHz10.000 MHz14.31818 MHz18.000 MHz20.000 MHz32.000 MHz

HC33/UHC33/UHC18/UHC18/UHC18/UHC18UHC18/UHC18/UHC18/U

"Price0

S4.9SS4.95S4.95S4.95$4.95S4.95$4.95$4.9534.95

CLOCK CHIPS — CALCULATOR CHIPS

MM5309 6 Digit, BCD Outputs. Reset PIN. !

MMS311 6 Digit. BCD Outputs. 12 or 24 Hour

MM5312 4 Digit. BCD Outputs, 1 PPS Output

MM5313 6 Digit. BCD Outputs, 1PPS Output

MM5314 6 Digit, 12 or 24 Hour. 50 EM 60 Hz

MM5316 4 Digit. Alarm, 1PPS Output

MM5318 Video Clock Chip. For Use Willi MM5B41

CT7001 6 Digit. Calander. Alarm, 12 or 24 HourCALCULATOR CHIPS

MM5725 6 Oigil. Four Function, Less Decimal !

MM5738 8 Digit, 5 Function; +, ss, x, *, %

MM5739 8 Digit. 4 Funclion, Floating Decimal

CT5D01 12 Digit, 4 Function

'CT5005 12 Digit. 4 Function with Memory

CT5030 12 Digit. 4 Function and %

MISC. MOS

MM532D IV Camera Sync. Generator

MM5330 AV? Digit DVM Chip

MM5369 60 Hz Timebase Circuit From 3.5B MHz

MM5841 Video Generator For MM5318

MC1408-L7 7 Bit Digital lo Analog Converter

MK5007 4 Decade Counle; with Lalches

LDIlOiLDlll Vh Digit DVM Chip Set

95H90 100 MHz - 10 Counlei Foi Prescalers

S19.959.955.0018,009.9510-9525,0013.95

Filament Transformers

F-7X !F-13X 1F-14X#s

F-25X

F-40XF-45X

5.103.80

VECTOR WIRING PENCIL

(\ x

Vector Wiling Pencil PI /3 consists ot a nanrl held leatherweight (under one ounce)lool which is used lo guide and wrap insulated wiie, fed oft a sell-contained replaceable

" lin. onto component leads or terminals installed on pre-punctied "P" PatternVectoiborO". Connections between the wrapped wire and component leads, pads 01terminals aie made by soldering. Complete with 250 FT ol red wire *q pjj

REPLACEMENT WIRE — BOBBINS FOR WIRING PENCIL

W36-3-A-Pkg, 3 250 ft. 36 AWG GREEN $2.40

W36-3-B-Pkg. 3 250 ft. 36 AWG RED $2.40

W36-3-C-Pkg. 3 250 ft. 36 AWG CLEAR $2,40

W36-3-D-Pkg. 3 250 ft. 36 AWG BLUE $2.40

•v\ 1/16 VECTOR BOARD

.1" Hole Spacing P-Pallem

64P-H 062XXXPI69P44 Q3XXXPGlPJl062

17 00 6.80 6 12

Pari No FinishGold Tinned

TM-i i-w.

VECTOR TERMINALS

25 pes

Post Size

025 sq023 sq

025 sq

l 00 lot 2.75 lot 1 75 lot1 25 lot 3.00 lot 2 25lol1 25 lot 3 10 lot 2 25lol

DIP SWITCHThese switches leature seven SPST slide switches in amolded dip. They are ideally suited lot microprocessor

100 per strip MOLEX PINS

Intended tor use as an inexpensive substitute (or IC

u.. ■ ..■■■,. sockets. Also perfect for use as board connectors

utiitstStttsi an(j jn subassemblies.

SPECIAL — 100/1.49—1000/12.00

64 KEY KEYBOARD

The ideal ilem (or the reahomebrew computer hobbyistTins keyboard features 64 unen-coded SPST keys, unattached toany kind of P.C.8. A very solidmolded Dlaslic 13" x 4" "suits most aoolicationsS24.95 ea.

MICROPROCESSOR COMPONENTS

8080 SUPPORT DEVICES

8080A 8212 8 BIT INPUT/OUTPUT PORT FOR 8080$37 95 8224 CL0CK GENERATOR AND DRIVER FOR 8080

8228 SYSTEM CONTROLLER AND BUS DRIVER FOR 8080

$ 5.95 808012-95 $24.95

252425252527252925322533334174LS670

AY-5-1013

2513

8 BIT CPUSuper 80OSSuper 8008

SR'S1024 DynamicHex 32 BITHex 40 BIT512 Dynamic102-1 DynamicDual 256 811Dual 512 BITQuad 80 BIT1024 SialicFffo16 x 4 Reg.

UAPTS30K Baud

ROM'SChar. Gen.Random BitsChar, Gen.

$19.9524.9537.95

3.95 8599

7,95 91L02

6.95 74200

3.95 93410

S 6 95 1702A5203

St 1.00 82S23

3.50 82S123

.1096 « 1256x41024 . 1

13.00

1024

RAM'SFASTSialicDynamicStaticStaticDynamicStaticMNOSStaticStatici.t;:icStaticSialicStat:cStaticPRDMS

Open C.TristateStatic

7.95

2K RAM SPECIAL

MM5262 Fully decoded 2Kxl dynamic RAM. All inputs except clocks are TTL compatible. Provides a G35 ns minimum accesstime, and requires, a +5, +8.5, and -15V power supply. Low power provides non volatile memory using battery back up.

$0.99 ea. (0.05 cents per bit)

fP

"Special Requested Items*

WH

RC4194

RC4195

F9368

LD110/111

CA3130

MCI408L7

F3341

MM5841

AY5-9100

S 5.95 N8T97 S 2.00 MK5007 S10.95 MC4044

DVM Chip SSISuper CMOS Op AmpD/A

3.253-9525,00

4024P

DM8130

9322

MC14016

2525

2527

CD4518

MM5309

0.003.952.50595

4511AEXH41364566AE

LM3909

MM5320

4072AE

7422

7497

74186

74279

WE'LL BE HAPPY TO QUOTE ON YOUR SPECIAL PARTS -

Continental Specialties

PROTO

POWER

FOR THE

PROFESSIONAL

POWER!

For the economy-minded experimenterNEW

$75

Proto

Board

203

Rcguliloa FVjmti Supply Intlui

Proto Board 100 S3"-

v .< \ "7\!

f.'Z"IS 29.95 *m*tilr . 5

i>ri,l<) llM.il 111/ ■ ...::.! i: :.! ' .

»•»">«* '""39.95 .. •■' •'

•' ""79.96

COMPLETE HI

19.95 THE MINI-

BREADBOARD^ ~ BUDGET KIT

>**&£$ / / Pr.lGBMrd.OJ

1 ' ' » / !'.... DIP

rW 59.95

39.95 H

1«

|i»

■::iHii;|i;iiiy!fiii!iillii«iJi,

LOGIC MONITOR

Simultaneously displays static and

dynamic logic states of DTL. TTL,

HTLorCMOS DIP ICs.

Pocket size. $04.95.

OT Proto S

QT-47BQT-35S

-EiBWt- ■

■lii!' ,

QT-59SQT-59BQT-47SQT-17BQT-35SQT-35B

DIGITAL CLOCK KIT — 3Vz INCH DIGITS

JOYSTICK

These joysticks feature four100K potentiometers, that varyresistance proportional to the'angle of the stick. Sturdy metalconstruction with plasticscomponents only at the mova-ble joint. Perfect for electronicgames and instrumentation.

$9.95 ea.

4 DIGIT KIT $49.956 DIGIT KIT $69.95

4 DIGIT ASSEMBLED $59.956 DIGIT ASSEMBLED $79.95

Tnis clock features big Vk" high digitstor viewing in otlices. auditoriums, etc.Each digit is iormed by 31 bright 0.2"LED's.Theclockopera1estrom117VAC,has either 12 or 24 hr, operation. The 6digit version Is 27" x3Vr x 1'/;". and the' " it is 18" x3VS" x W. Kits comecomplete with all curnponents. case andtransformer.Specify 12 Or 24 l|r. When Ordering

Satisfactton Guaranteed. $5.DO Min. Order. U.S. Funds.

California Residents — Add 6% Sales Tax — Data Sheets 25c each

Send a 13c Stamp (postage) for a FREE 1976 Catalog

1021 HOWARD ST., SAN CARLOS, CA. 94070PHONE ORDERS — (415) 592-8097

AUTOTEL ®WARNING LIGHTS ARE NOT ENOUGH

AN AUDIBLE ALARM INDICATINGPOTENTIAL ENGINE DAMAGE

AUTOTEL is an elfecient (15 ma current standby) device Dy which every owner ol anautomobile, truck or vehicle equipped with indicator lights for temperature and oilpressure can be assured ot a reliable warning before an impending failure.AUTOTEL. by means of an audible signal 70 db pulsing) immediately forewarns ihevehicle operator of a malfunction or failure, allowing time to correel and prevent majorengine failures, II is programmed so Iticrc is no sound during normal operatingconditions.

AUTOTEL features CMOS circuitry, packaged in a 2W sq. x W case. The kit comescomplete with all components, hardware and case lo hook directly into your car'swarning light system.

$14.95 Assembled $9.95 Per Kit

31/2 DIGIT DVM KIT

f :1

This 0-2 VDC .05 per cent digital voltmeter features the Motorola Z'k digitDVM chip set. It has a .4" LED display and operates from a single +5Vpower supply. The unit is provided complete with an injection molded blackplastic case complete with Bezel. An oplional power supply is availablewhich fits into the same case as the 0-2V DVM allowing 117 VAC operation.

A. 0-2V DVM with Case $49.95

B. 5V Power Supply $14.95

JE700 CLOCK

The JE7O0 is a low cost digital clock, but'is a very high quality unit. The unil lea-lures 3 simulated walnul case with di-mensions of 6" X2W XI". II utilizes aMAN72 high brightness readout, and theMM5314 clock chip.

$19.95

Liquid Crystal Temperature Display

Six Digit Light q|_ 33

Emitting Diode Disp|ay

Display

This clock makes an attractive addition to any desk. It hasan extruded, black anodized aluminum case. It displayshours, minutes, and seconds with .11 inch displays, andcomes complete with a liquid crystal thermometer. It oper-ates off 115 VAC at 50 or 60 Hz. $24.95

This large digit clock (.6" hours &minutes, .3" seconds) features theMM5314 clock chip. It operatesfrom 117 VAC, and will operate ineither a 12 or 24 hour mode. Theclock is complete with a walnutgrain case, and has fast set, slowset, and hold time set features.

KIT - ALL COMPONENTS & CASE $34.95WIRED & ASSEMBLED $39.95

JE803 PROBE

The Logic Probe is a unit which is for the most partindespensihle in trouble shooting logic familiesTTL, DTL, RTL, CMOS. It derives ihe power it-needs to operate directly off ol the circuit undertest, drawing a scant 10 mA max It uses a MANSreadout to indicate any of the lollowing slates bythese symbols (H) -1 (LOW) -o (PULSE] - P TheProUe can delec! high frequency pulses lo 45 MHzII canT be used at MOS levels or circuit darnarjewill result.

$9.95 Per Kit

printed circuit board

ELECTRONIC TOOLS

QUICK CHARGE CORDLESS SOLDERING IRON

This versatile tool weighs only six ounces, and can heoperated without power anywhere. It gives the per-formance of a 50 watt iron with a tip temperature ofover 70D°F. II will solder an average of 160 3 twistj 22 guage wire joints on one charge. It has a charge*: time of 4 hours, and heats in 5 seconds. Completeiwi.hrechar8er $29.95 EACH

NIBBLING TOOL DIAGONAL CUTTER

JL W Semi-Flush (

^ A

Nibbling Tool S6.95 Light Blue Handle

Replacement Punch S3.T5 Each A97MS

Semi-Flush Cut Fine DiagonalM

SOLDER

%

Solder Wick

Part No. Wire Dia. Price/1 lb Spool

SN60SN60

6.85,'Spool6.50,'Spool

PRICE

$2.00 ea2.00 ea2,00 ea

large amount of information about amateurradio happenings. As an example of tech-nical content, the April 1976 issue featureda cover article entitled "One KW — SolidState Style, Part 1" which shows how H OGranberg, WB2BHX/OH2ZE/7 built a highpower radio frequency amplifier using solidstate electronics exclusively. Other Aprilarticles included the fourth part of a serieson "Learning to Work With Integrated Cir-cuits," and articles on several technicalaspects of amateur radio. A major portion ofthe magazine is devoted to general interestitems. The April issue also reported ama-teurs' emergency work in the Guatemalanearthquakes, and operating activities such asmessage networks, civil defense organiza-tions, etc. QST is also chock full of advertis-ing about amateur radio products. Thisjournal is a "must" for radio amateurs, andcan be obtained for $9 per annum.

Ham Radio

Ham Radio is another excellent amateurradio publication, which has been publishedsince the late 1960s. Its primary thrust istechnical, and this is evident in the list ofarticles found (for example) in the March1976 issue:

Crystal Controlled OscillatorsDT-500 RTTY DemodulatorWWVB Signal ProcessorHigh Speed Divide by N CountersOff the Air Transmitter Tuneup

VHF/UHF Receivers - How to Improve

Them

5/8 Wavelength Vertical Antenna for Two

Meter FM

Microprocessors - 8080 Output

Instructions

High Performance Bench Power Supply

The non-technical editorial content is agood approximation to 0.0%; the quality ofthe technical articles is on a par with manyengineering publications of the professionalworld. As is the case with QST, Ham Radiohas many interesting and informative adver-tisements for amateur radio products.

You can subscribe for $10 per annum bywriting to Ham Radio, Greenville NH 03048.

CQ

Another amateur radio publication is CQ,named after the greeting code used by ama-teur radio operators when looking for a con-tact. It is also a monthly publication, and itsFebruary 1976 issue was filled with tech-nical and general interest information foramateur radio operators. On the technicalside, this issue had an extended commentaryon slow scan TV methods, short columns ontechnical pointers, an article on hardwaremodification of a commercial ham trans-ceiver, etc. CQ also carries many advertise-ments for amateur radio products.

You can subscribe to CQ for one year @$7.50. Write CQ, 14 Vanderventer Av, PortWashington NY 11050."

106

MC144I2 UNIVERSAL MODEM CHIPMC144I2 contains o complete FSK modulator and de-mod-ulator compatible with foreign and USA communications.(0-600 BPS)FEATURES:

.On chip crystal oscillator.Echo suppressor disable tone generator.Originate and answer modes

.Simplex, half-duplex, and full duplex operation.On chip sine wave.Modem self test mode.Selectable data rates: 0-2000-3000-600.Single supplyVDD=4.75 to I5VDC - FL suffixVDD=4.75 to 6 VDC - VL suffixTYPICAL APPLICATIONS:

.Stand alone - low speed modems• Butlt - in low speed modems.Remote terminals, accoustic couplers

MC14412FL $28.99

MC14412VL S2I.74

6 pages of data .60

Crystal for the above $4.95

^_T.E he.—» mm

» Ecno

10» Moo.

■» t,Bf Co

» TTLO

>—-—■ sr Te

* R. ti.n.. Rait

> & R«..i

MC14411 BIT RATE GENERATOR.Single chip for generating selectable frequencies for equip-ment in data communications such as TTY, printers, CRT sor microprocessors. Generates ]4 different standard bitrates which are multiplied under external control to IX,8X, 16X or 64X initial value. Operates from single +5

volt supply. MCI4411 $11.98

4 pages of dota 40

Crystal for the above $4.95

4X4X2 CROSSPOINT SWITCH. MC3416L is a pairof 4X4 Matrices of isulated SCR's triggered by a commonselection matrix. Use for low loss analog switching suchas telephone, data selection, etc.

MC 3416L $11.95

9 Paoes of specs for 3416 SI.00

4 DIGIT COUNTER. MM74C926 is a 4 digit counter with7 segment output. Carry output for cascading and intermaldisplay select allows outputting of counter or set ofinternal latches. 3 to 6V operation. Great for clocks,event ond frequency counters.MM74C926 - with spec sheet $1 2.00

FOUR QUADRANT MULTIPLIER. MC1495L providesoutput as a linear product of two analog input. Usefor frequency doubler, balanced modutar/demodulotor,electronics gains control.

MC1495 L $5.50

6 pages of specs 60

9 pages of applications 90

TELETYPE CODE CONVERSION CHIP

MM5220BL converts 5 level Baudot info 8 level ASCII. Use

this chip to make your old TTY talk to your new computer.

MM5220BL $18.00

Specs for the above .30

MOS TIME BASE KIT.

Only 1" X 1.5". Input 5 to 15 VDC, output is 60HZsquare wave for portable or mobile clocks. PC board isdrilled I MTBK-60HZ $5.8

78H05 Voltage regulator. Fairchild 5V, 5A, TO-3 reg-ulator. Take core of those heavy current requirments with-out separate regulator/pass transistor combinations. Use itwith the same ease of instalation os the 309K(same pin

arrangement.).

'ith specs $11.25

-T-

LM317 Voltage Regulator. 1.5A, 3 terminal adjustableregulator in TO-3 case. Adjusts from +1.2V to +37V.Complete overload protection. .1% load regulation,,01%/V line regulation. No need to stock assorted reg-ulators - just stock resistors $4.99

Specs for the above 70

DATA BOOKS BY NATIONAL SEMICONDUCTOR

DIGITAL. Covers TTL, DTL, Tri-State, etc $3.95

LINEAR. Covers amplifiers, pre-amps, op-amps, .. $3.95LINEAR APPLICATIONS. Dozens of application notes ondtechnical briefs covering the use of op-amps, regulators,

phase locked loops ond audio amps $3.25

CMOS Gates, Flip Flops, registers, functional blocks $3VOLTAGE REGULATORS. A must for anyone making apower supply. Complete theory including transformers,

filters, heat jinks, regulators, etc $3.00

MEMORY. Information on MOS ond Bipolar memories'-

RAMS, ROMS, PROMS and decoders/encoders $3.95

INTERFACE. Covers peripheral drivers, level translators,line driver/receivers, memory and clock drivers, sense amps

display driver and opto-couplers $3.95

(Outside U.S., add-postage for 1.5lbs0

DATA BOOKS FROM FAIRCHILD.

uA Linear, 776 pages of data and applications for Fair-child linear ICs. Great value $4.25

MOS/CMOS/nMOS/pMOS/CCD. Data and applications on

MOS and charge coupled devices including preliminary dataon new and future offerings. Want to know about 16Kcharge coupled line addressable memories? $3.95

rata

Says

This Year, Tri-Tek is Celebrating too!It's our 5th Anniversary of supplying you,our good customers, with quality parts and products.

GOLD CHIP

Linear Integrated Circuits

Brand new process by RCA in which the aluminum metalizationhas been replaced by gold. The chip is then hermetically seal-ed. What this means to you is unprecedented reliability anduniformity. Plastic ports that meet mil specs! !Tri-Tek is proud to be the first to bring this new level ofperformance to you at SURPLUS PRICES. Why buy regrodes??

CA301 A.. Improved,general purpose op-amp, 8 pin dip. ,59c

CA307. ..Super 741 op-amp. 8 pin dip 52c

CA324.. .Compensated quad op-amp, 14 pin dip $1.80

CA339A.. Low offset quad comparator, 14 pin dip...SI.59CA741 C.. Famous general purpose op-amp, 8 pin dip.. 45cCA747C. .General purpose dual op-amp, 14 pin dip... 82c

CA748C. .Externally compensated 741, 8 pin dip 49c

CA1458..General purpose dual op-amp. 8 pin dip 69c

CA3401..Ouad single supply (5-18V) op amp. 14 pin..89c

Another super buy from RCA. CA555 timer. 8 pin dip. 59c

INTEL Data Catalog. Contains latest information on all thefamous INTEL micro-processor and memories $4.00

IMPROVED Performance version of the famous 8080, 8 bitmicro processor, 8080A , $34.95

SN75491...SN75492...

.digit dr.digit dr

. 59c. 59c

UART AY5-10I3Aperipherals such as tc

An ideal dtletypes & v

vicedeo

for drivterminal

"9i.

compu

er.S9.45

DC to DC CONVERTER MODULE. Tiny potted module isa complete regulated output up-converter. 4.5V D. C.input provides approximately 14V @ I 2 mA. Will operatedown to 2.5V with reduced output. Size only 1 " X s" X J"With connection diagram $1 .25

NSL4944 LED. Current regulated, universal diffused-lensred LED lamp. A GaAsP solid-state high intensify LEDencapsulated in a plastic package containing a current reg-ulating IC that provides constant intensity over a wide volt-age range. 2 to 18V, AC or DC. Use for indicator lamps,optical coupling, battery charging circuits, logic probes,almost any place you need a lamp. Long life, wide ongle.No series resistor needed. Typical ]3mA forward current.NSL4944 with panel mounting clip 89c

D-A CONVERTER BY ZELTEX

8 bit precision hybrid circuit for use in controllers, timers,volt meters, etc. Molded plastic package with P,C. pins.Super buy on this better than usual subsystem, ZELTEXmodel ZD430. DAC-430 W.95

NEW BOOK! I I "An Introduction tu Microcomputer*"This is the book which Fairchild Semiconductor Company

called " the best darned introduction to the industry

to date." Covers everything from basic concepts to a re-view of real microcomputers. IMC-001 $8.00

tm-tek, inc.

6522 nORth 43D6 AV€nU€,

QlenaaLe. apizoru 8«oi

phone 602 - 931-6949

We pay shipping on all orders over $10 US, $15 foreign in US funds. Ordersunder $10, please add $1 handling. Please add insurance. Master Chargeand Bank America cards welcome, ($20 minimum) Telephone orders may beplaced 11AM to 5PM doily, Mon thru Fri. Call 602-931-4528. Check readerservice card or send stamp for our latest flyers packed with new ond surpluselectronic components.

107

S. D. SALES CO.

P. 0. BOX 28810 DALLAS, TEXAS 75228

ALARM CLOCK KIT SIX DIGIT LED

Thousands of hobbyists have bought and built our original clock kitand were completely satisfied. But we have received many requestsfor an aiarm clock kit with the same value and quality that you havecome to expect fromS.D. So, here it is!

THE KIT INCLUDES:

1 Mostek 50252 Alarm Clock Chip

6 Hewlett Packard .30 in. common cathode readouts.15 NPN Driver Transistors

2 Switches for time set

2 Slide Switches for alarm set and enable1 Filter Cap4 IN4002 Rectifiers1 IN914Diode1 .01 Disc Cap15 Resistors PCB -3.00

1 Speaker for alarm XFMR-'I.50

1 LED lamp for PM indicator.

$9.95

60 Hz. Crystal Time

FOR DIGITAL CLOCKSS. D. SALES EXCLUSIVE!

$5.

95

KIT FEATURES:

A. 60 Hz output with accuracy comparable to a digital watch.

B.

C.

D.E.

F.

Directly interfaces with all MOS clock.chipsSuper low power consumption (1.5 Ma typ.) ^jOUses latest MOS 17 stage divider IC. ^vf*.

Eliminates forever the problem of AC line glitches

Perfect for cars, boats, campers, or even for portableclocks at ham field days.

G. Small size, can be used in existing enclosures.

Kit includes crystal, divider IC, P.C. Board plus all other necessaryparts and specs.

MOS 4 DIGIT COUNTER I C

All In one 28 PIN DIP. 4 Decade counters, latches, MUX circuits, display decoders, etc.Features: 5VDC operation, 25 MW power consumption, BOTH 7 segment and BCD outputs.Perfect for DVM's, frequency meters, tach's, etc. Can be cascaded for more digits. #5002 -$8.95.

8008-1 MICRO PROCESSOR

New Units. High speed 8008. Almost twice as fast as units sold by others. Still a very versatileand widely used MPU. No data book, only pinout data included at this price. $12.50LIMITED QTY.

1101 ARAM IC

256 X 1 BITS. Perfect for 8008 or small systems such as telephone dials that do not require alot of memory. Special 59c. 8 FOR $4.

C&K MINI TOGGLE SWITCH

#7103 SUB MINI SPDT Center OFF. Special - 99c.

TTL INTEGRATED CIRCUITS

7400

7402

7404

74S04

7406

7408

74S04

7410

7411

7413

19c19c19c29c29c19c44c19c29c50c

7420743274377438744774487473747474757476

19c34c39c39c85c85c39c35c69c35c

7483 •

7485 ■

7486

7490

7492

7495

74121

74123

74141

74153

95c95c45c65c75c75c38c65c75c75c

74154741577416174164741657417474181741917419274193

1.00

75c

95c

1.10

1.10

95c

2.50

1.25

1.25

1.00

2102 1K RAM's - 8 FOR $12.95

New units

We bought a load on a super

deal, hence this fantastic price.

Units tested for 500NS Speed.

MOTOROLARTLICS

Brand new, factory prime. Hard to find, but stillused in a variety of projects. (See the RTL Cook-book by Howard W. Sams.)

MC724P-59CMC725P-59CMC764P-49CMC767P-69CMC771P-49CMC775P-89C

MC780P-89CMC785P-49CMC787P-89CMC788P-49CMC789P-59CMC790P-89C

MC791P-69C

MC792P-59C

MC799P-59C

MC9704P-89C

MC9709P-69C

MC9760P-69C

MV-MTYPELED't

byUTRONIX10 for$1

Factory Prime!

3 DIGIT LEO ARRAY — 75c &Bj

byUTRONIX '

DL33MMB. 3 MAN-3 Size Readouts In onepackage. These are factory prime, notretested rejects as sold by others,compare this price! 75c 3 for S2.

SALE ON CUT LEAD SEMICONDUCTORS

Leads were cut for PCB insertion. Still very useable.

1N914/1N4148 100/$2

1N40021 AmplOOPIV 40/$1

1N4745A16V1WZener 20/$1

EN2222 NPN Transistor 25/$1

EN2907PNP Transistor 25/$1

2N3904NPN Driver Xstr 25/$1

2N3392GEPre-ampXstr 25!$1

C103Y SCR. 800MA. 60V 10/$1

ALL NEW.

UNUSED.

SOME ARE

HOUSE*

SLIDE SWITCH ASSORTMENT

Our best seller. Includes miniature and standardsizes, single and multi-position units. All new,first quality, name brand switches. Try one pack-age and you'll reorder more. Special — 12 lor SI(Assort ment)

DISC CAP ASSORTMENT

PC leads. At least 10 different

values.Includes.001, .01,.05,

plus other standard values.

60 FOR $1

UPRIGHT ELECTROLYTIC CAPS

47mfd35V-10/$1 6Bmfd 25V-8/S1Brand new by Sprague. PC leads.

RESISTOR ASSORTMENT

1/4W5% and 10%. PC leads.A good mix of values. 200)$2

r™»n

*

1000 MFD FILTER CAPS

Rated 35 WVDC. Upright style with P.C. loads.Most popular value for hobbyists. Compare at upto 11.19 each from franchise type electronic partestores.S.D. Spatial4 for $1

FAIRCHILD BIQ LED READOUTS

A big .50 inch easy to read character. Now available In either common anodeor common cathode. Take your pick. Super low currant drain, only 5 MA perseamen, typical. YQUR

FND - 510 Common Anode CHOICE

FND - 503 Common Cathode $i.50ea. 6 for $7.50

DUAL 741C (5558) OP AMPS

Mini dip. New house numbered units

by RAYTHEON.

4 FOR $1

FET'S BY TEXAS INSTRUMENTS — SPECIAL 5 for $1

#TIS-75 but with an internal house number. TO-92 plastic case. N. Channel,Junction type FET.

We do not sell junk. Money backguarantee on every item. NoC.O.D.Texas Res. add 5% tax. Postagerates went up 30% ! Please add 5%of your total order to help covershipping.

ORDERS UNDER$10ADD 75c HANDLING.

S. D. SALES CO.

P.O. BOX 28810DALLAS, TEXAS 75228

ORDERS OVER $15 CHOOSE$1 FREE MERCHANDISE

S.D.SALESCO.

P.O. BOX 28810DALLAS, TEXAS 75228

UP YOURCOMPUTER!

21L02-1 1K LOW POWER500NS STATIC RAM

TIME IS OF THE ESSENCE

And so is power. Not only are our RAM'sfaster than a speeding bullet but they are nowvery low power. We are pleased to offer prime,new 21L02—1 low power and super fast RAM's.Allows you to STRETCH your power supplyfarther and at the same time keep the WAITlight off.

8 for $17.50

TOUCHTONE KEYBOARDSWITCH SET

By Controls Research. High quality long life switcheswith keytops. For encoders, combination locks, etc.

L

12 switches and tops, including 0 thru 9. Switchcontacts are independent, allows hook-up to any matrix.Keytops easily removed.

$2.95 Set2 for $5.00

4K LOW POWER RAM BOARD KIT

Imsai and Altair 8080 plug in compatible. Uses low powerstatic 21L02-1 500 ns. RAM's. Fully buffered, drasticallyreduced power consumption, on board regulated, all socketsand parts included. Premium quality plated thru PC Board.

THE WHOLE WORKS

$89.95

Call your BANK AMERICARD or MASTER CHARGE

order in on our

CONTINENTAL UNITED STATES TOLL FREE WATTS:

1-800-527-3460

TEXAS RESIDENTS CALL COLLECT:

1 MORE TIME

214/271-0022

Please call between 8:30 AM and 6:00 PM C.S.T. - Mondaythrough Friday. You may also call to check stock or just ask aquestion. However, only B.A.C. and M.C. orders will be accepted.We do not ship C.O.D. (See terms of sale on other page.)

Continued from page 4

at a later date permitting later versionsof the same board to have 32 K bytesof memory. Further, the firm in ques-tion stated that it would introduce anew twist to the marketplace byselling this product exclusivelythrough retail computer stores inmuch the same way as high fidelityequipment is sold. The selection ofpower supply, keyboard, cassette re-corder and TV monitor vendors is leftto the purchaser as aided by thepersonal consultation of the retailer,just as selection of components of ahigh fidelity stereo system is oftenaided by an interactive session with aretailer.

• Item: As if to confirm the trendheralded by the phone call from"brand A," "brand B" called one weeklater to mention its version of thecompletely packaged and ready to gocomputer. The "brand B" product issimilar to "brand A" in its confirma-tion of the trend to "no hassle"computing, but the nature of thesystem is a bit different. The "brandB" computer is a modular product

with a traditional backplane design,6800 processor and packaging as-sembly with power supply. The"brand B" computer looks inherentlylike a traditional minicomputer systemavailable at very low prices whichinclude (so it is said) a BASIC package.This "brand B" computer also comesin one form: assembled and com-pletely burned in component cardswhich are mixed and matched to forma completed system. Again note theemphasis on "no hassle" hardware inthe form of assembled and testedboards, with systems software bundledinto the price, also under $1000 for aminimal system (8 K bytes) exclusiveof RS-232 or 20 mA current loop 10terminal.

Both the "brand A" and "brand B"computers are not yet widely marketed, butthe trend is clear: the products in thepersonal computing market place are be-coming more refined and oriented to usersatisfaction, yet still very reasonable in price.The "little IBMs" of the micro computerworld will become the corporate giants oftomorrow by perceiving this trend and wrap-ping up a package of "customer satisfaction"and convenience."

[T

EC

jTJ

HH

E

■Y f¥

I*

|0 |jB

PHONE PAD $6.50

New, packaged by Automatic Elect. Preferredby many over the tactile type pad. Great forrepeaters, auto dialers, etc.

SP-213-A$6.50 3/$16

VIDEOTAPE HEADS

New from Cartavision home videoeqpmt. Made for Vs inch tape.Includes erase, record, playback.We include 3 types, made byVikron, Bogen, etc. a $60.00 valueSP-240-A 3/$5.00

CORE MEMORY

1024 word X 8 bit Fabri-Tekmodel 422 w/drivers, sense amps,data register and address register.Requires 5V & 18V

SP-422 $125.00

yne&fwiQ,

CORE MEMORIES

10x10 core

100 core

$ 3.00

16x32

512

4.00

32x32

1024

5.00

2x4000

8,000

7.00

2x4096

8,192

8.00

4x4096

16,384

10.00

6x16x16 w/sense amp

)s & data

20.00

VOLTAGE CONTROL

New solid state SCR speed control forAC/DC devices or resistive loads, lights,soldering iron, etc. A whopping 1.2 KWcapability.

SP-189-A$4.50 3/$12

PLEASE ADD POSTAGE ON ITEMS

MESHNA P0 Bx 62 E. Lynn Mass. 01904

110

POWER SUPPLY MODULE

New, plug-in module. Plugs into AC outletprovides 12 volts AC at % amp by two screwterminals. Great for various clocks, chargers,adding machines, etc. New

$2.50 ea. 5/$11.00

POWER SUPPLYLAMBDA 5VDC 74 AMPLV-EE-5-OV

$125.00

NJE 5/OUP-D5

5 VDC 32 AMP

$75.00

CLOCK KIT $14.00

Includes all parts with MM5316 chip,etched & drilled PC board, transformer,everything except case.

SP-284 $14.00 each 2/$25.00

ASCII KEYBOARD, brand new w/TI ASCII chip inplace & data $45.00COMPUTER GRADE LOGIC SUPPLY CAPS, BRAND NEW

47,000 Uf

32,000

160,000

66,000

1,000

2,000

25V

25

10

10

60

55

$2.001.752.002.00.901.00

STSTSTSTALAL

1,0003,3001,6008,000500

503520166

"ST" screw top

.901.25

.601.25

.35'AL" axial

ALALALALAL

5 VOLT 1 AMP REGULATED power supply kit for logic work. All parts includingLM-309K $7.50

DUMMY LOAD RESISTOR, non inductive, 50 ohm 5 watt"AA" NICAD CELLS brand new, fine biz for handy talkies

$1.00$1.25 ea. 9/$9.00

301307

324

339A

741

LINEAR by RCA, brand new, gold bond process

$

& .60

.52

1.80

1.60

.50

74774814583401555 timer

.82.50.96.80.60

MM5314MM53167001

$3.003.008.00

MEMORY SYSTEM $125.00

New memory system by Honeywell, small . . .measures only 9x4x1 inches. 1024 core memory,1024 words with 8,9,10 bits/word. Random access,with all logic, register, timing, control, core select andsense functions in one package. New, booklet ofschematics and data. Looks like a good beginning fora mini-computer. Limited supply on hand.Ship wgt 3 lbs. #SP-79 $125.00

CORE MEMORY

Another brand new memory, ultra small. Measures only 4x4 incheswith format on one plane of 32 x 32 x 16 (16,384). Only about 35units of this on hand.#SP-81 $20.00

yffeShMci

FREE CATALOG SP-8 NOW READYPlease add shipping cost on above.

PHONE 617-595-2275

MESHNA P0 Bx 62 E. Lynn Mass. 01904

111

Continued from page 102

culator by either actually doing arithmetic(what?) or using an earlier version of themechanical hand held adding machine. How-ever, Ed forgot about the difference betweenbase 16 and base 10, and the fact thatreaders without an exposure to traditionalmagazines for data processing (ie: large scalecomputers) probably had not heard of the"Hexadat." Since no one has come out witha way to manufacture and market severaltens of millions of base 16 four functioncalculators at $8.95, we hexadecimal loversare prevented from economically using ahand held base 16 electronic calculator. Butin lieu of electronics, the Radix Precision"Hexadat" will serve excellently at timeswhen you can't rely on your computer foraccurate calculation.

You can acquire a Hexadat for $35.95complete with the leather case and instruc-tion manual. In case you are prejudicedagainst hexadecimal, the same company canhelp you out with the "Octadat" octalcalculator at $14.95. Either way, contactRadix Precision at PO Box 13861, AtlantaGA 30324."

April BOMB Results

Winner of the $50 for most appreciatedarticle in the April 1976 issue of BYTE isTheodor Nelson's "The Magic of ComputerLanguages." Runners up in the voting wereRobert Wier and James Brown, who wrote"Design an On Line Debugger," and DonLancaster's "How To Build a Memory WithOne Layer Printed Circuits.""

BLJIvIB! BYTE's Ongoing Monitor Box

BYTE would like to know how readers evaluate the efforts of the authorswhose blood, sweat, twisted typewriter keys, smoking ICs and esoteric softwareabstractions are reflected in these pages. BYTE will pay a $50 bonus to the authorwho receives the most points in this survey each month.

PAGE

NUMBER ARTICLE

6 Jones: Coincident Current Ferrite Core Memories18 Anderson: Assembling a Sphere22 Howerton: Explore an 8080 with Educator-808030 Wadsworth: Machine Language Programming for

the "8008"-Chapter 140 Baker: Put the "Do Everything" Chip into Your

Next Design46 Suding: Why Wait?

54 Hayes: Surplus Electronics in Tokyo and Manila58 Hogenson: Make Your Own Printed Circuits64 Lerseth: A Plot is Incomplete Without Characters

LIKED

LEAST BEST

01 23456789100123456789 100123456789 10

0123456789 10

0123456789 100123456789 100123456789 100123456789 100123456789 10

112

Call YourIMS DealerToday.

CALIFORNIA: Berkeley, AppliedComputer Technology, (415) 527-6760;Campbell, Byte Shop No. 3, (408) 377-4685;Chico, Micro-Byte, (916) 345-9396;Cupertino, Computer Media, Inc.,(408) 294-7004; Fremont, Casual Bedding,(415) 796-4555; Fullerton, Bits n Bytes,(714) 525-9613; Morgan Hill, MetaticCorporation, (408) 779-8150; MountainView, Byte Shop No. 1, (415) 969-5464;Orange, Computer Mart of Los Angeles,(714) 633-1222; Oxnard, Pete's Electronics,(805) 485-6467; Rancho Palos Verdes,Microprocessor Marketing, (213) 541-6344;San Diego, The Computer Center,(714) 292-1657; San Gabriel, Sunny Sounds,

(213) 287-1811; San Leandro, Robert H.Edmonds, (415) 357-5837; San Lorenzo,The Computer Den, (415) 278-4720;San Luis Obispo, Proko Electronics,(805) 544-5441; Santa Clara, Byte ShopNo. 2, (408) 249-4221; Van Nuys, ComputerComponents, Inc., (213) 782-7924;COLORADO: Boulder, Inter-MountainDigital, (303) 442-3960; CONNECTICUT:Ellington, Heuristic Systems, (203) 871-1181;FLORIDA: Jacksonville, DouglasComputer Systems, (904) 724-8726;Pinellas Park, Elecon Corporation,

(813) 541-3021; INDIANA: Bloomington,Data Domain, (812) 337-1671; KENTUCKY:Louisville, Cybertronics, Inc., (502) 459-0426,LOUISIANA: Baton Rouge, ExecutoneMicrocomputer Div., (504) 383-1371;MASSACHUSETTS: Waltham, ComputerMart, Inc., (617) 890-0677; NEW JERSEY:Colonia, Computer Mart of New Jersey,(201) 574-2173; Edison, William ElectronicSupply, (201) 985-3700; Hackensack, TheComputer Room, (201) 342-6667; Hoboken,Hoboken Computer Works, (201) 420-1644;Trenton, Technical Design Labs, Inc.,(609) 599-1868; NEW YORK: Hollis,Synchro Sound Studios, Inc., (212) 359-1489;New York, Audio Design Electronics,(212) 226-2038; Computer Mart of NewYork, (212) 787-4051; Oneonta, CollegiateAudio, (607) 432-1930; Rye, The ComputerCorner, (914) 967-7853; OHIO: EastCleveland, E.L.S. Systems Engineering,(216) 321-8303; OREGON: Eugene, TheReal Oregon Computer Company, Inc.,(503) 484-1040; PENNSYLVANIA: Frazer,Personal Computer Corp., (215) 647-8460;Philadelphia, J. B. Industries, (215) 224-9926;Pittsburgh, Martin J. O'Boyle & Assoc,(412) 361-1602; RHODE ISLAND: WestWarwick, Computer Power, Inc., (401)822-0204; TEXAS: Dallas, Digitex,

(214) 744-1849; Houston, ElectronicSpecialty Co., (713) 475-4402; PolarisComputer Systems, (713) 527-0348;Richardson, The Micro Store, (214) 690-7113;UTAH: Orem, Computers & Stuff, (801)224-2066; VIRGINIA: Reston, MediaReactions, Inc., (703) 471-9330; Richmond,Computer Hobbies Unlimited, (804)276-5056; WASHINGTON: Lacey,Microcomputer Applications, (206) 456-3924;Seattle, The Retail Computer Store,(206) 524-4101; WISCONSIN: Marinette,Lauerman Department Stores, (715)735-3311; Milwaukee, Milwaukee ComputerStore, (414) 445-2403; CANADA:Manitoba, Brandon, CanadianMicrocomputer, (204) 725-1600.

Join Our Growing Network ofWorld-Wide Independent Dealers.

M

IMS Associates, Inc.

If you thought a rugged,professional yet affordablecomputer didn't exist,

think

IMSAI

8080.

Sure there are other commercial,high-quality computers that canperform like the 8080. But theirprices are 5 times as high. There isa rugged, reliable, industrial com-puter, with high commercial-typeperformance. And prices that arecompetitive with Altair's hobbyistkit. The IMSAI 8080. Fully assem-bled, it's $931. Unassembled, it's$599. And ours is available now.

In our case, you can tella computer by its cabinet. TheIMSAI 8080 is made for commer-cial users. And it looks it. Insideand out! The cabinet is attractive,heavy-gauge aluminum. Theheavy-duty lucite front panel hasan extra 8 program controlledLED's. It plugs directly into theMother Board without a wireharness. And rugged commercialgrade paddle switches that arebacked up by reliable debouncingcircuits. But higher aesthetics onthe outside is only the beginning.The guts of the IMSAI 8080 iswhere its true beauty lies.

The 8080 is optionallyexpandable to a substantial systemwith 22 card slots in a singleprinted circuit board. And thedurable card cage is made ofcommercial-grade anodizedaluminum. The Altair kit onlyprovides 16 slots maximum in fourseparate sections, each section

requiring 200 solder connections.

The IMSAI 8080 powersupply produces a true 28 ampcurrent, enough to power a fullsystem. The Altair producesonly 8 amps.

You can expand to apowerful system with 64K ofmemory, plus a floppy disk con-troller, with its own on board8080-and a DOS. An audio tapecassette input device, a printer,plus a video terminal and ateleprinter. These peripherals willfunction with an 8-level priorityinterrupt system. IMSAI BASICsoftware is available in 4K, 8K

IMSAI 8080

and 12K, that you can get inPROM. And a new $139 4KRAM board with softwarememory protect.

Find out more about thecomputer you thought didn'texist. Get a complete illustratedbrochure describing the IMSAI8080, options, peripherals, soft-ware, prices and specifications.Send one dollar to cover handlingto IMS. The IMSAI 8080. From *the same technology that developedthe HYPERCUBE Computerarchitecture and IntelligentDisk systems.

Dealer inquiries invited.

Dept. B-7

IMS Associates, Inc.

1922 Republic AvenueSan Leandro, CA 94577(415) 483-2093

Measuring just 11" wide x 11" deep x 5" high, and weighing amere 7 pounds, the Altair™ 680b is a complete, general-purposecomputer.

The secret to this revolutionary, small computer is its CPUboard. This double-sided board fits along the bottom of the Altaircase and plugs directly into the front panel board. It containsthe new 6800 microprocessor, 1,024 bytes of RAM memory, a 256byte PROM monitor, provisions for 768 bytes of additional PROMor ROM, and a single Interface port with a Motorola ACIA serialinterface adapter which can be configured either RS-232 or TTY.A five level Baudot interface option is also available.

The Altair 680b can be programmed from front panel switches,or it can be interfaced to a video display terminal, or teletype-writer. Three additional circuit boards can be plugged inside theAltair 680b for further memory and interface expansion. The firstof these boards now under development is an 8K RAM memoryboard.

Software already developed includes a resident two passassembler and 8K BASIC. The Altair 680b is also compatible withMotorola 6800 software.

The Altair 680b is ideal for hobbyists who want a powerfulcomputer system at an economic price. Altair 680b owners qualifyfor membership in the Altair Users Croup, and like other Altairowners, they receive a complimentary subscription to ComputerNotes and complete factory support.

PRICES:

Altair 680b kit with complete, easy-to-understand assembly man-ual, operator's manual, and programming manual $466

Assembled Altair 680b $625

Baudot option $ 42

8K RAM memory board and software prices to be announcedsoon.

MAIL THIS COUPON TODAY

□ Enclosed is a check for 4

□ BankAmericard # or Master Charge #

□ Altair 680b D Kit □ Assembledenclose $8 for postage and handling

□ Please send tree information package.

NAME

ADDRESS

CITY STATE & ZIP

Price, specifications subject to change. Please allow up to 60 days for delivery-

OS GOODS©

NOTE: Altair is a trademark of MITS Inc.

2450 Alamo SE/Albuquerque, NM 87106, 505-243-7821