Byte Magazine Volume 02 Number 10 - Implementing Space War

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

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

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

Created with abbyy2epub (v.1.7.0)

SWTPC announces first dualminifloppy kit under $1,i

!••

Now SWTPC offers complete best-buy computer system with $995dual minifloppy, $500 video terminal/monitor, $395 4K computer.

$995 MF-68 Dual Minifloppy

You need dual drives to get full benefitsfrom a minifloppy. So we waited to offer afloppy until we could give you a dependa-ble dual system at the right price.

The MF-68 is a complete top-qualityminifloppy for your SWTPC Computer. Thekit has controller, chassis, cover, powersupply, cables, assembly instructions, twohighly reliable Shugart drives, and adiskette with the Floppy Disk OperatingSystem (FDOS) and disk BASIC. (A floppyis no better than its operating system, andthe MF-68 has one of the best available.)An optional $850 MF-6X kit expands thesystem to four drives.

$500 Terminal/Monitor

The CT-64 terminal kit offers thesepremium features: 64-character lines,upper/lower case letters, switchable con-trol character printing, word highlighting,full cursor control, 110-1200 Baud serialinterface, and many others. Separatelythe CT-64 is $325, the 12 MHz CT-VMmonitor $175.

Enclosed is:

$1,990 for the full system shown above

(MF-68 Minifloppy, CT-64 Terminal withCT-VM Monitor).

$995 for the Dual Minifloppy

$325 for the CT-64 Terminal

$175 for the CT-VM Monitor

$395 for the 4K 6800 Computer

$250 for the PR-40 Line Printer$79.50 for AC-30 Cassette InferfaoeAdditional 4K memory boards at $100Additional 8K memory boards at $250

OrBAC# Exp. Date_

_ OrMC# Exp. Date-

Name-City

. Address..Slate

-Zip.

$395 4K 6800 Computer

The SWTPC 6800 comes complete with4K memory, serial interface, power supply,chassis, famous Motorola MIKBUG6'mini-operating system in read-onlymemory (ROM), and the most completedocumentation with any computer kit. Ourgrowing software library includes 4K and8K BASIC (cassettes $4.95 and $9.95;paper tape $10.00 and $20.00). Extramemory, $100/4K or $250/8K.Other SWTPC peripherals include$250 PR-40 Alphanumeric Line Printer(40 characters/line, 5 x 7 dot matrix,75 line/minute speed, compatible withour 6800 computer and MITS/IMSAI);$79.50 AC-30 Cassette Interface System(writes/reads Kansas City standard tapes,controls two recorders, usable with othercomputers); and other peripherals nowand to come.

S3

Southwest TechnicalProducts Corp.

219 W. Rhapsody, San Antonio, Texas 78216London: Southwest Technical Products Co., Ltd.Tokyo: Southwest Technical Products Corp./Japan

Circle 350 on inquiry card.

You can now have the industry's

finest microcomputerwith that all-importantdisk drive

YOU CAN GET THAT

ALL-IMPORTANT SOFTWARE,

TOO

Loading your programs and fileswill take you only a few seconds withthe new Cromemco Z-2D computer.

You can load fast because theZ-2D comes equipped with a 5"floppy disk drive and controller. Eachdiskette will store up to 92 kilobytes.

Diskettes will also store your pro-grams inexpensively—much more sothan with ROMs. And ever so muchmore conveniently than with cas-settes or paper tape.

The Z-2D itself is our fast, rugged,professional-grade Z-2 computerequipped with disk drive and con-troller. You can get the Z-2D witheither single or dual drives (dualshown in photo).

CROMEMCO HAS THESOFTWARE

You can rely on this: Cromemcois committed to supplying qualitysoftware support.

For example, here's what's nowavailable for our Z-2D users:CROMEMCO FORTRAN IV COM-PILER: a well-developed and power-ful FORTRAN that's ideal for scien-tific use. Produces optimized, relo-catable Z-80 object code.CROMEMCO 16K DISK BASIC: apowerful pre-compiling interpreterwith 14-digit precision and powerfulI/O handling capabilities. Particularlysuited to business applications.CROMEMCO Z-80 ASSEMBLER: amacro-assembler that produces relo-catable object code. Uses standardZ-80 mnemonics.

The professional-grade microcomputerfor professionals

ADVANCED CONTROLLER CARD

The new Z-2D is a professionalsystem that gives you professionalperformance.

In the Z-2D you get our well-known 4-MHz CPU card, the provenZ-2 chassis with 21-slot motherboardand 30-amp power supply that canhandle 21 cards and dual floppydrives with ease.

Then there's our new disk con-troller card with special features:

• Capability to handle up to 4disk drives

• A disk bootstrap Monitor in a1K2708 PROM

• An RS-232 serial interface forinterfacing your CRT terminalor teletype

• LSI disk controller circuitry

Z-2 USERS:

Your Z-2 was designed with the futurein mind. It can be easily retrofittedwith everything needed to convert toa Z-2D. Only $935 kit; or $1135 forassembled retrofit package.

Q

Shown with optionalbench cabinet

We're able to put all of this in-cluding a UART for the CRT interfaceon just one card because we've takenthe forward step of using LSI con-troller circuitry.

STORE/FACTORY

Contact your computer store orCromemco factory now about theZ-2D. It's a real workhorse that youcan put to professional or OEM usenow.Kit: Z-2D with 1 disk drive

(Model Z2D-K) $1495.

Assembled: Z-2D fully assembled

and tested (Model Z2D-W). . . .$2095.Additional disk drive

(Model Z2D-FDD) $495.

SOFTWARE

(On standard IBM-formatsoft-sectored mini diskettes)

16K BASIC (Model FDB-S) $95

FORTRAN IV (Model FDF-S) $95

Z-80 Assembler (Model FDA-S) $95

Cromemco

incorporatedSpecialists in computers and peripherals2400 CHARLESTON RD., MOUNTAIN VIEW, CA 94043 • (415) 964-7400

Circle 353 on inquiry card.

TV DAZZLER

oo

XLU

s5

I

To makeyour computer

more useful-

a wide choice of

memory, I/O, CPU

Your computer's usefulness de-pends on the capability of its CPU,memories, and I/O interfaces, right?

So here's a broad line of trulyuseful computer products that letsyou do interesting things with yourCromemco Z-1 and Z-2 computers.And with your S-100-compatible Al-tairs and IMSAIs, too.

CPU

• Z-80 MICROPROCESSOR CARD.The most advanced fiP card avail-able. Forms the heart of our Z-1and Z-2 systems. Also a direct re-placement for Altair/IMSAI CPUs.Has 4-MHz clock rate and the powerof the Z-80 //.P chip. Kit (Model ZPU-K): $295. Assembled (Model ZPU-W): $395.

MEMORIES

• 16K RAM. The fastest available.Also has bank-select feature. Kit(Model 16KZ-K): $495. Assembled(Model 16KZ-W): $795.

• 4K RAM. Bank-select allows ex-pansion to 8 banks of 64K byteseach. Kit (Model 4KZ-K): $195. As-sembled (Model 4KZ-W): $295.

• THE BYTESAVER —an 8K capa-city PROM card with integral pro-

grammer. Uses high-speed 2708 eras-able PROMs. A must for all com-puters. Will load 8K BASIC into RAMin less than a second. Kit (ModelBSK-0): $145. Assembled (ModelBSW-0): $245.

• 16K CAPACITY PROM CARD. Ca-pacity for up to 16K of high-speed2708 erasable PROM. Kit (Model16KPR-K): $145. Assembled (Model16KPR-W): $245.

I/O INTERFACES

• FAST 7-CHANNEL DIGITAL-ANALOG I/O. Extremely usefulboard with 7 A/D channels and 7D/A channels. Also one 8-bit par-allel I/O channel. Kit (Model D +7A-K): $145. Assembled (Model D+ 7A-W): $245.

• TV DAZZLER. Color graphics in-terface. Lets you use color TV as full-color graphics terminal. Kit (ModelCGI-K): $215. Assembled (ModelCGI-W): $350.

• DIGITAL INTERFACE (OUR NEWTU-ART). Interfaces with teletype,CRT terminals, line printers, etc. Hasnot one but two serial I/O ports andtwo 8-bit parallel I/O ports as wellas 10 on-board interval timers. Kit

(Model TRT-K): $195. Assembled(Model TRT-VV): $295.• JOYSTICK. A console that letsyou input physical position data withabove Model D + 7 A/D card. Forgames, process control, etc. Con-tains speaker for sound effects. Kit(Model JS-1-K): $65. Assembled(Model JS-1-W): $95.

PROFESSIONAL QUALITY

You get first-class quality withCromemco.

Here are actual quotes from ar-ticles by independent experts: "TheCromemco boards are absolutelybeautiful" . . . "The BYTESAVER istremendous" . . . "Construction ofCromemco I/O and joystick are out-standing" . . . "Cromemco periph-erals ran with no trouble whatso-ever."

Everyone agrees. Cromemco istops.

STORES/MAIL

So count on Cromemco. Lookinto these Cromemco products atyour store. Or order by mail fromthe factory.

We wish you pleasure and suc-cess with your computer.

Q CromemcoincorporatedSpecialists in computers and peripherals2432 CHARLESTON RD., MOUNTAIN VIEW, CA 94043

Circle 353 on inquiry card.

(415) 964-7400

In the Queue

EITI OCTOBER 1977Volume 2 Number 10

26

64

86

166

186070114130140146156168

46

11

22

30

50

54

58160172174177184

190, 198194208208

Foreground

RELOCATABILITY AND THE LONG BRANCH

Programming Techniques—BorrmannAN APL INTERPRETER FOR MICROCOMPUTERS, Part 3

Interpreter Design—WimbleHOW TO IMPLEMENT SPACE WAR

So ftware—KruglinskiANALYZE YOUR CAR'S GAS ECONOMY WITH YOUR COMPUTER

Applications—Bauerschnub

Background

HOW TO WRITE AN APPLICATION PROGRAM

Software—JenkinsOTHELLO, A NEW ANCIENT GAME

Software—DudaAN 8080 SIMULATOR

Software—ChungFUNDAMENTALS OF SEQUENTIAL FILE PROCESSING

Applications—SmithC: A LANGUAGE FOR MICROPROCESSORS?

Languages—MaddenSIMPLE APPROACHES TO COMPUTER MUSIC SYNTHESIS

Hardware—SchneiderSTRUCTURED PROGRAM DESIGN

Software Design—HigginsCOMPUTER INFORMATION ARRANGEMENT

Applications—HolladayMASTERMIND

Games—Milligan

Nucleus

In This BYTE

The Colorful Future of Personal Computing

Letters

About the Cover. . .and Some More of the Same

Languages Forum: Defining LIL, a Little Interpretive Language

Commodore's New PET Computer

The NCC: A Dallas Delight

Technical Forum: More on Inexpensive Plotters

Book Reviews

BYTE's Bits

BYTE's Bugs

Clubs, Newsletters

Ask BYTE

What's New?

Classified Ads

BOMB

Reader Service

8YTE is published monthly by BYTE Publications Inc. 70 Main St, Peterborough NH 03458. Address all mail except sub-scriptions to above address; phone (603) 924-7217. Address all editorial correspondence to the editor at the above address.Unacceptable manuscripts will be returned if accompanied by sufficient first class postage. Not responsible for lost manu-scripts or photos. Opinions expressed by the authors are not necessarily those of BYTE. Address all subscriptions, change ofaddress, Form 3579, and fulfillment complaints to BYTE Subscriptions, PO Box 361, Arlington MA 02174; phone {6171646-4329. Second class postage paid at Peterborough NH 03458 and at additional mailing offices-USPS Publication No.102410. Subscriptions are $12 for one year, $22 for two years, and $32 for three years in the USA and its possessions. Add$5.50 per year for subscriptions to Canada and Mexico. $25 for a one year subscription by surface mail worldwide. Air deli-very to selected areas at additional rates available upon request. $25 for a one year subscription by air delivery to Europe, orDM 60,— for a one year subscription through our European distributor in Darmstadt, West Germany. Single copy price is$2.00 in the USA and its possessions, $2.40 in Canada and Mexico, and $3.50 in Europe or DM 8,— through our European dis-tributor in Darmstadt, West Germany, and $4.00 elsewhere. Foreign subcriptions and sales should be remitted in United Statesfunds. Printed in United States of America. Entire contents copyright ©1977 by BYTE Publications Inc. All rights reserved.

PUBLISHERS

Virginia Peschke

Manfred Peschke

EDITOR IN CHIEF

Carl T Helmers |r

PRODUCTION MANAGER

Judith Havey

CIRCULATION MANAGER

Gregory Spitzl'aden

ASSISTANT PUBLISHER

Debra Boudrieau

EDITOR

Christopher P Morgan

CO-OP EDITOR

Scott Morrow

PRODUCTION EDITORS

Karen Gregory

Nancy Salmon

ADVERTISING

Debra Boudrieau, Director

Noreen Bardslcy

Virginia Peschke

EDITORIAL ASSISTANT

Ingrid Nyland

PRODUCTION ASSISTANT

Cheryl Hurd

CONVENTION SUPERVISOR

Elizabeth Alpaugh

DEALER SALES

Ginnie F Boudrieau

CLUBS

David Wozmak

TRAFFIC MANAGER

Edmond C Kelly Jr

ART

WaiChiu Li

Ellen Shamonsky

SPECIAL PRODUCTS

Floyd W Rehling

Medellin Stephens

David Wozmak

EXECUTIVE SECRETARY

Patricia Clark

RECEPTIONIST

Jacqueline Earnshaw

DRAFTING

Douglas Glen

Stephen Kruse

Lynn Malo

Bill Morello

Dorothy Shamonsky

TYPOGRAPHY

Custom Marketing Resources Inc

Goodway Graphics

PHOTOGRAPHY

Ed Crabtree

PRINTING

Rumford Press

EDITORIAL CONSULTANT

Daniel Fylstra

ASSOCIATES

Walter Banks

Steve Ciarcia

David Fylstra

Portia Isaacson

FOREIGN DISTRIBUTOR

Pan Atlantic Computer Systems GmbH

Frankfurter Str 78

D61 Darmstadt West Germany

(0 61 51) 29 29 23

ADVERTISING SALES REPRESENTATIVES

National:

Parker & Short

1 Lakeside Office Park

Wakefield MA 01880

(617) 246-2293

Southern California:

Buckley/Boris Associates Inc

912 South Barrington

Suite 202

Los Angeles CA 90049

(213) 826-4621

Northern California:

Jules E Thompson Inc

Hearst Building

Suite 1111

San Francisco CA 94103

(415) 362-8547

In This

One whole subset of the personalcomputing world is provided by theusers and manufacturers of program-mable calculators. All the problemsof creating applications softwarewhich users must solve on biggermachines are present, and often in-tensified by lack of scale, in thesesmallest of personal computers.William B Jenkins gives some usefulinformation on the general processof creating an application program,and the specific problems of doingit on an SR-52 programmable cal-culator, in his article entitled Howto Write an Application Program.

One of the conveniences of the6800, 6502 and similar micropro-cessors is a relative branch methodwhich allows one to construct positionindependent code which can be re-located by simply moving the pro-grams involved. But these forms aretypically limited to a 1 byte displace-ment, a limitation which RobertBorrmann shows how to overcome inthe 6800 case by using appropriatestack manipulations and "long branch"subroutines. Read his article Repeat-ability and the Long Branch in thisissue.

Looking for a different type ofboard game to play on your com-puter? How about the current gamefad Othello (known as Reversi inEngland)? In Othello, a New AncientGame Richard O Duda provides ashort article with details for thisgame of skill and tactics.

This month, Mike Wimble con-cludes his 3 part series about an APLinterpreter with An APL Interpreterfor Microcomputers, Part 3: Mathe-matical Processing. With this segment,the functional design of interpreter iscompleted. Watch future issues forresults of the Great APL InterpreterContest inspired by Mike's article.

At first glance a simulator designedto run on the computer it is simulatingmay not seem very useful. Kin-manChung feels differently for he wroteone. His article, An 8080 Simulator,describes one such program and givesideas on how it can be put to gooduse.

EITI

page 86

For those who tire of the manyversions of the Star Trek game, thereare many much more interesting andinteractive graphics games to consider.In his article, How to ImplementSpace War, Dave Kruglinski providesreaders with a version of the classicgraphics game, Space War, which wasoriginated in the early 1960s bystudents at MIT, and has taken anamazingly long time to be documentedin versions for personal computers.Dave's 8080 version is complete withorbiting space ships, spiraling torpe-does and dynamic effects implementedwith limited resolution point plottinggraphic display.

Is your computer cold? Add somevitamin C for a new high in resistanceto frustration and rude language. Turnto J Gregory Madden's C: A Languagefor Microprocessors?, a descriptionof an excellent structured program-ming language which could be adaptedto microprocessor use from its originson large PDP-11 s with the Unix oper-ating system.

Do you use cassettes as your prin-cipal mass storage medium? Then youwill benefit from Wayne D Smith'sdiscussion of Fundamentals of Sequen-tial File Processing when it comes timeto write software using such media.

Want to get involved in pitch gener-ation for computer music synthesis?Thomas Schneider explains severalapproaches you might consider in hisarticle, Simple Approaches to Com-puter Music Synthesis.

Using flowcharts to gather the logicfor a program does not mesh with thecurrent trend of structured program-ming. One technique that is directedtowards the structured programapproach is the use of Warnier-Orrdiagrams. Use of these diagrams, asdescribed by David Higgins in hisarticle Structured Program Design, willresult in accurate, well structured pro-grams that will work correctly the firsttime they are executed.

The home computer has many usesbesides number crunching and gameplaying. One of these uses, discussedby David Holladay in ComputerInformation Arrangement, is an in-formation retrieval system. This typeof system could be used to make yourown dictionary type reference, helpkeep track of your files with crossreference, or simply make a personalversion of the Schwann Catalog foryour record collection.

Sensible automobile owners havelong had the habit of recording mi-leage and gasoline filling figures ateach visit to the service station. In thisissue John P Bauernschub explainshow to Analyze Your Car's GasEconomy with Your Computer in ashort article presenting a completeBASIC program for this application.

Are you looking for a stimulatingthought game to play with your com-puter? The game of Mastermind asdescribed by W Lloyd Milligan in hisarticle of that name will force you tothink in a very logical manner if youwant to have a chance at winning.

Announcing the West Coast's largest Personal Computing

Show. April 28, 29, and 30,1978 at California's brand new

Long Beach Convention Center. This is a selling show with

180 booths (each draped, carpeted and with 500 watts

of electricity). Three full days of conference sessions.

There will be home brew exhibits, exhibitors lounge,

inquiry badge system, computerized registration, a

newsroom, and a full blown advertising and promotional

campaign to bring you thousands of qualified buyers.

PERCOMP78

I wouldn't miss itfor anything.

®

Send me the show kit:Name:

.Title:.

Company:Address:_

.State:

Zip Code:

. Phone:

Calk (714) 973-0880 Or mail this coupon: PERCOMP 78,1833 E. 17 St., Suite 108, Santa Ana, CA 92701.I Sign early, corner booths are limited.

Circle 354 on inquiry card.

Editorial

The Colorful Future of Personal Computing

FULL SCREEN

POINT REFRESH TABLE

COLOR MONITOR

Figure 1: The color dis-play technique which isconceptually simplest andmost versatile is the di-rectly refreshed bruteforce technique of assig-ning "n" bits to eachpicture element. For a per-sonal computing context,where conventional TVmonitors are used, andbyte addressable memoryis involved, use of four bitsfor each point gives 16color levels per pictureelement. For a full 256by 256 element matrixof color, a memory re-quirement of 32,768 bytesmust be satisfied.

(or What the World Needs Is a Good Mass Produced High Resolution Color Display ...)

By Carl Helmers

This commentary on the possibilities ofcolor imagery and display was inspired by afantastic image processing system which wassurely witnessed by many of the 36,000people who thronged to the National Com-puter Conference in Dallas TX this pastJune. The system in question is producedby a company called Comtal, located inPasadena CA. It is referenced variously asthe Model 8000-S and "Vision One" in theliterature I picked up at the site of thedemonstration in the main exhibit area ofthe conference.

This Vision One system is not exactlya personal computing product. Its price tagin the $70,000 range makes it a candidatefor laboratory or institutional use, but

hardly a peripheral for the individual ofordinary means. Its characteristics include abuilt in LSI-11 computer with extensivesoftware, direct refresh raster graphics hard-ware with 512 by 512 8 bit picture elements(ie: 262,144 bytes in its serial CCD refreshmemory), and a hard surface disk drive. Oneof the prime practical applications of thissystem is its use by the Jet Propulsion Lab-oratory of Pasadena as the analysis and en-hancement processor for the color photosreturned from the Viking landers on theplanet Mars. But the artistic and personaluse attributes of such a color display areimmense, as was demonstrated by the

Continued on page 42

□

J

ats

Ilie Computer for Hie Professional

Whether you are a manager, scientist, educator, lawyer,

accountant or medical professional, the System 8813 will

make you more productive in your profession. It can keep

track of your receivables, project future sales, evaluate

investment opportunities, or collect data in the laboratory.

Use the System 8813 to develop reports, analyze and store

lists and schedules, or to teach others about computers.

It is easily used by novices and experts alike.

Reliable hardware and sophisticated software makethis system a useful tool. Several software packages areincluded with the machine: an advanced disk operatingsystem supporting a powerful BASIC language inter-preter, easy to use text editor, assembler and other systemutilities. Prices for complete systems start at $3250.

See it at your local computer store or contact us at460 Ward Dr., Santa Barbara, CA 93111, (805) 967-0468.

PolyMorphicSystems

Sol Terminal Compute.

•

■

■

a complete system. "I hats one of the nice things ahoul theSol-20. It was built horn the ground-up as the heart of threefixed price computer systems with all the peripheral gear andsoli ware included to get you up and on the air.

Sol System I costs just $1649 in kit form or S2I2() lullyhurned in and tested. Here's what you get: a Sol-20 with theSOLOS personality module Tor stand alone computer power,an W)2 word memory, a 12" 'I V/video monitor. ;i cassetterecorder with BASIC software tape and all necessary cables,

Sol System II has the same equipment plus a linger

Process

capacity 16,384 word memory. It sells for $1883 in kit form; $2283 fully assembled.

For even more demanding tasks, Sol System III features Sol-20/SOLOS, a 32,768 wordmemory, the video monitor, Helios II Disk Memory System and DISK BASIC Diskette. Price,$4750 in kit form, $5450 fully assembled and tested.

And remember, though we call these small or personal computer systems, they have more

power per dollar than anything everoffered. They provide performance com-parable with mini-computer systems pricedthousands of dollars more.

The Small ComputerCatalog for the rest of the realcomputer system story.

Visit your local computer store fora copy of our fully illustrated 22 page cata-log. Or you may write or call us if moreconvenient. Please address ProcessorTechnology, Box B, 6200 Hollis Street,Emeryville, CA 94608. (415) 652-8080.

The functional beauty of Sol Computer Systems ismore than skin deep. A look, inside reveals a simple eleganceof design and sturdy construction.

a

Corporohon5J ¥

See Sol here

ALABAMA

ICP, Computerland1550 Montgomery Hwy.Birmingham, AL 35226(205) 979-0707

ARIZONA

Byte Shop Tempe813 N. Scottsdale Rd.Tempe, AZ 85281(602) 894-1129

Byte Shop Phoenix12654 N. 28th Dr.Phoenix, AZ 85029(602) 942-7300

Byte Shop Tucson2612 E. BroadwayTucson, AZ 85716(602) 327-4579

CALIFORNIA

The Byte Shop1514 University Ave.Berkeley, CA 94703(415) 845-6366

Computer Center1913 Harbor Blvd.Costa Mesa, CA 92627(714)646-0221

DCI Computer Systems4670 N. El CapitanFresno, CA 93711(209)266-9566

Bits 'N Bytes

679 S. State College Blvd.

Fullerton, CA 92631

(714)879-8386

The Byte Shop

16508 Hawthorne Blvd.

Lawndale, CA 90260

(213) 371-2421

Opamp/Computer1033 N. Sycamore Ave.Los Angeles, CA 90038(213)934-3566

The Computer Mart624 West Katella #10Orange, CA 92667(714)633-1222

Byte Shop

496 South Lake Ave.

Pasadena, CA 91101

(213)684-3311

Micro-ComputerApplication Systems2322 Capitol AvenueSacramento, CA 95816(916) 443-4944

The Computer Storeof San Francisco1093 Mission StreetSan Francisco, CA 94103(415) 431-0640

Byte Shop

321 Pacific Ave.

San Francisco, CA 94111

(415) 421-8686

The Byte Shop2626 Union AvenueSan Jose, CA95124(408) 377-4685

The Computer Room124H Blossom Hill Rd.San Jose, CA 95123(408) 226-8383

The Byte Shop509 Francisco Blvd.San Rafael, CA 94901(415)457-9311

The Byte Shop3400 El Camino RealSanta Clara, CA 95051(408) 249-4221

Recreational Computer

Centers

1324 South Mary Ave.

Sunnyvale, CA 94087

(408) 735-7480

Computer Components5848 Sepulveda Blvd.Van Nuys, CA 91411(213)786-7411

The Byte Shop2989 North Main St.Walnut Creek, CA 94596(415)933-6252

Byte Shop

14300 Beach Blvd.

Westminster, CA 92683

(714)894-9131

COLORADO

Byte Shop2040 30th St.Boulder, CO 80301(303) 449-6233

Byte Shop3464 S. Acoma St.Englewood, CO 80110(303) 761-6232

FLORIDA

Byte Shop of Miami7825 Bird RoadMiami, FL33155(305) 264-2983

Microcomputer

Systems Inc.

144 So. Dale Mabry Hwy.

Tampa, FL 33609

(813)879-4301

GEORGIA

Atlanta Computer Mart5091-B Buford Hwy.Atlanta, GA 30340(404) 455-0647

ILLINOIS

Champaign Computer

Company

318 N. Neil Street

Champaign, IL 61820

(217)359-5883

itty bitty machine co.1316 Chicago Ave.Evanston, IL 60201(312)328-6800

itty bitty machine co.42 West RooseveltLombard, IL 60148(312)620-5808

INDIANA

The Data Domain406 So. College Ave.Bloomington, IN 47401(812) 334-3607

The Byte Shop5947 East 82nd St.Indianapolis, IN 46250(317)842-2983

Computers Unlimited7724 East 89th StreetIndianapolis, IN 46256(317) 849-6505

The Data Domain7027 N. Michigan Rd.Indianapolis, IN 46268(317) 251-3139

IOWA

The Computer Storeof Davenport616 West 35th StreetDavenport, IA 52806(319) 386-3334

KENTUCKY

The Data Domain3028 Hunsinger LaneLouisville, KY 40220(502) 456-5242

MICHIGAN

The Computer Store

of Ann Arbor

310 East Washington

Ann Arbor, Ml 48104

(313)995-7616

Computer Martof Royal Oak1800W. 14 Mile Rd.Royal Oak, Ml 48073(313) 576-0900

General Computer Store2011 LivernoisTroy, Ml 48084(313) 362-0022

MINNESOTA

Computer Depot, Inc.3515 W. 70th St.Minneapolis, MN 55435(612) 927-5601

NEW JERSEY

Hoboken Computer WorksNo. 20 Hudson PlaceHoboken, NJ 07030(201) 420-1644

The Computer Martof New Jersey501 Route 27Iselin, NJ 08830(201) 283-0600

NEW YORK

The Computer Mart

of Long Island

2072 Front Street

East Meadow, L.I. NY 11554

(516) 794-0510

The Computer Shoppe444 Middle Country Rd.Middle Island, NY 11953(516) 732-4446

The Computer Mart

of New York

118 Madison Ave.

New York, NY 10001

(212)686-7923

The Computer Corner200 Hamilton Ave.White Plains, NY 10601(914)949-3282

OHIO

Computer Mart of Dayton2665 S. Dixie Ave.Dayton, OH 45409(513)296-1248

OREGON

Byte Shop Computer Store3482 SW Cedar Hills Blvd.Beaverton, OR 97005(503) 644-2686

The Real OregonComputer Co.205 West 10th Ave.Eugene, OR 97401(503) 484-1040

Byte Shop Computer Store2033 SW 4th Ave.Portland, OR 97201(503) 223-3496

PENNSYLVANIA

Byte Shop ofDelaware Valley1045 Lancaster PikeBryn Mawr, PA 19010(215)525-7712

RHODE ISLANDComputer Power, Inc.M24 Airport Mall1800 Post Rd.Warwick, Rl 02886(401) 738-4477

TEXAS

Computer World926 N. CollinsArlington, TX 76011(817)469-1502

Byte Shop3211 FondrenHouston, TX 77063(713) 977-0664

Computertex2300 Richmond Ave.Houston, TX 77006(713) 526-3456

Interactive Computers7646V2 Dashwood Rd.Houston, TX 77036(713) 772-5257

Neighborhood Computer

Store

#20 Terrace Shopping Center

4902 - 34th Street

Lubbock, TX 79410

(806) 743-2787

The Micro Store634 So. CentralExpresswayRichardson, TX 75080(214)231-1096

VIRGINIA

The Computer Systems

Store

1984 Chain Bridge Rd.

McLean, VA 22101

(703) 821-8333

Media Reactions Inc.11303 South Shore Dr.Reston, VA 22090(703)471-9330

The Home Computer Center2927 Virginia Beach Blvd.Virginia Beach, VA 23452(804)340-1977

WASHINGTON

Byte Shop Computer Store14701 N.E. 20th Ave.Bellevue, WA 98007(206) 746-0651

The Retail Computer Store410 N.E. 72ndSeattle, WA 98115(206)524-4101

WISCONSIN

Madison Computer Store1910 Monroe St.Madison, Wl 53711(608) 255-5552

The MilwaukeeComputer Store6916 W. North Ave.Milwaukee, Wl 53213(414)259-9140

CANADA

Trintronics160 Elgin St.Place Bell CanadaOttawa, Ontario K2P 2C4(613)236-7767

First CanadianComputer Store Ltd.44 Eglinton Ave. WestToronto, Ontario M4R 1A1(416) 482-8080

The Computer Place186 Queen St. WestToronto, Ontario M5V 1Z1(416) 598-0262

Pacific Computer Store4509-11 Rupert St.Vancouver, B.C. V5R 2J4(604) 438-3282

Circle 355 on inquiry card.

Processor

A CMOS LOGIC PROBE

This is in response to Tom Kryst'sletter in the July 1977 BYTE, page 148,expressing a need for a low cost CMOSlogic probe. I was faced with a similarrequirement while working on a softwaredevelopment system for the RCA 1802CMOS microprocessor. Not being aperson who believes in reinventing thewheel, I borrowed Kurt Christner's TTLdesign from the January 1977 BYTE,page 82, adding a CMOS inverting bufferat the front end, as shown below. Pleasenote that a CD4069 inverter may not besubstituted for the more expensiveCD4049, as the current sinking capa-

POWER CONNECTIONS

+ 5V

GND

ICI

icz

IC3

7405

9602

CD4049

14

16I

788

bility of the latter device is necessary.

I hope this modification may proveuseful to some of your readers.

Fr^nk A Weissig

343 NW 8th St, Apt 3

CorvallisOR 97330

*l added this resistor to Mr Christner'sdesign because there's something aboutan OC gate without a pull up that makesme nervous.

KUDOS FOR THE LD-14

I'd like to make a few commentsabout one of your advertisers, namelyLogic Design Inc of Laramie WY. Ipurchased their LD 14 Tutorial TrainingComputer which was written up in Jan-uary 1977 BYTE. Although I have notfinished wire wrapping the unit, I amconfident that I am getting my $1200'sworth. One thing that has impressed meabout the company is the quick responseto a problem I was having one eveningbecause of a gross error on my part.Some of the wires melted together as theresult of tying VCC to ground. I becamea little nervous that maybe I damagedsomething, so I wrote to complain abouttheir failure to give any guarantees thattheir product is idiot proof.

Within three days I received a verycourteous and apologetic) phone callfrom the company with an open invita-tion to call them collect in the event Iexperienced further difficulty. With thiskind of response it would seem likelythat they intend to back up their com-mitment to quality support as stated intheir advertisement.

To a second party, my finished pro-duct may not appear to go beyond theIntercept Jr offered by Intersil, based ontheir IM6100 chip, whith goes foraround $450 with 1 K of programmablememory. This compared to the $1200I have spent may be called, to questionwhen considering only the physicalresult. The difference, as I see it, is that

I will have acquired an undethe PDP-8 computer that I

rstanding ofwould never

have been able to by simply program-ming a prewired version. Beyond this,when I'm finished wire wrapping thePDP-8, I can unplug it from the logicdesigner front panel, give it a 5 V supply,and use the designer for my own crea-tions.

For anyone interested in learningsome of the state of the art do's anddont's of logic design, I will give thisproduct a strong recommendation.Also, I would be interested in makingcontact with others who are building,or have completed, the LD 14 computer.

Phil Winninghoff

815 Plata Rd

Arroyo Grande CA 93420

ASIMOV'S PERSONAL COMPUTERANTICIPATION, CIRCA 1950

In his article, "Why aren't there anyAltairs on Arcturus II?" (April 1977BYTE), H Melton states that, "I can

SWTP 6800 OWNERS-WE HAVE A CASSETTE }/0 FOR YOU!

The CIS-30+ allows you to record and playback data using anordinary cassette recorder at 30, 60 or 120 Bytes/Sec! No Hassle!Your terminal connects to the CIS-30+ which plugs into either theControl (MP-C) or Serial (MPS) Interface of your SWTP 6800Computer. The CIS-30+ uses the self clocking 'Kansas City'/BiphaseStandard. The CIS-30+ is the FASTEST, MOST RELIABLE CAS-SETTE I/O you can buy for your SWTP 6800 Comriuter.

PerCom has a Cassette I/O for your computer!Call or Write for complete specifications

R*TE TERMINAL TAPE300 LOCAL AUTO

"00 LINE Jti

. PEfiQCM cis_30+ I

Kit-$69.9

Assembled - $89.9

(manual include

* plus5%f/shipp

5*5*d)ng

PEflCOM

PerCom Data Co.

P.O. Box 40598 • Garland, Texas 75042 • (214) 276-1968

PerCom - 'peripherals for, personal computing'

TEXAS RESIDENTS ADD S% SALES TAX

remember only one old story thatused pocket calculators. . . ." As an avidSF fan, and as an even more avid calcu-lator (HP) freak, I must beg to differwith Mr Melton. In the FoundationTrilogy, by Isaac Asimov, one finds thefollowing passage:

Seldon removed his calculatorpad from the pouch at hisbelt. . . .Itsgrey, glossy finish wasslightly worn by use. S el don'snimble fingers. . .played over thehard plastic that rimmed it. Redsymbols glowed out from thegrey.

How many of us have not performedthe act just described? And the Founda-tion Trilogy was, I believe, written in theearly 1950s. I must, however, agree withthe general tone of the article: most ofus (including SF writers) are just notable to predict the rate of technologicalprogress.

W Gray Mansfield

5042 Guava Av

La Mesa CA 92041

PRINTING BARS ON SELECTRICS?

I see you're printing optical code. Isit possible to get an IBM ball (or keys)which prints letters and code simultane-ously? If yes, where are they available?

Rob Loring

Twin Oaks Commmunity

Rt4, Box 169

Louisa VA 23093

Yes, but it's expensive. Customtooling is available from several sourcesfor IBM style balls; thus, while one coulddesign a bar code font, it would not be aproject undertaken lightly.

LIGHTING THROUGH THE PAPER?

The idea of distributing softwarethrough PAPERBYTES is great. Whydon't you publish PAPERBYTES on oneside of a page only, leaving the otherside blank? Light could then be shonefrom underneath the paper to illuminatethe coded material.

This technique would greatly sim-plify the optical system needed for thebar code reader. It would eliminate thelight source and lens in the reader(wand) and reduce specular reflectionproblems that cause errors.

I plan on trying this approach soon.Do you or your readers have any sugges-tions?

Andrew A Modla

108 Clemens Ct

Lansdale PA 19446

The main problem with the approachof backlighting is that it leaves onewhole side of the paper blank, somethingwhich is less than optimal when it comesto publishing information in books andmagazines on expensive paper.

PRINTING QUOTES ON AN HP9830IN BASIC

As a user of Hewlett-Packard's 9830BASIC machine, I have discovered oneof its (very few) shining features. TheBASIC interpreter has a statement pairWRITE and FORMAT, which FOR-TRAN users will recognize. This is arather little known fact, as HP buries itin an obscure portion of their manual.

In order to get quotes out of it,something like this would be written:

10 FORMAT 3B

20 WRITE (15, 10) 34, "HELLO", 34

where 15 is the device code of the mainprinter. The output looks like this:

"HELLO"

What goes on is that B format willconvert the decimal number given it(constant, variable, or whatever) andoutput it directly as ASCII; the quotemark is 34 in ASCII. This can also beused to print nonkeyboard characters;square brackets, reverse slashes, and soon.

The other way to do this requires theAdvanced IO ROM, as HP sells theirsoftware as plug in black (or gray) boxes.The OUTPUT statement allows you touse a string as an output device.Example:

10 FORMAT B

20 OUTPUT (A$, 10) 34,

30 PRINT A$

with the result:

So, all you users of the HP9830, nowyou can print quotes and other goodies.This almost makes up for the crudity ofHP's strings.

John Woods WB7EEL

6541 126th AvSE

Bellevue WA 98006

AS SALES EXPAND, SAFETYASPECTS MUST BE IMPROVED

While experimenters look for thefastest, most powerful, least expensivemicrocomputer, they seldom look forthe safest. From looking at ads forhobby computers, I learn that only OSIadvertises their power supply as beinglisted by Underwriters Laboratories Inc.Some small computers have 117 VACconductors that are exposed when thelid is off (as I learned one day by acci-dent — no injury, just minor equipmentdamage); the same machines don't havefuses in the unregulated low voltagehigh current lines. Just wait until you'vewelded a probe to a power trace to findout how much you need that item. It'san industrial standard to avoid exposedhigh voltages whenever possible, and Isee no reason to have an exposed, noisy

Continued on page 32

Rated G

Great Locations

Now Open:

3020 University Drive N.W.Huntsville. AL(205)539-1200

11074 San Pablo Ave.El Cerrito.CA 94530(415)526-662222634 Foothill Blvd.Hayward, CA 94542(415)538-8080

6840 La Cienega Blvd.Inglewood, CA 90302(213) 776-8080

24001 Via Fabricante

Mission Viejo, CA 92675

(714)770-0131

4233 Convoy Street

San Diego, CA 92111

(714) 560-9912

121 Fremont Street

San Francisco. CA 94105

(415)546-1592

171 E. Thousand Oaks Blvd. Suite 105Thousand Oaks. CA 91360(805) 495-3554

104 W. First StreetTustin. CA 92680(714)544-0542

50 East Rand Road

Arlington Heights, IL 60004

(312) 255-6488

9511 No, Milwaukee Ave

Niles. IL60648

(312)967-1714

813-B Lyndon LaneLouisville. KY 40222(502) 425-830816065 Frederick RoadRockville, MD 20855(301)948-7676

2 De Hart StreetMornstown, NJ 07960(201)539-4077

1612 Niagara Falls Blvd.Buffalo, NY 14150(716) 836-6511

225 Elmira RoadIthaca. NY 14850(607) 277-48886439 Westheimer RoadHouston, TX 77057(713) 977-0909

Opening Soon:

San Jose, CAOaklawn, ILDetroit, MlGrand Rapids, MlNashua, NHAustin, TX

Franchise OpportunitiesAvailable—Contact:E. E. Faber, PresidentComputerland Corp.

ComputerLand

1922 Republic Ave.San Leandro, CA 94577(415) 895-9363

12

Circle 356 on inquiry card.

Rated IG

The Best Game in Town.

Welcome to ComputerLand.An incredible adventure intothe world of personalcomputers. A one-of-a-kindshopping experience.

Each ComputerLand storepresents everything you everwanted to know aboutcomputers. And then some.

Take our Game Room, forstarters. You'll find excitementfor the whole family in ourendless variety of challenging

computer games. You can battle the Klingons in anout-of-this-world game of StarTrek. Create an elec-tronic work of art with a computer controlled TV. Testyour skill in a game of computerized hangman.

You can even plot your biorhythm.

But we're more than just fun and gamesEach ComputerLand store offers aknowledgeable and person-able staff of professionals

And if your system breaks down,our in-store service departmentwill get you back up andrunning.

Right now!

Great Selection.

Your first stop at ComputerLandmay well be your last stop.

ComputerLand offers the finestquality and

to serve you.Plus the greatest avail-able selection of micro components. Whether it's a dataprocessing system for your business or a computer controlledsprinkler system for your home, you'll find whatever you needat ComputerLand.

Read on.

largest selec-tion of all themajor brand names.Like Apple Computer,Cromemco, DEC, Diablo,Hazeltine, ICOM, IMSAI. Lear Siegler,National Semiconductor, North Star, TexasInstruments, Vector Graphics and more.

Plus a complete inventory of tools, books and accessories.

What's more, at ComputerLand, we deal in product. Notpromises. Our inventory is on our own shelves. Rather than themanufacturer's. So you can take delivery on tomorrow's com-ponents today. .^mmmmm_______

in addition to BASIC,

Genuine Service.

We want to supplyyou with the onesystem that's right.Rather than a com-plete system that isn't.Or a limited systemthat is.

That's why, at Com-puterLand, you dealwith real professionalswho are also realpeople. People whospeak your languageCOBOL or FORTRAN.

Which means,simply put, that atComputerLand, youget exactly whatyou want,

Exactly when youwant It.

Be Our Guest.

Begin with thegrand tour of ourexhibit areas. "Test-drive" any of ourindividual systems.

People, in short, who can offer both the novice andthe old hand the same expert guidance in selectingthe optimum system he or she needs.

Yet. assisting in the purchase is only the beginning ofComputerLand's service. If the kit you bought requires alittle more do-it-yourself than you yourself can do, weprovide assembly assistance.

If that complex program proves to be just that, we provideprogramming assistance.

Then tell us your needs. We'll sit down and talk about the systemthat's right for you. It's as easy as that at ComputerLand.

The great computer store. RATED G.

Call or write for the address of the ComputerLand store nearest you.Franchise opportunities available.

ComputerLand

1922 Republic Avenue, San Leandro, CA 94577 (415) 895-9363

I ■

Introducing Apple II.

ft

1

V - » ■ :

*t|

t

»TH

m^MWH?.***'**'*"-"

ii

You've just run out of excusesnot owning a personal compu

Clear the kitchen table. Bringin the color TV. Plug in your newApple Ilf and connect any standardcassette recorder/player. Now you'reready for an evening of discovery inthe new world of personal computers.

Only Apple II makes it that

easy. It's a

complete, ready to use computer, not akit. At $1298, it includes video gra-phics in 15 colors. It includes 8K bytesROM and 4K bytes RAM-easilyexpandable to 48K bytes using 16KRAMs (see box). But you don't evenneed to know a RAM from a ROM touse and enjoy Apple II. For example,it's the first personal computer witha fast version of BASIC permanentlystored in ROM. That means you canbegin writing your own programs thefirst evening, even if you've had noprevious computer experience.

The familiar typewriter-stylekeyboard makes it easy to enter yourinstructions. And your programs canbe stored on—and retrieved from—audio cassettes, using the built-in

cassette interface, so you can swapwith other Apple II users.

You can create dazzling colordisplays using the unique color gra-phics commands in Apple BASIC.Write simple programs to displaybeautiful kaleidoscopic designs. Orinvent your own games. Games likePONG—using the game paddles,supplied. You can even add the dimen-sion of sound through Apple II'sbuilt-in speaker.

But Apple II is morethan an advanced, infinitelyflexible game machine. Useit to teach your childrenarithmetic, or spellingfor instance. Apple IImakes learning fun.Apple II can alsomanage household finances,chart the stock market orindex recipes, record collections, evencontrol your home environment.

Right now, we're finalizing aperipheral board that will slide intoone of the eight available mother-board slots and enable you to compose

music elec-tronically.And therewill be otherperipheralsannouncedsoon toallow yourApple II totalk with another Apple II, or to inter-face to a printer or teletype.

Apple II is designed to growwith you as your skill and experiencewith computers grows. It is the stateof the art in personal computing today,and compatible upgrades and peri-pherals will keep Apple II in the fore-front for years to come.

Write us today for our detailedbrochure and order form. Or call usfor the name and address of theApple II dealer nearest you. (408)996-1010. Apple Computer Inc.,20863 Stevens Creek Boulevard,Bldg. B3-C, Cupertino,California 95014.

Apple II™ is a completely self-containedcomputer system with BASIC in ROM,color graphics, ASCII keyboard, light-weight, efficient switching power supplyand molded case. It is supplied withBASIC in ROM, up to 48K bytes ofRAM, and with cassette tape, video andgame I/O interfaces built-in. Also in-cluded are two game paddles and ademonstration cassette.

SPECIFICATIONS

• Microprocessor: 6502 (1 MHz).

• Video Display: Memory mapped, 5

modes—all Software-selectable:

• Text—40 characters/line, 24 linesupper case.

• Color graphics—40hx 48 v, 15 colors

• High-resolution graphics—280hx192v; black, white, violet, green(12K RAM minimum required)

• Both graphics modes can be selectedto include 4 lines of text at the bottomof the display area.

• Completely transparent memoryaccess. All color generation donedigitally.

• Memory: up to 48K bytes on-boardRAM (4K supplied)

• Uses either 4K or new 16K dynamicmemory chips

• Up to 12K ROM (8K supplied)

• Software

• Fast extended integer BASIC in ROMwith color graphics commands

• Extensive monitor in ROM•I/O

• 1500 bps cassette interface

• 8-slot motherboard

• Apple game I/O connector

• ASCII keyboard port.

• Speaker

• Compositevideooutput

Apple II is also

available in board-only

form for the do-it-yourself hobbyist. Has

all of the features of the Apple II system,

but does not include case, keyboard,

power supply or game paddles. $598.

PONG is a trademark of Atari Inc.*Apple II plugs into any standard TV usingan inexpensive modulator (not supplied).

apple computer inc.

Order your Apple II now.

from any one of the following authorized dealers:

ALABAMA

The Computer Center303 B. Poplar PlaceBirmingham

ALASKA

Team Electronics

Country Village Shopping Center

700 E. Benson Blvd.

Anchorage

Team Electronics

404 E. Fireweed Lane

Anchorage

Team Electronics

1698 Airport Way

Fairbanks

ARIZONA

Byte Shop

813 N. Scottsdale Road

Tempe

CALIFORNIA

Computerland

22634 Foothill Blvd.

Hayward

Computerland

6840 La Cienega Blvd.

Englewood

Computerland

24001 Via Fabricante

Mission Viejo

Computerland

4233 Convoy Street

San Diego

Computerland

104 W. First Street

Tustin

Byle Shop

2233 El Camino Real

Palo Alto

Byte Shop

2626 Union Avenue

San Jose

Byte Shop

1200 W.Hillsdale Blvd.

San Mateo

Byte Shop

3400 El Camino Real

Santa Clara

Byte Shop

2989 N. Main Street

Walnut Creek

A-VIDD Electronics

2210 Bellflower Road

Long Beach

Computer Country

2232 Salt Air Drive

Santa Ana

Computer Playground

6789 Westminster Avenue

Westminster

Rainbow Computing, Inc.

10723 White Oak

Granada Hills

Strawberry Electronics

71 Glenn Way #9

Belmont

COLORADO

Team Electronics

3275 28th Street

Boulder

Team Electronics

The Citadel

Colorado Springs

Team Electronics

107 S. College

Fort Collins

Team Electronics

Teller Arms Shopping Center

2401 North Avenue

Grand Junction

Team Electronics

2045 Greeley Mall

Greeley

Team Electronics

1450 Main Street

Longmont

Team Electronics

1022 Constitution Road

Belmont Plaza

Pueblo

FLORIDA

Byte Shop

1044 E. Oakland Park Blvd.

Ft. Lauderdale

Byte Shop

7825 Bird Road

Miami

The World of Microcomputers, Inc.

1429 Plunket Street

Hollywood

GEORGIA

Data Mart, Inc.3001 N. Fulton DriveAtlanta

HAWAII

Real Share

190 S. King Street #890

Honolulu

ILLINOIS

Team Electronics

Meadowdale Drive, Space 1A

Carpentersville

Team Electronics

Northgate Mall Shopping Center

Decatur

Team Electronics

Sandburg Mall

1150 W. Carl Sandburg Drive

Galesburg

Team Electronics

Southpark Shopping Center

420016th Street

Moline

Team Electronics

4700 Block—N. University Ave.

Peoria

Team Electronics

1714 Fifth Avenue

Rock Island

Team Electronics

321 N.Alpine Road

Rockford

Team Electronics

WoodfieldMallF-119

Schaumburg

Team Electronics

2716 S. MacArthurBlvd.

Springfield

Computerland

50 E. Rand Road

Arlington Heights

Itty Bitty Machine Company

1316 Chicago Avenue

Evanston

INDIANA

The Data Domain2805 E. State Blvd.Fort WayneThe Data Domain7027 Michigan RoadIndianapolis

IOWA

Team Electronics

202 Main Street

Ames

Team Electronics

Duck Creek Plaza

Bettendorf

Team Electronics

4444 First Avenue N.E.

Lindale Plaza

Cedar Rapids

Team Electronics

216 Eighth Street S.E.

Cedar Rapids

Team Electronics

320 Kimberly Road

Northpark Shopping Center

Davenport

Team Electronics

2300 Kennedy Road

Dubuque

Team Electronics

Room 120—Space 18

The Mall

Iowa City

Team Electronics

2015 E. Fourth Street

Sioux City

Team Electronics

K-D Stockyards Station

2001 Leech Avenue

Sioux City

Team Electronics

2750 University Avenue

Waterloo

KANSAS

Team Electronics

215 W. Kansas Avenue

Garden City

Team Electronics

14 S. Main Street

Hutchinson

Team Electronics

2319 Louisiana Street

Lawrence

Team Electronics

1132 Westloop Shopping Center

Manhattan

KANSAS (continued)Team ElectronicsSpace 81-A Mid-State MallSalina

Team Electronics907 W. 27th Street TerraceTopeka

Team ElectronicsTowne East Square7700 E. KelloggWichita

Team Electronics791 N. West StreetWichita

Team Electronics"The Mall" on Harry StreetWichita

Barney & Associates425 N. BroadwayPittsburg

KENTUCKY

Computerland

813 B Lyndon Lane

Louisville

The Data Domain

506W Euclid Avenue

Lexington

The Data Domain

3028 Hunsinger Lane

Louisville

MARYLAND

Computerland16065 Frederick RoadRoute 355Rockville

MASSACHUSETTS

The Computer Store, Inc.120 Cambridge StreetBurlington

MICHIGAN

Team Electronics

Delta Plaza Shopping Center

Escanaba

Team Electronics

M&M Plaza

Menominee

MINNESOTA

Team Electronics

Ridgedale Mall

12503 Wayzata Blvd.

Minnetonka

Team Electronics

204 Southdale Center

Edina

Team Electronics

215 Ruby Street

Box 3222

Mankato

Team Electronics

1248-50 Eden Prairie Center

Eden Prairie

Team Electronics

207Third Street

Bemidji

Team Electronics

1032 Burnsville Center

Burnsville

Team Electronics

Kandi Mall South Hwy 71

Willmar

Team Electronics

Crossroads Shopping Center

St. Cloud

Team Electronics

Cedar Mall

Owatonna

Team Electronics

Mesabi Mall

Hibbing

Team Electronics

Thunderbird Mall

Virginia

Team Electronics

Apache Plaza

Silver Lake Road

St. Anthony

MINNESOTA (continued)

Team Electronics

1221 Main Avenue

Moorhead

Team Electronics

1733 S. Robert Street

West St. Paul

Team Electronics

2640 Hennepin Avenue S.

Minneapolis

Team Electronics

455 Rice Street

St. Paul

Team Electronics

110 Sixth AvenueS.

St. Cloud

Team Electronics

6413 Lyndale AvenueS.

Minneapolis

Team Electronics

1311 Fourth St. S.E.

Minneapolis

Team Electronics

Maplewood Plaza

3000 White Bear Avenue

Maplewood

Team Electronics

Madison East

Mankato

Team Electronics

310 Grant Avenue

Eveleth

Team Electronics

Har Mar Mall

2100 N.Sneiling Avenue

St. Paul

Computer Depot

3515 W. 70th Street

Minneapolis

MISSOURI

Team Electronics

Biscayne Mall

301 Stadium Blvd.

Columbia

Electronic Components Intl.

1306-B South Hwy 63

Columbia

MONTANA

Team Electronics613 Central AvenueGreat FallsTeam Electronics1208 W.KentMissoula

Computers Made Easy415 MorrowBozeman

NEBRASKA

Team Electronics

148 Conestoga Mall

Highway 281 & 13th Street

Grand Island

Team Electronics

2055 "0" Street

Lincoln

Team Electronics

304 S. 72nd Street

Cedarnole Shopping Center

Omaha

Team Electronics

Bel Air Plaza

12100 W. Center Road

Omaha

Team Electronics

Sunset Plaza Shopping Center

Norfolk

Team Electronics

The Mall

1000 S. Dewey

North Platte

NEW JERSEY

Computerland2 De Hart StreetMorristown

NEW YORK

Computerland

1612 Niagara Falls Blvd.

Buffalo

Computerland

225 Elmira Road

Ithica

Co-op Electronics

9148 Main Street

Clarence

NORTH DAKOTA

Team Electronics

2304 E. Broadway

Bismarck

Team Electronics

West Acres Shopping Center

Fargo

Team Electronics

150311th Avenue N.

Grand Forks

Team Electronics

20911th Avenue S.W.

Minot

Team Electronics

109 Main Street

Williston

OHIO

The Data Domain1932 Brown StreetDayton

OKLAHOMA

Team Electronics

1105 Elm Street

Stubbeman Village

Norman

Team Electronics

Crossroads Mall

7000 Crossroads Space 2010

Oklahoma City

Team Electronics

Penn Square Shopping Center

Penn Square

Oklahoma City

Team Electronics

1134 Hall of Fame Avenue

Stillwater

Team Electronics

5305 E. 41st

Southroads Mall

Tulsa

Team Electronics

Woodland Hills Mall

7021 Memorial

Tulsa

Team Electronics

Surrey Hills

Yukon

Bits, Bytes & Micros

1186 N. MacArthurBlvd.

Oklahoma City

High Technolgy

1020 W.Wilshire Blvd.

Oklahoma City

OREGON

Team Electronics

1913 N.E. Third Street

Bend

Team Electronics

2230 Fairground Road N.E.

Salem

SOUTH DAKOTA

Team Electronics

402 W. Sioux Avenue

Pierre

Team Electronics

1101 Omaha Street

Rapid City

Team Electronics

613 W. 41st Street

Sioux Falls

Team Electronics

41st Street & Western Avenue

Western Mall

Sioux Falls

SOUTH DAKOTA (continued)Team ElectronicsSioux Empire Mall4001 West 41st StreetSioux FallsTeam Electronics223 Ninth Avenue S.E.Watertown

TEXAS

Computerland

6439 Westheimer

Houston

Computer Shops, Inc.

13933 North Central

Dallas

The Computer Shop

6812 San Pedro

San Antonio

The KA Computer Store

1200 Majesty Drive

Dallas

VIRGINIA

Home Computer Center3312 Old Kirkwood DriveVirginia Beach

WASHINGTON

Team Electronics423 W. YakimaYakima

WISCONSIN

Team Electronics

3209 Rudolph Road

Eau Claire

Team Electronics

3365 E. Clairmont Parkway

Eau Claire

Team Electronics

3365 E. Washington Avenue

Madison

Team Electronics

7512 W. Appleton Avenue

Milwaukee

Team Electronics

3701 Durand Avenue

Elmwood Plaza Shopping Center

Racine

Team Electronics

3347 Kohler Avenue

Memorial Mall, Space H-4

Sheboygan

Team Electronics

5300 S. 76th

Southridge Center

Greendale

Team Electronics

Sunrise Plaza

Highway 8 East

Rhinelander

Team Electronics

1505 Losey Blvd. S.

Village Shopping Center

LaCrosse

Team Electronics

2207 Grand Avenue

Wausau

Team Electronics

3301-3500 S. 27th Street

Southgate Shopping Center

Milwaukee

Team Electronics

2619 Milton Avenue

Janesville

Team Electronics

1801 Marshall Street

Manitowoc

Team Electronics

7700 W. BrowndeerRoad

Northridge Center

Milwaukee

Team Electronics

396 Park Avenue

Oshkosh

WYOMING

Team ElectronicsHilltop Shopping Center207 S. MontanaCasper

If you would like to be an Apple dealer, call Gene Carter,Director of Dealer Marketing, 408-996-1010.

apple computer inc.

20863 Stevens Creek Boulevard, B3-CCupertino, California 95014

(408) 996-1010

Circle 357 on inquiry card.

€H/hil buua tniero, m *when tfpu can buu a mini for less}

MOST OF TODAY'S PERSONALCOMPUTERS are microcomputers.Compared to our minicomputer they are slowand expensive.

Our mini "the MINI 12™" has beenaround for three years. We've been steadilyselling it to industrial customers who haveproven its reliability. Only recently have wepaid much attention to the personalcomputing market. We've discovered that ourcomputer is simply better, and most interest-ingly, LESS EXPENSIVE.

NONE OF THE MICROCOMPUTERScan offer you the range of software availableto the MINI 12. Compatibility with the mostpopular minicomputer, DEC's PDP-8E, givesyou a vast library of programs. You will alsobe pleasantly surprised when you experiencethe speed and sophistication of ourEXTENDED BASIC compiler, or FORTRAN,ALGOL and FOCAL.

Unlike today's microcomputers, ourMini 12 is fully software supported by anadvanced operating system, including...filehandling text editor, symbolic assembler,

loaders, ODT(octal debugging technique),batch processor, and system utilities.

The MINI 12 comes with 8K of memoryand is easily expandable to 32K. Because theMINI 12 processes 12 bit words (instead of 8bit bytes) you need far less memory. For mostapplications... using our optional MINISTORE digital cassette system with theBASIC compiler, you will never need addanother single byte!

Because we want you to have thepleasure of using your minicomputer rightaway, our MINI 12 comes fully assembled,debugged and ready to plug in. It includes afull front panel, controller for eight digitaltape drives, and built-in serial interface plusother technical niceties like a binary loaderand monitor bootstrap in ROM memory.

Frankly, when compared with micro-computers, we're surprised at how good adeal we are. Write... or better yet, give us acall @303-794-1634 and let us help you get itall together!

TLF

r Post Office Box 2298, Littleton, Colorado 80161, Telephone 303-794-1634

PDP-8E and Focal are Trademarks of Digital Equipment Corporation

Circle 358 on inquiry card.

DeskTopWonders

( START J

QUANTITY OFFIRST ITEM

QUANTITY TIMESLIST PRICE

SUBTOTAL

QUANTITY OFLAST ITEM

TIMES LIST PRICEOF LAST ITEM

SUBTOTAL

GRAND TOTAL

GRAND TOTALTIMES DISCOUNT

SUBTRACTDISCOUNT FROMGRAND TOTAL

STORE RESULTAS NET INVOICEAMOUNT

ADD

SHIPPING COSTS

RESULT IS TOTALAMOUNT OFINVOICE

( STOP J

How to Write

an Application Program

William B Jenkins643 S Rte 83Elmhurst IL 60126

Figure 1: Basic flowchartoutlining the procedurefor completing an invoice.This is a first step in de-tailing precisely what theprogram should do.

The Texas Instruments SR-52 is a veryimpressive machine for its size. Several dif-ferent libraries of programs are providedthat include engineering, finance and gamesapplications. The game programs do, ofcourse, provide the easiest way to impressyour friends with the power of the SR-52.This is no different from using game pro-grams with any computer system. For per-sonal use, though, games can quickly losetheir glamour. When this happens, it is timeto learn how to program.

As the owner of a small business, thereare at least two tasks which consume a fairamount of my time. One is payroll and theother is invoice preparation. Of the two,invoice preparation is the easiest programto start with, although both programs offergood opportunities to learn many of theintricacies of programming. These tech-niques also provide a practical way of learn-ing general programming methods. Theresult is the development of skills thatinclude analyzing the problem and design-ing a logical way (flowchart) of identifyingthe best method for solving the problem.Next comes the conversion of the flowchartto the program language that your machineuses. To do this, let's start with the prob-lem of developing a program to help prepareinvoices.

Invoice Program

The first step is to think out what youwould do to manually prepare an invoice.There are several ways of doing invoices.We are manufacturers of retail productsand sell various quantities of many differ-ent items. Our invoices show the suggestedlist price for each item. After the items

are totalled, a discount is calculated andsubtracted from the total. The result is thenet amount that the customer pays. Thereare other costs, such as shipping charges,which are also added. Figure 1 shows a flow-chart for this first step.

Making a flowchart for this first stepmay seem to be unnecessary. What it doesis give you a graphic description of the stepsinvolved. From this, some of the next stepsbecome more obvious. For example, in aninvoice, we multiply one item by anotherand save the total. This basic step is repeatedfor as many items as required. This type ofrepetition is one of the things a computerdoes best. In the same way, it is the verything that bores a human fastest.

The end steps require adding the indi-vidual totals and getting a grand total.The remaining steps are straightforwardarithmetic.

The initial conclusion (one which we sortof knew from the start) is that this problemlends itself to solution by computer.

We will add one more set of calculationsso that the final program can handle asecond class of merchandise that does nothave any discount applied. This additionis similar to the steps shown in figure 1, andwe will include it in our next reiterationof the design.

SR-52 Features

What we have done so far has been inde-pendent of the system that we will be using.At this point, we have to learn a little aboutthe specific hardware.

The SR-52 allows programs to be inputusing the calculator keyboard. The indi-vidual keys could be considered as a set of

18

Photo 1: SR-52 programmable calculator.

notion of how the SR-52 can do the jobfor us. Now we have to get a little closerto the SR-52 to know exactly how to trans-late our flowchart to key sequences.

Our program should be easy for a non-technical person to use. This means thatentering the data should use very few steps.The program should do most of the workuntil the problem (invoice) is complete. Tohelp accomplish this, the program willbe written to use the optional SR-52 printeras a recorded output. The printer, shown inphoto 2, in addition to providing a hardcopy output, actually makes program devel-opment easier. By printing desired resultsas they occur we can avoid using too manyof our precious 224 program steps to storeand then later recall results. In some cases,programs that would be too long, morethan 224 steps, without the printer can be.handled on the SR-52. Additionally, sincethe printer can be operated under programcontrol, some limited data formatting canbe accomplished. Last of all, the printerallows the user to verify the accuracy ofthe data input.

op codes for a high level language inter-preter, with each key performing a set offairly complex operations. The SR-52provides several categories of key functions.It has the conventional arithmetic functions:+, —, x, -r; and a set of memory functionsthat allow you to manipulate the 20 avail-able memory areas. These functions includeSTORE, RCL (recall), SUM, PROD (prod-uct), and EXC (exchange). Trigonometricfunctions, Sin, Cos, Tan and other standardfunctions such as x2, yX; and tyx are alsoincluded. An important set of keys are thosethat allow the SR-52 program to makedecisions. These can perform tests onprogram data in order to determine what thenext program step might be. The SR-52 isshown in photo 1.

The SR-52 has a maximum of 224program steps. To program the machine,you simply take the list of key sequencesand push the buttons in that sequence untilyou are done. This is a little oversimplified,but it really isn't much more than that.If your program has been properly designed,the SR-52 will be able to do all of the fingercrunching work when you put in the data.When you are satisfied with the program,you can save it on a magnetic card forfuture use.

Zeroing In

What we have done up to this pointhas given us a logical approach to the pro-gram solution of our problem, and an overall

Invoice Program Development

In the invoice problem we are workingon, we can see from the initial flowchartthat we are going to use several basic SR-52functions. These are data storing, recalling,multiplying, subtracting, adding andprinting.

We will now expand our initial flowchart

Photo 2: Printer attachment for SR-52.

19

( RUN )

HOUSEKEEPING

CMS, CLR.FIX 2,HLT

STO 03, PRT,PAP, HLT

"D"-- SHIPPING

STO 04,HLT

Figure 2: Expanded flow-chart for invoice programincludes net priced items.The actual programmingsteps for the SR-52 arealso noted within theboxes. The circled num-bers indicate the orderin which the program waswritten and refer backto the text.

"A"--QUANTITY

FIX 0, STO 01, PRT,FIX 2, HLT

"B"--LIST PRICE

STO 02,PRT

"A"X"B"- LINE TOTAL

RCL A, X,B,',PRT, SUM 19, HLT

0

©©

0©©

-GRAND TOTAL LIST ITEMS x DISCOUNT ' NET

(RCL I9,PRT,X,( I -C)), PRT,- RCL 19,= , + /-, PRT, PAP, STO 19, HLT

Q

YES

1

i

1

m

"A"--QUANTITY

FIX 0, STO 01, PRT,FIX 2, HLT

"E"--NET PRICE

STO 05,PRT

"A"X"E" . LINE TOTAL

RCL A,X,B,-,PRT,SUM 19, HLT

Y

ES / N

k

1

y

NO

1

B'--NET PRICE TOTAL * SHIPPING ■ INVOICE TOTAL

PAP, RCL 19, PRT, + ,RCL D, PRT, " , PRT, PAP, PAP,PAP

START OVER

RST

00

©

0

to include the actual steps we will ask theSR-52 to do for us. In this expanded flow-chart we have added the second categoryof merchandise we want to price. One otherdesign consideration that we want to includeis the manner in which we will have theuser input the data. The SR-52 has a set offive buttons that are labeled A, B, C, D andE. These same buttons can be set for asecond use which adds five more functionslabeled A', B', C', D' and E'. These buttonsare called "user defined keys." Dependingon the way you write the program, a givenuser button will do whatever you want.For our use, we will want to use these but-tons to define to the program what ourdata means. Table 1 shows the definitionwe have given to these keys for this program.Looking at the work the SR-52 does when auser defined key is pushed gives you an ideaof the power of the machine.

To get the invoice data into the program,the user keys in the numbers on the key-board and presses the appropriate userdefined key.

Now, we can expand our initial flow-chart to what we see in figure 2. The num-bers in circles adjacent to various boxesare the order in which we will write theprogram sequence. We will refer to thesenumbers in the following discussion ofthe new flowchart.

1. This is some of the housekeepingthat any program should have. Itassures you that the initial condi-tion of the calculator or computeris what you expect it to be. Here wewant to CLR (clear), CMs (clear datamemories), FIX 2 (fix the decimalpoint of the computations to twoplaces) and HLT (halt). We want themachine to stop and wait for us toinput data.

2. In this step we are going to definekey C to mean discount. We aregoing to STO (store) it in data mem-ory location 03, print what we en-tered, advance the paper one lineand HLT again.

3. Key D is defined to be the shippingamount of the order; it is stored indata memory 04. We then halt. Wecould have printed this value, but Ichose not to because it will be usedat the end of the program where,if it is the wrong amount, not muchharm is done.

4. Key A is the quantity of merchan-

Continued on page 152

20

THE COMPLETE COMPUTER

LookToThe North Star HORIZON Computer.

HORIZON™— a complete, high-performance microprocessorsystem with integrated floppy disk memory. HORIZON isattractive, professionally engineered, and ideal for business,educational and personal applications.

To begin programming in extended BASIC, merely add a CRTor hard-copy terminal. HORIZON-1 includes a Z80A processor,16K RAM, minifloppy™ disk and 12-slot S-100 motherboardwith serial terminal interface —all standard equipment.

WHAT ABOUT PERFORMANCE?

The Z80A processor operates at 4MHZ —double the power ofthe 8080. And our 16K RAM board lets the Z80A execute atfull speed. HORIZON can load or save a 10K byte disk programin less than 2 seconds. Each diskette can store 90K bytes.

AND SOFTWARE, TOO

HORIZON includes the North Star Disk Operating System andfull extended BASIC on diskette ready at power-on. Our BASIC,now in widespread use, has everything desired in a BASIC, in-cluding sequential and random disk files, formatted output, apowerful line editor, strings, machine language CALL and more.

EXPAND YOUR HORIZON

Also available —Hardware floating point board (FPB); addi-tional 16K memory boards with parity option. Add a seconddisk drive and you have HORIZON-2. Economical serial andparallel I/O ports may be installed on the motherboard. Manywidely available S-100 bus peripheral boards can be added toHORIZON

QUALITY AT THE RIGHT PRICE

HORIZON processor board, RAM, FPB and MICRO DISK SYS-TEM can be bought separately for either Z80 or 8080 S-100 bussystems.

HORIZON-1 $1599 kit; $1899 assembled.

HORIZON-2 $1999 kit; $2349 assembled.

16K RAM—$399 kit; $459 assembled; Parity option $39 kit; $59assembled. FPB $259 kit; $.559 assembled. Z80 board $199 kit;$259 assembled. Prices subject to change. HORIZON offeredin choice of wood or blue metal cover at no extra charge.

Write for free color catalogue or visit your local computer store.

North Star ^k Computers

2465 Fourth Street • Berkeley, California 94710 • [415} 549-0858

Circle 359 on inquiry card.

y ^

m

■

Photo I.

About the Cover

Photo 2.

... and Some More of the Same

Photo 3.

Photo 4.

The artwork on our cover this month andthe samples found on the following pageswere created by Thomas A Defanti andGuenther Tetz of the University of Illinoisat Chicago Circle. The system used to createthese works used a high level "GraphicsSymbiosis System" (acronym: GRASS)grafted onto a PDP-11/45 computer witha Vector General 3DR display scope, a datatablet and 30 channels of analog input andoutput for interactive control of the pro-grammed parameters of the display. Con-sider it in some sense the visual equivalentof a Moog synthesizer's audio functions.A more complete description is found in apaper entitled "The Digital Component ofthe Circle Graphics Habitat" which waspublished on pages 195 to 203 of the pro-ceedings of the 1976 National ComputerConference (a monstrously thick book avail-able from AFIPS, the American Federationof Information Processing Societies, 210Summit Av, Montvale NJ 07645).

Artists DeFanti and Tetz sent in severalslides of their work as part of the art contestwe ran last year in the September 1976 issueof BYTE. They report that work is pro-gressing on a microprocessor based version

Photo 5.

Photo 6.

Photo 7.

of GRASS, work which may result in someheady progress in low cost graphics art usingcomputers.

Around the BYTE offices, we tend tothink of the cover as the "aquamarine-print"of the design of a house for the inhabitantsof Arcturus IV. Whether this is true or notis open to some question.

The other photographs also came to usuntitled, so we list them simply as photos1 thru 8. Why? Well, it occurred to us that abit of informal fun (and perhaps a bit re-vealing as well) could be had by leaving it toreaders to suggest appropriate titles. Watchthe letters columns of future issues to seewhat comes of this request for titles."

>X

^\x\^

I r

ntfj

ill

/»',*•/

■

.' ■

^

^SKS

■ f.

'Kl#

1 ■ ■

■jfc*vi'

f<Wffl

■'*»• * ■ ■

PmTj

1 1 a ■ ■ ;j (. i

jS

£2fa

■

H>

Rff

■1

■

■

Relocatability and the Long Branch

Robert J Borrmann PhD

Associate Professor of Electrical Engineering

Manhattan College

RiverdaleNY 10471

A position independent relocatable pro-gram is a program that can be moved to anyconvenient place within your memory space,and executed without any changes. One ofthe very nice things about the Motorola6800 instruction set is the relative addressingmode used in its branch (BRA) and branchto subroutine (BSR) instructions; instruc-tions using this addressing mode are inher-ently relocatable without patching.

To illustrate relative addressing considerthe 6800 instruction: 20 35 (hexadecimal).Hexadecimal 20 is the code for the branch(BRA) instruction, so 20 35 means jump tothe address that is hexadecimal 35 bytesbeyond the instruction which follows thisbranch instruction. Thus, if a program ini-tially occupies hexadecimal locations 0080to 0200, and includes at location 0100 theabove branch instruction, this causes theprocessor upon encountering it to jump tolocation 01 37. If the program is now copiedfrom its original location 0080 to 0200 intoa new location 1580 to 1700, the branchinstruction (now at location 1600) willcorrectly cause the processor, upon encoun-tering it, to jump to location 1637.

Unfortunately, the 6800's branch instruc-tions allow only one byte to be used as therelative displacement. This allows a maxi-mum branching range of only hexadecimal+7F (+ 127 decimal) to hexadecimal —80(—128 decimal) bytes. What do you do ifyou have need for longer-range branching, asis the case in larger programs? If you use thejump (JMP) or jump to subroutine (JSR)instructions, which include absolute addressreferences, the program is no longer relocat-able without modification. It loses the posi-tion independence feature which makes ageneralized program read only memorypossible.

One solution to the problem of writinglarge relocatable programs is provided by thelong branch (LONGBR) and long branch tosubroutine (LONGBS) subroutines describedhere. Although the listings show startingaddresses of 278E and 276B respectively,both routines are completely independent ofmemory address space location. They can beused in two ways.

The first way is to incorporate bothroutines into your own system monitor,which presumably occupies a fixed locationin your memory space. This is the way I usethem. Then, to execute a long branch withina program you are developing anywhere inmemory, you simply execute a jump tosubroutine LONGBR, and follow the JSRLONGBR instruction by a 2 byte adderwhich indicates how many bytes ahead or

Listing 1: A symbolic assembly language and object code representation of the long relativebranch calculation routines for the 6800 processor. The addresses for the routines are pickedbased on the author's systems software. Since the routines are entirely position independent,they can be relocated without any modification, provided the code does not overlap the tem-porary storage area for the index register (XSTOR), which is referenced absolutely. The boxesat the right of the commentary in the listing signify the contents of the stack area. The bluecolor identifies contents based on values present on entry to the routine, and the red color iden-tifies contents computed during the operation of the routine.

26

Hexa- Hexa-decimal decimal

Address

Code

Label

Op

Operand

Commentary

276B

DF 20

LONGBS

STX

XSTOR

[save X for later]

276D

30

TSX

X :=S + 1;

276E

OF

SEI

[turn off moskab

Stack Area Manipulations

I S

~] | WBRAH

276F AE 00

2771

2772

277327752776

2777

2779

277A

277B

0909

AF 00

3131

AF 02

35

3631

DEX

DEX

STS 0,X

INS

INS

STS 2,X

TXS

APUSH PSHAINS

277D 32

277E

EE 00

2780

AB 01

2782

36

2783

34

2784

32

2785

A9 00

LDX 0.XADDA 1,X

DES

PULAADCA 0,X

S := @X [would be return address] ;

X := X — 2 [point to location of

WBRA copy] ;

[copy WBRA];S := S + 2 [calculate actualreturn address] ;

[patch the stack] ;

S := S + 2 [point stack

to WBRAL for PULl;

A :=WBRAL;

X :=WBRA (point to OFFSET] ;LBA : = WBRA + OFFSET [cal-culate relative branch

I WBRAH

I XI II I

I X

| WBRAH | | WBRAL|

WBRAH

I WBRAH

| OLOA I | WBRAH I |WBRAL| [ RAH

OLDA | |WBRAH I [WBRALI | RAH

OLDA I I WBRAH I |WBRAL | Q? AH_

I OLDA I I WBRAH I | LBAL

target and insert in stack region];

2787 36

2788 34

A := WBRAH,[complete the sum] ;

[finish patching stack] ;

DLDA WBRAH LBAL

| WBRAL |

[WBRAL|| OLD |

IWBRA3B |

OLD |

|WBRAL|!

OLD |

|WBRAL| |

OLD |

IWBRAL||

OLD |

GRAO I OLE

ral i r~o

RAL

I RAL | | OLD I

RAL | ["0"

I S

DES

2789

32

PULA

[restore old A];

278A

DE 20

LDX

XSTOR

(restore old X] ;

278C

0E

CLI

(reenable interrupts)

278D

39

RTS

[go to address LBA]

278E

DF 20 LONGBR STX

XSTOR

Isave X for later] ;

2790

30

TSX

[set up for

2791

DF

SEI

branch without

2792

20 E6

BRA

APUSH

return] ;

rLBAH~1 I LBAL |

1 OLDAj ■■i [LBAL,| |^^| |HH IPIP I

I S

Fold a | |~~lbaT'~| | lbal | [""rah | | ral | | old |^^^^ ^^^^ i s ^^^^ ,^___

I OLDA I [ LBAH | | LBAL | | RAH | [_R L~] | OLD |

The following symbols are used for the values in the stack area:

WBRA = "would be branch address, " a 16 bit value with high order byte WBRAH and low order byte WBRAL. This is thepointer to the relative branch OFFSET which follows the /SR to LONGBR or LONGBS.

OLD = old contents of stack, unchanged by these routines.

RA = "return address, " a 16 bit value with high order byte RAH and low order byte RA L, computed by these routines.

LBA = "long branch address, "a 16 bit value with high order byte LBAH and low order byte LBA L, the computed targetof the long branch to subroutine or long branch operation.

OLDA = old value of the A accumulator, saved on the stack during computations.

The index (X) register and stack (S) values pointing to the stack area are noted above the content boxes in this representation.

27

behind you want to branch. For example, ifyou want to long branch from location 01 00to 0345, you would need the followingcode:

0100 BD 27 8E0103 02 42

JSR LONGBRFDB $0242

The target address is computed by addingthe offset (hexadecimal 0242) to the addressof the byte following the JSR instruction(hexadecimal 0103):

02420103

0345

To execute a long branch to subroutine theprocedure is similar except that you jump tosubroutine LONGBS instead of LONGBR.For example, if your program is at hexa-decimal location 0240 and you want tobranch to a subroutine that is located at0050, you would need the following code:

0240 BD 27 6B JSR LONGBS0243 FE 0D FDB $ FE0D

where as usual the target address 0050 is thesum of the offset (FE0D) and the addressof the byte following the JSR instruction(0243). Upon encountering the JSR LONG-BS instruction at 0240, the processor wouldgo to LONGBS for some massaging ofdata on the stack, and from there would goto your subroutine at 0050. Upon enteringthe subroutine at 0050, it will have the samevalues of accumulators A and B, and indexregister'and stack pointer, as it had whenencountering the JSR LONGBS instructionat 0240. The condition flags would ingeneral be different, however. Upon return-ing from your subroutine, execution wouldresume with the instruction at location0245.

When relocating a program using JSRLONGBR or JSR LONGBS instructions youwould, of course, leave such instructionsunchanged (assuming that your monitorincorporating the LONGBR and LONGBSroutines was not itself being relocated). Ifthe location of each long branch or longbranch to subroutine call is being changedby the same amount as the target addresses,the program will work the same in the newlocation, just as was the case with ordinaryrelative branches.

The second way to use the LONGBR andLONGBS routines is to build them into thelong program you are writing. WhileLONGBR and LONGBS are themselves re-locatable, there remains the problem of

branching to these subroutines from alllocations within the program that will re-quire long branching. This branching can beaccomplished by installing "stepping stones"thoughout your program which allows anylocation within your program to branchfrom "stone" to "stone," and therebyfinally get to these subroutines.

To illustrate, suppose a program occupiesmemory locations 0200-04CF, includingLONGBS at 0200 and LONGBR at 0223.Then the stepping stones might be:

027E 20 80 LBS1 BRA LONGBS0280 20 A1 LBR1 BRA LONGBR

02FC20 8002FE20 80

037A20 80037C20 80

03F8 20 8003 FA 20 80

0476 20 800478 20 80

LBS2 BRA LBS1LBR2 BRA LBR1

LBS3 BRA LBS2LBR3 BRA LBR2

LBS4 BRA LBS3LBR4 BRA LBR3

LBS5 BRA LBS4LBR5 BRA LBR4

To execute a long branch from anyplacewithin the program, simply execute a branchto subroutine (BSR) to the previous LBRnstepping stone. To execute a long branch tosubroutine, simply execute a BSR to theprevious LBSn stepping stone. Thesebranches are then completely relocatable.(Of course this technique of stepping stonescan be used directly just as well, withoutLONGBS or LONGBR; but one chain ofstones has to be devoted to each branchtarget. If more than two subroutines [orbranch targets] must be used, less code willbe required if LONGBS [or LONGBR] isused.)

How It Works

The operation of the LONGBS sub-routine can be understood by a study of theprogram listing and comments shown infigure 1. The entries at the extreme right ofthe listing show the contents of the stack

28

region of memory at the conclusion of eachstep, which changes the stack contents orthe pointers (index register X or stackpointer S) used to keep track of positionwithin the stack.

To help understand the operation of theprogram let us consider an example in whichthe processor encounters the following in-struction sequence:

0736 BD 27 6B0739 FC 1A073B 86 02

JSR LONGBSFDB $FC1ALDA A #$02

In executing the JSR instruction at 0736,the processor places the address 0739 (whichwould ordinarily be the return address) ontothe stack, and jumps to 276B. However,0739 as used here is not the actual returnaddress, since it is the location of the 2 byteoffset which will be used to form the actualtarget address. Thus, 0739 is more properlycalled the "would-be" return address(WBRA). Upon entering the subroutineLONGBS, then, the stack looks as follows:

IWBRAH] IWBRALirOLDl

(07)

(39)

where SP with the arrow denotes the posi-tion in the stack being pointed to by thestack pointer, WBRAH is the high order byteof WBRA, WBRAL is the low order byte ofWBRA, and OLD denotes stack contentsbefore executing the JSR LONGBS instruc-tion; these "old" contents of the stack willnot be disturbed.

The first line of subroutine LONGBSstores the values of IX away for laterretrieval. I happened to use low core loca-tion 0020 to 0021 for this purpose, butany available programmable memory loca-tion can be used instead. (You may prefer touse a spare 2 byte location in the program-mable memory devoted to MIKBUG inmany systems.) The next six lines of codetransfer to IX the burden of keeping track ofour stack location, while the stack pointeritself is used to copy the would-be returnaddress into two additional stack locations.Since we are fooling with the stackpointer, it is necessary to prevent interruptsfrom occurring at this time. The SEI (setinterrupt mask) locks out the maskableinterrupts until further notice. We now havethe following stack picture:

IX

l ^^^^^

|WBRAH HWBRALllWBRAH [| WBRAL | fOLP]

(07) (39) (07) (39)

The next three lines (2775-2777) correct thewould-be return address to the actual returnaddress 073B:

IX

|WBRAH|[WBRAL]|RAHirRAL[|OLD|

(07)

(39)

(07) (3B)

In line 2779 the stack pointer is returned toits usual role of keeping track of position inthe stack. Since accumulator A is to be usedfor some data manipulation in subsequentinstructions, its original value (the value ithad when JSR LONGBS was executed) isstashed away on the stack for later retrieval.After executing this instruction at PSHA thestack appearance is:

SP

I

| | |origa||~wbrah|[wbral ||rah ||"ra"L~1|old I

(07) (39) (07) (3B)

The next ten lines (277B to 2787) cause thewould-be return address WBRA to be in-creased by the value of the 2 byte adder; theresult is the target address, denoted byLBAH (long branch address high order byte)and LBAL (long branch address low orderbyte).

The appearance of the stack now is:

SP

1 ORIGAlfTJATniLBALirRAHirRATIIOLDl(03) (53) (07) (3B)

The orginal values of accumulator A and ofindex register IX are now retrieved, inter-rupts are reenabled, and the processor jumpsto 0353 by executing the RTS (return fromsubroutine instruction). Notice that becauseof the manipulation of the stack duringsubroutine LONGBS, the processor does notreturn to the program section which calledit; instead it jumps to the target address(0353 in this case), because the effect ofexecuting the RTS instruction is to placeinto the program counter the 2 byte addresspulled from the top of the stack.

When the subroutine which begins at0353 has been finished, the processor exe-cutes the RTS instruction which ends it, andthis returns the processor to the actualreturn address 073B.

The operation of the long branch routineLONG BR is similar, except that the RAHand RAL bytes are not needed or wanted.Thus, the initial part of LONGBS whichduplicated the value of WBRA on the stackis bypassed."

29

LanguagesFonum

Languages Forum is afeature which is intended as aninteractive dialog about thedesign and implementation oflanguages for personal com-puting. Statements and opin-ions submitted to this forumcan be on any subject relevantto its purpose of fosteringdiscussion and communicationamong BYTE readers on thesubject of languages. We askthat all correspondents supplytheir full names and addressesto be printed with their com-mentaries. We also ask thatcorrespondents supply theirtelephone numbers, which willbe printed unless we are expli-citly asked to omit them.

Defining LIL, a

Little

Interpretive

Language

LOW MEMORY

?s

SOFTWARE STACK

HIGH MEMORY

<

Figure 1: How memory is arranged in the LIL language.

code

C8 (hex) = control byte

RADL /reference address of

RADH \descriptor of COUNT

RADL /reference address of

RADH \descriptor of numerical constant 1

OAR offset to address of routine "+"

OAR offset to address of routine "INTO"

RADL /reference address of

RADH \descriptor of COUNT

OAR offset to address of routine ";"

reference table

DATA-+-DES .DADH'

<

^DADL-+-DES .

data for numerical constant 1

descriptor for numerical constant 1 (integer 1 byte)/data addressMor COUNT

descriptor of variable COUNT (say integer 3 bytes)

software stack-^DATAl

DATA data for COUNT

DATA J

Listing 1: Linkages for thesource statement COUNT+1 INTO COUNT; in theLIL language.

COUNT 1

/ /

Jack Cluff

34-57 73rd St

Jackson Heights NY 11372

It is with great interest that I read the dis-cussion by Donald J Stavely in the April1977 Technical Forum. Mr Stavely hasarticulated a concept in which I have beengreatly interested for the past severalmonths, and in which I have invested a cer-tain amount of work.

LIL, Little Interpretive Language, is apseudocompiling language whose compiledcode could be run on any microcomputerwhich has a LIL loader and a LIL inter-preter. LIL is still in a state of flux, but maybe spoken of in general terms. It is to consistof three separate programs: the compiler,the loader and the interpreter.

The compiler is to accept character key-board input and build three structures: thesymbol table (to be discarded at the comple-tion of compilation) which contains thenames of objects, the reference table whichcontains descriptors of objects and thememory addresses at which those objectsmay be found, and the compiled code whichcontains 2 byte descriptor addresses and 1byte offsets to a table of function routinesused by the interpreter.

The loader is to load reference tables andcode into the proper areas of memory forprocessing by the interpreter, and is tomodify all initial linkages established bythe compiler so as to agree with the newpositions of reference tables and code.

The interpreter is to interpret onlyaddresses of descriptors and offsets tofunction routines. The interpreter is toallocate memory for data storage on asoftware stack; the hardware stack is tobe used for data manipulation such asarithmetic functions.

The linkage for the source statement:

COUNT+1 INTO COUNT;

can be represented as jn listing 1.

Control bytes serve the useful purposeof defining which of the following unitsof code are address pairs and which are sing-ular offsets. The control byte in the previousexample links to the code as follows:

0 1 0

INTO" COUNT

(X = don't care)

Continued on page 181

30

a

corporation

•

i

I

i

•

The most cost effective

products for your

microcomputer.

RM6464K bytes

THE EXTENSYSRM64 MEMORYBOARD providesthe most costeffective systemmemory found in the

industry. The RM64 provides this '"""W^

because of our low cost per byte when

compared to our competition plus the increased reliability of asingle board over multiple boards containing less memory. Theboard is S-100 bus compatible making it usable in over a dozendifferent microcomputer systems including ALTAIR and IMSAI.The RM64 is available in three configurations: 32K, 48K or 64Kbytes of memory all on ONE board. The board is completelyassembled, checked out and burned in for at least 50 hours priorto shipment. This complete testing procedure allows Extensysto provide a one year warranty on parts, labor and materials(assuming no misuse of the board occurs).On board hardware is provided for:

■ Individual memory bank address selection in 8K byteincrements;

- Complete dynamic refresh logic without loss of processingefficiency while programs are running;

- Board select logic which allows more than one 64K byte boardper system;

- S-100 bus compatibility including on-board voltage regulator;

■ Memory overlap which allows memory sharing the same addressspace to coexist in the same system;

Write pro-tection in16K blocks; and

Fully socketed for 64K,allowing 32K and 48K versionsto be upgraded at a later date.

Delivery of the RM64 is 15 to 30DAYS upon receipt of order. Prices for the RM64 include shippingand handling prepaid in the continental United States.

EXTENSYS Corporation is also announcing several other new highlycost effective products. These include a total floppy disk systembased around File I/O board and a multiprocessor operating system.The other product, which interfaces with the RM64 memory boardto create a megabyte or more of memory and adds full DMAcapability to the File I/O board, is a Board Select/DMAboard. Both of these products are S-100 compatible.

Circle 360 on inquiry card.

I " ■"

Contact your local computer storeor order directly from EXTENSYS

Please place my order for the following:QTY DESCRIPTION

RM64-32K byte board @ $ 895 ea.

- RM64-48K byte board @ $1195 ea.

RM64-64K byte board @ $1495 ea.

" extensys

iount Kmmmmdcort

B-4

Subtotal ^—^—

California residents add 6Vi% tax

TOTAL

Shipping and handling prepaid in continental United States

NAME

ADDRESS-CITY

rcorporation592 Weddell DriveSunnyvale, California 94086(408)734-1525

Please check method of payment:

Check Enclosed

BankAmericard No

expiration date

Master Charge No.

— expiration date

PHONE0NCLUD6 AREA CODE),

Continued from page 12

and hazardous 117 VAC power tracerunning long distances on a power board.The big boys have their equipmenttested and listed by UL. It's a necessityif they expect commercial sales. If per-sonal computer manufacturers want thekind of mass market you've been pre-dicting in BYTE, they will have tofollow suit. This stuff moves in interstatecommerce, and if vendors sell a shockor fire hazard to some naive user, theycan expect to be spanked by the Feds,something that tends to be a corporatehurt, and will damage this fledgling partof the computer industry. All the manu-facturers who haven't, should clean uptheir acts before the Feds force some-thing distasteful on them.

William R Hamblen

946 Evans Rd

Nashville TN 37204

A NEW SUBSCRIBER COMMENTS

How long have you been publishingBYTE? Are any back issues available, orreprints of articles in back issues? Doyou publish an index to previous issues?

Could you recommend a book, orbooks, that are readily available, or listtheir sources on microcomputer softand hardware, particularly software(from machine language level to highlevel programming languages)?

Daniel Owen Jenkins VIII

Box 201 RD#1 Clinton Grv

Weare NH 03281

We have been publishing since Sep-tember 1975. No back issues are avail-able; however, The Best of BYTE Vol-ume I at $12.95 contains most of theeditorial materials from issues I to 12.An index is available for Volume I: senda self-addressed stamped envelope.

FASTER MULTIPLY?

PRODUCTS NEEDED

The following are some things wethink are needed in this field:

1. A real time clock-calendar boardfor the S-100 bus with an IO port andrecharging circuit which would displaytime, date and day of week on videomonitor or other peripheral. Calendarwould be at least 200 year. Would acceptinput to start clock or reset it, such as a60 Hz line signal, or a time signal fromWWV, or a manual signal. Could be pro-grammed (EPROM) to exhibit holidaysand special dates or times, or emit asignal to initiate some action at a presenttime and date. Would be designed to behighly resistant to transients in powersupply. Would have 12 hour AM-PM or24 hour switch selectable option, and alocal standard time or daylight savingstime or Greenwich time switch selectionfeature.

2. An ASCII-EBCDIC converterboard for the S-100 bus.

3. A generalized converter board forthe S-100 bus, under software control,which could enable the user to readilyrecode keyboards, printers, and videodisplays with no more than a few key-strokes. Could be used as an ASCII-EBCDIC converter, or could converta keyboard from a standard QWERTYkeyboard into a Dvorak Standard key-board with a single command, or con-vert an ASCII into an APL or otherspecial character set keyboard.

4. A convention to standardizethe bus for the coming 9900 family of16 bit processors before different busesproliferate.

5. A directory or clearinghouse ofresources in this field, so that personswishing to contact others doing or ableto do things of a certain kind coulddo so.

Jon D Roland

Micro Mart

1015 Navarro

San Antonio TX 78205

ENTRY:

A=multiplier; E=

mu

Itiplicand

ENTRY:

A, E, C=unchanged

B, D=0; HL=product

Address

Op Operand

Label Mnemonic

Commentary

006000

006 010

MVI B010

Set B register for count

006002

041 000 000

LXI H 000000

Clear product registers

006005

124

MOV D, H

Also clear D

006006

007

LOOP RLC

Rotate left

006007

322 013 006

JNCSKIP

Skip on zero bit

006012

031

DAD D

If nonzero, add multiplier

006013

005

SKIP DCR B

Check counter

006014

310

RZ

Exit if last time

006015

051

DAD H

Arithmetic left shift of product

006016

303 006 006

JMP LOOP

Repeat

The quick and simple 1x1 byte multi-plication routine of Christopher Glaeser(July 1977 BYTE, page 142) can bemade even quicker and simpler by shift-ing the A register left instead of right.Using the RLC command instead ofRAR preserves the value in the A regis-ter. The E register is also not altered.Thus, both multiplier and multiplicand

are unchanged upon exit from the sub-routine. This is an advantage in mani-pulating arrays, etc.

See box for register status.The whole thing occupies only 16bytes.

Leonard Morgenstern

POB81

Rheem Valley CA 94570

COMMENTS ON SELECTRIC IOINTERFACING

As one who has designed an interfacefor both input and output between aSelectric 731 and my Z-80 system, I wasinterested to read Dan Fylstra's article"Interfacing the IBM Selectric KeyboardPrinter," June 1977 BYTE, page 46. Danis to be complimented on a very goodtechnical description, especially whencompared with the naive and often justplain inaccurate information which hasbeen published recently on this subject.

There are several supplementarypoints which may be of interest toBYTE readers:

1. Dan gives an excellent de-scription of the differences between aBCD and Correspondence coded 731 or735. But there are three distinct versionsof the Selectric which have been thoughtsuitable for use with a computer and thedifferences between them are also worthnoting:

a) The office Selectric is alight duty mechanism in the samesense in which the term is usedfor the Teletype Model 33. Itwon't fail for a long time but theoffice Selectric is less ruggedmechanically than the "heavyduty" mechanisms designed foruse as computer IO devices. Inmy opinion, little reason existsto attempt to convert an officeSelectric for computer use sincea mechanism designed specificallyfor that purpose is available at acomparable price.

b) The heavy duty SelectricIO mechanism was marketed byIBM in two basic forms. TheSelectric IO mechanism itself(without any magnets, switches,wiring harness or covers) wasmade available to original equip-ment manufacturers (OEMs) tobe incorporated into non-IBM ter-minals such as the Dura, Itel,Anderson Jacobson, Datel, etc.The designation for these mech-anisms was 745 (15 inch carriage).They are often marked SER(meaning special engineering re-quest) to denote modificationsmade by IBM at the manufac-turing firm's request. These OEMsinstalled their own magnets,switches and interface electronicsto achieve their own individualproducts. Many of these are nowavailable on the surplus market.I have also seen some of these IOmechanisms which have been par-tially outfitted with IBM magnetsfor use as output printers only.Where OEM mechanisms havebeen used in a non-IBM product,IBM will service the Selectricmechanism only and not the mag-nets, switches or electronics.

c) The second basic form ofthe heavy-duty Selectric IO mech-anism is the one which IBM out-fitted for use as an electronicallydriven IO device by installing its

32

Ai

a

»1AK,

12>£HJK1N

1!

9 ^f\\*^

s^SP>w

gf

j^^^!^SN^k^

r

MPI Flexible Disk Series B51 is a new generation of 5V4"flexible disk products employing a 'band driven' head posi-tioner providing very fast, highly accurate access eliminating'hysterisis' A new generation of floppy's is born featuring:

Data Integrity Using the 'band drive' concept for precisehead positioning, better error rates are realized. Decreasedmechanical wear guarantees diskette interchangeability forthe life of the device.

Reliability The Series B51 uses 30% fewer components thancompetitive devices and together with the low power SchottkyTTL inherently provides you the user 10,000 hours MTBF andno preventative maintenance.

Low Cost Storage The Series B51 is very small. Its dimensionsare 3.25 x 5.55 x 8.0 inches and weighs only 3 lbs. Usingdouble density encoding techniques the device can storeup to 250K Bytes (unformatted). Single quantity price is $320.

The S100 Bus Controller Available to the hobbyist is theR100D intelligent double density controller compatible inarchitecture to the S100 bus and the Series B51 or its largerfamily member the Series B82. It features board micropro-cessor, DMA, simple macro commands, multiple sectortransfer, formatting, up to 4 drive control, and requires nooverhead software. Single quantity price is $299.Also available is a complete system featuring single or dualdrives, power supply, cabinet and a S100 Controller with adisk operating system. Single Drive System $699. DualDrive System $999.

MPI is your Company Follow the 'star' and you will get thebest price/performance buy in the market. For furtherinformation or dealer/distributor packages, call or writeKeith Ullal, Micro Peripherals, Inc., 8724 Woodley Avenue,Sepulveda, California, 91343 (213) 894-4076.

Bank of Americard MasterCharge Personal Check Accepted

Circle 397 on inquiry card.

MICRO PERIPHERALS INC.

own magnets and switches. Theseare the Models 73, 731 and 735(hereafter "73X") which are outof production in this country; I'mtold that they are still producedin Europe. The 73Xs were used asthe 360 console device, in MTSTs(with some wiring modifications)and were available to those whowanted a complete unit (lessinterface electronics) which IBMwould service. Current mainten-ance agreement rates for 73Xs areabout $150 a year. The 73Xscame in three flavors: BCD, Cor-respondence and MTST.

2. In considering which of thethree kinds of Selectrics to use with apersonal computer, the most importantissue is feedback. Each time a characteris sent to a Selectric mechanism (eitherby energizing magnets or by pressing akey), the cycle clutch is released; at theend of the print cycle, this clutch reen-gages to halt the cycle shaft after 180°of rotation. If a substantial volume ofprinting is to be done on a Selectric, thewear on this clutch becomes a seriousproblem. The only satisfactory solutionis to send the next character at a timeduring the print cycle when the currentcharacter has been "processed" by themechanism but before the cycle clutchhas reengaged. IBM calls this the "closedloop" mode of operation. Characterswhich are sent to the Selectric duringthis 3 ms window operate the mech-anism in its so-called "repeat cycle" inwhich the cycle clutch does not reengageand the maximum character speed is ob-tained. The timing required to operate inthis way must be derived from switcheswhich sense the state of rotation of thecycle shaft, the operational shaft andseveral other mechanism states such aswhether a carriage return or tab opera-tion has been completed. The timeinterval between successive charactersor machine operations depends on manyfactors and is not constant. A differentinterval is required not only for eachcharacter and each machine operation,but these intervals vary with the age andcondition of the individual mechanism.

There are two consequences of driv-ing a Selectric mechanism without thisfeedback system: the speed of outputis considerably reduced, in most casesbelow 10 characters per second becauseworst case timing delays must be intro-duced after each character or machineoperation; and wear on the mechanismincreases in proportion to the volume ofoutput. On these points, IBM comments:

Feedback contacts are timedto permit initiation of a "nextcycle" prior to the end of the"current cycle. " This avoids com-pletely stopping the machinebetween cycles and insures opti-mum hardware longevity by re-ducing the frequency of engage-ment and disengagement (underfull power) of the IO mechanicalclutches. . . .maximum speed,

reliability and longevity is pos-sible only with [the closed loop]mode of operation. . . .the 10should receive commands relativeto machine degrees [of shaft rota-tion]. Reliable operation CAN-NOT [emphasis in original] beguaranteed when an OPEN LOOPmode of operation is employed.. . .occasional loss of a machinecycle is inherent in an open loopmode of operation. (ServiceManual: Selectric IO Typewriter,IBM Form # 241-5737-0, July1973).

3. There is a great deal of confu-sion concerning the existence of a"print" magnet. Some OEMs have in-stalled a magnet with this function, butthe 73Xs don't have one. Dan correctlystates that the cycle clutch is releasedwhenever any of the magnet armaturesis pulled down. But he then states "thetrip mechanism is connected to a seventhmagnet called 'check'." He should havesaid "also connected." The rule for 73Xsis that whenever any of the seven mag-nets is energized, a print cycle will occur.Energizing only the "check" magnet willinitiate a print cycle without rotate ortilt, printing the home position charac-ters.

4. The only piece of serious mis-information in Dan's article concerns hisuntested suggestion for closed loop oper-ation. It's close but "no cigar"! Dansuggests generating a debounced TTLlevel signal from the switches connectedbetween a and x (normally closed) and band x (normally open) on the 50 pinplug. The switches connected in seriesthis way are C2, C3, C4, C5 and C6. Dancorrectly states that the magnets shouldbe deenergized when the NO side makesand that the next character or machineoperation should be initiated when theNC side remakes. But the carriage returnand tab interlock contacts, which signalthe longer (and variable) times requiredto complete those operations, havebeen left out of the chain! The correctprocedure is to connect a to d externally(at the 50 pin plug) and use Y insteadas the NC side. In addition, the figure 9description of a debouncing circuitshould not ignore the IBM specified cur-rent through the switches (10 mA @ 10V minimum) which keeps the contactsclean.

5. Those who attempt the inputside of 73X interfacing should know thatthere is one aspect of the IBM specifica-tions which should not be followed (allelse should definitely be respected). IBMspecifies sampling of the character trans-mit contacts on the making of the nor-mally open side of C1. This works finewhen sampling means using the signalsto switch relays (eg: in the console ofthe MTST unit). Typical closing time forthese relays is 10 ms and, since C1 gatesthe common voltage onto the transmitcontacts for only 15 ms, it is importantto begin switching the relays at theearliest possible time. Furthermore, con-tact bounce is not important in that

34

TI Distributors

ALABAMA: Huntsville, Hall-Mark/Huntsville (205) 837-8700.

ARIZONA: Phoenix. Kierulll Electronics (602) 243-4101: R. V.Weatherford (602) 272-7144: Tempe, G. S. Marshall (602)968-6181.

CALIFORNIA: Anaheim, R. V Weatherford (714) 633-9633: CanogaPark, G. S. Marshall (213) 999-5001; El Monte, G. S. Marshall (213)686-0141; El Serjundo, TI Supply (213) 973-2571; Glendale, R. V.Weatherford (213) 849-3451; Goleta, RPS, Inc. (805) 964-6823;Irvine, Cramer/Los Angeles (714) 979-3000. (213) 771-8300; G. S.Marshall"(714) 556-6400; Los Angeles, Kierulff Electronics (213)685-5511; RPS. Inc. (213) 748-1271; Mountain View, Time Elec-tronics (408) 965-8000; Palo Alto, Kierulll Electronics (415) 968-6292; Pomona, R. V. Weatherford (714) 623-1261; San Diego,Cramer/San Diego (714) 565-1881; Kierulll Electronics (714) 278-2112; G. S. Marshall (714) 278-6350; RPS Inc. (714) 292-5611:R. V. Weatherford (7141 278-7400; Sunnyvale. Cramer/San Fran-cisco (408) 739-3011; G. S. Marshall (408) 732-1100; TI Supply(408) 732-5555; Torrance. Time Electronics (213) 320-0880; Wood-land Hills, JACO (213) 884-4560.

COLORADO: Denver, Cramer/Denver (303) 758-2100. Kierulll Elec-tronics (303) 371-6500; Englewood, R V. Weatherford (303)761-5432.

CONNECTICUT: Hamden. Arrow Electronics (203) 248-3801; NorthHaven, Cramer/Connecticut (203) 239-5641; Orange. Milgray;Connecticut (203) 795-0714.

FLORIDA: Clearwater, Diplomat/Southland (813) 443-4514; Ft.Lauderdale, Arrow Electronics (305) 776-7790; Hall-Mark/Miami(305) 971-9280; Hollywood, Cramer/Hollywood (305) 923-8181;Orlando, Cramer/Orlando (305) 894-1511; Hall-Mark/Orlando (305)855-4020; Winter Park, Milgray Electronics (305) 647-5747.

GEORGIA: Norcross, Cramer/Atlanta (404) 448-9050

ILLINOIS: Arlington Heights.TI Supply (312) 640-2964; Elk Grove.

Hall-Mark/Chicago (312) 437-8800; Kierultf Electronics (312) 640-0200; Chicago, Newark Electronics (312) 638-4411; Mt. Prospect,Cramer/Chicago (312) 593-8230.

INDIANA: Ft. Wayne, Ft Wayne Electronics (219) 423-3422.Indianapolis, Graham Electronics (317) 634-8202.

IOWA: Cedar Rapids, Decco (319) 365-7551.

KANSAS: Shawnee Mission, Hall-Mark/Kansas City 1913) 6

1-4747

MASSACHUSETTS: Billerica, Kierulll Electronics (617) 667-8331;Newton, Cramer/Newton (617) 969-7700; Waltham, TI Supply (617)890-0510; Wohurn, Arrow Electronics (617) 933-8130

MARYLAND: Baltimore, Arrow Electronics (202) 737-1700; Hall-Mark/Baltimore (301) 796-9300; Columbia, Technico (301) 461-2200; Gailhersburg, Cramer/Washington (301) 948-0110; KierulllElectronics (301) 948-0250; Hyattsville, Milgray/Washington (301)459-2222.

MICHIGAN: Detroit, Newark Electronics (313) 967-0600: Wyoming.Newark Electronics (616) 241-6681

MINNESOTA: Bloomington. Arrow Electronics (612) 888-5522:Edina, Cramer/Minnesota (612) 835-7811.

MISSOURI: Earth City, Hall-Mark/St. Louis (314) 291-5350; KansasCity, LCOMP-Kansas City (816) 221-2400; SI. Louis, LC0MP-St. Louis (314) 647-5505.

NEW HAMPSHIRE: Manchester, Arrow Electronics (603) 668-6968.NEW JERSEY: Camden, General Radio Supply (609) 964-8560;Cherry Hill, Cramer/Pennsylvania (215) 923-5950, (609) 424-5993;Milgray/Delaware Valley (609) 424-1300, (215) 228-2000; Clark,TI Supply (201) 382-6400; Clifton, Wilshire Electronics (201) 340-1900; Little Falls, Cramer/New Jersey (201) 785-4300; Moores-town, Arrow Electronics (609) 235-1900; Ruthertord, KierulifElectronics (201) 935-2120; Saddlehrook, Arrow Electronics (201)797-5800.NEW MEXICO: Albuquerque, Cramer/NewMexico (505) 243-4566

NEW YORK: East Syracuse. Cramer/Syracuse (315) 437-6671.Endwell, Wilshire Electronics (607) 754-1570; Farmingdale, ArrowElectronics (516) 694-6800; Hicksville. Kierulll Electronics (516)433-5530; Fishkill, Arrow Electronics (914) 896-7530; Freeport,Milgray Electronics (516) 546-6000. (201) 432-4300; Hauppauge,Cramer/Long Island (516) 231-5600; JACO (516) 273-1234;Rochester, Cramer/Rochester (716) 275-0300; Rochester RadioSupply (716) 454-7800; Wilshire Electronics (716) 442-9560.NORTH CAROLINA: Raleigh. Hall-Mark/Raleigh (919) 832-4465;Winston-Salem, Cramer/Winston-Salem (919) 725-8711.

OHIO: Cleveland, Arrow Electronics (216) 464-2000; Cramer/Cleveland (216) 248-8400; Columbus, Hall-Mark/Ohio (614) 846-1882; Dayton, ESC0 Electronics (513) 226-1133; Kettering. ArrowElectronics (513) 253-9176.

OKLAHOMA: Tulsa, Hall-Mark/Tulsa (918) 835-8458; TI Supply(918)582-8272.

PENNSYLVANIA: Huntingdon Valley. Hall-Mark/Philadelphia (215)355-7300.

TEXAS: Austin, Hall-Mark/Austin (512) 837-2814; Dallas, Hall-Mark/Dallas (214) 231-6111: TI Supply (214) 238-6821; Houston. HarrisonEquipment (713) 652-4700; TI Supply 1713) 776-6511; R. V.Weatherford (713) 688-7406.

UTAH: Salt Lake City, Diplomat/Altaland (801) 486-7227; StandardSupply (801) 486-3371.

VIRGINIA: Roanoke, Technico (703) 563-4975.

WASHINGTON: Seattle, Almac/Stroum Electronics (206) 763-2300;Cramer/Seattle (206) 575-0907; Kierulll Electronics (206) 575-4420.

WISCONSIN: Oak Creek, Arrow Electronics (414) 764-6600, WestAIMS, Hall-Mark/Milwaukee (414) 476-1270.

CANADA: Calgary, Cam Gard Supply (403) 287-0520; Downsview,CESC0 Electronics (416) 661-0220; Zentronics (416) 635-2822;Edmonton, Cam Gard Supply (403) 426-1805; Halitax, Cam GardSupply (902) 454-8581; Kamloops, Cam Gard Supply (604) 372-3338; Moncton, Cam Gard Supply (506) 855-2200; Montreal,CESCO Electronics (514) 735-5511; Future Electronics (514) 735-5775; Zentronics (514) 735-5361; Ottawa, CESCO Electronics (613)729-5118; Future Electronics (613) 232-7757: Zentronics (613)238-6411; Quebec City, CESCO Electronics (418) 524-4641; Regina,Cam Gard Supply (306) 525-1317; Rexdale, Future Electronics (416)677-7820; Saskatoon, Cam Gard Supply (306) 652-6424; Van-couver, Cam Gard Supply (604) 291-1441; Winnipeg, Cam GardSupply (204) 786-8481.

Circle 362 on inquiry card.

Tfexas Instruments

makes

MOS EPROMs

even more affordable.

TMS 2708 now $21.50*

The industry standard.

TMS 27L08 now $26.15*

The low power 8K.

TMS 2716 now $36.90*

The 2708 times two.

*100-piece prices

Remember a few months ago whenEPROMs were expensive and hardto get? Due to TI's leadership theyhave become available microcom-puter building blocks.

Prices have dropped dramatically;availability is excellent. Credit TI'shigh-yield, high-volume production.

TI's highly cost effective EPROMsfeature a rugged, high-integrityceramic package with sturdy gold-plated pins to withstandtherepeatedhandling and insertions associatedwith reprogramming. And a gold-alloy-sealed lid for superiorhermeticity.

TI offers a choice of three produc-tion EPROMs-all from stock.

• TMS 2708. The industry standard8K EPROM. Fully TTL compatible.

• TMS 27L08. The industry first lowpower 8K EPROM fully compatiblewith the 2708. But less than one-half the power dissipation and 10%power supply tolerance.

• TMS 2716. A 2708 times two. Twicethe memory (16K) in the samespace. An economical plug-in up-grade for 2708s. And TI's 16K 2716uses less power than a single 2708.

To order the affordableEPROMs, call your near-est authorized TI distrib-utor listed to the left.

JF

Texas Instruments

©'977 Texas Instruments Incorporated

INCORPORATED

Circle 362 on inquiry card.

93188A

application. Even though you may de-bounce the transmit contacts, I wouldrecommend waiting the necessary 3 to 5ms until the bounce from the makingof CI disappears before latching thestate of the transmit contacts.

I am currently considering whetherthere is sufficient interest in a complete,plug-in-and-go IO interface to the 73X towarrant production of my design whichmeets all IBM specifications. I wouldoffer a completely assembled andtested interrupt driven card for theS-100 bus with on card PROM fordriver software, cable with connectors,and power supply for either the 24 Vor 48 V magnets. The price would haveto be $395 for the card (including soft-ware in the PROM) and about $100for the 50 wire cable and power supply.I would appreciate receiving indicationsof interest from readers who would findsuch an interface attractive.

Beardsley Ruml II

3045 Ordway St NW

Washington DC 20008

CLOSED LOOP SELECTRICMORE COMMENTS

This letter is in reference to MrFylstra's article on interfacing to Selec-trics, which appeared in your June 1977issue, page 46. Although the methods heis suggesting are simple, they have severalserious drawbacks.

First, he does not use the keyboardlock mechanism during the time that theSelectric is under computer control. Thisis important to prevent accidental key-board inputs which may very easilycause damage to the machine.

Also he suggests using a 5 V supplydriving TTL for interfacing the contacts.IBM specifies a minimum voltage andcurrent of 10 V at 10 mA for reliableoperation of these contacts.

Lastly the method of driving hesuggests is a form of open loop mode.Since the Selectric is not a synchronousdevice, output rates are only nominal.The importance of operating themachine in a closed loop mode cannotbe overstressed. This is the only methodrecommended by IBM. Using the closedloop mode not only minimizes wear andtear on the Selectric but also providesoutput at the maximum rate of themachine.

I speak from experience, since ourfirm is in the business of manufacturingvarious forms of interfaces to Selectricmechanisms.

John Schwartz

IBEX

1010 Morse Av, Suite 5

Sunnyvale CA 94086

APL CHARACTER GENERATORSARE AVAILABLE

I have noticed various letters in yourletters column from APL enthusiasts.Our firm produces a CRT terminal withan APL character font and keyboard(see June 1977 BYTE, page 24). TheAPL character generator is a smallpiggyback board which can directly re-place a 2513 and plug into its socket.(Bit 7 is wired through normally unusedpin 23 of the 2513.) On the keyboardwe use decals mounting on the frontkeycap face. These decals are white onclear, of excellent quality and durability.

We would be pleased to make theseitems available directly or throughdistribution. Interested persons maywrite me directly.

MC Volker

President, Volker-Craig Ltd

Waterloo Ontario N2J 321

CANADA

A NOTE FROM A EUROPEANREADER

I had my computer shipped airfreight, and when it arrived, I found avery simple 50 Hz modification for mySouthwest Technical Products CT1024.I cut the 60 Hz reference line. I assumethis does bad things to a phase lockedloop somewhere (my documentationisn't here either) but after it warms upit seems to work fine.

Bruce Turrie

Riverside Tower Esmoreitlaan 3

POB 3, Apt 68, B-2050 Antwerpen

BELGIUM

USING ADCs FOR TESTINSTRUMENTS?

I imagine this could have a great dealof interest to your readers. If you cannotdevelop a solution to this problem may-be your readers can.

I am working on a research projectfor Scott Community College. I amworking on a hardware and softwarescheme that will make a color TV intoan oscilloscope. I am using the TVDazzler and the D+7A interfaces alongwith the IMSAI 8080. I want to do therest of the task through software. I amhaving problems designing the softwareneeded in conjunction with these inter-faces. Any help that can be provided willbe greatly appreciated. It need onlycover audio frequencies. It need have noextended sensitivity nor multicoloreddisplay.

John Orvis

2125 Olympia Dr

Bettendorf IA 52722

A good idea for an article!

The COMPUTALKER Model CT-1 optimizes the trade-offbetween low data rate speech and directly digitized speech.Low data rate speech relies on canned definitions for thesound of each phoneme, which produces mechanicalsounding speech. Digitized speech, while remaining faithfulto the original sound, requires 10K to 20K bytes per secondof storage and is inflexible to phonetic manipulation.With the Model CT-1, the sounds are defined in real timeunder software control. Parameters which represent thephonetic structure of human speech are transmitted to theCT-1 at a rate of 500 to 900 bytes per second. This allowsthe production of highly intelligible and quite naturalsounding speech output. Speaker characteristics andlanguage or dialect variations are retained in the output.The CT-1 can also be operated in a low data rate mode usingphoneme definitions contained in the CSR1 Synthesis-by-Rule software package. The COMPUTALKER speech synthesissystem, used in this way, has the advantage that thesoftware driver can easily be modified to keep thenaturalness and intelligibility of the speech output up todate with the constantly evolving state of the art of ruleV governed speech.

COMPUTALKER

CSH1

SYNTHESIS-BY.RUIE

SOFTWARE

SPEAK "KAAMPYUWTAOLKER"

MODEL CT-1 SYNTHESIZER 395.00CSR1 SOFTWARE SYSTEM 35.00

DEMONSTRATION CASSETTE 2.95

CALIF RESIOENTS AOD6% SALES TAX

COMPUTALKER CONSULTANTS

Box 1951-B, Santa Monica, CA 90406

CALIFORNIAA-VIDD ElectronicsLong Beach [213] 5980444Byte Shop ol LawndalcLawndalc [213] 371 2421Byte Shop of San DiegoSan Diego [714] 565-8008Byte Shop ol Santa ClaraSanta Clara [408] 249-4221Computer CenterCosta Mesa [714] 646-0221Computer MartOrange [714] 6331222Computer StoreSanta Monica [213] 451-0713

GEORGIA:

Computer SystemcenterAtlanta [404] 231-1691

INDIANA:Data DomainBloomington [812] 334-3607

KANSAS. MISSOURI:Micro-Corn, Inc.Kansas City, MO [816] 333-8383

MICHIGAN:

Computer Mart ot Royal OakRoyal Oak [313] 576-0900Computer Store ol Ann ArborAnn Arbor [313] 995-7616

NEW JERSEYComputer Mart of New JerseyIselin [201] 2830600Hobo ken Computer WorksHoboken [201] 420-1644

NORTH CAROLINA:Byte Shop of RaleighRaleigh

Byte Shop of PortlandPortland [503] 223-3496

VIRGINIA, WASHINGTON DCRoberts Information Services, Inc.Fairfax, VA [703] 560-7888

AUSTRIA:

MargreilerGMBH

A1070Wien 10222] 96 1565CANADA:

The Computer Place

Toronto [416J598-0262

Telex 06-22634

ENGLAND:Compelec Electronics310 Kilburn HighroadLondon NW6

FRANCE:HUGUESGOSSET15 Ruede Franqueville75016 Paris

GERMANY:Dr. Peter ViienetzDatameg Div. of Megatron KGMunich [089] 46 50 66

JAPAN:Kazuhiko NishiPax ElectronicaShibuya-ku. Tokyo [03] 370 2751

Circle 363 on inquiry card.

36

SELF-MODIFYING CODE

The letter "A Critique of Self-Modifying Code" in the June 1977 issueof BYTE will serve only, I predict, todiscourage some readers from sendingmaterial to BYTE for publication. TheBARC routines, applied within thecontext for which they were intendedare certainly worthwhile.

Phil Rynes

6824 Roberts Dr

WoodridgelL60515

NEED VA APPROVED COURSES?

Some time ago one of your readerswrote that he would be interested intaking a VA approved course in whichthe student would build a microcom-puter. This subject has also been of inter-est to me since I am presently taking acourse in digital electronics at TheNational Radio Institute in WashingtonDC. NRI is one of the leading VA ap-proved correspondence schools in thecountry.

I wrote the president of NRI, J FThompson, concerning the subject ofmicrocomputers. The attached letter isthe warm response I received to myinquiry. I thought some of your readerswould be interested.

Robert N Smith

1617 Grunther Av

Rockville MD 20851

McGraw-Hill Continuing Education Center

3939 W.sconsm Avenue NWWasntngion D C 20016Teiepnonc 202/244-1600

_■■ e ■ "■■■ Pteadeni

January 5, 1977

Mr. Robert N. Smith1617 Gruenther AvenueRockville, MD 20851

Dear Mr. Smith:

I received your letter of December 19, 1976, andappreciate your interest in whether NRI is consideringa course in Microprocessing with microcomputer kits.The answer simply is "yes". We believe that a technologyprogram on microprocessors will help the computer indus-try bridge the shortage of service technicians.

Our thoughts at this time are to expand the DigitalComputer Electronics course to include microprocessingand kit hardware. The microprocessor breadboarding kitwill contain power supplies, a clock oscillator, a pro-grammable read only memory, LED indicators, and controlswitches. When used in the course, it will serve as ateaching tool to reinforce the material in the lessons.It will provide real programming experience on a commer-cial microprocessor. Further, the design calls for itsuse with a number of peripheral devices. The specificdevices, like CRT, video displays (TV), cassette recorder,discs, and others have not yet been determined.

We are confident that NRI will offer a microprocess-ing course that has high quality, a reasonable price, andbe approved for veterans training. It is too prematurenow to provide you more specific information.

Again, thank you for taking the time to write me.Good luck in your studies for 1977.

J. F. Thompson

Introducing -..a pair of boards

that will setgpMyour S-100 bsyste

The new I/O and PROM/RAM boards will give youmaximum system flexi-bility and operationallowing you toexpand the way youwant to without beinglimited by rigidboard design

I/O Board

Complete Kit $160.00Assembled $240.00

■

4K PROM/RAM BOARD

Kit (less memory) $80.00Assembled (less memory) $180.00

a board features—

4K PROM/RAM BoardModel MBS

• Fully buffered address anddata lines

• Jump on reset circuitryallows execution of programsat any 1K boundary by hittingreset or may be modified tojump on power-up

• Jump address and enable,board address, memory pro-tect, and wait states (0-2) allDIP switch selectable locatedconveniently at top of board

• RAMs and PROMs may bemixed in any 256-byteincrementsc Monitor program available

I/O Board Model I04

i 2 serial I/O ports (2

in and 2 out) with full

handshaking

t 55 to 9600 baud rate

selection for both

input and output

< 2 parallel (2 in and 2

out) I/O ports

• 20/60 mA currentloop (with optical iso-lators) or EIA serialinterfaces

* Independent DIPswitch address selec-tion for both serialand parallel ports« Interrupt capability

All Cybercom "blue boards" are made of hi-gradeglass-epoxy with gold contacts and include Tl lowprofile sockets.

Contact your local computer hobby store today formore information on the new I/O and PROM/RAMboards, or write direct to:

cubercDrn

A_A->t^l L-A

We're the blue boards

A division of Solid State Music

2102A Walsh AvenueSanta Clara, CA 95050

(408) 246-2707

Ohio Scientific advancesthe state-of-the-artof small computers.

• Challenger II with our ultra-fast 8K BASIC in ROM.

Now you can own a computer with full BASIC and plenty ofuser workspace for as little as $298.00. And the BASICis there the instant you turn the machine on!

• Challenger III is the remarkable computer which has 6502A,6800, and Z-80 processors. This computer system allows

you to run all software published in the small computer journals,yet, it costs only about 10% more than comparable singleprocessor computers.

• Challenger Single and Dual Drive Floppy Disks. These full sizefloppy disks are available in kit form or assembled at aboutthe same prices as our competitors' mini floppies. Yet, theystore three times as much data as the minies.

• Ohio Scientific's new 9 digit precision business BASIC is onlyslightly slower than our ultra-fast 8K BASIC. Still faster

and more powerful than anyone else's 6 digit precision BASIC.

• Our incredible new 74 million byte disk drive. That's right,74 million bytes is available for as little as $6,000.00complete with interface for any Ohio Scientific computer.This new disk is quite possibly the world's highest performancedata storage device. It features an unbelievable 34 milli-second average access time and an ultra-fast data transfer rate.

• Now is the time for you to dump your 1974 design vintage S-100computer and move up to the state-of-the-art!

For more specifics, send $1.00 for our new Fall Catalog.

11679 HaydenHiram, Ohio 44234

BASIC in ROM Computersby Ohio Scientific

If you're just getting into personal computing and are buy-ing your first machine, you're probably confused by the myriadof companies and products available.

However, there is one simple guideline you should followwhen choosing your first computer. Be sure that it is capableof giving you full floating-point BASIC the instant you turnit on. Machines with full 8K BASIC in ROM cost as little as$298.00. Why should you settle for anything less?

Challenger IIP

The Challenger IIP from Ohio Scientific is the idealpersonal computer complete with BASIC in ROM andplenty of RAM (4K) for programs in BASIC.

Complete with an audio cassette interface, the Chal-lenger IIP uses a full computer keyboard, not a calcu-lator keyboard.

In addition, the Challenger IIP comes complete with afull 64 character-wide video display, not a 40 characterdisplay. The user simply connects a video monitor orhome TV set via an RF converter (not supplied) andoptionally, a cassette recorder for program storage.

The Challenger IIP comes complete with a 4 slotbackplane and case for only $598.00. Fully Assembled.

Model 500

The Model 500 is a fully populated 8 x 10 P.C.Board with 8K BASIC in ROM, 4K RAM, serial portand Ohio Scientific Bus compatibility for instant ex-pansion. All you need is a small power supply (+5at 2 amps and -9 at 500 MA) and an ASCII terminalto be up and running in BASIC. And all for only$298.00.

Super Kit

11679 Hayden • Hiram, Ohio 44234

The Super Kit is a 3 board set with a 500 board(like the Model 500)without the serial interface.

The ROMs are configured for use with the in-cluded, fully assembled 440 video board to providea full BASIC computer and terminal.

The Super Kit also includes a fully assembled 8slot backplane board which gives you 6 open slotsfor expansion.

To be up and running in BASIC simply plug theboards together, supply power (+5 at 3 amps and-9 at 600 MA), add an ASCII parallel keyboardplus a video monitor or TV set via an RF converter(not supplied).

Total price for the "kit" $398.00.

Disk Based Co

by Ohio

Any serious application of a computer demands a Floppy disk or harddisk because a disk allows the computer to access programs and dataalmost instantly instead of the seconds or minutes required with cassettesystems. In real-world application of computers, such as small businessaccounting, a cassette based computer simply takes too long to do the job.

Ohio Scientific offers a full line of disk based computers utilizing fullsize floppy disks with 250,000 bytes of formatted user work space per disk.That's 3 to 4 times the work space of mini-floppies.

Challenger n

Challenger II is available witha single or dual floppy disk anda minimum of 16K of RAM in-stead of ROM BASIC. The diskBASIC is automatically loadedinto the computer so there is noneed for ROMs.Ohio Scientific's powerful diskoperating systems allow the computer to function like a big system withfeatures like random access, sequential, and index sequential files in BASICand I/O distributors which support multiple terminals and industry-stan-dard line printers.

Challenger ll's with disks can have the following optional features:

• 16 to 192K of RAM memory • Single or dual drive floppys • Serialand/or video I/O ports • Up to 4 independent users simultaneously

• Two standard line printer options • Optional 74 Megabyte Hard disk

• Much more

Challenger II disk systems are very economical. For example a 16KChallenger II computer with serial interface, single drive floppy disk, BASICand DOS costs only $1964.00 fully assembled.

mputer SystemsScientific

Challenger ID

Ohio Scientific proudly announces theultimate in small computer systems, the Chal-lenger III. This computer has a 3 processorcpu board equipped with a 6502A, 6800, andZ-80.

This system allows you to run virtually allsoftware published in the small computermagazines!

The Challenger III is fully software andhardware compatible with Ohio Scientificproducts and can run virtually all software forthe 6800, 8080 and Z-80 including Mikbug®dependent 6800 programs!

Incredible as this is, Challenger III costsonly about 10% more than conventionalsingle processor microcomputers. Forexample a 32K Challenger III with a serialinterface and a dual drive floppy disk (500,000bytes of storage) costs only $3481.00. FullyAssembled, complete with software. Terminalnot included.

r™

□ Send me the Fall 77 Catalog. I enclose $1.

I I I would like to order directly from this advertisement.(Please allow up to 60 days for delivery)

NAME

ADDRESS-CITY

To order:

Payment by:BAC (Visa)_

MC Money Order-Credit Card Account #

Interbank # (Master Charge)

Model 500 Boards @ $298.00

Challenger IIP @ $598.00

Super Kit @ $398.00

16K Challenger II complete with serial interface,

single drive floppy disk, BASIC and DOS

@ $1964.00

32K Challenger III with serial interface, a dualdrive floppy disk (500,000 bytes of storage)@ $3481.00

Ohio Residents add 4% sales tax

TOTAL CHARGED OR ENCLOSED

Order directly from: Ohio Scientific, 11679 Hayden St.,

Hiram, Ohio 44234 or your local OSl dealer

All orders shipped insured UPS unless otherwise requested.

I I

Circle 365 on inquiry card.

11679 Hayden • Hiram, Ohio 44234

Continued from page 6

"show off" sequences which were viewableat the NCC show. These included falsecolor processing of digitized pictures, aswell as dynamically changing kaleidoscopicabstract patterns.

Why Would Anyone Want. . .?

The technological skeptics always pose amore or less unanswerable question of "whydo such and so?". Some unnamed ancestorof western civilization probably received thesame question in response to making thefirst wheeled carts, planting crops ratherthan gathering them wild, or tending andmanaging fires as the inspiration for thePrometheus myth. It is a repetitive pattern,uneasiness or fear when confronted withnew ways of life.

Memory requirements (256 by 256 resolution, 8 by 8 point characters, 256 characters)Character definitions 8192 bytes

Screen refresh 1024 bytes

I first ran into this form of question rela-tive to the whole idea of personal computingwhen I seriously began exploring the possibi-lity of building my own computer after theIntel 8008 first became available. I vividlyremember a conversation with one of myprofessional associates at the time, whichcontained the question of why applied topersonal computers: "Why would anyoneever want a personal computer?" Withoutanswering the question, history has nowshown that a lot of people do want suchcomputers. At that time however, I attemp-ted to weakly answer (my mind was madeup, remember) with specific applicationscontrived on the spot as alleged justifica-tions. I knew I wanted one, but I wasn'tquite sure why.. .

Today, I would answer with a more gen-eral question and an equivalently generalresponse. The more general question is "whywould anyone ever want to use an arbitrarilychosen product of human technology (be itautomobile, airplane, typewriter, computer,

Total dedicated memory 9216 bytes

ONE CHARACTER CELL

FULL SCREEN CHARACTERREFRESH TABLE (32X32)

COLOR CHARACTER DEFINITION

TABLE (256 BY 8 X 8 BY 4 BITS COLOR CODE)

CHARACTERDEFINITIONTABLE OFFSET n

Figure 2: A less direct display method which uses considerably less memory to generate a picture is the reprogrammable colorcharacter generator technique. In its most general form, each logical character definition contains a matrix of 4 bit color valuesfor picture elements within the character. A display is formed by filling the 1024 character refresh table entries with charactervalues pointing to the programmable character generator matrix. This form of display in the configuration shown requires only9,216 bytes compared to the 32,768 of figure 7, a saving which is achieved at a price of considerable flexibility.

42

The first completelow-cost microcomputersystem for home,business or education!

Radio Shack TRS-80

The TRS-80 is for people who want to use a computernow—without the delay, work and problems of buildingone. The system is fully wired, tested and U.L. listed —ready for you to plug in and use! Program it to handleyour personal finances, small business accounting,teaching functions, kitchen computations, innumerablegames — and use Radio Shack's expanding line ofprepared programs on cassettes. The Z80-based systemcomes with 4K read/write memory and Radio ShackLevel-I BASIC stored in read-only memory Memoryexpandable to 62K bytes. Includes CPU, memory,keyboard, display, power supply, cassette data recorder,300-page manual, 2-game cassette program. Designedand built in USA by Radio Shack. Only 599.95.

Includes everythingyou need to startusing it immediately!

SOLD ONLY WHERE YOU SEE THIS SIGN:

Radio /haek

A TANDY COMPANY • FORT WORTH, TEXAS 76102OVER 6000 LOCATIONS IN NINE COUNTRIES

Price may vary at individual stores and dealers

Clip and Mail Coupon Today!

Mail to: Radio Shack, Dept. TRS-80

205 N.W. 7th St., Ft. Worth, TX 76101

Send me more data on the TRS-80 microcomputer

• Description of applications, software and peripheralsavailable through Radio Shack • Owners' newsletter

• Price list • List of stocking stores and dealers

NAME

APT un

ADDRESS

CITY

KTATK

7ITP

SO******

«»'"

Application Software!

You canbuy softwarefrom anybody -

but ours worksin your system.

We only sell one product,Quality.

We have been in business for over nine years building a reputationfor providing a quality product at nominal prices — NOT what thetraffic will bear. Our software is:

• Versatile — as most programs allow for multiple modes ofoperation.

• Tutorial — as each program is self prompting and leads youthrough the program (most have very detailed instructionscontained right in their source code).

• Comprehensive — as an example our PSD program not onlycomputes Power Spectral Densities but also includes FFT's,Inverse-transforms, Windowing, Sliding Windows, simul-taneous FFT's variable data sizes, etc. and as a last wordour software is:

• Readable — as all of our programs are reproduced full sizefor ease in reading.

• Virtually Machine Independent — these programs are writtenin a subset of Dartmouth Basic but are not oriented for anyone particular system. Just in case your Basic might notuse one of our functions we have included an appendix inVolume V which gives conversion algorithms for 19 differ-ent Basic's; thats right, just look it up and make the sub-stitution for your particular version. If you would like toconvert your favorite program in to Fortran or APL or anyother language, the appendix in Volume II will define thestatements and their parameters as used in our programs.

Over 85% of our programs in the first five volumes will execute inmost 8K Basic's with 16K of free user RAM. If you only have 4KBasic, because of its' lack of string functions only about 60% of ourprograms in Volumes I thru V would be useable, however theyshould execute in only 8K of user RAM.

All of our programs are available on machine readable media. Forthose that have specific needs, we can tailor any of our programs foryou or we can write one to fit your specific needs.

SCIENTIFIC RESEARCH

1712-B Farmington Court, Crofton, MD 21114

Phone orders call (800) 638-9194

Information and Maryland residents call (301)721-1148

Add $1.50 per volume handling, all domestic shipments sent U.P.S. exceptAPO and P.O. Box which go parcel post. Foreign orders add $8.00/volumefor air shipment and make payable In U.S. dollars only.

AVAILABLE AT MOST COMPUTER STORES

Master Charge and Bank Amerlcard accepted.

Our Software is copyrighted and may not be reproduced or sold.

BASH

SOFfvVARl

II HKAKY

VOUIMf 11

I

Vol. I — $24.95

Vol. Ill — $39.95

Bookkeeping

Advanced Business

Games

Billing, Inventory

Pictures

Investments

Payroll

Vol. II — $24.95

Math/EngineeringPlotting/StatisticsBasic StatementDef.

Vol. IV — $9.95

General Purpose

Vol. V — $9.95

Experimenter'sProgram

piano, microwave oven, or television set)?"I would now reply that individual use of theproducts of technology has the psycho-logical and emotional justification of per-sonal satisfaction, derived from being able tochoose from a wider range of activities withsuch inventions than without.

The More Specific Whys of Color Displays

The advent of high resolution color dis-plays for personal use is near, as I'll demon-strate later in this essay. I have some roughideas as to the practical consequences ofinexpensive color displays in a personal com-puting context. Any such comments must beviewed in the same light as my responses tothe personal computing skeptic several yearsago. I am already committed mentally to theconcept of the color display with computingintelligence behind it as an artistic and ex-pressive medium for individuals. My attemptto detail my commitment's consequenceswith specific uses is necessarily a naive firsttry at explaining the fascination of theconcept, just as my earlier attempt to ex-plain the fascination of personal computingby examples was a weak argument at best.

Versatility and Flexibility

Perhaps a major attraction of the colordisplay is the generality it provides. Thereis a certain fascination with the realizationof the general purpose generic form of anyprogram or hardware conception.

Carrying this attitude into the realm ofvisual displays, I claim that the color displaywith relatively high resolution is inherentlydesirable because it represents the mostgeneral form of the concept of a two dimen-sional display. Every other form of a displayis a subset of the general ability to paintarbitrary colors in arbitrary patterns on acolor display screen. Any given pattern isa subset of the general set of all possiblepatterns one could make with "n" colorlevels and an "i by j" pattern of pictureelements.

The consequences of this versatility andflexibility are the possibility of color em-phasis and detailed representations in con-ventional applications plus a whole new setof possibilities in the area of visual arts.

In an article we printed in December1976, Margot Critchfield of the Universityof Pittsburgh's Project Solo illustrated the

QuanTronics

8K

STATIC

RAM...

\r..wiw**r

»sS%

ASSEMBLED & TESTED / MM8-250ns... 225.00 / MM8B-450ns... 209.00

FEATURES: S100 Bus • Low Power IC's •Selectable: Wait Cycles, Address, and Memory Protect

QuanTronics Computer Productsfrom Problem Sower Systems, Jnc.

8040 DEERING AVENUECAN0GA PARK, CA 91304(213) 888-5079

45

Circle 368 on inquiry card.

static artistic possibilities in several colorrenditions using a Cromemco TV-Dazzlerand custom peripherals created by ThomasDwyer and Leon Sweer. (The Dazzleris a first attempt at the personal color organ,a 64 by 64 element display with a limitedrange of eight colors and "off.") The rendi-tions which she illustrated are examplesof the static representations of visual artwhich are possible merely using the colordisplay as the equivalent of the traditionalartist's media of oil or acrylic and canvas.

This use of the color display as a mediumof static visual artwork is a necessary firststep toward exploring the practical conse-quences of high resolution color displaytechnology. With use of appropriate inex-pensive mass storage devices, libraries of highresolution images can be conceived. (A fullsize floppy can hold about 500 K bytes ofinformation with contemporary "doubledensity" recording technology, or a totalof about 16 unencoded pictures with a 256by 256 grid of 4 bit color picture elements.)In this mode of operation, the artistic userpaints a picture on the display using a joy-stick or equivalent cursor control plusadditional finger manipulated controlsto select color, move patterns about withsoftware, repeat patterns, etc. The keyhere is composition of a color image whichis perceived statically. This is the mode ofoperation of the Project Solo CyberneticCrayon mentioned earlier, and of theCromemco Dazzler when it is used with ajoystick.

Effective artistic use of this new form ofvisual imagery creation requires developmentof interactive software customized to thecreator's tastes. The display by itself is notenough to make the facility complete, forit only becomes useful with the softwareequivalents of paint brushes and motionof the artist's arm. Distribution or copiesof this form of the art can be done photo-graphically, since the static image is whatcounts. In this sense, there is nothing start-ling or new about use of a color display andits computer backup for static images.

Art Forms Impossible WithoutComputer Controlled Imagery

Once the artist or experimenter (the twowords are actually equivalent) learns tocreate a visual art work with computer aidthe next step is to use the mechanism of thecomputer to produce effects which wouldpreviously have been difficult or impossibleto achieve. Motion and change of imagesaccording to rules and techniques chosen by

the artist are a part of the very act of com-position in this new medium of dynamicvisual art.

Here, we are talking about a dynamic andmoving art form, the use of programming ina manner which can be directly perceivedand understood by all viewers simply byobserving it, just as music can be appreciatedby anyone simply by listening. This is thetrue excitement of color imagery as an artform. The only visual antecedents are theuse of film technology and choreography;but unlike much film and choreographicimagery, it is not constrained to imagesof human forms, since the display isgeneral purpose and subject to various formsof abstractions and harmonies previouslyimpossible with visual imagery. The key tothis new art form is the time dependentalgorithmic transformation of elementsof the picture according to the artist'splan and implementation.

The time ordered nature of algorithmicvisual arts which come from this sourcemake a combination of the display imagerywith music inevitable. If evolution of visualform with abstract or specific images isconsidered as a criterion, an artistic ante-cedent of this combination is found in thefirst experiments of Walt Disney in the formof the movie called Fantasia. (For thoseunfamiliar with that movie, it was a com-bination of classical music with cartoontechnology which resulted in a featurelength film.)

A later example of this combination ofvisual patterns with musical patterns isrepresented in the work of John Whitneyover the past decade or so, using computerswith photographic technology to makehigh resolution computer generated filmswhich are synchronized to music. He gavean excellent taste of what can be done inhis demonstration films and talks at thePersonal Computing 76 show in 1976, andat the First West Coast Computer Faire thisyear. (He is continuing his work with equip-ment which has much in common with con-temporary personal computing technology.)A major tenet of John Whitney's conceptof dynamic visual arts is the idea of visualanalogs to the harmonies and melodicevolutions in the musical forms. With thevisual processors we can achieve with today'stechnology, it is possible for many moreindividuals to begin experimentation withdynamic progressions of forms of sensationwhich include both visual and aural com-ponents. The coming of the high resolution,yet not inordinately expensive, colorgraphic display opens up the wider use ofthis art form.

46

Circle 369 on inquiry card.

The simplest examples of the algorithmicvisual arts have been seen at the various exhi-bitions. Nearly every computer store whichcarries the Cromemco TV Dazzler uses thecolor version of the game of Life as a cus-tomer attraction, one mode of algorithmicvisual art. A similar display sometimes seenis the colorful forms of a kaleidoscope repre-sented in that product's 64 by 64 colormatrix on a TV screen. Another example ofa simple, algorithmic art form is the ColorEater program which Apple Computer usesto illustrate the capabilities of its computerand its integral 40 by 40 patch color displaygenerator. But better (ie: high resolution)color technology is sure to follow in thenear future.

But Art Is Not All. ..

The programmable versatility of the colordisplay concept is applicable to more thanjust artistic purposes. From the artistic pointof view, the display's content, whether staticor dynamically changing, is the object of theexercise. But using the display as a part ofthe information processing system which isthe personal computer is attractive becausecolors can convey additional information.

Bordering on the concept of dynamic artis the concept of the color display orientedvideo game. Space War works just fine on ablack and white display, for the realism ofthe simulation only demands points in a twodimensional projection of three space. Butconsider the possibility of cartoon styleanimation applied to simulation games. Ifthe game involves a park like setting inwhich the simulation players move, use thecolor display to represent that setting, withprograms appended for generation ofplayers' movement in the setting. If thegame involves simulating a plane landing,or an automobile race, use programs togenerate the moving effects on the screen,and variations of the background informa-tion. Such suggestions involve significantsoftware development and processor band-width when the degree of realism becomeshigh; but, given the color display and agiven processor's capabilities, there can beconsiderable improvement in the types ofdisplays used with games.

Why put up with a simple numeric timereadout for your digital clock software?With a color display for the output device,a very realistic analog clock face could bedisplayed with moving hands and stylingto the user's tastes. The 256 by 256 by 4bit resolution capability suggested as a nearterm technological goal should be morethan adequate for this task.

M6800

HARDWARE/SOFTWARE

• REAL TIME OPERATING SYSTEM

RT/68® is mask-programmed on a 6830 ROM that replaces theMikbug* ROM in your SWTPC 6800, Motorola D1 or D2 Evalua-tion Kit, etc. It is a powerful real time, multiprogrammingoperating system with many versatile system functions. RT/68°can support up to 16 concurrent programs at 8 priority levels.

MICROWARE has improved the Mikbug* functions, addedfour more (Dump, Exec, Sys, Bkpt) and made tape load andpunch program-usable. RT/68° is software and hardware com-patible with Mikbug* and supports ACIA or PIA type interfaces.The comprehensive manual includes a complete source listing.RT/68MX 55.00

• ANALOG INTERFACE SUBSYSTEM

Consists of a PIA connected to a high speed, high accuracy 8bit digital-to-analog converter. Also included is a buffer andprecision comparator to implement an analog-to-digital con-verter using one of several software techniques listed in themanual. Applications include sensor input/output, audiosynthesis, vector graphic displays, etc. Circuit board is plug-compatible with the SWTPC 6800 I/O buss.

AS1-K (COMPLETE KIT) 87.50

AS1 (ASSEMBLED and TESTED) 115.00

• SERIAL I/O INTERFACE

An RS-232 type serial interface card with full modem controlcapabilities (RTS, CTS, DCD). May also be used for interface withaudio cassette systems. Plug compatible with SWTPC 6800I/O buss.

SC1-K (COMPLETE KIT) 30.00

SC1 (ASSEMBLED and TESTED) 40.00

THE MICROWARE CORPORATION

RO. BOX 954 Des Moines,Iowa 50304

Write or use reader service card for free brochure.Phone Orders (515) 279-9856 U.S. Orders Postpaid.

BankAmericard and Mastercharge give all info on card.Mikbug* is a trademark of Motorola, Inc.

PRAMMER

by XYBEK

An extraordinary 2k memory boardfor your Altair-bussed computer

* On-board 1 702A PROM programmer

* 256 bytes of RAM plus space for 1792 bytes of read-

only memory (seven 1702A EPROMs)

"A" Supplied with one 1702A, pre-programmed withstand-alone programming software — no senseswitches are used

"A" Supplied with programming power supply

"A" PRAMMER's own onboard clock makes it compatiblewith almost any Altair-bussed system.

■A" All read and write sequences are generated via an

board micro-programmeliminating all one-shots.

thus

"A Complete 1 702A programming in 18 seconds

"A* Includes complete listings for PRAMSYS, an eleven-function development system.

COMPLETE KIT: $209

Assembled and tested: $289

Immediate (off-the-shelf) delivery

California residents please add sales tax.

COD, Master Charge, BankAmericard and Visa accepted.

XYBEK • P.O. Box 4925 • Stanford, CA 94305Telephone: (408) 296-8188

47

Circle 370 on inquiry card.

Then consider the use of color inhighlighting data. For example, one purposefor which I'd like to use a high resolutioncolor display in the future is highlightingthe various melodic themes and chordstructures in digital representations of musicon the display. Here the color informationis used to enhance the different segmentsof a complicated structure, a principlewhich has been applied at many pointsin industry and which is certainly just asuseful for personal data displays.

Design Speculations . . . Color Displays

While it is unlikely that any personallyaffordable color display will soon match thefacilities of the Comtal 8000-S which got mestarted on this subject, improved resolutioncolor displays are a very real possibility forpersonal computing within the near future.By improved resolution in a personal com-puting context, I mean displays within thebandwidth range of a standard color televi-sion set adapted for direct video input.Taking into account memory prices, and thecapabilities of the color television device,this means basically some form of rasterscan color generator with a 256 by 256picture element resolution and four bitsof color level information per pictureelement. I see two methods in whichthis hardware can be implemented, withvarying capabilities. The simplest bruteforce technique is to have the imagegeneration equipment incorporate memorydirectly to refresh the display. For the 256by 256 by 4 bit display this brute forcetechnique requires 32,768 (32 K) bytes ofmemory. (At a 40 by 40 matrix resolution,the Apple II computer's video generator'scolor mode uses this brute force techniquewith a smaller amount of memory.) Figure 1shows conceptually how each byte definestwo picture elements' state of color throughhardware which accesses the 32 K bytememory region to generate the display.When the price of a typical 32 K bytememory board is standing at about the $800range assembled and tested for at least oneproduct currently advertised (using 16 Kdynamic chips), dedicating such a memoryto a color display peripheral for perhaps$1600-2000 end user price is not unreason-able.

The second method of design I seecoming is inspired by the video generatormethods used in many video arcade games,and in particular the video generator of theNoval 760 computer, with which I becameacquainted on a visit to Gremlin Industries

in late 1976. This is the method of a repro-grammable character generator, whichresults in considerable compression of theamount of memory required to completelycover the entire plane of a display. (Theinherent disadvantage, a trade off of func-tion for less memory than the brute forcetechnique, is that the picture must be repre-sented as a closely packed array of sub-elements defined by the different characterdefinitions, meaning that it is possible torun out of character definition space ifcomplex patterns are involved.) Using thissecond method of indirect refreshingthrough a progammable character generatorextended to include color information, aconfiguration which might be suitable forcolor is illustrated in figure 2. The particulardesign of figure 2 (which is not the onlyconfiguration possible by any means) uses256 character definitions of 32 bytes percharacter, where each character has an 8 by8 array of 64 picture elements of four bitsper element. The hardware of such anindirect refreshing method scans the 1024byte (32 by 32) array of characters in therefresh memory, then looks up thecorresponding character definition in theuser programmable color character gener-ator. This form of the color raster displaystill gives resolution to a 256 by 256 grid,but requires only 9216 bytes compared tothe 32,768 bytes of the brute force techni-que. As a result, one might expect to findthis form appearing in less expensive colororiented pe'ripheral products for personalcomputers.

With memory prices dropping consis-tently, I expect both general forms of colorperipheral units to be appearing in the nearfuture. The details will differ from theseconceptual sketches, but the idea of thecolor display is here. There is no techno-logical reason why such a display cannotbe built and marketed to the readers of thismagazine within the next one or two years."

Attention Authors:

As a "how to" for rea-der construction, highresolution color displaysand software drivers forthem are certainly highpriority items for futurearticles to be published inBYTE.

48

Have you been waiting for a hard copy printer thatdoesn't come with a high price tag or very limitedperformance and features?

Your wait is over. The new Integral Impact is preciselywhat you've been looking for. It's a micropriced, maxi-performance, full-size, full feature, impact printer that'sready to plug directly into your mini or micro-computersystem. No special hardware or software interfacingrequired. Just connect to any RS 232 or current loopserial data source, and you're in business.

The Integral Impact is a complete professional printerthat's fully assembled, tested and ready for use. Noextra-cost options, nothing to assemble or wire, no spe-cial software to write ... and no need, either, for expen-sive special paper. It prints the standard ASCII set of 64characters using a 5 x 7 dot matrix at speeds to 120characters per second.. .on full-size, 8'/2-inch paper infan-fold or roll form.

You can even print multiple copies with up to 132characters per line. With a long-life (10,000,000 charac-

ter) ribbon that is automatically re-inked during printing,and a rugged print mechanism with few moving parts,the Integral Impact offers you outstanding service andreliability.

The Integral Impact has a microprocessor-based con-troller that features variable character pitch sizes, multi-ple line buffering and enhanced, double-width charac-ters. Serial baud rates from 110 to 1200 bits per secondare supported or, optionally, the printer may be usedwith a parallel interface. Operator controls for power,printer mode and off-line paper motion are convenientlylocated on the front panel. Internal switch settings de-termine serial baud rate, character pitch and number ofcharacters per line.

The micro-price: $745.00 complete.

Where can you get it? Send the coupon below to Integraland we'll ship direct to you. Or have us send you fulldetails by checking the appropriate box on the coupon.

Make big printer performance an integral part of yoursystem ... with the Integral Impact.

Now... big printerperformance at amini-printer price.

■

mm.

^Integral Data Systems

I want big printer performance now.Here's my check for $

Circle 371 on inquiry card.

5 Bridge Street • Watertown, MA I Send more information

Name

Address

Bill my VISA

Mastercharge account

Account No.

Expiration Date

M C Interbank No.

Signature

City

State

Zip

"Handling and shipping charge: $5.00. Mass. residents add 5% sales tax.

Commodore's New PET Computer

Photo 1': Commodore's new PET computer at the NCC show in Dallas.

One of the most interesting new productsat the NCC show in Dallas was Commodore'snew PET computer. Beneath its futuristiccover, the unit features 14 K bytes of readonly memory containing an 8 K BASICpackage, 4 K operating system, 1 K machinelanguage monitor and 1 K diagnosticroutine.

The display features 64 graphics char-acters as well as the standard 64 characterupper case ASCII set. This gives the effectof high resolution when displayed on thebuilt-in 9 inch (22.86 cm) video monitor.The keyboard is encoded so that by shiftingto upper case, the user has access to the 64graphics characters.

The 8 K extended BASIC package wasdesigned by Microsoft, the people who havecreated a number of interpreters for per-sonal computers. It features strings, integers,multiple-dimensioned arrays, 10 digit preci-sion floating point capability, and "peek"and "poke" commands.

The price of the PET is $595 completewith 4 K bytes of programmable memory.The $795 version features 8 K bytes of pro-grammable memory. All IO connections(excluding the built-in tape drive, keyboardand video display) are made via an IEEE-488 bus.

The PET is an excellent example of thetrue appliance computer: a neat, self-con-tained graphics oriented package designedfor the mass market as well as for the seriousexperimenter."

Photo 2: A closeup of the PET's unusual touch-sensitive keyboard with 73keys and 64 shifted graphics symbols in addition to ordinary upper caseASCII characters.

Photo 3: A side view ofthe PET highlighting itsmodernistic lines.

50

\fertiatim

You want to record your message verbatim—word for WXl!Ul!C Now, Verbatim media. Its a new formulation of ferric

You want to record your message verbatim—word forword—whether it's bits, bytes or "Dear Folks" trans-lated into word processor language.

Our objective in manufacturing recording media for

the electronics industry—digital tape cassettes, floppy

disks, mag cards, computer cartridges—is to give you the finest,

the best, the most dependable, the most cost-effective.

That means rugged, long-lived, abrasion-resistant recording mediawith superior magnetic qualities. If we made tires, they'd be steel-belted radials.

We delivered our first digital grade certified tape cassettes back inthe beginning, 1969. We made the first commercial 3740-com-patible floppy disks that didn't bear IBM's name. And the firstFlippy* reversible flexible disks with anyone's name on them. Thefirst mini data cassette is ours. And we've got the newest minia-ture flexible disk, the MD 525.

Now, Verbatim media. It's a new formulation of ferric

tTlP^!10P oxides, an advanced macromolecular binder system

, •■"■"1^"'^^«*J5^' to adhere it to the tough polyester film, and a proc-

1C Qllfl I [tV ess control system that demands over 200 separate7 quality checks before the material is cut, packaged,and certified to be 100% error-free.

The final quality check? "Make it pretty!" Our production peopletell us that magnetic recording media is one of the rare instances inmanufacturing where aesthetic appearance translates directly intofinal product quality. It has to look beautiful to work beautifully.We have the formulas, the machines, the technology to make highquality recording media. But it takes the best people in the indus-try to deliver Verbatim disks, cards, cartridges and cassettes.You'll find them at your favorite retail computer store.

"V#*

&b

^Qnet

•'--x

^diskettes

Information Terminals

Aferbatim

Circle 372 on inquiry card.

Information Terminals Corp.

Sunnyvale, California

■p. u

1

>""

Sil '

^K. :

k i'l

*f.......

■ '*$> IKr

IT*?

"-.\1

^Hs£nS7£^3

". •—-•-

— -: "«■ >V~

*£"-: all, -••

--a

.j <n

m

= '

r.--7^|

hi

^^^^m

— ■ ' J

-■

j """";:,'il

7 7 7 7i

Mm.. I

.'—rt

P' -"

ss

• w» »-»-• ^ • •*- 1

.

V^ ■e^Qb-VL

*—- >— n

f J£ BPS

f--

ivl

V Hlf.1^w.

»■•■"-"* - 9 - — m

Hr^j

cr «.

i

**X_

jf i7»«

.J-

■;

c

, ,„*■

: i v. a

i^^^^^^

KT10*-6 in

* / */

I

1 l /'**•. *»•/ '-*•

J

h

K '

ffl#ra

Jc J * ^ 1 f.

1 ' jjn >'V' '

1 ?. '

C38 «- -

■*''■*

i «-Jl r-

;

'

mt' " •■', '*

!

i

1 J '

14 ?

f§ m

i ;

..__ .

The end of bad solder joints, heat damagedcomponents and sick IC's. Introducing theSemikit. Item 1, a 16KRA Memory Board, $369.

Let's face it. Loading andsoldering PC Boards is not muchfun for the kit builder. Evenmore important, it's the placewhere most of the trouble getsintroduced. The real fun andeducation comes in running andtesting boards.

Now the Semikit withfully tested IC's.

At the price of a kit, ProcessorTechnology Corporation intro-duces the Semikit. It's a fullystuffed, assembled and wavesoldered PC Board loaded withIC's that have gone through Q.C.and final checkout (a first inthe industry).

We leave you the fun oftesting with our fully documentedset of instructions. We do theproduction tasks of loading, wavesoldering and inspecting theboards. You do the more interest-ing and time consuming choreof testing and burning-inthe boards.

The result is one sweet deal

for both of us. You get a boardwhere the primary causes ofdamage (poor solder joints, excesssolder and bad IC's) are virtuallyeliminated. You get a board ofhighest professional quality.And we get the business!

The 16KRA MemoryBoard's at your dealer now.

Your Processor Technologydealer has the first Semikit, a16KRA Memory Board, in stockand ready to go right now. Youcan take it home tonight for$369 as a Semikit or for $399fully assembled, tested andburned-in.

You'll have a 16,384 bytememory with a better price per-formance ratio than anythingon the market today. Now you canafford to add quality, highdensity memory to your systemfor remarkably little. And youcan add enough to solve complexcomputing problems right inthe main frame.

The memory features invisible

refresh. There's no waiting whilethe CPU is running. Worst caseaccess time is 400 nsec. Each4,096 word block is independentlyaddressable for maximum sys-tem flexibility. Power is typically5 watts, the same as most single4K memory modules. Back-uppower connection is built-in.

Other Semi's are comingyour way.

The 16KRA Memory isProcessor's first step in addingmore fun, capability and reli-ability to your computer systemat lower cost. Other modules areon the way to your dealer now.Come on down today.

Or you may contact usdirectly. Please address ProcessorTechnology Corporation, Box B,7100 Johnson Industrial Drive,Pleasanton, California 94566.Phone (415) 829-2600.

ProcessorTechnofogy

Circle 355 on inquiry card.

The NCC:

By Chris Morgan, Editor

Over 36,000 people filled the DallasConvention Center on June 13 to 16 toattend the biggest National Computer Con-ference ever. Virtually every manufacturerin the computing field was there either toexhibit or to take notes. But what madethis year's NCC different from past showswas the NCC sponsored Personal ComputingFair and Exposition held concurrently in theConvention Center.

Photo J: The main exhibit hall at the NCC.

Photo 2: The Personal Computing section of the NCC.

m

»

■-■■

0m

- -' %'"

±

P3L

m..

'

^

y

'if >^B

■3 *

Photo 3: Another view of the main exhibition hall.

54

A Dallas Delight

Photographs by Charles Floto

Manufacturers of personal computers andrelated products turned out in force to dis-play their wares before large crowds. Hope-ful hobbyists and experimenters exhibitedtheir home computer projects at thePersonal Computing Fair (devoted entirelyto noncommercial individual and groupowned projects), and vied to win prizes.

Both sections of the show featured exten-sive seminars and panel discussions aboutpresent and future uses of computers; per-sonal computing club representatives met todiscuss the possibility of forming a NationalClub Congress.

It was gratifying to see long term NCCveterans mingling with hackers from allover the country in a congenial atmospherefilled with microcomputers that playedgames and dazzled the eye with elegant colorgraphics. One group learned from the other,and ideas were exchanged at extremelyhigh rates.

Seeing everything at the show was quite achallenge: some 300 manufacturers werespread out over five football field's worthof exhibits upstairs. And the main floorexhibits were big: Data General, forexample, brought an entire working plane-tarium controlled by a Nova minicomputerand capable of holding 50 people inside.Many of the "booths" were two stories

Photo 4: Commodore's new PET computer,a popular item at the show. The unit fea-tures 14 K bytes of read only memory in-cluding an operating system, diagnostic rou-tines and an 8 K BASIC interpreter byMicrosoft. It sells for $595 including 4 Kbytes of programmable memory. A lengthywaiting list is predicted for the unit.

Photo 5: Deborah Ashman demonstrating her robot Joey, whomoved back and forth to the tune, "If I Only Had a Brain. "

Photo 6: Wes Stewart working at the cabinet desk he built for his SwTPC6800 computer system. The program running is a golf simulation.

55

Photo 7: Allen Isaacsondemonstrates one of theexhibits at the PersonalComputing Fair: a videogame converted into acolor graphics terminalthat uses a Teletype in-stead of a joystick. Thehardware was designed byRobert and RichardBenjamin, father and son,respectively.

high; others took up areas of 30 by 60 feetor more.

There was much to see in the PersonalComputing section downstairs, too: Commo-dore's new PET microcomputer, a varietyof the latest video games programs (inclu-ding a tank game for micros), new musicprograms, talking computers, software pack-ages for FORTRAN, business programs,floppy disks, and so on.

Summarizing the entire show is almostimpossible: we found it inspiring (and some-times frustrating!) to look at some of thestate of the art devices, such as high resolu-tion video displays, on view in the mainexhibit hall.

From the looks of this convention, thecomputer industry is in good shape, and welook forward to an even bigger and bettershow next year."

Photo 8: Personal Com-puter Fair first prize win-ner Tom Aschenbrennershown with the systemhe amassed over a fiveyear period from surpluscomputer parts. A TexasInstruments 980A controlsa system which stores andtransmits messages for thebenefit of Dallas areahams.

wrjmm

II1

Photo 9: Photographer Floto reflects on Sperry Univac'sshiny display.

56

UP AND RUNNING

TDL EQUIPMENT USED BY NEW JERSEY PUBLIC TELEVISIONTO PROCESS NEW JERSEY GUBERNATORIAL PRIMARY ELECTION RETURNS

John Montagna, computer engineer (above left),lead this successful network team in generatingelection results speedily, efficiently and reliablyusing predominantly TDL hardware and soft-ware. Montagna created three programs to getthe job done. The text for a SWAPPER pro-gram was written and assembled using the TDLTEXT EDITOR and Z80 RELOCATING MACROASSEMBLER. The SWAPPER text and alldebugging was run through TDL's ZAPPLEMONITOR. The relocatable object code waspunched onto paper tape. A MAIN USERSprogram updated votes and controlled air dis-play. An ALTERNATE USERS program gothard copy out and votes in. The latter twoprograms were written in BASIC. Montagnamodified the ZAPPLE BASIC to permit time-sharing between the two USERS programs.

Four screens were incorporated, two terminalsentered votes as they came in and were usedto call back votes to check accuracy. Mon-tagna called on the power and flexibilityoffered by TDL's ZPU board and three Z-16Memory boards.

Montagna's setup worked constantly for overfour hours updating and displaying state-wideand county-wide- results without flaw.

"I chose TDL because they have all the soft-ware to support their hardware, and it's good;it has the flexibility to do the job."

John Montagna

We salute John Montagna and NEW JERSEYPUBLIC BROADCASTING for spearheadingthe micro-computer revolution.

TDL's XITAN SYSTEMS have the capacity to dosimilar tasks for you. Write to us for XITANinformation and the name of your nearest TDLdealer.

TECHNICAL

DESIGN

LABS

RESEARCH PARK BLDG. H 1101 STATE ROADPRINCETON, NEW JERSEY 08540 (609) 921-0321

Circle 373 on inquiry card.

TechnicalFcpum

More on Inexpensive Plotters

Technical Forum is a fea-ture intended as an interactivedialog on the technology ofpersonal computing. The sub-ject matter is open-ended, andthe intent is to foster discus-sion and communicationamong readers of BYTE. Weask that all correspondentssupply their full names andaddresses to be printed withtheir commentaries. We. alsoask that correspondentssupply their telephone num-bers, which will be printedunless we are explicitly askedto omit them.

Michael W J Carmichae!Harms Cottage, High StBroughton, HampshireS021 8AEGREAT BRITAIN

Figure 1:

I was intrigued by the proposal to make"the world's least expensive plotter" at theend of Robert D Grappel's interesting article("Give Your Micro Some Muscles," March1977 BYTE, page 35). Eliminating the con-ventional XY carriage mechanism and usingmodel aircraft servos looks like a good start.

May I put forward a somewhat differentmechanical arrangement which avoids thetwo problems you describe in connectionwith your design, viz the weight of servo 2sitting on the end of servo 1 arm, and thecomplexity of the trigonometrical equationsrequiring solution?

In figure 1 may be seen my alternativeset-up in which the two servos are bothfixed to ground and arranged concentrically.The inputs 8 and <i>, rotations about thecommon pivot O, control the XY positionof the pen. The moving links comprise a4 bar linkage which has been dimensioned toapproximately satisfy the following con-ditions:

• When OA is fixed the point P tracesa straight line locus.

• When produced this line passesthrough point O.

• The velocity ratio between theangular displacement of the linkOC and the rectilinear displacementof the point P is constant.

The upshot of all this is that we now, inplace of an XY plotter, have an R8 plotter!The radial distance of P from the origin Ois proportional to the angle between thelinks OA and OC {6 + <£). The polar angle issimply proportional to the angular displace-ment 6 of link OA. It is now a straight-forward matter to express X and Y in termsof 6 and $.

The professional may quibble about geo-metric distortion, but the homebrew manwill discover an acceptable working range. Inow confess that I have not actually builtsuch a plotter myself. I am hoping someoneelse will be good enough to pursue the ideafor me!

By the way I do enjoy your publication;it is most readable."

The suggestion you make is very attrac-tive, especially when you consider the nice-ness of having the servos on concentricshafts. It is not clear, however, what theoptimal geometry is for such a plotter. Infigures 2a, 2b and 2c we did a paper andpencil exercise to look at a particular geo-metry chosen by trial and error amongabout three different extremes. In thisgeometry, we used a symmetrical quad-rilateral for which dimensions of X and 2Xwere used, with the extension arm to thedrawing point P located at a distance Xfrom point B. (Subscript notation on thepoints is used to identify cases.)

In figure 2a, we 've drawn this geometryin a case which looks very promising.For three different values of the angularparameter corresponding to <& in figure 1,the construction produces an apparentlystraight line with 6 held fixed at somevalue. However, in cases of figure 2b and2c, with 6 changed in either direction fromits value in figure 2a, there is an apparent

58

Figure 2a:

Figure 2b:

Figure 2c:

deviation 8 from a straight line path forpoint P thru several states of angle <f>. Still,the construction looks quite promisingif the problem can be set up analyticallyand parameters optimized for the smallestdeviations as the angles are changed.

Another point worth mentioning: theuseful range of the angles in this typeof construction is very small. In goingfrom the example of figure 2b to figure 2c,the change in angle 0 is approximately 45degrees. This small angular change wouldrequire gearing to spread the useful controlrange of a model aircraft servo (180 degrees)over a smaller angular displacement. Notealso that in our choice of parameters for thisexample, the locus of points P does notintersect the origin when extended as astraight line. If the constraint that distancePC equal distance OC is observed, this willguarantee that P intersects the origin.However, this criterion only guarantees thatthe locus of all points reachable by themoving point P will pass through the origin,and experiments with a compass andstraightedge will verify that this locus is notnecessarily a straight line through the origin,but is an arc of a curve. . .CH

Canada Boards DO Something

systems, inc

SC;

1 'i t I I I

1111 It

—I

CL2400

Real Time Clock

$98—Kit

$135—Assembled

If your system needs to know what time it is, our CL2400 isthe board for you. The present time in hours, minutes, andseconds is always available for input, and is continuouslyupdated by the highly accurate 60 Hz power line frequency.Need periodic interrupts7 The CL2400 can do that, too, at anyof 6 rates. Reference manual with BASIC and assemblylanguage software examples included.

PC3200

Power Control System

PC3232 $299—KitPC3216 S189—Kit

PC3202 $39.50—Kit

$360—Assm.

$240—Assm.

$52—Assm.

If your system needs on/off control of lights, motors,appliances, etc., our PC3200 System components are foryou. Control boards allow one I/O port to control 32 (PC3232)or 16 (PC3216) external Power Control Units, such as thePC3202 which controls 120 VAC loads to 400 Watts. Opticallyisolated, low voltage, current-limited control lines arestandard in this growing product line.

nahari

systems, inc.

(formerly comptek)

P.O. Box 516

La Canada, CA 91011

(213) 790-7957

59

Circle 374 on inquiry card.

Othello, a New Ancient Game

Richard O Duda

590 Vine St

Menlo Park CA 94025

Othello is a 2 person board game basedon the 100 year old game of Reversi. Itresembles GO, but is much faster pacedand easier to learn. If you are not alreadyan Othello buff, this program will bothteach you the game and provide an enter-taining addition to your games library.

The game is normally played on an 8by 8 checkerboard with pieces that areblack on one side and white on the other.The game begins with four pieces making acheckerboard pattern in the center of theboard as shown in figure 1. When it is yourturn, you try to convert a run of your op-ponent's pieces, vertical, horizontal ordiagonal, to your color. You can do this ifyou place your piece so that each end of therun is bounded by pieces of your color. Partof the action comes from the fact that youmust either make such a conversion orforfeit your turn. The game is over after60 moves or when both players must forfeittheir moves.

(a)

A6CDEF6H

(b)

ABCDEFGH

1

1

xxxxxxxo

2

2

xxxoxxxo

3

3

xxxxxxxo

4

• ••0X**«

4

xxxxoxxo

5

• **xo***

5

xxxoxxxo

6

6

xxoooxxo

7

7

xxxoxxxx

8

8

ooooooox

Figure I: These two example boards show the Othello game board at thebeginning and end of a typical game. The game is always initialized to theconfiguration in figure la. Figure lb shows the board at the end of a typicalgame. This game was played to completion with 60 moves. The computerwas soundly beaten having only 20 pieces to the human player's 44.

The program has two strategies it candeploy against you, one elementary and theother simple. If losing to a computer wouldbe too great a blow to your self-esteem,request the elementary strategy. After yourconfidence is fairly secure, you can risk ano holds barred encounter. Eventually youwill tire of your prowess, and will want tomodify the program to improve its play.Hopefully, the comments in the programwill make its operation transparent and willinvite modifications.

A few words about modifications thatmay be required to play at all. A randomtie breaking strategy is used to providevariety, but it is not essential. If your BASICdoes not provide random numbers, you candelete lines 1310 and 1320 with nosignificant change in performance.

At the outset the program asks if youwant it to pause before making its move.This pause is most helpful with a displayterminal, since it keeps the output fromflashing by too quickly. The output of theboard is done by the last subroutine in theprogram. It requires the ability to displayat least 11 lines of 19 characters, and youwill probably want to modify the programif your TVT cannot handle the 26 lines of32 characters needed to see two boards andsome accompanying output simultaneously.

Of course, if you use a relatively slowhard copy printer with this program, it willtake a long time to type out all the boards.The obvious solution is to suppress thisprintout except on request, and use anactual board to record the positions ofpieces for your own use.

Good luck, and remember: Othellowas so named because it is a game of drama-tic reversals.

60

Circle 375 on inquiry card.

Listing 1: A BASIC listing for Othello.

000100002000030

oooio

00050000600007000080

00090

00100001 1000120001 ?0001 4000150001600017000160001900020000210002200023000210002500026000270002800029000300003100032000330

00310

003500036000370003800039000100

001 1000120

00130

0011000150001600017000180001900050000510005200053000510005500056000570005800059000600006100062000630006100065000660006700068000690007000071000720007300071000750007600077000780007900080000810006200083000810008500086000870008800089000900009100092000930

REM

HEM

REM

REM

REM

REM

REM

REM

REM

REM

REM

DIM A (

REM

PRINT

PRINT

INPUT

IF X$

IF xi

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

PRINT

REM

PRINT

F2 = 0

INPUT

IF X*

IF X$

F2 = 1

PRINT

PRINT

S2 = 0

INPUT

IF X*

IF Xf

S2 = 2

HELLOAYS TH1 . TA2. ADARD IS= 0 F= B F= W FAND JAND JAND D9),IKITIALREETIN0 YOU

AUTHORE GAME "OTHELLO" WITHKE THE MAXIMUM NUMBERD A BONUS FOR OUTSIDETHE ARRAY A, BOUNDEDOR EMPTY SQUAREOR BLACK SQUARE -- XOR WHITE SQUARE -- 0ALWAYS USED FOR ROW/COLUMN1 STORE INCREMENTS TO THE

RICHARD 0. DUDATWO STRATEGIES:OF PIECESPOSITIONBY O'S (BLANKS)

(INTERNALLY -1)(INTERNALLY +1)INDICESNEIGHBORS

STORE CHARACTERS A-H,X,.,0 FOR OUTPUT),J1(8),Ct(8),D$(2)GREETING

GS FROM OTHELLO"WANT INSTRUCTIONS (Y OR N) ";

"N" THEN 390"Y" THEN 160

OTHELLO IS PLAYED ON AN 8 X 8 CHECKER BOARD,"

ROWS NUMBERED 1 TO 8 AND COLUMNS A TO H."

THE INITIAL CONFIGURATION IS ALL BLANK, EXCEPT"

FOR THE CENTER FOUR SQUARES, WHICH FORM THE"

PATTERN"

OX"

X 0"

TRY TO PLACE YOUR PIECE SO THAT IT 'OUTFLANKS'"MINE, CREATING A HORIZONTAL, VERTICAL, OR"DIAGONAL RUN OF MY PIECES BOUNDED AT EACH END"BY AT LEAST ONE OF YOURS. THIS WILL 'FLIP' MY"PIECES, TURNING THEM INTO YOURS."NOTE: YOU MUST CAPTURE AT LEAST ONE OF MY"PIECES IN THIS WAY IF IT IS AT ALL POSSIBLE."IF IT IS NOT POSSIBLE, YOU FORFEIT YOUR TURN BY"ENTERING 0,0 FOR YOUR (ROW,COL) MOVE."

INITIALIZE

"SHOULD I WAIT BEFORE MAKING MY MOVES (Y OR N) ";

X$

= "N" THEN 160

<> "Y" THEN 110

"OK. TYPING ANY CHARACTER WILL LET ME GO.""SHOULD I PLAY MY BEST STRATEGY (Y OR N) ";

X$

= "N" THEN 520

<> "Y" THEN 180

W - +1

D $ ( E + 1 ) = " X "

D $ ( 0 + 1 ) = " . "

D$(W + 1) = "0"

FOR K = 1 TO 8

READ IKK)

NEXT K

DATA 0,-1,-1,-1,C

FOR K = 1 TO 8

READ J1(K)

NEXT K

DATA 1,1,0,-1,-1,

FOR K - 1 TO 8

READ C$(K)

NEXT K

DATA A,B,C,D,E,F,

A NEW GAME

REM SET UP

FOR I = 0 TO 9

FOR J = 0 TO 9

A(I , J) = 0

NEXT J

NEXT I

A(1,1 ) = W

A(5,5) = W

A( 1 , 5 ) = B

A(5, 1) = B

C 1 = 2

H 1 = 2

N 1 = 1

Z = 0

REM HUMAN'S CHOICES

PRINT "DO YOU WANT TO HAVE X OR

C = W

H = B

INPUT X$

IF Xt

IF Xfr

C = B

H = W

PRINT "DO YOU WANT TO GO FIRST (Y OR N)

INPUT XJ

BASIC

SOFTWARE

■lis!

volume am

■ \"Q*~&

flyP^HB

'TAB

That's right, if everybody who read this ad forour BASIC SOFTWARE VOLUME 1 albumwould order one, we'd be sold out! Includeslots 'n' lots of your favorite Basic programssuch as LUNAR LANDER and BLASTOFF!,plus new ones like MAILING LIST, FOURIERFIT and AMPLE ANNIE. Plays through yourTarbell, Kansas City or Altair cassette inter-face (we coded all three ways). Or makecassette copies. Only 6 bucks. Don't be adummy, order today! Satisfaction guaran-teed or money back.

$g to: SOFTWARE RECORDSl

V''*' PO BOX 8401-B

UNIVERSAL CITY, CA 91508

(CALIFORNIA RESIDENTS: PLEASE ADD 6% SALES TAX)

<>

'X" THEN 920"0" THEN 870

00910009500096000970009800099001000010100102001030010100105001060010700108001090011000111001120011300111001 1 50011600117001 18001 1900120001210012200123001210012500126001270012800129001300013 100132001330013100135001360

IF X$

IF Xt

REM

GOSUB

GO TO

REM

IF F2

INPUT

B1 = -

13 = J

T1 = C

T2 = H

REM

FOR I

FOR J

IF A(I

REM

REM

GOSUB

IF F1

REM

REM

REM

U = -1

GOSUB

REM

IF

IF

SI

IF

S 1

REM

IF S1

IF SI

REM

REM

REM

R = RN

IF R >

REM

B 1 = S

13 = I

J3 = J

N" THEN 1020"Y" THEN 930NT INITIAL BOARD00

PUTER'S MOVETHEN 1020

SI(I= S(J= S

<>

PRI310169COM= 0X$13 =

SCAN FOR BLANK SQUARE

= 1 TO 8

= 1 TO 8

,J) <> 0 THEN 1380

FOUND A BLANK SQUARE

DOES IT HAVE AN OPPONENT AS A NEIGHBOR?

2620

= 0 THEN 1380

FOUND AN OPPONENT AS A NEIGHBOR

HOW MANY OF HIS PIECES CAN WE FLIP?

(DON'T DO IT NOW)

2820

EXTRA POINTS FOR BOUNDARY POSITION

= 0 THEN 1380

- 1 ) • (I - 8 ) <> 0 THEN 12301 + S2

- 1 ) « (J - 8 ) <> 0 THEN 12601 + S2

IS THIS BETTER THAN THE BEST FOUND SO FAR?

< Bl THEN 13 BO

> Bl THEN 1310

A TIE; RANDOM DECISION

THE NEXT TWO EXECUTABLE STATEMENTS CAN BE DELETED

FOR A VERSION OF BASIC-WITHOUT RANDOM NUMBERS

D(1 )

0 . 5 THEN 1380YES1

61

Listing 7, continued:

01370 REM END OF SCAN LOOP

01380 NEXT J

01390 NEXT I

01100 REM COULD WE DO ANYTHING?

01 1110 IF B 1 > 0 THEN 0118001120 REM NC

01130 PRINT "I HAVE TO FORFEIT MY MOVE"

OHIO IF Z = 1 THEN 2 190

0 1150 Z = 1

01160 GO TO 1690

01170 REM MAKE THE MOVE

0118C Z = 0

01190 PRINT "I WILL MOVE TO ";

01500 PRINT I?;

01510 PRINT ". ";

01520 PRINT C$(J3)

01530 1=13

01510 J = J 3

01550 U = 1

01560 GOSUB 2820

01570 c1 = c1 + s1 + 1

01580 HI = HI -SI

01590 N1 = N1 + 1

01600 PRINT "THAT GIVES ME ";

OlfilO PRINT S1;

01620 PRINT " OF YOUR PIECES"

01630 REM PRINT OUT BOARD

01610 GOSUB 3100

01650 REM TEST FOR END OF GAME

01660 IF HI = 0 THEN 2190

01670 IF Nl = 61 THEN 2190

016P0 REM HUMAN'S MOVE

01690 T1 = H

01700 T2 = C

01710 PRINT "YOUR MOVE -- (ROW, COL) ";

01720 INPUT I, X{

01730 IF I < 0 THEN 1720

01710 IF I > 8 THEN 1720

01750 IF I <> 0 THEN 1820

01760 PRINT "ARE YOU FORFEITING YOUR TURN (Y OR N) "

01770 INPUT X$

01780 IF X$ <> "Y" THEN 1710

01790 IF Z = 1 THEN 2190

01800 Z = 1

01810 GO TO 1000

01820 FOR J = 1 TO 8

01830 IF C$(J) = XJ. THEN 1E70

01810 NEXT J

01850 GO TO 1720

01860 REM CHECK IF BLANK

01870 IF A(I,J) = 0 THEN 1910

01880 PRINT "SORRY, THAT SQUARE IS OCCUPIED; TRY AGAIN"

01890 GO TO 1720

01900 REM CHECK FOR LEGAL NEIGHBOR

01910 GOSUB 2620

01920 IF Fl = 1 THEN 1970

01930 PRINT "SORRY, YOU ARE NOT NEXT TO ONE OF MY PIECES;

01910 PRINT "TRY AGAIN"

01950 GO TO 1720

01960 REM CHECK IF LEGAL RUN

01970 U = -1

01980 GOSUB 2820

01990 IF SI > 0 THEN 2030

02000 PRINT "SORRY, THAT DOESN'T FLANK A ROW; TRY AGAIN"

02010 GO TO 1720

02020 REM EVERYTHING LEGAL; MAKE HUMAN'S MOVE

02030 Z = 0

02010 PRINT "THAT GIVES YOU ";

02050 PRINT SI;

02060 PRINT " OF MY PIECES"

02070 U = 1

02080 GOSUB 2820

02090 HI = HI + S1 + 1.

02 100 CI = CI - SI02110 N1 = N1 + 1

02120 REM PRINT OUT BOARD

02130 GOSUB 3100

02110 REM TEST FOR END OF GAME

02150 IF CI = 0 THEN 2190

02160 IF N1 = 61 THEN 2190

02170 GO TO 1000

02180 REM END OF GAME WRAPUP

02190 PRINT

02200 PRINT "YOU HAVE ";

02210 PRINT HI;

02220 PRINT " PIECES AND I HAVE ";

02230 PRINT C1 ;

02210 PRINT " PIECES -- ";

02250 IF HI = CI THEN 2290

02260 IF H1 > CI THEN 2310

02270 PRINT "SORRY, I WON THAT ONE."

02280 GO TO 2320

02290 PRINT "A TIE !!"

02300 GO TO 2500

02310 PRINT "YOU WON ! "

02320 C1 = C1 - H1

02330 IF CI > 0 THEN 2350

02310 C 1 = -CI

02350 CI = (61 « CI) / Nl

02360 PRINT "THAT WAS A ";

02370 IF C1 < 11 THEN 2190

02380 IF C1 < 25 THEN 2170

02390 IF C1 < 39 THEN 2150

02100 IF C1 < 53 THEN 2130

02110 PRINT "PERFECT GAME."

02120 GO TO 2500

02130 PRINT "WALKAWAY."

02110 GO TO 2500

02150 PRINT "FIGHT."

02160 GO TO 2500

02170 PRINT "HOT GAME !"

02180 GO TO 2500

02190 PRINT "SQUEAKER !!"

02500 PRINT

02510 PRINT "DO YOU WANT TO PLAY ANOTHER GAME (Y OR N)

02520 INPUT Xl

02530 IF X$ = "Y" THEN 700

02510 IF X$ <> "N" THEN 2520

02550 PRINT "THANKS FOR PLAYING."

02560 STOP

02570 REMREM

02580

02590 REM

02600 REM

02610 REM

SUBROUTINE TEST-FOR-PROPER-NEIGHBOR

ASSUMES :

I,J LOCATES A BLANK SQUAREYOU HOPE TO SEE AN ADJACENT T2 (= -T1)02620 FOR II = -1 TO 102630 FOR J1 = -1 TO 1

02610 IF AU+I1 , J + J 1 ) = T2 THEN 271002650 NEXT J102660 NEXT II

02670 REM NO T2 FOUND; FAILURE02680 F1 = 002690 RETURN02700 REM SUCCESS0 2 7 10 F1 = 102720 RETURN

02730 REM02710 REM02750 REM02760 REM02770 REM02780 REM02790 REM02800 REM02810 REM02820 S1 = 0

SUBROUTINE SCORE-AND-UPDATEASSUMES:

(I,J) IS A TENTATIVE PLACE FOR A PIECE Tl.

WANT RUNS OF T2 = -Tl, TERMINATED BY A T1.

IF U IS TRUE (1), MARK THOSE RUNS AS TVS.

RETURN SUM OF ALL RUNS (T2'S ONLY) IN SI.

MAIN PROGRAM CONTAINS THE FOLLOWING ARRAYS:

II:

J1:

02830 FOR K

02810 15

02850 .15

02860 16

02870 J6

02880 S3

Tl THEN 29700 THEN 3070

1 TO 8

IKK)

JMK)

1 + 15

J + J5

0

02890 IF AU6.J6) <> T2 THEN 307002900 REM LOOP THROUGH THE RUN02910 S3 = S3 + 102920 16 = 16 + 1502930 J6 = J6 + J502910 IF A(I6,J6)02950 IF A(I6,J6)02960 GO TO 291002970 S1 = S1 + S302980 IF U <> 1 THEN 307002990 REM UPDATE BOARD03000 16 = I03010 J6 = J03020 FOR K1 = 0 TO S303030 A(16,J6) = Tl03010 16 = 16 + 1503050 J6 = J6 + J503060 NEXT K103070 NEXT K03080 RETURN

SUBROUTINE PRINT-BOARD

A1 TO

TO

03090 REM

03100 PRINT

03110 PRINT

03120 FOR I

03130 PRINT I;

03110 FOR J = 1

03150 PRINT " ";

03160 PRINT D$(A(I,J)+1)

03170 NEXT J

03180 PRINT

03190 NEXT I

03200 PRINT

03210 RETURN

03220 END ■

C D E F G H"

62

NOW! Every BusinessCan Own One

A secretary, accountant,and financial advisorall rolled into one forless than $1.50 perhour. Sound too goodto be true? Let theADMINISTRATOR doit for you.

Our "General Ledger Program" is a complete comprehensive businesssystem designed to keep all of your company's records without the need forupdating from other programs and there is no need to keep monthly tearsheets to be added together for the end of the year reports as our system willprovide you with year end account totals for cash, accural, hybrid and chart ofaccounts systems. This program generates over 30 major reports. Including:941's, P/L's, Balance Sheets, and year end account totals for filing FederalIncome Tax Schedule C's and/or 1120's plus a lease purchase plan and24-hour field service in most areas. Hard to believe! For less than $250/monthyou can lease your very own, nothing else to purchase.ADMINISTRATOR I includes a miniature micro computer; S-100 Buss, withover 65K of user RAM. No switches to set, Power-on operation, multiple I/Ointerfaces, line printer, Video Terminal, Double-Density Disk, Disk ExtendedBasic and applications Software diskettes complete with full documentation(includes General Ledger, Payroll, Word Processing, Medical A/R, A/P,Engineering, Statistics, more) includes "Help" and Tutorial Software.

ADMINISTRATOR I $8999.00*

Additional 600K disks optional.

Compare at $30,000 for other micros or $70,000 for mini's

"Add $100 for Express shipping and handling • No Purchase Orders — Include 50% deposit with all COD orders.

BusinessSoftware Too!

Includes over$75,000.00 of busi-ness programs freeand that's only partof what we're givingaway. We built ourreputation providingquality software ataffordable prices.Now we are going todo the same with ourAdministrator I

©

SCIENTIFIC RESEARCH

1712-B Farmington Court • Crofton, MD 21114 (301)721-1148

Dealer Inquiries Invited

An APL Interpreterfor Microcomputers

Part 3: Mathematical Processing

Mike Wimble

6026 Underwood Av SW

Cedar Rapids IA 52404

Introduction

In part 2 of this 3 part series (see lastmonth's issue) I covered the expression eval-uation portion of an APL interpreter. Thismonth's concluding installment deals withmathematical processing. Mathematical pro-cessing is a 2 part function: recognitionfollowed by interpretation. Both of thesetopics are covered here, followed by a shortsummary.

The Great APL Interpreter Contest

As an incentive to those experimenterswho would like to try writing their'own APLinterpreters based on this series of articles,BYTE announces the Great APL InterpreterContest. We will award prizes for APL inter-preters (suitable for publication with royal-ties to authors) based on Mike's flowcharts(or independent of them if you prefer).

Contestants are free to write their inter-preters for any microprocessor they choose.Entries will, however, be judged on theirsuitability for use on small systems with aminimum of 16 K bytes of memory, as wellas on programming elegance and efficientuse of space. All of these factors shouldtherefore be kept in mind.

Entries should be addressed to BYTE,attn: The Great APL Interpreter Contest,70 Main St, Peterborough NH 03458, and

must be postmarked no later than midnight,February 28 1978. Entries must be in theform of a publication quality manuscriptwhich describes the implementation of theinterpreter and which includes a listing ofsource code and object code. Contestantsshould also submit machine readable sourceand object code in the form of paper tape orcassette.

The winners (if any) will receive $1000plus normal author payments, should theentry be chosen for publication in bookform or as an article in BYTE. We reservethe right to choose more than one winnerunder the same terms.

Judging will be done by the editors ofthis magazine. Those seriously interested inentering this contest should call CarlHelmers or Chris Morgan at BYTE,(603)924-7217. May the midnight oil burnprosperously for all.

64

Recognition of a Valid Operator

The recognition process involves testingthe current syllable in table SP for an appro-priate noun. If the noun is found, thenCODE will be set to reflect the appropriatespecified operation. Figure 29 shows thisprocess clearly for the recognition of mon-adic operators. The recognition of dyadicoperators (see figure 30) is a little moreinvolved, but the principle is the same. Theextra processing involved is merely to recog-nize the two possible special forms of adyadic operator: the inner product andthe outer product.

CALLMOP(B)

B set true if a monadic operator found.

B set false otherwise.

f MOP J

y

rES

SP(I).C -4ORSP1D.C = 5

Tno

CODE-*- SP(I).PB-«—TRUE

I-*— I -1

B-«-FALSE

-Tret

JRN J

CODE-«-SP(I).PI*- I-l

CALL DOP(B)

B set true if a dyadic operator found.

B set false otherwise.

. spu).c-7 a I-•i spuj.p- vi I

Figure 29: Recognition ofa monadic operator.

(ERROR 2 ■INVALID OUTER PRODUCT EXPRESSION

Figure 30: Recognition of a dyadic operator.

65

Figure 31: Interpretation of a monadic operator.

/monadic \I subr J

AUX-«-SVAL<SV)

V FIGURE 34)

>(TOFIGU

MIXTE y FIGURE 32)

NO; SCALAR MONADIC OPERATOR

X-— D (AUX)Z-— DA

YES

MAKE COPY OF DESCRIPTOR

\ r- "i

S Z i (DA + I+D (AUX + I )) 1

l_ _J

D(Z)-«-D (AUX)AUX-«—AUX+IX-«- X-lZ-»— Z+ 1

/■^ ? ^v

CT\ -}

NO

\t>

V-— D(AUX)

\ CO

3E \

OPERAND FOR TILDE OPERATORNOT A BINARY 0 OR I

5,INVERSE

(ERROR 20 J

ATTEMPTED DIVISION BY ZERO6,EXPONENTIATION

2.7182818 f V

D(Z)-«—VZ+- Z + IAUX-«- AUX+IX*- X-l

( FROMFIGURES32,33AND 34)

( RETURN J

Interpretation of Monadic Operators

After a valid operator is recognized, it isinterpreted. Interpretation involves un-stacking pointers from table SVAL, whichpoints to the operands; performing theoperation to create a result in table D; andfinally stacking a pointer to the result backin table SVAL. Figure 31 begins the descrip-tion of monadic interpretation. Generally,a monadic operator generates a result havingthe same shape as its operand; in two cases,however, this is not true. The process ofreduction produces a result with one lessdimension than the operand. Also, the mon-adic operators iota, rho, and ravel may pro-duce results having greater or fewer dimen-sions than their corresponding operands.

So, in figure 31, after saving a pointerto the argument for the monadic operator,a test is made for a reduction or mixedoperator and the appropriate process isexecuted. The interpretation of nonspecialmonadic operators is then straightforward.First, since the result will have the sameshape as the argument, it is given the samedescriptor as the argument. Next, the mon-adic operator is performed on each value inthe argument (or on the single value forscalar argument) to produce each value inthe result. Finally, a pointer to the resultis stacked in table SVAL and index DA isupdated to point to the next free spacein table D.

66

MOST ORDERS SHIPPED WITHIN 10 WORKING DAYS

■SEflLS,

ORDER FORM [Write in each box the quantity ol each part required]KIT ASSEMBLED KIT ASSEMBLED KIT ASSEMBLED

J 4KROM { 1 WWC | |68EXT-L| j

2 8KSC-Z [ 3 88 EXT J 68WWC [

3 68KSC I | 68EXT-S | 1 3J BBUC

| 8KSC | |

J ASSEMBLY AND OPERATING MANUAL $4.00

NAME

PLEASE PRINT OR TYPE

ADDRESS

CITY STATF 7IP

SEND CHECK • MONEY ORDER • CODS ACCEPTED • CREDIT CARDS

SEALS ELECTRONICS, INCP.O. BOX 11651KNOXVILLE, TN 37919

EXPORT INFORMATIONCanadian and European community customers use our EXPORTDELIVERY SERVICE Guaranteed delivery to your address We takecare ol charges lor customs clearance, duties, lederal taxes andinsurance Add exactly 35% to the prices shown (45% in Canadiandollars) Allow 5 extra days for delivery Minimum export orderS100 00 DEALER INQUIRIES WELCOME

!

i* « s ■» « » m * I-:■ r- .:-. f%

ebb!!* t^mmmMmmmmuK^M

..,,...-. .i PT* «E iI rrrrvrr

a W, ■ "'pM

■ m^jj

8KSCWWC88 EXT68Ext-S68 Ext L68 WWCBBUC

W- - ~£'\jiL-r,

— Tp.,»»r^^^^^^~^^^^^^^

hpJ'Jl [READ ONLY I

Will accept up to 16 ea. 1702-A or 5203 EProm Providing up to 4096words of non-volatile memory for Boot Loads to Complete Programs.Programming Available at Factory for $3.00 per EProm when accom-panied by binary formated tape.

I Each 1702-A has its own Vgg clocked for Low Power Consumption.Will work with the weakest power supply based S-100 buss computer.Switched Selected Address in 4K Blacks.

I Switch selected wait states so that even the slowest 1702-A can workin your system. 0-8 wait states.Solder Masked on both sides of PC Board.Component Screened on Component Side of PC Soar

rATIC MEMORY CARD FOR SWTPC 680

! Words of Static MemoryAccess Time: 500 nsec. (250 nsec on request)Memory Chip 91 L02APC or 2102AL-4Battery Standby

Address Selected 8 Ea. SPST Dip SwitchLow PowerAll Lines Buffered.All IC's with socketsSolder Masked on both sides of PC Board.

8KSC

[STATIC MEMORY CARD]

ALTAIR",IMSAI , and S-100 buss compatible.

Access Time: 250 nsec max.

Ziloq Speed Compatible up to 4 u

Memory Chip: 2102LHPC or 2102AL-2

Battery Standby: >1.5 to 4 volts<

Address Select: 8 ea. Spst. Dip Switch.

Wait States: None

Current Reg.: Less than 200 ma per 1 K

All Address, Control, and Data out lines fully buffered

All IC's supplied with IC Sockets

Solder Masked on Both Front and Back of P.C. Board

D PRODUCTS AT KIT PRICES

Doscnption

8K Static Memory Card 500 nsec

Wire Wrap Card

88 Extender Card

Extender Card (Small)

Extender Card (Large) ■

Wire Wrap Card

Battery Back-Up Card

$ 269.00S 37.50$ 29.00$ 19.00$ 29.00$ 35.00$ 55.00

$269.00$ 47.50$ 38.00$ 25.00$ 39.00$ 45.00$ 68.00

iiiSEtRLSn

ELECTRONICSJNC.

ORDER DELIVERY: FROM STOCK TO 10 DAYS

TELEX NO. 55 7444 TELEPHONE NO. 615/693-8655

67

ro ~

i <!-?

Q 1 I ro

* + + o

□ O Q N

g — i s£ +

1 -<N I <

Z+-+1q

<<Q< T |

00* Q< N

5g4

£^

,u

§1

.a « o

rt — rt!

S ro~ O° co a.

id 5 m-a rt «

O CN .2

-a 2 5

© 3 .

.*.£? o

(— 14— t I

O C 5_ » .2

c o ■-

•^ t/i <Urrj yi -*-u rt u

L_ -si—

O. £ O

22E

C 2 a>

— II) u

a. C

o —

1_ D

id x:

a> r-+-»

c iJ

~ o

| 8

ti >

C <u

C X)

o

-Q —

, , 3

E

n

CD

a

3^otu>

i «) o)

3 -t-»

-a "^

1 2 o

<* a.

c

o

O T3

r« (D

en ra"O

3■♦-* (/)

<

O XI

§ c

r«

00

nj o

O W ra

<>

5)

§•

o

C;

o

530

0

8

P.

Continued on page 78

68

The new generation

of Diskette Drives is here

and under control.

PerSci has it-a family of diskette drives"design-years" ahead of competitive drives-nowavailable in complete low cost sub-systems for interface to 8080,6800 and other major micro-processors.

The HighestPerformanceDiskette Drives:

PerSci diskette drives,both single and dualhead units, offer a com-bination of performancefeatures unique in themarketplace while stillmaintaining compatibilityin existing systems:

□ Voice coil positioningfor access speedsseven times fasterthan competitive drives(76 tracks in 100 ms)

□ A low power all DC systemreduces cost and assures highreliability

□ Automatic electric loading simpli-fies operation and protects media

□ Small size permits 5 singledrives or 4 dual drives to bemounted vertically in a 19 in. rack

The Most PowerfulDiskette Drive Controller

The PerSci Model 1070 DisketteDrive Controller puts the advancedperformance of PerSci drives towork in microprocessor basedsystems. An IBM format com-patible, "intelligent" controller,the Model 1070 will handlefrom 1-4 drives with minimumdemand on the host system.

In fact, with addition of a power supply andkeyboard to the PerSci subsystem, the user can

perform many floppy diskroutines without additionalhardware or software.Controller features include:

□ 8080 microprocessor

□ Formatter/control IC

□ 4K disk operatingsystem

□ IK data buffer

□ 8080 or 6800microprocessor interfaces

□ RS-232 serial interfaceoptional

□ IBM data format

An Economical DisketteDrive Subsystem

A complete subsystem including a

single diskette drive (Model 70), the

Model 1070 controller with interface and

a controller-to-disk-drive cable is available

in single units or OEM quantities. For

double capacity, a dual diskette drive

(Model 277) subsystem is also available.

Don't settle for yesterday's diskette

drive. Get the new generation

under control from PerSci,

Incorporated, 12210 Nebraska Ave.

W. Los Angeles, CA 90025

(213) 820-3764

PerSci

Peripherals aGeneration Ahead.

Circle 361 on inquiry card.

f START J

PREPARE aEXECUTE

, I

RECOGNIZEAND

CATEGORIZEINSTRUCTION

MOVE

INSTRUCTIONTO INSTRUC-TION BUFFER

SET UPOPERATINGENVIRONMENTTHEN EXECUTE

RESTOREVALUES OFHARDWAREREGISTERS

EXECUTEINSTRUCTIONIN BUFFER

RESTORECORRECTPC VALUES

SAVE VALUESOF HARDWAREREGISTERS

-*.'

( RETURN J

FORMAL SIMULATIONOF INSTRUCTIONSIMPOSSIBLE TODIRECTLY EXECUTE'CORRECTLY

Figure I: Basic flowchart for the simulator. Each of the square blocksconstitutes a separate subroutine.

An 8080 Simulator

A simulator can be very useful to thepersonal computing experimenter for anumber of reasons. The idea of a simulator isto perfectly duplicate the operation of acertain computing system using the instruc-tion set of another computer. For example,suppose you have an 8080 program whichyou want to run on your 6800 system ratherthan completely write a new program. Sincethe simulator acts functionally like an 8080processor to interpret the 8080 object codebit patterns, its hardware registers and pro-gram counter, it is possible for the 6800system to run the 8080 program. Anotherattraction of a simulator is that in softwareit is possible to achieve a number of de-bugging and checkout functions as a part ofthe simulator itself, since the machine beingrun is always under total software control.When a simulator for machine X is run onmachine X, these attractions can justify theuse of the simulator.

A simulator usually has two drawbackshowever: memory requirements and speedreduction. The speed reduction drawback isusually the more objectionable feature, al-though a fairly complex simulator can easilytake up 8 K to 16 K bytes of memory space,depending on the complexity of the com-puter system being simulated. It is notunusual that thousands of instructions areexecuted before the functions of a singleinstruction can be simulated. This meansthat the simulator runs at a speed thousandsof times slower than the actual computerdoes, which may be a difficujty in somecases.

Writing a simulator is a straightforwardprocess as its functions are more or lesswell-defined by the documentation of thecomputer being simulated. All it has to do isto recognize the machine instruction, carryout its function, and record its effects. Ofcourse you will have to keep track of the

70

Kin-man Chung2114-204 S Orchard StUrbanalL 61801

values of various registers, stack pointer,program counter, etc.

If, however, the computer being simu-lated is written on the same computer doingthe simulation, eg: an 8080 simulator on an8080 microcomputer or a Z-80 simulator ona Z-80, then a lot of work can be simpli-fied. As a matter of fact, I have discovered avery neat trick for writing such a simulatorthat greatly reduces the program length andincreases its speed. An 8080 simulator waswritten on my 8080 computer which usesabout 350 bytes of memory. Using thesimulator, a quite sophisticated debuggingprogram was also written using another 1 Kbytes of memory.

General Description

In a simulator the hardware registers,such as the program counter, stack pointer,index registers, conditional flags, etc, have tobe simulated by memory locations. Theinstructions have to be recognized and exe-cuted, and the memory locations simulatingthe hardware registers have to be updatedaccordingly. Take as an example the INR A,increment accumulator, instruction in the8080. The value 1 is added to the locationsimulating the accumulator, and the loca-tions simulating conditional flags are up-dated according to whether the carry, signbit, etc, are affected. This has to be done forall the instructions in the instruction set,using software. A major portion of thesimulator program is actually "wasted"doing this kind of work. In my 8080simulator, I still have to use memory loca-tions to simulate hardware registers, but I donot simulate the instructions at all. How canthis be done? The idea is actually quitesimple. Instead of simulating the process ofeach instruction by elaborate software, I letthe computer actually execute the instruc-tion. Since the computer is simulating a

computer whose language it speaks, thiscan always be done. Of course before wecan do this, we have to fetch the instructionto be simulated into an instruction buffer, asection that is under simulator control.Under the correct operating environment,the simulator should remain in control rightafter executing the instruction in the instruc-tion buffer. The various parts of the routinethat simulate a single instruction cycle areillustrated in figure 1.

For those instructions that do not changethe values of the program counter abruptly,there is no problem. After actually executingthe instruction in the instruction buffer, theinstruction next to it is the next instructionto be executed. The only problem whichoccurs is when there is a jump or callinstruction. If this type instruction is ac-tually executed in the instruction buffer,control would be forced to go to whateverlocation is specified in the instruction. Thetrick used is to change the call or jumpoperand of the instruction to a locationunder simulator control. The original addressmust be stored someplace, of course; moreabout this later.

There are five types of instruction that

Listing 7: The 8080 assembler listing for the 8080 simulator.

; *** 8080 SIMULATOR ROUTINE ***

Get the value of PC.

Load the instruction into ace.

Call the recognizer.

Get number of byte and

load it into (D,E).

Get the value of PC again

and add these 2 num to get the next PC.

Store it back at PC.

IM: LHLD

PC

MOV

A,M

CALL

RECOGN

LHLD

NBYTE

XCHG

LHLD

PC

DAD

D

SHLD

PC

*** FETCH ***

MVI

D,4

LXI

B.IBUFF+2

XT: DCX

H

MOV

A,M

Reg D, which keeps track of # byte to fill the

inst buff, is initially set to 4.

(B,C) is set to the last byte of inst buff.

(H,L) points to the last byte of the inst in user prog.

Fetch the instruction from user program.

71

Listing 7, continued:

ST AX

B

DCX

B

DCR

D

DCR

E

JNZ

NXT

XRA

A

NXT2: DCR

D

JZ

PREPARE

STAX

B

DCX

B

JMP

NXT2

;*** PREPARE ***

PREPARE: LDA

TYPE

DCR

A

JNZ

NOT1

LHLD

HL

SHLD

PC

RET

N0T1: DCR

A

JNZ

NOT2

LHLD

IBUFF+1;

SHLD

JCAD

LXI

H.CAPT

SHLD

IBUFF+1

JMP

LDSTK

N0T2: DCR

A

JNZ

NOT3

LHLD

IBUFF+1

SHLD

JCAD

LXI

H,JPPT

SHLD

IBUFF+1

JMP

LDSTK

NOT3: DCR

A

JNZ

LDSTK

LHLD

PC

XCHG

LHLD

USESTK '

DCX

H

MOV

M,D

DCX

H

MOV

M,E

SHLD

USESTK

LDA

IBUFF+2

ANI

70

MOV

L,A

XRA

A

MOV

H,A

SHLD

PC

RET

LDSTK: LXI

H,0

DAD

SP

SHLD

STACK

LHLD

USESTK

SPHL

DCR

A

JNZ

RESTORE

LXI

H,REPT

PUSH

H

;*** RESTORE *

»•

RESTORE: LHLD

BC

MOV

C,L

MOV

B,H

LHLD

DE

XCHG

LHLD

SW

PUSH

H

POP

PSW

LHLD

HL

; *** INSTRUCTION BUFFERIBUFF: DB 0,0,0

;*** SAVE ***

SAVE: SHLD HL

PUSH PSW

POP H

and store at the inst buffer,starting from the last byte.

Rem: E contains the number of bytes of the inst.

Repeat until all bytes of the inst are moved.

Set A=0, the NOP inst.

Decrement D.

If inst buffer is filled, quit.

else fill the rest of the inst buffer

with NOP inst

until all done.

; Now check type of inst for special preparation.

; If it is not a type 1 inst, goto NOT1.;Type 1 - PCHL inst.

; PC is loaded with the value of HL.; Return.

; if it is not a type 2 inst, goto NOT2.

; Type 2 — CALL and Ccond inst.

; The operand of the call inst in the inst buffer

; is temporarily store at JCAD

; and the address CAPT is put

; into the instruction.

; Goto LDSTK directly.

; If it is not a type 3 inst, goto NOT3.; Type 3 — JMP and Jcond inst.; Similar to type 2 inst.

; except JPPT is used instead of CAPT.

If it is not a type 4 inst, goto LDSTK.

Type 4 - RST inst.

The next 8 inst push the value of PC into userstack:

Set (D,E) to PC value.

Load address of user stack.

Move high value of PC.

Move low value of PC.

Update user stack pointer value.

The next 6 inst set PC to its correct value.

ACC now contains the RST inst.

The higher 2 and the lower 3 bits are stripped.

Set L = low address.

high address is zero.

Set H = high address.

store (H, L) at PC.

Return.

Store the simulator stack pointer value.

at location STACK,

and set the stack pointer to the value stored

at USESTK, which contains userstack pointer value.

If it is not a type 5 inst, goto RESTORE.Type 5 — RET and Rcond inst.

The address REPT is forced onto the stack.: Restore values of reg B and C from loc BC.

; Restore values of reg D and E from loc DE.: Restore values of ace and PSW from loc SW.

Finally, restore values of reg H and L from loc HL.

; The 3 bytes of inst in the inst buffer are executed.

: Values of reg H and L are saved at HL.; Values of ace and PSW are saved at SW.

need special preparation and clean up work.These are:

1) PCHL,

2) CALL and call with conditionalexecution,

3) JMP and jump with conditionalexecution,

4) RST,

5) RET and return conditional.

Detailed Description

The size of the instruction buffer is set tohold one instruction. It is a 3 byte memorylocation for an 8080. If the instruction to besimulated is less than three bytes, the bufferis filled with NOP instructions. A 2 bytememory location, which we call PC, isused as a pointer into the user programto be simulated. It always points to thefirst byte of the next instruction to besimulated. Memory locations are used forstoring the stack pointer, accumulator, pro-gram status word and the other six 8080registers. Since the value of the actual 8080stack pointer is shared by the simulator andthe user program, variables STACK andUSESTK are used to store the simulator anduser program stack pointer values duringalternate use.

Below is a detailed description of each ofthe modules in the simulator routine. Theprogram is listed in listing 1, and should beread in conjunction with the text.

Recognizer

The recognizer routine determines thenumber of bytes used by the instruction andthe type of instruction to be executed. Thisis done by the use of a table (TBL). Eachentry in the table consists of four bytes,which we call b-|, b2, b3 and b/\. Thealgorithm used is (using a BASIC-likestatement):

IF (((inst AND b-]) XOR b2)=0)THEN number-of-byte=b3,type-of-instruction=b4

AND and XOR are the logical AND andexclusive OR operations to be carried out bitby bit. The logical operation for each of theentries in the table is checked until one isfound to satisfy the logical condition. If noentry satisfies the logical condition, weassume the instruction is a type 6, a 1 byteinstruction. This method has the advantageover a table of 256 entries in that it savesspace and processing time. The box at theend of this article gives examples of how itworks.

The simulator starts by loading the valueof the instruction's address and calling the

72

ARTEC Introduces

The Expandable 32K Elephant

The 8K-32K Expandable Memory That Grows WithYour System

Now, for the first time, you can have areliable true static memory that will growwith your system. Start with the board and8K memory. Then add on one, two or three8K increments of memory up to 32K. 250 nsaccess time. The Artec 32K ExpandableMemory allows you plenty of room formemory and all necessary support hardware.

For five years Artec craftsmanship andreliability has been proven in tough industrialuse. Now, you too can enjoy breadboardsand memories that will work time after time.Boards like the GP 100 and the wire wrapWW-100. Send for an Artec Board, yourorder will be sent the same day as received.

Board & 8K of memory—$290.008K add on kits—$255.00 ea.Full 32K board—$1,055.00

GP-100—$20.00

Maximum designversatility alongwith standard ad-dress decoding andbuffering forS—100 systems.Room for 32 un-committed 16 pinIC's, 5 bus buffer &decoding chips, 1DIP address select 1switch, a 5 volt reg-ulator and more.High quality FR4epoxy. All holes platedthrough. Reflowed sol-der circuitry.

WW-100—$20.00

A wire wrap breadboardsimilar to the GP 100. Allows wirewrap of allsizes of sockets in anycombination. An extraregulator position formultiple voltage applica-tions. Contact fingerpads arranged for easy

TO ORDER: Use your Mastercharge orBankAmericard. Or just send along a moneyorder. Your order will get same day service.

FOR MORE INFORMATION: For moreinformation about these or any of Artec'scomplete line of circuit boards or for eitherindustrial or personal use, please call orwrite. A catalogue will gladly be sent.

Please send me:

□ 32K D GP-100 □ WW-100

□ I've enclosed a money order.Bill my □ Mastercharge

D BankAmericard No. —

Name.

. AddressI City

- State -

-Zip.

10% discount for students & computer club members.

pin insertion.

AWQZ GLGCTROMIC9, IMC

605 Old County Rd. • San Carlos, CA 94070 • (415) 592-2740

Circle 378 on inquiry card.

Listing 7, continued:

SHLD

XCHG

SHLD

MOV

MOV

SHLD

LDA

CPI

JNZ

POP

LXI

DAD

SHLD

LHLD

SPHL

RET

■ *** CLEAN UP *

STSTK:

CAPT:

JPPT:

REPT:

POP

LHLD

PUSH

LHLD

SHLD

JMP

POP

SW

DE

H,B

L,C

BC

TYPE

5

STSTK

H

H,0

SP

USESTK

STACK

H

PC

H

JCAD

PC

STSTK

H

SHLD PCJMP STSTK

;*** THE RECOGRECOGN: LXI

AGAIN:

BYTE1:

; *** VAR

NBYTE:

TYPE:

PC:

STACK:

USESTK:

SW

BC

DE

HL

JCAD:

;The table

; Byte 1:

; Byte 3:

TBL:

NIZER SUBRHTBL-2

C,A

A,C

H

H

B,M

B

BYTE1

H

B,M

B

H

AGAIN

A,M

NBYTE

H

A,M

TYPE

A,1

NBYTEA,6TYPE

MOV

MOV

INX

INX

MOV

ANA

JZ

INX

MOV

XRA

INX

JNZ

MOV

STA

INX

MOV

STA

RET

MVI

STA

MVI

STA

RET

IABLE AND DATA ***DWDBDWDWDWDWDWDWDWDW

; Values of reg D and E are saved at DE.; Values of reg B and C are saved at BC.

Load TYPE into ace.

Is it a type 5 inst?

Skip the next inst if not.

Clean the garbage from the stack.

Store the user stack pointer value

;at location USESTK,

; and set the stack pointer back to the value

; at STACK.

; Return.

For Type 2 inst, clean up the garbage on the stack

and load correct return address onto

the stack.

For Type 2 and 3 inst, load correct execution address

previous stored at JCAD and store at PC.

Resume processing at STSTK.

For Type 5 inst, the correct return address is on the

top of the stack

which is popped and stored at PC.

Resume processing at STSTK.

OUTINE ***

Load the starting address of the table minus 2.Rem: ace contains the inst to be simulated.It is temporarily stored at C.The inst is restored from reg C.

(H,L) points to the 1st byte of entry in the table.

Get AND mask.

Perform AND operation.

If result is 0; either NOP inst or end of table.

; Get XOR mask.

; Perform XOR with B.

; If result is 0 then the inst is not recognized yet.

; else get and

; store number of byte of the instruction.

Also get

and store type of instruction.

Return.

This is a 1 byte inst.

Store 1 into NBYTE.

This is also a type 6 inst.

Store 6 into TYPE.

Return.

Number of byte of the instruction.

Type of instruction.

Program counter for the user program.

Simulator stack pointer.

User program stack pointer.

User program accumulator and status word.

User program B and C registers.

User program D and E registers.

User program H and L registers.

Temporary storage for Type 2 and 3 inst.

used in the recognizer consisted of entries of 4 bytes each.

AND mask

Number of inst bytes

DBDBDBDBDBDBDBDBDBDBDBDBDBDB

377,351,1,1377,315,3,2307,304,3,2377,303,3,3307,302,3,3307,307,1,4377,311,1,5307,300,1,5317,001,3,6347,042,3,6367,323,2,6307,006,2,6307,306,2,60

Byte 2: XOR maskByte 4: Type of inst.

PCHLinst

CALL inst

Ccond inst

JMP inst

Jcond inst

RST inst

RET inst

Rcond inst

LXI inst

STA and LDA inst

IN and OUT inst

MVI inst

2 byte ace arith inst

end of the table

recognizer. The recognizer should return thecorrect values for NBYTE (number of bytes)and TYPE (type of instruction). The valueof PC is then updated tentatively, by addingNBYTE to PC. We say "tentatively" becauseit may be altered later if the instructionhappens to be a type 1 to type 5.

Fetch

The instruction is then moved from theuser program to the 3 byte locations in theinstruction buffer. The loop NXT moves theinstruction, while the loop NXT2 fills theinstruction buffer with NOP instructions totake care of short instructions.

Preparation

The first five types of instructions have tobe specially processed before the instructionin the instruction buffer is executed. Type 1and type 4 instructions actually bypass theinstruction buffer.

Typel: PCHL

The content of PC is set to the valuestored at HL.

Type 2: CALL and Conditional Call

A CALL or conditional call instruc-tion, a CZ ADDR for example, is changedto a CZ CAPT instruction, where CAPT isthe starting address of a routine thattakes care of the preparation for CALLand conditional call instructions. Theoriginal address ADDR is stored at JCADfor further processing at CAPT. When theinstruction in the instruction buffer isexecuted, and in our example, if the zeroflag is not set, the next sequential instruc-tion is executed. If however the zero flagis set, then it would branch to locationCAPT instead of the original locationADDR. Either way we are in control.

Type 3: JMP and Conditional Jump

A J MP or conditional jump instruc-tion is treated similarly to a CALL in-struction, except that JPPT is used in-stead of CAPT.

Type 4: RST

These instructions are simulated byfirst loading the value of PC into loca-tions indicated by USESTK-1 andUSESTK-2, and decreasing the value ofUSESTK by 2. This simulates the pushstack operation. PC is then set to itscorrect value. The low PC value is de-coded by using an AND operation. Thehigh PC value is zero.

Before starting preparation work for

74

24 Channel LOGIC ANALYZER, complete with 2 cards and3 sets of probes (only one set shown).

Features

— 24 channels with 256 samples each.

— Display of disassembled program flow.

— Dual mode operation — external mode analysesany external logic system. Internal mode monitorsusers data and address bus.

— Selectable trigger point anywhere in the 256samples.

— 0-16 bit trigger word format or external qualifier.

— 10MHz sample rate (50ns min. pulse width)

— Synchronous clock sample with coincident ordelayed clock mode.

— User defined reference memory.

— Displays and system control through keyboardentry.

— TTL Logic level compatible (15 pf and 15 patypical input loading).

— Includes annotated source listing.

nan m su w

«.' l<: i

m in ?.hi

w %9*m RSF

mc «]

m w°sm sumffiie 10. Ua!B wl taiKTKir K»! pt *>ml "J =

Display of disassembledprogram flow.

Circle 379 on inquiry card.

Data byte, Inc

P.O. Box 147433 Hubbard AvenueMiddleton, Wisconsin 53562Tel: (608) 831-7666

24 channelLogic Analyzerplugs into

your S-100 Bus

The DATALYZER

The Databyte Logic Analyzer (DATALYZER) is a con-venient, flexible, high quality device. Efficientengineering has allowed a combination of featurespreviously available in only the most expensive units.

Designed to plug easily into your S-100 Bus, theDATALYZER is a complete system — for only$495. Display of disassembled program flow is astandard feature, not an extra. And the low priceincludes 30 logic probes, so you can hook upimmediately, without additional expense.

The DATALYZER is available in kit form ($495),and as a fully assembled device on two PCB's ($595).Four-week delivery, a substantial warranty, and theDatabyte, Inc. commitment to service make theDATALYZER a worthwhile investment. Begindebugging by sending the coupon now.

i a

6! ME «HE

» mm-ms

St ■»•*■!

wm inn;: iwiiRiKinMiiMi

KI ilsllffl CiMmtHHIMUm

noun ii»iui»»ai«iM!

unuc uuan—

■a

r:»l 'MM »«:»'■:•

inw.i mnninHtmiuimam wximmiwmmam iKi»«H:iiin«iiii

Displays in Hex

Displays in Binary

fTTease send me the 24 Channel LOGIC ANALYZER

□ Kit - (manual included) $495.00 (Wis. res. add 4%)I L~H Assembled and Tested (manual included) $595.00

□ Operators' manual only $7.50

I Delivery of all items in four weeks to:

Name

| Addi

Jress

State

Zip_

City

| Telephone

Payment Enclosed: O Check □ Money Order| □ BankAmericard □ Master Charge Exp. Date

Number _Signature

x AND y

VX

0

1

0

0

0

1

0

1

xXORy

0

1

0

0

1

1

1

0

Table I: The results of theAND operation and theXOR operation.

Examples of the Use of TBL

The opcode for conditional jump instructions is3d2 in octal, where d can be 0, 1, . . ., 7. Pick aninstruction, say the JZ instruction:

JZ:

312 11001010

From the program we also know:

AND mask:XOR mask:

307 11000111302 11000010

Referring to the table for the logical bit operation,perform the required operation:

AND

1100101011000111

XOR

1100001011000010

00000000

producing a zero. You can check that all the condi-tional jump instructions produce a resultant zero.Table 1 is an illustration of the results of the ANDand XOR operations.

If you pick another instruction, say the RETinstruction:

RET: 311 11001001,

and perform the same operation:

AND

1100100111000111

XOR

1100000111000010

00000011

you will find a nonzero result. It is also obviousthat any instruction other than conditional jumpinstruction would produce a nonzero result.

How do you get the AND mask and XOR maskin the first place?

As an example, look at SHLD, LHLD, STA andLDA instructions:

SHLD:

042

00100010

LHLD:

052

00101010

STA:

062

00110010

LDA:

072

00111010

Combine these four instructions into one using anOR operation:

001dd010

where d stands for don't care, meaning that it canbe either one or zero. Obtain the AND mask byassigning a 0 to d bits and a 1 to the others. There-fore:

AND mask

AND

11100111.

001dd01011100111

XOR mask:

00100010

The resultant byte from the AND operation is thenthe XOR mask.

return instructions, we have to save' thesimulator stack pointer value and set thestack pointer to the user program stackpointer value. There is no instruction inthe 8080 processor that directly transfersthe value of the stack pointer to registers.We have to use a DAD SP instruction bysetting register pair HL to zero first.

Type 5: RET and Conditional Return

The return address (REPT) is firstpushed on to the stack. The philosophyhere is similar to the call instructions. Ifthe conditional test for the instruction issatisfied, the program will return toREPT instead of the original returningpoint. The extra unwanted entries on thestack should be cleared. The addressREPT is within the simulator and theprogram is still under simulator control.

Restoration

Since the value of the user stack pointerhas already been restored, we only have torestore the values of the accumulator, pro-gram status word, and the other six registersfrom memory locations where they weresaved. The only way to obtain the programstatus word is to push PSW into the stackand pop it up again, making use of the userprogram stack pointer temporarily. Thismeans that the location USESTK must beproperly initialized for the simulator towork. Once the stack pointer is set to aspecific value in the user program, that valueis used for our temporary work.

Instruction Buffer

By now the instruction buffer shouldcontain the desired instruction, either themodified one or the original one. When thisinstruction is executed, we should go eitherto REPT, or to CAPT, or to J PPT, or to theinstruction next to it.

Clean Up

If we ever come to the location CAPT, itmeans that the conditional test for theCALL or conditional call instruction (ifany) has been successful and a call has beenmade. The top of the stack now containsgarbage, and should be replaced with thecorrect return address, the value stored atPC. PC is then set to its correct value, theone that we have previously saved at J CAD.

The clean up work for the JMP andconditional jump instructions is similarexcept that no stack is involved.

If we come to the location REPT, itmeans that the conditional test for the RETor conditional return instruction (if any) has

76

been successful and a return has been made.The top of the stack now contains the truereturn address. It is then popped and storedat PC.

Save

The values of accumulator, programstatus word, registers and the stack pointerare saved in memory locations, reversing theprocess in RESTORE.

This completes our discussion for thesimulation of a single instruction cycle.

Conclusion

This article has demonstrated how an8080 simulator can be written on an 8080computer. Similar simulations can be doneon any other microcomputer, using the samebasic technique. Writing such a simulator canbe greatly simplified by making use of theexisting host computer. The scheme I haveshown is a subroutine that simulates aninstruction cycle. It can be called repeatedlyto simulate continuous execution. Varioustests can be made each time before callingthe subroutine, and execution can be sus-pended at any time if necessary. A combina-tion simulator and debugging system can beeasily designed and implemented to includethe following features:

• A monitor routine that parses, recog-nizes the commands and branches tothe appropriate routines.

• A single step routine that calls thesimulator routine once and returns.

• A set break point routine that allowsthe user to enter break point addressesinto the break table.

• A dump register and load registerroutine that displays and loads thevalues of various registers.

• An examine, deposit, examineprevious, examine next routine thatsimulates the functions of front panelswitches.

• A run routine that repeatedly calls thesimulator routine. Before calling theroutine it compares the value of PC(the program counter) with the entriesin the break table, checks whether thevalue of PC is within the designatedlimits, and stops execution or giveswarnings if appropriate.

Such a combination simulator and debugsystem can be very useful in developing anddebugging programs written in assembler ormachine language. Such a project may turnout to be too complex for beginners,but it is one that is worth undertakingas a challenge by more experiencedprogrammers."

COMPLETEFLOPPY DISK SYSTEMFOR YOUR ALTAIR IMSAI$699

That's right, complete.

The North Star MICRO-DISK SYSTEM™ uses the Shugartminifloppy™ disk drive. The controller is an S-100 com-patible PC board with on-board PROM for bootstrap load. Itcan control up to three drives, either with or withoutinterrupts. No DMA is required.

No system is complete without software: we provide thePROM bootstrap, a file-oriented disk operating system (2kbytes), and our powerful extended BASIC with sequentialand random disk file accessing (10k bytes).

Each 5" diameter diskette has 90k data byte capacity.BASIC loads in less than 2 seconds. The drive itself can bemounted inside your computer, and use your existing powersupply (.9 amp at 5V and 1.6 amp at 12V max). Or, if youprefer, we offer a power supply ($39) and enclosure ($39).

Sound unbelievable? See the North Star MICRO-DISKSYSTEM at your local computer store. For a high-performanceBASIC computing system, all you need is an 8080 or Z80computer, 16k of memory, a terminal, and the North StarMICRO-DISK SYSTEM. For additional performance, obtainup to a factor of ten increase in BASIC execution speed byalso ordering the North Star hardware Floating Point Board(FPB-A). Use of the FPB-A also saves about 1 k of memory byeliminating software arithmetic routines.

Included: North Star controller kit (highest quality PCboard and components, sockets for all IC's, and power regula-tion for one drive), SA-400 drive (assembled and tested),cabling and connectors, 2 diskettes (one containing file DOSand BASIC), complete hardware and software documentation,and U.S. shipping.

MICRO-DISK SYSTEM . . . $699 To place order, send

(ASSEMBLED) $799 check, money order or

ADDITIONAL DRIVES. .. $425 ea. BA°r MC card #with exp.

c -, date and signature. Uncer-

UlbKb I I bb 3>4.b(J ea. tified checks require 6

FPB-A $359 weeks processing. Calif.

(ASSEMBLED) $499 residents add sales tax.

NORTH STAR COMPUTERS, INC.2465 Fourth StreetBerkeley, CA 94710

77

Circle 359 on inquiry card.

Continued from page 68

Figure 34: Interpretation of the reduction operators.

-*r

1 1

,lli

© ©

m

is;?IT?3

-t

78

Interpretation of the Reduction Operators

Interpretation of the reduction monadicargument is one of the longer processes. Theargument is any nonscalar value, and theresult, which has one less dimension than theargument, is formed by applying the re-ducing operator iteratively to every elementin the highest dimension.

Figure 34 illustrates the reduction pro-cess. First, the descriptor of the result isbuilt. This descriptor will be the same as theargument descriptor except that the lastdimension is omitted and, correspondingly,

the length of the result may be smaller.Next, the identity value is determined by thetype of reduction specified. If the lastdimension of the input argument is zero, thereduction results in the identity value.Otherwise the elements of the result arecomputed by applying the monadic operatorto the vector of elements along the lastdimension of the input argument. Note thatsince reduction proceeds right to left acrossthis vector, it actually results in the dyadicuse of the monadic operator.

OPG-«-SVAL (SV)SV<-SV - IOPD-- SVAL (SV)

OPG= RIGHT ARGUMENT ADDRESSOPD-LEFT ARGUMENT ADDRESS

}*

ORO \

tT^>•

RESHAPE > FIGURE 40

NATE \ *

I 1

H D(OPG + I)"D(OPD + I ) I

YES; BOTH ARGUMENTS ARE SAME DIMENSION

BOTH ARGUMENTS ARESCALARS (TO FIGURE 37)

NO; BOTH ARGUMENTS ARE MATRICES

* NOT IMPLEMENTEDIN THIS VERSIONOF THE APL INTERPRETER

Figure 35: Interpretationof dyadic operators.

DYADIC OPERATOR APPLIED TO ARGUMENTSWITH NON CONFORMABLE RANGES

Yl<- Yl *D(Z)Z«- Z+ IX-«-X + IY+- Y+ I

Z POINTS TO ARRAYX POINTS TO SCALAR

DYADIC OPERATOR APPLIED TO ARGUMENTSWITH NON CONFORMABLE RANGES

-OPGX-«—OPDL-«-TRUE

OlFRAN

n73

FIGURE39

POINTS TO ARRAYPOINTS TO SCALAR

Interpretation of Dyadic Operators

Any routine designed for the interpre-tation of dyadic operators must, in contrastto monadic operators, be able to handle amyriad of possibilities. Not only are therethe special cases of inner and outer products,but iota, reshape and concatenate operatorsmust be specially handled. Furthermore,the nonspecial cases may have scalar argu-ments, nonscalar arguments of the samesize and shape, or a scalar argument and anonscalar argument. Each case requiressome extra processing.

Figure 35 begins the description ofdyadic operator interpretation. Two pointersare popped from stack SVAL. OPG pointsto the right argument of the dyadic operatorand OPD points to the left argument. Next,the various processing method requirementsare determined as described above. Innerand outer product interpreters as well asIOTA and CATENATE interpreters werenot implemented in this version of the APLinterpreter and will not be described here.The special processing then continues at oneof the following blocks: RESHAPE, SCAL,SAMERANKand DIFRANK.

79

Figure 36: Computation ofa numerical dyadic result.

Calculating a Numerical Dyadic Result

Before proceeding further, look brieflyat figure 36. Whenever a numerical dyadicresult is needed, this subroutine is invoked.This saves the redundant coding whichwould result if the various special dyadichandlers each calculated their own results.

(dyad

<^ CO

-COMPJ

DE ^>

52, ADDITION |

Instead, the special handlers need only setup the required SFLOAT and VALUEarguments for processing by this subroutine.The result is a smaller, simpler and betterstructured program.

SFLOAT-* VALUE

53, SUBTRACTION |

J

i1

r

1

-1

1

1

1r

•

11

<1

SFLOAT* VALUE

54, MULTIPLICATION |

|

SFLOAT-* VALUE

55, DIVISION

J

SFLOAT* VALUE

56, EXPONENTIATION

J

SFLOAT* VALUE

71, EQUALITY

FEQUAL

72, INEQUALITY

FNOTEQUAL

J

73, LESS THAN

FLESSTHAN

^

74, LESS OR EQUAL

FLESEQ

J

75, GREATER OR EQUAL

FGRTEQ

J

76, GREATER THAN

FGREATER

J

J

7 7, AND

AND-SUBR

,'

78, OR

OR_SUBR

„'

57, MAX

FMAX

J

58, MIN

FMIN

'

59, LOG

FLOG

J

( RETURN J

6800 REFERENCE GUIDE

FOR PROFESSIONAL AND HOBBYISTThe TOOL you have been waiting for. A 6800 Reference Data Guide (similar to the IBM green card)containing just about every piece of pertinent information that you are currently spending valuabletime searching for. The guide saves TIME, EFFORT and WORK SPACE when programming, debug-ging and utilizing the 6800 system.

Included are INSTRUCTIONS, SPECIAL OPERATIONS, HEXADECIMAL/DECIMAL CONVERSIONTABLES, code translation tables for MACHINE CODES/MNEMONICS/ASCII/HOLLERITH/BI-NARY, 6800 MPU, 6820 PIA, 6850 ACIA and almost everything else that will increase your pro-ductivity. TRY IT, YOU'LL LOVE IT.

Send $4.95 plus 350 shipping and handling to:MICRO AIDS, P.O. Box 1672, St. Louis, Missouri 63011

Circle 380 on inquiry card.

80

ANY NUMBER OF FILES MAY BE OPEN (IN USE) AT ONE TIME

THE NUMBER OF FILES AND SIZE OF FILES IS LIMITED ONLY BY THE SIZE OF THE DISC

MERGING FILES REQUIRES NO EXTRA DISC SPACE

NO WAITING FOR THE DISC TO RE-PACK

LONGER DISC LIFE-MORE EVEN DISC WEAR

Our Basic Floppy Disc System (BFD-68) must, in all mod-esty be called superb. It comes completely assembled with adisc controller that is plug compatible with the SWTPC 6800.In fact all our products use the 6800 standard SS-50 (SmokeSignal 50) bus used by SWTPC. The cabinet and power supplyare capable of handling up to 3 Shugart Mini-Floppy Drives.One drive is included in the price of the BFD-68 and othersmay be added easily at any time. Or you may save money byordering the dual-drive BFD-68-2 or triple drive BFD-68-3 (pic-tured). Price: BFD-68 $795, BFD-68-2 $1139, BFD-68-3 $1479,SA-400 Drive $360.

The BFD-68 includes our Disc Operating System Software.Our software provides for a soft-sectored disc format consist-ing of 128 bytes per sector, 18 sectors per track and 35 tracksper disc. The software provides direct commands to name andrename files, transfer memory to disc and disc to memory andto automatically jump to the starting location of any programloaded from disc to memory. The direct command names are:RUN, GET, GETHEX, CLOSE, SAVE, DELETE, APPEND, RE-NAME, COPY, LIST, FIND, LINK and PRINT. In addition, theDisc File Management subroutines are available to create filesunder your program control.

A bootstrap PROM is included on the controller board to ini-tiate the Disc Operating System which loads into a 4K memoryboard located at 7000 or optionally at D000. Thus, you can beup and running from a cold start in just a few seconds.

SUPER SOFTWARE

Free patches are provided for SWTPC BASIC version 2.0 andCo-Resident Editor/Assembler. These patches allow the SAVEand LOAD commands to work with the disc or the cassette atyour option.

SUPER EDITOR: Smoke Signal Broadcasting now has itsown editor. It is a content oriented editor with string searchand block move capability. Changes may be made by referringeither to line number or string content or a combination ofreferences. Naturally, it is designed for file transfer to and fromthe BFD-68. Price: SE-1 $29 on diskette or cassette.

ALLOUR PRODUCTS EXCEPT THE PS-1 ARE COMPLETELY ASSEMBLED.

SUPER ASSEMBLER: Inputs source code from file on theBFD-68 disc system and outputs object code to disc file. As-sembly listings include alphabetized and tabulated symbol table.Price: SA-1 $29 on diskette or cassette.

Complete source listing included for both editor and assem-bler. Order both for $53 and save $5.

SMARTBUG-A CURE FOR MIKBUGITIS: A super smartMotorola-Mikbug replacement that preserves almost all Mik-bug entry locations so your present programs will run withoutmodification. Uses ACIA instead of PIA and includes manyadditional features including a software single-step trace com-mand. A SMARTBUG listing is included and object code isprovided on a 2708 free with each P-38 series board pur-chased. Source listing available separately for $19.50.

NEED A FULL SIZE FLOPPY? Our P-38-FF is a plug-in inter-face card to the ICOM Frugal FloppyTM. it includes all the fea-tures of the P-38-1 plus one 2708 EPROM containing the ICOMbootstrap software. Just plug the P-38-FF into your SWTPC6800 and your ICOM into the P-38-FF and you're ready touse the Frugal Floppy and ICOM's 6800 software package.Price $299.

Our P-38 is an 8K EPROM board containing room for 82708's. Or, you may use it to hold up to 7 2708's plus yourMotorola Mikbug or Minibug II ROM. The P-38 addressing isswitch selectable to any 8K location. Price $179.

The P-38-1 contains all the features of the P-38 plus an inter-face to the Oliver Paper Tape Reader and our EPROM Pro-grammer. Price $229.

The PS-1 Power Supply Kit provides plus and minus 16 voltsrequired for the P-38 series boards. Also, it allows a wiringmodification to be made to the 8 volt supply that will increaseits output by one volt. Price $24.95.

Our M-16-A is a 16K single power supply STATIC RAM mem-ory system. The M-16-A is fully buffered and requires only halfthe power of a similar size system using low-power 2102's.With the M-16-A, you can expand your system to 48K and stillhave room left for one of our EPROM boards. The M-16-A isswitch selectable to any 4K starting address and hardware writeprotect is included. Quick delivery. Price. $529.

BANKAMERICARD, VISA AND MASTER CHARGE WELCOME.

P.O. Box 2017, Hollywood, CA 90028* (213) 462-5652

Circle 381 on inquiry card.

Special Cases for

Dyadic Operator Arguments

When both arguments of the dyadic oper-ator are scalars, processing is simple (seefigure 37). Similarly, for nonscalar argu-ments with the same size and shape, thescalar process is more or less applied itera-tively (see figure 38). Where only one argu-ment is a scalar, interpretation is a hybridof figures 37 and 38. This is shown infigure 39. Here the scalar value is appliediteratively to the vector or array.

Figure 37: Dyadic inter-pretation for the case inwhich both arguments arescalars.

SFLOAT = RIGHT ARG VALUEVALUE =LEFT ARG VALUE

COMPUTE RESULT

SCAL 1

D(DA)-*3DIDA + U-* 0

0A-*DA+2SFLOAT-* DIOPG+2)VALUE-* DIOPD + 2)

DYAD-COMP

D(DA)» SFLOAT

SVAL(SV)-* DA-2

DA»DA+I

f RETURN J

AUX-»DAY-»l

V

D(AUX)-* DIX + Y-I)AUX-* AUX + IY ■» Y+ 1

YES

MAKE COPY OF ONE OF THEARRAYS

Y-*l

'-

VALUE* D(Z+D(Z)-Y)SFLOAT-* D(DA+D(DA)-Y)

DYAD-COMP

D(DA+D(DA)-Y)-* SFLOATY» Y+ 1

Xiy,7nyes

COMPUTE RESULTS

SVAL(SV)-* DADA-*DA+D(DA)

( RETURN J

Figure 38: Dyadic inter-pretation for the case inwhich both arguments arenonscalar but of the sameshape and size.

TT ■*

ALPHA Z-80 $ 495

ASSEMBLED

• 12 SLOT MOTHER BOARD

• 12 CONNECTORS (S-100 BUS)

• 17 AMP POWER SUPPLY

• HEAVY DUTY CABINET WITH FAN

• Z-80 CPU BOARD: All Sockets Included, Gold Con-tact Fingers, High Quality Glass Epoxy PC Board,Double-Sided, Plated Through Holes, Requires Only+ 8 VDC / 800 MA.

NOTE: 22 SLOTS/30 AMP POWER SUPPLY - $595.

ADS also sells IMSAI and NORTH STAR Assembled at Kit Prices + LEARSIEGLER ADM 3A Assembled at $888.00. TERMS: Cash with Order.Prices include Freight. (N.C. Residents add 4% Sales Tax.)

ADS

ALPHA DIGITAL SYSTEMS

Data Acquisition, Computation and Control

ROUTE 4 BOX 171ABOONE, NORTH CAROLINA 28607

Circle 382 on inquiry card.

82

&

Figure 39: Dyadic inter-pretation for the case inwhich only one argumentis a scalar.

AUX » DAY» I

V

D(AUX) -» D(Z+Y+I)

AUX ■» AUX + 1

Y •» Y+l

MAKE A COPY OF THE ARRAY

AUX* AUX-I

Y ■» I

Yl ■» Z-i-2

AUX NOW POINTS TO LAST ELEMENTIN ARRAY

Y » Y* D(YI)Yl » Yl + I

Ty<(Z-H + D(Z + I) ) I

Tes

COMPUTE NO. OF ELEMENTSIN ARRAY

<^ L

\. TRUE

VALUE ♦ D(AUX)SFLOAT* D(X<-2)

^T^FALSE

VALUE ■» D(X + 2)SFLOAT* D(AUX)

'

L

E RESULT

DYAD-COMP

COMPUT

D(AUX) ♦ SFLOAT

AUX ■» AUX- 1

Yl -* Yl +1

<D

SVAL (SV) ♦ DADA •» DA+ D(Z)

f RETURN )

Fun and Gamesfrom BITS

101 BASIC Computer Games by

David Ahl. A treasure store of games andsimulations, 101 all written in BASIC. Itcontains both a complete listing and asample run, along with a descriptivewrite-up. 256 pages, $7.50.

What to Do After You Hit Returnor PCC's First Book of ComputerGames. This is PCC's first book ofcomputer games, a compendium whichincludes descriptions of numerousgames, and listings of 37 selected BASICgames. New second edition, $8.

BITS Inc70 Main StPeterborough NH 03458

For ease in ordering, use the coupons onpages 175 and 176, writing in thename(s) of the book(s) you want.

Please note that processing may exceed30 days in unusual cases.

Circle 383 on inquiry card.

83

LEFT ARGUMENT FOR RESHAPE OPERATORNOT A VECTOR

COMPUTE NUMBER OF ELEMENTS IN RESULTNOTE: PROBABLY DO NOT WANT TO MULTIPLYIF D10PD + 2+ Z) IS ZERO.

Figure 40: Dyadic inter-pretation of the reshapeoperator.

Interpreting the Dyadic Reshape Operator

The last dyadic interpreter described isshown in figure 40. This process interpretsthe dyadic reshape operator, but the generalmethodology used is of more importance.By examining how the various pointersare manipulated in this subroutine, aswell as the previously described subrou-tines, the reader should be able to designany other dyadic subroutine. The procedure,as with most numerical processors, is to firstcheck the legality of the arguments. Fol-owing this, the descriptor of the result isbuilt. Finally the value elements of theresult are computed and a pointer to theresult is stacked in SVAL and index DA isupdated.

Anyone who has worked with powerfulhigh level interpreters knows that it is nomean task to describe them in so short aseries of articles as this. Nevertheless thereshould be enough information here to allowthe building of a powerful APL interpreter.Admittedly, there is room for improvement

84

Circle 384 on inquiry card.

in some areas of design and implementation.Using the experience I gained from my firstimplementation, I have incorporated manydesirable features into several micropro-cessor implementations which are currentlybeing designed.

Anyone designing an APL interpreterbased upon this series of articles andencountering problems should first consultMr Robinet's article, "Architectural Designof a Directly-Executed APL Processor"(National Technical Information Service,US Dept of Commerce, 5285 Port Royal Rd,Springfield VA 22161), and, failing resolu-tion, should contact me. Finally, although Ihave attempted to verify the accuracy of alltables, charts and methods used herein, it isstill possible that errors or omissions remain.

During the time that these articles havebeen prepared, I have been actively workingon an 6800-based APL interpreter. Thiswork has led to changes and improvementsto the flowcharts. Readers who would liketo have the latest information are welcometo send a stamped, self-addressed envelopeto Mike Wimble, 6026 Underwood Av SW,Cedar Rapids IA 52404."

BUILDING YOUR OWNCOMPUTER?

WHY NOT DO IT THE OBJECTIVE DESIGN WAY?

STARTER SET INCLUDES FRONT AND REAR PANELS OF ANODIZEDALUMINUM PRE-PUNCHED AND DRILLED FOR MAXIMUM DESIGNVERSATILITY. COMPLETE PLANS AND SPECIFICATIONS INCLUDE IN-FORMATION ON NECESSARY PARTS AND SUPPLIERS, IDEAS FORCUSTOMIZING, AND DETAILED INSTRUCTIONS FOR BUILDING A 12 OR22 SLOT S-100 CARDFRAME AND POWER SUPPLY.

* AN INTERESTING AND INEXPENSIVE WAY TO GET INTO PERSONALCOMPUTING!

' A GREATSCIENCE FAIR PROJECT!

* IDEAL FOR SCHOOLS AND UNIVERSITIES!

ASK ABOUT OUR INTELLIGENT FRONT PANEL OPTIONORDER THE CRATE KIT FOR ONLY:

$39.95

PLUS SHIPPING: U.S. —$3.00 CANADA—$4.00 FOREIGN—$10.00ALL ITEMS SHIPPED AIR FREIGHT OR UPS BLUE LABELSEND CHECK OR MONEY ORDER TO:

OBJECTIVE DESIGN, INC.

P.O. BOX 20325 TALLAHASSEE, FL 32304

FLORIDA RESIDENTS ADD 4% STATE SALES TAX.

Store

|^ THE VEGXH1 _

KeSef and

PROM/RAM

BOARD

from

Vector g^apkc

PROM: Space for 2K bytes, 1702Abootstrap loaders and monitors.

RAM: 1K bytes, 2102LIPC, 450 ns, lowpower. NO NEED TO RELOCATE STACKWHEN ADDING MEMORY.

CIRCUITRY: Replaces memory write logicon ALTAIR™ and Imsai front panels.

REGULATORS: Two regulators. No need forregulated power supply.

JUMP-ON-RESET: PROM program execu-tion starts at any location in memory withoutinterfering with programs in any other por-tion of memory.

S-100 BUS; +8 and -16 VDC; P/C BOARDSOLDER MASKED BOTH SIDES WITHPLATED THROUGH HOLES; ALL SOCKETSINCLUDED.

OPTIONAL FIRMWARE: 512 byte monitorfor use with Tarbell tape interface on 2,1702A PROMs.

PROM/RAM KIT WITHOUT PROMS

+ OPTION A - SIO Rev. 1 or 3 P + S

+ OPTION B-2SIO (MITS)

+ OPTION C-SIO 2 (IMSAI)

+ OPTION D - Poly Video Interface

(Includes Video Driver)

California residents please add 6% tax.

IMMEDIATE DELIVERY FROM FACTORYOR YOUR LOCAL COMPUTER STORE

COR G3APHC inc.

ELD ROAD. SUITE F • WESTLAKE VILLAGE, CA 91361 • (805) 497-0733

$ 89$129$129$129$159

85

Circle 385 on inquiry card.

Photo 1: This is the videodisplay at the start of aSpace War game. The twospaceships are in their nor-mal starting positions andaccelerating slowly towardsthe sun. The sun image is14 units across and cen-tered on the screen, but itsgravitational field per-meates all of space in itsvicinity (table 4).

How to Implement Space War

Dave Kruglinski3256 Portage Bay PI ESeattle WA 98102

You say you'd love to go and play"Pong," "Tank" or "Shoot 'em" down atthe corner tavern but they won't let you inbecause you're not old enough? Or maybeyou learned to play Space War back incollege on a turbocharged PDP 911/S mega-computer and you don't think your poormicrocomputer could keep up? Or perhapsyou hate BASIC but can't think of a goodreason to mess with 50 pages of assemblylanguage. Even if you don't fit into any ofthe above categories, merely reading thisarticle will sufficiently disturb your mentalequilibrium to start you on your way tobeing a Space War freak, making all otherproblems fade into insignificance.

Yes, it's true, despite what false impres-sions you may have held. You can playSpace War on your micro: real Space Warwith gravity and torpedoes and thrust andexplosions and hyperspace, all right therein front of your eyes on the screen. Nomessage slowly banging out. on the Teletype"THE KLINGONS ARE APPROACHING,"but your own spaceship orbiting the sun,able to change direction, accelerate and fireat the enemy. There's even a score to keep

track of how many times you've been hit."Hold it!" you say, after pouring over thelistings. "This doesn't conform to ANSI 74Space War Standards. Alpha Centauri isn'tat coordinates 137, 245 like it's supposed tobe." Relax, just, change the program to suityour taste.

It should be apparent by now that youneed more than just a "naked micro" to dothe job, but what you do need is not toounreasonable. Table 1 lists the equipment Ifound necessary to implement a quiterealistic Space War game which is the subjectof this article.

If you don't like the part about using anoscilloscope with its small screen, don'tknock it if you haven't tried it. You justhave to sit. close. Besides, you can moveup to a bigger display later. A vector graph-ics system would be an improvement, allow-ing more odds and ends on the screen beforeflicker sets in. The ideal, however, is a rasterscan TV monitor system with resolutionclose to 256 by 256; anything less is just toocoarse. Thomas R Buschbach's article inthe November 1976 BYTE ["Add ThisGraphics Display to Your System, "page 32]

86

Photo 2: Here the largerof the two ships is accelera-ting towards the lowerright of the screen. Thisinformation is relayedvisually by the trail that isseen in back of the space-ship. The small dot whichis positioned at roughlyequal distances from bothships is a torpedo whichhas just been fired by thesmaller spaceship.

(or Using Your Oscilloscope as a Telescope)

should be helpful here. Bear in mind that ifyou go the refresh memory raster scan routeyou will have to think about erasing things,not a problem with the analog refreshapproach.

Meanwhile, back to the software. To startwith, BASIC is out because it's far too slow.What's in is 5.5 K bytes of programs andtables, all in assembly language. "What's the

secret?" you say. "Why has Space War onlybeen seen on expensive systems up to now?"The answer is a special added ingredientcalled TLU. TLU stands for Table LookUpand eliminates the need for all multiplica-tions and divisions, making your programrun ten times faster. Together with simpledifference equations you can use tablelookups to generate gravity for pretty

TACTICAL MATERIEL NEEDED

• An 8080 type microcomputer with8 K of memory and a way to load pro-grams. An Altair 8800 or equivalent willdo fine. An assembler and text editor will benecessary if you want to modify the pro-gram conveniently.

• A general purpose DC oscilloscopewith X input. Bandwidth isn't too impor-tant, but it must be DC. The bigger thescreen the better. You can get one surplusfor about $100, and they're handy forother things, too. A raster scan continuouslyrefreshed point display can also be usedwith appropriate modifications of graphicgeneration and object motion routines.

• A 2 channel digital to analog con-

vertor. This device converts two bytes ofdigital data to two analog signals with aresolution of 1/256 (3.9x10-3). It is theinterface between the microcomputer andthe oscilloscope, capable of displaying dotsat any of 65536 locations on the screen ina 256 by 256 grid. The circuit is quitestraightforward. The "Beer Budget GraphicsInterface" described in November 1976BYTE, page 26, will do fine. You couldeven skip the second latch on the Y strobe.

• Two or more hand held boxes, eachwith four push buttons. The two boxestogether look like one memory byte orinput port and are read by the program todetermine what the player wants to do.

• Software functioning as described inthis article.

Table I: Basic facilitiesneeded to implement SpaceWar on a microprocessor.

87

Photo 3: The larger of the two spaceships has been hit and destroyed. It hadfired a torpedo just before it was hit.

respectable orbits for your spaceships andtorpedoes. Another thing, after subtracting2 K for the gravity table you have 3.5 K ofprogram to manage. This translates to 55pages of assembly listing with macrosexpanded (more on macros later). To dothis and not go crazy you have to have a

system, a way to organize the code intomodules for ease of understanding, modi-fication and debugging. But first somepreliminaries.

The Game of Space War

As the game starts you will see a sun inthe center of the screen, two scores of zeroat the bottom, and two spaceships at oppo-site corners. You and your opponent eachhave a ship. Each ship is uniquely identifiableand is moving slowly towards the sun. Photo1 shows the screen at the beginning of thegame as I implemented it.

Each player has a hand held box as shownschematically in figure 1. The functions ofthe buttons are as follows:

CCW: The player's ship rotates counter-clockwise as long as this button is held down.Rotation increments are 45° and the rate isabout one rotation every 5 seconds.

CW: Same as a CCW except rotation isclockwise.

FIRE: A torpedo is fired from theplayer's ship when this button is depressed.The torpedo always originates from thefront of the spaceship and travels in thesame direction the ship is pointing. Itsinitial velocity is constant relative to theship's. Each ship at any one time has onlyone active torpedo at its disposal and thuscan't fire a second until the first has hit aspaceship, hit the sun, hit the screen edge, ortimed out.

CPU INPUT PORT

0 0 0 0 0 0 0 0

5V

A

H

I I Wv-

I

u2

CW CCW FIRE ACC

r~"

-^WV < I

-'WV II

-wv II

_^w

PULLUP RESISTORSMAY BE OMITTEDDEPENDING ON INPUTPORT USED

I

I

r~r 7 /

nu

ACC FIRE CCW CW

Figure I: The player control boxes consist of eight switches, four per player, which define data for one input port to the micro-processor. The pullup resistors boxed by a dashed line may be omitted, depending on details of your input port.

88

ACC: Acceleration is applied to theplayer's ship as long as this button is helddown. The acceleration is applied in thesame direction the ship is pointed and isindicated visually by an exhaust, trail at therear of the ship.

The object of the game is to get yourspaceship into a stable orbit around the sunand then shoot down the enemy. You haveto, of course, watch out. for the enemyshooting you down; and you have to be care-ful not to fall into the sun. If either of thesetwo calamities should befall you, your shipwill explode, your score will be incremented,points count against you, and a new space-ship will be delivered to the starting position.

You have a rather interesting optionwhen the going gets tough. You can enterhyperspace by holding down both the CCWand CW buttons at the same time. Your shipdisappears, then reappears at some randomposition with a random velocity. This hap-pens not without risk; however, there is adefinite probability, increasing as the gameprogresses, that your ship will explode whenit comes back.

A word about orbits: both spaceships andtorpedoes conform to Kepler's laws, travel-ing in elliptical orbits around the central sun,with revolution periods averaging about. 15seconds. In general, the further away fromthe sun the ship is, the slower it moves.Thus, if a ship is in a long elliptical orbit theeffect will be a little like "crack the whip":the ship zips quickly around the back of thesun, then drifts slowly out into space, thenback again. Torpedoes, usually moving fasterthan spaceships, are less affected by gravityand usually escape to the edge of the screenwhere they disappear. If they get close tothe sun their trajectories may be bent, asmuch as 90°. Due to limitations of thenumerical method, the ships and torpedoesmay not come closer than seven units(screen is 256 units wide) to the center ofthe screen. Thus the sun's radius is definedto be seven units and anything coming thatclose is destroyed. A spaceship which startsanywhere on the screen with zero velocitywill move radially inward to the sun and bezapped.

Photos 1 to 5 show some scenes from atypical Space War game. Some are snapshotsand two are time exposures showing themotion of spaceships and torpedoes.

Photo 4: A time exposure showing the two ships in orbit and a near miss ofa torpedo. The inner spaceship fired at the outer orbiting spaceship. Noticehow the gravity effects of the sun curve the orbits of ships and torpedo.

Software — General

Many of the techniques discussed hereapply not only to Space War but also toother video games, display systems and realtime applications. The only assumptionmade is that you know what an assembler

Photo 5: A very long time exposure showing the maneuvering of the twospaceships. Notice that Kepler's laws of motion are being followed, and thespaceship that is closer to the sun is orbiting faster than the spaceship thatis farther away, since it has only traveled a portion of one revolution whilethe Inner ship has completely circled the sun. These gravity effects encouragereal time tactics and use of strategy in playing the game.

89

r~

DISPLAYPROCESSOR

DISPATCHTABLE

SPACE WAR

APPLICATIONS

MODULE

OBJECTBLOCKS

PROGRAMS

L.

DISPLAYFILE

ACCELERATE

SYSTEM FUNCTIONS MODULE

_ _. I

GRAVITYTABLE

Figure 2: Block diagram of the software for Space War. The rectanglesrepresent programs and the squares represent data. This general type of setupcan be used in many other games besides Space War.

does and can read 8080 assembly language.Since relocatable assemblers and loadersaren't generally available for microcom-puters yet, chances are you will have tomake the most out of the absolute variety.It is very useful to avoid having the entire4 K of program in one source module. By

breaking the code up into modules yougenerally need only to edit and assemble aportion of the entire program to make acorrection or enhancement. Linkage be-tween modules is made through a few fixedlocations in low memory (0 to 80 hexa-decimal). There are two categoriesof modules: system and application. Systemmodules exist to support a variety of ap-plication modules. The application modulein this case is the Space War video game. Thesystems modules needed here include:graphics display processor, interrupthandlers and real time executive, systemfunctions. The applications module is acollection of programs and data relatedspecifically to the game. Let's look at eachof these modules in detail, while referring tothe block diagram in figure 2.

Display Processor

In order to have a video game you have tobe able to put pictures on the screen. Stillpictures are a good place to start; it's easy tomake parts of them move later. With thedigital to analog converter and XY oscillo-scope hardware configuration of the "BeerBudget Graphics lnterface"/6y Peter Nelson,in November 1976 BYTE, page 26], itis necessary to paint the picture one dot at atime and also to continuously refresh anyimage put on the screen a minimum of20 times a second. This suggests a loop con-sisting of a sequence of dot producing in-structions executed over and over again. Itwould be very cumbersome, though, to haveto write a new assembly language programevery time you want a new picture. Whatabout a single program which cycles througha table of XY coordinates? This is better,except it takes a lot of dots to draw a lineor spaceship, and it's difficult to movesomething when you have to move all thedots together. A better solution is an inter-pretive "language" which you can use todescribe pictures. A display file written inthis language is interpreted by a specialprogram called the display processor in orderto provide the proper sequence of XYcoordinates to paint the picture.

Understanding the display processorrequires you to visualize the beam whichdefines a point on the face of the oscillo-scope at. position X,Y. A dot can be dis-played at the beam position or at pointsrelative to the beam position. This is veryuseful because you can define a spaceship,for instance, as a series of dots relative tothe beam coordinates. To move the space-ship you merely move the starting beamposition. Rather than define a series ofdots individually, why not specify a vector

90

or row of dots? This can be done neatly inone byte where you specify both the lengthand direction of the vector. Let's say thatyou have defined your spaceship, but thatyou want to display it more than once onthe screen. Just as in any other computerprogram you use a subroutine. The sub-routine in this case contains a series ofrelative vector commands and is called fromseveral places in the display program, justafter beam positioning commands.

You can pick up the details of the

graphics language by studying the ninecommands shown in figure 3. Figure 3 alsoshows the layouts of the graphics com-mands. In my assembler the mnemonicsalong with the arguments are put right intoa program and the assembler producesthe object code by means of macros. (Amacro is a way of telling the assembler tosubstitute a group of instructions for agiven symbol.) All the macros are definedat the start of the program with dummyarguments. The real arguments are sub-

HexadecimalOp Code

00

02

Layout

AssemblerMacro Form

04

06

08

0A

0C

0E

10

0

0 0 0 0 0 0 0

X coordinate

Y coordinate

0

0 0 0 0 0 1 0

X coordinate

Y coordinate

0

0 0 0 0 10 0

X coordinate

Y coordinate

0

0 0 0 0 110

E

length

O/F

drctn

0

0 0 0 10 0 0

scle

orent

0

0 0 0 10 1

0

low order address

high order address

0

0 0 0 110

0

low order address

high order address

0

0 0 0 111

0

0

0 0 10 0 0

0

MBEAM x,y

MDISP x,y

LVECx.y

SVECSV length, drctnSVF length, drctnSVE length, drctnSVEF length, drctn

E = escape

O/F = beam on/off

PARAMs,o

JUMPaddr

JUMPS addr

RETS

EXEC

Meaning

The beam is moved from its previous position to thenew coordinates x,y where x and y are between 0and 255. This command does not cause a dot to bedisplayed, but is used as a setup for followingcommands.

Same as MBEAM except a dot is displayed at x,y.

A "long vector" is drawn from the previous beamposition to the new coordinates x,y. The new beamposition is now x,y.

The relative vector is called the short vector to dis-tinguish it from the absolute long vector. The list isa sequence of length and direction pairs where thelength is 0 to 7 dots and the direction is specified bya number from 0 to 7 where 0 is straight up, 1 is 45°in a counterclockwise direction, 2 is 90° counter-clockwise, etc.

This command alters the effect of all followingSVEC commands until the next PARAM statement.It is possible to change both scale (si and orientation(o) of all following short vectors. If scale is set to 1,for example, all short vectors would be twice as longas they would have been if scale were 0. If orienta-tion is set to 2 instead of 0, all short vectors appearrotated 90° clockwise. Thus a figure drawn entirelyIn short vectors can be enlarged and rotated bychanging one command.

Interpreter control is transferred to the command ataddress addr.

Interpreter control is transferred to the command ataddress addr and the address of the command fol-lowing the JUMPS statement is saved. This is thegraphics subroutine call.

Return from the subroutine enteredcommand. Subroutines may be nested.

by JUMPS

Control is transferred to the executive so that theproper applications programs are executed. Whenthese are finished, control is returned to the graphicsinterpreter command following the EXEC command.

Figure 3: The nine graphic commands used by the display processor showing the op code, related mnemonic, memory alloca-tion, and meaning for each command. These instructions and related programs can be used to implement a wide variety ofanimated video applications.

91

Entry

Byti

1

0

1

2,3

4,5

2

0

1

2,3

4,5

Data

10

Functon

look at last bit of TIME onlyexecute on even TIME onlyobject block 1 starting addressship fly program starting address

look at last bit of TIME onlyexecute on odd TIME onlyobject block 2 starting addressship fly program starting address

Table 2: This table design will allow the updating of the positions of twospaceships on alternating cycles. Byte I determines whether the updatingtakes place on an odd or even cycle. If it is set to zero, as in entry 1, updatingwill occur on an even cycle. If byte 7 Is set to I, as In entry 2, updating willoccur on an odd cycle.

Bytes(Hexadecimal Offsets)

0,1

2,3

4,5

6,7

8,9

A,B

C,D

Function

X (n), present x coordinate with 16 bits, 0 at screen center.X (n—1), previous x coordinate.X acceleration.

Y (n), present y coordinate.

Y (n—1), previous y coordinate.

Y acceleration.

pointer to MBEAM instruction display file.

Table 3: A list of object parameters which are found at the head of an objectblock and used by the object move function. These coordinates are con-tinuously updated as the program progresses.

stituted when the macro is actually used.

Now that you can describe a picture witha concise list of graphics commands youshould be able to see how easy it is toanimate the picture. All it takes is someother program in the system to periodicallychange parts of the display file. For ex-ample, if the MBEAM command precedinga spaceship subroutine call is given a labelthrough the assembler, then the X and Ycoordinates can be updated, causing the shipto move. To destroy the ship, replace thespaceship subroutine address with theexplosion subroutine address.

See listing 1 for the display processor,and listing 2 for numeral subroutines 0 to 9.

Executive Program

The Space War program was originallydesigned to work with a real time clockproducing 20 interrupts a second. It wasdiscovered later that the update and refreshcycle was stable enough to make the clockunnecessary. This reduced the hardwarerequirements for the game. To reiterate,Space War runs on a 50 ms cycle. The first15 ms are used to update positions of space-ships, test buttons, compute scores, etc. Theremaining 35 ms are used to refresh the dis-play, that is, process the display file fromone EXEC command to the next. Theexecutive:

• determines what update tasks are tobe done.

• dispatches a control to these tasks.

• increments a variable called TIME.

A few words on tasks and dispatching arein order here. The applications moduleconsists of a number of independent pro-grams, each with a distinct function whichis described in detail in the next section.When each of these programs runs, itreferences an object. For example, the shipfly program has to run once for ship 1 andagain for ship 2. The combination of a pro-gram and a particular object is called a task.There are three pieces of informationnecessary to specify a task:

• frequency and phase at which the taskis executed.

• address of the object block containingall parameters relating to a specificobject.

• starting address of the program.

The dispatch table (table 2) in the applica-tions module is a list of all the tasks. Eachtask has a 6 byte entry having the format:

byte 0: Mask which is logically ANDedwith TIME and compared withthe value in byte 1.

byte I: Execution time. When thismatches the masked value ofTIME the task is executed.

bytes 2,3: Address of the object blockfor this task. It is passed tothe program in register pairBC.

bytes4,5: Address of the program to becalled by the executive.

If, for example, you want to update theposition of each of two spaceships onalternating cycles, you set up two entriesas in table 2.

Most of the task schedules are set up justonce when you assemble the applicationsprogram. However, it is possible to dynami-cally schedule one task from another. Thatscheduled task runs "right now" if boththe mask and time bytes are set to zero.It runs "n cycles from now" if the mask isall 1 and the time is TIME+n. The dynami-cally scheduled task will, however, haveto later deschedule itself by setting the maskto 0 and time to 1.

Now for a few words on how programsinterface with object blocks. Normally aprogram references a number of fixedmemory locations using direct addressing.This works fine, for example, if you haveone program flying one spaceship. For twospaceships you could write two programs,

92

to oil BVT€ magazine

subscribers anamould-be subscribers

SAVE MONEY! As of January 1, 1978, we are raising our subscription rates to meet the increasedcosts of producing and mailing BYTE to our more than 110,000 monthly readers. The new domesticsubscription rates, effective January 1, 1978:

Current Rates

Rates Effective January 1, 1978

One year U.S. — $12

One year U.S.

— $15

Two years U.S. — $22

Two years U.S.

— $27

Three years U.S. — $32

Three years U.S.

— $39

If you already subscribe to BYTE and still haveseveral months to go before expiration of yoursubscription, you can still take advantage ofcurrent rates for renewal (even up to threeyears). Use coupon below. When your presentsubscription expires, your renewal ordercommences.

If you are not yet a subscriber to BYTE, theleading magazine for the creative homecomputer experimenter, don't delay . . . mailthis coupon and start getting your own copiesof this invaluable magazine, before new ratesbecome effective.

BMTE

BITE

USE THIS MONEY-SAVING COUPON TODAY

To new subscribers:Read your first copy of BYTE, if it'severything you expected, honor ourinvoice. If it isn't, just write"CANCEL" across the invoice andmail it back. You won't be billed, andthe first issue is yours.

Allow 6 to 8 weeks for processing.

Byte Publications, Inc. 1977

BYTE Subscription Dept.79D • P.O. Box 361 • Arlington, Mass. 02174

PLEASE ENTER MY SUBSCRIPTION FOR: D Renewal D New Subscription

□ One year $12 (12 issues) □ Two years $22 □ Three years $32

□ Check enclosed (entitles you to bonus of one extra issue)

□ Bill me □ Bill BankAmericard/Visa □ Bill Master Charge

Card Number I I I I I I I I I I I I I |~1 Expiration Date:

Signature: Name (please print)

Address: ■ ———■

City: State/Country:

Code:-

FOREIGN RATES FOR ONE YEAR: (Please remit in U.S. Funds)O Canada or Mexico $17.50 (Air delivered) □ Europe $25 (Air delivered)

□ All other countries except above: $25 (Surface delivery) Offer expires December 31, 1977

Air delivery available on request

Table 4: The 1024 by 2 byte gravity table used by the acceleration lookup function. Notice the maximum acceleration valuesof 999 in the upper left of the table which correspond to the position of the sun. The table can be rotated around its axis ofsymmetry to cover the entire screen in a minimum amount of memory. Lines drawn in the table illustrate several contours ofroughly equal gravitational acceleration.

999

999

999

999

999

745

452

295

203

145 108

82

64

51

41

33

28

23

20

17

15

13

11

10

9

8

7

6

5

5

4

4

999

999

999

999

999

999

999

840

~5ST

"4~27|315

241

188

150

121

99

82

G9

59

50

43

37

33

29

25

23

20

18

16

15

13

12

999

999

999

999

999

999

999

999

900

660T98]

384

302

242

196

162

135

113

96

82

71

62

54

47

42

37

33

30

27

24

22

20

999

999

999

999

999

999

999

999

999

844 646

504

400

323

264

2 1 8

182

154

131

112

97

85

| 74

65

58

51

46

41

37

33

30

28

999

999

999

999

999

999

999

999

999

970 755

598

480

391

322

268

225

191

163

140

122

106

93

82

I 73

65

58

52

47

42

38

35

999

999

999

999

999

999

999

999

999

999 826

664

540

444

369

309

261

223

191

165

144

126

111

98

87

77

69

62

56

51

46

42

999

999

999

999

999

999

999

999

999

999 864

705

581

483

405

342

292

250

216

187

163

143

126

112

100

89

80

72

65

59

54

49

999

999

999

999

999

999

999

999

999

999 873

725

606

509

431

368

315

272

236

206

180

159

141

125

112

100

90

8T

73

67

61

55

999

999

999

999

999

999

999

999

999

999 862

727

616

524

448

385

332

289

252

221

195

172

153

136

122

110

99

89

81

I 73

67

61

999999

999999

999999

999999

999

999

999999

999999

999999

999999

980 837925 802

716695

614604

528525

456458

395

344351

301309

264273

233242

206215

183192

163172

146154

131139

118125

106113

96103

8894

8085

7378

67

400

72

999999

999999

999999

999999

999999

999999

999999

999999

984905

867 762808 719

669638

587566

516502

454445

400

353353

313314

278

281

248252

221226

198

178183

161166

145150

131136

119124

109113

99104

9195

8387

76

396

203

80

999

999

999

999

999

999

999

917

832

751 675

605

542

485

434

389

348

313

281

253

228

206

187

170

154

141

128

117

108

99

91

84

999

999

999

999

999

973

904

834

764

696 632

572

517

466

421

379

342

309

279

253

229

208

189

172

157

144

131

121

111

102

94

87

999

999

999

966

922

871

816

759

702

645 591

539

491

446

405

368

334

303

276

251

228

208

190

174

159

146

134

123

113

105

97

90

917

907

888

860

825

784

740

693

645

598 552

507

465

426

389

356

325

296

271

248

226

207

190

174

160

147

136

125

116

107

99

92

816

808

792

770

742

709

673

634

594

554 515

477

440

405

373

343

314

289

265

243

223

205

189

174

160

148

137

126

117

108

101

93

730

724652

711642

693627

670608

644586

614561

582535

548507

514 481478 449

448420

416392

385365

356

340

329315

304293

280271

258

251

238233

220215

203

187185

173171

160159

148147

137

137

127127

118118

110110

102103

95

657

199

96

594

590

582

570

555

536

515

493

469

444 420J39T

370

347

324

302

281

262

244

226

210

196

182

169

157

146

136

127

118

111

103

96

541

537

530

520

507

492

474

455

435

414J332~386 368

371

350

329

308

289

270

252

235

220

205

191

178

166

155

145

135

126

118

110

103

97

494

491

485

477

466

453

438

422

404

349

330

311

293

276

259

243

228

213

200

187

175

163

153

143

134

125

118

110

103

97

453

450

445

438

429

418

405

391

377

361 345

328

311

295

279

263

248

234

220

206

194

182

171

160

150

141

132

124

116

110

103

97

416

414

410

404

396

387

376

364

351

338 324

309

295

280

265

251

238

224

212

200

188

177

166

156

147

139

130

123

115

109

102

96

384

383

379

374

367

359

350

340

328

317 304

291

278

265

253

240

227

216

204

193

182

172

162

153

144

136

128

121

114

108

101

96

356

354

351

347

341

334

326

317

307

297 286

275

263

252

240

229

218

207

196

186

176

167

158

149

141

133

126

119

113

106

100

95

330

329

327

323

318

312

305

297

288

279 270

260

249

239

229

219

208

198

189

179

170

162

153

145

138

130

123

117

111

105

99

94

308

307

304

301

297

291

285

278

271

263 254

245

237

227

218

209

200

190

182

173

165

157

149

141

134

127

121

115

109

103

98

93

287

286

284

281

278

273

268

262

255

248 240

232

224

216

208

199

191

183

175

167

159

152

144

137

131

124

118

113

107

102

97

92

269

268

266

264

260

256

251

246

240

234 227

220

213

206

198

190

183

175

168

161

154

147

140

134

127

121

116

110

105

100

95

90

252

251

250

247

244

241

237

232

227

221 215

209

202

196

189

182

175

168

161

155

148

142

136

130

124

118

113

108

103

98

93

89

but this would be a pain in the asteroid.How about grouping all the variables to-gether and defining a data layout commonto all spaceships? The data includes co-ordinates, the address of the MBEAMinstruction in the display file, orientationand about a million flag bits [a bit ofhyperbole . ..]. The program knows whichobject block it's working with because itstarted out with the block start address in anindex register, in this case the BC registerpair of the 8080. All memory referencesthen go through this index register. Don't letthe fact that the 8080 microprocessordoesn't have real index registers bother you;you simply use assembler macros to inventyour own indexed instructions as follows:

LOADX reg,offset: Loads data from objectblock relative location "offset" intoregister "reg."

STORX reg,offset: As above but stores.

LDBLX offset: Loads data from objectblock relative locations "offset" and"offset" + 1 into registers L and Hrespectively.

SDBLX offset: As above but stores.

Listing 3 shows the executive programand interrupt handlers.

System Functions

System functions are general purposesubroutines common to a number of appli-

cations programs. These include objectmove, acceleration look up, random numberand a system call program which links withcalling programs. To call one of the func-tions you invoke the macro SCALL nwhere n is 0 for move, 1 for accelerationand 2 for random number routine. Thismacro generates the code RST 7, DB ncausing transfer of control through memorylocation 38 hexadecimal.

Looking at the first function, objectmove, you find a function fundamentalto all video games. The function dependson a fixed layout of object coordinates atthe head of the object block as shown intable 3. Calling object move updates thesecoordinates according to the followingformulas:

X(n+1) = X(n) + X(n) -X(n-1) + XaccX(n-1)=X(n)

X(n) = X(n+1)

The same equations are used for Y.

The XY coordinates of the MBEAMcommand are updated with the new higherorder values of X(n) and Y(n). It is im-portant to note that the X and Y bytes inthe MBEAM command are referenced tothe lower left of the screen, but the 2 bytecoordinates carried in the object block arereferenced to the screen center.

These equations of motion representwhat the math jocks call second order dif-

94

ference equations. Note the absence ofmultiplications and divisions. You canconsider the difference between X(n) andX(n—1) to represent the X velocity of theobject, and the corresponding Y differenceto be the Y velocity. If you set both ac-celerations to zero and initialize the othercoordinates appropriately, your objectmoves in a straight line with a constantvelocity. If Y acceleration is a negativeconstant, the object falls in a parabolictrajectory like a thrown stone.

The object move function is sufficientfor most video games, but not for SpaceWar. For orbiting objects the accelerationsare neither zero nor constant. Each pointon the screen has unique values of X and Yacceleration. The acceleration lookup func-tion finds these values for you, using theX(n) and Y(n) coordinates, so that whenyou alternately call it and the object movefunction, your spaceship or torpedo zipsneatly around its orbit.

First generation Space War systems wouldcalculate the accelerations each time theymoved their objects according to the fol-lowing formulas:

Xacc = cX/R3 and Yacc = cY/R3

where c is a constant and R = rJ(X^ + Y^).This requires a total of five multiplications,two divisions and one square root extrac-tion for each update, clearly impossiblefor most of today's microprocessors.

Acceleration lookup, the heart of theSpace War system, uses a 1 K by 2 byte tableto find these accelerations, taking advantageof symmetry.

The third function, random number,returns an 8 bit pseudorandom number inthe accumulator. This number is derivedfrom a common shift register feedbackscheme and has a repetition period of 255.

Listings of all system functions are shownin listing4.

Gravity Table

Table 4 shows the 1 K by 2 byte gravitytable used by the acceleration lookup func-tion. The values were calculated by aFORTRAN program running on a largercomputer. The table entries represent theabsolute value of X acceleration in onequadrant. Y accelerations are found simplyby transposing the indices. Because halvingthe distance from the sun causes the ac-celeration to increase by a factor of 4, thetable can be magnified to produce more ac-curate values closer in. By proper shiftingof indices and output values, the sametable can be made to cover index ranges0 to 16, 16 to 32, 32 to 64 and 64 to 128.

Thus the maximum value of 999 appliesonly inside the sun.

Space War Applications Module

This module, occupying about 2 K bytesof user program memory, specificallydefines the game of Space War. It is com-posed of constants, macro definitions,system linkages, the dispatch table, objectblocks and programs. It interfaces with allthe system modules described earlier. Allprograms execute once for each relatedobject unless otherwise specified. Listing 5,the applications module, is divided intoseveral sections which are described in aseparate box entitled "A Guide to theSpace War Applications Module."

Installation of Space War in Your System

The following steps might make it easierfor you to get Space War up and running onan 8080 system:

• Make sure that your graphics outputand button input work the way you thinkthey do. Write short test programs ifnecessary.

• Modify the display processor moduleso it communicates with your particulargraphics interface. The SHLD XYOUTinstructions of the assembly listings arethe ones you will want to look at carefully.

• Modify the ship fly and rotate pro-grams in the applications module so thatthey read your buttons properly.

• Modify the keyboard handler (execu-tive module) to accept interrupts from yourkeyboard. If you don't have keyboardinterrupts you can periodically read yourkeyboard in the rotate program.

• Assemble all programs and load inthe following order: display processor,executive, numerals, applications, systemfunctions and gravity table.

• Temporarily eliminate the EXEC com-mand in the display file, then start executionat hexadecimal location 100. This tests thedisplay file and the display processormodule, the correct result being a stillpicture which should make sense.

• Restore the EXEC command anddeschedule all but the first task in the dis-patch table, then start at 100 again. Thesystem should remain in the still picturemode because not enough tasks have beenenabled to support object motion.

• Enable tasks one at a time, therebytesting each. If the program bombs you willknow exactly where to look.

• Fasten securely all loose objects inyour computer room in anticipation ofthe large unruly crowds which will soongather.

95

Listings 1-5 for Space Warfollow, concluding on page

in.

Conclusion

With Space War you will have come astep closer to making your computer TheUltimate Toy. In the process you will havelearned some software fundamentals which

will make you less afraid to put togethersome large systems of your own. Maybeyou can think up some new and originalvideo games which match or surpass theappeal of Space War. I'll be watching thepages of BYTE for the results.

:::.-.

: . . : ::::: : ; ;v .

*

Important Constants

Ship Fly Program

All constants used in fine tuning the

Executes:

On every clock cycle.

A GUIDE TO THE SPACEWAR

game are defined in this first section. These

Function:

Updates ship coordinates and

APPLICATIONS MODULE

include the loading address, collision radii

acceleration values.

of the sun and torpedoes, acceleration con-

Adds acceleration and displays

stants and time-out values.

exhaust if the ACC button isheld down.

Macro Definitions

Bounces ship off screen edge if

All macro definitions used in the module

necessary.

appear in this section. These include the

Replaces ship routine with

graphics command macros and the load and

explosion routine if:

store indexed macros.

ship is too close to anytorpedo

System Linkages

ship is too close to the sun.Releases torpedoes which get

Space War references two bytes in the

close enough to destroy

system area: TIME, as described under the

spaceship.

executive routine, and NUMS, the starting

address of the list of graphics numeral ad-

Torpedo Fly Program

dresses. The system modules, in turn,

reference three points in the Space War

Executes:

On every clock cycle.

module: the start of the display file, the

Function:

Updates torpedo coordinates

dispatch table and the keyboard decode

and acceleration values.

program.

Releases torpedo if:

torpedo hits edge of screen

Dispatch Table

torpedo gets too close tothe sun.

The layout of this table is described in

detail under the executive routine. The

Torpedo F

ire Routine

table is preceded by one byte indicating the

number of entries, in this case 14. The

Executes:

When scheduled by the rota-

ENTRY macro is used to define the entries.

tion program.

Function:

Claims one torpedo belonging

Object Blacks

to the firing ship if it is notclaimed.

These include: ship 1, ship 2, torpedo 1,

Substitutes MDISP for

torpedo 2, score 1 and score 2.

MBEAM instruction at torpedolocation in display file.

Initialization Program

Computes initial position and

Executes: At start of game.

velocity of torpedo from

Function: Zeros score.

spaceship's coordinates and

Schedules the ship start pro-

orientation.

gram to run immediately.

Deschedules itself.

Score Program

Executes:

Every 16 clock cycles.

Ship Start Program

Function:

Reads 1 byte binary coded

Executes: When scheduled by initializa-

decimal score value and con-

tion program.

verts it into addresses of two

A fixed time delay after a

numeral subroutines which are

ship is destroyed.

inserted into display file.

Function: Puts spaceship subroutine call

into display file.

Buttons Program

Sets coordinates and orienta-

Executes:

If hyperspace is entered (CCW

tion to starting values.

and CW buttons both held

Deschedules itself.

down).

Executes: On hyperspace return when

Function:

Blanks spaceship.

ship is not set to destroy.

Schedules ship start program

Function: Puts spaceship subroutine call

after a time delay.

into display file.

Indicates hyperspace destroy

Clears hyperspace flag.

on random probability.

Deschedules itself.

Executes:

If CW button is held down.

Executes: On hyperspace return when

Function:

Increments orientation value.

ship is set to destroy.

Executes:

If CCW button is held down.

Function: Puts explosion subroutine call

Function:

Decrements orientation value.

into display file.

Executes:

If FIRE button is down.

96

Function: Schedules torpedo fire

program.Function Includes orientation value induring appropriate PARAM instruc-

all tion in display file,

executions: Releases any timed out

torpedoes.

Decrements counters for other

torpedoes.

Keyboard Decode Program

Executes: In response to interrupt fromkeyboard. Called from exe-cutive module.

Function: Schedules initialization pro-gram twice when the C keyis hit.

Listing 1: The display processor takes careof all the video display routines used for thegame.

DISPLAY PROCESSOR MODULECOPYRIGHT 1976 D. KRUGUNSKI

INITIALIZATION

STACK

CINTC

3STRT

KINTC

TIKE

TOP

XYOUT

I NIT:

EQU

EQU

EGJ

EOU

EQU

EQU

EQU

ORG

LXI

LXI

SHLD

LXI

mv:

3TA

MVI

STA

EI

LHLD

SHLD

Of FH

BFFFBH

1B0H

BFFCt'H

JFH

OUH,

e. FFFCH

GSTRT

D,£

H,TA3LE

INCPT

SP,STACK

A, I2H

KINTC

A,8eH

CINTC

;STACK AJDR

;RTC CONTROL ADDRESS

[START ADDRESS

; K.3HD INT CONTROL ADDR

;SYSTEM TIME

;DISPLAY FILE START ADDR

;CRT OUTPUT ADDR

;ZER0 XY ( IN DE ALWAYS)

; INIT INCREMENT POINTER

iIN IT STACK POINTER

TURN ON KB INT

TURN ON RTC INTERRUPT

TOPPNTR

; OPCODE DECODING

; JUMPJMTAB:

LHLDMOVMVILXIDADMOVI NXMOVMOVPCHLTABLE FOR OPCODE PROCESSING

PNTR

C, n

B,0

H,JMTAB

3

C, M

H

H, M

L,C

iINII INSTRUCTION POINTER

;ADDRESS OF OPCODE

i OPCODE IN BC;3ASE OF JUMP TABLE;ADD OPCODE

DWDWDWDWDWDWDWDWDWDW; MOVE BEAM -MBEAM: LHLDI NXMOVINXMOVINXSHLDJMP

MBEAM

MDISP

LVEC

SVEC

PARAM

JUMP

JUMPS

RETS

EXEC

SYNC

ADDR OF ROUTINE IN HLJUMP TO IT

CE

10H2H

DON'T DISPLAY POINTPNTR

; MOVEMDISP:

H

D, MH

E, MH

PNTRMLOOP

;GET X COORD

; GET Y COORD

;RESTORE POINTER

:GET ANOTHER INSTRUCTION

IEAM AND DISPLAY POINT

LHLD

INX

MOV

INX

MOV

INX

SHLD

XCHG

SHLD

XCHG

JMP

PNTRH

D,MHE, M

;XY TO HL

:WRITE TO CRT

;SY TO DE

SET ORIENTATION AND SCALE

LHLD

INX

MOV

INX

SHLD

MOV

PNTRH

C, MH

PNTRL, C

;NEW ORENT « SCALE IN HL

Circle 386 on inquiry card.

Mini-Micro. IMaxi Savings, i

The Mini-MicroDesigner - acomplete microcomputer system for just$830.50!*

Here's the real thing - amicroprocessor that takes youright to "real world" situationsfor about half the price ofother systems.With our hardware, you'llreceive the most completesoftware package in the busi-ness. 700 pages of clearinstruction, written by Rony,Larsen, Titus - famous fortheir BUGBOOKS^. Designedto show you how to get yourMMD-1 up and working evenif you have no prior knowledgeof digital electronics.With our MMD-1 and M/l boardcombination you'll get all ofthe interfacing hardware youneed, without costly extras.

•Suggested resale price (U.S.A.).

Here's what we pack infor $830.50:

2.5KRAM ... 1.5KPROM(special D-Bug, Monitor andKeyboard Interpreter) .. .Audio Cassette Interface ...TTY Interface .. .Built-inKeyboard for Control andData Entry ... Direct Accessto latched ports ... Built-inBreadboarding Capability ...Single Step Option . .. Moni-tors for Address and DataBusses. And more.Best of all, it's on the shelf atyour computer store now.Write us for an info-packedbrochure and the name of thedealer nearest you.

Dealer inquiries invited.

L

E&L INSTRUMENTS, INC.

61 First Street, Derby, Conn. 06418(203) 735-8774 Telex No. 96 3536

97

Listing 1, continued:

MVILXI

DAD

SHLD

JMP

H,a

B.TA3LEB

INCPTMLOUP

; JUMPJUMP:

; JUMPJUMPS:

TO A HEW LOCATION

ADDRESS OF INCREMENT TABLEADD ORENT i SCALESTORE IN INCREMENT POINTERGET ANOTHER INSTRUCTIONIN DISPLAY FILE

LHLD

INX

MOV

INX

MOV

MOV

SHLD

JMP

PNTRH

A, MH

H, ML, APNTRMLOOP

: I ST HALF OF ADDRESS;2ND HALF OF ADDRESS;STORE IN INSTRUCTION POINTER

TO SUBROUTINE

; RETURRETS

LHLDI MXMOVINXMOVINXPUSHMOVMOVSHLDJMPN FROMPOPSHLDJMP

PNTRH

C, MH

B, M ;H

H !H, 3L, C

PNTR ;MLOOPU3R0UTINEH !PNTRMLOOP

J DEL X IN A

;L.D. XINC

MOV B,D [X IN 3C (H.O.)

MVI C,0

MOV D,E ; Y IN DE (H. 0.)

MVI E,0

MVI A.20H [32 POINTS IN VECT

SUB

D

JC

PLUSX

MVI

0,0

RLC

RLC

RLC

MOV

H, A

ANI

0F8H

MOV

L, A

MOV

A,H

ANI

7H

XRA

C

MOV

H, A

SHLD

XINC

LLOOP:

; SHORTSVEC:

VECTOR MODE

LHLD

INX

MOV

INX

SHLD

MOV

ANI

MOV

MOV

MVI

LHLD

DAD

MOV

INX

INX

MOV

XCHG

MOV

ANI

RRC

RRC

RRC

RRC

MOV

MOV

ANI

JNZ

SHLD

MOV

ADD

MOV

MOV

ADD

MOV

SHLD

DCR

JNZ

JMP

MOV

ADD

MOV

MOV

ADD

MOV

DCR

JNZ

MOV

XCHG

RLC

JC

LHLD

JMP

PNTRH

B, MH

PNTRA, 37H

C, AA, 33,0INCPT8

3, MHHC, M

E, A70 H

D, A

A, E

SH

FLOOP

XYOUT

A, B

H

H,A

A,C

L

L,A

XYOUT

D

NLOOP

CKESC

A, B

H

H, A

A, C

L

L,A

D

FLOOP

A, E

MLOOP

PNTR

NEXT

; LONGLVEC:

VECTOR MODE

LHLD

INX

MOV

INX

MOV

INX

SHLD

MVI

SUB

JC

MVI

RLC

RLC

RLC

MOV

ANI

NOV

MOV

ANI

XRA

MOV

SHLD

MOVMVI

H,A0FBHL, AA, H

7HC

H, AYINC

NEW ADDRESS IN BC

STORE OLD POINTER IN STACK

ADDPESS IN INSTRUCTION POINTFR

; 'ESTO'iE POINTER FROM STACK

[CURRENT INSTR INDEX

[SHORT VECTOR INSTRUCTION

i RESTORE POINTER

SMASK DIRECTION BITS

[OFFSET IN C

;ORIG INST IN A

[ZERO IN 3

[INCREMENT POINTER

;ADD DIRECTION OFFSET

[X INCREMENT

:Y INCREMENT[XY IN HL[ORIGINAL INSTR;LENGTH 3ITS

[SHIFT RIGHT 1

; IN D

[ORIGINAL INST."!

[ON/OFF 3IT

[ JUMP IF "OFF"

:INITIAL DOT TO CRT

[X INCREMENT

LHLD

DAD

XCHG

LHLD

DAD

MOV

MOV

MOV

SHLD

DCR

JNZ

YINCD

XINC

B

B, H

C, LL,DXYOUT

;NEW Y IN DE

[NEW X IN BC

; XY IN HL [H.O.)[WRITE TO CRT

XCHG

JMP MLOOP

TRANSFER CONTROL TO EXECUTIVE

[RESTORE XY TO DE

LHLD

INX

SHLD

MVI

MVI

SHLD

RST

JMP

PNTR

H

PNTR

H,8eH

L.80H

XYOUT

J

MLOOP

[BUMP POINTER

[BEAM TO SCREEN CENTER

[XFER TO LOC I8H[NEXT INSTRUCTION

SYNCHRONIZE WITH REAL-TIME CLOCK

; TABLETABLE:

PNTR

H

PNTR

H.80H

L.80H

XYOUT

H,TIME

A,M

M

SLOOP

MLOOP

[3UMP POINTER

[BEAM TO SCREEN CENTER

[OLD TIME IN A[OLD = NEW?[YES - KEEP TRYING[NO - NEXT INSTR

i NEW XY IN HL[WRITE TO CRT

[LOOP IF NOT DONE[CHECK "ESCAPE"[X INCREMENT[ADD TO X

[Y INCREMENT

[ADD TO Y

i NEW XY IN HL

[LOOP IF NOT DONE[ORIGINAL INSTRUCTION[XY TO DE

[SET CARRY IF "ESCAPE"[MAIN LOOP IF SO

[GET MORE DATA IF NOT

;NEW X POS

;NEW Y POS

LHLD

INX

SHLD

MVI

MVI

SHLD

LXI

MOV

CMP

JZ

JMP

FOR VECTOR ORIENTATION AND SCALING

DB

DB

DB

Da

DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD3DBD3D3DBDBDBDBDB

-2

-2

-2

0

2

2

2

0

-2

-2

-2

0

J

J

3

0

-J

-3

-3

PNTRHB, M

H

A,MHPNTR

C.0F8K ; SPECIAL MASK FOR

E [DEL Y IN A

PLUSY ;TEST SIGN OF DEL

C,0 [SPECIAL MASK FOR

3

3

3

0

-3

-3

-3

[DIVIDE 3Y 32[SAVE IN H[SAVE 1ST 5 BITS[L.O. YINC[RESTORE

[SAVE LAST 3 SITS[XOR'SPECIAL MASK[H.O. YINC[STORE

DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD3D3

4

4

A

0

-A

-A

-A

0

A

A

A

0

-4

-4

-4

[ THE FOLLOWING ARE STORAGE CELLS NOT TO BE IN PROM[ WORKING STORAGE

A,B [X POS

C.0F8H

PNTR:XINC:YINC:INCPT:

TZ*

DWDW

DWDWEND

POINTER TO NEXT INSTR

LVEC ONLY

LVEC ONLY

POINTER TO INCREMENT I

98

F1IP OVER OUR FLOPPY

Only $750 from Peripheral Vision.

Peripheral Vision is a brand-new company that's dedi-cated to selling reasonably priced peripherals for variousmanufacturers' CPU's.

We think you'll flip over our first product.

It's a full-size floppy disk for the Altair-lmsai plug-incompatible S-100 BUS. And it's available for as low as $750.

Here are the features:

• 1 interface card supports 4 drives

• Stores over 300,000 bytes per floppy

• Bootstrap EPROM included—no more toggling orpaper tape

• Completely S-100 plug-in compatible

• Interface cabling included

• Drive is from Innovex (the originator of the floppyconcept)—assembled and tested

• Interface card design is licensed from Dr. KennethWelles and the Digital Group

• Disk operating system with file management systemincluded on floppy

• Cabinet and power supply optional

Prices:

Interface card kit andassembled and tested drive

Power supply—+24V at 2A

Cabinet—Optima, blue

Circle 387 on inquiry card.

Kit Assm.

$75045

$8506585

Now, a little more about our company.

Peripheral Vision may be brand-new, but we have someold-fashioned ideas about how to run our business.

We know there are serious incompatibilities among thedifferent manufacturers' peripherals and CPU's. We want toget them together. And, we want to bring significant newproducts to market—products consisting of everything fromadaptation instructions/kits for hardware and software tomajor new products.

It's a tall order, but we feel we're up to the task.Peripheral Vision has already obtained a license fromThe Digital Group to adapt versions of some of their prod-ucts to the S-100 BUS. And we're working on getting morefrom other companies.

Most important to our customers, Peripheral Vision iscommitted to helping you get along with your computer.We'll do all we can to make it easy.

Write us now for all the information on our company,our philosophy and our exciting line of products. And beprepared to flip over all of it.

LKJ INC

P.O. Box 6267/Denver, Colorado 80206/ (303) 777-4292

Send me the works, and I just might flip over it!

Name

Address.

City/State/Zip_

Listing 2: Numeral display module con-tains the graphics dot code to draw thenumerals 0 thru 9.

Listing 3: The interrupt handler and exe-cutive module covers the real time clock,keyboard scan routines, and dispatchesobject blocks on correct execution times.

; NUMERALS MODULE

; COPYRIGHT 1S76 D. KRUGL1NSKI

; LOAD ADDRESS

GRAPHICS MACROS

MACRO

X, Y

DB

0

D3

X

D3

Y

ENDM

MACRO

X, Y

DS

2

db

X

D3

Y

ENDM

MACRO

X, Y

DB

4

DB

X

DS

Y

ENDM

MACRO

DS

S

ENDM

MACRO

LEN, Dili

D3

DIP OR (LEN

SHL

4)

ENDM

MACRO

LEN,DIP

D3

DIR OR CLEN

SHL

4)

OK SH

ENDM

MACRO

LEN, DIti

DJ

DIP OR (LEN

SHL

4)

OP 32 H

ENDM

MACRO

LEN,DIP

Do

DIP OR (LEN

SHI.

4)

OP 86 H

ENDM

MACRO

SCL,ORH

Dd

a

DB

OKN OR (SCL

SHL

4)

ENDM

MACRO

ADDS

DB

t'AH

DJ

ADDR

ENDM

MACRO

ADDR

D3

0CH

DW

ADDR

ENDM

MACRO

DB

a eh

ENDM

SYSTEM LINKAGES

ORG

46H

DJ

ZERO

DJ

ONE

DJ

TWO

DW

THREE

DW

FOUR

DW

FIVE

DW

SIX

DW

SEVEN

DJ

EIGHT

DW

NINE

ORG

NSTRT

NUMERALS 0-9

SVEC

SV

6,0

SV

4,2

SU

6,4

SU

4,6

SVEF

6,2

RETS

SVEC

SUF

4,2

SU

6,0

SUF

6,4

SUEF

2,2

RETS

SVEC

SUF

6,0

SU

4,2

SV

3,4

SU

4,6

SU

3,4

SU

4,2

SUEF

2,2

RETS

SUEC

SV

4,2

SU

6,0

SV

4,6

SVF

3.4

SV

4,2

SVF

3,4

SVEF

2,2

RETS

SVEC

SVF

4,2

SVF

3,0

SV

4,6

SV

3,0

SUF

4,2

SV

6,4

SUEF

2,2

RETS

SVEC

SV

4,2

SU

3,0

SU

4,6

SU

3,0

SU

4,2

SUF

6,4

SVEF

2,2

RETS

SVEC

SVF

3,0

SV

4,2

SV

3,4

SV

4,6

SU

5,0

SV

4,2

SUE

6,4

SUEF

2,2

RETS

SUEC

SUF

6,0

SV

4,2

SU

6,4

SVEF

2,2

RETS

SUEC

SU

6,0

SV

4,2

SV

6,4

SV

4,6

SUF

3,0

SV

4,2

SVF

3,4

SUEF

2,2

RETS

SVEC

SUF

4,2

SV

6,0

SU

4,6

SV

3,4

SU

4,2

SUF

3,4

SUEF

2,2

RETS

END

i INTERRUPT HANDLERS S EXECUTIVE MODULE; COPYRIGHT 1976 D. KRUGLIN3KI

; SYSTEM LINKAGES

;LOAD ADDRESS;ADDRESS OF * TASKSFOLLOWED 3Y DISPATCH TA3LE

KINTA

EQU

10H

;K3RD INT ADDR

CINTA

EQU

I8H

;RTC INT ADDR

KINTC

EQU

0FFC1H

; K3RD INT CONROL AD.

KDCOD

EQU

44H

;KEY30ASD DECODER A;

TIME

EQU

3FH

ORG

KINTA

;KEYBOARD INTERRUPT

JMP

K3ENT

;HANDLER ADDR

ORG

CINTA

;PTC INTERRUPT

JMP

CENT

:CLOCK HANDLER

ORG

TIME

DB

0

ORG

KDCOD

DW

K3DUM

;DUMMY K3 DECODER

ORG

ESTRT

HANDLER FOR REAL-TIME CLOCK OR 'EXEC COMMAND

PUSH

PS'W

PUSH

3

PUSH

D

PUSH

H

jSAUE ALL PEGc

LXI

H, TIME

INR

M

;INCREMENT TIME

EI

;ENA3LE INTERRUPT

CALL

EXEC

;CALL EXECUTIVE

POP

H

;RESTORE REGS

POP

D

POP

B

POP

PSW

RET

;RETURN TO GRAPHI

HANDLER FOR KEY30ARD

PUSH

PSW

PUSH

B

PUSH

D

PUSH

H

LDA

KINTC

EI

LXI

H,HRTN

PUSH

H

LHLD

KDCOD

PCHL

POP

H

POP

D

POP

B

POP

PSW

RET

;REAC CHAR/CLEAR

;SAVE RETURN ADDRi KEYBOARD DECODER;SIMULATED 'CALL'

;RTN TO INTERRUPTED PGM

EXECUTIVE -- SCANS DISPATCH TABLE, DISPATCHESPROGRAM WITH OBJECT BLOCK WHEN TIMES MATCH

EXEC:

MOV

3, M

LHLD

TADR

MOV

C, M

I NX

H

LXI

D,5

ELOOP:

MOV

A, M

ANA

B

INX

H

CMP

M

JNZ

NOTEQ

PUSH

B

INX

H

MOV

C,M

INX

H

MOV

B, M

INX

H

MOU

E, M

INX

H

MOU

D,M

INX

H

PUSH

H

LXI

H, ERTN

PUSH

H

XCHG

PCHL

ERTN:

POP

H

POP

B

LXI

D,5

JMP

ENDL

NOTEQ:

DAD

D

ENDL:

DCR

C

JNZ

ELOOP

RET

KBDUM:

RETEND

TZ*

;SAVE TIME IN 3;# OF TASKS

;TOP OF DISPATCH TABLE

; MASK TIME FOR TASK

i COMPARE OBJECT TIME;DISPATCH IF EQUAL;SAVE BC (TIME i II

;OBJECT BLOCK ADDR IN BC

iPROGRAM ADDR IN DE

;SAVE HL (POINTER IN LIST)

;SAVE RETURN ADDRESSiPROGRAM ADDRESS IN HLi JUMP TO PROGRAM (CALL);RESTORE POINTER;RESTORE BC

;CONTINUE SCANNING TABLE

;HL=HL+5

;DECREMENT TASK CNT

;TEST NEXT TASK

;RETURN TO HANDLER

; DUMMY KB DECODER

100

theProcessorTerminal.

A logical forward step in Microcomputer design

the Processor Terminal. A new design by TEI and look atwhat you get... a complete, self contained microcompu-ter system with display and mass storage, a full keyboardand plenty of slot space for additional boards. And thatfamous TEI CVT power supply that makes brownouts athing of the past.

Display — A15" high-resolution black and white videodisplay with an optical filter face plate to reduce glare andimprove type visability . .. Keyboard — Full upper andlower case ASCII detached keyboard with 8 programmablespecial function keys. Keyboard status indicators showcomputer BUSY or READY And a 16-key numeric clusterpad set up calculator style ... Disk Drive & Controller —A Shugart SA-400 mini-floppy disk drive. Soft sectored

with a capacity of about 90 KB. IBM compatible format.Controller will handle 3 drives.. . CPU — 8080 based witha flexible design that allows you to implement a start up"jump to" operation to any dip switch selected byteaddress you choose. Merely turn on power or press RESETand you are off and running. Excellent for power failureautomatic restart. .. Memory — 16K of static RAM memoryLow power chips. Selectable address assignment andmemory protect features ... I/O — 3P+3S input/outputboard. 3 parallel ports and 3 serial ports with selectablebaud rates of 75 to 19,200. RS-232C and TTL outputs ...Video — A video board provides the support for thevideo display functions .. . Mainframe — A 12 slotmainframe with a 17-amp CVT power supply motherboardassembly heavy duty aluminum cabinet, fan and washablefilter. All edge connectors and card guides provided ...Software — CP/M disk operating system and BASICprovided on disk.

the Processor Terminal (Model MCS-PT) fully assem-bled and tested is priced at $3495.00.

the Processor Terminal partially assembled (We buildthe cabinet, keyboard, monitor, power supply disk driveand motherboard and you build the CPU, RAM, I/O, Videoand Controller boards which we supply as kits). Thispartially assembled unit is priced at $2995.00.

MCS

SPECIAL SYSTEMS GROUP

MICROCOMPUTER SYSTEM

Contact your local TEI Dealer or if you are not near one of our dealers, write or call CMC Marketing Corp direct for more information.

CMC MARKETING CORP7231 Fondren Rd, Houston, TX 77036 Telephone (713) 774-9526

See you atPers. Comp. 10/27-29 Chicago Booth #53Circle 388 on inquiry card.

Listing 4: The system function module takescare of all system calls, acceleration lookups,and random number generation.

; SYSTEM FUNCTIONS MODULE

; COPYRIGHT 1976 D. KRUGL1NSKI

; SYSTEM CALL, MOVE, ACCELERATION, RANDOM

MSTRT

EQU

0C00H

;LOAD ADDRESS

; COMPLEMENT HL

COMHL

MACRO

MOV A,H

CMA

MOV H,A

MOV A, L

CMA

MOV L,A

INX H

ENDM

; LOAD

HL INDEXED C8C=BASE)

LDBLX

MACRO OFSET

PUSH D

LXI H,OFSET

DAD B

MOV E,M

INX H

MOV D,M

XCHG

POP D

ENDM

; STORE HL INDEXED <BC=BASE>

SDBLX

MACRO OFSET

PUSH D

XCHG

LXI H,OFSET

DAD B

MOV M,E

INX H

MOV M,D

POP D

ENDM

; LOAD

REG INDEXED (BC=BAS£)

i HL

DESTROYED

LOADX

MACRO REG,OFSET

LXI H,OFSET

DAD B

MOV REG,M

ENDM

; STORE REG INDEXED CBC=BASE>

i HL

DESTROYED

STORX

MACRO REG, OFSET

LXI H, OFSET

DAD B

MOV M.REG

ENDM

;

ORG 38H ;RST 7 ADDRESS

JMP SYSCL

ORG MSTRT ;LOAD ADDRESS

MOVE: PUSH

B

J SAVE BC

CALL

MOVI

;UPDATE X

CALL

MOVI

;UPDATE Y

LDAX

B

iINST PNTR IN DE

MOV

E,A

INX

B

LDAX

B

MOV

D,A

INX

D

;X COORD ADDRESS

POP

B

; ORIG BC ( TOP OF LIST)

LOADX

A, 1

;X(N) H.O.

ADI

80H

;ZERO AT SCREEN CENTER

STAX

D

;X COORD

INX

D

; Y COORD ADDR

LOADX

A, 7

;YCN> H.O.

ADI

80 H

;ZERO AT SCREEN CENTER

STAX

D

; Y COORD

RET

; UPDATE EITHER

X OR Y

MOVI : PUSH

B

j SAVE BC FOR XC N)

LDAX

B

;X( N) TO DE

MOV

E, A

INX

3

LDAX

3

MOV

D, A

INX

B

j-X( N-l ) TO HL

LDAX

B

; AND DE TO NEW XC N-l)

CMA

MOV

L,A

MOV

A, E

STAX

B

INX

B

LDAX

B

CMA

MOV

H, A

MOV

A, D

STAX

B

INX

H

DAD

D

;HL+DE+DE TO HL

DAD

D

INX

B

;XACC TO DE

LDAX

B

MOV

E, A

INX

B

LDAX

B

MOV

D, A

DAD

D

iHL+XACC TO HL

POP

D

; BC FOR X( N)

MOV

A, L

iHL TO NEW X(N)

STAX

D

INX

D

MOV

A, H

STAX

D

INX

B

;SETUP FOR NEXT BYTE

RET

ORBITAL ACCELERATION LOOKUP FUNCTION

1024-VALUE VERSION (2 BYTES/VALUE)CALL: SCALL I

ATAB EQU 0E00H ; LOCATION OF ACC TABLE

XN SET 0

XACC SET A

YN SET 6

YACC SET 0AH

; ADJUST X 4 Y FOR TABLE LOOKUP 4 SET SHIFT COUNT

i SYSTEM CALL FUNCTION

!i;! ;;::::;;:::;:

ACCEL:

MVISTA

A, 3SHCNT

;SET- SHIFT

COUNT (6 SHIFTS)

1

ENTERED

ON RST

7 FOLLOWED BY FUNCTION #

LDBLX

XN

;X VALUE

i

DESTROYS

HL ONLY

MOVSTA

A,HHOXN

I SAVE H.0.

X

SYSCL:

POP

H

; GET CALL * ADDR

CPI

0

INX

H

JP

POSX

jABS VALUE

X

PUSH

H

;RETURN ADDRESS

COMHL

DCX

H

;CALL t ADDRESS

POSXl

XCHG

; IN DE

PUSH

D

;SAVE DE

LDBLX

YN

;Y VALUE

MOV

E,M

MOV

A,H

MVI

D,0

;CALL * IN DE

STA

HOYN

i SAVE H.0.

Y

LXI

H.CALT3

J CALL TABLE BASE

CPI

0

DAD

D

JP

POSY

; ABS VALUE

OF Y

DAD

D

; ADD *

COMHL

MOV

E, M

POSY:

MOV

A, H

i IN HL

INX

H

OR A

D

i COMBINE H

0. X 4 Y

MOV

D,M

CPI

40 H

XCHG

:ADDR IN HL

JP

GETAD

;JUMP IF »

OR = 40H

POP

D

j RESTORE DE

DAD

H

; DOUBLE Y

IN HL

PCHL

!JUMP TO SUBROUTINE

XCHG

CALTB:

DWDWDWDW

MOVEACCELRAND0

DAD

XCHG

LDA

DCR

STA

H

SHCNT

A

SHCNT

; DOUBLE Xi DECREMENT

IN DESHIFT COUNT

JNZ POSY>1PUTE XACC TABLE

!LOOP IF »OFFSET FROM

0

X 4 Y <IN DE)

; GENERAL PURPOSE MOVE

^UNCTION

; CO

; ASSUMES FIRST

OBJECT

BLOCK LOCATIONS AS FOLLOWS:

GETAD:

MOV

A, D

;H.O. X

0I

X( N)

RRCRRC

2

X(N-l)

RRC

i

RRC

;ROTATE RIGHT :

A

X ACCELERf ! or:

MOV

E, A

5

ANI

7H

6

Y( N)

MOV

D,A

:H. 0. TABLE Oi'l '!■

7

MOV

A, E

8

YC N-l)

ANI

0C0H

9

MOV

E, A

A

Y ACCELERATION

MOV

A, H

; H. 0. Y

B

RRC

C

POINTER

TO 'MBEAM' INSTR

ANI

J EH

D

ORA

E

! CALL

SCALL 0

MOV

E, A

i L.0. TABLE OFFSET

102

Talk to your computer for $299with SpeechLaB.

Use SpeechLab to directlycontrol any S-100 Bus Com-puter such as Sol, IMS AI, Altairand so on. SpeechLab canteach you almost as much as theBell Laboratories know aboutvoice recognition, voice controland computer input.

SpeechLab digitizes andextracts data from speech waveform and applies patternmatching techniques to recog-nize the vocal input. Responseis real time. The systemfeatures 64 bytes of storage perspoken word and can handleup to a 64 word vocabulary. Andrecognition after very littlepractice is 95 percent or better.

$299" assembled and tested

When we talk price every-body's skeptical. And whynot? We give you a completehardware/software system,a 275 page laboratory manual,95 page hardware manualand high fidelity microphone.

The lab manual includes35 graded experiments withover 100 tables and graphs. Infact, it's the only introductoryvolume on speech recognitioncurrently available.

Software includesSpeechBasic Basic program-ming language in source and

"Available in kit form for slightly less.

paper tape, assembly languagespeech recognition programin source and paper tape, hard-ware self-test program insource and paper tape.SpeechBasic plot, correlation,recognition and advancedrecognition programs areoffered in source.

Hard to believe, you bet.True? A Los Angeles customersays, "I love your kit!!! Ihave 40 boards and 2 IMSAI'sand your kit was the bestdocumented of them all. I lovethe way you integrated thesoftware and hardware to-gether. I love your lab manual'.'

We loved those comments.They tell the story better thanwe ever could. The LA cus-tomer did ask who the foundersof the firm were so he couldrelate better. They're a couple of

gifted young engineers whogot tired of the big firm, big tech-nology trip and decided to takea chance with a better idea.

You can't get better qualityYou can't get more performance

Sure, more complex,higher price equipment is avail-able for about 50 times moremoney. It won't do much morethan you can do with Speech-Lab. And the quality andstate-of-the-art engineeringcan't be any better. We useCMOS design for low powerand ultimate reliability.

See SpeechLab at your nearbycomputer store

Selected computer storeshave SpeechLab on display.Visit your nearest. If he doesn'thave it, ask him to contact usor simply write us directly.

Heuristics, Inc.

Box B, 900 N. San Antonio Rd.

□ Master Charge

□ BankAmericard (Visa)

Date Card Expires.Interbank No

Los Altos, CA 94022, Phone (415) 948-2542 Acct. No..

□ Send me SpeechLab. I enclose $299.California residents add sales tax.

□ Send me more information.

Name

Street

Master Charge only )

City

In Canada:Trintronics Ltd.186 Queen St. W.Toronto. Canada M5V 1Z1

State.

Zip_

Heuristics

INC.

Listing 4, continued:

Listing 5: The applications module, which isspecified for a particular program, is des-cribed in detail on page 96.

PUSH D ;SAVE OFFSET F01 LATER

CALL RETRV :GET ACC VAULE

WE XACC SIGN AGREE WITH -X COORD

LDACPIM

COMIILSD3LX

;H. 0. X VALUE: TEST 31GN

; POS - COMP XACC; STORE IN D3J 3LK

COMPUTE YACC TA3LE OFFSET FROM XACC OFFSET

POPMOVRRCRRCRRCMOVANIMOVMOVANIHOVMOVANIORARLCRLCRLCORAMOVCALL

A, L

E, A7HD, AA, E0CCH

M

A, L

0C0H

H

E

E, ARETRV

XACC OFFSET IN HL

j II. 0. TA'SLE OFFSET

iL.O. OFFSET:GET YACC VALUE

MAKE YACC SIGN AGREE WITH -Y COORD

LDA HO'

CPI 0

JM YMCOMHL

NS: SD3LX YAiRET

:STORE YACC IN OBJ 3LK

:RETURN TO CALLING PROGRAM

SU3R0UTINE TO RESTORE ACC VALUE FROM TA3LE TO HLAND ADJUST ACC BY SHIFT COUNTINPUT: OFFSET IN DE

RETRV: LXI

H, ATAJ

TA3LE 3ASE

DAD

D

ADD OFFSET

MOV

E,M

INX

H

MOV

D, M

DATA IN DE

PUSH

3

LDA

SHCNT

SAVE SHIFT COUNT IN 3

MOV

3, A

CPI

0

JZ

EXIT

SHIFT COUNT=0

; SHIFT'DE

RIGHT 2 (DE

< 1000)

MOV

A, D

RRC

RRC

MOV

D, A

MOV

A, E

RRC

RRC

PUSH

PSW

SAVE CARRY FOR ROUNDI

ANI

3FH

ORA

D

MOV

E, A

MVI

D,0

; DECREMENT « TEST SHIFT COUNTLOOP: DCR 3

JZ ROUND ;DONE SHIFTING; SHIFT E RIGHT 2 <D=0>

POP

PSW

SANE STACK

MOV

A, E

RRC

RRC

PUSH

PSW

SAVE CARRY

ANI

JFH

MOV

E, A

JMP

LOOP

POP

PSW

'KSTORE CA!"Y FRO

MOV

A, E

L.O. ACC

ACI

0

••'OUND

MOV

E, A

ESTORE E

XCHG

ACC IN HL

POP

U

■:ESTORE INDEX REG

RET

RANDOM NUM3ER FUNCTION

GENERATES A NEW RANDOM NUMBER IN A ANDCALL: SCALL 2

LXI

H, HND

MOV

A, M

ANI

3 EH

JPE

CLEAR

CMC

MOV

A, M

RAL

MOV

I'l, A

RET

FEEDBACK MASK,CLEAR CARRYXOR FEEDBACK 31TSSET CARRY IF XOR TRUERESTORE RNDSHIFT IN CARRYIN MEMOR*

WORKING STORAGE

RND:

D3

HOXN:

pa

HOY!::

D3

SHCNT:

D3

END

; "AtDOtl NUMBER

; H. 0. X VALUEjH.O. Y VALUE:ICC SHIFT COUNT

SPACL WAR APPLICATIONS MODULECOPYRIGHT I97S D. KRUISLINSXI

IMPORTANT CONSTANTS

ASIRT

EQU

500 H

3ADRI

EQU

0 FFFEH

SUN

EQU

7

INTVL

EQU

I8H

EHSLN

EOU

8H

ACON

EUU

8

RMAX

EOU

12

VCON

EQU

300K

HULY

EQU

20 M

LIMIT

EQU

7 AH

; LOAD ADDRESS

iJUTTON HEAD ADDRESS

;COLLISION RAD OF SUN

;DURATION OF EXPLOSION

;C0LLSIION RAD OF TOHPEDOS

:ACCELERATION COHSIANI

;TORPEDO TIMEOUT

;TORPEDC RELATIVE VELOCIT*

IHYPERSPACE Evil DELA"

:SCREEN EDGE

; GRAPHICS MACROS

M3EAM

MACRO

1)3

DD

DJ

ENDM

x, y

a

Y

MDISP

MACRO

1)1

D3

D3

ENDM

X,v2XY

LVEC

MACRO

DJ

DJ

D3

ENDM

X, Y4XY

SVEC

MACRO

D3

ENDM

6

SV

MACRO

LEN,DIR

D3

DIR OR CLEN

SHI.

4)

ENDM

SVF

MACRO

LEN,UIR

DB

DIR OR (LEN

SHI.

4)

OR

RH

ENDM

SUE

MACRO

LEN,DIR

D3

DIR OR (LEN

SHI

4)

OR

30 H

ENDM

SUEF

MACRO

LEN,Dili

D3

DIR OR (LEN

SHI.

4)

OR

5RH

ENDM

PARAM

MACROD3

SCL.ORNS

D3

ORN OR (SCL

SHI

4)

ENDM

JUMP

MACRODBDWENDM

ADDR

0AH

ADDR

JUMPS

MACROD3DWENDM

ADDR

0CH

ADDR

REISEXEC

MACRO

DB

ENDM

MACRO

D3

ENDM

0EH10H

; ENTRY MACRO FOR DISPATCH TABLE

ENTRY MACRO MASK, TIME,OBJ,PROG

DB MASK

D3 TIME

DW OBJ

DW PROG

ENDM

; SYSTEM CALL MACRO

SCALL MACRO MODN

RST 7

DB MODN

ENDM

• MACRO TO CREATE 12-3YTE COORDINATE 3LK

MACRO

DW

DW

DW

DW

DW

DW

ENDM

XN,XM,XAC, YN,YM, YAC

XN

XM

XAC

YN

YM

YAC

; MACRO TO LOAD REG INDEXED (BC=BASE)

j DESTROYS HL

LOADX MACRO REG,OFSET

104

How to get

more bytes for

your buck.

First, come to

Micropolis. Where

you get a MetaFloppy™

instead of an ordinary 5'A" floppy

disk system.

Then, forget all things average.

Because the Micropolis MetaFloppydelivers over four times the 70K (or so)bytes of storage you'd expect. A whop-ping 315K bytes per disk to be exact. Allformatted — not raw. And all on a singledisk side.

But that's not all. Because Micropolisdelivers everything else you need, too.Power Supply. Interface cable. ExtendedBASIC software. Plus an S-100 control-ler for your Altair 8800, IMSAI 8080,COMPAL 80, or the like.

There's even a dual drive model formaximum convenience. And savings.

Circle 390 on inquiry card.

The Micropolissecret: We build everycomponent we sell. In fact, we're the onlytotally integrated 5'/4" floppy disk systembuilder around. And where there's nomiddleman, there's no middleman to pay.

So, before you swallow someone else'sprice/performance story, find out howmuch your buck really buys and how muchfaster it buys it —at Micropolis.

For a free brochure and price sheet,write: Micropolis Corporation, 7959Deering Ave., Canoga Park, California91304 or phone (213) 703-1121.

MICROPOLIS™

Listing 5, continued:

LXI

H,OFSET

DAD

B

MOV

REG, M

ENDM

• MACRO TO STORE REG INDEXED (3C=BASE)

; DESTROYS HL

STORX MACRO

REG, OFSET

LXl

H, OFSET

DAD

3

MOV

M.REG

ENDM

• MACRO TO LOAD

2 BYTES FROM OFSET

; INTO HL <BC=3ASE ADDR)

LD3LX MACRO

OFSET

PUSH

D

LXI

H,OFSET

DAD

3

MOV

E, M

I NX

H

MOV

D, M

XCHG

POP

D

ENDM

; MACRO TO STORE 2 3YTES IN OFSET

; FROM HL (BC=BASE ADDR)

SD3LX MACRO

OFSET

PUSH

D

XCHG

LXI

H,OFSET

DAD

3

MOV

M, E

I NX

H

MOV

n,o

POP

D

ENDM

■ MACRO TO TAKE

ABSOLUTE VALUE OF A

A3S MACRO

CPI

0

JP

POS ; JUMP IF A POS

CMA

;COMPLEMENT A

POS:

ENDM

i LINKAGE BETWEEN SYSTEM AND APPLICATION

TIME EQU

3FH

SUMS EQU

46H

ORG

'10 H

DW

START ;DISPLAY FILE

ORG

42 H

DW

NTSK :# TASKS + LIST

ORG

<HH

DW

K3DCD :KEYBOARD DECODE

; DISPATCH TA3LE + NUM3ER OF OBJECTS

ORG

ASTRT

NTSK: D3

11 ;# TASKS

i DISPATCH TABLE

ILNT1: ENTRY

0,0,SHI,I HIT

IENT2: ENTRY

0,0,SH2, INIT

PEI1T1: ENTRY

0,1,SHI,SSTRT

PENT2: ENTRY

0,1,SH2.SSTRT

ENTRY

0,0,SHI,SFLY

ENIRY

0,0,SH2.SFLY

ENTRY

0,0,BUI,3FLY

ENTRY

0,0,BU2,3FLY

GENT1: ENTRY

0,1,SHI,FIRE

GENT2: ENTRY

0,1,SH2,FIRE

ENTRY

0FH.0, SCI , SCORE

ENTRY

0FH.8, SC2, SCORE

ENTRY

7H,2, SHI , ROT

ENIRY

7H,6, SH2, ROT

; 03JECT 9L0CKS

■ SHIP OBJECT

BLOCKS

SHI: COORD

0,0,e,0,a,r :dynamic coords

DW

PPOSI : PM I!< TO MBr.AM 1NSTR

; 5TAST POSTN

COORD

-6 Fee H,-7030 H,0, 6300 H, 6000 H, 0

OS

illil

P,"T! TO TORPEDO

DW

PEXHI+I

CALL EXHAUST/ZERO

DW

SHIP1

SHIP SUB

DW

PSUBI+1

CALL SHIP/EXPLO

DW

PDIRI+I

SHIP ORENT

DW

PENT1

3ACK POINTER

DW

GENU

FIr.E ENTRY

D*

SCI

SCORE

D9

0 1 II

ACC BUTTON MASK

D3

02)1

FIRE MASK

DB

0411

CW MASK

D3

Kd H

CCW MASK

Dd

0

INHIBIT FlhE

DB

0

ORIENTATION

DW

3ADRI

BUTTON ADDRESS

D3

0CH

HYPERSPACE MASK

D3

0

HYPER3PACE FLAG

DB

0

INITIAL ORIENTATION

DW

IENT1

PACK PNTR TO INIT PGM

5112: COORD

3,0,0,0,0,0

DW

PPOS2

COORD

DW

DW

DW

DW

DW

DW

DW

DW

D3

DB

D3

DB

DB

DB

DW

DB

DB

DB

DW

6F00H, 7000H,0,-6000H,

BII2

PEXH2+1

SHIP2

PSU32+1

PDIR2+I

PENT2

GENT2

SC2

I0H

20H

10 H

80H

BADRl

0C0H

3

1

IENI2

TORPEDO OBJECT BLOCKS

0,0,0,0,3,0

BPOSl3U2

BP0S2

BUI: COORD

DW

DW

DBBU2: COORD

DW

DW 0

DB 0

; SCORE OBJECT BLOCKSSCI: DB 0

DW SCI I +1

DW SCI2+I

SC2: D3 3

DW SC2I + 1

DW SC22+1; WORKING STORAGE LOCATIONORSAV: DW 0

;DYN COORDS

PNTR TO NDISP INSTRPNTR TO NEXT TORPEDOCOUNTDOWN SINCE FIRING

;BINARY SCORE VAL;lST DIGIT:2ND DIGIT

; DISPLAY FILE

START:

EXEC

M3EAM

30H.30H

PARAM

0,0

JUMPS

SUNSB

PPOSI:

M8EAM

0.3E0H

PDIRl :

PARAM

I ,»

PEXHI:

JUMPS

NULL

PSUBl:

JUMPS

SHIPl

PP0S2:

N3EAM

0 ,0 CP H

PDIR2:

PARAM

I .0

PEXH2:

JUMPS

NULL

PSU32:

JUMPS

SHIP2

BPOSl:

M3EAM

0,0

BP0S2:

ME AM

0,0

PARAM

I .0

M8EAM

I i 1

SCI l :

JUMPS

NULL

SC12:

JUMPS

NULL

M3EAM

0D0H, 1

SC21 :

JUMPS

NULL

SC22:

JUMPS

NULL

JUMP

START

SUNSB:

SVEC

SVF

S,0

SV

3,2

SV

3,3

SV

6,4

SV

3,5

SV

6,6

SV

3,7

SV

6,0

SV

3, 1

SVE

3,2

RETS

SHIPl:

SVEC

SVF

3,0

SV

2,5

SV

4,4

SV

2,2

SVF

2,5

SVF

4,0

SVF

2.1

SV

2,3

SV

1,1

SVE

2,6

RE IS

SHIP2:

SVEC

SV

3,0

SV

2,5

SV

4,4

SV

2,2

SVF

2,6

SVF

4,0

SVF

2, l

SV

2,3

SV

4,4

SVE

2,6

REIS

EXPLO:

PARAMSVEC

2,0

SVF

3,0

SV

5,4

SVF

3,2

SV

6,7

SVF

3,4

SV

5,2

SVF

3,0

SVE

6,5

RETS

NULL:

RETS

106

AWoressioN/a

ortheswkws

HOBBYIST

THE AJ 8411/O-A COMPLETELYREFURBISHED IBM SELECTRICTERMINAL WITH BUILT IN ASCIIINTERFACE-JUST $995

Features:

■ ASCII code

■ 14.9 characters per second printout

■ Special introductory price —$995(regularly $1195). 75% discount overoriginal price of new unit.

■ Choice of RS 232 Serial Interface orParallel Interface (requires 3P + S

■ Order direct from factory

■ 30 day warranty —parts and labor

■ Nationwide service locations

AJ 841 WARRANTY AND SERVICE ISAVAILABLE IN THE FOLLOWING CITIES:

High quality selectric printing

Reliable, heavy duty selectricmechanism

Off line use as typewriter

Los Angeles

Cincinnati

Philadelphia

Detroit

Hackensack

Dallas

Columbus

Houston

Cleveland

Atlanta

San Jose

Chicago

Boston

New York

Washington,

D.C.

ANDERSONJACOBSON

Anderson Jacobson, Inc., 521 Charcot AvenueSan Jose, California 95131, (408) 263-8520

HOW TO ORDER ANAJ 841 I/O TERMINAL

Make cashier's check or money order pay-able to: ANDERSON JACOBSON, INC.

Address your request to:Personal Computer TerminalANDERSON JACOBSON, INC.521 Charcot AvenueSan Jose, CA 95131

Upon written notification, pick up your ter-minal at the AJ service office located in oneof the above cities. Allow six to eight weeksfor delivery.

Afinal check of your unitwill bemadeatthelocal AJ service office at time of pick up.For warranty or repair service, return unitto designated service location.

CLIP AND MAIL WITH ORDER

SELECT EITHER:

□ RS 232 Serial Interface

D Parallel Interface (requires 3P I S)

Number of units

Local Sales Tax

Shipping and handling $35.00 each(excluding San Jose)

TOTAL

NAME

M $995.each $_

$_$.

$-

ADDRESSCITY

.STATE.

_ZIP

PHONE (

Circle 391 on inquiry card.

Listing 5, continued:

SVEC

sv

SVEFRETS

1,4

7,0

*********** PROGRAMS *************

; INITIALIZATION PROGRAM

i SCHEDULED AT START 4 BY CTL C

SCPNT

SET

28H

' ' ' ' ' ' ' * '

IEPNI

SET

35H

PEPNT

SET

24H

INIT:

LDBLX

SCPNT

GET SCORE ADDR

MV1

M,0 i

ZERO SCORE

LD3LX

PEPNT

GET ADDR OF SHIP ST

I NX

H

TIME

MVI

M,0

SCHED SHIP START

LDBLX

IEPNT

ADDR OF INIT ENTRY

I NX

H

MVI

N.l

DESCHED SELF

RET

; SHIP START

PROGRAM

DC

SET

0

STCRD

SET

a EH

F3PNT

SET

1 AH

EXPNT

SET

1 CH

PLPNT

SET

1 EH

PCPNI

SET

20 H

PDPNT

SET

22H

ORENT

SET

2FH

HFLAG

SET

35H

HYPERSPACE FLAG

IORNT

SET

3AH

INITIAL ORIENTATION

; SELECT ACCORDING TO HFLAG

SSTRT:

LOADX

A, HFLAG

CPI

a

JNZ

HYPR

; CASE

— H=0—

NORMAL START--NOT HYPER5PACE

CALL

STRT

SHIP INST, DESCHED

CALL

BEGIN

ORENI;0,START POS

RET

HYPR:

JM

HDEST

; CASE

— H=I —

HYPERSPACE

RETURN--NO DESTROY

CALL

STRT

CALL

HCORD

RANDOM COORDINATES

RET

; CASE

--H=-l-

-HYPERSPAC

I RETURN--DEST30Y

HDEST:

CALL

DSTRY

CALL

HCORD

RAND COORDS

RET

; ENDSELECT

STRT:

LDBLX

PLPNT

NORMAL SIART

XCHG

SHIP SU 1 ADDR III DE

LDBLX

PCPNT

CALL ADDD IN HL

MOV

M, E

SHIP SUB -> CALL

I NX

H

MOV

M, D

L03LX

PEPNT

E.'JT'Y ADD'-

MVI

M,0

MASK

I NX

H

MVI

M, 1

DESCHED SELF

RET

BEGIN:

LOADX

A,IORNT

SET ORIENTATION

STORX

A, ORENT

LXI

II, STCRD

STA:iT COORD

DAD

3

ADDR IN HL

MVI

D,I2

12 BYTES TO MOVE

PXLOP:

MOV

a, n

FROM START COORDS

STAX

3

TO DYN COORDS

I NX

H

I NX

B

DCR

D

JNZ

PXLOP

RET

HCORD:

SCALL

2

RAMDOM BvTE IN A

STORX

A.XN+I

H. 0. X COORD

STORX

A, XNM+1

SCALL

2

STORX

A, YN+I

H.O. Y COORD

STORX

A, YNM+I

SCALL

2

STORX

A, VN

L. 0. X ( VELOCITY)

SCALL

2

STORX

A, XNM

SCALL

2

STORX

A, YN

L. 0. Y

SCALL

2

STOPX

A, YNM

MVI

A,0

"ERO HYPERSPACE FLAG

STORX

A,HFLAG

;

RET

; SHIP FLY PROGRAM

XN

SET

0H

YN

SET

SH

XNM

SET

2H

YNM

SET

3H

XACC

SET

04H

YACC

SET

BAH

INPNT

SET

0CH

N3PNT

SET

0EH

: HYPERSPACE MASK

RCNT SET I0H [TORPEDO TIMEOUT

FIPNT SET 26H

ACCM SET 2AH

FIREM SET 23H

CWM SET 2CH

CCWM SET 2DH

HYPM SET J2H

FINH SET 2EH

3APNT SET 30H

ACONI E8U (5*AC0N)/7

SFLY: SCALL a ; MOVE SHIP/EXPLO

SCALL 1 : ACCELERATE

j TEST BUTTONS ONLY IF NOT IN HYPERSPACE

LOADX A,HFLAG

CPI 0

RNZCHECK IF ACC BUTTONLD3LX 3APNTMOVLOADXANALXIJZMVILOADXLXI

DAD

DAD

MOV

I NX

MOV

LD3LX

DAD

SD3LX

D, M

A, ACCMD

D,NULLXHSTD,0

E,ORENTH, XATA3I)

D

E, MH

D, MXACCDXACC

ON;3UTT0N ADDR;3UTTDN WORD; ACC MASK

; NO EXHAUST

; NO ACCELERATION

;X ACC ADDR; XACC L.O.

FOR ORENT

;XACC H.0.

;ADD TO ORIGINAL

SAKE LOGIC FOR YACC

; TESTETST:

MVI

LOADX

LXI

DAD

DAD

MOV

I NX

MOV

LD3LX

DAD

SD8LX

LXI

LD3LX

MOV

I NX

MOV

IF X

D,0

E, ORENTH,YATA3DD

E, MH

D,MYACCD

YACCD,EXHSTEXPNTM, EH

M, DNEAR EDGE

EXHAUST

INSERT EXHAUST/ZERO

IN DISPLAY FILE

LOADX A.XN+1

A3S

CPI LIMIT

CP SJAPX :VES; TEST IF Y NEAR EDGE

LOADX A, YM+I

A3S

CPI LIMIT

CP SWAPY :YES; SHIP HIT SUN?

LOADX A, XN+I

A3S

CPI SUN ; H. 0

JP 3TST

LOADX A.YN+1

A3S

CPI SUN ;H.O

JP 3TST

CALL DSTRY

RET; TEST FOR CLOSE TORPEDOS

BTST: LOADX D.DC+1 !HO

SUN RADIUS

LOADX

PUSH

LXI

OOP: MOVMOVLOADXCPIJZ

TST: LOADXSU3A-<SCPIJP

LOADXSUBA3SCPIJM

3UL: LDBLXSUBCMPJNZCMPJNZPOPRET

T: LDBLXMVIMVISTORXPOPCALLRETSUBROUTINESHIP START

E.DC+7

3

H, 3U1

3, H

C,L

A,RCNT

0

NX3UL

A, DC+I

D

EPSLNNX3ULA, DC+7E

EPSLN

HIT

N3PNT

A

H

FLOOP

L

FLOOP

B

INPNT

M,0

TRY

POS OF SHIP

POS OF SHIP!SAVE SHIP BLK PNTR: FIRST TORPEDO BLK PtITI.':HL ->BC

:TO»PEDO CLAIMED?:TEST FOR ZERO:NEXT TORPEDO:HO X POS OF TORPEDO

NOT CLOSE ENOUGHHO Y POS OF TCRPEDOSU3T SHIP POS

)OTH CLOSE ENOUGHNEXT TORPEDO PNTR"EHO ACHECK OF H -3NO

L NOT 0SANE STACKBOTH HSL ZEROTORPEDO POSTIONMBEAM INSTR ( BLANK)RELEASE TORPEDO

RESTORE SHIP BLK

TO INCREMENT SCORE, SCHEDAND REPLACE SHIP WITH EXPLOSIONALSO USED IN HYPERSPACE PROCESSINGDSTRY: LDBLX SCPNT ;RESTORE SCORE ADDRMOV A,M ■ : INCREMENT SCOREINR ADAA

108

DO IT BETTER

With the language that is best suited for your application: Business programming inCOBOL, Scientific and Engineering in FORTRAN IV, Educational in BASIC, andSystems Implementation in our MACRO ASSEMBLER.

With hardware that will grow with your application, and protect your software in-

vestment.

DO IT FASTER

With extensive support and utility programs to speed development of your applica-tions software. These include a Diskette Operating System, Relocatable LinkingLoader, Load Module Library Editor, Symbolic Debugger, and Text Editors.

With a 16 bit processor that includes hardware multiply and divide, real-time clock,and peripherals like single or dual diskette subsystems with integral DMA con-troller.

DO IT WITH A MicroNOVA

If you are serious about computing, call or writetoday. BPI Inc., 2205 East Broadway. Suite 6,Tucson, Arizona 85719 (602) 326-6975

I

® NOVA is a registered trademark of Data General Corporation, Southboro, Massachu

Listing 5, continued:

MOV M, ASCMED SHIP START

LD3LX PEPNT

MVI

LDA

ADI

I NX

NOV

Bf-I

TIMEINTVLHM, A

REPLACE SKIP WITH EXPLOSION

;CHIP ENTRY AUDR[MASK : -I

;TIME+ISTVAL TO PL ST

LXI

LD3LX

MOV

INX

MOV

RET

LDBLX

XCHG

LDBLX

SDBLX

XCHG

SDBLX

RET

LDBLX

XCHG

LDBLX

SDBLX

XCHG

SDBLX

RET

ACCELERATION TA3LE

D,EXPLO ;EXPLO SUBPCPNT ;SUB CALLPI, EH14. D

XNPIXN

YNMYN

jSWAP X COORDS

i SWAP Y COORDS

DWDWDWDWDWDWDWDWDWDW

ACONIACONACONIEl

-ACONI

-ACON

-ACONI

2-

ACONI

; TORPEDO FLY

PROGRAM

' ' ' ' ' ' ' ' ' ' ' ' ' '

3FLVJ SCALL

1

ACCELERATION LOOKUP

SCALL

a

MOVE TORPEDO

; TEST IF X NEAR SCREEN

EDGE

L0A3X

A, DC+l

HO X POS OF TORPEDO

A3S

A3S VALUE OF X

CPI

LIMIT

SU3TRCT LIMIT

JP

BLANK

NEArt EDGE IF + OR a

; TEST IF Y NEAR EDGE

LOADX

A, DC* 7

HO Y POS OF TORPEDO

ASS

CPI

LIMIT

JP

3LANK

NOT NEAR EDGE

; TORPEDO HIT

SUN

LOADX

A, X N+ 1

A3S

CPI

SUN

RP

"•ETN IF NOT

LOADX

A, YN+I

A3S

CPI

SUN

RP

; iETURN

IF NOT

BLANK: LDBLX

INPNT

M3EAN/MDISP INST

MVI

M,a

MBEAK

PIVI

A,a

SIORX

A,RCNT

;<ELEAS£ TORPEDO

RE I

; TORPEDO FIRE PROGRAM

GEPNT

SET

26H

RCON

EQU

EPSLN*14BH

VCUNI

EQU

(5*VCON>/7

FIRE:

LDBLX

GEPNT

;DISPATCH TABLE ENTRY

INX

H

MVI

M, 1

i DESCHEDULE SELF

LOADX

A,ORENT

ADD

A

:DOUBLE ORIENTATION

MOV

L, A

;SAVE FOR LATER

MVI

H,0

SHLD

ORSAV

LDBLX

FBPNT

;PNTR TO 1ST TORPEDO -

PUSH

3

;SAVE SHIP BLOCK BASE

; FIND

FREE TORPEDO

MOV

3, H

:HL -> 3C

MOV

C,L

LOADX

A,RCNT

;TEST FOR CLAIMED TORP

CPI

a

JZ

SHOOT

;NOT CLAIMED

POP

3

;SAJJE STACK

RET

:NO FREE TORPEDOS

; SHOOT t

SHOOT:

LD3LX

INPNT

iUNJLANK TORPEDO

MVI

M,2

; 'MUISP'

MVI

A,RMAX

:SET TIMEOUT COUNTER

STORX

A, RCNT

i TO CLAIM TORPEDO

POP

H

;SHIP OBJ BLK IN HL

MVI

D, ia

ilfl BYTES TO MOVE

XLOOP:

MOV

A, M

;BYTE FROM SHIP COORDS

STAX

B

; INTO TORPEDO COORDS

INX

H

!NEXT BYTE

INX

J

DCR

D ;DECREMENT CNTR

JNZ

XLOOP ;NOT DONE YET

LXI

H,-ia

DAD

3 ;HESTORE TORPEDO BLK

MOV

B,H

MOV

C, L

; COMPUTE I!

; X( N-

1) 4 Y( P

-1) ARE SHIP'S* COLLISION RAD

i X( N)

t Y(N)

ARE SHIP'S + VELOCITY + COLL RAD

LHLD

ORSAV

LXI

D.XVTA3 ;X VELOCITY TABLE

DAD

D

MOV

E,M :XVEL IN DE

INX

H

MOV

D, M

LDBLX

XN

DAD

D i ADD VEL+COLL TO X( N)

SDBLX

XN

*

LHLD

ORSAV

LXI

D.XRTAB ;COLL RAD TABLE

DAD

D

MOV

E, M

INX

H

MOV

D,M

LDBLX

XNM

DAD

D :ADD COLL TO XC N-l)

SDBLX

XNM

'

LHLD

ORSAV

LXI

D, YVTAB

DAD

D

MOV

E, M

INX

H

MOV

D,M

LDBLX

YN

DAD

D ; ADD VEL+COLL TO Y( N)

SDBLX

YN

•

LHLD

ORSAV

LXI

D,YRTAB

DAD

D

MOV

E, M

INX

H

MOV

D, M

LDBLX

YNM

DAD

D •, ADD COLL TO YC N-l)

SDBLX

YNM

RET

; COLLISI ' iDIUS J.i

XRTA3:

DW

a

DW

RCON

YRTA3:

DW

RCON

DW

RCON

DW

a

DW

-RCON

DW

-RCON

DW

-RCON

DW

a

DW

RCON

; H. 0.

VLLUCIIY + CULL HAU (AjLtS

XVTA3:

DW

a

DW

vconi + ;vcon

YVTAB:

DW

VCON+RCON

DW

VC0N1+RC0N

DW

a

DW

-VC0N1 -RCON

DW

-VCON-RCON

DW

-VCONI -RCON

DW

a

;

DW

VCONI+SCON

i SCORE PROGRAM

SCRE

SET

a

SDISI

SET

1

SD132

SET

i

SCORE:

LOADX

A,SCRE :SCORE VALUE

ANI

BFH ; RIGHT DIGIT

RLC

:*2

ADI

NUMS :INDEX OF SUBS IN HL

MVI

H,S>

MOV

L, A

MOV

E, «1 ;SU3R AilDR IN DE

INX

H

MOV

D,M

LDBLX

SDIU2 |PNTS TO DIGIT

MOV

M, E iSUJi! ADDR IN DISPL FIL

INX

H

MGT

M, D

LOADX

A,SCRE ;SCORE VALUE

ANI

aFaK ;LEFT DIGIT

RRO

:JUSTIFY « «2

RHC

R.iC

ADI

NUMS

MVI

H,a

MOV

L, A

MOV

E, M

IKX

H

MOV

D,M

LDBLX

SDIGI

MOV

/„ E

INX

H

MOV

PI, D :LEFT DIG IN DISPL FILE

RET

! RETURN

110

Listing 5, continued:

; PROGRAM TO ROTATE SHIPS, INITIATE TORPEDO FIRE,

; DO

HYPERSPACE PROCESSING S. CHECK

; FOh

SPENT

TORPEDOS

; DON' 1

CHECK

BUTTONS IF

ALREADY IN HYPERSPACE

ROT:

LOADK

A.HFLAG

CPI

;:

JNZ

SPNCK

:CHECK FOR SPENT BULLETS ANY

LDBLX

BAPNT

MOV

D,M

: BUTTON WORD

; CHECK FOR BOTH CW AND

CCW,

; INDICATING

HYPERSPACE

LOADX

A,HYPM

;MASK FOR HYPERSPACE

MOV

E, A

ANA

D

XRA

E

JNZ

CWCK

;NO - CHECK FOR CW

; BLANK SHIP

LXI

D,NULL

;NULL GRAPHICS SUB

LD3LX

PCPNT

;PNTR TO CALL

MOV

M.E

INX

H

MOV

M, D

: INSERT

; SCHEDULE SI

LD3LX

PEPNT

;SHIP START ENTRY

KVI

M,-l

LDA

TIME

ADI

HOLY

INX

H

MOV

M, A

i SEE

IF WE NEED TO DESTROY SHIP LATER

MVI

D, 1

SCALL

2

;RANDOM * IN A

CPI

0

[> ZERO

JP

NODST

i YES--DON' T DESTRY

MVI

D,-l

i NO--DESTRY

NODST:

STORX

D.HFLAG

;INDICATE TO SSHIP START PGM

JMP

SPNCK

; END

OF HYPERSPACE PROCESSING

; CHECK FOR CW (CLOCKWISE) ROTATION

CWCK:

LDADX

A, CWM

;MASK FOR CW

ANA

D

JZ

CCWCK

:CHECK FOR CCW

LOADX

A, ORENT

;OLD ORIENTATION

INR

A

i UP BY 1

All

7

STORX

A, ORENT

; CHECK FOR CCW (COUNTERCLOCKWISE)

CCWCK:

LOADX

A, CCWM

• MASK FOR CCW

AHA

D

JZ

DINS

LOADX

A,ORENT

OCR

A

;DOWN BY 1

AM

7

SIORX

A, ORENT

[INSERT ORENT IN DISPLAY FIL

DINS:

LOADX

D,ORENT

LD3LX

PDPNT

■ORENTATION IN DISPLAY

MOV

A, M

AN1

0F8H

;STRIP OLD ORENT BITS

ORA

D

,INSERT NEW

MOV

M. A

i CHECK IF FIRE BUTTON

ON

FIHCK:

LDBLX

3APNT

;3UTT0N ADDR

MOV

D,M

[BUTTON WORD

LOADX

A,FIREM

[FIRE MASK

ANA

D

JNZ

INCHK

[SEE IF INHI9IT

MVI

A,0

;NO FIRE -- CLEAR INH

STORX

A, FINH

JMP

SPNCK

INCHK:

LOADX

A,FINH

;CHECK INHIBIT FLG

CPI

0

JNZ

SPNCK

[SET

MVI

A, 1

[ NOT SET -- SET IT

STORX

A, FINH

LDBLX

FIPNT

[SCHEDULE TORPEDO FIRE

INX

H

MVI

M,0

; CHECK FOR

SPNCK:

LD3LX

FBPNT

[ TORPEDO POINTER

; FIND

CLAIMED TORPEDO

JITH TIMEOUT

: FOR

THIS SHIP

MOV

3, H

:HL -> SC

MOV

C, L

LOADX

A, RCNT

CPI

0

;TEST FOR CLAIMED

RZ

[ NOT CLAIMED

DCS

A

; DECREMENT TIMER

STDRX

A,RCNT

; RESTORE IN BLOCK

RNZ

[NOT ZERO YET

LDBLX

INPNT

MVI

M,0

[BLANK TORPEDO

;

RET

j KEYBOARD DECODE PROGRAM

CTLC

EQU

•c

KBDCD:

MOVCPI

C, A [SAVECTLC ;"C"7

CHAR

RNZ

[ RETURN

IF NOT

LXI

H,IENTI+1

:SCHED

INITI

MVI

M,0

LXI

H,IENT2+I

[SCHED

INIT2

MVI

M,0

RET

VECTORPACKAGING MATERIALSSAVE TIME & MONEY

S100 CARDS-100 PLUG CONTACTS-Convenient universaltinned pads and bus lines. For interface, memory expansion,breadboarding. Mount almost anything anywhere on card.

SIOO CONNECTORS for WIRE WRAPPING or SOLDERING

BEAUTIFUL Model VP2

NEW VECTOR-PAK

CASES for micro-computer

circuitry, assembled. Constructed

of aluminum, finished in vinyl. Slide out covers for easy

access. Includes card guides, heavy chassis plate, perforated

bottom cover for cooler operation.

Card guides perpendicular to front panel, Model VP1, $1 28.30.

Card guides parallel to front panel, Model VP2, $134.30.

S100 MOTHER BOARD, $29.50. 11 positions ready forconnectors. Glass epoxy, plated thru holes, circuitry foractive termination, 12 tantalum capacitors and instructions.

PLUS revolutionary Slit-N-Wrap wiring tools, Micro-Vector-bord,® printed circuit kits, I.C. sockets, extenders.

Send for new catalog.

'TNVECTOR ELECTRONIC COMPANY, Inc.

Vt/ I 12460 Gladstone Avenue, Sylmar, CA 91342phone (213) 365-9661, twx 910-496-1539

540777

Circle 393 on inquiry card.

111

ttoij'rehere!

the new HEATHKIT low-costpersonal computing systems

The new VALUE-STANDARD in personalcomputing systems! Heathkit computersgive you the power and performance togo wherever your imagination and pro-gramming prowess take you. They're de-signed to get you up and running fast,interface with I/O devices easily andquickly, accept additional memory andI/O devices, store and retrieve data withspeed and accuracy, respond to your re-quests with lightning speed. They offercomplete mass storage capabilities, powerand reliability for any programming appli-cation, and they're priced low enough togive you real VALUE for your computerdollar! We've told you they're the onesyou've been waiting for —here's why!

These Heathkit computer products are

"total system" designs with powerful sys-tem software already included in the pur-chase price. They're the ones you needto get up and running fast. And they'rebacked by superior documentation in-cluding easy-to-follow step-by-step as-sembly and operations manuals, andservice support from the Heath Com-pany, the world's largest and most experi-enced manufacturer of electronic kits.

NEW H8 8-Bit Digital Computer. This 8-bit computer based on the famous 8080Amicroprocessor features a Heathkit ex-clusive "intelligent" front panel with octaldata entry and control, 9-digit readout, abuilt-in bootstrap for one-button programloading, and a heavy-duty power supplywith power enough for plenty of memoryand interface expansion capability. It'seasier and faster to use than other per-sonal computers and it's priced lowenough for any budget.

NEW H11 16-bit Digital Computer. The

most sophisticated and versatile personal

computer available today — brought toyou by Heath Company and Digital Equip-ment Corporation, the world leader inminicomputer systems. Powerful featuresinclude DEC's 16-bit LSI-11 CPU, 4096 x16 read/write MOS memory expandableto 20K (32K potential), priority interrupt,DMA operation and more. PDP-11 systemssoftware for fast and efficient operationis included!

NEW H9 Video Terminal. A full ASCII ter-minal featuring a bright 12" CRT, long andshort-form display, full 80-character lines,all standard serial interfacing, plus a fullywired and tested control board. Has au-toscrolling, full-page or line-erase modes,a transmit page function and a plot modefor simple curves and graphs.

NEW H10 Paper Tape Reader/Punch.

Complete mass storage peripheral useslow-cost paper tape. Features solid-statereader with stepper motor drive, totallyindependent punch and reader and a copymode for fast, easy tape duplication.Reads up to 50 characters per second,punches up to 10 characters per second.

Other Heathkit computer products in-clude a cassette recorder/player and tapefor mass storage, LA36 DEC Writer II key-board printer terminal, serial and parallelinterfaces, software, memory expansionand I/O cards, and a complete library ofthe latest computer books. The HeathUser's Group (HUG) provides a newslet-ter, software library and lots more to helpyou get the greatest potential from yourHeathkit computer products. We've goteverything you need to make Heath yourpersonal computing headquarters, sendfor your FREE catalog today!

8-BitComputer

$375 Kit

Cj CI

fc*

V—■*-"

Also Available: the famous LA36DEC Writer II Keyboard Printer Ter-minal only $1495 (Assembled)!

VideoTerminal

$530 Kit

B??!S?*!?

B

B

S33HM*ra *"."":"" I!

HIC

Paper TapeReader/Punch

$350 Kit

w

rnEE!

HEATHKIT CATALOGRead all about our exciting com-puter systems and nearly 400 otherfun-to-build, money-saving elec-tronic products in kit form.

Prices are mail-order FOB, Benton Harbor, Michigan.Prices and specifications subject to change without notice.Heath Company, Dept. 334-340 Benton Harbor, Mi 49022

Schlumberger

Heath Company, Dept. 334-340Benton Harbor, Michigan 49022

Please send me my FREE Heathkit Catalog.I am not on your mailing list.

*>&0&a

City_

_State_

CP-126

Zip-

Circle 394 on inquiry card.

Fundamentals ofSequential File Processing

Wayne D Smith

Dept of Business Administration

Angelo State University

San Angelo TX 76901

The newly available floppy disk driveunits have opened many new areas of appli-cations for microprocessor users. In the areaof high utilization data, and fast interactiveprograms, the capabilities of random accessdisk storage devices are unequaled. Unfor-tunately, the price of such units often putsthem outside the budget of personal com-puter users. Even when disk units are avail-able, the advisability of using these devicesfor storing low utilization programs or datamay be doubtful. You don't really need a$1000 auxiliary storage device to maintain aChristmas card list which is used once a year.

The new, special design digital cassetterecorders have also generated a great deal ofinterest. These units allow software controlof all tape functions, and provide for tapeposition sensing. While the price of theseunits is about half that of a single disk drive,they are still somewhat expensive. Like diskunits, they also require fairly sophisticatedinterface hardware for proper operation.

Audio cassette units, on the other hand,

are cheap and readily available. These unitsare rapidly becoming the standard auxiliarystorage medium for small computer systems.

Audio cassette units do, however, haveseveral shortcomings. Compared to the otherdevices, they are slow, and most standardaudio units do not have provisions forsensing the relative position of the tape.Further, most such units use a single motorfor all tape operations, and accomplish thefast forward and rewind functions throughgearing between the motor and the capstans.The physical pressure required to engagethese gear trains virtually prohibits softwarecontrol of these functions.

There are applications in which theseshortcomings can be minimized. These ap-plications are those that involve the use ofauxiliary file storage where the informationstored is inherently sequential in nature.While audio cassettes cannot compete witheither digital cassettes or disk files in eitherspeed or flexibility, they can provide verysatisfactory results in the processing ofsequential files.

This situation closely parallels the case inthe data processing industry, where sequen-tial tape files still play a major role inauxiliary storage. The economic advantagesof these units can often offset the short-comings of this type of storage.

About the Author

Wayne D Smith is currently an assistant professor of computer science atAngelo State University, San Angelo TX. He received his PhD in ComputerScience from the University of Illinois in 1976. Besides his professional andhobby interest in computers he also enjoys operating an amateur radio stationand flying.

114

A FILE OF

RELATED

RECORDS

jr:

_r

ONE RECORD

NAME: JOHN DOE

ADDRESS 504 MAIN ST.

CITY: URBANA

STATE: ILLINOIS

DATAITEMS

LABELRECORD

DATA ,,RECORD

ADDITIONAL'DATA RECORDS

O — m

O -3 lO Z> = ID

aA

aA

DUMMYRECORD

INTER-RECORD GAP

/ \ 5 r-i -^ ^

|-<0_

DATA ITEMS

Figure 1: Relationship between files, records and data items in a sequential file.

Nature of Sequential Files

Figure 1 indicates the basic relationshipbetween the components of a file orienteddata processing system. In this type ofsystem, information is arranged in sets orcollections called files. The informationwithin a file is usually related by the type ofdata contained in the file. For example, asmall business might maintain separate filesfor employee records, customer accountsand stock inventory.

Files are then subdivided into smallerunits called records. There is a single recordfor each entity within the file. In the case ofthe files mentioned above, there would be arecord for each employee in the employeefile, a record for each customer in thecustomer file, and a record for each stockitem in the inventory file.

A record is simply a collection of relateddata items. In any file processing system, theuser specifies the data items that constitute arecord. For example, the records in a Christ-mas card list file would probably containfive data items. These items would be: name,address, city, state and zip code. These itemsare related within a single record in that theyall pertain to the same individual. A collec-tion of these records, whether on magnetictape, magnetic disk, or in an address book,constitutes a file.

Files which are stored on magnetic tapeare called sequential files because the recordsin such a file are stored one after the otheron the recording medium. One of the majordisadvantages of this storage type is thesequential arrangement of files. In order toobtain the information stored in the Nthrecord in such a file, the preceding N-lrecords must be bypassed. Without tapeposition indicators, this means that thepreceding N-1 records must be processed atnormal tape read speed before the Nthrecord can be read.

A second, related problem concerns iden-tifying individual records. Since many rec-ords may be read before the desired record isreached, some provision must be made fordetermining when the correct record hasbeen found. In practice, this problem isusually overcome by providing each recordin the file with a separate data item that canbe used to identify that particular record.This identification must, of course, beunique for each record in the file.

Many types of records already containdata items which may be used for identifica-tion purposes. An employee file, for exam-ple, would probably contain a social securitynumber in each record. This number isunique for each employee, and could beused for record identification. In other cases,an additional data item would have to be

115

added to the record solely for purposes ofidentification. In the Christmas card listmentioned earlier, a sixth data item wouldhave to be added in order to provide forrecord identification. For practical reasons,alphabetic data items, such as names, areseldom used for record identification.

While the records within a file do notnecessarily have to be arranged in any specialorder, the search for a specific record isgreatly facilitated if the records are stored insome orderly fashion. Sequential tape rec-ords are usually arranged in numerical orderbased on the identification number. In fact,this numerical ordering of records is a crucialrequirement if efficient sequential file pro-cessing is to be possible. All the algorithmsinvolved in processing sequential files arepredicated upon this ordering.

The actual order of the records is im-material. The records may be arranged ineither ascending or descending order, depen-ding on the preference of the user. Sinceascending usually seems more natural topeople, this arrangement will be assumed inthe discussion which follows.

The sequential ordering of records has alarge impact upon the speed with which afile can be processed. Suppose, for example,it becomes necessary to look up the ad-dresses from five records in the Christmascard file mentioned above. If the records areunordered, each search must begin at thefirst record and search until the desiredrecord is found. After listing this record, thetape must be rewound, and the search forthe next record initiated from the beginningof the file. With this strategy the averagenumber of records which must be read inorder to find a specific record is one half thenumber of records in the file. Finding fiverecords would require, on the average, read-ing 2.5 times the number of records in theentire file. In the worst case, it could requirereading almost five times the number ofrecords in the file.

If, on the other hand, the file is arrangedin numerical order, the process is greatlysimplified. In order to take advantage of thesequential ordering of the file, the numbersof the records to be found are also enteredin sequential order. When this procedure isfollowed, processing time can be greatlyreduced. After the first record is read andprocessed, the second search can begin with-out rewinding the tape. Since the secondrecord has a higher number than the firstone, that record must follow the first record.This means that the maximum number ofrecords which must be read in order toprocess all five addresses cannot exceed the

number of records in the file. This representsa considerable savings over the unsortedcase.

Note, however, that the number of rec-ords read does not vary greatly regardless ofthe number of addresses to be found. Thatis, it requires about the same tape read timeto process one record (average: one half thefile length) as it does to process all therecords in the file (full file length). Thisleads to the obvious conclusion that the typeof files which are best suited to sequentialstorage are those in which a high percentageof the records are processed during eachcomputer run. The number of records proc-essed in a single run, divided by the numberof records in the file, is called the activityratio. As this value approaches one, process-ing efficiency approaches its maximum. AChristmas card list in which all records arelisted for printing address labels has anactivity ratio of 1.0. In this instance, sequen-tial files offer a very efficient type ofauxiliary storage.

Updating

As outlined in the preceding section, theprocessing of a sequential file does not differgreatly from the processing of any othertype of file. The major differences appearwhen it becomes necessary to update, orchange, the information which is stored in asequential file. Updating may become neces-sary for any of several reasons. In somecases, data items may become inaccurate, aswhen a member of the Christmas card listmoves. In other cases, it may become neces-sary to add or delete entire records from thefile, as when a new employee is hired or anold one retires.

Due to the nature of magnetic tapedrives, it is virtually impossible to positionthe tape head over a specific data itemwithin a record. In fact, it is almost asdifficult to position the tape head at thebeginning of a specific record, since therecord must pass the tape head before it canbe read and identified. The process of addingnew records in the correct sequential posi-tion presents additional difficulties. Insertingsuch records will necessitate moving allsubsequent records down in the file. Minorerrors in tape head position can result inerroneous or unreadable data.

To overcome these, and other, diffi-culties, the technique of using two tape unitsis employed. Instead of trying to change theinformation in the old file, a completely newfile is created. This new file contains all thedata and records from the old file thatremain valid, plus any corrections, additions

116

Why you should buy a digitalmultimeter from the

leader in digital multimeters.

If you're shopping for your first multi-meter, or moving up to digital fromanalog, there are a few things youshould know.

First, look at more than price. You'llfind, for instance, that the new Fluke8020A DMM offers features you won'tfind on other DMMs at any price. Andit's only $169.*

Second, quality pays. Fluke is recog-nized as the leading maker of multi-meters (among other things) with a30-year heritage of quality, excellenceand value that pays off for you in the8020A.

Third, don't under-buy. You may thinkthat a precision 3%-digit digital multi-meter is too much instrument for youright now. But considering our rapidlychanging technology, you're going toneed digital yesterday.

If you're just beginning,go digital.

times better than most analog meters.Also, the 8020A's digital performancemeans things like 26 ranges and sevenfunctions. And the tougher your homeprojects get, the more you need the8020A's full-range versatility and ac-curacy. The 8020A has it; analog metersdon't.

If you're a pro.

You already know Fluke. And youprobably own a benchtop-model multi-meter.

Now consider the 8020A: smaller insize, but just as big in capability. Like2000-count resolution and high-lowpower ohms. Autozero and autopolarity.And the 8020A is MOV-protected to6000V against hidden transients, andhas overload protection to 300V ac.

Nanosiemens?

What price to pay.

Conductance To Resistance Conversion

aS

10

100

I 1,000

I

10,000

&~RX

0.1 1 10 100

Conductance (nS) nanosiemens

Why not analog? Because the 8020Ahas 0.25% dc accuracy, and that's ten

Beginner or pro, you'll find the meteryou now have can't measure nanosie-mens. So what? With the 8020A con-ductance function, you can measurethe equivalent of 10,000 megohms innanosiemens. Like capacitor, circuitboard and insulation leakage. And, youcan check transistor gain with a simple,homemade adapter. Only with the 8020A,a 13-oz. heavyweight that goes whereyou go, with confidence.

$169*

Of course, you can pay more. Or less.In fact, you could pay almost as muchfor equally compact but more simplisticmeters, and get far less versatility. And,the 8020A gives you the 'plus' of customCMOS LSI chip design, and a minimumnumber of parts (47 in all). All partsand service available at more than 100Fluke service centers, worldwide. Guar-anteed, for a full year.

Rugged. Reliable. Inexpensive toown and to operate; a simple 9V batteryassures continuous use for up to 200hours.

Where to buy.

Call (800) 426-0361 toll free. Giveus your chargecard number and we'llship one to you the same day. Or, we'lltell you the location of the closestFluke office or distributor for a per-sonal hands-on feel for the best DMMvalue going.

*U.S. price only

Fluke 8020A DMM forHome Electronics Experts: $169

IFLUKEI

Circle 395 on inquiry card.

Figure 2: Circuit for con-trolling two tape decks forsequential file manipula-tion. The power pin con-nections to the 7404 (ICI)are +5 V to pin 7 andGND to pin 14. The 7404inverter and indicatorLEDs are not needed forthe working of the circuit.Putting them in enablesyou to tell whether a reador write operation is hap-pening. To make it easierto tell the difference froma distance, I have made theLED for writing red andthe LED for reading green.Any equivalent LEDs willperform the same func-tion. All resistances are inohms and all resistors are0.25 W.

or deletions that may be required. This isaccomplished by using the old file as input(read only mode), while a new file is createdin output (write only mode). Records whichare to remain unchanged are transferreddirectly from the old file to the new file, viacomputer memory. Records which are to bechanged receive part of the data items fromthe old file, but have other items updatedfrom another input device (keyboard) beforethey are transferred to the new file. Recordswhich are to be deleted from the file areread from the old file, but are not written onthe new file.

Completely new records receive all thedata items directly from the keyboard inputdevice. After all data items have been en-tered, the new record is written on the newfile. Program control insures that new rec-ords are entered in the correct sequentialposition in the new file. To facilitate theprocess of adding new records in sequence,all new files are initially created with sub-stantial gaps between the record identifica-tion numbers.

The technique of creating an entirely newfile instead of trying to correct an old filehas one major disadvantage. This disadvan-tage is, of course, the requirement for twoseparate tape units. There are, however,several advantages which far outweigh this

single shortcoming. One significant advan-tage is that the exact positioning of the tapeis not critical. Since the new records arewritten on blank tape, there is no problemwith record alignment, and writing over olddata cannot occur.

Another advantage is that each tape unitis operated in a single mode. Using audiocassettes, this means that one unit is alwaysin the record mode, while the other is in theplay mode. During the update process, thetapes operate in only this mode. The fastforward function is not required, and therewind function is used only after all proc-essing has been completed.

This single mode type of operation great-ly simplifies the operation of the cassetteunits during the update. Since each cassetteoperates in only one mode, the function foreach tape drive can be set up before process-ing begins. During processing, the tape unitsneed only be turned on or off as records areread, processed and written. Since almost allcassette recorders have provisions for remotemotor control, software can be utilized toactivate the tape recorders as needed bycommanding a suitable interface circuit suchas that in figure 2.

One final advantage to the 2 tape systeminvolves the protection of data. Since the oldfile is used only in the read mode, it will

118

NOW, DISKS TOO!

(And they're Disk-tinctly Digital Group.)

With the addition of our all-new Disk Subsystem, the Digital Groupbecomes the only manufacturer of microprocessors to offer you areal choice. Tape or disk. Or both Whatever you want.

We spent a lot of time designing and testing our new DiskSubsystem, and it shows in the result. The Subsystem is highlyflexible. . . gives you direct access to data. . . and completes yourDigital Group System.

Here's what the Disk Subsystem consists of:

Disk Interface Card—provides the electrical interface between thedisk drives and the computer.

Disk Power Supply—provides all power required for up to 2 drives.

Disk Cabinet and Cables—cabinets provide housing for 1 to 2drives plus the power supply; assembled cabling is provided forconnection between all system components.

Disk Drives—the Digital Group Disk Subsystem supports standard8" floppy disk drives from a number of manufacturers. Drives can bemixed, and in addition, mini-floppy drives are available for thefunction of a disk at minimum cost.

Documentation and Software—the Digital Group's standarddocumentation includes construction guides, maintenance manual,theory of operation and other useful information to help you get thefullest value from your new Disk Subsystem. And there's alsosoftware to provide initial support.

Now the Digital Group system is really complete. If you don't own itall yet, take another longing look. In addition to our CPU, keyboardand video monitor, you can add an impact printer and the cassettestorage system. All in our beautifully coordinated custom cabinets.All unmistakably Digital Group.

The Digital Group now has disks. And a lot more. Why not find outabout all of our exciting products? Simply call or write today fordirect information. From the Digital Group.

The price? Low. It's become a tradition with the Digital Group tooffer you high-quality, state-of-the-art equipment at the lowestpossible prices. Our new Disk Subsystem is no exception.

For only $745, you can get a standard 8" floppy drive and an interfacecard. A complete single-drive Disk Subsystem with interface, powersupply, cabinet, and cables is as low as $995.

g gjOil || L/c-. I

roTrto

box 6528 denver, Colorado 80206 (303) 777-7133

Circle 396 on inquiry card.

remain intact even in the event that theupdating program goes awry. If the userfollows the practice of always maintainingthe most recent version of the data, he orshe will never be further than one updateaway from a current file.

Hardware Requirements

Assuming that a microprocessor alreadyhas a cassette tape interface, the implemen-tation of a sequential file processing systemrequires very little hardware. As mentionedabove, two cassette tape recorders arerequired, one for input, reading files, andone for output, writing files. The micro-processor tape input and output circuits areconnected to the appropriate tape unit, asshown in figure 2. Even when a single circuitis used for both input and output, noproblem arises, since only one cassette willactually be operating at any given time.

The cassettes can, of course, be operatedmanually if desired, but software control iseasily implemented. Two latched bits of anoutput port are used to provide tape motorcontrol. These output signals are used toactivate the tape motors through opto-coup-lers (Radio Shack #276-1628, Texas Instru-ments TIL 111, or equivalent) and a singletransistor.

The opto-couplers are used to preventany polarity or voltage problems whichmight arise from direct interconnection ofthe microprocessor and tape motor circuits.In many cassettes, the positive terminal ofthe tape unit will be connected to themicroprocessor ground terminal through themicrophone and earphone cables. This ar-rangement would prohibit direct intercon-nection of the two circuits. Even when theelectronics of a specific cassette would per-mit direct interconnection, the couplers arestill worthwhile. Using the couplers willallow changing recorders at a later datewithout regard to the voltage or circuitground polarity.

The only critical part of the circuit is thepolarity of the transistor. The polarity of theremote jack should be checked before com-pleting the wiring. Almost any NPN tran-sistor will work, provided it can handle thecurrent required by the tape motor. Thecurrent requirement for a specific tapemotor is easily determined by connecting anammeter across the remote jack with thetape in the play or record position. There isa fairly high current surge as the motorstarts, but this is of short duration. A steadystate current of 50 to 100 mA is aboutaverage.

The inverters and LEDs shown in figure 2

are optional. The indicator LEDs haveproven to be very useful, since they are theonly way to determine whether a tape unit ison or off (short of looking at the cassette).They can also provide a measure of amuse-ment when a long tape program is running.

The operation of this interface system isquite straightforward. In order to process atape file, the user first insures that theappropriate motor control is off. The cas-sette tape is then loaded and the tapefunction control is set for play or record asrequired. If a tape is to be recorded, it mustbe advanced past any leader on the cassette.

After the tape is loaded and the tapecontrol is set, program execution can begin.The functions of reading or writing the tapeare then under software control. If a taperecord is to be read, the applicable motorcontrol is turned on by writing a 1 in theappropriate bit of the output port. Normaltape input routines are then used to read therecord. When the record has been read, thetape motor is turned off. For writing arecord, the motor control is turned on, andnormal tape dump routines are used to writethe record on tape. A software delay isnecessary in this case in order to allow thetape motor to come up to speed beforerecording begins. A second or two is usuallysufficient.

Buffer Storage and Label Records

Processing sequential tapes requires that acertain amount of memory be allocated forstoring the records as they are read orprepared for writing. This area is called abuffer, and is used to store the recordcurrently being processed. The amount ofmemory required is minimal, since there isnormally only one record in memory at atime. In one special case, when new recordsare being added to an existing file, storagefor two records will be required. In all othercases, a single record length buffer is suffi-cient. Records are read into the buffer andthen processed. Records may be writtenfrom the buffer onto a new file or to anappropriate output device as desired. For ageneralized tape handling system, enoughmemory should be allocated to provide fortwice the length of the largest tape recordthat will be processed. Not all of this areawill be used by every program, but it shouldbe provided in order to keep the system asgeneral as possible.

In a sequential file processing system, anumber of cassette tapes are required forstoring the records of various files. Morethan one file may be stored on a singlecassette, if desired, but this will result in

120

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

New books... for everyone who's intotheir own computer. Programs.Fun. Games. Languages. Excitement.

SCELBAL, the new microcomputer languagethat's simpler than machine language.

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

Order your copy today! Get $started advancing your system!

49

ppd.

SCELBAL SUPPLEMENTS ...

SCELBAL has taken off so fast, two special supple-ments had to be printed. First, there's Extended MathFunctions: SIN, COS, LOG (BASE E), EXP (BASE E)and ATN . . . only $5.00 ppd. The second supplement,String Handling Capabilities, includes the numericfunctions LEN and ASC. It sells for only $10 ppd.

Cook up mouthwatering programsfor your "8080" or "6800"!

Delectable "how to" facts,including descriptions of"8080" or "6800" instructionsets. How to manipulatestacks. Flow charts. Sourcelistings. General pur-pose routines formultiple precisionoperation. Program-ming time delays forreal time applications.

Order your copiesStart cookin'! Bon

Random number generators.And more. You even get float-ing point arithmetic routines!Input/output processing forbasic I/O programmingthrough interrupt processing.And so much more, we can'tist it all here. Scelbi'sSoftware Gourmet Guidesand Cookbooks for "8080"or "6800". (Specify!)

today! $Q95Appetite. w each ppd.

^^jmiy/\t Microcomputer Outer\3WIClW I Space War Games ...

Captain your own starship on an inter-gallacticjourney to adventure. Meet alien ships in realisticcombat. Plan a painstaking journey filled withbattles, refueling problems, weaponry, warpfactors and more—all against your "6800" computer.It is a complete book, written in machine languagefor 4K memory. It's an ongoing, ever-changinginterstellar adventure, including source listings,flow charts, routines and much more. Blast offtoday to high adventure in outer space!

Order GALAXY today! $ ^95

Prices shown for North American customers.Master Charge. Postal and Bank Money Orderspreferred. Persona! checks delay shippingup to 4 weeks. Pricing, specifications,availability subject to change without notice.

ICELBI COMPUTCRCONIUL1ING

each ppd.

Scelbi Books are availablein many fine Computer Stores.

Dept. B

Post Office Box 133 PP STN

Milford, CT 06460

Circle 377 on inquiry card.

slower operation unless the files are veryshort.

Each file will contain' two distinct typesof records. All the records except the firstare the data records that contain the actualfile information. The first record in each fileis a special type of record called the label, orheader, record. This record should haveexactly the same format on all files. Thelabel record contains general informationabout the file itself. It does not contain data,and hence does not need an identificationnumber. It is always the first physical recordon the tape.

The purpose of the label record is toprovide all the information which is requiredin order to process the file. Since thisinformation changes from file to file, theobvious place in which to store it is in thefile itself. Therefore, the first record in everytape file is dedicated to the label record.

The label record may be as simple or aselaborate as the user wishes to make it. At aminimum, however, it should contain:

• The file name or other identification.

• The date created (due to updating,several files of the same name mayexist).

• The length of a data record.

In a more elaborate system, the label recordcould also contain:

• The number and type of data items.

• A description of all data items andtheir type (ie: binary, BCD, ASCII,etc).

• A security code (access can be deniedwithout knowledge of this code).

All the remaining records on the tape aredata records. The length and format of theserecords will vary from file to file dependingon the amount and type of data in the file.The number of data records in a file will alsovary.

Any program which processes tape filesof this type must first read the label record.The information contained in the labelrecord is then used to set variables thattailor the program for reading and processingthe data records from that specific file. Thisprocedure allows a single generalized pro-gram to process files of various types andlengths.

Utility Programs

In order to support the processing ofsequential files, three general purpose utilityprograms are required. An optional fourthprogram may be provided if the user wishesa separate program for duplicating existing

files. Running an update program withoutentering any changes will accomplish thesame thing, however.

The first utility program is one whichcreates tape files from auxiliary'input. Thisprogram performs many of the functions ofa text editor. Data is entered via the key-board, and is stored in the buffer until allthe required data items have been entered.A sophisticated file creation program can bedesigned to query the user for data itemsone at a time until the record is complete.When all the data items have been entered,the record is written on the file. The processis repeated until the file is complete.

The file creation program must insurethat the label record is written on the newfile before any data is entered. As with thedata records, the program can be designedso as to query the user for this informationprior to writing the label record.

It may be desirable to provide the tapecreation program with information aboutthe number, length and type, ie: character,binary or binary coded decimal (BCD) ofdata in each data item. Information aboutthe type of data would be used primarilyfor error checking, but could also be used toallow data packing. Packing of numeric datawould allow two hexadecimal or binarycoded decimal digits to be recorded as asingle byte. This would require additionalprogram complexity in converting fromASCII input to a packed format. This com-plexity may be warranted in cases wherethe packed format would facilitate arithmeticmanipulation of the data directly from thetape file. Conversion back to ASCII wouldbe required when listing the file.

As the data records are created, the usermust supply the record identification num-ber for each record. The user must insurethat these are entered in the propernumerical sequence. In order to provide forthe addition of new records at a later date,an initial file should have records numberedin increments of about 100.

The second required utility program isone which makes a hard copy listing of thedata stored in a file. The label record may ormay not be printed, depending on userpreference. The simplest type programwould perform an unformatted dump of thedata exactly as it is read from the tape. Amore elaborate program could separate thevarious data items into different positionsor lines on the page. This type of programwould allow printing the data in the formof a customer statement, a check or anaddress label.

By far the most complex of the utilityprograms is the update program. This pro-

122

SPECIAL WAREHOUSE SALE

THE BEST DEAL WE HAVE EVER OFFERED!

ROYTRON 8-LEVELREADER/PUNCH A

BRAND NEW **$295.00 I

This paper tape I/O station operates at 50 cps The mechanisms share a common drive motorbut are electrically independent. 24 volt signals are required to interface the internal sole-noids. An interlacing manual is included. Perfect for typesetting, program distribution,program entry and many other paper tape applications

USE S-100 BOARDSWITH YOUR KIM-1

Now use low-cost and readily available S-100 compatible circuitboards with your KIM-1! The Kimsi from Forethought Products adaptsthe KIM Bus to the S-100 Bus so that you have access to hundreds otmemory and interface boards.

The Kimsi accepts up to 8 S-100 edge connectors, provides on-boardpower regulation for the KIM-1 and contains the KIM to S-100 inter-face logic. One S-100 edge connector is included, the KIM to Kimsiconnector set must be purchased separately.

Item

Ximsi Backplane's 100 Adapter 8 slots tor S-100 available

Kimsi Power Supply Unreg + 8@10A. < 16(5)1 A; - 16@1A

KIM-1 Incl. documentation Send for more information

KIM to Kimsi Connector Set Includes recorder cables

S-100 Edge Connector Kfmsl accepts 8 I is supplied

Cassette Recorder lor KIM-1 Hundreds sold for KIM use

4K Seals ROM Board Accepts up to 16 1702A or 5203s

4K Imsai RAM Board Bare minimum to run Tiny BASIC

8K Cromenco ROM Board Accepts up to 8 2708 EPROMs

8K Seals RAM Board Enough space for programs below

Poly Video Terminal Interface 16 r 64 Connects to a Monitor anO Keyboard

Matrix 2480 Alpha-Numeric VRAM 24 lines of 80 char (needs P39I

Matrox 256-ALT Video Graphics Board Displays 256 x 256 array

Itty Bitty Tiny BASIC 2 5K kit is a paper tape

Focal (a DEC trademark) Includes floating points

6502 Assembler with Source This is NOT the M0S version

SPECIAL! 10% off S-100 Boardswhen ordered with Kimsi.

Kit

Assembled

Price

Price

S125

S165

60

75

N/A

245

8

11

5

7

N/A

55

119

179

139

239

145

245

269

369

d 210

280

N/A

295

N/A

395

5

10

N/A

40

N/A

30

ECONOMICALKEYSTATIONS $29.50

A super buy on these used keystations allows us to sell them a! this low price These attractiveunits contain a Hollerith-style keyboard which is easily modified to output ASCII alpha codes(we provide documentation) The interior of the enclosure is large enough for a KIM-1 andpower supply We also have a limited supply of keystation components:

Item50 key keyboard

Mounts on 11.5" centersKeystation EnclosureDimensions 16" x 16" •■ 4'

Copy Stand and Holder

Mounts on top of enclosure

PriceS19

19

5

Incandescent Display Board

Contains over 130 lampsDisplay Controller Board

38 IC's and a Sonalert

MORE BARGAINS

Burroughs Self Scan Display Panel

Model 0030 16 or 18 character display

Ultrasonic Latching Relay lor Remote ControlOperate H0v appliances from across the room

Data General 6012 CRT TerminalBrand new with numeric keypad; 4800 baud max

□EC PDP8/I or L with 4K core memory

Table-top or floor models available

$32.50

19.95

1195.00

as low as 795.00

MATROX VIDEO RAMS ANDGRAPHICS

Tops in the industry, please write for more info. See our KIM Cornerfor S-100 compatible boards.

MTX 816 Module (Upper Case only) Composite video output in 8 lines of 16 chars 179.00

MTX 1632 Module (Upper and Lower Case) 16 x 32 display includes blink option 225.00

MTX 1632SL Module (Great with 256**2} Slave sync allows text superposition 225.00

MTX 2480 Circuit Board 24 x 80 requires high-persistence phosphor (P39) 395.00

MTX 256**2 Circuit Board 256 x 256 array graphics (multiples provide color] 630.00

BOOKS

Programming Microprocessors Including arithmetic with floating points

Build Your Own Working Robot Buster cries when he cant find his "food.'

Telephone Accessories You Can Build Remold ringer, scrambler, dialer, answerer, etc.

Master Handbook of 1001 Practical Electronic Circuits Almost 1 & inches thick

Basic BASIC | A great text, many examples, questions and answers

Advanced BASIC Coordinate geometry: series polynomials, games

101 BASIC Games The now classic volume compiled by David A hi

What to Do After You Hit Return Games from the People's Computer Company

CMOS Cookbook Don Lancaster explains CMOS low-power logic

Introduction to Microcomputers Volume I Adam Osborne explains the theory behind micros

Introduction to Microcomputers Volume II Then he reviews the current crop of micros

8080 Programming for Logic Design A whole book on 8080 implementation

6800 Programming tor Logic Design A whole book on 6600 implementation

Some Common BASIC Programs Full of many useful and complete programs

S 6.955.953.959.957.956.957.506.959.957.5012.507.507.507.50

ORDERFORM

Name _Address _

City State Zip

Charge my BAC/VISA_

Interbank #

Card #

M/C

Exp. Date

Signature

□ Please send me info on the new Commodore PET 2001computer

Limited 90-day Warranty

Return non-working merchandise within 90 days for replacement or refund. Kits are war-ranted to be complete with working components All ttems subject to prior sale.

Qty

Item

Price

Amount

Total for goods

+4% Michigan Residents

+4% Shipping and Handling

+$1 if order's under $20

Total Amount

COMPUMART Inc. 1250 N. Main St. Ann Arbor, Mi. 48104 994 4445

A Division of Newman Computer Exchange. Inc.

Circle 398 on inquiry card.

f START J

READ

LABEL

RECORD

READKEYBOARDID (KID)

READ OLDTAPE RECORD(TID)

WRITE TAPERECORD TONEW FILEUNCHANGED

WRITE 9999RECORD ONNEW FILE

( STOP J

YES

.ERROR: OUT OF

SEQUENCE

YES

READ NEWRECORD FROMKEYBOARD

WRITE NEWRECORD TONEW FILE

WRITECORRECTEDRECORD TONEW FILE

READ NEXTKEYBOARDID

Figure 3: Sequential file updating algorithm allows the copying of records,deleting of old records, inserting of new records, and modifications of oldrecords. This is a very generally applicable method, usable whenever serialformat records are being processed.

gram is used for the correction of erroneousdata in existing records, and also for addingrecords to or deleting records from the file.The logic for this program, which is shownin figure 3, is based on the assumption thatthe records in the file are arranged in as-cending order, based on the record identifica-tion number. It is also assumed that the

identification numbers of the records to bechanged, added or deleted are also enteredin this order.

The crux of the update program lies inthe comparison of the keyboard enteredidentification number and the identificationnumber from the tape record just read.When the tape ID is less than the keyboardID, this indicates that the tape record justread is not to be changed. This record iscopied to the new file exactly as it existedon the old file.

When the tape ID is equal to the key-board ID, the tape record just read is onewhich is to be either changed or deleted. Akeyboard entry determines which action isto be taken. If the record is to be changed,the new data items are entered from thekeyboard into the buffer area, directly overthe data that was read from the old tapefile. When the changes have been completed,the corrected buffer is written onto the newfile.

If a record is to be deleted, the programsimply ignores the current tape record, andreads the next record into the buffer. Thedeleted record, therefore, does not appearon the new file.

When the tape ID is greater than thekeyboard ID, this means that the programwas unable to find a record ID on the oldfile which matched the keyboard ID. There-fore, the keyboard ID represents either anew record, or a typing error. When a newrecord is to be added, this record is enteredinto the second buffer area in memory. Theuse of this second buffer is necessary inorder to prevent overwriting the last taperecord read, which is currently stored in thefirst buffer. After the new record is entered,it is written to the new file from the secondbuffer. The added record now appears inproper sequence on the new file, while thelast record read from the old file has beenpreserved. Processing then continues withthe input of another keyboard ID number.

Whenever sequential files are processed,there is always a minor problem concernedwith determining when the end of a tapefile has been reached. In the program shownin figure 3, the old programmer's trick ofusing a dummy record with an ID number ofall 9s is used to indicate the end of usabledata in the tape file. The same code is usedto signal the end of data entry from thekeyboard. When this technique is used, theuser must remember to provide this dummyrecord at the time a new file is created.

Examples

There are many instances in which thesequential file processing system outlined

124

c^

OSBORNE &> ASSOCIATES, INC.

The World Leaders In Microprocessor Books

eft

Many books on microprocessors and their use are now on the market, and most of them have names that sound alike. ButOsborne & Associates' books have dominated this market since 1975, when our first book appeared. With rave reviews fromall over the world — with more than five hundred university text adoptions, our books are all best sellers. In fact, "An In-troduction To Microcomputers: Volume I — Basic Concepts" now holds the world's record in sales volume for any textbooksold for a profit.

If you want information on microprocessors, begin with the Osborne books.

An IntroductionTo Microcomputers J^r

ffi

I

Volume 0The Beginner's Book

By Adam Osborne.

"An Introduction To Microcom-puters: Volume 0 — The Beginner'sBook" By ^am Osborne.

This is the book for the absolute beginner.Assuming that you know nothing aboutcomputers, math or science of any kind, thisbook explains what computers are all about— and it takes you to the point where youcan read Volume I. 300 pages.Book No: 6001 $7.50

"An Introduction To Microcom-puters: Volume I — Basic Con-cepts" By Adam Osborne.

The world's best selling textbook. This book

explains, clearly, concepts common to all

microcomputers, yet specific to none. 350

pages.

Book No.: 2001 $7.50

For the microcomputer user, a series of books provide

complete programs, written in BASIC. All these books are

by Lon Poole and Mary Borchers.

"Some Common Basic Programs" 200 pages.

Book No: 21002 $7.50

"Payroll With Cost Accounting — In Basic". 400

pages Book No.: 22002 $12.50

"Accounts Payable and Accounts Receivable"

Book No.: 23002 $12.50 Available November 30,

1977

"General Ledger System"

Book No.: 24002 $12.50 Available December 31,

1977

'—

\

8080AAND 8085

ASSEMBLY

LANGUAGE

PROGRAMMING

BY LANCE LEVENTHAL

"8080A and 8085 Assembly LanguageProgramming" By Lance Leventhal.

This book is for the assembly language pro-grammer or student; it explains assemblylanguage programming for the 8080A and8085 microcomputers. The book containsnumerous examples. 400 pages.Book No.: 31003 $7.50 AvailableOctober 31, 1977

>_.

>

"An Introduction To Microcom-puters: Volume II — Some Real Pro-ducts" (Revised June 1977) By AdamOsborne, Susanna Jacobson and JerryKane.

This book describes every commonmicroprocessor and all of their supportdevices. Information is new and clearly writ-ten. Only data sheets are copied frommanufacturers. 1200 pages.Book No.: 3001 $15.00

• aIj.jji.S.cStBfji . r I

The "Programming For Logic Design" series of books showhow to use microprocessors in a digital logic environment.

"8080 Programming For Logic Design" By AdamOsborne. 300 pages.Book No.: 4001 $7.50

"6800 Programming For Logic Design" By AdamOsborne. 300 pages.Book No.: 5001 $7.50

"Z80 Programming For Logic Design" By Adam

Osborne and Susanna Jacobson.

Book No: 7001 $7.50 (Available November 30,

1977)

/-

OSBORNE & ASSOCIATES, INC. P.O. BOX 2036 BERKELEY, CA 94702 DEPT. 1

( TITLE

UNIT PRICE

QUANTITY }

NAME/COMPANY

rVolume 0 — The Beginner's Book (#6001)

$7.50 ea.

\

Volume 1 — Basic Concepts (#2001)

$7.50 ea.

ADDRESS

CITY, STATE AND ZIP

Volume II — Some Real Products (#3001)revised 1977

$15.00 ea.

8080 Programming For Logic Design (#4001)

$7.50 ea.

6800 Programming For Logic Design (#5001)

$7.50 ea.

TELEPHONE

Please check one space below:

C} 4th Class Mail Delivery (3-4 weeks within the U.S.A.)

Q I have included $.50 per book for U.P.S. (albw 10 days)

8080A/8085 Assembly Language Programming

(#31003)

$7.50 ea.

Some Common BASIC Programs (#21002)

$7.50 ea.

Payroll With Cost Accounting (#22002)

$12.50 ea.

We will only invoice for purchase orders of over 10 books.Shipping charges for bulk orders to be arranged.

^J Check or Money Order enclosed (Calif, residents include sales tax)

Q 1 have included $1.50 per book for special rush shipment by air.

Q I have included $.50 per book foreign surface mail.

f~J I have included $3.00 per book for foreign airmail.

f~J I require information on consignments, discounts and distributors

s_

outside the U.S.A.

Circle 399 on inquiry card.

above could be used. An obvious example isthe Christmas card list mentioned earlier.This file could be created and then storedfor use each December. By using a fairlysimple listing program, mailing labels couldbe generated directly from the file. Some-time in January, the update program couldbe run to reflect any new addresses receivedwith that year's cards. Persons from whomcards were received for the first time couldbe added to the file, and those from whomcards were not received could be deleted.The tape could then be stored until thefollowing December. The January update ischosen as a point at which the activity ratiocould be expected to be high. More frequentupdates are possible, if needed.

An example which is not quite so obviouswould be to use a sequential file as storagefor a text editor which prepares input for anassembler. In this case, a record would consistof a single line of assembly language code.The data items would include: line number(record identification), label, operation,address and comments. Data items for loca-tion and machine code would be provided,but would be left blank by the file creationprogram.

After the file has been created, it istransferred to the input cassette for process-ing by the assembler program. The assemblerthen generates the location and machinecode for each record in the file. As the ma-chine code is generated, a new file is createdon the output cassette. This file is identicalto the input file except that the data itemsfor location and machine code are filled inby the assembler. Optional features in theassembler could provide for loading themachine code for execution, or for creatinga hard copy listing of the program as it isassembled.

If errors are detected during assembly orexecution, the original file can be correctedthrough the use of the update program.Since each line represents a record, incorrectlines can be changed by changing the dataitems in that record. Extraneous lines canbe deleted, and new lines can be added, intheir proper positions, through the processof deleting or adding records to the file.

In using an assembler of this type, a 2pass approach is required. This technique isrequired in order to prevent unresolvedreferences at the time the machine code isbeing generated. Without prior knowledgeof all label locations, forward referencebranch instructions could not be assembledas they are read from the input tape. The2 pass approach offers the additionaladvantage of dividing the assembler into two

separate programs, only one of which mustbe in memory at any one time.

A particular advantage to using sequentialstorage with this type assembler is that itallows the assembly of very large programs.Due to the nature of sequential file process-ing, there is never more than one sourcelanguage statement in the machine at anytime. By processing the statements one at atime, more memory can be devoted to theassembler itself and its reference tables. In amachine with limited storage, this can resultin a more elaborate assembler than wouldotherwise be possible.

A final example is of a more commercialnature, and involves the processing of anaccounts receivable file for a small business.The basic file contains permanent customerinformation, such as name, address, accountnumber, etc. It also contains data items forprevious balance, current balance, payments,and a number of charges. When the file isoriginally created, these last data items areall set to zero.

During the first month, an update programis run, using this file as input. The file isupdated by entering charges for that month.After all charges have been entered, theprogram computes the total charges andenters this value as the current balance inthe new record. The record is then writtenon the new file. When all accounts have beenupdated, a listing program is executed, usingthe new file as input. This listing program, ineffect, generates the first month's statementsfor all customers.

During the second and all succeedingmonths, a slightly different update programis used. This program first combines previousbalance, payments and all old charges toform a new previous balance. Entries arethen accepted for both payments and newcharges. When all entries are completed, anew current balance is computed. The listingprogram is then used to generate customerstatements for the new month.

Arguments Against Audio Cassettes

There are two arguments which are oftenadvanced against the use of audio cassettesin the manner outlined in the precedingsections. The first argument is that leavingthe tape drives engaged for long periods oftime can flatten the capstans, which causeswow and flutter when tapes are read. In asystem such as that proposed above, thiswould not present a problem. Even whenlarge files are being processed, the motorswould not be engaged for more than a fewminutes at a time. In the case of file creationprograms, where this time might extend to

126

an hour or so, the tape unit is constantlybeing turned on and off. The probabilityof the capstan stopping in exactly the sameposition after each tape operation is quitesmall. Therefore, even when the capstanremains engaged for long periods of time,the exact position of the capstan is changingevery few minutes.

Additionally, the capstan must be dis-engaged in order to remove the tape at theend of the program run. Since the tapeswould normally be removed after processing,this would seem to preclude leaving thecapstan engaged in the same position fora prolonged duration. For those people whoare absentminded, the file processing pro-grams could include a reminder to disengagethe capstans after processing is complete.

The second argument against audio cas-settes is their somewhat less than 100%reliability. Occasionally, a record will bewritten onto a file which cannot be readback. Even with good equipment, this cansometimes happen. In the file processingsystem described above, this presents only aminor problem, since it will seldom affectmore than one or two records. If a record isunreadable, all the other records remainusable. Therefore, the tape update programcan be used to add the unreadable record toa new file. Since the unreadable record doesnot "seem" to be on the old file, the processis treated as the addition of a new record bythe update program. Even if several suchrecords must be added the problem is ofminor proportions, and represents more ofa nuisance than a catastrophe.

Summary

It is readily admitted that sequential filesare not a substitute for random access files.There are, however, many applications inwhich the disadvantages of sequential filescan be minimized. In these instances, asubstantial amount of file handling can beperformed with very satisfactory results. Incases where disk files are not available,sequential files may be the only means ofproviding facilities for processing largevolumes of data. Even in systems wheredisk files are available, the judicious useof sequential files can assist in conserving themore expensive disk storage facilities.

The software required to support a se-quential file system is considerably lesscomplex than that required by a disk fileprocessing system, and the hardware costsare minimal. All in all, sequential files canprovide a great deal of data processingcapability at about one tenth the cost of asingle disk storage device."

As Computer EnterprisesEnters Their Second fear:

Brand New Products —Low, Low Prices. Save!

Our

List

Price

IMSAI VIO Model B,

Video Kit

$275

$225

IMSAI 16K Dynamic

RAM Kit

$449

$382

IMSAI 32K Dynamic

RAM Kit

$749

$637

Cromemco 16K Dynami

c

RAM Kit

$495

$421

Vector Graphic

VECTOR 1+

$659

$560

Low-Priced Items YouMay Have Missed:

List

Our Price

North Star Micro Disk System

$ 699.00

$ 599

Cromemco Bytesaver Kit

$ 145.00

$ 131

Cromemco Dazzler Kit

$ 215.00

$ 193

Cromemco Z2 Kit

$ 595.00

$ 535

Seals 250ns RAM Kit

$ 295.00

$ 240

Seals 8080 Wire Wrap Board

$ 37.50

$ 32

Our Own Extender Board

with Connector

$ 30.00

$ 12

IMSAI RAM 4A-4 Kit

$ 139.00

$ 115

RAM 4A-A Socket Set

$ 22.00

$ 10

Compucolor 8001

$2750.00

$2475

Polymorphic VTI/64

$ 210.00

$ 189

Vector Graphic 500ns

8K RAM Assm.

$ 265.00

$ 225

Vector Graphic Prom/RAM Kit

$ 89.00

$ 80

TDL ZPU Kit

$ 269.00

$ 242

Shipping charges: $10 per CPU on larger units; $1.50per kit. $2.00 min. per order.

Delivery is stock to 30 days on most items. Shipment isimmediate for payment by cashier's check, money or-der or charge card. Allow 3 weeks for personal checksto clear. N.Y. State residents add approp. sales tax.Availability, prices and specs may change withoutnotice.

computeremerpfl/e/

Fayetteville, New York 13066P.O. Box 71

Write or Call for

COMPUTER ENTERPRISES'

DISCOUNT CATALOG!

127

Circle 400 on inquiry card.

SYNCHRO SOUND

^■■^■ENTERPRISES, INCHBHT

One-stop shoppingfor Hardware and Software

Everything you need in small computer systems with special emphasis

on TERMINALS! Look at these units...compare price, quality, delivery,

service...and you'll see why you don't have to look anyplace else!

LEAR SIEGLER ADM 3A TERMINAL

• Full addressable cursor

• Display format—24 linesof 80 characters per line

• Communications rates—75 to19,200 Baud

• Computer interfaces— EIA standard

ADM3A

Kit

ADM3AAssembled .Lower Caseoption

$739.95

849.95

69.00

ADM1ATERMINAL

• Display Format—80 charactersper line by 24 lines• Full cursor control• Edit operations: clear screen,clear unprotected character type-over.(Options are Character Insert/Delete,Line Insert/Delete, Erase to endof page, Erase Line/Field)and much more

moled $1398.00

ADM 2A TERMINAL

• 1920 character display (24 x 80)

• 16 function keys for 32 commands

• Separate keyboard—119 keys

• 10 key numeric pad 4nu,.

• Single key edit operations JsDsMe^|ed .

• Page, field or line edit «t»^o*\r r\r\

• Security, protected fields $1o90i00and much more

OKIDATA MODEL 110LINE PRINTER

• 110 CPS dot matrix

S! $1149.00

Sr 1279.00

RS232C

Interface . . . 260.00

OKIDATA MODEL 22LINE PRINTER

125 lines per minute132-column print lineUpper/lower case8 differentcharacter sizes12 IPS paper slew

MM

$2249.00379.00

DECWRITER II

• 132 column printing

• 10-30 CPS

• Full keyboard

• Tractor feed

$1695.00

SYNCHRO-SOUND

ENTERPRISES, INC

CENTRONICS703 SERIALPRINTER i

Lowcost

of ownership

• Bidirectional logic seeking printing

• Microprocessor electronics ^ooac f\f\

• Excellent print quality $Zo90.0U

CENTRONICS 761 PRINTER

• 300 Baud serial transmission

• Bidirectional and incremental printing

• RS232, CCITT-V24, orcurrent loop interface

• Baud selection (110/150/300)

$1695.001

Receive only version

1595.00

KSR with Keyboard.

IMSAI 8080 MICROCOMPUTERPowerful • Low cost • Easy to use

I

IMSAI 8080

gjiiiii mHsssi ^*-*

With 22 SlotMother Board

$619.95

With Z-80 CPU

849.95

HAZELTINE1500VIDEO TERMINAL

• Reverse video

• 24 x 80 display

• Programmablebrightness levels

• RS232 andcurrent loopand much more"

Assembled

$1149.00

Kit also available

Fully IBM 3740 mediaand format compatibleFull formatter

FLOPPY DISKSYSTEM

and controllerbuilt-in

ICOM Model FD3712Dual Drive System

^$2795.001

HAZELTINE MODULAR 1INTELLIGENT TERMINAL

• 1920 character display

• 8 different video levels

• Full editing capability

• Removable keyboardand much more

Assembled ....

$1659.00

We carry a full line of the following: TDL,Centronics, Seals, Hazeltine, Micropolis,Hayden, IMSAI, Cromemco,Compucolor, Icom, LearSiegler, Okidata,DEC, Javelin, North Star, Peripheral Vision.Same day delivery and shipping on mostitems. Full modern repair facilities onpremises for complete servicing ofeverything we sell.

SPECIAL BUYS

SoraclQ 120 Video Terminal Kit $959.00

DEC LA 180 Printer 2769.00

Compucolor8001 ColorComputer 2595.00

ICOM Microfloppy System 989.00

North Star Microfloppy Disk Kit 599.00

2708 Eproms 27.95

Javelin 9" Video Monitor 159.95

Livermore Modem Model 76 299.00

Sol 20 with Solos Kit (limited supply) 999.00

Micropolis Model 1053MOD 2 1799.00

IMSAI AP44-44 Col. Printer Kit 329.00

TDLXitan Alpha 1 Computer Kit 699.00

SYNCHRO-SOUND enterprises, inc.

The Computer People

193-25 Jamaica Avenue,

Jamaica, New York 11423

212/468-7067 TWX: 710-582-5886

Hours 9-4 daily Visit our new showroom

andSaturday Working unitsondisplay

Dept. bb BankAmericard • MasterCharge

Circle 401 on inquiry card.

C: A Language for Microprocessors?

J Gregory MaddenJGM Development LabsPOB 2345West Lafayette IN 47906

I would first like to congratulate PeterSkye for his work on the high level languageproject! The interest created by his lettersin recent BYTEs has helped to prod theemergence of a high level language. PL/Iis a fairly popular language, and a goodchoice as an initial high level machine in-dependent language. But what about otherlanguages? Is there perhaps one whichmight be a better choice? Let's take abrief look ....

Enter FORTRANBASICSNOBOLPASCALCOBOLRPGCAPLALGOLPLI.

FORTRAN is a prehistoric beast fromthe 1950s, and though it has the highest"literacy rate" of any language in BYTE's1976 survey, it is rather limited in its capa-bilities. BASIC is also popular. There areplenty of BASIC interpreters around and itscapabilities (or, rather, lack thereof) are evenless sufferable than FORTRAN'S. Perhapsa BASIC compiler combined with an inter-preter would be very helpful to speed updebugged programs, but let's continue.PASCAL is a reasonable candidate. COBOLwould be fun to implement and it has afairly high literacy rate; however, it is aw-fully wordy. Source programs take up lotsof space and for microcomputers it is nota very good choice. ALGOL might bereasonable. As for RPG, FORMAC andTRAC, I know little about these languages;however, I don't believe they have anymajor advantages over others.

Enter C

What about this strange creature calledC which has been vaguely mentioned hereand there? Where did it come from, whereis it going, and what's it all about?

C is a high level language based on anearlier language called B. It was writtenby several brilliant people* at the Bell Tele-phone Laboratories at Murray Hill NJsometime around 1974. It is designed torun under the Unix operating system (alsodesigned and written by these people) ona Digital Equipment Corporation PDP-11/45thru 11/70 series machine. It now also runson IBM equipment and is being rewrittenfor Interdata machines. The C users'rumor mill also mentions something aboutPDP-10 versions in the future. My purposein writing this article is to convey theflavor of C and suggest its utility as a modeof expression for personal computing.

The language C offers a user the follow-ing features:

• Control structures which permit a flowof control by using the language,rather than having to program aroundthe language.

• Expressions that eliminate most tem-porary variables and trivial statements,resulting in shorter, cleaner code.

• Pointers and character variables to dononnumeric problems simply.

• Structures to enable easy implementa-tion of complicated data concepts.

What does all of this mean? Basically,programming in C is easy, fun, andprobably results in the fewest lines of com-prehensible code per program of any generalpurpose programming language.

*Ken Thompson and Denis Richie.

130

REE YOURSELF FROM THE ONE BYTE WORLD. MOVE UP TO THE TWO BYTE TEXAS INSTRUMENTS TMS-99006-BIT MICROPROCESSOR — WITH OUR — "SUPER STARTER SYSTEM" — TEC-9900-SS. SHOWN ABOVE, FEATURESARDWARE MULTIPLY AND DIVIDE, 69 MINI-COMPUTER INSTRUCTIONS, 7 ADDRESSING MODES, EXPANDABLEO A FULL 65K BYTES; MONITOR, TMS 9900 CPU, RAM, P-ROM, E-PROM, PROGRAMMER ALL ON ONE P-CiOARD BASIC OPERATING SYSTEM AS LOW AS $299 UNASSEMBLED $399 ASSEMBLED AND TESTEDEXPLICIT MANUAL INCLUDED OR AVAILABLE SEPARATELY AT $35, TO LEARN MORE . . JUST TEAR OFFV PIECE OF THIS AD, PIN TO YOUR LETTERHEAD & RETURN TO TECHNICO OR CALL OUR HOTLINE 1-800/638-2893O RECEIVE FREE INFO-PACKAGE.—DESIGN & TECH SUPPORT BY ROSSE CORP. r. . .n~„„ .„„., .

Circle 4(jv on inquiry card.

a

TECHNICO

INCORPORATED

9130 Red Branch Rd.

Columbia, Md. 21045

301 -596-4100

THE TECHNOLOGY LEADER INELECTRONICS DISTRIBUTION

mnemonic

C rep

description

BSNL

«

backspacenewline

CR

HTadd

\

\add

w

carriage return

tab

octal byte

backslash

Into the Briny Deep

What's C made of? Let's take a look atsome of the basic constructs of the languageto see what makes it tick.

Each section of the C program consistsof what we will call a function, somethinglike a FORTRAN function. Even the mainprogram is a function with the name main.The format is as follows:

main( ) jstatements

Arguments may be passed to a function byplacing them between the parentheses in thedefinition and references to the function. Cuses a call by value technique, rather thancall by address for function arguments. Thismeans that if a function changes the value ofan argument variable, it does so only for thatparticular function call. How is this done?All variables in a function are stored on thestack rather than being assigned fixed loca-tions. This means that storage space forvariables is only allocated while they arebeing used, and is freed when control returnsfrom a function. There are of coursemethods for changing the value of variablesin the calling function during execution ofthe called function, but these methods areexplicit exceptions to the call by value rule.Any C function can be used as a subpro-gram as well as its possible use as a mainprogram. The example used main as a name,but as in many languages, there is a freedomto pick and choose descriptive names for Cfunctions.

Variables are the usual: integer, character,floating point and double precision floatingpoint. C variables are declared as inFORTRAN by a statement of the form:

type varl', var2, . . . . ;

Where type may be: int, char, float ordouble. Variables may be made to stickaround (ie: storage is allocated permanentlyrather than temporarily using the stack) ifthe word static is included before type inthe declaration. Then the value will notchange between function calls unlessexplicitly modified. Normally, variablesare dynamically allocated space on entry toa function.

All variables must be declared in C, anddeclarations must precede executable state-ments. Statements are ended with a semi-colon (;) to indicate to the compiler what isthe logical end of a statement.

10 in C

10 is done with basically two systemsupplied functions called getchar andputchar. Each gets or puts one characterfrom standard input or output; getchar isnormally used by equating a variable of typechar to it:

c = getchar ( );

The variable c will have the ASCII value ofthe next character available from the inputfile; putchar is normally used by giving it thevariable to print:

putchar (c);

The ASCII value of c would be output tothe output file. The argument to putcharcould be a single ASCII character:

putchar ('a');

in which case the character "a" will be out-put to the output file.

printf is another useful built-in function,similar to the FORTRAN WRITE andFORMAT statements. It actually callsputchar to do the 10. Its arguments are astring of characters in quotes, followed bythe variables to be printed. In the string,format specifiers consist of a percent signfollowed by an optional field size, followedby a letter indicating the format to outputas: d for a decimal number, o for an octalnumber, h for a hex number, s for an ASCIIstring and c for a single character:

printf(

"The value of c is: %d"

,c);

If the new line is desired, it must be speci-fied by putting a '\n' in the string at theappropriate point:

printf(

"The string is %s, and the value of a is %d.\n"

,string,a);

This inserts a carriage return and line feedwhen the '\n' is scanned during execution.

Special Characters

A note is in order before we go on aboutspecial characters in C. How does onerepresent a carriage return or a tab, or a linefeed, etc? In general, anytime you want aspecial character, it can be generated by abackslash followed by a single nonnumericcharacter. New line is '\n', tab is '\t', end offile is '\0' (equivalent to 0). Also any ASCIIcharacter can be formed with a backslashand a 3 digit number: \040 is a space,etc. This enables all characters to be avail-able for relational tests and use in com-putation.

132

SOFTWARE = TSC

TEXT EDITING SYSTEM: This 6800 editor isunlike any other micro editor. As well as the usualfeatures, it also includes; content oriented commands,local and global commands, block move and copy,append and overlay features, as well as very com-prehensive string manipulators. 5K

SL68-24 MANUAL & SOURCE LISTING $23.50CT68-7 OPTIONAL CASSETTE $6.95

PT68-6 OPTIONAL PAPER TAPE $8.00

TEXT PROCESSING SYSTEM: A great

companion to the TSC editor. The processor willallow convenient paragraphing, right hand justifica-tion, paging, titling, and general text formating. 4K

SL68-29 MANUAL & SOURCE LISTING $32.00CT68-9 OPTIONAL CASSETTE $6.95

TSC MNEMONIC ASSEMBLER: Another 6800 resident assem-bler? Yes! But this one is many times faster than others due to a veryefficient symbol handler. All the standard motorola options included as wellas psuedo ops. It is very modular making it quite easy to adapt to mostsystems. 5K

SL68-26 MANUAL & SOURCE LISTING $23.50

CT68-8 OPTIONAL CASSETTE $6.95

PT68-9 OPTIONAL PAPER TAPE $8.00

DISASSEMBLER FOR 6800:

and includes the source listing!SL68-27 MANUAL & SOURCE LISTINGOPTIONAL PAPER TAPE

Now one that is reasonably priced

PT68-7

TSC 6800 ARITHMETIC ROUTINES

SOAP: A very fast, 4 byte binary, floating point package. Includes

integer and conversion routines as well.

$10.00

A BCD math package with 9

SL68-25

FLOATING POINT PACKAGE:

digits of precision.

SL68-4 $6.50

SCIENTIFIC FUNCTIONS: Requires SL68-4 and provides allscientific functions including SIN, TAN, LOG, LN, HYPSIN, and others.SL68-20 $10.00

DIAGNOSTICS FOR 6800:

No system is complete without a set of

diagnostic programs. Includes 5 memory

tests, serial I/O tests, parallel I/O tests, plus

others.

SL68-23 SOURCE LISTING $10.00

MICRO BASIC PLUS: The bestsmall BASIC available for 6800. In just 3WK, a complete interpreter including GOSUB,IF THEN, FOR NEXT, DIM, ON GOTO andGOSUB, READ DATA plus the functionsRND, SPC, TAB, EXP, and ABS. Five fulldigit integer math is supported.

SL68-19 MANUAL & SOURCE

LISTING $15.95

CT68-5 OPTIONAL

CASSETTE $6.95

PT68-5 OPTIONAL PAPER

TAPE $6.00

SPACE VOYAGE: A full blownStar Trek program written in 8080 and6800 assembler language. Runsmuch faster than similar BASIC ver-sions and requires about 1/5 of thememory! Each game is different asyou try to save the federation usingyour phasers, photon torpedoes, andshields. Searching out the menacingKlingons is accomplished using theshort and long range scanners as wellas moving about by firing the warpengines. Beware of sudden attacks,space storms, supernovas, and otherunexpected events. This game is veryaddicting! 4K

SL68-5 6800 SOURCE

LISTING $12.00

CT68-1 OPTIONAL

CASSETTE $6.95

SL80-9 8080 SOURCE

LISTING $12.00

PT80-1 OPTIONAL PAPER

TAPE $7.00

6800 MULTI-USER SYSTEM!

Now you can have 4 simultaneous users, all running BASIC, and in-dependently! Give your micro the power of a large mainframe. Applications include: a great educational tool, small business applications such asmulti station inventory system, industrial computer power expanding thepersonal computer system,. . .etc. The system is presently available onlyfor the SWTPC 6800 computer system and will support cassettes, floppydiscs, and a printer. For complete details of the multi-user system, write forour 4 page brochure.

MUB-68 $129.95

$9.00$4.00

ALL SOFTWARE CONTAINS: Complete commented source listing, users manual with

complete instructions, printed hex dump, sorted symbol table, and sample output

PROGRAM-OF-THE-MONTH CLUB.™ $2.00 for a one year membership. No obligations!

HOW TO ORDER: All orders should include check or money order. Add 3% for postage and $1.00 forhandling for orders under $10.00. Send 25< for complete TSC software catalog.

Circle 403 on inquiry card.

TECHNICAL SYSTEMS CONSULTANTS, INC.

Box 2574 W. Lafayette, IN. 47906

The If Statement

The C if statement is of the format:

if {expression) statement

where statement may be any C statement,and expression may be any statement whichhas a value. The expression is true if its valueis nonzero.

C relational

operators ma

y be

selected from the following list:

==

equal to

! =

not equal to

>

greater

than

<

less than

>=

greater

than or equa

to

<=

less than or eqt

al to

&&

logical

and

I

lo

IIgical not

logical or

Relational operators may be combined inany way, along with parentheses, to producean expression.

The statement portion of the if may beany valid C statement, or combination ofstatements. The statement may be madearbitrarily complicated by enclosing a setof statements in braces, j \ . These bracesare similar to the BEGIN and END state-ments of several other languages.

The if may be associated with an elsestatement, which may also have anarbitrarily complex statement following it.Multiple elses can be used to construct logicthat branches one of several ways:

if (expression) statementelse if (expression) statementelse if (expression) statement

While Statement

The while statement sets up a loop,whose general format is:

while (expression) statement

The expression is evaluated and if its valueis true (not zero) does the statement andthen starts again. The statement may ofcourse be arbitrarily complex as in the ifstatement. Note that the statement is exe-cuted zero times if expression initially evalu-ates to zero.

Arithmetic

Arithmetic statements use the usualoperators: +, -, * and / along with % whichis the remainder (or "mod" operator inother languages). The syntax is a variablefollowed by an equal sign followed by anexpression using the above operators. Mul-tiple equivalences may occur on one line,an economy of notation which can be use-ful.

a=b = c = d=25*2/(c + 1);

One interesting feature is that when avariable is set equal to itself plus something,the statement may be abbreviated:

a = a + 5; is equivalent to:a = +5;

Note that no space follows the equal sign inthis form. In general the statement may bearbitrarily complex; however, note that onecannot assume a parenthesis, etc, in frontof the implied variable.

Another very interesting feature is thatany time a variable is used, it may have aprefix or a suffix of ++ or —. The ++means increment, the — means decrement.If used as a prefix, the operation is donebefore the variable is used; if used as a suffixthe operation is done after the variable isused.

These features help make C the supremepleasure it is to use. They do however have adetracting feature: one must be wary whencomposing a statement lest it do somethingunintended!

Note that an if or while statement'sexpression may be a simple equivalence or itmay contain calls to other functions! Thiscan result in some of the cleanest, nicestcode you have ever seen. It does sometimestake a minute to fathom the meaning of astatement, however, and it is easy to forgetthe double equals in an if test, resulting in anequivalence!

As

an example, let's w

ite a pr

ogram

to conve

t

a file

into 1

ower case:

main

)!

ch

arc;

while((c

= getchar( )) !

= \0')

t

if('A

<= c && c <=

'Z') putchar

c + V-

'A');

else putchar (c);

}\1

The program gets a character and assignsits value to the variable c. If the character isnot zero (end of file, ie: \0) it executes the ifstatement. This checks to see if the characteris upper case, and if so, converts it to lowercase and outputs it. Otherwise it is already inlower case, and is output as is. The programcontinues with the next iteration of thewhile.

The Case and Switch Statements:

Another terribly useful C statementgroup contains the case and switch state-ments. They are used to replace tests of mul-tiple options with if statements like:

if(c=='a')...else if (c == V) . . .else ....

134

ur choice line ofPersonal ComputingBooks

NCHOICES

MICROPROCESSOR BASICS (El-phick) Selection and application infoon 8 popular micro's, including the8080, 6800, F8, IMP, and 6100.#5763-6, paper, $9.95

THE BASIC WORKBOOK: CreativeTechniques for Beginning Program-mers (Schoman) "Hands-on" learn-ing of problem-solving using a com-puter. #5104-2, paper, $4.25

GAME PLAYING WITH BASIC

(Spencer) Over 50 easy-to-learn andchallenging games and puzzles foryour personal computer. #5109-3,paper, $6.95

TELEPHONE ACCESSORIES YOUCAN BUILD (Gilder) Fully-illustrated,step-by-step instruction on buildinguseful phone accessories at a frac-tion of the commercial cost. #5748-2,paper, $3.95

GRIT

CHOICES

CS'

MICROPROCESSORS: New Direc-tions for Designers (Torrero) "... auseful book for the electronics de-sign engineer." BYTE MAGAZINE.#5777-6, paper, $10.95

FUNDAMENTALS & APPLICATIONSOF DIGITAL LOGIC CIRCUITS

(Libes) "A great book for use as areference by people who are learn-ing digital electronics." PEOPLE'SCOMPUTER COMPANY. #5505-6,paper, $6.95

BASIC BASIC: An Introduction toComputer Programming in BASICLanguage (Coan) ". . . an excellentintroduction . . . clearly written andwell-organized." COMPUTING RE-VIEWS. #5872-1, paper, $7.95

ADVANCED BASIC: Applications &Problems (Coan) "This one rateswell above average." DATA PROC-ESSING DIGEST. #5855-1, paper,

STANDARD DICTIONARY OF COM-PUTERS AND INFORMATION PROC-ESSING, Revised Second Edition,#5099-2, Available Oct. '77.

APPLIED COMPUTING: Putting YourComputer to Work, #5761-X, Avail-able Jan. '78.

PROGRAMMING THE PROGRAM-MABLE CALCULATOR #5105-0,Available Jan. '78

HAYDEN BOOKCOMPANY. INC..

in pei§onalcomputingbooks!

AVAILABLE AT YOURLOCAL COMPUTER STORE!

CHOICES

GAME PLAYING WITH COMPUT-ERS, Revised Second Edition(Spencer) #5103-4, cloth, $16.95

COMPUTERS IN ACTION: How Com-puters Work (Spencer) #5861-6,paper, $5.50

COMPUTERS IN SOCIETY: TheWheres, Whys, & Hows of Computer

Use (Spencer) #5915-9, paper, $5.50

PROGRAMMING PROVERBS (Led-gard) #5522-6, paper, $6.50

PROGRAMMING PROVERBS FORFORTRAN PROGRAMMERS (Led-gard) #5820-9, paper, $6.50

COBOL WITH STYLE: ProgrammingProverbs (Chmura & Ledgard)#5781-4, paper, $5.45

MINICOMPUTERS: Structure & Pro-gramming (Lewis & Doerr) #5642-7,cloth, $12.95

DIGITAL SIGNAL ANALYSIS

(Stearns) #5828-4, cloth, $19.95

FORTRAN FUNDAMENTALS: AShort Course (Steingraber) #5860-8,paper, $4.95

DIGITAL TROUBLESHOOTING:Practical Digital Theory and Trouble-shooting Tips (Gasperini) #5708-3,paper, $9.95

DIGITAL EXPERIMENTS: Workbookof IC Experiments (Gasperini)#5713-X, paper, $8.95

COMPUTER MATHEMATICS (Con-rad, Conrad, & Higley) #5095-X,cloth, $13.95

50 Essex Street, Rochelle Park, New Jersey 07662

The format of a is:

switch {variable) |case 'a':

statements;

break;case 'b':

statements;

break;

default:

statements;

The case statements label the various actionswanted; default is done if none of the othercases are satisfied. The default statement isoptional. The break statement causes execu-tion to continue with the next statementfollowing the switch group. The break state-ments are optional, and if not used, execu-tion falls through to the next case condition,which is often useful.

break may also be used with for andwhile statements, causing an immediate exitfrom the loop. (A continue statement mayalso be used to cause the next iteration ofthe loop to be started, in a for or whilestatement.)

Arrays

Arrays in C may be multidimensionaland are subscripted by using square brackets.Array indexes begin at zero. Typical arraydeclarations are:

intx[10];intxy[10][20];

This example creates an array x, with tenelements, and an array xy with 200elements. Subscripts can be arbitrary integerexpressions.

Character Arrays (C Strings)

Character arrays in C are strings ofASCII characters terminated by a zero byte.This makes string handling simple. Forexample, when printing a character stringusing the printf format %s, printf prints thecharacters until it finds a zero byte.

Other Statements of Interest

The for statement is a generalized whileof the format:

for (initialization; expression;increment) statement

where a typical example might be:

for(i=0; array[i] = getchar(); i++);

which copies characters from the inputfile into array, until getchar finds a zerobyte. The for is usually used when a variablemust be initialized before it is used and thenmodified in a regular way each time the loopis reiterated.

Structures, Pointers, Pointers to Pointers,Pointers to . . .

Briefly, a structure in C is a grouping ofdata declared as follows:

struct \

variable declarations

H ..,. , ,

initialization section\ structure—name;

where the initialization section is optional. Astructure member is referred to by:

structure—name .mem ber

where member is one of the variabledeclarations of the declaration. Structuresmay be made to be arrays by following thestructure—name with the array size inbrackets. Note that the whole structure canbe passed as an argument to a function, afeature most useful when complicated link-ages are required.

Pointers are another way to refer to amember of a structure. Pointers in C aredeclared by preceding the variable name inthe declaration with one or two (or more ifyou're a masochist) asterisks. One * meansthe variable is used as a pointer to some-thing, two *s mean the variable is used as apointer to a pointer (typically a pointer toan array of pointers). The address of a vari-able can be had in an expression by using theunary operator & in front of the variable.Pointers are usually used to "walk" alongarrays efficiently. In fact, an array namerepresents the address of the zerothelement of the array, so it cannot be used onthe left side of an expression, since you can'tchange the address of something by assigningto it.

The Crux of the Matter

It is difficult to learn much about alanguage by reading about it; I have onlybriefly skimmed the most important featuresof C in an effort to enable those who arenot familiar with the language and arelooking for a better high level language togain some insight into it. It seems to take abit of working with the language in order tobe able to experience and understand thefull power of it and to be able to effectivelyutilize that power.

136

XililEDiA P=tEiEfK>

The SOROCIQ120

CURSOR CONTROL. Forespace, back-space, up, down, new line, return, home,tab, PLUS ABSOLUTE CURSOR AD-DRESSING.

TRANSMISSION MODES. Conversation(half and full Duplex) PLUS BLOCKMODE — transmit a page at a time.

FIELD PROTECTION. Any part of thedisplay can be "protected" to preventovertyping. Protected fields are displayedat reduced intensity.

EDITING. Clear screen, typeover, abso-lute cursor addressing, erase to end ofpage, erase to end of line, erase to endof field.

DISPLAY FORMAT. 24 lines by 80 char-acters (1,920 characters).

CHARACTER SET. 96 characters total.Upper and lower case ASC11.

KEYBOARD. 73 keys including numerickey pad.

REPEAT KEY. 1 5 cps repeat action.

DATA RATES. Thumbwheel selectablefrom 75 to 19,200 baud.

SCREEN. 12 inch rectangular CRT - P4phosphor.

NEW LOW PRICEAssembled $975.00

Specials of the Month

North Star Micro Disk

with power supply and cabinet

KitAssembled

-$699-$799

IMSAI I-8080 with TDL ZPU

Kit

Assembled

-$825-$975

Digital Systems FDS Disk Drive withCP/M Software (assembled only) . Single —

Dual -

$1,750$2,350

Mountain Hardware PROROM

Kit -

Assembled -

-$145-$210

Vector Graphic 8K RAM . . .

Kit -

-$235-$285

Assembled -

NOW WE RETOLL FREE

800-227-4440

(in California, Hawaii, and Alaska, call collect:415/566-7472)

XIMEDIA OFFERS A FULL RANGE OF PRODUCTS FORTHE PERSONAL COMPUTER ENTHUSIAST AND THESMALL SYSTEM DESIGNER. LET US QUOTE ON ALLYOUR HARDWARE AND SOFTWARE NEEDS.

OUR RETAIL STORE-THE COMPUTERISTtm - IS NOWOPEN IN SAN FRANCISCO. CALL US FOR DIRECTIONS.

XililEDiA

1290 24th Avenue, San Francisco, CA 94122(415) 566-7472 Circle 405 on inquiry card.

COD orders freight collect. Orders with payment shipped prepaid. Californiaresidents add 6% sales tax. Please allow 3 weeks for delivery.

All of this is of no use to microprocessorusers unless it can be implemented on amicroprocessor. C was designed with thePDP 11/45 hardware directly in mind, and ittakes advantage of the indexed addressingmode and the increment and decrementinstructions. It turns out that most C state-ments result in about three machine codeinstructions!

The power of this language becomes moreapparent with several notes. The Unixoperating system was originally written inassembly language. During the summer of1973, it was rewritten in C. A number offeatures were added including multipro-gramming and the ability to share reentrantcode among several user programs. The sizeof the new system was about one thirdgreater than the assembly language version.The programmers "considered this increasein size quite acceptable." Several benchmarkprograms written to compare the DigitalEquipment Corporation's IAS operatingsystem BASIC and FORTRAN with theUnix C language gave results which placedC roughly ten times faster than FORTRANand more than 15 times faster than theBASIC.

Why not PL/I?

I don't wish to put down PL/I, since itcertainly is a useful language and has itsplace; however, I would like to make a fewcomments in closing.

Special characters are fine and fun, butcreate all kinds of problems when trying toimplement them; for example, few terminalshave many of the special symbols resultingin all kinds of weird escape sequences to getthem. Unfortunately many keyboards in useare not even full ASCII. Hardware to do 5by 7 matrix printing tends never to get builtby the builder and most of the special sym-bols have no ASCII value. (On a personalnote: I have met with the most amazingresistance to the idea of expanding ASCIIto eight bits. People will nearly resort tophysical violence against the idea. But whynot? Most machines use eight bits anyway,and parity [how often is it really used?] canbe implemented vertically instead ofhorizontally. Greek characters seem to bethe rage [though how often have you usedthem?] so why not implement 256 char-acters? I can see the mail now. . .)

Mr Skye notes that he will updatePL/SKYE as one might a dictionary. Haveyou looked at the size of the RandomHouse Dictionary lately? It is all very well tointend that it won't be too big, but doing itis very much the question. What is too big?That depends on your system. As memory

prices go down, too will the "big" thresholdcontinue to go up and up. At this time, toobig for a disk operating system seems to beabout 16 to 32 K with perhaps four or fiveoverlays (and that is very big), while on atape system, too big is 16 K and that is verysmall if the program is to be in core, too.

What to do, what to do. . . Well, youprobably shouldn't be running a high levellanguage with a tape operating system unlessit is a block oriented system (like the DigitalGroup Phi Deck system when implementedlike a disk). So, perhaps we could set a limitat between 16 to 24 K for the compileritself, leaving room for several 512 byteblocks for IO in a 20 to 32 K system.

As for writing the compiler in its ownlanguage, that is the only way to go.

Relocatable code is a must; and withindex registers it becomes very simple. Hereis where the processor becomes important.We really need a processor with indexed andrelative addressing modes. That looks likethe Z-80 processor (scream, rant, rave. . .).That does not however mean that it couldnot be implemented on a 6800, 6502, 8080,Micro-NOVA or whatever. Actually it turnsout to be relatively easy to rewrite the codegeneration portion of a compiler to run onanother machine, though at some expensein speed. (Can you imagine C on a Turingmachine?)

IO? Yes, IO should be completely deviceindependent. But that should be theconcern of the operating system. Simplywrite your operating system in C, makingit device independent. Actually, it is best todesign the IO routines to be function (sub-routine) calls in the compiler code, so theuser can change it to suit his or her needs.

This brings up an interesting point. Howdoes one distribute the code? It can't be inC source code; one can't run that. I hatebinary object code since it is so machine anddevice dependent. Well, everyone shouldhave an assembler for their machine, so whynot have the compiler (or at least aversion)generate machine source code. The IOsections of this can be modified if necessaryusing a text editor, assembled with the users'assembler and then it's ready to run. Itturns out that it's not quite that simple, ifyou think about it or try it, but it's close.From then on, the compiler can compileitself when changes are made.

This has been just an introductory com-mentary on the virtues of what I consider anexcellent language which should beadaptable to the range and scope of personalmicroprocessor based systems. As for whenand if versions for the microprocessor userwill appear, all l can do is close with thestatement "wait and C."*

138

16384 BYTES for $485.00

assembled (with sockets) : tested - burned-in - guaranteed

A new high in SI00 bus memory cost effectiveness. Fully assembled(with sockets), tested, burned-in and guaranteed. 4Kxl dynamicmemory chips (the same ones used by the ton in IBM compat-ible memory systems) combined with self contained controllogic, yield a memory system with these features:

• Low power consumption, total board 5 watts.

• Transparent refresh, which means thememory looks static to the outside world.

• No waiting. In fact, XRDY is not even con-nected to the memory.

• Full DMA capability.

• Reliable, low level clock and controlsignals.

• Three full days testing at 70° C (185° F).

SPECIFICATIONS

Capacity: 16384 bytes

Addressing: 16K boundaries

Bus structure: SI00 - Plug compatible with IMSA1 8080, POLY 88, ALTA1R 8800, BYTE-8. SOL

Address and Data Buffering: <200 uA. special high impedance buffers - less than one low power Schottky load

Access time: 350 nSec

Memory chips: MM 5271 (National Semiconductor and others) 4K dynamic

Dynaby te Inc.

4020 Fabian Way, Palo Alto Ca. 94303

for more information call or write to: /£//£ MARKETING DEALER INQUIRES INVITED

2233 El Camino Real B of A & Mastercharge accepted

Palo Alto, California 94306(415) 321-6639

Circle 406 on inquiry card.

_ l*m»*A ® brings to the S100 Bus a state of the art, industrial quality memory system.

Oy llclDyi© 16K on a single board for $485.00, Guaranteed for 1 year.

Simple Approaches

to Computer Music Synthesis

Thomas G Schneider706 Amherst SEAlbuquerque NM 87106

COMPUTER

In order to produce a musical output, wemust at least create a pitch output undercontrol. This is but a starting point, sincemore complicated waveform and envelopegeneration is also useful in music.

The block diagram of a basic note andoctave synthesis system is shown in figure 1.The top octave generator produces a squarewave whose frequency (pitch) is determinedby data sent out on the computer's data bus.Since the output of the top octave generatoris a square wave, it can easily be divided bydigital circuitry. Each time we divide thefrequency by two, we end up with a notewhose pitch is one octave lower than theinput frequency. By using an ordinary TTL

DATA OUT BUS

\ TOP

) OCT.V GEN

CTAVEERATOR

0

SQUAREWAVEOUTPUT

FO

OCTAVESELECTOR

Figure 1: Block diagram of a pitch synthesis subsystem for use in electronicmusic experiments under computer control. The top octave generatorproduces a repetitive digital waveform selected under computer control fromone of 12 well tempered pitches. This in turn drives octave generation logicconsisting of a chain of toggles dividing frequency by two at each stage, and aselector to pick which of the octave related frequencies appear in the output.

data selector as an octave selector, we cangenerate a musical scale covering manyoctaves, and we can also produce more thanone pitch at a time, although these extraoutputs will always be octave related to oneanother. The octave selector can also becontrolled by data sent out on the com-puter's data bus, giving us more flexibility.

The octave selector can be easily imple-mented using an n-stage divider and severalNAND gates. However, there are severalmethods of generating the top octave. Weneed 12 notes to produce a 1 octavechromatic scale. These notes must be ac-curate in frequency and drift free in order toproduce a true chromatic or "equallytempered" scale useful in music.

One way of synthesizing the top octave isto use a digital to analog (D/A) convertercontrolling an oscillator. An 8 bit converterlimits both resolution and range so that wecannot produce an acceptably accuratechromatic scale. If we use a converter of 10bits or more, resolution and range aresuitable, but such units are expensive andrequire stable voltage controlled oscillatorsfor this type of application. This method ofpitch generation is shown in figure 1. Theone nice feature of the digital to analog con-verter method is that we have a continuouslyvariable output frequency. This permitsnifty frequency sweeping effects (known as"portamento" or "glide" effects to themusician).

To save money we can construct a rathercrude digital to analog converter which, inconjunction with the voltage controlled

140

s

u

I

D

Q

Z(3

----

>

a.

COnr^- p*- »— m id_)3_l_lJp«-r-

E

Z

CS33SSC8

oo

0

is /

4

3f jr ir v v v v !P 5P jr v jr

U3°

-I ^1 <r| -I

[gj [iM [SJ [gj

C\J K> <fr

J I J I d

AT AT A 2 ;

6 6 6 A 6 6 66

— o^r

c\j ro to

< o a a

t\J rQ <d"

— om

o o o

oj ro «j-

c\j m CD

6666

ne-

6666

Figure 2: An Altair bus interface and frequency selection logic for the tunable digital to analog conversion method of generationof pitches. This circuit can be constructed on a general purpose prototyping card for the Altair (S-100) bus.

141

Table J: Octal and hexa-decimal representations ofnote selections, in the loworder bits, for these pitchgeneration circuits.

Octal

Hexadecimal

Mote

Code

Code

C

000

00

C#

001

01

D

002

02

D#

003

03

E

004

04

F

005

05

F#

006

06

G

007

07

G#

010

08

A

011

09

A#

012

0A

B

013

0B

oscillator, will produce the 12 notes requiredfor the full too octave. This method is shownin detail in figure 2. By using surplus 10 turntrimpots and the voltage controlled oscilla-tor, we can construct an inexpensive topoctave generator. However, this method hasits disadvantages: tuning the trimpots is acritical operation, and once the pots aretuned, they can easily detune themselvesbecause of vibration or temperature vari-ations. My present synthesizer uses thismethod and needs to be retuned about everytwo months or so.

A good alternate method of generatingthe top octave is to use an integrated circuittop octave generator such as the MOSTEKMK50240P. This chip can be had for under$10 and is second-sourced by General In-strument Corporation as the AY-3-0215.

There are several advantages to be had byusing this chip. The chip nominally requiresa 2.000240 MHz reference frequency whichis approximated by the central processorclock's circuitry of most Altair (S-100) bussystems. (The frequency is not exactly2.000240 MHz, but will be close enoughfor this application.) This chip eliminatesboth the voltage controlled oscillator anddigital to analog converter, and thereforeputs an end to stability and tuning complica-tions. The MK50240P generates the top 13notes of the well-tempered music scale withan accuracy better than can be determinedby the best musician.

Hardware Considerations forTwo Working Circuits

The circuit used for the pitch generator,using the tunable digital to analog converterwith an Altair bus is shown in figure 2. Bustiming and address decoding are performedby IC1, IC2, and IC3. IC4 and IC5 latch andhold data sent to the board on the data outbus. IC8 is a 4 to 16 decoder with active lowoutputs. These outputs select which 10 turntrimpot is selected as the bottom leg of thevoltage divider whose top leg is resistor R.These trimpots should all have a value about

5 R. The voltage produced by this divider isconnected to the input of the voltage con-trolled oscillator. The output of the voltagecontrolled oscillator is divided by IC7. Theoutputs of counter IC7 are gated onto theoutput bus by IC6, the quad open collectorNAND gates. IC8 and the voltage controlledoscillator comprise the top octave generatorand IC6 and IC7 comprise the octaveselector.

The circuit using the MK50240P for topoctave generation is shown in figure 3. Theboard address, bus timing and latch circuitryare identical to the circuit of figure 2. Theoctave selector is also identical to the one infigure 2. The MK50240P, IC6, is a 12 Vdevice and requires input signal conditioningand output buffering. The 2N2222 transistorand associated resistors bring the TTL levelclock signal from the bus up to the 12 Vlevel required by the MK50240P. The out-puts of this chip are buffered by IC7 andIC8 before going to IC9 which is the dataselector and multiplexer. The MK50240Pgenerates all the notes in the top octavesimultaneously and IC9 selects any one ofthese outputs depending on what data ispresent at the outputs of IC4. The output ofIC9 is then connected to the two chips(IC10 and IC11) comprising the octaveselector. An additional voltage regulator, a7812, has been provided to supply the 12 Vneeded for the MK50240P. Note that foradditional music channels, additional copiesof the note selector IC9 and octave selectorcan be driven off the buffered outputs of theMK50240P.

A word of caution: the audio output ofthe circuits in figures 2 and 3 swings about2 V peak to peak and should be attenuatedwith a potentiometer before you plug it intoyour stereo system or amplifier.

Software Considerations

From a software point of view, thecircuits of figures 2 and 3 are identical. Bothcircuits have an IO device address of 300octal. Outputting the proper data to 8080port 300 octal will cause the synthesizer toaudibly produce the note and octave(s)represented by that data.

The synthesizer can be considered ashaving two input nybbles, each nybble con-taining four bits. The least significant nybbledetermines what note is to be selected andthe most significant nybble determines whatone of four possible octave(s) is to beselected. One byte contains all the in-formation necessary to set up any note andoctave(s).

Bear in mind that the synthesizer willcontinue to produce the note and octave(s)

142

(50,100) O-

A i f ► GN

10MF<2> P | +1(—

QND

N OUT

7812

X

Power Conn

actions

IC

Number

Typo

+5 V

GND

-12 V

+ 12 V

IC1

74L02

14

7

IC2

74L04

14

7

IC3

74L30

14

7

1C4

74L75

5

12

IC5

74L75

5

12

IC6

MK50240P

3

1

IC7

CD4010

1

8

16

IC8

CD4010

1

8

16

ICO

74150

24

12

IC10

74197

14

7

IC11

7401

14

7

Figure 3: The complete circuit for an equivalent of figure 2, which uses the top octave generator chip with an Altair businterface. This method uses the top octave generator and a note selector to drive the octave selection logic, while the digital toanalog converter method uses a voltage controlled oscillator with a diode resistance selection of pitch.

143

Octave

4 (highest)

3

2

1 (lowest)

OctalCode

020040100200

HexadecimalCode

10204080

Table 2: Octal and hexadecimal notation foroctave enabling bits sent to the interface inthe high order nybble of the 8 bit word.Note that one or more of the octaves may beenabled simultaneously simply by adding thecodes together (or using a logical OR).

Octal

Hexadecimal

020

10

021

11

022

12

023

13

024

14

025

15

026

16

027

17

030

18

031

19

032

1A

033

1B

you have selected until you send it new data.To clear the synthesizer (no audible output)all you need do is output a 0 on data linesD4 thru D7, the most significant nybble.

Table 1 shows what the octal representa-tions are for each note in the top octave.Table 2 shows the octal representations foreach octave. To pack these two codes intoone byte, they can either be added or ORed.Table 3 shows a series of codes that, when

Table 3: Octal and hexadecimal representa-tions of the notes of a chromatic scale in thehighest octave of this interface. The codesfor any given pitch can be generated byadding the note code of table 1 to one ormore of the octave codes of table 2, pro-viding a multiple frequency output in thesumming resistor network of these circuits.In these examples, only one octave selectionis enabled, the high octave.

moved to port 300 octal in sequence, willproduce a 12 note musical scale in thesynthesizer's highest octave. However, ifyou wish to hear this scale, you must insert asoftware time delay in between each note.Otherwise all you will hear is a very short"click" because of the processor's high speedof program execution. If you wish to hearthis scale in four octaves simultaneously, allyou need to do is keep all four bits in theoctave enabling nybble in the high state.

Armed with this information and somesimple software routines, you and yourtrusty computer are now capable of synthe-sizing all of J S Bach's "B Minor Mass," tosay nothing of the many new types ofmusical expression you now have at yourfingertips. I myself have synthesized Haydn's"Minuet in G," parts of Bach's "Toccata andFugue in D Minor," Henry Mancini's"Pink Panther Theme," and "Hot RodLincoln!""

The Best of BYTE, Volume 1

Send now to:

BYTE Interface Technical Services, Inc.70 Main StPeterborough NH 03458

The volume we have all been waiting for! The answer to those unavailable early issues ofBYTE. Best of BYTE, edited by Carl Helmers Jr and David Ahl. This 384 page book ispacked with a majority of material from the first 12 issues. Included are 146 pagesdevoted to "Hardware" and how-to articles ranging from TV displays to joysticks tocassette interfaces, along with a section devoted to kit building which describes sevenmajor kits. "Software and Applications" is the other side of the coin: on-line debuggersto games to a complete small business accounting system is included in this 125 pagesection. A section on "Theory" examines the how and why behind the circuits andprograms. "Opinion" closes the book with a look ahead, as to where this new hobby isheading. It is now available through BITS Inc for only $11.95 and 50 cents postage.

Name

Address

City

State

Zip

The Best of BYTE, Volume 1

D Check enclosed

□ Bill MC #

□ Bill BA #

Price of Book $

Postage, 50 cents $

Total $

Exp. DateExp. Date

Signature

In unusual cases, processing may exceed 30 days.You may photocopy this page if you wish to leave your BYTE intact.

All orders must be prepaid.

'J

Circle 383 on inquiry card.

144

MORE BYTES FOR YOUR BUCK !

8K RAM.. .assembled, burnt-in, testedand warranted.. .only $19750!

These are not kits, but completely assembled andtested boards, with a 1 year warranty. No soldering,no messing, no chance of mis-connections . . . justplug 'em in and you're ready to run. The 8K RAM hasthe same features and speed as our 4K RAM (500nsec, no wait states) and if that isn't fast enoughthere's our 8K (Z) fast RAM that gives you a 250 nsecaccess time for only $217.50!

Because of the low power memory chips used, powerrequirements are lower than many other RAM boards.And the 8K RAM uses less power than two 4K boards.All RAMs are manufactured to military specificationMIL STD-883-C, assuring greatest control overreliability.

Address selection is easily accomplished by ourVisaddress™, an easy to read switch on the boardtop. The 8K board is designed to be selected as oneof eight possible 8K RAM boards present on the S-100bus.

To achieve address selection, the top address linesare decoded using the Visaddress switch. The switchwill then show the selected starting address of theRAM card. (i.e. 0 = 0000-1 FFF, 2=2000-3FFF, etc.nn the 8K board).

Both boards have fully buffered address and datalines, and extensive built-in noise immunity circuitry.And are plug-in compatible with the S-100 bus(Altair 8800, IMSA1 8080, etc.)

Quality, assembled boards at less than kit prices. Butwhat else should you expect from a company whoseprime products are electronic test instrumentationand microprocessing components?

Also available: 4K RAM; $107.00, Alpha-VDM; $107.00,Alpha-VDM-ll; $145.00, Graphics-VDM; $137.00.

Order direct by check, BankAmericard or MasterCharge (Add $1.50 shipping, credit customers give usall the card numbers, please and Ohio residents add41/2% sales tax) or contact us for more information.Kent-Moore Instrument Company, a subsidiary ofKent-Moore Corporation (founded in 1919), P.O. Box507, Industrial Ave., Pioneer, Ohio 43554. (419) 737-2352. Or, Kent-Moore of Canada, 246 S. Cawthra Rd.,Mississauga, Ontario L-A3P2, Canada.

Circle 407 on inquiry card.

Kent-MooreINSTRUMENT COMPANY

r

"BUG" J

PROGRAM A

GET PLAYER'S NAME

ASK IF PLAYER WANTS INSTRUCTIONS

BEGIN jPROGRAM "S

YES10,1)

■< PRINT GAME INSTRUCTIONS

0

NO(0,11

< SKIP

r

f

BEGIN GAME

< INITIALIZE BUG PARTS

r t

r-

PLAYER'S TURN <

see figure 2

GAMES .d,g) "S

TURNS(1,t)

<

COMPUTER'S TURN ■<END TURN -<

see figure 2see figure 3

ENDGAME

< GET NEW PLAYER'S NAME

^

\

END PROGRAM

^

Figure 1: The Warnier-Orrdiagram showing the basicstructure of the BUG pro-gram.

Structured Program Design

David A Higgins

Langston, Kitch and Associates Inc

715 E 8th St

Topeka KS 66607

In the world of electronics, no experi-menter in his right mind would build a cir-cuit by throwing a few parts together withsome wire and some hope, then attaching aline cord and plugging it in to see if it works.Not only are you likely to destroy somevery expensive parts, but it is also a goodway to get fried, or at least get a new hairdo.

Yet, after all the trouble that a seriousmicrocomputer hobbyist will take to insurethat his circuit is put together correctly be-fore he ever turns it on, he will invariablytry to program his new computer by usinga technique analogous to the one above.That is why his programs almost neverrun right the first time, if indeed they evermanage to run right at all. It is also whymany microcomputer buffs stay up untilodd hours of the night drinking coffee bythe gallon in an effort to find that onelittle bug.

But there is hope. I'm sure that nearlyeveryone involved with computers has heardsomething about structured programming inone form or another. It is not really a newtechnique, having been preached about formany years. However, the tools and meth-odologies available to design programs havechanged radically over the years.

In the beginning there were flowcharts,which looked like five-dimensional octopior the corporate structure of a conglom-erate. Despite the absence of a consistentapproach that would enable everyone todesign a program using flowcharts, thoseprogrammers who did bother to work outtheir problem with a flowchart first usuallyseemed to have more luck in getting pro-grams to run sooner and better thanprogrammers who did not.

Structuring Tools

The development of mathematics wouldsurely have been stymied if Roman numeralshad been retained as our number system. Inmuch the same manner, the science ofstructured program design would have beenmired down if only flowcharts had been

146

available for developing programs. It is notthat calculus is impossible with Romannumerals, it's just that it's extremely dif-ficult. Thus, over the years, a number ofdesign and docu'mentation tools were devel-oped to better enable a programmer tounderstand the problem before going out todo battle with the program.

TOP-DOWN or GOTO-less programming,developed by Djkstra and others, wasprobably the first major attempt to solve thedesign versus coding problem. Djkstra simplyobserved that the more GOTOs that were ina program, the less likely it was to runcorrectly. Djkstra called such programs"spaghetti bowl" programs, because if youdrew a line from each GOTO in the programto its destination, you ended up with a messthat looked like a bowl of spaghetti. Heshowed how any program could be writtenwith just a few simple flow structureswithout any GOTOs. His techniques pro-duced simple, readable code that was easyto test and maintain. So, the big push amongdesign aficionados was to eliminate theGOTOs in their programming. AlthoughTOP-DOWN programming was a big advance-ment over flowcharting, it was just that:programming. It was a technique for codinga program, not necessarily designing it.

Another technique, IBM's HIPO (andlater HIPO-DB) entered the design fieldalmost by chance, being primarily a docu-mentation tool that was also being usedfor program design. The major drawback toHIPO techniques, besides the fact that theydid not work well for designing a program,was their tendency to produce 50 pages ofdocumentation for a 3 page program.

Warnier-Orr Diagrams — A New Approach

Within the last four years a new tech-nique for program design has evolved fromthe work of Jean-Dominque Warnier (pro-nounced warn'-yay) in France, and KennethT Orr of Langston, Kitch and Associates inTopeka KS. The technique has foundationsin set theory and Boolean algebra, and holdsmuch promise for program design appli-cations. Warnier-Orr diagrams, as we havecalled them here in the United States, allowprogrammers to design faster than everbefore, to code programs with little or noeffort, and produce programs that usuallyrun correctly the first time. The approachis not limited to small programs. Nothingwill make a believer out of someone quickerthan a 20 page COBOL program which runscorrectly the first time. The Warnier-Orrtechnique stresses design over coding andcontends that once a problem is designed, it

•l

BEGINTURN ^ ROLLTHEDIE

PLAYER ALREADY HAS A BODY

ROLL = "1"(0,1)

0

ROLL = "2"(0,11

O

ROLL= "3"(0,1)

O

ROLL= "4"(0,1)

©

ROLL= "5"(0,1)

Q

ROLL' "6"(0,11

(0,1)

0

PLAYER ALREADY HAS A BODY(0,1)

HAS NECK(0,1)

/'""has BODY(0,1)

©

<

Q

V

HAS BODY(0,11

HAS HEAD(0,11

HAS NECK(0,1)

Q

©

(0,1)

HAS HEAD(0,1)

HAS HEAD

2 ANTENNA(0,1)

0

©

HAS HEAD(0,1)

HAS BODY(0,1)

2 ANTENNA(0,1)

HAS TAIL(0,1)

0

©

HAS BODY

HAS BODY10,1)

HAS 6 LEGS(0,1)

©

Q

HAS 6 LEGS

[0,11

HAS BODY f

(0,1) < SKIP

{

< GIV

{{'

E PLAYER A BODY

GIVE PLAYER A NECK

{{

{{

{

GIVE PLAYER A HEAD

GIVE PLAYER AN ANTENNA

GIVE PLAYER A TAIL

{

J GIV

E PLAYER 1 LEG

Figure 2: Diagram of the logic for the PLA YER and COMPUTER TURNSroutines of the BUG program.

does not matter what programming languageyou code it in! At Langston, Kitch and Asso-ciates, people have used the techniqueto program in COBOL, PL/I, ALGOL,FORTRAN, BASIC, RPGII and assemblerlanguages. It works equally well for all ofthem.

Warnier-Orr Diagram

The simplest way to learn about Warnier-Orr diagrams is to see examples of them.Warnier-Orr diagrams are very easy to learn

147

If the player rolls a 4, we first find the instructions to follow for a roll of 4 and check tosee if the player has a BUG head. If he does, we then check to see whether or not theplayer already has two antennae. .. .

and use; however, be forewarned that this isa technique that is sometimes deceptivelysimple, but not as trivial as it often seems.

Let's consider the relatively simple gameof BUG. In this game the computer rolls adie, once for itself and once for its oppo-nent. Each number of the die corresponds to

HAS EITHER PLAYER COMPLETED A BUG

r

COMPUTER WINS(0,1)

END TURN <

YES (0,11

O

NO (0,1)

O

OPPONENT WINS(0,11

J DISPLAY"S "I WIN"

{DISPLAY"YOU WIN"

vj

DECLARE END OF GAME

<1

GOON TO NEXT TURN

Figure 3: Warnier-Orr diagram for the ending of a turn or a game.

Listing 1: A structured BASIC program that was written using the Warnier-Orr diagrams of figures I thru 3. This code executed correctly the first timeeven though it was the author's first attempt at writing a BASIC program.

10 REM BUG PROGRAM

20 REM BEGIN PROGRAM

30 DIM HEADI2), BODY(2), LEGS<2), TAIL(2), ANTE(2), NECK(2), CNT(2)

40 GOSUB120

50 REM GAMES (1,G)

60 LET EPGM=0

70 GOSUB 200

80 IF EPGM=0THEN GOTO 70

90 REM END PROGRAM

100 STOP

110 REM BEGIN PROGRAM SUBROUTINE

120 PRINT'ENTER YOUR FIRST NAME'

130 INPUT :NAME$

140 PRINT 'DO YOU WANT AN EXPLANATION OF THE RULES; ENTER YES

OR NO.'

150 INPUT ANSS

155 LET TEST = SCOMP ('YES' ,ANS$)

160 IF TEST = 0 THEN GOSUB 1200 ELSE ;

170 RETURN

180 REM GAMES SUBROUTINE

190 REM BEGIN GAME

200 GOSUB 290

210 REM TURNS (1,T)

220 LETEGAM=0

230 GOSUB 390

240 IF EGAM = 0THEN 230

250 REM END GAME

260 GOSUB 1150

270 RETURN

280 REM BEGIN GAME SUBROUTINE

290 LET BODY(1), BODY(2) =0

295 LETCNT(1),CNT(2) =0

300 LET NECK(1), NECK(2) =0

310 LET HEAD(1), HEAD(2) = 0

320 LET ANTE(1), ANTE(2) =0

330 LETTAIL(1),TAIL(2) =0

a part of the BUG's anatomy: 1 = BODY,2 = NECK, 3 = HEAD, 4 = ANTENNAE,5 = TAIL, and 6 = LEGS. The object of thegame is to finish your bug before the com-puter finishes its bug. Other rules: you musthave a body before you can have legs, a neckor a tail; you must have a neck before youcan have a head, and you must have a headbefore you can have antennae. One body,one neck, one head, one tail, six legs andtwo antennae are needed to complete a bug.Figure 1 is a Warnier-Orr diagram showingthe basic structure of the BUG program.The Warnier-Orr diagram is read left toright, top to bottom, just like conventionalEnglish text. The brackets enclose logicallyrelated operations, the largest of which is theprogram itself. The BUG program is com-posed of three logical sections:

• The BEGIN PROGRAM section,where the player's name is requestedand there is an explanation of thegame rules. Note that the + symbolbetween the modules YES and NOdenotes the exclusive OR function,meaning that one or the other but notboth of the modules will be per-formed. Observe also that this is re-flected in the number of times thateach module may be performed: 0 ifthe condition is false and 1 if thecondition is true.

• The process section, GAMES, wherethe playing of the game actually takesplace. The (1,g) denotes that the sec-tion is to be performed at least once,and possibly many (g) times.

• The END PROGRAM section, whichin this case is empty, but whichusually contains things such as theclosing of files, the goodbye message,etc.

The rest of the brackets decompose in asimilar fashion. The GAMES procedurebreaks down into the beginning of the game,(BEGIN GAME), the turns that each playertakes (TURNS), and the end of the game(ENDGAME).

Notice that logically there are things thatonly happen at the beginning of the programand things that only happen during the play-ing of the game itself. The Warnier-Orr di-agrams allow you to see very easily justwhere and when a particular event must take

148

Whether managing accounts at the local general store or aiding in thedevelopment of the latest Space War, the MiniTerm Dual MiniFloppy*System 80/2 can do the job best. Z-80 powered, and S-100 busstructured, the System 80/2 mainframe with regulated supplies for twomini floppies* is also available without cards and drives.

Dealer Inquiries Invited.

MiniTerm Associates, inc.

Box 268, Bedford, Mass. 01730 (617) 648-1200

"Mini Floppy is a registered trademark of Shugart Assocates.

Circle 408 on inquiry card.

Listing 1, continued:

340

350360370380390400410420430440450460470480490500510520530540550560

570

580

590600

610620

630640

650660670700710720730740750760770780790800810820830840850860870880890

900

910

920

930

940

950

960

970

980

990

1000

1010

1020

10301040105010601070108010901100

LET LEGSO), LEGS(2) =0

RETURN

REM TURNS SUBROUTINE

REM PLAYERS TURN

REM LET PLAYER START TURN

PRINT 'HIT RETURN TO ROLL DIE'

INPUT A

LET PLAY = 1

GOSUB 520

REM COMPUTERS TURN

LET PLAY = 2

GOSUB 520

REM END TURN

GOSUB 1060

RETURN

REM TURN SUBROUTINE

REM PLAY=1 ;PLAYERS TURN-PLAY=2;COMPUTERS TURN

REM ROLL DIE

LET ROLL = FIX@ (((RND (0)) * 6.0)) + 1

PRINT : "ROLL IS A ", ROLL

IF ROLL = 1 THEN IF BODY (PLAY) #1 THEN GOSUB 690 ELSE ; ELSE

IF ROLL=1 THEN 650

IF ROLL = 2 THEN IF BODY (PLAY) = 1 THEN IF NECK (PLAY) #1

THEN GOSUB 760

IF ROLL=2 THEN 650

IF ROLL = 3 THEN IF BODY (PLAY) = 1 THEN IF NECK (PLAY) = 1

THEN IF HEAD (PLAY) #1 THEN GOSUB 820

IF ROLL=3THEN 650

IF ROLL =4 THEN IF HEAD (PLAY) = 1 THEN IF ANTE (PLAY) #2

THEN GOSUB 880

IF R0LL=4 THEN 650

IF ROLL = 5 THEN IF BODY

THEN GOSUB 940

IF ROLL=5 THEN 650

IF ROLL = 6 THEN IF BODY

#6 THEN GOSUB 1000

LET A = 3

RETURN

REM BODY SUBROUTINE

IF PLAY = 1 THEN PRINT

IF PLAY = 2 THEN PRINT

LETCNT (PLAY) = 1

LET BODY (PLAY) = 1

RETURN

REM NECK SUBROUTINE

IF PLAY = 1 THEN PRINT

IF PLAY = 2THEN PRINT

(PLAY) = 1 THEN IF TAIL (PLAY) # 1

(PLAY) = 1 THEN IF LEGS(PLAY)

NAME$, " 'S BUG HAS A BODY""COMPUTER'S BUG HAS A BODY"

NAMES, " 'S BUG HAS A NECK""COMPUTER'S BUG HAS A NECK"

LET CNT (PLAY) = CNT (PLAY) + 1

LET NECK (PLAY) = 1

RETURN

REM HEAD SUBROUTINE

IF PLAY = 1 THEN PRINT : NAMES, " 'S BUG HAS A BODY"

IF PLAY = 2 THEN PRINT : "COMPUTER'S BUG HAS A BODY"

LET CNT (PLAY) = CNT (PLAY) + 1

LET HEAD (PLAY) = 1

RETURN

REM ANTENNAE SUBROUTINE

LET ANTE(PLAY) = ANTE(PLAY) + 1

IF PLAY = 1 THEN PRINT : NAME$, " 'S BUG HAS ",

ANTE (1), "ANTENNAE."

IF PLAY = 2 THEN PRINT : "COMPUTER'S BUG HAS '" ANTE (2)

" ANTENNAE."

LET CNT (PLAY) = CNT (PLAY) + 1

RETURN

REM TAIL SUBROUTINE

IF PLAY = 1 THEN PRINT : NAMES, " 'S BUG HAS A TAIL"

IF PLAY = 2 THEN PRINT : "COMPUTER'S BUG HAS A TAIL"

LET CNT (PLAY) = CNT (PLAY) + 1

LET TAIL (PLAY) = 1

RETURN

REM LEGS SUBROUTINE

LET LEGS(PLAY) = LEGS(PLAY) + 1

IF PLAY = 1 THEN PRINT : NAMES, " 'S BUG HAS", LEGS (1), "

IF PLAY = 2 THEN PRINT : "COMPUTER'S BUG HAS ", LEGS (2)

"LEGS."

LET CNT (PLAY) = CNT (PLAY) + 1

RETURN

REM END TURN SUBROUTINE

IF CNT (1) = 12THEN 1090

IF CNT (2) = 12THEN 1110

GOTO 1130

PRINT : NAME$, " 'S BUG IS FINISHED' YOU WIN"

GOTO 1120

LEGS.'

place. After examining figure 1 carefully tomake sure that you understand how thediagrams work, move on to the explanationof the PLAYER and COMPUTER TURNSsection shown in figure 2.

In figure 2, we have represented the logicfor each of the players' turns during thegame. At the beginning of each turn, the dieis rolled to determine the part of the BUG'sbody that the player may receive. Whateverthe roll, we then have a logical path tofollow. Again, please note that the presenceof the © between each of the possiblerolls denotes mutual exclusion, ie: only oneof the paths may be selected. This partic-ular structure is known as a case statement.

If the player rolls a 4, we first find theinstructions to follow for a roll of 4 andcheck to see if the player has a BUG head.If he does, we then check to see whether ornot the player already has two antennae.If he does, then we do nothing. If he doesnot have two antennae yet, we give himone antenna. If he does not have a BUGhead, then again we do nothing. In a similarfashion, all of the possible rolls and theirassociated procedures are explained. Nowlet's move on to the Warnier-Orr diagram forthe end of the turn, which is shown in figure3.

If either player has won the game at theend of a turn, the computer declares thewinner and ends the game. If neither playerhas won, the computer does nothing andcycles through for another turn.

Structured Programming

Having fully understood the problem,coding the BUG program is a simple andstraightforward process. For this particularexample I coded the program shown in list-ing 1 in a version of BASIC.

As you can see, each bracket of theoriginal Warnier-Orr diagram roughly corre-sponds to a subroutine in the finished code:the process GAMES, for instance, becomesthe subroutine at line number 180 which iscalled repeatedly by the branch at line 80until EPGM equals 1, indicating that nomore games are to be played; the processBEGIN PROGRAM is handled by the sub-routine at line 110, and so forth.The resultant code is:

• easy to read and understand

• easy to change and maintain

• already documented

• logically correct.

It is also a program that will run correctlythe first time, barring unforeseen syntaxerrors for those of us who can't type orspell. All of this is possible because the

150

program was thoroughly designed beforeit was even partially coded.

Conclusion

Warnier-Orr diagrams are a giant leap inthe right direction for structured program-ming. They represent an attitude which, forthe first time since people have been playingwith computers, can lead to consistentlyreliable software that is very easy to main-tain. Currently, most data processing de-partments spend over 80% of their timeand effort repairing old code that hassuddenly gone bad. Warnier-Orr diagramsalso provide the means to produce softwareof a quality that has never before beenpossible.

If you think that you are interested inusing Warnier-Orr diagrams to help yousolve some of your software headaches, byall means try them. But as I mentionedabove, this technique looks deceptivelysimple, and you may not have much success.Understanding a diagram such as the onepresented in this text is one thing; creatingone from scratch is another.

If you do get bogged down, please feelfree to write us for more information. If youtry them, like them, and think you've donesomething exciting with them, again feel freeto write us and tell us what you've done."

Listing J, continued:

1110 PRINT : "COMPUTER'S BUG IS FINISHED, I WIN"

1120 LET EGAM = 1

1130 RETURN

1140 REM END GAME SUBROUTINE

1150 PRINT : "DOES ANYONE ELSE WANT TO PLAY"

1160 INPUT ANS$

1165 LET TEST = SCOMP (ANSS, 'YES')

1170 IF TEST #0THEN LET EPGM = 1

1180 RETURN

1190 REM EXPLANATION OF RULES SUBROUTINE

1200 PRINT "THE GAME OF BUG IS PLAYED AS FOLLOWS:"

1210 PRINT "A DIE IS ROLLED BY THE COMPUTER, AND EACH NUMBER"

1220 PRINT " ON THE DIE CORRESPONDS TO A PART OF THE BUG'S "

1230 PRINT " BODY: 1=BODY, 2=NECK, 3=HEAD, 4=ANTENNAE, 5=TAIL"

1240 PRINT " 6=LEGS. YOU NEED 1 BODY, 1 NECK, 1 HEAD, 2 ANTENNAE'

1250 PRINT " 1 TAIL, AND 6 LEGS TO COMPLETE A BUG."

1260 PRINT " THE OBJECT OF THE GAME IS TO BUILD YOUR BUG

BEFORE"

1270 PRINT " COMPUTER BUILDS HIS."

1280 PRINT " -HIT RETURN WHEN YOU ARE READY TO PLAY "

1290 INPUT A

1210 RETURN

BIBLIOGRAPHY

1. Orr, Kenneth T, Structured Systems Develop-ment, Yourdon Press, New York, 1977.

2. Warnier, J D, Logical Construction of Programs,Van Nostrand Reinhold Company, New York,1976.

COMPUTER ENGINEERING

THE MIDNIGHT SPECIAL . . .

... a full color limited edition poster for your CaseyJones fantasies.

The poster is 16Vi by 21 Mi inches (41.9 by 54.6 cm) witha white border. The colors are the same as the originalby Robert Tinney, which graces our July cover, minusthe BYTE logo. The price is $3.00, plus 50$ postage. Itis shipped unfolded, in a mailing tube.

ORDER NOW. SUPPLIES ARELIMITED.

BITS Inc

70 Main Street

Peterborough NH 03458

IH

IIM

□ Bill BankAmericard

□ Bill Master ChargeNo

Posters $3.00 eachplus $ .50 mailing

□ Check EnclosedExp. Date

Name.

Address.

In unusual cases, processing may exceed 30 days.

City.

.State Zip.

I ... J

151

Circle 383 on inquiry card.

Continued from page 20

dise purchased. We temporarily FIX0 to print the quantity as a nondeci-mal integer and make reading thetape easier. We store the quantityin data memory 01, print, restoretheSR-52to FIX 2 and HLT.

5. Key B is the list price of the product.It is stored in data memory 02 andprinted. This time we did not use aHLT instruction, and we will seewhy in the next step.

6. Without a HLT in step 5, the SR-52program counter automatically movesdown to the next step. It encountersthe command to multiply AxB, ormore exactly that data we stored inmemory 01 times the data we storedin memory 02. We print this resultand then sum the result into datamemory 19. Since we cleared theSR-52 memories in our initial house-keeping instruction, we know thatthe initial content of data memory19 is zero. After all this we HLT.

At this point in our flowchart we areat a manual or human decision point asshown by the diamond. If we have moremerchandise to price, we can go back andput in the next quantity A and price B. Wewould do this until we were done. Thenwe would go to the A' button. In ourflowchart this is labeled as step 9. PuttingA' near the end of the program may appearto be out of sequence, but the SR-52doesn't care. It will automatically go lookingfor A' program instructions whenever thatbutton is pushed. My programming stylesays that I like to finish defining the basicuser defined key functions before gettinginvolved in the detailed program steps. Sincewe haven't defined key E yet, that will bethe next step. Incidentally, claiming a pro-gramming style as a reason for doing some-thing is an easy way of avoiding a lot of"no win" programming arguments. If it's amatter of taste, who can complain?

Since the flowchart represents the actualsequence the user follows, we see that theA' button is pushed to complete and printthe totaling and discount of the list pricemerchandise. The details of this block willbe discussed below. At this point we areonly concerned with what we do next. Thediamond again indicates a manual decision.Do we have any net price items on thisinvoice? If so, we will go to A again. Thistime, button A will be associated with

quantities of the net price items. If thereare no net price items we will push buttonB'. This will complete the invoice compu-tation. At this point in the flowchart wedefine button E.

7. Key E is the net price of the merchan-dise. We will store this price in datamemory 05 and print the price. Againas in step 5, since we don't have aHLT instruction, the SR-52 willautomatically proceed to step 8.

8. This step will multiply AxE, or thequantity in data memory 01 times thenet price in data memory 05. The re-sult is printed and summed into datamemory 19. Incidentally, the previousvalue of data memory 19 is storedwith the net price computationthat resulted when button A' waspushed. The diamond after this blockis another manual decision. If thereare more net price items go back toA; otherwise go on to B'.

9. This block, at first glance, appearsto be complex. But it really isn't.It provides the following instructions:

RCL19 Recall the list priceamount that was summedinto data memory 19 andprint (PRT) the amount.

1—C Multiply the list price

total by 1-C, the dis-count that was inputted,and stored originally withkey C. Print the dollaramount of the discount.

—RCL 19 Subtract the list priceamount from the dis-count; "+/-"; change thesign since the result is anegative number and printthe result. This is the netprice of the merchandise.

Pap Advance the paper one

line for format clarity.

STO 19 Store total net price indata memory 19 and HLT.

Not so bad, was it?10. We now define the program instruc-tions for the B' button:

Pap One line of paper advance.

RCL 19 Recall and print the totalorder net price that hasbeen summed in previous

152

steps into data memory19.

+RCL D Recall, add and print theshipping costs.

PRT= Total the entire order and

print.

Pap, Pap, Advance the paper three

Pap lines.

11. RST Resets the program counter

back to 000. This pro-gram address is the firstone we used in our house-keeping steps. The pro-gram will automaticallyexecute those housekeep-ing instructions and thenHLT. The SR-52 is nowready for a new invoiceroutine.

The revised flowchart is now completeand at the same time we have defined vir-tually every program instruction step. Thetotal development of this program has beena very straightforward translation of whatwe want to accomplish into precise termsunderstandable to our computer.

The last programming step is to set theSR-52 to receive program instructions. Akey marked LRN (learn) is provided forthis. Several other programming keys arealso provided which dramatically simplifyputting a new program into the machine.At this point we will only need the LRNbutton. With the SR-52 in the LRN mode,we begin with the first instruction whichis CMs (clear memories). We push thatbutton on the keyboard. The programcounter moves to 001 and we push the CLRbutton. The SR-52 stores the clear instruc-tion and the program counter moves to 002.We continue pushing the buttons that wedefined in our program until we reach thelast instruction which is RST. Our programis now stored in the machine. We take theSR-52 out of the learn mode by pressingthe LRN button again. The program counteris manually reset to 000. Listing 1 shows theentire program list.

We are now ready for the critical test.The RUN button is pressed and, if the dis-play is not flashing, there is a good chancethat our program might work. We test it byputting in a sample calculation. If it doeswork, our tape printout would look likelisting 2. If there are problems, the printerwill be a great help in finding the bug.

The first thing that can be done is to askfor a list of the program steps. This outputlist can be compared to the work sheet weused to enter the program. Analyzing theprogram list shown in listing 1 is made easierif we mark each program address line with

Listing J: Program listing for the SR-52 invoice program. The program isbroken into sections corresponding to the flowchart of figure 2.

5£E

i

055 01

£EI-

LINE

056 95

°2

trg

>-Q

TOTAL®

"Prl

057 98

*u

SUM

058 44

CMS

000

47

1

059 01

CLR

001

25

9

060 09

HSKPG

•FIX

002

57

HLT

061 81

0

2

003

02

•LBL

062 46

_ HLT

004

81

•A'

063 16

" 'LBL

005

46

"pap

064 99

C

006

13

1

065 53

STO

007

42

1

066 53

DISCOUNT

0

008

00

RCL

067 43

©

3

009

03

1

068 01

•UM

010

98

9

069 09

-pnp

011

99

•prl

070 98

„ HLT

012

81

A'

X

071 65

~ 'LBL

013

46

LIST

t

072 53

O

014

14

PRICE

1

073 01

SHIPPING

STO

015

42

TOTAL

-

074 75

®

a

0 1 6

00

DISC AMT,

RCL

075 43

■>

017

04

0

076 00

_ HLT

018

81

NET

3

077 03

- *LBL

019

46

©

1

078 54

A

020

11

)

079 54

•FIX

021

57

■p.l

080 98

0

022

00

-

081 75

OUANTITY

STO

023

42

RCL

082 43

©

0

024

00

1

083 01

1

025

01

9

084 09

•prl

026

98

I

085 54

■FIX

027

57

*l-

086 94

2

028

02

•Prl

087 98

- HLT

029

81

•PW

088 99

•LBL

030

46

STO

089 42

B

031

12

1

090 01

LISTPRICE

STO

032

42

9

091 09

0

033

00

HLT

092 81

©

2

034

02

~ *LBL

093 46

-'Pfl

035

98

094 17

X

036

65

•pap

095 99

HCL

037

43

RCL

096 43

0

038

00

,

097 01

LINE

1

039

01

9

098 09

TOTAL

040

95

B'

•prt

099 98

©

•prt

041

98

TOTAL NET.

+

100 85

SUM

042

44

SHIPPING.

RCL

101 43

1

043

01

INVOICE

0

102 00

9

044

09

AMT

4

103 04

HLT

045

81

©

•prl

104 98

f'LBL

046

46

105 95

E

047

15

•H'l

106 98

STO

048

42

•pap

107 99

NET

0

049

00

•pap

108 99

PRICE

5

050051

0598

©

_ "pap

109 99

©

•RESET

110 36

X

052

65

111 00

HCL

053

43

112 00

0

054

00

113 00

the key function name, fin listing 1 this isdone with typeset notations, but in SR-52practice this would be done with handwrit-ten notations ...CH/ In addition to doingthis, groups of instructions should bebracketed so that they can be related to theflowchart in figure 2. The first three digitsin the program list are the program counteraddress. The next two digits are the op codeor the key codes for the SR-52 keyboard.If the program doesn't work, you may haveomitted an instruction. The SR-52 providesan easy way to get to the point of omissionso that we can insert the proper instruc-tion. In a similar way, an incorrect instruc-tion can be omitted.

The most painful debugging problem iswhere your program logic just isn't right.The printer will allow you to trace and printthe steps the program actually is followingas it attempts to solve the problem. (Inour case, calculate the invoice.) If you arenot too far off. the SR-52 has the facilities

QUANTITYLIST PRICELINE TOTAL

TOTAL LIST

.: JJ."

b'

DISC AMT

117

I.'ii-

NET TOTAL

175

QUANTITY

IS.

NET PRICE

i.i

42

LINE TOTAL

*'

56

TOTAL NET

183

14

SHIPPING

2

82

INV. AMT

185

97

PRTPRTPRT

quantity

18.

PRT

listphice

1. 9 7

PRT

LINE TOTAL :.

J. t'6

PRT

QUANTITY

34.

PRT

LIST PRICE

5, f,9.

PRT

LINE TOTAL 1 ':

1.42

PRT

PRTPRTPRT

PRTPRTPRT

PRTPRTPRT

Listing 2: Sample printoutof the invoice program.

153

that allow you to easily implement yourprogram fix.

Listing 3 shows the printer output inthe trace mode. Here the left digits are theprinted equivalent of the SR-52 display.The right side data is the function the SR-52is performing on the display data.

The data shown in listing 3 is the samedata used for the printout shown in listing 2.Marking and grouping the trace data in theway shown will simplify comparing the

PROGRAM

191.42

(

DATA

INSTRUCTION

19 1.42

,;-

191. 4 2

RCL

USEKEEPINGFOR

CMSCLR

TOTAL r

292. 64

019

THIS RUN

0.

FIX

LIST ,

292. 64

PRT

©

0. 00

002

PRICE

292. 64292. 64

HLT

1.1.

_

"C"

' 0. 6

STD

RCL

DISCOUNT ,

003

003

©

0. 60

0. 60

0. 60

PRT

DISC (

n £

■-,

AMT

0. 4

"i

HLT

117.06

PRT

"0"

2. 83

STD

117. 056

-

SHIPPING <

©

2 9 ■'-]

004

^117. 056

RCL0 1 9

HLT

A'

292. 64

ITEM #1:

12.

FIX

© '

292. 64' 175. 58

PRT

"A" 4

12.

NET

QUANTITY

®

12.

STD001

PRICE ,

175.5S4

STD019

11:

PRT

.

. 175.58

HLT

12.

FIX

002

I" 18.

FIX

12. no

000

HLT

IS.

"B"

' f 5. 62

STD

IS.

STD

LIST

<

002

001

PRICE

IS.

©

.5. 635. 63

PRT

RCL001

QUANTITY

©

IS. 00

PRTFIX002

12. 00

HLT

AkB

© '

12.67. 56

=

"E"NETPRICE

' [ 0. 42<

STD005

67. 56

PRT

©

U. 42

67. 56

SUM

L 0. 42

PRT

019

0. 42

y--

. 67. 56

E

0. 42

RCL

ITEM 32-

?—wr

HLTFIX

©

<

18. 00

001

"A"

000

13.

—

QUANTITY <

18.

7. 56

O

STr~

7. 56

PRT

. 7. 56

SUM

18.

.iCTFIX000

7. 56

019HLT

j4.

34.

STD

7. 56

RCL

00 1

NET

0 19

34.

PRICE

' 183. 14

34.

PRT

TOTAL

133.14

PRT

34.

FIX

183. 144

+

002

6

.183. 144

RCL

ITEM«3.

34. 00

© <

004

HLT

"B"

f 5.63

STD

SHIPPING *

PRT

LIST

J

002

=

PRICE

1 5 f'--

INVOICE

:itl

©

[f.U

PRT

AMT. [

PRT

5. 63

5. 63

RCL001

34. 00

A*B

© '

34.

=

©

<

RSET

191. 42

-

CMS

191. 42

PRT

HOUSEKEEPI

NG

CLR

191.42

SUM

FOR

4 Q,

FIX

191. 42

019

NEXT RUN

©

0. 00

002

HLT

.

HLT

trace output with the design flowchartof figure 2. Each step in the trace shouldmatch what you designed in the flowchart.If it doesn't, then the machine is beingasked to do something incorrectly. If yourflowchart logic is faulty, review the SR-52instruction book before making corrections.If your flowchart design has an improperpremise, then the calculator will indeedproceed with perfect logic to an improperresult.

Somewhere between the two "dump"methods, list and trace, lies the identifica-tion to the program problem. Listing showsprogram loading mistakes and tracing willreveal program logic errors.

I could go out on a limb with the truthand say that my invoice program was up andrunning on the first pass. But seriously, withthe debugging facilities already discussed,it wasn't too difficult to find and correctthe problem areas.

After the program has been debugged,you should make a new program list. Anyflowchart changes that were necessaryshould also be documented. If you don'tdo this documentation, you will find thatyour memory will fail you miserably if youwant to modify the program sometime inthe future. The up-to-date list will also letyou reproduce the program in case themagnetic program card ever becomesunusable.

Table 7: Functions of the user defined keysin the invoice program.

Key Name Assignment when Button is Pushed

AB

C

DE

Listing 3: Another sample listing; this one is in trace mode. Trace modeoutputs each program instruction and the data associated with it so you cancheck each individual program step. This is the SR-52 s equivalent of asymbolic high level language In a larger machine.

Data entered on key is the quantityof the merchandise purchased.

Data entered is the suggested listprice of the merchandise. (Usedwith A.)

Data entered is the customers'discount.

Data entered is the shipping chargefor the order.

Data entered is the net price (nodiscount) of the second category ofmerchandise. (Button A is alsoused with E.)

This is the second function use of

A. When pressed it tells the SR-52to total the list price items, com-pute and subtract the discount andleave the net amount.

This is the second function use of

B. When pressed it tells the SR-52to add the total of the net priceitems, if any, to the results obtain-ed when A' was pushed. It thenadds the shipping cost and resultsin the total for the order.

154

You .should also write the user instruc-tions at this time. Table 2 shows the userinstructions for the invoice program. It isalso helpful to the user if you attach a copyof a sample printout. The blank spaces onthe magnetic program card should also befilled.

This invoice program, while being rela-tively simple, is certainly not a trivial pro-gram. It does involve many of the basicprogramming philosophies that would beapplicable to writing a program for anysystem. With the prices of hand held calcula-tors continuing to drop as they have in thepast, the SR-52 and companion printer arenot a bad way to get into the intricaciesof computers. At the time of this writing,the combination can be bought for about$400. The fact that the SR-52 can be con-nected to the real life world (the printer),does hold a possible promise that a com-puter interface to the SR-52 might comealong someday.

For those who have an SR-52 and needan invoice program, a listing of the programdiscussed in this article is provided in listing1. The program uses 110 program steps,less than half of the total SR-52 capacity.This will allow space to modify the programto meet your specific needs."

Step

Procedure

1 Load "A" side of card

1a

2 Enter discount (see note below)

Enter shipping

Item quantity

Total list price of itemPrice printedRepeat 4 and 5 until allList price items entered

Total of list itemsPrints list totalDiscount, net on listIf there are net priceitems do 7 and 8 other-wise go to step 9

Enter item quantity

Enter net item priceTotal net price printedRepeat 7 and 8 until done

Net total printed.Then shipping andInvoice total printed

Press

Display

CLR

2 nd

READ

Goes blank then 0

runC

Discount amtprinted

DA

Shipping amtQty printed

B

Individual andtotal price printed

2nd

A

E

2 nd B'

Note: For 40% customers, enter .6;For 50% customers, enter .5;For 50+10+10, enter .405.

Qty printed

Individual andtotal price printed

Table 2: User instructions for the invoice program. It is always necessary(for peace of mind) to write out these instructions, otherwise you may forgethow to use a program.

5

uiiii

^SS523SSS5^S25SS5S5S5S5SSSS^^52^

LONG ISLAND

. COME SEE WHATBYIE A "REAL"

ShOP COMPUTER STORELOOKS LIKE

MICROCOMPUTERS PERIPHERALSACCESSORIES

IMSAI8080BYTE-8SWTP MP68CROMEMCOPROCESSOR TECH

MEMORY EXPANSIONCOLOR TV GRAPHICSLEAR SIEGLER ADM 3PAPER TAPE READER

INTERFACES (KITS or ASSEMBLED UNITS)

PROGRAMS AND SOFTWARE

VARIOUS BASICS -FOCAL - DOS — GAMES

TINY, 4K. 8K and 12K.

- BUSINESS APPLICATIONS.

ALSO AVAILABLE

APPLE 1MODEMS

CASSETTESTERMINALS

FLOPPIESDEC. WRITERS

BUSINESS APPLICATION INQUIRES INVITEDSYSTEM DEMONSTRATIONS AND LITERATURE I MAGAZINES

Byte Shop East, Inc.27-21 Hempstead TurnpikeLevittown, Long Island(516) 731-8116Two blocks east of Wantagh Pkwy.

HOURS: TUES Ihru FRIDAY 12-9SATURDAY 10-5

WggMMti!iiEM2&

MMZ

s

Circle 409 on inquiry card.

155

Digital Micro Svstems

PRESENTS:

a 16K STATIC RAM '»*

FORTHES-100BUS

Uses the new Intel 2114 4K Sialic RAM (which will also be built by Motorola, Signelics.Fairchild, National, T.I., Synertek, NEC, Intersil, and Fujitsu, etc.). Features completestatic operation (No refresh or clocked chip select), software protect, paging, individuallyaddressable 4K blocks, completely buffered address and data lines, fully socketed.Available with 8K or 16K of memory.Prices: 8K kit-$295; 16K kit - S525; 8K expansion kit ■ S250 16K assembled and tested ■ S595

S-100 BUS TERMINATING CARD s25k,t

Absorbs noise, overshoot, ringing, reflection. Plaled thru holes, gold plated fingers.

EXTENDER CARD

FOR EASY TROUBLESHOOTING

s16h

With jumpers in power supply lines lor current measuremenl. Low profile so card canremain in the machine with the cover on. With edge connector, gold fingers.

PLASTIC KEYBOARD ENCLOSURE

Blank molded ABS plastic enclosure for use with keyboard, controls, modem, etc. Size ■133/4 x 11V2 x2'/2. PRICES: Blank enclosure-$20. With cutout for keyboard available fromRadio Shack, etc.-$27.

Prices shown include U.S. shipping. Cashiers check or M.O. prefered. Personal check maydelay shipping 3 weeks. Add S3 for C.O.D: Purchase Orders add 4% ■ net 30. Utahresidents add 4.75%.

Digital Micro Systems box 1212. orem,utah 34057

Toll tree 24 hour Order Desk (BOO) 453-1444; In Uloh coll (801) 234-2103

Circle 410 on inquiry card.

Computer Information Arrangement

INPUT

MASTER

CASSETTE

FILE

TAPE

Figure I: This is a basic diagram showing the input arrangement for the in-formation retrieval system. The text is entered from a keyboard into a bufferarea, and sorted alphabetically. In the example the three text strings startwith S, D and K. When a certain buffer area is filled the information itcontains is dumped to an input cassette tape. The information on the tape issorted in alphabetical order. When any one tape is filled, or an updatedmaster file is desired, the input tape is added to the master file.

David Holladay225 Lakelawn PIMadison Wl 53703

An examination of the small system com-puter field might lead the observer to take alimited view of the potential uses of smallsystems. This is unfortunate, because a com-puter, even a small one, can do more thanplay games or make lights blink.

One general application of computers isthe information retrieval system. A classicgoal of information retrieval is the con-struction of a system that absorbs the con-tents of books and can answer questionsconcerning the information contained inthem. This goal has been unapproachable ineven the largest of computer systems. Thebest approach is to put the burden of intelli-gence on the user's shoulders and make useof the computer's bookeeping ability. Thisreduces the program to a large scale sortingsystem tailored to a microcomputer's capa-bilities.

Small systems have limitations in memorysize, data transfer rates and throughput. Tocope with these limitations, I propose a massinformation handling system called the Com-puter Information Arrangement, or CIA.The basic hardware required for this systemincludes a processor, 8 to 16 K bytes ofprogrammable memory, keyboard, TV inter-face and several cassette interfaces with adata rate of at least 300 bps. One cassettedrive has to be controllable by the computerin a manner beyond that of simple motorcontrol.

The main storage memory for the hugedata base is magnetic tape. Tape is slow andserial, meaning that only the informationphysically located near the tape head can bedealt with. However, it is cheap. For themoment, our data base will be a dictionary,ie: a list of definitions sorted alphabetically

156

Building a better computerwasn't easy. But we did it.

Introducing the MSI 6800 Computer System

When we set out to build the new MSI 6800 Com-puter System, we knew we had our work cut out forus. It had to be at least as good as the now famousMSI FD-8 Floppy Disk Memory System which is alsopictured below. So, the first thing we did was analyzeall the problems and drawbacks we had encounteredwith other 6800 systems, and then put our engineersto work on solutions. The objective: Build a bettercomputer.

We started with powersupply. We had big ideas, sowe used a hefty 18 amp pow-er supply. You can run fullmemory and several peripher-als without the worry of run-ning out of juice. We also putit in the front of the cabinetso it's out of the way.

The next step was theCPU Board. A separate baudrate generator with strap-pable clock outputs allowsany combination of baudrates up to 9600. A separatestrappable system clock isavailable and allows CPUspeeds of up to 2 MHz. Thenew MSI monitor is MIK-BUG software compatible, soyou will never have a prob-lem with programs. Addi-tional PROM sockets areavailable for your own spe-cial routines and to expandthe monitor. The CPU alsocontains a single step capa-bility for debugging software.

When we got to the Mother Board, we reallymade progress. It has 14 slots to give you plenty ofroom to expand your system to full memory capabil-ity, and is compatible with SS-50 bus architecture.Heavy duty bus lines are low impedance, low noise,and provide trouble-free operation.

With all this power and potential, the interfacehad to be something special. So instead of an inter-face address in the middle of memory, we put it at thetop . . . which gives you a full 56K of continuousmemory. Interfaces are strappable so they may beplaced at any address. An interface adapter board iscompatible with all existing SS-50 circuit boards andinterface cards. All MSI interface cards communicatewith the rear panel via a short ribbon cable which ter-minates with a DB-25 connector. All baud rate selec-tion and other strappable options are brought to theconnector so they may be automatically selected bywhatever plug is inserted into the appropriate inter-face connector. Straps may also be installed on thecircuit board.

To complete the system, we used an MSI 8KMemory Board which employs low power 2102 RAMmemory chips and is configured to allow batteryback-up power capability. A DIP switch unit allowsquick selection of a starting address of the board atany 8K increment of memory.

If you're one of those people who understandsthe technical stuff, by now you'll agree the MSI 6800is a better computer. If you're one who does not un-derstand it yet, you'll be moreinterested in what the systemcan do . . . play games, con-duct research and educa-tional projects, control labinstruments, business appli-cations, or just about any-thing else you might dreamup that a microcomputer cando. The point is . . . the MSI6800 will do it better.

The MSI 6800 ComputerSystem is available in eitherkit form or wired and tested.Either way, you get a cabinet,power supply, CPU board,Mother board, Interfaceboard, Memory board, docu-mentation, instructions, sche-matics, and a programmingmanual. Everything you need.

There is more to sayabout the MSI 6800 thanspace permits. We suggestyou send for more informa-tion which includes our freecatalog of microcomputerproducts.

Building a better computer was not easy. Becom-ing the number one seller will be.

See the MSI 6800 Computer System at PersonalComputing 77 - Atlantic City.

THiduMMtScientific

*)K4t*UC(HeHt4>

220 West Cedar • Olathe, Kansas 66061913/764-3273 • TWX 910 749 6403 (MSI OLAT)

DnDDnnnnnnnDnDDnDODDnnan

a

□

a

NAME.

Midwest Scientific Instruments220 W. Cedar, Olathe, Kansas 66061

□D□D□□Circle 411 on inquiry card.

ADDRESS

CITY

STATE

ZIP.

0011077

by keyword. If the dictionary is closelypacked on the tape, it will be difficult toadd to it without shifting half of the database. It would be more logical to spreadout the entries on the whole tape to avoidlater space problems. Unless the tape isgetting full, the proper position of an entryis solely a function of keyword.

If entries are to be added in an efficientmanner, close attention must be paid todiffering data rates. A human can type twoto five characters (bytes) per second, while acomputer can take things on or off tapemuch faster. The typical personal computercan internally manipulate at least 250,000bytes per second when programmed with anassembler. A video display can depict about1,000 characters at a time, and can refreshitself 30 or 60 times a second, depending onthe way the display handles the interlace.It will be the objective of the CIA system toput information onto the cassette tape insorted order as fast as the user can type inthe unsorted data. The user can thereforetype the definition of "best" and of"machine" into our imaginary dictionary,and the computer will place both in theirproper places on the tape.

A large part of main memory (at least 4 Kbytes) is used as a buffer. As new data istyped in, it is added to the buffer and sortedon keyword. This sorting can be done byrearranging the data in the buffer in se-quential order. An alternative is to keepitems in unsorted order and maintain twopointers for each item, one pointing to thelocation of the item which is next in sortedorder, the other pointing to the previousitem in sorted order. The second systemeliminates unnecessary searching in memory,but involves longer and trickier program-ming.

As the memory buffer accumulates data,it is important to keep track of how it isfilling up. The alphabet is divided intoeight sections for accounting purposes. Thefirst section may be for words starting withA or B, etc. Eight counters keep track ofhow many bytes are taken up in the bufferby different ranges of the alphabet. Whenone counter exceeds certain limits, thecassette is moved to the region of tapecorresponding to that range of the alphabet.Next, the data held in the buffer is trans-ferred onto the tape in the proper location.Obviously the data would then be erasedfrom the memory buffer to make room formore data. The end result is a cassette tapecontaining sorted information whichgenerated at the same rate that the user

is typing in the unsorted data (see figure 1).If the data is sorted as fast as it can be putin, what would be the advantage of greaterthroughput? The system works just as fastas it has to.

Notice how general the system is. It canbe used to make huge mailing lists, keeptrack of books in a library, and so on. Ithas two principle limitations in addition tospeed, size and the simple nature of the datathat it can handle.

What can you do when you fill up acassette? (It may take a while, since it ispossible to fit as many as 500,000 characterson a digital cassette tape.) You could main-tain a master set of 26 tapes, one for eachletter of the alphabet. Once your tape is full,it would be merged with the master file, anunwieldy process at best. This procedurewould mean putting master tape #1 in onecassette machine, your input cassette inanother, and starting the merging program.After a while, the computer could signal thatit had put all of the A entries onto mastertape #1. Then you would take out tape#1,replace it with tape #2, and so on, up totape #26. This process would happen rarely(or as often as you would require an up-to-date master file). But imagine how muchdata your system could hold. A friend ofmine pointed out that if you were mechani-cally inclined, you could automate cassettemanipulation. It would be a cross between ajukebox and large scale automated massmemory with media manipulationmechanisms. An automatic multimegabytememory system for a few thousand dollarswould be most impressive.

The question of data bases is a bit tricky.Data can be abstract, highly interrelated, anddifficult to categorize. Your data will beinterrelated in ways that the data basecannot show or represent. There are twoapproaches to follow. One way is to designvery abstract data structures that showrelationships inherently. The other is tomaintain the simple dictionary alphabeticsystem, and add several cross-referencepointers. An example would be "Kennedy,Jackie: see Onassis, Jackie." By pursuingall the pointers listed under a keyword, andchecking out all the pointers listed there, atree structure is developed. A multi-cassettedata system implies a significant amount oftape manipulation, unless you have built thejukebox system.

Although a pointer system is a bit crude,it can be handled automatically. Thefollowing example illustrates a typicalentry. The original data entry: "Beethoven,

158

Ludwig van, Symphony Number 3 (TheEroica)" would be filed under "Beethoven,Ludwig van". If the user wants to generatethe cross reference pointer "EroicaSymphony, see Beethoven, Ludwig van",a special character could be typed before"Beethoven, Ludwig van" which theprogram would recognize. The programcould then add "Eroica Symphony, seeBeethoven, Ludwig van" to the text buffer.This would insure that the pointer and thedata match, eliminating a problem withtypographical errors.

Later, if it is necessary to eliminate theentry, you would know that the cross-reference pointer is also in memory becauseof the existance of the special character.Other special functions can be implementedby special characters, such as labeling thedata source of facilitating tabular data. Thisis left as an exercise for the reader. Thepower of this information handling system islimited mainly by the size of programs thatcan be stored in memory, and by the speedof the tape recorder.

The Computer Information Arrangementneeds five separate programs to workproperly. Note that it is not necessary formore than one to be in memory at any time.Program 1, the input program, is the biggestand most difficult. It accepts charactersfrom the keyboard, edits them, adds thecross-reference, puts them in the buffer,recognizes when the tape machine is idleor part of the alphabet range is getting fullin the buffer, and spreads the data on theinput cassette by means of a linear hashingformula. It may be necessary for the taperecorder to be controlled by a separatemicroprocessor and 1 K bytes of program-mable memory shared by both processors,because of timing considerations. Thesecond one is the merge program, whichmerges the input tape with the master setof cassettes. The third program, called theclean up, goes through tapes, "unbundles"data, and straightens out any local area thatgets "out of sort." The fourth program is thedisplay program. The user can tell it todisplay the Richard Nixon file, whereuponit will display all the references and pointersthat are filed under the keyword Nixon,Richard. The last program does a crucial,but easily forgotten job: altering or deletingoutdated or incorrect data from the inputtape or from a master tape.

The CIA is a general computer informa-tion arrangement, an answer machine, or alist maker. Put in randomly ordered dataand it comes out neat and organized. Thearrangement has many applications: small

business, journalism, research, or help forfolks who have trouble organizing things.This is the type of program which will sellsmall systems to the world. ■

GLOSSARY

Alphabet range: part of the contiguous alphabetused to decide where to store alphabeticallysorted data.

Buffer: section of random access memory used totemporarily store data until enough is collected topass on.

Cross reference: a notation to look elsewhere inthe data base for more information.Data base: collection of information and thesystem used to organize it for use by a computerprogram.

Entry: A block of data that stays together duringthe sorting routine. The end of an entry is recog-nized by a special termination character.File: Set of entries with the same keyword.Input tape: cassette that accepts the sorted data.For larger data bases it must be merged with themaster tapes.

Keyword: Word in an entry used to sort the entireentry into the data base.

Master tapes: Set of cassettes that make up theentire data base. Each cassette covers a portion ofthe alphabet range.

A potent pair for

Mi^^^il^K

RELAY/OPTO-ISOLATORCONTROL DOARD($H 7)

This boord is o natural for controllingaudio systems, time lapse photographyexperiments, model trains, robot de-vices, or any application where youneed a number of intelligent switches. 6reed relays respond to an 8 bit wordfrom your computer; 8 opto-isolators ac-cept an 8 bit word from the outsideworld and send it back to your machinefor further control purposes. Includesdetailed instructions ond applicationsnotes.

500 WATT CONTROL MODULE ($10)

Interfaces your Relay Control Board with power loads such asphotofloods and motors. This module is about the same sizeas a plug-in wall transformer and plugs into any wall outlet:on the back is a female AC socket that accepts AC loads upto 500 Watts. Two isolated control wires trail back to yourcomputer, allowing easy remote operation and keeping AClines out of your machine.

All kits are S-100 Altair/IMSAI compatible. Available by mail (ship-ped postpaid in the USA from stock; Californians add sales tax) or atmany fine computer stores. Dealer inquires invited.

MULLEN COMPUTER RQARnS

BOX 6214, HAYWARD, CA 94545

"Products that make your computer useful'

CAVE

159

Circle 412 on inquiry card.

Beck Reviews

TEXTS AND MONOGRAPHS WCGMFUTffiSCeJCE

CHESS SKILLMMAM

anpmachine

EdSedby PeterWRsy

Chess Skill in Man and Machine edited byPeter W Frey, Springer-Verlag, New York,1977. Hardcover $14.80.

Chess Skill in Man and Machine is a seriesof eight essays dealing with four main topics,two major and two minor. These topicsinclude the history and rules of computerchess tournaments, human chess skill, de-scriptions of the techniques of computerchess, and finally, an overview of the past,present and future of computer chess. Thechapters of most interest to the computerchess enthusiast are those explaining humanchess skill and the various computer chesstechniques.

The first major topic is an analysis ofchess skill in humans. Neil Charness inchapter 2 poses the question, "Shoulda computer be more like a human?" Hedescribes the two schools of thought con-cerning this question. One school answersno, because computer hardware operatesdifferently from the human mind andshould therefore be operated in its mostefficient mode, not like the human mind.The other school says yes, a computershould be like a human if it is to play andbeat humans. The latter school believesthat human thinking should be simulatedin order to enable the computer to capi-talize on any human miscalculations.

Charness believes that to write a betterchess program, the programmer has tounderstand how humans solve the problemof choosing the best move. "Chess-specific"perception is the key. Searching through atree of moves which consists of everypossible move during an entire game ofchess is an extremely inefficient way to playchess. An analysis of the legal moves foreach side to a depth of six moves during asingle turn of a player would involve over sixbillion different combinations of moves.

Becoming a good chess player demandsthat one learn to recognize types of posi-tions. This chess-specific perception (orpattern recognition) can reveal weaknessesfor further examination, thereby cuttingdown on the number of moves to beexamined. This method of "pruning thesearch tree" is the human method; it shouldalso be the computer method.

The second major topic deals with differ-

ent theories of computer chess. Chapter3, written by editor Peter W Frey, intro-duces opening move theory (whether tostore standard openings or to simply playthem from scratch every time), machinerepresentation of the chessboard (usingeither bit patterns or the "mailbox"method), and move searching procedures.

There seem to be two general types ofsearch strategies in use today: the A type(looking at all legal moves and counter-moves at each position), and the B type(looking at only a small subset of thepotential legal moves). Frey prefers theB type strategy over the A type becauseof the number of positions to be examined.

The B type suggests that a minimum ofmoves from any position should be eval-uated using von Neumann and Morgenstern'sminimax procedure. The idea of backwardpruning using a heuristic method is alsocovered, involving evaluation of all capturingmoves first, and so on down a list of typesof moves. The various search strategies aregiven in detail in chapter 3 and are elabo-rated on in chapters 6 and 7.

Northwestern University's program,CHESS 4.5, is covered by the authors ofthat program. CHESS 4.5 is particularlyrelevant to the programmer who has a graspof the theory and who is eager to designhis or her own program. The creators ofCHESS 4.5 discuss their older programsand the writing of their latest program.They discuss their particular searchingstrategy, how they came to decide upontheir method of generating moves andevaluating them, and their reasons forreaching certain decisions. This discussiontends to bring one down from the theore-tical level to the practical level of decisionsconcerning implementation of theories.

The book begins with a retrospective ofpast computer chess tournaments and theirrules, and ends by asking the question, "Whyprogram a computer to play chess?". I thinkthere are two answers to this question. Acomputer chess program to simulate humanmethods of playing will greatly aid ourunderstanding of human perception,learning and problem solving. Secondly,it can be fun solving a difficult problem ina creative, imaginative way.

Chess SkiII in Man and Machine is aninteresting book filled with the theoreticaland the specific concerns of computer chess.It should give readers the background to getstarted, and its bibliography should providea basis for further inquiry.

Dennis Barbour

2 Coliseum Av

Nashua NH 03060"

160

tffto tL^ja^if to ^^ q^^qu^ %

MODEL CC-8 $175.00

4800 BAUD CASSETTE RECORDER

An ASYNCHRONOUS NRZ type Recorder with remote motor start/stop. Errorrate 10° at 4800 BAUD. Can be used from 110 to 4800 BAUD into a UART or "BitBanger PIA" -no clocking required. This is not an audio recorder. It takes RS232 orTTL signals from the terminal or computer and gives back the same signals. No audiointerface is used. Motor start/stop is manual or through TTL or RS232 signals.

Tape speed is 3.2"/second nominal; 1.6"/sec. optional. 110 volt, 60 Hz, 5 watts.(220 Volts on special order). Can use high quality audio cassettes (Philips Type) orcertified data cassettes. Can be used in remote locations from a 12 Volt battery.

Recommended for DATA LOGGING, WORD PROCESSING, COMPUTER PRO-GRAM RELOADING and DATA STORAGE. Especially recommended for 6800systems, 6502 systems, 1800 systems and beginners with the 8080 systems. Manualcontrol except for motor start/stop. 6800 or 8080 software for file or record searchingavailable on request with order. Used by major computer manufacturers, Bell Tele-phone and U.S. Government for program reloading and field servicing.

AVAILABILITY - Off the shelf.

50 KILOBAUD CARTRIDGE RECORDER

This is a self clocking (1/1) high speed recorder. Loads BASIC in under 2.0 seconds.Recording is done at 19.2 Kilobaud. Playback at 30 Kilobaud. File or Record search-ing is done at 50 Kilobaud and loading is automatic. Worst case access time about 2minutes for up to 2 megabytes on the 3M Data Cartridge.

Tape speed lO'Vsec. on record, up to 30'7sec. on playback. Records one clock trackand one data track on each pass (2 passes). Recording is NRZ unencoded from RS232or TTL signals.

This recorder requires one Parallel port for motor control, and one serial port fordata and clock. (Cannot be used with UART's or UART boards such as the 3P+S).Used with USART's, ACIA's or other 1/1 clocking I/O devices under software controlonly. No manual controls. Software for 8080 and 6800 available. Power supply isbuilt in, 110V, 60 Hz. 220 V, 50 Hz for export.

AVAILABILITY-90 days.

MODEL 3M3A

$220.00

2SIO (R) CONTROLLER$190.00 ($160.00 Kit)

PROVIDES MONITOR AND TAPE SOFTWARE in ROM TERMINAL andTAPE PORTS on SAME BOARD CONTROLS ONE or TWO TAPE UNITS(CC-8 or 3M3A)

This is a complete 8080, 8085, or Z80 system controller. It provides the terminalI/O (RS232, 20 mA, or TTL) and the data cartridge I/O, plus the motor controllingparallel I/O latches. Two kilobytes of on board ROM provide turn on and go controlof your Altair or Imsai. NO MORE BOOTSTRAPPING. Loads and Dumps memoryin hex on the terminal, formats tape cartridge files, has word processing and papertape routines. Best of all, it has the search routines to locate files and records bymeans of six, five, and four letter strings. Just type in the file name and the recorderand software do the rest. Can be used in the BiSync (IBM), BiPhase (Phase encoded)or NRZ modes with suitable recorders and interfaces.

This is Revision 7 of this controller. This version features 2708 type EPROM's sothat you can write your own software or relocate it as desired. One 2708 prepro-grammed is supplied with the board. A socket is available for the second ROMallowing up to a full 2K of monitor programs.

Fits all S100 bus computers using 8080 or Z80 MPU's. Requires 2 MHz clockfrom bus. Cannot be used with audio cassettes without an interface. Cassette orcartridge inputs are RS232 level.

AVAILABILITY - Off the shelf.

NOW AVAILABLE: 6800 I/O with ROM, same as our2SIO (R) but fits SWTP bus. $190 tested. ($160 kit)

NEW: SWTP bus 8085 MPU board. Use 8080 software inyour SWP 800 system. $190 tested. ($160 kit)

OVERSEAS: Export Version 220 volt 50 hz. Write factory or: Megatron-Datameg, 8011 Putzbrunn, Munchen, Germany;Nippon Automation5-16-7 Shiba, Minato-Ku, Tokyo, Japan; Hobbydata, PACK 20012, Malmo, Sweden; G. Ashbee, 172 I field Road, London SW 10-9ag: Trin-tronics, Ltd., 186 Queen Street W., Toronto, Ontario, Canada; EBASA, Enrique Barges 17, Barcelona 14, Spain;ARIES, 7, rue Saint Phillipe duRoute, 75008 Paris; Microlem 20131, Milano, Italy; Eagle Electric, Capetown, S. Africa.

For U.P.S. delivery, add $3.00 Overseas and air shipments charges collect. N.J. Residents add 5% Sales Tax. WRITE or CALL for furtherinformation. Phone Orders on Master Charge and BankAmericard accepted.

Naticnal Multiplex Corporation

j 3474 Rand Avenue, South Plainfield NJ 07080 Box 288 Phone (201) 561-3600 TWX 710-997-9530 t - -, ^. ,. _ > .

Circle 413 on inquiry card.

Personal Computing Expowill come to New York!

PCEPERSONAL COMPUTING EXPO

NEW YORK COLISEUM, OCTOBER 28, 29, 50, 1977

It's a brand new show (in the world's biggest economiccenter) specifically for manufacturers, buyers andthose providing services to the personal computingenthusiast. For the first time, this booming field willhave a New York Coliseum showcase. It is planned asthe largest public show of its type and will attract at-tendance from the huge population areas of Boston,Washington, Philadelphia and Baltimore.New York is the world's communications focal point,the one place that will put personal computing in asignificant spotlight. New York is surrounded in depth

by people who work in the computer field, by com-puter learning centers, universities, personal com-puting clubs and thousands of others whose lives areaffected by computers.

More than 100,000 paid subscribers of BYTE magazinewill be urged to view the exciting exhibits and to at-tend the BYTE-sponsored lectures. Circle the dates:October 28, 29, 30 — and make your plans now to bethere when Personal Computing Expo comes to NewYork!

II

Personal Computing: An idea whose time has comei "

Tutorials by the IEEEComputer Society,Mid-Eastern Area

Personal Computing Expo is also joined by the In-stitute of Electrical and Electronics Engineers Com-puter Society, Mid-Eastern Area Committee, whoseexperienced staff is presenting six day-longtutorials at a modest charge. If inconvenient foryou to attend a tutorial during the show, simplysign up for follow-up tutorials on weekends afterthe show.

Whereas the lectures will provide you with in-formation, the tutorials will teach important skillsenabling you to use your own computer at home orat work.

TUITION:

The tuition fee for the tutorial program in-cludes a one-day admission to thePersonal Computing Expo.

Students (with ID)

IEEE MembersNon-Members

One Two Three

Tutorial Tutorials Tutorials

$30 $50 $75

$40 $70 $100

$50 $90 $125

Tuition includes hand-out material, in-cluding text and/or hand-out materials.Participants will also receive a certificateof participation.

REGISTRATION:

In order to provide an interactive, learning environ-ment between the participants and the lecturers,the number of registrants is limited. Registration isaccepted on a first-come, first served basis. Earlyregistration is therefore suggested. Cancellationsreceived before September 15, 1977 will receive afull refund.

To register, make your check payable to the IEEECOMPUTER SOCIETY, and mail to:Daniel R. McGlynn, Ph.D.Tutorial Program ChairmanIEEE Computer Society329 - 84th StreetBrooklyn, N.Y. 11209

FOR FURTHER INFORMATION:

on the technical content of the tutorials, technicalbackground suggested to derive maximum benefitfrom the program, or information on the IEEE Com-puter Society, callCary RingelChapter ChairmanIEEE Computer Society (212) 460-4600

TIME AND LOCATION:

The tutorials will be held from 10 AM to 5 PM onFriday and Saturday, and from noon to 5 PM on Sun-day in the New York Coliseum, at a location to beannounced and posted. Participation in thetutorials also includes a one-day admission to theexhibition area and other lecture programs.

EXPO TICKETS:

Will be sent to tutorial registrants about three orfour weeks prior to the show.

R1JYK DAILY TUTORIALS ANDHX1JS- SPONSORED LECTURES

*tf-A

BUTE

Exciting lectures

sponsored by

Personal Computing Expo is endorsed by BYTE magazine, whose staff has contacted prominent speakers

for an exciting series of lectures.

Visitors will be able to attend these meetings free of charge. The lectures will not conflict with each

other eliminating the worrysome choice among several equally important topics. In addition, they will be

repeated on the next day to give you o second chance if you missed a topic.

Lectures are typically 30 minutes, often with demonstrations and an additional 15 minutes for questions.

Portia Isaacson Ph.D. .. . Saturday 11 AM and Sunday 12 Noon

Co-owner of the Micro Store, a personal computer store, in Richardson Texas actively engaged for 12

years in the computing field in industry and at universities.

Member of the ACM and IEEE, and chairman of the 1977 National Computer Conference.

Author of many articles in professional journals and magazines.

Received a Ph.D. in Computer Science from the Southern Methodist University.

1. Personal Computing: An Idea Whose Time Has Come

A review of what has happened so far in the personal computing field, and an outlook into futuredevelopments, including those in the computer assisted home. Slide demonstration.

Sol Libes ... Friday 6 PM and Saturday 10 AM

President of the Amateur Computer Group of New JerseyTeacher of electronics and computer programming at a community college

Author of 10 books (working on the 11 th) and several hundred magazine articles in electronics and com-puting

Received an award for "The Outstanding Amateur Computer Hobbyist of 1976" in Atlantic City by PersonalComputing 1976 show, and BYTE.

2. How to Get Started

A discussion of typical home computer systems and their essential hardware and software components.John H. Dillcs III ... Saturday 1 PM and Sunday 2 PM

President of Personal Computing Inc. and tradefair director of the Personal Computing shows in Atlantic

City in 1976 and 1977.

Experience with various computer systems since 1962.

Employed by Western Electric Co. Inc., division of the Bell System.

Member of the Amateur Computer Group of New Jersey and of the Philadelphia Area Computer Society.

Teaches microcomputer courses in an adult evening program at a vocational school.

3. Innovative and Unusual Computer Applications for the Home.

Discussion of "far-out" applications of microcomputers and electronic technology for home use, such as achild locator and warning device, a home security system, etc. Slide demonstration.Robert S. Jones ... Friday 7 PM and Saturday 2 PMPublisher of Interface Age Magazine

Prior experience in sales and marketing for the semiconductor industry, including Intel, NationalSemiconductor and Analog Devices Inc.

4. Personal Computing for the Business Man

Evaluating business applications for micro computers, including slides showing selected applications.Louis E. Frenzel... Saturday 3 PM and Sunday 3 PM

Director of Computer Products at Heath Company, involved in the planning of new computer products.Prior to Heath, with McGraw Hill in product planning and design of educational electronic kits.Prior experience including computer engineering for eight years

Author of several books, home study courses and numerous magazine articles in electronics and com-puters.Received a BS in electronics from the University of Houston and a MEd from the University of Maryland

5. How to Build Personal Computer Kits

Tips for successful kit construction. Benefits of kit products for the personal computer user. Includingslides showing selected computer kits.

Carl Helmers .. . Friday 9 PM and Saturday 4 PM

Editor-in-Chief and co-founder of BYTE magazine.

Obtained computing experience as a personal way to accomplish artistic and technological goals in

music.

Graduated in 1970 with a BS in Physics from the University of Rochester, NY.

Worked for several years at Intermetrics, Inc. in Cambridge, Massachusetts on the NASA Space Shuttle

Project.

Prior to working with BYTE, publication of a small computer newsletter on a part-time basis.

r

6. Computers and Music

How to create music with computers. Problems of performing electronic music, music under computerprogram control and computer music in conjunction with traditional instruments. Illustrations and ex-amples from personal experience.

Jack L. Davies ... Friday 8 PM and Saturday 5 PM

President of Pan Atlantic Computer Systems GmbH, a distributor of various micro computer systems in

Europe.

Extensive experience in using minicomputers and microcomputers in the US

Military Schools in Europe. Designed and developed numerous games and educational programs for

students in these schools.

7. Microcomputers in Education

Discussion of the many possibilities of using microcomputer systems in schools. Effect of personal com-puters on students.

David Fylstra ... Saturday 6 PM and Sunday 5 PM

Member of the research staff of the Telecommunications Sciences Center at Stanford Research Institutefor more than two years. Specialized in microcomputer software and computer simulation of speech pro-cessing systems.

Graduated in 1974 with a BA in English and Psychology, Stanford University, Phi Beta Kappa.Active in the research on communication systems and devices for the deaf.

8. Speech Analysis and Synthesis for the Amateur

Using the personal computer as a device to analyze the acoustical foundations of speech and to formulaterules for the control of the speech synthesizer.Max Mathews Ph.D. ... Saturday 7 PM and Sunday 4 PM

Director of Acoustical and Behavioral Research, Bell Labs

Author of The Technology of Computer Music, and numerous articles.

Scientific Advisor to the Institute for Research and Coordination of Acoustics and Music (IRCAM)

Dr. Mathews is often regarded as the "Father of Computer Music"

9. Pure Digital and Real Time Music Synthesis

The use of the digital computer as a musical instrument with which composers and performers create andplay music. Slide and tape demonstration.Carl L. Holder .. . Saturday 8 PM and Sunday 6 PM

Director of Product Management, Planning and Communications at Information Terminals Corp. for five

years.

Prior experience, including Memorex Corp., in the area of magnetic media development and testing.

10. Present and Future Storage Devices

Survey and discussion of current devices and media, including latest technological developments like thecharge coupled devices and magnetic bubble memories. Costs, advantages and disadvantages of thesedevices for the personal computer user. Accompanied by slides.

DAILY TUTORIALS

There will be two tutorials offered each clay, one aimed at those participants who havelittle or no experience with microprocessors, and the other for those already experiencedwith microprocessor systems.

BASIC COURSES NTERMEDIATE/ADVANCE DURSES

1. Development of Microcomputer Systems forBusiness Use . .. Friday 10AM to 5PM

SyRatner, Citibank, N.A.

— system design concepts

— economic efficacy of microcomputers versus large centralizedcomputer systems

— distributed processing definitions

— advantages and problem areas

— network design and architecture

— data communications aspects

— case study: design of a stand-alone workstation for data en-try and retrieval

2. Development of Microcomputer Systems forHome Use .. . Saturday 10AM to 5PM

Cary ftingel, Con Edison

— survey of simple microcomputer control systems for home use

— selection of hardware: IC's, boards, kits, developmentsystems

— programming and software aids

— interfacing: A/D and D/A conversion

— examples: design of a home control system; microcomputersfor a music synthesizer; computer TV games.

— case study: use of the Motorola 6800 in design of a microcom-puter system

3. Survey and Comparison of Microprocessors

. . . Sunday Noon to 5PMDonald Lewis, Standard Microsystems Inc. and other speakers

— definitions and distinctions between ALU-chips, controllers,microprocessors, microcomputers

— current applications

— microprocessor architectures (bit-slice, 4-bit, 8-bit, 16-bit,minicomputer-type)

— vendor survey

— performance evaluation and criteria for selection

4. Microprocessor Interfacing ... Friday 10AM to 5PM

Donald Lewis, Standard Microsystems Inc.

— interface components (peripheral interface chips, UARTS,etc.)

— interface standards (IEEE 488, RE 232C, S-100, etc.)

— interfacing to keyboards

— interfacing to casette and floppy disk drives

— interfacing to display devices

— case study: how to design a CRT terminal

5. Microprocessor Programming and Software

... Saturday 10AM to 5PMDonald Lewis, Standard Microsystems Inc.

— software design: flow-charting, setting breakpoints,documentation, etc.

— assembly language for the Intel 8080, 8085, Z-80, Motorola6800

— instruction types and addressing techniques

— use of the stack

— interrupt handling and direct memory access (DMA)

— software development aids

— high level languages for microcomputers

6. Technology Analysis and Forecast of FutureMicroprocessor Structures ... Sunday Noon to 5PM

Daniel R. McGlynn, U.S. Philips Corp.and Will Mathys, MO$ Technology Inc.

— emergence of specialized computational elements (SCE) •

— architectural evolution (stack processors, reconfigurable ar-chitectures, multi-level logic)

— resource management techniques

— software evolution (nano-programming, extensible instruc-tion sets, structured programming modules, very-high-level

languages)

— evolution of semiconductor technology of microprocessors

— microprocessor architecture at the chip level

— case studies: design of MOS Technology's new 8-bit and 16-bitprocessors

Personal Computing Expo to be

produced by

H.A. Bruno & Associates

H.A. Bruno & Associates, Inc., has been prominent inthe exposition and promotion fields since 1923. Highlyskilled in the production and promotion of consumerand trade shows, the company currently promotes theAmerican Energy Expo, the National Boat Show, AutoExpo/New York. Promotion assistance also is current-ly rendered to the National Computer Conferenceand the Triennial IFIPS Congress inToronto.

The show producer has promoted successful shows inthe New York Coliseum every year since the buildingopened in 1957. Staff personnel are thoroughlyfamiliar with the building, its services, managementand labor.

Interesting, educational exhibitsof Personal Micro Computers

The lectures and tutorials are not just theory! You willbe able to see a multitude of micro computers. Try outvarious demonstrations: fascinating games, even incolor; small business applications; computer producedspeech; music; color graphics; and many more. Microcomputers are not only small and portable, also youwill need only a "micro budget" to be able to takethem home.

Show Hours and Admission

Personal Computing Expo hours are as follows:Friday, Oct. 28 — Noon to 10 p.m.Sat. Oct. 29— 10a.m. to 10p.m.Sunday, Oct. 30 — Noon to 7 p.m.

General Admission: $5.00 (includes free BYTE lec-tures) per day.

Two-day Tickets: $9.00 (advance sale only)Three-day tickets: $13.00 (advance sale only)

General Information

You may find it advantageous to purchase two orthree-day admission tickets in advance. These areavailble by mail only, no later than October 10,1977. Use coupon below.

Group rates (10 or more persons) qualify for $1.00off regular prices. Arrangements must be made bymail prior to October 10, 1977.

Special arrangements have been made if youdesire to stay overnight. Our headquarters hotel,the Barbizon-Plaza, is located on Central ParkSouth, two blocks from Columbus Circle. Singlerooms available at $34.00 per night; $40.00 double,plus tax. There's a weekend plan: $22.95 daily, plustax per person, double occupancy . . . includesbreakfast (brunch on Sunday) and meal gratuities.Children under 14 in same room with parents, free.

For hotel reservations and information, call tollfree (800) 223-5493. From New York State cail (800)223-5963.

For those traveling to New York by air, AmericanAirlines offers a convenient service through ar-rangement with Personal Computing Expo. For in-formation, call toll free (800) 433-1790. In Texas thenumber is (800) 792-1150. From the West Coast,round trip fare via American is only $227.00.

20,000 persons are expected to attend and view themore than 200 exhibits by personal computermanufacturers and retailers.

Personal Computing Expo will occupy the 4th floorof the New York Coliseum. It is located on 59thStreet and Columbus Circle — the geographicalcenter of New York City. Garage parking in thebuilding is available.

For answers to any questions pertaining to your at-tendance at Personal Computing Expo, contact theShow Manager, Ralph lanuzzi, at Area Code212/753-4920.

Advance sale of tickets available ... Three days $13

Two days $9 ... General Admission $5

MAIL THIS CONVENIENT ORDER FORM NOW!

Personal Computing Expo admission is $5.OX) per day. Advance reservation eliminates Iwaiting in line. Order advance tickets with this coupon. Admission ticket includes access ■

Please send me

advance tickets for one day, October

is $5.00 per person.

Make all checks payable to PERSONAL COMPUTING EXPO, and mail to:

Personal Computing Expo, 78 East 56th Street, New York, N.Y. 10022.

Name Amount enclosed $

Address

City

.State.

-Zip-

Cost

I

to exhibits, lectures and tutorials

Please send me advance registration tickets for three days, Oc .

tober 28-29-30. Total cost $13.00 per person. I

Please send me advance tickets for two days, October and I

October . Cost is $9.00 per person.

III

II

J

Analyze Your Car's Gas Economy with Your Computer

John P Bauernschub14809 Clavel StRockville MD 20853

In a note accompanying this article,author Bauernschub reported: This pro-gram was developed to be displayed ona video monitor using the SwTPC CT-1024.However, I borrowed a Texas InstrumentsSilent 700 to generate the listing and washappy at the ease of interfacing it to theSwTPC MC-6800 and AC-30 cassette inter-face.

A few comments about myself. First, Ihad never put an electronic kit togetherbefore this. I spent six months studying themicrocomputer market and decided onSouthwest because they appeared to have"put it all together." It was enjoyableand fairly straightforward assembling thekits, and they all worked.

How well is your car performing? Is itmatching the EPA miles per gallon ratingsthat the manufacturer posted on it? Is ittime for a tune-up? Here is a system that willproduce these answers and provide a worth-while application for your personal com-puter.

The first step in this system is to gatherdata. What we're out to do is automate afamiliar procedure: analysis of data aboutyour car. But analysis requires data. Everytime you purchase gas, record the quantityand the mileage. It helps to keep a smallnotebook in the glove compartment of yourcar for this. The system will be the mostinformative if the tank is filled each time.However, the fill-up is not necessary everytime since the program totals the gallonsand miles for an overall rate. You may alsowish to note when you do an extraordinaryamount of highway or city driving so youcan identify its effect on your normal milesper gallon.

If you want to check your fuel perfor-mance and have not been recording detailed

fill-up data, you can recover past data fromgas receipts (on your credit card bills) andget a starting mileage from a shop mainten-ance record.

When the program is initiated you havethe option of displaying the instructions.Next you are asked for the mileage beforethe first gas purchase. This is either themileage when you first started recording thedata or the last mileage used the previoustime the program was run. For the greatestaccuracy, the tank should be full for thefirst and last recordings. This value is storedby the program in the variable L to be usedin the final statistics, and assigned to M2 forthe first computation.

Column headings are displayed and youare requested to input mileage and gallonsfor the first fill after the mileage used as thestart. The program will then display themileage, the number of gallons, the numberof miles since the last purchase and the milesper gallon for this data. You are againprompted for miles and gallons and the cyclerepeats itself.

If you detect an error in the most recententry, you can back it out by entering anegative number for the next mileage andzero for gallons. When this is done, thenumber of gallons for the most recententry, G4, will be subtracted from the totalgallons, T, (line 370); and the most recentmileage variable, M2, will be set equal to thesecond most recent mileage variable, M4.When you are prompted for mileage andgallons again, enter the corrected amount.If this is also in error, it can likewise bebacked out. However, you can only back outthe most recent entry. If you tried to backout multiple levels of entries by enteringsuccessive negative values for mileage,nothing would happen because after the firstback out G4 was set to zero (line 380) andM2 equals M4.

166

After you have entered your last data andare prompted for miles and gallons, enter azero for each and your computer will tellyou how many miles you drove, how manygallons were used, and your average milesper gallon. This miles per gallon figure iscomputed using the total gallons and milesdriven and not an average of each previouslycomputed miles per gallon.

This program was written for a SwTPC6800 and will run with either 4 K or 8 KBASIC. Its output was designed to fit theSwTPC CT-1024 video screen and willtherefore appear squeezed on a wider screenor printer. This can be adjusted by changingthe spacing of the column headings in line700 and the tabs in line 320. The statementPRINT CHR$ (16);CHR$ (22); in lines 450,520 and 690 are the computer cursorcommands (home up, erase to end of frame)for the CT-1024 TVT and should be changedor left out if some other terminal is utilized.Also, all REM statements can be left out atthe risk of losing some documentation value.

Carry this idea forward in your computerto help keep track of the performance ofyour car."

Listing 1: The BASIC program for analysisof automobile mileage data. This program iswritten for the SwTPC 6800 system's 4 Kor 8 K BASIC interpreters, and can easily beadapted to any interpreter which imple-ments a minimum of decimal arithmetic andstring output operations for formatting. Thisprogram is not recommended for use with"tiny" BASIC interpreters.

0100 REM PROSRAM TO COMPUTE SflS MILEASE

011Q REM BV JOHN c'. BfiUERNSCHUBj JR.

0120 REN APRIL 1977

0130 PRINT "INSTRUCTIONS Cl-VESi 0-NO>"S

DUO INPUT A

0150 IF fl=l 50SU1 520

9160 1= et-t 50SUB 630

017 0 lET T=0

oliO PRINT "M:: V-;

01 =

INPUT M.6

REM ERROR DETECT ION

IF M-0 THEN 42 0

M-

THE

IF M »M2 THEM 720

IF S =0 THEM 750

PEN SAVE DATA FOP BftC

LET M4=N2

LET S4«S

REM MILE: PEP SALLON

_ET M3>tt-n£

AMPUTATION

0300 ^ET T = T*G

0310 LET R='INT'100»M3 5'i-100

0320 PRINT TfiB<5) :m: TAB- 12) SSSTAB' 19) :

0330 LET PB-M

o;:4o soto ISO

0350 REM BACk OUT ERRORS FROM TOTAL

0360 PEN SALLON! CTj AND LAST MILEASE

0370 LET T=T-G4

0330 LET 34=0

03-30 LET M2=M4

0400 SOTO ISO

0410 =EN FINAL STATISTICS

0420 LET M3=l-12-L

043D IF T"0 THEN 720

0440 LET R=< INT • 1 00»M3- T> ' 1 00

0450 PRINT CHRS<16);CHRS(22>J

0460 PRINT "YOU DROVE "iM3>" MILES DM"

0470 PRINT TS" SALLON5 OF SSS"

04 3 0 PRINT "FOR Fin RVERBSE OF"

0430 PRINT R!" MILES PEP GALLON"

Circle 414 on inquiry card.

THE BETTER BUG TRAP

ANDCONQUER

Altair/IMSAI compatible board catches program bugs andprovides timing for real-time applications.

Four hardware breakpoint addresses. Software breakpointsonly possible at instructions in RAM. Better Bug Trapbreakpoints can be in ROM or RAM, and at data orinstructions in memory, input/output channels, or stacklocations.

Board can stop CPU or interrupt CPU at a breakpoint;

Real-time functions: watchdog timer, real-time clock (fortime of day clock), interval timer.

Sophisticated timesharing made possible!

Unique interrupt structure: generates a CALL instruction toyour subroutine anywhere in memory, not a RST!

Addressed as memory. All parameters set easily by software.

All this and more for about the price of a real-time clockboard, but nothing else does the job of the Better Bug Trap.

$160, assembled and tested. 2 manuals plus software. 90 daywarranty. Shipped UPS. Delivery from stock.

jJjpcrflttuB

int.

BOX 3514, 123 WEST 3RD ST., SUITE 8GREENVILLE, NC 27834 e (919)758-7757

500 END

510 PEN INSTRUCTIONS

520 PRINT CHRS<16>;CHR*'.22

530 PRINT " COMPUTE MIL

54 0 PRINT

550 PRINT "INPUT MILEAGE AND SflLLONS

53.0 PRINT "EVERY GAS PURCHASE WHEN A

570 PRINT "FLIP ML13 "

PER GALLON'1

053 0

PRINT

'IF AN ERROR IS MADE, ENTER ANY

0590

PR I NT

■NEGATIVE NUMBER FOP THE NEXT"

06 0 0

PRINT

T4 AND 0 FOP G. THIS WILL"

06 1 0

PR I NT

■BACK OUT THE PREVIOUS ENTRY"

0620

PR I NT

FROM THE GRAND TOTAL.'

06 3 0

PR I NT

TO FINISH! ENTER 0.0"

064 0

PRINT

"JHEN READY TO START...

065 0

PR I NT

'INPUT MILEAGE BEFORE THE FIRST

066 0

PRINT

■ga: PURCHASE... "i

067 0

INPUT

06:30

LET 142

-L

0690

PRINT

3HR'!:<:i6> »CHRS<.22> 5

0700

PRINT

MILEAGE GALI NILE 3 MPS"

0710

RETURN

0720

PR I NT

'MILEAGE LESS THAN OP EQUAL"

07 30

PRINT

■PREVIOUS ";

074 0

SOTO 1

3 0

0750

PR I NT

■GALLONS MUST EE GREATER THAN 0

076 0

GOTO 1

3 0

INSTRUCTIONS '1-YESi 0-NQJ? 0INPUT MILEAGE BEFORE THE FIRST

PURL HA 3MILEAGE

£340MILES

24007 19.3.

212

1 0. 3 1

M&S? 24213.13.4

24213 13.4

21 1

11.46

M3.S? 24 366. 14.1

24366 14.1

14:3

10. 49

M:!.G ? 0.0

YOU DROVE 966 HI

_E:S ON

39.7 GALLONS: OF

GAS-

FOR AN AVERAGE OF

10.76 MILES PEP

GALLON

167

W Lloyd Milligan8604 May wood DrColumbia SC 29209

Mastermind has become one of the most populargames around these days. fGames and Puzzles magazinegave it their highest rating.) Among other applications,it is used by a number of computer companies to testthe programming skills of potential employees. Thegame was originated by Invicta Plastics; Mastermindis a trademark of that firm. In its original form, thisgame of skill requires a mind, but no computer.

1.0 R

20 K10 R60 p1.1.01201301401.501A0

21 023024 0270280

a?o

300

3303-10345344

3A037037237437 A3803904004)0420425430440460

4 70-13049049550050551051 25)5

5 20522

547550

590410710720730740800

12-JAN-77 BASIC VQ1B-02

EM MASTER MIND ■CODEMAKER"

EM CODED IN RT-1..1 BASIC

ANI'IOMIZE

RINT "MASTER MIND GAME1

REM INITIALIZATION

DIM A*<6>rB*(3)>C*<3)>B*<3>rS<3)

FOR .1=0 TO 6

READ A*(J>

NEXT J

DATA ■ R " , - Bl." . ' G " I " Y ' I - 0 - . ■ BR " • " S "

PRINT "WHICH VERSION (.1 OR 2) ')

INPUT R

LET R=R+5\REM R WILL BE USED IN SUBSCRIPT COMPUTATION

REM CODE SELECTION

FOR J==0 TO 3

LET D*(J>=A$(INT(R*RND(.I) ) )

REM THE SAME COLOR IN MORE THAN ONE POSITION IS LEGAI

NEXT J

REM GAME PLAY BEGINS HERE. I IS ROW COUNTER

REM BS IS COPY OF Dt THAT CAN BE ALTERED TO PREVENT DUPLICATE

REM COUNTING. B* IS REFRESHED BEFORE EACH ROW.

FOR 1=1 TO 10

LET N=0\LET M=0

PRINT "YOUR CHOICE FOR ROW I

INPUT C* < 0 ) , C* (1) < CI. ( 2 ) • C» ( 3 >

FOR .1 = 0 TO 3

LET B*<J>=D*(J>

NEXT J

60SI.IB 4 BO

IF N<>4 THEN 420 \REM TRY NOT PERFECT YET

PRINT ■CONGRATULATIONS! YOU HAVE BROKEN THE CODE IN"!' ROWS'

GO TO 710

IF IX10 THEN 4A0

REM IF STILL IMPERFECT AFTER 10 RHUS. THEN REVEAL CODE

PRINT 'CORRECT WAS",Dt(0),Dt(J>»B*<21rD»<3)

GO TO 710

REM

NEXT I

REM SUBROUTINE TO EVALUATE RESPONSE

REM COUNT BLACK FIRST

FOR K1=0 TO 3

TF CSilKI > OB'MKl > THEN 510

N"NII

NEXT Kl

REM NOW COUNT WHITE

FOR K1=0 TO 3

FOR K2=0 ID 3

IF K1==K2 THEN 550

IF C»<K1>=B$(K1> THEN 550

IF Ct(K2)=B1i(K2) THEN 550

TF Ct(K1. K>B*<K2> THEN 550

LET M=M+1

LET B$CK21 = 'X'\G0 T0 555

REM -X- IS DUMMY WRONG VALUE TO PREVENT DUPLICATE COUNT

NEXT K2

NEXT Kl

PRINT -YOU GET-N-BLACK AND"M"WHITE PEGS ON ROW I

RETURN

REM SELECT ANOTHER GAME OR STOP

PRINT "ANOTHER GAME — Y = YES, N = NO "i

INPUT Rt

IF R»="Y" THEN 210

END

Listing I: Text of BASIC Mastermind Codemaker. Minor modifications maybe required for other versions of BASIC.

Mastermind

One of the most interesting conventional(ie: noncomputer) games on the market is"Mastermind," distributed by InvictaPlastics, Suite 940, 200 5th Av, New YorkNY 10010, and available in many localstores. Mastermind involves deductive logic,hypothesis testing and probabilistic infer-ence. In Mastermind, the players take turnsas "codemaker" and "codebreaker." Thecodemaker sets up a concealed row of fourcolored pegs from a set of Red, BLue,BRown, Green, Yellow and Orange pegs.It is acceptable to use the same color orcolors more than once. In version 2, a moreadvanced game, empty Spaces are alsopermitted. (The bold face characters areabbreviations recognized by the BASICprogram.)

The codebreaker has ten tries (rows)in which to discover the secret arrangementof colors in the concealed row. To input arow to the computer, type the legal abbre-viation for the leftmost color on the firstline, the next to left on the second line,and so on. After each row has been typedin, the program evaluates the try and typesback the following message:

YOU GET n BLACK AND m WHITEPEGS ON ROW i.

The number of black pegs corresponds tothe number of correct colors in correct posi-tions, and the number of white pegs givesthe number of correct colors in wrong posi-tions. An important rule is that no positionin the try is counted more than once. Forinstance, if you have Green in columns 1 and3, and the secret code has Green in 3 only,you get a black peg for Green in position 3but no white peg for Green in 1. If you failto break the code in ten rows, the code-maker program will tell you the answer andlet you play again. It helps to study amissed game to see where you made faultydeductions.

168

RUNNM2

1V-FEB-77 BASIC V01B-02

MASTER MIND CDDEBREAKER

PLEASE BE PATIENT. SOMETIMES I TAKE A FEU MINUTES ON MV MOUE

WHICH VERSION <1 OR 2> ?1

MV MOVE FOR ROU 1 IS

YELLOU RED YELLOW GREEN

HOU MANY BLACK PEGS ?1

HOU MANY UHITE PEGS ?1

MY MOVE FOR ROU 2 IS

RED RED RED YELLOU

HOU MANY BLACK PEGS ?0

HOU MANY UHITE PEGS ?1

MY MOVE FOR ROU 3 IS

BLUE GREEN YELLOU BLUE

HOU MANY BLACK PEOS ?0

HOU MANY UHITE PEGS ?2

MY MOVE FOR ROU 4 IS

GREEN YELLOU GREEN GREEN

HOU MANY BLACK PEGS ?1

HOU MANY UHITE PEGS ?1

MY MOVE FOR ROU 5 IS

YELLOU BLACK GREEN BLACK

HOU MANY BLACK PEGS ?3

MY MOVE FOR ROU 6 IS

YELLOU BLACK GREEN UHITE

HOU MANY BLACK PEGS ?4

THANKS FOR THE GAME

ANOTHER GAME ?N

(5TOP AT LINE 900

READY

Listing 4: Sample run of BASIC MastermindCodebreaker. Values in response to thequeries "HOW MANY BLACK PEGS?" and"HOW MANY WHITE PEGS?" are typedby the player and correspond to correctcolors in correct positions and correctcolors in wrong positions in program's try.

strategy used by the program is mainstrength calculation involving little concep-tual sophistication, it is nevertheless apowerfully effective strategy. Indeed itmight be said that the BASIC Codebreakerprogram is a Mastermind Master.

After you have played against both of theprograms you may want to link the twoprograms together so they play against eachother. It would be interesting to watch thecomputer's strategy against itself.

Mastermind is marketed in several forms.MiniMastermind is identical to Mastermindexcept that only six rows are permitted forcompleting a game. The programs are easilyadapted to play any version by alteringindex variables, subscripts, etc. It is recom-mended that a playing set be used whenplaying against the computer, as the game issomewhat difficult to play in your head.However, paper and pencil can be used ifno playing set is available. Interesting com-puter games usually require long and com-plex programs. Mastermind is a logical andchallenging game which can be programmedin a small system with minimum memoryand a simple version of BASIC."

Circle 415 on inquiry card.

Special 5% Discount during October with this ad

Get the Best in

Business Data

Processing Systems

Accounting, Inventory, General Ledger,Timesharing Applications

Also a complete line of personal computersand peripherals, including:

• Processor Technology • CROMEMCO

• IMSAI

• Digital Group

• Compucolor

• TDL

• North Star

• TEI

• DTC

• Books/Magazines

HARDWARE/SOFTWARE SUPPORT

Our experienced staff is ready to help you

configure the best system to suit your needs

MAIL ORDERS WELCOME

(We accept MasterCharge/BankAmericard)

THE COMPUTER HQDIH

124 H Blossom Hill Road • San Jose, CA 95123(408) 226-8383

i3 imaa q

PO BOX 91 ITHACA, N.Y. 14850 (607) 273-3271 "]

OUR PRICES

REVEALED

rBOARDS

inquire about quantity and OEM pricing

Z-80 CPU $35.00

2708/16 EPR0M $25.00

PR0T0B0ARD $25.00

8k STATIC RAM $25.00

16/64 k DYNAMIC

RAM $35.00

PLEASE ADD $2.00 SHIPPING PER ORDER

CHIPS

Z-80 2 mHz $25.00

4 mHz $35.00

2708EPROM 450 ns $20.00

21L02-1 RAM 450 ns $1.30

21F02-1 RAM 250 ns $1.50

171

Circle 416 on inquiry card.

BYTEs Bits

Multiplication

One of the applications of my home-brew 6800 based system requires a largeamount of complex number crunching.A noticeable improvement in perfor-mance can be realized by reorganizingcomplex multiplication.

Conventional complex number multi-plication of two numbers requires twoadditions and four multiplications. Thiscan be reduced to three multiplicationsand five additions. Brute force multipli-cation yields the product directly as thecross product sum. That is:

(a+jb) (c+jd) = (ac-bd) + j(ad+cb)

However, these products can be ex-panded by the addition and subtractionof a constant to shorten the computa-tion time.

(a+jb) (c+jd) = (ac-bd+ad-ad) + j(ad+cb+ac-ac)

= ((a-b)d + (c-d)a + j((a+b)c - a(c-d))= (y+x) + j(x-z)

Where: x = (a b) cy = (a-b) dz = (c-d) a

William Jackson

24 Coldstream Dr

Munster Ontario

CANADA KOA 3PO"

Music and Poetry by Computer?

The Association of Computer Machi-nery (ACM) in cooperation with NewYork University is presenting a Confer-ence on Computing in the Arts andHumanities to be held in Warren WeaverHall at New York University, October21 to 23 1977. The programs include:computer generated video tape andfilm works; a concert of music com-posed with the aid of computers; poetryby computer; a computer fashion show;literary analysis using computers; andmore.

For registration information, contactDr Naomi Sagar, Conference Chair-person, NYU Linguistic String Project,251 Mercer St, New York NY 10012,(212) 598-2294, ext 5."

An IEEE Hands-onMicrocomputer Tutorial

The Nuclear and Plasma SciencesSociety of the IEEE, in conjunction withtheir annual symposium, are sponsoringa hands-on microcomputer applicationstutorial. It will be held Saturday, Octo-ber 22 1977 from 9:00 to 5:00 at theSheraton Palace Hotel, San Francisco.The tutorial is slanted toward peoplewith computer backgrounds who wouldlike a hands-on experience on actual pro-blems. Suitcase trainers based on the

8080 will be used. Eugene Fisher,Lawrence Livermore Laboratory, andMichael Maples, M and E Associateswill head a group of microcomputersystems engineers, teachers and con-sultants in leading the workshop. Pro-jects include a stopwatch timer displayand a set point temperature controller.For further information on registration,write to A J Stripeika, Lawrence Liver-more Laboratory, POB 808, LivermoreCA 94550. The registration fee is $40(lunch and coffee included). Materialwill be sent out for advance study. Toobtain maximum benefit from thetutorial it is recommended that atten-dees study the material in advance. Classwill be limited."

->

The Microcomputer Connection

The 24th annual IEEE Fall Confer-ence will be held at the Town HouseConvention Center in Cedar Rapids IA

INTERNATIONAL DATA SYSTEMS, INC.

400 North Washington Street, Suite 200Falls Church, Virginia 22046 USATelephone (703) 536-7373

S100 Bus Cards (ALTAIR/IMSAI Compatible)

I8-SPM Clock Module

USES

88-UFC Frequency Counter Module

88-MODEM Originate/Answer MODEM

GENERAL PURPOSE PERIPHERALS

MCTK

TSM

DAC8

Morse Code Tramer/KeyerTemperature Sensing Module

Eight Bit Digital toAnalog Converter

Your computer keeps time of day regardless of what program it is executing.Applications include event logging, data entry, ham radio, etc. Provision forbattery backup is included.

Measure frequencies up to 600 MHz or period with 1/10 microsecond resolu-tion. Computer can monitor four separate inputs under software control

Use your computer to call other computer systems such as large timesharingsystems Also allows other computer terminals to "dial-up" your computer.Auto-dialer is included so your computer can call other computers under soft-ware control Operates at 110, 134.5, 150, 300, and 600 band.

Hard/Software package which allows your computer to teach Morse Code, key yourtransmitter, and send prestored messages. Uses "NEW CODE METHOD" for training.

Use it to measure inside and/or outside temperature for computerized climatecontrol syslems, etc

Requires one eight bit TTL level latched parallel output port. Use it to producecomputer music or to drive voltage controlled devices.

KIT PRICE

$96.00

$179.00

$245.00

$29.00

$24.00

$19.00

Terms: Payment with order. Shipment prepaid. Delivery is stock to 30 days. Write or call tor detailed product brochures.

Circle 417 on inquiry card.

172

Raster Scan Graphics

These pictures were created byDavid Koh MD, Dept of CardiologyRG-20, University of Washington,Seattle WA 98195, using a homebrewraster scan graphics interface based onThomas Buschbach's article in theNovember 1976 BYTE, page 32. Thecircuit has been modifed to be compat-ible with the Southwest Technical Pro-ducts bus and its 6800 processor signals.Timing signals are derived from a South-west Technical Products CT-1024 ter-minal. Graphics and alphanumeric char-acters can be displayed either simul-taneously or separately.

Resolution is 256 by 160, which

>

on September 29 and 30 1977. Thetopic will be "The Microcomputer Con-nection" and 12 speakers will delivertalks on microcomputer applications inindustry, government and the home.Also featured are product and equip-ment exhibits from a variety of manu-facturers. The Fall Conference is opento the public; the fee is $4 for nonmem-bers, $2 for IEEE members and $1 forstudents.

For more information, contactFirooz Etemad, IEEE Fall Conference,POB451, Marion IA 52302."

represents 5 K bytes of programmablememory at hexadecimal locations 6000to 73FF. The cartoons were drawnfreehand using a surplus Bolt Baranekand Newman X-Y digitizer purchasedfrom Delta Electronics. This unit has aresolution of 128 by 128. For highresolution work, this region can bemoved around under software controlanywhere in the display area."

The Midwest Affiliation of ComputerClubs' Convention

Over 2500 people descended onCleveland's Bond Court Hotel June 10,11 and 12 to attend the Midwest Affila-tion of Computer Clubs' annual conven-tion. Manufacturers were in abundancedisplaying their products. A number ofpeople spoke at the technical sessions,including representatives of Intel andTexas Instruments, both of whomunveiled new products to receptiveaudiences. An excellent closed circuitvideo monitor system was also availablefor those who could not get into thewell-attended lectures. All in all, it wasa well-run and interesting convention."

Ahem. AMI Makes a Sewing MachineLSI Control Chip

The new Singer Athena sewingmachine features a novel LSI integratedcircuit that has 24 different patterns per-manently stored in its read only mem-ory. The chip was designed by AmericanMicrosystems and has a capacity of 6 Kbytes. It also controls the sequences ofvariable length pulses going to linearservo actuators that control needle andfabric movement.

The computerized appliance is hereto stay, and we can look forward tomany happy hours of digital darting andbyte based basting."

New Micro Interfacing Workshop

Wintek has added a 2 day "Hands onInterfacing Workshop" to their standard3 day "Hands on Microprocessor ShortCourse with Free Take Home Micro-computer." The new interfacing work-shop includes analog to digital anddigital to analog conversion, signal con-ditioning, keyboard scanning and de-coding, LED display driving, motor posi-tion, velocity control and related topics.Tuition is $299. The fall 1977 scheduleincludes workshops in Dallas, Houston,

MULTIPLE DATA RATE INTERFACING FOR YOUR CASSETTE AND RS-232 TERMINAL

. .-■*;- ■ ■■■■<■ *-mat" ■■"-■

m • ,4. IP»*ififc

the CI-812

The Only S-100 InterfaceYou May Ever Need

On one card, you get dependable "KC-standard "/biphase encoded cassette inter-facing at 30, 60, 120, or 240 bytes persecond, and full-duplex RS-232 data ex-change at 300- to 9600-baud. Kit, includ-ing instruction manual, only $89.95*.

PERCOM DATA COMPANY, INC.

4021 WINDSOR • GARLAND. TEXAS 75042

(214) 276-1968

*Assembled and tested,$119.95. Add 5% forshipping. Texas resi-dents add 5% sales tax.BAC/MC available.

PerCom 'peripherals for personal computing'

173

Washington DC, Melbourne FL, Denver,Palo Alto, San Diego, Indianapolis,Boston, Detroit, Chicago and PuertoRico. For more information call (317)742-6802 or write Wintek Corporation,902 N 9th St, Lafayette IN 47904."

Programming Tidbit

The normal mode of comparison for

equality between two numbers, A and B,is simply the equivalent of the followingstatement in whatever language is used:

IF A = BTHEN

However, in many contexts this isnot necessarily the test to do. Supposein a pattern recognition program, forinstance, you merely want to find outif the two variables A and B are withinthe right "ballpark" of each other, which

ALL TOGETHER NOW!

The acclaimed Equinox 100® mainframe kit ($799) is nowa complete S-100 system.

Because now there is an Equinox 100® I/O interface kit($120) that handles the hard work of interfacing all yourperipherals.

And Equinox 100® 4K memory kits ($109). Assembled 8Kmemory boards ($188). EQU/ATE® editor/assembler and'BASIC-EQ® software on cassettes.

It all goes together. It all works together. It's all togethernow at special system prices.

See The Equinox System® at your local computer shop.Call toll-free to 800-648-5311. BAC/MC accepted. Or writeEquinox Division, Parasitic Engineering, P.O. Box 6314,Albany California 94706.

THE EQUINOX SYSTEM" When you put it together, it's really together.

is the range DELTA. The semantics ofthe test computation must then bechanged, and the first impulse might beto use the form:

IF (A-B)<DELTATHEN

However, what happens when B isgreater than A and DELTA is a positivenumber? This would give a true resultall the time, independent of the truemagnitude of the difference betweenthe two. Since DELTA is a positivenumber by assumption, we must forcethe difference being checked to be apositive value also. This is where it ishandy to have a language with an abso-lute value function ABS to force achange of algebraic sign if its argument isnegative. Rewriting this comparisongives:

IF ABS (A-B)<DELTATHEN

If your interpreter or compiler has noabsolute value function, all is not lost,however. You can still check for a differ-ential range by coding the equivalent:

IF ((A-B<0

and (A-B>DELTA)

or ((A-B)>0

and (A-B)< DELTA)

THEN

Here the terms and and or have beenused for logical functions relating differ-ent arithmetic expressions and paren-theses are used for precedence of opera-tions. Add this thought to your bag ofprogramming tricks and techniques; itmight be quite useful."

BYTE's Bugs

IBM Selectric Interface

Regarding "Interfacing The IBM Se-lectric Keyboard Printer" by DanFylstra, in June 1977 BYTE, page 46,see a letter from Beardsley Ruml on page32 of this issue, paragraph 4, for com-ments about:

1. Proper wiring of IBM 73x con-tacts for the purpose of imple-menting closed loop feedback.Mr Ruml states that Dan'ssuggestion of a proposedmethod for implementingfeedback will not work. (Dan'sinterface was open loop, worstcase timing.)

2. The IBM specified current andvoltage used with operatingthe switches should not be ig-nored, since above the mini-mum 10 V, 10 mA specifica-tion there is enough currentto "keep the contacts clean.""

Circle 418 on inquiry card.

174

Program Structure

The BASIC Mastermind Codemakershown in listing 1 requires only 2 K bytesfor the source code including remarks. RNDand INT (random number and integer) arethe only special functions used; no stringfunctions are needed. This program can beeasily modified to run under a version ofBASIC that does not support string variablesby substituting numbers for the colorabbreviations. The secret row of coloredpegs is set up by a call to the random num-ber generator in line 290. Note that for ver-sion 1 games, R=6 and for version 2, R=7permitting the assignment of empty Spaces.Black peg responses (exact correspon-dences) are counted from lines 490 to 510,and white peg responses (correct color,wrong position) are counted from lines512 to 555.

An example of play against the computerprogram is given in listing 2. The first rowof input is a guess. The second row isdesigned to test whether there are any re-peated colors from the first try in thesecret code. The codemaker's responsetells us that one of the colors in the firsttry is repeated. In row 3 we hypothesizethat BLue is the correct color in row 2and that Orange is the repeated color fromrow 1. The codemaker's response constitutesa stroke of luck for us as we learn thatBRown is the correct color on row 2 andthat Red and Orange can be eliminated fromrow 1. In row 4 we hypothesize that Greenis the correct color in the first row, butalas, we are mistaken. Now only twoarrangements are possible. We have a 50%chance of getting it on row 5, but fate iscruel.

After playing the Codebreaker half ofthe Mastermind game you will learn howto get the most information out of eachmove. I leave these discoveries to thereader.

After trying to break the codes pro-duced by the computer our next stepwill of course be to get even with it andsee how good it is at breaking codes.The Mastermind Codebreaker programattempts to decode input codes. A wordof warning; the Codebreaker program isan excellent player.

Listing 2: Example of play against BASIC Mastermind Codemaker. Thetext gives an analysis of the moves.

HM 13-JAN-77 BASIC V01B-02

MASTER MTNtl GAME

which VERSION m OR ?> 11

YOUR CHOTCE FOR ROW 1

YOU BET I BLACK AND I WHITE PEGS ON ROW I

YOUR CHOICE FDR ROU 2

?8I

TBI

">8R

?BR

YOU GET I BLACK AND 0 WHITE PEGS ON ROU 2

YOUR CHOICF FOR ROU 3

T*R

WU GET 0 Bl ACK AND 0 WHITE PEGS ON ROU 3YOUR CHOICE FOR ROU 4

YOU GFT I Bl ACK AND 3 UHITE PEGS ON ROU 1YOUR CHOICE FDR ROU S

YOU GET 2 BLACK AND 2 WHITE PEGS ON ROU

YOUR CHOICE FDR ROW 6

?G

YOU GET 4 BLACK AND 0 UHITE PEGS ON ROW 6CONGRATULATIONS! YOU HAVE BROKEN THE CODE IN 6 ROUS

ANOTHER GAME — Y = YES, N ■ NO TN

Listing 3: Text of BASIC Mastermind Codebreaker. Minor modifications maybe required for other versions of BASIC.

MM2 19-FEB-77 BASIC V01B-02

10 REM MASTER MIND "CODEBREAKER ■

20 REM CODED IN RT-11 BASIC

30 RANDOMIZE

40 DIM R«<9.3>,S(9-1>

45 DIM A*<6>rBi<3).C»(3>,D«C3>

HO REM INITIALIZATION

60 FOR J=0 TO 6

70 READ A*(J)

80 NEXT J

90 DATA "RED" . "BLUE",'GREEN-,-YELLOW.-BLACK-r "WHITE", "SPACE"

100 LET L0=0

110 LET L1=0

120 LET L2=0

130 LET L3=0

140 PRINT 'MASTER MIND CODEBREAKER"

145 PRINT "PLEASE BE PATIENT. SOMETIMES I

150 PRINT "WHICH VERSION <1 OR 2) "i

140 INPUT V

170 LET V=V+5

ISO REM ASSIGN COLDRS AT RANDOM FOR ROW 1

190 FOR J=0 TO 3

200 LET R«(OfJ)=A»(INT(V*RND( J) ) )

210 NEXT J

220 REM START MAIN PLAY OF GAME HERE

230 REM I IS THE ROU COUNTER

240 FOR 1=0 TO 9

245 PRINT

250 PRINT "MY MOVE FOR R0U"I+1" IS"

260 PRINT Rt(IiO),R*(I,1>>R*(I>2)>R«(I>3)

TAKE A FEU MINUTES ON MY MOVE"

169

Listing 3, continued:

270 PRINT 'HOW MANY BLACK PEGS '!

280 INPUT S(I,0>

290 IF S<I,0><>4 THEN 320

300 FRINT 'THANKS FOR THE GAME1

305 PRINT

310 GO TO 870

320 IF S(IiO><>3 THEN 360

330 LET S(I,1)=0\REM IF 3 BLACKS THEN 0 WHITES

340 GO TO 380

360 PRINT 'HOW MANY WHITE PEGS 'r

370 INPUT S(Iil)

380 REM GENERATE HYPOTHESIS

390 FOR IO=LO TO V-l

400 FOR I1=L1 TO V-l

410 FOR I2=L2 TO U-l

420 FOR I3=L3 TO V-l

430 LET Dt<0)=AKIO)

440 LET Ilt(l)=At(Il)

450 LET D$<2>=A*<I2>

460 LET n*(3)=ft*(I3>

470 REM CHECK ALL ROUS FROM FIRST TD CURRENT FOR CONSISTENCY

490 FOR R=0 TO I

500 FOR J=0 TO 3

510 LET C*(J)=R*(RiJ)

520 LET B$(J)=8$<J)

530 NEXT J

540 REM USE ROW EVALUATION SUBROUTINE TO CHECK CONSISTENCY OF

550 REM HYPOTHESIS AGAINST EACH ROM

555 LET N=0\LET M=0

560 GOSUB 910

570 REM CHECK FOR AGREEMENT OF BLACK 8 WHITE COUNT

580 IF NOSIRrO) THEN 700

590 IF MOS(Ril) THEN 700

600 NEXT R

610 REM MAKE SURE THAT HYPOTHESIS ROU HOESNT DUPLICATE ROU 1

620 LET Z=6

630 FOR J=0 TO 3

640 IF Rt<Or J)ODJ(J) THEN 660

650 LET Z = Z+1

660 NEXT J

670 IF Z = 4 THEN 700

690 GO TO 820

700 NEXT 13

710 NEXT 12

720 NEXT II

730 NEXT 10

740 PRINT "I HAVE REACHED AN IMPASSE IN MY THINKING'

750 PRINT 'COULD YOU HAUE MADE AN ERROR?■

760 GO TO 870

770 LET 1.0 = 10

780 LET L1=I1

790 LET L2 = I2

800 LET 1.3=13+1

810 REM DO NOT RECHECK ELIMINATED POSSIBILITIES

820 REM ASSIGN NEXT ROU

830 FOR J=0 TO 3

840 LET R$(I+1>J)=D*(J)

845 NEXT J

850 NEXT I

840 PRINT 'I AM STUMPED — YOU WIN'

070 FRINT 'ANOTHER GAME ")

880 INPUT Rt

890 IF R«="Y" THEN 150

900 STOP

910 REM SUBROUTINE TO EVALUATE RESPONSE

920 REM COUNT BLACKS FIRST

930 FOR .11=0 TO 3

940 IF Ct(Jl)OB*<Jl) THEN 940

950 LET N=N+1

940 NEXT Jl

970 REM NOW COUNT WHITES

980 FOR J1=0 TD 3

990 FOR J2=0 TO 3

1000 IF J1=J2 THEN 1080

1010 IF Ct(J.l)=B*(Jl) THEN 1080

1020 IF Ct(J2)=Bt(J2> THEN 1080

1030 IF Ct(Jl)<>B»(J2) THEN 1080

1040 LET M=M+1

1050 LET B»<J2)='X'\REM DUMMY WRONG VALUE

1070 GO TO 1090

1080 NEXT J2

1090 NEXT Jl

1100 RETURN

1110 STOP

2000 END

READY

Strategy

Two simple rules determine the Code-breaker program's strategy: row 1 is a ran-dom try (all possible arrangements areequally probable); each subsequent row isan arrangement which cannot be disprovenon the basis of previous results. Whenplaying Mastermind the human playermay try an arrangement which is known

to be incorrect in order to obtain specificinformation; this kind of strategy is notused by the BASIC program.

Program Structure

The BASIC Mastermind Codebreakershown in listing 3 requires less than 3 Kbytes for the source code, including remarks.RND and INT are the only special functionsused. Play begins with a call to the randomnumber generator for row 1 at line 200.

After the program types a row it requestsfeedback information about the try. Thenumber of correct colors in correct positionsis requested at line 270. If there are two orfewer black pegs for the try, the programasks for the number of correct colors inincorrect positions at line 360.

After receiving this information the pro-gram constructs a table of all possiblearrangements, one row at a time (lines 390to 730). Each row is internally hypothesizedto be the hidden code and the question isasked: "How many black pegs and howmany white pegs would have been awardedto each try from the first to the current rowif the hypothesis were true?" These valuesare calculated internally by the subroutineat lines 910 to 1100. This is the same sub-routine used by the Codemaker program.If there is a discrepancy between the cal-culated value and the actual value awardedfor any row, the current hypothesis is re-jected and the next row in the table is con-structed. The variables LO, L1, L2 and L3mark the program's place in the table ofpossible arrangements between tries sothat rejected arrangements are not con-sidered again.

Since row 1 is constructed randomly andtherefore occupies an unknown position inthe table, it is necessary to check each try toascertain that it does not duplicate the firstrow. This check is conducted from lines 610to 670. If the program exhausts ten trieswithout breaking the code, it prints themessage at line 860. I would be interestedto hear if this ever happens.

When evaluating the program's try it isnecessary to count black and white pegscarefully. If you make a mistake countingthe number of exact or inexact correspon-dences, the program may exhaust the tableof all possible arrangements without findinga possibly valid try. In this event, the mes-sage at lines 740 to 750 is printed.

Summary

An example of the computer's play isgiven in listing 4. Note that although the

170

The Thinking Computer: Mind Inside

Matter by Bertram Raphael. Artificial intel-ligence, or Al, is the branch of computerscience concerned with making computers"smarter." It is a growing, vital field that is,unfortunately, the subject of much popularmisunderstanding. The Thinking Computer:Mind Inside Matter is a lucid introduction toAl that does much to overcome this mis-understanding. With a minimum of technicaljargon, this book discusses the capabilitiesof modern digital computers and how theyare being used in contemporary Al research.It discusses the progress of Al, the goals,and the variety of current approaches tomaking the computer more intelligent.$6.95.

Projects in Sight, Sound, & Sensation

by Mitchell Waite. Dedicated "to all spacecowboys." Detailed theory and practice ofseven fascinating amateur electronics proj-ects, along with a complete and detailed ap-pendix on how to make PC boards. Theprojects included in this book are: TheSyntheshape, an art generator that can beused to generate innumerable complex andbeautiful patterns on the screen of an oscil-loscope. An electronic music box that willplay over 3000 possible melodies when thelid is lifted. A way to control muscle tensionexplained in chapter 4. A muscle-wave bio-feedback monitor can be used to achievedeep relaxation. The laser-light show trans-fers light into fascinating patterns in a dark-ened room. Other projects include a Kirliancamera, a digital ESP machine, and neon-light randomizer. $5.25.

MindMassagersfrom BITS

The Great International Math On Keys

Book, from Texas Instruments. Do youneed a numerical algorithm for calculatingexchange rates in a hotel on a foreign trip?Or figuring those mysterious "points" whenfacing the sanctimonious charisma of abanker at mortgage time? This book is acompendium of simple explanations andstep by step procedures for accomplishingnumerical solutions to numerous com-monly encountered situations in daily life.Each entry is characterized by a statementof the problem, including the elements oftheory required, and the keystrokes neededto solve the problem on an algebraic entrycalculator. This is an invaluable sourcebookof information for the person who is in-clined to manipulate numbers. $4.95.

How to Solve Problems by Wayne A

Wickelgren. When confronted by a problem,many of us spend more time puzzling overhow to solve it than in actually doing so. Thisbook analyzes and systematizes the basicmethods of solving mathematical problems.The methods are described in terms of amodern theory derived from research incomputer simulation of thinking. Examplesillustrating these methods include chessproblems, logical puzzles, and railroadswitching problems frequently encounteredin science and engineering. Whether your in-terest in solving problems is professional,recreational, or both, you will find this ahelpful book. $6.50 softcover.

C§*5S SKILLJAM

;hine

' GiilecSy PeierWftov

-' Sd3

! .'.'.■

Chess Skill in Man and Machine edited

by Peter W Frey. This is a most fascinatingbook, concerning itself with the when, how,and why of computer chess. The when de-scribes past ACM computer chess tourna-ments, with the details of more than a doz-en games. The how consists of the basics ofboth human chess skill and computer chesstheory. It includes a detailed description ofthe best computer chess program to date(Northwestern University's CHESS 4.5), anend game program called PEASANT, and ofvarious search strategies and heuristic com-puter chess theory which should enable oneto write his own chess program. The bookends with the why concerning the contribu-tions, now and in the future, of computerchess to understanding artificial intelligence,human intelligence, and learning. The onlydifficulty for the hobbyist's computer chessprogram is the need for a large computer forthe fast processing of search strategies andlarge core storage for the program and itsresults. $14.80 hardcover.

Send to:

BITS, Inc70 Main StPeterborough NH 03458

Total for all books checkedPostage, 50 cents per book

for books

Grand Total

Check payment method:

My check is enclosed

Bill my MC No.

Bill my BAC No.

Exp. dateExp. date

Name

$$

Address

City

State

ZJ2_

Signature

Prices shown subject to change.

You may photocopy this page if you wish to leave your BYTE intact.

All orders prepaid.

In unusual cases processing may exceed 30 days.

175

Circle 383 on inquiry card.

Game Playing With Computers by

Donald D Spencer, published by Hayden.What does it mean to play games using acomputer? Read this book to get anintroduction into numerous recreationaluses of the computer to program and playmathematical and logical games. Topicsinclude numerous mathematical problems,casino games, board games, unusual gam-bling games, and miscellaneous logic games.Numerous BASIC language programs andlistings are included to show details. $16.95.

Scientific Analysis on the Pocket

Calculator by Jon M Smith, published byJohn Wiley & Sons. This book is another ina set of source books for mathematicalanalysis using the contemporary products oftechnology. It is oriented to the pocketcalculator, yet it will provide you withalgorithms and methods useful with anypersonal computer which implements thescientific and analytical functions found ona good pocket calculator. For a morecomplete description, see the book reviewon page 120 of the December 1976 BYTE;or order its 392 pages of detailed technicalinformation and review its use for yourself.$13.75.

References

and

Robots

from BITS

Build Your Own Working Robot by

David L Heiserman, published by TabBooks. This book will not tell you how tobuild Robbie, the robot of ForbiddenPlanet, or a classical android of sciencefiction. What it will introduce you to is theproblems of making a robot mobile devicecalled Buster III, using pre-microprocessorTTL integrated circuits for all logicfunctions. It is a must book for backgroundreading, but much of the logic can beextremely simplified using today's micro-processor technology. Use this book as afirst look at these problems from which youcan build further and more elaboratesolutions. Softbound, $5.95.

A Dictionary of Microcomputing by

Philip E Burton. In the opinion of BYTE'seditor, Carl Helmers, "This is one of thebest designed and executed dictionaries ofcomputer related terms yet seen on themarket. It is of particular relevance to thoseindividuals who want a good generalreference to numerous technical terms,broadly covering hardware and softwarefields as currently practiced," This newhardbound edition is part of the GarlandReference Library of Science and Technol-ogy. $12.50.

SuliM-an- IX'shtn

—^.Software Design for Microprocessors.This stand alone guide to microprocessorshas been designed by the people at TexasInstruments to convey knowledge to thefirst time user of microprocessors. Thisexcellent source book of computer conceptsbegins with an outline of the basic principlesof the general purpose computer, itsmachine architecture, software, and meth-ods of addressing. It proceeds to discusshow to build software, what is involved indocumenting what you've done once you'vedone it, the mechanics of programming, andspecific examples using the Tl TMS-1000,TMS-8080, TMS-9900 and SBP0400 de-signs. You'll find a thick hardcover text-book filled with over 370 pages of usefulinformation including a comprehensiveglossary of microprocessor terminology,among several other detailed appendices.$12.95.

Send to:

BITS, Inc70 Main StPeterborough NH 03458

Total for all books checkedPostage, 50 cents per book

for books

Grand Total

Check payment method:

My check is enclosed

Bill my MC No.

Bill my BAC No.

Exp. dateExp. date

Name

$$

Address

City

State

_Zip_

Signature

Prices shown subject to change.

You may photocopy this page if you wish to leave your BYTE intact.

All orders prepaid.

In unusual cases, processing may exceed 30 days.

Circle 383 on inquiry card.

176

Qlubs andNewsletters

Amateur Computer Club—Essex ENGLAND

In comparison to most hobbyist groupsthe English-based Amateur Computer Clubis an ancient giant. They are now in theirfifth year and are approaching 1000 mem-bers. Most of course are located in GreatBritain, but many live in other Europeancountries, and some in such remote cornersof the world as Singapore and NorthCarolina.

Communication is via a newsletterwhich is published six times per year andcontains articles on hardware, software andother pertinent technical data. The subscrip-tion rate is £2, although four Americandollars would be equally acceptable.

A word about the club's name. When itwas founded five years ago the only othercomputer group they had heard of wasStephen Gray's Amateur Computer Society.At that time they had no idea that interestin computers would take off to the extentthat local clubs would become viable, sothey thus have the distinction of being theAmateur Computer Club.

Write Amateur Computer Club at 7Dordells, Basildon, Essex ENGLAND.

Apple Core Computer Club

According to Apple Core presidentJerry Starzinski, AC^ was formed in Mayof this year, can boast 14 members, twocomplete SwTPC 6800 systems, two partialSwTPC 6800s in need of terminals, and

various individual members looking at somenewer entries like Jupiter, Compucolor andApple II.

The Apple Core Computer Club holdsregular meetings at 7:00 PM on the lastWednesday of the month at J M PerryTechnical Institute's Industrial ScienceBuilding, 2011 W Washington in YakimaWA. For more information write Jerry PStarzinski, 220 N 2nd St #17, Yakima WA98901, or call (509) 248-1620 between 9and 9:30 AM.

A Strange and Clandestine Group

An article by managing editor Joel Millerin Homebrew Computer Club's Newsletterhas disclosed the existence of a new andpotentially dangerous group of undergroundhackers. At least part of their covert activitycenters around the publication of 777e Pit.

The text of Mr Miller's article reads asfollows:

A few days ago, a mysteriously un-signed envelope was placed on mydesk in the Fairchild PublicationsDepartment and, to my delight, itcontained the last five issues of aninformal underground microprocessornewsletter called the Effate Pit, "ajournal for and by a small under-ground band of F8 users who can'tafford a Formulator." An introduc-tory statement informs us that "thechief users. . .are engineers working fora major semiconductor company,"and that "you can't even get on themailing list except by asking aroundin the right places." The issues con-tained a number of very interestingapplications-oriented articles by suchnefarious authors as "The Mole,""Captain Midnight," "The Scrounger"and "Poto."

After a little detective work con-

Conducted by

Peter Travisano and

David Wozmak

Would your club bene-fit from a write-up inBYTE's Clubs and News-letters section? It's easyenough to arrange. Justdrop a line to BYTE,70 Main St, PeterboroughNH 03458, attn: Clubsand Newsletters, with theinformation you'd likeprinted. Naturally, wecan't cover every clubevery month, but we domake a special effort tomention new clubs andthose which correspondregularly.

It is important to notethat dated material mustbe submitted three monthsin advance of the eventdue to our productionschedule.

Those people lookingfor a more complete listingof computer clubs shouldrefer to January 1977BYTE*

Wfc Settle for i WG* wU You Cm fat* BUSS?

zfs compare tkl two It^^Ztt^ritihtZL BUSS /s if-t/irtcf/bnd

Let's compare I /it IWOmeJtumi o?HERTmtTTh

fflformffon eKcha/iye forComputer users:HUC® "'

/ievJs/tfh.r*

Annual cosf ?/¥.00

Published Qyatfer/yF/rstissue

7

y/twpoml ttffar

BOSS

fc/z

Montt/yhPRIL '77 'IHOEPHNDBNT

The. April issue of Suss provide/ ischnicafinfortnation on the L%.\~\\ EthnJkJ. ArftAimt/cChip. In MSu WE rccomme-hdzl rtadxna -forthose. new*rfe microcomputers. The. June.Bus% polrilel out 3 competitive Drp4t/cf~

fSKii-w ioth an //iTttftoenT4roti7~ pane. I ahq

the S-JOO bus. ^jaiA ih 3ulu, Buss's MitotnJciitviewpoint mWiftikd itself in cillinc &ih*ikon f°a )«ss expensive system. <Jf cotr.pz4.tii- p'Wtr. Aftk. satd. tmtj fes priutl'tk. Hbs YiirZti'nresfcfaAO, inl hew sinr\ Jesn/i- Subscribe, tobuss (low at the. ipcc\il rffl. of fiJZ. 2nd.you'// rexaJVc <wr upcominf comifiso^. of HB

iikJ Um»oJ.crt's P£i<&&>{.'3eif 0f all,Art/*, ejtcAa«ot of inWm^rpi).

2pilt~fdr

For rncrc //l+arrtvafiM &t\ rfa&m Hits Ad r*jct\t& $iijS.

n. UVG®s& tk Htttk Go.f nt-usMy

Sum/Ha™tiatn in

Bt^SS /$ bi-dirtctioml,linking computer users intothe mu/fi-proctssincj mtgd-computer formtl by itsYtiiers.Xf transfersIfirormztlon necessary toYOUR centralproctss//i<? unit

SendM.IS. to BUSS' % Char/A Floto

d67W/LL0W £T 'ffNEW HAVEN CT 06511

177

Circle 419 on inquiry card.

Circle 420 on inquiry card.

STATE OF THE ART

BOTH FORMS

There are two forms of the "state of the art." One form is thepersonal growth attained by most professionals who realize theymust stay in step, intellectually, with new concepts and newtechinques. Too often, a tragedy occurs when the professionalneglects the second form, his career development. The fatal mis-take occurs when working in an environment that provides acontinuous parallel to industry but neglects to provide the pro-fessional growth that is necessary to insure career developmentand avoid potential future frustrations. To insulate yourselfagainst this happenstance, check with our professional staff.They will advise you on your career development as it relates toyour technical development.

Our areas of specialization are:

Software DevelopmentComputer GraphicsData BaseComputer DesignSimulation and ModelingTelecommunicationsHardware/Software Interface

For further information either call or send resume to:

PERRI-WHITE ASSOCIATES

50 FRANKLIN STREET

BOSTON, MASS. 02110 PERRI-WHITE & ASSOCIATES,

(617)423-1900 5373 W. ALABAMA PLACE

HOUSTON, TEXAS 77056

(713) 960-0350

Management Consultants

Specializing in Data Processing/Systems Engineering

All Replies Held In Strictest Confidence

INC.

TRY OUR SOFT PRICES

Contains its own micro processor for easy connection toyour RS232 serial port or TTY current loop.

MP-40

Interfaces to your micro computer parallel output port lorASCII data transfer

KP-40KIT .'

Contains mechanism, PC board, all components,transformer.and complete assembly instructions lorparallel data transfer.

$575*425'179

series printers' use the same reliable 5«? impact dot matrix mechanism*umns per line on ordinary paper with a print speed ol 75 lines 'minutr

i. SEND FOR FREE LITERATURE

Box 22101

Salt Lake City, Utah 84122

(801) 568-0201

tacting my numerous informants,snitches, and ratfinks scatteredthroughout the company, I finallymade contact with The Mole, thenewsletter's editor, who—despite mynot knowing this week's password-was eager to talk. "Although F8 partsare easy to get here," says The Mole,"a lot of us are starting to fool aroundwith other stuff, like the Z-80. (Sowe've) solved the problem of news-letter content by changing the name ofthe rag (to The Pit,) and moving fur-ther underground to avoid creditorsand others of a similar interferingbent."

The Pit has published articles suchas "A Twelve IC TV Typewriter,""Parallel Handshake Interface FromAn ASCII Keyboard, " "A Simple-But-Slow Analog Output For The F8,""Dynamic RAM For The F8," "Key-pad Data Loader" among others. Anespecially interesting article by TheMole uses the F8 as a controller forsurplus Diablo printer mechanismsthat are now available on the hobbymarket.

Thanks for the story, Joel.

Should The Mole and his accomplicescare to surface, BYTE would of course behappy to use its good offices to spread theword.

And Speaking of Homebrew. . .

Bay area hobbyists who haven't done soalready should look into Homebrew, a inven-tive and well-established organization. Dropa line to Homebrew Computer Club, POB626, Mountain View CA 94042 and findout more.

Nebraska Clubs

OMAHA, the Omaha MicroprocessorAmateur Hobbyist Association, has recentlycelebrated its first anniversary. Club accomp-lishments to date include the financing ofan Altair 8080, an audio cassette interfaceand an E & L Instruments MMD1— a microdesigned for educational and experimentalpurposes. The group currently meets twicea month at Northern Natural Gas Companyin Omaha.

One of OMAHA's board members, LtTom Smith, has formed a club in BellevueNE called MACH (no explanation of theacronym was given). The club meets thesecond Tuesday of the month in theCommercial Federal Bldg, Hwy 73-75 andGalvin Rd, Bellevue NE.

Interested persons should contact

Circle 421 on inquiry card.

178

Circle 422 on inquiry card.

OMAHA, c/o Rita Bianchi, S&DP-4thFloor, Northern Natural Gas, 2222 Dodge,Omaha NE 68102, or MACH, c/o ThomasSmith, 2708 Calhoun St, Bellevue NE68005.

Portland Computer Society

Portland Computer Society has recentlybeen in touch. Meetings are held on thirdSaturdays at 1:00 PM at Portland Com-munity College. For details write to PCS'snew address, 3763 SE Division, Portland OR97202.

Houston Amateur Microcomputer Club

Obviously there is strong interest in per-sonal computing in the Houston area. Onereflection of this is the growth of theHouston Amateur Microcomputer Club.Membership is now over the 100 mark, andaccording to their newsletter Nybble, theyare preparing to make a significant contribu-tion both in Houston and nationally. Con-tact HAMC, c/o Troxel Ballou, 3842Grennoch, Houston TX 77025, or call (713)661-6806.

Philadelphia Area Computer Society

Like Houston and countless other clubsPACS has grown dramatically with thepersonal computing boom. Their newsletter,The Data Bus, has doubled in size and im-proved in quality over the past four months.Club activity centers around the cospon-soring of the annual Trenton Computer Fes-tival, an active group purchase effort and amajor club project on 6502 applications.

Meetings are held on the third Saturdayof the month at 2:00 PM at the LaSalleCollege Science Building, 20th and Olney St,Philadelphia; workshops, courses and sub-groups meet prior to the club meeting,usually at 12:00.

You can write Philadelphia Area Com-puter Society at POB 1954, Philadelphia PA19105, or call (215) 923-3299 or (215)829-6745.

PET User Group

A user group has been formed for peopleinterested in the Commodore PET 2001computer. For those unfamiliar with thePET it is a compact computer with inte-grated keyboard, CRT with character andgraphics capability, cassette drive, 14 KROM operating system including full 8 KBASIC, and 4 K RAM user space.

The purpose of the PET user group willbe to share and exchange applications,

BUILD YOUR OWNVIDEO TERMINAL FOR$85 "PLUS"

EH -,i \M>\k'K

3 J MllWlli i

I I 1 i

LI Lii

• Serial ASCII or BAUDOT

• Full X-Y Cursor control

• 128 Characters, includingupper and lower case

• 16 lines X 6* characters

• S100 Compatability

• Operates on 7VDC unreg-ulated, 6.3 VAC @ 0.75 A

The SCT-100 Single Card Terminal interfaces directly to anycomputer or modem having serial ASCII or BAUDOT capabilityIt requires only the addition of a standard ASCII keyboard, and aTV monitor. It is available as a partial kit for $85.00 includingthe PC board, character generator ROM, and the 3870 micro-computer. The complete SCT-100 kit is $155.00 ($185.00prewired & tested).To order, call or write today. MC, BAC Accepted.

VECTRON P.O.Box //208S7, Dallas, Texas, 75220Phone (2 U) 350-5291

21 START-AT-HOMECOMPUTER BUSINESSES

in the shoestring, start-at-home

computer business handbook

CONSULT I NG •PROGRAMMING ©SOFTWARE PACKAGES • COMFREELANCE WRITING •SEM I NARS • TAPE/DISC CLEANINGFIELD SERUI CE • SYSTEMS HOUSES • LEAS I NG#SUPPL [ E5PUBL I SHING • TlME BR0KERS • HARDWARE DISTRIBUTORSSALES AGENCIES • HEADHUNT ING • TEMPORARY SERVICESUSED COMPUTERS • F I NDER ' S FEES0SCRAP COMPONENTSCOMPUTER PRODUCTS AND SERVICES FOR THE HOME

Plus - - hundreds of ideas onmoonlighting, going full-time,image building, revenue building,bidding, contracts, marketing,professionalism, and much more.No career planning tool like itever published. Order now and ifyou're not completely satisfied,send it back within 30 days fora full and immediate refund.

i n g bou nd

113 pp. • $ 12.00

DRTHSEHRCH

730 WAUKEGAN ROAD • SUITE 108DEERFIELO. ILLINOIS 60015

Rush copies of "The Shoestring Start- At- Home

Computer Business Handbook to me right away -

NAME/COMPANY

ADDRESS

CITY/STATE/ZIP

□ check ENCLOSEDQBANKAMERI CARDQMASTERCHARGE

179

Circle 423 on inquiry card.

Circle 424 on inquiry card.

OTHER SURPLUS STOCK

• KEYBOARDS - ASCIENCODED $40.00-S60.00

• CRT TERMINALS

• TAPE DRIVES $650.00

• EQUIPMENT CABINETS

• POWER SUPPLIES

"We've Got It!!

A NEW ADDITION TO OUR STOCK OFSURPLUS ELECTRONIC EQUIPMENT

The IBM Selectric® Based WI/O Terminal $695.00

■ INTEGRAL MODEM

• BCD OR CORRESPONDENCE CODE

• TABLETOP MOUNTING

• 22"W, Z2"D X 8"H, 58 LBS

• ASCII CONVERSION AVAILABLE

■ DOCUMENTATION INCLUDED

PRINTERS

TRANSFORMERS

WIRE-CABLE

/HHi Send for a free catalog or call Bill BlaneyVJ|7 toll free 800-256-1036. In N.H. 603-885-3705

ViLI -JWIJL ELECTPOniCSJIIC.

10 Flagstone Drive, Hudson, New Hampshire 03051

ManyOtherItems

Visit OurStore

I

16K RAM sftualtliyc 1

_JNTR0^^0AX.!SlJJlPi^.H^Q.-.,

19" RAC&S-10Q BUS CARD CAGE

RUGGED20 SLOTSEXTRUDEDCHANNELS

III

III

L

BUS TERMINATION

GROUND PLANE

SOLDER MASK

12.25"Hx8"D

ECT-100 CARD CAGE & MOTHER BOARD .... KIT $100ECT-100-F with 20 CONNECTORS & GUIDES .. KIT $200ECT-100-8080 CARD CAGE MICROCOMPUTER KIT $320ECT-100-Z80 CARD CAGE MICROCOMPUTER . KIT $420PS HEAVY DUTY 30A POWER SUPPLY KIT $100

10 SLOT TABLE TOP SYSTEMS

WRITE FOR SYSTEMS VARIATIONS & LOW PRICES

CPU's

8080orZ80

NEED NO FRONT PANELJUMP0N RESET CIRCUIT

MOTHER BOARDS 10, 20 or 21 SLOTS . .$40, $60 or$62

PROTOTYPING BOARD .$28 EXTENDER CARD .. .$24

SHIPPING EXTRA

ELECTBQMC CuWRLU TEChNQLQGV

P.O. BOX 6, UNION, NEW JERSEY 07083(201)686-8080

IIIIIIIIJ

programs and hardware expansion tech-niques, and to provide general user feedback.The first year membership is $5 and willinclude the User Notes publication. ContactGene Beals, POB 371, Montgomeryville PA18936.

"Name the Users' Group" Contest

A 5 year membership is the prize in a"name the users' group" contest sponsoredby computer hobbyists exchanging infor-mation on the use of Heathkits. Contestantsshould of course avoid submitting entrieswhich have been registered as trademarks,since these will not be considered.

Entries and requests for further informa-tion should be sent to Charles A Floto,267 Willow St, Apt 23, New Haven CT06511.

Southern Nevada

Southern Nevada Personal ComputingSociety was formed in June of this year andas of this writing (July) was still in theembryonic stage with meeting times andplaces still unresolved. Membership is opento Clark county residents and nonresidentstudents of Clark County educational insti-tutions. More information should be avail-able by the time this issue of BYTE reachesits readers. To learn more about SNPCSwrite 1405 Lucilee St, Las Vegas NV 89101,or call (702)642-0212.

Hex Users

A new Hex Users Club has been an-nounced for systems with 16 to 24 keys,EPA, Motorola Evaluation Kit II, restrictedto 6800 based systems, for now. For moreinformation write to Charles C Worstell,36012 Military Rd S, Auburn WA 98002,enclosing a stamped, self-addressed envelope,or phone (206) 927-6038.

Inland Empire Computer Club—Spokane WA

The Inland Empire Computer Club is a 50member organization. Meetings are heldat 7:30 each fourth Wednesday at theWashington Trust Bank at 3830 E Trent.To find out more about the Inland EmpireComputer Club write POB 1434, SpokaneWA 99210.

IBM 5100 Users Group

Those interested in contacting an IBM1500 Users Group are invited to write5541 Parliament Dr, Suite 104, VirginiaBeach VA 23462, or call (804) 490-0154."

Circle 425 on inquiry card.

180

Continued from page 30

The memory management technique ofLIL is to be as shown in figure 1.

Objects in a program may encompass thefollowing: real simple variables, integersimple variables, homogeneous arrays (realor integer), strings, numerical constants,string constants, subprograms, functions,parameters, pointers and labels.

Numerical representation has been chosenso as to be as flexible as possible. Integervalues are signed magnitude binary; realvalues have a binary coded decimal (BCD)mantissa with excess 64 binary exponent,a hybrid form which lends itself to thegoal of memory conservation.

At present, the only segment of LILwhich is actually implemented (on an MCS6502-based KIM) is the arithmetic package,a mixed mode, variable word length packageof great power and flexibility. Integer valuesmay be from one to seven bytes in length;real values may be from two to 14 bytesin length. These word lengths may be cur-tailed to smaller values as LIL is actuallyimplemented; much depends upon thedemands made by language features forspace in zero page.

As Mr Stavely suggests, LIL is being taken"one step at a time." However, it has beenfound that some of the more complex con-trol features planned for LIL make itnecessary to look ahead and allow for theirimplementation without "starting fromscratch" with each new feature. LIL is tohave control features which lend themselvesto the concept of structured programming.

Object code, along with its accompanyingreference table, is relocatable to any area ofmemory. Subprograms and functions may becompiled separately and used with differentmain programs. LIL has a COMMON state-ment through which global objects may belinked to a subprogram or function. Alllinkages in LIL are to take place throughdescriptor addresses; this implies executiontime type checking for all operations. Withthe exception of labels, any global objectmay appear in a COMMON statement,including constants. Thus, heavily usedobjects may be included in the main pro-gram's COMMON statement and berepeated in a COMMON statement at the

Ample Juice

Constant voltage power suppliesby Parasitic Engineering.

Give your Altair, IMSAIor custom system thepower it needs to keepyour programs up andrunning through brown-outs and power fluctua-tions. The famousParasitic EngineringConstant Voltage PowerSupplies deliver full out-put with line voltages as

low as 90 volts or as highas 140 volts. 12-amp kitdesigned for Altair 8800-(A), $90 postpaid. Uni-versal 20-amp kit, $200postpaid. (Cal. res. addtax).

9

ThinkerToys

1210 10th St., Berkeley, CA 94710

See it at your local computer shop.Or place BAC/MC orders to 800-648-5311

TarbellFloppy Disc Interface

Designed for Hobbyists andSystems Developers

Plugs directly into your IMSAI or ALTAIR" and handles upto 4 standard single drives in daisy-chain.Operates at standard 250K bits per second on normal discformat capacity of 243K bytes.

Works with modified CP/M Operating System and BASIC-ECompiler.

Hardware includes 4 extra IC slots, built-in phantom boot-strap and on-board crystal clock. Uses WD 1771 LSI Chip.6-month warranty and extensive documentation.PRICE: Kit $190 Assembled $265

* ALTAIR is a trademark/tradename of MITS, INC.

20620 South Leapwood Avenue, Suite PCarson, California 90744

O00

5

o

(213) 538-4261

181

Circle 426 on inquiry card.

Circle 427 on inquiry card.

rf-y ^.FINALLY, AA«r:^»AjTELEI»HONE

6800 AUTOMATIC TELEPHONE DIALERPROGRAM $9.95 postpaid

Have your 6800 system dial your phone • Usesonly 5 external components • Stores 650 variablelength phone numbers • Operates in less than 1Kbytes of memory

Includes: Paper tape in Mikbug1 format and ob-ject code • Circuit diagram and instructions• Instructions for adapting to other 6800 systems

6800 TELEPHONE ANSWERING DEVICEPROGRAM $4.95 postpaid

Have your 6800 system answer your phone andrecord messages automatically. Compatible withany 6800 system.

Includes: Assembly listing and object code • Cir-cuit diagram and instructions

Write to: SOFTWARE EXCHANGE2681 PETERBOROW. BLOOMFIELD, MICH. 48033

Mikbug" is a registered trademark of Motorola Inc.

Don Lancaster's ingenius design provides softwarecontrollable options including:

• Scrolling * Full performance cursor

• Over 2K on-screen characters with only

3MHz bandwidth

• Variety of line/character formats including16/32, 16/64 .... even 32/64

• User selectable line lengths

TELL ME MORE! ( ]

( ) SEND FREE CATALOG

Name:

Send instruction manual for the TVT-6 Kitwith full operational details. $1 enclosed.

. Zip:

ELECTRONICS, INC. c«y state —

DEPT. 10-B, 1020 W.WILSHIREBLVD.. OKLAHOMA CITY, OK 73116

beginning of each subprogram or function.The COMMON statement of LIL is to costzero additional bytes, no matter howlengthy the statement, with a maximum of256 common objects.

The concept of which Mr Stavely speaksseems to be ideal for the limited resourcesof the microcomputer. This is the softwaresimulated compiler, much in the samemanner that all arithmetic operations morecomplex than single byte addition or sub-traction must be software simulated.

As Mr Stavely rightly points out, theobject code of programs may be sharedbetween owners of different brand micro-computers; all that is necessary is that eachperson have a loader and interpreter whichdefines the proper "abstract machine."This is an exciting concept which bodeswell for those microcomputer owners whowish to establish a shared program network,and interchange ideas about the abstractmachine.

LIL is simply one version of the abstractmachine. However, the concept of controlbytes in the code seems to be a very generalidea which would be useful for any abstractmachine. A control byte is to appear as thefirst item of executable code (discountinga few overhead bytes such as "number ofbytes in code"), and control bytes are toappear after each 8 unit subdivision ofcode, or after each END OF STATEMENT,whichever comes first. The interpreter isto pick up control bytes "on the fly" as itexecutes the code. A copy of the controlbyte is rotated left each time the programcounter is incremented; thus, by examiningbit 7 of the copy of the control byte, theinterpreter can determine whether the nextunit of code is a 2 byte address or a 1 byteoffset. In LIL, END OF STATEMENT is aroutine which checks for certain valid con-ditions, then turns control back over to theprogram monitor which loads the nextcontrol byte and proceeds merrily upon itsway. Upon encountering code such asWHILE. . ., the program counter and currentstate of the control byte are pushed onto thehardware stack for preservation; by laterpopping this data off the hardware stackand restoring the values of the programcounter and control byte, execution isreturned to WHILE

Mr Stavely's article contains a most inter-esting concept which holds the promise oftruly high level programming languages forthe microcomputer, as well as portability ofcode from one brand of machine to another.

Please let us see more such stimulatingdiscussion of software concepts in the pagesof BYTE."

Circle 428 on inquiry card.

182

&4?

by Rodnay Zaks. Ref. C201 $6.95

TH E BOOK (MICROPROCESSORS : from chips to systems j

This book is based on the author's experience in teaching microprocessorsto more than 2000 persons during the past 5 years, both in a professional, andin a university environment. The seminars have received the highest ratings fortheir educational and technical value, and have been taught worldwide.This step by step book stresses:

1. How to assemble a complete system

2. Design trade-offs: advantages, disadvantages, problems, costs.About 250 pages, over 70 illustrations. Available August 1977

CONTENTS

A comprehensive introduction to all the essential aspects of microprocessors and microcomputers:Technical Introduction / LSI Technologies ' Internal Architecture of a Microprocessor / System Components /The Microprocessor Families / Microprocessor Programming / Applications of Microprocessors / Building a System/ Product Development I Design Aids / Microprocessor Selection I Evolution and Perspectives.

THE AUTHOR

Dr. Rodnay Zaks has been responsible for the design of industrial microprocessor systems since their inceptionin 1972. He is the author of 11 educational books in the field and more than 20 scientific publications.

CASSETTES

The 2 basic microprocessor courses are now available on cassettes. Each course includes 2 cassettes (2'/2 hours) anda special book:

51 — An Introduction to Microprocessors $29.95

52 — Programming Microprocessors $29.95

OTHER BOOKS

• MICROPROCESSOR ENCYCLOPEDIA

2 complete reference books, containing manufacturers' data and description of operation for every microprocessor.A necessary tool for any comparative evaluation.

E8 • 8 BITS MICROPROCESSORS: Am 9080, AMI 6800, EA 9002, Fairchild F8, Gl LP 8000, Intel 8080 A, Intersil 6100,Mos Tech 650 X, Mostek 3880, 3850, M 6800, NS 8080 A, SC/MP, RCA CDP 1802, PPS-8, Signetics 2650, TMS 8080,

Western Digital MCP 1600, Zilog Z-80 $29.95

E5 • BIT SLICES: AMD 2901, Fairchild Macrologic, Intel 3000, MMI 5701, Motorola M 2900, M 10800, NS IMP,Signetics 8X02, 3000, Tl SBP 0400 $18.00

• IMD — International Microprocessor Dictionary

10 Languages: English — German — French — Spanish — Italian — Swedish — Norwegian — Danish — Hungarian—Polish. 30 Pages $1.95

• ACR-Microcomputer Acronyms — 4-Page guide to abbreviations $1.00

• SEMINAR BOOKS (condensed notes)

B2 - Microcomputer programming $39.95

B3 - Military microprocessor systems $39.95

B5 - Bit Slice $39.95

B6 - Industrial microprocessor systems $39.95

B7 - Microprocessor interfacing techniques $39.95

IN-HOUSE TRAINING

SYBEX is independent from manufacturers and provides in-house training and education on all the above topics,as well as on specialized microprocessor techniques.

AVAILABLE SOON:

Microprocessor programming techniques (with 8080 and 6800 examples) $7.95

NamePositionCompanyAddress,

ORDER FORM

□ Send me

copies of =!

copies of =.

copies of = .

Subtotal _In California, add tax + .Postage and Handling ...TOTAL

Payment included: □ check □ P.O. □ money order □ other.

TO ORDER

Handling (fourth-class rate): nocharge. Faster delivery: $1.40 onebook, $0.90 each additional one.($2.50 overseas)

1. Fill attached coupon, or send P.O.

2. Enclose payment (prices are forU.S. only). In California, add tax.

3. Mail to SYBEX Inc, PublicationsDept, 2161 Shattuck Ave, Berkeley,Ca 94704. Tel: (415) 848-8233.Telex: 336311

In Europe: SYBEX - Europe, 313 rueLecourbe, 75015 Paris, FranceTel: (1)8282502, Telex: 200858

Circle 429 on inquiry card.

Ask BYTE

WHO HAS THE MOST STORAGE?

I read your April 1977 article, "ASoftware Controlled 1200 bps AudioTape Interface," page 40, and found itextremely refreshing to find magazinepeople really practicing low cost hard-ware methods with "nice" software. Itreally surprised me to see a machinestate diagram. However, the most inter-esting comment is that about a 3(VI tapecontroller and drive. I am not reallyinterested in working the electronics outfrom scratch as you are. But, like somany of your readers, I am very muchinterested in having a 9 track NRZIperipheral for my machine. My maininterest is the huge software availabilityfrom "big machines." For me, this soft-ware is accessible to run on my machine.I certainly would be interested in con-structing the interface hardware for a 9track drive and would like to see someinformation on that subject. My machineat present is a Z-80 with 128 K ofmemory. Soon, like now that the price isright, fast fixed point multiply anddivide is available and the micropro-cessor is now a decent minicomputer inperformance. The next thing for melogically is multiprocessing when I addthe other 128 K bytes.

RPIemich

307 Hatlen

Mt Prospect IL 60056

With a main memory region of that

size, you need at least a 9 track drive ora multiplatter hard surface disk. Here isan interesting and informal contest: leteach reader who reads this note send in apostcard giving the amount of memorypresently integrated (ie: plugged in,checked out and used as a programmingresource) in his or her system. Give ashort description of the system in use aswell as the type of memory technologybroken down by regions in addressspace. Address your cards to BYTEMemory Census, 10 Main St, Peter-borough NH 03458. ■

10,000,000,000 BITS

Could you tell me when I mightexpect to be able to purchase a Philips/MCA optical video disk system withwrite and read capabilities suitable foruse with a microcomputer?

Jack M Mann Jr

105 Yosemite Dr

Oxnard CA 93030

Rare circumstance falls in your favor,it happens that I sat next to Dr Jerry SSullivan of Philips Laboratories on aplane flight from New York City to SanFrancisco April 19. We were both go-ing to Monterey CA to attend the 1977IEEE Asilomar workshop on micro-processors. One of the topics of thewide-ranging conversation was the appli-cation of video disk technology in ameaningful way to personal computing.The enticement is there: if a writingmethod could be achieved we'd have amedia cost of $5 to $10 per disk withperhaps 10 billion (10^°) bits. Jerrycould not predict an exact date ofcourse, but Philips is indeed working onthe concept of a field programmabledigital version of the disk. It is con-ceivable that such a device might be

ready within the next five years. ThePhilips/MCA video disk which is sup-posed to be on the market sometimethis year is a read only device which willonly be available programmed withmovies and other visual materials. Func-tionally a digital version of the diskis similar to a fusible link read onlymemory or an ASR 33 paper tape withrubout: you can only write the informa-tion once. But with 70'° bits per diskand inexpensive disks, there is plenty ofspace to allow rewriting of files and up-dating by overwriting with the logicalequivalent of "rubouts. " Cost is an openquestion at this time, of course. . . CH"

TAKING STOCK

I want a small computer. I need it forstock market research. I can wangle themoney. I'm satisfied I can learn to pro-gram. But how can I get stock marketdata into my memory? Are there servicesthat provide stock market data for thatpurpose? Do you buy it on tapes? Ondisks? Can you tie your own computerinto someone else's data book through atelephone connection?

Shouldn't a greenhorn locate his datasource first before he can decide whattype of computer will be best for him?Why don't I ever see any ads for datasources?

Charles M Larson

Investment Consultant

11513 Havenwood Dr

Whittier CA 90606

It is a good point that one should tiedown the data source before assumingone can use it. Without any knowledgeof the charges and contractual arrange-ments, I do observe that the stock brok-erage office which is located in ouroffice building in Peterborough uses

CANADIANS!

Eliminate the Customs Hassles.Save Money and get CanadianWarranties on IMSAI and S-100compatible products.

IMSAI 8080 KIT $ 838.00ASS. $1163.00(Can. Duty & Fed. Tax Included).AUTHORIZED DEALERSend $1.00 for complete IMSAICatalog.

We will develop complete applica-tion systems.Contact us for further information.

RotundraCybernetics

M

Box 1448, Calgary, Alta. T2P 2H9Phone (403) 283-8076

COMPUTER MART

OFNEW HAMPSHIRE

DEALERS FOR

TDL ICOM IMSAI

DIGITAL GROUP

KIM-1

SOFTWARE INCLUDES:

8K BASIC EXT. BASIC

TEXT EDITOR DISK BASIC

WORD PROCESSOR

MACRO-ASSEMBLER

170 MAIN STREET NASHUA(603) 883-2386

is i

If yon rtK.6- 6-01B&-T0 f!»KE YouR.fx«T (o».T«»e iu EbP. /ou 'R.E.a-uy

Oue XT To YOUISSLF To &ET" IM OVJTl/p. TX-z.c-t:S of TtfE fJtpJhiQlLzoUilU.VJHY WASTE MftLuKSLE Ti»t t-E(Ht»Jiu*-THE. TRxtfcs of TVE T*«1>E THE- //flfh UlfiYTLekru r» the ComforfT of Youct ErtsyO/flrj^LftuG-H VOHile omens LEHH.W TMi fttbttfXTHis fRifc-rital. tio«.-To MWuM REfeMSTRitdrs fl/B^K Be6>*b finnm%u% /on—ABSOLUTELY SuAHHflEED oi You* Mo«r S/kAr.SEAJb $/Vl£ P/.s ^/S. n>s«» «nlWa^Lim*-Ti ED? 'f*.ofE£ixoM«ls tfcvr-M

25<J6 DEFa*.;, TT NW;fWfWT/i, tylosis

Circle 430 on inquiry card.

Circle 431 on inquiry card.184

Circle 432 on inquiry card.

COMPUTER AGE

999 S.W. 40th Avenue (441)

Plantation, Florida 33317

(305) 791-8080

ZXKZ

ixk:

We've got what you want. . .OFF THE SHELF. . . .

We've got Computers and Kits: SOL-20, Cromemco Z-2,Polymorphic Systems, and more. . .

/4/VD-Peripherais and Accessories such as Floppy Disks,Seals Memories, Cromemco Boards, Processor TechnologyBoards, Keyboards, PROM Programmers, CUTS, Printers,TV Monitors, CRT'S, Assemblers, Basics, Fortran IV (for8080 and Z-80), ALL the magazines, Chips, etc. etc

AND-We've especially got people with answers who are

willing to help you design and build your completesystem or help you get up and running. . . . Systems areon display for you to get HANDS-ON experience.

WE SER VICE WHA T WE SELL

Whether your ideas include your own system develop-ment or Turnkey Applications. ... We can help you. . , .

Stop by and see our "AFFORDABLE COMPUTERSYSTEMS AND COMPONENTS FOR HOMEAND BUSINESS"

^ ************ jj,

BAR0AI8: IBM cards

$4.50 each

* *

***********

They come printed in beige on a navyT-shirt with an indelible pen to punchyour own message/ How about equa-tions? Maxwell's, Legendre, Cauchy,Schrodinger or Einstein. We have thoseon shirts, too. How about a flip-flop or ananalog circuit, a Shakespeare sonnet or anH-R diagram, the periodic table, or aChopin Etude, Heme or Chlorophyllmolecular diagrams, the Krebs cycle, theCarbon-Nitrogen cycle, early Earth geolo-gy or Frog anatomy, the human circulato-ry system, a Venn diagram or a structuredflowchart. Sizes, S,M,L and XL. Include50 cents pst & hdl. Circle reader card orwrite for free illustrated catalogue.

OUTER PRODUCTS Dept N Box 88LAFAYETTE HILL, PA. 19444

SIX PORT I/O CONTROLLER

• Program Control of Ports

• S100 Buss Compatible

• Parallel I/O

• Single Printed Circuit Board

$149.00

VIDEO SYSTEM

• 30 x 64 Display - 1920 Char.

• 128 Character Buffer

• 1 Msec Read /Write Time

• Extensive Software Provided

• Programmable Display AttributeCharacters

$349.00

Available in Kits or Assembled

BankAmericard and Master Charge

Accepted

Dealer or Club Discounts Available

IOR

Box 28823 Dallas, Texas 75228

Circle 433 on inquiry card.

Circle 434 on inquiry card.

Circle 435 on inquiry card.

SURPLUS

BARGAIN

+ 5V@ 8.5A - 12V @ 2A

♦ 12V@2.5A +180 V @ 150 ma

+30V @ 200ma (unregulated)-6.2V @ 25ma (no adj. pot)

Brand new. made by CDC formicroprocessor terminals. 110 VACin, regulated and adjustable DCoutputs. Overvoltage protected +5,-12. Power status signal. Fan.Schematic. Original list $600+.From stock. UPS paid, custom foambox. guaranteed. $50.00

ELECTRAVALUE INDUSTRIAL

BOX 464

Cedar Knolls. NJ 07927

(201) 267-1117

TYSON S CORNER. VIRGINIA(WASHINGTON, D.C. AREA)

THE

COMPUTER SYSTEMSSTORE

"Specializing in Systems"

FEATURING:

Prccessof Technology

Poly Morphic

Diablo

E &L

Veclot Graphics

Apple

CROMEMCO

Lear StecJer

DEC

SWTPC

Seals

Digital Group

TDL

Books — Magazines

COMPUTERS FOR HOME. SCHOOL. & SMALL BUSINESSOur staff will help you select from ihe bes! of each manufac-turer 10 complete Ihe system best suited to your needs

SPECIAL: LEAR-SIEGLER ADM 3A

CSS

COmPUTER SYSTEST1S STDRE

1984 CHAIN BRIDGE ROAD. MCLEAN. VA 22101

TELEPHONE (703) 821 -8333

OPENING SOONALEXANDRIA VA -NORFOLK,VA • BALTIMORE MD •ORLANDO,FLA

Disc/3

DISC/3 COMPANY

COMPLETE MICRO

BUSINESS SYSTEMS

A/R, Mailing Labels, G/L, Pay-roll, A/P, etc.

plusLear Siegler $ 749.95

ADM-3A kitI MSA I 8080 kit $ 599.95

Centronics Business $1145.00

Printer (132 columns)

Disc/3

DISC/3 COMPANY

1840 LINCOLN BLVD.

SANTA MONICA, CALIF. 90404

(213)451-8911

Circle 436 on inquiry card.

Circle 437 on inquiry card.

Circle 438 on inquiry card.

Washington D.C.'sNewest Computer Store

IntelligentBusiness

Machines, Inc.

Cromemco, IMSAI,TDL, Administrator I,SEALS, DIP Chips, etc.

Come see us at

938 Ellsworth Dr.

Silver Spring, MD 20910

301-565-2711

-9a/lS,

toufaJU —

i4.ua

l2VDPDTMWt£Na.OSE0

J H 1 .1, tji»,j K 9 (III III I)

Pi H RLI AY 51.50

SB. SO

Rl. 1 D SW BOARD. 19/BD:

i AH nil OP-AMP (1.75

1 ACH Tl RM1NATES lo

Nf " t.fJUAO 555 5J.II]

1 DCELONNLCTOBJ1JQ

1 IGAROGAS SI.NSOR5.

PI R BOARD

#109. «812, JSIl, 15.95 eo.

Sf'OS ROOM R DIPSW 52.2S

PHOTO CELLS (CIS) S.Ti na.

lOI'OS BCD THUMBWHEEL

IH-PUI AR LEU YLL/CRN i2.

SW 1-2-4-8CODING |SIMI

1 LECTROLUMIN£SCEN1

LARTOLK-OBO.'M)

PANEL GLOWS PALQ (,RI EN

11.50

WITH 115 VAC APi'l II D.

MINI Id POS ROTARY SW

WIIH KNOB t.99

NOTICEA8LI MGVl.MJl-

rHERMALSWOPENS Al

I2fl F \M

TRIPLE TO! ALUMINUM

III VJ SINK -1.5 L. x i W.fc

30 Mil/ CRYSTAI M SO

1', II.ASI RODVNI B3S16-

13 A 11 J'lN MOI.I.X CONN.

M5-A91B 52.25PIUHO 1 LASH CAPS S70MFO

M I'lN (tip GOLD PLATED

,150 V f.«J9

SOI Ml R TAIL s.-iiicj

CT7MI CLUCK BOARD,

12V SPSI MICRO-MINI Pl.ll

SPACE FOR 6c*. l>i 7(»r>

Ril D RELAV..5AMP

15415

- COMING SOON -

■ S K BYTE F.PROM BOARD (2708)

• PHASE ENCODED CASSETTE INTERFACE WITH

PROGRAMMABLE SERIAL PORT: DUAL RE-

CORDER TARBELL or K-C METHOD SUPPORTED.

• 2708 PROGRAMMER

ALL MENTIONED ABOVE ARE S-100 BUS COMPAT-

ABI.E SEND SASE TOR INFO.

ELECTRONIC

DISCOUNT SALES

138 N. 81st STREET, MESA, ARIZONA 85207

SWTPC Buiinsu Programs

Math Package. 5 byte mantissa, 1 byte exponent1 V/j digit accuracy. Fortran-type formatting (Integer,Floating Point and Free Formatting on bothread and write) $25.00

Letter Writing Editor. No line numbers needed. Subset

of Honeywell's 1648 Time Sharing Editor. $25.00

Payroll. Phone lor details.

Accounts Receivable. Phone for details.

Stock Club - Marketing Evaluation. This is the sameprogram used by Custom Computer Services to provideaccounting for clubs belonging to the NationalAssociation of Investment Clubs.

Disk Based SWTPC Business Systems. Phone for details.

Dealer for SWTPC, Smoke Signal Broadcasting, Percom,Teletype®, GE, Tl, Centronics, Motorola, etc.

To Order: Include 3% postage. Illinois residents add5% sales tax.

AAA Chicago Computer Center

3007V. W. Waveland Avenue

Chicago, IL 60618

(312) 539-5833 (3 PM - 6 PM)

Circle 439 on inquiry card.

Circle 440 on inquiry card.

Circle 441 on inquiry card.

telecommunications equipment suppliedby GTE Sylvania with a number ofdifferent video terminals and printers.It is all pretty standard communicationsequipment, although the size of the GTEequipment case in the hall (a full height19 inch rack cabinet) suggests a dedi-cated minicomputer as the local satelliteof a network. Based on this observation,it should in principle be technologicallyfeasible for you to hang onto a stockmarket wire and accumulate data via anRS-232 port and modem as it is gener-ated day by day. There is also a wholehost of stock market analysis firms,many of whom may offer some form ofmachine readable data as a by-product.Consult the advertisements in the WallStreet Journal or Barron's. If any readerscan help by providing specifics in answerto Mr Larson's request, please write sothat we can make the data available.Once the source of data is better de-tailed, it is possible to make some morespecific comments.

As for why you don't see any adver-tisements for data sources, perhaps it isbecause none thought of selling the databefore. Perhaps your letter will helpcreate a market.*

WHERE DO I START?

I am currently a college student en-rolled at a community college. I haveseveral issues of your magazine and havebeen reading about all the small systemsof computers. I am very interested inowning and operating a small computersystem except for one thing: how muchdo I need to know to set one up? Speci-fically, how much digital electronics,electronic assembly, computer scienceand programming knowledge do I need?Assuming I need a lot of this type ofknowledge, how long might it take meto master it so I can set up my system?

I intend to use my computer for

games, mathematical modeling, digitalto analog devices and simulation. Iwould love to set up a system to do allthese things, but I don't want to waituntil I have a bachelor's degree in com-puter science to do it. I would greatlyappreciate any guidance you could giveme on what kind of knowledge or ex-perience I would need in order to set upa workable system.

John Graffio1094 Quail Creek RdFallbrook CA 92028

The minimum "set up" time for apersonal computer, by far, is throughpurchase of an "appliance" computerwhich comes ready to use, in the samemanner as a stereo receiver comes readyto use. In this category are the latestcalculators (such as the brilliant newSR-59 from Texas Instruments with itsprinter and ROM software attachments),or true general purpose computers suchas the Apple-ll, Commodore PET 2001,or Nova/ 760. All of these come com-plete and assembled. If you want kits,those products range in complexity fromsimple peripherals to complete systems.Kits naturally take more time to getinto operation and debug. Kits such asthe Heathkit computer products assumeno initial familiarity with electronics,and provide tutorial materials to get theuser into operation.*

CONVERSIONS?

As a newcomer to the field of com-puters, I am just beginning to understandthe hardware, but my software problemsstill exist en masse. While thinking hexa-decimal is nice, I have been brought upthinking in a base 10 numeral system(whatever that is?). I know not whetherthis is an extremely simple and trivial ora vastly complex question, but tell me,

how does one get all those rows of Isand 0s into groups of four BCD bits? Ican understand actually counting up tothe number with a high frequencycounter (eight 7490s in BCD formatparalleled by eight 7490s in binaryformat driven by a 10 MHz clock), somecomplex software method that appliestables, or even successively subtractingout exponents of 10. But I figure somegenius, somewhere, has as algorithm. Canyou help me?

Whit Smith

606 Brookwood Ln

Goldsboro NC 27530

Conversion of a binary number to adecimal number was presented in somedetail for the 8080 processor in anarticle entitled "How to Do a Number ofConversions" by James Brown on page50 of our September 1976 issue ofBYTE. There is no magical short cutwith most processors: you compare theinteger successively with values of 10raised to various powers (stored in atable of binary numbers) and deriveeach digit of the converted BCD numberfrom the binary by successive subtrac-tion of the appropriate power of 10 (ordivision if you have such on your pro-cessor). Conversion of the BCD form toan external ASCII representation iseasier, and can be done by adding thehexadecimal constant 30 to each 4 bitBCD digit value, giving an 8 bit ASCIIvalue from hexadecimal 30 to 39, whichprints as the character values 0 to 9respectively. Converting BCD inputs orASCII inputs to binary internal formsis fairly simple as well: for each succes-sive digit entered, multiply the previousentry sum by 10 (add the old value tothe sum ten times for a less than optimalbrute force technique), then add the newentry (carefully limited to values from0 to 9) to the previous entry sum givingthe new entry sum. ■

^smm^im^^s^

S—

APPLE IPs

Microcomputer

^=2

flLJHlPlp

Available at

•>i-

IT'S A GREAT BIG COMPUTER WORLD

.^

ComputerPlayground

systems, peripherals, customprograms for business, service,sound counsel on equipmentselection.

_g_ But You Only Need "

x-THE COMPUTER CORNER-*

"**~ • SOL - A New Dawn Is Here! -*-"*" • IMSAI 8080 -<*-*1- •POLY-88 -**--**- •TDLZ-80 -*-

-W-

•Memories & I/O Boards

-H-

■ Demonstrations

We stock IMSAI, ICOM, '

■■**-

•Computer Book Service

-M-

-44-

■ Rentals

Technical Design Labs, Vector

-M-

•Magnetic Tapes & Disks

■ Games

Graphics, Heuristics, and otherlines, and provide business

■X-

■w-

■M-

•Full Line of Magazines• Brain Games & Puzzles•Workshops & Club Information

-W-

■ Color Graphics

packages and engineering

■X-

Visit THE COMPUTER CORNER for

-t+-

■ Repair and Service

design.

-w--x-

■X-

all your computer needs. Stop in andbrowse — you'll like our personal service.

-W--KJ--14-

■ Also see the KIM-1 system

Microtex, Inc.

X-

•*t-

-X-

THE COMPUTER CORNERWhite Plains Mall Upper Level

200 Hamilton AvenueWhite Plains, New York 10601

-t4--H--W-

6789 Westminster Ave.

Microcomputer specialists

X-

Tel: 1914) WHY DATA

-+*-

Westminster, CA 92683

(713) 780-7477/9305-D Harwin

-Vr-

Ample Parking10 6 Daily & Saturday

Phone 714-898-8330

Houston, Texas 77036

if , iu-y i nursday \ •V

Circle 442 on inquiry card.

Circle 443 on inquiry card.

Circle 444 on inquiry card.

186

South Florida

Sunny ComputerStores, Inc.

South Florida's First Computer StoreWE CARRY:

• ALPHA MICRO SYSTEMS,MICRO FILE, PROCESSORTECHNOLOGY, IMSAI

• BOOKS, MAGAZINES, NEWS-PAPERS

• FULLSERVICE•SOFTWARE

•WRITE OR PHONE US FORPRICES

MORE THAN JUST A TOY

Monday 12 noon — 9 pm

Tues.-Fri, 10-6

UNIVERSITY SHOPPING CENTER1238AS0UTH DIXIE HIGHWAYCORAL GABLES, FLA. 33146(305)661-6042

ASSEMBLED AND I E S I E. D

REMEMBER16K

UBIED AND IE

S520Features;

STATIC OPERATIONACCESS TIM! ?S On sS 10 0 BUS COMPATIBU

low powhi i y fit: a i i 1?0 5ma Eh1 0 5ma H.v24roa 16, nt-g

BATTERY BACKUP

AVA1AR SYSTEWS

LAS VEGAS NEV 8'J lOfi1702) 733 8 3 0-1

BASIC BUSINESS SOFTWAREDisc Sort $195

Interactive system generates customized job-stream sort module for sequential or randomfiles.

Correspondence Processor $195

Manipulates text and name/address disc fileswith prompts and error checking. Very easyto use.

Key-to-Disc $195

Interactive system generates custom modulewith user defined CRT/disc formats, validitychecks and automatic entry duplicate or in-crement.

Supplied on diskette with user manual and pro-gram documentation. See your Altair dealeror contact us.

THE SOFTWARE STORE

706 Chippewa Square Marquette Ml 49855Master Charge - 906/228-7622 - VISA

Circle 445 on inquiry card.

Circle 446 on inquiry card.

Circle 447 on inquiry card.

THE PROM SETTERREAD/WRITE

1702A and 2708

ALTAIR/IMSAI COMPATIBLE

NO EXTERNAL POWER SUPPLY

LET YOUR COMPUTERDO IT ALL

SOFTWARE INCLUDEDDoubles as an 8 Bit Parallel I/O

KIT COMPLETE — $210ASSEMBLED — $375

DELIVERY LESS THAN 60 DAYS

SZERLIP ENTERPRISES

1414 W. 259th STREETHARBOR CITY, CA. 90710Calif. Res. Add 6% Sales Tax

••

computer •

••

depot: ino™ •

•

3515 W. 70th Street •

•

Minneapolis MN 55435 *

•

612-927-5601 «

••

Upper Midwest #

•

Headquarters •

•

for •

•

••••••••

•

PROCESSOR TECHNOLOGY, IMSAI, •POLYMORPHIC SYSTEMS, DIGITAL •GROUP, CROMEMCO, VECTOR -GRAPHICS, TDL, SEALS, TARBELL,MICRO DESIGNS, NORTH STAR, *NATIONAL SEMI-CONDUCTOR, •FAIRCHILD SEMI-CONDUCTOR, •MOSTEK, E & L INSTRUMENTS, #SAMS, TAB, HAYDEN, WILEY,MC-GRAW HILL

•

Catalog Free •

f

ECONOMYTERMINALS

ET1 CRT

TERMINAL

FEATURES

Box 1226I ^^^ ^Mfe^TMinneapolis. Minn. 55412 ^^^| Jm16121522-1076 ^"^

• 24x80 display, With anti-glare screen &filter

• 12" industrial 15 Mhz monitor

• 90 day warranty (parts & labor, F.O.B.factory)

• 96-hour elevated-temperature operatingQ.C. test

• RS 232 and 20 ma interface

• LF. CR. BS, Local. Rubout. Break, Home &Clear. Tab*, Remote Cursor Placement*,and Scrolling*

• Micro-Processor based, with 63-key

keyboard «

"These (unctions varv with the model selected.

Circle 448 on inquiry card.

Circle 449 on inquiry card.

Circle 450 on inquiry card.

BVTESHDP

the affordable computer store7825 BIRD ROAD QF(305)264-2983 MIAMI

DIAL264-BYTE nt,"n"

WE HELP YOU GET YOUR SYSTEMUP AND RUNNING.

MEMORY EXPANSIONCOLOR TV GRAPHICSLEAR SIEGLER ADM 3PAPER TAPE READER

IMSAI 8080

BYTE-8

SWTP MP68

CROMEMCO

PROCESSOR TECH

INTERFACES (KITS or ASSEMBLED UNITS)

IN FORT LAUDERDALE

1044 E Oakland Pk Blvd(305) 561-2983

• •INTRODUCING NEMESIS 7-•THE GAME WITH THE BRAIN

ni Him. Pebbles were arranged into ) column-, ot 7, 5, fc 3pebbles each, i'lay alternated wltii nn opponent. Each couldremove Oltjr or .ill pebbles from ;i column but could m<inipulat-<only one column per move. The loser took the U»l pebble.

Your respectable opponent in Nenesl*7 ll a Fixed programcomputer consisting of o custom designed LSI computer clilpor Circuit. To win is extremely dill [cull but P0»8il I..

Humeri opponents are ^lso pern It ted.

i.,-v to instable kit includes .ill parte texcepi battery)

including custom HOS compuier circuit, Jt: board < case.

Some Soldering required $ 1.95

Kit that requires no soldering $14.95

Complete factory .is-iembled gvime $16,95

Battery extra (9V transistor radio) ? 1-30

Include $1.50 shipping Nevada residents odd IS P5T

Send check or money order tor

Computer Creations Inc.

118 West 2nd Street; Reno, Nevada; 89501

CONNECTICUT'S LARGEST

JRV COMPUTER STORE

DECWRITER II S1750.00

— W/ RS232C INTERFACE —

• IMSAI 8038 ONE BOARD COMPUTER

• TDL XITAN SYSTEMS

• SWTPG800 SYSTEMS

• VFCTOR GRAPHICS

• NORTH STAR M1MI FLOPPY

• TEXAS INSTRUMENTS CALCULATORS

• PERKIN-ELMER DATA TERMINALS

i 18 OTHER LINES OF MICROCOMPUTERSAND PERIPHERALS

FALL SPECIAL:

8K STATIC RAM

250ns ACCESS

S 100 COMPATIBLE

ASSEMBLED

BURNFO IN FOR 80 MRS

1 YEAR WARRANTY

S200.00

COMPLETE BUSINESS PACKAGE (AVAILABLE NOW)

ACCOUNTS RECEIVAULi BILLING ACCOUNTSPAYABLE PAYROLL AND INVENTORYDESIGNED, CODED. AND rHQROUGHLY TESTEDBY TOP FORTUNE 500 BUSINESS ANALYSTS.

37ld WHITNEY AVENUE . UAMDEN. CT ■ 1203) 281 1463

Circle 451 on inquiry card.

Circle 452 on inquiry card.

Circle 453 on inquiry card.

E-Z-HOOK

E-Z Hooks have been designed and field tusied through the industry !o savelime and money in commercial electronic production and servicing. Thespring-loaded hook attaches (irmly, yet so gently it will not damage compon-ent - frees hands while testing. Durably constructed and fully insulated to asingle contact point assuring true readings Meets exacting laboratory andspace age computer technology requirements. AVAILABLE IN 10 RETMACOLORS: Red, black, blue, green, oragne, yellow, white, violet, brown

MICRO HOOK

,,-w~w» >Mff&8m?M

where weight and leverage maydamage component $.80 ea.

Specify color. ORDER P/N XM

Jumper with XM

Micro Hooks

Order No. Length Price

204XM-12" 12" SI.70

204XM-24' 24" 1.70

Specify coloi

-~—h*»« 11 ii&aT™&ty ■■■■'

XM-S MICRO HOOK SET {includes 1 c„. red,COMPLETE SET (10) MICRO HOOKS

MINI HOOK

in.

XIOOWMini Hook ca.jB" i,

ture size and F In get eze Hypo A<Hook is large enough

pom

Specify

ORDER P/N X100W

Jumper X-100W Mini Hook

to Stacking Banana Plug

Order No. Length Price

v^^^Tl

SI .35Specify color.

Jumper with X-100W

Mini Hooks

Order No. Length Pri

204-12W 12" SI.

204-24W

Specify color.

24"

XmJ

Jumper with X-100W MiniHook Order No. Length

EXTRA LONG MINI HOOKXL 1 Mini Hook (5.0" long) comtairwith an extra long body. It will rcard racks and trhough deep wiring

i features of the X100W

. .'"order p/n xl'i

Specify color. $1.25

JUMPER, XL-1 MINI HOOK TO STACKING BANANA PLUG

Order No. Length

mmmmm^M

NEW from FLUKE - MODEL 8020ATHE DMM FOR THE PROFESSIONAL

• 200 Hr Battery Life

• 26 Ranges for 7 Functions

• 2000 Count Resolution

and

Auti

pol

nty

• MOVprotected to 6000Vagainst hidden transientsand overload protectionto 300 V AC

• Diode Test Function

• Conductance Function

cks I

.age

to 10,000 meg ohm• Size; HWL (7.1x3.4

(18.0x8.6xcm)• Weight: 13 oz.

NEW from CSC

iggg 0P

Frequency Characteristics Ran4e: 20 H/ to 100 MHi (guaranteed):110 MHi typical. Gate time: 1 sec. providing 1 '-^resolution throughout Ireq range. Accuracy: I 1 count • Time Bate error.Input Characteristics Impedance: 1 Mi! shunted by 50 pf Connect-or: phone jack. Coupling: AC Sine Wave Sensitivity: 30 mVRMS;10 Hr50MHz; 100 mVRMS. 50 MHz to 80 MH*; 300 mVHMS.80MHi and above. Maximum Inpuf200 V Peak. 20 MH/-5QQH; 100VPeak, 500 Hr-1 KHj, 75 V Peak. 1 KHHO MH?;50V Pcitk, 10 MHiirtd above.

Internal Time Base Characteristics Frequency. 3.579545MH,' crystaljscillatur. Setauilny: •. 3 Bpn)<$2S°C. Trimmer Ad|i.st merit: ' 4upm. Temperature Staitiliiy: Belter than 0.2 ppm/"C 0 u 50UC.^imumA^Rat.lOppm/yea,. ^ ^ ^^

OTHER CSC PRODUCTS

SOCKETS AND BUS STRIPS

QT47U B..5OT35S Sue*OT35B BusOT1BS Sock

PROTD CLIP

®,

Our Quality Is Best!

PETMODEL 2001

SPECIFICATIONS

DIMENSIONS LWD IB 1 .'2 *

VIDEO DISPLAY UNITKEYBOARD

CASSETTE STORAGEFast redundant recording sch

reliability ul recording and r

OPERATING SYSTEM

SuppQftS multiple languages • Machine languagi

INPUT/OUTPUTinf>ut;output

tei I/O Willi GET L-ummlei BASIC enpansron wiinBASIC INTERPRETERExpanded 8K 9ASIC • U

PEEK and POKE commarvd:

QUITE PORTABLE

VERY AFFORDABLE

AND UNBELIEVABLY

VERSATILE

the PET

computer

may very well

be a lifetime

investment

MODEL 2001$595.00

OPT. 8K RAMONLY $795.00

mine BASIC COfttr.

2IM TRANSISTORS

.V.----.08A2!\i697

2N929

2N93Q

2N1132

2N1G13

2N1711

2W1893

2N2102

2N2160

2N2218

'JT-12? ISA

2N2219

2N2219A

2N2221

2N2221A

2N2222

UN 222?A

2N2368

2N2369

2N24752 N 24842N26052N2G08 :

2N2645

Si 2904

2N2'J07

■ 2N?'J07A

■ 2N29242N292T)?N2'ILM">2NH019

2M30542N30f.fi2N33752N3391A

2NX.19?3N3 3932N34542N341G2N34172N34402 N 34.12

3n:!&q:i2N35G3

2N3'Jl>42,N3Sr>[;2N35672N3bf>8

2N3rji".92N3.J382\3f,3HA2 N 3(7.4 2

2N3G45

2N37247 N 3 7 2 52N37312N3740

2IN40362N4037

JIN .105 82N40SOJIN 4 06!2N4 093

4 220 A4224

4 2 28

:.0 2N3789 3 00

»2 2N3819

22 2N3823

00 2N3859

H0 2N3860

an 2N3866

15 2N3877*

16 2N3903IK 2N3904

19 2N390530 2 N 3906

tR 2N39B5

20 2N395722 2N395820 2N3962

20 2N39 7 02N4032

20

1 20 2M4235

1 50 2M4237

2 40 2N4238? 50 2N1248

2N4.249

2N4250

. 2M425G

70 2N42S8

22 2N4348

20 2M4395

1 10 2N4400

29 2N4401

20 2^4402

->2 2N4403

in 2N4409

-n 2IN4416

2 70 2N44251 50 2M4427I f,o 2IN4858

35 2N4898

1 20 2N4918

fiO 2N4919

2M49212M49222N4923

?M4oa:>

2M49H42N4937

2N4988

2M49892N4991

2M49932 N 49 94

40 2N508S

1 80 2N5109 1 .90

1 20 2N5131

30 2 N 51 33

22 2N5134

18 2N5172

24 2N51 792N5190

2N',30G2N53082N53092N'i3212(^532?2Kib3232N53542N5355

2N5 366

2N53G72Ni>3GR;,NI)3G92NG3/0NG3 73N53 75?N!>3832N53972N54 1R2N54 19

2N5191

2N51 94

2N'G2 10

2M5219

2N5220

2N5221

2N5223

2N522G

2N5227

2N5232

2N52 32A

2N5249

2N54482M5449

2NS4S0

2N54512N54572N545B3N54842N54902N57772N57782N58I 12N5H172NG81H2NSH192N5822

34 2N5824

40 2M5B25

52 2N5826

.GO 2>M5827

70 2NS828

70 2N5B28A

34 2^600038 2N60O1

2N6O02

50 2N6014

50 2NG015

25 2NG027

26 2N602828 2NG034

.28 2N6035

28 2N6037

-58 2N607G

2 50 2N6099

30 2WG101

35 2N610340 2N612130 2NR12230 2N6123

25 2N

124

20 2N612525 2N612660 2N621845 2N6219

GO 2N622070 2N622260 2N622355 2N622440 2NG225

JAPAIMESE T

2S8405

2SC536

2SCS28

2SC829

2SC929

2SC93D

2SC933

2SC1226A

2SC1359

,85

?/■

.20

■?r

BQ

w

50

?>"

'10

?./■

30

00

25

90

RANSISTORS

2SC19 73

2SC1974

2SC1975

2SC2034

2SD72

2SD313

2SD325

3SK49

3.003.103.40

PLESSEY SAMPLER 300 METALIZEDCAPACITORS 18DIFFERENT STD.VALUES $26.00

SAMS BOOKSTTL COOKBOOK

No.21035 S3.

IC OP AMP COOKBOOKNo,20969 S12-

TV TYPEWRITER COOKBOOKNo.21313 S9.

CMOS COOKBOOK

No.21398 S3.

TRANSISTOR SUBSTITUTIONHANDBOOK, 15ih Ed.No. 21 169 S4

TRANSISTOR SPEC. MANUAL, 7th EdNo.21208 S5

SEMICONDUCTOR REPLACE. GUIDENo.21 092 S3.

BUILDING AND INSTALLINGELECTRONIC INTRUSION ALARMSNo.20929 S4

UNDERSTANDING IC OP-AMPSNo,20855 S3

HOW TO USE IC LOGIC ELEMENTS.2nd Ed.

No.21081 S4

UNDERSTANDING CMOS IC'SNo.21129 S4

N5223BN5224BN5225BN5226BN5227BN5228BN5229BN5230BN5231BN5232BM52338N5234BN5235BN5236BN5237B

N5242BNG243BN5244BN5245BN524GBN5247BN5248BN5249BN5250BN5251BNS252BN5253BN5254BN52558N5256BNS2S7S

ZENER DIODES

N4729AN4730AN4731A

N4 7i52AN4703AN4754AN4755AN47GGAN4757AN47G8AN4759AN4 760A

5259B 39 .22

5260B 43 22

5261B 47 .22

5262B 51 .22

5264B 60 22

52G5B 62 22

DIODES

IN914 10/1.00

IN4002 10/1.00

IN4003 10/1.00

IN4004 10/1.00

IN4005 10/1.10

IN4006 10/1.20

IN4007 10/1.20

BUILD A WORKING DPM IN 1/2HOUR WITH THESE COMPLETEEVALUATION KITS.

Test these new parts for yourself withIntersil's low-cost prototyping kits, com-plete with A/D converter and LCD display(for the 7106) or LED display (lor the7107). Kits provide all materials, includingPC board, for a functioning panel meter.

ICL7106EV (LCD)ICL7107EV (LED)

S29.95S24.95

50V CE

5pf 9/pkgIBpf 9/pkg25pf 9/pkg27pf 9/pkg47pf 8/pkg68pf 8/pkglOOpf 8/pkq150pf 8/pkg220pf 8/pkg270pf 7/pkg

CAPACITORS

RAMIC DISC S1 00 Per Package

300pf 7/pkg ,0047mfd 9/pkg

330pf

390pf470pf560pf680pf

7/pkg7/pkg7/pkg7/pkg7/pkg

.OOlmfd 9/pkg.0015mfd 9/pkq,0022mfd 9/pkg.003mfd 9/pkg

.005mfd 9/pkg

.Olmfd 9/pkg

,015mfd 8/pkg

02mfd 8/pkg

,022mfd 8/pkg

.03mfd 8/pkg

.039mfd 7/pkg

.04 7mfd 7/pkg

.Imfd 6/pkg

PLESSEY POLYESTER MINI BOX

MF

.001

.0012

.0015

.0018

.0022

.0027

.0033

.0039

.004 7

.0056

.0068

.0082

.01

V10001000100010001000100010006306306306306306 30

MF V.012 630.015 400

15

.018

400 .15

MF V S

.18

.022 400

.027 400

.033 250 ,15 .3'

,039 250 .15 .4

047 250 .15 .5,

.056 250 15 .61

.068 250 .15 8

.082 250 .17 1.0

1 100 .17

.12 100 .18

MATSUO DIPPED TANTALUM

1 35

15 35

,22 35

.33 35

.47 35

.68 35

1.0 35 .33 10.0 161.5 35 .40 10.0 25

S MF

.33 10.0

40 15 0

.42 15.0

45 22.0

40 33.0

.45 47.0

42 68.0

51 PF .2962 PF .2975 PF .2982 PF .29100 PF .30120PF .32150PF .35180 PF .41ALUMINUM E

5 10 .13 22 I

> DO .14 33 10

1% MICA 500V

1500PF j2000 PF ,!2200 PF .!4700 PF M

220 PF .41240 PF .46300 PF .50390 PF .50470 PF .50620 PF .52820 PF .531000 PF ,60LECTROLYTIC (RADIAL LEAD)

5100 PF 1,8010000 PF 3.60

35

?5

220

50 .50

1000 35

.as

330

0 .30

1000 3r.

ii

3

330

16 .3335 .40

1000 503200 25

RESISTOR KITS

5% CARBON FILM

RESISTORS

COMPLETE WITHSTORAGE BIN1/4 WATT KIT42 Different ValuesIG8ftto4.7 MO.)20 Each Value

1/2 WATT KIT42 Different Values{68f2to4.7 Mfi)20 Each Value

1/4W-$24.90 PER KIT1/2W-$25.90 PER KIT

CARBON FILM RESISTORS (5%

Only in Multiples of

100

ocs per value (ohms)

V.W . . .$1.69 per IOC

J4W. . .$1.79 per 100

10

100

1.0K

10K

100K

1.0M

11

110

1.1K

11K

1 10K

1.1M

1?

120

1.2K

12K

120K

1.2M

13

130

1.3K

13K

130K

1.3M

15

150

1.5K

15K

150K

1.5fyl

Ifi

160

1.6K

16K

160K

1.6M

IB

180

1.8K

18K

180K

1.8M

70

200

2.OK

20K

200K

2.0M

?7

220

2.2K

22K

220K

2 2M

74

240

2.4K

24K

240K

2.4M

■?!

270

2.7K

27K

270K

2.7M

30

300

3.OK

30K

300K

3.0M

:v.i

330

3.3K

33 K

330K

3.3M

ne,

360

3.6K

36K

360K

3.6M

:i4

390

3.9K

39K

390K

3.9M

43

430

4.3K

43 K

430K

4.3M

4/

470

4.7K

47 K

470K

4.7M

510

5.1K

51 K

510K

5.1M

5fi

560

5.6K

56K

560K

5.6M

sa

620

6.2K

62 K

62DK

6.2M

6H

680

6.8K

68 K

68 OK

6.8M

76

750

7.5K

75K

750K

7.5M

910 9.1K

RESISTOR ASSORTMENTS

h aisorlment coniaini 5 p« nach o* 10 different values

Value* included are irtown in (OhmslK {50 pes total!. . .$1.75 / 'AW,5% (50 pes total). , .51.8510 12 15 IB 22 27 33 39 A7 56 ohr6B. 82, 100, 120. 150. 180 220 270. 330 390 ohr47 0. 5 60. 6B0. 3 20 ohm. 1K.12K.15K.18K.2.2K.2.73.3K. 3.9K. 4.7 K, 5.6K . 6.8K . 8 2K . 10K. 12K. 15K. 1822K. 27K. 33K. 39K. 47K. 56K, 6BK. B2K. 1D0K. 120150K. 180K, 2 20K. 27OK. 330K. 390K .4 7 OK .560K820KAsst.7: IfVt.l 2M.1.5M.l.8M.2 2M,2 7M.3 3M.3 9M.47M.5 6M.

I'iW Assortment No.7 doesn't include 5.6M1AsSt.3R:tAII seven wortnients .it,,,.,.:

'/.W 5°o 350 ocs total S10.95 ',W B% 350 ucs total S11,5!

Assi.2

Assl.3Asst.4

Asn.5

Ass;.6

OK.

HYBRID

AUDIO

POWER

AMPLIFIERS

• Multi-purpose linear amplifiers for comercial and indus-trial applications.

• Less than 0.5% harmonic distortion at full power level.

• 1/2 dB response from 20 to 100,000 Hz.

• Single or split (dual) power supply.

• Rugged, compact and lightweight packages.

• Built-in curreru limiting for SI-1Q50G and efficient healradiating construction.

TYPICAL CONNECTIONS

SANKEN Series SI-1000G amplifiersare self-contained power hybrid am-plifiers designed for Hi-Fi, stereo,musical instruments, public addresssystems and other audio applications.The amplifiers have quasi-comple-mentary class B output. The circuitemploys flip-chip transistors withhigh reliability and passiuated chippower transistors with excellent sec-ondary breakdown strength. Built-incurrent limiting is provided for Sl-1050G and all devices can be oper-ated from a single or split powersupply.

SI-1010G (10W output) . . . $ 6.90SI-1020G I20W output) . . . S13.95SI-1050G I50W output) . . . $26.80

Data Sheet with Application Notes -

SI-1050G WITH SPLIT SUPPLY

LEFT

RIGHT

"" " "I

■O^EKDs

'FREQUEKiMHzl

1.00

2.00

3.2768

■1.00

4.434

5.00

5.068

5.7143

6.0010.0014.3181815.0018.0020.0023.68427.0032.00

MICROPROCESSORCRYSTALS

HOLDER PART

NUMBER

HC33HC33HC33HC18HC18HC18HC18HC18HC18HC18HC18HC18HC18HC18HC18HC18HC18

CY1A

CY2A

CY3B

CY3A

CY4C

CY7A

CY5B

CB5C

CY6B

CYT2A

CY14A

CY15A

CY19A

CY22A

CY23B

CY27A

CY30B

$8.556.754.804.804.804.804.804.804.804.354.354.354.357.204.354.35

MICROPROCESSOR & SUPPORT CIRCUITS

3212P821G

N8T9'

7400N

SERIES

1G

7400N7401 N7402N7403 N7404N7405M7406N

740 7 N7408N7409 N74 ION

741 IN .277412N 387413N 487414N I 167416N 427417N 427420N 227421N 287422N 587423N 347425N .407426N 287427N 367428N .507430N 2G7432N -327433N 447437N 3fi7438N 357439N 367440 N .26744 1 N 90744 2 N .667443N .747444 N 1.007445N 1.007446N 1.00744 7 N .987448N .987450N .227451M 22

1 20

.44

2.20

7453N7454N74 59 IN7460N7470N7472N74 73N74 74N74 75N7476W74 SON7481 N7482N7483N7484N7485N7486N7489N7490N7491 N7492N7493N7494N749 5N7d96N7497N 4.0074100N 1.2074104N .5074105N .9074107N .4274109N .5674 I ION 3074 1 1 1 N .80741 16N 1.90741 18N 1.9074 121 N .4874122N .4874123N .8074125N .5474126N .5474128N .5874132N 1.4074136N .907414 1N 1.6074 143N 4.80

74I4 5N 1.2074147N 1.8074148N 1.7074150N 1.5074151N 1.1074152N 1.1074153N MO

74157N 1.1074168N 1.30

74I61N 1.70

74162N 1.80

74163N 1.40

74164N 1.40

74165N 1.50

74166N 1;50

74167N 3.90

74170N 2.00

74173N 1.60

74174N 90

74175N 1.20

74176N 1.10

74177N 1 10

741 78N 1.30

74179N 1.70

74 130N 1.10

75181N 3.10

74182N 1.00

74184N 2.70

74185N 2.90

74188N 2.90

74190N 1.40

74191N 1.20

74192N 1-10

74193N 1.10

74194N 1.10

75195N 1.50

74196N 1.40

74197N 1.30

74198N 1.60

74199N 1.40

74200N 7 50

74221N 1.:

74247N 2

74251N 1 i

74278N 3/

74279N 1."

74 293 N S

74298N 1 '

74365N ■!

74L'S

74LS00N .;

74LS01N <

74LS02N .;

74 LS03 N :

74LS04N .;

74LS06N .:

74LS08N ;

74 LS09N .'

74 LSI ON .;

74LS11N .;

74LS15N .'

74LS20N ;

74LS21N i

74LS22N '

74LS26N :

74LS27N .*

74L328N .;

74L330N .:

74LS32N .;

74LS33N .!

74LS37N ,{

74LS38N .<

74LS40N ,t

74L342N .«

74LS51N '74LS54N

74LS55N '

74LS73N .'

74LS74N t

74LS75N ,;

74LS76N .1

74LS78N \

74LS83N 1.;

74LS85N 1 i

74LS86N t,

1.24

74LS90N74LS92N74LS93N74LS95N74LS96N74LS107N

74LS109N 46

74LS112N .64

74LS113N .64

74LS1 14N .92

74LS123N 1.10

74LS125N 60

74LS132N 1.44

74LS136N 74

74LS138N .99

74LS139N .99

74LS145N 1.64

74LS148N 3.45

74LS151N 88

74LS153N .88

74LS155N 1.50

74LS157N ,88

74LS158N .99

74LS160N 1.25

74LS161N 1.25

74LS162N 1.25

74LS163N 1.25

74LS164N 1.50

74LS170N 3.20

74LS174N .80

74LS175N .80

74LS181N 4.92

74LS190N 1.50

74LS191N 1.50

74LS192N 1 20

74LS193N 1.21

74LS194N 1 32

74LS195N 99

74LS196N 2.76

74LS197N 2.84

74LS221N 1 76

74LS241N 3,00

74LS251N 1.10

74LS253N 1 10

74LS257N 95

74LS258N74LS260M74LS261N74LS2G6N74LS273N74LS2S1N74LS283N74LS290N74LS293N'/4LS299N74LS365N74LS367N74LS374N74LS375W74LS3 78N74LS381N74LS38SN74LS399N74LS670N

74H76

74 H101

74H102

74 Hi 03

74H106

74 HI 08 .48

.42 74S14042 74S151

74S

74 H

74 HOI74H0474H0574H0874H1074H1174H2074H2174H2274H3074H4074H5075H5174H5274H5374H5474H5574H6074H6174H6274H7274H7374H74

74SO074S0174S0274S0374S0474S0574SD874S0974S1074S1174S1574S2074S2174S2274S3074S3274S3774S4074S5074S5174S6074S0474S6574S7474S7674S7874SS574S8674S112

745113

74511474S13374S13474S13874S139

1.80

1.803.603,606.002.002.002.362 366 002.363.202,002.00

74S15374S15474S15774S15874S16074S1C174S17274S17474S17574S17S74S17974S18174S18274S18974SI 9474S195

745196 2.6(

745197 26174S251 1 8(74S253 1.91

745257 1 9:

745258 1.8t74S260 5(74S280 4 0(74 S 289 3.6C

74COO

74C00N 3!74C02N .3f74C04N 3£74C08N 3!74 CI ON 3J74C14N 2.2C74C30N74C32N74C42N74C48N74C73N74C74N74C76N74C83N 2 7474C85N74C86N

74C89N

74C90N

74C93N

74C95N

74C107N

74C151N

74C154N

74C157N

74C160N

74C161N

74C162N

74C163N

74C164N

74C165N

74C173N

74C174N

74C175N

74C192N

74C193N

74C221N

74C901N

74C902N

74C903N

74C904N

74C906N

74C907N

74C914N

74C922N

74C925N

74C926N

80C95N

80C97N

3.422.042.042 04

1,661.662,043 742.04

1.001 002.205 7012.0012.001 161.00

3.32

2 74

I\l F~\/\/ AWCROryA DISCOUNT POLICYIM U. VW FOR aLL 7400SERIES TTL IC'S

PE 5°„ DISCOU

PE ID".. DISCOU

D (10 PER TYPEt... IS".. DISCOU

ID l?5 PER TYPE) ZCV. DISCOU

MN6040CMOS PLL

S7.90

LINEARFET INPUT OP AMP

LF355H 1.60

LF355N 1.10

LF355AH 22.50

LF356H 1.10

LF3&GAH 22.50

LF3S7H 1.60

LF357N 1.10

LF357AH 25 50

MD4301 CMOS ALARM CIRCUIT IC S2.50SANKEN HYBRID POWER OP-AMP - up

to 50 w. (AC rms) power output - Built-inrent limiting - 1/2 dB response from DC100,000 Hz - Terminal for externalfeedback SI-1050GS $33.80

WIRE WRAP TOOL WSU-30 S5.95

ips, wraps and unwraps 30 ga. wire onstandard wtrewrapping pins. 50' roll wire,specify color red, blue, white orlow SI.98

WIRE WRAP KIT WK-Z S11.95

ludes WSU 30 tool, 50 ft roll of 30 AWGe and 50 ft roll of 30 AWG wire and 50pes ea of 1", 2", 3" and 4" lengths ofprestripped wire. Specify color red, bluewhite or yellow.

LINEAR IC'S

.MIDI AH 3.50

.M101F 5.65

.M105H 4.90

.M106F 9.00

.M106H 9.00

.MIOVH 3.95

.M10SH 4.90

LM201H .98

;_M201AH 3.00

.M201AN 3.90

-M202H 7.00

-M205H 6.SO

_M206h 12.50

.M207H 3.50

_M208H 6.00

-M209H 5 00

.M209K 5.40

.M210H 5.70

LM218HLM3O0HLM3Q0N

3.459.501.501.50

LM302N

LM304H

LM305H

LM305AH

LM305N

LM306H

LM307H

LM307N

LM308H

LM308AH

L\130BN(8I

LM309H

LM309K

LM310H

LM310D

LM3 11D

LM311NI8)

LM31 1 H

LM312H

LM316H

LM318H

LM318N(8l

LM319N

LM324N

LM339N

LM380N

LM381N

LM555CNI8

LM55CCN

LM709CN

LM709CM

LM710CH

LM710CM

LM715H

LM715CH

LM715CD

LM723CH

LM723CD

LM723CM

LM725CDLM733CHLM733CDLM733CN

LM7J1CD

LM741CN(8)

LAI 741 CM

LM747CH

LM747CD

LM747CN

LM7470

LM748H

LM74F.CH

LM748CMBI

LM748CN

LM 1458CH

N6536T

3.30

AUDIO POWER AMPLIFIERS5.5 WATT AN315Designed for mobile radios,tape players, etc. Easy to use,High Gain - 53 dB (ClosedCircuit), S3.90 ea.

SPECIAL

FAIRCHILD

LM741PC

3 for $1.00

DIPSOCKETS

-24 25-49 50 UP

WIREWHAP GOLD

49

TO-220 VOLTAGE

REGULATOR FROM

FAIRCHILD

78D5C 5V /8 15C 15V

78D6C GV /818C 18V

7808C HV 7824C 24V

7812C 12V

2 for $1.20

INTERSIL 8038PRECISION WAVEFORMGENERATOR AND VCO

farms -T.OOI Hi to 1 MHz,PART NO. 8038CCPD S3.90

MOTOROLA'S EDUCATOR IIMICROCOMPUTER HEP KIT

it'l Staftec/ m the fascinatingworld of Micro Computers SI 69.95

EDUCATOR IIPOWER SUPPLY KIT

NEC SINGLE BOARD

TK-80 MICROCOMPUTER

FOR LEARNING 8080AS395.00 MICROCOMPUTER SYSTEM

• Single board microcomputer system.

• On board displays and keyboard.

• Powerful monitor program in factorycoded ROM,

• Easy system operation.

• CMOS RAM battery back up capability.

• Provisions for audio cassette tape forexternal storage.

• System expandability.

• Battery operation capability.

• Instructive program examples forlearning.

• Informative documentations.

UHDIPPART NO S100.0

F8 ASSEMBLED KIT

efl FH Microcomputer SysCum It .nclucfBsan F8 CPU,SMI, PSU Iwilh Foiruug]

SIGNETICS8080AEMULATOR KIT

AM2900 EVALUATIONAND LEARNING KIT

AM 2901 j.u] AM 2909

S289.00

The KIM 1Microcomputer System

No. 101250 pa«eINFORMATIONBOOKLETOnly $4.95

MAIL ORDER ADDRESS - P.O. Box 2208Y, Culver City, CA 90230. Send check ormoney order, COD, Master Charge and BankAmericard welcomed. Minimum Order:$10.00. Add $1.00 to cover postage and handling. California residents add 6% sales tax.TELEPHONE ORDERS: Call (213) 641-4064.

ANCRONA STORES DO NOT ACCEPT MAIL OR TELEPHONE ORDERS

CALIFORNIA

CALIFORNIA

ARIZONA

OREGON

GEORGIA

TEXAS

CANADA, B.C.

ANCRONA

ANCRONA

ANCRONA

ANCRONA

ANCRONA

ANCRONA

ANCRONA

1 1080 Jefferson Blvd.

1300 E. Edinger Ave.

4518 E. Broadway

1125 N.E. 82nd Ave.

3330 Piedmont Rd., NE

2649 Richmond

Vancouver

CuluerCity.CA 90230

Santa Ana, CA 92705

Tucson, AZ 86711

Portland, OR 97220

Atlanta, GA 30305

Houston, TX 77098

(213) 390-3595

(714) 547-8424

(602) 881-2348

(503) 254-5541

(404) 261-7100

(713)529-3489

Circle 454 on inquiry card.

What's

New?

Digital Research Offers NewMicrocomputer Software

[IDIBlTfli-RESflSCH

si wrftfli «■},«,:

OEITfll RESEARCH

Diskette

CP/M is a floppy disk operatingsystem designed for use with IBM com-patible floppy disk computer systemswhich employ the Intel 8080 processor.Functions of this software package in-clude named dynamic files, programediting, assembly, debugging, batch proc-essing, and instantaneous program load-ing. CP/M can be adaptable to any 8080or Z-80 computer system with at least16 K bytes of main memory and one ortwo IBM compatible disk drives. Pricefor a complete CP/M system in objectform with documentation is $70; doc-umentation (set of six manuals) alone is$25. For further information, contactDigital Research, POB 5 79, Pacific GroveCA 93950..

Circle 597 on inquiry card.

Tychon Introduces New 8080Editor/Assembler

Tychon's new co-resident editor/assembler, called TEA, is designed foruse with 8080 systems and incorporatessome useful features. The program re-sides in 5 K bytes of memory, and canaccept either octal or hexadecimal val-ues. The switch from one number baseto the other can be made at any timethrough keyboard commands.

TEA can be relocated in memoryusing a built-in relocator feature. Theprice is $35 for a paper tape version ofTEA plus the user's manual. The pro-gram is also available loaded into 1702Aor 2708 programmable read only mem-ory integrated circuits.

For more information, write toTychon Inc, POB 242, Blacksburg VA24060.-

Circle 598 on inquiry card.

BLOS and ZAPS

BLOS (rhymes with gloss) andZAPS are two operating systems an-nounced by Algorithmics for the 8080and the Z-80 respectively. They aredirectly loadable on Digital Group sys-tems via cassette. BLOS requires 12 Kand ZAPS, 13 K of memory. ZAPSassembles all Z-80 instructions; BLOSassembles only instructions executableby the 8080. BLOS and ZAPS areidentical otherwise. Programs writtenin the 8080 subset are transferablefrom one system to the other.

The text editor within BLOS andZAPS is much like those used on time-sharing systems. Because it is a fullcontext editor, no line numbers arerequired. You may edit any of up to 16files in memory. Only the actual databytes are stored. Editor commandsinclude input, insert, delete, replace,change, global change, up, down, top,bottom, string search, print and printcurrent line number.

The assemblers feature user-definedcommands, switchable number bases,and a full set of cassette operations.

Contact Algorithmics Inc, POB 56,Newton Upper Falls MA 02164."

Circle 599 on inquiry card.

A Microprocessor Development Kit

Aivex Inc has a new product thatshould be of interest to those who workwith the PDP-11 computer: the MAX-11conversion kit. The package, which con-verts a PDP-11 into a microprocessordevelopment system, consists of a crossassembler, simulator and PROM pro-grammer. The cross assembler is said tofeature a user defined macro library,local symbols, symbolic cross reference,listing controls and conditional assem-bly. The simulator features eight breakpoints, single step with trace, externaldevice simulation, interrupt simulationand real time cycle counter. The pro-grammer accepts data from a PDP-11disk through an RS-232C interface. Thekit is presently available in 4040, 8080and 6800 versions. The price for thesimulator plus assembler is $1250; theprogammer is $2300.

Contact Aivex Inc, 6 Preston Ct,Bedford MA 01730, (617) 275-2333.

Circle 600 on inquiry card.

A Hardware and Software Catalog

TDL's new catalog features a varietyof hardware and software products,including the Z-16 memory module,a 16 K byte static programmablememory card. Maximum access timeis 200 ns, and the kit price is $574.

Also described is the XITAN seriesof mainframes and the Zapple monitorand text editor. A relocating macro-assembler is offered along with severalBASIC packages and disk software.

For a free copy of the catalog, con-tact Technical Design Labs Inc, ResearchPark, Bldg H, 1101 State Rd, Prince-ton NJ 08540 (609)921-0321..

Circle 601 on inquiry card.

An In-Depth Software Package

Sublogic Company of Culver CityCA has announced 3D graphics for micro-computers. The Sublogic 3D micro-graphics package allows the user toview two-dimensional perspective projec-tions of three-dimensional scenes fromany location in space. Driving and flyingsimulations, artistic projections, designprojections, engineering analysis andadvanced games are some of theapplications.

Two versions of the graphics packageare offered: a minimal subset BASICversion for general purpose slow speedgraphics on any microcomputer system,and a 6800 assembly language versionwith dynamic graphic capabilities foradvanced simulation and complexgraphics.

Adaptation instructions, program list-ings, applications, interface and testinginformation are supplied with eachpackage. The BASIC version costs $22;the 6800 package is priced slightlyhigher. Dealer inquiries are welcome.For further information contact Sub-logic, POB 3442, Culver City CA90230.-

Circle 602 on inquiry card.

LSM Engineering's New TextEditor and Operating System

Need a text editor or an operatingsystem for your computer? LSM Engi-neering, POB 3243, Orange CA 92665,now offers both of these items.

EDIT is a text editor designed to editsource files for BASIC, FORTRAN, as-sembly language, etc, which utilize thestandard 96 character ASCII set. Sourcefiles can be manipulated by character,string, line and page to create additions,insertions, replacements and deletions totext.

LSM's Small Operating System,called SOS, has commands for saving,loading and verifying data blocks inconjunction with a Tarbell cassette inter-face, as well as memory fill, memoryblock transfer, block verify and memorydump routines. SOS resides in 2 K bytesof read only memory and is suppliedwith a commented source listing andinformation to enable the user to patchin up to four new keyboard commandswithout reassembly.

EDIT is available for $22.50 onTarbell block form cassette or papertape, and SOS costs $15 on Tarbellblock form cassette."

Circle 603 on inquiry card.

190

WE PAY POSTAGE!

D.R.C.ELECTRONICS

P. 0. Box 401247, Garland, Texas 75040 (214) 271-2461

16K E-PROM CARD

S-l 00 (1MSA1/ALTAIR) BUSS COMPATIBLE

$69.95 (kid

IMAGINE HAVING 16KOF SOFTWARE ON LINE AT ALL TIME!KIT FEATURES:

1. Double sided PC Board with solder mask and silk screen andGold plated contact fingers.

2. Selectable wait states. / USES

3. All address lines and data lines buffered!

4. All sockets included.

5. On card regulators.

KIT INCLUDES ALL PARTS AND SOCKETS! (EXCEPT 2708's)

ADD $25 FOROur 2708's (650 NS) are $12.95 when purchased with above kit. ASSEMBLED AND TESTED

DEALER LNQUffiES INVITEDSPECIAL OFFER

2708

2708

1KX8EPROMS

Prime new units from a major U.S. mfg.650 N. S. access time. Equivalent to four1702A's in one package!

GOING INTO j»_ _ _ _

BUSINESS $15.7 5 each

SALE!

8K LOW POWER RAM KIT

$149.00

(Kit of AllParts andSockets)

(S-100 BUSS COMPATIBLE)

The last word in RAM Kits. Uses 21L02-1RAM's. All address and data lines fullybuffered. PC Board is solder masked and silkscreened and has gold plated contacts. Fourregulators with heatsinks included.

ADD $30 FOR ASSEMBLED AND TESTED

OPCOA LED READOUT

SLA-1 Common Anode. .33 In.

character size. The original

high efficiency LED display.

$.75 each

4 FOR $2.50

741C OP AMPS

MINI DIP. Prime New

Units. Has computer

MFG's house number.

12 FOR $2

100 FOR $15

DISC CAPACITORS

.1 MFD 16 V. P.C. Leads

Most Popular Value!

P.C. Leads. By Sprague.

20 FOR $1

TANTALUM CAPACITOR

1 MFD. 35 V. Kemet. Axial

Lead. Best Value.

10 FOR $1

I. ASCII CHARACTER GENERATOR

TMS 4103 JC. 28 PIN CER DIP.Has seven bit COLUMN Outputfor use with Matrix hard copydevices. With specs. $3.50

MOTOROLA 7805RVOLTAGE REGULATOR

Same as standard 7805 except750 MA OUTPUT. TO-220.5VDC OUTPUT.

$ .44 each 10 FOR $3.95

NATIONAL SEMI.MA1003 CAR CLOCK

Not a kit. Complete testedmodule. Works on 12 VDC,has on board time base.Sold by others at $24.95.Big .30" Bright GreenDigits. Same as used byDetroit in new cars.

$19.95

EDGE CONNECTOR — $1.50

Z - 80 PROGRAMMING MANUAL

By MOSTEK, the major Z - 80 second source. The most detailed explanationever on the workings of the Z - 80 CPU CHIPS. At least one full page on eachof the 158 Z - 80 instructions. A MUST reference manual for any user of theZ - 80. 300 pages. Just off the press! A D.R.C. exclusive! $"| 2.95

TRW POWER DARLINGTON

15 AMP 500V NPN. $2 Each

HIGHSPEED SCR

TO-66 5 AMP 250 PIV. By Hutson.$.69 Each

TERMS: ORDERS UNDER $15 ADD $.75. NO C.O.D. WE ACCEPT VISA AND MASTER CHARGECARDS. MONEY BACK GUARANTEE ON ALL ITEMS. TEXAS RESU)ENTS ADD 5% SALES TAX.

i K&

ELECTRONICS p o. box 401247

Circle 455 on inquiry card.

GARLAND, TEXAS 75040 • (214) 271-2461

A New Plotter for Microcomputers

Programmable Gain Amplifier Card

National's New 16 Bit Microcomputer:the IMP-16L

Axiom Corp has introduced a com-pact graphic plotter, called the EX-810,which is designed to operate with micro-computers. The unit prints 8,192 dotsper second with up to 512 dots per row.It can function as an 80 column alpha-numeric printer with a speed of 160characters per second.

The EX-810 is designed to be drivenby an 8 bit microprocessor and isequipped with a TTL compatible con-troller which takes care of all the inter-nal timing functions necessary to drivethe printhead and advance the paper.Printout is initiated by a single inputcommand which causes the eight tracknon-impact printhead to move across theprinting field in approximately 240 ms.Margin and printhead position markersignals are fed back to the microcom-puter and may be used to synchronizean eight bit scanning raster to the print-head driver input. The user can vary thehorizontal dot resolution by generatingan external timing cycle for the inputraster.

The EX-810 is a self-contained unitwith case power supply, paper holder,infrared low paper detector and bell.The dimensions are 9.625 by 4 by10.875 inches (24.45 by 10.16 by27.62 cm), and 5 inch (12.7 cm) wideelectrosensitive paper is used for prin-ting. Applications include printingforms, tickets, logos, maps, pictures andcharts.

The price is $795 in single quantities.OEM discounts are available.

Contact Simon Harrison, vice presi-dent of marketing, Axiom Corporation,5932 San Fernando Rd, Glendale CA91202. (213) 245-9244."

Circle 604 on inquiry card.

EPA Micro-68a Computer NowAvailable in Kit Form

The Signal Laboratories Inc Program-mable Gain Amplifier card (PGA) is aZilog Z80 MCB compatible accessoryoffering two channels of computer con-trolled amplification. Each channel hasfiltered and unfiltered outputs. Undercontrol of the Z80 MCB, the gain ofeach channel may vary from unity(0 db) thru 54 db (70 db optional) in2 db increments, with gain accuracy of0.1% (0.01% optional). Similarly, theZ80 MCB may select any one of eightuser-selectable bandwidths for eachchannel's filtered output. Unfiltered out-puts are 3 db down at 50 KHz. TheProgrammable Gain Amplifier (PGA)is one of a family of Zilog Z80 MCBcompatible accessory cards availablefrom Signal Laboratories Inc, 202 NState College Blvd, Orange CA 92668.Price for quantities under ten is $395,available from stock.*

Circle 605 on inquiry card.

A State(ment) of Flux

There are many sources of informa-tion available to the experimenter whichteach the art of soldering, but few ofthese sources give a detailed explanationof the metallurgy and physics involvedin the process. M W Dutton Company,Consumer Products Division, 350 Kin-sley Av, POB 6205, Providence Rl02940, has bridged the solder gap witha well-written brochure entitled "Dun-ton's Nokorode Soldering Guide."Topicscovered include the composition ofsolder, solder alloy phase diagrams,mechanical properties of solder and adiscussion of solder flux. The brochureis free for the asking."

Circle 606 on inquiry card.

Anyone looking for an alternative tothe many existing 8 bit word microcom-puters will be interested in NationalSemiconductor's new 16 bit microcom-puter called the IMP-16L. The unit has ahigh speed asynchronous bus and a datacontroller that allows direct memoryaccess (DMA) data transfer rates of up to16 million bps. It comes complete with4 K by 16 bits of programmable memoryexpandable to 64 K by 1 6 bits. A 20 mAinterface is also provided.

There are 60 general purpose instruc-tions, including multiply, divide, doubleprecision add and subtract, and nu-merous bit oriented instructions. A con-trol read only memory is also providedin two different versions to speed calcu-lations.

The IMP-16L has four general pur-pose registers and a 16 word last-in-first-out stack. IO lines include eight generalpurpose flags, one general interrupt, onevectored interrupt, and four general pur-pose jump condition inputs. Cycle timeis 1.4 ms. Typical register to registeraddition time is 4.9 jus, and memory tomemory addition time is 8.4 jus. Onedirect memory access transfer takes1.05 ms.

Software support includes diagnosticroutines, a resident assembler, plus avariety of cross-assemblers. The system'sarchitecture permits the installation ofup to three central processing units(CPUs) for multiprocessing. The unitcosts $825 and up, depending on mem-ory size and options, and is availableeither from distributors or directly fromthe manufacturer. For more informa-tion, write to National Semiconductor,2900 Semiconductor Dr, Santa Clara CA95051."

Circle 607 on inquiry card.

Electronic Product Associates Inc,1157 Vega St, San Diego CA 92110, hasannounced the Micro-68 computer kit

for $385, which includes power supplyand cabinet.

This computer kit comes completewith 16 key hexadecimal keyboard and6 character hexadecimal display. It usesthe Motorola 6800 processor design.Sockets are provided for 768 bytes ofvolatile programmable memory (128words supplied with kit). The MON-1keyboard operating system is suppliedin PROM form so that the computer isready to run upon completion of con-struction. Commands include inspectand change, load user's program, run

user's program, insert break points andsave stack. Sixteen bits of IO are pro-vided to the side connector, while themain bus is accessible at the front con-nector. Full bus buffering provisionsare provided on the board. A piggybackTeletype/video display/audio cassetteadapter is available.

The Micro-68a is fully compatiblewith the Micro-68b for later upgradinginto a larger system and is availablefrom stock."

Circle 608 on inquiry card.

192

Features/ service, price!

...and a selection of S-100 compatible kits to match.

8Kx8 Econoramll

single kit $163.843 Kits 24K of memory!- $450

Configured as two separate 4K blocks for maximum flexibility. Individualprotect for each block; provides interrupt if write attempt is made intoprotected block. Buffered data in, address in, and outputs. Tri - stateoutputs. Guaranteed under 1.5 A and faster than 450 ns. Use with 1 waitstate (logic implemented on board) with 4 MHz Z-80. Writes on either PWRor MWRITE, your choice. Low power Schottky support ICs. Lots of bypasscaps. Sockets for all ICs. Legended, solder masked double-sided board.

ALSO: 8K ECONORAM II, assembled, tested, warranted for 1 year....$188.50

4K ECONORAM in kit form $100.00

4K ECONORAM, assembled, tested, warranted for 1 year $120.00

CPU

power

supply

$5C

Provides a well-regulated 5V@4A,+12V@ %A, -12V @%A, and adjustablenegative bias voltage. Crowbarovervoltage protection keeps TTLfrom getting zapped. Compact con-struction. Recommended for benchwork as well as powering smallcomputer systems.

^••^p*^

AcrivE TermInator $29.50

Plugs into any S-100 Motherboard whose buss lacks active terminations.Cleans up noise, crosstalk, overshoot, and other buss problems that canscramble data unpredictably.

MOTHERBOARD $90...also 18 SLOTS $124

Includes all edge connectors, plus active terminations to minimize cross-talk, noise, overshoot, and ringing that may be present with unterminatedbusses. Excellent for stand alone system, or add on to existing systems.

8080 SOFTWARE BOARD $265

Gets you away from talking to your 8080 in machine language by givingeditor, assembler, and monitor routines programmed in EROM. Low power.

Unprogrammed EROM boards are also available; use for custom routines. Dothe programming yourself or take advantage of our programming services.

2K (smaller) ECON0R0M Iltm $195.00

4K (basic) ECONOROM 11*™ $2 50.00

8K (larger) ECONOROM Htm $350.00

Mullen Opto-isolator/RelayBoard $117

TheWunderBuss'

This 20 slot motherboard, thatincludes all edge connectors, is

designed to function in even the most adverse electrical environments.

Includes active termination circuitry and double-sided board $154

The Speakeasy

More than a cassette interface:handles 3 cassette 1/0 channels,but also has RS-232/teletype interface, 8 bit parallel port with handshak-ing signals...and includes integral RAM and ROM to drive it all $120

Morrow Front Panel

This integral front panel /CPUcard offers maximum debuggingand programming flexibility, thanks to the ability to examine and altermemory, 1/0 ports, and more while your program is running $250

TERMS: Please allow up to 5 % for ship-ping, more for power supply; excess re-funded. Prices good through end of mag-azine cover month. Californians add tax.CODs accepted with street address. For

_ with street address.BankAmeri card®/ VI SA®/Mastercharge® orders($15 min) call 4 15-562-0636, 24 hours.

BILL GODBOUT ELECTRONICSBOX 2355, OAKLAND AIRPORT, CA 94614

reed relays respond to an 8 bit wordsent by your computer; also, 8 opto-iso-lators accept an 8 bit word from the outside world and send it to yourcomputer for handshaking or further control. Comes with applicationsnotes and detailed instructions. Typical uses include model railroadintelligent switching, audio switching, burglar alarms, etc.

Mullen Extender Board $ 35

Allows you to troubleshoot and inspect boards outside of the system inquestion. Integral logic probe uses 3 different colored LEDs to indi-cate hi, lo, and pulse. Special edge connector makes for easy cliplead probing 5 lead identification. Non-skid probe.

One of the reasons we can offer thesekits for such reasonable prices is thatwe do a big business in parts...far toomany parts, in fact, to list in an adthis size. But if you are looking fora source of DB-25 connectors, edge con-nectors, and more...send for our flyer.

Circle 456 on inquiry card.

Classified Ads

FOR SALE: Assembled SwTPC CT-1024 TVT2with computer controlled cursor, less powersupply, $200. Assembled SwTPC TVT CT-Lboard, S15. Assembled IMS UCRI cassette inter-face, S40. Tarbell cassette tapes of 2 K MINOL2.2 (a Tiny BASIC) or 8 K EMPL 1.0 (a microAPL for the 8080), $10 (user's manual included).Erik Mueller, 36 Homestead Ln, Roosevelt NJ08555. (609)448-2605.

FOR SALE: SwTPC CT-1024 with ASCII key-board, memory board, power supply, and parallelinterface for $150. KIM-1 with homemade powersupply S200. Mike-2 8008 computer with com-mercial power supply, 2 K of RAM and % K ofROM for $200. Alan Feldman, 1114 Cameron Av,LaCrosse Wl 54601. (608) 782-1921.

FOR SALE: KIM 1 (MOS) computer boardmounted in cabinet with built in power supplies.Excellent condition, $220. Roger Cox, 4327 NChestnut, ^?18, Colorado Springs CO 80907.

WANTED TO BUY: Hewlett-Packard 9830Acalculator, 4 K word memory preferred. Also,matrix ROM, strings ROM, mass memory ROM,and 9866A or 9871 A printer. Consolidated PapersInc, POB 50, Wisconsin Rapids Wl 54494, Attn:Purchasing Dept.

FOR SALE: NATIONAL SC/MP LCDS Develop-ment System. Used once. Perfect condition, inoriginal factory carton. Includes CPU card, LCDS,all manuals, $400. MC Devine, 31 Crestview Dr,Westerly Rl 02891. (401) 596-7718.

FOR SALE: Several new 12 V stepping motors,with specs for $25. (Haydon part #9904 11205001). These are normally sold for $49 in singlequantities. Applications for stepping motorsinclude robots, printers, XY plotters, NC machines,peristaltic pumps, etc. Mahesh K Shah, 4240Clarendon, #63, Chicago IL 60613.

WANTED: Contact with persons who have aserious personal interest in using a microcomputerfor stock and commodity market investment pur-poses. If covariance is more than just another wordto you, send a brief note of your desires, quali-fications and market experience/involvement toJ Williams, 2415 Ansdel Ct, Reston VA 22091. Anassociation is being formed.

6500: I have just bought an ECD CorporationMicroMind (based on the 6500 microprocessorfamily) and would like to get in touch with otherpeople who have recently bought this system toexchange notes, problems, software, etc. I wouldappreciate anyone who wishes to (and this includesany 6500 family users, too) getting in touch withme to exchange addresses and, hopefully, informa-tion. Gregg Williams, 3439 Southern, #7, MemphisTN 38111.

FOR SALE: Five MITS 4 K dynamic memoryboards. All in working order and run BASIC. $90each. 1 ACR, working, $85. One ALTAIR 8800a.Has all power modifications including large capac-itor, 14 edge connectors in mother board. $500.Danny L Quinton, POB 23496, Emory University,Atlanta GA 30322.

NEW EPROM PROGRAMMERfor2708'sand2716's

The new low cost PP-2708/16 PROM programmer from OAE is the onlyprogrammer with al I these features:

• No complex interface to wire, just plug the programmer intoa 2708 memory socket and clip one wire to the "wait" buss!

• Driving software is short and simple!

• 10 turn cermet trimmers for precision voltage and pulse widthadjustment1

• DC to DC switching regulator

• Anodized extruded aluminum case for table top operation

• Zero insertion force socket

• 2 programmers for the price of 1

Programs both the popular 2708 (1024x8) and the new TMS 2716 (2048x8)

EPROM's!2

The OAE PP-2708/16 module turns your computer into a powerful full

feature PROM programmer. OAE's exclusive interfacing technique makes

it a snap: simply plug the PP-2708/16 into a 2708 read only socket. A short

software routine sends data over the address lines to program the PROM.

SAVE $50.00. For a limited time we are selling the assembled,tested and aligned unit at the kit price! Only $249.003

Let us know whose PROM's you are using and we will align our programmer foroptimum date retention and longest PROM life.

2Also available is our Model PP-2716 programmer for Intel's unique 2716 EPROM. SameLOW PRICE.

Include $3.50 for domestic shipping and handling. California residents include 6% tax.

NEW LOCATION!

• SPECIAL •

TMS 2708'S AT COSTONLY $19.95 EACH

OAE

Oliver Audio Engineering, Inc.676 West Wilson AvenueGlendale, CA 91203(213) 240-0080

PROM PROGRAMMING: From Hex or Octallisting: 2708s ($16), 1702As ($5). From Hex/Octal paper tape: 2708s ($8), 1702As ($4). Yousupply the PROM. 48 hour turnaround. Quantitydiscount: 1 to 3 PROMs 0%, 4 to 7 PROMs 10%,8 to 11 PROMs 15%, 12 or more 20%. They canall be different. I also have a few 1702As at $6each. HS Corbin, 11704 Ibsen Dr, Rockville MD20852. (301) 881-7571.

FOR SALE: Honeywell keypunch keyboard(reed-switched keys). No enclosure or electronics,$20. Richard Sims, 64 Charlesgate E Apt 75,Boston MA 0221 5.

FOR SALE: 1 absolutely brand new IMSAI 8080system. 12 K memory. Also brand new 33 ASRand Panasonic tape recorder. All working andtotally unused. Call toll free (800I 221-2628 orwrite Bernard Rome, 375 Park Av, New York NY10022.

FOR SALE: Computer Automation 216 mini,complete and working with 8 K core, 16 bitprocessor, ITY Zoma controller, and miscellaneouselectronics. Interfaced to Dr Suding 1100 baudcassette, software included: assembler, editor,debug, loaders, plus miscellaneous diagnostics.May consider trade up or down. Rich Adamson,1517 Lucia, Fairmont MN 56031. (507) 235-6321.

FOR SALE: 3M DC300A data cartridges whichwork in the IBM 5100, TEKRONIX, DEC andsimilar equipment at a club price of $18 per datacartridge plus the cost of postage. IBM 5100 UsersGroup, c/o HITS Inc, 5541 Parliament Dr, Suite104, Virginia Beach VA 23462. (804) 490-0154.

FOR SALE: Computer software to print signs.Print long horizontal signs in large block letters.Output letters are 100 print characters high by50 print lines wide and are printed with charac-ters of that letter. Complete program sourcetext listing and instructions. Program is writtenin PL/I and is 517 statements iong. Send only517 cents plus 33 cents for mailing. David Sligar,7091 Pickway Dr, Cincinnati OH 45238.

WANTED: Copies of book Computer! by J A Titusas published circa 1974 by Radio-Electronics Maga-zine. Also any other literature on 8008 micropro-processor circuits, printed circuits layouts, etc. A CActon, POB 31, Midland Ml 48640.

WANTED: BYTE issues November 1975 andApril, May 1976. Will pay almost any price forwell preserved copies. Send price and conditioninformation to Chris Sutter, RR 2 Box 370,Collinsville I L 62234. 1618) 344-6552.

WANTED: I have a Digtal PDP-8/m computer, andwould like to buy any or all of the following op-tions: MM8-E 4 K core $200, MM8-E/J 8 K core$400, MP8-E memory parity $200, KL8-E serialinterface $150, DK8-EA line clock $100. DK8-ECprog clock $150, KE8-E extended arithmetic unit$150, I am willing to bargain. T J Miles, 3970Saanich Rd, Victoria BC CANADA V8X-1Y6.(604) 479-1752.

FOR SALE: SwTPC PR-40 alphanumeric printer.Unit is assembled, tested, and adjusted. Used ninemonths without problems. All documentation andfour rolls of paper tape provided, $350. Also oneTVT1 with two pages of memory, keyboard,UART cassette tape 10, computer control inter-face. All contained in case. All documentationincluded, $200. Call or write Gary L Dickman,POB 41, Colby KS 67701. (913) 462-3439 after6 PM CST.

FOR SALE: BASIC language program ofMonopoly. Takes care of all bookkeeping andproperty detail for this popular board game. PlayMonopoly between friends. Make deals and bank-rupt your opponents. Runs in 22 K of programma-ble memory. Written in Data General's 12 KBASIC. Documentation $6, paper tape $12.Charles A Lovell, 4837 Clybourn Av, NHollywood CA 91601.

FOR SALE: Teletype Model 32 ASR, complete,in good condition, $300 plus shipping. BYTEissues 14, 15, 16 for $3 each. Paul Enright, 2460CWaolani, Honolulu HI 96817.

Circle 457 on inquiry card.

194

master charge

MICROCOMPUTER

5Q80A

SUPPORT DEVICES

82128214821682248228823882518253825582578259

6800 SUPPORT

681 OP6820P6828P-6834P6850P6852P6860P6862P6880PZ80

4.00

12.95

5.25

6.00

9.25

8.20

12.00

28.00

12.00

22.00

22.00

6.00

8.00

9.60

21.95

12.00

17.00

15.00

18.00

2.70

SUPPORT DEVICES

3881 15.95

3882 15.95

F-8 SUPPORT DEVICES

38513852

14.9514.95

FLOPPY

DISC CONTROLLER

PD372D1771

65.0069.95

DYNAMIC RAMS

414D (16P)1103 (16P)2104 (16P)2107B (22P)21Q7B-4 (22P)TMS4050 (18P)TMS4060 (22P)4096 (16P)MM5262 (22P)MM5270 (18P)MM5280 (22P)

STATIC RAMS

5.501.506.504.504.004.504.505.503.005.006.00

31L01

2.00

91L11A

4.25

91L12A

4.25

1101A

1.00

2101

3.00

2102 (10S)

1.25

2102-1 (5.00NS)

1.50

2M1A-4

4.45

2112A-4

3.00

2501B

1.45

3107

2.95

*4200A (250NS)

13.75

410O (200NS)

11.95

*4804

20.00

5101

20.00

74C89

3.00

74S201

4.75

91L02A

2.00

7489

2.25

8225

1.50

8599

1.50

82S09

9.00

'Limited supply.

MISC OTHERCOMPONENTS

NH0025CN

NH0026CN

N8T20

N826

N8T97

74367

DM8098

1488

1489

3205

D-3207A

C-3404

P-3408A

P-4201

MM-5320

MM-5369

DM-8130

DM-8131

DM-8831

DM-8833

DM-8835

SN74LS367

SN74LS368

1.75

3.00

4.00

3.25

1.45

1.00

1.00

1.95

1.95

6.20

2.50

3.95

6.75

4.95

7.50

2.00

3.00

2.50

2.50

2.50

2.50

1.00

1.00

MICROPROCESSOR'S

F-8

Z-80

Z-80A

CDP1802DC

AM2901

6502

6800

8008-1

8080A

8080B

19.9536.9549.9529.5022.9524.9524.958.7515.9516.95

SHIFT REGISTERSDYNAMIC

1404AN

3.00

2405

4.95

2505K

3.00

SHIFT REGISTERS

STATIC

MM506

.89

2509K

1.00

2518B

3.95

2533V

2.00

TMS3002

1.00

TMS3112

3.95

MM5058

2.00

FIFO

3341A2812-D

6.7511.95

KEYBOARD CHIPS

AY5-2376 14.95

AY5-3600 14.95

TV GAME CHIPS

TMS 1955 (6 Games)

10.95

AYSS-8500(6Games)

10.95

S-2350IM-6403TMS-6011 (Tl)TR-1602A (WD)

U A RTS

AY5-1013AY5-1014A

13.50

10.80

6.25

6.25

6.759.95

CHARACTER

GENERATORS

2513

2513

3257

MCM6571

MCM6571A

MCM6572

MCM6581

WAVEFORMGENERATOR

8038

MC4024566

6.756.7518.0010.8010.8010.808.75

4.502.752.00

PROM'S

1702A

1702AL

2704

2708

2716

3601

5203AQ

5.00

7.00

20.00

24.00

75.00

4.50

7.00

5204AQ

6834

6834-1

82S23B

82S129B

8223B

10.0021.9516.954.004.254.00

IMSAI/ALTAIR

S-lOO

COMPATIBLE

JADEZ80

KIT

-with PROVISIONS for

ONBOARD 2708 and POWER ON JUMP

$135.00 EA.

Electronics for the Hobbyist and Experimenter

5351 WEST 144th STREET

LAWNDALE, CALIFORNIA 90260

(213) 679-3313

Discounts available at OEM quantities. Add $1.25for shipping. California residents add 6% sales tax.

Assembled & Tested

8K STATIC RAM BOARD

250ns. $209.95

350ns. !i199.95

450ns. $189.95

* WILL WORK WITH NO FRONT PANEL

* FULL DOCUMENTATION

* FULLY BUFFERED

* S100 DESIGN

* ADEQUATELY BYPASSED

* LOW POWER SCHOTTKY SUPPORT IC'S

KIT

250ns.350ns.450ns.

$169.95149.95i139.95

Circle 458 on inquiry card.

SN7400N* .16 SN7459A .25

SN7401N .16 SN7460N .22 SN74154N

SN7402N .21 SN7470N .45 SN74155N

SN7403N .16 SN7472N .39 SN74156N

SN7404N 18 SN7473N .37 SN74157N

SN7405N .24 SN7474N .32 SN74160N

SN7406N .20 SN7475N .50 SN74161N

SN7407N .29 SN7476N .32 SN74163N

SN7406N .25 SN7479N 5.00 SN74164N

SN7409N .25 SN7480N .50 SN74165N

SN7410N .18 SN7482N .98 SN74166N

SN7411N .30 SN7483N .70 SN74167N

SN7412N .33 SN7485N .89 SN74170N

SN7413N .45 SN7486N .39 SN74172N

SN7414N .70 SN7488N 3.50 SN74173N

SN7416N .35 SN7489N 2.49 SN74174.N

SN7417N .35 SN7490N .45 SN74175N

SN7420N .21 SN7491N .75 SN74176N

SN7421N .33 SN7492N .49 SN74177N

SN7422N .49 SN7493N .49 SN7418DN

SN7423N .37 SN7494N .79 SN74181N

SN7425N .29 SN749SN .79 SN741B2N

SN7426N .29 SN7496N .89 SN74184N

SN7427N 37 SN7497N 4.00 SN74185N

SN7429N .42 SN74100N 1.00 SN74186N

SN7430N .26 SN74107N .39 SN74187N

SN7432N 31 SN74121N .39 SN74188N

SN7437N .27 SN74122N .39 SN74190N

SN7438N .27 SN74123N .50 SN74191N

SN7439N 25 SN74125N .60 SN74192N

SN7440N .15 SN74126N .60 SN74193N

SN7441N .89 SN74132N 1.09 SN74194N

SN7442N .59 SN74136N .95 SN74195N

SN7443N 75 SN74141N 1.15 SN74196N

SN7444N .75 SN74142N 4 00 SN74197N

SN744SN 75 SN74143N 4.50 SN74198N

SN7446N .81 SN74144N 4.50 SN74199N

SN7447N .69 SN74145N 1.15 SN74200N

SN7448N .79 SN74147N 2.35 SN74279N

SN7450N .26 SN7414BN 2.00 SN74251N

SN7451N .27 SN74150H 1.00 SN742B4N

SN7453N .27 SN74151N .79 SN742B5N

SN7454N .20 SM74153N .69 SN74367N20% Discount for 100 Combined 7400's

CO4O00CD4001

CD4002CO40O6CD4007CD4009C04010CO4011CD4012C04013CD4Q16CD4017CD4019CD4020CO4022CD4023C04024CD4025CD4026CD4027CD4028CD4029CD4030CD4035

CMOS

CD4040C04042CO4044C04046CD4047CD4049CD4050CO4051CD4053CD4059CD4060CD4066CD4069CD4070CD4071C04081C04508CD4511C04515C04516CD4520MC14566

74CO0N

74C02N

74C04N

74C10N

74C20N

74C30N

74C42N

74C73N

74C74

74C90N

74C95N

74C107N

74C151

74C154

74C157

74C160

74C161

74C163

74C164

74C173

74C193

74C195

MC4044

MC14016

35

2.95

6.50

LM3UOH

LM301H

LM301CN

LM3Q2H

LM304H

LM3Q5H

LM307CN

LM308H

LM308CN

LM309H

LM309K

LM310CN

LM311H

LM311N

LM317K

LM31BCN

LM319N 1.30

LM320K-5 1.35LM320K-5.2 1.35

LM320K-12 135LM320K-15 1.35

LM320T-5 1.75

LM320T-5.2 1.75

LM320T-8 1,75

LM32QT-12 1.75

LM320T-15 1.75

LH320T-18 1.75

LM320T-24 1.75

LH323K-5

LM324N

LM339N

LM340K-5

LM340K-6

LM340K-8

LM340K-I2

LM340K-15

LM340K-18

LM340K-24

LM340T-5

LM340T-6

LM340T-8

LM340T-12

LM340T-15

LM340T-18

LM340T-24

LM350N

LM351CN

9.95

LINEAR

78MG 1.75

LH370N 1.15

LM373N 3.25

LM377N 4.00

LM380N 139

LM380CN 1.05

LM381N 1.79

LM382N 1.79

NE501K 8.00

NE510A 6.00

NE531H 3.00

NE536T 6,00

NE540L 6.00

NESSON .79

NE555V .39

NE560B 5.00

NE561B 5.00

NE562B 5.00

NE565H 1.25

NE565N 1.75

NE566CN 1.25

NE567H 1.95

NE567V 1.50

LM703CN .45

LM709H .29

LM709N .29

LM710N .79

LM711N .39

LM723H .55

LM723H .55

LM733N 1.00

LM739N 1.00

LM741CH .35

LM741CN .35

LM741-14N .39

LM747H .79

LM747N .79

LM746H .39

LM74BN .39

LM1303N .90

LM1304N 1.19

LM1305N 1.40

LM1307N .85

LM1310N 2.95

LM1351N 1.65

LM1414N 1,75

LM145BC

LM149GN

LM1556V

IM1812N

LM2111N

LM2901N

LM3053

LM3065N

LM3900N

LM3905N

LM3909

LM5556N

MC5558V

LM7525N

LM7535N

LM75450 .49

75451CN .39

75452CN .39

75453CN .39

75454CN .39

75491 CN .79

75492CN .89

75494CN .89

RCA LINEAR

CA3013 2.15

CA3023 2.56

CA3035 2.4B

CA3039 1.35

CA3046 1.30

CA3053 1 50

CA3059 3.25

CA306O 3.25

CA30BO .85

CA3081 2,00

CA3082 2.00

CA30B3 1.60

CA3086 .85

CA3089 3.75

CA3091 10.20

CA3053 1.50

CA3102 2 95

CA3123 2 15

CA3130 1.39

CA3I40 1.25

CA3600 1.75

RC4194 5.95

RC4195 325

74LS0074LS0274LS0374LS0474LS0574LS0874LS1074LS1374LS1474LS2074LS2674LS2774LS2874LS3074LS3274LS4074LS5174LS5574LS73

74LS00 TTL

74LS74

74LS75

74LS76

74LSB3

7JLS85

74LSB6

741S90

74LS92

74LS93

74LS95

74LS96

74LS107

74LS109

74LS112

74LS132

74LS136

74LS138

74LS139

74LS15I

74LSI53

74LS157

74LSI 62

74LSI 63

74LS164

74U5175

74LS181

74LSI90

74LS191

74LS193

74LS193

74LSI 94

74LS195

74LS257

74LS260

74LS379

74LS670

CLOCK CHIPS

MM5309 6 Digit. BCD Outputs. Reset PIN.

MM5311 6 Digit, BCD Outputs, 12 or 24 How

MM5312 4 Digit. BCD Outputs. 1 PPS Output

MM5314 6 Digit. 12 or 24 Hour, 50 or 60 Hi

MM5316 4 Digit, Alarm. 1 PPS Output

MM531B Video Clock Chip. For Use With (MM5B41 - $9 951

CT7001 6 Oigil. Calendar, Alarm, 12 or 24 Hour

4.954.956.95

♦

1249 Whlli w/bncelil 119.95T248 Vallnr w/bnctlH SZ2.96

i

T237 Whit* w/bncilBl $22.94

T236 YHIdw w/bucdtl S2S.96

Timcband 'bym/Mxtw— Watches —

Men's & Ladies

• Solid State

• Displays hour, minute,second, month & day

• Free set of replacementbatteries

• Choose LED or LCD styles

• One year factory warranty

(#ii

TC437 WhiiB • -bracelet $29.95TC438 Yellow •.■bnceldl $34.95

1C62S While w/itrap $29.96TCS24 Tallow w.ilnp $34.95

_w LADIES LED

X

T325 mill w/ttnp $24.96

nu Yiiiow w/ttnp $27.96

gH/INNELCE

$159.95

m/AO/iw worn fNifftrm/tMe/ir swat

• Freeze Action • Speed Option

• Automatic time and scorekeeping

• Battery-tree AC operation

• Dual controls with B-way action

• Built-in Pro Hockey and Tennis games

• Easy hook-up on any B/W or Color TV

• Factory warranty

Channel F — additional cartridges — $17.95 ea. »813 - »»*** ti or 2 players)

0814 —Spitfire (1 or 2 players)

0811 — Tic-Tac-Too/Shooting Gallery 0819 — Drag strip (1 or 2 players)

Quadra -doodle/Doodle/ 0815 — Spacewar (2 players) 0820 — Maze (2 players)

0812 — Desert Fox/Shooting Gallery 0818 — Magic Numbers (computer logic) 0822 — Baseball (2 players)

XC209XC209XC2Q9XC209

XC22XC22XC22

XC2!SSL-22

TYPE

MAN 1MAN 2MAN 3MAN 4MAN 7MAN 7GMAN 7YMM 52MAN 64MAN 74MAN 62MAN 84MAN 3620

125" dls.Red 1

GreenOfangeVellow

200" dlaHefl i

DISCRETE LEDS

XC111XC111XC11!

XC111

XC526XC526XC526XC526

XC526

GreenYellowOrange

XC556XCS56XC556XC556<C556

GreenYellowOrange

.190" dla.Red 10/$ 1

Green 4/S1

Yellow 4*1

Orange 4/S1

.085" dla.MV50 ■ Red 6/Sl

INFRA-RED l.EO

DISPLAY LEDS

POLARITYCommon Anode5 > 7 Ool Main*Common CathodeCommon Cain odeCommon AnoileCommon Anode-greenCommon Anode-yellowCommon Anode-greenCommon Anode-redCommon CamodeCommon Anode-yellowCommon Cailiode-yellowCommon Anode -orange

TYPE

MAN 3640MAN 4710OL701DL704DL707MAN 4740OL741DL 747DL 750□ L 333FND70FND503FND507

POLARITY

Common Cathode-orangeCommon Anode-RedCommon Anode-red rCommon CathodeCommon AnodeCommon Anode-RedCommon AnodeCommon AnoueCommon CalhodeCommon CathodeCommon CathodeCommon CflinodeComrnOfl Anode

5110 1.00

FCS 8000A — 3V* Digit — .8" Display

NEW! 25 Pin Version with colon & am.'pm indicator

• Connects almost onelor one with 3617, 3817Aor D. (38)7 available atS5.00 each).

• Typical segmeni cuirem8mA except colon. 10 tirsb & c and 10 mm. a & dwhich are 16 mA

•-IBEB

FRONT VIEW - FSCB000

SPECIAL$4.95 EA.

MAXIMUM FORWARDCURRENT —25 mA.

■ Forward voltage drop1.5 volts

HP 5082-7300 Series — Multi-Digit

■ Vi" ht. • Common Cathode Red

• 3-5 volts ((i 5 mils/second-, ... 2 Digit S .79

• 7 segment Monolithic 3 jjjSj 8g

• D'P Pactege 4 Digil ;M

5 Digit 1.19

10 or more

.79

TV GAME CHIP SET — $14.95

Includes AY-3-8500-1 Chip and 2.010 mhz crystal(2,010 crystal — $1.95 ea/AY-3-8500-1 chip — $13.95 83.)

IC SOLDERTAIL — LOW PROFILE (TIN) SOCKETS

25-49

16 pin18 pin

35 SOLDERTAIL STANDARD (TIN)

2B pin40 pin

SOLDERTAIL STANDARD (GOLD)

40 pinWIRE WRAP SOCKETS (GOLD) LEVEL #3

50 PCS. RESISTOR ASSORTMENTS $1.75 PER ASST.

10 OHM 12 OHM V5 OHM i8 OHM >? OHM

27 OHM J3 OHM 39 OHM 47 OHM 56 OHM

68 OHM 82 OHM 100 OHM 120 OHM 150 OHM

180 OHM ?20 OHM 270 OHM 330 OHM 390 OHM

470 OHM 560 OHM 6H0 OHM 820 OHM IK

1 2K 1 5K 1 8K 2 2K 2 7K

4 7K 5 6K 6 8K

1/4 WATT 5%

1/4 WATT 5-i. 50 PCS.

3 3K

3 9K10K

12K

15K

ASST. 7

ASST. 8R

120K330KB20K2 2M5 6M

Includes Resistor Assortments 1 -7 (350 PCS.) $10.95 ea.

15.00 Minimum Order — U.S. Fundi OnlyCalllomli Reildanli - Add 6% Salai T>i

Spec Sheets • 25tr — Send 35c Stamp lor 1977A CatalogDealer Information Available

1021-A HOWARD AVE.. SAN CARLOS. CA. 94070PHONE ORDERS WELCOME — (415) 592-8097All AdvertlMd Prices Good Thru October

WIRE WRAP CENTER >

HOBBY-WRAP TOOL-BW-630

Battery Operated (Size CI

Weighs ONLY 11 OuncesWraps 30 AWG Wlie ontoStandard DIP Sockets (.025 inch)Complete with built-in bit and sleeve

WIRE-WRAP KIT — WK-2-WWRAP . STRIP • UNWRAP grl

. Tool loi 30 awg Wire WJ

• Roll ol 50 Ft, White or Blue 30 AWG Wire

• 50 pes. each 1", 2". 3" & 4" lengths —pre-stripped wire.

$11.95

WIRE WRAP TOOL WSU-30WRAP . STRIP . UNWRAP -S5.95

WIRE WRAP WIRE — 30 AWG

25ft.min $1.25 5011. $1.95 100ft.S2.95 1000ft. $15.00SPECIFY COLOR — While - Yellow - Red - Green - Blue - Black

WIRE DISPENSER — WD-30. 50 It. roll 30 AWG KYNAR wire wrap wire $3.45 ea

• Cuts wire to desired length

• Strips 1" ol insulation Specify — Blue-Yellow-White-Red

RfWMMV New

31/2-Digit Portable DMM

Comes With leslleads, operating manualand snare fuse.

Overload Protected • 3_ hirjri LED Display

• Battery or AC operation • Auto Zeroing

• 1mv. 1 Va. 0 1 ohm resolution ■ Overange reading

• 10 meg input impendence

• DC Accuracy 1% typical

RangM: DC Voliarje: -D-1000WAC Voltage: 0-10O0VFreq. Response: 50-400 HZ/DC-AC Current 0-1000mAResistance 0-10 meg onmSat: 6 4" x 4 4- a T

Model 26DD $99.95AC Adapter BC-28 8.00

Rechangeable Batteries BP-28 20.00Carrying Case LC-26 6.00

DATA HANDBOOKS

7400 Pin-oui & Description of 5400/7400 ICS S2.95

CMOS Pin-oui & Description of 4000 Serins ICS $2.95

Linear Pin-oui & Functional Description $2.95

ALL THREE HANDBOOKS $6.95

TYPE

1N7461N751A1N752IN 7531N7541N959IN965B1N52321N52341N52351N523GIN4561N4581N4B5A1N40011N4D021N40O31N40Q4

ZENERS -

VOLTS W

3.3 400mm

5.1 400m5.6 400m

6.2 400m6.fl 400m8.2 400m15 400m5.6 500m6.2 500m68 500m7.5 500m25 40m150 7m180 10m

50 PIV 1 AMP

100 PIV 1 AMP

200 PIV 1 AMP

400 PIV 1 AMP

DIODES -

PfllCE TTPE

4/1.00 1N4005

4/1 00 1N4006

4/1.00 1N4007

4/1 00 1N3600

4/1.00 1N4148

8/1.00 1N4154

4/1 00 1N4305

28 1N4734

28 1N4735

28 1N4736

28 1N4738

6/1 00 1N4742

6/1.00 1N4744

6/100 IN1183

12/1.00 1N1184

12/1.00 IN1185

12/1.00 1N1186

12/1.00 1N1188

RECTIFIERS

VOLTS W

600 PIV 1 AMP800 PIV 1 AMP1000 PIV 1 AMP50 200m

10m10m

1w

12

15 iw

50 PIV 35 AMP

100 PIV 35 AMP

150 PIV 35 AMP

200 PIV 35 AMP

400 PIV 35 AMP

SCR AND FW BRIDGE RECTIFIERS

C36D ISA® 400V SCR

C38M 35A @ 200V SCR

2N2328 1 6A @ 200V SCR

MOA 960-t 12A @ 50V FW BRIDGE PEC

MDA9BQ-3 12A@20QV FW BRIDGE REC

MPS A05MPEA062W719A2rTO212N22J7A2N23692N2369A2N2484?N29C6A?N2907A2N29?52N305J2M305SMJE30S5MJE29S52N33922N339B

SSI DO

sn.w

391 00

-Ir^lOfl

ssi oc

5S100

4/S1 00

TRANSISTORS

PN356?PN3563PN35692N37DJ2N37052N3/062HV012N37II2N37242N372S2N39032N39042N390S2N39062N10132NJ0U2N4123 10/S

5S100

i-V 00 ili

51100 y

5,'Sl.OO I: 1

5/5100 I

S 65 M

34101

PN42J9

PN4250

7NW00

2NI401

2NW02

2NU03

2N4109

2N50BS

2N5087

?N50Bfl

2N5089

2HM29

?N5138

2NS139

2N5209

2N595'

C106B1SCP.

2H5437

5S1O0?SI 00S7O0

CAPACITOR

10 pi22 pt

47 pt

100 pt220 pf470 pi

001ml0022,0047mlDim!

.1/35V15/35V.22/35V33/35V47/35V.68/35V1.0/35V

50 VOLT CERAMICDISC CAPACITORS1-9 10-49 50-100

QOIftf

.04

.04

«M7^FOljiF

022/tF

047^F 06

.04 035 I/iF 12

100 VOLT MYLAR FILM CAPACITORS

022ml047m!

CORNER

1-9 10-49 50-100

.05 .04 035

05 04 .035

05 04 035

.10

.07

27

.22mf

+20% DIPPED TANTALUMS (SOLID) CAPACITORS28 .23 .17 1.5/3SV 30 26

.28 .23 17 2.2/25V .31 .27

2B .23 .17 3.3/25V 31 27

.28 .23 .17 4 7/25V .32 .28

2B 23 .17 6.8.25V .36 .31

28 23 17 1C25V .40 .35

.28 .23 17 I5/25V 63 50

MINIATURE ALUMINUM ELECTROLYTIC CAPACITORS

Aii.il Lead

.47/50V .

1.0/50V 16

3.3/50V .15

4.7/25V .16

10/25V .15

.10

10/50V22/25V22/50V47/25V47/50V1O0/25V100/50V220/25V220/50V470/25V10OO/16V2200/16V

.47/25V47/50V1.0/16V1.0/25V1.0/50V4.7/16V4.7/2SV4.7/50V10/16V10.25V10/50V47/50V100/16V100/25VIOO/50V220/16V470/25V

Radial Load

15

13

'-'-^'CRYSTALS

pm#'

CV1ACY2A

THESE FflEQUENCIES ONLY

Frflquoncy1.0QO MHz2 000 MH!

ICY? 01

CY3»CY7ACY12ACYUACY19ACY22ACY30B

2.010 MHz

HC33/U

d 000 MH:5.000 MHz10 000 MHz14 31818 MHz18 000 MHz20 000 MHz32 000 MHz

HC18/UHC18/UHC18UHC18UHC18UHC18/UHC18U

S1 95!

S4.95S4.95S4 95S4 95S4.9554.95S4 95

XR-2206KII Kit $29.95

WAVEFORMGENERATORS

XH-205 S8 40

XR.22MGP 4 49

XR3207CP 3 85

STEREO DECODERS

KR 1310CP S3 20

XFM310EP 3 20

XR-iflOOP 3 20

XR2567 2 99

Special

EXAR

MISCELLANEOUS

XR-2206KA Kit $19.95

TIMERSXR-555CP S 39

XR-320P 1 55

XH-556CP 1 85

XR-255GCP 320

XR-2240CP 3.25

PHASE LOCKED LOOPSXR-210XR-215XR-567CPXR-567CT

CONNECTORS

PRINTED CIRCUIT EDGE-CARD

156 Spaciog-Tin-Double ReaO-OutBifurcated Cootacls — Fits 054 lo .070 P.C. Cards

15/30 PINS (Solder Eyelet) $1.95

18/36 PINS (Solder Eyelet) $2.49

22/44 PINS (Solder Eyelet) $2.95

50/100 PINS (Wire Wrap) $6.95

50/100A (.too Soacino) PINS (Wire Wrap) $6.95

25 PIN-D SUBMINATURE

DB25P PLUG $3.25

DB25S SOCKET $4.95

205-CB

HEAT SINKS

**

205-CB Beryllium Copper w-black finish for TO-5291-.36H Aluminum for TO-220 Transistors &

Regulators680-.75A Black Anodized Aluminum for TO-3401-A Black Anodized Aluminum — predrilled

mounting holes for TO-3 — 4% x Vk x 2"

S .2551-60

$1.75

DIP SWITCHES SPST Slide Action#206-4 { 8 pin dip) 4 switch unit $1.75 sa#206-7 (14 pin dip) 7 switch unit $1.95 ea#206-6 (16 pin dip) 8 switch unit $2.25 ea

Etching Kits (carnot be shipped via air

32 X A-1 P C Elch Materials Kit

enough tor 5 circuit boards

27 X A-1 —Plugboards

3662

22/44

© /te

Elched Circuil Kit

Complete kit — on!/ add water

6.5 X J 5 X 1/16 Epoxy glass

P-Pattern-44 P C Tabs-spaced 156"

Maling connector lor plugboard —

22 pin double readout

Universal Microcomputer /Processor

plugboard —Epoxy Glass —complele

with heatsmk and mounting hardware

5 313 X 10 X 1.-16 copper clad

$29.95 ea.$ 9.95 ea.S 6.95 ea.S 2.95 ea.$19.95 ea.

1/16 VECTOR BOARD

64P44 062XXXPI69P44 02XXXP64P44 062

1km

SLIT-N-WRAP WIRE WRAP TOOL

• Siits aod opens insulation exposingbare wireNo pre-curting or pre-stripping.Comes complete with two -100 ft spools #28 AWG wireModel P180 $24.50

HEXADECIMAL ENCODER 19-KEY PAD

. ABCDEF

• Return Key

• Optional Key (Period). - Key

$10.95 each

MICROPROCESSOR COMPONENTS

8212821482168224CDP1802

SOBO

251925242S25

63 KEY KEYBOARD

$24.95

This keyboard feaiures 63 unercoded SPST keys, unattached 1any kind ot P C E A very solimolded plastic 13' < 4" ha;suits most applications

HD0165 16 LINE TO FOUR BIT PARALLEL KEYBOARD ENCODER CHIP

$7.95

TOOLS

A97MS — Diagonal Cutter - 4" semi-flush cut S8.50ea.

A110MS — Chain Nose Pliers - AW long 7.50 ea.

T-6 — Wire Stripper - #16 to #26 gauge 3.75 ea.

55B — Wire Stripper - #10 to #20 gauge 2.50 ea.

CS-8 — Cutter-Crimper Tool - 8'/<" long 8.50 ea.Nibbing Tool — Cuts. Trims or Notches Metal

up to #18 gauge 6.95 ea.

Nibbling Tool Replacement Punch 3.75 ea.

■ PER.MACEL" P-29 PLUS Electrical Tape - All Weather

i • W wide x 66 ft. • Slack vinyl

X^j Rolls $.79 each 10-up Rolls $6.95/10 roll package

CPU

8 Bit Input/Output

Priority Interrupt Control

Bi-Directional Bus Driver

Clock Generator/Driver

with user manual

CPUS

Super 8006Super 30088 BIT MPU

SflS

102- Dynamic

He« 32 BiT

Hex JO BIT

512Dynami;

1024 Dynamic

Duai 255 BIT

Dual 51? BIT

Quart 80 BIT

1024 Static Spao

Frio

S19.954.9515.956 9510.9539.95

8228 System Controller -MC6800 8 Bit MPUMC6820 Periph. Interface AdapterMC6810AP1 128 x 8 Sialic RAMMC6830L8 1024 x 8 Bit ROMZBO CPU

RAMS

256 «

StaticStatic

DynamnStatic

static

StaticState

$10.9522.5015.00

6.0018.0049.95

S 1 49

IMM5262 ~2K7

4 Reg

RUMS2513(21401 Char Gen -upper c2513(30211 Char Gen -lower ci2516 Char Gen

t:02A

5203

62S23

B2S123

7JS237

J601

5 9.959 9510 95

Tri-Stati! Bipolar

Open Collector BipolarTri-State Bipolar

2595J2.95

FCM3817AY-3-8500-1MC3061PMC4016P [7'MCI 4583MC14562CD4059CD4070MCI 4409MC14-110

SPECIAL REQUESTED ITEMS

AY-5-2376

CD4SOB

CD4515

CD4520

MCM6571

MCM6574

MCM6575

MC14419

ICM7045

6 502 7017 50

14 952495

MK50240

11C90

DS0026CH

TIL308

ICM7208

ICM7207

25 009 9517 5019 953 7510 5022.007 50

4W9

6T20

8T97

3341

9368

MC1408L7

LD110/LD111

AY-5-9100

95H90

ICM7209

HDD165

-TW

9.9525 00'set17 50 ea

7.507.95

PARATRONICS

ALLOW I TO 3WEEKS DELIVERY

Featured on February's Front Cover of Popular Electronics

MODEL

LogicAnalyzer Kit

Analyzes any type of digital system

Checks data rates in excess of 8

million words per second

Trouble shoot TTL, CMOS, DTL. RTL

Schottky and MOS families

Displays 16 logic states up to 8 digits wide

See ones and zeros displayed on your

CRT, octal or hexadecimal format

Tests circuits under actual operating

conditions

Easy to assemble — comes with step-by-step construction during testing

manual which includes 80 pages on logic analyzer operation.

100A$229.00/Kit

Some applications are:

— Troubleshooting microprocessoraddress, instruction, and data flow

— Examine contents of ROMS

— Tracing operation of control logic

— Checking counter and shiftregister operation

— Monitoring I/O sequencesVerifying proper system operations

PARATRONICS TRIGGER EXPANDER - Model 10

Adds 16 additional bits. Provides digital delay and Qualification of Input clock Model 10

and 24-bit trigger word. — Connects direct to Model 100A for integrated unrt).

$229.00

Baseplate —16.95

BUGBOOK ■ | I

Continuing Education Series ,JL. 3

BUGBOOK 14II -Basic concepts of TTL Logic — over 90

experiments $17.0u7set

BUGBOOK Ma - Introduces UART — recommended

tor RTTY enthusiast S5.00/brjok

BUGBOOK III - Explores 8080 chip — introduces

Mark 80 Microcomputer $15.00/book555 TIMER APPLICATIONS SOURCEBOOK WITHEXPERIMENTS — over 100 design techniques $6.95/bookCMOS-M-DESIGNERS PRIMER AND HANDBOOKa complete CMOS instruction manual S6.00

INSTRUCTORS MANUALNecessary tor instruction on Bugbook I and II. $3.00

Introductory Olfer — all 6 books (worth $49.95)

(does not include Instructors Manual)

SPECIAL - $42.95

CONTINENTAL SPECIALTIES

PROTO BOARD 6 otc*V

S15.95

(6" long X 4" wide)

«®

PB100

Other CS Prolo Boards

5" x 6" $

17,95

PB101PB102PB103PB104PB203PB203A - 9.75 x 6'4 x 2Vl 120.00

(includes power supply)

5.8" x 4.5"7"X4.5"

9"x6'9.5" x 8"9.75 x 6'/2 x 2%

29.9539.9559.9579.9575.00

MAX-100 Fraquaney Countflr

20 MHZ-100MH: — 8 digit — .6" LEDAvailable September 15. 1977 1134.95

Logic Monitor

loi OTL HTL. TTL Oi

S84.95

PROTO CLIPS

14 PIN $4.5016 PIN 4.75

24 PIN 8J>0

DESIGN MATES

DM1 - Circuit Designer

54.95DM2 - Function Generator

69.95DM3 - RC Bridge 59^95

CD TimebandDigital Alarm Clocks

C-500 - Ivory CaseC-500B - Ebony Case

516.95

Timeband lamp clock

QT PROTO STRIPS

- . . . -'.■■: ■

■MrVi.i.i,!-

-MIM-

•»•

ill typeOT-59SQT-59BQT-47SOT-47R0T-35SQT-35BOT-18SOT-12SQT-BSQT-7S

price12 502.5010.00

III- '"'

"■•fOT-a

Experimenter 300 S 995Experimenter 600 $10.95

$5.00 Minimum Order

California Residents -

-U.S. Funds OnlyAdd 6% Sales Tat

Spec Sheets - 25c — Send 35c Stamp for 1977A CatalogDealer Information Available

1021-A HOWARD AVE., SAN CARLOS, CA. 94070

PHONE ORDERS WELCOME — (415) 592-8097

All Advertised Prices Good Thru October

24 hour alarmDoze button

• Alarm-on indicator

• .8" high Red LED Display

• AM/PM Indicator

• High intensity lamp

• Lamp shuts off when collapsedModel C-590 (Ivory) $29.95

AM/FM 8-Track Stereo ReceiverWith BSR Changer

• PLL System

• BSR Record Changer

• Slide Controls

• Automatic AFC Control

• 4 Speaker Output

• Walnut finish vinyl coveredwood veneer with smokedust cover

Size: 20"W x 9WH X15WD

Model 8365 $149.95

DIGITAL STOPWATCH

• Bright 6 Digit LED Display

• Times to 59 minutes 59 59 seconds

• Crystal Controlled Trme Base

• Three Stopwatches in One

Times Single Eyent — Split 5 Taylor.Size 4 5" j 2 15" x. 90" (4*5 ounces)

• Uses 3 Penlite Cells

Kit — $39.95

Assembled — $49.95Heavy Duty Carry Case$5.95

Stop Walcb Chip Only (7205) $19.95

3% DIGIT DVNI KIT

This 0-2 VDC 05 per cenl digital vollrneter feaiures the Motorola 3ft digitDVM chip set. It has a .4" LED dispay and operates from a single + 5Vpower supply The unit is provided complele with an injection molded blackplastic case complele with Bezel An optional power supply is availablewhich fits into the same case as the 0-2V DVM allowing 117 VAC operation

A. 0-2V DVM with Case $49.95

B. 5V Power Supply $14.95

JE700 CLOCK

The Jr. 700 is a low cosi digital clock, oiis a very high quality unit The unii te;tures a simulated walnui case wilh dmansions d 6 x2': x 1 II utilize| MAN7? high brightness readout, and

MM53I4 clock ci

KIT ONLY

$17.95

Rejected ATARI GAME BOARDS

Over 60 Reusable IC's, misc. I

transistors, resistors, diodes, j

caps, crystals, switch, etc. j

(8tt"x16"). Limited Quantity. I

$4.95 ea.

INSTRUMENT/CLOCK CASE

Injection molded unit. Completewith red bezal. AW x 4" x 1 -9/16'

$3.95 ea

JE803 PROBE

The Logic Probe >s a unit wnicn is tor me mosi panmdespensiDle in trouble shooting logic familiesTTL DTL RTL CMOS II derives the powsr itneeds to operate directly oil ot [he circuit underlesl drawing a scant 10 mfl max HusesaMAN3readoul to indicate any ol the lollowing slate; Dythese symbols [Hi - i iLOWi - o iPULSE) - P TheProbe can detect "1(1" irL'tiucne.y pulses 10 45 MHzII can t oe used at MOS \sveK or circuit damage

$9.95 Per Kit

Drinted circuit board

PL 5V 1A Supply

This is a standard TTL power supply using the well knownLM309K regulalorIC to provide a solid 1 AMP at current at 5volts We try to make things easy lor you by providingeveryihing you need in one package, including itiehamware

""""» $9.95 Per Kit J

Circle 459 on inquiry card.

What's

Personal Computing CompanyIntroduces ACI-33 Cassette Interface

A 3 Base Triple Play

IMSAI Offers New Microcomputer withOne Megabyte Memory Capacity

The new IMSAI 8080 MegabyteMicro is one manufacturer's answerto the ever increasing need for moreprogrammable memory space in micro-computers. The unit's chassis has thecapacity for one million bytes of pro-grammable memory. The problem ofaddressing this much memory is solvedby using a total of 20 address lines.Memory modules may be purchased inunits of 16 K, 32 K or 64 K bytes ofdynamic programmable memory.

The heart of the memory controllogic is the Intelligent Memory Manager/Interrupt (IMM) board, which provideswrite protect for each 1 K byte block ofprogrammable memory, read protection,fully vectored interrupts, and time ofday clock. Memory expansion is imple-mented by increasing the number ofaddress lines from sixteen to twenty, andusing a form of block switching tocontrol the four added lines. The extend-ed address space is divided into 64 1 6 Kbyte blocks of which four may beon-line at any one time. The "switch" isimplemented by defining a map whichassociates a state for address lines 16through 19 with each state of addresslines 1 2 through 1 5. The map defaults to0000 out for all states of address lines 1 2through 15 when the system is reset. It ismodified and maintained under softwarecontrol.

For more information, write toMichael Stone, IMSAI ManufacturingCorporation, 14860 Wicks Blvd, SanLeandroCA 94577."

Circle 571 on inquiry card.

The ACI-33 is an audio cassetteinterface designed primarily for theSouthwest Technical Products Corpo-ration SwTPC 6800, the control inter-face and a terminal. The unit will alsooperate with any RS-232 terminal andcomputer serial IO which can supply+5 V and ±12 V for the RS-232 inter-face. When used with the SwTPC, theACI-33 supports all functions of thecontrol interface.

The ACI-33 uses the self-clockingredundant Manchester scheme of en-coding, sometimes called the "ByteStandard." The two logic states used forencoding are represented by 1200 Hzand 2400 Hz frequencies which arewritten onto and read from the tape.

Priced at $59.95 for an assembledmodel, the interface is available fromPersonal Computing Company, 3321Towerwood Dr, Suite 101, DallasTX 75234."

Circle 572 on inquiry card.

MARQUIS, a New Video Display Unitfrom Dataview

The MARQUIS, announced by Data-view Inc, 23A Dana St, Maiden MA02148, is a new video display unitfeaturing both 20 mA current loop andRS-232 interfacing capability. The usercan select any of 15 different datatransmission rates ranging from 50 to9600 bps. Full or half duplex operationand parity generation are included andare switch selectable. The unit displays80 upper case characters per line, using a5 by 7 dot matrix. Characters are takenfrom a 64 character ASCII set."

Circle 573 on inquiry card.

Texas Instruments' new Tl Program-mer calculator could be a boon for thelong suffering programmer: it performsarithmetic In octal, hexadecimal anddecimal, and can be used to convertautomatically from one of these bases toany other.

Typical applications of this calculatorinclude converting memory addressesfrom hexadecimal to decimal, calculatingrelative address locations and so on.Expressions may have mixed baseswithin them, and parentheses may benested up to four deep. Negativenumbers are displayed in two's comple-ment form in both the hexadecimal andoctal bases: a one's complement key isalso included.

A particularly useful feature on thisunit is its ability to perform bit by bitoperations on hexadecimal or octalnumbers, including AND, OR, exclusiveOR and SHIFT operations.

The Tl Programmer sells for $49.95complete with 8 digit LED display,rechargeable battery, AC adapter andcarrying case, and is being offeredinitially by mail only from the company.For more information, write TexasInstruments Inc, Inquiry AnsweringService, POB 5012, M/S 84 (Attn: TIP),Dallas TX 75222."

Circle 574 on inquiry card.

News of Interest to "Computors"

SEI Publications has announced anew monthly management report calledthe Small Business Computor. Theterm "computor" was coined by thecompany to describe the man who com-putes, rather than the machine. Thereport is to be in newsletter format withno advertising. Its goal is to educate andassist small businessmen and women inthe use of computers, computing anddata processing as they apply to smallbusinesses.

Sample articles include "Motorcyclesand Micros: Retail Success Story,""Control of Computer Based Informa-tion Systems," and "Computer Con-sultants: Who Needs Them?".

More information can be obtainedby writing to SEI Publications, POB 145,Newington CT 06111."

Circle 575 on inquiry card.

198

PDR-27 GEIGER COUNTER

Just released by the US Navy San Diego. They appear to be in excellentcondition and come in fitted aluminum carrying case not shown. Batterieseasily obtained except for 1.5 mercury cells which you can substitute withexternal AA cells, 4 ranges from 0.5 to 500 mr/hr, detects beta & gammarays. Visual indication and if phonesa are purchased, audio as well. Withno facilities to test, we are selling "as is" visually OK, with schematic.

Phones $5.00 Inst. Book $5.00 PDR-27 $35.00

TOUCH TONE ENCODER KIT $12.95

Simply solder the chip to the PC board on back of the touch pad. It's done.Add 9 volt battery, small speaker, and you have touch tone audio output.We provide specs and instructions. SP-149-B $12 95

IR VIEWER $199.00 COMPLETE

Custom made with manufacturers guarantee. Complete with built-inlight source. Permits viewing in total darkness. Operates from 6 voltlantern battery. Great for scientific experimentation, viewing birds,animals, ciminal detection, just plain snooping. (We cannot ship to

Calif, residents.

SPL-21 $199.00

SPECTRA FLAT TWIST

50 conductor, 28 gauge, 7 strands/conductor made by Spectra. Two con-ductors are paired & twisted and the flatribbon made up of 25 pairs to give totalof 50 conductor. May be peeled off inpairs if desired. Made twisted to cut downon "cross talk." Ideal for sandwiching PCboards allowing flexibility and workingon both sides of the boards. Cost orig-inally $13.00/ftSP-324-A $1.00/ft. 10 ft/$9.00

SP-234-A $1.00 ft 50 cond. 10 ft/$9.00SP-234-B .90 ft 32 cond. 10ft/$8.00

WIRE WRAP WIRE

TEFZEL blue #30 Reg. price$13.28/100 ft. Our price 100 ft $2.00;500 ft $7.50.

MULTI COLORED SPECTRA WIRE

Footage 10' 50' 100'

8 Cond. #24 $2.50 9.00 15.00

12 " 22 3.00 11.00 18.00

14 " 22 3.50 13.00 21.00

24 " #24 5.00 20.00 30.00

29 " 22 7.50 28.00 45.00

Great savings as these are about 1/4

book prices. All fresh & new.

TOUCHTONE ENCODER CHIP

Compatible with Bell system, no crystal required. Idealfor repeaters & w/specs. S6.00

CHARACTER GENERATOR CHIP

Memory is 512x5 produces 64 five by seven ASCIIcharacters. New material w/data S6.00

slie&nMQ,

Please add shipping cost on above. Minimum order $10

FREE CATALOG SP-9 NOW READYP.O. Box 62, E. Lynn, Massachusetts 01904

199

Circle 460 on inquiry card.

A New Altair That Looks Different

A New Way to Label IntegratedCircuit Pins

Power for Your Microprocessor

The new Altair Turnkey microcom-puter is a significant departure in appear-ance from the rest of the Altair line. Thefront panel is virtually blank, sportingonly two toggle switches, five LEDindicators, and a key operated powerswitch. All the functional units of thisTurnkey model of the 8800b are con-tained on one circuit board called theTurnkey Module board; this includes thecentral processing unit (CPU), program-mable memory, sense switches and seriallO. All the hardware for this model iscompatible with preceding Altair com-puters.

The Turnkey Module board consistsof a serial IO channel that can operate avariety of peripheral devices, plus 1 Kbyte of programmable memory and pro-visions for another 1 K bytes of pro-grammable read only memory and logicfor the power-on-start feature.

The available software includes amultipurpose bootstrap loader andmonitor, both resident in the program-mable read only memory. The 8800bis software compatible with the restof the Altair line. For more informa-tion, contact MITS, 2450 Alamo SE,Albuquerque NM 87106.■

Circle 576 on inquiry card.

Industrial Users: Upgrade MDS-800toDevelop Z-80 Code

For designers wanting the additionalcapability of the Zilog 2-80 processor,but who presently have Intel MDS-800hardware and 8080 software, RelationalMemory Systems Inc (RELMS)announces the Z-80 System AdaptorModule, Z-80-SAM. Completely hard-ware and software compatible with the

14 113 212 3

1' 4

10 f>9 6

8 7

14 113 717 3II 410 i9 68 7

14 i13 7'7 )

10 i9 68 7

14 113 212 311 410 69 68 7

14 113 712 3II 410 59 b8 7

14 1

I 1 212 1

II 4IO S9 b8 7

14 1ID 21? 311 410 59 68 7

14

13 212 311 410 59 b

e 7

14 113 212 311 410 s9 68 7

14 113 212 3II 410 S9 b8 7

14 113 212 3II 410 S9 68 J

14

13 21? 3II 410 S9 t8 7

14

13 71! 3II 410 59 b8 7

14 113 212 311 410 S9 68 7

14 1

13 ?

12 1

II 4

10 b9 68 7

14 113 212 311 4IO S9 b8 7

14 113 212 3

10 S9 6

8 7

14 113 7

Ij'lII 4

10 s9 68 7

14 113 212 3

II 4

IO s9 6

8 7

14 I13 212 311 410 59 b8 7

14 113 212 311 410 S9 68 7

Here is an efficient method for label-ing dual in line (DIP) integrated circuitpins on the pin side of printed circuitboards: Adtech Inc, POB 10415,Honolulu HI 96816, has announcedDIP-1 DIP Pin Out Labels. The labels,which come in a variety of sizes from 8pin to 40 pin, are printed on an &Yi by11 inch sheet of clear mylar withadhesive backing. The accompanying re-production illustrates a portion of thesheet. Each label is imprinted with theappropriate pin out pattern. The usercuts out the desired label and presses itonto the circuit board. Each 8/2 by 11inch sheet costs $5.95, postpaid, in theUS. This technique can save a significantamount of time by cutting down onwiring errors and speeding up trouble-shooting. We highly recommend thistechnique for prototyping, having used acrude manual approximation for years tohelp eliminate wiring errors."

Circle 577 on inquiry card.

8080, 808OA, 8085 and Z-80 micro-processors, the Z-80-SAM enables anMDS-800 to support and develop both8080 and Zilog Z-80 software. TheZ-80-SAM contains a single board andassociated software and firmware. TheSAM microcomputer board supplantsthe corresponding MDS-800 board.

Besides the hardware board, Z-80SAM system monitor programmable readonly memory (PROM) firmware replacescorresponding MDS-800 read only mem-ory (ROM) firmware (on monitor ROMboard).

The Z-80-SAM extends the useful lifeof the capital investment 8080 usershave in their MDS-800 system whileenabling the user to utilize the faster,more efficient Z-80 microprocessor infuture hardware/software development.

Enhanced debugging capability isafforded by hardware features such asdisplay LEDs and single cycle switchwhich allow the user to freeze theMDS-800 data bus, examine the bus

Century Industries, POB 348, BlueBell PA 19422, has announced a newpower supply kit called the Mighty4000, designed for use with microproces-sors. The unit features four regulatedand short circuit protected outputs:+5 V at 5.5 A and -5 V at 2.2 A (bothfixed output), +5 V at 1.9 A to +1 2 V at3.3 A, and +1 2 V at 0.23 A to +28 V at0.33 A.

The supply is 10.66 by 4.43 by 3.80inches (27.07 by 11.25 by 9.65 cm) andweighs 8.5 pounds. The price of the kitis $99; it is also available assembled for$1 29."

Circle 578 on inquiry card.

New Minicomputer Periodical Offered

Minicomputer Press has announcedforthcoming publication of the first ofseveral new periodicals devoted tominicomputer end users in business,industry and the home. MinicomputerWorkbook is devoted to the interestsof engineers, educators and professionalswho are familiar with data manipulationand computer concepts, but who need aperiodical that integrates the two areastogether in a meaningful way. For moreinformation, contact Charles Moore As-sociates, POB 6, Stump Rd, South-ampton PA 18966."

Circle 579 on inquiry card.

contents, and single step the program.

The Z-80-SAM is priced at $1495 insingle unit quantities which includes theZ-80 microcomputer board, monitorROM board, and Z-80 SAM assembler ondiskette.

For more information, contactDouglas B Kelley, director of sales andmarketing, Relational Memory SystemsInc (RELMS), POB 6719, Santa ClaraCA 95150."

Circle 580 on inquiry card.

200

Now low-cost memorystacks up a , in reliability!

Introducing a new generation of ECONORAM dynamicswith SynchroFresh reliability

Meet ECONORAM* III with SynchroFresh™, the8Kx8 dynamic memory for S-lOO bus computers thatreally works. And uses less than half the powerof static designs. And costs just $188 for anassembled 8K.

Unlike previous attempts at building a low-cost dy-namic memory, ECONORAM* III is entirely reliable ...because of SynchroFresh™, a new approach to memoryrefresh that is simple, elegant and totally effective.

SynchroFresh™ was invented by George Morrow, de-signer of the original ECONORAM*. Instead of ar-bitrarily interrupting your CPU to perform memoryrefresh cycles, Morrow designed SynchroFresh™ toweave refresh invisibly into the natural timing of theS-100 bus. SynchroFresh™ circuitry simply monitorsyour computer's machine states, utilizing all of thenormal opportunities for memory refresh. It'sthat simple.

And simplicity means reliability and dramaticallylower cost. That's why a SynchroFresh™ design waschosen for the first ECONORAM* dynamic, to follow inthe footsteps of the largest-selling static memoriesfor personal computers.

ECONORAM* III with SynchroFresh™is an 8Kx8 dy-namic board, configured as two individually address-able 4K blocks for flexibility. It is available assembled,tested and warranteed for one full year for just $188.This unprecedented warrantee offers a full refund ofpurchase price if ECONORAM* III does not runreliably with your S-100 CPU—evidence of our con-fidence in its performance.

It is also available as a kit with complete assemblyinstructions and documentation for $159.

ECONORAM* III with SynchroFresh™, in assembledor kit form, may be ordered directly from Thinker-Toys™. Write 1201 10th Street, Berkeley CA 94710or call (415) 527-7548. Call BAC/MC orders toll-freeto 800-648-5311. Or ask your computer store to orderit for you.

ECONORAM* IIIwith SynchroFresh™

$188

Assembled, tested & warranteed

A product of Morrow's Micro-Stuff for

Thinker Toys

*FPnNDRAM k a trademark nt ftnrihniit Plnrtrnnirc ■■

•ECONORAM is a trademark of God bout Electronics

Circle 461 on inquiry card.

Bally Introduces New ProgrammableGame Unit

Turn Your Microcomputer Into aProgrammable Scientific Calculator

Analog Input Module

The new Bally Professional Ar-cade home TV entertainment centeris a well-engineered example of the newbreed of programmable game moduleswhich use microprocessors for logic andcontrol functions.

The unit features a printing keyboardcalculator and can generate video gamesin color. The games are stored on cas-settes; users can change games whendesired by simply plugging a differentcassette into the front of the unit. Alarge variety of games is available, in-cluding Checkmate, Dodgem, Seawolf,tennis, elementary math drills andpoker; up to four players can partici-pate. All games come complete withsound effects and music.

The unit sells for $299, which in-cludes two game cassettes. ContactRobert E Wiles, director of marketing,consumer products, Midway Manufac-turing Corporation, 10750 Grand Av,Franklin Park IL 60131.*

Circle 581 on inquiry card.

OAE Announces NewPROM Programmer

OAE's new programmable read onlymemory (PROM) programmer should beof interest to the experimenter. This isthe PP 2708/16, designed to program the2708 and the 2716 PROMs which areavailable from a variety of sources. Aparallel interface is used to connect theunit to any microcomputer; an internaladdress unit is built into the unit, plustiming and control logic and DC toDC power conversion from unregulated8 VDC input.

The PP 2708/16 comes completewith a black anodized aluminum case, 5foot ribbon cable with connectors, andsoftware. The price is $249 for the kit,or $299 for the assembled and testedunit. Contact Oliver Audio EngineeringInc, 7330 Laurel Canyon Blvd, NorthHollywood CA 91605."

Circle 582 on inquiry card.

From Artisan Electronics, 5 East-mans Rd, Parsipanny NJ 07054, comesnews of a new microcalculator called theModel 85. This new unit is the singleboard equivalent of a hand held scien-tific calculator but without a keyboardor case, designed to interface directly toa microcomputer.

Instruction entry to the microcal-culator Model 85 is under micropro-cessor software control. The Model 85accepts instructions, provides a means todetect busy status, and outputs the full14 digit display back to the microproces-sor for storage or display.

Software for controlling the Model85 in both a read and write moderequires less than 256 bytes of micro-processor system memory.

The Model 85 has scientific calcula-tion capabilities for handling scientific,engineering, mathematical or statisticalproblems. Problem solving capabilityincludes transcendental functions, suchas logarithms, sines and tangents; polarto rectangular coordinate conversions forhandling complex arithmetic, vector;multiple storage registers, selectingoperating mode and also constants for ffand e are provided as well as four metricto English unit constants for conversionsbetween inches and centimeters, liters togallons, and so on. Statistical routinesare also provided for calculation ofmeans and standard deviations. The priceis $189."

Circle 583 on inquiry card.

Burr-Brown has announced their newMP20, a microprocessor compatible ana-log input which consists of a 16 chan-nel analog multiplexer, high gain instru-mentation amplifier, 8 bit analog todigital converter, plus all necessary ad-dress, data and control bus interfaces.

The MP20 is timing and logic levelcompatible with the 8080A and the8008 processors. No external logic isneeded. Gain and offset are internallylaser trimmed, eliminating the need forexternal adjustments. Absolute accuracyis better than ±0.4% on the ±5 V or 0 to+5 V ranges.

Low level signals such as thermo-couple outputs can also be handleddirectly with reduced accuracy. Theinstrumentation amplifier can be pro-grammed with a single external resistorto provide input signal ranges as low as±10 mV full scale.

In actual use, the MP20 is treated asmemory. Each analog input channel oc-cupies one memory location. Anymemory reference instruction can beused to access data. Thus, one LDAinstruction will input data from onechannel to the accumulator. Two adja-cent input channels can even be ac-quired with one LHLD instruction.The MP20 can also be interfaced as IO.

Power requirements for the unit are±15 VDC and +5 VDC. The price is $195in single unit quantities. Contact C RTeeple, product manager, Burr-Brown,International Airport Industrial Park,Tucson AZ 85734."

Circle 585 on inquiry card.

Innovex Introduces New Series 400Floppy Disk Drives

Innovex Inc, 75 Wiggins Av, BedfordMA 01730, has announced their newseries 400 floppy disk drives whichfeature automatic head unload and step-per motor timeouts, bidirectional writeprotect, six LED activity indicators, and50 pin ribbon cable or twisted pairinterfacing capability.

Both the Model 410, which is softsectored and IBM compatible, and theModel 420, which is hard sectored,provide single and double density record-ing capability. A proprietary data sepa-rator design is said to offer improveddata integrity margins in comparisonwith other available units.

Prices for the Innovex Series 400start at $575 in single quantities. Con-tact Innovex for further information."

Circle 584 on inquiry card.

202

S.D. SALES CO. P-O. box 28810 -b Dallas, texas 75228

• Imsai - Altair "A" Compatible Kits •

Dealer inquiries welcome on these items:

Z-80 CPU BOARD

From the same people who brought you the $89.95 4K RAM KIT. We were not the firstto introduce an Imsai/Altair compatible Z-80 Card, but we do feel th;it ours has the bestdesign and quality for the lowest price! The advance features of the Z-80 such as anexpanded set of 158 instructions, 8080A software compatibility, and operation from asingle 5VDC supply, are all well known. What makes our card different is tba extra care wetook in the hardware design. The CPU card will always stop on an M1 state. We alsogenerate TRUE SYNC on card, to insure that the rest of our system functions properly.Dynamic memory refresh and NMI are bought out for your use. Believe it or not, not allof our competitors have gone to the extra trouble of doing this. As always this kit includesall parts, all sockets, and complete instructions for ease of assembly. Because of our pastexperience with our 4K kit we suggest that you order early. All orders will be shipped ona strict first come first served basis. Kit includes Zilog Manual and all parts. Kit shippedwith 2 MHZ crystals.

Z-80 Chip & Manual - $49.95; Acid S5.00 for Z-80AZ-80 Manual - S7.50 Separately.

Complete kit - $149.

4K LOW POWER RAM

IMSAI AND ALTAIR 8080 PLUG IN COMPATIBLE. USES LOWPOWER STATIC 21L02 - 1 500ns. RAM's. FULLY BUFFERED,DRASTICALLY REDUCED POWER CONSUMPTION, ON BOARDREGULATED, ALL SOCKETS AND PARTS INCLUDED. QUAL-ITY PLATED THROUGH PC BOARD. For 250 ns RAM's add $10.

THE WHOLE

WORKS

$89.95kit

NEW! DESIGN CONSOLETTE KIT - $89.95

S.I). Sales announces the inexpensive way to heat the wire wrap jungle. Our latest kit gives you I 24 solclerless i|uiek connect terminals, enoughfor eight 16 pin IC's anil provides 50 x X common buss matrix. Has regulated +SVDC and +/ I SVDC, all at 1 AMP. Voltage regulation at 100'/..Also includes a pulse generator variable from I0h/ to SOmhz and .01 see. to 100 nano seconds. Generator output is +5V. In kit form only andincludes all parts, sockets; front panel measures yVx-S'.-i". and hardware, case not available.

CAR/BOAT KIT M0

$34.95 9«*!

MUSICAL HORN

Musical Horn kit foChange tunes in setavailable at S6.95 e;

car, boat or home. Plays any tune from Mozart to Led Zeppelin,unds: complete solid state electronics. Standard or custom tunesch. (You supply the sheet music — we supply electronics for yourfavorite tune.) One song supplied with original order. Standard tunes available: DIXIE- EYES OF TEXAS - ON WISCONSIN - YANKEE DOODLE DANDY - NOTREDAME FIGHT SONG - PINK PANTHER - AGGIE WAR SONG - ANCHORSAWAY - NEVER ON SUNDAY - BRIDGE OVER RIVER QUI - CANDY MAN-Standard2 inch 8 ohm speaker supplied. Power horn available for car/boat kit.

HOME KIT

$26.90

Kit includes speaker which operatesfrom your door bell. When door bellis pushed your favorite tune is played.Car/boat kit includes speaker whichoperates from car/boat horn ring.Allow 4 weeks delivery on both kits.

$9.95 kit

6 DIGIT ALARM CLOCK KIT

We made a fantastic kit even better. Redesigned to take advantage of the latest advances in IC technology. Features: Litronix Dual V?" displays, IVlostek50250 super clock chip, single I.C. segment driver. SCR digit drivers. Greatly simplified construction. More reliable and easier to build. Kit includes allnecessary parts (except case). For P.C, board add S3.00; AC XFMR arid SI.50. Do not confuse with Non-Alarm kits sold by our competition! Eliminatethe hassle - avoid the 5314' . NEW! WITH JUMBO LED READOUTS!

]0(10 fvlFDFitter Caps

1 35 WVDC Up

4/$1.00

SLIDL SWITCHAssortmentOur best seller. Includesminiature and standardsizes, simile and multl-positton units. All new.

12/$1.00

POWER

RESISTOR

15 OHM

25W

BY

CLAROSTAT

75(P ea.

RESISTORASSORTMENT

& 10% PC

ids. A qood mix oflurts! Special!

\\N

200/$2.

100/$2.

1N4002 ■ 1A100 PIV

40/$1.

THERMISTORS

MEPCO-NEW!

1.5KOHM

5/$1.00

DISC CAPASSORTMENT

P.C. Leads. At least10 different values.Includes .001, .01, .05plus other standardvalues,

60/$1.00

AMD-1702A

FACTORY PRIME UNITS! BRAND NEW!1.5 Micro-Seconds Access Time.

10/$40. $4.95 ea.

* Special! *

3.579545

MHZ Time

Base Crystal

SI.25

28 PIN SOCKETS3 for SI.00

11,000 MFD

50WVDC

Computer Grade Cap

S3.00 each

39 MFD16 V MalloryElectrolytic15 for $1.00

FACTORY PRIME!21L02-1

Not <

nly are our RAM'S faster than a speeding bullet but theyare now very low power. We are pleased to offer prime new21L02-1 Low Power and Super Fast RAM's. Allows you toSTRETCH your power supply farther and at the same time keepthe wait light off!

500ns 8/$12.95250ns 8/$15.95

\C->

IC s from XERDX

MK50397-$8.95

1402 A Shift RegulatorMH0025CN - 55c

50c

S.D. Sales Exclusive! Elapsed time IC. Specially modified six digit counter59 min., 59 sec. 99/100 sec. Perfect for dark room timers, chess timers or any !Supplied with data sheet and applications.

7400

7402

7404

7406

7407

7410 ■

7416

7420

9c9 c9clielie9c13c9 c

7430744074377438 -7451

9c

9c

10c

10c

9c

7474 -16c

7475 -24c74S6 -16c

7493 -26c74121 -22c74123 -32c74151 - 9c74155 -22c74193 -35c8233 - 35cIntel - 1302

45c

MOS 6 Digit Up/Down Counter

40 PIN DIP. Everything you ever wanted in a counter chip. Features: Direct LED segment drive,single power supply (12 VDC TYPE), six decades up/down, pre-loadable counter, separate pre-loadable compare register with compare out-put. BCD and seven segment outputs, internal scanoscillator, CMOS compatible, leading zero blanking. 1MHZ. count input frequency.

$12.95

CALL IN YOUR BANK-AMERICARD OR MASTERCHARGE ORDER IN ON OURCONTINENTAL UNITED STATESTOLL FREE WATTS LINE:

=£-

c

=£-

Texas Residents Call Collect:

214/271-00221-B00-527-3460

TERMS:

Mom/ T&ackGuMa/Uee!

NO COD'S. TEXAS RESIDENTSADD 5% SALES TAX. ADD 5%OF ORDER FOR POSTAGE &HANDLING. ORDERS UNDER$10.00 ADD 75c. FOREIGNORDERS - U.S. FUNDS ONLY!

Orders over $15. - Choose $1. FREE MERCHANDISE!

Circle 462 on inquiry card.

Nybbling Thinly Sliced Bytes

A New Product Guide from RCA

Texas Instruments has announced anew set of 4 bit slice microcomputercircuitry which will be of great interestto experimenters wanting to try theirhands at designing a microcomputerfrom scratch.

The S481 chip set is a new seriesof Schottky TTL microprogrammablebuilding block integrated circuits whichare said to offer up to ten times thethroughput of conventional microproces-sors.

The S481 chip set can select andoperate on two operands, generate statusand store results in 100 ns. The setconsists of one or more 4 bit sliceprocessors, one or more 4 bit slicecontrollers, an appropriate number offield programmable logic arrays (FPLAs),and a variety of Schottky programmableread only memories and programmablememories.

The experimenter can choose wordsize to be any multiple of four, makingthis a very versatile system. The numberof general purpose registers which can becreated is limited only by the number ofdirectly accessible memory locations. Amemory to memory system places theregister file function in main memory;this system can be designed to handleinterrupts or context switches fasterthan conventional register to memorysystems.

For more information, contact TexasInstruments Inc, Inquiry AnsweringService, POB 5012, M/S 308 (Attn:S481), Dallas TX 75222.-

Circle 586 on inquiry card.

Periodical Guide for Computerists

The Periodical Guide for Com-puterists is a new 20 page book thatindexes over 1000 personal computingarticles from 15 magazines (includingBYTE) for the period from January thruDecember 1 976. The articles are indexedunder more than 100 subject categories.Indexed are magazine articles, lettersfrom readers, book reviews and editorialsfrom both hobbyist and professionalpublications.

The books are available from E BergPublications, 1360 SW 199th Ct, AlohaOR 97005, for $2.50 each, postpaid, andalso from local computer stores."

Circle 587 on inquiry card.

A Hand Held 4 Channel LogicAnalyzer

RCA has announced the MPG-180, anew 40 page guide to their COSMACfamily of microprocessor products.Hardware products described include theCDP1800 series of CMOS integratedcircuits. This series features central proc-essing units (CPUs), programmablememories, read only memories, IO cir-cuits and interfacing circuitry. TheMPG-180 describes the CDP1802 micro-processor and covers its features, archi-tecture, ratings, characteristics, timingdiagram and instruction summary.

Among the additional itemsdescribed are a Microtutor which teachesprogramming techniques, a floppy disksystem, a binary arithmetic package,timeshare software development pack-ages and a cross-reference guide to othermanufacturers' integrated circuits.

The free MPG-180 product guidemay be obtained by writing to RCASolid State Division, POB 3200,Somerville NJ 08876."

Circle 588 on inquiry card.

Is Your Computer System Half-Baked?

We received the following informa-tion from The Computer Center Inc,321 Pacific Av, San Francisco CA 94111:A new Microcomputer Recipe Book isavailable free from the Computer Cen-ter, listing everything from soup to nutsthat you need to put together your ownmicrocomputer operating system forpersonal, business or scientific use. Itemslisted under "Ingredients" include com-puters, semiconductor and floppy diskmemories, video displays and printers.Suggested menus for complete systemsrange from the "BIG MAC," a simple8080-based computer used in con-junction with the family TV set to the"Beef Wellington," which includes aProcessor Technology Sol-20 micro-computer, dual floppy disk drives,a DECwriter II printer and a videomonitor. Technical books dealing withhardware design, software developmentand "How To Do It" books are alsooffered."

Circle 589 on inquiry card.

A problem with multichannel digitallogic analyzers for most computer ex-perimenters is cost. Digital BroadcastSystems Inc, 4306 Governors Dr, Hunts-ville AL 35805, has provided a relativelylow cost solution to this problem withtheir new 45-B Logic Analyzer. The 45-Bis a hand held instrument which attachesto any conventional single trace oscillo-scope having an external trigger to pro-duce four simultaneous digital wave-forms. A typical application would be todisplay the clock from a given circuiton one channel, and selected logic gateinputs and outputs on the other threechannels. Complete instructions areprinted on the analyzer itself.

The unit can be used with TTL, DTL,RTL or CMOS logic families. Two poten-tiometers control waveform amplitudeand multiplexed display rate; once thesecontrols are set, the scope time basecontrol operates normally. The price,including a 9 V battery and AC adapter,is $149.95."

Circle 590 on inquiry card.

Continental Specialties' New Catalog

Continental Special-ties Corporation,44 Kendall St, POB 1942, New HavenCT 06509, have announced their new 16page catalog. It contains a variety ofbreadboarding aids such as integratedcircuit test clips, solderless breadboards(some with self-contained power sup-plies), and logic probes. A line of instru-mentation is also featured, including afunction generator, RC bridge and pulsegenerator. There is a question andanswer section in back of the catalogwhich answers frequently asked bread-boarding questions. The catalog is free."

Circle 591 on inquiry card.

A New Floppy from Digital Systems

Digital Systems announces a newfloppy disk system featuring ShugartAssociates drives and Digital SystemsFDC-1 controller. Disk formatting isIBM compatible, and diskette initializa-tion capability is provided. The DigitalResearch CP/M disk operating systemsoftware is available as an option, as isan Altair bus compatible interface. Theprice for the assembled and tested unitis $1845. Contact Digital Systems,6017 Margarido Dr, Oakland CA94618."

Circle 592 on inquiry card.

204

NEW COMPUTER INTERFACE BOARD KIT

Our new computer kit allows you to interfaceserial TTL to RS 232 and RS 232 to TTL Thereare four of these supplied with the kit, so youcan run up to four devices on one TTL or fourseparate TTL to RS 232 devices. i

Typical use: You can use your computerports to run an RS 232 printer, video terminaland two other RS 232 devices at once, without

constantly connecting and disconnecting yourterminals.Example: Out store to printer — Voltage00 requirement + 5V and ± 5V or ± 12 V depend-ing on your RS 232 device.

We supply — board, connectors, documen-tation and components. Sorry, we do not supplycase or power supply.

WHERE IT MAKES SENSE, MAY BE USED WITH ANY 8080, 6800, Z80 or F8 COMPUTER

GENERAL PURPOSE COMPUTER POWER SUPPLY KIT

This power supply kit features a high frequency torroid transformer with switchingtransistors in order to save space and weight. 115V 60 cycle primary. The outputswith local regulators are 5V to 10A, in one amp increments, -5V at 1A, ± 12V at 1Aregulators supplied 6 340T-5 supplied.

$79

00

UNIVERSAL 4KMEMORY BOARD KIT

$74

50

This memory board may be used with the

F8 and with minor modifications may be used

with KIM-1jup.

32-2102-1 static RAM's, 16 address lines,8 data lines in, 8 data lines out, all buffered. On-board decoding for any 4 of 64 pages, standard44 pin, .156" buss.

F8 EVALUATIONWITH EXPANSION

A fantastic bargain for onlywith the following features:

• 20 ma or RS 232 interface

• 64K addressing range

• Program control timers

• 1K of on-board staticmemory

• Built in clock generator

BOARD KITCAPABILITIES

$99

00

64 Byte register

Built-in priority interrupts

Documentation

Uses Fairbug PSU

FOR FAIRBUG 4K F8 BASIC ON PAPER TAPE $25

2708-SK EPROM . . S20.95

2522STATICSHIFT RE6 S 195

2513 CHARACTER GEN S 9.95

25IS-HEX 32 B1TSR . , , S 3.50

2102-1 1024 BT RAM . ... $ 1.29

52804K DYNAMIC RAM . S 4.75

5202A UV PROM S 6 95

1101A-25G BIT RAM $ .85

2107B S 4.25

MK4008P S- 1.95

1 7Q2A UV PROM . . S 4.95

5204-4 K PROM S10 95

AY 5 1013 UART _ S G 95

MfNtATURE MULTI-TURN TRIM POTS100, 500. 1K.2K.SK,10K,25K.50K.100K,

200K.500K 1 Meg. S.75 each 3/S2.O0

MULT I TUilM THKv" POTS Snn, l.,r tu Bourns

3010 style 3/16"x5/8"'x1 1/4": 50. 100.

IK 10K, fjQK ohms Sl.50ea . 3 S4.00

Ll6'HT activated sCfi's

TO IS, 20CIV 1A . . . S 1 10

TRANSISTOR SPECIALS

2N3585 NPN Si TO 66 . S .952N3772 NPN Si TO 3 . Si 602N458A PNP GE S 75

2N49G8 PNP Si TO 3 S 1 OU

2IMG056 NPN Si TO-3 DarttrWflon S 1 70

7N5086 PNP Si TO 92 4,'S 1.00

2N489S PNP TO 66 . . . S 60

2N404 PNP GE TO 5 5/S 1 00

2N3919NPNSi rO-3 RF S 1 50

MI'i.A 13 NPN Si TO-92 3/S 1 00

2N37G7 NPN Si TO-66 S .70

2N2222 NPN Si TO 18 5/S 1 00

2N3055 NPN Si TO 3 . . S .70

2N3904 NPN Si TO-92 . 5/S 1.00

2N3906 PNP Si TO-92 .. 5/S 1.00

2N5296 NPN Si TO-220 S 50

2N6109 PNP Si TO-220 S 55

2N3638 PNP Si TO 5 5/S 1 00

2N65I t NPN TO 92 Si 3/S 1 00

C/MOS {DIODE CLAMPED)

74C10 - .22 4012- .22 4023- .22 4042-

74C193-1.50 4013- .40 4024- .75 4046-2.26

4001- .22 4015- .95 4025- .22 4049-

4002- .22 4016- .40 4027- .40 4050-4006-1.20 4017-1.05 4028- ._.4007- .22 4018-1.00 4029-1.10 4066-4009- .42 4019- .25 4030- .22 4071-4010 .42 4020-1.05 4033-1.50 4076-1.05

4022- .95 4035-1.10

MCA-S1 OPTiCAt LIMIT SVVITC

LED READOUTS

FND359C.C. 4" S .50 HP 7740-.3" C.C.FND70C.C. .4" % .55 MAN-7-.3" C.A.FND 503 C.C .5" S 85 InS 33-3 diq. array

PRINTED CIRCUIT BOARD

TANTULUM CAPACITORS

Full Wave Bridges

REGULATORS

309K S .95 340K-5.12.15

723 S .50 01 24V. $ .85

LM 376 .... % GO 340T-5, 6, 8, 12

320K-5rjr15V S1.40 1 5,18 or 24VS1.1 0

320T-5.12.15 78 MG S1.35

or 24V . . $ .85 79 MG SI.35

RS232 DB25Pinaie . . . $2.9!

CONNECTORS DB 25S female . . S3.BI

Circle 463 on inquiry card.

A New Printed Circuit Board for theExperimenter

Acoustic Coupler

Midgard Electronics Inc, 26 WalnutSt, Watertown MA 02172, has announ-ced the UMB, an expoxy glass boardwith 1380 plated through holes in a two-sided foil pattern. There are four powerdistributions, and pad spacing is 0.1 inch(0.254 cm).

All four power distributions arebused to each integrated circuit positionto provide short interconnection dis-tances. A reverse foil pattern minimizescharacteristic impedances.

The UMB will accomodate all dual inline integrated circuit packages as well asdiscrete components. Exterior connec-tion is provided by a 22 pin edge con-nector compatible with the Amphcnoltype 225-2221-101 connector. The priceis $1 7.15 in quantities of one to six.

Circle 593 on inquiry card.

Anderson Jacobson announces thenew A 242A acoustic coupler whichoperates at data rates up to 450 bpsin the send mode.

A New Business Software andHardware Package

Computer Mart of New Jersey Inc,501 Rt 27, Iselin NJ 08830,has announceda new business oriented small computersystem. It stores information on floppydisks for random access, and featuresboth video display and hard copy print-ing of business reports. A custom soft-ware package allows the user to com-municate in simple English phrases.Contact the Computer Mart for furtherdetails."

Circle 595 on inquiry card.

The A 242A features:

• Flush mounted acoustic cups tolock in handset.

• A vibration isolation techniqueutilizing direct microphone hand-set coupling.

• Quartz crystal control of bothtransmitter and receiver.

• A carrier detector designed tosense valid data regardless of thecarrier level.

• RS-232 and 20 mA interfaces pro-vided.

• A rubber foot design for vibrationisolation.

The A 242A is priced at $365 in singlequantities. Contact Anderson JacobsonInc, 521 Charcot Av, San Jose CA95131,(408) 263-8520."

Circle 591 on inquiry card.

A Lower Case Character Kit

Northern Valley Systems announcesthe LC01, an ADM-3 lower case optionkit. This kit will allow Lear Siegler'sADM-3 and ADM-3A video displayterminals to display lower case characterswith no modifications to the PC board.The kit includes refresh memory chipsas well as a custom programmed charac-ter generator. It can be installed in ap-proximately ten minutes. The price is$27.50; dealer and group purchasediscounts are available.

The LC01 is available from NorthernValley Systems, POB 687, Englewood,NJ 07631.■

Circle 596 on inquiry card.

100% GUARANTEE!!

Electrolabs

TRICK OR TREAT!!

w

hi i

arantee the products we sell,efund or replacement for anysfactory product returned with-days of purchase. Our magneticmedia is certified 100% error-free, andshipped fresh from refrigerated storage,and our ICs work properly!

Free catalogue of ICs, Components, WordProcessing Supplies, Useful Devices, andEquipment sent in response to each inquiryand order. Call for quantity and specialgroup discount programs.

LS 7031 8 decade counter & 7seg. driverall on one 40 pin chip. Uses +5 only 15.95{includes schematic and app. note)MAN6640dual .6" orange hi-intensity 2,95Gould 2 AMP-HOUR "C7, size N1CADS 3.95MM74C926N 4decade counter/driver 5 95MM5058N/2533V 1024 Static S^R: 10/9.95

POB 6721, Stanford, CA 94305

415-321-5601

LINEAR

LM323K

5.95

LM309K

0.99

LM317K

2.95

LM375N Xta

I Osc. Ck

t. 2.75

MEMORY

MCM6810L-

2.95

21 L02-1

1.25

9341 1 DC

1.00

C3107B

1.00

C21 14

19.00

uPD41 1 D 4

135nS.

3.95

TANTALUM CAPACITOR SPECIAL: 22uFd/35VDC 10/3.99

These are CSR13 type and offer excellent bypass, filter and couplingperformance out to GHz. frequencies. Perfect for memory and digital.

Va" VIDEO TAPE By major US Manufacturer, but NOT 12.99

Memorex . Absolutely guaranteed to cause neither head 1 n /I in o;

clogging nor excessive wear. 2400 ft.XVj inch for one hour IU/ I I J. J Jplay on Sony, G!E!, Panasonic and all other Monochrome and colorEIA J standard machines. Call for prices on sizes to fit Sony Portapack,and for other lengths. Our bulk purchase makes this offer possible.Splice-Free, and shipped in an attractive permanent black plastic storagebox. Vi" format is the highest performance per dollar. Normally $22.95.

APL Programming language selectric printer balls 29.00

VADIC Modem Cards. Complete, requiring only + 12V, +5V, and22 pin connectors .for Bell 103 Orig./Answer service: 79.95

CPUs, Support, & PROMs

For each C2716, or TMS2716purchased before 1, Jan. 1978we will donate $2.00 to UNICEFin your name, and issue you anequal amount in credit towardsyour 1978 purchases.UVEPROMS

Z-80

39.00

8080A

11.95

8X300I

55.00

8228

7.29

8216

2.39

AY5-1013

4.95

8223 PROM SPECIAL

10/9.95

UPD371D

Cassette

Cnt

rl. 49.00

UPD372D

Floppy

Cntr

. 52.00

82S2708 70nS. Pin

for

P. 29.95

C2716

5V Only •

59.00

TMS2716

3 Supplies

49.00

C2708

Indus. Std. -

18.95

C2708

(650nSec.) -

14.95

C1702A

2K

4.95

C1702

2.25

MM5203Q

2K

2.95

MM5204Q

4K

9.95

\ferbatim

Removable MagneticStorage Media

manufactured by

Information Terminals Corp.

P

SMOKE DETECTORS Save your life, your lab. your computer.Mfg. by BRK. We think that this is the most reliable unit on the market.Same as the one demonstrated on TV for Pittway by William Conrad.In addition, this unit will function for more than a year on an on n_

inexpensive 9V cell, in contrast to many others requiring a 5- Zy.yj

7 dollar battery. Nationally advertised at $39.95. Specify battery or 1 10V.

MiniDisks

5 Per Bo

Ea. Box: 10 Boxes, Ea: 50 Boxes, Ea

MD525-1 (Soft Sector) 29.95

MD525-10 (Hard Sector: 10 Holes) 29.95MD525-16 (Hard Sector: 16 Holes) 29.95

Flexible Disks 2 Per Pkg.

FD34 1000 (Soft Sector IBM Std.) 11.95

FD32 1000 (Hard Sector. Inner)FD65 1000 (Hard Sector, Outer)

12.49

12.49

Flippy Disks

FD34 2000 (Soft, IBM)FD32 2000 (Hard, Inner)FD65 2000 (Hard, Outer)

Digital Cassettes 2 Pe

1-150 For all "Kansas City'R-300 Digital Direct

10 Per Box:

89.3093.8093.80

26.9526.9526.95

10.4911.2911.29

80.3084.4084.40

24.2524.9524.95

9.49

10.19

10.19

72.3075.90

Pkg.

and other digital recording wi8.90 8.50

11.99 10.99

75.90 Vaudio decks. ^O

7.499.99

-^^

Circle 464 on inquiry card.

206

NEW 8080 and 8085 REFERENCE GUIDE

A TOTALLY NEW CONCEPT!

SAVES TIME AND MONEY!

MAKES YOUR JOB EASIER!

A powerful new tool for every serious 8080 user — professional and novice alike.Priceless timesaver for engineers, technicians, and programmers. Saves time andmoney in the lab, on the production line, or in the field.

Convenient pocket size — 3% by 7% inches — gives quick and easy access to all vitalreference data. No more searching here and there for codes, instructions, or definitions.It's all there — at your finger tips — everything you need to successfully use the 8080Aand — Intel's new 8085 microprocessor.

Features cross listing, for rapid assembly and disassembly, of MACHINE CODES and

MNEMONICS • Concise description of 8080 and 8085 OPERATIONS, SIGNALS,

PINOUTS, and INSTRUCTIONS • Convenient cross conversion of OCTAL,

HEXIDECIMAL, DECIMAL, ASCII, and EBCDIC codes • Easy-to-read tables of powers

of two, eight, and sixteen ... and much more ...

Sturdy • Handsome • Easy-to-use • Data Packed

Your timesaver will give many years of professional service.

$12.95 each (plus postage & California sales tax) — 25% discount for 4 or more.MoneyBack Guarantee: You must be fully satisfied or simply return the guide within 15 days forf ull and prompt refund.

URBAN INSTRUMENTS

4014 CODY ROAD • DEPARTMENT C1 •SHERMAN OAKS • CALIFORNIA 91403

master charge

BankAmericard

PLEASE SEND.

NAME

STREET

CITY

STATE

. 8080 timesavers to:

CHECK/M.O. ENCLOSED D BANKAMERICARD □ MASTER CHARGE □

CARD NUMBER

GOODTHRU 4 DIGITS ABOVE NAME

.ZIP SIGNATURE

(MASTER CHARGE)

V

§£ cybercDm boards

MB-1 MK-8 Computer RAM. (not S-100). 4KX8, uses 2102

type RAMs. PCBD only $22

MB-3 1702A ER0Mj3oard. 4KX8. S-100, switchable ad-dress and wait cycles, kit less PROMS $65

MB-4 Basic 4KX8 ram, uses 2102 type rams, may be ex-panded to 8KX8 with piggybacking, S-100 buss. PC

board $30

MB-6 Basic 8KX8 ram uses 2102 type rams, memory pro-tect in 256 to 8K switchable S-100 buss. PCBD $35

MB-8 2708 EROM board. S-100. 8KX8 or 16KX8 kit without

PROMS $85

IO-2 S-100.8 bit parallel l/Oport, %of board is lor kludgmg.

Kit . . $55 PCBD $30

VB-1 64X 16 video board, upper lower case Greek, com-posite and parallel video with software, S-100.

Kit.. $189.00 PCBD $35

SP-1 Music synthesizer board, S-100, computer controllerwave forms. 9 octaves, 1V rms Vz% distortion, includes

software kit $250

Altair Compatible Mother Board, 11 x 11V4 x Ve".

Board only . $45 With 15 connectors $105

Extender Board full size. Board only $9

With connector $1 3.50

Solid state music Cybercom boards are high quality glassboard with gold finger contacts. All boards are check forshorts Kits only have solder mask. 90 day guarantee onCybercom kits.

Y/mC/inc. w AM ECO INC.

MEM-1 8KX8 fully buffered, S-100. uses 2102 type rams.

PCBC $30

Mother Board 12 slot, terminated, S-100, board only$3510% discount on 10 or more of WAMECO PCBD in anycombination.

NEWI All IC's. sockets & hardware for WAMECO MEM-1includes prime 2102AL-4's $144

Order PCBD separately below.

Special 2102AL-4 1K x 1 ram '/a less power than 21L02type rams, with power down, prime from NEC. Ea. 2.00; 32ea. 1.80; 64 ea. 1.70; 128 ea. 1.60; 256 ea. 1.50.

9080A AMD 8080A (Prime)

8212/74S412 Prime

8214 Prime

8216 Prime

8224 Prime

8228 Prime

8251 Prime

8255 Prime

1702A-6 AMD 4702A Prime

TMS-601- UART Prime

2513 Char Gen Upper Prime

2513 Char Gen Lower Prime

1702A Intel Not Prime

8T108T138T168T208T248T268T348T378T388T80

2.002.502.002.502.502.502.502.502.502.50

8T97

8T110

5309

5312

5313

5320

5554

5556

5055

MC4044

2.002.008.004.004.005.951.902.501.602.25

m

80L9781L2282L2385L5185L52B5L6386L7086L7586L9988L12

419 Portofino DriveSan Carlos, California 94070

Please send for IC, Xistor

and Computer parts list.

20.004.008.304.955.008.9014.5014.506.006.9511.0011.004.00

1.501.501.902.502.501.251.501.903.50.80

74L00

74L01

74L02

74L03

74L04

74L05

74L06

74L08

74L09

74L10

74L20

74L26

74L30

74L32

74L42

74L51

74L54

74L55

74L71

74L73

74L74

74L75

74L78

74L85

74L86

74L89

74L90

74L91

74L93

74L95

74L98

74L123

74L164

74L165

74L192

74L193

MH0026

MC1488

.25

.25

.25

.25

.30

.40

30

.40

.40

.30

35

.40

.40

.45

1.50

.35

.45

.35

.30

55

.55

1.20

.90

1.40

.75

3.50

1.50

1.50

1.70

1 70

2.80

1.50

2.50

2.50

1.25

1 20

2.95

1.50

74LS00

74LS01

74LS02

74LS03

74LS04

74LS05

74LS08

74LS10

74LS12

74LS20

74LS22

74LS27

74LS30

74LS37

74LS38

74LS42

74LS51

74LS54

74LS55

74LS73

74LS74

74LS76

74LS151

74LS174

74LS175

74LS192

2501 B

2502B

2507V

2510A

2517V

2519B

2532B

2533V

DM8131

N8263

MC1489

DM8837

.40

.50

.40

.40

.45

.45

.40

.40

.55

.40

45

.45

.40

.60

60

1.50

.40

.45

.40

.65

.65

.65

1.55

2.20

1.95

2.85

1.25

3.00

1.25

2.00

1.25

2.80

2.80

2.80

2.50

3.50

1.50

1.50

11011103

2101

2111-1

2112

2602

4002-1

4002-2

MM5262

7489

74200

74C89

82S06

82S07

82S17

8223

82S23

82S123

82S126

82S129

82S130

82S131

IM5600

IM5610

IM5603

IM5604

IM5623

IM5624

MMI6330

DM8573

DM8574

DM8575

DM8576

DM8577

DM8578

2.4576 MHZ

XTAL 7 20

1 251.254.503.754.501.607.507.501.002.004.953.002.002.002.002.503.003.003.503.503.953.952.502.503.003.503.003.502.504.505.504.504.503.504.00

Check or money order only If you are not a regular customer and yourorder is large please send either a cashier's check or a postal moneyorder, otherwise there will be a delay of two weeks for the check toclear. All items post paid in the U.S. Calif, residents add 6% tax.Money back 30 day guarantee. We cannot accept returned IC's thaihave been soldered to. Prices subject to change without notice. $10minimum order. $1.00 service charge on orders less than $10.

Reader Service

To get further information on the products advertised in BYTE, fill out the readerservice card with your name and uddress. Then circle the appropriate numbers for theadvertisers you select from this list. Add a 9 cent stamp to the card, then drop it in themail. Not only do you gain information, but our advertisers are encouraged to use themarketplace provided by BYTE. This helps us bring you a bigger BYTE.

ReaderServiceNumber

PageNumber

ReaderServiceNumber

PageNumber

441 AAA Chicago Computer Center p. 185

382 Alpha Digital p. 82

454 Ancrona pp. 188, 189

391 Anderson Jacobson p. 107357 Apple pp. 14, 15, 16

378 Artec Electronics p. 73446 A VTA R Systems p. 187

383 BITS pp. 83, 144, 151, 175, 176

392 BPIp. 109

409 Byte Shop East p. 155

451 Byte Shop of Miami p. 187* BYTE Subscription p. 93

374 Canada Systems p. 59

388 CMC Marketing Corp p. 101

398 Compumart Inc p. 123

363 Computalker p. 36

433 Computer Age p. 185

444 Computer Corner p. 186

452 Computer Creations p. 187

449 Computer Depot p. 187400 Computer Enterprises p. 127356 Computerland pp. 12, 13

431 Computer Mart of NH p. 184

442 Computer Playground p. 186415 Computer Room p. 171

437 Computer Systems Store p. 185353 Cromemco pp. 1, 2

379 Databyte p. 75423 Data Search p. 179396 Digital Group p. 119

410 Digital Micro Systems p. 155

438 Disc 3 p. 185

455 DRCp. 191351 ECD Cover III

450 Economy Terminals p. 187386 E & L Instruments p. 97

432 EDP Professionals p. 184436 Electravalue p. 185

464 Electrolabs p. 206

425 Electronic Control Technology p. 180

440 Electronic Discount Sales p. 185

360 Extensys p. 31

419 Floto, Charles p. 177

456 Godboutp. 193

* Hayden Books p. 135

394 Heath pp. 112, 113

389 Heuristics p. 103

372 Information Terminals p. 51

371 Integral Data Systems p. 49

439 Intelligent Business Machines p. 185

417 International Data Systems p. 172435 lORp. 185

416 Ithaca Audio p. 171

458 Jade p. 195

352 James Electronics Cover IV

459 James Electronics pp. 196, 197

395 John Fluke Mfg p. 117453 JVR Computer Store p. 187

407 Kent-Moore p. 145

460 Meshnap. 199380 MicroAidsp. 80414 Micronics p. 167

397 Micro Peripherals p. 33

390 Micropolisp. 105

369 Microware Systems Corp p. 47

443 Microtex Inc p. 186

465 Mikosp. 207

408 MiniTerm p. 149

461 Morrow's Micro Stuff p. 201421 mpip. 178

411 MSI p. 157

412 Mullen Electronic Boards p. 159

413 National Multiplex p. 161

359 North Star Computer pp. 21, 77

384 Objective Design p. 85

365 Ohio Scientific pp. 38, 39, 40, 41

457 Oliver Audio Electronics p. 194399 Osborne & Associates p. 125434 Outer Products p. 185

428 PAIA Engineering p. 182

418 Parasitic Engineering pp. 174, 181

* Per Com Data pp. 11, 173

ReaderServiceNumber

354387420361

PageNumber

PERCOMP78p. 5Peripheral Vision p. 99Perri-White Assoc p. 178Per-Sci p. 69

* Personal Computing Expo pp. 162-165

* PolyMorphic Systems p. 7

355 Processor Tech pp. 8, 9, 10, 52, 53

368 Quantronics p. 45

* Radio Shack of Fort Worth p. 43406 RHS Marketing p. 139

430 Rotundra Cybernetics p. 184

377 Scelbi Computer Consulting p. 121

* Scientific Research pp. 44, 63

462 S D Sales p. 203

376 Seals Electronics p. 67

381 Smoke Signal Broadcasting p. 81

427 Software Exchange p. 182

375 Software Records p. 61

447 The Software Store p. 187364 Solid State Music p. 37

463 Solid State Sales p. 205

445 Sunny Computer Store p. 187

350 SWTPC Cover II

429 Sybexp. 183

401 Synchro Sound pp. 128, 129

448 Szerlip Enterprises p. 187426 Tarbell Electronics p. 181373 Technical Design Labs p. 57

403 Technical System Consultants p. 133

402 Technico Inc p. 131388 TElp. 101

362 Texas Instruments pp. 34, 35

358 TLFp. 17

466 Urban Instruments p. 207

393 Vector Electronics p. 111

385 Vector Graphic p. 85

422 Vectron p. 179

424 Worldwide p. 180

405 Ximedia p. 137

370 Xybekp. 47

"Reader service inquiries not solicited. Correspond directly with company.

IVIIV [Inftinf Mr .iiii r-l(\

ARTICLENUMBER

ARTICLE

1 Jenkins: How to Write an Application Program

2 Borrmann: Relocatability and the Long Branch

3 Duda: Othello, A New Ancient Game

4 Wimble: An APL Interpreter for Microcomputers, Part 3

5 Chung: An 8080 Simulator

6 Kruglinski: How to Implement Space War

7 Smith: Fundamentals of Sequential File Processing

8 Madden: C: A Language for Microprocessors?

9 Schneider: Simple Approaches to Computer Music Synthesis

10 Higgins: Structured Program Design

11 Holladay: Computer Information Arrangement

12 Bauerschnub: Analyze Your Car's Gas Economy with Your Computer

13 Milligan: Mastermind

PAGENUMBER

18

26

60

64

70

86

114

130

140

146

156

166

168

J uly BOMBworks

The results of the July 1977 BOMBvoting found the winner to be James RBoddie's "Speech Recognition for a PersonalComputer System," page 64. James' articleplaced first in the voting by BYTE readers,at a distance of 1.75 standard deviationsabove the mean vote for 14 articles in theJuly voting. Second place was a tie betweenW Douglas Maurer's "How to Pick Up aDropped Bit," page 72, and RobertGrappel's "Give Your Micro a Megabyte,"page 78. Bonus checks of $100, $50 and$50 were sent to authors Boddie, Maurerand Grappel respectively."

208

WE'RE OUT OF OUR MINDS!

OUR MICROMIND COMPUTOR HAS METWITH SUCH CONSUMER ENTHUSIASMTHAT WE'RE BUSY FARING DOWNA SIX MONTH PILE OF ORDERS....

PLEASE BE PATIENT... IT'LL BE WORTH IT!

FOR INFORMATION ON MICROMIND CALL (617)661-4400

€2>

ECD CORP

196 BROADWAY, CAMBRIDGE

MASS. 02139 '

INNOVATIONS IN ELECTRONICS

Circle 351 on inquiry card.

ATTENTION DEALERS:

Announcing

electronic components

One-Stop Component Center

♦Over 200 quality items in-cluding integrated circuits,

tors, capacitors, connect-ors, switches, sockets,LEDs and Data Bookscovering all J1M-PAK®items.

Immediate delivery on allorders

* Store display racks avail-able

♦Stock rotation and returnpolicy

^Direct mail program avail-able from list of activeelectronic buyers in dealers'area.

-National advertising cam-paign in leading electronicsmagazines to include listof qualifying dealers

Nationally known manu-facturers' products at pricesevery dealer can afford

^Guaranteed products

♦ Standard industry partnumbers

Jimpak

Component Center

illi

m

I I I— .-IT

LU-UY.

< i

A component line of provensellers developed for theindependent dealer. Ideal forcomputer shops, schoolstores, electronic dealers,hobby shops, or any locationwhere there is a potentialmarket for electronic sales.

A product line which sup-plies most of your needsfrom one distributor with areputation for fast andefficient service. Attractiveand compact display racksmake initial installation ofthe JIMPAK® line easy..

Your customers deserve thebest. Now you can profitablyretail name brand compon-ents at competitive prices.Be the first in your area toannounce and sell the JIM-PAK® line. Write or calltoday.

® FOR MORE INFORMATION AND PRICING SCHEDULE CONTACT:

, a division of James Electronics, 1021 Howard Avenue, San Carlos, California 94070, (415) 592-8097

Circle 352 on inquiry card.