Byte Magazine Volume 00 Number 01 - The Worlds Greatest Toy

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.6.1)

Join now

Since 1947, ACM has served as the educational andscientific society for computing professionals—30,000strong and growing.

Write today

For regular and student membership informationsend the attached coupon to ACM headquarters. WithSpecial Interest Groups covering every major computingdiscipline and local Chapters in most metropolitan areas,ACM is probably the organization you're looking for.

Association for Computing Machinery

1133 Avenue of the Americas, New York, N. Y. 10036

I would like to consider joining ACM.Please send more information.

City

Zip

The MODULAR MICROSfrom MARTIN RESEARCH

Here's why the new MIKE 2 and MIKE 3are the best values in microcomputers to-day!

8008 OR 8080

Martin Research has solved the problembothering many potential micro users.... whether to go with the economical8008 microprocessor, or step up to thepowerful 8080. Our carefully designedbus structure allows either processor tobe used in the same system!

The MIKE 3 comes with an 8080 CPUboard, complete with crystal-controlledsystem timing. The MIKE 2 is based onthe 8008. To upgrade from an 8008 toan 8080, the user unplugs the 8008 CPUboard and plugs in the 8080 CPU. Thenhe unplugs the 8008 MONITOR PROM,and plugs in the 8080 MONITORPROM, so that the system recognizes the8080 instruction set. That's about it!

If the user has invested in slow memorychips, compatible with the 8008 but tooslow for the 8080 running at full speed,he will have to make the 8080 wait formemory access—an optional feature onour boards. Better still, a 4K RAM boardcan be purchased from Martin Researchwith fast RAM chips, capable of 8080speeds, at a cost no more that you mightexpect to pay for much slower devices.

In short, the MIKE 2 user can feel confi-dent in developing his 8008 system withexpanded memory and other features,knowing that his MIKE 2 can be up-graded to a MIKE 3—an 8080 system—inthe future.

EASE OF PROGRAMMING

Instructions and data are entered simplyby punching the 20-pad keyboard. Infor-mation, in convenient octal format, ap-pears automatically on the seven-segment display. This is a pleasant con-trast to the cumbersome microcom-puters which require the user to handleall information bit-by-bit, with a confus-ing array of twenty-odd toggle switchesand over thirty red lights!

A powerful MONITOR program is in-cluded with each microcomputer, storedpermanently in PROM memory. TheMONITOR continuously scans the key-board, programming the computer askeys are depressed.

Say the user wishes to enter the number135 (octal for an 8008 OUTPUT 16 in-struction). He types /, and the right-hand three digits read 001. Then hepresses 3, and the digits say 013. Finallyhe punches the 5, and the display reads135. Notice how the MONITOR program(Continued in column 3.)

Family

' 7

8

9 I

I 4

5

6 I

I '

2

3

Lc

0

• I

Introducing the family of modular microsfrom Martin Research!

Choose either the economical 8008 proces-sor, or the powerful 8080. Either CPU iscompatible with our advanced bus structure!Plus, a convenient monitor program, inPROM memory, allows you to enter instruc-tions with the ease of a handheld calcul-ator. Six large digits display data in octalformat.

Modularity makes for easy expansion. Firstqualiry parts throughout. Professionallymade PC boards with plated holes, solder-mask protection. 8080 CPU board featuresversatile interrupt structure, multiprocessingcapability. Easy interfacing to input andoutput ports.

MIKE 303A: CPU board with 8080, key

board/display board, PROM/RAM boardmonitor PROM (256 bytes of RAM),breadboard, - hardware, and instructions:$395.00 kit, $495.00 assembled and tested.MIKE 203A: CPU board with 8008, key-board/display, PROM/RAM, breadboard,hardware, and instructions: $270.00 kit,$345.00 A&T.

MIKE 3-5 or 2-5: 4K RAM board with450 ns static RAM: $165.00 kit, $190.00A&T.

FREE

CATALOG!

Kits: US & Canada only.Master Charge accepted.OEMs: write forquantity prices.

MARTIN RESEARCH

Microcomputer Design1825 S. Halsted St.Chicago. IL 60608(312) 829-6932

shifts each digit left automatically as anew digit is entered! The value on thedisplay is also entered into an internalCPU register, ready for the next opera-tion. Simply by pressing the write key,for example, the user loads 135 intomemory.

The MONITOR program also allows theuser to step through memory, one loca-tion at a time (starting anywhere), tocheck his programming. Plus, the SwapRegister Option allows use of the inter-rupt capabilities of the microprocessor:the MONITOR saves internal registerstatus upon receipt of an interrupt re-quest; when the interrupt routine ends,the main program continues right whereit left off.

We invite the reader to compare the pro-grammability of the MIKE family ofmicrocomputers to others on the mar-ket. Notice that some are sold, as basicunits, without any memory capacity atall. This means they simply cannot beprogrammed, until you purchase a mem-ory board as an "accessory." Even then,adding RAM falls far short of a conve-nient, permanent MONITOR programstored in PROM. Instead, you have toenter your frequently-used subroutinesby hand, each and every time you turnthe power on.

EASY I/O INTERFACE

The MIKE family bus structure has beendesigned to permit easy addition of in-put and output ports. A hardware inter-face to the system generally needs onlytwo chips—one strobe decoder, and onelatching device (for output ports) orthree-state driving device (for inputs). Anew I/O board can be plugged in any-where on the bus; in fact, all the boardsin the micro could be swapped around inany position, without affecting opera-tion. I/O addresses are easy to modify byreconnecting the leads to the strobe de-coder (full instructions are provided);this is in marked contrast to the clumsyinput multiplexer approach sometimesused.

POWER & HOUSING

The micros described to the left are com-plete except for a cabinet of your owndesign, and a power supply. The basicmicros require +5 V, 1.4 A, and —9 V,100 MA. The 4K RAM board requires5 V, 1 A. A supply providing these volt-ages, and ±12 V also, will be ready soon.

OPTIONS

A number of useful micro accessories arescheduled for announcement. In addi-tion, the MIKE 3 and MIKE 2 may bepurchased in configurations ranging fromunpopulated cards to complete systems.For details, phone, write, or check thereader service card.

COMPUTER EXPERIMENTER SUPPLIES

FACTORY FRESH—PRIME QUALITYPERFORMANCE GUARANTEED

MICROPROCESSORS AND MEMORY

Commercial Grade—up to 35°C.

8008 $ 35.00

8080 135.00

2102 3.50

2102-2 4.50

These units are factoryfresh, full spec devices.

COMPUTER GRADE REGULATED POWER SUPPLIES

All units are short-circuit proof, fold back current limited and withover-voltage crowbar protection.

MD-15

±15 Volt at 200MADual Tracking$30.00

MD-5-1

+5 Volt at 1$24.50

Amp

MD-5-3

+5 Volt at 3 Amp$34.50

MD-5-6

+5 Volt at 6 Amp$44.50

MICRO COMPUTER SUPPLYCOMBINATIONS

For the 8008

MD-08—+5 volt at 6 amp, -12, -9 at 200

ma $75.00

Forthe8080

MD-80—+5voltat6amp,+12vat200ma . . .$75.00

FortheFairchild F-8

MD-8—+5 volt at 6 amp,+12 vat 200 ma .. .$65.00

For the M6800

MD-5—+5 voltat6amp $44.50

All units are short circuit proof, fold-back currentlimited and with over voltage crowbar protection.

All Prices Subject to Change Without Notice

Minimum Order $10.00

Add $1.00 to Cover Postage and Handling

Send Check or Money Order (No C.O.D.) To:

N. J. Residents Add 5% Sales Tax

TTL INTEGRATED CIRCUITS

All devices are factory fresh, full spec units.

7400 23

7404 25

7442 60

7447 95

7448 95

7475 60

7490 60

7493 60

74125 55

74126 55

74192 1.10

74193 1.10

MICRO DIGITAL CORP.

BOX 413, EDISON, NJ 08817 • (201) 549-2699

In the Queue

Foreground

RECYCLING USED ICs 20

Hardware — Mikkelsen

DECIPHERING MYSTERY KEYBOARDS 62

Hardware — Helmers

LIFE Line 72

Applications — Helmers

Background

WHICH MICROPROCESSOR FOR YOU? 10

Hardware — Chamber/in

RGS 008A MICROCOMPUTER KIT 16

Review— Hogenson

SERIAL INTERFACE 22

Hardware — Lancaster

WRYTE for BYTE 44

For Profit — Ryland

WRITE YOUR OWN ASSEMBLER 50

Software — Fylstra

Nucleus

What is BYTE? 4

BYTE magazine is published HOW BYTE Started 9

monthly by Green Publishing,

Inc., Peterborough, New OlIDS — Newsletters 40

Hampshire 0 3 4 5 8.

Subscription rates are $12 for Book RevieWS 84

one year worldwide. Two

years, $22. Three years, $30. Letters 87

Second class postage

application Pending at Byter's Djgest gQ

Peterborough, New Hampshire ' 3 "**

03458 and at additional RpoHpr'Q ^Prvirp Qfi

mailing offices. Phone: neaaer s service yb

603-924-3873. Entire contentscopyright 1975 by GreenPublishing, Inc., Peterborough,NH 03458. Address editorialcorrespondence to Editor,BYTE, Box 378, Belmont MA02178. From inception topress in seven weeks —surely amagazine creation record.Guinness please take notice.

BITE #1

SEPTEMBER 1975

■/££ "^.'^P** *^-^,V>-

HH

(Mir-£v ip4jL *» fc«* .

piicfi i ii

p. 10

" >*585,

' Cte

SBk'

r,mm

p. 20

p. 22

p. 50

p. 62

Carl Helmers:

What is BYTE?

"It could not have beenlong before somewizard of verbal magicfigured out that a groupof little bits must con-stitute a mouth water-ing BYTE."

"... the term byte hasbecome part of the lexi-con."

For the hardware per-son, "the fun is in thebuilding."

This is the first issue of anew publication — BYTE — amonthly compendium ofinformation for the ownersand users of the newmicrocomputer systemsbecoming widely available atmoderate cost. To formal andinformal students ofcomputer science, the choiceof the name BYTE is quiteappropriate. For a largenumber of applications ofthis new technology ofinexpensive computers,character string and text, data(basic unit, one byte) is animportant consideration.Bytes are the units of datamanipulated by many of thesmall computer systemsdesigned by readers — orassembled using one of anumber of kit products nowon the market.

The most c ommondefinition of a byte is that ofa unit of informationcontaining 8 bits. This unit ofinformation can at any timerepresent one of 28 = 256possible things — for instance,one of the ASCII or EBCDICcharacter codes, one of theintegers from 0 to 255, asigned integer from -128 to+127, etc. The origin of theterm "byte" lies in IBM'sdocumentation andterminology for theextremely successful System360 series. The folk tale has itthat IBM needed a more"personalized" (i.e. unique)term for the old standby ofearlier generation computers,the "character". The termhad to be less tied to aspecific type of data such ascharacter codes — and had totake on a generic meaning as"unit of storage". With thatfunctional specification for

the required term, it couldnot have been long beforesome wizard of verbal magicfigured out that a group oflittle bits must constitute amouth watering byte.

With the term'swidespread use in thecomputer field due to IBM'sbenign influence, the termbyte has become part of thelexicon. The fundamentalsignificance of a byte as aunit of information makesBYTE an appropriate namefor the publication. BYTE isyour unit of information onthe state of the art of smallcomputer systems forindividual persons, clubs andclassroom groups. Eachmonth you will findinformation ranging fromcomputer club announce-ments to manufacturers'advertisements, fromtechnical details of hardwareand software to humorousarticles and editorialopinions.

The Home Brew ComputingTrilogy

The story of computing isa story composed of severalelements. A good way to lookat the story is as a trilogy ofinterrelated themes. . .

HARDWARE

SOFTWARE

APPLICATIONS. ..

You need the hardwarebefore you can progressthrough the first gate of asystem. A virgin computer isuseless so you add somesoftware to fill it out. Andthe whole point of theexercise — in many but not

all cases — is to come up withsome interesting and exoticapplications.

The technical content ofBYTE is roughly divided intothe trilogy of hardware,software and applications.Each component of thetrilogy is like a facet of abrilliant gem — the homebrew computer applied topersonal uses. The trilogy isnot confined to home brewcomputers alone of course.

In the personal computingfield as in any endeavor thereare people who will haveforemost in their minds anyone of these three topics tothe exclusion of the othertwo. For instance some of thepeople I know are interestedin software — and prettyexclusively software. They'lltend to concentrate onsoftware as much as possibleand try to get a minimalamount of hardwaresufficient to experiment withsoftware. A person with aprimary interest in softwarewill oftentimes be the personwho purchases a kit computerbecause the kit minimizes theamount of hardwareknowledge the person isrequired to have.

An example of anotherkind of person — in terms ofisolated characteristics — isthe hardware kind of person.Here the emphasis of thework with home brewcomputing is on puttingtogether the hardware,designing the hardware,making things that quote"work'' unquote. A"hardware person" in manycases may not do much else— but he or she certainly willaccomplish the design goal.This is the person who builds

(the first) editorial

up a computer system to thestate where it might even beable to do a bootstrap offtape — then drops the systemand decides to build a betterone. The fun here is in thebuilding, not in the using andprogramming.

Then in this description ofpossible ways of approachingthe home brew hobby there isthe applications person. Thisperson's attitude is somewhata synthesis of the other twotypes. The applicationsperson is typically interestedin getting a particularprogram up and running. So aSpace War freak would spenda good portion of availabletime getting the hardware andsoftware needed to play spacewar. A LIFE addict wouldspend a fair amount of timegetting the hardware andsoftware for the game ofLIFE — and fooling aroundwith LIFE patterns. And aperson who enjoys othercomputer games — using thegame as a goal — spends muchtime assembling ahardware/software system forthe game. A person interestedin toy robots would have acombined hardware/softwareproblem of coordinating andcontrolling movement — thishome roboteer must designthe mechanical details, designa control algorithm — and ifsophisticated fun is required,must design a patternrecognition input device andalgorithm for interpretingscenes. A model railroaderrequiring a computercontrolled layout again hasthis applications model —computer controlled yard andmain line switches — andfaces a choice of possiblehardware and software

components needed to makethe application.

Now, aspects of the trilogyexist in any particular personwho experiments with thecomputer systems. Acommon combination is forthe application to drive thehardware and softwarechoices. Then there is theperson who builds thehardware first — gettingcaught up in the "neatness"of a logical construction inthe same way that amathematician goes off thedeep end with a neattheorem. If you're starting assuch a hardware hacker, youmay come to the point whereyou say "Hmmm — I've builtthe hardware, so now whatdo I do with it?" Here theapplications are following thedesign of the computer. It'sthe same way with manykinds of programming ... thesoftware is an exploration ofthe possibilities of thehardware. As a softwarehacker you might turn to thepure logic of programming —writing and trying outroutines for things rangingfrom augmentations of theinstruction set to filemanagers, to games simpleand sophisticated. Or youmay just fool around withprogramming with no specificend in mind in terms ofapplications, for the solepurpose of seeing what youcan do with the machine.

As a home brew computersoftware experimenter, you'llfind an emotional kinshipwith the people who takepart in the automotivehobbies. What does a"performance" automobilebuff do with the machine —once all the optional

improvements and featureshave been added underneaththe personalized paint job?The auto nut takes his car outto the local drag strip orother test track and opensup the throttle to see whatthe engine and drive train willdo in terms of speed andacceleration (proper spelling:exhilaration). Well, forcomputer experimentersthere is a logical drag strip inevery computer — aninstruction set waiting to beexplored. You exercise thislogical drag strip by seeingwhat you can do in theinvention of neat little (andnot so little) programs to douseless (equivalent of realdrag strip) performance testsin artificial circumstances —or really useful tasks(equivalent to normaltransportation functions ofautos). I haven't yet figuredout what the computerequivalent of an air scoophood is — or the equivalent ofthe weird mechanicalcontrivances I often see onthe derriere of "muscle" cars.

You might even be thetype of person who wants todo a certain programmingtechnique just for the sake ofprogramming - you say toyourself: "OK — I want towrite a BLURPTRANlanguage compiler and codegenerator, so what hardwaredo I need to do it?" As such aperson, you would thenchoose a computer system inpackaged and/or self-designedform such that it would fitthe compiler writing goal.

In truth many will find itbest to seek a sort of

"A virgin computer isuseless so you add somesoftware to fill itout..."

Sophisticated fun re-quires sophisticatedthought and hardwork...

"Hmmm — I've builtthe hardware, so nowwhat do I do with it?"

"Well, for computerexperimenters there is alogical drag strip inevery computer — aninstruction set waitingto be explored . . ."

interactive — balanced -relationship between thethree aspects of the computertrilogy. At any given time,almost anyone has someaspects of all three combinedwithin his own philosophy ofhome brew computing.

BYTE — the magazine -addresses this mixture thatoccurs in various people byproviding articles permutingand combining these areas.

In this first issue hardwarearticles include "DecipheringMystery Keyboards," anarticle on recycling used ICs,and Don Lancaster's articleon serial output interfaces.Articles on software include adescription of the assemblerconcept by Dan Fylstra.Applications are found in thefirst segment of LIFE Line.This application includesinformation on programmingtechniques as well as

suggestions regarding requiredhardware.

So here in the first issueyou find an example of themixtures of these factorswhich go into home brewcomputing. This mixture ofaspects is a guiding theme ofthe current and followingissues of BYTE — one of thekey editorial goals is to covera complete range of ideasspanning this triumvirate ofconcepts.

The Impossible Dream

or, "Wouldn't it be neat to have a computer all one'sown without being as rich as Croesus?"

The art of home brewcomputing has come a longway in the past few years. Toparaphrase the science fictionauthor Robert Heinlein,"When it's time to do homebrew computing, people dohome brew computing." Thattime has come today, withthe advances in memory andprocessor technologyinherent in large scaleintegration. The presentdevices are not as good as the"Thorsen Memory Tubes" inHeinlein's Door Into Summer- but it's getting almost tothe point where a basementtinkerer can put together amanufacturable roboticdevice and plant theeconomic acorn which willgrow into an industrial oaktree.

My own first exposure tothe idea of home brewcomputing was about eightyears ago when I wasattending high school in ruralNew Jersey. A ham (radioamateur variety) friend ofmine at that time wasattempting to get a surplusRCA computer card rack intooperation as his own

conception of a homeprocessor. I didn't knowenough at the time even toask an intelligent questionabout its design. The thingwas a monstrous 3-level cardrack with a heavy wire wrapback plane and transistorlogic with integration to thelevel of modular cards. Idon't think this friend ofmine ever got his processorworking to any significantextent — but the impressionwas made: "Wouldn't it beneat to have a computer allone's own without being asrich as Croesus?" I filed awaythe thought of a home brewcomputer as an "impossible"dream at that time — howcould I afford a computer if Icould barely afford a beat upold Hallicrafters SX-99receiver and flea power hamtransmitter? That did notstop me from having fun withcomputers — it merely causeda redirection of attention tothe use of computersfinanced by agencies otherthan myself ... for a while.The while lasted severalyears as I bootstrappedmyself through college with

FORTRAN, COBOL, PL/1,BAL and a bit of financial aidfrom a private foundation.Along about 1972 when Istarted reading about the LSIcomputers being designed byIntel - the 8008 and 4004 -I began to revive that olddream of "having a personalcomputer." Here was a singleIC chip - the 8008 - whichwould give me a real storedprogram machine atreasonable ("reasonable" =under $1000) cost. Afterattending an Intel seminar in1972, I resolved that I wouldactually build an 8008computer.

The resolution was a longtime being turned into reality— I did not actually begindesign and construction untilJanuary 1974. I took mytime for numerousreasons . . . among thembeing the fact that I had tolearn something about theway hardware works, had toequip a laboratory of sorts,got this bug aboutself-publishing the resultsalong the way*, and soon ... I finally got an 8008computer which would

execute instructions in themiddle of the summer of1974 — and to quote one ofthe subscribers to my self-published series of articles. "Ilearned a lot. . .," just as hedid. So much for the personalinvolvement — I've built akluge of sorts — the softwarehacker's first attempt athardware — and have learnedquite a bit as a result. You —the reader of BYTE — can gothat route or use a mucheasier route — there areseveral manufacturers of kitproducts advertising in thismagazine. And you'll find amagazine full of helpfulinformation which I didn'thave.

...CARL

*l got the idea of self-publishingfrom a pamphlet put out by SOLIII Publications, Farmington,Maine — which has since beenturned into a book entitled TheShoestring Publisher's Guide —full of useful materials onpublishing by individuals andsmall organizations.

World's Most Inexpe

ASIC Language System

$995

Limit: one per i uslomer.OEFER expires September 15, 1975

Two 4,096 word Memory Boards (kit)

Allair 8K BASIC Language. This language was chosen for theAltairComputer because of its versatility and power and becauseit is easy to use (comes with complete documentation). Altair8K BASIC has many features not normally found in BASIC lan-guage including an OUT statement and corresponding INPutfunction that allows the user to control low speed devices(machine control without assembly language). Leaves 1750 wordsin 8K machine lor programming and storage.

NOTE: Altair BASIC comes in

either paper tape or cassette

tape. Specify when ordering.

Interface Board Options. The Parallel Interface Board is usedto connect the Altair 8800 to external devices that send andreceive parallel signals. Many line printers require a ParallelInterface Board. I he RS232 Serial Board is used to connect theAltair 8800 to external devices that send and receive RS232 serialsignals. Most computer terminals require an RS232 Serial InterfaceBoard. The TTY Serial Interlace Board is used to connect theAltair 8800 to an ASR-33 or KSR-33 teletype (20 milliamp currentloop). The TTL Serial Interlace Board is for custom interfacing.The Audio Cassette Interlace Board is used to connect the Altair8800 to any cassette tape recorder. Il winks b\ changing the

Your choice of Interface Boards (kit)

Altair 8K BASIC Language

electrical 'signals from the computer to audio tones. It can beused to store unlimited amounts of information coming out ofthe computer and it can be used to put information back into

the computer.

PRICES:

Altair Computer kit with complete assembly instructions $439

Assembled and tested Altair Computer $621

1,024 Word Memory Board $97 kit and $139 assembled

4,096 Word Memory Board $264 kit and $338 assembled

Full Parallel Interlace Board $92 kit and $114 assembled

Serial Interface Board (RS232) $119 kit and $138 assembled

Serial Interlace Board (TTL or TTY—teletype) $124 kit and $146 assembled

Audio Cassette Interface Board $128 kit and $174 assembled

4K BASIC language (when purchased with Altair,

4,096 words of memory and Interface Board) $60

8K BASIC language (when purchased with Altair, two

4,096 word memory boards and Interface Board) $75

COMTER II $780 kit

Teletype ASR-33 $1500 (assembled only)

Inpul Output Devices. The Comter II Computer Terminal hasa full alpha-numeric keyboard and a highly-readable 32-characterdisplay. It has its own internal memory of 25b characters andcomplete cursor control. Also has its own built-in audio cassetteinterface that allows you to connect the COMTER II to any taperecorder for both storing data from the computer and feeding itinto the computer. Requires an RS232 Interface board.

I he Standard ASR-33 Teletype prints 10 characters per second.It has a built-in paper tape reader and punch. Has standard 120day Teletype warranty. Requires a Serial TTY Interface board.

NOTE: The Altair 8800 can be connected to any number ofinput/output devices other than the ones listed above.

MAIL THIS COUPON TODAY

□ Enclosed is check i.c

□ BankAmericard #™_

__- Dor Master Charge #--

"Creative Electronics"

6328 Linn, N.E., Albuquerque. NM 87I08 505/265-7553

* D $995 BASIC System Special with following Interface Board: D Parallel

□ Serial RS232 □ Serial TTY □ Serial TTL □ Audio Cassette

D Altair 8800 □ Kit D Assembled O Options (list on separate sheet)

Include $8 for postage and handling

□ Please send free Altair System Catalog

NAME

ADDRESS

CITY —STATE & ZIP

Credit Card Expiration date , . ___

MITS/6328 Linn. NE,'Albuquerque. NM 87108 505/265-7553

Warranty: 90 class on parts for kits and 90 days on parts and labor for assembled units.Prices, specifications and delivery subject to change.

• ••••••••••••••

•••••

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

•••«.

•••••

••••••••••••••■

••••••••••••••••••••••••••••••••••••••••

••••

• ••••••••••••••••••§•••••••••••••••••i••••i••••••••••••S•••••X-

» titiitt* ttiiitittiiiiiitiittitii •••«*■«■"

c%

2nd prize:

|::::6060cpU

••••

••••••••••••

••*•■

!••••■

••••••

••••••

•••••■

•••••■

•••••■

•••••■

•••••■

••••••

•••••■

••••••

••••••

•••••■

••••••

••••••

•••••■

••••••

•••••■

•••••■

••••••

•••••■

•••••■

•••••■

••••••

••••••

••••••

••••••

•••••■

••••••

•••••■

••••••

••••••

••••••

••••••

••••••

••••••

•••••■

••••••

••••••

••••••

•••••■

••••■

•••••■

•••••■

••••••

••••••

••••••

•••••■

••••*•

••••••

••*••■•••••■

••••■

••••••

$•*..■•••••■

•••v.*

• * Jf :

did prize: jdOOdcpu!

We were 1st to offer the 8008 to hobbyists over 16months ago; now we're setting the pace again with apowerful new 16 bit microcomputer IC in a 40 pin DIP,made by:

RflDSI

oxao

o

YOU MAY WIN ONE OF THESE CHIPS --- SIMPLY:

1) Reveal the Secret Microcomputer Co.'s true identity2)Tell us in 25 words or less why you should re-ceive a free chip

If you can convince our jaded judges, in a form suit-able for use in this family (?) magazine, you win.

*

•• •

r ft r I -ri

41

CAVE

9rafi>

FINE PRINT: ALL ENTRIES MUST BE POSTMARKED BY AUG. 31 AND BE IN OURHANDS BY SEP 7, 1975; ENTRIES BECOME PROPERTY OF BILL G0DB0UT ELEC-TRONICS. ALL CONTESTANTS RECEIVE A DATA SHEET ABOUT OUR FIRST PRIZEFOR THEIR TROUBLE. WINNER WILL BE NOTIFIED BY OCT. 1, 1975. IF YOUDON'T WIN ANYTHING THIS TIME AROUND DON'T FEEL TOO BAD; ENTER OURCOMING CONTEST FOR A COMPLETE 16 BIT MICROCOMPUTER KIT. THESE CON-TESTS SPOTLIGHT PRODUCTS TO BE INTRODUCED BY US IN THE FALL OF '75.SEND ENTRIES TO "BYTE CONTEST", BOX 2355, OAKLAND AIRPORT, CA 94614.

from the Publisher

how

BITE

started

Two series of events cametogether and triggered BYTE.One was the surprisingresponse I received from thereaders of 73 Magazine(amateur radio) every time Ipublished an article involvingcomputers. Being a curiousperson I decided to learnmore about them, only tofind my way blocked byformidable obstacles. Themore I tried to dig into thesubject the more I found thatthere was a need forinformation that was notbeing satisfied.

The other event was thesuccess of 73, with moresubscriptions and advertisingcalling for some sort ofcomputerization of thedrudgery — the billing, recordkeeping, reader's service,indexing, and such. I knewwhat I wanted done and hada good idea of what I had tospend to accomplish this, so Istarted talking to computersalesmen . . . only to find thatI wasn't even able to readtheir literature, much lesshave even a vague idea ofwhat they were saying.

Some deep well ofobstinacy within me foughtback and refused to let methrow a dart to pick out thecomputer system I needed. Ifelt that as a businessman

running a good sized smallbusiness and as the editor andpublisher of an electronicsmagazine, I damned wellshould be able to come togrips with the salesmen andpick out a computer systemon some sort of rational basis.But the more I tried to getinformation, the more Irealized that it was going tobe very hard to get.

Between my professionalneed to understandcomputers and my amateurinterest in the subject I foundmyself subscribing to onenewsletter after another. . . talking at exhaustivelength with computer savvy73 readers . . . reading books.. . and wearing computersalesmen out. I discovered aninteresting thing — few of thehardware chaps could talksoftware — and vice versa.Further, neither could talkmuch about applications.

There ought to be amagazine covering the wholething, thought I. A magazinewhich would help theneophite to grapple withprogramming lan-guages . . . would permit thebeginner to buildmicrocomputers andperipherals. .. would providea dialog for the moresophisticated to communicate

as well. How about apublication which wouldcover all aspects of smallcomputer systems?

As the computer hobbynewsletters arrived I lookedthem over. Some were verywell done, some prettyjuvenile. One chap was doinga splendid job . . . designinghis own hardware . . . devel-oping software . . . pluswriting and publishing amonthly magazine on thesubject just about singlehanded. This was CarlHelmers and his ECS Journal,which was in its fifth issue,having just started in January(this at the time being May). Igot together with Carl andexplained my idea andsuggested that it was timeto get a good professionalmagazine going in the field,one which would helpcomputer hobbyists get theinformation they needed andwhich might thus encouragemanufacturers to come outwith more hardware for thegrowing body.

Carl had been building uphis circulation to ECSgradually, with it being about300 in May. We figured to goall out and run off 1000copies of the first issue of

continued on page 96

BITE

staff

EDITOR

Carl T. Helmers Jr.

ASSISTANT PUBLISHER

Judith Havey

ASSOCIATE EDITORS

Dan FylstraChris Ryl'and

CONTRIBUTING EDITORS

Hal ChamberlinDon Lancaster

EDITORS

John BurnettSusan G. Philbrick

PRODUCTION MANAGER

Lynn Panciera-Fraser

ART DEPARTMENT

Nancy EstleNeal KandelPeri MahoneyBob Sawyer

PRINTING

Biff Mahoney

PHOTOGRAPHY

Bill Heydolph

TYPESETTING

Barbara LattiMarge McCarthy

ADVERTISING

Bill EdwardsNancy Cluff

MARKETING

David Lodge

CIRCULATION

Susan ChandlerDorothy GibsonPearl Lahey

INVENTORY CONTROL

Marshall Raymond

DRAFTING

Bill Morello

Which Microprocessor

National Semiconductor's IMPS and IMP-16 computers were originally offered as completely-populated subsystem cards such as the one pictured here.

by

Hal Chamberlin

Box 295

Cary NC 27511

At this time there arethree microprocessor chips orchip sets readily available tothe hobbyist: the 8008, the8080, and the IMP-16. Thefirst two were pioneered byIntel and the last is a NationalSemiconductor invention.Chips and/or kits utilizingeach of the threemicroprocessors are availablefrom at least two sourcescatering to hobbyists as ofthis writing. This level ofavailability and popularity isnot even approached by othermicroprocessors, thereforethis discussion is beingconfined to these three.

Comparing computers islike comparing people: theconclusions depend on theapplication, thecircumstances, and personal

preference. The comparisonsmade will be based on use ofthe microprocessor as ageneral purpose computer.For our purposes a. generalpurpose computer is onewhich has read-write memoryfor the bulk of its storage,which is expected to run avariety of programs, and forwhich the end use is thedevelopment and executionof programs written by theuser. General purposecomputers are also expectedto be able to control a varietyof input-output equipment.Instruction sets will becompared on the basis ofassembly language

programming. Speed will becompared on the basis of thetime1 necessary for themachine to complete anon-trivial task. Complexitywill be compared on the basisof ease of understandingmicroprocessor operation aswell as the sheer number ofparts required to implement asystem. Finally, cost will becompared on the basis ofminimum systems capable ofassembling programs forthemselves given theexistence of suitable I/Odevices.

Before getting intocomparisons, we will take abrief look at the leading

Reprinted from The Computer Hobbyist, Box 295, CaryNC 27511.

10

for You?

The MITS Altair 8800 is one package in which you can purchase an 8080 based system.

features of eachmicroprocessor. Then thecomparisons will be made ineach performance areaelaborating on individualfeatures as necessary.

The Intel 8008 Processor

The 8008 was the firstmicroprocessor to beintroduced and the first to beavailable to the hobbyist. Ithas an 8 bit instruction andaccumulator length. There areessentially only two memoryaddressing modes: immediate,and zero displacementindexed. Subroutine andbranch addresses are fulllength absolute, allowingbranching anywhere with oneinstruction. Subroutinereturn addresses are saved onan internal 8 level stackwhich puts a 7 deeprestriction on subroutinenesting. Much of theinstruction set power isderived from the sixadditional 8 bit indexregisters which may count,

save, or address memory. Themaximum directlyaddressable memory is 16kbytes; in addition, 8 inputand 24 output devices may bedirectly addressed with a onebyte instruction. CPU speedis modest ranging from 20microseconds for a registeroperation to 32 microsecondsfor a memory operation to 44microseconds for a jump orcall. A selected chip, the8008-1, reduces these timesto 12.5, 20 and 27.5microseconds respectively. Asingle level of interrupt isprovided but externalhardware is necessary forcomplete status saving duringinterrupts. Interfacing thechip to the rest of the systemis fairly involved and requiresfrom 20 to 70 TTL packagesdepending on the systemperformance desired. Thelower figure will barelyfunction while the higher oneincludes a console, completeinterrupt system, anddynamic memory interface

with direct memory accesscapability. Most of theinterfacing complexity can beblamed on overzealousdesigners trying to make-dowith an 18 lead package.Present cost to theexperimenter ranges from$40 to $80 with the "dashone" version bringing roughly50% more.

The Intel 8080 Processor

The 8080 is Intel's sequelto the 8008. Basically it hasmore of everything. Theinstruction set contains all ofthe 8008 instructions makingit upward compatible at theassembly language level.Major additions to theinstruction set include directload and store of theaccumulator, doubleprecision (16 bits) add andincrement for addresscalculation, and a pushdownstack of indefinite length inmemory thus allowingunrestricted subroutinenesting. Addressable memory

Comparing computers islike comparing people;the conclusions dependon the application, thecircumstances, and per-sonal preference.

has been increased to 64kbytes and addressable 1/0devices have been increasedto 256 inputs and 256outputs at the expense of 2byte 1/0 instructions.Execution speed has beenconsiderably improved also.Register operations take 2microseconds, memoryoperations require about 3.5microseconds, and subroutinecalls consume 8.5microseconds. Interruptswork the same way as on the8008 but everything requiredfor complete status saving isprovided as well as aninterrupt enable/disable flag.Interfacing an 8080 isgenerally regarded as beingsimpler than interfacing an8008. There is only a slight

11

The 8080 is Intel's sequel to the 8008. Basically ithas more of everything . . .

improvement in the minimumsystem, about 15 chips, but afull-bore system may be cutin half to 35 chips. The 40lead package allows a separate16 bit address bus and 8 bitdata bus, as well as simplifiedtiming and control. Presentcost to the hobbyist is about$160.

The National IMP-16

The IMP-16 is one of theolder microprocessors and fora long time the only onewith a 16 bit wordlength.The programmer is suppliedwith four 16 bit accumulatorsand a 16 word stack. Theinstruction set is typical ofmany 16 bit minicomputers,and in many ways resemblesthat of a NOVA. Four generaladdress modes are provided,base page direct, programcounter relative, and indexedusing either accumulator 2 oraccumulator 3. In addition,

The IMP-16 is the firstof the 16-bit micros . .

A good instruction setshould be well organ-ized . . .

LOAD, STORE, JUMP, andCALL can be indirectaddressed using any of theaddressing modes to get tothe address pointer. Twomemory modification instruc-tions are provided, ISZ(Increment memory, Skip ifZero), and DSZ which allowsmuch counting and indexingto be done in memory freeingthe registers for arithmetic.The stack is used forsubroutine return addressesbut can also be used forsaving registers and status. Aunique feature is theavailability of an extendedinstruction set chip whichprovides automatic multiply,divide, double word add andsubtract, and bytemanipulation. The CPU canaddress 64k words but thisshould be held to 32k if thebyte instructions are used.The I/O instructions can alsoaddress 64k devices. Anotherunique feature is that severalbits of input and output areprovided by themicroprocessor itself makingcommunication with ateletype possible without anyinterface at all. Speed is goodranging from 4.2microseconds for a registeroperation to 7 microsecondsfor a memory operation. Amultiply takes about 160microseconds which is stillconsiderably faster than asoftware routine would be.The IMP-16 provides twopriority levels of interruptand all of the hardwarenecessary for complete statussave/restore. Interfacing isconceptually simple andrequires 25 to 50 packagesdepending on systemsophistication. Part of thisnumber is due simply to the

fact that 16 bits are to behandled rather than 8. Themicroprocessor is in the formof five 24 lead packageswhich for the most part aresimply wired in parallel. Theextended instruction setresides in a sixth package.Present cost of the standardchip set is about $160. Theextended instruction set chipis available only fromNational at this time for $80.

Comparisons — InstructionSets

One of the most importantperformance areas of amicroprocessor is theinstruction set. A goodinstruction set should be wellorganized so that it is easy tolearn, powerful so thatcomplex routines can becoded with a small number ofinstructions, memoryefficient so that complexroutines require only smallamounts of memory, andtime efficient so that only asmall number of memorycycles is necessary tocomplete a task. In addition,performance should beequally high on bothcharacter oriented tasks andnumerically oriented tasks.

Instruction setorganization is best on the8080 closely followed by the8008 with the IMP-16 beingsomewhat disorganized.Consequently, the beginnerwill find the 8008/8080 theeasiest to learn. Experiencehas shown that beginnersprefer simple instruction setsand that they retain a certain"fondness" for their firstmachine long after they havegraduated into much moresophisticated endeavors. Theexperienced programmerhowever should experiencelittle difficulty keeping the

little quirks, distinctions, andspecial cases straight whenworking with the IMP-16.

Instruction set power isbest on the IMP-16, followedby the 8080 with the 8008 adistant third. Based on actualexperience, it may require asfew as one half as manyIMP-16 instructions toprogram a task as 8008instructions. The 8080 fallsabout midway between theextremes. There are manyreasons why the IMP-16 issuperior. Memory addressingis much more flexible due tothe four addressing modesand indirect addressingcapability. An additionaladvantage is that thearithmetic word length is thesame as the address length.Since the return addresses areput on a stack in all threemachines, multipleentrypoint subroutines areeasy but the IMP-16 alsoallows multiple return points(return to CALL+1 on error,CALL+2 otherwise, etc.) withno additional instructions.The 8080 is a bigimprovement over the 8008because registers may besaved on the stack when theyare used by a subroutine andthen restored unaltered uponreturn. This allowssubroutines to be called asneeded without regard towhich registers they maydestroy. Note, however, thatthis capability may be addedto the 8008 quite simply. Thedirect load and storeinstructions of the 8080reduce the number of lines ofcode in a program.

Memory efficiency of theinstruction set is best on theIMP-16 but is closelyfollowed by the 8080. The8008 is not as bad as mightbe presumed but is definitely

Instruction set organization and memory efficiencyare usually conflicting requirements.

12

* ki.

inferior. I n terms of numbers,the 8080 may require 10 to15 percent more memory bitsand the 8008 20 to 40percent more. Note that thesefigures are based onoptimized programs writtenby experienced programmers.The spread can be muchgreater with inexperiencedprogrammers or hastilywritten programs. It is alsointeresting to note thatinstruction set organizationand memory efficiency areusually conflicting require-ments. This is becausemany of the lesser usedpossible operationcombinations have beenculled from a memoryefficient set in order toreduce the number of bitsrequired to encode theinstruction. Implied operandsare also utilized in order tofree up bits for other uses.Experienced programmers areable to plan ahead and avoidhaving these restrictionsbecome restrictive. The 8008

and 8080 are as good as theyare because many of theinstructions are a single word(8 bits) long whereas theminimum instruction lengthin the IMP-16 is 16 bits. Thisis somewhat offset by thethree word (24 bit)instructions of the 8008 and8080 which in most caseswould only require 16 bits inthe IMP-16. A fringe benefitof high memory efficiency isthat the shorter programs willload faster regardless of theloading method.

Time efficiency is by farthe best on the IMP-16 withthe 8008 a distant second andthe 8080 a slightly poorerthird. On a classicminicomputer, a machinecycle was the same as amemory cycle in most cases.As a result, a time efficientinstruction set meant a fastermachine without fasterhardware. Microcomputers onthe other hand may have veryfew of their machine cyclesbeing memory cycles. As a

result, time efficiency mayhave little relation to actualmachine speed but doesrepresent the potential speedwith an optimized CPU. Timeefficiency can be importantin multiprocessor systemswith a shared memory wheremore memory cyclesincrease the probability thata CPU will have to await itsturn. The IMP-16 has a hightime, efficiency mainlybecause twice as much data isfetched in each memorycycle. Further improvementis due to the instruction setpower, requiring fewerinstructions to be fetched.The 8080 has poorer timeefficiency than the 8008mainly because the stack is inmemory. A subroutine call,for example, requires 5memory cycles, 3 to fetch theinstructions and two to stackthe return address.

Historically someminicomputers were better athandling character orientedtasks and others were well

Scelbi Computer ConsultingInc. is one of a number ofcompanies who take the Intel8008 computer, package itinto a system design, andsell the result as a system.The photograph supplied hyScelbi with a press releaseshows you the result ofassembling their new"SCELBI-8B" version of the8008. As a supplier to thecomputer enthusiast marketfrom the start, Scelbi hasdone a very credible jobof assembling a true systemproduct as opposed to abare-bones CPU whichmerely blinks its lightsafter assembly.

adapted to number crunchingtasks. Microcomputers are noexception. Most micros havebeen optimized for characterhandling because of expectedhigh usage in terminals andthe 8008 and the 8080belong to this class. TheIMP-16 on the other hand ismuch better at numerically

Most micros have beenoptimized for characterhandling because of ex-pected high usage interminals.

oriented tasks and was aimedmore toward machine toolcontrol and industrialmonitoring. Interestingly, useof the extended instructionset on the IMP-16 greatlyimproves both characterhandling and arithmeticcapability.

How About Running SystemSoftware?

One performance area ofinterest to hobbyists is thesuitability of a machine forrunning a BASIC system. TheIMP-16 and the 8080 areabout equal in their ability tocompile BASIC quickly butthe IMP-16 without theextended instruction set may

13

Speed in a hobby com-puter system can be atwo-edged sword.

execute BASIC twice as fast.This is due mainly to the allfloating point arithmetic thatBASIC r eq ui res. Theextended instruction set maydouble the speed again if a lotof multiplies and divides aredone. The 8008 can of courserun BASIC also but compileand execution speeds arelikely to be one tenth of the8080.

One other property of aninstruction set is the easewith which it may beassembled, either by hand orwith an assembler program.In this respect, the 8008comes out on top with the8080 next and the IMP-16last. Use of the mnemonicsand format recommended bythe manufacturer is assumedin making this comparison.8008 code is easy to handassemble because the octalnotation used corresponds tothe various fields in theinstruction word. Assemblersfor 8008 code can also bequite simple becauseinstructions require at mostone operand and very fewinstruction formats exist.Further simplification resultsfrom all addresses beingabsolute and all mnemonicsbeing three characters. 8008

assemblers run on an 8008can be as small as 2.5k bytesfor a limited implementationbut 4k bytes is more realisticwhen providing an easy to useassembler. If the hexadecimalnotation recommended byIntel is used with the 8080,hand assembly is definitelymore difficult. The assembleralso has a tougher time withthe two operand format andother niceties defined for the8080. The Intel version of the8080 assembler requires 8kbytes but it should be notedthat it provides macrocapability. Hand coding andassembling for the IMP-16 isharder yet due mainly torelative addressingconsiderations and a widervariety of instructionformats. National's version ofthe assembler requires 4kwords and can producerelocatable object code andhandle external symbols.

Is Speed Useful?

Speed in a hobbycomputer system can be atwo-edged sword. A highspeed microprocessor requireshigher speed in other systemcomponents such as memoryin order to realize its higherspeed. An 8008 for examplecan run at full speed withmemories as slow as 3microseconds access but the8080 will have to wait onmemories slower than 520nanoseconds and the IMP-16requires 420 nanoseconds. Ifthe ready line is used on the8008 and 8080 to permit theuse of slower memories, thewait will be in increments ofwhole machine cycles whichis 4 microseconds on the8008 and 500 nanosecondson the 8080. Thus ifmemory is a tad slow, onecycle will be added to eachthree cycle memory accesssequence slowing the systemdown an average of 25percent to 30 percent. TheIMP-16 does not have a readyline, rather the user stretchesone of the clock periods in acycle long enough to permit

memory access. This schemehas the advantage that thestretch can set to the exactamount needed. The highertime efficiency of the IMP-16instruction set will greatlyreduce the performanceimpact of a slow memory ascompared to the 8080.

How Complex is the Interface?The ranking on interfacecomplexity is 8080 (least),IMP-16, and 8008. Thecomparison is based onsophisticated general purposeimplementations having acomplete 1/0 interruptfacility, software consoleusing ASCII 1/0, and ageneralized input/outputmemory bus allowingsimultaneous direct memoryaccess without affecting theCPU. The ranking is the samewhether parts count orconceptual complexity isbeing considered. Thedifference between the 8080and the IMP-16 is primarilydue to the wider word of theIMP-16 and less confusingdiscussion of chip interfacingin the Intel manual. The 8008is just plain difficult tounderstand and interfacecorrectly but once that isdone, either by the user, amagazine, or a manufacturer,the system should operatejust as well.

Software?

Software support is oftena big issue among industrialusers of microprocessors.Unfortunately, the majorityof the software they arefighting over is unavailable tothe hobbyist because of highprices. It is not unusual for aprogram such as anassembler to cost as much asa handful of microprocessors.8008 and 8080 users can lookto Scelbi and MITS for somesoftware at reasonable priceseven if they did not purchasetheir machines from thesesources. National has anexcellent body of softwarefor the IMP-16 but thepackage price is $200 forobject tapes and source

listings. The hobbyist willhave to depend on himself,kit manufacturers, andpublications for most of hissoftware in the near future.Ultimately, the level ofsoftware support will bedirectly proportional to thepopularity of themicroprocessor.

And Finally . ..

There are a number ofother performance areas thatare only of minor interest tohobbyists. Although there is alarge spread in the maximummemory size, all threemachines are likely to haveample addressing capabilityfor the hobbyist's memorybudget. The same may be saidrelative to addressable I/Odevices. Power supplyvoltages and powerconsumption are also usuallyof minor importance. All ofthe microprocessors can besuccessfully operated fromstandard +15, +5 and -15system supply voltages usingsimple, •.■ fail-safe, zenerregulators. Package size andpinout are unlikely to befactors in hobbyist use.

This brings us to acomparison of overall systemcost. First, the spread in chipcost is roughly from $50 to$1 50, so the spread in systemcost would be $100 at most.An 8008 requires moreinterfacing circuitry howeverwhich reduces the spreadsomewhat. After enoughmemory to do assemblies orrun BASIC and a few I/Odevices are added, the $75difference left may be smallcompared to the totalinvestment. Nevertheless, an8008 system will be the leastexpensive followed by an8080 system closely followedthereafter by an IMP-16.

Which microprocessor foryou? The answer still dependson the application,circumstances, and personalpreference, but hopefully thedecision can be made withmore authority after readingthis article.

14

Last Chance -

DON'T MISS THE BOAT!

This is the last opportunity to become a CHARTER SUBSCRIBER to BYTE ... at thespecial Charter rate of $1 0 per year.

Perhaps you've held off to see the first issue . . . perhaps you've just seen a friend's copy ofBYTE . . . whatever the reason .. . send in your $10 and be sure to get your next issue of BYTEhot off the presses.

If you are reading a pass-along copy, just mark the subscription order that you'd like yoursubscription to start with issue number 1.

Name.

Address.

City.

| ~] BILLME

[~| Start with #1 BYTE

My occupation.

.State.

.Zip.

□ Check for $10 enclosed

j_] Bill BankAmericard or MasterCharge #

D Start with #2 BYTE

BYTE Peterborough NH 03458

15

The RGS 008A Microcomputer Kit

Review

by

James Hogenson

Box 295

Halstad MN 56548

The RGS 008Amicrocomputer is a generalpurpose machine based onthe Intel 8008 CPU chip. The008A uses a minimum of 1kof random access memoryand a bus type of I/O systemcapable of handling up to 256peripheral devices.

The basic kit consists of 6printed circuit boards and allcomponents necessary tobuild the CPU, 1k of memory,the control panel and thepower supply. Molex pins orsockets, edge connectors,backplane, front panelswitches and LEDs, and apower transformer areincluded. A cabinet, somehardware, line cord and fusesare not included. The kit sellsfor $375, making this one ofthe least expensive kits on themarket.

Physical Construction

The control switches aremounted directly on thecontrol panel PC board,

together with the LEDindicators. A printed circuitbackplane board is connectedto the back side of thecontrol panel. Once thecontrol panel and backplaneare wired together, anythingplugged into an edgeconnector on the backplane isautomatically connected to

the system. The control paneland backplane measure 4.8"x 6.75". The double-sidedplug-in boards measure 4" x6" with 72-pin edgeconnectors, and have platedthrough holes. The CPU withall control circuitry includedis fitted onto only two ofthese plug-in boards.

Microcomputers, microcomputers and more microcom-puters! The number of options you have for a homebrewsystem is expanding at a rapid rate - with the correspondingdifficulty in picking and choosing among the options. BYTEhas an answer to this problem - reviews of kits and equipmentfrom various manufacturers and advertisers in the magazine.The idea of a review is to give the user's evaluation of theproduct - and. in the process aid you in the choice ofequipment for your own homebrew system. Here is BYTE'sfirst review of an 8008 product - the RGS 008A microcom-puter kit (made by RGS Electronics, 3650 Charles St., SuiteK, Santa Clara CA 95050).

James Hogenson provides this review of the RGS product,based upon his own experiences assembling and utilizing thecomputer. Jim built the kit early this year as part of his highschool Science Fair project activities designing an oscilloscopeCRT display. I think you'll find Jim's account to be a usefulsource of information on the RGS product. . . . CARL

16

Is an RGS008A thecomputer for yoursystem?

Here is oneRGS 008A's owner'sevaluation.

The control panel holdsthree 8-bit binary LEDdisplays. Two of the displaysindicate the memory addressof the date or instructionpresently being operatedupon or executed. The thirddisplay shows the contents ofthe memory locationindicated by the memoryaddress displays.

The two LEDs not used inthe upper memory addressare used to indicate thesecond and third bytes in atwo and three byteinstruction. Two additionalLEDs indicate the stoppedand waiting state of the CPU.

The only switches used onthe control panel are acommon 8-bit binary switchregister and 6 controlswitches. The six controlswitches and their functionsare:

Memory L oad. Amomentary switch whichloads the data presently onthe 8-bit switch register intothe memory locationspecified by the memoryaddress register.

Load L. A momentaryswitch which loads the

address set on the 8-bitswitch register into the lowermemory address register.

Load H. A momentaryswitch which loads theaddress on the switch registerinto the upper memoryaddress register. (The threeload switches will operateonly when the CPU is in thestopped state.)

Interrupt. A momentaryswitch for entering interruptinstructions.

Step. A momentary switchfor single stepping through aprogram. The run/wait switchmust be set on wait to singlestep a program.

Run/Wait. A toggle switchwhich is used to set the CPUin either a run or a wait state.During the run state, the CPUoperates normally. During thewait state, the CPU doesnothing unless being singlestepped.

The 008A is designed tobe panel mounted. The entiresystem is contained onplug-in boards mounted onthe back of the control panel.The entire unit may then bemounted very neatly;however, a nice improvement

would be for themanufacturer to offer acabinet to mount the unit in.

The p o wer su p plyincluded in the kit willprovide enough power toallow for moderate expansionof the system. If necessary,auxiliary power supplies canbe purchased from the kitmanufacturer. The powersupply included in the kit willproduce -5 V at 5 Amps and-12 V at 1 Amp. The -9 V forthe 8008 is derived from the-12 V.

The only type ofperipheral interface presentlyoffered for the 008A is aparallel TTL-compatibleinterface. The parallelinterface boards are also 4" x6" boards which may beplugged directly into thebackplane if desired. Up to256 interface cards may beused. The parallel interfacekit sells for $43.75.

A 008A cassette tapeadapter is offered for $100.The FSK adapter'sdata rate is 300 bits persecond. The popular 40-pinUART chip is used forparallel-to-serial and serial-to-

parallel conversion. Thecassette adapter kit includes aparallel interface kit fori nterfaci ng wi th thecomputer. Only a cassetedeck with an auxiliary outputor earphone plug and anoptional remote start/stopplug is required.

An ASCII keyboard is alsoavailable from RGS. Thiskeyboard and the cassettetape adapter are intended tointerface with the RGS 008Amicrocomputer, so adapta-tion would be a problem ifyou have some other make ofcomputer. RGS says that aserial interface is beingdeveloped for use withteletype, as well as a TVtypewriter.

Highlights

The 008A uses fewercomponents, compared toother 8008 systems I haveseen. The 008A computerstructure is basically similarto other 8008 systems, withone exception: The input/output structure is unusualfor an 8008 system. Insteadof the more common port

17

system capable of handlingonly 8 input and 24 outputdevices, the 008A uses a bussystem capable of handling256 bi-directional datainput/output channels. RGSuses several of the 8008chip's I/O channelsinstructions to set up this busI/O System.

There are four input/output instructions in the008A's "instruction set:"Select, Control, Input, andOutput. To select aperipheral, the device numberis loaded into theaccumulator and a selectinstruction is executed. Thisenables the peripheral device.If necessary, a controlinstruction is available. Uponits execution, theaccumulator data is madeavailable at the output andthe control strobe line ispulsed. Once the device hasbeen selected and initialized,data transfer using the inputand output instructions isexecuted as it is in the portsystem.

Each peripheral interfaceboard is jumper-wired for itsown device number. Whenthe device number of aparticular unit is selected,data transfer between theunit and the CPU is enableduntil another device numberis selected. When a controlinstruction is executed, theaccumulator data is placed onthe I/O bus. The interfacetransfers the data from thebus to the interface output.The control strobe line isthen pulsed. An outputinstruction also causes theaccumulator data to beplaced on the I/O bus. Theinterface transfers the data to

its output. This time theoutput strobe line is pulsed.On an input instruction, theinterface transfers data fromits input to the I/O bus. TheCPU then transfers the datafrom the bus to theaccumulator. The inputstrobe line is also pulsed.

The bus system has threebig advantages. The obviousone is the capabilityof handling up to 256devices. The secondadvantage is that each of the256 channels will performboth input and output. Thethird advantage is the abilityto send control instruction,thus eliminating the need touse an adjacent I/O channelfor device control.

Ready and interrupt lineexpansions may also bebrought out through theperipheral interface boards.

Assembly

Most of the circuitry iscompleted by soldering thecomponents on the variousPC boards. Although most ofthe PC boards are doublesided, components need onlybe soldered on one side sinceall holes are plated through.

Edge connectors areprovided for each plug-inboard. These connectors mustbe soldered on the backplane.Some 68 wires must besoldered between thebackplane and the controlpanel. The backplane andcontrol panel are fastenedback to back using spacers onlong machine screws.

The control panel, CPUboards, memory boards, andparallel interface boards are

double sided PC boards withplated through holes. ThesePC boards seem to be of goodquality. The backplane boardand the power supply board,however, are single sided andnot quite as good. Extremecaution must be used as thefoil patterns on these singlesided boards will lift withvery little excessive heatapplied.

Only about half the powersupply circuitry is includedon the power supply PCboard. A power transistor anda voltage regulator, both in aT0-3 case, must be mountedin a heatsink (supplied in kit)on a chassis which must beprovided by the builder. Thepower transformer, fuses,filter capacitors and powerswitch are also mounted onthe builder supplied chassis.All of these components mustbe point to point wired. Wiremust be supplied by thebuilder.

Documentation

The manuals andinstructions provided for the008A fall short. Anyoneplanning to write up anydocumentation in the futureshould take note of this anduse the criticismconstructively.

The assembly instructionsprovided for the 008A arebrief. The author of thedocumentation spent verylittle time on clarifications.Someone who has hadconsiderable experience inboth electronic engineeringand computer science wouldhave very few problems withthe 008A. However, if aproduct is made with the

intention of selling it toeveryone, the documentationshould be written to beunderstood by everyone. Thisincludes people who are notexperts in hardware orsoftware.

Much of the constructionhas to be done by followingthe component placementdiagrams and circuitdiagrams. A diagram of thefoil pattern line-up for doublesided boards should havebeen included in the 008Adocumentation. For easierreading, componentplacement diagrams should beblack components on a greyfoil pattern diagram ratherthan black on black.

The 008A documentationprovides only a briefdefinition of each softwareinstruction. No informationdescribing the circuitoperation of the CPU isprovided. A brief descriptionof circuit operation isprovided for the parallelinterface kit and cassetteadapter kit. Only a smallamount of information isprovided on the use andoperation of the computer.

Although the 008Adocumentation does includecomplete circuit diagramswith IC pinouts, absolutelyno troubleshootinginformation is included.Logic circuit troubleshootingcan be followed on the circuitdiagram after you havechecked wiring andcomponent placement, buttest points and voltagesshould be given on the powersupply. Test points andwaveforms should be givenfor devices such as a cassettetape adapter. Even in the

18

logic circuitry, a few majortest points and thespecifications wouldn't hurtanyone.

This author obtained histroubleshooting informationvia long distance calls toCalifornia. The cause ofseveral problems wasnarrowed down to aboutthree faulty componentswhich RGS cheerfullyreplaced free of charge.

A nice addition to theowners manual for those whomay assemble a 008A in thefuture would be a series oftest routines to verify alloperations of the computer.These routines should statespecifically, step by step,what is to be done and theresults of each step. Whenstarting up a computer forthe first time, it is sometimesdifficult to determinewhether a problem is in thehardware or the software,especially if you are notfamiliar with the machine inthe first place.

Software

The only difference in the008 A instruction set ascompared to other 8008based systems is theinput/output instructionformat as mentioned before.

Initial program loading isthrough the control panel.Startup is achieved by settingthe restart instruction on the8-bit binary switch registerand depressing the interruptswitch. As in other 8008systems, the first 64 words ofmemory are divided into 8program start-up locations.

Any single-byteinstruction will be acceptedby the CPU at any time whenthe interrupt switch isdepressed. Therefore, if youget your computer into aloop with no exit, set a haltor return instruction anddepress the interrupt switchto get out.

A software exchangeprogram is slowly gettingunderway for the 008A. Eachuser is asked to submit aprogram to RGS. Theprograms are compiled asthey come in, then sent outto each 008A manual holder.As of yet, exchange has beenslow. Ray Stevens, owner anddesigner, expects theexchange program to pick upsomewhat since the cassettetape adapter, ASCIIkeyboard, and some softwarefor each have recentlybecome available. Theavailable software (sent outto owners of the units) deals

with program loading andstorage necessary in thedevelopment of furtherprograms.

Conclusion

A generalized statementsummarizing the 008A scenewould have to be this: The008A is one of the mosteconomical systems on themarket, offering a nearlycomplete kit and softwareexchange program. RGSholds good potential forbecoming a healthy segmentin the growing world ofavocational computing. Butthere is some work yet to bedone.

In the meantime, if youare inexperienced in eitherelectronics or computerscience, you could run intodifficulties in assembling a008A. Those of us whoalready own a 008Amicrocomputer should workon building up the softwareexchange program to a pointof excellence. In the interestof obtaining a revised,updated, improved andrewritten owners manual, letme suggest that all 008Aowners send RGS a letterlisting changes andimprovements they wouldlike to see.

The 008A is one of themost econom icalsystems on the market,offering a nearlycomplete kit andsoftware exchangeprogram . .. But thereis some work yet to bedone.

19

Sweep the blow torch over the ICs pins-one complete sweeponce or twice a second.

RecycliUsed

ICs

n8

by

Carl Mikkelsen

35 Brookline St., No. 5

Cambridge MA 02139

The surplus market issaturated with used printedcircuit boards from earlycomputer systems whichoffer a very inexpensive perchip source of ICs. Usedboards typically contain50-200 chips of small scale ormedium scale integration,usually with many simple twoinput gates and four bit dataregisters. Common partnumbers include 7400, 7402,7404, 7408, 74126, 74174,74175, etc. Through carefulshopping, I have foundboards with large numbers ofmultiplexors such as 74151,74153, and even scratch padregisters - 7489. Afterremoving chips from theboards and eliminating anynon-functional units, cost perchip is from 3 to 8 cents,resulting in an overall cost ofabout one fourth to onetenth of the individual chipcost through other surplusoutlets.

Removing chips fromboards offers advantages overpurchasing chips surpluswhich makes them attractivefor reasons other than price.Primarily, the companieswhich originally built theboards used top-quality, fullyspec'ed components. Allchips have already beentested, and most have alreadyserved in equipment.

Given that you've found aserendipity of well solderedchips, it's necessary tounsolder them without eitherburning them or crackingtheir cases. Desolderingindividual leads can be done,but usually the chip is madeunnecessarily hot by theprolonged application ofheat. Also, pulling each lead

out separately results in bent,often broken leads. Devicesare available which will heatall 14 or 16 pins of a smallIC, but again a long time isneeded to melt the soldersince the total amount ofenergy available is limited toa small soldering pencilheating element. Mostavailable boards are two sidedand four layer boards aren'tuncommon. Multi-layeredboards make the requiredamount of energy evenhigher.

When a board is built, theICs are positioned in placewith all other components,and the board is soldered by athree step process.

1. The underside is washedby hot, bubbling, liquid flux.

2. The clean board ispassed over a small fountainof solder, so that the boardjust touches it.

3. After cooling, the boardis immersed in FREON gas toremove any remaining flux.

As you can see, the boardis su b jected to hightemperatures during thesoldering phase, which takesaround 5-10 seconds.

The blow torch method ofIC removal duplicates

conditions during boardsoldering by heating all pinssimultaneously; removing theIC is a single step.

Equipment Needed

To use this technique, you

will need:

A torch. Non-oxygenatedpropane and acetylene gas hasbeen used.

Clamps or a vise to holdthe board fairly rigid duringchip removal.

A way to grip the chips,depending on how they arepacked next to each other.Components, small vise grips,a small screw driver and a finepoint awl should be all thatare needed.

A place where splashedsolder will not be serious.

Some form of eyeprotection.

WARNING 1

Using this method involvesheating PC boards to hightemperatures. Some boardsrelease Hydrogen Chloride(HCI), which becomeshydrochloric acid in yourlungs. Do this only in a wellventilated area, and stop toallow air to clear if irritationdevelops.

20

Crip the IC a second after removing the flame and rock it away from the board. It should comefree in a couple of seconds.

m m

I

>»'»»> MM

■T

W

WARNING 2

When an IC is pulled froma board, the board oftensnaps back to its originalposition. This is especiallytrue if it isn't fixed veryrigidly in place. When theboard flips, solder is oftensprayed away from the backside of the board. I ruined apair of pants by notconsidering this before Istarted. I, therefore, wear oldclothes and if you don't wantsolder on the floor, cover itwith newspapers.

Enough warnings . ..following is how I pull ICsfrom boards:

First I clamp the board tomy bench so that I can getmy vise grips on about halfthe ICs (this is with a 10" x14" board). I adjust the visegrips so I can grip a 1 4 pin ICwithout the vise grips lockingand then light the torch. Theflame on my Benzo-matictorch with the narrow tip isabout an inch long.

Beginning with the lowestIC I can reach, I heat it withthe torch by sweeping thetorch over its pins (youobviously heat thenon-component side).Especially when using a torchwith a narrow flame it is

necessary to move the flameover the pins. One completesweep should be done once ortwice a second. After asecond or so, the IC shouldbe gripped, and rockingtension away from the boardapplied. It helps to rock theIC, especially if corner pinshave been bent over to holdthe IC in place duringassembly. The IC should veryrapidly become loose, and inanother couple of secondsshould come free of theboard.

When the IC is removed,quickly drop it on the benchand move the torch and pliersto the IC above the oneremoved. Heating the lowerIC pre-warms the boardabove, making the nextremoval easier. Also, theboard position just heatedwill cool faster, therebyreducing the amount bywhich the board will bedamaged.

As each column of ICs isremoved, the next is done.When all ICs on one half havebeen removed, reposition theboard so the other half isaccessible. I've found that thehalf-way point often can be agood excuse to let the roomventilate and drink a beer.

No matter how carefullyand rapidly I've worked, Ialways burn the board at leastonce because I have troubleremoving an IC, or my pliersslip, or for some other reason.If you consistently burn eachboard position, your flame isprobably too hot. If,however, it takes longer than5 to 1 0 seconds to remove anIC, your flame is too cool.

A certain amount of careis necessary when grippingthe ICs. Too much pressuremay crack them. Too littlepressure will let the pliersslip, costing time toreposition them and marringthe cases.

When attempting toremove the larger ICs such as74181s and 74154s, whichcome in 24 pin DIPs, I havetrouble gripping them, so Iremove them as a two stepprocess. First, I place an awlunder the middle of one side,say between pins 6 and 7. Iheat that pin row and, withthe awl applying leverage,pull out that row. I then gripthe IC on its thinnestdimension, heat theremaining pins, and removethe IC.

So far, by using thistechnique, my friends and I

have removed about 1 000 ICsfrom surplus boards whichhave about 80-100 ICs each. Itend to break 2% of the chipsI pull by applying too muchforce with the pliers. But afriend has never broken one,so it clearly is an individualmatter. Of those chipsremoved unbroken, we havetested around 250, and havenever found a bad chip.

As an unrecommendeddemonstration of theruggedness of ICs, Iaccidentally grosslyoverheated one, so that whenI gripped it in vise grips, thechip was bent in a curve. Theplastic case must havesoftened significantly. Afterallowing it to cool severalminutes to the point where Icould handle it by hand, Iplugged it into a circuit,expecting it to have failedtotally. It worked, although Ididn't check out its accharacteristics. Out of generalparanoiac distrust for a deviceso intensely mistreated, Idiscarded it.

After removing ICs fromboards it is usually necessaryto clean and straighten thepins. Boards with platedthrough holes often lose theirplating around the IC lead.

I have found this methoduseful as a means of quicklybuilding a stock of ICs readyto use in any project. It islimited mainly by theavailability of exotic surpluschips, but most standard7400 series TTL is easilyavailable. The price of 4cents/chip can't be beat, andthe time required — about 10to 20 minutes/80 chip board— is rather small.

This technique provides afast, cheap, safe means ofremoving chips. I hope itproves as effective for you asit does for me.

21

SERIAL

We all knowmicrocomputers use paralleldata for internal operations.Computers - mini, micro ormaxi - are often specifiedwith the "bus data width" asa key parameter. This is thenumber of parallel bits whichparticipate in operations atone time. Typicalmicroprocessors nowavailable have bus data widthsof 4,8,12, or 16 bits. If youemploy a used minicomputerin your system you mayenjoy a 12,16,18, or 24 oreven 32-bit wide bus. Whenshuffling data to or frommemory and peripherals, theparallel lines of the bus aredefined simultaneously - andyou have to run at least asmany physical wires to eachinterfaced subsystem.

When wire is at a premiumyou can get by with only onechannel if the data is sent in atime-ordered sequence, onebit at a time. Communicat-ions and peripheral interfacesthrive on diets of serial bitsprovided the speed isrelatively low.

In this article, DonLancaster provides us with anexcerpt from his forthcomingbook, TV TypewriterCookbook, to be publishedby Howard W. Sams,Indianapolis, Indiana. Dondescribes the basics of parallelto serial conversion and itsinverse, using UARTtechnology to do thetransformation. His articlethis month concerns UARTsand serial interfaces which are

relatively self-contained -local wires, tape recorders,etc. He also covers thecommunications aspects ofserial data...radio andtelephone network modemhardware.

While Don wrote thearticle from the point of viewof the TV Typewritertechnology which hepioneered, the problems hediscusses are just as applicableto the home brew computercontext.. .simply read"computer" every time yousee TVT in the text. Don'scomments on the serialcassette interface will provideone input to the discussion ofvarious possible recordinginterfaces in the pages ofBYTE.

. .. CARL

by

Don LancasterBox 1112Parker AZ 85344

Most TV typewritercircuits need all their ASCIIcharacter and command bitssimultaneously available inparallel form. This is also trueof most electronic keyboardencoders and thebidirectional data buses ofmany minicomputers andmicroprocessors. In simplesystems, we can connect allthese parallel sources andloads together as neededwithout any further interfacecircuitry.

Sometimes, it's far moreuseful or convenient to havethe bits march by one by onein serial form. While serialform is much slower, it hasone big advantage — only asingle wire or com-

munications channel isneeded, instead of multiplesignal lines. Another benefitof serial form is that it can bemade slow enough tocommunicate over ordinaryphone lines, cassette tapes,radio channels, orelectromechanical teletypesystems. Some of the placeswhere we'd like to use serialtransmission are:

Remote Keyboards, wherea single pair interconnectiongets used instead of expensivemultiple conductor cable.

Teletypes, where the bitshave to be converted tosignals based on current or nocurrent in a wire loop.

Industry Standard

Interfaces, such as theRS232-C and the newerRS422 and GPIB, allowingsignals to travel relativelylong distances.

Cassette Recorders, wherewe can store and exchangecharacters and programs withproperly designed singlechannel, speed independentcircuitry.

Radio Transmission, whereonly two tones on a singletransmitted frequency areoften used. This is typical ofham RTTY.

Modems, or Modulator-Demodulators that let usexchange data over thetelephone line, either oneway, or both ways at once.

We can call the circuits

22

INTERFACE

that get us from parallel toserial and back again serialinterface. Usually, there aretwo distinct parts to theinterface problem. The first isto convert from parallel toserial (or vice versa) at logiclevel, staying compatible withCMOS or TTL integratedcircuits. This is often done inan industry standard singleintegrated circuit called aUART, short for UniversalAsynchronous ReceiverTransmitter. UARTs willsimply and cheaply do theconversion and back again,along with providing all thenecessary housekeeping bits,control signals, and noiseimmunity provisions.

The second portion of ourconversion process gets usfrom logic levels to whateverform of signal the serial partof the system uses — such asdc currents for teletypes,bipolar signals for standardinterface, and carefullyselected tones suitable forcassette recording ortransmission over a radiochannel or a phone line. We'llbe taking a detailed look atmost of these techniqueslater.

How Fast?

There are two basic typesof serial transmission we canuse, synchronous andasynchronous.

In synchronoustransmission, all thecharacters (called "words")are locked into systemtiming. We know the exacttime position of each piece ofdata. If some time is to go bywithout doing anythinguseful, do-nothing wordscalled nulls are provided.Timing signals must somehow

be supplied to each end of asynchronous serial datasystem so we can tell wheneach word is to start. Thisusually means a separatetiming channel or track orsome sort of elaborate timingrecovery circuit. Synchronoussystems are usually fast andcomplex, but they are rarelyused in most TV Typewriterapplications.

With asynch ronoustransmission, the data wordsare not locked into systemtiming and can arrive withalmost any spacing betweenwords. To tell the beginningand end of a word, we haveto add some new bitgroupings, called start andstop bits, to the data. Wedon't have to provide anyother locking signal betweenthe source and destination of

common Baud rates. Themost popular of these include110, 300, 600 and 1200 bitsper second. 1200 BPS isusually the fastest that can behandled by the phonecompany without fullydedicated lines. Insidesystems, and where speciallines can be provided, fastersynchronous standard Baudrates of 2400, 4800 and 9600bits per second may be used.

Should the Baud ratechange between transmissionand reception, such as whentwo recorders are used, or thebatteries on one recorder age,the receiving end of thesystem has to be able toadjust itself to the neweffective Baud rate if errorsare to be avoided.

110 Baud is very popularfor limited speed TV

Serial Uses

Remote keyboardsTeletypes

Cassette recordersModems

Fig. 2. Standard serial communications speeds.

BAUD

TELETYPE

DDD PHONE

RATE

TYPE

COMPATIBLE?

COMPATIBLE?

110 BPS

Asynchronous

YES

TWO WAY

300 BPS

Asynchronous

NO

TWO WAY

600 BPS

Asynchronous

NO

ONEWAY

1200 BPS

Asynchronous

NO

ONEWAY

2400 BPS

Synchronous

NO

NO

4800 BPS

Synchronous

NO

NO

9600 BPS

Synchronous

NO

NO

FRAME UPDATE TIME TO LOAD

COMPATIBLE? 512 CHARACTERS

YES 51.2 SECONDS

YES 18.7 SECONDS

MAYBE 9.3 SECONDS

NO 4.6 SECONDS

NO 2.3 SECONDS

NO 1.2 SECONDS

NO 0.6 SECONDS

the data. Asynchronous datais commonly used in TVTsystems.

Both ends of a serialtransmission system have toexactly agree on a systemspeed, usually called the BaudRate. The Baud rate is simplyhow many bits per second aregoing to be transmitted,including any start and stopbits. Fig. 1 shows us some

Typewriter uses. This rate iscompatible with the ASR-33eight bit Teletype code andcorresponds to a 100 wordper minute typing rate. Whilethis is the fastest that mostteletypewriter systems can bedriven, and is easily handledby two-way 103 style phonemodems, it takes painfullylong to fill the screen. Evenwith a 512 character screen,

23

THE START BIT ISALWAYS A ZERO

THE STOP SIGNAL IS ALWAYSAT LEAST TWO ONES

—V-

\

(NEXT WORD)

—V

STARTBIT'0"

ASCIIBIT

I

ASCII

BIT

2

ASCII

BIT

3

ASCII

BIT

A

ASCII

BIT

5

ASCII

BIT

G

ASCIIBIT

7

ASCII

PARITY

BIT

STOPBIT

"I"

STOPBIT

-9.09mSEC (TYPICAL) lOOmSEC

"A

STARTBIT"0"

ANY AMOUNT OFTIME CAN PASSBETWEEN WORDS

Fig. 2. llOBaud, 100 word per minute code. "0" is a space or an open line. "1" is a mark or a shorted line.

UART = UniversalAsynchronous ReceiverTransmitter

RTTY =

Teletype

Radio

TVT = TelevisionTypewriter

it takes 51.2 seconds, oralmost a minute to load orretransmit the screen.

300 Baud is equal to 30characters per second or 300words per minute. This rate isthe fastest normally used by atwo frame update cursorsystem. It is also a rate easilyhandled by a cassetterecorder, and by manytwo-way or full duplexmodem systems. About 18.6seconds are needed to load ordump a 512 character screen.These frame update andretransmission rates can beminimized by using a"virtual" update where onepage is viewed while the otheris updated, and by creativeuse of carriage returncommands to return after thelast character of each line,rather than going on out tothe end of the line.

Faster Baud rates usuallytake more in the way ofcircuit design, and are usuallylimited to one-way modemtransmission, premiumrecording techniques, and aDirect Memory Access typeof update in the TVTypewriter.

A 110 Baud Standard

The 110 Baud, 100 wordper minute code is anindustry standard for slowdata e xc hange. 11 iscompatible with the Model33 and Model 35 Teletypesystems, and otherteleprinters using an 8 levelcode. The code takes 100milliseconds to send acharacter. The next character

can follow immediately orcan be sent any time later.Fig. 2 shows us the standard.

The original Teletypenotation still carries over tothis code. A Mark is a digital"1", a shorted line, or acompleted connection. ASpace is a digital "0", anopen line or a brokenconnection. Between words,the teletype line or digitaloutput is constantly puttingout "1"s or marks, and isthus marking time. One ofthe reasons this was originallydone was so that any break incommunications isimmediately known.

There are eleven bits tothe code. Each bit is anidentical 9.09 millisecondslong for a total code time of100 milliseconds per word.Each word begins with a startbit. The start bit is always azero and tells the receivingcircuitry that a new characteris to begin. The start bit isessential since some ASCIIwords will begin with one ormore "1 "s and there is noway to tell a marking time"1" from a "1" bit in anASCII character code.

The ASCII bits follow insequential order, starting withbit B1 or the least significantbit. After the seven characterbits, an eighth bit is senteither as a "1" or providing aparity check bit for the restof the word. At least twostop bits must follow theword. The stop bits are "1"sor marks, and any number ofadditional marking "1"s canfollow between characters.

The stop bits give thereceiving circuitry a chance toshut itself down and await anew word.

The receiver can beelectronic in the case of aUART or electromechanicalin the case of a teletype.Between words, the receiverjust waits. Since the datatransmission is asynchronous,the receiver has no way ofknowing ahead of time whena new word is to arrive, so ithas to wait for a new start bitbefore it can do anything.The arrival of this bitactivates the receiver, which "then goes through asequential procedure thatsorts out the bits, puts themin parallel form, and outputsthem.

With a UART, sequentialtime intervals of 9.09milliseconds each areelectronically generated andthe center of each intervalwindow is tested against theincoming code to see whethera "1" or a "0" is received.These are accumulated in ashift register, error tested,and output as a parallel wordat the end of the interval. Thestop bits are used to reset andshut off the circuitry.

With an electromechanicalteletype, the break in linecurrent caused by the stop bitreleases a one-turn clutch ona mechanical scanningcommutator that goes oncearound in 100 milliseconds. Itsequentially routes theincoming code to a group ofscanning solenoid magnets.These set up the code inparallel form, and at the endof the word, the scannerresets and the code is typedor output on paper tape.

Tolerances

It's extremely importantthat both the transmitter andreceiver are clocking bits outat the same 9.09 millisecondrate, and that nothinghappens in the channel tospeed up or slow down thebits. There are many possiblesources of error. If the bit

24

positions jitter around or aredifferentially delayed to byany tone keying, the filtering,or channel response, we get abias error. Bias errors putindividual bits ahead of orbehind where they actuallybelong. One source of bias ina two tone modem or cassettesystem occurs when one toneis delayed more than theother in any filtering circuit.This is called the group delaydistortion problem.

If the basic transmissionand reception rates differ sothat the bits can get ahead ofor behind where they'resupposed to be, we have askew error. Note that biaserrors apply to individualbits, while skew errors areprogressive, making eachsequential bit decision thatmuch more difficult to detectwithout error. We get a skewerror if there is an absolutetiming difference betweentransmitter and receiver.Cassette recording systemsintroduce a potential skewerror if the record andplayback rates differ. Thiseasily happens with cheaperunits susceptible to speedvariations with batteryvoltage, and almost isinevitable if the recording isdone on one machine andplayback on a second.Recording skew errors arecorrectable if the recordingsignals are designed to includespeed information, and thereceiver is capable of usingthis information to speed upor slow down as needed toeliminate this error source.

How accurate do we haveto be? This is easy tocalculate. Assumetemporarily that there arezero jitter and zero bias errorsin the channel, and that weare using an electronicreceiver that very narrowlysamples for valid data. Thelast data bit we are interestedin is the parity bit. The centerof the parity bit is 8Vt bitsremoved from the beginningof the start bit, a delay of77.26 milliseconds. The

receiver delay is alsosupposed to be 77.26milliseconds. If our samplingis narrow enough, we can beup to just under half a bitslow or fast and still be ableto read the parity bit withouterror. This corresponds to atime error of 4.53milliseconds either way, orslightly over 5%.

But, this figure leaves noroom for bias and jitter errorsand doesn't give the slowerelectromechanical circuitsenough time width to reliablyrespond to the incoming data.As a practical rule, thereceiver and transmitter bittimes must match to wellwithin plus or minus onepercent. It is absolutelyessential to hold things thisclose for low-errorcommunications.

A 300 Baud asynchronoustiming system is very similarto Fig. 2 and uses the sameeleven bit code of equallyspaced bits. The onlydifference is that the per-bittime is 3.33 milliseconds,corresponding to a 300 Hertzclock rate. Optionally, only asingle stop bit may be used.This rate is cassette and TVTypewriter compatible andmay be used for full duplex(two way) operation in mostmodem circuits, but it is toofast for teletype use.

Using UARTs

Parallel to serialconversion and back againcan obviously be done withCMOS or TTL circuits.Basically, you parallel load ashift register and seriallyclock out data or seriallyclock in data to a shiftregister and then latch itsparallel outputs when thedata is valid. By the time youadd all the error testingcircuitry, housekeeping bits,synchronization, and so on,the circuits tend to getspecialized and complex.

Instead of this route, youcan use an industry standardMOS integrated circuit calleda UART for virtually any

serial to parallel conversionand return process. Severalpin compatible UARTsappear in Fig. 3. These aregeneral purpose,programmable devices that letyou select the number ofstart and stop bits, the wordlength, type of parity, and soon to suit your particularsystem. Dedicated UART-likedevices are also available foruse with specificmicroprocessors. The Intel8201 and the Motorola 6850are typical of these.

The standard UARTcomes in a 40 pin package,and has supply voltages of +5routed to pin #1, -12 to pin#2, and ground to pin #3.The later versions of thesedevices are N channel typesthat need no -12 supply, and

Fig. 3. Pin compatible UARTS.

S1883 (American Microsystems)AY-5-1012 (General Instruments)2536 (Signetics)

COM2502 (Standard Microsystems)TMS6012 (Texas Instruments)TR1602 (Western Digital)

that pin is left unconnected.The General InstrumentsAY-5-1 014 is one of these.

The low number pins(1-20) are the receive portionof the UART, while the highnumber pins (21-40) are thetransmit portion. Except forcommon word length andparity programming, the twohalves of the circuit areseparate, although they oftenare used as a send-receivepair.

Both the receiver andtransmitter portions of thecircuit need a clock. Theclock frequency is usuallysixteen times the Baud rate.This high frequency lets theUART do things like samplethe center of each datainterval and recheck for validstart signals and similar goodthings. For instance, a 110

25

Fig. 4. VART circuit to transmit code of Fig. 2.

I6XCLOCKINPUT O-1760 Hz(NO BAUD)4800Hz(300BAUD)

ASCII PARALLEL INPUTMSB 6 5 4 3 2 LSB

o o o o o o g

KPSEND

SI

TOPVIEW

+ 3 -12

RECEIVERCONNECTION

Baud circuit needs a clock of1760 Hertz, while a 300 Baudone uses a 4800 Hertz clockand so on.

The clock signals can bederived from a CMOS or 555type of astable oscillator, butit is far better to digitallyderive clock frequencies fromTVT system timing oranother stable source.Remember these clock signalsmust be held to well withinone percent and ideallyshouldn't have anyadjustments. If our TVT has a15,840 horizontal rate, wecan divide this by nine toexactly get 1760 for a 110Baud system. With a 15,720rate, we get 1746.6 Hertz, afigure a bit low, but stilluseful and less than onepercent under.

The receiver andtransmitter clock inputs areon separate pins. They areoften tied to a common clocksource in simple send-receivecircuits. One importantexception is when a UART isused as part of aspeed-independent cassetteinterface. In this case, thereceiver clock frequency isderived from the tape duringplayback. While it isnominally the same as thetransmitter frequency, itsexact value is set by speedinformation recovered fromthe recorder. This can be usedto eliminate much of the

skew error that wouldnormally result from a changein tape speed from time totime or machine to machine.

Fig. 4 shows us theconnections for transmissionof the 11 unit code of Fig. 2.The input ASCII code goeson pins 26 through 33, withthe least significant or b1 biton pin 26. A 16X clock goesinto pin 40, and a KP sendcommand goes to pin 23. Theleading edge of this sendcommand starts transmission,but the input data must bevalid for the entire time thecommand is positive.Normally, this is a narrowpulse a few milliseconds wide,derived from a keypressedcommand on a keyboard.Serial output data appears onpin 25.

Pins 34-39 program theUART for different bitlengths and codes. 34 is anenable that normally remainshigh. Pin 35 provides a paritybit if it is grounded and omitsone if it is high. Pin 36 picksthe number of stop bits.Ground gives you one andhigh gives you two. 37 and 38together decide how manydata bits are to be sent,ranging from 5 to 8. Bothgrounded provide for 5 databits, useful for Baudot RTTYtransmission. The connectionshown gives us a seven bitdata word. Note that if youuse the parity bit, it adds to

the number of data words.The code of Fig. 2 uses ourstart bit, seven data bits, oneparity bit, and one stop bitfor an eleven unit code. Pin39 picks even or odd paritywith ground giving oddparity. An optional resetinput is provided on pin 21.It is normally grounded.Bringing it high resets theUART. Without resetting, thefirst word transmitted afterpower is first applied can bewrong.

The UART transmitter isdouble buffered. This meansyou can load a new characteras soon as the one alreadyinside begins its transmission.Two optional outputs areprovided. Pin 22 tells youwhen it is OK to provide anew character by going high.Pin 24 tells you that acharacter has beencompletely sent when it goeshigh.

There are two ways youcan use a UART transmitter,either unconditionally orhandshaking. In theunconditional mode, anytime a character arrives, itgets sent. This is the simplest,but you have to makeabsolutely certain thatcharacters don't arrive spacedor grouped too closelytogether. While pairs ofinputs can be closely spacedmuch the same way that twokey rollover works in akeyboard, you have to beabsolutely certain that thelong term average is neverexceeded by the word rate ofthe UART. This means a 100millisecond character spacingfor 110 Baud, and aroundone third that for a 300 Baudsystem. In the handshakingmode, the UART decideswhen it wants to receive anew character, using the pin22 and 24 outputs. Circuitsdriving the UART are set upto provide characters onlywhen they are asked forthem. For most TVT uses,unconditional UARTtransmission is simpler andeasier to use.

28

Fig. 5 shows us the UARTreceiver circuit, again set upfor the code of Fig. 2. Thereceiver logic has elaboratenoise elimination provisions,made possible by the sixteentimes higher clock frequency.Whenever a start bit ispurportedly received, that bitis retested later and verifiedto prevent a random noisepulse from generating anunwanted character output.All data bits are narrowlysampled in the middle oftheir possible time slots,allowing considerable biasand skew distortion to existwithout error.

The same pin 34-39 inputsthat programmed thetransmitter's word length andformat identically program

Baud rate, applied to pin 17.In send-receive systems, wecan often tie the receiver andtransmitter clocks together.In speed-independent cassetteinterface circuits, the receiveclock is reconstructed fromspeed information recoveredfrom the recorder toeliminate skew errors.

The serial input is routedto pin 20 and converted tothe equivalent seven bitparallel ASCII output on pins6 through 12, with the leastsignificant bit on pin 12.When the output is valid, astrobe on pin 19 goes high asan output.

This output strobe mustbe reset before a newcharacter can be output. Ifwe're operating in a

invert it, and reapply it to thestrobe reset input pin 18. Fig.5 shows us one way to do thiswith a RC network and aCMOS inverter. Many UARTreceiver problems are causedby failing to reset the strobeafter each character — watchthis particular detail veryclosely.

Several additional outputsare available for use in fanciersystems. Parity, framing, andoverrun errors producerespective high outputs onpins 13 through 15. Thesecan be used to ask for arepeat or put in a questionmark to indicate atransmission error. Allreceiver UART outputs aretri-state and may be floatedin systems where the UART's

Fig. 5. UART circuit to receive code of Fig. 2. Parity, word length, and stop bits set by transmitterprogramming, pins 34-39.

ADDITIONAL CIRCUITNEEDED FORUNCONDITIONAL OUTPUT

IN9I4(19) ■ w»-

I00K

TRANSMITTERCONNECTIONS

.01

4049(CMOS)

I6X CLOCK1760 Hz (110 BAUD)4800 Hz (300 BAUD)

6 6 6 6 6 6 6

MSB 6 5 4 3 2 LSBASCII PARALLEL OUTPUT

IS

JL

NEXT

CHARACTER

ENABLE

CHARACTERRECEIVED

the receiver portion of theUART. Although the receiverand transmitter can be usedin totally different circuitsand at different baud rates,they have to operate with acommon format, set by thesepins.

The receiver needs its ownclock of sixteen times its

handshaking mode, the TVTcircuitry accepting thecharacter sends back anacknowledgement orcompletion signal thatmomentarily drives pin 18low. If we are using anunconditional output mode,you somehow have to delaythe pin 19 strobe output,

outputs must share acommon or a bidirectionaldata buss. Making pin 4positive disables the ASCIIoutputs, while making pin 16positive disables the erroroutputs.

Besides its usual use as atwo way serial to parallelconverter, there are other

27

useful circuit tricks you cando with a UART. Forinstance, by connecting theparallel outputs of thereceiver back to the parallelinputs of the transmitter, youcan change Baud rates. This ishandy in speeding up slowdata for use on a fast channel,and for correcting speederrors on cassette systems.

If the UART is to acceptdata from several sourcesyou can either tri-statecombine the sources onto asingle input buss, or else usean input eight pole, doublethrow selector switch to pickone of two input channels.This is common in TVTservice, where the keyboardforms one channel and thescreen retransmission outputbuss forms the other. 4502hex tri-state drivers or 4019four pole selectors aresuitable CMOS devices to use.In general, tri-state lines ontoa common buss are muchpreferable to selectors, butfew keyboard encoders haveinherent tri-state output, andthe output buss on the TVToften has to continously drivethe display if we want to viewthe retransmission process.

Teletype Interface

There are two commontypes of teletype systems inuse today. The older type isthe five code bit machine,typical examples of which arethe Teletype model 28, theCreed model 75, and variousKleinschmidt models. Whilethese machines are com-mercially obsolete, theystill see usage for ham RTTYand some deaf communi-cations systems. Theirreasonable price availabilitymakes them attractive forhome computer hard copy aswell, although the availablecharacter presentation isextremely limited. Theseolder machines all use themore or less obsolete Baudotcode and are not directlyASCII and TVT compatible,unless conversion ROMs and

figures-letters logic is addedto them. We'll note in passingthat a UART may be used inthe Baudot code by applyingthe code to pins 26-30 withthe least significant bit on pin26, and making pin 35 highand grounding pins 37 and38. Older UARTs willgenerate two stop bits, whilemore recent ones (such as theTR1602B) will automaticallygenerate the needed 1.42 stopbits in this mode.

The second common typeof machine is the computerand timesharing standardteletype — the Teletypemodels 33 and 35,particularly the ASR-33.

Reception reverses theprocess. A momentary breakrepresenting the start bitreleases a once-aroundcommutator that distributesthe code breaks to magnetswhich set up a pattern forprinting when the scan iscomplete.

Fig. 6 shows us theinterface for a Model 33teletype. For optimum use,the teletype is internallyprogrammed to a 20milliampere current loop andfull duplex operation. This isdone following the teletype'smaintenance manual. Fullduplex operation means thatthe keyboard and printer

from the UART is read as a"1" by the teletype. Be sureto observe the line polaritiesshown. The transistors can bealmost any medium power,reasonable gain devices. Moreinformation on teletypeinterface appears in the IntelMCS-8 Users Manual.

Similar current-no currentinterface loops can be usedwith older teletype systems.However, some of thesemachines need substantiallyhigher currents and arenotorious as transient andground noise generators. Withthese older machines, totalisolation is stronglyrecommended, using small,

Fig. 6. UART-teletype (ASR-33) interface. Teletype must be internallyset to 20 mA loop current and full duplex operation.

PWR SND

RCV

ASR-33OUTPUTTERMINALS

-0 + 5

+ 5o

DATATOTTYFROM UART

2N2222

4049(CMOS)

-12

These use a standard eight bitASCII code and follow theformat of Fig. 2. They aredirectly compatible with TVTsystem coding.

Either type of system isbased on breaking current ina dc loop. This current isoften either 20 or 60milliamperes. Transmissionoccurs when a mechanicallycoded commutator generatesan output code byonce-around breaking thecurrent as often as needed.

aren't connected to eachother. The keyboard can sendand the printer receive bothat the same time.

The transmitter interfaceprovides a 20 milliamperecurrent for a mark or a oneand an open circuit for aspace or a zero. The receiversenses a closed contact for amark or a one and an opencontact for a space or a zero.Extra inverters are added asshown to make the codescorrespond so that a "1"

DATA FROMTTY TOUART

high speed reed relays or elseopto-isolator circuits.

With any teletype system,the transmit Baud rate of theUART must match the needsof the teletype to within onepercent. In the case of theASR-33, a 110 Baud rate isneeded, resulting in a 16XUART clock of 1760 Hertz.

Industrial Interface

There are presently quite afew "standard" interfacesused to get between

28

Fig. 7. Industrial interfaces for cable interconnections.

(NATIONAL)1/4 LM I486

(NATIONAL)I/4LMI489

WW"//'*-''

^-3V

+ 3V ' ' rt-

■fc

ST"

1/4 LM 1489

fa) RS232-C

ENABLE

^

400pFI/4LMMB8

ENABLE

H2mA

///////// l/2 75108

'//////// 0mA (TEX. INST)

2 ,2mA 'N=££=

IT /• M BALANCED L n.

(■

1/2 75108(TEX. INST)

ENIN

(b) RS422

y////////.z

2.4V E%BLETJ3>

8VOV

LINE

J

I/4MC3440(MOTOROLA)

(C) GPIB

0'»"

■ J*

1/4 MC3440(MOTOROLA)

commercial modems,printers, test equipment,computers, and anywhere elseyou need a reasonabledistance, noise free interface.Three of the most commoninclude the RS232, theRS422, and the GeneralPurpose Interface Buss orGPIB. Fig. 7 shows us what'sinvolved in the way of signallevels and inter facetechniques.

RS232-C is an old EIAstandard that predates ICtechniques and is somewhatunwieldy. It is widely used in

commercial modem circuitsand for most large scalecomputer serial interface. Thesignal is bipolar, with a logic"1" being defined as+3 to+9volts or more and a logic "0"being defined as -3 to -9 voltsor more. Capacitors on thedrivers limit risetimes to 30volts per microsecond or lessto minimize ringing andtransient effects. Capacitorson the receivers limit theresponse as needed to rejectnoise but pass the highesttransmitted Baud rate. The1488 and 1489 integrated

circuits form a typicalinterface pair.

RS422 is a newer EIAstandard that uses balancedtransmission lines anddifferential current sensing toeliminate any common modenoise. A current, typically of6 to 12 milliamperes in onedirection, defines a "1",while the reversed currentdefines a "0". The balancedline may be used either singledirection or bidirectional,depending on how thereceiver enables are used. Inany bidirectional or party line

system, it's extremelyimportant to enable only onedriver at a time. The 75108and 75109 are typicalbalanced line drivers andreceivers.

The General PurposeInterface Buss or GPIB usesTTL compatible levels, butcombines them with aterminated line, high drivecapability, and receivers withhysteresis for good noiseimmunity. The GPIB is mostoften used in parallel form tointerface test and measuringequipment with computersand calculators. It can also beused as an effective serialinterface that takes no specialpower supplies. The 3440 is aquad bus transceiver usefulfor GPIB service.

More information on EIAstandards are available fromthe Electronic IndustriesAssociation, 2001 Eye St.NW, Washington DC 20006,while information on theGPIB interface is availablefrom Hewlett Packard, 1501Page Mill Rd., Palo Alto CA94304.

Cassette Interface

Magnetic storage in theform of tape drive, disc files,and floppy discs have longbeen a standard andexpensive way of storing bulkserial data for computer use.An obvious and extremelylow cost substitute for thesewould seem to be theordinary audio cassetterecorder. Besides providingbulk storage, the cassette canreplace paper tape andpunched cards, and handleprograms as well. One bigadvantage of cassettes ispotentially low costduplication and distributionand exchange of programs.

Cassette recorders presentseveral serious designproblems when used forstorage of digital data. Even aquality machine will vary itsspeed by a percent or more,and the machine to machinevariations, particularly onlower cost units, can farexceed the amount of skew

29

Fig. 8 Speed independent cassette standards.

110 BAUD (CODE PER FIG. 2)

ARK = 1 = 16 CYCLES OF 1760 HZSPACE = 0 = 8 CYCLES OF 880 HZ

300 BAUD (FIG. 2 CODE WITH 300 HZ BIT RATE)

MARK = 1 = 16 CYCLES OF 4800 HZSPACE = 0 = 8 CYCLES OF 2400 HZ

600 BAUD (FIG. 2 CODE WITH 600 HZ BIT RATE)

MARK = 1=8 CYCLES OF 4800 HZSPACE = 0 = 4 CYCLES OF 2400 HZ(clock doubling required)

distortion the code of Fig. 2can stand — if the receiverUART is running at aconstant clock rate. Some ofthe techniques used to senddata over modems and radiochannels will work with asingle, quality recorder, butthese circuits are far from

optimum as they have no wayto compensate for recorderspeed variations. Similarly,many of the standardcomputer tape recordingtechniques may work, butthey are based on a differenttype of recording head andsystem — one that works withpulses, saturated fluxchanges, and sense amplifers,rather than one that recordsand plays back sine wavesmore or less linearly.

An ideal cassette interfacewould handle any machineand provide for machine tomachine variations. We'd alsolike to supply someprotection against dropouts,perhaps in the form ofintegration or multiple votingon what constitutes a one ora zero. A low cost, simplesystem using a single supplyvoltage and a minimumnumber of non-critical

adjustments is obviouslydesirable, particularly if thesystem can be very tolerantof recorder levels andsettings, and need no exoticcodings, preambles or otherlimitations.

We can base such a speedvariation tolerant or "speedindependent" system on aunique property of theUART. For every receivedone or zero bit, the UARTneeds exactly sixteen receiverclock pulses. By designing astandard so that sixteencycles of clock are recoveredfrom a one recorded on thetape, and sixteen cycles ofclock are recovered from azero on the tape, the UARTwill always receive just theexact number of clock pulsesit needs per one or zero. Tapespeed variations of plus andminus 30 percent or moreshould be possible.

Fig. 9. Speed independent cassette interface. Values shown for 300 Baud rate. Recorder speed may vary±30%.

(a) Record circuit.

DATAFROMUART O-

TRANSMITTER

+ 5 o-

400I(CMOS)

LOW=tIHIGH=v2

O^O

33K

-vw-

UART

TRANSMITTER O

CLOCK

(MUST HAVE REASONABLEDUTY CYCLE)

.001

TO

RECORDER'AUX? INPUTo

(b) Playback circuit.

.022

FROMRECORDER ■*""■ |0K

"EAR" O j\ wv

OUTPUT

IN9I4

f RECEIVE CLOCK

TO UART

RECEIVE DATA°TO UART

0,+5 SUPPLY

30

Fig. 8 shows us a set ofstandards for speedindependent cassetteinterface. All three standardsare based on the code and bittiming of Fig. 2. A 110 Baudstandard records 16 cycles of1760 Hertz for a one andeight cycles of 880 Hertz fora zero. The 300 Baud version,which is recommended formost uses, records 16 cyclesof 4800 Hertz for a "1" and8 cycles of 2400 Hertz for azero. A 600 Baud version canbe based on the 300 Baudstandard by halving thelength and doubling the clockrecovery.

Fig. 9 shows us the 300Baud circuitry involved, alongwith the key waveforms ofFig. 10. Even including the$5 to $10 cost of the UART(usable elsewhere in the TVTanyway), the circuit isextremely simple, non-critical, and cheap.

Fig. 9A shows the recordcircuit. As usual, a UARTtransmit clock of 16 timesthe Baud rate must beprovided. For recorder use,the duty cycle of this clockmust be stable and nearly50%. Note that the UARTserial data will always changesynchronously with theUART clock, after a briefpropagation delay. Clock andData from the UARTtransmitter are sent to a gateand flip flop that divides theclock by two if the data is azero and divides by one if thedata is a one. This is done byresetting the flip flop abouthalf way through a clockcycle if the data is a "1". Weget sixteen clock frequencycycles with a "1" and eighthalf clock frequency cycleswith a "0". Since the inputsare synchronized, there areno transient problems, and allcycles are full length. Thisoutput is 10:1 attenuated andmoderately filtered to roundthe rise and fall times. Thisprevents excess peaking ofthe high frequencycompensation inside therecorder. The output is

capacitively coupled to therecorder AUX input.

The receiver gets its signalfrom the recorder EARoutput. This signal is highpass filtered and doublylimited, first by a pair ofdiodes and then by a CMOSop amp. This particular opamp lets you run the inputsat the same voltage as the"negative" supply. If you usea standard op amp here,you'll need either a negativesupply or positive input bias.

nothing for each one. Theleading edges of these outputsare sensed and shortened to25 microseconds, and thencombined with the input 25microsecond pulses. Theresult is 16 clock pulsesrouted to the UART receiveclock — either sixteen fromthe data for a one, or eightfrom the data and eight fromthe monostable for a zero.

The monostable's outputalso goes to a flip flop torecover the data. We get a

Fig. 10. Key waveforms of speed independent cassette interface.

LilMnJlMJ^^

(A) RECORDED a RECOVERED SIGNAL

+5O

25/iSEC PULSES

(B) MONOSTABLE TRIGGER

(C) MONOSTABLE OUTPUT

(D) RECOVERED DATA

UTRrLnjTrLru- ^ p

O+ 5

O

I "

(E) DELAYED 8 INTEGRATED DATA

(F) RECOVERED CLOCK

A CMOS gate following theop amp improves the rise andfall time.

The gate's output isshortened and generates apulse that lasts for 25microseconds or so, coin-cident with the positive edgeof the transmitter clock. Thistrips a negative recoverymonostable set to two thirdsthe period of the lowerfrequency clock. If a string of"1 "s is received, themonostable keeps on beingretriggered and never dropsits output. If a string of "0"sis received, the monostabledrops its output for the finalone third of each cycle. Thenet result is that you get atrain of 8 negative goingpulses out for each zero and

MM -H -H 41 M Vi 4\

^— EFFECT OF SPEED VARIATION

+ 5- O

-+3

"1" out of the first flip flopwhenever 16 cycles of highfrequency data are receivedand a zero whenever 8 cyclesof low frequency data arereceived. The second flip flopintegrates the output of thefirst one to eliminate anynoise pulses and to take anaverage of several sequentialones or zeros beforeproviding an output.

As the tape speeds up orslows down, the input squarewaves will also speed up orslow down. The monostable'soutput can absorb almost a33 percent increase (fromhalf to 2/3) of the highfrequency clock period, or a33 percent decrease (from 1to 2/3) of the low frequencyclock period without error.

31

Oddly enough, thoughthe circuit will workwith poor qualityrecorders, the tapequality should be good— bad tape means baddata.

The spacing of alternate zeroclock pulses to the UARTwill change as the speedchanges - but the UARTdoesn't care about this solong as the clock pulses don'tactually overlap. This jitter isautomatically eliminated bycircuits inside the UART.

You calibrate the systemby inputting a string of "1"sand noting the pot positionwhere errors first happen.You then input a string ofzeros and note the potposition where errors firsthappen. Then you set the potone third of the distancefrom the limiting one to thelimiting zero settings. This isa non-critical adjustment. Thesymmetry control canoptionally be adjusted with ascope, or else by inputtingalternate ones and zeros andadjusting for one half thesupply voltage (as read on ameter) at the UART receiverdata output.

There is one little detailthat must be checked. Thepositive edge of the UARTtransmit clock must be thesame edge that, whenreceived, is tripping thenegative recoverymonostable. If it isn't, youmay get partial pulses insteadof a nice uniform eight pulsetrain during a zero. Recordersmay vary in their internalcircuitry and may provide aphase inversion betweeninput and output. If you havethis problem, either use the Qoutput of the recorder flipflop, or interchange theconnections on pins 2 and 3of the receiver limiter. Onceset for a given recorder, thereshould be no furtherproblems along this line.

While the circuit seems towork with amazingly poorrecorders, best operation isgotten with a clean, mediumto better grade recorder,preferably one that has anautomatic level control onthe input and tone controlsavailable, along with an AUXinput and an EAR output.Best operation will normally

result with the output volumecontrol about half way upand the tone control set tomaximum treble boost.

A very important pointthat's often overlooked is thetape quality. Bad tape meansbad data. Use only fine grainpremium tapes (Radio ShackSupertape is typical). The keything to watch for is whetherthe amplitude variation isguaranteed to less than onedecibel. If the variation isn'tspecified — don't use thetape. The cost differencebetween good and cheap tapeis negligible. You should alsoalways "certify" your tapebefore you use it by writing arepetitive and obvious patternover the entire tape lengthand checking for errors,splices or dropouts.

Extra controls to start andstop the recorder canoptionally be added to makethe storage more efficient.Data should never be enteredor removed until the recorderis up to speed, and theUART's output lines can begated to prevent garbage fromgetting into the system.Formatting data by setting itup on the TVT screen andthen using a screen read toload the tape will give youdense storage.

One final detail that mayneed watching is to make surethe cassette recorder can'toverspeed the system if youhappen to record on a slowmachine and playback on afast one. This could outputcharacters faster than can beaccepted by a teletype or aTVT frame update system.The way around this problemis to set some maximumpossible character rate thatwill let the return charactersspeed up without problems —use of a 7.5 Hertz rate on a110 Baud system or a 22.5Hertz rate on a 300 Baudsystem is one example. Asecond potential solution isto use two separate UARTs —programming the transmitterfor two stop bits and thereceiver for only one. When

going from a cassette to ateletype, data can beresynchronized by connectingthe UART parallel receiveroutputs to the UART paralleltransmitter inputs. Onceagain, make sure you can'toverspeed the system.

Radio Data Links

One of the more commonmethods of sending serialdigital data over a radiochannel is to use a twofrequency frequency shiftkeyer method in which onefrequency represents a digitalone and the other a digitalzero.

Ham RTTY provides uswith a typical example. Atthe audio baseband, twotones are used, defined as2125 Hertz for a mark, orone, and 2925 Hertz for azero or space. These tonesrepresent the fifth andseventh harmonic of 425Hertz.

These tones may bedigitally generated the sameway the modem tones of thenext section are produced, ormay be generated by avoltage controlled oscillatorsuch as a 555, 8038 or a 566.These frequency shifted tonesare used to frequencymodulate an rf carrier.Alternately, the carrier itselfcan remain at its normalfrequency for a mark and canbe shifted down 850 Hertz(the difference between 2125and 2925) for a zero, withthe audio differences beingpicked up by mistuning thereceiver by 2125 Hertz.

Fig. 11 shows us a typicalreceiver demodulator circuit.The carrier is received anddetected by a FM receiver,adjusted to output audiotones of 2125 and 2925Hertz. These tones are limitedand routed to two bandpassfilters, one set to the upperand one set to the lowerfrequency. Outputs areamplitude detected andcompared, resulting in a oneout for a frequency of 21 25and a zero for 2925. This

32

output may be routed to aUART for serial to parallelconversion. Normally a 7.42unit code of 60 or 100 wordsper minute, using Baudotencoding, is used for hamRTTY.

Any radio carrier systemmust follow the rules andregulations for the particularfrequencies used. Bestperformance of a frequencyshifted keyed systemnormally results when thegenerated frequencies aresinewaves and are switched,transient free, at their zerocrossings. Receiver filtersshould delay both sets offrequencies identically toprevent ones from gettingahead of zeros or vice versa,and thus creating times whenneither a one or a zero, orboth of them together aresimultaneously present. Aswith any serial interface,input and output codeformats and Baud rates mustclosely agree.

Modems

Modems, or modulator-demodulators, are ways to gettones or tone groups onto thetelephone line and off againin order to send and receivedigital data. Two commonways of coupling modems tothe phone line are to usesmall speakers to acousticallycouple to a standard handset,or to directly connect to thephone line through a suitableprotective network or dataaccess arrangement.Acoustical coupling can beused anywhere on anunmodified telephone, buthas problems with frequencyresponse, microphonics, andsecond harmonic distortioncaused by the carbontransmitter. Direct couplinggives better control andbetter performance, but hasto meet certain telephone

company regulations andinterconnect restrictions,needs a physical connectionto the phone line, and needsits own hybrid or means ofseparating transmitted andreceived data.

There are several basicways to use modems. Simplextransmission goes one wayonly. Simplex with a backchannel goes one way only,but provides for some low

systems that are useful overordinary telephone lines,based on the Bell 103, 202and 400 series systems. Youcan rent these from thephone company or others,buy them outright frommodem firms, or design yourown with the guidelines ofthis chapter. Most of thecommercial modems useRS232-C interface standardsand include such logic and

Fig. 11. Audio processor for RTTY receiver.

2125Hz ■ MARK'I2925 Hz = SPACE =0

AUDIOINPUT FROMFM RECEIVER<?

IOK

4558 OR OTHER niriTAI

PREMIUM 741" OP AMPS OUTPUT

3= I

o

frequency communications,often limited to 4 Baud orless, in the other direction.This can provide forhandshaking, messageacknowledgement, etc...,but is far too slow to returndata. Half duplex systems cansend or receive data, but notsimultaneously. Either thetransmitter is off or in a markcondition while data is beingreceived, or the receiver isdisabled while data is beingsent. In full duplex systems,data can be sent both ways,independently, and at thesame time.

There are at least threebasic types of modem

switching functions asautomatic answer andhangup, carrier detect, andother housekeeping signals.

The 400 systems are basedon the touch tone ringingfrequencies and acceptcontacts as inputs and arelimited in the number ofcharacters and the Baud rate.Baud rates of 10 to 20characters per second areusually the maximum, andoperation is normallysimplex, with a separate unitneeded for transmission andreception.

The 202 systems arehalf-duplex modems that canrun up to 1 200 Baud over the

33

phone line, but cannotsimultaneously communicatein both directions unless aspecial four wire system isused.

The 103 modems are fullduplex and may be used at110 and 300 Baud rates. Forthe majority of TVT uses,

Fig. 12. Telephone schematic.

MAGNETICRECEIVER

this series, run at either Baudrate, is the most practical.Unlike the other serialinterface circuits of thisarticle, proper design of agood 1 03 style modem circuitwith reasonable noiseperformance is a major job,particularly if your circuit hasto operate over the dial upnetwork for long distancesand is to reliablycommunicate withcommercial modems on theother end.

Phone Characteristics

A simplified schematic ofa standard 500 telephone setis shown in Fig. 1 2. A carbonvariable resistance transmitterand a magnetic headphone-style receiver are connectedto the line by way of aduplex coil, a normally closeddial contact, and a pair ofopen when unusedhookswitch contacts.

The duplex coil makessure that outgoing signalsreach the line and thatingoing signals reach thereceiver with a minimum ofinterference. This is done byhaving two transmitterwindings induce nearly equal

and opposite signals into thereceiver windings. Thiseffectively cancels much ofthe local transmitter's signalinto the receiver. The netresult is to keep transmitterenergy from being wasted inits own receiver andminimizes a "hear yourself"sidetone that psychologicallymakes people speak muchmore quietly. The duplex coilattenuates the transmittedsignal by four decibels (to60% voltage), the receivedsignal by two decibels (to80% voltage), and thesidetone by seventeendecibels (to 14% voltage).

The line is powered by a48 volt central office batterysupply, and the ac impedanceof the line is nominally 600Ohms, but varies withdistance and quality ofservice. The audio signallevels at the line terminals arefractions of a volt. Normally,the loudest permissiblemodem tones are around aquarter of a volt, measuredon the outgoing line.Received signals are lowerstill, typically one half to one

tenth this value for localservice, and even less on longdistance loops.

When the phone isconnected to the line bylifting the hookswitch, theline voltage drops to around 6volts or so. The traditionaldial signals by breaking thisconnection to deliver a groupof mechanically spaced pulsesthat jump the line voltagebetween the open circuit andphone-off-the-hook values.Touch tone systems replacethe dial with a low impedancethat sums the tones of thenext section (see Fig. 13)onto the line for signalling, apair of tones at a time.

The ringer is capacitivelycoupled across the line and isresonant to some lowfrequency in the 20 to 47Hertz range. Ringing voltageis an ac signal of 86 voltsRMS. Selective ringing of aparty line can be done inthree wire systems with aground return by ringing onephone from L1 to ground andthe other one from L2 toground. In two wire systems,ringer circuits with different

Fig. J3. Standard touch tone frequencies. Each key simultaneouslygenerates two tones as shown.

HERTZI209

OPTIONAL KEYSI336 I477

I

697

770

852

94I

I

1

I

"II

_, I

I

34

resonant frequencies can beselectively rung by changingthe frequency of the ringsignal.

For direct entry modems,either a protective network ora data access arrangementsuch as the Bell CBS or CBTunits can be used. Thesenetworks simulate theimpedance of the telephonewhen activated and preventany supply voltages fromgoing onto or coming off ofthe power line. Under nocircumstances should dcpower be applied to orremoved from the phonesystem lines, or anyimpedance be placed acrossthe line or to ground thatwould degrade normaltelephone services.

400 Style (Touch Tone)Modems

Modems based on touchtone signalling frequencies areusually limited to low datarates and often to a limitednumber of availablecharacters. Touch tonesignalling is based onsimultaneously sending a pairof carefully chosen tones,following the code of Fig. 13.

The tone pair must existfor 40 milliseconds and theminimum time between tonepairs is 40 milliseconds, witha resulting maximumcharacter rate of 12 persecond. Touch tones arenormally entered at signallevels somewhat higher thanother voice and modemsignals, being around threequarters of a volt RMS forthe high frequencies andaround half a volt for the lowgroup. Line characteristicsequalize these amplitudes bythe time they get torecognition circuits.

A touch tone modemtransmitter can simply be thetouch tone dial of a remotephone, or it can be a circuitto generate two sine waves ofproper amplitude andfrequency simultaneously.Unlike other modems, andmuch of the serial interface

of this chapter, the code isactivated directly by contactclosures. One closure, ratherthan a serial code, is all that isneeded to send one of twelveor one of sixteen separatepieces of information.

Additional information ontouch tone techniquesappears in the March 1963IEEE Transactions onApplications and Industry,the Signetics Linear ICApplications Manual, and

Fig. 14. Full duplex 300 Baud modems.

(a) Originate modem (unit making call).

SERIALDATA

FSK OSC1070 Hz SPACE1270Hz MARK

FILTER1500HzLOWPASS

FROM °~UART

DUPLEXER

(SPACE"0 MARK-I )

PHONE

SERIALDATA

DISCRIMINATOR2025 Hz SPACE2225 Hz MARK

LIMITER

FILTER

I900-2350HZ

BANDPASS

LINE

TO °^UART

(b) Answer modem (unit receiving call).

SERIALDATA

FSK OSC

2025 Hz SPACE

2225 Hz MARK

►

FILTER

2500 HzLOWPASS

FROM "^UART

DUPLEXER

PHONE

SERIALDATA

DISCRIMINATOR1070Hz MARK1270 Hz SPACE

■*—

LIMITER

FILTER950-1400 HzBANDPASS

LINE

TO °^UART

Additional tones or tonecombinations can be added,such as in the Bell 401L or402C systems that offer 99 or256 characters.

Touch tone receptionconsists of three parts. First,the signals need sharplyfiltered with bandpass groupfilters whose response is 650to 1000 Hertz for the lowband and 1150 to 1700 Hertzfor the high band. Adequateprefiltering is absolutelyessential for most tonedetection schemes. Tones arethen detected, using limitersand slicers somewhat similarto Fig. 9, using narrowbandpass filters anddetectors, or using phase lockloop tone detectors such asSignetics 567 tone decoder.Finally, the detected tonesare combined with suitabletwo of eight digital logic.

various issues of the BellSystem Technical Journal.

103 Style (300 Baud, FullDuplex) Modems

"103" style modems areoften the best choice for TVTuse, as they offer full duplex,two way, operation at 110 or300 Baud rates over theordinary phone line. Fig. 14shows us a block diagram ofthis type of modem.

The circuits are used inpairs. The modem at the endthat's doing the calling iscalled an originate modem. Itsends a 1 070 Hertz sine wavefor a space or zero and a1270 Hertz sine wave for amark or one, usually at aphone level of -10 DBM oraround a quarter of a voltRMS. The modem that'sdoing the receiving is calledan answer modem, and it

35

Fig. 15. Digital "sine wave" modem transmitter is easily filtered as firststrong harmonics (-20 dB) are the ninth and eleventh.

INPUT CLOCKIOX FREQUENCY OFOUTPUT SINEWAVE0

+ 10

4018(CMOS)HO WALKINGRINGCOUNTER

33K

second harmonic distortionof the carbon mike doesn'traise its signals to anintolerable level. Partialcompensation of this carbonmike effect can be gotten bysumming a sine wave of plusone half the third harmonicwith the fundamental. Thiscauses some cancellation andallows a higher level oftransmission. Since mostmodem detectors use onlythe zero crossing information,it's important to coherentlyswitch between these twofrequencies, changing onlywhen the sine wave goesthrough zero. The coherentoperation eliminates "shortcycles" that will jitter thereceived data.

Input signals to eithermodem must be stronglyfiltered to get rid of the otherchannel tones, as well asinterference from speech,noise, touch tone coding, andother signals. The duplex coilin the phone set reduces but

does not eliminate sidetonecoupling. If you build yourown duplexer instead, thesame cancellation is onlypartial because of changingtelephone line impedances.

In addition to getting ridof unwanted signals, there's asecond severe restriction tothe input filter. Both the onesand zeros going through thefilter must be delayed anequal amount. Otherwise theones and zeros will get out ofstep with each other andcause timing errors.

There are two basic waysto go about building this styleof modem. An analog modemgenerates and decodes itssignals using gated oscillators,RC networks, and phase lockloop detectors. A digitalmodem uses all digital logicfor the frequency generationand detection. Analogmodems should be avoidedfor several reasons. Thetransmitters inherently haveless stability, need field

; - OUTPUT

SINEWAVE" "9- * °- Digitally derived modem frequencies.

iPz

(a)

103:

300 BAUDFULL DUPLEX

1.115097

MHzCRYSTAL

receives and responds to thesetwo frequencies. In turn, theanswer modem transmits a2025 Hertz sine wave for aspace or a zero and a 2225Hertz sine wave for a mark ora one. These, in turn, areacceptable to the originatemodem.

These frequencies arecarefully chosen to allowtwo-way conversationwithout interaction. Theanswer modem alwaystransmits on the highfrequency since a 2025 Hertznote is needed toautomatically disable echosuppressors used on longdistance phone lines, and toprovide a standardrecognition signal forautomatic dialing equipment.

(Echo suppressors effectivelyconvert long distance linesinto voice keyed one waylines. Two way transmissionon a long line is not possibleunless these suppressors aredefeated.)

There are several veryimportant things to considerwhen you are designing amodem. The transmittedsignal must be a lowdistortion sine wave.Particularly, its secondharmonic must be extremelylow to prevent the originatemodem's transmittersplattering its own receivespectrum with its secondharmonic. When acousticalcoupling is used, the transmitlevel must be held lowenough that the rather bad

v8

t5

-H5

-H3

10,700(+.21%)

■f II

T

12,700(-.22%)

T-ll

T

20,250( + .12%:

+ 10

T

22,250( + .23%)

IOX FREQUENCIESTO FIGURE 15

202 S

IZOOBAUDONE WAY

(b)

1.092000MHzCRYSTAL

{

H-4

-=-21

-f-13

I

o3,000

A

21,000

IOX FREQUENCIESTO FIGURE 15

36

Fig. 17. Modem receive filter. 4558 or 7415 op amps. 950-1400 Hz1 900-2350 Hz = (parenthetical values) originate filter.

normal values = answer filter.

INPUT(LOW ZSOURCE)o

I5K

845(267.

.01.01

I65K(I65K)

I r

2I.5K

IMWV

(I8.7K)

1240 <(324) T

.01.01

237K

—vw—

(2I0K)

r

8870

II—w—

(8660)

2550 <(619) i

.01.01

97.6 K

—'wv ^

(95.3K)

r

OUTPUT

adjustments, and potentiallyhave a stronger secondharmonic, besides needingcalibration. They are harderto coherently switch at zerocrossings to eliminatetransients. Analog receiversalso must be calibrated andable to accurately resolve asmall frequency difference,again with adjustment andcalibration.

At this writing, there is nosuch thing as a modem on achip. The Motorola MC6860is one IC that handlesapproximately one fourth ofthe circuitry needed for adigital 103 modem. Two Exarchips, the 2207 FSKgenerator and the 210 FSKdemodulator provide aroundhalf the circuitry for ananalog system. A premium setof four hybrid integratedcircuits from CermetekElectronics is available thatdoes the whole job in theirMinimodem CHI 213, 1214,1252, and 1257 devices.

Figs. 15-18 show severaltechniques that might be of

use in your own modemdesigns. Fig. 15 is a CMOSdigital IC sine wave generator;it produces a sine wave inresponse to a 10X digitalclock input. It is based onsumming phases of a walkingring or Johnson counter andhas negligible harmonicoutput up to the ninth andeleventh, which are bothtwenty decibels down (1/10the amplitude) and easilyfiltered. The output can alsobe used to coherentlysynchronize input switching.Fig. 16 shows a digital timingsequence that starts with acrystal and produces all fourmodem frequencies neededfor the Fig. 15 circuit. It canbe built with a CMOS 4520and a gate or two. Fig. 17shows us some active filtersuseful as pre-filters withcontrolled group delaydistortion. Fig. 18 shows anadjustment and calibrationfree receiver digitaldiscriminator.

More information on 103style modem designs are

available in Motorolaapplications note AN731,Exar data sheets XR210 andXR2207, The Active FilterCookbook (Sams), andCermetek MicroelectronicsMinimodem datasheets.

202 Style (1200 Baud, HalfDuplex) Modems

The 202 style modemcircuits are both faster andsimpler than the 103 versionsand require less in the way ofcircuitry. Their bigdisadvantage is that most ofthem are strictly simplex orhalf duplex devices whenused on the ordinary twowire phone line.Simultaneously transmittingand receiving is ordinarily notpossible.

Like the 103, 202standards use frequency shiftkeying. Bell standards call fora 1200 Hertz mark or oneand a 2200 Hertz space orzero, while internationalstandards call for a 1300Hertz space or zero and a2100 Hertz mark or one. An

additional tone may needgeneration to provide forautomatic answering.Commercial units alsosometimes provide a backchannel of four or five Baudfor acknowledgement.

The circuit designtechniques for both types ofmodem are similar. Becauseof the faster Baud rate,control of group delaydistortion in any filtering isextremely important.Detection circuitry must notdifferentially delay ones withrespect to zeros. TheRockwell 10371 DigitalTelecommunications DataInterface handles much of thenon-filtering aspects of thistype of modem. This IC alsohas a built in UART.

Several additional sourcesof modem informationinclude the MicrodataCommunications Handbook,Data Modem EvaluationGuide by V. V. Villips, andvarious issues of DataCommunications andTelecommunications.

Fig. 18. Digital discriminator needs no adjustments or calibration.

1.15097 CRYSTALFROM FIG 16o

200pF

AND 4011GATE (CMOS)

ORI6

CLOCK

16 512 1024

RECEIVEDDATA FROMLIMITER

RESET

RIPPLE COUNTER4040(CMOS)

JT

SET

r^h

RESET

D QC

T

OUTPUT) DATA TOUART

D FLIP FLOP4013(CMOS)

37

WHAT SINGLE ELECTRONICMACHINE CAN BE USED TOPERFORM/CONTROL ALLTHE FOLLOWING TYPESOF SERVICES?

Send morse codeControl repeater stationsOperate as a calculator

Receive/send/buffer databetween a wide varietyof communication devices

Monitor instruments

Control machines

Sort/compile data

Test other devices

Play games

the SCELBI-8B MINI-COMPUTER CAN!

SCELBI COMPUTER CONSULTING, INC.- The company that pioneered in producing the small computer for theindividual user with the popular SCELBI—8H, now brings you the new SCELBI—8B with increased capability!

Like the former SCELBI-8H, the SCELBI-8B is built around the amazing '8 0 0 8' "CPU-on-a-Chip" which has beenrevolutionizing the electronics world.

However, the NEW SCELBI—8B offers extended memory capability at reduced cost! It is directly expandable to16,384 words of RAM/ROM/PROM memory. This increased memory capability now means the user has the potential ina small and compact computer to support compiler type languages, manipulate sizable data bases for business andscientific applications, and support a wide variety of programs including those that take advantage of external massmemory storage devices.

The NEW SCELBI—8B still retains the outstanding features of its predecessor. Decoding logic for 8 Output and 6Input Ports is built into the basic computer. Plug-in capability for I/O devices is provided on the chassis. A unique,simple to operate console that utilizes just 11 switches on the front panel makes the SCELBI—8B a pleasure to use.

The NEW SCELBI—8B is backed by a line of low cost SCELBI interfaces which currently include: an interface thatturns an oscilloscope into an alphanumeric display system, low cost keyboard and TTY interfaces, and an interface thatturns a low cost audio tape cassette into a "Mag-Tape" storage and retrieval unit.

Last, but certainly not least, SCELBI has a wide selection of software ready to run on the NEW SCELBI—8Bincluding: Editors, Assemblers, calculating programs, I/O and general utility routines. Additionally, SCELBI producespublications that can show you how to develop your own custom tailored programs.

The NEW SCELBI—8B isavailableNOW. (We have been delivering since June!) It is available in three forms. Ultra-lowcost "Unpopulated" card sets with chassis kits starting at $259.00*. Complete parts kits for a 1,024 wordmini-computer as low as $499.00*. An assembled and tested 4,096 word computer is just $849.00*. Interfaces,accessories, and software sold separately.

(*Domestic prices.'

(Prices, specifications and availability subject to change without notice)

Literature available for S.A.S.E.

ICELBI COIHPUIERCONIUIXING INC.

1322 REAR BOSTON POST ROADMILFORD, CONNECTICUT 06460

38

U^^WT Xi^^^ l$^^C^l$ (AND SIMILAR MICROCOMPUTERS)

Written to provide you with the detailed knowledge you need to know in order to successfullydevelop your own MACHINE LANGUAGE PROGRAMS! This information packed publicationdiscusses and provides numerous examples of algorithms and routines that can be immediatelyapplied to practical problems. Coverage includes:

DETAILED PRESENTA TION OF THE "8008" INSTRUCTION SET MA THEMA TICAL OPERA TIONS

FLOW CHARTING MAPPING MUL TIPLE-PRECISION ARITHMETIC

EDITING AND ASSEMBLING DEBUGGING TIPS FLOATING-POINT PACKAGE

FUND AMENTA L PROGRAMMING TECHNIQUES MAXIMIZING MEM OR Y UTILIZA TION

LOOPS, COUNTERS,POINTERS, MASKS I/O PROGRAMMING REAL-TIME PROGRAMMING

ORGANIZING TABLES SEARCH AND SORT ROUTINES PROGRAMMING FOR "PROMS"

CREA TIVE PROGRAMMING CONCEPTS

Virtually all techniques and routines illustrated also applicable to '8080' and similar types ofmicro/minicomputers, with appropriate machine code substitution. Orders now being acceptedfor immediate delivery at the LOW price of just $19.95.* Add $3.00 if PRIORITY mailingservice desired. (*Domestic prices.) Pricing, specifications, and availability subject to changeOrder direct from - without notice.

If I El COIHPUIEK 1322REAR BOSTON POST ROADCONfUMlNO INC. MILFORD CONNECTICUT 06460

C£4s& I enclose $19.95. Send me a postpaid copy of:

MACHINE LANGUAGE PROGRAMMING for the '8008' (and similar microcomputers)

Please send my copy by Priority Mail. I enclose $3.00 extra.

Charge it to my Mastercharge Card #

Bank # Exp. Date Date

Card Holders Signature

Ship to: NAME:

ADDRESS: . ZIP:

39

The increasing interest inmicrocomputers for homeand fun and games as well aspractical work has led to anumber of informationcenters — the clubs andnewsletters organized byreaders of BYTE to helppromote communicationsamong practitioners of thisart. For this first issue ofBYTE, I've collected togethera "dump" (in Englishcharacter text, nothexadecimal) of my files onthe subject to date.

. . .CARL

People's Computer CompanyPOBox 310Menlo Park CA 94025Editor: Bob Albrecht

This organization puts outa newspaper style publicationof information, fantasy,technical designs, etc. It is a"non profit" operation aboutrecreational and educationaluses of computers.Publication is on an irregularschedule with subscriptionsto 5 issues at $5 to allcomers, $3 to those whopresent some evidence ofstatus as students. Themagazine is typeset andassembled with plenty ofgraphics in what might becalled a "neo-Whole EarthCatalog" style. The sameorganization also runs thePCC bookstore at the sameaddress.

The Computer Hobbyist

Box 295

Cary NC 27511

1-919-467-3145 or

1-919-851-7223 evenings or

weekends

The Computer Hobbyistpeople put out an excellentphoto offset newsletterprepared with the help of amicrocomputer text editingsystem. A sample of theirproduct — in the form of anarticle by Hal Chamberlincomparing three micros — isreprinted by permission inthis issue of BYTE. Ofparticular interest for thecoming arguments andcontroversies over cassetteinterface methods is their

unique method of recordingwhich Hal Chamberlindescribed to me in phoneconversation. The goals of thedesign are reliability andspeed independence, whichare achieved by a pulserecording technique. Anotherdesign published by TCH is afairly sophisticated visualgraphics system (it might becalled a "Cadillac" amongsuch systems) which uses ahighly modified TV and canproduce very detailed highresolution pictures. TCH alsois planning to supply a seriesof kits with PCs and parts fortheir designs. TCH also is veryclose to having available aBASIC package for the 8008computer.

PEOPLE'S COMPUTERCOMPANY

VOLUME 3 MARCH 75 NUMBER4

40

HOMEBREW COMPUTER CLUB NEWSLETTERIssue number lour Fred Moore, editor, 55B Santa On; Ave.. Menlo Park, Ca 94025 June 7. 1975

"IT'S A HOBBY"

Yes, a hobby for fun. Interest in home computingis spreading fast. I feel our club is doing a good job insupporting the individual experimenter get his or hersystem up and Hying. There are a lot of obstacles, bugs.■nd technical tricky problems which can frustrate anddiscourage a person alone. By sharing our experienceBtld exchanging tips we'advance the state of the art andmake low com home computing possible for more folks.

lining your beast in for a demo1 Can it sing orplay games1 What tricks does it know? Let's have alook at it.

I hanks to Kay and Karen for demonstrating hisOOSA Microcomputer with audio cassette adapter atthe May 14th meeting. Using an HI1D8 microprocessor.1the ""HA is available as a kit (53751 from K(,S Klcc-ironies 3659 Charles Si. Suite K. Santa Clara. CaKecentlv Kay got Jerry's TVTypcwnter I workingnicely

1'hanks to Cordon for bringing and explaining histext editing system May 28th. The system's beauty isthe ease with which one can look into 16 K of storageand tind what's there to be rearranged as you pleaseThe only thing I missed in playing REVERST on itwere the bcll.s congratulating me when I'd won. AL'onipincr game without bells is like a steam enginewithout a whistle1

A special ihanks io Wayne for bringing the clubi paper tape version of a Eortran IV cross assemblern mag tapi

*

. (1

v»<

&4

■- V.

s~-

■J

\

'.•?.

:<>-r

Wayne

r the 8008 .ii- reside!

so listingsThe .-lull

ind Pl./M o

i Hum) and 8008 assemblers.now has a responsibility t<> use this software in a non*proftl manner, which means no private or commercialdeals. II you have a system large enough to house acopy of the mag tape and can make access available tothe rest of the members, contact Gordon French

Wayne also hrought a TV terminal Intel developedtwo years ago as a demonstration unit. The unit usesa -loo-t microprocessor and has both a character and aplot mode I5x 7 dot square you can move around).Wayne hooked it up to a TV and tuned it in on theedge ot channel 0. The current ROM gacc us onrchoice of tic-tac-ioc or tennis. We played both.

At the previous gathering Wayne had suggestedusing a shadow ROM for bootstrapping svhen youfust tutn on yout computer. This time on request hedrew a schematic on the grcenhoatd. but I don't thinkmany of the less technically oriented among us followedhis explanation completely. Which btings me to ageneral observation: The club is quite a mixed gtoupWe ate composed of outright novices to top flighiprofessionals and leaders in the industry. Many arcSomewhere inbetween. Only a few arc strong in bothhardware and software.

It seems to me. we needclasses or some more paricntand detailed means of convey-ing inlotmation across anignorance gap. and at the.ame time not borr themore experienced amongUS. I think our sire islarge enough now thatt meeting as a svholcim say 7 to 9pm,we

en break mm thteefout small groupsr more educationallyiented discussionsan hout. Anyone' .^ a ^/JT^ have comments on this'6 "-< ■ »-*Eivfirj, Perhaps thctc is enoughlearning taking place asit Is and any attempt tooptimize*)! further willupset the telaxed inlormality ot the gatherings Comments?

Thanks ro John Draper tor setting up a group libraryaccount for the club at Call Computet. Those who haveaccounts, have vour nnmber changed to a K-2'5 number.If we have enough join, the club won't be charged the $5 110monthly base rate [We also pay 63 cents pet thousand chat-actcrs on file pcrmonth i The intention ts to have usefulprograms smtcu in the K-2I1H library tile

Thanks to Dan Mr testing the 2 ll)2's the gtoup put-chased from Solid State Music. Thanks to Lenny and Franktin setting up the auditorium for our use. Much thanks andappreciation to everyone for yout tunc .energy, and spirit inmaking the club what it is

The MITS MOBILE came to Rickey's Hyatt House inPalo Alto June 5th is nth The room was packed {150+)with amateurs and esperimcniers eager to find out aboutthis nesv electronic toy Ihe evidence is overwhelming thatpeople want computers, probable- lor self-cntettainiticiu andeducational Usage Whs' did the Pig Companies miss this

markcrr They were busy sellinjOthCf land the government and militaryto sell directly to the public. I'm all inMITS is having with the Altair because(11 lorcc the awakening of other eomp.for low-cost computers [or use in the hCompetition, resulting in Ithe hand held calculator I

nines to eachI hey don'r wanrar ol ihe splashall do ihree thingss to the demand:. which will mean[list as happened withompiucr clubs and

hobby groups in form lo fill ihe tccbnic(3) help demystify computers. Computcts arc not magic.And it is important for the general public to begin to undcistand the limits of these machines and that humans areresponsible for the programming

Amateur Computer Societyof New Jersey Is Up andRunning

The ACSNJ was th-stassembled on Friday, June13, 1975.

The feasibility study wasperformed by Sal Libes whohas become its OperatingManager. The system will runmonthly on the second orthird Friday of the month.

Input is in the form of 40+ enthusiastic hobbyists. Over50% of the amateurs arehardware and/or softwareoriented. There are 10 homecomputers running in thegroup, 5 of which are Altairs.

Output will be a localnewsletter. The first issue willcontain information compiledfrom a questionnaire givenout at the meeting.

Information was processedrandomly. There were someminor bugs which had to beworked out; however, thoseassembled were pleased withthe results.

A parts supplier was onhand and welcomed as a localsource.

The second running of theACSNJ was scheduled forFriday, July 18, at the UnionCounty Technical Institute,1776 Raritan Road, ScotchPlains, New Jersey.

It's good news.

The Amateur ComputerSociety of New Jersey IsAssembled and Running.

George Fischer

72 So. Railroad Ave.

Staten Island NY 10305

The Amateur ComputerSociety

Stephen B. Gray260 Noroton Ave.Darien CT 06820

Mr. Gray puts out anewsletter. No furtherinformation is available aboutThe Amateur ComputerSociety.

Homebrew Computer Club

NewsletterFred Moore, Editor558 Santa Cruz Ave.Menlo Park CA 94025

The Homebrew ComputerClub is an organization lo-cated in Northern Californiaaround Menlo Park. The clubwas founded by Fred Moorewith a hand from GordonFrench. A newsletter ispublished photo offset on amonthly schedule — althoughno price is quoted, a donationof 50-75^ per issue would bea fair recompense for costslisted in the club treasuryreport in issue No. 4. Thenewsletter has included someexcellent design notes byTerry Lee, covering SARTchips, power supplies, heatsinking, etc.

Issue No. 4 reports thestart of a San Francisco-Berkeley chapter, and refersto another California club:Sonoma CountyMinicomputer ClubMark Robinson, President1-707-544-2865 (work)1-707-525-1659 (home)

^fflfRW^fW^

41

JAMES ELECTRONICS

P. 0. BOX 822 BELMONT, CALIFORNIA 94002

(415) 592-8097

DIGITAL VOLTMETER

%

1.3" high]play. Tha

.5% lull scale accuracy. It v.the Siliconix LD110. LDllThe voltmeter uses MAN7 n

supplyeDVM

less power supply.

$39.95 Per Kit

LOGIC PROBE

c Piobe Is a unit which Is foi the! indespensiblc in trouble shootinglilies: TTL. DTL. RTL. CMOS. Ite power it needs to operate directly

10 mA max. It uses a MAN3 readou

symbols: CHI)— 1 (LOW)-o IPULSEI-P.Probe can detect high frequency pu's«45 MHi. It can't be used at MOS level

$9.95 Per Kit

DIGITAL COUNTER

♦

$29.95 Per Kit

This ,i a a digit counter un.t *h ch willcount up lo 9999 and then prov.de an over(low pulse It is based around the MostekMK5007 digital courtier chip. The un-t pet-forms the following (unctloni Coum Input,RESET, i .■:! '.■.■■■■■ .-. The counter uper-

a 250 k

. The c

-T.LitU ..-,

the only extra compone

a timcbase. divider chain and gate. The u

rcqu.res 5V, and -12V. The unil cor

complete as shown on the lelt less pot

supply.

ONE KILOBYTE

RANDOM ACCESS MEMORY

; lor

n a HOMEBREW Ies on array of 2102 1kxess memories lo pioducey compatible with mostuier systems. We provide

lality low profile sockets.

iimn bypass capacitor.

♦

$69.95 Per Kit

5 VOLT 1 AMP "PL SUPPLY

♦

5 VOLT 1 AMPJ2 L SUPPLY

This is a standard TTL power supply usingIhe well Known LM309K regulator IC toprovide a solid 1 AMP ol current at 5 voltsWe try to make things easy for you bypioviding everything you need in one pack-age, including the hardwire for only:

$9.95 Per Kit

PLASTIC INSTRUMENT CASE

uf our DVM and COUNTER kitenough left for power supply or(cullent for many other projects2"x3l/8"x57/8".

fc^

$5.95 Per Case

Satisfaction Guaranteed. $5.00 Min. Order. U.S. Fundi.Add $1.25 for Postage — Write for FREE 1975S CatalogCalifornia Residents — Add 6% Sales Tax

0/iWSS

P.O. BOX 822, BELMONT, CA. 94002PHONE ORDERS - (415) 592-8097

Micro-8 User Group

Newsletter

Hal Singer, Editor

Cabrillo Computer Center

Cabrillo High School

Lompoc CA 93436

1-805-733-3501

The "Mark-8" is one ofthe first widely marketedhome computer kits — an8008-oriented design ofJonathan Titus (TYCHON,Inc., PO Box 242, BlacksburgVA 24060). It first appeared

Club in The Dallas-FortWorth Texas Area

Bill Fuller (2377 Dalworth157, Grand Prairie, Texas —1-214-264-01 1 1/1-214-264-9017) organized aninformal get together June 29in a park near Hurst andBedford, Texas. At thatmeeting, 12 people appeared- including three Altairowners, the owner of aMartin Research Mark 2 andone home brew purist.Contact Bill for the latestinfo on activities on the LoneStar state to date.

The Digital GroupsPO Box 6528Denver CO 80206

This club provides anewsletter of technical andorganizational interest whichis reproduced photo offset at$6 per year (12 issues). Alsooffered are kits, boards, andassembled products formiscellaneous peripheralsdesigned by members in theDenver area.

on a large scale in an article inthe July 1974 issue of themagazine Radio Electronics -and the result of a largeresponse to this product isHal Singer's formation of theMicro-8 User Group with aninitial orientation to the 8008as implemented via theMark-8. The newsletter is aself-published offsetpublication available at $6 forsix issues. Much of theinformation is original assubmitted, although Halsummarizes a lot of the stuffwith his text editor andprinter at the CabrilloComputer Center. For thoseinterested in the history ofone branch of the homecomputer hobby, the backissues of Micro-8 User GroupNewsletter record muchactivity of the early pioneersof the hobby.

Staccato Notes

Derek McColl reports inphone conversation that heattended the first meeting ofan as yet unnamed LosAngeles area computer club.You can reach Derek at 1715Havemeyer, Redondo BeachCA 90278 to find out aboutthat club.

Was your club ornewsletter omitted? No claimis made that this listing iscomplete. Organizers of clubsare invited to send details oftheir plans for publication inBYTE.

New England ComputerKibitzers? (NECK) I'll act asan initial focal point for aBoston area computer club.Write BYTE Editorial Offices,Box 378, Belmont MA02178, or call me at1-6 17-729-6914evenings/weekends.

. . .CARL

42

COMPUTER-DATA INPUT KEYBOARDS

B5283

B5199

ASCII encoded keyboard. In its own enclosure. Originaly used inSANDERS ASSOCIATES 720 Terminal System. In like newcondition. Usefull for any project requiring an ASCii encodedkeyboard. 50 Alpha Numeric keys plus 11 computer symbolsSTOCK NO.B52S3 keyboard $35.00 2/65.00

MICRO—SWITCH (Honeywell) S bit binary coded board. 56 keys,alpha - meric and computer symbols Built in TTL decoder. Newin factory cartons. A beautiful keyboard.STOCK NO.B5199 Microswitch keyboard. $45.00 2/80.00

KEYTOPS & SWITCHESTO MAKE YOUR OWN KEYBOARD

We have a large selection of KEYTOPS and SWITCHES, made byRAYTHEON CO. The keytops come in black, grey and white,with contrasting legends. The switches mate with the tops, and aremagnetic reed switches. The following combinations are available:54 key typewriter set, keys only, black K9276 2.95

54 key typewriter set, keys only, grey K9278 2.95

54 key TTY set, no symbols white K9279 2.95

54 key TTY set, with symbols white K9282 2.95

54 key set, keys & switches black K9288

54 key set, keys & switches grey K9290

54 TTY set, no symbols keys & Sw. White K929154 TTY set, with symbols, keys & Sw. whiteK9291

11 Key Numeric set. Keys only Black

11 Key Numeric set. Keys only Grey

11 Key Numeric set. Keys only White

12 Key numeric set, Keys only white

11 Key Num.set, keys & switches Black11 Key Num. set, keys & switchesGrey

11 Key Num. set, keys & switchesWhite

12 Key Num. set, keys & switcheswhite

K9283K9284K9295K9286

30.0030.0030.0030.00

1.501.501.501.50

Blank key 1XA keys wideBlank key 2 keys wideK9297A with switchK9297B with switch

whitewhitewhitewhite

K9293 7.00

K9294 7.00

K9295 7.00

K9296 7.50

K9297A 3/.25

K9297B 3/.25

K9298A 3/2.00

K9298B 3/2.00

MINIATURE 7 SEGMENT READOUT

Miniature 7 segment LED readout (EXITON XMN 101Displays all numbers and 9 letters. O.D. 5/1 6"x 1/4"Display is .12 ". SPECIAL FOR THIS ISSUE ONLYSTOCK NO.B5173 with data sheet .50 ea. 5/2.00

TRANSFORMERS

Computer projects need power supplies. Finding the right powertransformer can be a problem. We have one of the largest andmost diversified stocks of power transformers in the country.Below we list some representative items in our inventory. Ourcatalog, free on request lists many more.

36 V. <s> 1.0 A. ct, & 6.3 V <°> 200 ma. 3 lbs. B931 3

70 V. <s> 1.5 A. ct, & 6.3 V <s> 500 ma. 6 lb. B9314

90 V. @> 2.0 A. ct, & 6.3 V @ 1.5 A. 8Vi lb. B9315

50 V.-@ 1.5 A. ct, & 6.3V @500 ma. 6 lb. B9316

26 V. <s> 1.0 A. ct. &6.3 V. @ 500 ma. 3 lb. B9318

38 V. @ 1.5 A. ct. & 6.0 V.@ 500 ma. 2 lb. B9319

350 V. @ 35 ma. ct. & 6.3 V. <§> 2.7 A 2 lb. B9321

70 V. @ 1.5 A. ct. Si 6.3 V @ 1.5 A. 7Lb. B9322

35 V. <9> 6.0 Ct. & 10 V. @ 10.0 A. 6.0 Lb. B9906

64 or 32 V. @> 8.0 A. ct. & 18 V. @ 8.0 A ct. 10 lb. B9905 1 1.95

3.50 2/6.006.50 2/12.009.95 2/19.006.50 2/12.003.75 2/7.006.95 2/13.003.50 2/6.006.75 2/13.008.95 ea.

VOLTAGE REGULATOR BOARDS

B5169 is a board containing 3 15 volt high current regulatorswith 0.1% regulation. 2 of the regulators are rated @ 3 Amps.,and the other @ 6.0 amps. The current in each regulator maybe doubled with the regulation going to 0.5%.AM 3 regulatorsare short circuit proof, and 2 have electronic crowbar protect-ion. Brand new, in factory boxes.STOCK NO.B5169 $11.95 ea. 2/21.00

B9013 is a triple regulator with +12 volt regulation @ 200ma. and the third regulator is a tracking regulator, providingregulation from 0 to 5 volta @ .5 A.STOCK NO.B9013 $5.95 ea. 2/10.00

Roth regulators above come withcircuit diagrams.

OPERATIONAL AMPLIFIERS(OP — AMPSl

TYPE DESCRIPTION CASE STOCK PRICE

709

4709

741

747

741

747CT

1458

LM101A

Hi Performance

Dual 709

Hi Performance

Dual 741

Hi Performance

Dual 741

Dual 741

Gen, Purpose

TO-5DIPDIPDIP

MiniTO-5MiniTO-5

B4301B5301B4316B4317

DIP B4345B3111

DIP B3112B4503

.50

1.00

.65

1.25

.65

1.25

1.25

.50

5/2.00

6/5.005/3.00

5/5.005/3.005/5.005/5.005/2.00

SELF SCAN PANEL DISPLAY

jjT} Burroughs

MODEL

BURROUGHS SELFSCAN display, des-igned for numeric app-lication, requiring up toSSD 1000-0010 . I6 characters of numeric

information. Display is madeup of neon dot matrix. Each character is defined by a positivelogic 4 bit code. Display operates in a scanning mode, scanningfrom left to right, one column at a time. Electronics is in interior of bezel, and consists of LSI chip and integrated circuits.Current distributor price is $135.00 . LIMITED QUANTITYSTOCK NO.5180 with data $49.50 2/90.00

Please include sufficientpostage. Excess refundedMINIMUM ORDER $5.00

DELTA ELECTRONICS CO.

BOX 1, LYNN, MASSACHUSETTS 01903Phone (617) 388-4705

Send for the latest editionof our catalog. Loaded withelectronic and computerbargains.

43

WRYTE for BYTE

by

Chris Ryland

25 FollenSt.

Cambridge MA 02138

As an editor of BYTE, Igave a tour of theauthor-pitfall jungle to severalinterested people at a recent(if imaginary) small systemsconference. Below is whattranspired.

"OK, gentlemen, step rightthis way; we're heading intothe jungle now. Be careful ofthe pitfall directly to yourleft. Any questions about theterrain so far?"

"Well, I have an idea foran article, but it's not veryoriginal . . . ," says one of thetourists, dropping into thepitfall.

"Oops! 1 warned himabout that! Anyway, the restof you can benefit from hismistake: that objection justdoesn't stand. A new ideamight seeem old hat to you,simply because you thoughtof it. Or, a variation on an oldidea can certainly be materialfor print — what scientistdares claim a bsolu teoriginality for his research?

Furthermore, even smallsystem lore, presented in atutorial style or approachedfrom a new angle, can beboth original and valuable.Look out to your right! Morequestions?"

''But I can't writeanyway ..." cries anotherpitfall victim.

"I warned him! That's oneof the deepest pitfalls aroundhere. Well, the rest of youprobably write much betterthan you think. It's necessaryto have some humility here —your writing may sound badto you, but no one expectsyou to win the Pulitzer Prize.Even if you don't write like apro, think of BYTE as adevice for getting good, ifrough, ideas into print:submit an article when you'vedone your 'technical' best,and if we think it's worth it,we'll do our 'editorial' best toget it into publishable shape(leaving your style intact).This is worth emphasizing —most magazines accept onlypolished articles byprofessional writers, or elsethey force their writers into astylistic straightjacket. Butwe feel that BYTE can do themost good, and be enjoyableto read, if we publish goodideas in as close to theiroriginal form asprofessionalism permits.

"Well, we've passedthrough the most obviousdangers, so please be morecareful where you walk.Another question?"

"OK, I agree," says anink-stained tourist, "my ideais good and I can write fairlywell. But what good will itdo . . ." Another one vanishesinto an obvious pitfall.

"I thought you'd all see

that one! Your published ideacan be invaluable to anyoneworking on a similar problem.It's unlikely that your work isso unique that no one elsecould benefit from it! Thereare also many personaladvantages. There's thesatisfaction of serving othersin your field, and, not leastimportantly, the money frompublished articles. Gettingyour name in print can bothgive a boost to yourprofessional prestige, and cansharpen your writing ability,a useful tool in any job.Finally, writing about youridea forces you to understandit more completely; also, anyfeedback from us or fromother readers of BYTE cancertainly be helpful.

"This brings us nearly tothe edge of the jungle. Sinceit's a lot safer here, you canlook back and see wherewe've been."

"I see! But what can Iwrite about. ..?"

"Darn, I thought I hadspotted all the pitfalls! Butyou can learn from hismistake, and submit feature(medium to long) articles,short articles (tips andtechniques, for example), orcolumn contributions; at thispoint, you might even get aregular column started! As faras 'what to write about?', I'llquote Carl Helmers' ampleanswer to this question: 'Iwon't pretend to have aformula answer for thatone . . .

" 'Some suggestions ofgeneral areas come tomind . . .

" 'Project articles on newsoftware, hardware orapplications designs forsystems. Projects which you

44

have completed or have inprogress can be written up forthe use of other subscribers.Don't let that "new"intimidate you, either — if it'snew to you, and you'reenthusiastic about it, then theproject is worth setting downon paper for a try atpublication.

" 'Special interests. Doyour ideas tend to run along aparticular train of thought?Are you a FORTRAN freak,a BASIC fundamentalist, an8008 hacker, a PDP-8 fanatic,a space war addict, a lover ofLIFE, or what have you?Submit an article or "n" toBYTE on your specialinterest, and it could becomean important part of the loreof home brew computing —"bytology" for short.

" 'Surplus equipment. InBoston, there is a wholefraternity of junk men whooften don't know a thingabout the stuff they sell, butwho sell it at pennies on thedollar. Often such stuff isusable in a computer system,with appropriate knowledgeof how to use it. I oncepicked up a $3000 printer for$10 because it didn't looklike a printer, and was left ina heap of junk to rot. Writeup an article on how toconvert particular items ofsurplus equipment to smallsystems use, and you willearn the heartfelt thanks ofall the other byters who canuse your idea. Often thecheapest course to acomputer is an appropriatelysurplus "mainframe" savedfrom a scrap dealer or foundat an auction. But, beware —misadventures can alsohappen, if you're not careful.Don't be ashamed of yourmistakes, though — capitalize— on them by writing upyour experience for BYTE.

" 'Games Byters Play.Fun-type applications makeexcellent articles. [See thebeginning of a series ofarticles on the Game of LIFE,written by Carl, in this issueof BYTE.I There are other

fun programs to be writtenusing a graphics display orother peripherals with aninteractive potential. If youwant some ideas, write us,and we'll suggest one or twoor two hundred — or, if youhave your own ideas, but arepuzzled as to how to putthem into practice, maybe wecan help and the net resultwould be an article in BYTE.

" 'Practical applications.Do you also use your byter'ssystem in your business?Many readers are businessmen— doctors, lawyers,architects, engineers,merchants — who justify theirexpenses by the practical, aswell as the fun, applicationsof their systems. Write anarticle on businessapplications — billing,inventory, mailing lists, profitstatements, etc. Thebusinessmen in the audiencewill surely appreciate it. Bysaving their time and makingtheir businesses moreefficient, your article willhelp improve the commercethat makes all civilizedamenities possible.

" 'Education. Do you havea flair for writing elementarytutorial stuff, with theknowledge to back it up?Write an article or series ofarticles on the basics. As hasbeen pointed out to me inmany letters, the tutorialaspects of design and

programming are not to beskimped on — especially ifyou want to teach yourfriends and associates so youcan talk to them again! Italways gives me a greatsatisfaction to see someonegrasp a principle, discover aconnection, and experiencethe delight of knowledgeattained. With a publishedarticle, although you can'tobserve this at first hand, thefeedback in correspondenceshould be evidence enough.

" 'Reviews. Have you builta computer kit? Write anarticle reviewing yourexperience with the particularkit. Give the manufacturer anobjective treatment — don'tblame him for your mistakes— but also be fair to readersby pointing out relativeadvantages and disadvantagesof the product. .. Did youfind an interesting book oncomputer related objects?Review it for yourcompatriots in the field. Suchbooks include technicalworks as well as fiction andscience fiction alongcomputer lines. (Themicrocomputer itself is so"science fictiony" that manyof my own friends don'treally believe in 'em!)

" 'Human interest andcreative writing. Bytersappreciate the human aspectsof computing. After all,computers are designed, built

The chances are thatyou know a lot aboutsome aspect of com-puters — this is youropportunity to writeand help other readers.The Pitfall: Waitingfor others to write.

Fame (moderate) andFortune (modest) awaityour contribution toBYTE.

45

Send yourarticles to:

BYTE

Box 378

Belmont MA 02178

Make sure yourmanuscript is:

-neatly typed

-double-spaced

-one side of paper

--and includes all

drawings, photos, tables

and other non-text

materials needed.

and used by human beings.There is room for creativewriting, humorous anecdotes,and speculations on theevolution of technology,commentary on computinghistory, etc. Who will be thefirst to submit an article onthe history of HermanHollerith?

" 'This is by no means anexhaustive list of all thepossible topics for BYTEarticles. If you don't see yourown idea in this list ofcategories, we can alwaysmake a category to fit itinto . . . provided you takethe step of getting it down onpaper .... In addition to thestandard articles, we willprint (without charge, ofcourse) information aboutclub meetings, cluborganizers, and individualswilling to help others withtheir home brew systems, inorder to foster the growth ofthe small scale systems idea.'

"Need I say more? And soends our tour. Now thatwe're back in civilization,anyone still interested canfollow me to the idea bar,where we'll drink a few hintsabout wryting for BYTE."

Some How To's of Writing aFeature Article

Here is not the place togive an "exposition on thecom pleat article and itsfashioning." But, if you'vedecided to write a featurearticle, and if the thought ofwriting seems to go againstevery bone in your body,then the following mighthelp. You should feelcompletely free to approachthis task in any way youwant; these ideas are onlysuggestions. But, they haveworked for many people.Here we go . . .

Outline It

Get your ideas down onpaper. Write a few (2 to 5)sentences stating the centralidea of your article; this willbe your abstract. It shouldguide the outline — if you

ever feel lost, return to theabstract and find where topick up. Next, the outline.Write down the main sectionheadings, choosing them fromthe list below, or adding anythat are appropriate.

Introduction: Flesh outyour idea's skeleton, theabstract, relating thenecessary motivation,background, assumptions,and source of ideas for thearticle. For example, youmight tell how the idea cameabout, what previous BYTEarticles your work is basedon, and what kind ofhardware and softwaresystems it requires foroperation.

Overall Design: Discussand outline the general shapeof the sy stem beingpresented. This should be a"principles of operation"discussion at a relatively highlevel (but be practical aboutit), and will usually involve an"overview" of the systemcomponents, their actionsand interactions. Visual aidssuch as block diagrams andflow charts are necessitieshere.

Details of Construction:Whether it be schematics,printed circuit layouts, orprogram listings, the detailsare necessary. If they are justtoo bulky, then this sectionshould cover the system inmore detail than the previoussection, to whatever level ismost helpful.

Construction andDebugging Techniques: Themethod of constructionshould be given here, if it isnot obvious (and don'tassume it is!). Any specialtechniques or touchy areasshould be mentioned, as wellas methods of systemcheckout (give, for example,diagnostic programs orhardware testinginstructions).

Operation Instructions: Ifnot given in the overall designsection, complete operatinginstructions should be listedhere. Present the system as it

appears to a user. Goodexamples of its use are themost helpful documentation.

Conclusion: Write theinevitable ending section (asshort as possible), withmention of possible furtherdevelopments andapplications.

Using the guidelines forthe outline headings above,jot down the main ideasunder each heading. Take theresult, shuffle the headingsand ideas until you'resatisfied with its structure(note cards with a single itemper card are helpful here),and call this your outline.Make a permanenttypewritten version of thisoutline, since it will be yourguide in what follows.

Write It

To write an article is toenter a jungle of a differentnature than the one weexplored earlier. Withoutactually entering this writingpitfall jungle, I can forewarnyou of the most dangerouspitfalls.

"Scribophobia:" This"fear of writing" usuallystrikes at the outset of thejourney. The solution:working directly from theoutline, get a first draftwritten, without stopping toworry about clumsy languageor the niceties of grammar.Write without inhibitions, nomatter how bad it sounds.The important thing is to getthe rough draft written; onceit's done, the rest is easy bycomparison. Prepare diagramsas you go — they should bewritten and revised as anintegral part of the text, notas a concession to formula.

Straying off the Path: Theroad to the end of the writingpitfall jungle is rather narrow,but you have a good map:your outline. Straying from itis asking for literary disaster.The written permanence ofthe outline (did you take myword for it earlier?) shoulddiscourage you from changingit too glibly.

46

Stuffiness: Avoid thisclanger at all costs; don'tconfuse technical excellencewith highbrow phrases andgrammatical ''stuffedshirt"-isms. Although this is amatter of style, and wouldnormally be considered inlater drafts, the first goesmuch easier if you write asthough talking to someoneabout your idea. Don't avoidhumorous touches if that'syour style — they help tokeep up reader interest. Forexample, cartoons that amuseand instruct are a welcomeaid. Be intolerant withcircumlocutions and uselessphraseology. It is clear thatphrases like "it is very clearthat..." are redundant andonly drag down the articlewith dead weight.

Jargon: Be careful of the"in-crowd" approach towriting, which uses jargonand cute phrases unknown tothe outsider. On the otherhand, don't feel obliged todefine common terms orstandard abbreviations (butsee the later section on articleglossaries).

Revise It

Many "How to Write"authors have recommendedthe fermentation method ofrevision. Put thefreshly-typed (or written)rough draft away, and onlycome back to it after a fewdays. This temporal distancegives some objectivity duringthe next step of revision. Thisstep will usually involveseveral "passes" over the text,by yourself and hopefullyothers. Revision involveslooking for spelling, technicaland grammatical accuracy,logical sequence of ideas,consistency of notation, andcompleteness of presentation.For example, during revisionyou may find severalout-of-place colloquialisms, afew spelling errors, or anomitted section on a detail ofconstruction. Try and putyourself in the position of areader who wants to use your

idea: can he or she do so withwhat you've written? Arethere any important butunstated assumptions? Anyconfusing diagrams ordescriptions? Aim to beabsolutely clear in thetechnical details of thearticle.

Shorter Articles

There's really no standardapproach to writing shorterarticles — the possible rangeof such articles is so greatthat it would be difficult toeven hint at their"construction." Carl's sectionon article topics should be asource of some ideas, but myonly further advice is this: ifyou have an idea that's not offeature-article length, thenwrite it in any format youwish, send it in, and we'll tryand fit it in somewhere.

Don't Gloss over the Glossary

Since BYTE is aimed ateveryone in the small systemsworld, from junior highschool experimenters toindustry professionals, a goodfeature of any article is aglossary. Although itcertainly isn't a strictnecessity, a glossary shouldcontain the definitions of anywords, phrases, notions andabbreviations that might beunfamiliar to a good part ofyour intended audience.LIFE Line by Carl Helmers,in this issue, is a goodexample; since his article is(besides other things) atutorial on system design, andis intended for a wiue rangeof readers, Carl has includeddefinitions of software andhardware terms that might beconfusing or "jargon-ish" tothe reader. Carl's glossaryillustrates that definitionsneedn't be boring or dry —any sort of information aboutthe terms being defined canbe useful, i nc I u dinghumorous definitions,anecdotes about derivationsor other uses of a term,stories of your previousconfusion about some phrase

(and how you cleared it up),and so on. If your articlecontains any kind of"side-light" informationabout possibly confusingwords or concepts, then youshould include these"tidbytes" as part of yourglossary.

Send It In!

Some practicalities aboutsubmission of any kind ofarticle: the text should betypewritten (double-spaced,with ample margins) —ifyoudon't type, it's not expensiveto have it done; the point ofinsertion for each diagramshould be clearly marked; theillustrations should be clear

and oversized, if they arereasonably simple — our owntechnical staff can do thefinal drawings; include anyspecial editorial or publishinginstructions in a conspicuousplace; if there's a glossary, itshould be distinguished fromthe main body of text insome way. For featurearticles, include the abstractand outline in the submission— these items are costlesssince they are a "spin-off"from a properly-writtenarticle. Unusually bulkydetailed layouts and listings,although not included in thearticle, should be submitted,since they can be madeavailable separately.

Probably the worst pitfall is puttingoff getting started on your article.Procrastination is the thief of fameand fortune, even in the modestamounts offered by BYTE.

47

THE

CURVE TRACER

THAT WON'T

COLLECT DUST.

The Hickok Model 440semiconductor curve tracer isall purpose-and convenient touse. It's the ideal instrument fortesting, evaluating, classifyingand matching all types oftransistors, FET's and diodes.You'll get stable, full rangedynamic displays that you canaccurately scale right fromthe screen.

■ Pull-out card for easy, fastset-up and operation.

■ Set-up marks for rapid set-upof 80% of tests.

■ Unique INSTA-BETA displaytakes the guesswork out oftransistor and FET parametermeasurement.

■ In-or-out of circuit testing.

■ A full range professionaltracer at a price you can

afford- $1fiC00

AT YOUR DISTRIBUTOR ^JLUil

HICKOK

the value innovator

INSTRUMENTATION & CONTROLS DIVISIONTHE HICKOK ELECTRICAL INSTRUMENT CO10514 Oupont Avenue • Cleveland, Ohio 44108(216) 541-8060 • TWX: 810-421-8286

TROUBLED BY

TRIGGERED

SCOPES?

The Hickok Model 512 DualTrace Oscilloscope eliminatesthe set-up and precisionproblems you've had to acceptusing other triggered scopes.It's easy to set up

■ Simplified color-coded front panelcontrols.

■ Beam finder quickly locates off-scaletraces.

■ Foolproof triggering to 15 MHz.It gives you superior performance

■ 10 MHz response flat within 3dB.Excellent pulse response.

■ 3% accuracy on vertical and hori-zontal ranger.

Hickok industrial lab quality and con-struction

Glass epoxy PC boards used through-out. Regulated power supply.

AT YOUR DISTRIBUTOR %}§ O

complete with probes and accessories

HICKOK

the value innovator

INSTRUMENTATION & CONTROLS DIVISIONTHE HICKOK ELECTRICAL INSTRUMENT CO.10514 Dupont Avenue • Cleveland, Ohio 44108C216) 541-8060 • TWX: 810-421-8286

48

A PRECISIONWAVEFORM

GENERATOR

AT A PRICE YOU

CAN AFFORD.

The Hickok

Model 270 Function Generatorgives you a lot more waveformgenerating capability than you'dexpect for its price.

■ Puts stable, calibrated, highquality sine, square andtriangle waveforms from 1 Hzto 500 kHz at your fingertips.

■ With external connectionsyou can produce logicpulses, sweeps and ramps,AM and FM outputs, phaseand frequency shift keyingsignals, tone bursts and more.

■ Its an audio generator andmuch more.

AT YOUR DISTRIBUTOR

$166

oo

HICKOK

the value innovator

INSTRUMENTATION & CONTROLS DIVISIONTHE HICKOK ELECTRICAL INSTRUMENT CO10514 Dupont Avenue • Cleveland. Ohio 44108(216) 541-80S0 • TWX: 810-421-8286

DIGITAL

PERFORMANCE

YOU CAN RELY ON

The Hickok Model 334 DMM isa rugged, non-temperamental,hardworking tool that's easy touse and easy on your eyes.Hickok has established a uniquereputation in digital electronicsduring the past 10 years. TheModel 334 is another exampleof our engineering expertise —an economical lab qualityinstrument with exceptionaldurability and accuracy.

■ Easy reading, greenfluorescent display

■ 31/2 digit — auto polarity

■ 26 ranges including 200 mVAC & DC ranges

■ Fast response —2.5 readings/sec

Basic Accuracies (% of reading)DC Volts; ±0.2% (±0.5% on 200V,1200V ranges)AC Volts; ±0.5% (±2.0% on200 mV, 2V ranges)OHMS; ±0.5%DC Current; ±1.5%AC Current; ±2.0%

AT YOUR DISTRIBUTOR

$22900

HICKOK

the value innovator

INSTRUMENTATION & CONTROLS DIVISIONTHE HICKOK ELECTRICAL INSTRUMENT CO.10514 Dupont Avenue • Cleveland, Ohio 44108(216) 541-8060 • TWX: 810-421-8286

49

utey

o

ASSEMBLER

To date I have not seenany detail descriptions ofhome brew self assemblersystems for microcomputerssuch as the 8008, 8080, 6800or PACE. Maybe DanFylstra's description ofassemblers will start a fewreaders off in that direction.Dan describes in general

terms what assemblers do,scanning techniques, symboltables, hashing methods andsome of the more advanced"bells and whistles" youmight employ. Use Dan'sarticle as a source of ideas onthe organization and featuresfor your own assemblersoftware designs. . . . CARL

by

Dan Fylstra

14B

550 Memorial Drive

Cambridge

MA 02139

50

If you have done any workwith microcomputers, youhave doubtless seen programswritten in assembly language.You probably know thatassembly language programsmust be translated intomachine language before theycan be executed on thecomputer. The translation isusually performed by anotherprogram, called an"assembler." Becauseassembly language lets youwrite mnemonic (easilyremembered) names forinstructions and data, ratherthan binary codes, programsmay be written more quicklyand with fewer errors. Theassembler does the tediousjob of putting together, orassembling, all of the right bitpatterns to make up theprogram in machine language.

Most of the assemblerspresently available formicrocomputers arecross-assemblers: They run onbig computers or time-sharingsystems, and produce outputwhich must be loaded insome way into themicrocomputer system.Commercial time-sharingservices are expensive, andthe whole point of having ahome computer is to be ableto perform computing chores,such as program assembly, onyour own system at ultra-lowcost. Since a residentassembler — one which runson your own micro system —may be unavailable or verycostly, you might beinterested in writing yourown assembler. By doing ityourself you can learn a lotabout programming andsoftware design as well as thespecs of your ownmicrocomputer, save yourselfthe cost of programdevelopment, and produce acustomized language suited toyour own needs or fancies.And who knows? — youmight even find that otherhobbyists or microcomputerusers might be willing to payyou for a copy of theassembler program that youhad so much fun writing.

Now, it's only fair to warnyou that writing an assembleris a big undertaking — you'llneed a fair amount of timeand perhaps some extra RAMchips to accommodate thefinished product. But suchobstacles have never stoppedanyone with your boundlessenthusiasm. So the onlyquestion is, how do you goabout writing an assembler?That's the sort of questionthat BYTE magazine isdesigned to answer, and that'swhat this article is all about.

What Does an Assembler Do?To answer this question,we have to take a look atsome typical machineinstructions and how theymight be written in assemblylanguage. A machineinstruction usually consists ofa binary code for someoperation, such as addition,and one or more binarynumbers denoting the"operands" of the operation.The binary number for anoperand may have either oftwo interpretations: It maydenote the binary value of,say, a number, or the ASCIIcode of a character, or it maydenote the binary address ofa memory location whichholds the actual value of theoperand. For example, on theMotorola 6800 the bitpattern

1000 1011 0011 0000

opcode

operand

means "add the number 48(00110000 in binary) to theA accumulator." This mightbe represented in assemblylanguage as

ADDA #48

— note how much moreconvenient it is to writethings this way! In contrast,the bit pattern:

1001 1011 0011 0000

means "add the 8-bit numberfound in memory location 48to the A accumulator." Thismight be written in assemblylanguage as

ADDA BETA

where it so happened that,just after the last instructionof a program which was 48bytes long, the programmerhad also written

BETA RMB 1

meaning "reserve 1 memorybyte at this point, and call itBETA."

These examples illustratethe basic functions of anassembler. In the first case,the instruction's operand wasthe actual number to beadded. (This is often called an"immediate operand.") The

The assembler does the tedious job of puttingtogether, or assembling, all of the right bit patterns tomake up the program in machine language.

start at location 0. Heindicated this by means ofthe mnemonic RMB, for"reserve memory byte."Since this assembly languagestatement doesn't actuallyrepresent an instruction, butinstead tells the assemblerwhat to do, it is often called a"pseudo-op." The assemblerread the entire program,counting up the number ofbytes that the subroutinewould take, and determinedthat the address of the

take, and furthermore itdoesn't know (yet) that thememory location BETA issupposed to be reserved justafter the subroutine, since ithasn't seen the RMBpseudo-op."

Forward Reference

Fig. 1 illustrates a problemcommon to all assemblers andcompilers, often called the"forward reference problem."There is no neat way out ofit. In this case, the

Fig. 1. The Forward Reference Problem

opcode

operand

assembler read the characters"ADDA" and substituted theproper binary opcode10001011, and converted thedecimal number 48 to itsbinary equivalent, 00110000.In the second case, theinstruction's operand was theaddress of a memorylocation. The programmercalled this memory locationBETA and decided to put itafter the instructions of asubroutine, which was to

memory location calledBETA was therefore 48, or00110000 in binary. Itassembled this address intothe instruction.

All well and good. But,being an alert reader, you ask,"Wait a minute! What if theADDA instruction is in themiddle of the subroutine?When the assembler reads theADDA instruction, it doesn'tknow how many bytes therest of the subroutine will

programmer could havereserved the memory locationBETA before the subroutinerather than after it. Butsuppose that the subroutinehad included a "jump" or "goto" statement:

IMP

NEXT

NEXT ADDA #7

51

A two-pass assemblersolves the forwardreference problem byreading the programtwice.

It is rather impractical to tryto write every programwithout any forward jumps!

There are basically twoways to cope with thisproblem. The first is to readthe program once, but tokeep sections of the programin memory until all forwardreferences are resolved. SinceRAM costs us money in amicrocomputer system, wewill reject this approach. Thesecond alternative is to readthe program twice; anassembler which adopts thisstrategy is called a two-passassembler. This approach isslow, but it's also cheap, andthat's what we want!

The first time that such anassembler reads the program(i.e., on the first pass), itsimply I oo ks at theinstruction mnemonics,counts up the number oflocations that eachinstruction will take, andbuilds a symbol table inmemory which lists all of theprogrammer defined namesfor memory locations andtheir corresponding addresses.(We need RAM for this, butnot so much as would berequired for the firstapproach.) This process is(somewhat fancifully)illustrated in Fig. 2. Noticethat the assembler picks uponly the statement labels,ignoring (for the purposes ofPass 1) appearances of the

same symbols in the operandfields of instructions.

On the second pass, binaryopcodes are substituted forthe instruction mnemonics,constants are converted totheir binary representation,and programmer definednames are replaced by theiractual memory addresses,found in the symbol table.This is illustrated in Fig. 3.Any name appearing in theoperand field of aninstruction which is notalready in the symbol tableon Pass 2 is undefined in theprogram, and will cause anerror message. One othernote: looking up the binaryopcode for an instructionmnemonic is essentially thesame process as looking upthe address for a programmerdefined name, so the symboltable can be used for bothpurposes.

It should be pretty clearby now that an assemblerspends most of its time 1)scanning characters, lookingfor names, numbers andpunctuation symbols, and 2)building and searching thesymbol table. If we can findsimple and efficient ways ofperforming these operations,and avoid getting themhopelessly intertwined withthe rest of the program logic,we should come out with afairly decent assembler. Solet's now take a look atprogramming techniques forscanning and searchingsymbol tables.

Scanning Techniques

Our assembler's first taskis to scan the charactersmaking up an assemblylanguage program, and findthings such as instructionmnemonics, constants andprogrammer defined names,while noticing but generallyignoring such things asblanks, punctuation symbolsand comments. The amateurprogrammer's first impulseusually is to plunge in bywriting a series of tests andbranches to handle various

Fig. 2. PASS 1 picks up the labels.

sequences of characters whichmay appear on a line. Thisapproach frequently leads tothe type of scanner known asa "kluge." The computerscientist, on the other hand,has nothing but contempt forthis "il l-structu red"approach, and prefers towork with regular expressionsor right-linear grammars andfinite automata. We will takea middle course, outliningsome programmingtechniques that will helpmake a hand implementedscanner simpler, smaller andfaster.

The first technique, if youare designing your ownassembly language, is to makeit simple to scan! Anassembly language statementusually consists of anoptional statement label(which then represents theaddress of the location intowhich the instruction isassembled), an instructionmnemonic, an operand field,and room for comments.

A typical example would be:

Some assemblers require eachelement of an assemblylanguage statement to beginin a fixed column orcharacter position of a line,so that the problem oflocating the elements forscanning is greatly simplified.However, this is a little roughon the assembly languageuser, and you will probablysave yourself time in the longrun by implementing aslightly more complexscanner. To permit a moreflexible format, one may takeeither the "IBM approach,"in which a statement labelmust begin in column 1, aninstruction mnemonic mustbe preceded by at least oneblank, and comments areseparated from operands by ablank; or the "DECapproach,'' in whichstatement labels are followedby a colon (or otherpunctuation symbol), andcomments are preceded by asemicolon. The "DECapproach" is somewhat more

EVAL

LDAA

BETA

statement instruction operandlabel mnemonic field

BEGIN FUNCTIONEVALUATION

comments

52

Fig. 3. PASS 2 generates code referencing labels.

convenient and lesserror-prone for the user, butis slightly harder to analyze.For instance, one must bewilling to scan a string ofalphameric charactersfollowed by blanks, waitingfor a colon or an alphabeticcharacter in order to decidewhether the string was astatement label or an in-struction mnemonic.

Sometimes a decision as towhat to do next must bemade on the basis of the typeof the next (non-blank)character. If severalalternatives are possible, onewould like to use a "jumptable," or an array of branchaddresses indexed by thecharacter code, instead of asequence of charactercomparisons. But the ASCIIcharacter set allows for 128different character codes, ofwhich only about 45 are usedin assembly languagestatements. Hence, a commontechnique for complexscanning problems is to firsttranslate from ASCII to amore convenient set ofcharacter codes, using a 128byte character translationtable. The new charactercodes can be chosen so as tofacilitate the use of jumptables at other points.

The elements of anassembly language statement(names, mnemonics and

constants) generally consistof variable length characterstrings, separated by avariable number of blanks.Present-day computers,however, are more adept athandling fixed size objectssuch as bytes or words. Sothe most important techniqueyou can use to keep yourscanner coherent is to write a"next token" routine, whichscans off an alphamericstring, a constant (e.g., astring of digits) or apunctuation symbol each

time it is called. This routineshould return a code for thetype of item or token justscanned (say, 1 foralphameric strings, 2 for digitstrings, 3 for a colon, 4 for acomma, and so on), and afixed-size descriptor givingthe address of the firstcharacter and the number ofcharacters in the string.

Fig. 4 illustratesdescriptors for the statementlabel, instruction mnemonic,and operand of a typicalassembly language statement.

Descriptors for characterstrings are handy for anumber of pu rposes.Character string move andcomparison routines can bewritten which take twodescriptors as arguments.Output I ines can beconstructed from a sequenceof descriptors, and errormessages can also be handledin this way. By storing thefixed-size descriptors in thesymbol table and thecharacter strings themselvesin another area, you canavoid the arbitrary restrictionon the length of names to sixor eight characters found inmany assemblers.

Even more important, the

Fig. 4. Descriptors Identify Text Tokens in a Line of Characters.

f— length

■— location

II I

4

302

1

4

308

1

1

r "

<»

m

(0

r»

00

1 o

o

o

o

o

o

{*> 1

1 o

("5

m

M

M

m

CO

use of a "next token" routineseparates the details ofscanning individual charactersfrom the problem of decidinghow to process each elementof a statement. The symboltable routines describedbelow similarly separate thedetails of identifyingparticular names andmnemonics from the otherproblems of processing. Theseare examples of the use ofmodularity and hierarchicalstructure to organize thesolution of a complexproblem.

Enough in the way ofgeneralizations andphilosophy; let's get on withan example to see how all thisworks. Fig. 5 shows the flowof information from acharacter code translationroutine, to a next tokenroutine, to a routine whichdetermines the type ofstatement from theinstruction mnemonic using asymbol table lookupsubroutine. Assemblylanguage for the Intel 8080has been used in thisexample. Lower case lettersare translated to upper case,and the codes for digits (0-9)and letters (A=10, B= 11,.. .,

1

315

1

■a-

53

Fig. 5. Typical (8080) Character Translate and Next Token Routines

STATEMENT

TYPE

DETERMINATION

ROUTINE

CHARACTER

CODE

TRANSLATION

ROUTINE

LOOP:

BRTAB:

LETTER:

SCAN:

'NEXT TOKEN"ROUTINE

SYMBOL

TABLE

LOOKUP

ROUTINE

CHARACTER TRANSLATION ROUTINE

MVI

LXI

MVI

LDAX

MOV

MOV

STAX

I NX

DCR

JNZ

H,TABLE

D, LINE

C,72

D

L,

A,

D

D

C

LOOP

A

,M

H -» page holding tableDE ■» begin of lineC = length of lineget next char of lineL = character code indexA = table entry at indexreplace char in lineadvance to next charreduce no. chars remainingloop for all 72 chars

'NEXT TOKEN" ROUTINE

LXI

LDAX

RLC

MOV

MVI

DAD

PCHL

JMP

JMP

JMP

JMP

XCHG

SHLD

MVI

MVI

INX

INR

CMP

JP

LXI

MOV

BRTAB

H -• branch table base

get translated char from line

times 2 for branch table index

set up 16-bit index

in registers B and C

add to branch table base

jump to appropriate routine

LETTERDIGITCOLONCOMMA

DESCR + 1

A, 36

C,0

H

C

M

SCAN

H, DESCR

M, C

HL -> begin of alpha string

put start addr in descriptor

max translated code for alphameric

initialize count of chars in string

advance to next character

increase character count

code < max for Alphanumeric

continue scan if so

HL * length part of descriptor

put in no. chars in string

Z=35) are chosen so thatalphameric and digit stringscan be scanned off using asingle comparison for eachcharacter. Note the use of ajump table "BRTAB" toselect the appropriatehandling routine for the nextcharacter in the next tokenroutine. Descriptors arereturned to the statementtype determination routine,and are passed on to thesymbol table lookup routinewhich uses them in charactercomparisons. The problem ofdistinguishing statementlabels followed by a colon ishandled easily at this level:The next token is obtained,and its descriptor is saved; thenext token is obtained, andits code is tested; if a colonhas been found, the saveddescriptor is passed to thesymbol table lookup routine,and two more tokens areobtained to balance thingsout before the instructionmnemonic is processed.

Symbol Tables

The greatest conveniencethat an assembler provides forthe programmer is the abilityto give names to memorylocations and to refer tothose names from otherpoints in the program. Theassembler determines theproper address of thememory location, and fills inthe address wherever thename is referenced.

The assembleraccomplishes this by buildinga symbol table on its firstpass. Each entry of thesymbol table contains aprogrammer defined name incharacter string form, and thebinary address correspondingto it. In addition, the symboltable may contain othercharacter string names, suchas the instruction mnemonicsor assembler pseudo-ops. Theentry for an instructionmnemonic would contain thecorresponding binary opcode,and the entry for a pseudo-opmight contain the address ofa processing routine in the

54

Fig. 6. An Array Symbol Table.

453

A

B

C

T

H

E

T

A

N

E

X

T

assembler itself. For acomputer with severaldifferent instruction formats,the entry for an instructionmnemonic might also containa type code indicating theproper format for thisinstruction, the number ofoperands expected, and theinterpretation of theoperands as addresses orvalues.

The simplest way oforganizing the symbol tablewould be as an array ofdescriptors and addresswords, as illustrated in Fig. 6.Entries are added sequentiallyto the array during Pass 1.and a sequential search of thewhole array is used to findthe addresses ofprogrammer defined namesduring Pass 2. (Eachdescriptor from the table ispassed in turn to a charactercomparison routine, alongwith the descriptor for anoperand. The comparisonfails immediately if the stringlengths in the descriptorswere unequal.) This type oforganization has the greatvirtue of simplicity, and isprobably adequate for a firstversion of your ownassembler. As the programs tobe assembled get longer,however, the asembler willspend an increasing fractionof its time searching thesymbol table. A faster way ofsearching the table is needed.

Think about how y'ouwould go about such a search,if you were the assembler.What do you do when youopen a dictionary or atelephone book? Knowing

the order of the alphabet andthe thickness of the book,you look at the first characteror two of the word, youmake a guess at theapproximate page, open thebook to that page, and beginsearching from that point.

Let's have the assemblerdo the same sort of thing. Wewill divide up the table intotwenty-six sections, one fornames beginning with eachletter of the alphabet. Weknow the starting address of

each section of the table (wecan make a small array of thetwenty-six starting addresses),so to look up a name, welook at its first character, goto the appropriate sectionand search just that sectionrather than the whole table.

This approach is depictedin Fig. 7.

This is a good first try, butthere are some drawbacks. Ina program called "assembler,"say, you might have a lot ofnames beginning with A,

while in a program called"editor," you might havemany names starting with E.On the other hand, yourfriend Zaborowski might startall of his names with Z.Should all of the sections beof the same size? If not, howdo you know (at thebeginning of an assembly)which sections to makelarger? If a section becomesfilled, we can simply add theextra names to the nextsection of the table; now,

Fig. 7. An Alphabetically Indexed Symbol Table

'ALPHA''ADDA'

'BETA'

'CAT

'CRADLE'

'CALL'

'ZABOROWSKI'

55

What happens if we usea random assortment ofthe names, placingthem haphazardly intothe various sections ofthe table?

however, if a name to belooked up on Pass 2 is notfound in its original section,most of the following sectionwill have to be searchedbefore the name is found.This phenomenon is called"clustering." Your friendZaborowski is especiallylikely to run into thisproblem, and even if youmake the Z section largeenough, searching the symboltable will take just as longusing the new approach as itdid with the old one.

Can we overcome thesedrawbacks of the newmethod? Here's where a littlelateral thinking will help. Weare making use of ourknowledge of the ordering ofthe alphabet. Try theopposite approach: Whathappens if we use a randomassortment of the names,placing them haphazardlyinto the various sections ofthe table? At first this soundsabsurd, but on closerexamination we realize that itsolves the problem! Theproblem arose because peopleare fairly likely to choose aset of names which arerelated in the alphabeticordering; by using a randomly

chosen ordering, we canminimize the likelihood thata large number of symbolswill be placed in a singlesection of the table. Thistechnique, which is called"hashing" or ' 'hashaddressing" for obviousreasons, is used in mostmodern assemblers andcompilers.

So, instead of using thefirst character of a name toselect the proper section ofthe table, we will use arandom assortment of bits, oran arbitrary function of thebit pattern of the entirename, to select a startingpoint in the table. A functionof this sort is called a "hashfunction". So long as thefunction's possible values areevenly distributed over therange of addresses for tableentries, the problem of the

"clustering" or grouping ofnames will be minimized.

An example of a hashfunction which usually givesgood results is to addtogether all of the bytes of acharacter string, ignoringoverflow, or else to"exclusive or" the bytestogether.

Similarly, in order tominimize the clustering ofnames which hash to thesame starting address, we can"re-hash" the names so as torandomly distribute themaround the table. Such amethod is called a "randomrehash." The followingmethod is easy to implement,efficient, and works wellwhen the table size is a powerof 2, say 2**fc (see Morris):Suppose a name initiallyhashes to table entry h, whichis already occupied by

Fig. 8. Hashing Symbol Table Descriptors.

DESCRIPTORS

another name. Initialize avariable R to 1. To rehash thename:

1. Set R = R*5 (shift lefttwo bits, and add to theoriginal number).

2. Mask out all but thelow-order k+2 bits of R, andsave this as the new R.

3. Shift R right 2 bits andadd it to h to get the nexttable entry h. If this entry isoccupied, rehash the nameagain.

To find a name in thetable during Pass 2, we simplyhash and rehash in exactlythe same way, this timecomparing each table entry hagainst the name to be found.The remarkable fact aboutthis algorithm is that thenumber of comparisonsneeded to find an entry, onthe average, depends only onhow full the table is and noton how large it is. Even whenthe table is 90% full, onlyabout 2.56 comparisons willbe needed, on the average. Incontrast, for a nearly fulltable of 512 entries, thesequential search methoddescribed earlier would takean average of 256comparisons to find a name,or about 100 times as long!

Random rehashing isillustrated in Fig. 8. The firstname to hash to table entry12, for example, would bestored there, while the nextname whose hash functionvalue was 12 would berehashed to table entry 13,and the next one would berehashed twice and finallystored in table entry 3.

We have only describedone method of hashing here;several other variations arepossible. The most importantof these is called "hashingwith overflow chaining," inwhich all of the names whichhash to the same startingaddress are chained togetheron a linked list. This method,which is often used on largecomputers with dynamicstorage allocation, is lesssuitable for microcomputersbecause it requires an extra

56

address field for each symboltable entry. The references atthe end of this article can beconsulted for a morecomplete discussion ofhashing.

Now that you havebecome acquainted withsome of the basicprogramming techniques usedfor scanning and searchingsymbol tables, you're aboutready to start writing yourown assembler! You mightwant to actually try this,using the simplest techniquesoutlined in this article:Perhaps a fixed-columnscanner and a sequentiallysearched symbol table for afirst version. Very often,when it comes to actuallygetting a program up andrunning, the simple-mindedapproach turns out to be theone that works best. Onceyou've got a basic assemblerworking, you can consideradding some of the featuresthat we'll discuss next.

More Assembler Features

Up to this point, we havebeen concerned with only thebasic functions of anassembler: The conversion of

Very <

jften, when it

comes

to actually

getting

a program up

and

running, the

simp

1 e - m i n d e d

approach turns out to

be the

one that works

best.

mnemonics andprogrammer defined names toinstruction opcodes andaddresses. Many otherfeatures can be added to anassembly language to make iteven more convenient forprogramming. Some of themore useful features of thiskind will be considered here.

Defining Constants

Most assembly languageshave pseudo-ops which directthe assembler to reserve oneor more locations containingconstant values. For example,the Motorola 6800 assemblylanguage has a pseudo-opFCB, for "form constantbyte." An example of its usewould be

FCB 23,$FA

which would reserve twobytes containing 00010111(23 in decimal) and111110 10 (FA inhexadecimal or base sixteen).Sometimes an instructiontakes its operand in amemory location (rather thanas an "immediate" operand),but the operand itself isactually a constant. Insteadof writing

ADDA THREE

THREE FCB 3

we would like to be able towrite

ADDA =3

and have the assemblerautomatically reserve amemory location containing3, and assemble its addressinto the instruction. Such aninstruction operand is called a"literal." On machines wheresome instructions can addressonly a limited range ofmemory locations, thisfeature may be difficult toimplement.

Equivalences

It is often convenient to

be able to define a symbolwith a constant value, or withthe same value as anothersymbol. For example, aconstant representing, say,the size of an array, may beused at several points in aprogram. By using a symbolin place of the constantthroughout the program, anddefining the symbol'sconstant value at thebeginning of the program, wecan make it easier to changethe size of the array whenproducing a new version:Only the symbol need beredefined, and its new valuewill be substituted at theappropriate points by thenormal process of assembly.(This is called "parameter-izing" the program.) Thisfeature is not too difficult toimplement, and mostassemblers have a pseudo-opsuch as

SIZE EQU 25

which allows us to write

LDAA #SIZE

ARRAY RMB SIZE

or, in general to use thesymbol SIZE wherever theconstant 25 could appear.

Expression Evaluation

Besides defining constantsand constant-valued symbolsin a program, it is frequentlyuseful to be able to combinesuch elements into arithmeticexpressions whose values canbe computed at assemblytime, and to use those valuesin place of other constants.For example, the same

program with a parameterSIZE for the size of an arraymight include statementssuch as

ADDA #SIZE-1

SPACE EQU 3*SIZE+1

which would specify (forSIZE=25) that 24 should beadded to the A accumulator,and that SPACE should havethe constant value 76wherever it appears in theprogram.

It is remarkably easy toevaluate expressions of thiskind, taking account ofparentheses and the normalprecedence of arithmeticoperations. An algorithm toperform the evaluation ofsuch expressions will be thesubject of an article in a laterissue of BYTE; if you areimpatient, you can consultMealy or Gries (see thereferences).

Conditional Assembly

We saw how a programcould be parameterized bythe use of equivalencedsymbols and arithmeticexpressions. Sometimes aprogram can beparameterized in anotherway: Entire sections of theprogram can be included oromitted, depending on thevalues of certain parameters.For example, if the maximumvalue of a certain variable isless than 256, it can be storedin a single byte on mostmachines; but if themaximum value is 256 ormore, two bytes or a wordmust be used. Thus we mightwish to write something like

ARRAY

ARRAY

.IF

MAXVAL LT 256

RMB

SIZE

.END

.IF

MAXVAL GE 256

RMB

2*SIZE

.END

57

with the intent that, if anearlier EQU pseudo-op haddefined MAXVAL as, say,200, the first RMB statementwould be assembled, while ifMAXVAL had been definedas, say, 400, the second RMBwould be assembled.

This feature is not toodifficult to implement, and itis extremely useful. Theassembler must simplyrecognize the .IF and .ENDpseudo-ops, evaluate therelations, and skip theintervening text on bothpasses if the relation is false.It is easy to imagine (butsomewhat more difficult toimplement) extensions to thisfeature, such as the repetitiveassembly of certain programsegments.

Macros and Relocation

The most sophisticatedassemblers are comparable tocompilers in complexity, sizeand versatility. Someassemblers implement amacro facility, which enablesthe programmer to definenew instruction mnemonics

which are replaced byparameterized sequences ofassembly language statementswherever they appear in theprogram. When combinedwith features for conditionalassembly, a macro facilityprovides a powerful tool forextending an assemblylanguage to suit it for aparticular application.

We have discussed onlyabsolute assemblers: Webegan by assuming that theprogram was to be assembledstarting at location 0 (orsome other fixed location).When the program is going tobe loaded into memory alongwith other, previouslyassembled programs,however, we don't know howbig the other programs are orin which order they will beloaded. In this case it isnecessary to put outrelocation information alongwith the assembled program,which says, in effect, "If youload this program at locationm, you should add thenumber m to the followingbytes or words in order to

make the addresses come outright." This relocationinformation is processed by aloader, which is responsiblefor loading all of the relatedprograms into memory.

While both of these topicsare interesting and veryimportant, many pages wouldbe required to do themjustice and this article ispretty long already! So we'llcontent ourselves with thetopics already discussed. Bythis time, you probably haveeither decided that writing anassembler is too much work,and have stopped reading thisarticle, or else you havefound the whole idea veryintriguing and are lookingforward for the last word. Sohere it is: Now that youknow how to write anassembler, why not get outand give it a try? You havenothing to lose but yourinnocence about thecomplexities of systemsoftware, and perhaps a littleof your time.

Good luck!

Now that you knowhow to write anassembler, why not getout and give it a try?

References

Barron, D. W. Assemblersand Loaders. AmericanElsevier (ComputerMonograph Series, No. 6),New York, 1969.

The most complete,readily available text on thedesign of assemblers andloaders; also describesone-pass assemblers andmeta-assemblers.

Gries, David. CompilerConstruction for DigitalComputers. Wiley, New York,1971.

A highly recommendedtext on compiler design:Covers both the theoreticaland practical aspects of theproblem. Includes a gooddiscussion of hashing andmore sophisticated methodsof scanning.

Mealy, George. "AGeneralized Assembly System(Excerpts)," in Saul Rosen(ed.), Programming Systemsand Languages. McGraw-Hill,New York, 1967.

A classic paper by one ofthe pioneers of languagetranslators and operatingsystems. Presents the idea ofdescriptors for characterstrings as well as many otherinnovations.

Morris, R. "ScatterStorage Techniques," inCommunications of the ACM11:1 (January 1968), pp.38-44.

One of the best generalsurveys of hashingtechniques; includes a good,brief description of hashingwith overflow chaining.

58

RlGS ELECTROINlflCS

DISCOUNTS: 10% OFF ORDERS OVER $25.00; 20% OFF ORDERS OVER $250.00.

SPECIAL

1-8008

8-2102

ANOTHER POWER SUPPLY . . .

PS 25-1 0 to 25v 1a lab type power supply with adjustable currentlimiting; remote sensing & remote programming for voltage & current.Insturctions included. All parts except chassis, meter(s), p.c. board.Kit of parts with schematics. S14.95

P.C. boards available, No. 007 $3.00 ea.

2K RAM BOARD KIT. ALLPARTSINCL. SOCKETS

$84.50

ICs

8008 MICROCOMP. CHIP$30.952102 1K STATIC RAM 3.00

5203 256x8 PROM 15.00

5204 512x8 PROM 25.00

INFO ON ABOVE CHIPS IFASKED FOR.

ORDERS OF $50 ORMORE GET FREE BYTESUBSCRIPTION IF ASKEDFOR (CONTINENTAL U.S.ONL Y).

008A MICROCOMPUTER KIT

8008 CPU, 1024 x 8 memory; memory is expand-able. Kit includes manual with schematic, program-ming instructions and suggestions; all ICs and partssupplied except cabinet, fuses & hardware. Includesp.c. board. $375.00

MANUAL ONLY, $25.00(no discount on manual)

008A-K ASCII keyboard input kit. $135.00

008A-C Audio cassette adapter kit. $100.00

Details on computer, peripheral kits in our flyer.

RGS ELECTRONICS3650 Charles St., Suite K ■ Santa Clara, CA 95050 ■ (408) 247-0158

We sell many ICs and components not listed in this ad. Send a stamp for our free flyer. TERMS OF SALE:All orders prepaid; we pay postage. SI.00 handling charge on orders under SI0.00. California residents pleaseinclude sales tax. Please include name, address and zip code on all orders and flyer requests. Prices subject tochange without notice.

59

TERMS AND ALL THAT STUFF:

ADD 50* TO ORDERS UNDER $10.CALIFORNIANS ADD TAX. ITEMSIN THIS AD SHIPPED POSTPAID.SORRY, NO COD ORDERS TAKEN.

BILL GODBOUT ELECTRONICSBOX 2355, OAKLAND AIRPORT, CA 94614

FLYER HYPE: THIS AD SHOWSONLY THE TIP OF THE ICE-BERG. SEND US YOUR NAME, ASTAMP, AND YOUR ADDRESS TORECEIVE OUR FREE FLYER.

NOW,,.CALL (415) 357-7007, 24 HOURS A DAY, TO FLACI MASTERCHARGE OR 3ANKAMERICARD ORDERS

610O

Several months ago, in conjunction withSolid State Music, we put our our firstcomputer type kit—a 'tK by 8 bit memo-ry board. The response has been great;but it's time to move on to newer andbigger things, so we're closing out theones we have left. Compatible with theMK-8 and other micros; supplied with a86) pin standard edge connector, socketsfor all ICs; features plated - throughholes, proper bypassing, flexible ad-dressing, and more. Board is 6i" x 9i".

61.5Q

641.95

DIP SWITCH -- These programmingswitches have 7 miniature SPSTswitches per DIP package. Idealfor computer/digital hobbyists.

Thought you couldn't afford to wire wrap?Think again. Cordless for convenient op-eration. Complete with rechargeable bat-teries, charger, bit, and instructions;ready to go as soon as the batteries arecharged.

"2102" 1024 X 1 BIT RAM -- SINGLE +5 VOLT SUPPLY; STATIC OPERATION; FAST ACCESS. $1,95lC "8008" 8 BIT MICROPROCESSOR -- POPULAR 8 BIT PROCESSOR IC. $27.95

V^5 "5203" ERASEABLE ROM -- ORGANIZE AS 4 X 512 OR 8 X 256 BIT MEMORY. STATIC AND NON-VOL-ATILE; FULLY PROGRAMMABLE AND ERASEABLE. NO CLOCK OR REFRESH REQUIRED. $14.50

<3*A povamw

available

We can program your 5203s, 1702s, andother ROMs for $7.50 a piece, or 10/$35.00. Call our 24 hour phone lineto request hexadecimal coding forms.

00^22 Hfe

This is a flat, multiconductor wire,available in multiples of 10 conduc-tors up to 100 conductors. Comes in20 ft. lengths only. Cost is If perconductor foot; for example , a 20conductor cable 20 ft. long = $4.00

MHIIM

NOM-VOLATILE STORAGE

-—Lithium Core—-750 Ns Full Cycle Time---350 Ns Access Time—3 Wires: X & Y Drive,

Sense/Inhibit Lines---Diode Decode Matrix On

Board; Prints Supplied

For Drive Electronics

And Sense Amps—For 8 & 16 Bit Machines

& stocks #

docfcef

W^^SiL

We made a special purchase of PC mountsoldertail sockets, including discon-tinued types and some that need higherthan spec insertion force. Brand newfrom a leading manufacturer of qualityIC sockets.

(G)=gold plate contacts (T)=bright tin

T 14 pin 11/$1.95

G 14 pin 10/$1.95

T 24 pin 5/$1.95

T 28 pin 5/$1.95

T 40 pin 5/$2.95Low profile type sockets:

G 16 pin 10/$1.95

G 40 pin 5/$2.95

————————

—————————————————

GOOD LUCK, BYTE WE'RE GLAD TO SEE A MAGAZINE FOR THE COMPUTER CROWD!

CAVE

Tri-share is a trademark of National Semiconductor

—————————■■■—>■■■■■■■>■■■■>———————

I————«

•

WE ARE PROUD TO OFFER THIS EXCITING IC TO THE COM-PUTER ENTHUSIAST. IT'S A 10 PIN DIP WITH TRI-SHAREAND A POWERFUL INSTRUCTION SET. FAST AND EASY TOPROGRAM; HAS ASSEMBLER 8 EDITOR READILY AVAILABLE.

FROM NATIONAL SEMICONDUCTOR, "THE SECRET MICROCOM-PUTER COMPANY".

AVAILABLE SEPT. 1 - $125

BELOW IS AN ARTIST'S CONCEPT OF THE MICROCOMPUTERKIT WE'VE WRAPPED AROUND OUR PACE CHIP. YOU'LL AP-PRECIATE THE 7 SEGMENT READOUTS FOR EASY OCTAL DE-BUGGING ON BOTH ADDRESS AND DATA, AS WELL AS THEINTEGRAL AUDIO CASSETTE AND SERIAL/TELETYPE INTER-FACES... PLUS 2K BYTES OF INTEGRAL MEMORY.WE DO, HOWEVER, NEED A NAME FOR THE BEAST. SENDUS YOUR IDEA—IF WE USE IT, YOU WIN A FREE KIT.

A\AIL. SEPT. 1-Write for details!

DECIPHERING

• • • • •

S A N ;

MYSTERY KEYBOARDS

Did you ever wonder about the use of surplus keyboardsfor use in your system? Here is an article describing one wayto analyze such a keyboard — illustrated by a particular modelwhich is available through one of BYTE's advertisers. Do youuse a surplus keyboard already? This is one of the mostcommon and usable of surplus subsystems — I'd like to see afew reader submitted articles on use of various keyboardsavailable in surplus channels. . . . CARL

by

Carl Helmers

Editor, BYTE

One of the best sources ofinput data for your homebrew computer system is thetypewriter style keyboarddevice. A decent keyboardwill give you the ability toenter parallel character data 8bits at a time. The typicalkeyboard input devices willalso include a flag of somesort to indicate that a key hasbeen pressed. It might alsoinclude an "acknowledge"line to be pulsed after thecomputer had read the data.The parallel interface of atypical keyboard is illustratedin Fig. 1. Fig. 1 is a typical

interface of a keyboard, andis used only as a guide to theanalysis of an actualkeyboard later on in thisarticle.

The manual input of thekeyboard is its mostimportant feature. It is thehuman operator's depressionof a selected key whichcommunicates someinformation to your system.When the key is depressed, itcauses the keyboard inputdevice's logic to generate anencoded binary pattern forthe key. This encoded binarypattern is typically an ASCII

character code presented onthe data lines DO to D6. Inaddition to the encodingfunction, the keyboard haslogic which produces a "flag"signal to indicate that somekey has been depressed. Thisflag is either a pulse (seetiming diagram example inFig. 1) or a level state,depending upon theparticular keyboard designinvolved. It is often the case(but not required) that thekeyboard is designed forinteractive control by thecomputer processor. In suchcases, an "acknowledge"

62

signal must be generated bythe computer and sent backto the keyboard to reset thelogic of the keyboard inputdevice.

The encoding pattern ofthe keyboard input devicedepends upon themanufacturer's design andmust be determined for asurplus keyboard before youcan use it. For manykeyboards, the ASCII patternof Table I is applicable —each key maps into one ofthe 7-bit patterns listed.Unless stated by the dealer,you will have to approach theanalysis of the surpluskeyboard without anyassumptions: it is likely to beASCII but. . . you couldwind up with a Univac''F ieldata" encodedkeyboard; you could wind upwith an IBM EBCDICkeyboard, etc. Manynon-standard encodingschemes for alphanumerickeyboards are derivatives ofASCII. Thus the example inthis article is chosen with anASCII encoding scheme inmind. (IBM surplus is rarelyin usable form and thenumber of EBCDICkeyboards by non-IBMmanufacturers is an unknownbut assumed small number.)In Table I, the commoncharacter codes are shown ina typical graphic form as wellas in binary, octal andhexadecimal representations.

Now a new keyboard fullyencoded for ASCII and/orEBCDIC is one option youhave for implementing akeyboard input device. Forexample, a new commercialkeyboard will typically sell inthe $50 to $150 rangedepending upon options — akeyboard with a standardtypewriter style layout andan LSI encoding method. Asa second example, SouthwestTechnical Products Corp.used to sell a hobby qualitykeyboard at about $40 in kitform. The advantages of newkeyboards are obvious: youget the complete descriptionof the hardware along withthe product — and aninterface which will be similarto the one described in Fig. 1.With the newer LSI encodedboards, you will probably get

a keyboard with an "n" keyrollover feature to deciphermultiple key strokes whichoverlap in quick succession.This is all well and good, butis there a less expensivealternative? The answer ofcourse is "Yes", and theremainder of this articleconcerns the techniquesinvolved.

Using Surplus Keyboards

The alternative to newequipment is "pre-owned"equipment, to borrow a termfrom standard used cardealers' lexicon. Sincecomputers have been in usefor a number of years there isa fairly wide selection ofequipment in the "surplus"market, as you can find outby reading the advertisingpages of BYTE. An itemwhich is frequently found insurplus vendors' offerings isthe keyboard input device.Prices for keyboards varyconsiderably — from $10 forreal "junk" to about $40 forpremium keyboards. The useyou can get out of such asurplus board ranges from a

complete subsystem ready tohook up — to a mere array ofkey switches which must havea new set of encoding logic tomake it work.

The keyboards youemploy for this purpose mustbe selected and analyzed onan individual basis — there isno stock formula applicableto all such keyboards. Severalrough guidelines will helpyou keep out of too muchtrouble:

1. Always look for a unitwhich is in sound physicalcondition. Get one which hasthe cleanest possible keytops, smoothly working keys,little sign of "hack"modifications to PC circuits,etc. Verify that the keyboardis a "switch" type — Halleffect or capacitive keyboardsexist and should be avoidedwithout properdocumentation.

2. The most desirablekeyboard will be one inwhich the encoding logic isreadily decipherable. This willinvariably be the case withdiode matrix keyboards (seetext below) — and may be

possible if an LSI chip with astandard part number isutilized.

3. The most desirablekeyboard will be one onwhich the PC layout peoplehave made notations of nicelittle comments like "+5V","-12V", "VCC", "A", "$",etc. These are great aids tofiguring out the operation ofthe devices.

If you (at a minimum)satisfy the first criterionabove, the keyboard willultimately be usable,provided it uses actualkeyswitches, since you canalways construct a switchscanner and/or diode matrixto encode the switches asASCII binary information.

Diode Matrix KeyboardAnalysis — An Example

To illustrate what can bedone with surplus keyboards,the remainder of this articleconcerns the analysis of aparticular keyboard inputdevice. The keyboard inquestion has been advertisedrecently, and is a fairlytypical diode matrix encoded

ACKNOWLEDGE+

1

LSB

KEYBOARD

INPUT

DEVICE

MSB

FLAG +

DO

Dl

D2

D3

D4

D5

D6

TIMING (TYPICAL):

HUMAN FINGER

y

FLAG

rap

ACKNOWLEDGE

-it

COMPUTER-RESPONSE-TIME

Fig. 1. Typical keyboard functions.

63

The keyboard, withbottom plate removed andencoder board out in theopen. The encoder printedcircuit is separated fromits mounting on thebottom plate but is stillattached by its wiringharness.

KEYBOARDHOUSING

OUTPUfTERMINALS

BYPASSCAPACITOR

KEYBOARD

ENCODER

P.C.

INTEGRATED CIRCUITS

DIODE MATRIX

keyboard of the 1966-1970vintage. This keyboard is asurplus Sanders AssociatesModel 722-1 subsystem,which comes enclosed in ametal housing with a fairlytypical Teletype style keylayout. On the right hand sideof the keyboard is a set ofspecial function keys, whichobviously had some meaningin the original system usingthe device.

The keyboard and housingcan be used "as is" in yoursystem — with the onlynecessary modifications beingthe substitution of aninterface plug and cablewhich can mate with yourown equipment. The exampleof analyzing and figuring outthis keyboard can be used asa guide to similar work withother surplus keyboards.

Start at the Beginning

The object of this projectis to determine the detailsneeded to make the Model

722-1 keyboard work — butwithout any original designdocumentation from themanufacturer, since it issurplus. The first step is toput on your Sherlock Holmescap, crank up your deductivepowers and begindisassembling the keyboard.In order to analyze thecircuit, a likely place to startis the bottom cover plate. Inthe case of the 722-1, fourscrews hold the cover plate tothe bottom of the housing.Upon opening the coverplate, the 722-1 will be foundto have a printed circuitboard attached to the plate —a thin plastic sheet glued tothe cover plate preventsinadvertent shorting of PCconductors. The PC should beremoved from the cover plateby unscrewing the four nutssecuring it. The result will bea PC board hanging out theback of the housing/keyboardassembly by its wiringharness.

The actual process ofanalysis of a keyboard such asthis will probably take you anevening or so. The key

features to look for in a diodematrix encoder keyboard areidentified in the photo.

Keyboard Encoder PC.The typical diode matrixkeyboard will have a printedcircuit board containing alarge number (approximately100-200) of computer diodesand several integratedcircuits, with individual wiresrunning from keyswitches tothe PC. Sometimes thefunctions of encoding andcontrol logic will all bemounted on the same printedcircuit as in this example.Occasionally, the logic will besplit up into smaller chunkson separate boards.

Wiring Harness. Akeyboard is easy to figure outif you can get at it "live"(under power). In this case, awiring harness allowsconsiderable room forextension so that the keyswitch matrix and housingcan be separated from theencoder board.

Diode Matrix. The way totell a diode matrix board isby the regular array of diodesfound at some point. In this

example, the array is at thelower right in the photo.While the array is regular, theactual printed wiring is fairlyrandom — although it willultimately condense downinto a set of bit busses.

Integrated Circuits. Thisparticular keyboard has abunch of integrated circuitsin the left hand portion ofthe encoder board. The photoillustrates arbitrary referencenumbers U1 to U12 for thepurposes of this article, sinceno references were built intothe printed circuit board.

Pull up Resistors. In diodematrix boards, a set ofnegative logic "wired or"busses is used to generateeach bit of the encodedbinary word. One pullupresistor (typically 1000Ohms) is associated with eachbus line.

Identifying the PowerRequirements

One of the most criticalitems to be determined infiguring out a keyboard is toidentify the powerrequirements. The best way is

64

Binary

Octal

Hex Common "Graphics"*

0000000

000

00

NUL character

0000001

001

01

0000010

002

02

0000011

003

03

0000100

004

04

0000101

005

05

0000110

006

06

0000111

007

07

Bell - Ring the Bell!

0001000

010

08

0001001

011

09

0001010

012

OA

LF — Line Feed

0001011

013

OB

0001100

014

OC

0001101

015

OD

CR — Carriage Return

0001110

016

OE

0001111

017

OF

0010000

020

10

0010001

021

11

0010010

022

12

0010011

023

13

0010100

024

14

0010101

025

15

0010110

026

16

0010111

027

17

0011000

030

18

0011001

031

19

0011010

032

1A

0011011

033

1B

ESC — "Escape"

0011100

034

1C

0011101

035

1D

0011110

036

1E

0011111

037

1F

0100000

040

20

SP — Space

0100001

041

21

! — Exclamation

0100010

042

22

" - Quotes

0100011

043

23

#— Number Sign

0100100

044

24

$- Dollar Sign

0100101

045

25

% — Percent

0100110

046

26

& — Ampersand

0100111

047

27

' — Apostrophe

0101000

050

28

( - Left Paren

0101001

051

29

) - Right Paren,

0101010

052

2A

* — Asterisk

0101011

053

2B

+ — Plus sign

0101100

054

2C

, — Comma

0101101

055

2D

Minus Sign (hyphen)

0101110

056

2E

. — Decimal (period)

0101111

057

2F

/ - Slash

0110000

060

30

0

0110001

061

31

1

0110010

062

32

2

0110011

063

33

3

0110100

064

34

4

0110101

065

35

5

0110110

066

36

6

0110111

067

37

7

0111000

070

38

8

0111001

071

39

9

0111010

072

3A

: — Colon

0111011

073

3B

; — Semicolon

0111100

074

3C

< — Less than

0111101

075

3D

= — Equality

0111110

076

3E

> — Greater than

0111111

C77

3F

? — Question Mark

Table I. Binary, Octal

and Hexadecimal ASCII

Codes, This table contains

common symbols for

keyboard characters

and the corresponding

ASCII codes.

Binary

Octal

Hex

Co

mmon "Graphics"*

1000000

100

40

@.

- "at"

1000001

101

41

A

1000010

102

42

B

1000011

103

43

C

1000100

104

44

D

1000101

105

45

E

1000110

106

46

F

1000111

107

47

G

1001000

110

48

H

1001001

111

49

I

1001010

112

4A

J

1001011

113

4B

K

1001100

114

4C

L

1001101

115

4D

M

1001110

116

4E

N

1001111

117

4F

0

1010000

120

50

P

1010001

121

51

Q

1010010

122

52

R

1010011

123

53

S

1010100

124

54

T

1010101

125

55

U

1010110

126

56

V

1010111

127

57

w

1011000

130

58

X

1011001

131

59

Y

1011010

132

5A

z

1011011

133

5B

[-

Left bracket

1011100

134

5C

\-

Reverse slash

1011101

135

5D

] -

Right bracket

1011110

136

5E

1011111

137

5F

-

Underscore

1100000

140

60

1100001

141

61

a

1100010

142

62

b

1100011

143

63

c

1100100

144

64

d

1100101

145

65

e

1100110

146

66

f

1100111

147

67

g

1101000

150

68

h

1101001

151

69

i

1101010

152

6A

J

1101011

153

6B

k

1101100

154

6C

I

1001101

155

6D

m

1101110

156

6E

n

1101111

157

6F

0

1110000

160

70

P

1110001

161

71

q

1110010

162

72

r

1110011

163

73

s

1110100

164

74

t

1110101

165

75

u

1110110

166

76

V

1110111

167

77

w

1111000

170

78

X

1111001

171

79

V

1111010

172

7A

z

1111011

173

7B

c-

Left brace

1111100

174

7C

1111101

175

7D

}-

Right brace

1111110

176

7E

1111111

177

7F

DEL - Delete

65

Diode matrix - thissystem of generatingthe ASCII code is usedin older keyboards.

H5V

of course to get a keyboardwhich has powerrequirements listed on itsencoder printed circuit in nouncertain terms. However,"the best" is often a matterof luck and judicious choiceof equipment in surpluscircles . . . you can make dowith less than perfectdocumentation by employingsome knowledge of commondesign practices. Figuring outpower voltages requires theanalysis of one circuit powerline for each level of voltageinvolved to completelyestablish the requirements ofthe system.

One of the leastambiguous ways to identifypower lines is to look up thepower pinouts of theintegrated circuit componentsused in your keyboard. Thismethod requires a supply ofreference books and akeyboard encoder circuit

VOM

300mA

SCALE

-«—*0=

<<t-

<$■

KEYBOARD

Fig. 2. Turn it on and cross your fingers.

which uses standard partnumbers. For keyboardswhich are manufactured bythe smaller companies in thecomputer field, parts areusually standard items so thatthis method can beemployed. One of the mainjustifications for home brewcomputer clubs is the niceinformal arrangement whichprovides for an exchange ofinformation of this type. Inthe case of the Sanderskeyboard, the two integratedcircuit designs used werelabelled "ST659A" and"ST680A". The onlyproblem is that no directreference could be found inliterature I had available.However, don't give up withan initial failure to find areference. What I did afterstriking out on these twonumbers was to look for asimilar number differing onlyin the alphabeticalinformation. I did findreferences to two DTLintegrated circuits "SP659A"and "SP680A," anexpandable 4-input NANDgate and a quad 2-inputNAND gate. Both these gatedesigns have package powerconnections of Pin 8 forpower and Pin 1 for ground.The gate references gaveme a high probabilitydetermination of the power

connections by tracing downground to the I/O pin labelled7 and tracing down power(+5 for DTL) to I/O pin 5.Being a cautious type ofperson, I then looked forsome independentconfirmations of this powerpinout identification.

Another method ofidentifying power and groundconnections is to look forcolor coding on wires. Thiskind of a confirmation is onlypossible for boardsmanufactured with handwiring. If the harness is oneof the multiconductor ribboncables, color coding is notlikely. In the keyboard Ianalyzed I found that theground terminal of thedecoder was routed via ablack wire to the connectoron the case, and that the +5volt terminal was routed tothe connector via a red wire.This is consistent with theindustry conventions whichare used for such wiring —power (positive) is red,ground (negative) is black.

Still another method fordetermination of powerconnections is to examine thepolarity of electrolyticcapacitors mounted on theboard for local power supplyfiltering. These bypasscapacitors are often (notalways) connected between

66

Detail of the output pins.This keyboard is one ofthe more desirable types -it has labeling of many keyfeatures etched along withthe printed wiring.

•■■

the positive supply andground, with markings of (+)for the supply side and (-) forthe ground side. In thedisassembled keyboardphotograph accompanyingthis article, the bypasscapacitor is labeled. Usingclip leads, the bypasscapacitor often provides ahandy way to apply powerwhen first testing the board.Multiple power supplykeyboards often occur withlater equipment, especiallywhere MOS encoders areemployed. This willcomplicate the analysisproblem — often to the pointwhere it might be wise toavoid such boards unlessadequately labeled withvoltage designations, partnumbers and othercomments.

Turn It On and Cross YourFingers?

Now that you think youhave the power connectionsstraight, your next step inanalysis is to apply a little bitof power to the circuit andsee what happens — using amilliammeter. Connect thekeyboard using the circuit ofFig. 2. If the power leadshave been correctlyidentified, the current readon the meter should beapproximately 100

milliamperes. Remove powerASAP if the meter movementis "pinned" on a 300 or 1000milliampere scale, since thatindicates either a short circuitor incorrect polarity for thepower. If a reasonable current(under 300 milliamperes) isdrawn, then you can safelytrust your power connectiondetermination and proceedby removing the meter fromthe circuit.

Does It Have a Flag?

The next thing to look foris a "flag" indicating that thekeyboard has been activatedby a finger and data ispresent. The term "flag"means a logic line generatedin the keyboard encoderwhich may be either pulsedor steady state. This testrequires a method of catchingpulses — either anoscilloscope with about 10MHz bandwidth, or one of anumber of logic probesavailable which "flash" whena state change occurs. Checkeach of the several I/Oconnection terminals whilepressing a key. If thekeyboard is working at all,you will find at least oneterminal which changes state— with a pulse or a levelchange — as keys areactivated.

When you have found apin which changes state, thenext test is to see whether itchanges the same way forevery normal key on thekeyboard. If the effects varyfrom key to key, then theline in question is a data line— if the tentatively identified"flag" pin pulses or changesits level consistently for allkeys (with one or twopossible exceptions) then it isprobably the flag desired. Inthe Sanders surplus boardanalyzed here, the flag pinwas found to be I/Oconnection terminal 8.

The exception possible tothe "same behavior on everykey" statement is evidencedin the Sanders board — theflag interconnection terminalis a pulsed output of 2microseconds in width for allkeys except one: the"Repeat" key causes the flagto change its state. The flag isnormally high in this board,but when repeat is depressedit is held low.

Where's the Data?

Now, having found a flagto indicate when data ispresent, the next problemimmediately presents itself -you now turn to examine theother pins of theinterconnection to the

Fig. 3. The typical encoded bitline for a diode matrix.

H5V

*DTL gates used in surplus"Sanders 720" keyboard; TTLmight be used in variations onthis theme, e.g.: 7400 series.

"EO

XPAND"F 659--

INPUT lOOOIi

A PULLUP\ <RESISTOR

^WIRED-"OR"(NEGATIVE LOGIC)/ MATRIX BIT LINE

659*

71 ' f7~

71

OUTPUT BIT LINE

^J

Li <J

^DIODE ISOLATES_/^ KEY LINES FROMkX WIRED-OR BUS I

_i

\

V

R-S FLIPFLOP 2STORES BIT

1

KEY \

r- WHICH

^ ACTIVATESTHIS BITLINEIS CONNECTED

\

IN THIS MANNER

.

680*

V

U "RtAU"

P* SWITCH

COMMAND

LINE

h A?

67

3

yy

10

II

4

\ i/i

5

12

V^

6

13

/

7\

»\

3

EXPANSION—■ INPUTS^—

12

s

\

4

13

K-

10

/

6

\

7

9

K-

/

decoder and find no changewhatsoever in levels regardlessof the key pressed. Ah! Thefrustration! It's enough todrive you to tracing down thelogic of the keyboard, at leastfor one of the low order databits. That's exactly whathappened in analyzing thisexample of a keyboard. Fig. 3is the result of that tracingoperation — using the pinoutsof Fig. 4 which were obtainedfrom an old (late sixties) datareference for the DTL gates.As can be seen in Fig. 3,an R-S flip flop is made outof two NAND gate sectionsfor each bit-line of thekeyboard. This storage of thestate of the diode matrix

outputs explains the lack ofchange seen when firstexamining the board'soutputs for possible data — inorder to read (or get ready toread) a key, the R-S flip flopsof all diode matrix outputsmust be reset. The "read"command line performs thisreset. After resetting, the firstnegative going pulse on thematrix bit line into the 659'sexpander input sets the flipflop, thus debouncing thecontact closure. There is onebit line for each possible bitof "raw data" — and somelogic is used to superimposethe shift key and control keyinformation as required.So, in order to find out

Fig. 4. Pinouts for the DTL gatesin the Sanders keyboard. (Unusedinputs are assumed logic 1without external pullups.)

which interface terminalcorresponds to the "read"command line which resets allthe flip flops, a bit morecircuit tracing is required.Fig. 5 illustrates the effectivelogic resulting from thetracing for "Read" — which itturns out is commanded by anegative logic pulse from thecomputer via interconnectionterminal pin 6. In Fig. 5, theR-S flip flop (A) is used tocontrol the computerinterface. The receipt of anacknowledge command fromthe computer resets that flipflop potentially allowing aread, but the NAND gate (B)inhibits recognition of anynew keystroke until after the

previous key is released. Thusthis keyboard has zero-keyrollover since all keys must bereleased before a new key canbe recognized.

Figuring Out the Coding

Once the problem oflocked up outputs is solvedby identifying the"Acknowledge" signal line,the next problem is toidentify the bit lines at theinterconnection interface. Todo this requires the followingprocedure (by hand) whentesting the state of individualbit lines as keys aredepressed .. .

1. Short the Acknowledgeline to ground.

2. Press a key whose codeis to be examined.

3. Look at the outputs ona scope or logic stateindicator (the latter is anLED driven by a gatesection).

To identify your coding,make the followingreasonableness hypothesisinitially:

Keys with an identifiablesequential order (eg:alphabetical order) will beconsecutive integer numbersin any reasonable binarycoding scheme.

You can identify the loworder bits in ASCII, forinstance, if you make thisassumption.

Fig. 5. Keyboard "Read" and Acknowledge logic.

COMMAND LINE

"ANY KEY DOWNINHIBITSACKNOWLEDGEINPUT

ANY KEY"BUS

TO KEY SWITCHES

68

Table II. Terminal

Connections for the Sanders

surplus keyboard.

Terminal I.D.

#5 Power (+5 volts)

#6 Acknowledge (—)

#7 Ground

#8 Flag (—) (pulse unless

REPEAT key held down)

#9 BitO(+) ASCII LSB

#10 Bit 1 (+)

#11 Bit 2 (+)

#12 Bit 3 (+)

#13 Bit 4 (+)

#14 Bit 5 (+)

#15 Bit6 (+)

So, pick two neighboringkeys with identical ASCIIhigh order bits, and test firstone then the other (using thethree steps above) for eachpotential bit line until youfind a bit line whichalternates with your keystrokes. Thus, for instance, ifyou alternately press @ and Aon the Sanders board of thisarticle (acknowledgingbetween each look) you willfind the state of interfaceterminal 9 alternating. Thiscan only be the low order bitof the ASCII code. Now picktwo keys in alphabeticalorder which are at a change inbit 1. For example, pick "A"and "B". This will result in allhigh order bits of the coderemaining identical down tothe ASCII bit 1 line. Examinethe terminals of the encoderwhile alternately looking at Aand B until you find the linewhich changes.

This procedure can berepeated for the third ASCIIlow order bit (bit 2) bypicking the letters C and D.The bit 2 terminal is found tobe 11 by this test for theSanders board. Continuingonce more, test the bit 3output by looking at G and Halternately (ignore thepreviously identified pins —all high order pins will remainthe same).

By the time terminal 12 isfound to be ASCII bit 3, atrend has been established forthis keyboard — ascendingterminal identifications from9 are the bits of the ASCIIcode. In many cases this willbe the order of terminals —but you have to identify

several of the least significantbits first before you can makea conjecture. This conjectureof ordering can be verified forthe Sanders board beinganalyzed by looking attypical codes (see Table I,and look, for instance, at theoutput for "line feed" usingthe terminal identificationslisted in Table II).

Now a major input to thisidentification process is theassumption of ASCII coding

— if this assumption gives"funny" results, you have nochoice but to use a slightlydifferent method: take eachkey in turn, depress it, andlook at all possible outputbits lines of the encode.Record the results in a tablesimilar to Table I, but withthe key you find, instead ofthe standard ASCII. You mayfind you have inverted data, acompletely non-ASCII codeset such as EBCDIC, or amodified ASCII.

Now You've Sorted the Bits

- So What's Next?

When you have figured outthe equivalent of Table II foryour own surplus keyboard,the next step is to make asystematic identification in atable similar to Table I. Oneof the best ways to do this isto use your computer with aninput port devoted to thekeyboard, and a display orhard copy device for output.A program written toimplement the flow chart ofFig. 6 can be used toselectively examine keys onthe keyboard. The programaccepts a key input, unpacksthe bits into a binary andoctal form, then displays thebits on your output (TV,character generator, orprinter) as a binary and anoctal number. If you have aprinter output (eg: a Teletypeor line printer) then youshould write the symbol onthe key next to each codeafter the code is printed. Ifyou only have a displayoutput, then you should notethe code on paper along withthe key symbol. After youhave completed this bit ofresearch, your keyboard isnow thoroughly documentedso that its input codes can beinterpreted by programs. ■

Read Key InputPort

Convert Key Code

to Binary and Octal

Character Strings

Display or Typethe Strings

AcknowledgeThe Key (send pulse)

Fig. 6. Keyboard Test Program Flow Chart.

o E?n

WWH ■

iM r%

g n

SEP

TEI

no

ER

CALCULATOR CHIPS

O m

CAI

ML I

o

»1 Quality Cosmetic Seconds

5PI

cCI

AL

o

CT5001

$1.79 ea. $ .99

CTS002

2.49 ea. .99

SCHOOL TIME SPECIAL

CT5005

2.99 ea. 1.49

POCKET CALCULATOR Kl

MM5738

8 digit multiplexed — five function —

S function plus constant —

chain operation 2 key memory — floatingdecimal — independent constant —

addressable memory withindividual recall — 8 digit

SP

*\.

interfaces with led with only digit driver —9 V batt. oper. 24 pin $3.95

display plus overflow —

x&.

^l

battery saver — uses standard %Jta

9 DIGIT

or rechargeable batteries — all ^xj

■P

^N On multiplexed substrate, comm. ca-

necessary parts in

ready to

M

y thode compatable with all 8 digit

assemble lorm —

instructions

M

/ calculator chips, 7 segment right hand

included

$10.95

w

decimal, red with clear magnifying lens,.12" character, 1 to 4 MA, 1.8 V typ 2 V x'«" x '/"•"high $2.05

ASSEMBLED

SET OF ALKALINE BATT. .

11.S52.00

^/

TTL

LINEAR

MEMORIES

MM1101 $1.39

7400

J .13

340T 5V TO-220

$1.25

MM1103 1.49

7404

.15

340T 15V TO-220

1.25

MM5203 12.95

7408

.15

301N MINI DIP

.15

MM5261 1.95

7410

.13

307H TO-5

.15

MM5262 3.95

^ttl" 74<"

lit 7492

^^7^^B.71 1

fS% OFF ON ORDERS OVER S50.00 ^W MEMORIES

7400

$ .14 7493

.60

1 10% OFF ON ORDERS OVER $100.00

L 1 5% OFF ON ORDERS OVER $250.00 M n0' 256 b'< RAM MOS

7<mi

.16 7494

.94 1

$ 1.50

7402

.15 7495

.79

^m 1103 1024 bit RAM MOS■■Ml 2102 1024 bit static RAM

3.95

5.55

74037404

.16 74%.19 74100

.791.30

^LINEAR CIRCUITS

^xB 5203 2048 bit UV eras PROM"1 5260 1024 bit RAM

17.952.49

74057406

.19 74105.35 74107

.44.40

300301

Pos V Reg (super 723)Hi perf op amp

TO-5mDIP

■3

1 5261 1024 bit RAM1 5262 2048 bit RAM

2.695.95

7407

.35 74121

.42

307

Op AMP (super 741)

mDIP

.26

1 7489 64 bit ROM TTL

2.48

74087409

.18 74122.19 74123

.45.85

308309K

Micro Pwr Op Amp5V 1A regulator

mDIPTO-3

.891.35

1 8223 Programmable ROML 74200 256 bit RAM tri-state

3.695.90 ^^

74107411

.16 74125.25 74126

.54.63

310311

V Follower Op Amp

Hi perf V Comp

Hi Speed Dual Comp

mDIPmDIP

1.0795

7413

.55 74141

1.04

319

DIP

.:« I

74167417

.35 74145.35 74150

1.04.97

320324

Neg Reg 5.2, 12. 15Quad Op Amp

TO-3DIP

1.041.52

[CALCULATOR &

74207422

.16 74151.26 74153

.79.99

339340K

Quad ComparatorPos. V reg. (5V, 6V, 8V,

DIP

1.58

1 CLOCK CHIPS

7423

.29 74154

1.25

12V, 15V, 18V, 24V)

TO-3

1.69

1 5001 12 DIG 4 fund fix dec

$3.45

7425

.27 74155

1.07

340T

Pos. V reg. (5V, 6V, 8V,

1 5002 Same as 5001 exc btry pwr

3.95

7426

.26 74156

1.07

12V, 15V, 18V, 24V)

TO-220

1.49

1 5005 12 DIG 4 funct w/mem

4.95

7427

.29 74157

.99

370

AGC/Squelch AMPL

DIP

.7,

1 MM5725 8 DIG 4 funct chain & dec

1.98

7430

.20 74158

1.79

372

AF-IF Strip detector

DIP

2.93

1 MM5736 18 pin 6 DIG 4 funct

4.45

7432

.23 74160

1.39

373

AM/FM/SSB Strip

DIP

.53

1 MM5738 8 DIG 5 funct K & mem

5.35

7437

.35 74161

1.25

376

Pos. V. Reg

mDIP

2.42

1 MM5739 9 DIG 4 lunct (btry sur)

5.35

7438

.35 74162

1.49

380

2w Audio Amp

DIP

1.13

1 MM5311 28 pin BCD 6 dig mux

4.45

7440

.17 74163

1.39

380-8

,6w Audio Amp

mDIP

1.52

1 MM5312 24 pin 1 pps BCD 4 dig mux

3.95

7441

.98 74164

1.59

381

Lo Noise Dual preamp

DIP

1.52

1 MM5313 28 pin 1 pps BCD 6 dig mux

4.45

7442

.77 74165

1.59

550

Prec V Reg

DIP

.89

1 MM5314 24 pin 6 dig mux

4.45

7443

.87 74166

1.49

555

Timer

mDIP

.89

1 MM5316 40 pin alarm 4 dig

5.39 j

74447445

.87 74170.89 74173

2.301.49

556A560

Dual 555 TimerPhase Locked Loop

DIPDIP

1.492.48

L

7446

.93 74174

1.62

562

Phase Locked Loop

DIP

2.48

7447

.89 74175

1.39

565

Phase Locked Loop

DIP

2.38

rLED'S

7448

1.04 74176

.89

566

Function Gen

mDIP

2.25

7450

.17 74177

.84

567

Tone Decoder

mDIP

2.66

MV10B Red TO 18

$ .22

7451

.17 74180

.90

709

Operational AMPL

DIP

.26

MV50 Axial leads

.18

7453

.17 74181

2.98

710

Hi Speed Volt Comp

DIP

.35

MV5020 lumbo Vis. Red (Red Dome)

.22

7454

.17 74182

.79

723

VReg

DIP

.62

(umbo Vis. Red (Clear Dome

.22

7460

.17 74184

2.29

739

Dual Hi Perl Op Amp

DIP

1.07

ME4 Infra red diff. dome

.54

7464

.35 74185

2.29

741

Comp Op Amp

mDIP

.32

MAN1 Red 7 seg. .270"

2.19

7465

.35 74187

5.95

747

Dual 741 Op Amp

DIP

.71

MAN2 Red alpha nurn .32"

4.39

7470

.30 74190

1.35

748

Freq Adj 741

mDIP

.35

MAN4 Red 7 seq. .190"

1.95

7472

.30 74191

1.35

1304

FM Mulpx Slereo Dem

3d DIP

1.07

MAN5 Green 7 seg. .270"

3.45

7473

.35 74192

1.25

1307

FM Mulpx Stereo Demc

d DIP

.74

MAN6 .6" high solid seq.

4.25

7474

.35 74193

1.19

1458

Dual Comp Op Amp

mDIP

.62

MAN7 Red 7 seq. .270"

1.19

7475

.57 74194

1.25

1800

Stereo multiplexer

DIP

2.48

MANS Yellow 7 seq. .270"

3.45

7476

.39 74195

.89

3900

Quad Amplifier

DIP

.15

MAN64 .4" high solid seq.

2.95

7483

.79 741%

1.25

8038

V contr. osc

DIP

4.95

MAN66 .6" high spaced seq.

3.75

7485

1.10 74197

.89

8864

9 DIG Led Calh Drvr

DIP

2.25

MCT2 Opto-iso transistor

.61 m

7486

7489

k^ 7490

.40 741982.48 74199.59 74200

1.791.79;9fi .afl

751507545175452

Dual Line Driver

Dual Perepheral Driver

Dual Peripheral Driver

DIP

mDIP

mDIP

1.95.35.35

^^g DjU intludrd with ordn on >rqAdd 1.10 r* if ilrm it p<krdb*io»

11.00

75453I 75491

(351) Dual Periph. Driver mDIPQuad Seq Driver lor LED DIP

.35 1.71 1

I CMOS 40,5A '•49 4M9A

4016A .56 4050A

.59 1.59

■^^ r*. Xdd S.iO «■*. il ilrm ,. mil nrrir

^^75492

Hex Digit Driver

DIP

M^k

4000A 5 .26 4017A 1.19 4066A4001A .25 4020A 1.49 4068A4002A .25 4021A 1.39 4069A

.89.44.44

iw Satisfaction guaranteed. Shipment will be

made via first class mail within 3 day

from rece

ptol ^

4006A 1.35 4022A 1.10 4071A

.26

order. Add $.50 lo cover shipping and ha

idling for orders under $25.00. Minimum order $5.00.

4007A .26 4023A .25 4072A

.35

California residents add sale

lax.

4008A 1.79 4024A .89 4073A

.39

INT

ERNATIOI

4AL E

LECTRONICS UNLIMITED

4009A .57 4025A .25 4075A4010A .54 4027A .59 4078A

.39.39

1 ft,

P.O. BOX 1708/ (V

ONTER

EY, CA. 93940 USA

4011A .29 4028A .98 4081A4012A .25 4030A .44 4082A4013A .45 4035A 1.27 4528A

.26.351.60 i

1 s-W

PHON

! (408) 659-3171

^^^40I4A 1.49 4042A 1.47 4585A

2.10^H

INSIDE the Altair Computer

1. Central Processing Unit (CPU) Board.

This double-sided board is the heart of theAltair. It was designed around the powerfulIntel 8080 microprocessor —a completecentral processing unit on a single LSI chipusing n-channel silicon gate MOS tech-nology. The CPU Board also contains theAltair System Clock —a standard TTL oscil-lator with a 2.000 MHz crystal as the feed-back element.

2. Power Supply. The Altair Power Supplyprovides two +8, a +16 and a —16 volts.These voltages are unregulated until theyreach the individual boards (CPU, FrontPanel, Memory, I/O, etc.). Each board hasall the necessary regulation for its ownoperation.

The Altair Power Supply allows you toexpand your computer by adding up to 16boards inside the main case. Provisions forthe addition of a cooling fan are part ofthe Altair design.

3. Expandability and custom designing. The

Altair has been designed to be easilyexpanded and easily adapted to thousandsof applications. The basic Altair comeswith one expander board capable of hold-ing four vertical boards. Three additionalexpander boards can be added inside themain case.

4. Altair Options. Memory boards nowavailable include a 256 word memoryboard (expandable to 1024 words), a com-plete 1024 word memory board, and a4,096 word memory board. Interfaceboards include a parallel board and 3serial boards (RS232, TTL and teletype).Interface boards allow you to connect theAltair Computer to computer terminals,teletypes, line printers, plotters, and otherdevices.

..••*•//£• '*'f«"jk

Other Altair Options include additionalexpander boards, computer terminals,audio-cassette interface board, lineprinters, ASCII keyboards, floppy disc sys-tem, alpha-numeric display and more.

5. All aluminum case and dress panel. The

Altair Computer has been designed bothfor the hobbyist and for industrial use. Itcomes in an all aluminum case completewith sub-panel and dress panel.

6. It all adds up to one fantastic computer.

The Altair is comparable to mini-com-puters costing 10-20 thousand dollars. Itcan be connected to 256 input/outputdevices and can directly address up to65,00Q.words of memory. It has over 200machine instructions and a cycle time of2 microseconds.

You can order the Altair Computer bysimply filling out the coupon in this ad orby calling us at 505/265-7553. Or you can-ask for free technical consultation or forone of our free Altair System Catalogues.

MITS/6328 Linn NE, Albuquerque, NM, 87108 505/265-7553

PRICES:

Allair Computer kit with complete assembly

instructions $439.00

Assembled and tested Altair Computer $621.00

1,024 word memory board $97 kit and

$139 assembled4,096 word memory board $264.00 kit and

$338.00 assembled.Full Parallel Interface board $92.00 kit

and $114.00 assembled.Serial Interface board (RS232) $119.00 kit and

$138.00 assembled.Serial Interface board (TTL or teletype) $124.00

kit and $146.00 assembled

NOTE: Altair Computers come with complete docu-mentation and operating instructions. Altair cus-tomers receive software and general computerinformation through free membership to the AltairUser's Club. Software now available includes aresident assembler, system monitor, text editor andBASIC language.

\M\

"Creative Electronics"

Prices and specifications subject to change

without notice. Warranty: 90 days on parts

for kits and 90 days on parts and labor for

assembled units.

MAIL THIS COUPON TODAY!

D Enclosed is check for $_D BankAmericard #-

H

□ or Master Charge #-— ; — i —

P Credit Card Expiration Date

D Altair Computer ■'□ Kit D Assembled

□ Options (list on separate sheet)Include $8.00 for postage and handling.

D PLEASE SEND FREE ALTAIR SYSTEM CATALOGUE

NAME , ,

CITY-

-STATE&ZlP_

L

MITS/6328 Linn NE, Albuquerque, NM, 87108

505/265-7553

LIFE

Carl HelmersEditor, BYTE

Line

Games played withcomputer equipmentare applications of valueabove and beyond themomentary "hack" value ofputting together aninteresting program. Thecreation of a game is one ofthe best ways to learn aboutthe art and technique ofprogramming with realhardware and softwaresystems. LIFE Line concernsa game — the Game of LIFE,originated by Charles Conwayand first publicized by MartinGardner in ScientificAmerican. The Game of LIFEserves as the central theme ofLIFE Line — a well definedapplication of the type ofhardware and software whichis within the reach of BYTEreaders. The description ofthe LIFE application is the"down to earth" goal ofLIFE Line. However, I havean ulterior motive as well —LIFE Line is a veryconvenient and practicalvehicle for teaching ideasabout program and systemdesign which you can applyfor your own use. Even if younever implement a graphicsoutput device and interactiveinput keyboards, you cangain knowledge and improveyour skills by reading andreflecting upon the points tobe made in LIFE Line. TheLIFE application also has theside benefit of illustratingsome techniques of

interactive visual graphicswhich can be used muchmore generally.

The Starting Point

In developing a system, italways helps to know whatyou want to do! The abilityto pin down a goal for aprogramming effort — indeed,any effort you make — is one1of the most important toolsof thought you have available(or can develop) in yourpersonal "bag of tricks."Goal setting does notnecessarily mean a completeand detailed description ofthe result — the feedbackfrom the process of reachingthe goal can often modify thedetails. Goal setting meansthe setting of a standard inyour mind — and on paper —of what you want toaccomplish. This standard isused to evaluate and chooseamong alternatives in amethodical approach to asystem which meets thatstandard.

How to Get From Here toThere

The goal of LI FE Line is ahardware/software systemwhich enables the home brewcomputer builder such as youor me (the "byter") toautomate the game of LIFEusing relatively inexpensiveequipment. It's appropriatehere to give a preliminaryroad map of the course LIFE

Line will take, as anillustration of the first stepsin the development of acomplicated system . . .

1. The facts of LIFE.Defining the rules of thegame and its logicalrequirements always helps —after all, I would not want toconfuse it with chess, pokeror space war!

2. What do I need toimplement LIFE? Once Iknow the rules, my nextproblem is to sketch thehardware and softwarerequirements for a reasonableimplementation.

3. Programming. Given thenecessary hardware, thebiggest lump of effort is theprocess of programming theapplication. Some parts ofthis lump include . ..

— Control flow:Outlining the majorpieces of the programand their relationships.

—Partitioning: A welldesigned system issimple! But how canthe desired simplicitybe reconciled with"doing a lot." One wayis to partition thesystem into pieces.Within each piece, afurther partitionprovides a set ofsub-pieces and so on.Each piece of theprogram is thus kept ata level of relativesimplicity, yet thewhole system adds upto a quite sophisticatedset of functions.

— Coding: With theapplication design laidout in some detail, theprogram must be codedand debugged for aparticular computer.The result could be aseries of octal orhexadecimal numbersfor your owncomputer, or a highlevel language programwhich can be translatedby an appropriatecompiler.

72

Fig. 1. Three views of LIFE: (a)on paper; (b) in memory; (c) on adisplay.

A

•

B 00

0000000000000000000000000000000000000

A live 'memory.

000000000000000000000000000000000000cell" is

000000000000001000000000000

a "V

000000000000000000000000000000000000

' bit in

A live "cell" is a dot on paper.

A live "cell" is a point of light ona graphics display.

What Are The Facts of LIFE?

Ask a biologist thequestion "What are the factsof life?" and you will get oneanswer; ask a "byter" andyou'll get the "real" answer —an evolution algorithm usedto generate the placementand "cell" content of asquare grid given the previousstate of cells in the grid. Theinspiration of the game is acombination of modernbiology, the concept of"cellular automata" incomputer science and thepure fun of mathematicalabstractions. In making acomputer version of thegame, the simplest approachis to think of a group ofindividual "bits" in thecomputer memory — withyour thoughts assigning onememory bit to each "square"of the grid. (The handoperated form of the gamealgorithm uses graph paperfor the squares in question.)If I have a place in memorywhich can store one bit, it

can have a value of logical"zero" or logical "one".

The LIFE game treats eachlocation of the grid (its"squares") as a place where a"cell" might live. If the placeis empty, a logical "0" valuewill be used in the computermemory; if the place isoccupied, the "cell" will beindicated by a logical "1"value. The rules'of the LIFEalgorithm are defined interms of this idea of a "cell"(logic 1) or "no cell" (logic 0)at every point in the universeof the grid. Fig. 1(a)illustrates a single live cell ona section of graph paper as Imight record it when I workout the LIFE process byhand. Fig. 1 (b) shows asimilar section of thecomputer memory in whichbits ("0" mostly, but "1" forthe cell) stand for the contentor lack of content of a squareon the grid. Fig. 1(c) shows athird view — the output of aprogram which puts thecomputer memory bits of thegrid onto a graphics display.

Look again at Fig. 1(a).The "cell" on the graph papergrid is a black dot placed insome location. Count thenumber of graph papersquares which directlysurround the live "cell"location. There are 8 possibleplaces which are "nearestneighbors" to the place heldby the live cell. Similarly, ifyou pick an arbitrary squareon the graph paper, you cancount up its nearest neighborsand find 8 of them also. Therules of the LIFE algorithmconcern how to determinewhether to place a "cell" in aparticular square of the gridfor the "next generation",given the present content ofthat square and its 8 nearestneighbors.

What are the properties ofa specific grid location of thegame? I've already mentionedits binary valued nature (ithas a "cell" or it doesn't) andits neighbors. One moreproperty which is crucial tothe game of LIFE is that ofthe "state" of its 8 nearest

neighbor squares. For LIFE,the "state" of the neighborsof a grid location is defined as"the number of occupiedneighbors." In the examplesof Fig. 1, the "state" of thegrid location with the live cellis thus "0" (no neighboringcells), and the state of anycell location which touchesthe single live cell's location is"1". If 1 were to fill theentire graph paper or itsmemory equivalent with livecells, the state of any gridlocation in the middle wouldbe "8".

Stated in words, the rulesof the LIFE algorithmdetermine the content ofeach grid location in the"next generation" in terms ofits present content and thestate of its nearest neighborgrid locations. The rulesdivide into two groupsdepending upon the presentcontent of the grid locationwhose "next generation"value is to be calculated:

X^

73

Fig. 2. (a) A "glider" generation #n. (b) Examining location "Z" and itsnearest neighbors, (c) What has to change for generation #n+l. (d) Thesecond phase of the glider (generation ih+1).

B

o • • •

o •

Rule 1. LIVE CELLLOCATIONS. If the locationto be evolved has a live "cell"at present ("this generation")then,

1 .1 Starving forAffection. If thelocation to be evolvedhas a state of 0 or 1,there will be no cell atthe location in the nextgeneration. Metaphori-cally, if the cell hasonly one or no nearestneighbors it will die outfor lack of interactionwith other members ofits species.

1.2 Status Quo. If thelocation to be evolvedhas a state of 2 or 3,the present live cell will

live into the tomorrow

of the next generation.

1.3 Overpopulation. If

the location to be

evolved has a state of 4

thru 8, there will be no

cell at the location in

the next generation.

Metaphorically, the cell

has been crowded out

by overpopulation on a

local basis.

Rule 2. EMPTY

LOCA TIONS. If the location

to be evolved has no live

"cell" at present ("this

generation") then,

2.1 The Sex Life ofCells. If the location tobe evolved has a stateof 3, a new cell will be"born" in the formerly

empty location for the"next generation."Metaphorically, thethree neighboring"parent" cells havedecided it is time tohave a child.2.2 Emptiness. If thelocation to be evolveddoes not have threecells in neighboringlocations, it will remainempty.

This is the simplest set ofrules for the LIFE algorithm,a version which will allowyou to begin experimentingwith patterns and theevolution of patterns. Morecomplicated extensions canbe made to provide an actualinteractive (two people)competitive game version; aninteresting variation I onceimplemented is a LIFE gamewith "genetics." In thegenetics variation, each gridlocation (graph paper square)is represented in thecomputer as a "character" —an 8 bit byte — of memory.The character in the square isthe "gene" pattern of thatcell. Then, when rule 2.1 isimplemented, LIFE withgenetics uses a set of geneticevolution rules to determinewhich character will be put inthe newborn cell based uponthe "genes" of the parents.(This genetic evolutionprogram for LIFE waswritten for my associates atIntermetrics, Inc., as a testprogram to try out a newcompiler's output.)

How Do You Use The Facts ofLife?

To illustrate the facts ofLIFE, a hand-workedexample is a valuable tool ofunderstanding. Consider a"typical" pattern of LIFE asshown in Fig. 2(a). Fig. 2(a)shows what LIFE addicts call

a "glider" for reasons whichwill become clear a little bitlater in this article. The gliderpattern of Fig. 2(a) consistsof the five cells indicated byblack dots, and theirpositions relative to oneanother. I have also indicateda dotted line in all theillustrations of Figs. 2 and 3as a fixed reference point inthe grid.

The algorithm for evolvingone generation to the next isillustrated for one gridlocation in Fig. 2(b). TheLIFE program will examineeach location in the grid oneby one. This examination isused to figure out what thecontent of the cell will be inthe next generation accordingto the facts of LIFE. Sincethese facts only requireknowledge of the given gridlocation Z and its 8 nearestneighbor locations, Fig. 2(b)depicts a box of 9 squaresincluding Z. The rest of theuniverse is shown shaded. Todetermine what grid-spacelocation Z will be like in thenext generation, the LIFEprogram first counts up thelive cells in all thenearest-neighbor positions.The count is the "state" of Z.In this case there are 3 livecells on the top edge of thebox containing Z. Then, theprogram chooses which ruleto use depending uponwhether or not location Z hasa cell. In this case, Z is emptyso the "empty location" setof rules (numbers 2.1 or 2.2)is used. Since the state of Z is3, rule 2.1 applies and a cellwill be born in location Z forthe next generation.

Now if I had a true"cellular automaton" toimplement the LIFEprogram, all grid locationswould be evolved"simultaneously" — and veryquickly — in the computationof the next generation. Inpoint of fact, however, I have

74

a computer which can onlyhandle 8 (or 16) bits at a timewhich are stored in words ofmemory. For smallmicrocomputers, these bitsfor the LIFE grid will bestored as "packed" bit stringsand will be accessed by aseries of subroutines whichwill be described in LIFELine when the time comes. Ihave to sequentially lookat every bit of the internalLIFE grid of the program andexamine its old nearestneighbors in order tocalculate its new value. Iemphasize old for thefollowing reason: if I storethe new value of the gridlocation just evolved backinto that location with noprovision to recall its oldvalue, I'll end up with amixture of old and new datawhen I look at the next gridlocation in the row. Thatmixture is not part of therules and constitutes a"faulty" program forevolution. It turns out to besufficient to remember all thedata in one previous rowbefore it was changed inorder to calculate the nextrow after the change. Similarproblems of keeping track ofpartially updated data oftenoccur in computerprogramming, to be solved bythe identical technique oftemporarily remembering acopy of the un-updated data.In Fig. 2(c), the result ofexamining all the gridlocations in the vicinity ofthe glider of Fig. 2(a) isillustrated. The changes areindicated by three notationsfor cells:

Generation "n+1" of the gridof LIFE is illustrated in Fig.2(d), which was obtained by"executing" the changesnoted in Fig. 2(c). When theLIFE program is run, all thisis done automatically foreach point in the grid —resulting in a new generationas soon as the computer cancomplete all the calculations.The patterns will be seen to"evolve" in real time as newgenerations are calculated andsent to the scope output. One"dot" on the scope displaycorresponds to each live cellof the grid pattern. Fig. 3,(a), (b) and (c), continue thepattern evolution illustratedin Fig. 2 for the "glider". InFig. 3(a), changes togeneration n+1 are indicatedwith the same notation as wasused in Fig. 2(c). Theresulting generation n+2pattern is shown at the right.Fig. 3(b) shows the changesfrom generation n+2 togeneration n+3, and 3(c)shows the change going togeneration n+4.

One of the mostinteresting features of theLIFE game is the evolution ofpatterns which "move" acrossa graphics display device.With a fast enough processor,a glider such as the one usedin this example will "glide"to the lower right of thescreen at a breakneck speed,going off into limbo at theedge — or if the program is

Q) — this indicates a new cell generated

by rule 2.1jjT— this indicates an old cell which dies

by rules 1.1 or 1.3^— this indicates an old cell which is

retained by rule 1.2

sufficiently ' 'smart",reappearing elsewhere on thescreen due to a "wrap-around". The reason that theglider gets its name is becauseof its motion attributes. Notenow the fourth generation("n+4") in the sequencerepeats the original gliderpattern, but has moved oneunit along a diagonal of theLIFE grid toward the lowerright. (The reference lineshows this movement.) Ittook four generations for theglider pattern to regenerateits original form, whichdefines the "period" of thispattern. When you get yourgraphics interface up andrunning, you will findnumerous other classes ofpatterns, some of which haveperiods which run into

hundreds of generations.There are also other forms ofmoving patterns similar to theglider.

What Do I Need toImplement LIFE?

The fun part of LIFE is toexperiment with patterns ofcells and observe how theevolution from generation togeneration changes withpatterns and classes ofpatterns. In the lexicon ofLIFE lovers, there are wholeclasses of "gliders", "spaceships", "blocks", the"blinkers", "beehives", the"PI" and other patterns.You'll be able to set up initialconfigurations of these andother patterns, and observethe course of evolution usingthe hardware/software system

Fig. 3. (a) Third phase of the glider, (b) Fourth phase of the glider, (c)Back to the first phase, but displaced!

GENERATION N+3

: ■■■:■ ' ■ ■■■■■■■ ■:■■ *»*-:>;>::>"-*: : , . . .■..■■■■... ■ ■ ,

"• • •

GENERATION N+4

75

Fig. 4. The LIFE grid display with cursor detail (showing suggested pattern).

64 " x " positions "

x,y) designatedby cursor

concepts of LIFE Line. Thehardware requirements of thisapplication's first simple formare three:

1. An input method. The bestall around input you can getfor your computer is anASCII encoded typewriterkeyboard. This hardware willbe assumed, with 7-bit ASCIIcodes used in the examples ofprograms. If you feel likeembellishing the programwith special hardware, a"paddle" with several keyscan be wired in parallel withyour main keyboard tocontrol the special functionsof the LIFE program. Theinput keys used to controlthe display will require akeyboard which can detecttwo simultaneous (or three)keys being pressed. A normalASCII encoded keyboardwith an LSI encoding chipwill not work "as is" in thisapplication since pressing twokeys (other than control orshift and one other) will beresolved into two characters.An alternate "paddle" typeof arrangement is to use asingle input port with one

switch key switch for each bitof the port, debounced bysoftware. A keyboard whichis encoded by a diode matrixcan be used since the diodematrix will give a new code(logical sum) based uponwhich keys were depressed.

2. A processor. The game canbe implemented on anyconventional computer. As ameasure of capacity,however, the simple form willassume a 64x64 bit array forthe playing field, and anavailable home brewprocessor such as an Intel8080 (i.e.: Altair), Motorola6800, or National PACE. Thetotal programming capacityof your memory should beroughly 4000 8-bit words, or2000 1 6-bit words; theplaying field will require 5128-bit words, or 256 16-bitwords — and programmingwill include a set ofsubroutines to accessindividual bits.

3. A display. My first versionof LIFE was implemented ona PDP-6 in FORTRAN at theUniversity of Rochester whenI was a student. That program

used a direct link out to aDEC Scope controlled by aPDP-8 - with a teletype forinput. I have s inceimplemented life programsusing character-orientedterminal output and lineprinters.

The display to be used forLIFE Line purposes I'll leaveundefined in detail, but withthe following characteristics:It should have an X-Yselection of coordinates fordisplay elements (LIFE gridlocations), which can beindividually controlled. Itssize will be assumed 64x64.

A Note Regarding Speed

The LIFE algorithm to beillustrated in LIFE Line isoptimized fairly well forspeed — a requirement whichwill become obvious in thecontext of your own systemif you use a typicalmicroprocessor. With a fairlylarge pattern of cells, it maytake as much as a minute ormore to compute the nextgeneration. Trading offagainst speed is memory size

— use of a packed bitstructure is necessary if thematrix and programs are tofit in a micro computer whichis inexpensive. But thepacked bit structure requirestime to access bits (eg: theshift/rotate instructionsseveral times might be used inthe access process). I predictthat the program will be"dreadfully slow" if run onan 8008, and perhapspassably quick if you use a6800 or 8080. ("Passablyquick" means under 10seconds per generation.) Aused third-generation mini(high speed TTL) would beideal.

User Features

No application is completewithout taking in toconsideration the user of thesystem. The interface whichcontrols the system is animportant section of thedesign. There is a temptationon the part of individualssuch as you or I to say wordsto the effect: "Since I ammaking it for me, who theheck cares about the userinterface." But! Removingthe system from the workingproduct realm to the purelypersonal realm does noteliminate the need to design a

76

usable system. You have atleast one user to think of —yourself! In point of fact,however, I doubt that anyreader who builds a scope orTV graphics interface will beable to resist the temptationto show it off to his or herfamily and friends; so, evenfor "fun'' systems,consideration of users is still amajor input.to the design.

The user interface for theLIFE program will providethe following functions toenable a pattern to be drawnon the screen and initiated:

1. Cursor. The displayoutput should provide a"cursor" which is maintainedall the time by a subroutinein the software at a given "X"and "Y" position of thematrix. Fig. 4 illustrates thepoint matrix of the screen(here assumed 64x64) andthe cursor pattern. The cursoris a visual feedback throughthe display to the user of theLIFE program, illustratingwhere the program will placeor erase information. Fig. 4shows a blow-up of onepossible cursor pattern.

Two additional featuresare required for a usefulcursor output of the programfor LIFE. These are:

- A blinking feature.Suppose you have filled thescreen with a complicatedpattern drawn with the cursorcontrols described below. Asignificant number of thescreen points are now filledwith dots — and there will bea strong tendency to confusethe cursor pattern of Fig. 4with the actual data patternyou have entered. A "blink"feature can be built into theprograms which create thecursor so that you will alwaysbe able to distinguish it by itsflashes.

— A blanking feature. For theLIFE game, a necessaryattribute of cursor control isthe ability to blank out thecursor during the actualevolution of patterns. Iconsider this necessary due toobservation of a

Birth - the cursor leaves a path of "cells," illuminated points.Death — cells in the cursor's path are eliminated.

demonstration LIFE programfor one desk topprogrammable CRT terminal:its cursor is always presentand mildly annoying whenthe LIFE game is inoperation.

A basic way to make thecursor disappear from view atcertain times is to requireactive control by cursordisplay routines when theprogram is in its input mode.If the LIFE program leavesthe input mode to go evolvesome patterns, the cursor willdie a natural death until theactive maintenance isresumed on return to theinput mode.

2. Cursor Control. Thewhole purpose of the cursoris to provide a means offeeding back to you — theuser — the current gridlocation the LIFE program ispondering. Movement of thecursor provides theopportunity for three typesof data entry to the program:

— Positioning of the Cursor.By simply moving the cursorunder control of thekeyboard (see below) you candirect the LIFE program'sattention to different parts ofthe screen.

— Sowing Seeds of LIFE. Bymoving the cursor whileindicating a "birth" function,the cursor will leave a trail of

"cells" indicated in thedisplay by illuminated points.(One keyboard key isrequired for this function.)— The Grim Reaper. Bymoving the cursor whileindicating a "death"function, any cells in the pathof the cursor will beeliminated, by turning off thecorresponding display point.(One keyboard key isrequired for this function.)

Motion control is also usedto enter data. By picking adata key and at the same timedepressing one or two of thecursor direction keys, a"trail" will be left. A timingloop in the input programwill be used to set areasonable motion rate in theX (horizontal) and Y(vertical) directions, so thatthe data entry will beperformed automatically aslong as the keys aredepressed. The motioncontrol keys and usefulcombinations are illustratedin Fig. 5.

3. Program ControlCommands. This is thesection of the LIFE programdesign which is the softwareanalog of the "backplane"data bus concept in ahardware system. LIFE Lineconcerns a modular LIFEprogram which will be subjectto many variations andimprovements.

77

KILLING TWO BIRDS WITH ONE STONE, or "HOW IDESIGNED A GENERAL INTERACTIVE GRAPHICSSOFTWARE INITIALIZATION PACKAGE IN THE GUISEOF A SPECIFIC APPLICATION.

The ideas contained in this article are by no means limitedto control of the graphics display type of device in the LIFEcontext used for this application. The only necessaryconnection between the LIFE program proper and the display"drawing" and updating functions is in the existence of severalsubroutines needed to turn on/turn off selected points, andthe ability of the display input ("drawing") routines to call theLIFE program. One logical extension of the program controlmechanisms to be included in LIFE Line is to allow theinvocation (ie: activation, calling, etc.) of other programs andgames which use the display.

When the "drawing" routines are up and running, evenbefore you hook up the LIFE algorithm proper, you'll be ableto manipulate the contents of the scope under softwarecontrol and draw pictures on the screen.

Fig. 5. Cursor motion control commands.

The following commands (one key on your keyboard for each) are used to simply move the cursor in oneof the grid directions at a rate set by the cursor control software:

Typical "Key Tops"

f UP J or

(DOWN) or

( LEFT J or

(rIGHt) or

Move toward top of screen.

Move toward bottom of screen.

Move left on the screen.

Move right on the screen.The following combinations can be used to achieve motion in diagonal directions:

Toward Upper Right Corner-PRESS ( UP J AND (rIGHTJ AT THE SAME TIME.Toward Lower Right Corner-PRESS (DOWN J AND (rIGHt) AT THE SAME TIME.Toward Lower Left Corner - PRESS (down) AND (left) AT THE SAME TIME.

Toward Upper Left Corner-PRESS ( UP J AND f LEFT J

AT THE SAME TIME.

Remember that all eight of these possibilities can be used to "sow the seeds" or erase data if theappropriate data key is pressed simultaneously.

The first demonstration ofLIFE in these pages is just thebare bones of a LIFEprogram. When it is fullydescribed you will see theinput display routines, theevolution algorithm, theprogram control mechanismand little else. The programcontrol mechanism, however,is quite general and will beused to integrate additionalcommands, variations onLIFE, etc. The means ofachieving this modularity-is aset of "hooks" which enableyou to add commandsbeyond the bare minimum bycoordinating new moduleswith the program. Thefollowing is a minimum set ofprogram control commandsfor the first version:RUN — a key assigned to thisfunction will terminate theinput ("drawing") mode, andbegin the "run mode."DRAW — a key assigned tothis function will be testedduring the "run" mode tocause a return to the "draw"mode.

CLEAR — a key assigned tothis function will be used toclear the screen in the"drawing" mode, leaving onlythe cursor and a blank screen.

The above features areonly a minimum set of usercontrols for LIFE. Additionalprogram control commandswhich will prove invaluablewhen added include:SAVE/RESTORE -commands to write and readLIFE patterns on cassettetape or other mass storagedevice in your home brewsystem.

I N 1 TIALIZATION -functional key entries for thegeneration of various"standard" LIFE patternsplaced at the current cursorlocation.

Next month, LIFE Linewill enter into the realm ofsoftware design to describethe LIFE program software inmore detail.

78

LIFE Line Glossary.

Communication of meaning requires definition of terms. The following is a listing of selected terms usedin LIFE Line with short explanations. Tire terms which are marked "L" are primarily significant only in theLIFE application - all others are fairly general terms.

"Active Control" - in the LIFE example, a desiredrequirement for the cursor is that it disappearautomatically if not continually refreshed. This canbe accomplished in software by instituting a"garbage sweeper" for the screen which clears thescreen memory periodically and updates from thelatest non-cursor sources of data. Normally, thecursor control/display subroutine would be calledafter the screen is updated - but if the cursorcontrol routine is not called, the cursor will beabsent after garbage sweeping. The cursor is thussaid to require "active control" because it must beexplicitly posted on the screen following thegarbage sweeping operation if it is to appear at all.(L)

"Algorithm" - this term has a formal mathe-matical origin as the generalized methodology forarriving at some result. In the computer sciencearea, it retains this definition: an algorithm is themost general processing required to achieve someresult. "Algorithm" is a term which includes theterm "program" in the following sense: a programis an algorithm (general) as written and coded for aspecific system.

"Application" - an application is a specific systemdesigned to accomplish some goal. In the computersystems area, applications are generally composedof hardware and software components which must"play together" to accomplish the desired func-tions. The LIFE Line's target - a working game ofLIFE - is an example of an application.

"Backplane Bus" - the hardware concept of a setof wired connections between identical terminalsof multiple sockets. In modular systems, thecommon wiring makes each socket identical toevery other socket. Hardware modules can then beinserted without regard to position in the cabinetcontaining the equipment.

"Cellular Automata" - conventional computersemploy a serial or sequential method of processing.One instruction, then the next, is executed in atime-ordered sequence. The "cellular automata"concept is one way of visualizing large and compli-cated parallel computing elements. Hypothetically,the LIFE game could be played by such a cellularcomputer, one which calculates each matrixelement simultaneously. In the present state ofcomputer technology, this is not possible, so youhave to settle for a simulation of the parallelcomputation's result, using a serially executingprogram.(L)

"Coding" - the process of translating a functionalspecification of a program or routine into a set ofmachine readable elements for actual use in acomputer. Coding can mean writing FORTRANstatements, writing PL/1 statements, writingassembly language statements, or ... if you haveno compiler, coding is the writing of machinecodes directly onto a sheet of paper using tables ofop codes, an eraser and patience.

"Cursor" — a mark on a display screen used toidentify a particular place. This interpretation is anelectronic adaptation of the standard definition inWebster.

"Evolution" - patterns in the game of LIFEchange from generation to generation according tothe rules. The sequence of such changes can looselybe called the evolution of the pattern.(L)

"Feedback" - in the context of system develop-ment, feedback is the use of observed systembehavior to modify and improve the design of thesystem.

"Functional Specification" — a functional specifi-cation of a system is one which describes "what"the system must do, more or less independent ofany technology which is required to make the"what" work. It is easy to come up with loosefunctional specifications — the hard part is torefine the specification and pin it down to some-thing which is "do-able" in a given context oftechnology. I have a functional specification in mymind, for instance, of a useful interplanetary travelmethod - but whether or not I ever see such asystem depends upon advances in physics,engineering and economic understanding. BYTEoften concerns itself with functional specificationsof much more "do-able" systems which readers canand will implement on home computers.

"Generation" - this term in the LIFE contextmeans the present "state" of all the locations inthe "universe of the grid" at some point intime.(L)

"Implement" - technical jargon verb for thecreation of a system or element of a system. Ahardware designer might implement a controller ora CPU; a software programmer implements asystem of programs; a systems designer implementsa hardware/software combination which achieves adesired functional end.

"Indexing" — the technique of referencing data incollection of similar items by means of numerical"indices." In the LIFE Line example, the collec-tion is that of the 64x64 array of bits in thecomputer representation of "grid space." Indexingby row and by column is used to pick a particularbit within this array when the program requires thedata.

"Interact" - when a system "interacts" with"something/person" it is operating under analgorithm which allows conditional behaviordependent upon data. The data is obtained fromthe "something/person" and may in fact beinfluenced by previous interactions as well as newinputs. In many computer contexts "interact" hasthe additional implication of "quick" response in"real time." Thus when you think of an"interactive" terminal or game, you think of acomputer programmed so that it keeps up with theinputs from the human operator.

79

INTEL 1K 2102 RAM

Factory prime, tested units. Factory selected formuch faster speed than units sold by others. 650NS. These are static memories that are TTLcompatible and operate off + 5 VDC. The realworkhorse of solid state memories because theyare so easy to use. Perfect for memories becausethey are so easy to use. Perfect for TV typewriters,mini-computers, etc. With specs.

$3.95 ea. or 8 for $30

SIGNETICS1KP-ROM

82S129. 256 x 4. Bipolar, much faster than MOSdevices. 50NS. Tri-state outputs. TTL compatible.Field programmable, and features on chip addressdecoding. Perfect for microprogramming appli-cations. 16 pin DIP. With spec. $2.95 ea.

8T97B

By Signetics.Tri-State Hex BufferMOS and TTL Interface to Tri-State Logic.Special $1.49

DO YOU NEED A LARGE COMMON ANODEREADOUT AT A FANTASTIC PRICE?S.D. presents the MAN-64 by Monsanto - 40 inchcharacter. All LED construction - not reflectivebar type, fits 14 pin DIP. Brand new and factoryprime. Left D.P.

$1.59 ea. 6 for $7.50

MOTOROLA POWER DARLINGTON - $1.99MJ3001 - NPN - 80 Volts - 10 Amps - HFE 6000typ. To-3 Case. Ideal for power supplies, etc.We include a free 723 regulator w/schematic forpower supply with purchase of the MJ3001. Youget the two key parts for a DC supply for only$1.99. Regular catalog price for the MJ3001 is$3.82.

LARGE SIZE LED LAMPS

Similar to MV5024. Prime factory tested units. Weinclude plastic mounting clips which are very hardto come by.

Special 4 for $1

48 HOUR SERVICE

You deserve, and will get prompt shipment. Onorders not shipped in 48 HRS' a 20% cash refundwill be sent. We do not sell junk. Money backguarantee on every item. WE PAY POSTAGE.Orders under $10 add 75^ handling. No C.O.D.Texas Res. add 5% tax.

S. D. SALES CO.

P. 0. BOX 28810 DALLAS, TEXAS 75228

J

"Lexicon" - the list of buzzwords in any givenfield. This glossary is a subset of a lexicon coupledwith explanations. In compiler and languagedesign, "lexical analysis" is a derivative of this termconcerned with language keywords and their rela-tion to a grammar.

"n", "n+1", "n+2"... - when it is useful tospecify a sequence of things, where no particularnumber is intended, a "relative" notation of thesequence is useful, "n" is some arbitrary number;"n+1" is one number greater than an arbitrarynumber, and so on. When I say "generation n+1"of LIFE, I mean the next generation aftergeneration "n" where "n" is arbitrary.

A suitable LIFE display peripheral is an oscilloscopegraphics interface such as the Digital Graphic DisplayOscilloscope Interface designed by James Hogenson andprinted in the May 1975 issue of ECS Magazine, thepredecessor to BYTE. The graphics interface article will beexpanded and published in BYTE No. 2, October 1975. Untilsupplies are exhausted, back issues of May ECS (and earlierarticles) can be ordered at $2 each. Orders and inquiriesregarding ECS back issues should be sent to M. P. Publishing,Box 378, Belmont MA 02178.

"Partitioning" - the technique of "divide andconquer." Rather than view a complicated systemas a monolithic blob of "function," an extremelyuseful design method is to partition the systeminto little "bloblets" of function which are easy tounderstand. Hardware designers of CPUs thus thinkof MSI chips as sub-elements in partitioning;hardware systems designers think of CPUs andperipherals and memories as sub-elements of parti-tioning, and software designers consider divisionsof complicated programs and program libraries astheir sub-elements.

"State" - the present condition of some system,or elements of the system. This term applies to anysystem which has "memory" to distinguish onepossible "state" from another. The term appliesequally well to small sub-elements of a system suchas the bits of a memory: in the LIFE Line context,the "state" of a single grid location is a numberfrom 0 to 8 counting how many "neighbor cells"are present.

"System " - the most general of all general purposeterms. A system is a collection of componentelements (technological, hardware, software,human-interface) selected to play together accord-ing to some design or purpose. A system is ahuman-invented way of doing things.

"Undefined in Detail" - I know what is needed,can specify its interface, but am not at presentsupplying the detail design. This is a useful attitudesince it allows for "plug compatible" designsdiffering widely in their internal principles ofoperation. A similar expression would be to callthe subsystem in question (the graphic displaymentioned in this LIFE Line example) a "blackbox" and leave it at that. (Software always seemsto reference hardware in this way, and hardwaredoes the same for software.) A synonym for theattitude is the mathematician's way of saying "inprinciple there exists a solution!" without tellingyou what it is.

"Universe of the Grid" - this is the set of allpossible places in which a LIFE cell could beplaced. These places are called "grid locations".(L)

80

MITS Altair Computer Report II

MITS Announces Lower Memory Prices!

On lulyl, 1975, MITS lowered the price of the Altair 1K StaticMemory Card (88-1MCS). The kit price was dropped from $176to just $97 while the assembled price was dropped from $209to $139.

This price reduction was made possible by a reduction in theprice of the Altair 1K 8101 memory chips.

Also affected was the price of 88-MM 256 byte (word) memorymodules. The $53 kit price was lowered to just $14 and the $61assembled price to $26.

Altair BASIC-Not JustAnybody's BASIC

Altair BASIC is an easy-to-use programming language that cansolve applications problems in business, science and education.

You will find that with only a few hours of using BASIC thatyou can already write programs with an ease that few other com-puter languages can match.

Altair BASIC doesn't compromise power for simplicity. While-it is one of the simplest computer languages in existence, it isalso a very powerful language.

ALTAIR BASIC comes in three versions. The first of these is a4K BASIC designed to run in an Altair with as little as 4,000 wordsof memory. This powerful BASIC language has 6 functions (RND,SQR, SIN, ABS, INT, and SGN) in addition to 15 statements (IF . . .THEN, GOSUB, RETURN, FOR, NEXT, READ, INPUT, END, DATAGOTO, LEX DIM, REM, RESTORE, PRINT, STOP) and 4 commands(LIST, RUN, CLEAR, SCRATCH).

The second ALTAIR BASIC option is the 8K BASIC designedto run in an Altair with as little as 8,000 words of memory. ThisBASIC language is the same as the 4K BASIC only with 8 addi-tional functions (COS, LOG, EXP, TAN, ATN, INR FRE, POS) and4 additional statements (ON . . . GOTO, ON . . . GOSUB, OUT,DEF) and 1 additional command (CONT). This BASIC has a multi-tude of advanced SFRING functions and it can be used to controllow speed devices —features not normally found in many BASIClanguages.

The third ALTAIR BASIC is the EXTENDED BASIC version

designed to run on an Altair with as little as 12,000 words of

memory. It is the same as the 8K BASIC with the addition of

' PRINT USING, DISK I/O, and double precision (13 digit accuracy)

add, substract, multiply and divide.

Altair BASIC is only the beginning. MITS is currently engagedin an extensive software development program. Other softwarenow available includes an Assembler, System Monitor, and TextEditor.

Altair software comes with complete documentation.

One Month Specials

The Altair Users Group is quite possibly the largest computerhobbyist organization in the World. It is both a means of communi-cation among Altair Users and a method of building a comprehen-sive library of Altair programs. All Altair 8800 owners are entitled•to a free, one year membership in this group.

For one month only, you can become an Associate Member lorone year at a reduced rate of $10 (regularly $30). Among otherbenefits you will receive a subscription to the monthly publication,Computer Notes, which contains complete update information onAltair hardware and software developments, programming tips,general computer articles and other useful information.

Now available is the Altair Software Documentation Book I whichcontains technical data on the Altair Assembler, Text Editor, SystemMonitor and BASIC language software. This documentation is freeto purchasers of Altair BASIC. For one month only, it is beingoffered for only $7.50 (regularly $10).

Offers good until September 30, 1975.

The IK Static Memory Card contains 1024 bytes of memorywith a maximum access time of 850 nanoseconds.

Now ready for production is the new Altair 2K Static MemoryCard (88-2MCS) with 2048 bytes of memory. Like the IK StaticMemory this new card contains memory protect features andprovisions for disabling the ready.

It has a maximum access time of 850 nanoseconds and isengineered with the finest components available. It is inexpen-sively priced at $145 kit and $195 assembled.

HARDWARE PRICES:

All air Computer kit with complete assembly instructions $439

Assembled and tested Altair Computer $621

1,024 Byte Sialic Memory Card $97 kit and $139 assembled

2,048 Byle Sialic Memory Card $145 kit and $195 assembled

4,096 Byle Dynamic Memory Card $264 kit and $338 assembled

Full Parallel Interface Card $92 kit and $114 assembled

Serial Interface Card RS232) $119 kit and $138 assembled

Serial Interface Card (TTL or Teletype) . $124 kit and $146 assembled

COMTER II* $780 kit and $920 assembled

•The Cornier II Computer Terminal has a full alpha-numeric keyboard and ahighly readable 32-character display. It has its own internal memory of 256characters and complete cursor control. Also has its own built-in audio cassetteinterface that allows you to connect the Comter II to any tape recorder forboth storing dala from the computer and feeding it into the computer. Requiresan RS232 Interface Card.

SOFTWARE PRICES:

Altair 4K BASIC $350

Purchasers of an Altair 8800, 4K of Altair Memory, and Allair Serial I/O orAudio-Cassette I/O ONLY $60

Allair 8K BASIC $500

Purchasers of an Allair 8800, 8K of Altair Memory, and Altair Serial I/O orAudio-Casselle I/O ONLY $75

Allair EXTENDED BASIC $750

Purchasers of an Allair 8800, 12K of Allair Memory, and Allair Serial I/O orAudio-Casselle I/O ONLY $150

Allair PACKAGE ONE (assembler, text editor, syslem monitor)

Purchasers of an Altair 8800, 8K of Allair Memory, and Allair I/O ONLY $30

NOTE: When ordering software, specify paper tape or cassette tape.

Warranty: 90 days on parts for kits and 90 days on parts and labor for assembledunits. Prices, specifications, and delivery subiect lo change.

MAIL THIS COUPON TODAY!

D [inclosed is chock for S

□ BankAmericard n □ or Master Charge #

□ Altair B800 □ Kit D Assembled □ Options

Include $8 for postage & handling□ Altair Users Croup AssociateD Please send free literature

NAME

ADDRESS

CI TV

(list on separate sheet)DSoftware Documentation

.STATE & ZIP.

MITS/6328 Linn N.E., Albuquerque, NM 87108 505/265-7553 or 262-1951

Creative Electronics

MITS/6328 Linn N.E., Albuquerque, NM 87108 505/265-7553 or 262-1951

7400N TTL

SN74Q0NSN7401NSN7402NSN7403NSN7404NSN74QSNSN7406NSN740/NSN7408NSN7409NSN74I0NSN74UNSN7412NSN74I3NSN74I4NSN741UNSN7417NSN74IHNSN7420NSN7421NSN7423NSN74ZSNSN742GNSN74?7NSN7429NSN7430NSN7437NSN7437NSN7438NSN7439ASN7440NSN7441NSN7442NSN7443NSN7444NSN7445NSN744GNSN7447NSN744BNSN745UN

SN7451NSN7453NSN7454NSN7459ASN7460NSN7470NSN7472NSN7473NSN7474NSN7475NSN7476NSN7480NSN7482N ISN74B3N 1SN7485N 1SN748GNSN7488N 3SN7489N 3SN7490NSN7431N 1SN7492NSN7493NSN7494NSN7495NSN7496NSN7410QN 1SN74107NSN74I2INSN74I22NSN74I23N 1SN74125NSN74I26NSN74132N 3SN74141N ISN74142N ESN74143N 1SN74M4N 1SN74145N 1SN741A8N 3SN74150N 'ounlfor 100 C

SN74I51N

SN74153NSN74154fl

SN74155NSN74156NSN74157NSN74160NSN741EINSN741G3NSN741G4NSN74165NSN741GGNSN741G7NSN74 170NSNJ4172NSN74 173NKN74174NSN74175NSN74I7GNSN74 177NSN74180NSN74181NSN74182NSN74184NSN74 18SNSN741B7NSN74190NSN74I9INSN74192NSN74193NSN74194NSN74 195NSN74 19GNSN74197NSN74I9BNSN74 193NSN7420GNSN74251NSN74284NSN74?BhNt 7400s

crnooo

CO4O0ICD4002CD4Q0GCD4007CD4CI0flCO401OCD4011CD40I?CD40I3CO4016CD40I7CD40I9CD402nCO4022CD4023C04024CD4025CD4027CD4028CD4029

CMOS

2.50.29

2.90

CD4030CD4035CD4040C04042CD4044GD4046CD4047CD4049CD4050CD4051CD4Q53CD4060CO4066CD40B9CD4071CD4D8174C00N74C02N74C04N

74C10N

74G20N

74C30N

74C42N

74C73N

74C74

74C90N

74C95N

74C107N

74C15I

74CI54

74C157

74C160

74C161

74CIG3

74C1G4

74C173

74C193

'4C195

B0C97

15 002 503.75

LM100HLMIOGHLMI7IHLM212HLM300HLM3QIHLM30JCN 3.1LM302HLM3Q4H 1LM305HLM307CNLM308H ILM308CN 1LM309H 1LM309K 1LM3I0CN 1LM311HLM3HNLM31BCN 1LM319N 1LM319DLM320K 5LM320K 5.2 1.35LM320K 12 1.35LM320K ILM323K-5LM324N 1.80LM339N 1.70LM340K-5 1.95LM340K 12 1.95LM340K 15 1.95LM340K 24 1 95LM340To5 1.75LM340Ta6 1.75LM340Tot21.75LM340Tu 151.75lM340To24 1.75LM350N 1.00LM35ICN 65LM370N 1.19LM370H 1 15

900

14,00

LINEAR

LM373N 325

LM377N 4.00

LM380N 139

LM380CN 105

LM381N I 79

LM382N I 79

NE501K BOO

NE5I0A G.00

NE531H 3.00

NE53GT 6.00

NE540L 6.00

NE550N .79

NE553 2 50

NE555V 75

NE5G5H 1.25

NE565N 1.95

NE566CN 1.95

NE567H 1-25

NE567V 1.95

LM703CN 45

LM709H 29

LM709N .29

LM710N 79

LM711N 39

IM723N .55

LM723H 55

LM733N 1.00

LM739N 1.29

LM741CH 3 I 00

LM741CN 3 1.00

LM74I 14N .39

LM747H .79

LM747N .79

LM748H .39

LM748N .39

LM1303N .90

LM1304N 1.19

LMI305N 1.40

LMI307N 85

LM1310N 2.9

LMI351N 1G

LM1414N 1.7

LM145BC ,E

LM149GN 9

LM155GV 18

LM2111N 1.9

LM2901N 2 9

LM3065N .fi

LM3300N 5

LM3905N E

LM5556N 1 8

MC5558V | 0

LM7525N 9

LM7528N 22

LM7534N 2 2

LM7535N 1 2

8038 B 4.9

LM75450 .4

7S451CN .3

75452CN ]

75453CN 3

75454CN 3

7549ICN .7

75492CN 8

75494CN 8RCA LINEAR

CA3013 1.7

CA3023 2.1

CA3035 2.2

CA3039 13

CA304G 1 1

CA3059 2.4

CA30GO 2.8

CA3 080 8

CA30B3 16

CA3086 .5

CA3089 3 2

CA3091 8.2

CA3123 18

CA3G00 1.7

MICROPROCESSOR COMPONENTS

$29.35 8111

1024 RAM $12.95

7489

8599

1101

2102

8101

7010 IK NMOS RAM

2107 4K HAM

Vacioi

149.95 1702A 2K PROM

64B RAM

ri-State 748925GB RAMIK RAM1024 RAM

2.953.502.254.9511.95

52030 2KPR0M

8223 PROM

2401 2KSR

2533 1KSSR

AY-51013 UAHTRetains data w/o Power

19.953.009.95

11.BS7.95

450NS Access lime-22 p

DIP

General Purpose Logic CARDHigh Noisa Immunity 'Holds 12 ea. 14 pin DIPSn Edge Connection

THE KILOBYTE RAM CARD

'Complete 1Kx8 Memory * High Noise Immu

'Single 5v supply '500NS Access Time SKit i

Board

Per Kit 69.95iiiy Componentsicludes sockets, ICS 8.

FREE With each $75 order ot Microprocessor components,S12.00 get a one year subscription to BYTE (he magazine lorValue computer PHREAKS FREE FBEE FREE

8000 SERIES

82238230826382S7

■3 0D2.59

8820S82G

8200821082148220

DIGITAL COUNTER UNIT

4 Each - Man? Displays* * 10000 Counter'Complete with Board . .

♦

DIGITAL VOLTMETER KIT

0-2 Volt, Auto Polarity 3K digits (MAN7)OVM M0S-LSI DesignSize: 2%"x 2%" x K"

$39.95

TTL Logic Probe Kit ^-—^*-^Detects TTL levels, ^S^ld^H^pulses, with man 3 readout jS9.95 per kit

DVP.l Chip Set Siliconix

LDII0 Digilal A/D Processor 16.00 s7fl00Sp,

mill Analog A/D Processor 13.00

DM8890N

Complete Horiz.A/ert. Divider

Chain for T.V. Type, Appl. 1.95 Each

4' POWER SUPPLY CORDS .

Black

59« ea.

THUMBWHEEL SWITCHES

NEW

PROTO BOARD IU0

Here's a low ci«t,li.B 10 IC caoacnylireailbaaid I.11 wilh all the quality 1)1QT Sockets and Hie best nl (he Proto-Bnard series rninpletc down lo I lielast nut. bolt and screw. Includes2 0T 35S Sockets. I OT-35B Bus Strip.2 5 wav binding posts: 4 rubbei leet.nrnn, nuts, bolts, and easv assembly

POCKET CALCULATOR KIT

ilunc

nplu:

mt~

addressable muniury withiniiividual recall - 8 digitdisplay plus overflow - baitsaver - uses standard orrechargeable batteries - allnecessary parts in ready loassemble form - instruction

included. 3" x 51/."

OPTIONS-

115VAC Translormer . .

G each "N" Alkaline BatteriE

.394" DIAM. TRIMMER

W

STANDARD RESISTANCE VALUEI

MODEL 1X11 WCtl IK

Modal

ran

""JEn"'

.-.

iD-»

STDlOOfi

.36

.30

,'*&£.'/16 VECTOR BOARD

r-g&Tg^-

o*skm

..

WALL or T.V. DIGITAL CLOCK

12 or 24 Hour

25'VIEWINC, DISTANCE

Walnut Case G" i 3" :

Hi St Mm IT High

Seeomb-3" Higb

KIT ftllComp A Case S39.95

Wiipl1& Asseiulilcd 115 Vac S44.95

CA

MAN 1MAN 2MAN 3MAN 4MAN 7DL33DL747

DISPLAY LEDS

Com. Ano.5x7 MatrixCom. Caih.Com. Caih.Com. Ano.Com. Cath.Com. Ano.

DISCRETE LEDS

1.952.50

MV 10MV 50MV 5024MV 502-1MV 6024MV £024

6/SI 00G/Sl 005;S1.00

\

IGn.n18 pm22 pin

14 pinIE pin

18 put24 pm

ICSOLDERTAIL - LOW PROFILE (TIN) SOCKETS2548 50 100 I 2-1

SOLDERTAIL STANDARD (TIN)

?8 2G 28 pm !

SOLDERTAIL STANDARD (GOLD)

WIRE WRAP SOCKETS(GOLD)LEVEL .3

50 PCS. RESISTOR ASSORTMENTS $1.75 PER ASST.

ID OHM 12 OHM 15 OHM 18 OHM 22 OHM27 OHM 33 OHM 39 OHM 47 OHM 5G0HMG8 OHM 82 OHM 10U OHM 120 OHM 150 OHM180 OHM 720 OHM270 OHM 330 OHM 390 OHM

470 OHM 560 OHM Gflu OHM 870 OHMI ?K 1 5K 1 BK 2.2K

TOOK270K

IK27K

6.8K

1/flWATT S%~- 50 PCS.1/4 WATT 5%= 50 PCS.1/4 WATT SK* 50 PCS.1/4 WATT 5% = 50 PCS.1/4 WATT B%= 50 PCS.l/fl WATT 5% = 5D PCS.

IrtWAiTBS* 50 Pes.

PRIME

INTEGRATED flSS, 8CIRCUITASSORTMENTS "SST '

ASST 1

SSI.TTL

1175 74IBD N19I MI93

Satisfaction Guaranteed. $5.00 Min. Order. U.S. Funds.

California Residents — Add 6% Sales Tax

Write for FREE 1975S Catalog — Data Sheets .25* each

P.O. BOX 822, BELMONT, CA. 94002PHONE ORDERS - (415) 592-8097

ICS [E2£/^Lr3 KITS

FUNCTION GENERATOR KIT

luUJtMsmt,XR-2206K '"*••>' "'ii

IMctiON nfHfmicti my squarevvave.

THO 0.5ft tW.;

AM'rM cjiiabili

XH2206KA $19.95

Includes monolithic funclion generator IC. PC board, and asseinlilvinstruclion manual.

XH2206KB $29.95

Same as XR 2206KA abowe and includes external componentslot PC board

TIMERSXR555CPXR320PXR-55GCP

Monolithic Timer

Precision Timer

Dual-555 TimetXR-255GCP Dual Timing CircuitXR 2200CP Programmable CoonrerTimerPHASE LOCKED LOOPSXR-210 FSK Demotlulalor

XR2I5 High Fieqtiency PLL

XR567CP Tone Dccodei (mini DIP)XR-567CT Tone Decoder IT0-5)STEREO DECODERSXRI310P PLLSleieoDecodeiXR-1310EP PLL Stereo DecoderXR1SO0P PLL Stereo Decode.WAVEFORM GENERATORSXR-205 Waveform Generator

XR 22D6CP Monolithic Funclion GeneratorXR 2207CP Voltage Conltolled OscillatorOTHER EXAR ICS

XR I468CN Dual i 15V Tracking RegutatotXR I488N Quad Line Orn/erXR 1489AN Quad Lute ReceiverXR 2208CP Opsrational MultiplierXR-2211 CP FSK DemodulatorTTone DecoderXR-2261 Monolithic Proportional Servo IC System

w/4 ea. Oliver Transistoi

S 1.10155

5.206.60i.95

I.JO

3.203203.20

840

5.503.85

3.855.804 805.206.70.

♦ Special Requested Items*

HC-1'194 QmiTuck V Req SS.Sb

HC-1195 ' IS. PiLtk Bfg 3 35

MCI Ml HirjhSiUrt Qo Amu i 0U

MCJDJrlr1 4SD

CA313D Super CMOS OnAmn I J9

411410 3rtPNP 1 H

4DSH JrtNPrj i is

{Zcnerl

TYPE VOLTS

IN74G 3.3

IN7S1A 5.1

\Ulh2 5.6

IN753 G.2

IN754 0.8

IN96SB 15

IN5232 5.6

IN5234 6.2

IN5235 G.8

IN5236 7.5

IN456 25

IN458 150

IN485A 180

iNiani 50piv

IN400? 100 PtV

400m400m400m400m

MODES

PRICE TYPE

4-1.00 IN40034 1 00 IM40044/1.00 IN36004/1.00 IN41484/1.00 IN41541T0D IN4734.28 IN473528 IN473GIN4738IN4742IN4744IN11S3

(RKiliierlVOLTS W200 PIV I AMP400 PIV 1 AMP50 200m

6/1.006.1.005/1.00

10m

lw

IN11B4INII8GIN 1188

50 PIV 35 AMP

100 PIV 35 AMP

200 PIV 35 AMP

400 PIV 35 AMP

TRANSISTORS

MPSA05

2N918

2N2219A

2N2221

2N2222A

2N23G9

ZNZ3B9A

2N2484

5/S1

25 2N2906A

3 SI 2N2907A

2N3053

5 SI 2N3055

5 St 2N3725A

4/S1 2N3903

4'S1 2N3904

i 3 SI 2N2907A TT

i SI 2N3053 j

5 SI 2N3Q55 II

5 SI 2N3725A I

2N3905

4/Sl 2M3906

5 SI PN4249

2 SI PN4250

95 2N4409

2 SI 2N5129

5,'Sl 2N5139

4 SI C1068ISCR

«

22 pi47 pi

100 pi220 Dl470 pi

.OOlmt.0022,0047mf.01ml

.15 35V

.22 35V

33 35V

47 35V .

.68 35V .

1 0 35V

CAPACITOR CORNER

50 VOLT CERAMIC DISC CAPACITORS

100 VOLT MYLAR FILM CAPACITORS.10 .07 .022ml .13 11 .0

.10 .07 ,047ml .21 17 .1

.10 ,07 1ml .27 .23 .1

,10 .07 .22ml .33 .27 .!

KDIPPED TANTALUMS (SOLID) CAPACITOHS.23 17 15 35V 30 26

23 17 2.2 25V 31 27

.23 17 3.3 25V 31 27

.23 17 4.7 25V 32 28

23 17 68 25V .36 31

23 17 10 25V 40 35

23 17 15 25V 63 50

URE ALUMINUM ELECTROLYTIC CAPACITORS

15 13

10

33 29 27

24 20 18

ALTAIR 8800 USERS!

Did you know...

• That all our modules are 100% compatible with the Altair 8800computer, NO modifications necessary!

• That our 4KRA Static Read/Write Memory module doesn't haveto lose it's data when you pull the plug!

• That our 3P+S Input/Output module will fully interface two TVTypewriters with keyboards and a modem or teletype at thesame time!

• That we make the most powerful alphanumeric Video Displaymodule anywhere!

•That our software is FREE, or close to it!

• That all our modules are truly high quality, computer grade, butthat our prices are the lowest in the industry!

• That we have already shipped hundreds of modules on time, andwe will continue to deliver what we promise, FAST!

CHECK THE SPECS:

4KRA Static Read/Write MemoryThis 4096 word STATIC memory provides faster, more reliableand less expensive operation than any currently available dynamicmemory system. The 4KRA permits Altair 8800 operation atabsolute top speed continuously. All RAM's (Random AccessMemories) used in the 4KRA are 91L02A's by Advanced MicroDevices, the best commercial memory IC on the market today.91L02A's require typically 1/3 the power of standard 2102 or8101 type RAM's and each one is manufactured to militaryspecification MILSTD-883 for extremely high reliability. Thesememories can be operated from a battery backup supply in caseof power failure with very low standby power consumption. (Askfor our technical bulletin TB-101 on power down operation.) Inshort we have done everything we could to make the best 4Kmemory module in the computer field, and because we buy inlarge quantity, we can make it for a very reasonable price.Available now.

2KRO Erasable Reprogrammable Read Only Memory ModuleWith this module the Altair 8800 can use 1702A or 5203 typeErasable Reprogrammable ROM's. The 2KRO accepts up to eightof these IC's for a capacity of 2048 eight bit words. Onceprogrammed this module will hold its data indefinitely whetheror not power is on. This feature is extremely useful whendeveloping software. All necessary bus interfacing logic andregulated supplies are provided but NOT the EPROM IC's. Both1702A and 5203 PROM's are available from other advertisers inthis magazine for well under S25. Available now.

3P+S Input/Output ModuleJust one 3P+S card will fulfill the Input/Output needs of most8800 users. There are two 8-bit parallel input and output portswith full handshaking logic. There is also a serial I/O using aUART with both teletype current loop and EIA RS-232 standardinterfaces provided. The serial data rate can be set under softwarecontrol between 35 and 9600 Baud. You can use your old model19 TTY! This module gives you all the electronics you need tointerface most peripheral devices with the Altair 8800, it's reallythe most useful and versatile I/O we've seen for any computer.Available now.

MB-1 Mother BoardDon't worry any more about wiring hundreds of wires in yourAltair to expand the mainframe. Our single piece 1/8-inch thick,rugged mother board can be installed as one single replacementfor either three or four 88EC Expander cards, so you don't haveto replace your already installed 88EC card if you don't want to.The MB-1 has very heavy power and ground busses and comeswith a piece of flat ribbon cable for connection to the front panelboard of the 8800, Available now.

VDM-1 Video Display ModuleThis module is the first real computer terminal display in kitform. Under software control the VDM-1 displays sixteen 64character lines to any standard video monitor. Characters areproduced in a 7x9 dot matrix, with a full 128 character set, upperand lower case plus control characters. Data is accessed by theVDM as a block from any 1K segment within the 65K addressrange of the 8800 computer. Multiple cursors are completelycontrolled by software and the display can begin anywhere on thescreen (this is great for many video games). When the last line isfilled the display scrolls up a line. Powerful editing capabilities areprovided with the FREE software package included in everyVDM-1 kit. Available in September '75.

SOFTWARE

Our Assembler, Text Editor and System Executive is beingshipped now. This software package gives you very powerfulAssembly Language capability in the Altair 8800. The Executiveand Editor allow you to call programs by name (includingBASIC) and then add, delete, change, or list programs by linenumber. The Assembler provides a formatted symbolic mnemoniclisting as well as octal or binary object code from AssemblyLanguage programs written using the Editor. The Assembler alsogives valuable error messages to help in debugging those inevitableerrors. The Assembler, Editor, Executive Package No. 1 will beavailable in read only memory along with an expanded Executiveand a powerful Interpretive Simulator by October or Novemberof 1975.

We are working on two BASIC Language packages which shouldbe ready by October. One will be a basic BASIC needing about8K of memory as a minimum and the other will be an Extendedversion with additional string manipulation, matrix operationsand double precision arithmetic capabilities requiring about 12K.Both these packages will be available in Read Only Memory for areasonable price.

PRICE LIST

Item

Kit

A

ssembled Delivery

2KRO EPROM module

$ 50.

S 75.

2 weeks ARO

3P+S I/O module

125.

165.

3 weeks ARO

4KRA-2 RAM module

w/2048 8-bit words

135.

185.

2 weeks ARO

4KRA-4w/4096 8-bit

words of RAM

215.

280.

2 weeks ARO

RAM only, AMD91L02A

500n sec low power

8/S40

-

2 weeks ARO

MB-1 Mother Board

35.

-

2 weeks ARO

VDM-1 Video Display m

odule

160.

225.

Sept. 29, '75then 3 weeks ARO

Send for our FREE fly

er for

more

complete

specifications and

for pricing on additional

items.

TERMS: All items postpaid if full payment accompanies order.COD orders must include 25% deposit. MasterCharge gladlyaccepted, but please send us an order with your signature on it.DISCOUNTS: Orders over $375 may subtract 5%; orders overS600 may subtract 10%.

E Processor Technology2465 Fourth Street w

Berkeley,Ca.94710 wis) 549-0857

Memory Dumps

<W;

REVIEW

The Elements ofProgramming Style by BrianW. Kernighan and P. ].PI auger. McGraw-Hill, NewYork, 1974. $3.95.

This book is requiredreading for anyone who isseriously interested in writinggood programs. Even the bestprogrammers (and especiallythe most clever ones) canprofit from reading this book.The authors take all theirexamples of dubiousprogramming practices fromtextbooks intended to teachprogramming! Those of uswho have learnedprogramming from suchtextbooks will find many ofthe points made here usefulas well as amusing.

The intent of the book isto teach programming style,or the principles of writingwell-structured, readableprograms that work (in allcases) and are efficient. Theapproach is pragmatic anddown-to-earth, and can beapplied to every dayprogramming problems. Allof the examples are inFortran or PL/I, and can beread and understood byanyone familiar with eitherlanguage. The elements ofstyle, as the authors pointout, are applicable regardlessof the language being used,

Until somebody invents a direct link between human brains, theonly way to find out about methods and techniques is to read someoneelse's "memory dump"... books, magazines and other sources.Associate Editor Dan Fylstra has provided us with three reviews ofbooks which will prove useful in your home brew computer workThese memory dumps are not in hexadecimal or octai — and aredefinitely "readable."

. . . CARL

and the principles will be ofinterest even to assemblylanguage programmers.

There are chapters onwriting computationalexpressions, controlstructure, input/output anddata verification, commonblunders, efficiency andinstrumentation, anddocumentation. Each chaptertakes a series of exampleprograms, criticizes them,rewrites them withimprovements, and thenextracts some generalprinciples of goodprogramming practice fromthe examples. The principlesare summarized as a series ofshort aphorisms which arelisted together at the end ofthe book. Examples are"Don't patch bad code —rewrite it," "Test programs attheir boundary values," and"Make sure comments andcode agree."

The more programmingexperience you have, themore you will appreciate thisbook. Buy a copy foryourself, read it, and keep itaround for reference! — d.h.f.

Designing Logic SystemsUsing State Machines byChristopher R. Clare.McGraw-Hill, New York,1973. $9.50.

This is an advanced texton logic design which will beof interest to anyoneembarking on the design oflarge-scale logic systems. Anumber of important andvaluable ideas are presentedhere, apparently for the firsttime. The methods weredeveloped by Tom Osborneat Hewlett-PackardLaboratories and were used inthe design of the HPcalculators. The main featuresof the book are theintroduction of "AlgorithmicState Machines" (ASMs) todescribe logic systems, and acomprehensive discussion oflogic synthesis usingRead-Only Memories(ROMs).

An ASM is something of across between a flowchartand a finite state machine (itlooks like a flowchart, buthas boxes denoting states,with assignments for state

84

variables). ASMs turn out tobe very convenient andintuitive for describingcomplex logic functions,especially in the initial stagesof design.

The chapter onROM-centered design isprobably the most interestingpart of the book. It discussesa number of techniques forgetting the most out of aROM, and trading off ROMspace and external decodinglogic. The material presentedhere is difficult to findelsewhere, and as the price ofLSI chips continues to drop,the use of ROMs is becomingincreasingly attractive.

Two other sections of thebook are also noteworthy.The introduction discussesthe nature of an algorithm —a concept oftenmisunderstood by logicdesigners — and the value ofmodularity and functionaldivision. The chapter on"Linked State Machines"introduces the valuablenotion of interpretive linking,

in which a hierarchy ofmachines is built up such thateach state of a "higher level"machine can be described bythe ASM chart of a lowerlevel machine.

Other features of the bookare a complete discussion ofKarnaugh maps, includingtechniques for constructingmaps for functions of morethan four variables, and abrief treatment of logicsystem simulation andperformance evaluation.

This book is suitable onlyfor those with some previousbackground and experience inlogic design. The book is verywell organized, but it istersely written and requiresthe reader to think and tostudy the examples. Thecomments on software linkedmachines and computerstructures, especially those onTuring machines, should notbe taken too seriously. Thereader who patiently studiesthis book will profit greatlyfrom the time spent with it.-d.h.f.

TTL Cookbook by DonLancaster. Howard W. Sams& Co., Indianapolis, 1974.$8.95.

This book should be in thehands of every hobbyist whoexperiments with digitalintegrated circuits. It is alsorecommended for those whoprefer to work with"higher-level" microcomputersystem elements, sincemicrocomputer applicationsoften require at least a little"random logic" in hardware.The book contains a wealthof practical information,ranging from circuitbreadboarding techniques andpower supplies tosophisticated design methodsusing shift registers andbinary rate multipliers.Besides providing a good dealof useful information, the

book includes many pointers,cautions and "words ofwisdom'' for theexperimenter.

The book consists of eightchapters, one of whichprovides a list of shortdescriptions of the mostcommonly used TTL ICs, andanother which outlines anumber of interestingprojects for the hobbyist.

Many amateurs will findthe first chapter, "SomeBasics of TTL," especiallyvaluable. It discusses practicalmatters such as power supplyspike decoupling, currentrequirements, monitoringcircuit states, tools, "bad"and "burned-out" ICs, andmuch more. The chapter onlogic is notable for itsexplanations of positive andnegative logic, tri-state andopen-collector logic, and data

selectors and ROMs. Otherchapters cover gates andtimer circuits, JK and D-typeflipflops, counters, and shiftregisters and rate multipliers.The book does not discusstraditional design techniquessuch as Karnaugh maps andstate machines. The authorargues, with somejustification, that thesetechniques do not often leadto circuits with a minimalnumber of IC packages andtherefore the lowest cost.Instead the book lives up tothe promise of its title byproviding a tasteful selectionof "recipe" circuits - triedand true ideas - which theexperimenter can put intopractice. Perhaps DonLancaster will follow up thisvery useful book withanother one for "gourmet"experimenters, -d.h.f.

85

rrrrn

7-Segment Readout12-PIN DIP

Three digits with right-hand decimal

Plugs into DIP sockets

Similar to (LITRONIX) DL337

Magnified digit approximately .1"

Cathode for each digit

Segments are parallel for multiple

operation5-10 MA per segmentEACH SI.75 4 (12 DIGITS) $6.00)

RCA Numitron

EACH $ 5.00

SPECIAL: 5 FOR $20.00

DR2010

MOS MEMORY 2102-2

1024 Bit Fully Decoded Static MOSRandom Access Memory

-fast access 550ns

-fully TTL compatible

-n channel silicon gate

-single 5 volt supply

-tri-state output

-1024 by 1 bit

-chip enable input

-no clocks or refreshing

requiredBrand New Factory Parts16 PIN DIP Each $5.008 for $34.95

Power Supply SPECIAL!

723 DIP variable regulator chip 1-40V,+ or - output? 150 MA 10A with exter-nal pass transistor—with diagrams formany applications.EACH $1.00 10 FOR $8.95

5001 Calculator

40-Pin calculator chip will add, sub-tract, multiply, and divide. 12-digitdisplay and calculate. Chain calcula-tions. True credit balance sign out-put. Automatic over-flow indication.Fixed decimal point at 1, 2, 3, or 4.Leading zero suppression. Completedata supplied with chip.

CHIP AND DATA ONLY $2.49

DATA ONLY (Refundable)... $1.005002 LOW POWER CHIP AND DATA $12.95

High Quality PCBMounting IC Sockets

8-PIN, 14-Pin, 16-Pin and 24-Pin PCBmounting 0NLY--no wire wrap sockets.

3-Pin $ .22

^^^tk

^fl , ^m 16-Pin $ .30

^B ^r 24-Pin $ .75

40-Pin $1.25

All IC's arc now and fully tested. Leadsare plated with yold or solder. Ordersfor $5.00 or more will be shipped prepaidAdd 5 . ")5 for handling and postage forsmaller orders; residents of Californiaadd sales tax. IC orders are shippedwithin 2 workdays--kits are shipped with-in 10 days of receipt of order. S10.00minimum on C.O.D.'s.

Mail Orders to: ' phoneP.O. Box 41727

Sacramento, CA (916) 334-216195841

BRBVLOn

ELECTROniCS

Money back guarantee

on all goods!

Dale Trimmer

-12 turn trimpots which plug

into a DIP socket-5K and 200K

-V x v x y

-4 leads spaced .3" x .2"Each $1.00 10 for $8.95

1000 MHz Counter

11C05 Fairchild 1GHz Divide By Four

-DC to 1000 MHz operation

-AC or DC coupled

-Voltage compensated

-TTL or ECL power supply

-50 ohm drive output

-Lead compatible with Plessy SP613

-True and complement ECL outputs

-14 pin DIP

-Data and application notes

Each $49.95

MV50 Red Emitting10-4 MA (a 2V

car;

MV5024 Red TO-18High Dome _j

MV10B Visible Red5-7 MA g 2V

LED's

$ .2010 FOR $1.25

10 FOR $2.95

$ .3010 FOR $2.50

CMOS

CD4001 $ .45

CD4002 .45

CD4011 .45

CD4012 .45

CD4023 S .4574C20 .6574C160 3.25

3-Amp Power Silicon Rectifiers

MARKED EPOXY AXIAL PACKAGE

PRV100.200.400.600.

PRICE.$.10. .15

. .18. .23

PRV

800..

1000.

1200.

1500.

PRICE..$.30.. .40.. .50.. .65

DIODE ARRAY 10-1N914 siliconsignal diodes in one package. 20leads spaced .1"; no common connec-tions.

EACH $.29

10 FOR $2.50

l,<.l

7400

74H00

7401

74H01

7402

7403

7404

74H04

7405

7406

7408

74H08

7410

7413

7417

7420

74L20

74H20

74H22

7430

74H30

74L30

7440

74H40

7442

7447

7450

74H50

7451

.20.30.20.25.25.25.25.30.30.40.30.30.20.75.40.20.30.30.30.20.30.30.20.30.00.50.20.30.20

74H51

7453

7454

74L54

74L55

7460

74L71

7472

74L72

7473

74L73

7474

74H74

7475

7476

74L78

7480

7483

7489

7490

7492

7493

7495

74L95

74107

74145

74180

74193

74195

.25

.20

.20

.25

.25

.16

.25

.40

.60

.35

.75

.45

.75

.80

.55

.70

.50

.70

3.00

1.00

.65

1.00

.65

1.00

.35

1.25

1.00

1.50

.65

7400 Series

DIP

25K Trimmer

PRINTED CIRCUIT BOARD TYPEEACH $.20 10 FOR $1.50 1

Rectifiers

VAR0 FULL-WAVE BRIDGE

VS647

2A

600V

$1.10

MR810 Rectifier 50V 1A $ .10

Special 811: Hex Inverter

TTL DIP Hex Inverter; pin interchangeable with SN7404. Parts are brand new and branded Signeticsand marked "811."

EACH $ .16

data 10 FOR 1.50

sheet 100 FOR 14.00

supplied 1000 FOR 110.00

811

WWW

1 AMP RECTIFIER

EACH $ .15SALE 10 for $1.00

1N4O07 1KV PRV

Dip

MAN 4 7-Segment, 0-9 plus letters.Right-hand decimal point. Snaps in 14-pin DIP socket or Molex. IC voltage re-quirements. Ideal for desk or pocketcalculators!

EACH $1.20

10 OR MORE $1.00 EACH

CD-2 Counter Kit

This ki t provides a highly sophisticated displaysection module for clocks, counters, or other nu-merical display needs. The unit is .8" wide and4 3/8" long. A single 5-volt power source powersboth the ICs and the display tube. It can attaintypical count rates of up to 30 MHz and also hasa lamp test, causing all 7 segments to light. Kitincludes a 2-sided (with plated thru holes) fiber-glass printed circuit board, a 7490, a 7475, a7447, aDR2010 RCA Numitron display tube, completeinstructions, and enough MOLEX pins for the ICs...NOTE: boards can be supplied in a single panel ofup to 10 digits (with al 1 interconnects); there-fore , when ordering, please specify whether youwant them i n single panels or in one multipledigit board. Not specifying will result in ship-ping delay.COMPLETE KIT ONLY $10.95

FULLY-ASSEMBLED wc ajir

UNIT $15.00 •Ei^38 ■:»?.-■>«.

Boards supplied separately @ $2.50 per digit.

L I N E A R S

NE555 Precision timer 90

NE560 Phase lock loop DIP 2.95

NE561 Phase lock loop DIP 3.00

NE565 Phase lock loop 2.95

NE566 Function generator T0-5 3.50

NE567 Tone decoder T0-5 3.50

709 Popular Op Amp DIP 40

710 Voltage comparator DIP 60

711 Dual comparator DIP 45

723 Precision voltage regulator DIP 1.00

741 Op amp T0-5/MINI DIP 45

748 Op Amp T0-5 80

CA3018 2 Isolated transistors and a Darling-ton-connected transistor pair 1.00

CA3045 5 NPN transistor array 1.00

LM100 Positive DC regulator T0-5 1.00

LM105 Voltage regulator 1.25

LM302 Op Amp voltage follower TO-5 1.25

LM308 Op Amp TO-5 2.00

LM309H 5V 200 MA power supply T0-5 1.00

LM309K 5V 1A power supply module T0-3 1.00

LM311 Comparator Mini 1.75

LM370 AGC amplifier 1.7 5

LM380 2-Watt Audio Amp 1.75

LM1595 4-Quadrant multiplier 1.70

MC1536T Op Amp 1 .35

n.

*&w

': a

Jk* hjuJ^brtM. (Pen C

LETTERS

"Amateur radio is anatural for thecomputer hobbyist."

A TALE OFTWO HOBBIES

Enclosed is $10 to covermy charter subscription toBYTE. 1 read about themagazine in yesterday's issueof HR Report. I think that itis a great idea! It fills a needthat has been created by therecent boom in the computerhobby area.

I am a ham radio operator(WB6ASR) and veryinterested in interfacing thishobby with computers. SinceBYTE is going to bepublished by 73 it will be aperfect magazine for thosewho share my interest inthese two hobbies. I hope tosee many articles relating tothis subject. First off I wouldlike to see BYTE Magazinelead the fight with the FCCto allow ASCII to be used inamateur radio along with (orinstead of) baudot. This is abasic step that has to beachieved in order to easilyinterface the two.

Amateur radio is a naturalfor the computer hobbyist. Ican see a network ofcomputers tied together byrepeaters. The group I amaffiliated with (AMT,W6AMT, Box 1, MontebelloCA 90640) is very interested

in just that. For any help orinformation BYTE may likealong these lines, feel free tocontact us.

I would also like BYTE tocover all areas of computers.Software: We should have alibrary of programs for freeexchange among subscribers.Hardware: The morecommon computers that arein the hands of hobbyistsshould receive consideration[all DEC computers(including the newmicro-processors andmicro-computers such asPDP-8A and LSI-1 1), the8080 family, Altair, etc].Peripheral: Terminals — whatare the best ones for thelowest cost such asDecwritter II, floppy discs,tape — Dectape, paper,cassette.

Gregory D. CampbellMontebello CA

Thank you for yourthoughts, Greg. We'll betrying hard to fill the bill forthe home brew computer areaand its interface to amateurradio - this new field ofcomputers in the home isgoing to be big. We're in thesame stage relative toc o m p u t i n g thattransportation was at the turnof the present century -thousands of experimentersworking on the applicationsand engineering of productswhich can eventually be massproduced. . . just as no onecould imagine the eventualimpact of automotivetechnology, the next halfcentry in small computerapplications should be just asinteresting.

Why, in only that singlearea of amateur radiointerfaces, the applicationsare wide and varied: digitalremote control stations, therepeater networks youmention, digital station logs,automated ham rigs, packetswitching communicationsnets which will expand uponthe old amateur radiotelegram network concept,

program exchangefrequencies for computer-hams to get together upon;ASCII RTTY communica-tions with intelligenttransmitter/receiver rigs tosend messages along witherror correcting codes.

.. . CARL

THE DEADLY

GRAPEVINE

STRIKES AGAIN

BYTE people:

Please find enclosed mypersonal check for $10 tocover a first year subscriptionto BYTE.

I would also like to make afew comments regarding yourapparent " 'computer freak'only" editorial policy.

Amateur radio today isone of the highest technologyavocations to be organizedworldwide. It is perhaps thehobby with the most politicalclout as well.

Fraternal attitudes havetraditionally led tocooperative technologydevelopment in amateurradio. The possibilities oftime-sharing VHF-UHFrepeaters, packet-switchedworldwide traffic/datacommunication networks, oreven the digital uses of theOSCAR satellites seemlogically to precludeexclusion of amateur radiofrom BYTE.

Encourage hams tobecome hackers, and hackersto get their licenses. Thewhole is too much greaterthan the sum of its parts todivide them at birth.

While I am on mysoapbox, there are somethoughts about what I wouldlike to see from BYTE. Howabout contests betweenvarious game programs (betmy checker program can beatyour checker program . . .)?Standardization on a global(met a) language for thedescriptions of programs andalgorithms? For fun it mightbe nice to have amathematical games column

87

"Looking backward I'mkinda glad it didn'tfunction properly whenfirst plugged in.Otherwise, 1 wouldnever have learned whatcertain circuits aredoing, why they aredoing it, and how theyare doing it."

(like Scientific American buthobby oriented). Also, apunched tape service for thedissemination of programsand other data would bepopular. As the only (big)publication in the field(hmmm. . .) I hope thatthere is made some form ofguidelines for the storage,format and medium ofinformation. You could have"BYTE my ass" T shirts,"BYTE by BYTE"programming aids andbooklets, pocket guides forinnumerable things. You havereally stumbled onto a wholenew hobby at its birth(adolescence?).

This letter has really tiredme out. Thanks for BYTE.

George Henry Flammer IIIStanford CA

PS: I was supposed tomention here somethingabout a "life" membership orsubscription. So I will.

Ami going to hang myselfin a grapevine? This isprobably the first magazineever to get editorial criticism,before a single issue isprinted! (I'll qualify that: it'smy first magazine...) Thepoints are well taken.Examine the first issue andyou'll find a breadth ofarticles ranging from games tohardware — and we even havea $99 introductory special on"Life Time Subscription ...".. . CARL

NUTS AND GUTS

Happy to hear aboutBYTE being initiated. If it isin the tradition of 73, yougot one perennialsubscription. Since I'm not aham buff, I only occasionallylook at an issue of 73, but amimpressed with their contentand format. They haven'tbeen afraid to provide articlesthat cost more than 15 bucksand have a detailed discussion

of the circuit which untilrecently has been mycomplaint with PE, RE, etc.

I remember back in '63when I worked for the nowdefunct ElectronicsIllustrated magazine that thepolicy was tenth grade leveland under $10, and how canwe squeeze the articlesbetween the ads.

Anyway, maybe in thenear future, I can getsomething together to submitto BYTE. Right now I'mtrying to figure out why myEXAM/DEP NEXT won'twork right on Altair. I had ahell of a lot of bugs in theunit until I got rid of theMolex Soldercons. An aside, atechnique for plated thruholes filled with solder:Drilling out is not necessary,which ruins the hole platingand requires soldering onboth sides of the board. Afterremoving the Soldercon pins,I used round toothpickswhich I pushed thru the holewhile holding the iron to thesoldered side.

Philosophically, computerhobbyists must be nuts orhave a lot of guts, if I'm anyindication. Here I buy asophisticated piece ofequipment only knowingvaguely how logic works,with a 40-hr course inFORTRAN, a VOM and anill-adjusted 15-year scope;yet, I plunge head-long into avast unknown.

Which brings up anotherwant in future articles or atleast my preference. I seem toprefer seeing timing diagramsalong with circuitdescriptions. At least this iswhat I found out when Ianalyzed my basic Altair tode-bug it. The Altair manualassumes "it'll work" right offor "if not, give us a call." So,my resort was to take eachcircuit function and writemyself a description about itwith logic equations, timingdiagrams and everything I

could remember from acourse three years ago aboutlogic design (which Iincidentally took as a hobbyinterest to learn how thoseinfernal machinesfunctioned). Lookingbackward I'm kinda glad itdidn't function properlywhen first plugged in.Otherwise, I would neverhave learned what certaincircuits are doing, why theyare doing it, and how they aredoing it. Now back to thatdamn EXAM/DEP NEXTcircuit.

Bill FullerGrand Prairie TX

PS: Just got my copy of PCCMay issue. Seems that othershave had problems with theEXAM/DEP NEXT monom/v in Altair. Anyway, withall my self-inflicted problemswith the unit and some oftheirs, I'm not disappointedin the unit considering theprice of the 8080 chip was$360 at the time I wentAltair; with their new priceand the 8080 at $175 now, Imight not go it. But as BabaRam Dass says, "Do it now."

Thanks, Bill. Sounds likeyou have all the prerequisitesneeded for the home brewcomputer hobby — curiosityand initiative. The VOM andscope certainly help, as wellas the course in FORTRAN.But the really importantprerequisite is the desire toknow how computingmachinery and logic work.The art of computing is whatBYTE is all abouttranslated into a personal usecontext. This art has come along way since Napier'sBones, Babbage's engines, andBoole's formal logic . . . andit will go a long way in thefuture as well - throughextensions of presenttechnology and new ways ofsolving problems.

.. . CARL

88

five new

breadboard testers

from

Continental Specialties Corp. offersa total line of breadboard test devices... everything from inexpensive kitsto high-power professional units andlogic monitors too. Each high quality,compact unit comes with a guaranteeof complete satisfaction or yourmoney back within 10 days. Here arebut five of the "hottest" items we make.*.

Power for theProfessional!

New Proto Boards

PB-203 and PB-203A

with built-in

regulated

short-proof

power supplies!

Ready-to-use. Just plug in and start

building! 2 extra floating 5-way binding

posts for external signals (PB-203 only). Completely

self-contained with power switch, indicator lamp and power

fuse. 24 14-pin DIP capacity. All metal construction...

no chipping or cracking as with plastic cases. Two-tone

quality case makes both PB-203 and PB-203A aesthetically,

as well as technically attractive.

PB-203

• 3 QT-59S Sockets

• 4 QT-59B Bus Strips

• 1 QT-47B Bus Strip

• Fuse • Power Switch

• Power-On Light

• 9.75"L X 6.6"W x 3.25"H

• Weight: 5 lbs.

• 5V, 1 AMP regulated power

supply

75.

Add $2.50 shipping/handling

OUTPUT SPECIFICATIONSOutput Voltage SV ± y4vRipple & Noise @ Vz AMP

10 millivoltsLoad Regulation Better than 1 %

PB-203A

• 3 QT-59S Sockets

• 4 QT-59B Bus Strips

• 1 QT-47B Bus Strip

• Fuse • Power Switch

• Power-On Light

• 9.75"L X 6.6"W X 3.25"H

• Weight: 5 lbs.

• 5V, 1 AMP regulated power

supply (same as PB-203)

• +15V, y2 AMP regulated

power supply

• -15V, Vi AMP regulatedpower supply

120.

Add $2.50 shipping/handling

OUTPUT SPECIFICATIONSOutput Voltage 15V, internally

adjustableRipple A Noise @ Vi AMP,

10 millivoltsLoad Regulation Better than 1 %

ContinentalSpecialties Corp.LOGIC MONITORbrings ICs to lifefaster than a scope ..safer than avoltmeter

LM-1 Q/95

OH- each

Add $2.50 shipping/handlingSelf-contained, pocket size. Noadjustments or calibrations needed.

life into digital designs. Justclip to any DIP IC up to 16 pins.NO POWER SUPPLY NEEDED!Simultaneously displays static anddynamic logic states of DTL, TTL,HTL or CMOS on 16 large high Intensity LEDs. Watchsignals work through counters, shift registers, timers,adders, flip flops, decoders, entire systems. Concentrate onsignal flow and input/output truth tables. Forget probegrounds, pin counting or sync polarity. Precision plasticguides and flexible plastic web* insure positive connections.Versatile. Fast. Accurate. Indispensable. Order yours today!

PROTO BOARD100

A complete mini-breadboard budgetkit with full IC capacity

Add $1.50shipping/handling

The PB-100 is a low cost, big 10 IC capacitybreadboard kit, complete down to the last nut, boltand screw. Includes 2 QT-35S Sockets; 1 QT-35BBus Strip; 2 5-way binding posts; 4 rubber feet;

screws and easy assembly instructions. 4.50"

(114.3mm) wide x 6.00" (152.4mm) long x 1.35"

(34.3mm) high. Order your PB-100 kit! Start building

and testing now!

5EPR0T0-CLIP offers power-on.hands-off signal tracing... under $5!

Trace signals or troubleshoot

fast. Inject signals or wire

unused circuits into existing

boards. Flexible plastic web"

construction eliminates

springs and pivots. Plus, the

narrow throat is perfect for

high density pc boards.

Order now!

PC-14 14-pin Proto-Cllp: $4.50 ea.

PC-16 16-pln Proto-Cllp: $4.75 ea.

Add $1.00 shippingand handling

Scope probes,

test leads lock

onto unique

toothed grips

.?*'■

I i

COPYRIGHT CONTINENTAL SPECIALTIES CORPORATION 1975

All Continental Specialties breadboard test devicesare made in the USA, and are available off-the-shelffrom your local distributor or CSC. Direct purchasesmay be charged on BankAmericard, Master Chargeor American Express. You get a FREE English/Metricconversion slide rule with each order. Foreignorders please add 10% for shipping/handling.Prices are subject to change. Write or phone forcomplete illustrated catalog, plus the name andaddress of the CSC dealer nearest you.

"Patents Pending

■B

CONTINENTAL SPECIALTIES CORP.

44 Kendall St., Box 1942, New Haven, CT 06509 • 203/624-3103

West Coast Office: Box 7809, San Francisco, CA 94119 • 415/383-4207CANADA: Available thru Len Finkler Ltd., Ontario

Byter's Digest

A Quick Kluge for FasteningWire Wrap Sockets toPerforated Board:

-WIRE WRAP PINSOF SOCKET

If you want to wrap up aquick project, it is oftenhandy to use perforatedboard (eg: Vector "P"pattern VECTORBOARD) tomount wire wrap sockets. Ihave used many methods forattaching boards — rivets,bolts, epoxy glue,cyanoacrylic glue, etc. Onemethod which I dreamed upthe other day to solve themounting problem for a smalltest jig may prove useful toyou at some point. Simplyput the socket through theperforated board, then soldereach corner pin with a "U"shaped retainer made of bus

VECTOR PPATTERN OREQUIVALENT

WIRE WRAPSOCKET

EACH CORNER PIN OFSOCKET HAS "U" OFBUS WIRE SOLDER INPLACE AS RETAINER

Using retainers to anchor wirewrap sockets.

wire (e.g. about 14 to 18gauge.) The result is a strongmechanical placement. Whenyou solder on the retainer,use solder sparingly andemploy a soldering iron witha narrow tip — of about 25Watt capacity. Try to keepthe solder as low on the pinas possible. When you wrapthe circuit begin the first levelof wraps higher up on thepins with retainers, to avoidthe solder near the fastening.CARL

A Note For Altair 8800 Users

A copy of an advertisingsheet was sent to me byGordon French of MenloPark, California, describing aset of 8800-compatibleinterface and memory cards.The advertising sheet forProcessor Technology Co.,2465 Fourth Street, BerkeleyCA 94710, mentions thefollowing items:

1. 4k Memory Board Kit withoptional 1k ($85), 2k ($125)or 4k ($225) variations.

2. PROM Card Kit for Intel1702A or National 5203ultra-violet erasable PROM's,comes with address decodebut not PROM's (you'll needa programmer and PROMchips) at $45.

3. I/O Board Kit providingboth parallel and serialinterfaces to the "realworld." A UART is used forthe serial interface optionallyunder program control, withselectable baud rates, choiceof four EIA plus TTY andTTL serial interfaces ($125).

The ad sheet said deliverybegins June 1. If you'reinterested, I suggest you writethese people to find outfurther details.

Electronic News (June 9,1975) reports in an article byPaul Plansky theannouncement of a 12-bitPDP-8 compatible CMOSprocessor chip to beproduced by Intersil. Thissounds like a great idea forthe home brew computermarket — but not for a while.The "hardware starter kit" isreported to cost $3050 for aset of three boards.

The boards include amemory board with 4kwords, a CPU board withTTY interface, and a controlpanel board. The primaryadvantage outside of PDP-8software compatibility is theCMOS nature of the product— the entire computer (allthree boards) is quoted at a 2mW requirement. (How thisnumber is compatible with aTTY current loop output isnot clear — but it isreasonable for the CMOS partalone.) This computer is notyet in a position where it canbe used by the home brewcomputer market — but theidea of a PDP-8 (or PDP-11)compatible home brewmachine is quite attractivedue to the large amount of"public domain" softwareavailable for these machines.

James Fry'sPrototyping Board

James Fry, PO Box 6585,Toledo OH 43612, sendsalong the layout of a generalpurpose prototyping boarddesigned to mate with theconnectors of the originalTVT-1 TV Typewriter designof Don Lancaster. Jim hasused his board in the processof modifying the design tomate with his 8008 system.

The holes at the edge ofthe board allow for additionalinput and output connectionsplus the mounting of theMolex pin and socketcombinations needed toextend the stack of TVT-1boards by an additionallayer. Jim will providecopies of this board undrilledfor $6 postpaid, or you cantake the idea and lay outyour own version for contactprinting and homefabrication.

sifiiiiiiii tiitiiini iiiiiiiiii

m iiiiiiiiiiiiii

! Illlllllllllllllllllllllllllllllllllllllllllllll .=

liiTririirriTiIIr

90

^P We've got a bunch of these fantastic video display terminals . . . and we've got alittle problem. We promised Sanders Associates that we would sell them as scrap. Acouple of wires disconnected makes them scrap, right? These VDTs should be great forSSTV, for a GW/RTTY keyer terminal, an oscilloscope, weather satellite monitor, oreven a computer terminal (which they were). We've tested some of these and theyseem to be near-perfect. You aren't likely to find a VDT system like this for less thanten times the price ... so order several right away while we've got 'em.

! G: ASCII KEYBOARD - This is the ASCIIencoded keyboard used with the SANDER'SASSOCIATES 720 System Terminal. Plugs into thefront of the chassis mounting base. Makes a veryprofessional Video Readout Terminal combination.These keyboards are in like new condition, haveinterconnection data etched on the IC-Diodematrix PC board. Tliey can be readily used for anyASCII encoded requirement. Similar keyboards,when available, sell for almost two times the verylow SUNTRONIX price of - $49.95. PPD

ITEM F: ENCLOSURE AND BEZEL FOR 12" CRT -This is the frosting on the cake. All components Athru E fit perfectly inside this enclosure. It ishinged and can be lifted for easy access to theelectronics. It will really dross up any project.Measures approx. 22"L x 18"W x 20"H and weighsapprox. 10 lbs. Made of steel with a handsome bluecrackle finish. Get 'em while they last, for —SI 1.95 (inci. bezel) FOB.

ITEM B: BASIC CHASSIS AND MOUNTING BASE for12" big-screen CRT. Tube can be mounted eithervertically or horizontally by rotating front plate 90degrees. Comes with base, on-off sw. and intensitycontrol, four controls for vert, and horiz. Hasplenty of room for most any electronics needed foryour pet project. All subassemblies offered willperfectly fit in spaces provided. Why try to cut themetal yourself? This chassis will let you con-centrate on the electronics instead of the melal-work!! Order now for only - SI4.95 FOB, lessCRT.

ITEM A: VERTICAL AND HORIZONTAL AltiPLlFIERSubassemblies - Good for a conservative 150V/complementary DC coupled output. Freq. resp.beyond 2.0 MHz. Parts alone worth many timesthe low, Sow price of - $6.95 ea., or both for$10.95 PPD

I C: FOUR PC BOARDS CHOCK-FULL OFGOODIES - Two D/A converters, one IC-loadedlogic board, and one multipurpose board. We haveno schematic data for these boards at present. Wewill supply any data vsc obtain [o purchasers as wegel it. Of course ivhen we finally figure out whatthese boards are good for, the price will changeaccordingly. Take die gamble now and wellprovide any data we get free of charge. Buy all fourboards or just one — $1.50 ea. (our choice) or allfour for S5.00. PPD

ITEM D: CRT HIGH VOLTAGE POWER SUPPLY -This is a real super CRT High Voltage Powersupply, providing all voltages needed for any CRT.Outputs 10-14KV DC, plus 490 Vdc, minus 150Vdc. Needs inputs of plus 5.0 VDC, plus 16.0 VDCand a drive signal of approx 8.4 kHz @ 1.0 vrms ormore. All inputs/outputs via plug/jack cables andeven has a socket/cable assy for the CRT. A veryfine buy at only - S14.95 (incl. data) FOB

<r3-

BL

7&

fe34£$Q*fi|

ITEM E: LOW VOLTAGE POWER SUPPLY - A realbrute used to supply all low voltages needed by theoriginal 720 CRT Terminal. Input, 117VAC, out-puts: plus 16.0 VDC © 10.0 A; minus 16.0 VDC d>10.QA; plus 5.0VDC @ more than 2.0A, allregulated. Mounts on the rear of the Basic Chassis(Item B) Weighs approx 45 lbs and will be shippedwith interconnection data for only — S19.95 FOB.

PACKAGE DEAL — For the really serious experimenter we'll make a very special offer — you canbuy all of the sub-assemblies listed above plus a good 12" CRT, a muffin fan for cooling. We'llsupply instructions for interconnection for all subassemblies so that you can, within minutes afterreceiving this once-in-a-lifetime deal, put an X-Y display on the CRT. We'll also include a list ofpossible applications for those with short imaginations! Don't miss out on this real money-savingbuy; the individual prices for the sub-assemblies add up to $127.70. You can buy the entirepackage for a very low package price of — $79.95 FOB.

On all postpaid orders, please ADD $1.50 to cover handling costs. Ordersshipped same day in most cases.

«flMU

GOfllWHlY

6 KING RICHARD DRIVE, LONDONDERRY, N.H. 03053G03 -434- 4 6 4 4

91

Byter's Digest

The Inventors of the Prepunched Perforated Board Have Done it Again.

- .:

: -\ '

l!

?;:;

::::::::::::::::: jjiiliiiiUiuI'

::::::::::::::::::::::::.::::.f

Edge connector configuration on Vector 3662A-6 Plugbordreduces insertion forces by 2-112 lbs.

The Vector Electronic Co.,Inc., announces a new varianton a traditional theme — theidea of a printed circuit edgeconnector with a lower-insertion force due to aunique design.

Special W-shaped cut onthe printed circuit board edgeconnector reduces insertionforces by two to eightpounds, depending on thetype of receptacle and thenumber of contacts. Firstused on Vector Electronic

Company's new Model3662A-6 board, the "W" cutconsists of a slight inwardlytapering chamfer across theface of the card edge whichallows the board to beinserted with a graduallyincreasing force instead of theconventional high peakpressures. In addition, thetwo outside ground terminalsengage first and disengage lastto protect circuits if theboard is inserted or removedwith the power on.

According to the pressrelease this technique will beused on all new Plugbordsmanufactured by Vector.

Vector cites tests on 22/44edge connectors withterminals on 0.1 in. centerswhich indicate that averageinsertion force with the "W"cut is 9 lbs. compared to 11lbs. with a conventionalstraight configuration.Average force on 15/30connectors with 0.156 in.centers drops from 1 3 lbs. to6.5 lbs. Similarly, averageinsertion force on 22/44connectors with 0.156 in.spacing is reduced from 16.5lbs. to 14 lbs., while thepressure on 36/72 connectorswith 0.10 in. spacing declinesfrom 31 lbs. to 23 lbs. With-

drawal forces are unchangedby the new technique.

The Vector Model3662A-6 board illustrated has22/44 edge contacts with0.156 in. spacing. Contactsare two-oz. copper, nickelplated and gold flashed forlong life and low contactresistance. Individual contactsare numbered for easyidentification. The 4.5 in. by6.5 in. by 0.0625 in. boarduses a new blue-coloredFR4-type epoxy laminatewhich meets or exceedsMl L-P-1 3939-E GF.Prepunched 0.042 in. dia.holes are spaced on 0.1 in.centers. The top surface ofthe board has markers for thenumber one pin of 14-pinDIPs across the field andcomponent placement indicesaround the board's periphery.The reverse side has a two-oz.copper ground plane withsolder coating.

The boards are priced at$7.55 in unit quantities withvolume discounts available.Delivery is from factorystock.

Vector Electronic Co.,Inc., 12460 Gladstone Ave.,Sy I mar C A 9 1 342.1-213-365-9661; TWX910-496-1539.

THE BIT BUCKET is thename of a new publicationnow available from NationalSemiconductor Corporation(mailing address:COMPUTE/470, NationalSemiconductor Corporation,2900 Semiconductor Drive,Santa Clara CA 95051). TheBit Bucket is a user"newsletter" supported by

National, with a subscriptiontab of $1 5 per annum, for thepurpose of exchanging infoon the products Nationalmanufactures: IMPs of allkinds and the new PACE16-bit micro. The info I got(in Volume One, NumberOne) includes seminarschedules, plugs for productsof members of the club, a

solicitation of members inCOMPUTE (Club ofMicroprocessor Programmers,Users and Technical Experts),descriptions of an assemblerand listings of the library ofcomplimentary packages ofsoftware. If your home brewsystem idea is growingaPACE, you might find thispublication useful .. . CARL

92

RAYTHEON KEYBOARDS

From Raytheon Corp. and we were told they were made for theFAA in air traffic control computers. Appear to be unusedcondition. Switches are magnetic reed relay. Ascii encoded with PCboard mounted under the switch board. Sorry to say but have nodata with these at this time.Ship wgt. 6 lbs #SP-139 $30.00

HONEYWELL KEYBOARD

A nice purchase from Honeywell of these unusedkeyboards with reed relay, magnetic switching. Noencoder with these and they can be used in a varietyof ways . . . Morse code generator, TV print out,terminal keyboard for computer work, etc. If youwant an all purpose keyboard in new condition, thisis it. Only about a hundred left. The price is deservingof a second look as it's a give-away.Ship wgt. 5 lbs #SP-165 $20.00

ASCII ENCODED

From one of Americas largest manufacturers of keyboards. ASCIIencoder mounted beneath board using ICs Picture shown is typicalkeyboard. There seems to be no end to customers wantingkeyboards and we are lucky enough to keep coming up with more.These are clean and with all keytops in place.Ship wgt 6 lbs #SP-122 $35.00

KEYBOARDS

A bargain in computer keyboards with encoder board attached. The

low price is due to the fact that a few keytops may be missing. So if

you can improvise, you acquire a bargain keyboard. We will furnish

missing keytops though they may not have the correct letter, but

you can stick any letter you want with tape. At $10 you can hardly

miss.

Ship wgt. 6 lbs #SP-123 $10.00

|ttnrrs'r?tl * i "

^y*rT*?,r~»~* mm mm

UNIVAC KEYBOARD

This keyboard with encoder (Holarith) mounted in dust proofenclosure has been one of our best movers no doubt due to itshandsome desk top appearance. The encoder board is easily removedfor re-working and the case is gray plastic. We have sold over athousand of these to date and were sold out. But along came asupplier with several hundred more and we are back in business.Same price as we sold them for the last two years, no upgrading ofprice.Ship wgt. 6 lb #SP-124 $35.00

• • .-, ,

laniiBieistBisanaisQiessi9iii8aeiiis

Please add shipping cost on above.

MESHNA P0 Bx 62 E. Lynn Mass. 01904

siie&fincz.

FREE CATALOG

BELLTONE PAGER

Genuine "Ma Bell" belt clipradio receiver beeper. Picks upspecific radio signals in 35MHz area, encoded by internalreed encoder. Seems to be a"natural" for constructionjobs, in-plant calling. An inter-esting experimental gadget.Self contained antenna, adjust-able coding by shifting wireson coding module.#SP-125 $5.00 each, 6/$25.00

93

THE COMPUTER "SYSTEM"CONCEPT

A COMPUTER with a BUILT-IN CONSOLE TERMINAL from SPHERE

The SPHERE 1 computer system wasdesigned to provide an uncompromisingcomputer system at minimal cost.

Keyword...

"System"

The keyword to our design Is tneworld "SYSTEM". Every phase of thedesign has been influenced by the"SYSTEM" philosophy. To justify thesystem title, a "COMPUTER" mustperform an application acceptably. Re-cently the cost of peripherals and soft-ware have substantially exceeded thecost of the computer, but without them,a computer cannot perform much ofanything acceptably.

With the onset of the

micro-processor, real design innovationshave been possible, but without thesystem philosophy, a micro-processorcan only reduce the processor cost.Peripherals, memory, and softwarecontinue to be expensive.

The SPHERE 1 computer is uniquelycost effective because it utilizes realdesign innovations to reduce the amountof circuitry required throughout thesystem. The SPHERE add-on memoryboard will support 4, 8, 12, or 16K ofdynamic random access memory (insteadof four 4K memory boards and a motherboard). Our power supply has beenplaced in a separate chassis to eliminate acommon source of heat. This allows thesystem to run cooler and eliminates theneed for an expensive fan. The systemuses a standard TV for a 512 characterdisplay. The use of the TV and othercommon components has reduced thecost and allowed more machineversatility. Further cost reductions havebeen achieved by replacing the frontconsole (lights and switches) with theTV terminal and a program in Read OnlyMemory (ROM) that performs the samefunction, only better.

The Processor...A One CardControl System

The CPU card is Packaged to provideall of the basic functions required by auseful system. It contains a MotorolaM6800 micro-processor which is themost advanced micro-processor on themarket today. The CPU Module also in-cludes 4K words of random access mem-ory which is the "minimum" required toperform useful functions. Sixteen linesof digital I/O have been provided as onoption on this board. This allows themodule to act as a stand-alone "system"in many instances. Further innovationshave been added to enhance it's"system" capability. They are:1)a Real-Time clock with INTERUPTcapability at 31, 62, 125, 250, & 500HZ.

2)buss lines are "high-drive" buffered torun many more peripherals.3)the system buss is driven over flat-cables which means no mother-board isrequired for expansion and the systemmay be configured with space utilizationefficiency.

4)the CPU has been provided with 1 K ofProgrammable Read-Only memory. Thismemory can contain a complete processcontrol program for many applications.When initially delivered, it contains thePDS system which is described later.

Peripherals...

Floppy Disks, LinePrinters, PaperTape, Terminals..

In order to insure a full offering ofhigh quality peripherals from the onset,we have selected manufacturers whoalready have peripherals which interfaceto our product. This philosophy hasallowed us, in the case of our disk, toselect already running software (namelya disk operating system) which we mayoffer to our users immediately. Otherperipherals that are available with oursystem include a low cost line printerand a paper tape reader/perforator.These devices are interfaced to thesystem via a single interface modulewhich also serves as a programmabledigital Input/Output port.

The Keyboard module includestactile feed keyswitches, 2 key roll-overencoding, a numeric keypad and a starcursor editing keypad. The SPHEREsystem also supports the lowest costterminals available today.

PDS....unparalleled

The Program Development System(PDS) includes an EDITOR, andASSEMBLER, and a debugging package.It also includes CRT display and audiocassette software drivers, plus a cassetteloader and dumper. Although mostcomputer processing occurs at thecharacter (8 BIT) level, it is sometimesdesirable to use 16 bit arithmetic so wehave provided an extended instructionset in the PDS system. The extendedinstructions include 16 bit multiply,divide, add, subtract, etc. Theinstructions include input/output andbinary (16 bit) to ASCII to binaryconversion. PDS is entirely contained inthe read-only memory of the CPUmodule. It rounds out the "SYSTEM"concept of our smallest systems.

Basic LanguageFREE!!

The BASIC package includes tfollowing utility commands: APPENCATALOG, DELETE, GET, KILLENGTH, LIBRARY, LIST, NAMRENUMBER, RUN, SAVE, Ar<SCRATCH.

The operators are: =, less thagreater than, less or equal, greaterequal, not equal, AND, OR, NOT, MAMIN. The statements are: CHAIN, COMON, DATA, Dim, EN

FOR . . . NEXT, GO TO, TO ... OGOSUB, IF . . . THEN, IMAGE, INPULET, NEXT, PRINT, PRINT USINREAD, REM, RETURN, STOP. Tfunctions are DEF, ABS, EXP, INLOG, RND, SQR, SIN, TAN ATN, LESGN, TAB. Matrix operations are: DOIMAT IDN, MAT ZER, MAT CON, M/INPUT, MAT PRINT, MAT +, MATMAT *, =, MAT TRN, MAT INV. Fprocessing statements are: OPEN, KILFILES, PRINT # READ #, END #. Flstring processing is supported.

This package will run in a 20system with about 8K for user prograrrAn 8K subset of our BASIC is availabwith 4K available for user programs. /Sphere software is a part of tl"SYSTEM" price, and is available"SYSTEM" users for a minimal copyiifee.

The FLOPPY DISK OPERATINSYSTEM (FDOS) is supplied on :systems purchased with a disk unFDOS is an extended PROGRADEVELOPMENT SYSTEM. It providfor named files, an extended editor,full assembler, and debugging systeiThis system includes a comprehensi300 page programming manual.

System Concept

a Commitment

The software supplied to makeSphere System a useful "SYSTEM"attractive; however, the real contributthat SPHERE offers is onecommitment. The SPHERE "SYSTEconcept demonstrates only the surf,of the real technological advances tlare possible when true design innovatiis combined with foresight astate-of-the-art technology. ~\

SPHERE "SYSTEM" concept is tlcommitment.

WATCH AND SEE.

OEM'S CHECK WITH US . . .

WE'VE GOT COMPLETE ONE BOACONTROL SYSTEMS FROM UNC$600

AMBITIOUS TYPES CHECK WITH USWE'VE GOT COMPLETE SYSTESTARTING AT $650. («ITS)Bank Americard and MasleiCharge accepted

SPHERE

CO

96 E. 5th South, Bountiful, Utah 84(

$650HOBBIEST!

. 8-BIT PARALLEL COMPUTER

• 4K WORDS of read/write memory

i MOTOROLA 6800 MICROPROCESSOR

• KEYBOARD WITH NUMERIC KEYPAD

$750INTELLIGENT!!

USER PROGRAMMABLE

FIRMWARE ASSEMBLER, EDITORLOADER & EXTENDED INSTRUC-TIONS

16 LINE X 32 CHARACTER DISPLAY23 KEY KEYBOARDBUILT IN MODEMAUDIO CASSETTE INTERFACE

CASSETTES AND TV'S SHOWN FORILLUSTRATION ONLY

INTRODUCTORY OFFER ENDS SEPTEMBER 30, 1975

96 EAST 500 SOUTH - BOUNTIFUL, UTAH - 84010

BOTE

readerservice

To get further information on the products advertised in thisissue of BYTE merely tear, rip, or snip out this advertiser index,fill out the data at the bottom of the page, mark the appropriateboxes, and send the works to BYTE, Peterborough NH 03458.Readers get extra Brownie Points for sending for informationsince this encourages advertisers to keep using BYTE - which inturn brings you a bigger BYTE.

ADVERTISER INDEX

□ ACM CM

□ AP Products CI 11

□ Babylon 86

□ Delta 43

□ Godbout 8, 60, 61

□ Hickok 48, 49

□ James 42,82

□ Martin Research 1

□ Meshna 93

D Micro Digital 2

D MITS CIV, 7,71, 81

□ Processor Technology 83

□ RGS 59

□ S.D. Sales 80

□ Scelbi 38,39D Solid State 89

□ Sphere 94, 95

□ Suntronix 91

□ Wahl 70

To help the editors with a profile of the readers — what type ofwork do you do?

Have you a microprocessor running yet?so?

Messages for the editor:

and which, if

Reader's Service

BYTE

Green Publishing Inc.

Peterborough NH 03458

Please print or type.

Name

SEPTEMBER 1975

BYTE acquired via□SubscriptionD Newsstand□ Stolen

Address

City

State Zip

Coupon expires in 60 days . . .

How BYTE started

from page 9

BYTE - make it a 24 pager.After talking the idea overwith a couple of themanufacturers in the field itwas obvious that we had beenthinking too small. Okay,let's make it 5000 copies. Thefirst announcement of theproject was made in Hotline,an amateur radio newsletterwith a very small circulation.The reaction was immediate:subscriptions began to comein at a good clip.

As mailing lists came infrom manufacturers and asthe word spread, the firstissue print run was upped to10,000 . . . then25,000 . . . 35,000.. .andfinally 50,000 copies! Aspromises of ads came in therewas a scramble to get enougharticles to keep up with theads. Ads are certainly ofinterest, but we didn't wantto publish an all advertisingmagazine.

No apologies are neededfor the articles in this firstissue — between Carl'scontacts and mine we gotthings started. It would havebeen a lot easier if ouroriginal idea of a 1000 copy24 page magazine (withmaybe 30% ads) had comeabout. On the other hand,here is a great opportunityfor all of you readers to getbusy at your typewriter andpass along your particulararea of expertise. The needfor good articles isgreat . . . material for therank beginners as well as thesophisticated computerdesigners . . . hard-ware . . . software .. . surplusconversions. . . applications.

As we build a body ofhobbyists, the market forreasonably priced equipmentwill be almost inexhaust-ible . . . microprocessors,video display units,keyboards, tape gear, discs,teletypes . . . endless list.MITS, RGS, Scelbi andSouthwest Tech have a good

start... are you going to letthem make all the money?

Speaking of MITS et al, itdidn't take me long to getone of the Altair 8800s to seewhat I could do with it. I'mafraid I didn't make it veryfar into the instruction book.I've got some more memorycoming for it as well as theirextended basic program andsome I/O interfaces to hookonto a teletype or a VDT. 1do have a VDT unit up andworking ... the SouthwestTechnical job which we got inkit form and which wasassembled over a weekend ona card table, with a good dealof the work being done bymy 12 year old daughter.And, believe it or not, theunit works! We all agree thatit was a lot of fun to assembleand we're glad we went thekit route ... we wouldn'thave missed the fun. SWTPCsure did a fantastic job ofgetting that kit designed andproduced.

Well, that's how BYTE gotstarted. Now it's up toyou . .. you can guide themagazine with youradvice . . . with yourarticles. . . and with yoursupport in getting moresubscribers. We'll do all wecan to make the magazineaccurate, have plenty ofinteresting ads, look nice andcome out on time. None ofthis is easy, of course, butwe're in one of the nicestareas in the country — insouthern New Hampshire —working in a 220 year oldcolonial mansion — and wehave an efficient systemwhere everything exceptprinting and mailing of themagazine is done under theone roof. If you happen tofind yourself wanderingaround a bit northwest ofBoston, why please drop inand say hello. We're veryfriendly and the atmosphereis unbelievably re-laxed .. . except near presstime.

.. . WAYNE GREEN

96

NEW... from A P Products

c

O

o

ALL-CIRCUIT EVALUATOR

OBSOLETES ordinary breadboards — for fast,solderless, plug-in circuit building and testing

A-C-E

2QD-K

4-9/1by 7"

V special20% offintroductory offer

A-C-E $^095

2D1-K

ASSEMBLE-IT-YOURSELF KIT

Now you can enjoy the pleasure and convenience of checkingout your circuits on an ACE from A P Products at this speciallow price! Just plug in and power up ... no soldering required!Incorporates the famous A P multi-tie-point plug-in featurethroughout for optimum circuit design flexibility.OFFER EXPIRES SEPT. 30,1975

No.ACE's

ModelWo.

TotalPrice

Total cost of ACE's

Residents of Californiaand Ohio add sales tax

Postage and Shipping

1

50

ORDER TOTAL $

ORDER TODAY AND SAVE D CASH: checkor M.a enclosed

□ CHARGE: Master Charge j^ffi

□ CHARGE: BankAmericard mm I—I Sendr I FREE catalog

Acct. No

Expiration date ,

Send order to:

^S A P PRODUCTSUINCORPORATED

Box 110-G, 72CorwinDr.Painesville, Ohio 44077

Master Charge Interbank No.:

a NUMBERS OVER YCUfl NAME

On all models ...simply plug in yourcomponents and inter-connect with ordinary 22-ga.solid wire. No special patch cordsrequired. All models will accept allDIP'S, TO-5's and discrete components with leads up to .032"diameter. Multiple buses can easily be linked for power andground distribution, reset and clock lines, shift command, etc.

ACE 200-K ... 728 tie points, holds up to 8 16-pin DIP's,two buses, two 5-way binding posts, kit form .. .$18.95

ACE 208 .. . 872 tie points, holds up to 8 16-pin DIP's,8 buses, two 5-way binding posts, assembled ... $28.95

ACE 201-K ... 1032 tie points, holds up to 12 14-pin DIP's,two buses, two 5-way binding posts, kit form .. .$24.95

ACE 212 .. . 1224 tie points, holds up to 12 14-pin DIP's,8 buses, two 5-way binding posts, assembled... $34.95

ACE 218 .. . 1760 tie-points, holds up to 18 14-pin DIP's,ten buses, two 5-way binding posts, assembled . $46.95

ACE 227 .. . 2712 tie points, holds up to 27 14-pin DIP's,28 buses, four 5-way binding posts, assembled . .$59.95

ACE 236 .. . 3648 tie points, holds up to 36 14-pin DIP's,36 buses, four 5-way binding posts, assembled . .$79.95

MATERIALS

Anodized aluminum bases (also serve as ground plane); acetal copolymerdielectric; non-corrosive nickel/silver tie-point terminals; rubber bench feet.

A P PRODUCTS INC. . Box 110-G • Painesville, OH 44077

/—

■s

>

In

m

rb

n

r-T\

n-M-.r-i

L^J

□

n~n

MIT5 ALTAIP BQOD compLTER

wmssa

n

uU

U

y

/■

>

51

f \

t

V

N

\

nfb

n

Lin

n