Byte Magazine Volume 00 Number 16 - Machine Readable Print

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

jfFFTFn 6800-SOFT WARE

WARNING ■

- It has been determined that reading this ad may be hazardous to your health, if you own

another type computer system. We will not be responsible for ulcers, heartburn, or other

complications if you persist in reading this material.

4 K BASIC - 8 K BASIC

Full floating point math 1 .OE-99 to 9.99999999E+99 number range User programs may be saved and loaded Direct mode provided for most statements Will run most programs in 8K bytes of memory (4K Version) or 1 2I< bytes of memory (8K Version) USER function provided to call machine language programs String variables and trig functions—8K BASIC only

COMMANDS

STATEMENTS

FUNCTIONS

LIST

REM

END

ABS

f VAL

f SIN

RUN

DIM

GOTO"

STOP

INT

f EXTS

t COS

NEW

DATA

ON. . .GOTO*

GOSUB*

RND

t LENS

f TAN

SAVE

READ

ON. . .GOSUB*

PATCH*

SGN

t LEFTS

t EXP

LOAD

RESTORE

IF. . .THEN*

RETURN

CHR

t MIDS

t LOG

PATCH

LET*

INPUT

t DES

USER t RIGHTS

t SQR

FOR

PRINT*

t PEEK

TAB

* Direct mode statements

NEXT

t POKE

f 8K Version only

MATH OPERATORS

RELATIONAL OPERATORS

H9H

- (unary) Negate

Equal

BankAmericard

Multiplication

< > Not E

qua I

■ ■■■"'J'.-M

/ Division + Addition

( Less Than ) Greater Than

/*&£**

- Subtraction

< = Less Than or Equal >= Greater Than or Equal

\ilr4Br^

t♦ Exponent

© Copyright 1976 by Southwest Technical Products Corp. 4K and SK BASIC Version 1.0 program material and manual may be copied for personal use only. No duplication or modification for commercial use of any

kind is authorized.

ggjfil 6800 -V-T-M

You guys are out of your minds, but who am I to complain. Send

□ MP-68 Computer Kit S395.00

□ 4K BASIC CASSETTE $4.95

□ 8K BASIC CASSETTE S9.95

NAME

ADDRESS

CITY STATE

Southwest Technical Products Corp. Box 32040, San Antonio, Texas 78284

ZIP

L.1 J« —•_ .

BYTESAVER

Supplied with one 2704 PROM containing special software to transfer RAM content to PROM and PROM to RAM.

How to save your programs ~

and have a PROM programmer, too

Cromemco's popular BYTESAVER™ memory board gives you two of the most-wanted features in microcomputer work:

(1) a simple, easy way to store your computer programs in programonly memory

mable read (PROM).

(2) a PROM memory board with the capacity for a full 8K bytes of PROM memory storage.

ECONOMICAL

The BYTESAVER™ is both a place and a way to store programs economically. It transfers programs from the non-permanent computer RAM memory to the permanent PROM memory in the BYTESAVER™ . Once your program is in the BYTESAVER™ , it's protected from power turn-offs, intentional or accidental. The PROMs used with BYTESAVER™ are UV erasable and can be used again and again.

The BYTESAVER™ itself plugs directly into your Altair 8800 or I MSA I 8080.

PROM PROGRAMMER

Many people are surprised to learn that in the BYTESAVER™ you also have your own PROM programmer. But

n

it's so. And it saves you up to hundreds of dollars, since you no longer need to buy one separately.

The built-in programmer is designed for the 2704 and 2708 PROMs. The 2708 holds 1K bytes, four times the capacity of the well-known older 1702 PROM (yet cost-per-byte is about the same). The 2708 is also fast - it lets your computer work at its speed without a wait state. And it's low-powered. With 2708's in all 8 sockets, the BYTESAVER™ is still within MITS bus specifications, drawing only about 500 mA from the +8V bus. A complement of 2708 PROMs gives the BYTESAVER™ its full 8K capacity.

HOLDS LARGE PROGRAMS

The BYTESAVER's™ 8K-byte capacity lets you store the larger and more powerful programs. 8K BASIC, for example, easily fits in the BYTESAVER™ capacity of 8 PROMs. One 1K PROM will hold many games such as Cromemco's DAZZLER-LIFE or DAZZLE-WRITER.

NO KEYBOARD NEEDED

The BYTESAVER™ comes with special software programmed into a 2704 PROM. This software controls transfer of the computer RAM content to the BYTESAVER™ PROM.

So you are ready to go. You don't

Cromemco

even need a keyboard. Just set the computer sense switches as instructed in the BYTESAVER™ documentation.

Transfer of memory content to PROM ("burning") takes less than a minute. The BYTESAVER™ software controls computer lights to verify complete and accurate transfer of memory content.

The software also programs any of the other 7 PROM positions in the BYTESAVER™ as readily as the first.

And when used to transfer information from the BYTESAVER™ PROMs to RAM, the special design of the software allows loading a large program such as 8K BASIC in one second.

AVAILABLE NOW - STORE/MAIL

The BYTESAVER™ is sold at computer stores from coast to coast. Or order by mail from Cromemco. Cromemco ships promptly. You can have the BYTESAVER™ in your computer within a week after your order is received.

BYTESAVER™ kit $195

(Model 8KBS-K) BYTESAVER™ assembled .... $295

(Model 8KBS-W) Shipped prepaid if fully paid with order. California users add 6% sales tax. Mastercharge and BankAmericard accepted

with signed order.

Specialists in computer peripherals ^^■JB 2432 Charleston Rd., Mountain View, CA 94043 • (415) 964-7400

In This Bill

WET BULB THERMISTOR AND RAG

The information on machine readable printed software continues this month, with three articles. Introducing the subject for this issue is a short note by Walter Banks and Roger Sanderson presenting several detailed Samples of Machine Readable Printed Software at different densities, which our readers can use as test strings for experimental input hardware and software. In addition to the samples, Walter and Roger present some of their philosophical comments on the method and what led them to propose it.

Bar codes are an exciting new way to publish software in machine readable form. Turn to Keith Regli's article to find out about Software for Reading Bar Codes in the form of an algorithm specification for one approach to the problem.

Good things come in small packages. One such package was an envelope with nine excellent color slides by Margot Critchfield for our Computer Art Contest, along with an article by Thomas Dwyer and Leonard Sweer on The Cybernetic Crayon which was used by Margot to draw the pictures.

page pages

62 24,

139

If you're into programmable calculators, you've probably heard lots of rumors around the computer world about all those SR-52 hidden features, dug up by persistent and ingenious users who look upon the calculator as a puzzle. Well, confirm the rumors with Clif Penn's The Buried Gold in the SR-52 written using "inside" information from Texas Instruments in Dallas where he works.

A key element of the complete computer system is a video display output device. In this issue, you'll find D Anderson's experiences with the Processor Technology VDM-1 summarized in the form of a Product Review and some software illustrating its use.

What happens when your speedy second generation microprocessor cannot keep pace with your turtle-like 1702 erasable read only memories? Why, buy some extra time with a slow memory interface circuit of course. Learn how to Stretch That 6800 Clock with Jerry Henshaw's article on an elegant modification to the Southwest Technical Products Corporation's 6800 processor.

If your memory space is limited, a bit of frugality in coding your character strings can save bits. Robert Baker shows One Way to Squeeze Fat Out of Text Strings in a bit packing scheme described in his article Don't Waste Memory Space.

Weather you do it or not, you'll enjoy Mike R Firth's ideas on how to create an automated weather station. Do It Yourself Weather predictions could conceivably be a whole field of home computer applications in itself.

To read a bar code requires a bit of signal processing in the analog world, prior to sending your processor a single bit TTL level signal. In his article on Signal Processing for Optical Bar Code Scanning, Fred Merkowitz provides some details on how to read the signals coming from photo diodes and photo transistors.

One of the signs of progress in the marketplace is the appearance of neat product concepts to service the peripherals needs of personal computing people. An excellent example of this is the new Southwest Technical Products AC-30 Cassette Interface, a modulator, demodulator and switching network which is designed to fit into an RS-232 communications line between the computer and a 300 baud terminal. It adds the functions of tape recording and data recovery, with relays to control motor action automatically. Gary Kay, the designer of this interface, describes the circuit and its function in this issue.

One of the simplest and least expensive possible computer projects is a Universal Turing Machine or UTM. While hardly offering the UTMost in speed or performance, a UTM based on Jonathan K Millen's design would make an excellent tutorial project for a computer science laboratory course.

Now you can buy an

AltairM8800b or an Altair

680b computer right off

the shelf. Altair plug-in

boards, peripherals,

software and manuals

are also available.

Check the list below

for the MITS

dealer in your area.

off the shelf.

RETAIL COMPUTER STORE, INC. Tim & Susanne Broom 410 NE 72nd St. SEATTLE. WA 98115 (206) 524 4101

COMPUTER KITS (S. F. area)

Pete Roberts

1044 University Ave.

BERKELEY. CA 94710

(415)845-5300

THE COMPUTER STORE

(Arrowhead Computer Co.)

Dick Heiser

820 Broadway

SANTA MONICA. CA 90401

(213)451-0713

GATEWAY ELECTRONICS. INC. George Mensik OF COLORADO

2839 W. 44th Ave. DENVER. CO 80211 (3031458-5444

COMPUTER SHACK Pete Conner 3120 San Mateo NE ALBUQUERQUE, NM 87110 (505) 883-8282. 883-8283

GLOBAL ENGINEERING CO. 5416 South Yale TULSA, OKLA. 74145 (918)452-2567

COMPUTER PRODUCTS UNLIMITED

Harry & Margaret Mohrmann

4216 West 12th

LITTLE ROCK, AR 72204

(501)666-2839

GATEWAY ELECTRONICS. INC. Harry & Margaret Mohrmann Lou Elkins, Stuart Bartfield 8123-25 Page Blvd. ST. LOUIS, MO 63130 (314)427-6116

CHICAGO COMPUTER STORE

Lou Van Eperen

517 Talcott Rd.

PARK RIDGE, IL 60068

(312)823-2388

THE COMPUTER ROOM 3938 Beau D'Rue Drive Eagan. MN 55122 Dale Hagert, Bob Raemer (612)452-2567

BYTETRONICS John & Stan Morrow Suite 103 1600 Hayes St. NASHVILLE. TN 37203 (615)329-1979

THE COMPUTER SYSTEMCENTER Jim Dunion. Rich Stafford, Steven Mann. Ron Roberts 3330 Piedmont Road ATLANTA, GA 30305 (404)231-1691

THE COMPUTER STORE, INC. Sid Halligan 120 Cambridge St. BURLINGTON, MA 01803 (617)272-8770 Jeff Feldman, Service Dept.

THE COMPUTER STORE OF NEW YO

Bob Arning

55 West 39th St.

NEW YORK, NEW YORK 10018

(212)221-1404

THE COMPUTER STORE OF Peter Blond ANN ARBOR

310 East Washington Street ANN ARBOR, Ml 48104 (313)995-7616

THE COMPUTER STORE, INC. (Hartford area) George & Susan Gilpatnck 63 South Main Street WINDSOR LOCKS, CT 06096 (203) 627-0188

MICROSYSTEMS (Washington. D.C.) Gloria & Russell Banks 6605A Backlick Rd. SPRINGFIELD, VA 22150 (703) 569-1110

THE COMPUTER STORE Stephen Payne

1114 Charleston National Plaza CHARLESTON, W. VA. 25301 (304) 343-4607

MARSH DATA SYSTEMS Don Marsh RK 5405 B Southern Comfort Blvd. TAMPA, FL 33614 (813)886-9890

(Jfc DuDLjS©

Meet the Challenger.

The Challenger Self Portrait

The new price and performance champ from OSI.

He's got his act together!

Even our lowest-cost Challenger comes fully assembled, complete with a 500 ns 6502A, serial interface, 1,024 words of memory and a UL-approved power supply, all for $439. Every Challenger comes ready for easy expansion with an 8-slot mother board, backplane expansion capability, and a power supply heavy enough to handle a full complement of system boards. Our 4K Challenger comes ready to run BASIC minutes after you unpack it. And there's more.

He packs some heavy hardware.

You've never seen memory and interface options like these—not at our prices, fully assembled! 4K RAM memory boards $139! (see below). Single drive OSI Challenger Floppy Disk $990! Dual drive Floppy $1490! Plus 8K PROM boards! A Video Graphics board, including alphabetics, graphics, and color! An audio cassette, A/D, D/A and parallel I/O board! A backplane extender board! A prototyping board! And our extraordinary CPU Expander Board—it lets you run a Z-80, and 6100 (PDP-8 equivalent) concurrently with The Challenger's6502, or under its control.

There's nothing soft about his software!

OSI has full software support for our Challengers. Including extended BASIC, extended Video Monitor, a Disk Operating System, some very Hollywood real time programs for Video Graphics, Animation, Sound Processing and so forth, plus PROM firmware, with more to come.

He's fast!

You can order The Challenger with a 6502C for a 250 ns cycle time, with a standard 6502A for 500 ns cycle time, or with a 6800 for 1 microsecond cycle time. And with

our CPU Expander Board, you

can always update to any new CPU

to be as fast as fast can be.

And he isn't just good!

He's better! By design. The OSI Challenger is the only completelyassembled, ultra-high-performance, fully-expandable mainframe computer that does this much for this little. Get your hands on one now. Send for your Challenger today.

You can't beat The Challenger!

The OSI Challenger 65-1K. Fully assembled. Features 6502A CPU, serial interface, 1,024 words of memory. $439.

The OSI Challenger 65-4K. Same as 65-1K but with 4,096 words of memory. Will run Tiny BASIC without expansion. $529. The OSI Challenger 65V-4K. NO NEED for an expensive terminal. Connects to your ASCII keyboard and video monitor through included OSI 440 Video Board. Features software utility that simulates a deluxe CRT terminal. $675. The OSI Challenger 68-1K. Based on 6800 CPU. For the casual hobbyist, smaller systems. The Challenger 68 series comes only in serial interface forms and is compatible with MIKBug software through an included OSI software utilities package. $459. The OSI Challenger 68-4K. With OSI 4K BASIC on paper tape. $529 SPECIAL! ADDITIONAL 4K MEMORY BOARDS. Ordered with your Challenger, limit 3 more at this special Low Price, (total 16K, including 4K already on-board in mainframe). $139 Buy 12K or larger Challenger 65 system and we include Extended BASIC FREE!

I

OSI Challenger Floppy Disk System. Fully assembled, for use with OSI Computers only. $990 Single drive $1490 Dual drive. OSI Audio Cassette Interface. Comes assembled, but with room for you to populate with A/D and D/A chips later. (OSI 430 based) $89 And all the baseboards and kits of the powerful OSI 400 System.

OK, OSI, I'm ready to buy!

To order your Challenger System, send the total amount of your purchase plus $4.00 for shipping and insurance (plus sales tax for Ohio orders) by personal money order or check. Or indicate all numbers on your BankAmericard or Master Charge to charge your order. Or send a 20% (non-refundable) deposit to receive your order C.O.D. Delivery is typically 60 days (except when payment is by check, which must clear before shipment can be made). Deliveries are scheduled on a first ordered, first shipped basis.

Name

Address

City

_State_

-Zip_

Telephone

Bank card info Inter Bank #.

Expiration Date

Account #

OHIO SCIENTIFIC INSTRUMENT

Dept. B 11679 HAYDEN STREET, HIRAM, OH 44234

Check □ M. O. Q BAC Q MC D 20%, bal. C.O.D. □

□ Order attached.

□ Send additional information on The OSI Challenger.

□ Send additional information on OSI 400 Kits.

□ $1-00 enclosed for complete OSI Catalog.

(216) 569-7945

In the Queue

t BITE # 16

DECEMBER 1976

24

139

30

42

58

77

98

114

12 18 36 62 110

Foreground

THE CYBERNETIC CRAYON

Graphics Systems — Dwyer-Sweer

Portfolio of Explorations — Critchfield THE BURIED GOLD IN THE SR-52

Systems Programming — Penn STRETCH THAT 6800CLOCK

Hardware Modification — Henshaw DON'T WASTE MEMORY SPACE

Software — Baker SIGNAL PROCESSING FOR OPTICAL BAR CODE SCANNING

Hardware — Merkowitz THE DESIGNER'S EYE VIEW OF THE AC-30

Product Description — Kay A UNIVERSAL TURING MACHINE

Hardware — Millen

Background

SAMPLES OF MACHINE READABLE PRINTED SOFTWARE

PAPERBYTES™ - Banks-Sanderson SOFTWARE FOR READING BAR CODES

Software - Regli PROCESSOR TECHNOLOGY VDM-1

Product Review — Anderson DO IT YOURSELF WEATHER PREDICTIONS

Applications — Firth BUILDING THE AC-30 CASSETTE INTERFACE

Review — Liming

Nucleus

2

In This BYTE

6

Caught by Surprise

48

Clubs, Newsletters

50

Letters

54

BYTE's Bugs

56

Ask BYTE

60,87

What's New?

70

About the Cover. . . and the Contest

86

State of the Art Disk Technology

91

Software Bug of the Month 6

92

Desk Top Wonders

95

The First West Coast Computer Faire

60, 96

BYTE's Bits

108

Kil O'Byte

120

Book Reviews

128

Technical Forum

132

Programming Quickies

144

BOMB

144

Reader's Service

BYTE magazine is published monthly by BYTE Publications, Inc, 70 Main St, Peterborough, New Hampshire 03458. Subscription rates are $12 for one year, $22 for two years, $30 for three years in North America. Elsewhere: $15 one year, $26 two years, $33 three years. Second class postage paid at Peterborough New Hampshire 03458 and at additional mailing offices. Phone 603—924-7217. Entire contents © copyright 1976 BYTE Publications, Inc, Peterborough NH 03458. All rights reserved. Address editorial correspondence to Editor, BYTE, 70 Main St, Peterborough NH 03458. Opinions expressed by authors are not necessarily those of BYTE magazine.

PUBLISHERS

Virginia Peschke

Manfred Peschke

EDITOR

Carl T Helmers, Jr

GENERAL MANAGER

Manfred Peschke

PRODUCTION MANAGER

Judith Havey

PRODUCTION EDITOR

Karen Gregory

CO-OP EDITOR

Raymond G A Cote

CIRCULATION

Deborah R Luhrs

DEALER CIRCULATION

Deena Zealy

PUBLISHERS ASSISTANTS

Kimberly Barbour

Debra L Boudrieau

Cheryl Hurd

Anne Jackson

Carol Nyland

Laurie Stuart

ADVERTISING

Elizabeth Alpaugh

Virginia Peschke

TYPOGRAPHY

Custom Marketing Resources, Inc

Goodway Graphics

Mary Lavoie

Taimi Woodward

PHOTOGRAPHY

Ed Crabtree

Custom Marketing Resources, Inc

ART

Matthew Arnold

Noreen Bardsley

Mary Jane Frohlich

Lynn Malo

Bill Morello

PRINTING

The George Banta Company

Custom Marketing Resources, Inc

Lennie Cashion

Larry Davis

Jeff Pratt

ASSOCIATES

Bob Baker

Dan Fylstra

Harold A Mauch

Chris Ryland

SPECIAL PRODUCTS

Susan Pearne

Floyd W Rehling

TECHNICIAN

Melvin G Weir

CONSTRUCTION

Walter Pence

TRAFFIC MANAGER

Peter Travisano

SYSTEMS LIBRARIAN

Richard Gardner

Editorial

by Carl Helmers

Caught

by Surprise

Sometimes it is fun to take an old Yankee attitude of smugness when one participates in a turn of events which is unexpected, which was not foreseen by many, and which seems to have been missed by established circles. This attitude is one which can be shared by all who participate in this field of personal computing, as designers, as entrepeneurs and as users of the products. Virtually overnight, we — you the reader, you the manufacturer, to say nothing of myself and associates at BYTE and other publications — have demonstrated the existence of supply and demand for products which were nearly completely overlooked by established circles. Elements of this attitude of achievement were present in my conversations with entrepeneurs Bob Marsh (Processor Technology), Chris Rutkowsky (Technical Design Labs), Steven Jobs (Apple Computer Co) and Paul Terrell (Byte Shops) on the floor of the WESCON show last September in Los Angeles CA. The attitude crystalized into immediate focus on September 23 when Virginia Peschke and I travelled to Connecticut on business which was followed by a social call at Scelbi Computer Consulting Inc to meet Nat Wadsworth and his associates. [For those unfamiliar with the history of the field, Nat Wadsworth is probably the first person ever to manufacture a general purpose computer kit, the Scelbi 8B and 8H products, based upon an 8008. His product was a real entry into the marketplace, advertised in amateur radio publications long before the Radio Electronics Mark-8 articles of 1974, and long before Ed Roberts, MITS and the Altair were launched on their present course in January 1975 thanks to another pioneer willing to take risks, Leslie Solomon of Popular Electronics. The Scelbi product was a well designed general purpose processor with ROM systems software, conceived shortly after Intel first announced the 8008. Nat later decided that his energies and resources

Magenta Magica by Joseph P Jacobson Maple Shade NJ 08052 Christian Kuebler Trevose PA 19047

were best employed by concentrating upon the software, documentation and explanation of computer systems, so he retired the Scelbi product from active hardware marketing.] We started talking about the various people involved in the field, the nature of the business and the amazing lack of participation by the "big," "established" firms we had expected to find jumping on the bandwagon with products tailored to personal computing. This is where we settled on the idea that there is still plenty of room for pioneering in America (or the world, for that matter), and that the established industries with the clogged arteries of a large organization are hardly likely to put a dent in the productivity of the early pioneers. The principle is quite simple: Even within a moderately large trading organization which manages to react quickly to a new idea, innovation and creative marketing are a highly individualistic process. In nearly every case, the people who are involved with the companies and ideas which are burgeoning into this new computer industry had been long employed by or had received training from large established companies in computers and related fields. Numerous examples come to mind. But in the context of the large organization, the energies of many of these people were stifled: An organization which is large tends to think in terms of aggregate capital and conservation of that capital by minimization of risk. The need for a "sure thing" as perceived by all the management participating in a decision tends to water down the magnitude (and hence the profitability if successful) of the marketing risks. In contrast, the individual with the proper "pioneer" frame of mind is one with a clear conception of the market need and a willingness to test that judgment with action.

After having the attitude crystalized in my attention by the conversation with Nat Wadsworth, the subject remained on the tip

The Intecolor 8001

Christmas Kit

Is Now Available

Through The

Following

Authorized

Distributors

Sai

03

CALIFORNIA

Byte Shop

155 Blossom Hill Hd

San Jose, Ga. 95123

(408)226-8383

Computer Store

1093 Missioi, St. Francisco, Ga. 94

Al Goodwin (415)431-0640

The Computer Center 8205 Ronson Hd.

San Diego, Ca. 9211J

John Perry

(714)292-5302

The Computer Mart

of Los Angeles

625W.KatellaNo. 10

Orange, Ca. 92667

(714)633-1222

GEORGIA

The Computer Systems Center

3330 Piedmont Hd.,NE

Atlanta, Ga. 30305

(404)231-1691

ILLINOIS

Itty Bitty Machine

1316 Chicago Ave.

Evanston, 111. 60201

(312)328-6800

INDIANA

Home Computer Shop

10447 Chris Dr.

Indianapolis, Ind. 46229

James B. Baughn

(317)894-3319

MASSACHUSETTS

The Computer Store

120 Cambridge St.

Burlington, Mass. 01803

(617)272-8770

Or Contact Us Direct intelligent Systems Corp."

5965 Peachtree Corners East

Norcross, Georgia 30071.

Telephone (404) 449-5961

The Intecolor 8001 Christmas Kit.

It's an intelligent terminal for $1398* Or your personal computer for an additional $1295.

THE CHOICE IS YOURS.

For only $1395 you can now order the complete Intecolor 80018-Color, Intelligent CRT Terminal Kit that's colorful and easy to operate. You can also invest another $1295 to convert the Intecolor 8001 Terminal into your very own personal computer. Here's what it's all about.

THE $1395 CHRISTMAS KIT

When we said complete we meant complete. The 8001 Christmas kit includes the 8080 GPU, an 8-Color CRT Terminal, 4K RAM Refresh, Keyboard, Selectable Baud Rate up to 9600, RS 232 I/O, and an Instruction Manual which explains every assembly step. All in a single package. It's a complete stand-alone system which features our unique Intecolor 8001 NINE SECTOR CONVERGENCE SYSTEM for minimum set-up time and exceptional stability. Three to five minutes is all it takes for outstanding color registration.

THE $1295 PERSONAL COMPUTER ADDITION

Here's what you get to convert your Intecolor 8001 Terminal into your own personal computer.

BASIC, Additional 8K RAM Work Space, Insert/Delete, Background Color, Lower Case ASCII Characters, Roll, 48 Line X 80 Characters/Line, 2X Character Height, and a Graphics Mode with 160X192 Elements. The applications are unlimited. Graphics and computations, check book balancing, education instruction and tutoring and a unique variety of computer games. You'll have your own personal micro computer at your fingertips. For the most simple and complex tasks.

WRITE OR GALL US TODAY

We know you're going to have some questions and we've got the answers. So contact your nearest Intecolor 8001 distributor or give us a call. We think we've come up with a great system with a price that can't be beat. Make us prove it to you.

>L

intelligent Systems Corp.

5965 Peachtree Corners East

Norcross, Georgia 30071

Telephone (404) 449-5961

'Domestic USA Price

Iff you thought a rugged, professional yet affordable computer didn't exist,

think

IMSAI

8080.

Sure there are other commercial, high-quality computers that can perform like the 8080. But their prices are 5 times as high. There is a rugged, reliable, industrial computer, with high commercial-type performance. The IMSAI 8080. Fully assembled, it's $931. Unassembled, it's $599. And ours is available now.

In our case, you can tell a computer by its cabinet. The IMSAI 8080 is made for commercial users. And it looks it. Inside and out! The cabinet is attractive, heavy-gauge aluminum. The heavy-duty lucite front panel has an extra 8 program controlled LED's. It plugs directly into the Mother Board without a wire harness. And rugged commercial grade paddle switches that are backed up by reliable debouncing circuits. But higher aesthetics on the outside is only the beginning. The guts of the IMSAI 8080 is where its true beauty lies.

The 8080 is optionally expandable to a substantial system with 22 card slots in a single printed circuit board. And the durable card cage is made of commercial-grade anodized aluminum.

The IMSAI 8080 power

supply produces a true 28 amp current, enough to power a full system.

You can expand to a powerful system with 64K of memory, plus a floppy disk controller, with its own on-board 8080-and a DOS. A floppy disk drive, an audio tape cassette input device, a printer, plus a video terminal and a teleprinter. These peripherals will function with an 8-level priority interrupt system. IMSAI BASIC software is available in 4K, that you can get in PROM. And a new $139 4K RAM board with software

IMSAI 8080

iiiiiui iiHiiift nam

memory protect. For the ultimate in flexibility, you can design the system for low-cost multiprocessor, shared memory capability.

Find out more about the computer you thought didn't exist. Get a complete illustrated brochure describing the IMSAI 8080, options, peripherals, software, prices and specifications. Send one dollar to cover handling.

Call us for the name of the IMSAI dealer nearest you.

Dealer inquiries invited.

Oept. B-12

IMSAI Manufacturing Corp.

14860 Wicks Boulevard San Leandro, CA 94577 (415) 483-2093

For more information circle A 12.

of a mental iceberg. That mental iceberg hit a mental Titanic which led to this theme and editorial when I attended a session entitled "Is the US Losing Its Technological Leadership?" at the IEEE EASCON gathering held at Stouffer's National Center Inn in Alexandria VA, September 26. The session was an informal round table discussion organized by Dr Russell C Drew of the National Science Foundation. The purpose of the discussion was to air issues of Federal policy which would encourage and promote continuation of a tradition of leadership and innovation which has been perceived by the participants as losing ground in recent times. The theme of the discussion is stated in the EASCON 76 transcript on page 12:

Since the end of World War II, US technical leadership has been largely unquestioned. The growing technical sophistication and economic strength of the developed world however has caused increased attention to prospects for the future and the consequent policies that should be considered.

The discussion started out with an introduction by Dr Drew, stating the problem perceived, then emphasizing that the major area of concern was commercial leadership through technological innovation in world markets. A list of indicators was mentioned, indicators which if believed indeed point to an area of concern. The problem was then defined as a search for federal policy options and incentives needed to restore a healthy situation of technology leadership. This led into a presentation by the first panelist to speak, Dr Betsy Ancker-Johnson of the US Dept of Commerce. Dr Ancker-Johnson's presentation was largely statistical and empirical in orientation, with concern expressed for numerous points:

• Nontechnologically oriented industries are shrinking in world significance.

• US capital investment is seemingly becoming less productive.

• 1 out of every 6 people works for a state or local government (the federal byte was not even mentioned).

• "Inventiveness" as measured by various patent office statistics is down for Americans.

• The statistics for new companies on Wall St and the capital markets are down.

Dr Ancker-Johnson's presentation led in turn to a talk by Dr Courtland Perkins of the National Academy of Engineering, emphasizing what he perceived as a lack of excite

ment with technological innovation and progress in the universities. He complained about the trend toward the academician, rather than the ideal type of a combined teacher and commercial innovator who inspires a generation of engineers and experimenters to creative results. Words to the effect of "where are the faculty boosters of technology?" summarize a great portion of what Dr Perkins had to say. The next panelist to speak was Dr Burt Edelson of ComSat Laboratories, summarizing his perceptions in the field of satellite communications as practiced by an international bureaucracy called Intelstat, where he perceives a less than optimal role for US interests.

John Eger, currently of the Office of Telecommunications Policy and a lawyer somewhat experienced with the Washington bureaucracy, came out sounding like a genuine natural rights liberal. His answer to the question was effectively "yes, the US is losing its technological leadership, and nobody cares." Washington, in his view, certainly does not help the matter. There has been considerable loss of freedom of action in the marketplace, saddled with regulations of every sort and manner. Since the innovations of free enterprise are based on uncertainty and action designed to alleviate this uncertainty, every regulation which constrains action has the effect of a brake on innovation. This led into the round table of discussion including panel members and various questioners from the audience.

During the round table discussion, one comment was most interesting, in that it was made by Dr Ancker-Johnson of the Department of Commerce. The comment was to the effect "can American business [ie: the American people] afford to waste 150 billion dollars annually on unproductive government overhead?" The fact that such a comment was made by one of the minions of the Washington establishment based on experience and empirical evidence at her command lends quite a bit of credibility to the statement. The consensus of the panel was that US industries are becoming relatively less competitive internationally, and that the US government must reorient its priorities to emphasize our natural advantages in high technology activities. Since markets and consumer desires make the innovation system go, this reorientation requires emphasizing innovation in the marketplace and the incentives of economic upward mobility which produce the needed cornucopia of innovation. Which brings us back to a certain

Continued on page 34

Articles Policy

BYTE is continually seeking quality manuscripts written by individuals who are applying personal systems, or who have knowledge which will prove useful to our readers. Manuscripts should have double spaced typewritten texts with wide margins. Numbering sequences should be maintained separately for figures, tables, photos and listings. Figures and tables should be provided on separate sheets of paper. Photos of technical subjects should be taken with uniform lighting, sharp focus and should be supplied in the form of clear glossy black and white or color prints (if you do not have access to quality photography, items to be photographed can be shipped to us in many cases). Computer listings should be supplied using the darkest ribbons possible on new (not recycled) blank white computer forms or bond paper. Where possible, we would like authors to supply a short statement about their background and experience.

Articles which are accepted are typically acknowledged with a binder check 4 to 8 weeks after receipt. Honorariums for articles are based upon the technical quality and suitability for BYTE's readership and are typically $25 to $50 per typeset magazine page. We recommend that authors record their name and address information redundantly on materials submitted, and that a return envelope with postage be supplied in the event the article is not accepted."

With this issue, Ray Cote joins BYTE as an assistant editor. Ray is an electrical engineering student taking part in Northeastern University's Cooperative Education Program.

A great idea for gift giving. For that special person who's into computers. A great gift for yourself. Best of all, the prices are lower than ever before! For one month — to BYTE customers only! So order now ... save, Save, SAVE! Hurry!

id

£"" -j*J

Only...

Special one-month Price Reduction n SCELBAL-A Higher Level guage for 8008/8080 Systems!

Here's the hot, new language that everyone's talking about. . . SCELBAL!! This exciting, completely documented higher level language for 8008/8080 systems is the most comprehensively documented higher level language available today. Order now at the specially reduced price. Save $10.00 . .. and receive introductory copies of the supporting journal, SCELBAL UPDATE, absolutely FREE! Regular price: $49.00 order Now!

'SMUTS

1/Ui.tV

!ooooreoo0

kmiit to"***?11

Scelbi's First Book of Computer Games and Galaxy combination can save you 25%!

Now you can own both of Scelbi's' popular computer game books . . . Scelbi's First Book of Computer Games for 8008/ 8080 (regularly $14.95) and the exciting intergalactic war game, GALAXY (regularly $14.95), a $29.90 value . . 25%off! Hurry! Order now before this offer closes on January 10th!

Order both games books

now ... only

95

Machine Language \Lf,K Programming for 8008 (and similar microcomputers) CLOSE OUT!

Save now! Take advantage of this

close-out offer on our popular Machine

Language Programming for 8008 (and

similar microcomputers). Regularly

$19.95. Close-out priced at only $14.95!

A classic introductory text. Order right

now, before the supply runs out.

(Only 1,000 copies left)

Order now! Only,

95

14

'■««**

»»

"'*'«*«*„„,,

Three 8080 Software 'Manuals ... Monitor, Editor and^*5 Assembler at ONE low price!

Scelbi's popular 8080 Software manuals, the Monitor, Editor and Assembler programs, have been prepared for their fourth printing. Rising costs of paper ^|| three and printing means that we'll soon have to increase the price of these three popular publications. If you act right now, we'l hold the original $39.50 price. Hurry! Order today before prices go up. Save!

now only

395°3

* IV

ASBE

3Le0

"noc

"flOiy,

'°ao'

eon

aosc

TOt?

"°UTlnies

"OOc

Hurry! Order right now! The prices offered

in this advertisement expire January 10,1977.

Be sure to mention this ad in BYTE!

ACT NOW! ORDER THESE POPULAR

SCELBI SOFTWARE BOOKS

. . . AND SAVE, SAVE, SAVE!

A GREAT BUG-PROOF OFFER!

These Christmas Software Sale prices apply only to orders from our North American customers who mention this ad in BYTE. While we wish the best Season's Greetings to our friends around the world, the special paperwork, packing and handling for overseas shipping prohibits our extending these offers outside North America. Sorry. Companies please note! These special Christmas Software Sale offers apply only to prepaid orders. Purchase orders that require billing services will be billed at regular prices.

Discounts not applicable to prior orders.

ICELBI COMHJIII* CONIULIING INC.

1322 Rear Boston Post Road Milford, CT 06460 • 203/874-1573

Samples of Machine Readable Printed Software

Walter Banks

Computer Communications Network Group

Roger Sanderson

Dept of Electrical Engineering

University of Waterloo

Waterloo, Ontario CANADA

Introducing PAPERBYTESTM

The idea of machine readable software published on paper in a magazine article, book, or pamphlet is a completely new and inexpensive way to mass-produce and distribute software. Since the use of a printing press is nowhere near as labor intensive as technologies such as magnetic recording reproduction, we can build a library of PAPERBYTES™ programs which can be sold quite inexpensively, yet retain a healthy royalty arrangement with program authors. PAPERBYTES™ software packages will consist of optically encoded object text, source listings and complete documentation, marketed through BYTE magazine on a royalty basis. Parties with systems software or applications software potentially marketable to a wide audience via PAPERBYTES™ should explore this possibility by sending a summary of the product, its purpose, and implementation to PAPERBYTES, c/o BYTE magazine, 70 Main St, Peterborough NH 03458."

PAPERBYTES, PAPERBITS are trademarks of BYTE Publications Inc.

One of the papers at the standards session of Personal Computing 76 was our proposal that the popular magazines adopt a printed machine readable standard which would allow programs to be widely distributed. Following the Atlantic City conference the full impact of this proposal has been brought home.

Our initial goal was not to provide yet another mass storage means but to suggest a means of distributing programs through magazines without forcing every reader to retype the program in order to take advantage of it. There is however a second very important reason for adopting some form of printed machine readable code. That is mass distribution of low cost software.

Economically there is no current means by which simple application software (and sophisticated software as well) can be marketed at reasonable cost allowing for author royalties and profits for the publisher, distributor and seller. This is especially true when trying to attract the end user with attractive market prices. The highest cost component of the current most popular method is in the labor cost of cassette tape duplication and the cassette itself.

It is our goal to reduce the duplication costs to that of printed matter but retain the machine readable characteristics essential to successful software marketing and distribution. Bar code in printed form has this characteristic. It can be shown that both printing and reading technology are well

enough advanced to permit acceptable data density and reliable reading.

It is anticipated that both the machine readable code and the accompanying documentation would be printed in booklet form and sold as a complete software package.

At the present time there is considerable evidence that software theft has become a standard rather than exceptional means of software acquisition by individuals. Software theft exists whenever an individual uses a software package created by the mental energies of another, without the author's permission. In the cases where authors have made an honest attempt to provide good software at reasonable prices the inconvenience of ordering it and waiting has often made copies from friends a simpler means of obtaining software. Printed software has the advantage of allowing the normal distribution channels for printed material to service user needs.

There is also a need for a medium which will allow mass distribution of software placed in the public domain. Several institutions and clubs have developed extensive software packages as public service projects, to be made available inexpensively. The requirement is that software be mass duplicated accurately and at low cost. There is a need for this software to be read by a computer employing a reader at low cost.

The last requirement is a scheme which is practical in the user sense. It is essential that the making of the printed master and the reading of the copy be easily accomplished. Printed books and journals are readily reproduced; but they have, for lack of a method, restricted their software distribution to non machine readable forms such as listings or program dumps.

The authors proposed that a simple com

12

Made for each other

by the Digital Group.. .who else?

There's a simple reason why a system from the Digital Group looks like it belongs together: It was designed that way. And the look is fantastic.

Each component in our video-based microprocessor system has its own cover-up, designed to compliment every other component. The cabinets are a rugged anodized aluminum (computer beige with chocolate brown) with a unique styling that's ours alone. And, each new product will maintain the same unmistakable Digital Group image.

Inside, things get even better. Digital Group systems are complete and fully featured — the pieces really belong together — so there's no need to purchase bits and pieces from different manufacturers. We have everything you need, but almost any other equipment can be easily supported, too, thanks to the universal nature of our systems.

And, we offer interchangeable CPU's from different manufacturers, including 8080, 6800, 6500 by MOS Tech and the exciting new Z-80 from Zilog. They're all interchangeable at the CPU card level, so you can rest assured your system will always belong together — and it won't become instantly obsoleted by new design breakthroughs.

The Digital Group also offers more options, peripherals, expansion capabilities and accessories. They include rapid computer-controlled cassette drives for mass storage, memory, I/O, monitors, prom boards, multiple power supplies, prototyping cards and others. Software packages include BASICs, Assemblers, games, ham radio applications, software training cassettes, system packages and more. All designed to keep Digital Group systems very together.

Our products are made for each other, and they may be made just for you. To find out more, call or write today!

"ID □

HTrtOIU o

P.O. Box 6528 / Denver, Colorado 80206 / (303) 777-7133

J

Figure 1: Three possible formats. These are proposals at this time, with the appropriate parameters indicated.

FORMAT I

Figure la: Format I: Bar width modulation, with alternate dark and light. The parameters to be specified in printing are widths TO and Tl. A trailing bit complementary to the last data bit in a string is required. The leading bit of a string will be assumed to be in the dark state. In reading this code, time between transitions falls into two categories, long for a I bit, and short for a 0 bit.

Figure lb: Format 2: Ratio recording. The parameters to be specified in printing are the bit length, TB and the TO and Tl widths for states of the data. This format has a fixed length per bit which is independent of the state of the data. In reading this code, the time from one light to dark transition to the next light to dark transition is the duration of the bit cell, which is compared to the duration of the dark period to find out whether a 1 bit (long) or 0 bit (short) was read.

Figure 1c: Format 3: Fixed gap bar width modulation. The parameters to be specified in printing are the interbar gap width TG, and the bit length parameters TO and Tl. In reading this code, the length of the interbit gap gives a calibration for judging the next dark period as a 0 bit (short) or 1 bit (long). The data density (as in format 1) varies with the statistics of the number of Os and Is in a given region of the printed data.

NOTE: Figures 1 to 3 accompanying this article are reprints of the illustrations accompanying the article "A Proposed Standard for Publishing Binary Data in Machine Readable Form" appearing on page 10 of BYTE's November 1976 issue.

puter readable code be adopted which can be printed by a normal offset press and can be read by an optical reader. Bar code can be typeset by a conventional phototypesetter, driven perhaps by a special program. This scheme is not intended for use by individuals in exchanging software, but it will enable magazines, publishers and larger clubs to provide such services.

Magazines and journals will have at their disposal a means other than printed words of conveying a product of immediately usable value.

In designing the code, we set out to achieve simplicity and reliability. Any bar code that one uses should be self clocking and self calibrating in some manner. If it is to be read with a hand held light pen, it also should be reading-speed independent. A bar code will have to have some error checking mechanism.

There are many ways to generate bar codes; three of the simplest are shown in figure 1.

a. Bars which have two widths representing a 0 or 1. This scheme often alternates dark and light bars to represent successive bits. This scheme is quite speed sensitive. It represents a byte which has predominately all Os in a shorter space than a byte which is predominately all 1s.

b. Bars which have two widths representing 0 or 1; however, the space per bit is constant. This code is essentially speed independent.

c. The second system can be compressed by making all the light bars equal to the narrow bars in width. It is the function of the light bars to provide a reference for the reader to interpret the data value of the dark bars. With the light bars at constant width this function can still be performed and record length can be saved.

It is this last bar scheme which is being proposed. The data will be represented by

14

Microcomputers are highly complicated devices. When you buy one you want to make sure the manufacturer has a solid reputation for reliability and support. You want to make sure he'll be in your corner a year or two down the road. The Altair™8800 from MITS was the first general-purpose microcomputer. Today, there are more Altair computers up and running than all the other general-purpose microcomputers combined. Today, Altairs are successfully used for literally hundreds of personal, business, scientific, and industrial applications.

Because we are so popular, many people have tried to copy us. The pages of microcomputer magazines are full of advertisements for Altair compatible devices

and Altair imitation computers.

Because we are NUMBER ONE, we offer a much broader range of products and services than any of our competitors. One manufacturer might be able to copy one of our computers. Another might be able to produce a working memory card. But no one can copy the overall Altair concept.

The Altair concept is a system concept aimed at practical, cost effective applications. That's why we offer three mainframes including the Altair 680b, Altair 8800a, and Altair 8800b; ten peripherals including a multi-disk system; and over 20 plug compatible modules including our new, low power 16K static memory board. That's why we are the only microcomputer manufacturer to go to the extra expense of providing our customers with quality, higher language software. When you buy an Altair, you're not just buying a piece of equipment. You're buying years of reliable, low-cost computing. You're buying the support of the NUMBER ONE manufacturer in the microcomputer field.

e

2450 Alamo SE/Albuquerque, NM 87106/505-243-7821

1

DATA 0

DATA 2

TIMING BITS

Figure 2: Frame Format. The timing bits may not be required, but provide a preliminary leader before the ASCII SYN character (hexadecimal 16) which leads off the frame. All data is transmitted most significant bit first. Following the synchronization character is an 8 bit check sum representing 2's complement modulo 256 summation of all the remaining data on the record. The FRAMEID field is an 8 bit integer used for relative positioning within an extended file. Its purpose Is to allow manual rescan in the event of errors, so that the software will recognize the input as the same record. The length field contains a direct integer value for the number of bytes in the data field. From 7 to 255 bytes can be in the data field; a length ofOls reserved for a special case "end of file" frame. Finally, the remainder of the frame contains 8 bit bytes of data.

having a 0 displayed as the same width as a light space and a 1 either two or three times as wide. In the examples which accompany this article both types of 1 s are shown.

We expect a bar code of this type can be printed and read reasonably using approximately 50 bits to the inch on the average. A conventional magazine page has a working area of 7.0 by 10 inches (17.8 by 25.4 cm). At 5 columns to the inch (2 columns per centimeter) this would give 350 column inches (889 column-centimeters) of bar code or (350 by 50) 17,500 bits per page. Even with losses due to the frame overhead for synchronization and checksums this gives a reasonable amount of code per page, using a layout shown in figure 3.

A simple hand held reader with sufficient logic to tell a computer that it sees light or dark passing is all that is really needed. Fred Merkowitz in his article on page 77 provides examples of typical signal processing circuits needed to convert light and dark image

information into TTL levels for a computer. Software such as is outlined by Keith Regli in his article in this issue would be needed to time the bits and reassemble the data characters. Such a reader should be quite inexpensive to build. A more elaborate version would read a line of bars and indicate if the checksum was correct and pass a line of bytes to a computer.

The record frame (see figure 2) is broken into two parts: a header consisting of four bytes and a data part which may have up to 255 bytes.

The first byte of the header is an ASCII SYN character (10010110). It is to be used by a reader to synchronize on the correct byte boundaries.

The second byte of the header makes the sum of all of the bytes in the record except the SYN character equal to 0. This sum includes the byte count byte, record id, and the data bytes. This is called CHECKSUM byte.

CENTER MARGIN OF MAGAZINE PAGE

PRAMS N START SCAN- -^MM

wiiiiiwiii

mlllllllllll

FRAME N+ I

FRAME N + 2

FRAME N+ 3

FRAME N+4

FRAME N + 5

v..

r

v.

^4—

IIUJIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII llfflllMlnTnrTTTIIIMIIIIIIIIIIIIIII * /

lllllllllllllllllllllliliiii

llllllllllllllllllllllllllll *\

IIIIUIIIIIMUIIIIIIUIIII

lllllllllllllllllllllllllll "N

Mill

rTTTi

lUiiiniilllllllllllhiiii llllllllllllllllllllllllll!

iiiiiiiiiiiiii ["}

nun iiiiiiiniiiii imiiiiiiiiii

Trim lllllllllllllllllllllllllll

/

Figure 3: Page Layout. A page of data in printed form fas we would run in BYTE J would be laid out with the data running parallel to the center margin of the magazine. This allows the maximum amount of data in a frame, thus minimizing the overhead bits of the frame format.

16

Figure 4: A Selection of Bar Code Sample Texts. In each case, the same text is used, an ASCII alphabet. Different data densities are shown to test print reproduction quality. This set of samples should be used by our readers to check out their own experiments with this technology. To read a line of bars place a ruler or other straightedge next to the line, start the input software, then run the optical scanning head (in its simplest form a photodetector and light source) down the line of bars so that the sensitive area of the detector is in the center of the line.

The third byte of the header is a record id number used to identify to the computer the sequence number of the record.

The fourth byte of the header contains a count of the number of bytes in the data portion of the frame. If this byte should be 0 it is interpreted as an end of file record. The data part of the record follows the header.

It should be noted that the last byte of data must be followed by a single data bit, either a 1 or 0, in order to read the last byte of data. This is required to give a light to dark transition after the last data bit of the last byte.

The data portion of a frame is not data sensitive in any way. Here conventional computer standards can be used to format data. In the case of ASCII, data characters can be strung one after another with normal carriage return and line feed characters used to terminate lines quite independent of their position in the frame, or position on the printed page.

Binary data can also be placed in the data area of the frame. As in conventional binary files there is a need for an additional protocol to be used to identify load points and possibly other things like start addresses.

In the samples shown with this article all the records are identical except in density and bit size. In each of the records the ASCII alphabet is used as data. The intent is to provide some copy with which to test experimental readers.

There is a need for a better low cost software distribution means. Personal computing is one of the fastest growing activities today. Distribution of information is extremely important to sustain this growth. We believe this new machine readable method of printing will make a valued contribution to this growth. It is our conclusion that some form of machine readable printed software is the key to wide distribution of software for computer hobbyists."

(a) Test string with weightings of gap = J, one = 2, zero = 1, narrow width, high density.

(b) Test string with weightings of gap = I, one = 2, zero = 7, wide width, high density.

(c) Test string with weightings of gap = I, one = 2, zero = I, low density. This pattern consists of two parallel rows of identical information.

(d) Test string with weightings of gap = I, one = 3, zero = I, high density.

(e) Test string with weightings of gap = 1, one = 3, zero = 7, low density.

17

Software for Reading Bar Codes

About the Author

Keith Regli is employed as a programmer at Electronics Corp of America, Cambridge MA. He writes from professional experience with the adaptive software necessary to read bar codes in commercial and industrial applications. His avocational interests in addition to computers include amateur radio (WB6BIGIWA1W0E').

Keith Regli

6 Vernon St, Apt 2R

Waltham MA 02154

The problem of transferring programs and data from one computer system to another has long been a problem in industry, but for the hobbyist it is especially difficult. Paper tape and cassettes have solved the problem for communication between individuals, but what about a program published in BYTE magazine? Keying in a hexadecimal listing is painful and error prone, and machine readable forms such as phonograph record inserts are too expensive for regular use. A possible solution is at hand!

Bar codes are gaining increasing acceptance in industry for transmission of machine readable information via a printed medium. The technology which makes this possible is the microprocessor. While most industrial and commercial bar codes contain 40 bits of information or less, there is no reason we can't scan enough information in one pass to make the transmission of long programs a snap.

In this article I will discuss some algorithms for reading bar codes which are adaptable to any of the popular microprocessors assuming suitable input signal conditioning hardware. While translating these algorithms directly into code will produce a working system, they should be thought of as a starting point for experimentation.

There are many ways in which to design a bar code. We will use a simple but effective method of dealing with binary information. Each bit of information will consist of a dark bar followed by a white space, the combination being called a module. We represent a 1 by a module consisting of a bar twice as wide as its space and a 0 by a module consisting of a bar the same width as the space. Eight such modules strung together give one byte of information. If we made the width of a space 0.01 inches (0.25 mm) we could get about 5 bytes per inch (about 2 bytes per centimeter) — this allows plenty of

information to be printed on one magazine page, as Walter Banks and Roger Sanderson point out in their article.

In order to see what it takes to read information in this form consider a paper tape system. There is a read head which senses the coded information, a hardware (or software) code converter which converts the sensed information into a form suitable for a loader which loads the information into the computer's memory at appropriate locations. We need exactly the same elements in order to read bar codes. The "read head," called a scanner, and its electronics are discussed in some detail in Fred Merkowitz's article and are not repeated here. Loaders are fairly well understood, but the code conversion process is not nearly so widely understood and thus commands the main emphasis of this article.

There are two approaches one may take for inputting the data in a microprocessor controlled code converter. The data may be processed as it is read in, or it may be read first and then processed after the data is in memory. The critical factor is how many instructions the processor can execute between data samplings. In order to keep things simple wc will not plan to do any processing on the fly. Suppose that the average scanning rate is 20 inches per second (51 cm per second) and the basic element width is 0.01 inches (0.25 mm). Then we see one basic element every 500 jus. Now, if we increment a counter every 20 /us and read it every time our scanner detects a transition from light to dark or dark to light wc will get a nominal count of 25 for each basic clement. The readings for our standard modules would be 50/25 for a binary I and 25/25 for a binary 0. This means that wc are well within 8 bits while counting a double width element, even at a slow scanning rate oT 10 inches per second (25 cm per second). Assuming 50 bytes of data on one reading pass, we will need 800 bytes of memory to store a perfectly read image of the code as a series of counts. Assuming a few white and black specks on a line we should leave at least a 1 K buffer size for reading in a line of

18

code (if we can do a little filtering on the fly or in the hardware, we can push it back to around 800 bytes).

The algorithm for inputting a line of coded bars becomes very simple in this scheme.

SCAN Program:

/0) Set the buffer pointer and the counter to zero.

1) At the next 20 ms interrupt, continue.

2) Has the counter reached 255? If YES then test and go to

processing routine (step 4). If NO then increment the counter and continue.

3) Has the level of the input changed? If YES then store counter

value at buffer pointer location,

increment the buffer pointer,

set the counter to zero and go to step 1. If NO then return to step 1,

4) Is buffer pointer equal to 0? If YES then return to step 0. If NO then jump to processing

routine.

INTERRUPT

SERVICE

ROUTINE

T<

\

We may, of course, replace the interrupt by adding some do nothing states so that the service routine requires 20jus no matter which way we go through it, and so that it operates as a scanning loop. (The 20jus interval is not sacred; 18, 21, 32 or 50jus will do).

The next thing to do is process our buffer trying to pick out bytes of data which can be loaded into memory. If we have been very lucky, each pair of bytes in our buffer represents one bit of data. However, Murphy is a part of life and we must expect dust specks and other noise to get in and make some sort of filtering necessary. A simple scheme is to ask if the next count is more than one fourth (shift right twice) the last count. If the answer is yes we have a valid count, but if the answer is no we assume it was a dirt speck and combine the last count, the next count and the one after that as a replacement for the last count. Murphy has at least one other trick up his sleeve. If you take a bar 0.01 inches (0.25 mm) wide and put it next to a space 0.01 inches wide and then scan the pair at a constant rate, you will almost certainly find that the scanner thinks the bar is wider. This can be taken care of by adding a bias to the space count.

For convenience we will convert the input buffer into bytes of data and store them in a line buffer before passing them to the loader. We need a line buffer of

SCAN Program:

Converts light and dark periods sensed by the wand into a series of bytes containing timing counts.

WAND

»- INPUT BUFFER SCAN

£

CALL AT END OF SCAN

BITPACKER Program:

Invoked at the end of a scan, transforms the input buffer into a "frame buffer" of bytes with adaptation to speed and timing variations.

INPUT BUFFER »«- FRAME BUFFER

BITPACKER

£

CALL AT END OF PACKING OPERATION

FRAMER Program:

Invoked at the end of bitpacker, framer carries the reduction one step further by transforming the frame buffer image into an absolute binary image in memory while checking for errors and setting up for rescans if necessary.

FRAME BUFFER

TT

MEMORY

ERROR MESSAGES & RESCAN

FRAMER

RETURN TO SCAN

OR

BACK TO OPERATING

SYSTEM

Figure 1; Software Structure. The design of the scan conversion software presented in this article contains three major program components. The SCAN program is an interrupt handler (or dedicated scanning loop if you don't use interrupts) which creates an INPUT BUFFER of integer time count values for alternating black and white zones sensed from the manual scanner. The BITPACKER program carries the conversion further by reducing the 16 bits (on the average) of count information for each bit into a single bit within a string of bytes in the FRAME BUFFER. Finally, the FRAMER program transfers the contents of the FRAME BUFFER to memory, checking the checksum information and giving error messages if needed. Structuring the software in this way makes it easy to isolate and experiment with the functions. The timing requirements of the input scanning operation require that SCAN be separate process; an alternate configuration in which BITPACKER and FRAMER are combined in one pass is quite possible.

19

Bar Codes and Morse Codes

Author Regli made an interesting comment on his author's proof copy of this article: The problem of decoding optical bar codes is entirely analogous to the problem of decoding Morse code as described in B YTE's October issue. In fact, it is simpler and more reliable, for while the speed varies, the local ratios of bar lengths are always "perfect" due to the fact that the typesetting and printing process fixes these ratios. Thus for detailed software ideas consult BYTE's October issue.

50 bytes, an input buffer pointer, a line buffer pointer, a bias value, a bar count, a space count and a basic unit count. We can now describe the algorithm for converting an input buffer to a line buffer.

BITPACKER Program:

0) Set the input buffer pointer and the line buffer pointer to zero, and set the basic unit count to 25. (A nominal starting value.)

1) Set the bar count and the space count to zero.

2) Have we reached the end of the input buffer?

If YES then jump to the loader routine.

If NO then load the next input buffer position into the bar count and increment the input buffer pointer.

3) Is the bar count greater than one fourth the current basic unit count?

If YES then continue to step 4.

If NO then add the next two buffer positions to the bar count, increment the buffer pointer twice, check for the end of buffer and resume at step 3.

4) Repeat step 3, but filling the space count.

5) Add the current bias value to the space count.

6) Is the bar count greater than 1.5 times the space count?

If YES then set the next bit in the current line buffer word (after 8 bits increment line buffer pointer), set the basic element count equal to (basic element count + bar count + space count)/4,

set the bias equal to

(((bar count)/2) — space count + 2*bias)/2

If NO then leave the next bit in the current line buffer word cleared (after 8 bits increment the line buffer pointer), set the basic element count equal to (basic element count + (bar count + space count)/2)/2, set the bias equal to (bar count — space count + 2*bias)/2

7) Return to step 1.

In order to load the line into memory as usable codes we must process the frame format for the input line. There are many variations, but all contain basically the same information — a sync character, a check sum, a base address and a length. In our case the base address is not encoded in the frame format, and is replaced by a line number which is used to determine whether a frame has been repeated. The actual memory pointer is maintained separately by the decoding software and is incremented as each byte is decoded. The decoding algorithm for the format described by Banks et al I given on page 12, figure 2 in BYTE's November 1976 issue and page 14 of this issue] is as follows when specified in verbal pseudo code:

FRAMER Program

0) Obtain the start address from the user and set the next free address to that value.

1) Set the line buffer pointer to zero.

2) Have we reached the end of line buffer?

If YES then get set to scan the next line

(step 14). If NO then continue to the next step.

3) Is the next BYTE the sync character? If YES then continue to the next step.

If NO then increment the line buffer pointer and return to step 2.

4) Increment the line buffer pointer, load the two's complement of the next byte into the checksum location.

5) Increment the line buffer pointer and load the next byte into the line id location, add this byte to the checksum. If this is a repeat scan, then back up all pointers to repeat the erroneous load attempt.

6) Increment the line buffer pointer and load the next byte into the line length location, add this byte to the checksum.

7) Are the line length and the line buffer length consistent?

If YES then save the line buffer pointer and

continue. If NO then jump to the error on read, step 13.

8) Increment the line buffer pointer and add the next byte to the checksum. Decrement the line length.

9) Is the line length zero?

If YES then continue to the next step. If NO then return to step 8.

10) Is the checksum zero?

If YES then set the line buffer pointer to the value saved in step 7. Load the next byte into the line length location and continue.

If NO then jump to the error on read, step 13.

11) Increment the line buffer pointer, load the next byte at the next free address pointer, increment the next free address pointer and decrement the line length.

12) Is the line length zero?

If YES then jump to step 14. If NO then return to step 11.

13) Report a read error and the line number, set up for repeat scan.

14) Report ready for next scan and return to the scanning routine.

These algorithms, specified in pseudo code, are but a simplified first pass through the problem. Figure 1 summarizes the structure of the software. These routines should prove sufficient to read the bar codes into your computer given processing front end hardware and optics sufficient to resolve the light and dark states of the code. More elaborate adaptive algorithms are of course possible, but with the software specified above it should be possible to read the codes. Further work is certainly needed in the area of defining the data formats within the raw byte capacity of the frame, and for the moment we assume that an application program or a system program (such as a relocating linkage editor) knows what to do with the data if it is not an absolute binary memory image for a machine language program which can be executed once it is in place."

20

We've got it! 80 power for the Altair bus.

Here it is.TDL's ZPU™ the highest point of technology for an Altair/IMSAI system. Now,you can multiply your present capabilities without creating costly obsolescence. Take advantage of the wide range of existing hardware backup for your current system. The ZPU is compatible and dependable with many plus features you'll want to know about.

To further round out your system we also have available the fastest and lowest power static ram boards going (from 4 to 16K with expansion) and a system monitor board with a Z-80 monitor, powerful I/O and audio casette features.

As for software, TDL's user support program is unmatched in the micro-processor industry, currently available are the Z-80 monitor, basic, and the most sophisticated MACROASSEMBLER yet developed.

Join the Z-80 revolution — it's more than just hardware!

ZPU Kit $269.00 Z16K Kit $574.00

HOW TO ORDER Just send check or money order, or use your BankAmericard or Mastercharge, and your orders will be shipped to you postpaid. COD orders must be accompanied by a 25% deposit. Your credit card order must include the serial # of the card, expiration date, and your order must be signed. New Jersey residents add 5% state sales tax. For more information, send for our free catalog.

Dealer Inquiries Invited.

TDL

609-921-0321

Research Park Bldg. H

1101 State Rd. Princeton l\IJ 08540

There's another side of IMSAI you should know

IMSAI VIDEO DISPLAY

Assembled $1199.00/Unassembled $699.00

IMSAI MULTIPLE I/O BOARD Assembled $350.00/Unassembled $195.00

Sure you know our IMSAI 8080 computer. Its size, quality, performance and price set the industry standard for value. There's another, equally important side of IMSAI —our broad and ever growing I/O product line. Right now IMSAI offers an array of sensibly priced, versatile, highquality interfaces and peripherals that live up to the IMSAI 8080 for quality technical leadership, and value.

IMSAI VIDEO DISPLAY. We

call it the most powerful, flexible video display interface available. With up to 3 boards that fit into your IMSAI you can display color characters and color graphics simultaneously. • Unlimited image control. • Large capacity display. • Eight colors; 7 half tones. • All cables included. • Full ASCII character set. • Character blink, reverse video, multiple cursor and double-width characters.

JIM

1^1

IMSAI KEYBOARD. 53 key

ASCII encoded keyboard with good touch quality and upper case alphanumeric keys that duplicate functions of the ASR-33. Supplied with commercial grade cabinet and cable. Interfaces to any 8-bit parallel port.

IMSAI 44 COLUMN PRINTER.

44 column dot matrix printer offering hard copy output at an affordable price. Interfaces to many computers using an 8-bit parallel output port. Simple programming and installation. Self-contained with case, cable, power supply, timing, control and character generation included. Produces 75/lines/min.; double size characters software selectable.

IMSAI MULTIPLE I/O BOARD.

Simultaneous control of keyboard, printer, tape cassette (Byte or Tarbell) and teletype (or CRT) by a single MIO board. Our5-port, multiple I/O board combines the most commonly used I/O interfaces including a cassette interface, two parallel I/O ports, one serial channel and one control port— all on one board!

And many other IMSAI I/O interfaces to expand your system. Examples:

IMSAI Programmable Parallel I/O board offering 6-ports for the ultimate in I/O flexibility and control.

IMSAI PRINTER Assembled $549.00/Unassembled $399.00

IMSAI KEYBOARD Assembled $199.00

IMSAI 2-Channel serial I/O board with 3 modes for total versatility in communications.

IMSAI 4-Port Parallel I/O board with LEDs for visual observation of data flow.

IMSAI Intelligent Breadboard for easier, more accurate circuit design and classroom instruction.

IMSAI 4K RAM-the best price performance 4K RAM board on the market.

Socket sets for all boards. Use for easier board maintenance.

For commercial application—Our IMSAI floppy disc with disc operating system and extended BASIC.

ALL these IMSAI products available NOW at your IMSAI dealer or from the factory.

Yes, the other side of IMSAI has much to offer. It's a complete I/O line with products that match the IMSAI 8080. We offer a detailed, illustrated catalog describing the IMSAI 8080, its options, peripherals, software, prices and specifications. Send one dollar to cover handling. Write or call for name of the nearest dealer.

Dealer inquiries invited.

For more information circle A 12.

IMSAI Manufacturing Corp.

14680 Wicks Boulevard San Leandro, CA. 94577 (415)483-2093 TWX: 910-366-7287

The Cybernetic Crayon

A Low Cost Approach to Human Interaction with Color Graphics

Thomas A Dwyer Leon Sweer Soloworks Lab University of Pittsburgh Pittsburgh PA 15260

The Cromemco TV Dazzler (described in BYTE No. 10, June 1976, page 6) is one of the most interesting (as well as economical) peripherals available for displaying computer output. It literally puts a picture of what's in your computer's memory on a home color TV set. The simplicity of this idea cuts through all the complexities that expensive color graphics systems (some costing over $100,000) have presented to "ordinary" computer users in the past. The potential applications of low cost color graphics, especially in learning environments of the type we have been developing at Soloworks [The Soloworks lab is concerned with using computers in education as tools for supporting student creativity. A newsletter describing the project is available from author Dwyer. j, are almost endless.

At the present time there are two obstacles to using the Dazzler to its full potential. The first is difficulty in programming. Most

users find it inhibiting to work at the machine language (or even assembly language) level. There isn't any doubt that color graphics will really take off in educational and home computing when simple user oriented graphic instructions become available in higher level languages like BASIC.

The second problem that needs to be attacked is the lack of human-oriented input devices that allow one to interactively "play" with color graphics. It is of course impressive to see what a clever programmer can do by loading in carefully written machine language graphics demonstrations. But the real future is in making computers responsive to control actions that mirror the "macro" ideas of human imagination and even fantasy. It's the difference between sitting in the back of an airplane admiring how clever your captain is, and moving into the pilot's seat with a chance to do a few lazy eights around the sky yourself.

24

,[] ] COLOR OPTION

SWITCHES

IMSAI 8080

Figure I: The Cybernetic Crayon System. The XY digitizer position is set by the young artist, and interpreted by the 80S0 processor running a program shown in Listing I. This program uses the position information along with the settings of front panel switches to determine the color value of each position in the picture as it is drawn.

Graphics Software

Some of the people at Dartmouth (Arthur Luehrmann in particular) are working at defining a set of graphic extensions for the language BASIC. This is a good idea, but it's slow work. Getting different groups with different interests to agree on anything is pretty difficult. We'll be following this activity at Soloworks, and may try extending one of the microcomputer versions of BASIC in this direction. In the meantime, we think much attention also needs to be given to what people may want to do with graphics, especially the low cost type.

One way to do this is to "imagine" something you'd like to do, and also "imagine" a language for instructing the computer to do this. You can then try to write subroutines in assembly language to implement these macro instructions. True, that's hard work, but eventually the detailed code could be hidden from the user (possibly in BASIC, or possibly in ROM). Then programmers (including young children) could do most of their thinking at the higher level.

Let's illustrate this idea by looking at a first attempt we made along these lines in defining what we call our "cybernetic crayon box." We had lots of ambitious ideas for using the Dazzler, but decided to start very simply. Our thinking was that new features could then be added one at a time in the form of additional subroutines. In other words, the approach we took was to build a total system from what are usually called program "modules." (It's worth noting that this is a good idea for most large programs where clarity is essential. In fact it's the basic idea behind the new rage for what is called "structured programming.")

The Cybernetic Crayon Idea

Let's imagine that we want to make the system of figure 1 possible. The idea is that it would be neat if a child could move some kind of electronic "crayon" around and experiment with drawing colored pictures on a TV screen. In the back of our heads was the thought that it would be even neater if a "big" child (guess who) could drive a space ship around a full color galaxy in some futuristic Star Trek type game.

Let's imagine a computer program to do this using an imaginary high level language. It might look like the following:

1. Turn on the Dazzler and start displaying memory.

2. If desired, erase memory (to get a blank screen).

3. Look at where the crayon is pointed.

4. See what color it is.

5. Decode this information into proper machine language.

6. Now put information into the computer's memory for display.

7. Go back to step 3.

The "hardest" parts are steps 2, 3, 5, and 6. We decided to make step 3 "easy" by using a special piece of hardware, an $80 surplus XY digitizer which was sold by Delta Electronics Co (their ad appeared in the May 1976 issue of BYTE). Steps 2, 5, and 6 were handled by software subroutines that can be thought of as simulating macro instructions. Let's look at each of these four steps in further detail.

Using an XY Digitizer as the Crayon

There are several options for the "crayon." One would be a light pen. Another would be a two axis joystick. The

25

third possibility is to use whal's called an XY digitizer. All of these devices can be expensive, since they usually require special interfacing electronics. The exception to this rule is when the devices produce digital data directly, either through brush type contacts or optical disks thai control the light falling on photo electric cells. We chose to use an XY digitizer with brush contacts, partly because it was available as surplus, and partly because the XY frame of reference looked like a good way to help even very young students learn about Cartesian coordinate systems (more about this later).

How the Digitizer Works: the Gray Code

The digitizer is a mechanical device which works something like a plotter in reverse. When the user moves the pointer (what we call the crayon), this moves two sets of contacts to positions corresponding to the X and Y coordinates of the crayon. These brushes slide across metal templates that look something like the pattern in figure 2.

The output for each coordinate is a 7 bit binary number. This means that 128 values (2**7) for each coordinate arc possible. Each output can be connected directly to one 8 bit parallel input port of your microcomputer. The way the digitizer is wired, each bit that is enabled by the digitizer (that is, contacted by a brush) is grounded. Therefore it is necessary to complement the number read from the port before further

processing. Thus the input pattern (I, I, 0, 1,0, 0, I) becomes (0,0, 1,0, 1, I, 0).

The second trick to using this particular digitizer involves decoding the patterns used on the templates for representing X (and Y) positions. Instead of using a standard incrementing binary code to represent values for X and Y, the digitizer templates use what's called a Gray code. The way thai this code represents the X and Y positions between 0 and 1 27 is shown in figure 2. One may ask, why not use a standard binary code instead of this "strange" version? The reason becomes apparent when one examines each successive number representation. Note that only one bit ever changes between two consecutive positions (or numbers). On the other hand, if the conventional form of binary code were used, many instances would occur in which several bits would have to change at once, (eg: 0111 to 1000 for 7 to 8). This must be avoided because it would be impossible for a low cost mechanical device to succeed in changing all the bits at exactly the same time. Instead, the computer (being as obedient as it is) would read incorrect values as the bits changed. Use of the Gray code solves this problem, but requires that some means be used to translate back into the standard binary code expected by your computer.

The following algorithm will translate the Gray coded numbers into standard binary codes. An example helps to illustrate.

GRAY PATTERN GRAY CODE BINARY CODE DECIMAL

0000000

0000000

0

0000001

0000001

1

0000011

0000010

2

0000010

0000011

3

0000110

0000100

4

0000111

0000101

5

0000101

0000110

6

0000100

0000111

7

0001100

0001000

8

0001101

0001001

9

0001111

0001010

10

0001110

0001011

11

0001010

0001100

12

0001011

0001101

13

0001001

0001110

14

0001000

0001111

15

0011000

0010000

16

0011001

0010001

17

0011011

0010010

18

0011010

0010011

19

0011110

0010100

20

Figure 2: Detail of the Cybernetic Crayon's Surplus Digitizer. The rough artwork of an image may be drawn on paper, or the image can be created without such a layout. The Gray code pattern of the inputs can be seen in diagram form and equivalent binary form at the right.

26

Problem: Change Gray code Oil0100 into a standard 7 bit binary code.

Example

(in the

example,

x's indicate

bits yet to

be deter

mined, ini

Step

tially zero.)

1.

Look at the high

Bit isO

order (left most) bit

first.

2

Is the exclusive or (XOR) of this bit and all bits to its left 1?

No

3.

Put a 0 in the high

RT =

order bit of a "run

Oxxxxxx

ning total" RT.

4.

Look at next bit.

1

5.

Is the XOR of this bit and all bits to its left

Yes

6.

Then put a 1 bit in

RT =

RT on right.

Olxxxxx

7.

Look at next bit.

1

8.

Is the XOR of this bit and all bits to its left

11

No

9.

1 f

Put a 0 bit in RT on

RT =

right.

010xxxx

10.

Look at next bit.

0

11.

Continue until finished.

etc.

Using this algorithm, you can see that 0110100 decodes at the test with exclusive OR to (NO, YES, NO, NO, YES, YES, YES), that is, to 0100111 (which is decimal 39). It is fairly easy to write a program for an 8080 or any other processor which does this, and it is shown in listing I, relative addresses 004D to 0066. It will be part of our final crayon program. The variable C is where RT is kept in binary form, using the trick of putting higher order bits in at the right, and then shifting them (rotating) to the left until 7 bits have been accumulated. The Gray code is in A at the start.

ROUTINE TO DECODE GRAY CODE

MVI

C, D

;CLEAR REG. C

MOV

D, C

MVI

E, 7

UNITIALIZE LOOP

MOV

B,A

;PUT GRAY CODE IN B

MOV

A,C

RLC

; ROTATE C LEFT

MOV

C,A

MOV

A,B

RLC

iROTATE B LEFT

MOV

B,A

AN I

80H

;MASK ALL BUT MSB

RLC

jPUT MSB IN LSB

XRA

D

iXOR IT WITH ALL HIGHER

MOV

D,A

;REPLACE RESULT

ADD

C

;PLACE IN LSB OF C

MOV

C,A

DCR

E

MOV

A,E

JNZ

LOOP

MOV

A,C

RET

iCOUNT DOWN LOOP

;PUT BINARY CODE IN A

A Subroutine for Erasing Memory

If we want to draw a picture in the "memory space" of our computer, the first thing we may want to do is erase the space. This is accomplished simply by writing zeros in each location. The routine in listing 1, relative addresses 009B to 0048, erases memory, beginning at the location specified in the 8080's HL register pair, and erases a number of locations equal to 256 times the number in the A register. (It's a good idea to keep subroutines such as this as general as possible when developing flexible software.)

(ROUTINE TO ERASE 256*A BYTES STARTING AT H,L ERASE:

MVI

D,0

;CLEAR D,E

MOV

E,D

MVI

M, 0

INX

H

[ADVANCE POINTER

MVI

M, 0

iCLEAR THAT BYTE

INX

D

; INCREMENT COUNTER

CMP

D

;SEE IF A BYTES WRITTEN

JNZ

NEXT

;IF NOT, GO BACK

RET

END

It will be seen later (in the main program) that the erase routine is called by flipping the left most switch of the "programmed input" register on the IMSAI front panel.

A Subroutine for Mapping XY Coordinates Into Memory

Before showing how to translate (or "map") the decoded X and Y values into a memory location to be used as part of our TV picture, it is useful to understand how the Dazzler works. In particular, we want to know something about how it interprets a block of memory and translates it into a color TV picture element.

The Dazzler uses two output ports of the microcomputer. Through these two ports, the computer tells the Dazzler whether to turn itself on, where in memory the picture begins, how many bytes the picture comprises (the choices are 512 or 2048), and what type of picture (color and resolution) should be displayed on the TV. The output to the TV comes directly from the Dazzler.

ORDER BITS

Figure 3: Color Command Word of the TV Dazzler. This is the layout of each 4 bit nybble in the color display memory region of 2048 bytes.

COLOR COMMAND WORD

MSB

1

0

0

1

LSB

INTENSITY

BLUE GREEN RED

27

LOCATIONS RELATIVE TO STARTING LOCATION

32 half bytes 32 half bytes

64 Rows

496

15

511

1024

-1039

1520

-1535

512

527

1008

1023

1536

-1551

2032

-2047

Figure 4: Memory Map of the Dazzter Peripheral. This map correlates the displayed picture to the array of memory bytes. The addresses are indicated here in decimal.

Listing 1: The Cybernetic Crayon Program. This shows the complete assembly listing (relative to address 0). The major subroutines discussed separately in text are the gray code conversion routine DECOD, the memory clearing ERASE, and the address calculation routine TRANS.

0000

;main

PROGRAM

16

0000

ORG

0

0000

3E

88

MVI

A.88H

iTURN ON DAZZLER

0002

D3

16

OUT

16H

; "

0004

3E

30

MVI

A.30H

; "

0006

D3

17

OUT

17H

; "

0008

31

EF

00

LXI

SP.0EFH

; SET STACK POINTER

000B

DB

FF

INPUT

IN

0FFH

;GET SWITCHES

000D

17

RAL

iCHECK FOR MSB

0O0E

D2

19

00

JNC

NOERS

;1F NOT SET, GO GET POINTS

001 1

21

00

10

LXI

H,l000H

ilF SET, LOAD H,L AND A

0014

3E

08

MVI

A,08H

;AND CALL ERASE

0016

CD

9B

00

CALL

ERASE

0019

DB

10

NOERS

IN

1 OH

;GET X DATA FROM CODER

001B

2F

CMA

iCOMPLEMENT X

001C

CD

4D

00

CALL

DECOD

TRANSLATE X INTO BINARY

001F

67

MOV

H,A

;SAVE X

0020

DB

11

IN

1 1H

;GET Y DATA FROM CODER

0022

2F

CMA

;COMPLEMENT Y

0023

CD

4D

00

CALL

DECOD

;TRANSLATE Y INTO BINARY

0026

4F

MOV

C,A

;SAVE Y

0027

44

MOV

B,H

i PUT X IN B

0028

IE

10

MVI

E, I OH

iLOAD HIGH ORDER STARTING ADD OF

PIC

0 0 2A

CD

67

00

CALL

TRANS

JTRANSLATE INTO MEMORY ADDRESS

002D

DB

FF

IN

0FFH

iREAD SWITCH REGISTER

002F

E6

OF

AN1

0FH

; SCREEN OUT OTHER SWITCHES

0031

4F

MOV

C,A

;SAVE SWITCH REGISTER

0032

3E

00

MVI

A,0

1 IF REGISTER D=0

0034

BA

CMP

D

;

0035

CA

45

00

JZ

SNOT

JTHEN GOTO SNOT

0038

79

MOV

A,C

;GET SWITCH REGISTER

0039

07

RLC

;SHI FT LEFT 4 BITS

003A

07

RLC

003B

07

RLC

003C

07

RLC

003D

4F

MOV

C ,A

;RETURN TO C

003E

7E

MOV

A, M

;GET OLD WORD IN DESIRED LOC

003F

E6

OF

AN I

0FH

;GET RID OF THIS HALF

0041

Bl

ORA

C

;PUT IN NEW GROUP

0042

C3

49

00

J MP

STUFF

0045

7E

SNOT:

MOV

A,M

;GET OLD WD IN DESIRED LOC

0046

E6

F0

ANI

0FOH

;GET RID OF HALF

0048

Bl

ORA

C

;PUT IN NEW GROUP

0049

77

STUFF:

MOV

M,A

;WRITE NEW WORD IN M

0 04A

C3

0B

00

JMP

INPUT

;GET ANOTHER POINT

004D

;

004D

; ROUTINE TO

DECODE GRAY

CODE

004D

0E

00

DECOD:

MVI

CO

;CLEAR REG. C

004F

51

MOV

D,C

0050

IE

07

MVI

E,7

;INITIALIZE LOOP

0052

47

MOV

B,A

;PUT GRAY CODE IN B

0053

79

LOOP:

MOV

A,C

0054

07

RLC

;ROTATE C LEFT

0055

4F

MOV

C,A

0056

78

MOV

A,B

0057

07

RLC

;ROTATE B LEFT

0058

47

MOV

B,A

All these functions are represented on the output ports of the IMSAI 8080 we used, as follows:

Port 16: Bits 0 to 6 contain the most significant 7 bits of the starting picture address. Note that only multiples of 512 are possible.

Port 17: Bit 6 is a resolution multiple of 4 if on, normal if off.

Bit 5 is a picture in 2 K bytes of memory if on, 512 bytes if off. Bit 4 is a color picture if on, black and white picture if off. Bits 0 to 3 are intensity and color bits used only in high resolution mode. We will not be concerned with these 4 bits.

It is not necessary to understand all of these options and modes to use the Cybernetic Crayon. We will therefore concentrate on the mode in which 2 K of memory is used, and in which each byte represents two picture elements (small rectangles). In this mode, the picture is composed of 4098 (64 by 64) such elements, the color and intensity of each element being specified by one half of a byte (called a color command word). Each half byte has the meaning to the Dazzler shown in figure 3.

The command word shown in our example isfor "high intensity red." Another important thing to understand about the Dazzler is that it is able to read memory on its own, just like the computer, and at the same time that the computer is running its own program. This is called Direct Memory Access (DMA).

Once the computer tells the Dazzler (through ports 16 and 17) where the picture starts, the Dazzler simply takes over and puts the picture right on the screen. Every 1 /30th of a second it reads through the entire 2 K of memory and displays it. This arrangement means that the computer can be changing the picture at the same time it is being displayed.

The way in which the Dazzler reads memory can be seen with the illustration of figure 4.

We see that the picture is divided into four quadrants. As the Dazzler reads across a sequence of locations, beginning with the starting location, it displays the least significant half byte first. It is important to remember this when figuring out exactly where in memory a particular color command word should go.

Let's now go back and see if we can piece this information together to enable us to translate our XY coordinates from the digitizer into a memory location that will cor

28

respond to the same place in the Dazzler picture. A logical way to go about this is to load a register pair with the beginning address of the picture, and then add to this address an amount derived from the XY coordinates. We could envision the following sequence of events:

1. Load register pair with picture starting location.

2. Ask: "What quadrant are we in?" That is, "arc X or Y or both > 64?" If X > 64, we arc in the right half of the screen, and must add 512 to the starting location. If Y > 64, we are in the bottom and must add 1024 to the starting location. (If both are true we add both.)

3. Subtract 64 from X or Y if they are greater than 64. This way, every point would be translated into the first quadrant, with X and Y values ranging from 0 to 63.

4. Add the final displacement to the register pair as follows:

A. Multiply Y by 8; this translates the range from 0-63 to 0-504.

B. Mask out last four bits to have this address at far left of quadrant (X=0).

C. Divide X(0-63) by 4 to get 0-15, remembering the right hand carry bit to determine which half word to write (done by shifting right twice).

D. Add this to the address calculated from Y. Now add total result to the previously calculated quadrant address.

Example: X=47, Y=71. Picture begins at memory location 4096.

1. Load H,L registers with 4096.

2. X < 64 while Y > 64. So add 1024 to H,L. (We are in lower, left quadrant).

3. Subtract 64 from Y, so translated point is X=47, Y=9.

4. A. Multiply Y by 8. 9X8=72 (hexa

decimal 48).

B. Mask out lower 4 bits to get 64 (hexadecimal 48 AND FO gives 40).

C. Divide X by 4. 47/4 = 11. Carry bit = 1.

D. Relative location is 64 + 11 = 75. Add this to H,L. 5120+ 75 = 5195

So, the digitizer is pointing at location 5195 in memory. All this calculation would be done in 8080 machine code, resulting in the hexadecimal address value of 144B.

The 8080 subroutine TRANS (see listing 1 addresses 0067 to 009A) translates the XY coordinates stored in the B and C register

Listing 1, continued:

0059

E6

80

ANI

80H

;MASK ALL BUT MSB

005B

07

RLC

iPUT MSB IN LSB

005C

AA

XRA

D

JXOR IT WITH ALL HIGHER ORDER 3ITS

005D

57

MOV

D,A

;REPLACE RESULT

005E

81

ADD

C

iPLACE IN LSB OF C

005F

4F

KOV

C,A

0060

ID

DCR

E

;COUNT DOWN LOOP

0061

7B

MOV

A,E

0062

C2

53

00

JNZ

LOOP

0065

79

MOV

A,C

;PUT BINARY CODE IN A

0066

C9

RET

0067

i

0067

[ROUTINE WHICH

TRANSLATES B,C INTO ADDRESS IN H,L

0067

;E MUST

CONTAIN

PICTURE

STARTING ADDRESS (MOST SIG HALF)

0067

78

TRANS:

MOV

A, 3

; PUT X I N AC

0068

E6

40

ANI

40H

iGET RID OF ALL BUT 64 BIT

006A

CA

73

00

JZ

QUADL

;IF ZERO CX<64> GO AROUND

006D

1C

INR

E

iADD 2 TO E

006E

1C

INR

E

006F

78

MOV A,B

0070

DE

40

SBI

4DH

iSUB 64 FROM B

0072

47

MOV

B,A

0073

79

QUADL:

MOV

A,C

iGET Y COORD

0074

E6

40

ANI

40H

;GET RID OF ALL 3UT SIT 64

0076

CA

81

00

JZ

QUADU

;IF ZERO CY<64) GO AROUND

0079

7B

MOV

A,E

007A

C6

04

ADI

0 4H

INCREMENT THIRD BIT OF E

007C

5F

MOV

E ,A

007D

79

MOV

A,C

;SUB 64 FROM C

007E

DE

40

SBI

40H

OOEtO

4F

MOV

C,A

0081

78

OUADU:

MOV

A ,B

iGET X AGAIN

0082

OF

RRC

[DIVIDE BY 2

0083

IF

RAR

iDIVIDE BY 2 AGAIN

0081

47

MOV

3,A

iSTORE IN B

0085

3E

00

MVI

A, 0

iCLEAR A

0087

8F

ADC

A

iPUT CARRY IN A

0088

57

MOV

D,A

iSTORE CARRY IN D

0089

78

MOV

A,3

iGET X/4 AGAIN

008A

E6

OF

ANI

0FH

;ZERO HIGHER HALF-WORD

008C

47

MOV

B ,A

iSAVE IN B

008D

79

MOV

A,C

iGET Y AGAIN

008E

07

RLC

iMULT I PLY BY 8

008F

07

RLC

0090

17

RAL

0091

D2

95

00

JNC

LOWER

ilF NO CARRY, DONT INCREMENT E

0094

1C

INR

E

0095

E6

F0

LOWER:

ANI

0F0H

iDUMP LOWER HALF-WORD

0097

80

ADD

B

iADD X DISPLACEMENT

0098

6F

MOV

L, A

iLOAD L

0099

63

MOV

H,E

iLOAD H

0 0 9A

C9

RET

009B

;

009B

;ROUTIN

£ TO ERASE 256*A

BYTES STARTING AT H,L

009B

16

00

ERASE:

MVI

D, 0

iCLEAR D,E

009D

5A

MOV

E ,D

009E

36

00

MVI

K, 0

00A0

23

NEXT:

[NX

H

iADVANCE POINTER

00A1

36

00

MVI

M, 0

iCLEAR THAT BYTE

00A3

13

INX

D

i INCREMENT COUNTER

O0A4

BA

CMP

D

;SEE IF A BYTES WRITTEN

0OA5

C2

A0

00

JNZ

NEXT

iIF NOT, GO BACK

00A8

C9

RET

00A9

END

into a Dazzler byte location, and places it in the HL register pair. At the time it is called, register E must contain the most significant half of the starting address of the picture. At the, end of the routine, register D is equal to 1 if the most significant half of the byte is to be used, and equal to 0 if the least significant is to be used.

iROUTINE WHICH TRANSLATES B,C INTO ADDRESS IN H,L

;E MUST CONTAIN PICTURE STARTING ADDRESS (MOST SIG HALF)

iPUT X IN AC

iGET RID OF ALL BUT 64 BIT

ilF ZERO (X<64) GO AROUND

iADD 2 TO E

iSUB 64 FROM B

iGET Y COORD

iGET RID OF ALL BUT BIT 64

ilF ZERO (Y<64) GO AROUND

RANS:

MOV

A,B

ANI

40H

JZ

QUADL

INR

E

INR

E

MOV A,

B

SBI

40H

MOV

B,A

UADL:

MOV

A,C

ANI

40 H

JZ

QUADU

Continued on page 138

29

The Buried Gold in the SR-52

Clif Penn 911 Northlake Richardson TX 75080

About the Author

Clif Penn reports on these features as an enthusiastic user of the SR-52. Though he is employed by Tl 's Central Research Laboratories in Dallas, he wrote the article as an individual user, and much of it is based upon information passed around by the SR-52 users' grapevine in Dallas.

In the April 1976 issue of BYTE, a good overview comparison of the programmable SR-52 and the HP-65 was presented by Bradley Flippin [page 36]. Now some hidden but powerful features of the SR-52 organization will be discussed. At this time these features have not yet appeared in the literature Texas Instruments supplies with the SR-52, but the capabilities are worth documenting for readers who use this calculator.

Register Organization

The SR-52 is arranged internally with 100 programmable registers numbered 00 through 99. The first 20 registers (00 to 19)

Clearing

Register

Normal Use

Function

00-19

Data Storage

*CMs

20-59

Internal and not externally available

60 - 69 Operational stack

CLR

70 - 97 Program storage with 8 Affected by program steps per register program edit

98-99 None

None

Table 1: SR-52 Register Organization. The documentation of the SR-52 mentions user programmable data storage in registers 00 to 19. In fact, the internal organization of the machine has a total of 100 registers allocated according to this map. Registers 60 to 69 are the operational stack used in parsing algebraic data entry (see BYTE's February 1976 issue for two articles on the subject). Registers 70 to 97 normally store the calculator's program with 8 program steps per register. Registers 98 and 99 are "free" and can be used for temporary data storage or as a flag. (The registers from 20 to 59 are not available for user programs.)

are those normally used for data storage and called from the keyboard such as RCL 06, STO 19, *EXC 05 and so on. All 20 of these user data registers are cleared simultaneously by pressing *CMs. [All secondary functions are shown with an asterisk (*) convention rather than writing (2nd) (CMs).] Many users have discovered by accident that there are other registers which may be accessed from the keyboard but have an incomplete understanding of how to take advantage of them. Table 1 shows a detailed listing of the registers, their conventional use and how they are cleared.

All of the registers except the internal 20 through 59 can be used in exactly the same way as the conventional 00-19, that is, indirectly addressed, conditionally addressed and so on.

Operational Stack Registers 60-69

If you use a "0" strike over rather than the clear button, registers 60 to 69 become available. Remember, however, that any time a "(" is actually necessary in your program, you use these registers in order from the bottom up. It is rare to use all levels of internested brackets, so start from 69 and work down if you need extra storage. (When in doubt, do the problem manually and RCL the register of interest and check for 0 contents.)

Program Storage Registers 70-97

The program storage registers 70 through 97 normally store the program at 8 steps per register. These registers are loaded either manually or when you read a preprogrammed magnetic card. In addition they are recorded on the magnetic card in the WRITE mode. This allows you to store data on a magnetic card for later use or updating. The statistics program used as an example incorporates this feature. Any time you delete or insert program steps after storing data in the

30

Reg

Loc

Reg

Loc

Reg

Loc

program memory, you will alter the register contents. BEWARE! To make life easier, table 2 shows the program locations normally stored in each register.

If you use this feature regularly, here are some memory aids — 8 program steps per register; the first register stores locations starting with 000 (ending with 002 so register 70 may be associated with this); register 80 starts with location 080; register 97 is last.

Bonus Storage Registers 98-99

There are numerous cases when you wish access to the CLR and *CMs feature without losing a constant you may be using regularly. Registers 98-99 are quite useful for this. None of the clearing functions affect them. Power off of course kills everything. You may encounter cases (as on the included programs) where you desire the effect of a flag but are still free to use CLR, *CMs, and reset. Although not nearly as efficient as flag usage, you can simulate a flag condition by

70

000

007

80

080

087

90

160

167

71

008

015

81

088

095

91

168

175

72

016

023

82

096

103

92

176

183

73

024

031

83

104

111

93

184

191

74

032

039

84

112

119

94

192

199

75

040

047

85

120

127

95

200

207

76

048

055

86

128

135

96

208

215

77

056

063

87

136

143

97

216

223

78

064

071

88

144

151

79

072

079

89

152

159

storing any number in register 98 or 99 and use the following sequence:

*LBL

*EXC

*V

9

*EXC

9

9

* if zro

9

•V

*EXC

9

9

Just as flag usage, this preserves the data in the display register for further use following the conditional branch instructions. Keep in mind you may need to clear 98 or 99 as an

Table 2: Program Storage Registers and Locations Stored. This table gives the correspondence between program step numbers and register locations 70 to 97. Note that editing operations shift program data throughout this region, so any use of the program storage registers for data should be avoided when editing programs.

A Note About Special Features to Save Program Steps

As a preamble let me emphasize forcefully that short routines should be written with parentheses in normal algebraic form without worrying about the "bells and whistles." This will use more program steps than needed but less time in programming and debugging.

Invariably you will encounter long programs where you need every "twist of the screw" to reduce program steps. The main thing to master is the algebraic hierarchy (pages 46-48 in the SR-52 Owner's Manual). Except as altered by parentheses, the order of operations is:

1. Immediate function evaluations (sin, cos, tan, etc).

2. Exponentiation and root extraction (\ , yx,

3. Multiplication and division.

4. Addition and subtraction.

5. Perform operations from left to right on each hierarchy level.

For example:

(5x7) + (8^2) =39

with or without the parentheses while

(5 + 7) x (8-2) = 72

but

5 + 7x8-2 = 59.

One equal sign at the end of the equation may replace several right parentheses one might require at the end of an expression.

Another useful feature involves recalling the display register contents by the use of either math functions or memory functions.

3 + \J3- may be programmed 3 + yx = 3 + 1/3 may be written 3 + 11\ = 3 + 3 = cannot be keyed 3 + = but rather 3 + RCL= 6.

Any of the memory functions may be used in this "dummy instruction" manner. On occasion you may wish to store an intermediate result at the very same time as you use the display register contents like this:

4x5 + STO 01 x 3 = 80, 20 stored in register 01.

The "+" sign causes the first multiplication to take place, the STO inserts the display register contents back in the equation and the 01 directs 4 x 5 = 20 to be stored in register 01. Had you wanted 5 stored instead, you could have used a dummy memory instruction

4 x 5 STO 01 + RCL x 3 ■ 5 stored in register 01.

80,

31

SR-52 I,

User Instructions \l

iiile standard BeyiAT/OAJ (Q Bins') page / 01 2

] |U*B.

S. j LAST tj_ENT£Rj | _

titif STO. PE.VIATIOK1 fa BINS^np I

PROGRAMMER CLIP PEfiJH DATE__5^

,F 2 SR-52

t/ik Coding Form

^

m*A

_Qa

Tpev1

BlN±tlMEM-i

AV£_

STEP

PROCEDURE

ENTER

PRESS

DISPLAY

OfEKATIMO

e.ee,i^r£iis

APf* Alia/aYs /?<

')l>R02sRO-i

Roi 5rni?F5 m

- SUM

OF ALL FNTIZIFI

; ■ ROZ

STORES THE 5

JM OF

THE SQ UA KFS

OF AL L

£A/r/?/0s ; /^Oc

? SroR£S

7"//f MUMez. of

' DATA

t-wr/z/es..

AVE = -r— =r

^sv

n'-'o

STO DEV= \f 1

|y r2 ^

SfX

)Z/

Y n

L?

P)

-J

SR-52

User Instructions

title STAMPftRft Deviation C4 Sins') PAGE

1 l«tf

P/A

n

BIU *

MBfA-^

V£ _

DCV

-*:

L»\ST *

ENTCA

•*B«

STEP

PROCEDURE

ENTER

PRESS

DISPLAY

Bin Control

ROUTI N F.

Flft'bT PRESS c

F tVE-'

(USING- 6/N

#4- AS A

M £"X

AMPl

r)

Bin « l

Biu u 4

Roi «,.,—£

Rio *%*

Roz *»..

RH **•*

Ro3 n.«—i

R.i. ru.

Resul

T

DISPLAY

' = A

Roi *.%+

Rio **•!

Roz. 2.TU2

Rn £X,2

Ro"l ru

R12. n.

NEXT PRESS C

if *e7

Restores of

U 4/WAL

DATA LOCA\T/C

MS ASSL

M /N

rT

NO DELIBE.&AT

E ACTIO!

J H

A.«b

RESET FLAC

Lo C sv

ICH

AS

+rset ok i

W *st -floj

CO

LOC

sooe

KEY

COMMENTS

LOC

CODE

KEY

COMMENTS

LOC

CODE

KEY

COMMENTS

LABEL5

000

112

44=

»LBL

03

3

Display

03

3

* AVE

13

E

ENTER.

43

RCL

new

75

b DEV

42

STO

DATA

0*0 152

on

o

n

01

1

= -S

00

o

LAST

03

3

95

—

D LAST -£

oo

O

ENTRS

8i

HLT

ISC 192

30

*r*

B ENTRY

005

44

SUM

4fc

»L6L

42

STO

STO

«

00

0

Ii

II

A

AVE

09

9

Dtu

E "V/M/E.

01

1

040

157

43

RCL

03

9

c

Ao

•X1

OO

O

r*

81

HLT

: Bin Ik

44

SUM

01

1

r-T

DBS

197

44

*LBL

E MENVit

610

122

00

0

zi^

55

11

»B'

o^/ave

REGISTERS

Ol

2

43

RCL.

+3

RCL

00 LAST 1

0\

1

050 162

00

0

09 9

"it

44/

SUM

fJuMeee

03

3

09

9

DE^

02 J£*z

00

0

fNTRIES

95

=

090 20?

SS

T

03 n

015 127

03

3

n

42

STO

43

RCL

I » BIN |

41

RCL

0 1

1

AVE

0 1

1

Ave

05 * |

00

O

pisplaV

OV, 107

09

9

09

9

os 2

03

3

n

81

HLT

95

» Bin

ei

HLT

4&

«LBL

097. 207

81

HLT

on tt

020 13?

4<p

►LBL

12

f)

DEV

4<

xi-BL

MENoPf

09 ^ ,

13

C

-2

43

RCL

10

XE'

BfM

« BIm'

At

STO

Routine

111,0

173

00

0

?*2

fco

«///<.

SHIFT

" tt

00

0

to

02

2

00

f>'

ircsTBifr

« 4..1

00

0

Rizr«ove

75

too

212

01

/

To

o a/M"

Q35

137

94

V

PlCVIOUi

43

RCL

01

/

OATDCA

«t

44

sum

PATA

00

0

«*

03

3

" 51

00

0

FAOM

o;5

177

01

1

At

STD

Pwren.

'6 BIU

01

I

Ave

4o

*X*

(*f

09

9

NEU

" tt

4o

M2

4

55

4

217

OB

8

Bin

" C i

142

94

V

DEV

43

RCL

90

ifzn

U

l„

44

50M

OO

O

n

89

»3'

Oorm. FLAGS

00

O

070

182

03

3

75

.<<

0 &lV 5c*T

02

2

54

J

07

7

attire >

1 i

01

1

53

-L

110

222

95

M*m 7

2

035 147

94

+/

53

(

80

item

■ ettbe.

'

44

SUM

43

RCL

n

'

OO

0

075 187

00

O

1

•'—•—

,o

TITLE STD, DEVj,VnOrsJ

PROGRAMMER _

CUT PfV^/

PAGE 2 DATE 5/

sQ|)

SR-52 _ Coding Form

LOC

CODE

KEY

COMMENTS

LOC

CODE

KEY

COMMENTS

LOC

CORE

KEY

COMMENTS

LABELS

H2

89

*3'

09

9

EXC'S

c

43

RCL

09

9

ROI

RCL

Find

B

09

9

LOCATES

040

152

%

*|ND

Rol

O

n

C

08

8

WEAJ

4fl

*EaC

Roj

3 ateer

0

65

X

/3/Ay

on

0

14)/TH

OBO 192

HLT

TMflrn

B

□05

03

3

Auoensi

00

0

RoV

skA

A

42

STO

lb

'INO

Ro'Y'

B

00

O

3

045 1S7

4;

STO

Roz"

c n

00

O

09

9

1

D

54

;

09

9

0B5 •97

E

132

42

STO

©I

1

REGISTERS

09

9

3' ewn

94

V

00

09

9

050

102

44

5UI4

i

0.

51

S8R

09

9

1

02

Ol

1

09

9

090 202

03

015 127

04

4

5fi

"dsz

| |

0«

oe

8

Ol

1

05

60

V/7,

UFL,P

055 167

04

4

06

00

c?

Flop"

08

8

1

07

01

/

Memory

9a

"fan

095

207

08

020 132

04

4

TO

44.

i*L8L

1 ~T

09

OO

0

STORE

R9

*3'

Flash

!

10

'

«TL

Status

060 172

Bs

+

EReoiZ.

II

09

9

8S

+•

12

OR

u f.

81

HLT

100 212

13

025 i -■,. 137 50

*f <?;

•K,

*LBL

M

oo

0?

19

iVD'

15

6'

WLT

065 177

43

Rf.L

16

Ol

1

09

9

BIU

17

22

/A/V/

08

R

#

105 217

IB

030 142

so

•Wfl,

81

HLT

19

OO

0

4t>

XL6L

FLAGS

42

STO

070 1B2

14

P

0

09

9

43

RCL

1

oe

8

00

0

LAST

no

222

2

035

pi

«LT

00

O

^

3

3fe

""/ND

•t-SBR.

ei

HLT

4

43

RCL

LOOP

07S 167

• LOL

,„..„...

°

32

Figure 1: Standard Deviation Program with 6 Bins. This program allows one to accumulate the statistics for six different sets of data. The "bin control" routine selects which of the six variables is to receive new data. This routine is used to exchange sets of data.

initialization procedure if used in this manner.

Standard Deviation with 6 Bins

This program may be used conventionally without the memory management technique to calculate averages, standard deviations and normalized standard deviations. With the memory management shown, up to six different bins of data may be contained. For example, six different clerks could be compared as to their average orders filled as well as the consistency of their performance. Using the last program card you can store the results and update as often as desired. Likewise you can delete data in an orderly manner to maintain a four week running average and so on.

The user defined keys are used as shown on the program sheet. The bin exchange key

*E', performs the bin exchange function in a "flip flop" manner. The bin number is

entered from the keyboard, say bin #4. The first time *E' is pressed, registers 01, 02, 03 exchange contents with registers 10, 11, 12 respectively. This places the data of bin 4 in position to be updated by the stored program. The next time you press *E', regardless of what you think you told it, the memory contents are automatically returned to their proper order with a 1 displayed to point out that bin 1 is in the update position. Any time 0 or a number larger than 6 is used as a bin number the display flashes an error.

Each bin consists of three registers which store (1) the sum of all the data entries, (2) the sum of the squares of all the data entries and (3) the number of datum points. The equation used is illustrated on the coding sheet.

Memory to Magnetic Card Program

A program can be written to magnetically record up to 22 memory registers, but this

Figure 2: Memory Management Program. When it is desired to save the data prepared by a program such as the standard deviation program of figure 1, this memory management program is read into the "A " side of the calculator. Its purpose is to copy data from the user data registers (M) to program registers (CARD), and vice versa under control of two keyboard commands. To save data, copy the user registers into the program registers (M -*■ CARD) and write the program on both sides of card; to recover this data, read both "A " and "B" sides of the card, then perform the (CA RD -* M) transfer. Now load both sides of the standard deviation program to inspect these data.

SR-52 J,

User Instructions M

r (CxS) PAGE_L

! I*A

■

M-*CA8P

CARO^rt

!•*(«

PROCEDURE

TAILORED FOR SJTAMPAgP 1 >EVK iTIOlQ

PgO/aEAM klHIC

^ ZEG-zsTEres,

t'.ACH. WHFN

agc iv eeopes an per.. . R

AS

SAFETY

DlSPlAV MUST

TRANSFEgs THE

&L thuu /a ro eea/s

IN ORDER. ReG'STfes

U IE S

SICrNAL

prec&oe:

+ ,= , A> ;s SU6QESTEP. THIS

couTEXjrs, gip ReGisYee.s

CAZO ALO/J4

£>££> <P/J

R9S -^ 1 NO Vgfe>NSFE&

KIA/FaJ

/fefSSfP

AFTEK REAPIM

THE CARP , PEESS/N/c?

KdO thru R 9 7 Ltl Q&2££.

gSl THAU P AR

Pl$PLHY TQ tMtj-AJAL Tii^

Arf at

Hi BC'TH

JaLLU±.

THCI £ f/OM£

S/Aj

£, 3LIM|ONlV

PRUSSIA A

-£.££

SO

2AE

MITH T»£ P£o4-ie.*M

LolL

E"

_B2

BVMS

2J3

fl» re i 97

Za_

MA

SI PCS

Ba

ercr

s/TVpa/S

51

trhlE

|_ O-CUCl

TffA^sFiz/iS

Ctrl

iAI tut

aaais

T/C

OF

Zi2_

title MEMORY. MCMT (C*:

PROGRAMMER CLIF P&NfJ

SR-52 Jjp

Coding Form M:

LOC

CODE

KEY

COMMENTS

LOC

CODE

KEY

COMMENTS

LOC

cooeT key

COMMENTS

LABELS

ono

4*

»LBL

ALL FL<*5

18

*c'

I

fl M-^C«p

87

M'

fteiET

4-Z

5T0

IB

e

81

HLT

EA/D

0*0

09

9

IH

c

4C

•■LBL

09

9

STO ATR.

D

17

► B'

3BR

09

9

0B0 192

K CA(?D-vM

M5,,7 3fc

•/A/0

For

07

7

iPATft

A

143

RCL

Both

42

STO

97

\FHoM

ft

\o9

9

CARP

0«5 157

09

9

i/j

kemsT

&e oi

c

08

8

TO

08

8

KCI. PTR

0

34

»/A/D

MEM

17

*-B'

085 197

3 1

IS

E

O'D 122

42

STO

AMD

4fc

*L8L

Dl

tN

REGISTERS

i °9

9

nen

1 1

A

MEM

.

_J ..

00 CoWTWoL

09

9

ro

162

22

INV

TO

-^

o. •

S^

01

1 CARP

7o

+iferr

CARP

02

94

+/

81

« r

MUST

090 202

on

127 | 44

SUM

RCL

24

CF

STAgT

04

|09

9

PD/VTC/t,

43

RCL

IaIITH

D*,TA f

ko/vr

05

'08

8

f^

09

9

BLINKIAIt

R.eai

^ree

06

44

Sum

STO

08

8

PISPIA

'

Ol

07

..- 1"39

9 [pouireA

75

* 1

095

—

OB £

09

9 \

01

1

IU /?98

09 ^

58

*ds-i- ! 95

=

._

DAT/^

'

,o a

17

-B'

060 172

22

/NV

_FKDI

1/

01

1

A1flfCHF5

90

*ifzrr

m

STE/l

- 1

42

STO

STP

87

• 1'

100 212

g:

!

-3 <

025

09

9

DE\/

IB

*c

'S

M

np

8

BIM *

42

STO

IfJ

15

P6

xrsrt

065

177

09

9

RCL

16

46

ALat.

08

8

po/isrea

I

18

*C

09

9

105

Rl

J

18

r .

K, Ol

1

MutAaee

07

7

97

#Z

19

_°e

8

OF

42

STO 1*

AK)

»

FLAGS

—

42

STo

MEM

070

09

9

Sro

So <

)N

0

00

0

i?e^ isnft

•

09

9

Poiuret

'

DO

0

CenJrftoL

'7

*B'

no

222

2

035

3fe

*rtn

tftr/srei

:

TO 2

£3

3

44.

*L8i.

CAUD

Te

XAS Instrime

MTS

«

IS

E

ro mem

075 187

33

one records only 18 to match the previous program. Register 98 is used in a compatible manner with the previous program to protect against off loading the updated data in the wrong order, even if the flags have been reset. Several safety precautions are used to protect against losing a long accumulation of data. When the card is dumped into the calculator memory, the card still retains the old data in case of blunders. After the data are updated, if the registers are in their home position, register 98 will contain 1. In the memory to card program this branch condition is used. Up until this point you have lost no data that could not be restored. If you start to transfer memory to card and

find the registers are incorrect, don't panic! Simply reload the standard deviation card, press *E' which replaces the registers where they belong.

To alert you that caution should be used, a blinking error condition display must exist to start the alternate transfer of memory to card with key A. This is readily accomplished in several ways but + = is the one I use. The only keys used are

E transfer program storage registers

(magnetic card) to data memory

+ = A transfer data memory to

program storage registers for card writing."

Continued from page 9

high technology field in which we computer people are all involved, and to the subject of surprising people with new products and industries.

The history of the small computer field to date hardly fits the negative and dismal attitude towards American technological progress cited by the people participating in the session last Monday in the nation's capital. For the present, the USA is where it's all happening in this field: Here you have a large body of people with an education and interest in computers and the middle class wherewithal to exercise that interest; here you have quick reacting entrepreneurs who create a new industrial segment overnight by discovering the people who need computers; here you have a situation where a person can take risks and accept challenges where rewards, while uncertain at the start, can be achieved with diligence, hard work, persistence and a dash of luck. This whole field, created overnight as a response to the pioneering technological innovations of the semiconductor manufacturers, is practically unheard of in the rest of the world. I have personally met several individuals from abroad who are outstanding in their own countries, who have "had their minds blown" by what they've see here on recent trips.

What makes it happen? The pioneering spirit is not dead in this country. While the geographic frontiers are for the present restricted, the technological frontiers have hardly begun to run out. [Geographical frontiers are now opening up again — there's a whole set of planets, the Moon and Mars, which we now know are just waiting to be colonized by a combination of technology and pioneer risk taking.] The freedom of the

marketplace and the pioneering response of consumers and entrepreneurs are what I identify as key elements in such leadership. It is an example of diffused responsibility and decision making by individuals, people who perceive a demand and react to it by allocating their own scarce capital and efforts far in advance of the slower and more bureaucratic organizations left over from the previous waves of the same process. Whether involved in small companies or large organizations with proper incentive approaches, these individuals become the focal points of new organizations which grow and achieve a market niche.

For the people in Washington who worry about "America's position" in the world order of commerce, I have a simple conclusion to present: reproduce conditions in a more general context which are similar to those we have seen in personal computing over the last two years. In personal computing we have product definition done by entrepeneurs in response to the actual demands of people; we have a situation where the winning or successful product is measured by the votes of the people purchasing the goods; we have a situation where performance and reputation in the marketplace earn each product a unique position. Increase the competition (and therefore the insecurity) of laggard industries by removing protective regulations and paternalistic subsidies. Minimize the artificial requirements of paperwork done for government agencies and thus maximize the scarce time of the people who are hard at work actually creating a better technological state of affairs. Leave people alone to manage their own business and affairs, and the results will be quite amazing. Let's institutionalize this kind of technological surprise by creating conditions under which it occurs with regularity and civilization progresses as a result.*

34

DIGITAL DATA

RECORDERS

USING 3M DATA

CARTRIDGES

BRAND NEW DESIGN

Featuring the radically new "UNIBOARD" method of construction for data cartridge drives. The major computer manufacturers are changing from cassettes to cartridges at a rapid pace because of freedom from binding and greater data reliability. Now, these professional type units are priced within the range of all data users. Being made primarily as OEM data storage units for the world's major manufacturers, these units, together with controller board and software ROM, are being made available to the individual user as well.

* Appearance and specifications may be changed slightly following acceptance tests now being conducted by OEM users.

Model 3 MI $169.95

MODEL 3M3 - Uses the 3M Data Cartridge, model DC300. This cartridge contains 300 feet of .250 tape in a sealed container. Records and plays at 9600 baud NRZ, 4800 baud P.E. Nominal speed 8" per second. Max. recommended flux density 1200 fcpi. Using four tracks, you can store nearly 2 megabytes of data on a cartridge. Cartridge measures 4" by 6". Turns counter indicates tape position. Inter-record gap light gives more accurate position. 2SIO(R) is not required for use, but is highly recommended for 8080 and Z80 systems.

COMMON SPECIFICATIONS: FULL SOFTWARE CONTROL of record, play, fast forward and rewind. LED indicates inter-record gaps. EOT and BOT are sensed and automatically shut down recorder. Can also be manually operated using the switches on top which parallel the software control signals when not under software control. Signal feedback makes it possible to software search for inter-record gaps at high speed. 117V - 60 Hz - 5 watts.

TWO I/O PORT CONTROLLER WITH ROM - Controls your terminal and one or two cassettes or cartridge units. Onboard ROM (For 8080 and Z80) has terminal and cassette software for turn on and go operation. NO MORE BOOTSTRAPPING. Plug in compatible with Altair and IMSAI. Loads and Dumps memory in Hex from the keyboard, formats tape files, punches tape, functions as a word processor and searches for files and four letter strings within files. Keyboard controls the cartridge units above on rewind and fast forward. Special keyboard codes enable you to dump and read Phase Encoded tapes as well as NRZ tapes. (Including K.C. Std.) Call routines give access to these from your software.

MODEL 2SI0(R) - With 1 ROM for NRZ Cassettes $169.95

(Assembled & Tested) (Half of above Program)

With 2 ROM's for Data Cartridges and

P.E. cassettes. $189.95 (Full Program)

Kits available for $30 off above prices.

OVERSEAS: EXPORT VERSION - 220 V - 50 Hz. Write Factory or — Datameg, 8011 Putzbrunn, Munchen, Germany; Nippon Automation 5-16-7 Shiba, Minato-Ku, Tokyo; EBASA, Enrique Barges, 17 Barcelona, Spain; Hobby Data, SpireaVagen 5, Malmo, Sweden; G.Ashbee, 172 Ifield Road, London SW 10-9AG.

MODEL 3M1 - Uses the 3M Data Cartridge type DC100A. This cartridge contains 150 feet of .150 tape and is the same cartridge used by H.P. and others. Runs at 4800 baud NRZ, 2400 baud P.E. Tape speed adjustable, but nominally set at 5"/second. Maximum recommended flux density 1200 fcpi. Cartridge measures 2-1/8" by 3-1/4". This model is ultra compact, yet extremely capable. It is intended for word processing, mailing list use and other applications requiring the compact storage of data. Data location is by inter-record gaps and automatic file search. See Common Specs and 2SIO(R) below. 2SI0(R) is not required for use, but is highly recommended for 8080 and Z80 users.

For 8080 and Z80 users: Comes complete with software program listings for the programs on the 2SIO(R) ROM below. 6800 software is being written, but not yet completed. These programs give FULL SOFTWARE CONTROL.

CARTRIDGE AVAILABILITY: Cartridges are made by 3M, ITC, Wabash and others. They are available at all computer supply houses and most major computer service centers. We can also supply them at normal current list prices.

NEW: AUDIO CASSETTE INTERFACE* Phase Encoding interface for use with audio cassettes or NRZ recorders. Runs 2400 baud phase encoded on good quality audio cassette recorders. May also be used with 2SI0(R) above to use the 2SI0(R) cassette programs with your audio cassette player. Can also accommodate "Tarbell" tapes and K.C. Std. tapes.

$50.00, Wired 8i Tested. - $35.00, Kit Form.

*NOTE: You do not require an interface with the 3M1 and 3M3 unless you Phase Encode. But, you do need an interface to use the 2SIO(R) with your own audio cassette.

"COMPUTER AID" and "UNIBOARD" are trademarks of the NATIONAL MULTIPLEX CORPORATION. The 3M Data Cartridges are covered by 3M Patents and Marks. "UNIBOARD" Patents Pending.

For U.P.S. delivery, add $3.00 each item. Overseas and air shipments charges collect. N.J. Residents add 5% Sales Tax. WRITE or CALL for further information. Phone Orders on Master Charge and BankAmericard accepted.

NATIONAL MULTIPLEX CORPORATION

3474 Rand Avenue, South Plainfield, N.J. 07080, Box 288 Phone (201) 561-3600 TWX 710-997-9530

Product Review:

Thii m o» VMlltg ef Mint you cat

.-act .irt ttt Armor Ttctoalw Vifcg tiaalay tort. It

SSm i ft«*N cn iimi awTi m <mni| t>«vu*

mitoror nlifM TV. I? ii each art thai t llaell TV tar ,itr, ii nit It Iw leftart-ceatrejlea' mltlM ml ila*t~. fo aKitlai, m, aNltiaa lii tto 1» tot. toAtr c* to • !■■ Ml I'T'l «i *"'"« « •» I- * arar >• «lplaaBl la ! Hill "< "S <f«"<I>| 111* (if a* artora Mtc.

' jHHBWrT. Central ekrmttrt art <fi.j]ai*<< <t aveut <**• •curt, «■ thej m to llaiiaf to. at «t-toerj Midi. Tto o diricuri, carlMt retara iat vertical tab, to» atchJ atar Mae if aietter ailtrt li aa, Orruai ret<m cann a tla* t» the mi of the current Jin*; wtlce! tat eaaan a ala* ta aaj

Photo 1: An example of the display output of the Processor Technology VDM-1 driving a standard video monitor purchased locally. Upper and lower case output with optional inverse video lends flexibility to the system. In this photograph, the letters in the inverse video rectangle do not show. A timing distortion in the line with inverse video was found in the author's VDM-1, evidence of which can be seen in this photograph.

Processor Technology VDM-1

D Anderson

755 Southmore Dr W

Ottawa Ontario CANADA

Processor Technology's Video Display Module for the Altair, IMSAI, and other Altair compatible machines is of excellent quality. The board has gold plated fingers, and solder resist (green lacquer) on both sides of the board. All component designations are silkscreened and are easily readable. The board displays 16 lines of 64 characters on a standard video monitor or modified TV.

The board has 48 integrated circuits, including 8 91 L02As for 1 024 bytes of visible

memory, and a character generator ROM. A crystal oscillator generates the required frequencies for a standard video signal. Sockets are provided for all integrated circuits. A DIP switch is provided to set the board options.

The VDM-1 has a hardware cursor feature in its design, controlled by "cursor bytes" within the displayed text. A cursor byte is any byte having the high order bit on. A cursor byte may contain any character, and will be displayed in inverse video. That is, if

Photo 2: The VDM-1 shown mounted in the author's computer system. The thick coaxial cable at the top of the board runs to the monitor shown in photo 1.

36

Listing 1: A bootstrap loader, modified from Processor Technology's Teletype bootstrap loader, which allows entry of data in hexadecimal with instant display on the video output of the VDM-1. The author's ASCII keyboard is interfaced through 8080 ports 10 and II (hexadecimal). The VDM-1 control register is interfaced to port 8C. The VDM-1 memory in the author's system is located at hexadecimal addresses 8800 to 8BFE.

i

HUtSU MACRO ASSEMBLER. VFR 2.3 HOOT LOADER ERRORS = 0 PAGE

the display is normally white characters on a black background, a cursor byte will be displayed as a black character on a white background. By setting one position on the DIP options switch, all cursor bytes, if any, will blink at about a one second rate.

Other positions on the DIP options switch cause control characters, such as STX, DEL, etc, to be blanked. If not blanked, they appear as strange characters. Another switch controls the two special blanking characters: carriage return and vertical tab. If the switch is on, a carriage return character will automatically blank itself and all data following it on the line. The vertical tab character will blank itself and all data following it in the memory buffer. In both cases, only the data on the screen is blanked; the data in memory is left unaltered. If unused portions of display memory are to be used as a program segment, this prevents "garbage" from appearing on the screen.

The 1 K static programmable memory buffer is directly addressable as memory in the Altair. Displaying data on the screen involves nothing more than storing data into the VDM's memory. Sounds easy, and it is. The display is essentially instantaneous. The sample dump program shown in listing 1 is impressive in that memory is dumped instantly.

The VDM board contains two 4 bit registers which control the scrolling and window shading of the display. "What is window shading?" you ask. Window shading is the process of blanking a display from the top down to a specified line. This is performed automatically by simply loading the window shade register. Scrolling is also easy and performed the same way. Both registers are loaded simultaneously by issuing an output instruction to the board.

This all sounds pretty simple, but it turns out that a fair amount of software is required to simulate the operation of a dumb CRT. This is because a carriage return and line feed sequence requires that you set your memory pointer back to the beginning of the line, add 64 to it, and check that you

TITLE

'H001 LOADER'

0000

OHG

0

00t)p

CURSH

EOU

bFH

8800

VDM

EOU

H800H

00HC

VUMNU

EOU

BCH 1

6800H + 400H

04 00

STACK

EOU

4 00H

8SMH

VT

Enu

1 1

000D

CD

1

1

E"U ENTRY

13

HOOT.DSPLY

0000

3 1 0004

R(X)Ti

LXI

SP,STACK

0003

CD J/00

CALL

I MIT 1

INITIALIZE iCH (4 VDM

0006

110088

LXI

D.VDM 1

CLEAR SCREEN

0009

3E0R

Mv I

A . V f I

VERTICAL TAB CLSARS Trifc SCR"

:.N

000H

12

STAX

n

000C

0 1 /000

LXI

R.007*ti 1

SET LOAD ADOR

000P

2E00

ASHEXi

MV I

I..0 1

CLEAN HOUSE

001 I

CU4300

LOOPI i

CALL

INB 1

GET A BYTE

00 I 4

CD4F00

CALL

DSPLY 1

DISPLAY IT

001 i

UE30

SRI

'0' I

CONVERT 10 HCI)

001 9

FA2C00

JM

rwEnl)

00IC

PE0A

CPI

10

00 IE

UA2300

JC

doit

0021

C6F9

AIM

0F9H I

CONVERT A-F DOA.i

0023

2V

(jo i r •

DAD

H

0024

29

DAD

H

002b

29

DAD

H

0020

29

DAD

H

0027

85

ADD

L

002B

OF

MOV

L,A

002V

C31100

J MP

L00PI

002C

FEF0

onhnui

CPI

0F0H 1

IS n space;

002b

C20F00

JNZ

ASHEX

0031

7D

mov

A,L 1

GET CHR FROM L

00J2

02

STAX

R 1

srOHE RYTF-"

0033

03

I NX

H I

POINT TO NEXT RYTE

0034

CJ0P00

JMP

ASHEX

0037

AF

iNin

XRA

A t

SET CTL "ITS FOP PIO DDR

0038

1)3 10

OUT

I0H

003A

U3I 1

OUT

MH 1

INDICATE ALL LINES IwPUT

003C

DJBC

OUT

BCH 1

SET VDM CTL

003E

3E06

MVI

A.06H 1

TURN ON DATA REG.

0040

1)3 10

OUT

I0H

0042

C9

PET

0043 DBI0 INBi IN I0H ■ GFT STATUS

I B0B0 MACPO ASSEMBLER, VEP 2.3 HOOT LOADEH ERRORS = 0 PAGE 2

004b

E680

AN I

80H

1 DATAlAVAILAHLEV

004 7

CA43H0

JZ

INS

004 A

DBI 1

IN

1 IH

1 GET CHAR IN A

004C

E67E

ANI

7FH

l DROP PARITY BIT

004E

C9

PET

1

DISPLAY CHAR IN

ACCUMULATOR

004F

12 DSPLYi STAX

D

1 DISPLAY IT

00b0

13

INX

D

00b 1

EB DSCRSi XCHG

0052

365F

MVI

M.CUHSR

I SET UP CURSOR

0054

23

INX

H

005b

36WR

MVI

M,VT

l SET UP VERTICAL TAR TO i

00b 7

2B

DCX

H

00bB

ER

XCHG

00b9

F5

PUSH

PSH

1 SAVE CHAR

00bA

/A

MOV

A.D

1 CHECK FOR END OF SCREEN

005B

FEBC

CPI

VDMND

1 END OF VDM MEMORY?

00bD

C26 700

JNZ

$+10

0060

110088

LXI

D.VDM

1 RESET TO START

0063

Fl

POP

PS«

1 RESTORE CHAR

0064

C35 1 00

JMP

DSCRS

0067

Fl

POP

PSH

1 RESTORE CHAR

0068

C9

RET

HO PHIX3RAM ERROHS I 8080 MACPO ASSEMBLER. VER 2.3 ROOT LOADER ERRORS = 0 PAGE 3

S

YMROL TARLE

* 01

A

000 7

ASHEX

000F

R

0000

B(X)T

0000

C

0001

CR

000D *

CUHSR

005 F

D

0002

DOIT

0023

DSCRS

0051

DSPLY

004 F

E

0003

H

0004

IN8

0043

IN IT

0037

L

0005

LIX1PI

001 1

M

0006

ONEWD

002C

PSH

0006

SP

0006

STACK

0400

VDM

B800

VDMND

008 C

VT

000B

37

Listing 2: A hexadecimal memory dump program which displays 256 bytes of memory formatted 16 bytes per line, 16 lines in all. This program displays one page starting at the location stored in address 0074 (hexadecimal) and then waits for a keyboard input before proceeding to display the next page.

d0is0 MACRO ASSEMHLFR, *FR 2.J DUAP MEMORY On SCRFFN ERRORS

m>:

DUMP InHMDRY ON SCREEN'

THIS RHOGHAM DISPLAYS MF.MORY OH THE SCREEN, ONE PAGE

AT A TIME. 16 BYTES ARE DISPLAYED IN HEX ON EACH LINE.

16 LINES ARE DISPLAYED AT ONCE. EACH LINE BEGINS

,'<M'H 1'riE HFX ADDRESS. AFTER EACH PAGE IS DISPLAYED, THE

PROGRAM HALTS INDEFINITELY, UNTIL ANY CHARACTER

IS TYPED; THEN THE NEXT PAGE IS DISPLAYED.

V"A IV!

ORG

00 MH

bb00

VDM

FOU

S81MH

ViWM

STACK

EQU

4 00H

0V»43

IMS

EOU

0043H

0001)

CR

BflU ENTRY

1 3 DUMP.BLA

0070

J 1 0004

LXI

SP,STACK

00/3

2 1 0000

LXI

H.0

00 /6

CDCF00

DUMP:

CALL

CLFAR

00 /v

1I06H8

LXI

D.VDM+6

00/C

06 10

DMPGOl

XVI

B, 16

00 71

/C

DMLPI"

MOV

A.H

M07P

CDA400

CALL

RINH

00H2

(1)

MOV

A.L

00H3

CDA40M

CALL

R I NH

0080

CURF00

CALL

BLANK

f/0dV

dEI0

MVI

C. 16

00dR

IE

DMLP2"

MOv

A ,M

0W8C

CDA400

CALL

RINH

008P

C1JRF00

CALL

RLANK

0092

26

I NX

H

0Myj

0D

OCR

C

0094

C28H00

JNZ

DMLPJ

0097

CDC41M

CALL

CRI.F

0P9A

05

DCR

R

00VR

C2/E00

JNZ

DMLPI

00 9 h

CD4300

CALL

1MB

WAI

C3/900

JMP

diimp+3

I ADI1R OF MEMORY TO RE DISPLAYED

I CLEAR VDM MEMORY

; POINT TO VDM MEMORY + 6 OFFSET

I 16 LINES

I DISPLAY ADD")

I FOLLOWED BY A BLANK

! 16 BYTES PER LINE

I GtT BYTE TO CON/ERT TO HEX

; CONVERT TO ASCI I HFX

: DISPLAY A BLANK

! POINT TO NEXT BYTE TO BE DISPLAYED

I DO ALL 16 BYTES

: POINT TO NEXT LINE ON SCREEN

i DO ALL 16 LINES I HA IT FOR INPUT ! DO NFXT PAGE

CONVERT ACCUM TO ASCII HFX HHFRE D.E POINT

RINH: PUSH PSn

! SAVE BYTE TO BE CONVERTED ! SHIFT RIGHT 4 RITS

I CONVERT TO ASCI I I DISPLAY ASCII BYTE I d0b0 MACRO ASSEMBLER. VER 2.3 DUMP MEMORY ON SCREEN ERRORS = 0 PAGE 2

00A5

IF

RAR

00A6

IF

HAR

00A7

IF

RAR

00 A8

IF

RAR

00A9

CDB500

CALL

BINI

MAC

12

STAX

D

00AD

13

00AE

Fl

00AP

CDB500

00B2

12

00R3

13

00R4

C9

00B5

E60F

0KB 7

C630

0089

FE3A

00BH

IJH

00 RC

C60/

00 BE

C9

I NX POP CALL STAX

I NX HET

D

PSN

BINI

D

D

I POINT TO NEXT POSN ON SCRFEN

I GET OHIGINAL BYTE

I CONVERT TO ASCII

I DISPLAY IT

I POINT TO NEXT POSN ON SCREEN

CONVERT A BYTE TO ASCII HEX

0FH

48

58

ANI

AD I

CPI

RC

ADI

HET

DISPLAY A BLANK

I LOW 4 BITS

I MODIFY FOR ASCII

t DIGIT 0-9?

I MODIFY FOR A-F

00 BF

JE20

BLANK I

MVI

A,' '

1 GET A BLANK

00CI

12

STAX

D

I DISPLAY IT

00C2

1 3

INX

D

1 POINT TO NEXT POSN ON SCREEN

00C3

C9

RET

1

ISSUE

CARRIAGE RETURN LINE FEED FDR VDM

00C4

/B

CRLFi

MOV

A,E

1 POINT TO NEXT LINE ON SCREEN

00C5

E6C0

ANI

0C0H

00C7

C646

ADI

70

1 LENGTH OF LINE + 6 OFFSET

00C9

5F

MOV

E,A

00CA

3E00

MVI

A,0

00 CC

8A

ADC

D

00CD

57

MOV

D,A

00Cb

C9

; l

RET BLANK

VDM MEMORY

00CF

110088

CLEARi

LXI

D.VDM

1 POINT TO VDM BUFFER

00D2

3E20

MVI

A,' '

1 GET A BLANK

00D4

0610

MVI

R, 16

I 16 LINES

00 D6

0E40

DMLP31

MVI

C,64

1 OF 64 BYTES

00D8

12

DMLP4I

STAX

D

1 BLANK 1 RYTE

00D9

13

INX

D

1 POINT TO NEXT BYTE IN RUFFER

00DA

0D

DCR

C

00DR

C2D800

JNZ

DMLP4

1 DO ALL 64 BYTES

00DE

05

DCR

B

haven't exceeded the limit of the memory buffer. You then must store your cursor byte, and add 1 to your scrolling counter, and verify that it has not passed 16. All of this adds up in memory requirements and programming time. It might have been better to have an automatic carriage return, line feed sequence handled directly by the hardware.

Another unusual feature of the board is that it has a circuit that creates a pulse approximately four times per second. You can tie this to the interrupt line or vectored interrupt bus if you wish to try some real time programming. Or you can test this timing pulse by issuing an input command to the board: Data bit 0 will go high every

VDM-1 SUMMARY

Product: Altair-compatible video display

board.

Manufacturer: Processor Technology.

Price: $199 kit.

Power +8 V/1 A max; +16 V/50 mA

Consumption: typical; —16 V/30 mA typical.

Size: 5.3 x 10.0 inches (13.5 x 25.4

cm) (Altair/IMSAI card cage dimensions).

Display Size: 16 lines of 64 characters.

Storage Medium: 91L02A low power static RAMs.

Features: • upper and lower case dis

played, as well as many special characters.

• instant updating of display.

• lacquer protected board (both sides).

• quarter-second timer on board.

• scrolling and window-shading software controlled.

• automatic blanking with CR and VT.

• control characters may be blanked.

• multiple (optionally blinking) cursors.

Auxiliary Television Monitor.

Equipment Interconnection Cables for

Required: Monitor.

To be used with an Altair compatible mainframe.

Excellent.

Excellent.

Slow, 60 days minimum.

Board Quality: Documentation: Delivery: Comments:

1. More software required than dumb CRT or TTY.

2. Instant update of display.

3. Monitor may not be able to display very many inverse video bytes.

38

quarter second. Thus if you were scrolling through a large source program, you could use this to delay the display on each line in multiples of a quarter second, without writing any complicated timing loops.

The documentation provided with the board is excellent and includes sample photos of what should be displayed at various points in the assembly process. An oscilloscope should not be required, but will obviously be helpful if you happen to get a bad chip.

Incidentally, one of several possible character generator ROMs will be provided, depending on availability. You have no choice.

One thing that should be pointed out is that your video monitor may not be able to display very many inverse video characters, as the horizontal sync gets messed up.

Although the board contains its own on-board horizontal and vertical video controls, it may not be possible to correct the image. As an example, see photo 1. The white rectangle on the left of the screen contains the words "inverse video" (they don't show up very well in the photo). Note the resulting slant to the rest of the characters on that line and on the next. I was unable to adjust the set or the board to

Listing 2, continued:

00DE C2D60H

00E2 3E00

00E4 D3RC

00E6 C9

JNZ

MVI ■')UT RET

DMLP3 A,M 8CH

l DO ALL 16 LINES I INITIALIZE VDM

8080 MACHO ASSEMBLER, VER 2.3 DUMP MEMORY ON SCREEN ERRORS - 0 RAGE 3

NO PROGRAM ERRORS I 8080 MACRO ASSEMBLFR. VER 2.3 DUMP MEMORY ON SCREEN ERRORS ■ 0 PAGE 4

SYMBOL

TABLE

« 01

A

0007

R

0000

RINI

00B5

BINH

00A4

BLANK

B0BF

C

0001

CLEAR

00CF

CR

000D

CRLE

00C4

D

0002

DMLPI

007E

DMLP2

008 B

DMLP3

00D6

DMLP4

00D8

DMPGO

007C *

DUMP

0076

E

0003

H

0004

IN8

0043

L

0005

M

0006

P5«

0006

SP

004)6

STACK

0400

VDM

8800

eliminate the problem. In summary, the ProTech VDM board is well worth the money. Expect a minimum of 60 days' delivery, but don't hold your breath. Demand for this product is brisk. Incidentally, video monitors can be purchased from audio visual supply dealers for $150 or so. An appropriate connector from the board's cable to the set can be obtained at Radio Shack."

wire-wrapping center

1 ; [-- H '--» : . -.J

,«««<riiSCT—■■—tt:——';;■"■''"*■-'-'—-••■' ;■ ■

wire wrapping center

your one stop shopping for quality electronic parts and tools.

50ft. wire roll

Hobby-wrap tool

OK MACHINE & TOOL CORPORATION

3455 Conner St., Bronx, NY. 10475 / (212) 994-6600/ Telex 125091

39

The

POLY 88 Microcomputer

System

The POLY 88 is not for everybody; but if you are into computers, or considering getting a system, the POLY

88 is a machine to think about.

For the hardware buff:

• Popular 8080 central processor • Single-board CPU with vectored interrupt, real time clock, single step logic,

and serial I/O • Video interface card to handle

communications — generates video to TV monitor and

provides parallel keyboard input port • Serial and

cassette interfaces on small mini-cards that plug directly

into CPU board with ribbon cables • 300 baud

cassette • ROM monitor with powerful debugger,

video software, and bootstrap loader • Backplane and

power supply on one board simplifies construction

• Rugged 6 amp power supply • All circuit boards are

high quality double sided with plated through holes

• System is compatible with a wide range of Altair

peripherals on the market • Minimum point to point

wiring means that the POLY 88 kit can go together in

thr

ee evenings

POLYMOHPHIC SYSTEM!

POLY-88

Front Panel Display:

Routines in the 1024 byte

monitor display the contents

of each of the 8080 internal

registers, and the value in

memory that is addressed by

each register pair. Programs

may be executed one

instruction at a time. Data at

any location in memory can be

displayed and may be easily

altered. All front panel data is

entered in hexidecimal notation

for operator convenience.

iHK ife 4

For the software buff:

Software is what the POLY 88 was designed for. The user can go all the way from using higher level languages like BASIC to developing machine code with the aid of our assembler. Our BASIC is a full 8K BASIC with character and byte manipulation capabilities; and it is designed to run on our system. No kludging up or special fixes needed to run on multiple I/O devices. Best of all, the programmer is finally free of the teletype emulation mode so the video display can be used to full advantage. The video display provides a unique opportunity to write new types of programs and games. Characters (16 lines of 64) and graphics (48 by 128 grid) are part of the processor's memory, so the display may be altered extremely fast — less than 20 milliseconds to write the entire screen. The 1024 byte ROM monitor provides many I/O handling routines, leaving the programmer free to concentrate on his particular application. The POLY 88 hardware provides many of the additional features that programmers have come to expect from computer systems, such as vectored interrupt (which allows multiple concurrent I/O handling) and real time clock. These features are standard equipment and are included in every POLY 88. So, whether you want to develop a new computer language or fight Klingons, the POLY 88 hardware provides a firm foundation on which to realize your programming fantasies.

For the person new to computers:

For those of you who are just getting started with computers the POLY 88 is a machine that was designed to be easy to use. No complicated hardware setup and software fixes needed. No one should have to learn all the inner workings of a computer just to enjoy one at a reasonable price. With the POLY 88, you can "play"pre-developed programs and then explore writing programs in either BASIC or assembly language, as your interests expand.

*#•- mme Ik mmm Wmm mmm Wmm*,,

PC 005ft 08 0C 7E H7 C2 53 88 35 SP BFFft FT 5ft BB FT 03 4C ac sa

hl. acaa 23 00 00 ft tt 00 aa 1a

HE BC51 76 88 C9 3F ZF 2E 3F ZF HC 0000 FT FT FF 31 BB IB BB FT (V fTbb T

31 aa 1a as ft ca 3f 01

F5 C5 U5 E5 2ft 38 8C E3 F5 C5 ns E5 2ft 3ft 0C EB * F5 C5 OS ES 2ft 3C 8C E3 F5 C5 US E5 2ft 3E 8C E9 FS CS nS ES 2ft 48 8C E3

es ca 4a aa fi ei fh ca

•i 11 11 •• •• it 11 it 11 1 11 ti 11 11 11 11 11 11 1 1 1 1 i 1 1 1 1 •

t 1 it 11 1 11 ii 1

• 111

11 1 11 11 1

ti 11 11 11

1 iii

POLY 88 System Prices

System 1 kit includes 8080 vectoral interrupt processor board with real time clock, V2K of RAM, and 1K monitor on ROM; Video Terminal Interface for displaying 16 lines of 32 characters on video screen and inputing keyboard signals; cabinet, backplane, and power supply; complete assembly, theory, and operation manual. $595. System 2 kit includes all items in System 1 and a Byte/biphase cassette interface kit. $690. System 3 kit includes System 2 plus 8K of RAM with BASIC and assembler programs on cassette tape. $990. System 4 is the complete kit. It includes System 3 with TV monitor, keyboard, and cassette recorder with all necessary cables and connectors. $1350. System 7 is System 4 assembled, tested, and ready to run. $1750.

Accessories:

8KRAMkit. $300. Assembled $385. POLY I/O Ideaboard, hardware prototyping kit board. $55. Analog Interface (l channel) kit. $145.

All prices and specifications subject to change without notice. Prices are U.S.A. only. Calif, residents add 6% sales tax. Prepaid orders shipped postpaid. Bankamericard and Master Charge accepted.

If you haven't seen the POLY 88 yet, why don't you wander down to your local dealer and see what personal computing can be like.

WEST Bits N Bytes, 679D S. State College Blvd., Fullerton, CA 92631 (714) 879-8386 Byte Shop Arizona, 3237 S. Fairfield Dr., Tempe, AZ 85282 (602) 894-1129 Byte Shop Campbell, 2559 S. Bascom, Campbell, CA 95008 (408) 377-4685 Byte Shop Mountain View, 1063 W. El Camino Real, Mountain View, CA 94040 (415) 969-5464 Byte Shop Palo Alto, 2227 El Camino Real, Palo Alto, CA 94306 (415) 327-8080 Byte Shop Pasadena, 496 S. Lake Ave., Pasadena, CA 91101 (213) 684-3311 Byte Shop Portland, 2033 SW Fourth Ave., Portland, OR 97201 (503) 223-3496 Byte Shop San Fernando Valley, 18424 Ventura Blvd., Tarzana, CA 91356 (213) 343-3919 Byte Shop Walnut Creek, 2989 N. Main St., Walnut Creek, CA 94596 (415) 933-6252 Byte Shop Westminster, 14300 Beach Blvd., Westminster, CA 92683 (714) 894-9131 The Computer Center, 8205 Ronson Rd., San Diego, CA 92111 (714) 292-5302 Computer Components, Inc., 5848 Sepulveda Blvd., Van Nuys, CA 91411 (213) 786-7411 The Computer Mart, 625 W. Katella # 10, Orange, CA 92667 (714) 633-1222 Computer Systems Unlimited, 18886 Hesperian Blvd., Hayward, CA 94541, Hrs. W-F, by appt., S&S 1-7 (415) 278-2667

MIDWEST Computer Workshop of Kansas City, 6903 Blair Rd., Kansas City, MO 64152 (816) 741-5050 The Computer Room, 1455 S. 1100 East Salt Lake City, UT 84105 (801) 466-7911 The Data Domain, 111 S. College, Bloomington, IN 47401 (812) 334-3607 The Data Domain, 7027 N. Michigan Rd., Indianapolis, IN 46224 (317) 251-3139 itty bitty machine company, 1316 Chicago Ave., Evanston, IL 60201 (312) 328-6800 The Micro Store, 634 S. Central Expwy., Richardson, TX 75080 (214) 231-1096

EAST Micro Computer Systems, Inc., 144 S. Dale Mabry Hwy., Tampa, FL 33609 (813) 879-4301/4225 Elecon Corp., "The Computer Store", 4921-72 Ave. No., Pinellas Park, FL. 33565 (813) 541-3021 Computer Shop 11111111, Route 16B, Union, NH 03887 (603) 473-2323 Computer Workshop, 5709 Frederick Ave., Rockville, MD 20852 (301) 468-0455 Hoboken Computer Works, No. 20 Hudson PI., Hoboken, NJ 07030 (201) 420-1644 The Computer Mart of New Jersey, Inc.,151 Kline Blvd., Colonia, NJ 07067 (201) 574-2173

PolyMorphic Systems

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

Stretch That 6800 Clock

■ Start ot Cycle

Address 2.0 V

From MPU 0_B V

From Memory or Peripherals

Data Not Valid

Figure la: Nominal Memory or Peripheral Read Cycle for the Motorola 6800 Processor. This figure illustrates the timing relationships between the various signals of the processor. Note the requirement that data be present within TaCG which ,s -575 ns for a full speed I MHz clock, or about 650 ns in the Southwest Technical Products system with its 895 kHz clock. This diagram is reproduced courtesy of Motorola Semiconductor Products Inc, from page 4-51 of the M6800 Microprocessor Applications Manual.

j Start of C

/da

«1 0.S.V J

iL Vcc - 0.2 V

\

J

—

02 \

- 0.2 V ,

\

■* TASfl •*

— 2.0 V

0.8 V —

-^^

Addrtii 2.0 V~ From MPU 0.8 V _

^^x

"• TASC ""

VMA

_^^^

"* TASD—m

2.0 V -—^x

™—1

-^

*—Tvsc—*

■m

Data

*s.

From MPU

2.4 V j

0.8 V "'^

>>

QBE =02 \

.»—. — 1

~\

0.4 V

0.4 V 2.4 V

0.4 V 2.4 V

2.4 V 0.4 V

Data Not Valid

Figure lb: Nominal Memory or Peripheral Write Cycle of the Motorola 6800 Processor. This figure illustrates requirements for the process of writing data into a memory or peripheral location in address space. The diagram is reproduced courtesy of Motorola Semiconductor Products Inc, from page 4-51 of the M6800 Microprocessor Applications Manual.

Jerry Henshaw Aptec I nc POB 15296 Tulsa OK 74115

I recently completed construction of my Southwest Technical Products M6800 Computer System. One of my first projects was to build a slow memory interface to allow the M6800 microprocessor to communicate with memory devices that have slow access times. The SWTPC system runs at 895 kHz. This clock rate forces any memory element to have an access time of approximately 700 ns or less. The M6800 running at full speed (1 MHz) requires memory devices to have an access time of 575 ns or less. I wanted to use electrically erasable read only memories to store an audio cassette operating system. These EROMS have access times in the one microsecond range and are therefore too slow for a M6800 system running at maximum speed or at the SWTPC 6800 clock rate.

There are two approaches to the slow memory problem. One could slow the system clock down to a point where it is compatible with the slowest memory element in the system. This approach is undesirable since you force the entire system to slow down because of a few slow memory devices. I will admit that slowing down the system clock is indeed the easiest to implement. The other approach would be to slow down the clock only when the processor is communicating with a slow memory element. This scheme would allow the processor to run at full speed when not communicating with slow memory devices. Thus, the processor is slowed down only when necessary. This is the approach that l have chosen.

Before we can design a slow memory interface, it is important to understand the operation of the M6800 during a read and a write cycle to memory. The M6800 uses a two phase, non-overlapping clock for timing purposes. All data transfers are synchronized with the Phase 1 (<f>1) or Phase 2 (#2) clocks.

Figure la shows a read data from memory cycle of the M6800. The cycle starts with <t>1 going high. Approximately 300 ns

42

later the processor raises the read write line, RW, then places a memory address on the bus, and then activates the valid memory address line, VMA. All of this occurs during the 4>1 portion of the cycle. <J>1 is active for approximately 500 ns for a system running at 1 MHz. 4>2 becomes active after the fall of $1. It is during the $2 portion of the cycle that data is retrieved from memory. The data from the memory device must be stable at least 100 ns before the fall of #2. The access time of the M6800 is measured from the rise of VMA line to the presentation of data from the memory element. If the

Photo I: This is an oscilloscope camera tracing of the slow memory interface timing resulting from the author's circuit. The upper traces are <t>; and ^2 (see markings). The lower trace shows the slow memory line, which stretches the $2 out for one full clock cycle of extra time.

SLOW MEMORY LINE

A

Address 2 0 V~ From MPU 0.8 V

Datfl

From Memory > or Peripherals

VCC -0.3 V 0.3 V

-~^^

LZX

-TASC

-r*<g3^

\

f

\

TACC

"i*^

-t; 2.4 V

-2.4 V -0.4 V

^^\\^>^ Data Not Valid

Figure 2a: Nominal Memory or Peripheral Read Cycle, stretched by holding the <£>2 state to accommodate slow memory circuits. This diagram is reproduced courtesy of Motorola Semiconductor Products Inc, from page 4-52 of the M6800 Microprocessor Applications Manual. In the SWTPC system modification described, the actual timing values are scaled to its clock speed, but the idea is the same.

'eye ' 1-425(11 TASA = TASC ' TVSC = 30° ns Min TACC " 1-0 (is Max Tqsu = 100 ns Min

01 PWOH = 430 ns Min <I>1 PWOH ^ 895 ns Min

- Start of Cycle

*1 0.3

Addrats 2.0 V

From MPU 0.8 V

Data

From MPU

Figure 2b: Nominal Memory or Peripheral Write Cycle, stretched by holding the <J>2 state to accommodate a slow memory circuit. This diagram is reproduced courtesy of Motorola Semiconductor Products Inc, from page 4-53 of the M6800 Microprocessor Applications Manual.

Data Not Valid

icvc 1.425^5 TASR - TASC - Tvsc 300 ns Max

01 PWOH 430 ns Min

02 PWqh tEH 895 ns M,n

43

system is running at full speed, this access time is 575 ns.

Figure lb shows a write data to memory cycle of the processor. The cycle starts with <f>1 going high. Approximately 300 ns later the processor drops the read write line, puts a memory address on the bus, and raises the valid memory address line. This is the same as in the read data sequence except that the read write signal is inverted. As soon as <£1 drops, <t>2 goes high. It is during the $2 portion of the cycle that data is written into the memory element. On the rising edge of <I>2, the processor activates the data bus enable line, DBE. Approximately 200 ns later, the processor places the data it wants to enter on the bus. The cycle is completed before the fall of $2.

It is easy to see from the timing diagrams that stretching the $2 portion of the read or write cycle would have the effect of increasing the allowable access time of the processor. The circuit I have designed stretches the $2 portion of the cycle for one additional half cycle. This has the effect of adding an additional 500 ns (for a 1 MHz clock) or 560 ns (for the SWTPC 6800 system), thus increasing the allowable access time into the microsecond range. This is sufficient for most of the UV erasable EROMS available on the surplus market.

Figure 2a is a timing diagram for a read cycle with a 1.0 us memory. The $2 portion of this cycle is increased by a factor of two. This is ample time for a 1.0 us memory to

place its data on the bus before the fall of 4>2. Figure 2b is a timing diagram for a write cycle with a 1.0 us memory. Again, <t>2 is stretched by a factor of two thus giving sufficient time for the write cycle to complete before the fall of $2.

Photo 1 shows the effect of the slow memory line on the M6800 clock signals, shown as oscilloscope traces. Notice that the processor clocks run at full speed when the slow memory line is low. When the slow memory line is high, the <I>2 portion of the clock is stretched an additional one half cycle and 4>1 is held low during that time.

About the Circuit

This interface was designed to mount on the SWTPC MPU board. The remainder of this article deals with the specifics of the SWTPC M6800 MPU board and the modifications required to implement the slow memory interface on this system. The design philosophy presented here is certainly not limited to the SWTPC system alone. Any M68O0 user can take advantage of this approach to the slow memory problem. Owners of a SWTPC M6800 Computer System should find the slow memory interface a very simple and clean modification to their system.

A schematic of the slow memory interface is shown in figure 3. The circuit consists of three integrated circuits, two resistors, one capacitor, and a component carrier

[jo>

TO

IC20

OF SWTPC

6800

H>

rx>

no

p

D O

ICIb

CLK 5

B

POWER PINOUTS

+5V

GND

1C1

7474

14

7

1C2

7474

14

7

1C3

7408

14

7

MASTER CLOCK

G>

POWER +5

CONDITIONING A

n>

'T\o

0=SLOW CYCLE I "FAST CYCLE

TO "UDI" lc2°

SLOW MEMORY LINE \~!T>

(OPEN COLLECTOR OR ■

THREE STATE)

Figure 3: Schematic of the slow memory interface as designed for the author's SWTPC 6800 system.

<C~i"l iczo

44

(a)

cc

IC2 .1

ICI

IC3

(b)

Figure 4: This is the one to one artwork of the slow memory interface printed circuit board. The components are mounted on the reverse side of this pattern (as if they were on the other side of this magazine page). Locations of the integrated circuits are marked ICI, IC2 and IC3 with pin I indicated in each case. The component carrier position is marked CC. The resistors and capacitor locations are indicated in the etch pattern. The overlay at right shows locations of the three jumpers and discretes required to complete the circuit. This board is available from Aptec Inc, FOB 15296, Tulsa OK 74115, at a price of $2 postpaid, completely etched and drilled. A complete kit of parts is also available for $6.25 from the same source.

mounted on a printed circuit board. Figure 4a shows the artwork for the slow memory interface printed circuit board and figure 4b shows the parts placement on this printed circuit board. The component carrier provides the interconnect to the SWTPC MPU board. The interface board is plugged into IC slot 20 on the SWTPC MPU board via the component carrier. IC1 of the slow memory interface is equivalent to IC20 on the SWTPC MPU board. It is a 7474 dual D flip flop used to count down a crystal oscillator to generate the $1 and <t>2 clocks. This flip flop is wired as a toggle to divide the master oscillator by two. This is the beginning of the clock generating logic on the original SWTPC system.

The slow memory interface is inserted at the beginning of the $1 and $>2 timing logic. At the heart of the circuit is IC2, a 7474 dual D flip flop synchronizer and IC3, a 7408 AND gate. The slow memory interface is inactive as long as there are no clock

pulses on IC2a, pin 11. In this state, pin 1 of IC3 is always high, thus allowing the system clock to propagate directly through the $1 and <1>2 logic.

The stretching of $2 is accomplished by the rising edge of the slow memory line on pin 11 of IC2a. The slow memory line is derived on the memory card that contains the slow memory device, and should be a "wired OR" sum of all slow memories in your system. The only time you want to generate the slow memory signal is when you address such a slow memory element. Therefore, you must AND <E>2 with the address decode for that memory along with VMA. I suggest you use a three state or open collector AND gate to drive slow memory so you can bus several memories together and share the same slow memory line. Use the address decode for these memories to enable the signal.

The rising edge of slow memory clocks IC2a and places a logic 0 on Of, pin 8. This

45

Photo 2a: Location of the IC20 socket on the Southwest Technical Products 6800 MPU board. The arrow shows the position where IC20 has been replaced by a dual in line socket with 14 pins.

forces the output of IC3 pin 3 to go low and holds the processor in the <I>2 state. Note: A logic 0 on pin 3 of IC3 is equivalent to a 4>2 cycle and conversely a logic \ on pin 3 is equivalent to a $1 cycle. On the next clock cycle, IC1 pin 6 goes low and does not clock IC2b. The following clock causes IC1 pin 6 to go high and clocks IC2b; this in turn resets IC2a by placing a logic 0 on the reset line pin 13. Since IC2a is reset, the Q output of IC2a pin 8 is high and thus enables IC3 by placing a logic 1 on pin 1. At this point the clocks are back to normal operation and will remain at full speed until another access is made to a slow memory element. Refer to photo 1 for a timing diagram of this operation.

Photo 2b: A view of the slow memory interface board installed in position on the Southwest Technical Products 6800 MPU board.

Modifications to the SWTPC 6800 MPU Board

You must remove IC20 from the SWTPC MPU board. Refer to photo 2a for the location of this integrated circuit. I suggest that you replace IC20 with a 14 pin DIP socket to aid in parts replacement should a component failure occur. You might solder the slow memory interface directly into the IC20 position if you wish to live dangerously. Notice there is no connection to pin 8 of IC20. You must add a wire from IC20 pin 8 to one of the user designated pins on the SWTPC 6800 MPU board. I used UD1 for my system. This user designated line now becomes my slow memory line.

If you replaced IC20 with an integrated circuit socket, simply plug the slow memory interface printed circuit board into the socket via the component carrier. Position the printed circuit board as shown in photo 2b with the foil side up. If you didn't use a socket, you must solder the interface into place. This completes the modifications to the SWTPC 6800 MPU board. Photo 2b shows the installed slow memory interface.

Acknowledgment

The author wishes to

express his gratitude to Ned

Mayrath of Mayrath and

Associates for his inputs and

editorial assistance in the preparation of this article.

Conclusion

This slow memory scheme should provide the M6800 user a much needed addition to make his system as flexible as possible. This technique can be used to interface slow peripheral devices to your system. The modification to the SWTPC MPU module is very simple and clean. You don't have to cut and hack the printed circuit board. The only modification is the addition of one wire and the replacing of one integrated circuit with the printed circuit board described. ■

46

SYNCHRO-SOUND ENTERPRISES

PRESENTS

ADM-3 KIT LSI-11

24 line X 80 column VIDEO TERMINAL KIT

16 BIT MICROPROCESSOR

400 MACHINE INSTRUCTIONS

with 4K X 16 RAM

WINTER SPECIALS

ADM-3K $849.95

LSI-11 $840.00

IMSAI 8080 $559.95

^MMMMM*#M%#**%MM0*MMMAMMMMMMMM

FEATURING THE FOLLOWING PRODUCTS LEAR SIEGLER DIGITAL EQUIPMENT CORPORATION

IMS ASSOCIATES, INC. DEC WRITERS

CROMEMCO PROCESSOR TECHNOLOGY

SOUTHWEST TECHNICAL PRODUCTS "SEALS" RAM BOARDS

TECHNICAL DESIGN LABS (Z-80) OLIVER AUDIO ENGINEERING

WORKING MODELS ON DISPLAY AT OUR NEW SHOWROOM CALL OR WRITE FOR STORE HOURS SAT (9AM-4PM)

DISCOUNT PRICE LIST WEEKDAYS CALL

PHONE ORDERS SYNCHRO-SOUND ENTERPRISES

(212)468-7067 193-25 JAMAICA AV

HOLLIS NY 11423

HANftS *M!

ilAmiNC iMAll WITH MI«OS

WW? WKl©?

^ggtsjyisxggg

Clubs and Newsletters

Fayetteville-Fort Bragg NC

Robert G Lloyd and some friends have formed the Fayetteville-Fort Bragg Computer Club. Robert has a KIM-! and another member is trying to get started on an 8080. Anyone who would like more information should write the club c/o Robert G Lloyd, 7554 Southgate Rd, Fayetteville NC 28304, or phone (919) 867-5822.

Journal of the Central Iexas Computer Association Volume 1, Number 1 August 1976

pwnnr-DUT

WAIT H># %' BW 1 Jj

l-#im

V ^ S.STEP tXAMM k^ V * 'is.

^Kj

f 1 \

^KJrl

Ml CUT HITA STA3K V

HANDS ON!

HANDS ON! is a new newsletter emanating from the Technical Education Research Centers (TERC), a nonprofit, public service corporation, a major curriculum developer for technical education.

HANDS ON! is a project of the TERC's Northeast Curriculum Development Laboratory located at 575 Technology Sq, Cambridge MA 02139. An editorial by Robert F Tinker says: "With this publication we launch an experiment in the improvement of science education. We hope that this newsletter will grow into a grass roots cooperative venture among educators who have ideas to share on ways to bring reality and practicality into teaching." Some of the articles included in the first issue are "ICs Workshop for Junior High," "Laser/Electro-Optics Technology," "Starting Small with Micros," and more. For more information write to Robert F Tinker at the above address.

ON-LINE

ON-LINE is a buy and sell forum for the computer hobbyist. Published by D H Beetle, it lists commercial and noncommercial classified advertisements, and is mailed every three weeks or 18 times a year. Subscriptions are $1 for four issues, $3.75 for one year, and $7 for 36 issues. Write ON-LINE, 24695 Santa Cruz Hwy, Los Gatos CA 95030.

Davenport lA-Rock Island IL Area

Bill Bangasser, (319) 326-2147, is interested in contacting computer hobbyists in the Quad Cities area. Write: POB 4133, Davenport IA 52808.

Central Texas Computer Association

Jay Bell, editor, and Ray McCoy, president of the Central Texas Computer Association, has sent us PR/NT-OUT, volume 1, number 1, August. This well printed newsletter of 16 pages included several articles, "How to Stop a Micro-computer," by George Morrow; "The Intecolor 8001," by David M Philips; and "Up Your VDM," by Jay Bell, along with reviews of six computer hobbyist magazines and journals, and much more.

The club would like to extend an open invitation to anyone in the area to communicate with them, join the organization, or just come and visit. Its primary purpose is educating any interested persons in the computer arts and sciences, making group purchases, and helping the community in whatever way it can.

All interested parties should address R D McCoy, 508 Blueberry Hill, Austin TX 78745, or phone (512) 443-0971.

48

Phoenix AZ Getting Under Way

Scott Jarol writes that he and his friend Mark Kailor have been exchanging ideas about computing for some time now, and have decided to establish a computer club in the Phoenix area. Anyone interested in helping them get this club under way should write or call Scott at 3701 E Shaw Butte Dr, Phoenix AZ 85028, (312) 996-1695.

Birmingham AL

Jim Anderson, 3905 Shannon Ln, Birmingham AL 35213, writes that he is interested in contacting other computer enthusiasts in the area, particularly those with 6800 based systems, to share fun and frustrations getting one up and running. This is one way area clubs get started, so write Jim, and let's see what develops.

National Semiconductor Newsletter

The National Semiconductor Corp publishes a newsletter called COMPUTE; the editors are Georgia Marszalek and Dale Graves. This publication is open to all users of microprocessors for a one time fee of $15. For more information write or phone COMPUTE, National Semiconductor/470, 2900 Semiconductor Dr, Santa Clara CA 95051, (408) 737-5000. ■

INTERESTED IN

FLOPPY DISKS?

CP/M is a low-cost control program for microcomputers which brings together recent advances in computer and peripheral technology. CP/M is an advanced disk operating system designed for use with IBM-compatible diskette-based computer systems which employ the Intel 8080 microcomputer. Previously available only to OEM's, CP/M has been in existence for over two years in various manufacturers products, and has undergone extensive field testing. The functions of this software package include named dynamic files, program editing, assembly, debugging, batch processing, and instantaneous program loading, resulting in facilities similar to popular timesharing services. CP/M is adaptable to any 8080-based computer system with a minimum of 16K of main memory and one or two IBM-compatible disk drives. Find out about CP/M:

□ Send me the price list and free brochure describing CP/M facilities.

□ I have enclosed $5.00 for the "CP/M Features and Facilities" manual (California residents, please add 6% Sales Tax).

Name

Street

City State

Zip

Ql DJGITflJ. RESEARCH

Box 579 Pacific Grove, California

New and Used Electronic Surplus

CRT Terminals Peripherals Electronic Assemblies Components

Tape Drives — None Higher than $1195

r

93950

Keyboards — None Higher than $40

Components — Power Transistors, Diodes, Integrated Circuits — from 10 Cents

Send for a free catalog or Call toll free 800 258-1036

in NH 603 885-3705

Come to our Showroom

VOLUME AND INSTITUTIONAL DISCOUNTS AVAILABLE

'WORLDWIDE ELECTRONICS INC.

10 Flagstone Drive, Hudson, New Hampshire 03051 Send my free catalog to

NAME:

ADDRESS:

I'm especially interested in:

DNEW OTERMINALS

DUSED D PERIPHERALS

DAS IS D COMPONENTS

□ ASSEMBLIES

49

if

r (.11 1

i if1!

1

7777

PoJ^"

v^JSf 1 ,

^^^XT ^

r^:'.'.'-.

Letters

ACE IN THE HOLE (OR ELECTRON)?

Bryan Patterson in the October BYTE notes that amateur radio operators are known as "hams." He suggests that a similar name be designated for the amateur computer enthusiast. May we suggest ACE?

James E Hubbell

4719 Squire Dr

Indianapolis IN 46241

Yes.

COMMENTS ON DESIGN EVOLUTION

I fully concur with Webb Simmons (October 1976 BYTE) that the PDP-8 is an obsolete design. This opens up the question of design obsolescence. There are still some Intel 4004s around (working in simple control systems), but no one is going to pul anything less than an 8080 into new systems because the price to performance ratio is so much better. Performance includes things like speed, reliability, size and power of the instruction set, and number of bits per byte. As Simmons says, 12 bits are either 4 too many or 4 too few, and nobody designs 12 bit machines nowadays. Few present day hackers will need more than 8 bit bytes and 16 bit addresses. The important difference between chips is in the instruction set, or rather in part of it since all have a large core of similar instructions. A good set is one that experts enjoy using; it is also likely to allow

amateurs to write fast, efficient, bug-free programs with relative ease. The DEC vs Data General case cited by Simmons is only one of many instances of designers leaving one company and going off elsewhere to create what they believe will be a belter machine. Other examples are the Motorola (6800) to MOS Technology (6502) and the Intel (8080) to Zilog (Z-80) moves.

All microprocessors (except the IM6100) have quite good instruction sets. Some sets allow one kind of operation to be done faster than others, while another kind may be done slower. Ideally, important operalions should be the fastest, and the problem is in deciding (at the design stage) what operations are important. The 6800 allows one to clear any memory location with 2 or 3 program bytes, while the 6502 (whose designers thought this operation less important) needs 4 or 5 bytes. On the other hand, the 6502 has one byte instructions to transfer the content of its accumulator to or from either of its two index registers, while the 6800 needs 4 bytes to do such transfers indirectly, from one register to memory and from memory to another register. Differences of this kind exist in all microprocessor designs. The larger set of the Z-80 allows it to do more things with fewer bytes, but competitors will surely add some of the more valuable Z-80 elements to their own chips if they have room for expansion.

Any of the modern designs will code and run most algorithms on the average about equally well. Benchmark problems can be devised that will make any one chip look better than any other, by playing on its strengths, but this only proves that for some kinds of problems one design will be somewhat better. The furor about instruction sets involves the harder question, whether one design will average out better for more of the complex problems microprocessors are going to be asked to solve. No one can answer that without knowing what these problems will be and also being able to estimate performance by looking at the design. Like it or not, the software priesthood (disparaged unfairly in your article by Wilber and Fylstra) will be needed and called on by business executives to guide their decisions. The real trial of all these chips will be in commercial uses, where the best price to performance ratio will be decisive.

HT Gordon

641 Paloma Av

Oakland CA 94610

BYTE. The Small Systems JournalZ^ZuLi^

SUBSCRIPTION RENEWAL INVOICE YOUR SUBSCRIPTION IS EXPIRING!

"Dfeh kL,M

For your convenience in renewing your BYTE subscription, this Memo Invoice is furnished. Simply return it with your payment to insure uninterrupted delivery. Please indicate the term desired.

PRICE SCHEDULE

005118 7609P1Z RICHARD R KENY0N 18609 r, DEL RIC PL CERRlTns CA

□ 1 Year

□ /! Years ST 3 Years

$12 $22 $30

IMPORTANT: PLEASE RETURN THIS NOTICE WITH YOUR REMITTANCE.

BYTE Publications, Inc. 70 main street,Peterborough, n.h. qmm

IF YOU'VE GOT A PDP-8, USE IT!

I am fifteen, and I have been programming since I was eleven. All of il was on a DEC PDP-8/1. The machine is located at Ripon College, and our high school buys us time and a terminal. Since I do not have to pay for any of this, I have access to a very good system that doesn't cost me a dime. Since last year, I have been spending up to four hours daily running the machine.

I read Mr Simmons' letter on the PDP-8 in your October issue. Certainly I feel that he is much more experienced than I am. However, I love that PDP-8, and I want to stand up and defend it from people who say that I should get rid of it and get. something better.

True, the PDP-8 is old (as computers go), and the memory is a mess as far as addressing. The PDP-8/1 can address up to 32 K; however, the TSS timesharing monitor limits each user to 4 K so that there will be enough memory to go around. For those users who want a personal computer, not a timesharing machine, you can do with 32 K, and write your own monitor, too. Besides, how many of you who have a capacity for 64 K really have all 64 K?

As Mr Simmons said, the PDP-8 and ROM do not get along together at all if you have to use subroutines. Which means that you use programmable memory. Which means that you lose all your data in a power failure. Which brings us to mass storage.

Our system is very fortunate. We have a disk and three Dectape drives. I would like to emphasize one important fact about Dectape compared to conventional magnetic tape and the cassette systems. Dectupe is addressable. Conventional magnetic tape and cassette are not. That means that you can use the Dectape for your system device and put all the programs, like BASIC, and FOCAL, on it, and then buy a limited amount of programmable memory to use as the working memory. With conventional tape or cassette, you would have to have one program per tape, and do the sorting of tapes yourself. That is time consuming at best and intolerable at worst. So you want the computer to do it. You will be required to buy enough memory to hold the entire contents of the tape, plus a tape directory, indicating where on the tape each program may be found. You will have to copy each program on the tape, and then select the one you want from your programmable memory. Most microprocessors don't have enough addressing capability to do that, and you certainly would not want to buy enough memory if your microprocessors could handle it. So all this must be made up for by software. Any way you look at it, it's a lot of work and money.

Concerning the wealth of data available from DECUS, there Mr Simmons is right. An enormous amount of programs have been written for the PDP-8, and they range from small Space War games to complex monitors. I do not yet have my own personal computer, but when I get one I plan to obtain software from DECUS. Even though their software will not run in a Z-80, I will buy BASIC from them and then rewrite it for my device. I would suggest that other users with access to DECUS look into a similar approach. Even if you are not able to read

50

PDP-8 assembly language, I would urge you to learn, because of the vast amount of savings possible using this approach. A good 12 K BASIC costs about $150, if you buy all your hardware from the same manufacturer that sold you your software. On the other hand, to buy 12 K BASIC from DECUS will not cost you nearly that, even if you have to buy a DEC manual to understand it.

I would like to remind Mr. Simmons that there are those of us who have become attached to our machines, and are not going to part with them just because someone says that they aren't the best on the market.

David Hayes

537 Hall St

Ripon Wl 54971

With the prices of PDP-Ss tumbling on the surplus and used computer markets, there is a point at which the use of such a machine (or other used traditional minicomputers) becomes quite attractive to small systems hackers.

STATIC

Til

IS IS

PUM.I

HrtC'lO AMATEUR

I THI1JK

REEVALUATE YOUR i

ECENT SJ

TO SIlnLL COMPUTE!

5 TO QUE

HIS SWITCH IS A t

ISTAKt.

I CAN SE£ WttESE 1 IW£j»KEUt!S3. THERE 15 OF COURSE YOUR CLOSE. T l^S 1'ITIi "73" MiU ALSO C> COURSE I1AHY Of YOUK STAFF 1 AH 5JI-E ARE BOTH HAMS Altb COMPOTES ENTHUSIASTS. ALSO. 3Y EI1LAKJM., Hlb POTENTIAL

AUDIENCE, one ca:i sell KOBE HASAEIHES* PERHAPS lately rHEnE KAVe

TOT DEfcii ENOUGH ARTICLES CONCERNING COHPJTEJIS TO HLL THE PAtiES FOR ALL THE AOVEftXISINU O.vt HAS. OH NAVEE YOKfl DECISION IMS BASEU Oi A GOcWJrlATIU. CiF ALL OF THESE. tU Ait* CASE. I T.ll'ttt THE

decision to '";o amateur" vas a Pact one akg wuvll lihl the dppbktun

ITY TO PLEAD MY CASE.

TO DE'JIH WITH, LET r.i. SAY A LOMO TIME. 1;. ALL OF T

WMED TO BE. I JUST 00 INDULGE 1(1- HUT EVEIiYUIJc

1A1 TIKt JOT CARE ro HIS 0

UE BLEU INTO ELECTHOfJlGS i OH

HAVt ,-OT dlE.j ,.;. i.MATLUh r.'OiOh THE OPth-.TlOIJS •KICK H...-.S

JJUT IP

E B0WE8BE

it is i;oi

OUMD FOR

j computer ca::e al up,-51 jed system. a TO an TAKEN out

OKETHIflj ELSE.

NU. I

AND I OY II

SUCCUrtUED

HAVE EIJJOMS, THEll

TJilHK

LUPTA

UILL

1 AM U IIJ DHJ OF THE SPACE i)7 TKL

T DEKYIH3 TAL TECltli NABAEINES EVQTEti TO

computer

THAT HANS JHO ARE OUES. BUT III THAI ALREADY 111 THEIf. THE HAMS COULD BE UYS AHD EDUCATING

INTEJieSTtU Mlultt CASE. BIIY [JOT t lELfl TO EDUCATE INSTEAD USED TO

SE THE THEN? OOOO AD

AflES

I DC [JOT 20UL7 TiiAT HAODLIIJO HORSE IS MOW-TBIVIAL.

IIWV pnoHLEMS .-HIGH ri:iE ilOti-THIVIAL ','HICJI LEAVE f.Z (

nrAT the CRITERIA Fori including an ahticle ih lyte :

OH THE OASIS 01- '.'HETHEM IT IS (JON-TRIVIAL. i> you , USC THAT AS A BASIS. HOW ABOUT Ml ARTICLE DI SCJSSIIJi Of HEALTH CAIit IN THt UNITED STATES? Illli I;, i, IJUNiilT ONE WHICH YOM PHUHABLY 'WOULD UOT CONSIDER.

1 MADE f

ANALYSIS OF Till SIS IS AS FOLLC-J;;

. ecu

IS

THE

TOTALS

SINCE THIS HAS HY FIRST I HAVE NO STnlJUAKDi OF RATIOS rfHICH ARE CUSTOM THE 27* AMATEUH T0 SiX

m. YOti:t new POLICY, tkl

DC. or.

ANALYSIS ili THE CONTENTS of ft HAOAE lOMPARtSON AS TO M0UEKT1SMS TO TEXT iRY. HOWEVER. 1 DO FEEL STRONGLY Afil ION-AMATEUR RATIO. If THIS IS DD1M6 I I THINK YOU STAND TO LOSt HOKE THAf

I DO WOT K:lVJ HOW M.HJY COHPUTER E GENERAL 0USERVAT1QN, I 'WOULD 5AY JJE5TI0I1 AT THE NEXT MEET IMC OF T GET AN INDICATION. If YOU ARE IN RESULTS OF HY SURVEY.

„,-.;. also

ERESTLD, I ■

ENCLOSED IS i

I BREAKDOWN (

SINCERELY iOunS,- ^~?

rjrJWAtt. CALK

Come on now, Robert. One sample hardly a trend makes. Have you ever thought that maybe there might be a little art and craft in making an issue have a theme which changes with each coming month and keeps readers wondering what they'll see next? You'll probably complain about November also, with its excessive concentration on graphics topics.

HIGH LEVEL LANGUAGE COMMENTS

The first two letters in the August issue struck my interest. To Peter Skye go my best wishes for such an ambitious undertaking (apparently by himself, too). One nifty feature he could include in his compiler would be to allow inline assembly code within the PL/1 (or other) program. Such a

ALTAIR & IMSAI MOTHERS

DESERVE BEAUTIFUL 8K BABIES

ECCCtt G3APHC

ALTAIR & IMSAI COMPATIBLE 8K RAM SPECIFICATIONS:

Access Time: 450 ns max. current required < 200 mA/1024

words max. Memory Chip: low power static RAM

Voltage supply: +5Vto+10V Address Select: Dip switch accessable from top of board—no

need to remove board to relocate Power Regulators: 4 ea. 7805

Wait States: NONE! CPU runs at maximum speed

Buffered address and data out lines Buffer disable line for transparent loader Memory protect

CLIPS ORDER TODAY

Order your 8K RAM kit for only $265.00 +6% Calif, sales tax .03% handling. $350.00 assembled, includes sockets.

VECTOR GRAPHIC

P.O. BOX 4784

THOUSAND OAKS, CA 91359

TEL: (213)889-9809

SEND_

_8K RAM BOARDS TODAY

! CHARGE TO MY CREDIT CARD.

B of A No.

: M.C. No.

Signature

Name

_exp.dt. -exp.dt.

Address .

City

_State_

_Zip

THECOMPUTER CO. OF THE FUTURE

P.O. BOX 4784

THOUSAND OAKS, CA 91359

TEL:(213) 889-9809

U03 G3APHC inc.

51

feature could be implemented "lebentyleben" ways and would be very useful at times.

And in reference to Don B Keek's letter on an interpretive translator/emulator, what he describes is indeed an interpreter. A software interpreter (there are hardware interpreters) is a computer program which accepts, as input, a program (source code) in another language and for each statement input to the interpreter, it translates that statement into a set of machine instructions and then executes those instructions. Usually the use of interpreters is regarded as inefficient because (1) the source code must be stored (which usually takes more space than the equivalent machine instructions), and (2) each statement must be translated each time it is encountered. It must be noted, however, that there are advantages to using interpreters, but I'll not discuss thai here.

Instead, let me suggest that compilers would be more useful. A compiler translates a problem-oriented language (say PDP-8 PAL) into a set of machine instructions (say 8080 machine instructions) for execution at some later time. Although one usually associates compilers with high level languages such as FORTRAN, there is no restriction, really, as to their use. An assembler can be considered a compiler, but by convention an assembler is defined to be a program which translates only a symbolic representation of machine language into actual machine instructions. Finally, the PDP-8's 12 bit word should not infer inefficiency with respect to 8 bit microcomputers. It would depend upon the actual application of the original PAL program, of course, but in general I would suspect that allocating only one 8 bil word for each 12 bit PDP-8 word for data storage would be sufficient. And for those cases where just an 8 bit word would raise problems, go ahead and splurge with two bytes!

Earl P Weaver

Computer Consulting

PACE Associates

2302 Titan Ter

Havre de Grace MD 21078

SECOND LAW OF THERMODYNAMICS APPLIED TO MAILING LISTS

(Paraphrased: TANSTAAFL)

The following good humored note was sent back to us on a BYTE subscription promotion letter.

How come the "sales pitch." I'm a Charter Subscriber to BYTE from issue 1 and I've renewed for two additional years. So what gives? Maybe computers aren't so "hot" after all.

PS: This is the third promotional letter I've received so far from you.

JohnHittKOKFV

Well, John, it's a matter of economics. It costs X amount of dollars to send a redundant letter to you, and several others, versus Y amount of dollars to coordinate and run what is called a "merge/purge"operation on lists obtained from various sources. If Y is greater than X by a significant amount, as is the case, then it «■ obvious which course of

action will prove most cost effective. Actually, we've heard more complaints about the lack of promotion for BYTE (that we have to be found out about on the "grapevine, " as it were) than about too much direct mail marketing of subscriptions.

BACK ISSUES?

May I compliment you for your superb publication. I am a recent subscriber, and having received thus far only three issues, I am very impressed with your publication's consistent quality. Your articles are informative, practical and especially crystal clear in their presentation.

I would very much like to complete my library of BYTE, and would appreciate being advised on the availability of the following back issues: September through December — 1975. January through June 1976.

Peter Raiti

40-16 Ithaca St

Elmhurst NY 11373

Sorry, Peter, we're all sold out of back issues through September at this time. We expect eventually to see the editorial content in print in the form of books, and arrangements will be made for microfilm versions of all the hack issues.

AN INFORMAL NEW PRODUCT RELEASE

As a matter of news, let us take this opportunity to inform you of the beginning of a new company devoted entirely to microprocessor software. We hope to make available a variety of software products in the near future at reasonable prices. Source code versions will be available to commercial interests (nondisclosure agreements will be mandatory, however) and special binary versions will be available to hobbyists on both cassette and paper tapes, thus making quality software available to the hobbyist for the first time.

We mention this in lieu of sending you a formal news release in the hopes that as a service to your readers you might mention our name. Our initial offering will include a powerful and sophisticated macro assembler (yet still one pass!) that generates relocatable binary code and features global and local symbol capability, unlimited macro nesting, and much more. A complimentary linking loader is also included with the package.

Also available now is a fast and accurate (uses BCD arithmetic for accuracy) floating point processor. Twelve digit mantissas, exponents from -127 to +127, and the capability to implement imaginary numbers also, are all included in the system. Also included at no extra charge are all library functions! Sine, cosine, tangent and their hyperbolic counterparts, logeX,ex,ax, and all logical operators. Also included are formating routines and a reverse Polish stack operating system, plus conversion routines (ASCII to FPP and vice versa) and much more!!

A very powerful debugging program has just been completed that can significantly reduce the time and effort spent in this tedious procedure. It is easily comparable to systems available only on much larger machines and features tracing, symbolic addressing, location monitoring, logical opera

tions, multiple break points, etc. We think your readers would like to know. Thanks.

Stephen M Freeman

Managing Partner

Freeman Associates

POB 859

Hopkinsville, KY 42240

HEXABUS?

In the July 1976 issue of BYTE on page 102 is mentioned a hexadecimal calculator called "Hexadat." I want to inform you that an equivalent calculator has been on the market for approximately 3000 years. My abacus has 13 rows of 2 and 5 beads. The combination is sufficient to represent any digit in any base up to 16, including bases 2,4,8 and 10. By assigning appropriate weights to the upper 2 beads, they form subdigits.

In base 10, the two beads arc weighted 5 each, which allows a carry of 5 out of any position before having to carry things in your head. By using the same weighting, one can work in hexadecimal but you have to carry some things in your head. Base eight uses a weighting of one for each bead. Bases 1, 2 and 3 can be done on the top row, and 4 and 5 on the lower row. That really isn't bad for a calculator that cost me $4.95 plus tax.

Robert Dalgleish

Box 281 Sub 6

Saskatoon Saskatchewan

CANADA S7N 0W0

Bui you missed the point: You have to do a lot of mental manipulation to run your abacus in hexadecimal mode.

VOCAL COMMENTS

Your August issue was, as usual, filled to overwhelming with good ideas and products. The two articles devoted to speech synthesis were particularly well written. Looks like talking microprocessors are on the way. Asa programmer who has worked with a VOTRAX, I would like to add some comments on using a synthesizer.

The translation of English to phonemes presents an interesting challenge. There are many ways to tell your computer how to pronounce words. This includes creating pronunciation dictionaries and programming sounding-out rules from old high school English textbooks.

Many approaches have been published, notably the Bell Lab implementation on a PDP-11/45 (mentioned in the Atmar article) and at the Naval Research Lab (NRL Report 7948, Jan 21 1976, Office of Naval Research, Arlington VA 22217, written in SNOBOL). These programs have speech rules as well as a vocabulary list of exceptions. It is hoped that anyone attempting to try and develop English to Phoneme translation software will make his or her work more worthwhile by keeping a few points in mind:

• Write "synthesizer independent" code. This means using a standard set of phonemes. The 64 VOTRAX phonemes are not the same as those used by the AI1000. The Naval Lab used the International Phonetic Alphabet in its program and converted the

52

output to a form used by a particular synthesizer. The IPA is used in some dictionaries. • Implementations must be fast and easily accessible by other software. It has to be callable from a big Star Trek simulation and not slow up the Warp drives.

Warren A Leach

NEW PRODUCT: SNOB DETECTOR

I have read with interest your "What's New?" column on page 78 of the August issue of BYTE. What I see between the lines of the review is a large gap developing in what should be one whole family of personal computing fans; a gap I have termed "cybersnobbery."

I refer, of course, to your article on the HP-91 calculator, by Hewlett-Packard. To wit:

Sometimes, one gets the impression that all the manufacturers of programmable (and non-programmable) calculators have gotten together and agreed to have a calculator a month hit the market. And:

Will the calculator a month trend

continue? Read the next BYTE and

find out. Maybe HP will take the

HP-55, put it into a case with a printer

and batteries, and call the result a

portable desk lop programmable

machine.

Both these statements demonstrate the

negative attitude the personal computing

community apparently has toward the

calculator field, and a prime example of

cybersnobbery. It also, I venture to say,

shows the inexperience of the reviewer.

The reviewer suggests that maybe HP might produce a programmable desk top unit of similar design to the HP-91. Naturally they would . . . that idea alone had been raised and agreed upon by several p2c (Programmable Pocket Calculator) owners

some months ago. Next the reviewer suggests further that it will be a desk top version of the HP-55. Anyone at all who knows anything about p2Cs would know that would be the last machine HP would make into a desk top unit. The HP-55 was mainly a preprogrammed calculator with, as one of its features, the ability to store and execute limited programs. It was never meant to be a contender as an excellent programmable machine.

A more realistic suggestion would have been putting the HP-65 in a desk top unit. At least there, the user would have some versatility. As it turns out, of course, HP is releasing a new breed of calculator, one of which will be the desk top unit, the HP-97.

Since it is becoming exceedingly clear that those who put down these pocket miracles have little or no idea as to how powerful p2Cs are, let me cite a few examples.

In 100 6 bit instructions, I can load in a program that will perform "Parallax Transformations in a Celestial Reference System." How about a game of Hexpawn or CyberNimb, both games that learn as you play them. I can also balance my checkbook, perform trend line analysis, compute components for a Chebyshev filter, check male pulmonary functions, navigate a ship, fly a plane by one or two VORs, have a game of Hangman using an alphabetic overlay of the keys, or simulate a dime slot machine that duplicates standard payoffs. All on the HP-65.

An owner of the SR-52 has the ability to do binary searches; linked lists; manipulation of subscripted variables and arrays; interrupt processing; dynamic code modification; op code translations; linked editing, loading and execution; overlays paging and even output graphics with the attachable printer. With the new HP-67/97 line, even more advanced programming is possible, including software control of chaining programs too long to fit into program memory.

It also appears from the article that the reviewer is a bit dismayed by the fact so many calculators are showing up on the

market. I've never seen anyone yet complain because new microprocessor systems and accessories appear almost daily, however. What would have happened if companies like Intel had stopped with the 8008 and the like? Let us hope the calculator a month trend, as well as the cheaper memory cards and the new systems trends, continue for some time.

As a final proof to the abilities of the lowly p2Cs, I offer a program [page 29] written for the SR-52 with attachable printer. The program will play a game of SHOOTING STARS, as first described in the May issue of BYTE /page 42]. The rules for play are the same and I refer any user to that issue for full play instructions. Naturally, alphabetic output is not possible, but the game functions in the same manner outside of that.

I like BYTE and micros (I own one too) and I find this to be the most interesting of all hobbies; but I also like the pocket programmables and it disturbs me to see others make light of some powerful little machines.

Down with Cybersnobbery.

Craig A Pearce 2529 S Home Av Berwyn IL60402

NOTE: Description of possible functions capable on the SR-52 was provided by Mr Vanderburgh, editor of 52 Notes, the newsletter of the SR-52 Users Club.

Snobbery is in the eye of the beholder. Have you ever thought that maybe there is an element of amazement and fascination in the attitude against which you protest?

KUDOS FOR SWTPC

Good news ought to be shared, and my experiences in building a particular microprocessor kit may be of value to other readers. Since I hadn't undertaken any significant solid state assembly work for a long time and because I thought it would be a

CASSETTE OR FLOPPY DISK? - PERCOM GIVES YOU A CHOICE!

THE CASSETTE I/O THAT WORKS!

• Inexpensive mass data storage . 28 byte/sec-upgrade to 220 b/s

• 'Kansas City'/Biphase Standard

• Self clocking-immune to tape spd . Works with any cassette recorder

• No 'tricky' adjustments . 25 page instruction manual

$59.95 Kit $72.95 Assembled

NEW! Altair/IMSAI version - add $20. Upgrade to 220 byte/sec $10

Instruction manual only $ 4

the new LI'L FLOPPY!

"now you can afford a floppy!'

• Compact 3.5x5.75x9" . 110Kbytes/diskette

• Hi speed random access

. Altair/IMSAI interface (others also available)

. 8080/6800 Software

$695 Kit $810 Assembled

Manual only $10

Available Dec. '76 Delivery less than 60 days

PerCom Speci al! UARTs $6.95

Call or Write for complete specifications Per Com Data Co.

4021 Windsor • Garland, Texas 75042 • (214) 276-1968

53

good opportunity to learn what I've been missing since I got an electrical engineering degree at the end of the vacuum lube days, I decided it would be reasonable to first build an oscilloscope so that I would be better equipped to track down all the problems which seem to arise when you assemble your own microprocessor.

Imagine my amazement when upon the completion of the Southwest Technical Products 6800 processor my debugging efforts were limited exclusively to checking voltage while powering up each board. The system worked as assembled! It went much belter than the scope, which proved to be unnecessary.

What makes all this noteworthy is that I've talked to several (about four or five) other people who have had experience with the SWTP-6800 and all reported virtually identical experiences.

Your readers may want to know that there arc differences in kits as well as differences in the skills of builders but a limited statistical sample suggests that with a good kit, the results have a high probability of success.

H Robert Knitter

533 S Segoe Rd

Madison Wl 53711

AN OLD FLAME, REKYNDLED

HELP! I think a bug is trying to byte me! The personal computing bug that is.

You see once upon a time I was an operator and programmer on a Honeywell 200 series machine. I wrote in both COBOL and Assembler with what I felt was relative ease. Since then I have left the computing field to make my living elsewhere. However, my interest and love never really died.

Then, one day, I chanced to pick up a copy of your excellent magazine. Suddenly I became aware of the opportunity to renew

my love affair. Like a man married 50 years, the desire to kindle a flame was strong, bui I hadn't any idea of where to begin. So, in desperation, I am turning lo you lor advice in hope that you are the Ann Landers of the personal computing world.

If advice is kindly forthcoming, you may judge its level of complexity on the fact that my knowledge of electronics, if not 0, is at best unaddressable.

Although my expertise is minisculc, my dreams are not. What I hope to eventually do is create a system that I may use in my business to analyze sales, do billing and track accounts receivable. I know that probably sounds like I have bugs in my memory, but my time is unlimited, my funds are not and I would like to have fun doing it.

If advice is not forthcoming, may the great god IMSAI SACRIFICE YOUR FAVORITE SOFTWARE UPON HIS ALTAI R!

Thank you for your lime.

Jim Dougherty 1820MarmadukeSt Pittsburgh PA 15212

You 'II need a kit system with 8 K and 32 K of memory, a floppy disk (dual drive preferred) and a television terminal. Hard copy is also desirable for such business applications, preferably With a "forms tractor. "

DAZZLED

Yours truly sure unloosed an avalanche when I put my name on that dotted line for a sample copy of your fine magazine. My biggest trouble seems to be that I retired about 11 years too soon, and made the mistake of thinking that ALL progress in the electronics field retired with me.... Oh yes, I was one of those smooth "experts" from out of town who was in charge of seeing that some of RCA's electron micro

scopes came up with 10 A0 pictures regularly - or else and was terminated for age in 1963. Be that as it may, my interest in all electronics except some reduced activity in ham radio fell to 0.

Main object in sending this letter is to thank you for the opportunity of seeing how the other folks in the new computer fields talk, think and write. It's about 95% over my head, and bytes, bits, PROMs, Bauds (they used to be somewhat shady ladies) to say nothing of interfaces, displays and other items too numerous to mention, are just too much for a 78 year old lo try to "get back into."

So, thanks again for the opportunity of looking over a magazine which I am sure will fill a big need in its field, and take me off the mailing list to save yourse/ves the postage to use on gaining more converts.

C J Faulstich W4CXL

14130 Rosemary Ln =1314

Largo FL 33540

AN ADDICT CONFESSES

I have been bytten. Please send me Ihree years more. I enjoy your magazine very much — however, the fantastic variety of hardware and software articles has made me extremely indecisive about whether to major in E2 or computer science this fall.

I have no computer at the present, of my own, that is. I find it extremely pleasurable to note that the Raytheon 704 my company uses is comparable to several microcomputers (National's PACE, in particular). Maybe someday (after college, after I see a bigger paycheck, and after hardware prices go down), I would like to build my own 16 bit microcomputer.

Dan Greening

5582 Golfridge Dr

Alma Ml 48801

YTE'S UGS

Here lies documentation of known bugs detected in previous editions of BYTE...

BYTE's Ooooops. . .

Author Wayne Sewell did not intend to leave the hole in listing 2, page 46, in "If Only Sam Morse Could See Us Now," October 1976 BYTE. The missing text at line 208 was traced to the "cut and paste" process of laying down a magazine page. Going back to the article file, sure enough, the following text was found in its original form ....

KCt ilATLMLi^T

OlBC

cuo

ai

NGL.fc.CH fc«.U

o

olbc

7P

uu

*b

cuv

CL.H

HOLUbY ft

CLEAH OUTHUT

OltiF

if

80

UO

<Uu

Cl-K

M'tJUU*.

POMT

Q1C2

cil

si

".uLUOH fc"U

•

01C2

bU

El

AC

clC

jaH

H'EIAL

INPUT ASCII CHAHACTEH INTO ACC

OXC'J

□ U

01

1 *

cl J

JSK

THANbM r

CALL C- GENERATION ROUTINE

OlCb

20

K8

ei

d«A

SlNbLuu'

GET NEAT CHArt

Eugenics in Engineering

Add an "oops" to item #2 on page 100 of the July BYTE. Unused TTL inputs

should be tied to +5 V through a I k ohm (order of magnitude) resistor to protect from damage due to voltage transients. Consult the Tl TTL Data Book, page 60, where several alternatives are discussed under the heading "Unused Inputs of Positive AND/NAND Gates."

I think publishing flaws really serves to improve the breed. Better and better designs will result. Having spent 10 years in computer hardware design, I can assure you these "trivial" points when overlooked can have nasty consequences.

Doing a great job.

Joseph J Pfeuffer

39 Forest Ln

Coram NY 11727

The way we understand it, the critical condition to avoid is the input to a TTL gate exceeding the supply voltage. Use of the 7 k (or greater) resistor as a logic I source or use of the output of a spare gate fixed at logic I is the preferred method.'

54

EVERY PROJECT IN THIS BOOK IS ANOTHER

REASON TO OWN CSC'S QT SOCKETS AND

BUS STRIPS.

With QT solderless breadboarding sockets and bus strips, you can build twice the projects in half the time. Because making connections or circuit changes is as fast as pushing in —or pulling out-component leads. No special clips or jumpers reguired, either.

When you're building circuits just for the fun of it. you can take them apart in minutes —not hours. So you save money by re-using parts, while eliminating heat damage to expensive components. Interlocking QT Sockets and Bus Strips are infinitely expandable, too: start small and "grow" breadboards as large as you wish.

For as little as $3.00, you can get a lot more out of your time in electronics -so why not treat yourself to a QT Socket today9

QT-59S . QT-59B

ANOT units are 33" thick

QT-18S

QT-12S

QT-8S

QT-7S

Length

6.5" 6.5"

5.3 5.3"

4.1" 4.1"

2.4"

1.4" 1.3"

Holeto-Hole

6.2"

6.2"

5.0"

5.0"

3.8" 3.8"

2.1" 1.5

1.1" 1.0"

94 16

70 12

36 24 16 14

10.00 2.25

8.50 2.00

4.75 3.75 3.25 3.00

Variety - 10 models from 70 to 590 solderless tie-points feature snap/lock design to expand or contract your breadboard to fit every circuit and budget requirement. Versatility- Use with virtually all types of parts. including resistors, capacitors, transistors, DIP'S, TO-5's, LED's. transformers, relays, pots, etc. Most plug-in directly and instantly. in seconds. No special jumpers required-just lengths of #22-30 AWG solid hookup wire. Molded-in holes let you mount QT units securely on any flat surface with 4-40 flat head screws, or 6-32 self-tapping screws, from behind panel. Economy — Sockets are priced as low as $3.00* Save more money by eliminating heat and mechanical damage to expensive parts, re-using components. Speed- For fast circuit layouts. QT Sockets have 5 interconnecting tiepoints per terminal; Bus Strips feature 2 separate rows of interconnecting terminals. Both connect and disconnect easily, without damage to socket or parts. Visibility-All parts are instantly and easily visible and accessible, for quick signal tracing, circuit analysis and diagramming. Durability-Higher-temperature sockets with abrasion-resistant, glass-filled plastic, rated better than 100°C. Screw-down-andinterlocked design provides high mechanical strength. Reliability-Ruggedly designed to professional engineering standards, for heavy day-in. day-out use. Non-corrosive prestressed nickel-silver contacts insure more secure mechanical and electrical connections. Vinyl backing prevents shorting when mounted on conductive surfaces.

CONTINENTAL SPECIALTIES CORPORATION

See your CSC dealer or call 44 Kendall street. Box 1942

Ofll P.OA TimfPact PnaQtl nr AA<^ 491 RR79 fWpct Pr>a«;t1 New Haven. CT 06509 • 203-624-3103 TWX 710-465-1227

203-624-3103 (East OoastJ or 41 b-421-88 It (West ooastj Wes| Coas| off|ce. Box 78og San Francisc0 CA 94119.415-42i-8872 major credit cards accepted. twx 910-372-7992

'Manufacturer s suggested list • Prices and specifications subject to change without notice ■6 1976. Continental Specialties Corporation

Ask BYTE

Some letters to BYTE are technical in nature and are best served by some form of response. We will try to answer as many such letters as possible. If you have a puzzle concerning some aspect of the personal computing field, write down a clear statement of your question and send it to:

Ask BYTE

Byte Publications Inc

70 Main St

Peterborough NH 03458. We will publish names and addresses of individuals making Inquiries unless you specifically request us to omit the reference."

Field

Patient name

Street address

City, state, and zip

Zip alone

Street address, city, state and zip

Telephone

Age (Date of birth)

Rx text

Date of last exam

Date of present exam

TOTALS

Feedback

In your reply to Dr Sydney B Schrum of Goldsboro NC in the "Ask BYTE" column of July 1976 [page 95/, you picked numbers which "looked 'typical' " to estimate his storage requirements. My studies on the characteristics of clinical data base files and their usage indicate that your estimated numbers are quite conservative when compared to some of the statistics that I have recently prepared.

Let's take a look at Dr Schrum's record, field by field. The enclosed table gives BYTE's estimate along with some of my statistics. Note that the total of the mean is approximately 50 percent of BYTE's estimate while the total of the 99 percentile column is roughly two-thirds of BYTE's estimate.

I assume that the patient's name is stored in one field in the format, surname, comma, given names. One to two characters can be saved by the use of a simple editing transformation which eliminates periods, trailing punctuation but not embedded punctuation, and compresses multiple blanks and blankcomma combinations. It is assumed that no decimal points, as contrasted to periods, appear in this field. The field will be longer or shorter depending upon how completely specified the users desire the given names to

Table!: Estimated Field Sizes.

Mean

14 15 161

321 _2

(16 bits)

?3

16 bits

16 bits

70

BYTE's Estimate

30

30

351

5

651

10

2

30?

6

16 bits

99 Percentile

22

22

231

5

431

_2

(16 bits)

?3

16 bits

16 bits

145

91

Notes: 1. Not counted in totals.

2. Assume the value of 10.

3. Assume the value of 30.

4. All values are in bytes unless otherwise specified.

5. Eight bits per byte are assumed.

6. Data from Greenfield's studies.

be; contrast "Smith, John^Henry" to "SmithJohntfH" to "SmithJtfH".

The street address field can make even better use of the above editing transformation. Note that in most cases the zip code completely determines the city and the state as defined by the U S Postal Service. This may differ from the actual legal definition of the city and state, but it is the correct address for postal purposes. If that is sufficient, a large compression can be achieved. Table lookup then serves to complete the generation of a printable address. This technique is used in one of the data bases designed in our laboratory. Also, note that by definition the maximum length of a place name is 13 characters when using approved postal abbreviations, add two characters for the state, and five for the zip, which sums to 20 to obtain a more conventional form of address storage. Notice that since the zip and the state codes are of fixed length no delimiters are required.

I have no comments on the telephone field other than to add that it may be necessary to provide storage for a possible extension number on a business phone.

My studies have not included pharmaceutical data storage. Yet some of my colleagues are knowledgeable in this area. I do know that several standard codes for pharmaceuticals are in existence.

Dates, and age, can be rather nicely handled as the number of days since a specific date, say since December 31, 1840. True, conversion is required upon input and output; but some very nice characteristics which facilitate searches and data verification appear in return.

I was uncertain whether the date of the last exam was the same information as the date of the present exam. Therefore, I added an extra field.

This letter touches upon a few aspects of the design of clinical data bases which have for the most part been treated in an ad hoc manner. The design of a useful clinical data base can be a difficult undertaking. In no way should this letter be taken as the last word on these design aspects. Careful study as to the purpose each field is to serve and the context in which it is to serve is required.

I hope that you and Dr Schrum might find this information of some value in designing clinically useful data base systems.

Robert H Greenfield

Washington University

School of Medicine

Biomedical Computer Laboratory

700 S Euclid Av

St Louis MO 63110

56

Acknowledgments: This work was supported in part by Grant RR 00396 from the Division of Research Resources, National Institutes of Health, and by Grant HS 00074 from the National Center for Health Services Research.

Thanks for giving us some "real world" inputs on the ways things are being done. The estimates you quoted from July BYTE were predicated upon fixed field sizes (easier to program, but wasteful) and no pretense at being optimal for the data. The zip code trick is an elegant compression, but we know from our own mailing list system that there are very real human factor problems with using that technique on large files of this sort. ■

Puzzled

I am a professional engineer, and I would greatly appreciate your help. I need to obtain a computer for use in my profession of designing engineering systems. To be frank I know absolutely nothing about computers.

I believe that there is an Altair and something from MITS which might do what I want, but I cannot find out anything about these firms and their products. Basically my need is for something that will print out the answers to reasonably simple equations with the need for calculating trig functions and perhaps Bessel functions (or storing the latter in a table), then performing the same operations with increments of 5° horizontally and 5 vertically as needed. Also a refinement would be the ability to build in discretion about the calculations on a Go-No Go basis.

But I don't know where to turn for such information. Can you help me?

(Name witheld by request)

A MITS Altair with BASIC will give you the ability to calculate trig functions, or store a Bessel function table. If you knew the analytical expressions needed to calculate the Bessel functions, that could be calculated as well. Any personal computer with an extended BASIC that has trig functions could be usea, as well as any desk top calculator (programmable) with a printer accessory. Acquire a book about programming mathematical models in BASIC or FORTRAN if you want inspirations; the local college's bookstore computer science section Is a good place to start, m

THE COMPUTER ROOM

SMALL COMPUTER SYSTEMS • SOFTWARE • AMATEUR RADIO EQUIPMENT

1455-A So. 1100 E. Salt Lake City, Utah 84105 Phone:801-466-7911

"WE TAKE THE m\E«& OUT OF THE BICHD "

One Of The Nations Largest Full-Service Computer Stores.

Over 1600 Square Feet Of Sales And Service Facilities.

WHEN YOU WRITE FOR OUR CATALOG AND ENCLOSE $1 TO HELP DEFRAY THE COST OF HANDLING AND MAILING, HERE'S WHAT YOU GET:

1. A CERTIFICATE GOOD FOR $2 ON YOUR NEXT PURCHASE

2. the COMPUTER ROOM easy to understand

CATALOG COVERING

I MSA I

THE DIGITAL GROUP

POLYMORPHIC SYSTEMS

SOUTHWEST TECHNICAL PRODUCTS CORPORATION

TECHNICAL DESIGN LABS

PROCESSOR TECHNOLOGY

ETC.

3. the COMPUTER ROOM -easy guide- to help you

PICK THE RIGHT SYSTEM, PERIPHERALS, COMPONENTS, AND SOFTWARE FOR

THE BEGINNER THE ADVANCED THE EXPERT THE SMALL BUSINESS

4. ACURRENTLISTINGOFPRESENTLYAVAILABLE

SOFTWARE

PUBLICATIONS

PERIPHERALS

5. INFORMATION ON REPAIR SERVICE, LOW COST CUSTOM PROGRAMMING AND OTHER SPECIAL SERVICES.

AT THE COMPUTER ROOM YOUR WRITTEN QUESTIONS ARE HAPPILY RECEIVED AND PROMPTLY ANSWERED

WE ALSO STOCK A COMPLETE LINE OF AMATEUR RADIO EQUIPMENT

BANKAMERICARD MASTERCHARGE

57

Don't Waste Memory Space

(One Way to Squeeze Fat Out of Text Strings)

Robert Baker 15 Windsor Dr Atco NJ 08004

If your system uses plenty of canned messages, chances are you're wasting valuable memory space. Most small systems are currently using a 7 bit ASCII code with one character per 8 bit byte of memory space. Why use a 7 bit code, capable of selecting 128 characters, when you really only need 64 or even 40 different characters for simple alphanumeric text? Your simple video display may only be able to handle 64 characters anyway, so why waste memory space needlessly?

By using less bits for a character code, messages can be condensed or packed in memory very easily. For example, a 6 bit ASCII code that is a subset of the standard 7 bit ASCII code allows a character set of 64 characters. The 6 bit ASCII code is easily obtained from the 7 bit code by converting all lower case letters to upper case letters and simply subtracting octal 40 from the 7 bit code (or adding octal 40 to the 7 bit

CONVERSION FORMULAS -SUMMARY

ASCII 7 bit code (X7) to 6 bit subset code (X6)\ X6 = X7-A; 1

ASCII Conversion Constants

«

X6 = (X7&B) + A; / ASCII 6 bit code (X6) to 7 bit code (X7) 1

Name

Decimal

Octal

Hex

A

32

040

20

B

63

077

3F

X7 = X6 + A; /

16 bit packed radix 40 (X) to unpacked radix 40 \ (C1,C2,C3): 1

Radix 40 Packing Constants

C1 = X / A; 1 C2 = (X - A * CD/B; f C3 = (X - A * C1 - B * C2); V

Name

Decimal

Octal

Hex

A

1600

3100

640

B

40

50

28

Unpacked radix 40 (C1, C2, C3) to 16 bit packed ( radix 40 (X): 1

X = A * C1 + B * C2 + C3

C1, C2 and C3 are converted to ASCI I and back I

using table 2.

code and truncating to the rightmost 6 bits). With a 6 bit code, four characters can be packed into three 8 bit bytes of memory providing a 25% saving on the required memory storage space for a given message.

On the other hand, the normal text typing routine must be modified to unpack the compressed 6 bit character codes and convert them back to standard 7 bit ASCII for output to the terminal device. To unpack the characters, use a combination of shift (or rotate) and bit masking (logical AND) instructions, then add octal 40 to the 6 bit code to restore it to 7 bit ASCII. Unused printing characters may optionally be decoded by the typing routine and converted to special function characters such as carriage return, line feed, etc, for special applications.

Another possibility is to use a radix 40 coding scheme that provides a character set of 40 characters, packed three characters per 16 bit double byte unit of data. A typical radix 40 scheme is summarized in table 1. This scheme takes advantage of the fact that a 16 bit integer has 65,536 distinct states, while a set of three radix 40 characters has 403 = 64,000 distinct states. To create a given 16 bit radix 40 three character field, X, from characters CI, C2 and C3 (assumed to be integers from 0 to 39) the following arithmetic expression must be evaluated:

(1) X = C1*1600 + C2*40 + C3;

All arithmetic is assumed to be unsigned, performed with 16 bit precision for the results. Similarly, to unpack a given 16 bit radix 40 field into individual character codes, evaluate the following expressions:

(2) C1=X/1600;

(3) C2= (X-1600*C1)/40;

(4) C3 = (X - 1600*C1 - 40*C2);

Going from the radix 40 character represen

58

tations C1, C2 and C3 to ASCII equivalents and back is done with a table lookup using information found in table 2 accompanying this article. For conversion to radix 40, each three character grouping of text is converted from ASCII to radix 40 values C1, C2 and C3, then formula (1) is evaluated giving the 16 bit value to be stored. For conversion from radix 40 packed storage into ASCII, formulas (2), (3) and (4) are evaluated in sequence, then the ASCII codes equivalents of the CI, C2 and C3 values are looked up in the conversion table.

Using either coding scheme you gain space by packing characters in memory but lose space elsewhere due to modified type routines to unpack and convert the codes to

Table I: One assignment of radix 40 character values to printable graphics Is provided by this table. Using 26 letters, 10 numbers and 2 special characters leaves two states unassigned. One, the value 0, is given the "null" assignment, and the other, value 29, is left open in this table. Conversion can be done between ASCII and radix 40 codes using table 2.

Character Graphic

null

A B

C D E F G

H

I

J

K

L

M

N

0

P Q R S T U V

w

X Y

z s

unused 0

1

2 3 4 5 6 7 8

jcimal

Hexadecimal

Octa

0

00

000

1

01

001

2

02

002

3

03

003

4

04

004

5

05

005

6

06

006

7

07

007

8

08

010

9

09

011

10

0A

012

11

0B

013

12

OC

014

13

0D

015

14

0E

016

15

OF

017

16

10

020

17

11

021

18

12

022

19

13

023

20

14

024

21

15

025

22

16

026

23

17

027

24

18

030

25

19

031

26

1A

032

27

1B

033

28

1C

034

29

1D

035

30

1E

036

31

1F

037

32

20

040

33

21

041

34

22

042

35

23

043

36

24

044

37

25

045

38

26

046

39

27

047

usable ASCI I. The amount of space you gain is variable, depending on the length and number of messages to be stored, as well as the coding scheme used. On the other hand, the amount of space lost is fixed and depends only on the coding scheme used. Thus the overall saving in memory space is totally dependent on the application. The more messages you use in your system, the more memory space you can save by implementing these ideas."

Character Graphic

Table 2: Equivalences between ASCII 7 bit codes, ASCII 6 bit subset codes, and radix 40 codes. This table can be used to design lookup tables for use in compressing character strings and expanding them for external formatting purposes.

Space

% &

> ?

@

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

w

X

Y

z

Standi

srd 7 bit

ASCII Code

Hex

Octa

20

040

21

041

22

042

23

043

24

044

25

045

26

046

27

047

28

050

29

051

2A

052

2B

053

2C

054

2D

055

2E

056

2F

057

30

060

31

061

32

062

33

063

34

064

35

065

36

066

37

067

38

070

39

071

3A

072

3E

073

3C

074

3D

075

3E

076

3F

077

40

100

41

101

42

102

43

103

44

104

45

105

46

106

47

107

43

110

49

111

4A

112

4B

113

4C

114

4D

115

4E

116

4F

117

50

120

51

121

52

122

53

123

54

124

55

125

56

126

57

127

58

130

59

131

5A

132

5B

133

5C

134

5D

135

5E

136

5F

137

6 bit Modified

ASCII Code

Hex

Octa

00

000

01

001

02

002

03

003

04

004

05

005

06

006

07

007

08

010

09

011

0A

012

0B

013

OC

014

0D

015

0E

016

OF

017

10

020

11

021

12

022

13

023

14

024

15

025

16

026

17

027

18

030

19

031

1A

032

1B

033

1C

034

1D

035

1E

036

1F

037

20

040

21

041

22

042

23

043

24

044

25

045

26

046

27

047

28

050

29

051

2A

052

2B

053

2C

054

2D

055

2E

056

2F

057

30

060

31

061

32

062

33

063

34

064

35

065

36

066

37

067

38

070

39

071

3A

072

3B

073

3C

074

3D

075

3E

076

3F

077

Radix

40

Character Code

Hex

Octal

00

000

1B

1C

1E 1F 20 21 22 23 24 25 26 27

01

02

03

04

05

06

07

08

09

0A

0B

0C

0D

0E

OF

10

11

12

13

14

15

16

17

18

19

1A

033

034

036 037 040 041 042 043 044 045 046 047

001 002 003 004 005 006 007 010 011 012 013 014 015 016 017 020 021 022 023 024 025 026 027 030 031 032

59

What's

New?

Here It Is, a Builder's Eye View of the Lear Siegler "Dumb Terminal" Kit

It's been running around the grapevine for several months now; but here it is at last, some printed word from the source concerning the "Dumb Terminal" kit of Lear Siegler, Inc.

What Lear Siegler has done is to market the first complete "glass Teletype" terminal kit in a package which can be assembled and tested at home. The only tools required are a soldering iron, needle nose pliers, wire cutters and a screwdriver (see photo 1). An illustrated set of instructions is provided to guide the builder. The terminal is marketed

Photo I: ADM-3 kit shown in a "beauty contest" arrangement. Theresuiting terminal looks like the photo found on page 96 of June 1976 BYTE, hut beauty in the eye of a kit builder is in the arrangement and packaging of the parts plus documentation.

Photo 2: An ADM-3 builder, Kip Klappenback, working on the assembly of his terminal from the kit.

through retail outlets and has been test marketed in California stores since about June of this year prior to national marketing. At a price of $875 retail, not much above the cost of some surplus terminals with fewer features, the purchaser gets a completely new terminal in kit form.

The ADM-3 terminal which is constructed from the kit can be used either as a direct Teletype replacement with a 20 mA current loop interface, or as an EIA RS-232C terminal. The choice is switch selectable. An auxiliary extension RS-232C port is available at extra cost to allow a serial asynchronous ASCII printer to monitor the copy on the screen with a hard printed output.

The ASCII encoded keyboard has 59 keys and causes entry on the bottom line of the screen. The display in the standard model has upper case (64 character) ASCII graphics. The page scrolls upward typewriter style following a line feed. Control functions for the display are provided by the clear screen, carriage return, line feed, space bar, backspace, and character overwrite keys. An audible tone "beeper" announces the end of line. Switch selectable options allow data rates from 75 through 19,200 bits per second. Formatting options, also switch selected, include 9, 10 and 11 bit asynchronous transmission formats; odd, even or no parity; one or two stop bits; 7 or 8 bit ASCII encoded data. All integrated circuits are socketed. The CRT and power supply come preassembled as seen in photo 2.

After assembly, the builder will have a unit measuring 12.5 inches (32 cm) high by 15.5 inches (40 cm) wide by 19 inches (48 cm) deep, with a 12 inch (30 cm) diagonal screen, 25 pound (11.3 kg) mass and power requirements of 70 watts. The data capacity is 24 lines of 80 characters each. For further information, contact Lear Siegler Inc, EID/Data Products Group, 714 N Brookhurst St, Anaheim CA 92803. (The Lear Siegler products are found in nearly every computer store in the country at the present time, if you want to take a look at one yourself.)"

For Individuals Desiring Selectric Typewriter Conversion

The only known commercial product source (circa August 1976) for a conversion of IBM Selectric typewriters into 10 machines for computers is Tycom Corp, 26 Just Rd, Fairfield N) 07006.

The product is the Holmes Tycom Selectric 10 Writer, consisting of a patented (US Patent No 3,453,379 available in reprint for 50tf or thereabouts from the US Patent Office, Washington DC) "applique" which will fit the bases of the IBM models 711, 713, 715, 721, 723, 725, 873, or 875 Selectric typewriters. According to the literature, no permanent modification of the typewriter is required, and the standard IBM maintenance contract for the typewriter plus applique assembly is available for $42 per year. The applique can be installed on typewriters leased from IBM, and can be removed in less than five minutes.

The only problem with this mode of converting an IBM Selectric I or Selectric II typewriter to 10 applications is the price. According to a brochure, it is $1455 plus the cost of the customer's typewriter and shipping to the Tycom plant for modification."

DECUS Fall Meeting

DECUS, the Digital Equipment Computer User's Society, will have its fall meeting in Las Vegas NV, December 6-9, at the MGM Grand Hotel. According to the press release, DECUS is the largest and most active computer users organization in the world. This is no doubt true, since DEC started the small computer trend with its introduction of the minicomputer (then priced in the $100,000 range) in the early 60s, and today is the largest minicomputer company.

Of special interest to scientific researchers in the medical field is the featured technical part of the meeting, a four day symposium on the use of computers in medicine, image processing, clinical laboratory procedures and medical information systems. The 40 sessions include topics such as "A Program for Measuring Reaction Time of Human Subjects," "Minicomputer Handling of Bibliographic Information," and "The Future of Computers in Image Analysis."

For further information, contact the Digital Equipment Computer Users Society, Maynard MA 01754, phone (617) 897-5111."

Come to the Boston IC Party?

Claiming to have the "world's largest computer store," American Used Computer Corp has opened up a retail division called the Computer Warehouse Store, located at 584 Commonwealth Av, Boston, most convenient to all the MIT beavers and other Boston area hackers. The press release copy bills it as a "computer hobbyist heaven" complete with "an abundant supply of microcomputer kits from the major kitmakers" of the world. Included are IMS Associates products, and Southwest Technical Products Corp kits among the main frames, and ancilliary products from soldering irons to card readers, tape drives and Teletypes. The store also slocks Lear Siegler terminal products and Sanyo monitors. It looks as if this store would be a "must visit" entry on any computer hacker's itinerary for a visit to the Northeast.

The Computer Warehouse Store is a division of one of the oldest used computer dealers in the country, and is implemented with a 7,500 square foot retail display area with wall to wall stock of used accessory gear that includes minicomputers, commercial grade peripheral equipment, boxes and boxes of hard to find parts, etc.

And don't forget the used computers. Here is the place to go if (for some reason) you want to locate that used 1620 disk system, that old 1401 central processor, or a Memorex 40 (at pennies on the dollar). Computer Warehouse Store hours arc 11 AM to 9 PM, Monday-Friday, and 9:30 AM to 5:30 PM Saturdays; 584 Commonwealth Av is located between Kenmore Square and Boston University."

60

No Matter

How You Stack Them

Ours Comes Out On Top!

OUR FD-8 FLOPPY DISK SYSTEM interfaces to anybody's microcomputer system via a single PIA chip!

If you don't use PIA's, then one 8 bit bidirectional data port and one output only control port Is all that's required — that simple! If you don't have a bidirectional port then separate input and output ports will do.

Full sector buffering in 3K of RAM contained on the controller card itself eliminates any dependence upon processor speed.

Each drive is contained in its own cabinet with power supply. Up to 4 drives may be daisy chained together and selected under software control from a single controller card.

Both single and double density, single or multiple drive units are available.

Complete F DOS software for both 8080 and 6800 systems is provided at no additional charge, including: disk driver subroutines, variable length file management system, disk assembler/editor, and integration with basic.

MSI introduces the PR-1 PROM Programmer and verification module for use with microprocessor systems.

The PR-1 interfaces to any microcomputer system via a single PIA chip. The unit is designed to program 1702A PROMS. Complete software for PROM programming is provided with the system at no additional charge.

MSI software products including our mini assembler, disassembler, and basic are now available on KC standard cassettes. Please specify either paper tape or cassette when ordering.

For the past 6 years MSI has been a leading manufacturer of microcomputer data handling systems for medical laboratories, so we're not new to the business. Four years ago we introduced the first floppy disk system for programmable calculators, which is still in production today. We manufacture CRT terminals, PROM programmers, and a large selection of instrumentation interfaces. For more comprehensive product information, write MSI at the address below. Incidentally, our products are ready for immediate delivery.

Master Charge & BankAmericard orders welcome.

Here are two MSI Dealers, who can show you our products in action..

Microcomputer Systems, Inc. 144 S.Dale Mabry Ave. Tampa, Florida 33609 (813) 879-4301

American Microprocessors, Equipment & Supply Corp. Chicagoland Airport, P.O. Box 515 Prairie View, Illinois 60069 (312) 634-0076

THidcveat Scientific *?tt4t>uc*Ke*tt4

220 WEST CEDAR. OLATHE. KANSAS 66061 • PHONE 913 764-3273 • TWX 910 749 6403 (MSI OLAT)

Do It Yourself Weather Predictions

Michael R Firth 4712 Northway Dr Dallas TX 75206

One of the most challenging tasks for a computer owner can be working up the software and hardware to permit analysis of the weather and prediction of what is coming. Whether you wish to develop some software and take readings yourself or develop the hardware and do your own analysis or have the computer carry out both tasks, you can enter into a challenging and fascinating world of computer applications.

In this article, I shall not present specific solutions for specific computers. Instead, I shall outline thinking needed in software and make suggestions about hardware. In most cases, there are alternate solutions and some of the solutions are useful for other problems (such as cycle analysis for scientific biorhythm experiments).

Software for weather prediction falls into two categories: that for gathering data and that for analysis of the data gathered. The former is partly related to the kind of data gathered and the device used, and it will be discussed along with the devices that it applies to.

Gathering Data

The general requirements for gathering data include a need to code both the data from various instruments and the time of the readings, so the analysis program will know when it was collected. Depending on how often the data is analyzed and how much is gathered, there may be a need to dump accumulated data to tape. Assuming you have enough memory for the maintenance program, the analysis program, the most recent data, and intermediate results, then you may still wish to dump to tape for analysis of longer trends. If you have limited memory, you will have to dump to tape, loading the analysis program and a tape input routine for analysis later.

If your processor is to gather data, your first task is to set the time interval at which

data is collected. Unless you want to tie up your computer as a clock, you will want to generate an interrupt from an electronic or mechanical clock. With a mechanical clock, you could conceivably create a way of turning on the computer and then automatically bootstrapping the data acquisition program. But it is probably less complicated to simply leave the computer on all the time and use an electronic real time clock.

The advantage of using the computer to gather data is that it can do it when you are asleep or at work. Upon receipt of a trigger signal, the data acquisition program executes subroutines to test each device, reads and formats the data, perhaps does some preliminary analysis, stores the data, perhaps outputs results to tape or hard copy, then goes back to resting.

If you use the most basic devices, there is little point in gathering data more often than every hour. With more accurate devices, there may be some point in gathering data every five, ten or fifteen minutes.

If you do not have an actual time input, then you can use a mechanical or solid state device to generate the input at regular intervals; and by keeping count of the intervals, you can note the time of day. The significance of various bits of data depends on the time of day it was gathered.

Forming the data will depend on the device used to gather it. Some devices might deliver concrete numbers which can be stored immediately, but most of the cheaper choices will return a value that corresponds to a voltage or resistance. The value can be converted to a number matching human experience typically in the data acquisition subroutine or with a conversion routine during analysis. Conversion basically consists of a table lookup of the received value and output, or interpolation from two entries and output. An example would be a thermistor reading in which a given resistance is

62

returned as a number, such as 208, which is not linearly related to temperature because of the method of reading or non-linearity of the thermistor. Within the computer, a lookup of a table based on experience (rather than expensive external hardware to create linearity) converts the reading to a temperature, perhaps 82 (degrees Fahrenheit or the equivalent Centigrade value).

While the computer could happily deal with resistance values and other odd numbers, if you stored these values for later use, any additional routines you wrote (or that others wrote for you) would be more complicated than necessary since conversions might be needed. It is better to store the data in a form you and I can relate to, such as temperature, humidity, wind velocity, and time of day and date.

Analysis

Once more than one set of data is at hand, analysis can proceed. (Well actually, with one set of data, you can do a few things, such as reporting the current values and announcing singular events like sunset and freezing, but more of that later, since prediction is our goal.)

Analysis of the data consists of computing relationships between pieces of data and then comparing them to a pattern. The pattern may be one created by the programmer or one computed from previous data. The latter is far more complicated. The pattern will be different for each part of the country and may have to be developed by using a bit of common sense.

I will use a specific example of analysis and cite a few examples of patterns and local variations. The first step is to create interval information. We do this by subtracting the previous reading from the current reading. If we are working with the temperature, the intermediate result will tell us whether the temperature is increasing or decreasing and by how much.

One pattern having to do with temperature is the daily increase in temperature from the low to high point. The analysis program can easily detect the point at which a reversal occurs. For a prediction of the high (or low) temperature, one need only add an average figure (which varies throughout the year). In midsummer in Dallas, the range is 22° F. The average range holds whether temperatures are generally above or below average; and it depends mostly on local conditions, such as distance from water, type of soil, latitude, and amount of human building in the vicinity.

If the early morning temperature is higher than normal, you can predict a higher than normal peak temperature in the afternoon. If the midafternoon temperature is lower than normal, you can predict a lower than normal temperature at night. With proper connections, this information could warn of a freezing condition and set off alarms and cause you to protect plants or pipes ahead of time. (The same alarm could be triggered when the temperature actually approached freezing.)

Besides the extremes of temperature, you can work with the pattern of variation, which often looks like a distorted sine wave. After you have gathered data for several days, you can sketch a good approximation of the curve and then can use it for analysis. If the temperature shows considerable variation from the curve, your program can report that a cold (or warm) front has passed through. Combined with other data (such as barometer readings and rain gauges), you may be able to predict rain (or snow) or other upcoming factors.

The more kinds of data you can gather, the more complex your computations and (hopefully) the more accurate your predictions. Generally it is easier to do a microforecast (very local) than a more general one.

You will have to examine the details of weather in your city to improve your predictions. For example, in Dallas, where I live, we have to keep a record of the barometric pressures over a period of time to decide whether a falling barometer is going to lead to rain. Normally we only get rain after high pressure has passed to the south of us, sweeping moisture up from the Gulf. Low pressure, unless it is very strong, normally is dry because it is pulling air out of Mexico as it approaches. By way of contrast, in western New York, a west or northwest wind, from across the Great Lakes, tends to produce considerable moisture including record winter snowfalls. This sort of factor varies considerably depending on exactly where a person lives. These local conditions face everyone, no matter where they live: mountains, bodies of water, expanses of agriculture, concrete, or industry, and latitude make their influence felt in unique ways.

Synthesis

The synthesis of a pattern by the machine is a complicated and time-consuming task and I will only outline it. Most patterns related to weather vary on a 24 hour or

Authors Take Note:

This article gives some ideas for home weather sensors; there is plenty of room for additional material on algorithm design for weather data acquisition, actual experiences of individuals building instruments such as those outlined here, and prediction algorithms.

63

Figure 1: Conceptual Design of Humidistat. The relative humidity of air is calculated from the physical properties of water and the difference in temperature between a "wet bulb" and a "dry bulb" thermometer. The evaporative cooling efficiency of the wet bulb temperature sensor's cotton shroud depends upon the relative humidity. A measurement cycle is started by turning on the fan, and momentarily energizing the solenoid. Then, with the fan still on, the wet bulb thermistor is allowed to stabilize its temperature. Finally, the computer reads the two analog input channels, and can proceed to calculate the temperature of each channel, then the humidity. The dry bulb temperature can also be retained as the current ambient air temperature in the weather record. For weather data, this device must be mounted outside, in a protected area which Is open to the air. *

annual cycle and some of these are periodic, reaching a peak, gradually moving to a low point, then rising to a peak again. The first pieces of data to gather are the times during the day (or year) the maximum and minimum occur and the average value of the readings. Mathematically, the curve of the pattern can be approximated by a sine wave above and below the average with a period equal to a day (or year). For temperature, this might be TEMP = (K * SIN (2tt * (-L + T)/24) + J; where J is the average temperature, K is half the daily range, and L is the part of the time interval between midnight and when the curve crosses zero (average) going up, and T is the time variable.

It is unlikely that a pure sine wave will match the pattern, so that further harmonic components might have to be added to form a Fourier series representation. And that is where life gets complicated, for the computer has to calculate coefficients and compare these to actual data until the best values are found.

The purpose of the synthesis is to permit storage of a general formula and coefficients instead of several long tables of approximate values. For those who do not want to work with formulas, the lookup table approach is fine and will give acceptable results, or even very good results if the form of the pattern is messy and the formula is not worked out far enough.

Hardware

There are a number of approaches to the hardware of gathering weather data. Perhaps the most extreme would be to buy professional telemetering equipment; I won't even go into that, because of the cost, other than to mention that remote weather stations are available.

A second possibility would be to buy commercial items which provide digital output. For example, Heathkits are available which report temperature (Fahrenheit or Centigrade) and wind velocity in digits (and wind direction by lighting lights) and it would be a relatively straightforward task to decode the 7 segment readouts or get the data from some other point in the circuit

after it had been digitalized and allowance had been made for nonlinearity.

But such kits cost money, and you would not really be taking the best advantage of your computer; that is, using software to save money on hardware. So let's work on some suggestions for make-do hardware. We are concerned with temperature, humidity, wind, barometric pressure, rainfall, and time.

Temperature is taken with a thermistor, either an extremely linear one or anything else that varies with temperature. Using a method of digitizing the resistance with some form of analog to digital converter, the computer gets a number to work with, which (as I mentioned previously) it can then look up in a table to report a temperature.

Humidity

Humidity is rather more difficult. Most humidistats use human hair and only manage to open or close a switch at a specific point (like a thermostat). After much searching I found one company which makes a resistance type sensor for humidity; but at $50 each, I'm not buying one. I suppose one solution would be to use a motor to drive a humidistat and a potentiometer, taking a resistance reading just at the point the humidistat opened, but that seems rather complicated.

Another possibility would be to compute the humidity from the wet and dry bulb temperatures measured with thermistors. The wet bulb temperature is obtained by covering a thermometer with a cotton sleeve, wetting it, passing air over it (which lowers the temperature) and taking a reading. The distance the temperature is lowered is related to the relative humidity — at 100% there is no lowering, since no evaporation occurs; at low humidity rapid evaporation occurs, lowering the temperature quite a bit.

When you take wet bulb readings by hand, you spin the thermometer. Mechanically, it is easier to blow air over the fixed thermistors. So I offer a design for a computer operated "woodpecker " (see figure 1) that dips the cotton in water (but doesn't rest there) and turns on a fan for

64

PHYSICAL LAYOUT

MUFFIN

FAN

"WET BULB" "DRY BULB"

THERMISTOR AND RAG THERMISTOR

SPRING OR RUBBER BAND

«

a

RELAY DRIVE

T

VREF

AW ■O) (TO ANALOG

NPUT CHANNEL)

SOLENOID POWER

a

RELAY DRIVE

X

V REF

AD O) (TO ANALOG

NPUT CHANNEL)

START OF DATA TIMING DIAGRAM ACQUISITION CYCLE

i

\- WET BULB STABILIZATION DELAY

I I I

END OF DATA ACQUISITION CYCLE ■

OFF ■

READ AW

n

i i

-H !■•—"DIP DELAY"

_TL

READ AD .

n

65

HOME MADE END SEAL

w

AB

(TO ANALOG INPUT CHANNEL)

TO ELECTRONICS

MERCURY RESERVOIR

Figure 2: Conceptual Design of an Electronic Barometer. The mercury barometer can be adapted to electronic reading by using the properties of mercury and a resistance wire which is not wetted by mercury. A barometer is constructed from a long glass tube (approximately 800 mm) which is sealed at one end with a torch, after inserting about 100 to 200 mm of resistance wire. The resistance wire becomes the element of a variable resistance with the mercury of the barometer as the "wiper. "A voltage across this resistance is measured by the analog to digital input channel AB and converted to a barometer reading by the software. Although exaggerated here, the residual curves in the resistance wire within the tube will lead to nonlinearities in the barometer readings. Whenever a barometer reading is to be taken, the analog to digital input channel AB is read, and the 8 bit number resulting is converted into a pressure reading for later calibration. This unit can be mounted indoors, since pressure in a house is rarely different from external pressure.

forced evaporation in a computer controlled sequence. With proper output from the computer, a single latched bit is used to drive the solenoid, a second bit to control the fan, and a time delay in the program to allow the two temperatures to settle. In theory, a specific air speed (1 meter/second) is needed, but that can be a later refinement.

Computation of the relative humidity can take several forms and you can find explanations in encyclopedias and other places. The relative humidity is close to H = 100% — Tc*5) where Tc is the difference between the wet and dry bulb temperatures in degrees Centigrade.

A potentially more accurate formula I

have found is E = E

w

0.00066B (t - tv

(I + 0.00115tw); where t = dry bulb temp,

wet bulb temp, Ew = vapor pressure at tw, B is barometric pressure, and E is the actual vapor pressure. Relative humidity is E/Ew, the actual vapor pressure over the potential maximum. Values of E may be found in reference books, or you can extrapolate from these values:

0°C, E = 4.6 10°C, E = 9.2 20°C, E = 17.5 30°C, E = 31.8 40°C, E = 55.3

[One reference source for humidity data and formulas is the Handbook of Chemistry and Physics, 1971, Chemical Rubber Company, pages E-39 and D-J48.J If you have no way of measuring the barometric pressure, using the number 740 mm will produce less than 5% error under normal conditions, (le: You're not in the center of a tornado or sitting on top of a mountain at 12,000 feet.) A high relative humidity is usually needed to produce rain. Normally, unless a humid front arrives, the relative humidity is highest with the lowest temperature and falls as the temperature rises, because warm air can hold more humidity and the absolute amount of moisture remains relatively stable in a given day. A change in the pattern suggests a change in the weather. Relative humidity is rather pointless and impossible to measure by the wet bulb method at temperatures close to and below freezing.

Pressure

Speaking of barometric pressure, let's try to measure that. One way would be to take apart a dial type barometer, curve a piece of resistance wire and use the meter needle as a wiper. But I would like to offer a kind of wild alternative (which I have not tested), as seen in figure 2.

A mercury barometer consists of a glass tube about 800 mm (32 inches) long which is sealed at one end, filled with mercury and stood up with the open end submerged in a bowl of mercury. Since there is no air pressure inside the tube, the outside air pressure supports the column of mercury and we may measure the height from the surface of the bowl to the top of the column (which is why barometer readings are in inches or millimeters of mercury, even on a dial type barometer). A very low atmospheric pressure would be about 28.5 inches (724 mm) while 760 mm (29.92 inches) is standard sea level pressure. A falling barometer reading, especially a rapidly falling one, usually is taken to mean bad weather is approaching. High pressure usually suggests clearing.

66

Unless mercury wets the resistance wire, it should be possible to make an electronic barometer. This would be done by taking an 800 to 850 mm long glass tube of about 2 to 5 mm inside diameter and inserting about a foot of resistance wire in one end. Using a torch or Bunsen burner, the end of the tubing can be melted around the wire, sealing the end with a couple of inches of wire sticking out. With tubing this small, a quarter to one half pound (0.11 to 0.23 kg) of mercury will be sufficient to fill the tube and leave enough for the bowl. When the tubing is full (use an eyedropper), place your finger over the end, place the end in the bowl and clamp the tube gently to a support. I Note: Both mercury and glass tubing can be had from chemical supply houses, one quarter pound being the smallest unit mercury sold. Mercury can be harmful if you breathe the vapors, swallow it or otherwise get it in your body. But there is little danger from a barometer or putting your hands in it. If you were to drop a bit, and it got into the cracks of the floor, and you worked in the unventilated room for several years (as chemists do in a lab), the vapor could become harmful.!

Mercury is a very good conductor of electricity, hence if it wets the wire this scheme won't work. If you connect wires of a resistance measuring circuit to the bowl and the resistance wire at the top of the barometer tube, the reading will consist almost entirely of the resistance of the exposed wire above the mercury. As the mercury falls, the resistance will increase; as pressure rises, the reading will fall. The wire immersed in the mercury will not contribute to the reading.

For the most accurate readings, you will want the glass tube barely longer than the highest reading you expect. To save costly mercury, the tube diameter can be smaller than on sight barometers and will be very difficult to read by eye. However, you can calibrate it for your computer by measuring the actual height of the column or by reading resistance and using another barometer as a standard. One other caution: Do not wear jewelry when handling mercury, as it forms amalgams with silver and gold which make the gold look silverish and decrease the value of the metal.

Wind

The next weather item to measure is the wind. In most parts of the country a shift in wind direction preceeds a change in weather and often the direction of the wind will directly suggest the future weather — a wind from water is cooling, from land is dry, from

HOW WELL DOES YOUR ALTAIR RUN?

Parasitic Engineering products can improve the reliability and performance of your Altair 8800 or 8800a. And, until NEW YEARS you can upgrade your Altair and save $5 at the same time.

THE IMPROVED CLOCK FIX KIT

Is your ALTAIR:

* Slow to start up ...

* Writing all 0's or 1's into memory . ..

* Producing the wrong STATUS ...

* Having troubles running BASIC ...

Then your Altair may have CPU Clock problems.

Hundreds have been sold to universities, businesses, computer professionals and hobbyists. We guarantee each Clock Fix Kit to meet the Intel timing specifications for the 8080. The improved Clock Fix Kit.

only $15

THE C-V POWER SUPPLY KIT

Whether you have just a few boards or a full house, the Parasitic Engineering Power Supply Kit can deliver all the power your Altair needs. Note the performance features no simple replacement transformer can offer:

* HIGH OUTPUT: 12 amps® 8 volts: 2 amps total® ±16 volts.

* STABLE: Output varies less than 10% for any load, and less than 5% for any input from 100 to 130 v.

* EASY TO INSTALL: All necessary parts included. Installs in place of the standard Power Supply.

Don't let the Byte Snatchers get your Altair down. Guard against power line fluctuations that can rob the integrity of your computer. ..

only $75

**

!••■

CHRISTMAS SPECIAL

Bom kits only $85

Orders must be postmarked before Jan. 1, 1977. All kits shipped Postpaid. Calif, residents add 6% sales tax.

PARASITIC ENGINEERING

POBOX6314A

ALBANY CA 94706

67

-STYROFOAM BALL

MAST LEVER ARM A80UT I METER

r

RAIN SHIELD

PROTECTIVE SHROUD

TO ELECTRONICS

X-DIRECTION POT

Y-DIRECTION POT

TO ELECTRONICS

1

Figure 3: Conceptual Design of a Wind Velocity and Direction Measuring Instrument. A styrofoam ball is mounted on a long thin shaft (not too flexible, however). This shaft is connected to a two axis gimbal mechanism such as that provided by a joystick device. The springs are shown mounted below the gimbal for clarity, but could just as well be mounted above the gimbal point. A shroud which protects the electronics is a must, as is a mating rain shield which does not have actual contact with the shroud but does protect the opening in which the stick moves. The tension of the springs must be chosen to oppose the wind force and prevent movement of the stick to its limits of motion except in worst case (hurricane?) level winds. The wind velocity is a function of the distance off center, and the wind direction is found by the direction of the movement as measured by the resistance. Calibration can be accomplished by mounting the device on a rack on top of a car, and driving at fixed speed through a measured distance with a stopwatch for timing, on a windless day. Actual velocity can be calculated with the stopwatch and distance measures; the speedometer is merely used as a set point indicator for the test.

the south is usually warmer, from the northwest colder.

Wind is normally measured electronically by two devices: a spinning anemometer which uses optical or magnetic switches to frictionlessly create pulses, the more pulses the greater speed; and a wind vane attached to a selsyn that matches the direction to a readout. Or like the Heath Company, you can mount a circle of magnetic reed switches, with a magnet on the vane, with a closed switch or two indicating the wind direction.

But what is the point of having a computer if you don't use it? I suggest the following (untested) way to measure both the wind direction and velocity by creating a computed vector from gimbal resistance readings.

As shown in figure 3, the styrofoam ball on the long wand offers "uniform" resistance to the wind. At the base of the wand supporting the ball, a gimbal mount (like a joystick), permits us to take resistance readings which show how far from the center point the ball is. If the unit is aligned properly, we have two coordinates one the distance north or south of center (NS) and one the distance east or west (EW).

Using the formula for lengths of sides of a triangle, it is very easy to compute the distance from the center, and with a simple sine computation to get the angle. Of course, an allowance must be made (in the software) for differences in the potentiometers, etc.

The angle of the vector is the direction of the wind. After allowing for nonlinear factors such as the return springs, the way wind behaves, and flow patterns on the stick, the length of the vector is proportional to the velocity of the wind. Calibration can be done by first taking readings with no wind, for the zero point, and then at known velocities (perhaps borrowing a hand anemometer — or you could mount it on your car and take readings at different speeds as you rotated it).

Daylight

Many other additions to your weather station are possible. A set of photocells could be used to detect sunrise and sunset and possibly even gauge the overcast. The clear sky is polarized. Thus a pair of matched photocell readings in software peering through polarizing filters (like lenses from Polaroid sunglasses) which were crossed with respect to each other would give the same reading with an overcast sky and different readings with a clear sky.

Rain Volume

Measuring rain is relatively straight

68

forward. A funnel collects the drops and feeds them to a tilt pan as in figure 4. As each side of the pan fills, the pan tilts, draining the full side and setting a new side, A modest counter simply counts the tilts.

The amount of rain that has fallen is given in inches. To compute it, you first measure the amount of water collected in the tilt pan for each tilt (in a graduate or measuring cup). You then compute the area of the open face of the funnel and the inches of rain per tilt is the volume of water per tilt divided by the area of the funnel. (For example, a 3 inch (7.62 cm) funnel has an area of 7.07 square inches (45.6 cm2). If eight tilts of the pan (four on each side), yielded 2 cubic inches (32.7 cm^) then the inches of rain per tilt would be 0.0354 inches (0.090 cm)).

Real Time Clock

The final item needed for dealing with the weather is the actual time. As mentioned before, this can be computed if the interrupts come at very regular intervals. However, it would be much neater to interface an actual clock with your computer. This would allow you to store specific times and dates with your data. An additional step would permit generation of interrupts at far longer intervals than the real time clocks of most computers.

The simplest actual time clock would consist of a simple TTL counter from line frequency with digit decoding (as for input to 7 segment decoding). Four inputs, two 4 bit digits to each input, would provide day, hour, minute, and seconds to be read at any time. Very simple decoding could set an interrupt, and your interrupt subroutine could check the time to see what to do (take the weather or wake you up).

A far snazzier clock might deserve an entire article to itself. It would require one input and one output port and would use a CMOS clock chip. On the same card would be decoding from 7 segment to digits and demultiplexing of the display. And since we have done that, how about throwing in a calculator chip for floating point arithmetic?

Operation of the snazzy clock would involve sending a code to the input port which would: 1) Set an interrupt latch, 2) Request a digit to be output, or 3) Load a digit to the calculator. Assuming the interrupt occurred, the computer would look at the input port and find a number representing the kind of interrupt, which it could then use for a subroutine jump. To get the time (or a calculated digit), the computer would send the appropriate code with the digit number to the output port. The display

CHANGES STATE AT THIS LEVEL, DUMPING WATER

Figure 4: Conceptual Design of an Automatic Rain Gauge. The rain is collected by a funnel of known area, and piped down to the metering setup. The metering is accomplished with a "tilt pan." When the pan fills up to a level which depends upon its design, it flips over into a second state, dumping the previous water and causing a lever arm to pass the sensor. The amount of water needed to reach the tilt point is a known volume. By counting sensor output pulses during a rain storm, the total volume is measured. Given the area of the funnel, the weather data acquisition program can calculate the "inches of rain " from the volume count. The sensor might be a magnet and a reed switch, or a photocell and an LED source. (It is even conceivable that the sensor could be a microswitch with a feeler arm.)

would be demultiplexed and the appropriate number would be latched to the input. Stepping through the digits would get the whole number.

But enough of that. Predicting the weather can be a fascinating challenge, perhaps the ultimate game, in which the prize is being right (or dry). You can begin simply and build to any level you wish."

69

About the Cover

This month's cover is by Victor Ivashin, engineering project manager, Transamerica Computer Co, 2470 Estand Way, Pleasant Hill CA 94523. He is one of ten-yes, ten—grand prize winners of BYTE's first (but probably not last) computer art contest. We were pleasantly overwhelmed with so much excellent art that our original modest list of prizes (one grand prize winner, two runners up, five honorable mention winners) had to be revised upward.

Each of the following talented entrants will receive $100, lifetime subscriptions to BYTE, bound volumes of BYTE Volume 1 (numbers 1-16), and will see his or her work on the cover of a future BYTE:

V

\

\

\ l'l;*^ f

if

■ ill

^^M^MWWWMMMii

■j

m

•/

.and the Contest

Duane Bibby

Mt View CA 94040

Sandra Crandall Naragansett Rl 02882

Walt Donovan University of Illinois UrbanaIL 61801

Larry Jubb

Melanie Jubb

San Jose CA 95112

Scott Juds Lynnwood WA 98036

Henry Lieberman Steve Phillips Ken Kahn Aubrey Jaffer Bonnie Dalzell Cambridge MA 02139

Birgit Quednau Giessen, GERMANY

Dave Sheppard Viroqua Wl 54665

Arthur C Taber

San Francisco CA 94127

Runners up will receive one year BYTE subscriptions, see their art appear through the months on the inside pages of BYTE and be paid at our usual rates according to the size and number of their illustrations used. They include:

Ken Aupperle Melville NY 11746

David Caulkins

Los Altos CA 94022

Margot Critchfield Pittsburgh PA 15260

Keith Paul Ewanco Pittsburgh PA 15204

Anthony Harper Garden City AL 35070

Gary Hill

Woodstock NY 12498

B Lynn Irwin Longmont CO 80501

(see page 139)

Joseph P Jacobson Maple Shade NJ 08052 Christian Kuebler Trevose PA 19047

Michael Mozer Berkeley CA 94707

Mike O'Shaughnessy Durham NH 03824

Stephen J Rogowski CohoesNY 12047

James Templeman Springfield VA 22152

Tedd Wolf

New York NY 10034 I

(see page 6)

(this page)

70

Introducing Sol Systems

A complete computer/terminal concept with all the standard features, software and peripheral gear you want in your personal computer.

■ •

-i*

H

^

■ ^A.

i:

"wpo«itto»> w m

1 1

\^l

■■

Sol Terminal Sol k'rmiiul

P P H P P B~»~ffl~S S3 S

■=-ob • p © a e • p n p p as —

TFT

TT ^ T

Sol Systems put it all together.

One source for hardware and software, One source for engineered compatibility of computer and peripherals. That's the Sol plan.

Though the microprocessor made the powerful small computer possible, a lot of folks found out early efforts in the marketplace were selling the sizzle a lot more than the steak. After an initial investment of several hundred dollars, you ended up with some nice parts, but no memory of any kind, no I/O devices or interfaces, no display, printout or software.

The Sol plan ends all that. Processor Technology takes the position that it's far better to be right than first. So let's get down to the Sol no tricks plan.

For $995 in kit form, the first complete small computer

Standard is a basic word at Processor Technology. The Sol-20 has more standard features than any other small computer we know of. Here's what you get.

8080 microprocessor* 1024 character video display circuitry* 1024 words of static low-power RAM* 1024 words of preprogrammed PROM* a custom, almost sensual 85-key solid-state keyboard* audio cassette interface capable of controlling two recorders at 1200 baud* both parallel and serial standardized interface connectors* a complete power supply* a beautiful case with solid walnut sides* software which includes a preprogrammed Prom personality module and a cassette with Basic-5 language plus two sophisticated computer video games* the ability to work with all S-100 bus (Altair 8800/IMSAI/PTC) products.

There are no surprises. Everything you need to make it work is here. In kit form, nominal assembly time from our fully documented instructions is four to seven evenings.

Or start with the Sol-PC for just $475

You can begin your Sol system with the all on one board Sol-PC kit. It has all the

memory and interface electronics including video display, keyboard interface, audio cassette interface, all necessary software and the ability to accept the full Processor Technology line of memory and interface modules. Use the Sol-PC as the basis of a microcomputer, low cost CRT terminal or editing terminal

And these specs are standard

Display: 16 lines of 64 characters per line. Character set: 96 printable ASCII upper and lower case characters plus 32 selectable control characters. Display position: Continuously adjustable horizontally and vertically. Cursor: Selectable blinking. Solid video inversion. Programmable positioning standard. Serial interface: RS-232 and 20-mA current loop, 75 to 9600 baud, asynchronous. Parallel interface: Eight data bits for input and output; output bus is tristate for bidirectional interfaces; levels are standard TTL. Keyboard interface: Seven-level ASCII encoded, TTL levels.

Microprocessor: 8080, 8080A, or 9080A. On-card memory: 1024 bytes PROM (expandable to 2048 bytes), 2048 bytes RAM. External Memory: Expandable to 65,536 bytes total ROM, PROM, and RAM. Video signal output: 1.0 to 2.5 volts peakto-peak. Nominal bandwidth is 7 MHz. Power required (±5%): +5 volts at 2.5 amperes, +12 volts at 150 mA, and —12 volts at 200 mA.

The Sol plan, completely expandable.

By filling the basic main frame with tailor made Processor Technology plug-in PC boards, you can really expand the computing power and flexibility of your Sol-20 Personal Computer.

New items are being announced frequently, but right now, here are some of the

things you can add to your Sol-20. The ALS-8 Firmware module is an assembly language operating system to give you the power to develop and run programs. Use it to quickly write, edit, assemble, de-bug and run your own programs. Some say it's the most useful software development on the market today, but modesty prohibits.

And when it comes to add-on memory boards, you've come to the right place. We've probably got more than anyone else. Choose from 2K ROM or 4, 8 or 16K RAM (read all about the 16KRA board on the last page of this ad). The PT 2KRO will accept up to eight 1702A or 5203Q erasable, reprogrammable memories (EPROM's) with the ability to store in a non-volatile fashion up to 2048 eight-bit words.

Our read/write memories are the industry standards for high reliability. We know, because we have literally scores of customer letters saying "Your memory modules work and keep on working."

To help you solve additional interfacing problems, add the 3P+S I/O module. Here's a board with two 8-bit parallel I/O ports with full handshaking logic and a serial data rate that can be set anywhere between 35 and 9600 baud. Set up control conditions for both parallel and serial ports. Data and error flags can be polled.

A full line of Sol-20 tailored peripherals

No computer can do the full job without the right set of peripheral gear. PT has sought out the best manufacturers of peripheral equipment and worked with them to give you a choice of quality so you can get the most out of your Sol-20. Choose from line and serial printers, perforated tape readers and punches, floppy disk memories, black and white or color graphics displays, A/D, D/A converters and more.

Software, the Computer Power Essential

A big part of making the first complete small computer is providing you with a wide range of easy to use, easy to obtain, low cost software. For the Sol-20, we've developed a whole group of offerings. And more are on their way.

TREK 80

Based on the NBC television series STARTREK, this 8K assembly language program uses the VDM graphics capability for real time war with the Klingons. No holds

barred, they're out to get you from each of the 100 quadrants. TREK 80 resides and runs in 8K of memory and requires the PTC Sol or VDM-1.

New PT 8K Basic

Processor Technology has the fast new BASIC you've needed for so long. Using our superior BCD math, the speed of the new language is double that of our own fast BASIC-5. To multiple program capability, we've added strings, multidimensional arrays and multi-line, multi-variable, user functions. This is the BASIC for full capability systems. Look at the BUSINESS ANALYSIS program example in the manual to find out how PT 8K BASIC gives you more while using less memory for the working program.

Five reasons why it's so good

1. Strings are not limited to a length of 256 characters and can extend to the bounds of memory.

2. Renumbering of lines with full gosub, etc. updating. Also EXAM and FILL allow for direct memory operations while IN and OUT provide direct I/O capability.

3. Every statement is fully implemented. RESTORE, for instance, restores the data pointer as usual. BUT, with PT 8K BASIC, RESTORE 100 will set the pointer to the data located at line 100.

4. Fully implemented string and math functions include all of the standards — VAL, STR, ASC .... EXP and LOGI and LOG. Also, the more advanced statements such as ONGOTO and IF THEN ELSE along with a loop EXIT are provided.

5. PT 8K BASIC has a 'perfect' implementation of PRINT USING which saves program memory space while still providing more capability than the usual PRINT USING.

The new PT 8K BASIC is similar to the version we're developing for ROM. You use it here before buying the more expensive ROM.

You'll find your PT 8K BASIC also includes both a built-in VDM driver and special editor. The cassette version also includes named program SAVE and LOAD for the CUTS Cassette interface or Sol.

New 8080 FOCAL™DEC

8080 FOCAL has been updated to include operator precedence and all other standard FOCAL conventions. It also has a driver for VDM-1 display and PT Cassette program SAVE and LOAD This version is available only on CUTS Cassette and resides in 8K of memory.

GAMEPAC 1 to entertain family and friends

Show off your VDM-1 and computer with this lineup of video games. Each is included on the cassette or paper tape.

TARGET keeps track of your hits and misses while you blast away at the moving target. You and your family can get together for whole evenings at a time with this one.

ZING. Learn hexidecimal arithmetic fast with this VDM game as two players keep the five balls in the air. If both of you get too good .. . ZING, of course, will make it harder.

LIFE. The Sol or VDM makes a good display for the game of life and this version allows two modes of operation. The universe can be flat or wrapped around on itself. The real meaning of life we'll leave to you but it's fun to watch.

PATTERN. We haven't figured this one out ourselves but it's sure nice to have your computer doing it. You choose the geometric design and how rapidly it changes.

Sol Systems Price List

(prices are net, effective Dec. 1, 1976)

SOFTWARE

ITEM with manual

BASIC 5 software #2

8K BASIC

New 8080 Focal

TREK 80 video

game GAMEPAC 1

video games MATHPACK video

calculator ASSEMBLER

software #1

CUTS Paper

Source cassette tape

yes ** $19.50

no $29.00 $37.00

no $14.50 N/A

no $ 9.50 $14.50

no $ 9.50 $14.50

yes $14.50 $19.50

yes $14.50 $19.50

**CUTS cassette of BASIC 5 is included FREE with all orders for Sol units or CUTS cassette interfaces. Additional cassettes available for $14.50.

Sol system owners be sure to note Sol system on your order. These special versions use less code and provide easier loading along with more convenient operation. SOLOS, SOLED and CONSOL all have provision for the special versions.

All Processor Technology software is distributed on an individual sale basis for personal use. No license to copy, duplicate or sell is granted with this sale. Each software package has been copyrighted by Processor Technology and all rights therein are reserved.

Sol Terminal Computers Kit Price

SOL-PC SINGLE BOARD TERMINAL

COMPUTER™ $475.*

SOL-10 TERMINAL COMPUTER™ Sol-PC with case, power supply and 70 key solid state keyboard. $795.*

SOL-20 TERMINAL COMPUTER™ all features of Sol-10 with larger power supply, 85 key solid state keyboard, fan, and five slot expansion backplane. $995.*

*Sol prices include CONSOL Personality Module. If SOLED Intelligent Editing Terminal Module or SOLOS Standalone Operating System Module is desired instead, add $100. If ordered separately, personality modules are $150 each.

Memory Modules Kit Asmbid.

ALS-8 PROM Resident Assembly

Language Operating System — $425

SIM-1 Interpretive Simulator

add-on option for ALS-8 — $ 95

TXT-2 Text Editing add-on

option for ALS-8 — $ 95

2KRO Erasable PROM module $ 65 $ 89 4KRA 4096-word Low Power

Static RAM $159 $195

8KRA 8192-word Low Power

Static RAM $295 $375

16KRA 16384-word Dynamic

RAM — $529

Interface modules 3P+S Parallel,Serial I/O

module $149 $199

CUTS Computer Users Tape

System cassette interface $ 87 $119

VDM-1 Video Display Module $199 $295

Mass Storage Systems

Helios II Disk System™ includes dual PerSci 270 floppy disk drive, cabinet, fan,S-100 bus compatible controller, power supply, system diskette with complete PTDOS software $1895 $2295

Misc.

EXB Extender Board $ 35 $ 45

WWB Wire Wrap Board $ 40 —

Prices, specifications and delivery subject to change without notice. Please allow up to two weeks for clearance of personal checks. Mastercharge accepted. All orders amounting to less than $30 must include $3 for handling.

New

16K RAM, fully assembled, $529

More bits per buck than ever before on a fully burned in and tested board unconditionally guaranteed for one year.

Processor Technology made the first 4K static RAM modules for the home computer market. Now in a price performance breakthrough we offer you a 16,384 byte dynamic memory module assembled, tested and burned in. Not a kit — and at $529 who'd want to build it from scratch?

Processor Technology gives you the features to make 4K dynamic RAMS work for you.

• Invisible refresh, no waiting while CPU is running.

• High speed 400 /xsec access time worst case Z-80 and 8080 compatible.

Versatile addressing, each 4096 byte segment is individually addressed to any of the sixteen available 4K segments.

Low power — typically 5 watts when running — the same as most 4K memory modules.

BATTERY BACKUP capability built-in for standby operation.

IMPORTANT NOTICE —No 16K memory module available is fully, truly static. 4200/4402 type "static" RAM's have high level, high current clocks with high transient power levels. Any RAM with 12 volt 30 mA clock pulses should not be called "STATIC" just because each memory cell is a flip-flop.

Specifications

Access Time Cycle Time Rams Used

Capacity Memory

Protect Addressing

Operating Power

400 nsec max

500 nsec max

Intel 2104orMostek 4096

types

16384 8-bit bytes

standard on card

each 4096 byte page

addressable

+ 7.5 to 10 VDC at 0.4 A typical

+ 15 to +18 V at 10 mA typical

-15 to -18 VDC at 20 mA max

The new Processor Technology 16K board is available for immediate delivery. See your nearest dealer listed below or contact us directly. Address Processor Technology, 6200 Hoi I is Street, Emeryville CA 94608, Phone 415/652-8080.

Processor Technology Dealers

CALIFORNIA

The Byte Shop 1514 University Ave. Berkeley CA 94703

The Byte Shop 2559 South Bascom Ave. Campbell CA 95008 The Computer Marl 624 West Katella#10 Orange CA 92667

The Byte Shop 2227 El CaminoReal Palo Alto CA 94306 The Computer Center 8205 Ronson Road San Diego CA 92111

The Computer Store of San Francisco 1093 Mission Street San Francisco CA 94103

The Byte Shop 509 Francisco Blvd. San Rafael CA 94901

The Byte Shop 3400 El Camino Real Santa Clara CA 95051

The Byte Shop 2989 North Main St. Walnut Creek CA 94596

FLORIDA

Microcomputer

Systems Inc.

144 So. Dale Mabry Hy.

Tampa FL 33609

GEORGIA

Atlanta Computer Mart 5091-B Buford Hwy. Atlanta GA 30340

ILLINOIS

The Numbers Racket 518 East Green Street Champaign IL 61820

itty bitty

machine CO., inc. 1316 Chicago Ave. Evanston IL 60201

The Chicago Computer Store 517Talcotl Road Park Ridge IL 60068

INDIANA

The Data Domain

111 South College Ave.

Bloomington IN 47401

MICHIGAN

The Computer Store of Ann Arbor 310 East Washington Ann Arbor Ml 48104

NEW JERSEY

The Computer Mart

of New Jersey

151 Kline Boulevard

Colonio NJ 07067

Hoboken Computer Works 56 Second Street Hoboken NJ 07030

NEW YORK

Audio Design Electronics

487 Broadway, Ste. 512

New York NY 10013

The Computer Corner

200 Hamilton Ave.

White Plains NY 10601

The Computer Mart

of Long Island

2072 Front Street

East Meadow, LI. NY 11554 TEXAS

The Computer Mart of New York 314 Fifth Ave. New York NY 10001

Synchro Sound Enterpri 193-25 Jamaica Ave. HollisNY 11423

OREGON The Real Oregon Computer Co. 205 West 10th Ave Eugene OR 97401

RHODE ISLAND

Computer Power, Inc. M24 Airport Mall 1800 Post Road Warwick Rl 02886

WASHINGTON

The Retail Computer Store 410 N.E. 72nd Seattle WA 98115

WISCONSIN

The Milwaukee Computer Store 6919 W. North Ave. Milwaukee Wl 53213

CANADA

The Computer Place 186 Queen St. West Toronto, Ontario M5V 1Z1

Trintronics 160 Elgin St. Ottawa, Ontario

The Micro Store 634 South Central Expressway Richardson TX 75080

IS&s

Signal Processing for Optical Bar Code Scanning

RETAINING

RING

LIGHT PEN

- FIBER OPTIC ASSEMBLY

LENS

RETAININGRING

mrmrrnrnm—

CODED BAR PATTERN

-FIBER OPTIC ASSEMBLY

—iiinarrriii

CODED BAR PATTERN

LENS SAPPHIRE BALL

n

Figure 1: Typical Commerical Fiber Optic Head Assemblies. The left diagram has a simple head; the right diagram shows a transparent sapphire ball used as a rolling contact point. In either case, light from the infrared source enters one set of fibers, passes to the end of the fiber assembly, through the lens(es) to the paper, is reflected or absorbed depending on color, returns through the lenses, and finally passes back up the other set of fibers to the photo detector. A disadvantage of this particular configuration is that the vertical incidence of light and reflected images can cause specular reflection problems.

Frederick L Merkowitz 134 N Main Natick MA 01760

To input bar coded data into your system it is necessary to convert the printed variable width bars into logic level signals suitable for serial data entry. To convert the serial bit stream into parallel, byte organized data, pattern recognition techniques are necessary. This article outlines the basics of the hardware aspects of bar code scanning covering various optical systems, detector characteristics, and signal conditioning. The software aspects are covered in another article in this issue of BYTE.

Optical Systems

There are two prime optical techniques for imaging the coded bar pattern onto the active region of the photodetector. The first and most widely used in commercial products arc fiber optic bundles such as illustrated in figure I. With this method, energy from a light source (either an infrared or red light emitting diode or an incandescent bulb) is focused onto the polished end of one of two plastic or glass optical fiber bundles while the photodetector receives the reflected light energy from the polished end of the other bundle. The two bundles are randomly merged and formed into a Y shaped assembly. At the bottom of the Y, light emerges from the polished end, is focused through a lens either onto a clear or

77

(a)

LIGHT SOURCE

(b)

APERTURE

INCANDESCENT LIGHT SOURCE

DETECTOR LENS

(c)

APERTURE

50% MIRROR AT 45* TO BAR PATTERN

HELIUM-NEON LASER

50% MIRROR AT 45° TO BAR PATTERN

HELIUM-NEON LASER

Figure 2: Some Alternate Physical Configurations of Optical Heads, (a) Coaxial optics uses a detector and its source mounted coaxially with separate lenses. As in all vertical viewing systems, specular reflection is a potential problem, (b) Side by side optics uses a separate source and detector lens, with an oblique angle which lessens specular reflection problems, (c) The floodlight approach eliminates lenses for the source, and floods the bar pattern with more light than it needs, (d) Laser fixed beam scanners dispense with lenses at a price: the much higher cost of the laser. At the left, the target is at right angles to the beam; at the right, the target is in line with the beam.

78

#

!•,•

ff

*

HAVE A fUOON CHRISTMAS !

i i

If your favorite computerist has an 8080 bus system, what better way to say Merry Christmas than with a MERLIN Video Interface? MERLIN is not just a superb character display . . .

MERLIN is a whole system . . . MERLIN is a text display, a high density graphics display, a keyboard interface, a serial I/O port, a RAM/ROM memory and, an intergrated and expandable software package.

MERLIN is a gift that keeps giving. MERLIN'S keyboard and I/O connector allows the MERLIN owner to add a variety of Miniterm hardware expansion products. MERLIN'S ROM software will turn your computer system into a professional software development tool. Give your favorite computerist (yourself, perhaps?) a MERLIN for Christmas.

An assembled, tested MERLIN is only $349; in kit form, which includes PC boards, IC sockets, User Manual and all parts except memory MERLIN is only $249. The Monitor/ Editor (MBI) ROM, 2K X 8, plus 256 X 8 RAM which plugs into MERLIN is $39.95. A User Manual is available separately and deductable from your MERLIN order, for $8.00. Master Charge and BankAmericard accepted. For phone orders and delivery schedule call (617) 648-1200.

All prices subject to change without notice.

THE INTELLIGENT VIDEO INTERFACE ROM Monitor/Editor software makes your computer into a professional software development system. User Manual contains full listing.

Altair/IMSAI Plug-in Compatible. Graphics: 160H or 80H by 100V.

ASCII: 40 characters by 20 lines. Programmable Display Format.

Also coming are MERLIN add-ons: 1500 baud cassette unit, game controller, super dense graphics, joystick interface, and more interface boards such as Modem and cassette with ROM software.

MiniTerm Associates, inc.

Box 268, Bedford, Mass. 01730

—

ajl sa^V 1

# i !

MiniTerm "^

mtm

i "^ I

Sw. >, ■-&* p "J

L#"V#? ...r..]|;

MifJ=*s*L LA

8

k

PL ."%£■£■. W"

About the Author

Fred Merkowitz has considerable experience with bar code electronics as it is commercially practiced, through employment over the years with Electronics Corporation of America, RCA and Identicon. Like a number of people in this field, electronics is both his hobby and profession.

red colored sapphire ball and thereby onto the printed bar pattern or directly onto the bar pattern. Light reflected from the bar pattern returns through the ball and lens or lens and is refocused onto the optical fiberbundle. One half of the light travels back through the detector bundle to the detector.

Figure 2 illustrates the other more direct methods of imaging the bar pattern onto the photodetector. In figure 2a light is focused through the larger lens onto the bar pattern, reflected through the small lens and then onto the photodetector. This method, called coaxial optics, is used in another commercial scanning system.

Figure 2b illustrates a side by side approach where the light from the source and the light reflected from the bar pattern pass through identical lenses.

In figure 2c the source floods the viewing area of the bar pattern with light, thereby saving the cost of one lens. While there is a lens used for focusing the reflected light onto the photodetector, the total energy incident on the detector is quite low and therefore more gain is needed in the signal conditioning circuitry.

Figure 2d illustrates a novel use for your hobby laser (such as those purchased from

/BABY! I MICROCOMPUTER

&

#,.

'(*/

">■

Portable; supplied in attache case: Tape interface; 1200 baud:

Video output; 128 character flicker free:

Modular expansion:

Software supplied with system:

BABY! I SYSTEM with 2K RAM $850.00

BABY! I SYSTEM with 4K RAM $1000.00

4K Static RAM Add-In $205.00

STUNT CARD FOR SYSTEM Expansion: $250.00

2 P.I.A.'s Tri-State Buffered Data, and Address. Interrupts and I/O Serial TTY with 50 Pin Connector.

"BABY! I" Floppy Diskette Drive: with Power Supply and Controller.

• Warranty and maintenance program:

STM SYSTEMS, INC.

P.O. BOX 248

MONT VERNON, N.H. 03057

603-673-2581

$750.00

Edmund Scientific). This is called a fixed beam laser scanner (to distinguish it from a scanning beam reader) and will operate with lasers of 0.5 mW (500 microwatts) power output or less. In this system the laser either shines through a beam splitter (50% mirror) or is reflected from the mirror onto the bar pattern and reflected directly back to the mirror where it either is reflected from the mirror or passes through the mirror onto the photodetector. The advantage of this system is that because the laser beam spot size is approximately 10 mils (0.01 inch, 0.0025 cm) at the half power points, no lenses are needed for focusing either the incident or reflected light.

With all of the systems described, there is always the choice of either moving the light source and detector past the coded bar pattern or fixing the source and detector assembly while moving the bar pattern past the beam of light.

Detector Characteristics

Light reflected from the coded bar pattern (10 nW to 1 mW) impinges on a silicon photodetector, either a photo transistor or a photo diode. While the photo transistor, either in a single or Darlington transistor configuration, inherently offers far more detector gain, there are tradeoffs in speed (10 to 100 jus rise and fall time for the photo Darlington, 1 to 10/is rise and fall time for the photo transistor) signal linearity, and dark current. The photo diode or photo PIN diode offers the highest speed (10 to 100 ns rise and fall time for a photo diode, 1 to 10 ns rise and fall time for the PIN photo diode), linearity (7 decades of range for the PIN photo diode) and lowest dark current (1 to 10 nA for the PIN photo diode).

While the light may originate from an incandescent, red or infrared LED or heliumneon laser, the spectral characteristics of the silicon detector, whatever its configuration, is such that approximately 80% of its response to energy occurs in the near infrared wavelengths of 0.75 to 0.9 microns (see the GE Optoelectronics Handbook, 1976 edition); therefore, an efficient electro-optical system will have a source with the majority of its emitted energy in the same band.

Signal Conditioning

After the photodetector converts light photons into electron-hole pairs, the signal conditioning circuitry amplifies the faint signal (10 nA to 1 mA peak to peak, 100 juV to 100 mV peak to peak) to a useful level, in most cases logic level (1.6 mA, 5 V).

There are a number of elements to the "standard" signal conditioner, as illustrated

80

cv

GAIN

10 T0 30pF ~)l

at\

20K

-wv

I00K

-wv—

I00K —WV II

5V A

CURRENT TO VOLTAGE CONVERTER

I PHOTO DIODE OR I PHOTO PIN DIODE

SCANNING HEAD ASSEMBLY

PA

GAIN |00K

10 TO 30pF -31

I00K ■WV—

100

-wv

K 12 + ^>

IC3d LM324

IN9I4

^H

>20K

-AMPLIFIED SIGNAL -REFERENCE LEVEL TIMING 50% OF PEAK TO PEAK AMPLITUDE

C3C M324

05/iF .05,1F

IC3b LM324

^'

REFERENCE LEVEL

+ 5V A

IC3 ■ BLACK AND WHITE PEAK HOLDING

IC3 POWER

PIN4-+5V PIN ll-GND

AMPLIFIED SIGNAL

IC4

LM3IIN

COMPARATOR

IOK -WV

IOM

-wv

in figure 3: The current to voltage converter (assuming you are using a photo diode for speed and linearity), a post amplifier, a black and white level peak holding circuit and finally a comparator that acts as a 1 bit analog to digital converter.

The current to voltage converter illustrated is a bit unconventional in that the volts per microampere conversion factor is adjustable from 10 V/fxA down to 0.5 V/;uA with the component values shown. The post amplifier is again adjustable with a gain factor of 1 to 100. The peak holding circuit holds the peak values of the white level and the black level for the length of time necessary to read through a line of coded bar pattern. The difference between these peak values is divided in half. This 50% peak to peak voltage is presented to the reference input of the comparator while the amplified signal level is presented to the inverting input. If the signal level is greater than the reference level (implying a white space), aO logic level is output from the comparator; and if the signal level is less than the reference level (implying a black bar), a 1 logic level is output.

Another, possibly superior, experimental signal conditioning circuit is shown in figure 4a. It combines a "super differentiator" for

Figure 3: A "Standard" Signal Conditioning Circuit. This circuit processes the low level signal from a photo diode, converting its current output to a voltage in the first amplifier, amplifying it further with a second stage. The amplified signal is then routed to peak holding circuits which set the reference level and a comparator which outputs a 0 or I level based on the reference level established.

edge detection, a high gain AC amplifier, and a dual window comparator. In the "super differentiator" the DC current level at the base of the photo transistor (Q1) is maintained at a constant level by DC servo action whether the change in DC level is caused by temperature variations, ambient light, fiberoptic cable crosstalk, varying gray level of pattern background or any other DC or low frequency factor. Q1 may also be any NPN high speed transistor with the electro-optical input through a photo diode, as shown in figure 4b, for maximum bandwidth.

The amplified differentiated electrooptical signal is picked off at the collector of Q2 where it is further AC amplified and passed to a dual threshold comparator. The output of the comparator is a short pulse at each transition of the space to bar and bar to space edge. These pulses can either tickle the interrupt input of your microcomputer or when fed to a flip flop (toggle) they can be

81

+ VCC

ALTERNATE FOR 01

purvrn (

>C

DIODE f

J*)

01

GP^Y /r>

L 2N2222

\*(x\

-*%}

B.

ICI

RCA 3140 OR

LM3I8

SUPER DIFFERENTIATOR"

^ 'MP

/77

ANALOG POWER VCC -+5 TO +20V

BYPASS CAPACITORS TO GROUND O.l^iF AT ICI.IC2

IC2

RCA3I40 OR LM 318 AC AMP

I0OK

m

DUAL THRESHOLD COMPARATOR

IC3o LM339

+ 5V <IOK

IOOK -Wv51

5IK

a. m 7 tS*^

.lMF

m

IOM

PIN3- + 5V PIN 12-GND

-O INTERRUPT PORT

m

PEN MOTION

BAR CODE PATTERN

POSITIVE EDGE

NEGATIVE EDGE

FLIP FLOP "0"

INTERRUPT LINE

Figure 4: A "Super Differentiator" Signal Conditioning Circuit. This circuit is edge sensitive and outputs short pulses at each black to white or white to black transition. The timing diagram shows the outputs of the circuit, corresponding to the bar code pattern shown.

Software Structure For Interrupt Driven Scanning:

COUNT LOOP: A background program with a tight loop which increments a counter until an interrupt occurs. The counter is reset by interrupt service.

INTERRUPT SERVICE: Response to the interrupt which stores away the count, clears the count, then resumes the COUNT LOOP. Initialization of the scan follows the first low (ie: approximately correct) count. The first black bar width should go into the first address of the input table, with alternating pairs of black then white counts filling the input table until the end of the scan. When the count exceeds a predefined maximum value, the scan is presumed done.

BIT PACKING and FRAME analysis are as discussed in Keith Regli's article.

read by a serial 10 port. These two circuits demonstrate some of the serial signal conditioning schemes currently in commercial or experimental use. For those of you who wish to input bar coded data in a parallel format, figure 5 shows a block diagram of a software oriented scheme, an analog to digital converter feeding an 8 bit 10 port. When using such a parallel voltage level input scheme, your software must handle the task of making a 0 or 1 (white or black) decision instead of the hardware as in the serial schemes of figures 3 and 4.

System Considerations

When working with electro-optical signals a number of factors are vital for a successful scanning system:

1. The printed bar pattern [we take care of this CH].

2. Use of the hand scanner.

3. Use of a fixed scanner.

4. Low level signal amplification.

1. Though it may seem trivial to worry about printing black bars on white paper and being able to read them, there are problems such as the carbon content of the black ink. Unless the "carbon black" content of the ink is at least 15%, the ink may be invisible in the near infrared which happens to fall in the maximum sensitivity band of the silicon photodetector. For exam

82

5 MHZ

r

iw rh

T DUAL

THRESHOLD

CURRENT TO

VOLTAGE CONVERTER

POST AMPLIFIER

SEE FIGURE 3

COMPARATOR

3£

:=CH

I VOLTAGE SEE FIGURE 4 .OUTPUT

REFERENCE VOLTAGE

pie, a mark made with a black fiberpoint pen is invisible to an electrooptical scanner using an incandescent bulb or infrared LED as the light source, yet may be seen by a scanner using a helium-neon laser or red LED as its light source. Of course, in the latter case considerably more gain is needed in the signal conditioning circuitry because the quantum efficiency of the detector is down considerably. The other problem in scanning a printed bar pattern is the grayness of the white paper. The ratio of the white level to the black level is called the contrast ratio and determines the peak to peak signal level seen by the photodetector. 2. When using a hand scanner that you've built or purchased, the first consideration for a successful line scan is the matter of reading speed. 10 to 30 inches per second (25 to 76 cm per second) is the "normal" scanning speed range. People using a hand scanner, or light pen as it's more normally called, for the first time inevitably scan at a rate too slow for the signal conditioning or for the software counter to handle. The ideal rate is reading from one end of the page to the other (11 inch or 28 cm distance) in about 1/2 second for a reading rate of approximately 22 inches per second (56 cm per second). The second consideration is the acceleration or instantaneous change in scanning speed. This is usually caused by pressing too hard on the paper or guide and thereby reading in a jerky manner as the light pen skips from one rough spot to the next. Normal software techniques that compare a running numerical value of the bar width with that of the running

UP

DWN

8 BIT

BIDIRECTIONAL

COUNTER

(2x74193)

8 BIT

DIGITAL

TO

ANALOG

CONVERTER

(MCI408L8 + OP AMP)

numerical value of the space width cannot handle more than a 2 to 1 change in instantaneous scanning rate. The third consideration is that of the angle of the light pen to the surface of the paper. Holding the light pen perpendicular to the paper is not correct. The best angle is about 15 to 30° from the vertical when the paper surface is lying flat; that is, about the same angle as you hold a pen or pencil when writing. The reason for this strange problem is a condition called "specular reflection." Specular reflection can be experienced by taking a page of BYTE and holding it in such a manner as to cause a bright light to reflect off the paper into your eyes. Notice that the light reflected off the black ink is just about as bright as that reflected off the white surface. Your light pen experiences this same effect when it is held perpendicular to the paper and will cause either a no read or a high error condition. The best signal conditioning and software techniques cannot help. If you build a laser fixed beam scanner to read BYTE's bar coded programs, you might place a page on a fixture mounted on a turntable. Imagine a large coffee can with a guide hole sitting on your turntable, with a page of printed program material taped to it. If the can were 12 inches (30.5 cm) in diameter and turning at 33 rpm, its rotational speed would be about 20 inches per second (51 cm per second), just right for the signal conditioner and hardware to handle; also the same

STROBE

8 BIT LATCHED INPUT PORT

TO PROCESSOR

Figure 5: Block Diagram of a Software Oriented Signal Processor. A tracking analog to digital converter connected to an 8 bit port can be used to follow the signal and allow software to implement the peak sampling and bar state determination algorithms. The front end processing of the current to voltage converter and post amplifier would be similar to figures 3 and 4 as noted. A typical 8 bit DA C useful in this application would be the Motorola MCI'408L8 part.

83

*The author and BYTE magazine do not assume any responsibility for use of any circuitry described; no circuit patent licenses are implied.

warning about the light beam being directed perpendicular to the paper applies. One thing more: Make sure all of your optical elements are clean, and dust- and fingerprint-free. It's amazing how often dirt or dust on the optics is responsible for degraded scanner performance. 4. When you deal with reflected electrooptic signals, their power level is often in the nanowatt range "down in the mud," so to speak. This is the same range as that of the dark current of the detector (thermal leakage currents) and the ambient noise level. Circuits like that using the "super differentiator" avoid many of the leakage and drift problems but are susceptible to oscillation when adjusted for very high gain. Keep the low level input separated and if possible shielded from the high level output of the first stages. Use no more than 36 inches (about 1 M) of shielded coax between the detector and the low level input amplifier because of the capacitance effects of the cable. Keep the metal case of the light pen at chassis ground and the length of component leads as short as possible. Bypass all active

component power leads with at least 0.1 /J.F capacitors and return all ground leads separately to a common point at the ground terminal of the power supply. Under no conditions should digital and analog circuits share common power and ground leads, for obvious reasons. Since the gain of the signal conditioning circuits varies from 5,000 (74 db) to 100,000 (100 db) or more, it is critical to carefully lay out and shield circuitry to avoid thermal and microphonic effects. Where possible use input "guarding" of the low level amplifier to further reduce noise effects. (See a discussion of this technique in National Semiconductor's Linear Applications, Volume I, published February 1973.) In summary, we have covered the basics of light pen or hand scanner optics, detectors, and signal conditioning. We have also discussed some of the considerations in using and building your own scanner and signal conditioner. This article introducing optical scanning is meant only to help you take the first step' in a long journey. Hopefully there will shortly be several products on the market to take advantage of these techniques on a regular basis."

Build a Microcomputer System With This $7.95 Handbook.

At last, a practical, step-by-step approach to building an oper ational microcomputer for a bargain price. The lasis Microcomputer Applications Handbook will guide you through all phases of actual design of a working 8080 microcomputer system, including writing a system monitor program. Both development and OEM systems are covered in detail.

Microcomputer P-S. If the Microcomputer

Applications Handbook isn' everything we say it is, return it within 15 days for a full refund.

ORDER BEFORE JAN. 15, 1977 AND WE'LL SHIP YOUR HANDBOOK POSTPAID.

Handbook

^

□ Here's my check or money order for $7.95. Add $.50 foi postage and handling if ordered after Jan. 15, 1977. (California residents please add $.52 state sales tax.) Overseas shipments will be made surface unless S5.00 shipping is added.

O Charge to the credit card number below:

BankAmericard No. _

Master Charge No.

from right above

Credit card expiration date _

FIRM _

NAME .

ADDRESS. CITY

MAIL YOUR ORDER TO IASIS, INC. ■■■■■■■■ 815W. MAUDE AVE., SUITE 14 SUNNYVALE, CA £

HEY, ALTAIR... GOT THE TIME?

If not, you need COMPTEK's NEW

CL2400 Real-time Clock.

• Self-contained hardware clock

• Can be set and read by BASIC

• Programmable interrupts

• Top quality board, components, and I.C. sockets

• ALTAIR and IMSAI compatible

• Uses: 24 hour clock

Software timer Event timer

KIT —$98 ASSEMBLED — $135

"Real World Electronics"

P.O. Box 516 La Canada, CA 91011

Circle A207

Audio Dt

Electronics

>esign

Presents A New Concept in Mini/Micro Computer Shops

\=

=000=

^

The Computer Emporium

Authorized Dealers for IMSAI, S.W.T.P.Co, O.A.E. Processor Technology, D.B.S. and many others.

Come see our showroom and see the Difference.

Support Service Sales

The Computer Emporium

487 Broadway 510-512

New York, N.Y. 10013

212-226-2038

84

NEW IN

PHOENIX Bits & Bytes

COMPUTER SHOP

6819-C N. 21 st Ave. Phoenix, Az. 85015

(602) 242-2507

Featuring:

EPA Micro-68 System Micro Term-Act 1 Keyboard Video Monitors Books, Magazines

GRAND OPENING Come on In!

THE COMPUTER CORNER

Westchester-Fairfield Counties

•IMSAI 8080 •POLY-88 •Teletype supplies

• Full line of magazines

•Processor Tech I/O Boards •Computer Book Service

• Magnetic tapes & disks •Braingames & puzzles

THE COMPUTER CORNER

White Plains Mall

200 Hamilton Avenue

White Plains, N.Y. 10601

Tel: (914) 949-DATA

Hours:

10-6 Daily & Saturday

10—9 Thursday

Moku!

A true game of pure strategy that operates on any 8080 computer with 2.5K memory.

SIMPLE TO LEARN yet it takes considerable skill to defeat the computer.

THE FULL GAME not just some version simplified for a computer!

DISPLAY the board position on the CRT screen.

Catalog & details $ 1.95

User's booklet 4.75

Ready to run game .... 19.95 (with booklet)

RBB Software Products

125 N. Wade Circle

Anaheim, CA 92807

WHAT'S A CREED?

A Creed is a compact, modern and reliable English Teletype. You've probably seen references to Creeds and wondered what they are. We don't advertise much, our business is mostly by word of mouth.

Each Creed includes: keyboard, printer, punch, TTL interface parts kit and manual for $150, F O B Naperville. The Creed is a Baudot TTY, but Baudot to/from ASCII can be done in hardware or software giving you a heavy duty TTY for a fraction of the cost of a light duty 8 bit TTY.

Interested? Send for free data sheet and price sheet or order a 28 page manual on the Creed and hardware and software interfaces for $1 (credit given on Creed purchase). Lots of other unique things available, e.g. an optical scanner for $15 postpaid.

Wilcox Enterprises

25W178-39th Street

Naperville, II 60540

Phone 312-420-8601

COMPLETE RETAIL &

SERVICE COMPUTER

OUTLET IN

LONG ISLAND

servicing areas of

QUEENS, NASSAU & SUFFOLK

features The Personal Computer System IMSAI 8080, kits & assembled, off the shelf. Compatible lines of boards and peripherals. Supporting software. Books, Magazines, Supplies. Advice & full service.

COMPUTER MICROSYSTEMS

1309 Northern Blvd.

Manhasset, N.Y. 11030

516-627-3640

Open Tuesday through Saturday 10-6

SOUTH FLORIDA

We Carry:

• IMSAI

• SWTPC

• Cont. Spec. Corp.

• Vector

• Cromemco

Plus a Wide Selection Of:

Chips • Sockets • Boards Magazines • Books Technical Manuals Newspapers • Brochures

Service and Sales

Sunny Computer Stores, Inc

University Shopping Center 1238 A South Dixie Hwy. Coral Gables, FL 33146 (305) 661-6042

Photo 1: New SA-400 minifloppy disk drive sitting vertically. Shown is belt mechanism which is driven by a DC motor mounted on the top of unit. The door, shown in the open position, cannot be accidentally closed on the media. The minidiskette must be fully seated and centered on the spindle before the door will close and lock, allowing the drive to operate.

The information in this feature is based upon materials supplied by Shugart Associates.

Shugart and several media manufacturers. The minifloppy drive employs the same proprietary glass bonded ferrile and ceramic head technology and reliable performance as proven in the SA800.

No preventive maintenance is required on the unit, an important consideration for personal computing systems. It has the lowest power consumption of any floppy drive (15 W continuous duty, 7.5 W standby) with the important benefit of exceptionally low heat generation and thereby no requirement for a cooling fan in most customer applications. This allows ultraquiel operation which is ideal in office environments where word processing equipment would normally be installed. The drive is designed to minimize diskette damage through the use of a positive media interlock, preventing the door from closing without complete diskette insertion. The minifloppy drive will be equipped with a unique

State of the Art Disk Technology

SPECIFICATIONS SUMMARY

The latest news from Silicon Valley, now confirmed from its source, is the Shugart Associates Minifloppy ["minifloppy" is a Shugart trademark! disk drive for small systems. Its significance is that the price and physical size of random access magnetic recording with removable media has taken another step in the right direction. This drive was specifically designed for uses which:

include word processing and text editing systems, mini and micro program storage, power typing systems, "intelligent" desk top calculators and the emerging microcomputer hobby market.

The parameters of this new design are basically similar to those of a conventional floppy, but reduced in size. The data error ratings include 1 error in 10**8 bits for "soft" (recoverable) errors, and 1 error in 10**11 bits for "hard" (nonrecoverable) errors. The data rate for the drive is 125 kilobits per second, which is about half a typical conventional floppy's data rate, but far superior to the best of tape cassette drives. Formatted into records of 256 bytes, the drive has a capacity 89,600 bytes. At this capacity, each track contains 10 such records. An alternate recording mode is formatting each track with 18 records of

128 bytes, in which case the track capacity is 2304 bytes and total capacity is 80,640 bytes per drive. If the sophisticated user elects to supply his or her own controller design employing unformatted tracks, the raw capacity of each track is 3125 bytes or or 109,365 bytes per drive on line.

Shugart is an old line floppy disk manufacturer, one of the first in the field. The company has delivered more than 40,000 of the model SA800 conventional drive, prior to introducing this new "baby brother" for smaller applications.

The Shugart Minifloppy has a compact package measuring 3.25 inches high by 5.75 inches wide by 8.0 inches long (8.3 cm high by 14.6 cm wide by 20.3 cm long) and weighs three pounds (1.4 kg), yet provides the high precision and mechanical integrity of die cast chassis construction. It features a direct drive stepping motor actuator utilizing a spiral cam with a v-groove positive detent. AC power requirements have been totally eliminated through the use of a DC servocontrolled spindle drive subsystem. An all new 5.25 inch (13.3 cm) minidiskette (Model SA104 soft sectored and Model SA105 hard sectored) has also been developed for the minifloppy drive. The new media is based on today's proven flexible disk technology and will be available from

Photo 2: The new Shugart minidiskette is exactly the same as its larger counterpart, the standard flexible disk, except the size is only 5.25 inches (13.3 cm) square. Minidiskette media comes soft or hard sectored and stores 109.4 K bytes of data (unformatted), or 3125 bytes per track. The media is available from Shugart and several independent media suppliers.

SA400 Disk capacities

Track capacities

Sector size Tracks Heads

Transfer rate Seek time

Settling time Head load time Average latency time Media

Maximum recording density Recording method Track density Rotational speed Magnetic recording head

SA104/

Media

Minifloppy Disk Drive

109.4 Kbytes (unformatted) 89.6 Kbytes (256 bytes/sector) 80.6 Kbytes (128 bytes/sectorl

3125 bytes (unformatted)

2560 bytes (256 bytes/sector)

2304 bytes (128 bytes/sector)

1 28/256 bytes

35

1

125 Kbits/sec

40 ms track to track

463 ms average

10 ms

75 ms

100 ms

Shugart SA104/105 Minidiskette 2581 BPI (103 Bpmm) 5152 FCI (206 fcpmm) FM

48TPI (1.89 tpmm)

300 RPM

Glass bonded ferrite/ceramic

Index holes Sector holes

Jacket Disk

Center hole Media life

SA4400 Drive capability

Total capacity One drive Two drives Three drives

Format

Buffer

Data structure

105 Minidiskette Media

Industry standard flexible

diskette Media oxide on 0.003 inch

(0.0008 mm) Mylar 1

0 (SA104) 16 (SA105)

5.25 inch (1 33.4 mm) square 5.125 inch (130.2 mm) diameter 1.125 inch (25.4 mm) diameter 3 x 106 passes/track Ministreaker Controller

Sh

ugart

Asso

dates

lave trade

marked

the

follow

ing terms:

M

nif loppv

M

nidiskette.

M

nistreaker.

Controller power Size

IO connector

1 to 3 SA400 Minifloppy units

80.6 Kilobytes

161.2 Kilobytes

241.8 Kilobytes

IBM 3740 format with modified

gap structure 128 bytes 8 bit byte, bidirectional parallel

IO Direct track and sector

addressing Asynchronous TTL host

interface Seek overlap

Simplified command structure 5 V at 3 A nominal 7x11 inches (177.8 x 279.4

mm) 34 pin ribbon or twisted pair

connector interface

86

cost effective interface to allow upward expansion of the units within the system and future system enhancement with the large floppy drive. The drives also provide, as a standard feature, write protect circuitry to protect written diskette information.

Also being introduced along with the minifloppy drive and minidiskette media is the SA4400 ministreaker controller on a 7.0 by 11.0 inch (17.8 cm by 27.9 cm) printed circuit board which utilizes latest generation LSI circuitry to provide up to 241.8 kilobytes of online data storage. The controller board handles one, two or three minifloppy drives.

Using the IBM 3740 format with modified gap structure and a 128 byte buffer, the controller operates with an 8 bit byte bidirectional parallel IO to a microcomputer bus. It also features direct track and sector addressing, asynchronous TTL host interface, seek overlap and a simplified command structure.

This minifloppy drive represents a most significant improvement in the peripherals available to the small systems user. Advanced amateurs can use this machine directly, purchasing the controller and one or more drives in quantities of one from Shugart. Based on the specifications, it should be possible to wire the controller directly to a PIA port on the typical microcomputer and proceed to build a disk operating system in software. In 4 to 6 months, we should see this drive advertised by retailers and manufacturers of kit or finished product computers. For purposes of information and comparison, we print table 1, supplied by Shugart, which gives a rundown of the cost and capacity figures of several media. (Note: the Philips cassette column is oriented towards traditional digital drive manufacturers in both price and capacity estimates; it does not include the lower cost, lower performance drives presently sold to amateurs.)

A small information processing system in a desk top package could easily use two of these drives, an ASCII keyboard, video display output, and 16 K to 32 K of memory as a standard product. Using the disk drive as a key component, such a system could easily run compilers for traditional or new computer languages providing a level of function previously unheard of. We won't

Photo 3: Top view of the new Shugart SA-400 minifloppy disk drive. Shown In upper right is the DC motor which features precision servo speed control and integral tachometer. The large black spiral cam in the center has a ball bearing V groove for positive detent and is connected to the stepping motor. Directly above the cam is the head load pad and proprietary glass bonded ferrite/ceramic read/write head. The read/write head is the same one used in the standard Shugart floppy drive.

Table I: Low cost storage products comparison.

3M

SA400

SA800

Mini

Philips

3M

Minifloppy

Floppy

Cartridge

Cassette

Cartridge

Unformatted capacity

110 KB

400/800 KB

100 KB

720 KB

2870 KB

Tracks

35

77

1

2

4

Heads

1

1

1

1

4

Transfer rate

125 Kbits/sec

250/500 Kbits/sec

2.5 Kbits/sec

24 Kbits/sec

48 Kbits/sec

Relative head/media

80 in/sec max

120 in/sec max

30 in /sec

30 in/sec

30 in/sec

velocity

Recording density

2600 BPI max

3200/6400 BPI max

800 BPI

800 BPI

1600 BPI

Average access time

566 ms

286 ms

20 s

20 s

20 s

Typical drive size

3.25 x 5.75 x

4.62 x 8.55 x

5 x 5 x 5 in

4 x 6 x 8 in

7x 9x 12 in

8.0 in

14.25 in

+5 x 12 in PCB

Typical weight

3 lbs

14 lbs

3.25 lbs

5 lbs

5 lbs

Typical power

12 V, 5 V DC

24 V, 5 V.

+12, +5 V DC

+12V, +5 V,

+ 18,-18 V,

requirements

-15 V DC

-12 V DC

+5 V DC

Drive price (qty 1)

$390

$600

$550

$750

$1000

including head

electronics but

not controller

Media size

5.25 in sq

8 in sq envelope

2.4 x 3.2 x

4x2.5x

4x6x

envelope

0.4 in

0.4 in

0.67 in

Media price (qty 1)

$4.50

$6.50

$16

$8

$20

Notes: 1) Average access time - average seek time + average 2) Typical cassette drive characteristics assumed, inci

latency time, uding high speed :

venture to guess what the price of the package will be, but it should certainly be less than $3000 in the retail store and still retain profit margins for all concerned with its production and distribution. Time will tell at which price such a system will actually hit the market.

List price in quantity one for the minifloppy drive is $390. OEM quantity pricing

brings the price down to about $250. Minidiskettes arc priced at $45 for a single box of ten. This drops to about $35 in large OEM quantities. Ministreaker controllers sell for $490 in quantity one and for about $330 in larger quantities. Delivery is 60 days ARO. Shugart Associates, 435 Indio Way, Sunnyvale CA 94086. Phone: (408) 733-0100. ■

Low Priced Disk System for Altair/IMSAIs

The North Star Micro-Disk System is a complete, high performance floppy disk storage system for use with any Altair/ IMSAI compatible computer. The introductory price of $599 includes everything needed to turn on the computer and start loading or saving programs and accessing online data files.

The disk unit is a compact version of the standard Shugart floppy. Drive capacity is approximately 100 K bytes per diskette. Rotation time is 200 ms. Track to track access is 40 ms. The size of the unit permits mounting of the drive inside your computer cabinet with a specified cutout. The power supply requirements (0.5 A at +5 V and 0.9 A at +12 V) permit utilization of your existing computer power supply.

What's

New?

The North Star controller is a single S100 bus (Altair/IMSAI . . .) printed circuit compatible card which can control up to three drives. A PROM contains much of the DOS software including power on startup. The controller operates with or without interrupts as a software option.

The $599 introductory price covers: the North Star controller (highest quality

87

printed circuit card and components, with sockets for all integrated circuits, the Shugart minifloppy drive (model SA-400), disk to controller cabling and connectors, two diskettes (one preloaded with the DOS software), complete documentation, limited warranty, and shipping. Additional drives are $425 each. Diskettes are available for $4.50 each. A cabinet for mounting up to three drives, with optional power supply, is also available.

Delivery begins late December or January. Orders are now being accepted, either cash in advance or 25% deposit with balance payable COD (including COD charges). BankAmericard accepted with signed order.

For further information write North Star Computers Inc, 2465 Fourth St, Berkeley CA 94710. Phone (415) 549-0858."

DEC'S LSI-11 Lexicon, Defined

Digital Equipment Corp, Components Group, One Iron Way, Marlborough MA 01752, has published a new pocket sized glossary of computer related terms. The booklet is entitled The LSI-11 Microcomputer Glossary and it contains listings with definitions for more than 200 microcomputer related terms covering the hardware and software aspects of systems. Typical terms in this booklet include "trap," "daisy chain," "interrupt vector," etc. The booklet is 44 pages in length and was written primarily to acquaint executives, engineers and sales people with microcomputer related terminology."

KIM Had Twins?

The latest additions to the KIM line have just been introduced by MOS Technology. These are the KIM-2, a 4 K programmable memory expansion board, and the KIM-3, an 8 K programmable memory expansion board. As with the original KIM module, both of these boards come from the factory completely assembled and tested. They feature high speed low power static memory integrated circuits, so the MOS Technology 6502 processor on KIM-1 can be used flat out at a 1 MHz clock rate. Each board has memory address decoding selection using on board DIP switches (lower right corner of each board in the photos). Thus KIM-2 can be located at any even 4 K boundary in memory address space, and KIM-3 can be located at any even 8 K boundary in memory address space. As with the rest of the KIM line, complete documentation is provided for the board, its installation checkout and operation. Schematics and theory of operation are also provided. Also available is a KIM-4 motherboard to allow expansion of KIM to up to 64 K (65,536) bytes of

memory. The following chart summarizes the specifications of KIM-2 and KIM-3:

KIM-2 KIM-3

Current required

1.5 A

3.0 A

at +5 V (5% regulated!

or 8-10 V unregulated

Memory size (8 bit bytes)

4096

8192

bytes

bytes

Price (1-9)

$179

$298

Shipping and handling charges

(United States and Canada)

$ 3

S 3

International

$ 15

$ 15

KIM-2 and KIM-3

Physical Dimensions: 10 by 6Vj inches (25.4 by 16.5 cm) exclusive of connector tabs and removal tabs.

Connector: single 44 connection male edge connector. Mating female connector is Vector R644. Connector tabs are centered on 10 inch side of board.

Warranty: 90 days parts and labor.

Memory circuits: 21L02 type memories. 450 ns access time. Suitable for systems using 1 MHz, 2 phase clocks.

Availability: 30 days ARO or better.

MOS Technology is located at 950 Riltenhouse Rd, Norristown PA 19401."

Attention Educators:

Take a Look at the Texas Instruments

Microprocessor Learning System

Three preassembled, add on modules to the Texas Instruments Microprogrammer Learning Module have just been introduced and are available now.

The self-contained units, controller, memory and input/output, complete the user-paced system for understanding microprocessors and provide a training ground for basic software and hardware development.

The basic Microprogrammer Module, which is designed lo illustrate the most fundamental level of microprocessor operation, was announced last January. The new modules allow users to progress in a logical sequence from micro to macro level programming to the operation of a fully automated digital system. Each module has its own instruction manual, battery, charger and interconnecting cables and connectors.

The system helps users learn microprocessor concepts and design techniques by providing an insight into the hardware requirements and limitations in designing microprocessor-based systems. Enough system hardware is provided for actual applications limited only by the 4 bit capabilities and the necessary interface circuitry to output devices.

Educators will find the learning modules to be unique tools that allow students to learn how stored program digital systems work through hands-on experience. Students can develop their own macro instructions, write the microcode and observe the sequence of events associated with instruction execution using the microprogrammer.

For those not familiar with fundamental hardware/software relationships, Texas Instruments Learning Center has published a 390 page book, Software Design for Microprocessors. The book is an ideal companion

88

COMPUTALKER

MODEL

CT-1

SYNTHESIZER

High Quality Voice Output

Aitair/IMSAI/Polymorphic plug-in

Nine Acoustic Control Parameters

Includes 8080 Interface Software

$395.00 plus shipping

Order a demonstration cassette

$2.50 postage paid

Write for informative literature

Calif, residents add 6% sales tax

COMPUTALKER CONSULTANTS P.O. Box 1951, Santa Monica, CA 90406

microcomputers

— Computers for People —

IMSAI8080

At Special Introductory Prices {Prices Effective Until December31,1976Only)

I-8080 Kit $506

I-8080 Kit with 22 Slot Mother $550

• Add $9 each for shipping and handling

• New York residents add Sales Tax

• Send check or money order for full amount (Allow 3 weeks for personal checks.)

WETAKEMASTERCHARGE ^S^S OR BANKAMERICARD EDS

FOR MAIL AND PHONE ORDERS

For orders, information or special prices on all IMSAI products

Call: (315) 637-6208

Write:

computer emerprue/

P.O. Box 71 • Fayetteville, N.Y. 13066

Ask lor Our Special Price Sheet.

the microcomputer

1

an introduction to reality

now in Canada:

imsai

processor

cromemco

tdl

«

Iihtri li:-. linilsl

The Computer Place Focus Scientific

186 Queen St. W 160 Elgin St.

Toronto M5V 1Z1 Ottawa K2P 2C4

416-368-9539 613-236-7767

n

IMD

PDP-11 : $698 ?? ALMOST!

NECA IS OFFERING THE DEC LSI-11, A 16 BIT MICROPROCESSOR BOARD THAT EMULATES AN 11/40 WITH OVER 400 INSTRUCTIONS, FOR $698 EACH. YOUR PROCESSOR IS ULTIMATELY ONLY A SMALL FRACTION OF THE TOTAL SYSTEM COST. THE LSI-11 ACCEPTS FORTRAN. COBOL, BASIC, RT-11. AND OTHER DEC SOFTWARE.

NECA, THE NORTH EAST COMPUTER ASSOCIATION, IS A PURCHASING COOPERATIVE ESTABLISHED TO MAKE DISCOUNT PURCHACES AT OEM PRICES TO BENEFIT THE INDIVIDUAL CONSUMER.

OPERATE THE LSI-11 WITH A LOW PRICED PAPER TAPE/CASETTE SYSTEM NOW, AND ADD A 5 MEGABYTE DUAL HARD DISC (DEC COMPATIBLE) FOR ABOUT S2500 THROUGH NECA.

FOR DETAILS AND MORE INFORMATION, PLEASE WRITE:

N.E.C.A. 834 LAWLER ST. PHILA., PA. 19116

BGJEu^DGjE

7338 Baltimore Ave.. Suite 200 College Park. Maryland 20740

Cheap, Inc. is now an IMSAI and Seals distributor.

lZ>M

;.o°

4?9

Js.

««*

it

,r«°

OviJ

?(\ce

UrPr!

r'ce

SUPER SPECIAL CHRISTMAS BARGAIN

20% off manufacturer's suggested list price on kits and assembled units.

Seals 8K fully buffered memory board.

Offer may expire Dec. 31, 1976

Write to us for more info on chips, sockets & floppy disks, also circle A126.

TURN ON WITH COMPTEK

Now your micro can control AC power outlets with COMPTEK's NEW PC3200 Power Control System.

• 1 to 32 independently addressable control channels

• Remote power control units — no AC power on logic board

• Optically isolated, current limited, low voltage control lines

• Accessible through most BASIC'S

• ALTAIR and IMSAI compatible Write today for more details!

'Real World Electronics"

P.O. Box 516 La Canada, CA 91011

to the learning system, especially for nontechnical professionals, and is designed to give the reader an understanding of the basics of microprocessor machine code and assembly language.

Requests for information should be sent to Texas Instruments Inc, Inquiry Answering Service, POB 5012, M/S 308 (Attn: MP Modules), Dallas TX 75222."

Use a High Resolution Text Display

by

David Jon Fylstra POB 10051 Stanford CA 94305

Most homebrewed video displays these days have 32 to 40 characters per line, with perhaps 16 lines. An occasional lucky person has a.high-bandwidth monitor, with up to 64 characters per line. But for many applications, such as text editing and word processing, this just isn't enough — the industry standard of 80 characters per line would be far more suitable.

If you're considering a video display, take a serious look at a new line of components introduced by Matrox Electronic Systems of Canada. The video RAM (VRAM) is a small module which stores all of the screen characters in its internal random access memory, and generates an EIA standard 75 ohm output, complete with horizontal and verti

If YouZ-1, You Z Them All?

Cromemco has announced a new processor, available with stock to 60 days delivery, which is intended as a "plug in and turn on" method of obtaining a Z-80 computer system. The product looks very suspiciously like another well known computer which has been assembled with a custom screened front panel and Z-80 card. For $2495, your cold hard cash will purchase the following standard configuration from Cromemco:

• Z-80/4 microprocessor and mainframe with 22 card sockets, 28 A power supply.

• 8 K bytes of programmable memory.

• "ByteSaver" PROM card with room for 8 K 2704 or 2708 PROM and PROM burner.

• PROM monitor program.

• RS-232 serial 10 interface.

Add your own RS-232 terminal to the system, plug in the power, and enjoy the fruits of the block move, block IO and block search instructions in your programming, to say nothing of the relative and direct addressing modes of the Z-80 chip. Cromemco is located at 2432 Charleston Rd, Mountain View CA 94043."

cal sync signals, which can be connected directly to your video monitor.

While the Matrox VRAM modules are available in a variety of formats (8 line X 16 characters, 16 X 32, 16 X 64, and 32 X 64), of particular interest is the MTX-2480, which generates the standard 24 line by 80 character format in full upper and lower case ASCII. This 6.5 X 6 inch (16.51 X 15.24 cm) module can be tied directly to the address and data bus of any microprocessor, and requires a mere single +5 V, 1 A power supply. Especially appealing is the organization of the address and data bus: in the 12 bit address, 5 bits indicate the line to be accessed, and 7 bits select the character, making it simple to generate a carriage return and line feed sequence when filling the screen - just zero the 7 bit character counter in your program, and bump the 5 bit line counter up 1 bit. The 9 bit data bus is divided into a 7 bit field to select the

ASCII character, and a 2 bit control field which allows any individual character on the screen to be black on white, white on black, blinking, or half intensity. While any character can be accessed directly at any time (access time < 650 ns), two pins of this 28 pin module are provided to indicate horizontal and vertical blanking retrace intervals. Writing characters into the VRAM during these retrace intervals will result in a truly flicker free display.

The MYX-2480 is available from Matrox for $395 in unit quantity FOB Montreal (with generous quantity discounts), delivery time 4 to 8 weeks. The module is available in several character fonts, including the standard upper and lower case alphanumerics with Greek letters, general European, French, and Japanese Kata-Kana. Matrox Electronic Systems may be reached at POB 56, Ahuntsic Stn, Montreal, Quebec H3L3N5 CANADA. (514) 481-6838."

A System Product with a Software Orientation

Picture this as your general purpose computer system. American Microsystems Inc has introduced the AMI 6800 microcomputer development center, a stand alone 6800 system with dual floppy disk, printer and video terminal options. While it can easily serve as a system for the development of industrial microcomputers, it can also be used as a general purpose data processing system in business, and as an intelligent communications terminal. By paying attention to such end user applications, AMI has done more than just reinvent the wheel of design aids for engineers in commercial and industrial shops. Local dealers would be well advised to consider this system as a product for possible sale to business and high end amateur customers. Contact AMI at 3800 Homestead Rd, Santa Clara CA 95051 .■

90

Software Bug of the Month 6

Prudence was writing her own sine routine on her trusty mini, using the formula

3 5

_ + _

3! 5!

x7 7!

which

converges to sin(x)

Noticing that she could get from the term with denominator n! to the next term by multiplying by —x2 and dividing by n+1 and then again by n+2, she wrote the following FORTRAN program:

Z = X SUM = X N= 1 1 Y = N + 1

Z=-Z*X*X/(Y*(Y+1))

SUM = SUM + Z

N= N + 2

IF(ABS(Z) .GE. 0.00001) GO TO 1

SINE = SUM

In went the floating point package! In went the sine routine! Out came the sines! Great!

But Prudence was nothing if not prudent. She decided to test her program over a really wide range of values. And this time something very strange happened. Most of the values were all right, but some of them were wildly wrong. The problem was particularly galling because none of the easy values — sine of 0°, 30°, 60°, 90° - were off. In short, it looked like the kind of routine that could be used for years without error, and then, when somebody needs a really weird value, it conks out.

Prudence's first thought was to try it with the double precision floating point package. Unfortunately, the answers came out almost exactly the same as before. Can you spot Prudence's problem?"

Answer in Next Month's BYTE

SOLUTION TO BUG OF THE MONTH 5

Did we fool you?

There were two bugs last time!

The first bug was in the operation of interchanging the values of PR(I) and PR(I+1). You simply don't interchange X and Y by setting X = Y and then Y = X. If you haven't figured this out yet, consider:

setting Y = X sets Y equal to the new value of X, which is the old value of Y — in other words, it doesn't change anything. Or, to put it another way, setting X = Y destroys the old value of X, never to be recovered.

What Private Preston should have done at steps 5 and 6 was something like the following: Set TEMP equal to PR(I); then set PR(I) equal to PR(I + 1); finally, set PR(I + 1) to TEMP. Or, in machine language: Load register U with PR(I); load register V with PR(I + 1); store register U in PR(I+1); finally, store register V in PR(I).

The second bug was in the very last step. We want to go to step 1 if K is unequal to zero — that is, if there have been any interchanges. If there have been no interchanges, we are done, and we want to go on to the next statement.

There was one "bug" here that isn't really a bug. It is in step 8, where we tested whether I was unequal to 50. Normally, this isn't the right way to end a loop, because it misses the last case; we only do I = 1 up through I = 49. However, in this program, it should be clear that we want to miss the last case. We don't want to set I equal to 50, because then we would be comparing PR(50) with PR(51), which doesn't exist."

W Douglas Maurer University Library Room 634 George Washington University Washington DC 20052

The completely assembled and tested MP-40 printers continue to be the favorite of commercial users and hobbyists alike. Featuring a 5X7 impact dot matrix, 40 columns, 75 lines per minute, 4" adding machine paper, molded casework, zincplated chassis and power supply. Choose from one of these three interface models. • LCP

$329

$425 $499*

1976

8-bit Parallel l/F without character

generator for special software fonts ASCII • 8-bit Parallel Interface with a 64

character ASCII set SSP • Intelligent RS232 or Current Loop

data terminal. Async Serial l/F

"Introductory price for prepaid orders are good until Dec. 31

OR SELECT THE "NO FRILLS" KP-40 KIT

• Mechanism, LCP l/F PC board & components Power transformer and assembly instructions J179

SEND FOR FREE LITERATURE

Master Charge Welcome • Utah Residents Add 5% Sales Tax

mpi/P.O. BOX 22101/SALT LAKE CITY/UT/84122 (801) 566-0201

91

Here is a spot, concocted partly in response to Craig A Pearce's letter ["Snob Detector," page 53], for examples of creative uses of programmable calculator products. We start this off with SHOOTING STARS, expressed in the form of a program for the SR-52 calculator by Texas Instruments, with the PC-TOO printer attachment.

Desk Top Wonders

Program Listings

(Initialization Card):

SHOOTING STARS

(for the SR-52 and PC-100 Printer)

by

Craig A Pearce 2529 S Home Av Berwyn IL 60402

Instructions:

Note: Before recording program card 2 (play section) onto a magnetic card, perform the following steps:

A. Input the number 222212222

B. Press: STO, 9, 7

C. Record in the usual manner

1. Input initialization card (card #1) and press C.

2. Printer will show the 9 star positions by their number on the thermal paper strip. The LED display shows the same positions in an in-line fashion.

000

*LBL C

002

.1245

007

STO 11

010

.123

014

STO 12

017

.2356

022

STO 13

025

.147

029

STO 14

032

.24568

038

STO 15

041

.369

045

STO 16

048

.4578

053

STO 17

056

.789

060

STO 18

063

.5689

068

STO 19

071

123 *prt

075

456 *prt

079

789 *prt

083

12345

088

6789

092

*pap *rtn

(Game Play Card):

000

*LBL A HLT

003

*B' - 1 =

007

INV *ifzro 018

012

+ = *prt *pap

016

GTO A

018

1 SUM 10

022

RCL98

025

+ 10 =

029

*B' STO 99

033

10 *PROD 99

038

RCL99

042

1 EE 12 +

047

1 EE 12 =

052

INV EE

054

*ifzro 105

058

INV SUM 99

062

*B' - 1 =

066

*ifzro 072

070

2 +

072

2 =

074

*IND STO 98

078

GTO 033

082

*LBL E

084

OSTO 10

088

9 STO 00 1

093

*IND STO 00

097

*dsz093

101

2 STO 05

105

0 STO 99

109

1 STO 98

113

3 STO 00

117

1000 *PROD 99

124

*IND RCL 98

128

x ( RCL 00

134

1 ) INV *log

138

= +

140

1 SUM 98

144

*dsz 124

148

0 = »prt

151

SUM 99

154

RCL 98 - 10 =

161

INV *ifzro 113

166

RCL97

170

RCL 99 =

174

INV *ifzro 184

179

RCL 10+/- *pn

184

*pap RCL 99

188

GTO A

190

*LBL *B'

192

STO 98

195

*IND RCL 98 *rtn

3. Load in the play card (card 2) — both A & B sides.

4. For a new game, press: E

5. Printer will show the star field at the start of the game:

1 1 1 1 2 1

1 1 1

6. Each 1 represents a black hole. Each 2 represents a star.

7. Following standard rules of play (shooting stars only) the user inputs the star position to be shot and keys:

RUN for each move of the game. The star field is reprinted with the stars affected by the shot having been modified (stars become black holes and vice versa). The object is to end up with a star field as follows:

2 2 2 2 1 2 2 2 2

8. When the game is completed correctly, the number of turns used in the game will be displayed just below the final grid pattern as a negative number. This number can be recalled at any time by pressing: RCL 10

9. If no moves are possible, (all positions are filled with black holes), the game has been lost. Shooting a black hole causes the display to blink and the PC-100 to print: 0. ?

Before continuing, press CE to stop blinking. 10. To begin a new game, go to line 4 above.

How Shooting a Star Affects Its Neighbors

All affected neighbors will change from stars to black holes and vice versa when a star is shot.

Patterns are shown below.

1 # * # 2 # * # 3 ##* *** *##

A * *

* # *

* * 4t

4 * *

# 5 #

* * 6

# * *

* #■ *

* * 4±

* * *

* * *

* * *

# # *

* * #

* # #

7 # *

# 8 #

* # 9

KEY:

* — unaffected position

# - position that is affected

n - (where 1 < n < 9) the star that was shot

92

Some Conventions Used in the Listings

* — denotes pressing on the 2nd key prior to the indicated one. Programs are read left to right, across all three columns before proceeding to the next line. The three digit number at the start of each column is the starting line number for the first of the instructions that follow it.

Warnings and Limitations

Shooting a black hole will cause a flashing display to indicate an error. Clear error condition by pressing CE before continuing.

No error checks have been added to detect illegal entries (<1 or >9 or noninteger inputs). User should avoid making these types of entries.

Program History

Originally submitted to the HewlettPackard software library, this program was printed in BASIC in Peoples' Computer Company's newsletter September 74, under the title TEASER.

Most recent printing was a machine code program (for the Intel 8008 chip) in the May 1976 issue of BYTE magazine by Willard I Nico."

SPEED UP YOUR 8080 WITH A

HARDWARE

FLOATING POINT

BOARD

The North Star Floating Point Board (FPB-A) performs add, subtract, multiply and divide on BCD format floating point values. Speed is 50 times faster than 8080 software. Precision is software selectable up to 14 digits. Plugs directly into your Altair or IMSAI to dramatically improve program performance and reduce memory requirements by about 1 k.

A special version of our fast and powerful extended BASIC which uses the North Star FPB-A is supplied with every order.

Included: Highest quality PC card and components, sockets for all IC's, BASIC manual and object tape, complete documentation, limited warranty, and shipping.

Kit: $359. Assembled $499. Cal. res. add sales tax. BankAmericard accepted with signed order. Delivery from stock.

NORTH STAR COMPUTERS 2465 Fourth Street Berkeley.CA 94710

BYTE FILES /BINDERS

Preserve those precious first 16 issues

with either a handsome but rugged library file—or a binder—in flag blue Kivar library fabric stamped in gold leaf.

Files: Made to hold the first 16 issues of BYTE. Price per file $4.95;three for $14;six for $24,postpaid.

Binders: Made to hold the first 16 issues of BYTE. Price per binder $6.50; three for $18.75; six for $36, postpaid.

(Add $1 each outside USA.)

Send to: BYTE, POB 5120, Philadelphia PA 19141

I enclose check or money order for $

Please send me BYTE Files _Binders

Name

(please print)

Address City

State

Zip.

Satisfaction guaranteed or money refunded. Allow at least four weeks for delivery.

93

Potpourri from BITS

BITS, Inc, is a trademark of BYTE Interface Technical Services, Inc.

TM

It's Almost Too Late ...

... to snap up bicentennial memorabilia before you have to hunt through the nostalgia shops and pay I (HI limes the original price—if you're lucky enough to find a bargain—for an item as anachronistic and otherwise remarkable as Robert Tinney's Computing I 776 picture.

A same-size (16 by 20 inches, II by 51 cm) reproduction of Tinnev's original oil painting, this poster makes an off-heat gift.

Don't wait for the nostalgia shops to get the last of these posters; gel yours now for only $2.95. (Do you know what your old Amazing Science Fiction magazines and Superman comics that Mom threw out are worth now?)

COMPUTER

BYTE T-shirts

Available in blue heather with blue trim and red letters, or in white with blue trim and red letters. Only $5, including postage and handling.

Have you ever wondered where to go for a basic starting point in your quest for information about computer applications and uses? Ted Nelson's book, Computer Lib/Dream Machines, is the place for you to begin.

Computer Lib/Dream Machines is for the layman — the person who is intelligent and inquisitive about computers. It is written and self published by a philosopher who is also a self confessed computer fan and an excellent teacher of basic concepts. (For those who have not yet heard, ivory towers are constructed out of real and substantial white bricks.)

Computer Lib/Dream Machines is must reading for the beginner, and is also a refreshing self examination for the old hand at programming and systems work.

Please send me:

copies of Computer Lib @ $7

T-shirts extra large

large

medium

small

posters @> $2.95

50 cents postage per copy

Total

blue heather, blue trim, red letters

white, blue trim, red letters @ $5

Total

Send to: BITS, Inc 70 Main St

09

BJNKHMERICAHa

Check payment method:

My check is enclosed

Bill my MC No.

Total Grand Total

Peterborough NH 03458

Name

Bill my BAC No.

Exp. date Exp. date

Address

City

State

_Zi°_

Signature

You may photocopy this page if you wish to leave your BYTE intact.

I

Please allow six weeks for delivery. I

94

The First West Coast Computer Faire

Another big convention and technical meeting ground for the personal computing field is being organized for the West Coast for April 1977 by the people in the Bay Area. Thanks to the efforts of Jim Warren, editor of Dr Dobb's journal of Computer Calisthenics and Orthodontia, and Bob Roiling, editor of the Homebrew Computer Club Newsletter, it looks as if the event will be the star attraction for personal computing folk in the western US. The show was organized by Jim and Bob in planning sessions begun late in August of this year. Tentative dates for the FWCCF are April 15, 16 and 17. Jim and Bob have lined up the following sponsoring organizations to help make the show a big success:

• The Homebrew Computer Club, second largest computer club in the US.

• The Southern California Computer Society, largest computer club in the US.

• San Francisco Peninsula and Golden Gate Chapters of the Association for Computing Machinery (ACM).

• Stanford University Electrical Engineering Department.

• Community Computer Center and People's Computer Company (nonprofit educational institutions).

• Amateur Research Center, affiliated with the Foothill College Space Science Center.

• Professional and Technical Consultants Association.

Call for Papers

The Faire will of course include conference sessions designed to communicate and expound the theoretical and practical knowledge which makes personal computing work. The following sessions have been tentatively planned:

• Personal Computers for Education, inluding a university credit short course arranged through the University of California.

• Computer Graphics for Personal Computers.

• Personal Computers for the Physically Handicapped.

• Speech Synthesis Using Home Computers.

• Computers for Use in Very Small Businesses.

• Microprogrammable Processors for Hobbyists.

• Panel Discussion of Digital Tape Standards.

• Peripherals Interface Standards for Personal Computers.

• Bus Standards for Personal Computers.

• Software Modularization for Program Portability.

• Floppy Disk Systems for Home Computers.

• Computer Games, Alphanumeric and Graphic.

• Electronic Music and Home Computers.

• Public forums and panel discussions.

This list is by no means final, and if you perceive a topic which is not covered, be

sure to write or call the organizers of the convention. If you want to present a technical talk or tutorial al the conference, write outlining your area of knowledge and topic. The pointers arc:

Jim Warren, Dr Dobb's, PCC, POB

310, Menlo Park CA 94025. Phone:

(415) 851-7075.

Bob Rciling, Homebrew Computer

Club Newsletter, POB 626, Mountain

View CA 94042. Phone: (415)

967-6754.

Trade Show Booths Available

According to Jim Warren, there has been considerable manufacturer interest in the first West Coast Computer Faire. He has verbal commitments to date from an impressive list of organizations and manufacturers, including:

Zilog

AMI (American Microsystems Inc)

Dr Dobb's Journal of Computer

Calisthenics & Orthodon tia Northern California Electronic News MITS

Processor Technology Cromemco

OSI (Ohio Scientific Instruments! Technical Design Labs Polymorphic Systems Southwest Texas Products Corp Quay Corp

Apple Computers

STM Systems

Project Support Engineering

AEC (Associated Electronics Co)

DTC (Data Terminals & Comm)

Monolithic Systems

Hueristics Inc

Byte Shop of Palo Alto

National Semiconductor

MOS Technology

Interface Age

ARRL (American Radio Relay League)

PerSci Inc

Shugart Associates

iCom

Percom

Personal Compu ting

Microcomputer Associates

Minicomputer News

BYTE Inc

Call Computer

Solid State Music

National Multiplex

Computer Converser

Triple I — The Economy Company

Votrax

Compu Mart Inc

Action Audio Electronics

Computer Store of San Francisco

Osborne & Associates

People's Computer Company

Microcomputer Digest

BYTE will of course be present at the show in force, and we expect to see a large number of our west coast readers. The show will be coordinated by a professional organization and is expected to be held in San Francisco's municipal convention facilities."

get your

hands on...

|..J:.IR i; .1

L.I t::i t i*

13

Hands on microprocessor short course with free take home microcomputer included in the $495 tuition.

Jan. 25, 26, 27 Dayton, OH Feb. 1, 2, 3 St. Petersburg Beach, FL Feb. 9,10,11 Los Angeles, CA Feb. 14, 15,16 Palo Alto, CA Feb. 22, 23, 24 Philadelphia1, PA Mar. 1,2, 3 Washington, D.C. Mar. 8, 9, 10 Boston, MA Mar. 15,16,17 Chicago, IL Mar. 22, 23, 24 Huntsville, AL

Learn microprocessors first hand from the original hands on people.

For more information call Alice Anderson,

(317) 742-6802 or write Wintek Corp.,

902 North 9th Street, Lafayette, Indiana 47904.

WIN MX

6800 Hardware/Software Custom Hardware/Software ■ In-house short courses

95

A Modern High Level Language Self Compiler — At Last!

A software development house, called Administrative Systems Inc, located at 222 Milwaukee, Suite 102, Denver CO 80206, has announced the availability of what looks (from the advance description) like an excellent proprietary language system for 8080 based microcomputer users. This product is the Opus/One high level language compiler.

Opus/One comes in two versions, both of which require 8 K bytes of memory to operate. The disk version of the compiler sells for $300, and the audio cassette tape version sells for $250. This is probably the first high level language compiler designed and marketed explicitly for the small systems user, and it will prove attractive both to the businessman and to the professional user of these computers. Here is what the investment purchases for the user:

According to ASI, Opus/One is "a high level language compiler that is faster and more efficient in memory utilization, yet is as simple to learn as BASIC. It incorporates the strong points of several large system languages such as ALGOL and FORTRAN, yet maintains the commands, statements and simplicity of BASIC. The nonprofessional will find programming easy and straight

No Back BYTEs

Attention BYTE Lovers: Due to the avalanche of enthusiasm evidenced by our readers, the entire supply of BYTE back issues is now exhausted. Thus the only way to get back BYTES is through appropriate horse trading at your local computer club or computer fest."

What Is It?

tJ&%3*48£

forward; the professional will discover that many unique and creative combinations of code are possible, enhancing program efficiency and power..."

The documentation received at BYTE so far (August 20 1976) consists of a short listing of Opus/One features, which make it one of the most exciting new products in this month's pages of BYTE. Summarizing, Opus/One has:

• Block Structure. A BEGIN... END bracket similar to ALGOL, used as part of the IF.. .THEN . . .ELSE structure, eliminates unnceded GOTO statements and labels. This feature is a key to high reliability "structured programming."

• Variables. Unrestricted character length names; number, string or matrix data types.

• Numbers. Precision to 126 decimal digits, variable. Automatic string conversions when needed.

• Strings. Length to 128 characters, with substring and concatenation operations, automatic conversions to numerical values when needed.

• Matrices. Up to 255 dimensions, string or numeric data types, used to struc

ture blocks of data within programs.

• Disk Files. Dynamically created and referenced by logical record number; fixed length records of up to 136 bytes per record.

• Functions. Built in functions include output formatting, number and string manipulation, device 10, standard mathematical functions, random number generator.

• Miscellany. The language uses line numbers only for editing and debugging, incorporates print formatting statements needed to help create reports on output devices, a run time command mode of operation with debugging features, and 10 drivers for most common peripherals including ASCII RS-232 or current loop devices, floppy disk systems and cassette tape units.

In short, it sounds as if the advance description of Opus/One makes it exactly what is needed to turn a small system into the equivalent of many very expensive traditional systems based on minicomputers. The availability of Opus/One was announced as 30 days delivery, beginning September 15 1976. A users manual is available for $5."

Here is a photo of a cross section of a product which has some relevance to computer technologies, and makes an interesting puzzle. Let's see who comes closest to guessing the identity and purpose of this product in letters postmarked by December 10 1976."

Attention Rhode Island Hackers

Computer Power Inc is the name of the new computer store which opened September 4 at the Airport Plaza, 1800 Post Rd, Warwick Rl. According to the announcement we received, the store is easily reached from Interstate 95 by taking the State Airport exit in Warwick. Hours will be 1 PM to 8 PM, Monday-Friday, 10 AM to 6 PM Saturday.

CPI carries IMSAI, Processor Technology and Cromemco products, as well as the general supplies and products needed by computer enthusiasts. Southern New England individuals will find this store a welcome addition to the roster of retail outlets for computer equipment and supplies."

Dallas Area Hackers Take Note

The Micro Store is the place to go in the Dallas area, the first computer store to open serving that city. Opened June 19, at 634 South Central Expressway in Richardson TX, the Micro Store offers an array of products and services for the computer hobbyist and small business person, including several different computer lines, parts, peripherals, prototyping equipment, books, magazines, repair services, software and consulting. The major product lines at the Micro Store are Southwest Technical Products, IMS Associates, Polymorphic Systems, Cromemco, Processor Technology, and Vector Electronics.

The store is a family operation run by the husband and wife team of David Wilson and Portia Isaacson. David, a long time computer hobbyist with an MS degree in computer science and extensive professional experience on small computers, is responsible for the daily operation of the store; Portia, who is assistant professor of Computer Science at the University of Texas in Dallas, provides consulting and guidance to the store.

AFIPS NCC Proceedings Are Now Available

The 1976 Proceedings of the National Computer Conference (NCC) has just been published by the AFIPS Press. The conference is sponsored yearly by AFIPS, the American Federation of Information Processing Societies and its four member groups. The 1976 conference, as noted earlier in BYTE, was held in New York City (the 1977 conference will be in Dallas). Proceedings is a heavy (1082 page) document in hard cover, which is available for $50, with a 50% reduction for prepaid orders from members of one of the AFIPS Constituent Societies. Write the AFIPS Press at 210 Summit Av, Montvale N| 07645, and give your ACM or IEEE membership number for the discount. This year's NCC proceedings contains 1 36 papers in the following areas:

Computers and People - computer privacy, computer security, computer abuse, computer cryptography, EFTS, education and training, computer graphics, computers and the physically handicapped, public access to computers, medicine and health care, criminal justice systems, and computers in architecture. Systems - computer system design, microprocessors, minicomputers, computer system management and planning, computer system performance and evaluation, computer networking in the US and Europe, word processing and office automation, computer-assisted manufacturing, and computer-controlled publication.

Science and Technology - computer architecture, multiprocessor systems, data base systems, large scale networks, programming, software design and engineering, and artificial intelligence."

Hours are 11 AM to 9 PM weekdays, and 9 AM to 6 PM Saturdays."

96

101 Basic Computer Games

David H. Ahl. An anthology of games and simulations—from Acey-Deucey to Yahtzee, all in the BASIC language. Contains a complete listing, sample run, plus a descriptive write-up of each game. Our most popular book! Large format, 248 pp. $7.50 [6C]

What to Do After You Hit Return

Another collection of games and simulations—all in BASIC—including number guessing games, word games, hide-and-seek games, pattern games, board games, business and social science simulations and science fiction games. Large format. 158 pp. $6.95 [8A]

Fun & Games with the Computer

Ted Sage. "This book is designed as a text for a one-semester course in computer programming using the BASIC language. The programs used as illustrations and exercises are games rather than mathematical algorithms, in order to make the book appealing and accessible to more students. The text is well written, with many excellent sample programs. Highly recommended." — The Mathematics Teacher 351 pp. $5.95 [8B]

Game Playing With the Computer, 2nd Ed.

Donald Spencer. Over 70 games, puzzles, and mathematical recreations for the computer. Over 25 games in BASIC and FORTRAN are included complete with descriptions, flowcharts, and output. Also includes a fascinating account of the history of game-playing machines, right up to today's computer war games. Lots of "how-to" information for applying mathematical concepts to writing your own games. 320 pp. I976 $14.95 [8S]

BYTE Magazine

If you are considering a personal computing system now "or later, BYTE provides a wealth of information on how to get started at an affordable price. Covers theory of computers, practical applications, and of course, lots of howto build it. Monthly. I-Yearsub'n$I2.00 [2A], 3-Years $30.00 [2B]

Games & Puzzles Magazine

The only magazine in the world devoted to games and puzzles of every kind — mathematical, problematical, crosswords, chess, gomoko, checkers, backgammon, wargames, card games, board games, reviews, competitions, and more. Monthly. l-Yearsub'n$12.00[3A]

Games With The Pocket Calculator

Sivasailam Thiagarajan and Harold Stolovilch. A big step beyond tricks and puzzles with the hand calculator, the two dozen games of chance and strategy in this clever new book involve two or more players in conflict and competition. A single inexpensive four-banger is all you need to play. Large format. 50 pp. $2.00 [8HJ

Games, Tricks and Puzzles For A Hand Calculator

Watty Judd. This book is a necessity for anyone who owns or intends to buy a hand calculator, from the most sophisticated (the HP65, for example) to the basic "four banger." 110 pp. $2.95 [8D]

So you 've got a personal computer.

Now what?

The Best of Creative Computing — Vol. 1

David AM, ed. Staggering diversity of articles and fiction (Isaac Asimov, etc.), computer games (18 new ones with complete listings), vivid graphics, IS pages of "foolishness," and comprehensive reviews of over 100 books. The book consists of material which originally appeared in the first 6 issues of Creative Computing (1975), all of which are now out of print. 324 pp. $8.95 [6A]

Creative Computing Magazine

So you've got your own computer. Now what? Creative Computing is chock full of answers — new computer games with complete listings every issue. TV color graphics, simulations, educational programs, how to catalog your LPs on computer, etc. Also computer stories by Asimov, Pohl, and others; loads of challenging problems and puzzles; in-depth equipment reports on kits, terminals, and calculators; reviews of programming and hobbyist books; outrageous cartoons and much more. Creative Computing is the software and applications magazine of personal and educational computing. Bi-monthly. 1 -year sub'n $8.00 [ I A], 3- years $21.00 [ I B], sample copy $ 1.50 [ 1C]

Problems For Computer Solution

Cruenherger & Jaffray. A collection of 92 problems in engineering, business, social science and mathematics. The problems are presented in depth and cover a wide range of difficulty. Oriented to Fortran but good for any language. A classic. 401 pp. $8.95 [7A]

A Guided Tour of Computer Programming In Basic

Tom Dwyer and Michael Kaufman. "This is a fine book, mainly for young people, but of value for everyone, full of detail, many examples (including programs for hotel and airline reservations systems, and payroll), with much thought having been given to the use of graphics in teaching. This is the best of the introductory texts on BASIC."— Creative Computing Large format. 156 pp. $4.40 [8L]

Problem Solving With The Computer

Ted Sage. This text is designed to be used in a one-semester course in computer programming. It teaches BASIC in the context of the traditional high school mathematics curriculum. There are 40 carefully graded problems dealing with many of the more familiar topics of algebra and geometry. Probably the most widely adopted computer text. 244 pp. $5.95 [8J]

A Simplified Guide to Fortran Programming

Daniel McCracken. A thorough first text in Fortran. Covers all basic statements and quickly gets into case studies ranging from simple (printing columns) to challenging (craps games simulation). 278 pp. $8.75 [7F]

Understanding Solid State Electronics

An excellent tutorial introduction to transistor and diode circuitry. Used at the Tl Learning Center, this book was written for the person who needs to understand electronics but can't devote years to the study. 242 pp. $2.95 [9A]

Computer Lib/ Dream Machine

Ted Nelson. This book is devoted to the premise that everybody should understand computers. In a blithe manner the author covers interactive systems, terminals, computer languages, data structures, binary patterns, computer architecture, mini-computers, big computers, microprocessors, simulation, military uses of computers, computer companies, and much, much more. Whole earth catalog style and size. A doozy! 127 pp. $7.00 [8P]

Computer Power and Human Reason

Joseph Weizenbaum. In this major new book, a distinguished computer scientist sounds the warning against the dangerous tendency to view computers and humans as merely two different kinds of "thinking machines." Weizenbaum explains exactly how the computer works and how it is being wrongly substituted for human choices. 300 pp. $9.95 [8R]

BASIC Programming 2nd Ed

Kemenv and Kurtz. "A simple graduaL introduction to computer programming and time-sharing systems. The best text on BASIC on almost all counts. Ratings A+"'-Creative Computing. 150pp. $8.50 [7E3 '

Microprocessors

A collection of articles from Electronics magazine. The book is in three parts: device technology; designing with microprocessors; and applications. 160 pp. 1975 $13.50 [9J]

Microprocessors: Technology, Architecture and Applications

Daniel R. McGlynn. This introduction to the microprocessor defines and describes the related computer structures and electronic semi-conductor processes. Treats both hardware and software, giving an overview of commercially available microprocessors, and helps the user to determine the best one for him/her. 240 pp. $12.00 [7C]

Creative Computing Catalogue

Zany 12-page tabloid newspaper; catalog lists books, magazines, art prints, and T-Shirts. A conversation piece even if you don't order anything. Free. [5A]

Artist and Computer

Ruth Leavitt, ed. Presents personal statements of 35 internationally-known computer artists coupled with over 160 plates in full color and black & white. Covers video art,-optical phenomena, mathematical structures, sculpture, weaving, and more. 132 pp. $4.95 [6D] Cloth cover $10.95 [6E]

Computer Science:

A First Course (2nd Ed.)

Forsythe. Keenan. Organick, and Stenherg. A new, improved edition of this comprehensive survey of the basic components of computer science. There has been an updating of important areas such as Programming, Structured Programming. Problem Solving, and other Computer Science Concepts. The quantity of exercises and problems has been increased. 876 pp.$16.95 [7D]

Mr. Spock Poster

Dramatic, large (17" x 23") computer image of Mr. Spock on heavy poster stock. Uses two levels of overprinting. Comes in strong mailing tube. $I.50[5B]

CREATIVE COMPUTING, Dept. B P.O. Box 789-M, Morristown, NJ 07960

Please send me the following: Quan. Cat. Description

Price

Books Shipping charge $1.00 USA, $2.00 Foreign . NJ Residents add 5% sales tax .

□ Cash, check, M.O. enclosed TOTAL .

□ BankAmencard ) Card No.

D Master Charge J Expiration date . Name

Address City

State

. Zip —

The Designer's Eye View of

Photo I: The AC-30 Cassette Interface Unit shown in its natural arrangement with a couple of inexpensive cassette recorders. The cables going from the A C-30 to the recorders can be fabricated at home from standard high fidelity cables cut in half, or complete cables can be purchased to match your recorder to phono style plugs. See your local Radio Shack or equivalent store for such items.

the AC-30

Gary Kay

Southwest Technical Products Corp

219 W Rhapsody

San Antonio TX 78216

Cassette tape is one of the most flexible and least expensive means of mass data storage for computer systems. When compared to paper tape readers and punches, you'll find that although the paper tape readers can be made rather inexpensively, the punches cannot. Paper tape systems are typically slower and the punched tapes cannot of course be repunched and used over and over again, as you can with cassettes. Disk systems on the other hand offer significant advantages over cassettes but are still too expensive for many applications, and for most low cost personal computer users. Even those lucky enough to have a disk system still need a more universal medium for exchanging programs.

Although there are several commercial digital cassette tape decks on the market today, recording techniques vary, and they are of course much more expensive than the average audio cassette unit. As could be expected most hobbyist computer system

mass data storage designs have been based on the audio cassette recorder.

The use of inconsistent recording techniques among the various manufacturers makes it impossible, for example, to record a program, or data tape on a SWTPC 6800 computer system and play it back on a MITS 680 computer system. In order to coordinate manufacturer design efforts, and exploit the most effective recording technique, BYTE magazine sponsored a symposium in the fall of 1975 in Kansas City in an attempt to establish a recording standard for the storage of digital data on audio cassette recorders. The standard which was adopted has been tested and fully supported by Southwest Technical Products Corp. It appears to be the best compromise between economy and reliability. Although complete details are contained in the February and March 1976 issues of BYTE magazine, the recording philosophy is to record data serially using the standard UART format at

98

300 baud (30 characters per second). Marks or logic ones are represented by recording a 2400 Hz sine wave on the tape while spaces or logic zeros are represented by recording a 1200 Hz sine wave. With the proper circuitry this recorded data can then be read off the tape and converted into parallel data using a self clocking UART system which will tolerate audio recorder speed variations of approximately ±30%. This figure is far better than that of most other modulation techniques and is a real advantage when you consider the degree of worst case speed variation between inexpensive audio recorders, in addition to which we have speed variations due to line voltage, battery voltage, wow and flutter, mechanism wear, etc. Thus evolved the "Kansas City" standard. It should be noted that the standard does not specify how the data is to be organized on the tape, so there can be, and probably will be some incompatibility among various manufacturer's software. This is a software problem which is fairly easy to resolve, given documentation of the data being sent.

Since the definition of the "Kansas City" standard, there have been several articles printed on circuits conforming to the standard, but there has yet to be a true audio cassette interface "system." When considering an audio cassette tape interface system, I think the potential user should ask the following questions:

1. Can the cassette interface be added to the computer system in such a way as to take full advantage of the computer system's existing resident tape load and dump routines?

2. Can the cassette unit be interfaced to the computer system without requiring the use of an additional interface port for the computer system?

3. Can the single cassette interface unit simultaneously or independently operate two audio cassette recorders (one reading while the other is re

cording) and if so can the user simply switch select the function of each recorder instead of swapping a multitude of patch cords?

4. Will the cassette interface provide manual or computer control (switch selectable) over either cassette recorder's motor operation in both read and record modes?

5. Does the interface have status indicators to show read and record states as well as valid data flow?

6. Can the cassette interface unit simultaneously operate with a computer or a 300 baud terminal, switch selectable, allowing you to use your terminal in a stand alone mode to record or visually examine data on tapes before loading them into your computer?

7. Can the unit be tied to a 300 baud terminal like the TV typewriter II so as to respond to reader on, reader off, record on and record off control commands just like a teletypewriter with automatic reader/punch features?

8. Is the cassette interface unit complete with chassis, cover and 120/240 VAC, 50 to 60 Hz internal power supply?

Well, these are the questions I asked when I set about to design the SWTPC AC-30 audio cassette interface. This article contains my answers to these questions as built into the AC-30. Although it has been designed for and used extensively with the SWTPC 6800 computer system and CT-1024 (TV typewriter II) terminal system, the AC-30 has been designed to be as universal and flexible a system as possible. If your computer's control terminal is interfaced to the computer through a 300 baud, RS-232 compatible serial interfaces with accessible clocks at 16 times the data rate on both computer and terminal, the SWTPC AC-30 cassette interface unit is simply plugged between the computer and terminal inter

faces. This is the ideal mode of operation since the cassette unit can take full advantage of computer resident tape load and dump routines and requires no additional interfaces. Switching the cassette unit to the local mode directly interconnects the terminal and cassette unit for terminal "only" cassette tape operation just like the local mode of operation on teletypewriters. While operating in the remote mode, the computer communicates with both the terminal and cassette unit, here again just like the remote mode of operation on teletypewriters. Those individuals using the SWTPC CT-1024 terminal system or any terminal system with accessible control character decoders may even pick reader on (control Q), reader off (control S), record on (control R), and record off (control T) control commands right off the control character decoder circuitry on their terminal system, giving the computer system program control over cassette recorder data flow and

even motor operation. Those not having access to decoded control commands may still have cassette control by driving the cassette interface with control lines from a separate parallel interface option located on the attached computer system.

Those users not operating their control terminal RS-232 serial at 300 baud or not having access to their terminal's UART clock (at 16 times the data rate) may still use the cassette interface, but must attach it to the computer system through a separate RS-232 serial 300 baud interface with accessible clocks located in the computer system. This however eliminates the ability to use the computer resident control terminal tape load and dump routines as well as the local/ remote feature described previously.

The cassette interface circuitry is constructed on a 7 3/4 by 7 1/2 inch (19.7 by 19.1 cm) double sided, plated through hole fiberglass circuit board with all electrical connections made to the board through one

Some Comments on the AC-30

by Carl Helmers, Editor

Photo 2.

I purchased an AC-30 for my homebrew 6800 system when I stopped by at SWTPC for a visit following the ARRL national corivention in Denver this past July. It took me two days (about 16 hours) on a weekend to put together this kit. My experiences confirmed Gary Liming's report in this issue. It was my first kit in recent memory; my last previous experience with kit assembly of electronics was a Heathkit "Benton Harbor Lunchbox " 2 meter amateur radio rig which I built with some help from experienced friends more than 10 years ago while in high school. The AC-30 went together at a "slow but steady" rate with the instructions serving as my guide.

I had a big psychological problem (from bad experiences with some earlier CMOS circuits) convincing myself to actually solder a CMOS integrated circuit into place. The argument which Gary Kay, joe Deres and Dan Meyer at SWTPC give for using direct soldering of components has two major points: first, their firm uses only new integrated circuits which have a demonstrated low probability of failure if inserted correctly; second, a hard soldered connection is much less likely to suffer a mechanical problem than a socket. A corollary of the socket problem is the temptation of novices to use "any old socket" available inexpensively, which results in connection problems which multiply the possible sources of error. I saw a couple of beauties waiting in the SWTPC repair queue: kits which had been returned because "they don't work" according to their owners, but which had sockets which looked like refugees from a salt water bath. (The repair technique? Throw out the board, and rebuild using the formerly socketed integrated circuits!) So, in assembling my unit, I crossed my fingers, grounded myself and the soldering iron tip with clip leads, and took Gary Kay's persistent advice to solder the circuits in place. The result is seen in photo 2. The only problem I had in checking out the unit was a mischievous solder bridge (due to my own carelessness) that didn 't look like a bridge at

100

of the five edge connectors. The three connectors along the back edge of the circuit board are for connections to the computer, control decoder and terminal while the two along the front edge are for connections to the cassette interface's control panel. The printed circuit board in turn is mounted inside a 12 3/4 inch wide by 3 inch high by I I inch deep (32 by 7.6 by 30 cm) aluminum chassis with a silver dress panel and black anodized perforated cover. The complement of front panel switches, indicators and jacks includes the following:

MIC, EAR and REMOTE jacks for recorder A: These jacks are connected through patch cords to the cassette recorder's respective jacks. It is oftentimes necessary to patch the MIC output of the cassette interface to the AUX input rather than the MIC input of the recorder. Some experimentation may be necessary here. Be sure the cassette recorder(s) you select have a

remote jack on them. This is necessary in order to have cassette recorder motor control, an essential part of convenient user software.

MIC, EAR and REMOTE jacks for recorder B: These jacks may be used for feeding a second cassette recorder, often required when using tape to tape software packages. Their functional description is identical to that provided for recorder A.

Record Select A or B: When this two position switch is in the A position, the cassette interface will output data to cassette recorder A. When in the B position it will output data to cassette recorder B.

Read Select A or B: When this two position switch is in the A position, the cassette interface will read data from cassette recorder A. When in the

all. Photo 3 shows the rear of the front panel in the unit I assembled.

Extending the AC-30's Usefulness

While I have not tried the following suggestion yet, in preparing this article on the AC-30 the following thought occurred: The circuit of figure I does not care if the UART is really running at 16 times the clock ' rate. By eliminating the redundancy of the "Kansas City" standard, and generating one's own signals with a programmed data formatting routine, it should be possible to use the AC-30 through a PI A port and RS-232 level shifters to run at 2400 baud. [Authors take note: Details of such a program to modify the AC-30's normal usage mode would make an excellent article.] If parallel 10 and computation is required, multiprogramming using the processor's interrupt structure would be required, with the addition of an output clock generator to keep track of real time without programmed loops. (Input would drive an interrupt line directly from the clock extracted off the tape by the A C-30.)

Some Design Ruminations

In a preliminary calculation assuming for example my 6800 system with its current 833 kHz clock, the 4800 Hz data clock rate allows about 7 74 processor cycles for each clock period of the 10 operation. Of these

cycles, at least 22 are required for the fixed overhead of a 6800 interrupt, whether or not the interrupt does anything (12 cycles to get to the interrupt handler, 10 to return). Assuming that this is the only active interrupt, the input or output data handler for each bit could conservatively be expected to take less than 100 additional cycles (20 to 30 instructions or so). Thus with an interrupt driven programmed interface, I might expect about 70% of real time to be occupied by 10 during read or write operations as a reasonable worst case prediction of processor utilization. A similar calculation could be done for the 8080, TMS9900, or other microprocessors with which the A C-30 could be used in this mode of operation. ■

Photo 3.

Figure 1: Modulator and Demodulator Circuitry of the AC-30. This diagram shows the portion of the AC-30 used to create the output signal, and decode the two frequencies on input. All interfaces to the user system are via the control logic of figure 2. Power connections for integrated circuits are found in table 1.

TO FIGURE 2

102

B position it will read data from cassette recorder B.

Record Status On or Off: This three position switch is normally left in the center position allowing computer program generated control commands to set the state of the record latch. Momentarily flipping the switch to the ON or OFF position will manually update the status of the record latch. Leaving the switch in either the on or off position will override computer program control entirely. An LED status indicator just to the left of this switch always shows the state of the record latch. The operation of the cassette interface as a function of the state of the record latch is dependent upon the setting of the motor control switch which is described in detail later.

Read Status On or Off: This three position switch is normally left in the center position allowing computer program generated control commands to set the state of the read latch. Momentarily flipping the switch to the on or off position will manually update the status of the read latch. Leaving the switch in either the on or off position will override computer program control entirely. An LED status indicator just to the left of the switch always shows the state of the read latch. The operation of the cassette interface as a function of the state of the read latch is dependent upon the setting of the motor control switch which is described in detail later.

Record Data Indicator: This LED indicator shows the transmission of valid data out of the cassette interface. It lights only when the record latch is on and logic zeros or spaces are being transmitted. This allows the operator to confirm that a tape dump is in progress when lit, since the null data marking output does not light the indicator.

Read Data Indicator: This LED indicator shows the receipt of valid data into the cassette interface. It lights only when the read latch is on, valid FSK data is detected on the tape, and logic zeros or spaces are being received. This allows the operator to confirm that a tape load is in progress when lit, since the null data marking input or a loss of audio tones does not light the indicator.

Motor Control — Manual or Automatic: The position of the motor control switch actually determines the function of the record and read status latches. In the manual position both the cassette recorder motors are always activated through their respective remote jacks. If the record latch is off, the interface's selected recorder MIC jack will always output a constant marking carrier, even if there is data flowing back and forth between the computer and terminal. As soon as the record latch is turned on, either by the computer or manual control, all data transmitted from the computer to the terminal is simultaneously transmitted out through this same MIC jack. Data flow out of the MIC jack ceases as soon as the record latch is again reset by either manual or computer control.

If the read latch is off, the interface will ignore all data incoming through its selected EAR jack and yet pass data back and forth between the terminal and computer. If the read latch is turned on either by manual or computer control and valid audio tones are sensed from the selected EAR jack, read data is stored from the cassette unit to the computer. This same data is simultaneously displayed on the attached terminal system only if the computer is programmed to echo the incoming cassette data. Data flow from the cassette to the computer system ceases either upon resetting the read latch or loss of audio tones on the tape.

Operation in the automatic position is quite different. If both the record and read latches are reset, cassette recorder motor operation is- inhibited through the respective remote jacks on both the recorders. The interface's selected record MIC jack will output no audio data, even if there is data flowing back and forth between the computer and terminal. As soon as the record latch is turned on, the recording recorder's motor is turned on through the respective remote jack and a variable delay timer is fired which delays the output of audio marking data to allow this same cassette recorder's tape to come up to normal tape speed. This hardware delay circuit must be supplemented with a software delay loop written into your programs to guarantee that you don't start outputting record data until after this hardware delay timer on the cassette

103

Figure 2: Control Logic of the AC-30. This diagram shows the computer and terminal interfaces of the AC-30.

COMPUTER OR TERMINAL

w

o

<

CES EXCL CAN

DIGIT A TR

Hi-mtflZ

21%™™

a>« o o

R GA TO S

i\LS A LE TC

Owmui

sue

CTIVE SEEN NVINC

5mmn

™S>

104

interface has already timed out. When the record latch is again turned off, the interface will cease to output audio data and the selected recorder's motor is turned off. Here again it is wise to include a software delay loop in your programs to give the recorder time to come to a complete stop. This guarantees a sufficient gap between multiple recorded segments to allow one to do either incremental (startstop) or continuous reads from the same tape.

When the read latch is turned on, the read recorder's motor is started. The interface inhibits all read recorder data until valid audio tones are detected, at which time all incoming cassette data is stored in the computer and simultaneously displayed on the terminal only if the computer's echo is enabled. Reads may be either continuous or incremental (start-stop). Since incremental tapes have blank gaps between recorded segments, the cassette interface's audio tone sensing circuitry has been designed to ignore all but the valid data segments stored on the tape.

Local/Remote switch: The local/remote switch on this cassette interface is analogous to that on standard teletypewriters. In the local mode there is a direct data link between the terminal and cassette recorder(s). The computer is electrically eliminated from the system. In the remote or normal mode of operation, the computer, terminal and cassette recorders) are all linked together.

Power On/Off: This switch controls AC power to the cassette interface unit. It must be powered up consistently with the interconnected computer and terminal systems even if cassette operation is not desired.

Attaching the Interface to the Recorders

If you will be using the interface just for loading and storing programs and data files to and from tape, you will probably need just one cassette recorder. If, however, you will be doing tape file editing or using assembler packages, you will probably have to use two cassette recorders. The same interface will handle both configurations. Electrical connections between the cassette interface and recorders are best made by cutting several 3 to 4 foot (90 to 122 cm) audio patch cords with the

molded RCA connectors on both ends, in half, and fitting the newly cut ends with the appropriate recorder jack mating connectors. Some cassette recorders such as the ones used with the prototype have both high level auxiliary and low level microphone inputs. In our case it was necessary to use the auxiliary input since the cassette recorder circuitry would not permit the reading of a tape with a plug simultaneously installed in the microphone jack. Be sure to use a cassette recorder featuring an AGC (automatic gain control) circuit. Most late model cassette recorders have this feature. Since cassette motor control is available, you will want a recorder with a remote jack that stops the recorder's motor. Here again recorder circuitry varies. Some units disable just the motor while others disable everything. It is best in this instance to just disable the motor. This will minimize the recorded transients between blocks of data when using the interface in the incremental (start-stop) mode of recording. The recorders used with the prototype were Superscope brand model C-101A [Superscope is a registered trademark of Superscope Inc.]. Although they were reliable, close examination of the quality of recorded data with an oscilloscope left a lot to be desired. The optimum volume control setting was around 7 on a scale of 0 to 10.

The quality of the cassette tape used with your recorder(s) will also affect the reliability of your system. Here the best rule of thumb is to assume you get what you pay for. The more expensive tapes will generally give better reliability. Remember too that you are recording audio frequency data, not saturated pulses. So don't use digital computer grade cassette tapes. Always erase previously recorded tapes with a bulk tape eraser such as a Radio Shack No. 44-210 ($9.95) before rerecording them. This is especially important when using the system in the incremental (start-stop) mode of operation. Bulk tape erasers generally do a better job of erasing than a recorder's internal circuitry and guarantee that you don't pick up segments of previously recorded programs or data.

The interface's read circuitry must be calibrated for use in the read mode before using the interface. This is best done by first generating a calibration tape with continuous ASCII fives recorded on it and then reading back the tape to the terminal in the local mode while adjusting trimmer resistor R16 for a center setting between errored reads. ASCII fives have an alternating bit sequence ideal for calibration. It is a good idea to periodically recheck this setting using

105

The audio cassette interface described in this article is manufactured by Southwest Technical Products Corp, 219 W Rhapsody, San Antonio TX 78216. It is sold in kit form only. No. AC-30 for $79.50, postpaid in the US. The kit includes circuit board, components, chassis, cover, power supply and assembly instructions but does not include the cassette recorders.

your previously generated calibration tape.

Before using your cassette interface unit in the incremental (start-stop) mode of recording, it will be necessary to set the time delay on the carrier enable oneshot, trimmer resistor R39, so as to allow the recorder's motors to come up to speed before outputting a marking audio tone. This is best done by visually measuring your recorder's motor start time and then multiplying by two just for a safety factor. The interface's delay is then set by adjusting trimmer resistor R39 for this same time delay between the time the record "ready" indicator lights and the carrier enabled indicator (LED diode D18) comes on. The latter is mounted right on the interface's printed circuit board adjacent trimmer resistor R39.

Whenever you are writing to tape in the incremental mode you must provide a software delay loop in your program that is at least as long as the adjustable hardware timer delay plus 0.5 seconds. The additional half second is required to guarantee a carrier detect signal before data flow when the tape is being read. It is also a good idea to put a header character or characters ("synchronization" characters) at the beginning of each incremental record. Upon reading these records, your program should be written such that it ignores all data between these recorded segments until this header data is read. The cassette interface is more vulnerable to error reads between incrementally recorded data than at any other time. The end of each data block may easily be detected by recording some nondisplayed control character, or your software could include a block data count in its header. If you are using the cassette interface with the SWTPC 6800 computer system and CT-1024 (TV typewriter II) terminal system, the decoded record off ASCII control T command (hexadecimal 14) not only turns the recorder off, but is written at the end of the data record as well, for an end of record character.

Incrementally recorded records may be read either continuously or incrementally. In either case you must provide a software delay in your program at least one character time (33 ms) between the time the end of record character is read and the time data is output from the interface. The reason is that there is a slight delay between the loss of carrier on the tape and action of the carrier detect circuitry which in turn creates a gap in the 16 X UART clock. This gap causes no problems so long as you are not outputting data during the clock gap; thus the reason for the delay.

Fortunately consideration of tape gaps is

only necessary when using the interface in the incremental mode. Operating the system in the continuous mode isn't much different from paper tape operation. You will of course have to manually start and stop the recorders; but no special recording considerations are necessary, which usually allows use of unmodified computer resident tape load and dump routines for limited program storing and loading in a paper tape emulation mode.

Let's assume now we have a SWTPC 6800 computer and CT-1024 terminal system interfaced together with 300 baud RS-232 serial interfaces. As mentioned earlier for this configuration, the cassette interface can be connected in series between the two, taking full advantage of the computer's Motorola MIKBUG firmware tape dump and load routines. Let's also assume we have a program we wish to dump to tape which is already stored in the computer's memory with the computer's program counter, storage addresses (A048 and A049), set to the starting location of the program. Now use the memory change function to set the starting and ending addresses of the memory segment to be dumped in locations A002 through A005. The cassette interface's switches should be set for manual motor control with the record/read status switches in the center position and the local/ remote switch in the remote position. Load a blank or previously erased tape into the selected cassette recorder and depress the rewind button to get to the beginning of the tape. Then depress the play button to advance several seconds beyond the leader on the tape. Stop the recorder and this time depress the cassette recorder record button. Then enter a P for punch on the terminal's keyboard. MIKBUG will interpret the P and then the record status light will come on, and the record data light will flicker as program data is stored to the cassette tape. When the dump is completed, both the status and data lights will go out. Do not stop the recorder; instead set memory locations A002 through A005 to dump the data stored in the program counter storage addresses as well. Since the record status light is not lit, none of this data passing back and forth between the terminal and computer is written to the still operating recorder. Again enter a P for punch. The status and data lights will again come on, but only for a fraction of a second since only two memory locations are written to the tape. Now while the cassette recorder is still recording, flip the local/remote switch to the local position, use the manual record status switch to set the record status latch and type in on the

106

Figure 3: The power supply for the AC-30; see table I for wiring. Raw supplies of +13 V and — 13 V are used by the EIA line drivers; zener regulated + 7.5 and — 7.5 are used by modem operational amplifiers; CMOS logic uses the +5 V supply.

=D=n

r P is .

R48 330

R49

330

-VW

Q

012 IN4737 OR IN5236

• GND

terminal's keyboard S9 (the MIKBUG end of program code). Now you may stop the recorder. Don't forget to flip the local/ remote switch back to the normal remote position.

Before trying to load this same program you might want to momentarily turn the computer off just to make sure the memory resident program is destroyed before loading. Reapplying power will force an autoreset and start up the resident Motorola MIKBUG firmware on the SWTPC 6800. Rewind the tape to the beginning, making sure the cassette recorder's volume is set to a reliable setting, and depress the play button. Then type in a L for load on the terminal's keyboard. The read status light will immediately come on since the firmware outputs a read on control command. The data light however will remain off until program data is detected on the tape at which time it will begin to flicker. When it stops flickering it means that the program data has been loaded to the computer's memory but don't forget that the program counter data was also written to the tape, so the next flicker is that of the program counter being loaded. An S9 was also written to the tape; it is an end of tape marker. Upon reading this, the computer will output a read off control command forcing the read status light to go out, hence ignoring all subsequent data stored on the tape should the recorder be left to run. The program as well as the program counter have been loaded. Simply typing in the character G for go should initiate the program.

How It Works

For simplicity the cassette interface's circuitry has been broken up into three

separate systems: The modulator demodulator circuitry, the switching circuitry and the power supply. These are shown in figures 1, 2 and 3, respectively.

The modulator works by feeding a 4800 Hz (16 times 300 Hz) clock into the toggle provided by IC5b. The division by 2 in this flip flop insures a 50% duty cycle required by the modulator. The carrier enable input provides a means of suppressing audio output from the modulator. IC5a divides the frequency by two once more if the data in line is high and simply follows the clock frequency if the data in line is low. This gives a 1200 Hz tone for a low state and a 2400 Hz tone for a high state. The resulting output is then fed into two pole active filters provided by the 4558 operational amplifier section IC4a, where it is converted to a closer approximation of a sinusoidal audio waveform which is more easily handled by audio recorders.

Incoming audio data is first fed into a high pass filter consisting of R5 and C5 and then onto comparator IC4b. The compara

Table 1: Integrated Circuit Power List. The supplies are taken from the circuitry in figure 3, and wired to the appropriate pins of these circuits.

umber

Type

+5 V

GND

+7.5 V

IC1

4013

14

7

_

IC2

4001

14

7

IC3

4070

14

7

—

IC4

4558

—

8

IC5

4013

14

7

—

IC6

4053

16

8

IC7

4049

16

8

IC8

4013

14

7

IC9

4023

14

1

IC10

555

8,4

1

IC11

4001

14

7

—

IC12

1489

14

7

IC13

4070

14

7

IC14

4053

16

8

IC15

1488

—

7

—

-7.5 V

+ 13V -13V

14 1

107

tor's 0.5 V hysteresis reduces the possibility of false triggering. The ±7.5 V zener regulated power buses feeding IC4 are necessary to stabilize this hysteresis value. Zener diode clamp D3 limits the comparator output to CMOS compatible voltage levels. Each time the comparator changes states the exclusive OR functions of IC3c and IC3d generate a 5 lis active low pulse at IC3 pin 11. This pulse is repetitive when data is being received and pulls capacitor C7 down to ground through diode D4. The level on capacitor C7 is in turn inverted and buffered through IC3a to form the carrier detect signal. This same active low pulse is inverted by IC2a where it feeds four separate circuits. The first is a missing pulse detector composed of transistor Q2 and inverter IC2b. This forces the buffered carrier detect signal low whenever several cycles of audio carrier arc missed. The second circuit is also an adjustable missing pulse detector but this one times out whenever 1200 Hz data is being fed into the demodulator. The 20 k ohm trimmer resistor R16 sets the period for this timer. The third circuit driven by this pulse is the clock input to flip flop 4013 IC1a which outputs the demodulated data. This data out line is high when 1200 Hz audio is being demodulated and low when 2400 Hz audio is being demodu

lated. The fourth circuit fed by the pulse is IC2d which with the addition of the output of IC3b synthesizes the 16 X clock out data. Take note that although on the average this clock is accurate, it jitters by design.

Within the control portion of the circuit, figure 2, integrated circuit halves IC8a and IC8b form status latches for the record and read circuitry. Either latch may be independently set or reset through manual toggle switches on the interface's front panel or through control pulses buffered and selectively inverted by IC13. Front panel LED indicators always show the current status of these latches.

The multitude of data and clock switching is performed by six data selectors within IC6 and IC14. NAND gates IC9a and IC9b inhibit data and clock flow out to the cassette recorders unless the read latch is set and valid recorder carrier data is detected. Timer IC10 provides the adjustable CARRIER ENABLE delay needed when using the system for recording in the incremental mode. All 300 baud data communication with the cassette interface is done through integrated El A RS-232 receiver and transmitter integrated circuits IC12 and IC15 respectively. Motor control for each recorder is provided by reed relays RLY1 and RLY2."

#0KTKEK

«E-50fteW50 cm. Wmws 0T OT5F7ED

CWWEK.

HE& MBS.. HOW vfol/LJ

mum. i? wlb

-uw-ww raitf of <% i<\k (w of ami a

VW WALL NOMINA). SftVltf Cmi£)1(lUMM ONE Of THESE mute

LlttlE

WELL CMP, TO FNW M> Wit All THE ft)PB..0£ uNP AS ■WtCfti.W

ON MKB.Efe.5ws-m cowftmdn

Tftelt f«WH ANJ WE. AMAZW/5 WWt

Off to Twctoo- »vhai" a p twn< OF THAT'

108

SEX

Now what self-respecting company resorts to a cheap trick like this to get your attention.

WE DO

And it works, doesn't it? So does our new 16K STATIC RAM memory board. It is fully assembled and tested and plugs into your SWTPC 6800 microcomputer—allowing you to expand your system to 48K. The PRICE?? That's the sexy part. It's so BARE we can only reveal it through the mail. (Sent in plain brown wrapper so as not to offend a non-computer oriented spouse.)

Name Street City _

State & Zip

SMOKE SIGNAL BROADCASTING

P.O. Box 2017 Hollywood, California 90028

IMSAI Dealer Systems from $540

CRT Kit ADM-3 $849

RAM 4A-4 $125

3240 W LARKSPUR PHOENIX AZ 84021 (602) 942-8405

(computer illlan

i \ew UJorn

LONG ISLAND

Christmas gift certificates available

IMSAI, SWTPCo, Digital Group

Processor Tech, Apple, OSI

TDL-Z-80, Seals, Cromemco,

Veras, Tarbell, Oliver

Magazines, books, chips, sockets, connectors, terminals.

IT'S ALL HERE WAITING FOR YOU FRIENDLY ADVICE TOO

New York City 314 5th Ave. (32nd St) New York 10001 212-279-1048

Long Island 2072 Front St East Meadow NY 516-794-0510

$100 OFF IMSAI

The Bits, Bytes & Pieces Computer Store is having a sale to celebrate the grand opening of their mail order operation in the Sacramento area. We feature the complete IMSAI micro computer and peripherals line & our standard price will be 10% off the list price for IMSAI computer kits, board kits and peripherals. However, our sale prices will be 15% off! computer & board kits. For example the $599.00 basic 8080 will be only $499.00. Group purchase prices are available. This offer expires December 31, 1976. Write us for details and catalogue.

Bits, Bytes & Pieces

6211 Quincewood Circle

Citrus Heights, CA 95610

(916) 726-6469

Pictured above is the new OP-80A High Speed Paper Tape Reader from OAE- This unit has no moving parts, will read punched tape as fast as you can pull it through (0-5,000 c.p.s.), and costs onJy $74.50 KIT, $95.00 ASSEMBLED & TESTED. It includes a precision optical sensor array, high speed data buffers, and all required handshake logic to interface with any uP parallel I/O port.

To order, send check or money order (include $2.50 shipping/handling) to Oliver Audio Engineering, 7330 Laurel Canyon Blvd., No. Hollywood. CA 91605, or call our 24 hr. M/C-B/A order line: (213) 874-6463.

MODULES FOR ALTAIR AND IMSAI COMPUERS

8K STATIC MEMORY - KIT $295 ASSEMBLED $375

16K STATIC MEMORY - KIT $650 ASSEMBLED $775

WIRE WRAP BOARD - KIT $ 39 EXTENDER BOARD W/C - $ 30 BATTERY BACK-UP BOARD

IKS BATTERIES — KIT $ 55

115 V I/O BOARD - KIT $149 ASSEMBLED $200

THE US V I/O BOARD HAS FOUR INPUTS AND FOUR OUTPUTS EACH II5VAC AT 1.5 AMPS. NO IONGER A NEED FOR RELAYS WITH THIS BOARD.

To order send check or money order (include $2.50 shipping/handling) to ELECTRONIC ENG. * PRODUCTION SERVICES, Rt.0 2, Louisville, Tennessee. (Tn. users add 6% sales tax) (615)984-9640

Building the AC-30

Cassette Interface

Gary Liming 3152 Santiago Dr Florissant MO 63033

Any hobbyist who has ever loaded a sizeable program on a bit by bit or byte by byte basis, only to have it wiped out when the power is removed, really understands the significance of mass storage. Cassette recorders are attractive mass storage devices to a hobbyist because they are inexpensive and can be interfaced easily.

Southwest Technical Products Corp (219 W Rhapsody, San Antonio TX 78216) introduced their answer to mass storage with the AC-30 cassette interface in May 1976. [See Gary Kay's article in this issue.] At that time I had a 6800 processor using Motorola's MIKBUG as a monitor ROM and a CT-1024 with keyboard. While reading the advertisement brochure I was struck with fact that the interface made use of an already existing standard, the RS-232 interface. If I decided to try a different system later on, I would be able to keep the interface and tapes and use an easily acquired RS-232 connection on the new system. It also provided for two cassette drives for future system expansion. Seeing no problems connecting the AC-30 to my system, I ordered the AC-30 by phone for $79.50 postpaid, and received it by UPS two weeks and two days later.

When the kit arrived, I immediately started studying the documentation. As I was reading, the directions mentioned a calibration program that should have been

supplied but was not included. I finished reading the instructions, made sure the parts were all there, and called SWTPC.

I spoke with an engineer who confirmed the missing page, and took my name and address. Only two days later a complete set of documentation appeared in my mailbox. The two days were not wasted, however, because it took me nearly that long to clear off a space on my workbench to build it!

The documentation package consisted of 22 pages of assembly instructions, complete schematics, a parts list, and a two color printed circuit board component layout Included are two 17 3/4 inch by 22 1/2 inch (45 cm by 57 cm) charts showing wiring connections inside the AC-30 and between the terminal and computer system. Also, 11 pages of diagnostic and calibration software written for a 6800 system are included.

Assembly began with the 7 3/4 inch by 7 1/2 inch (19.7 cm by 19.1cm) printed circuit board that I inspected, found no faults with, and which generally looked like a high quality board. Instructions for the kit are at a level of "Place all of the resistors on the board using the parts list and component layout drawing. . . ", so you must at least know resistor color coding and be able to identify the parts. Using reference charts from electronics "how to do it" books will help to prevent mistakes for the novice.

Placing and soldering the 39 resistors, 25 capacitors, 16 integrated circuits and 11 transistors was time consuming, but not difficult. The soldering pads are placed well apart from each other, making soldering

110

easier than on some memory or processor boards. Solder is included.

Although there is a controversy among manufacturers, hobbyists, and engineers over the use of sockets, I decided to use them. Kit manufacturers don't advise sockets because they make a returned board very difficult to repair if the fault is due to a socket. A bad solder flow under the socket is hard to detect without tearing out the socket. Hobbyists sometimes get low quality sockets which can cause intermittent problems that are nightmares to debug.

I used quality sockets and verification soldering techniques because they help reduce integrated circuit handling (almost all of the integrated circuits in the kit are CMOS) and mainly because I would be doing my own repair work in the future. However, if you do not intend to repair your own equipment, there is little benefit in using sockets in a kit.

After completion of the printed circuit board, chassis assembly began. The 12 3/4 by 11 by 3 inch (32 cm by 30 cm by 7.6 cm) aluminum chassis holds the printed circuit board, transformer, fuse, and a dress front panel. A perforated black finish aluminum cover and rubber feet are included. All wiring to the printed circuit board is made through connectors which make removal of the board simple. The large connection charts are very helpful, and wire and wire ties are provided. Before starting chassis assembly, a little forethought about the routing of wire between the switches, phono jacks, LEDs, and printed circuit board connectors will help to save mistakes.

Front panel assembly went smoothly except for snapping the LED retainer clips into place. I found that using two ballpoint pen halves to push the clips together saved wear and tear on my fingernails.

Interconnecting cables between the terminal and computer are routed through a grommet directly to the printed circuit board connectors. In addition to the front panel switches, control inputs are provided for remote or computer control of the reader on, reader off, record on, record off, and Local/Remote modes. If you are using the CT-1024, these inputs can be controlled by using the CT-CA (computer controlled cursor board) which decodes various ASCII control characters that appear on the RS-232 interface. Otherwise, the controls can be operated via computer commands by building a decoder for the control characters or by dedicating a separate output port or address space for these functions. The interface requires both the terminal and computer to provide a X16 clock.

When assembly was completed, I bought cassette connecting cables (not supplied) and, like most recorders, mine required two miniature to phono and one subminiature to phono cables. I am using a Sankyo ST-50 recorder, picked out solely because it was the most inexpensive ($44.95) recorder I could find that had automatic level control, auxiliary and remote inputs, and a tape counter. The tape counter is not necessary, but does allow you to easily catalog a number of programs on a single tape.

After connecting the recorder, two calibration steps are required. One is used to set the time between when the record on signal is received and when the record carrier comes up. This is necessary to allow the cassette motor to come up to speed before the recording begins, and is noncritical. The easiest way to adjust the delay is to visually inspect the start up time of the cassette motor, and set the delay greater than that. An on board LED is provided to indicate the carrier enable signal, and the adjustment is made with an on board pot and 555 timer.

The other adjustment is made to set the character frequency of the reader circuitry, and is done by loading the calibration program. This program outputs a control character to turn the recorder on, an ASCII five (chosen because of its alternating bit pattern), and a recorder off character, all in a continuous loop. After recording a tape of fives, the tape is then read back in local mode to the terminal. The calibration pot is then adjusted to center between the points at which errors occur. I found this to be a very wide range in which the reader would operate with no errors. This program is also useful in verifying new tapes for data use. A little experimentation showed that the best volume setting was about 7 on a scale of 0-10. The tone control seemed to make little difference except at extreme settings.

Now that calibration was completed, I loaded a program byte by byte for the last time, and dumped it out to my first mass storage peripheral! The program was approximately 2 K bytes and took 3 1/2 minutes to load back into the system. This is longer than 30 cps would account for, but is due to the Motorola MIKBUG dump and load routines that output two characters per byte (hexadecimal) and includes some error checking and addressing overhead.

The recording method is compatible with the "Kansas City" standard, and I have successfully read tapes generated by the "Bit Boffer" interface as described in the March 1976 issue of BYTE [page 30]. If there are any other 6800s with MIKBUG listening out there, drop me a card and let's swap!"

111

BITS Presents:

TV Typewriter Cookbook by Don

Lancaster. A complete guide to low cost television display of alphanumeric data, several chapters of which were published ahead of the book in early issues of BYTE magazine. $9.95

Digital Logic Circuits by Sol Libes. An

invaluable tutorial background volume on digital logic, arithmetic, 10 concepts and interfacing to analog devices; written by one of the founders of the Amateur Computer Group of NJ. This book acquaints the reader with much of the terminology and background concepts of digital hardware. $5.98.

Modern Operational Circuit Design by

John L Smith. An absolutely essential introduction to the use and application of operational amplifier systems. The book contains both theoretical background information and practical circuit suggestions which can be used to advantage by the experimenter. $16.95 (hardbound).

Electronic Projects for Musicians by

Craig Anderson. "Even if you know nothing about electronics, you can build preamps, ring modulators, mixers, tone controls, miniampls, fuzzes and a dozen other inexpensive musical projects." Furthermore, even if you r-ouldn't care less about about musical applications, you can use this book to gain familiarity with electronic parts, circuit diagrams and construction techniques, using the wealth of illustrations and tips found in an extended introductory chapter for the novice electronicker. $6.95.

Active Filter Cookbook by Don Lancaster. The chief chef of electronics Cookbooks concocts another gourmet appetizer. Run to this book when you need to find a starting point for the design of a filter for use in an electronic application. $14.95.

Altair Design developed by Ensor

Holiday.

More Altair Design developed by Ensor Holiday.

Altair Design 3 developed by Ensor

Holiday.

Keep the loved ones busy while you use your system . . . give them any one or all of these computer generated Altair Design books to start them (or yourself) on endless hours of creative coloring. No other coloring books are quite like these unique books. $2.50 each.

Artist and Computer edited by Ruth

Leavit. A visual treat, as you encounter reproductions of numerous works by computer oriented artists and read about these works in their own words. $4.95.

_Linear IC Principles, Experiments, and

Projects by Edward M Noll. From basic principles to complicated systems, from simple amplifier experiments to applications in radio, TV and control systems, this book can improve your knowledge of the way circuitry of the analog world really works. $8.95.

Practical Solid-State Circuit Design by

Jerome E Oleksy. A self study course in the design of semiconductor circuits from the simple transistor to the complex operational amplifier. $5.95.

__^Boolean Algebra by Brice Ward. A

background tutorial and study guide for the design and simplification of static networks of logic gates. Learn how to combine those ANDs, NANDs, NORs and ORs to evaluate complicated logical conditions of multiple inputs, electronically. $5.50.

_Projects in Sight, Sound & Sensation

by Mitchell Waite. Dedicated "to all space cowboys." Detailed theory and practice of seven fascinating amateur electronics projects, along with a complete and detailed appendix on how to make PC boards. $4.95.

Creativity, Invention, & Process by

John A Kuecken. Practical philosophy and history for the inventor. $3.50.

_lnventors Projects Book by L George

Lawerence. 120 well thought out problems which can serve as a starting point for the creative inventor. All are essentially unsolved by contemporary technology, and all are highly recommended reading for the creative mind. $4.50.

___J5ecurity Electronics by John E Cunningham. To catch a thief, apply liberal doses of ingenuity and a modicum of cleverness. Find out what's been tried in conventional alarm systems before you go off computerizing your home security system, though. $4.95.

. Introduction to Biomedical Electronics by Edward J Bukstein. What's been done in robot doctors? Nothing so far. But in terms of electronic aids to physicians and practices of health researchers, consult this background review of the field of biomedical electronics. $5.50.

What to Do After You Hit Return of

PCC's First Book of Computer Games. This is PCC's first book of computer games, a compendium which includes descriptions of numerous games, and listings of 37 selected BASIC games. $6.95.

Ser.d to:

BITS, Inc 70 Main St Peterborough NH 03458

Name

Address

Ci'y

Check payment method:

My check is enclosed

Bill my MC No.

Bill my BAC No.

Exp. date Exp. date

State

Zip

Signature

Total for all books checked $ _ Postage, 25 cents per book for Grand Total $

books $

You may photocopy this page if you wish to leave your BYTE intact. Please allow six weeks for delivery.

112

A BIT More

When you build a project, you need information. All you find in the advertisements for parts are mysterious numbers identifying the little beasties... hardly the sort of information which can be used to design a custom logic circuit. You can find out about many of the numbers by using the information found in these books. No laboratory bench is complete without an accompanying library shelf filled with references.

Order these absolutely essential references from Texas Instruments today:

The TTL Data Book for Design Engineers, $3.95.

The Supplement to the TTL Data Book for Design Engineers, $1.95.

The Linear and Interface Circuits Data Book for Design Engineers, $3.95.

The Semiconductor Memory Data Book for Design Engineers, $2.95.

The Transistor and Diode Data Book for Design Engineers, $4.95.

The Power Semiconductor Handbook for Design Engineers, $3.95.

Understanding Solid State Electronics, $2.95.

The Optoelectronics Data Book for Design Engineers, $2.95.

Designing with TTL Integrated Circuits, edited by Robert L Morris

and John R Miller, published by McGraw-Hill, $24.

—The TTL Cookbook by Don Lancaster, published by Howard W Sams, Indianapolis. Start your quest for data here with Don's tutorial explanations of what makes a TTL logic design tick. 335 pages, $8.95.

Microcomputer Design by Donald P Martin. Edited and published

by Kerry S Berland, Martin Research. Purchase your copy of the definitive source for circuitry and hardware design information on the 8008 and 8080 computers today. Even Intel, the originator of the microprocessor revolution, is hard put to compete with the wealth of information found in Martin Research's new second edition of Microcomputer Design. This is the book which was originally published as an expensive (but quite practical) engineering report in loose leaf form, at about the time the microprocessor technology was first catching on in the form of the 8008. This 388 page second edition of the manual is loaded with detailed information on how to build and use computers based on the 8008 and 8080. $25.

Send to:

BITS, Inc 70 Main St Peterborough NH 03458

Check payment method:

My check is enclosed

Bill my MC No.

Bill my BAC No.

Exp. date Exp. date

Name

Address

City

State

Zip

Total for all books checked $ _ Postage, 25 cents per book for Grand Total $

books $

Signature

Please allow six weeks for delivery.

You may photocopy this page if you wish to leave your BYTE intact.

113

A Universal Turing Machine

STATE 1

BIT READ 0 1

0,R,1

0,R,1

Figure I: A one state Turing machine program to clear the tape has two instructions. Whether a 0 or I is read, the corresponding instruction writes 0, advances the head location one step right, and loops to the same state.

Jonathan K Millen PhD 661 Main St Concord MA 01742

Everyone who has had an elementary course in the mathematical foundations of computer science knows you don't actually build Turing machines, you just theorize about them. Besides, what about that infinite tape? Well, the temptation was too great to resist. After all, you can do anything with a Turing machine that you can with any other kind of computer. It just takes longer. As for the tape, only a finite amount could ever be used in your lifetime anyway.

Strictly speaking, a Turing machine is merely a program in a certain simple language. A universal Turing machine, or UTM, is one that expects two inputs: a Turing machine program, and some data for that Turing machine. The UTM then runs the input machine interpretively. A few medium scale integration chips can do that job, and this article will show how.

The language in which Turing machines are written is the machine language for a correspondingly simple architecture. Like most computers, it has a main memory. This memory is called a tape because it can be accessed only sequentially. That is, if memory location n is being read now, only /; — / or /; + I can be read in the next instruction. Never mind the name "tape"; as far as we are concerned, the machine has an ordinary semiconductor memory, addressed with an index register that can only be incremented or decremented by one in each instruction. The index register will be called the head to appease the Turing machine purists.

Each word, or addressable tape location, contains one "symbol." A Turing machine can use any finite set of symbols, but it is known that a set of two is sufficient to perform any compulation: 0 and 1. A two

symbol UTM is discussed here because it is the easiest to implement, even though a 256 symbol (eight bits per symbol) machine is better suited for most applications. Look at it this way: the memory is bit addressable. (An incidental benefit is that there are no worries about parallel to serial conversion for serial 10 devices with a serial UTM!)

There is only one instruction in the language; it combines the functions of load, store, increment or decrement index register, and conditional branch. Its format is:

w,d,a

where w, d, and a are all operands, since you don't need an operation code when you have only one instruction. The first operand, w, is a bit value to be written into the tape location currently addressed by the head. The second operand, d, tells whether to advance the head left (L) or right (R). The Turing machine's memory goes from left to right in the direction of increasing addresses. The last operand, a, is a branch address.

The branch address, a, points to a pair of instructions: One is executed if the current tape location contains a 0, the other if it is I. The UTM is said to "read" the tape when it determines which instruction of the pair to execute. A pair of instructions is called a "state." A one state program to clear the tape is shown in figure I.

It is undoubtedly hard to believe, with only this much exposure to the Turing machine language, that it can be used to emulate any instruction set. The belief that Turing machines are adequate to perform any numerical or symbolic algorithm is known as Church's Thesis, after the logician Alonzo Church. Church's Thesis cannot be proved mathematically because it cannot be stated rigorously, but it has stood the test of time. No one has been able to express a computational algorithm that no Turing machine can perform, and most educated people long ago gave up trying. Other

114

Figure 2: This 8 bit instruction format addresses 64 states directly. The w bit is written on the tape. The d field has 0 for R, 1 for L. Bit 7 is the low order bit of the next state address, a.

instruction sets and machine architectures can be more efficient, of course.

To implement a UTM, we have to decide on a storage format for the instructions. The 8 bit format in figure 2 is suggested to start with. Separate memories are used in this UTM design for the input Turing machine program and its data. If each instruction takes one byte in the program memory, there is just room in a single 2102 for 64 states. Six bits are used in the instruction for the state address a [ This field can be used to hold a displacement from the current address in designs with more program memory.], leaving one each for w and d. To encode d, we will use 0 for R and 1 for L. One address line selects the proper instruction from the pair of instructions in each state. Thus, the state memory address has three parts: a 6 bit state address, an instruction selector bit, and three bits for the bit position.

The three parts of the state memory address are kept in three registers: a program counter PC with a parallel load input for the state address; a single flip flop R for the instruction select bit, and the low order three bits of a 4 bit counter S for the instruction bit address. Figure 3 shows the part of the circuit that handles normal instruction execution. Two of the boxes in figure 3 represent more than one IC. The program counter is a cascade of two 74161 counters clocked in parallel, the carry output of the first connected to the T enable input of the second. The head is a cascade of three 74191 bidirectional counters clocked in parallel. The ripple outputs of the lower two are connected to the enable inputs of the next higher ones.

To execute the currently addressed instruction, the bit counter S goes through its cycle of 16 once, shifting the instruction twice through an 8 bit parallel output shift

+ 5

Figure 3: The Universal Turing Machine (UTM) has a tape and a program memory, each with its own address register. As the instruction is shifted out of the state memory, its operands are clocked into the right places by the counter and decoder logic. The R and D registers are needed for timing reasons. Additional circuitry will be needed for control and loading. (See figure 6.) For visual clarity, outputs of the DECODER 74154 are shown directed to numbered terminals corresponding to clocking inputs of the various other blocks of the design. Lines with an "X" mark points of change when adding control logic of figure 6.

D

o Q

74 74

CLK

Dl

TAPE R/W DO

2102 ADOR

OUT

HEAD

D/U

74191(3)

COUNTER

CLK

6

PRES

R -*|D 0

7474

DO

PROGRAM 2102

PC

OUT LOAD

74161(2) COUNTER

CLK

s

D

74161

C

COUNTER CLK

B A

CLOCK

OUT 74164

SHIFT REG

_vw—I

1

DECODER

»{2>CLK HEAD

»{6^>CLK R

>WRITE TAPE >CLK D

1 f>>

»(1>CLK PC

115

A

(L

h-'A—•

PROG. DATA

X

-DATA VALID »l

X

H LOW BIT (PROG. DATA)

X

X

Figure 4: The w bit of an instruction is read from the program 2102 and written into the tape 2102 with the sequence of events shown in this timing diagram. The w data is shifted into H so that it will be steady during the data setup (tpft/) and data hold (tg^/J intervals. The clock half cycle must be longer than t^, which is 1 /js for a slow 2102.

Figure 5: An as table multivibrator is used for the clock. Its half-cycle time is given by the formula AT/2= 0.693 RC

register H. At appropriate points in the cycle, the tape data out bit is copied into R, the w bit is caught and written onto the tape, the d bit is caught and copied into a flip flop, D, and the head is pulsed. At the end of the cycle, the program counter is loaded from H with the next state address. This is all quite similar in spirit to what goes on in any central processing unit.

Sequencing Details

The flip flop R is needed to retain the original instruction address after the tape data is changed in step 8. The flip flop D is needed to keep the direction control steady during the entire low portion of the clock pulse to the 74191 counter.

The counter S and its associated decoder form the "sequence controller" for the UTM, distributing pulses to the clock inputs and other control inputs of the other integrated circuits. The 74154 decoder outputs are normally high. A low level pulse at its enable input is transmitted to whichever output line is currently addressed by the

counter S. The flip flops and counters all change state on the 0 to 1 transition of the clock; that is, on the trailing edge of the inverted clock pulse.

There is some choice in assigning step numbers to the CLK HEAD and CLK R functions. CLK HEAD can be done any time after step 9, CLK D, but before the next CLK R. CLK R can be done any time after step 15, CLK PC, but before step 8, so that the right instruction will be used.

The shift register H is always going. Its contents are ignored during the first eight pulses of the cycle, but the instruction bits are caught and used on the second time through. The clock is inverted before it goes to the shift register so that the shift register will change state on the falling edge of the clock, and be stable on the rising edge, when its contents are being read out to D, PC, and the tape.

Why is the tape data input taken from the low order shift register output rather than directly from the state memory data output? The timing diagram in figure 4 has the answer, and it also shows how the maximum clock frequency can be determined from the 2102 specifications.

Timing

The clock pulse is shown as a square wave in figure 4, but its high and low portions can be of any length greater than their respective minima. The counter S, which has the instruction bit address, changes with the rising edge of the clock, as marked. (Gate delays are not indicated in this diagram because they are much smaller than the 2102 delays.) The state memory data output changes within a time t^, the 2102 access time, after the bit address changes. The data is guaranteed valid from after the access time to the next address change. At the falling edge of the clock, the state data is clocked into the shift register H. Note that the high level portion of the clock must be longer than t^ in order to guarantee that valid data will be shifted into H. The low order bit of H remains steady until the next falling edge of the clock. During step 8, the low level of the clock is sent to the R/W input of the tape 2102. Thus the write pulse time, tyyp, is equal to the low level portion of the clock. The state input is taken from the low order bit of H. The data setup time trj\y starts when the data is shifted in and goes until the end of the write pulse. This is also equal to the low level portion of the clock. The input data remains steady during the next high level portion of the clock, and this period is the data hold time trj(_|. Note that if the tape data input were taken from the state

116

Figure 6: This figure shows the additional control logic to be added to the basic UTM in figure 3. The counter S and DECODER of figure 3 are repeated in this diagram to show the new connections to them. The 74157 acts like a 4PDTrelay controlled by the mode flip flop M. In run mode, it reproduces the configuration of figure 3. In step mode, the DO button executes the UTM function selected by the STEP button, including the RESET and SET R = I functions, which are enabled only in step mode. A WRITE button and a connection from the S high order bit to the program data input have been added for program loading. Logical 1 can be a I k resistor to +5.

TO PROGRAM 2102 AS IN PROG FIG 3

» i

S

74161

COUNTER

TO

CLK H SHIFT REG AS IN FIG. 3

«-^

LOAD PC

DECODER 74154

UTM FUNCTION

SET R=l

RESET

-»{7>CLK HEAD

-»(5>RUN -»{£>CLK R

-*GT> WRITE TAPE ~HH>CLK D

CLR R CLR D CLR PC LOOT

•*^5>CLK PC

PRESET R

HEAD

4 (WITH 0)

IY 2Y 3Y

74157 QUAD 2M SELECTOR 2A 2B 3A 3B ;

♦ + 5V<

LOGIC T

4B

► 5V

DO

IS

(DEBOUNCED,

SEE FIG. 7)

WRITE

jr

PROG R/W

data output, the data hold time would be zero, and the write operation might not "take."

We conclude from the above analysis that the high level portion of the clock must be greater than both the maximum t^, which is 1000 ns for a slow 2102, and the minimum trj|-|, which need only be 100 ns. The low level portion of the clock must be greater than the minimum values for tyyp, 750 ns, and trj\y, 800 ns. Thus the high level must be at least 1000 ns and the low level at least 800 ns, giving a maximum clock frequency of roughly 500 kHz.

The clock is the astable multivibrator shown in figure 5, with 0.693RC < 10~6 to satisfy the timing constraints. In fact, if you depend on the values marked on the resistor and capacitor, it might be better to choose RC < 10—" to leave room for tolerances.

Control and Loading

Some additional logic, such as that shown in figure 6, is needed to load programs and data into the memories and get a program started. A mode flip flop M constructed from two NAND gates switches the pulse input from the clock to a pair of debounced buttons: a STEP button to pulse the counter S, and a DO button to send a pulse to the place selected by the count. The STEP

button sets M to "step mode" whenever it is pressed. Note that, in step mode, the STEP button increments the counter by only one; it does not go through a whole instruction. Also, in step mode, nothing happens until the DO button is pressed, except incrementing the count and shifting the instruction through H. A pulse to the reset input of the mode flip flop is added as step 5 of the instruction cycle, so you can get back into "run mode" by counting with the STEP button to 5 and then pressing the DO button.

A debouncing circuit for the STEP and DO buttons is shown in figure 7. The normally high output of each button must be used, since a low level from STEP sets M,

+ 5V

PUSHBUTTON

Figure 7: Debouncing circuit for an SPDT push button.

117

TAPE PROG FREE SO SI S2 S3 DO DO R

.IK

; RESISTORS

dpabcdef q

TAPE DO PROG DO

s:

dp

^=

CV/

Figure 8: A 7 segment display is a compact way to provide all essential information for control and readout purposes. Sq — S3 are the four bits of the counter S. The decimal point is available for other use, such as a logic probe function.

Figure 9: Flowchart of a program to write six Is on a cleared tape. State numbers are in the decision boxes. Process boxes contain w,d. The leftmost I produced by the program will be at location 0 if the head is initially at 4. This is the best 4 state ' 'busy beaver'' program.

and a low level from DO can cause a write tape operation or reset M to run mode.

A RESET function, enabled only in step mode, zeros the tape and state addresses, and clears R and D, leaving D in the "up" or R direction. After using RESET, selective use of the CLK HEAD and CLK PC functions allows you to count up to any tape and state addresses.

The UTM control panel should display at least the following: all four bits of the count S, the current tape bit, the current instruction bit, and R. I found it convenient to get a 7 segment display and use each segment for one of the bits, as shown in figure 8. The decimal point was connected to a free wire used as a probe for debugging.

0,R

H-<

A

>

l,R

The SET R = I function, enabled only in step mode, plus a WRITE button, are used in program loading. The state memory data is taken from the high order bit of the counter S. Thus, while you step from 0 to 7, you have an opportunity to write 0 into the current instruction bit, and from 8 to 15 you can write 1. At step 15, hit the DO button to count up to the next state. The program counter is incremented by I in step mode, rather than loaded. After you have loaded all instructions with R = 0, you RESET, SET R=1, and load the R=1 instructions for all states.

This is an awkward procedure, but it works, and uses the minimum amount of control hardware. For convenience, my own UTM has an input mode and additional enabling logic that permits program loading with just two controls — the STEP button for counting bit — serially through the whole program, plus a DATA button that selects the value written when the STEP button is pressed. This input method facilitates program loading from a cassette.

The CLK HEAD and WRITE TAPE functions are sufficient to load the tape memory with data. After clearing the tape with the program in figure 1, set the PC to a state with w=1 in both instructions. Now, advance the head to each tape location in which a 1 is desired, and "DO" the WRITE TAPE function, with the STEP button down.

Data loading could be facilitated with an instruction cycle mode, in which the count goes from step 5 all the way around once to step 4 each time the DO button is pressed. All it takes is a pulse to set step mode from step 3, plus some logic to enable the pulse when a "cycle" switch is set. A full cycle to step 5 requires more logic to shorten the DO pulse to less than the full cycle.

118

Figure 10: Listing in UTM notation of the busy beaver program flowcharted in figure 9,

BIT READ

TATE

0

1

COMMENTS

1

1,L,2

1,R,4

initial state

2

0,L,3

1,L,2

3

1,R,3

1,R,1

4

0,R,4

1,R,4

final scan state (infinite loop)

There is really no data output from this machine, in the usual sense. If you want to see what is on the tape, enter step mode, RESET, and watch the current tape bit display while executing the CLK HEAD function. Something like normal data output can be arranged by adding logic to test for a particular address in the head, such as 0 or all 1s, together with a pulse on the WRITE TAPE line. The bit being written can be sent to an output device.

Once the baseline minimum UTM is assembled, you may be willing to put up with the operating inconvenience temporarily while you experiment with the Turing machine language and get a feeling for its idiosyncracies.

Busy Beaver Programs

"Busy beaver" programs are fun to start with, because they begin with a cleared tape. The object of a busy beaver program is to write as many Is as possible. Of course, you can make w= 1 in both instructions of the clear-tape program in figure 1, and this gives you a program that will set the whole tape to 1s. But, suppose you want a string of exactly 281 1s, for example. How many states would be needed in a program to produce it? An 8 state program will do. More states may be needed for smaller numbers, though. A workable but not necessarily optimal strategy for producing particular length strings of 1s is to combine an n state program that writes a desired n bit binary number with another program that converts an n bit binary number to a string of that number of 1s.

A related problem is to find the greatest exact number of 1s that can be written with a program having a given number of states. It is known that a 3 state program can write at most four Is, and a 4 state program can write at most six. A 4 state program that writes six Is is flowcharted in figure 9, and listed in figure 10. The best busy beaver programs are not known for five or more states, however. There is a 5 state program that produces ten Is, probably the best possible; a 6 state one for 14 Is; and a 7 state one for 29.

Unary Arithmetic

Demonstrations that Turing machines can do arithmetic are often made using the unary system for representing nonnegative integers. The number n in unary is a string of n + 1 1s delimited by 0s. Thus, unary 1 represents the number 0. If the UTM tape has two unary numbers separated by a single 0, adding them is easy: change the separating 0 to 1 and take two 1s off the end. Other arithmetic operations take more ingenuity, but they are all possible.

Multiple Bit Words

The main problem with binary information on the UTM tape is figuring out where it starts and stops. The simplest solution is to group bits into pairs (starting with location 0), so that each pair can represent one of four characters. The characters 00 and 11 can represent the binary digits 0 and 1, and the other two, 01 and 10, can be A and B. A binary number of any length can be stored as a string of 0 and 1 characters beginning after an A and ending at a B. For textual data, you may prefer characters of six to eight bits; it's up to you.

Summary

The universal Turing machine design in the article was aimed at low cost. Constructed from only 15 integrated circuits, it is a complete general purpose stored program computer. Its low cost was made possible by the fact that only one simple instruction had to be implemented. The single Turing machine instruction is general enough, in principle, to program any computation with; although very long and inefficient programs would be necessary for most useful applications. Extensions to the tape and state memories, as well as interfaces for 10, will prove desirable as additions to this design; but the principles of operation are so simple that such additions should be easy. If you are challenged by the programming task, tolerant of long computations, and enjoy tinkering with parts and pieces, a UTM project offers a tremendous potential for enjoyment."

119

BOOK REVIEWS

Scientific Analysis on the Pocket Calculator by Jon M Smith, John Wiley & Sons, New York, 1975, 392 pages and one errata sheet. $13. 75.

Despite the art on its dust cover, this is not another in the profusion of books on how to play games on and with pocket calculators. (Turn it upside down and read the red print.) This claims to be the first and only book of its kind, and is quite serious, except for just over one page in its appendix.

If you've ever used a large computer, you know that as expensive as they are, one of the largest costs is programming, whether you do it or buy someone else's. Sophisticated programs are for sale in high level languages for all sorts of scientific and business applications. If you want to do some serious but fancy things on a microcomputer (probably not yet fully expanded to 65 K of working memory and with only an abbreviated version of BASIC), you may wonder where you are. Or you may be trying to choose between a high priced calculator and a low priced microcomputer.

This book doesn't seem to have been written to help you as a microcomputer person. But would you believe that you can do many advanced scientific applications on a calculator, whether or not it's programmable, whether or not it has scientific notation, trigonometric functions, parentheses and even whether or not it has any memory? (Of course, the more features the calculator has, the more advanced are the things it can do and the greater the ease of doing them.) How? All you have to do is put the numbers and operators (signs) in the right order, and you can do anything that doesn't involve bigger or smaller numbers than the calculator can display. Jon Smith has rewritten many useful formulas and

equations for you, but to levels of complexity suitable to various calculators. All you need is patience and the skill to catch your mistakes. The author places "emphasis more on understanding the method and providing accuracy consistent with the display in the pocket calculator, on a one-time basis." He freely admits leaning heavily on Richard Hamming's Numerical Methods for Scientists and Engineers (McGraw-Hill, 1973). He estimates that in use, pocket calculators are about four times as fast as the old mechanical calculators.

Can this help you with your microcomputer and BASIC? If you have a calculator chip and its interface working, unquestionably. If not, this simplification of procedure should help you to write BASIC statements, subroutines and programs more easily. You'll be able to put "equations" on a single line more often, with more use of nested parentheses and fewer loops. And you'll probably need less memory for the program. However, "the methods chosen here are not necessarily the same as those commonly used on large digital computers."

Are you wondering how all this is possible? What's the catch? There's no catch. As you may have suspected, there had to be a better way. This is it. Still, this book is not for everyone. It starts somewhere beyond where the usual "how to use your calculator in the kitchen and home workshop" books leave off. It is intended to help engineers and scientists with a good mathematical background do fairly sophisticated analysis without a computer. Formulas are often given in nested parenthetical form (looking like onions) for approximating roots, trigonometric functions and much more. These are worked out by calculator from the inside out. This is practical up to 10 levels of parentheses, up to six more than the ordi

120

TOUCH TONE GENERATOR BY MOSTEK. MK5086N produces the dual-tone multi-frequency telephone dialing signals as used in TT phones and auto patches. Uses inexpensive crystal, 1 resistor and 1 capacitor. Both tones are internally mixed and buffered to a single output - simple ! Two additional output switches can control timers, transmitter, mute receiver, enable audio amp, etc. Uses

cs keyboard. Comes in 16 pin plastic DIP.

$8.95...Crystal for MK5086N SI .90

our Chome

MK5086N

Specs for MK5086N 80$

Kit of parts including etched and drilled P.C. b

of our Chomerics keyboards

ard and one ...519.95

MC14412 UNIVERSAL MODEM CHIP MC14412 contains a complete FSK modulator and de-modulator compatible with foreign and USA communications. (0-600 BPS) FEATURES:

.On chip crystal oscillator

.Echo suppressor disable tone generator

.Originate and answer modes

and full duplex operation

.Simplex, half-duplex, .On chip sine wave .Modem self test mode .Selectable data rates:

0-200 0-300 0-600

.Single supply VDD=4.75 to 15VDC - FL suffix VDD=4„75 to 6 VDC - VL suffix TYPICAL APPLICATIONS:

.Stand alone - low speed modems .Built - in low speed modems .Remote terminals, accoustic couplers

MC14412FL....

MC14412VL

6 pages of data

$28.99

$21.74

.60

Crystal for the above $4.95

MC14411 BIT RATE GENERATOR. Single chip far generating selectable frequencies for equipment in data communications such as TTY, printers, CRT s or microprocessors. Generates 14 different standard bit rates which are multiplied under external control to IX, 8X, 16X or 64X initial value. Operates from single +5

volt supply. MCI4411 $11.98

4 pages of data = 40

Crystal for the above $4.95

REMOTE CONTROL TRANSMITTER. MC14422P is a 22 channel ultra-sonic remote control transmitter I.C. CMOS uses little power and only a few external passive components. Applications include TV receivers, security controls, toys, industrial controls and locks. 16 pin DIP plastic pkg. MC14422P with specs $11.10

PRECISION REFERENCE AMP

LH0070-1H provides a precise 10.0 volts for use in BCD A

to D converters or meter calibrators. Typical Initial accuracy

is .3% ft .03V) . Comes in TO-5 can.

LH0070-1 H with specs $5.35

4 DIGIT COUNTER. MM74C926 is a 4 digit counter with 7 segment output. Carry output for cascading and internal display select allows outputting of counter or set of internal latches. 3 to 6V operation. Great for clocks, event and frequency counters. MM74C926 - with spec sheet $12.00

3 DECADE (BCD) COUNTER CHIP MC14553BCP consists of 3 negative edge triggered synchronous counters, 3 quad latches and self scan multiplexed , TTL compatible outputs.

MC14553BCP $8.72

Spec sheets $.60

TELETYPE CODE CONVERSION CHIP

MM5220BL converts 5 level Baudot Into 8 level ASCII. Use

this chip to make your old TTY talk to your new computer.

MM5220BL $18.00

Specs for the above .30

MOS TIME BASE KIT.

Only 1" X 1.5". Input 5 to 15 VDC, output is 60HZ square wave for portable or mobile clocks. PC board is drilled ! MTBK-60HZ $5.88

Says

If your project schedules are slipping and you're taking lumps with high prices and poor service, let the guys

at Tri-Tek put it on ice for you

(and Happy Holidays)

CLASS B AUDIO DRIVERS

MC3320P and MC3321 P are pre amps and drivers for class B

complementary output transistors. Self balancing allows for

no special HFE matching of output transistors.

MC3320P operates up to 30V,

89db gain S2.25

MC3321 P operates up to 14V,

32db gain $1 -'8

Specs for both 40c

GOLD CHIP

Linear Integrated Circuits

Brand new process by RCA in which the aluminum metalization has been replaced by gold. The chip is then hermetically sealed. What this means to you is unprecedented reliability and uniformity. Plastic parts that meet mil specs! ! Tri-Tek is proud to be the first to bring this new level of performance to you at SURPLUS PRICES. Why buy regrades??

CA301 A. .Improved,general purpose op-amp,8 pin dip. .59$

CA307...Super 741 op-amp, 8 pin dip 52$

CA324.. .Compensated quad op-amp, 14 pin dip $1.80

CA339A.. Low offset quad comparator. 14 pin dip...$1.59 CA741 C.. Famous general purpose op-amp, 8 pin dip.. 45$ CA747C. .General purpose dual op-amp, 14 pin dip... 82$

CA748C. .Externally compensated 74], 8 pin dip 49$

CA1458. .General purpose dual op-amp. 8 pin dip 69$

CA3401..Quad single supply (5-18V) op amp. 14 pin..89$

Another super buy from RCA. CA555 timer. 8 pin dip. 59$

5 DECADE COUNTER

MC14534BCP is a 5 decade real time counter with multiplexed

BCD outputs. Can be cascaded for longer counts. Typically

5MHZ operation at 15 Volts.

CMOS structure for low power consumption.

MC14534BCP $11. 25

POWER FET

VMP1 Is an N channel MOS FET capable of switching 1 Amp in 5nSeconds. Can be used as RF power Amplifier with power gain of 40 db !

VMP1 TO-3 $9.75

Specs 60$

RCA 40673 dual gate MOS FET $1.01

2N 5485 N channel J FET 69$

2N 5486 N channel J FET 69$

DATA BOOKS BY NATIONAL SEMICONDUCTOR

DIGITAL. Covers TTL, DTL, Tri-State, etc $3.95

LINEAR. Covers amplifiers, pre-amps, op-amps, .. $3.95 LINEAR APPLICATIONS. Dozens of application notes and technical briefs covering the use of op-amps, regulators,

phase locked loops and audio amps Vol 1 $3. 25

CMOS Gates, Flip Flops, registers, functional blocks $3 VOLTAGE REGULATORS. A must for anyone making a power supply. Complete theory including transformers,

filters, heat sinks, regulators, etc $3.00

MEMORY. Information on MOS and Bipolar memories':

RAMS, ROMS, PROMS and decoders/encoders $3.95

INTERFACE. Covers peripheral drivers, level translators, line driver/receivers, memory and clock drivers, sense amps

display driver and opro-couplers $3.95

(Outside U.S., add postage for 1 .5lbs)

SPECIAL FUNCTIONS DATA BOOK contains detailed information for specifying and applying special amplifiers, buffers, clock drivers, analog switches and D/A-A/D

converter products $3. 25

AUDIO HANDBOOK contains detailed discussions, including complete design particulars, covering many areas of audio with real world design examples. .. $3.25

10 AMP VOLTAGE REGULATOR

MPC1000 is a 10 Amp positive voltage regulator adjustable

from 2 to 35 VDC. 0.1% line and load regulation with

0.005% per*C temperature stability. Can be fold-back

limited. Here is high current, high power with minimum

bother.

MPC-1000 516. 85

Specs for above 60$

NEW NATIONAL BOOK LINEAR APPLICATIONS VOL II

Takes up where Vol I left you—AM the latest linear devices. Along with Vol I you have a great source of application data on the most widely used devices as well as new types just appearing $3.25

INTRODUCTION TO MICRO COMPUTERS

New book from OSBORNE,

The first edition of this classic was a huge success. Now,

due to the growth of information on the subject Osborne has

expanded the work into 2 volumes. Vol I covers basic

concepts, Vol II discusses real world micro computers.

IMC-002 Voll $8.00

IMC-002 Vol! I $8.00

'NOTHER NEW BOOK FROM OSBORNE. "8080 PROGRAMMING FOR LOGIC DESIGN" explains how an assembly language program within a microcomputer system can replace combinatorial logic for logic designers, programmers or anyone who is interested in real and powerful applications of the ubiquitous 8080. PLD-4001 $8.00

tRi-tek, inc.

6522 noRth 43Rfc Avenue,

qLendALe, arizoiia 85301

phone 602 - 931-6949

We pay shipping on all orders over $10 US, $15 foreign in US funds. Orders under $10, please add $1 handling. Please add Insurance. Master Charge and Bank America cards welcome, ($20 minimum^ Telephone orders may be placed 11AM to 5PM daily, Mon thru Fri. Call 602-931-4528. Check reader service card or send stamp for our latest flyers packed with new and surplus electronic components.

nary form of equations, because the number of key strokes increases proportional to the number of terms in nested form, rather than proportional to the square of the number of terms.

Much use is made of power series, generated by using Taylor's theorem, Maclaurin's theorem, Chebyshev polynomials, etc. There is an interesting discussion of roundoff error (including a table with an error in computation, no doubt the usual academic inside joke) emphasizing the avoidance of subtraction of nearly equal numbers.

After the first chapter, the book gets into fairly heavy math. Chapter 2 covers difference tables, interpolation and extrapolation. Chapter 3 covers progressions, infinite and binomial series, transformation of series, quadratic and cubic equations, successive approximation, elementary transcendental functions, plane and spherical triangles and complex variables and functions. Chapter 4 goes on to numerical evaluation of exponential, sine and cosine integrals, the gamma and error functions, Fresnel

integrals, Legendre's, Chebyshev, Hermite and Laguerre polynomials, hypergeometric functions and Bessel functions. The next three chapters take on Fourier analysis, numerical integration, and linear systems simulation (using difference equations and variance propagation). Chapter 8 gives Chebyshev and rational polynomial approximations for analytic substitution. Chapter 9 deals with determining the roots of a function. Chapter 10, on statistics and probability, is far simpler than the preceeding chapters, but here a calculator with memory is needed. The last two chapters, about 75 pages, deal with the special capabilities of programmable pocket calculators, first in general and then for use in optimization. Four appendices cover tricks, matrix analysis, complex numbers and functions, and selected reprints from Hewlett-Packard's HP-35 MATH PAC for complex variable analysis and hyperbolic and inverse hyperbolic functions.

John F Sprague Allendale NJa

A Guided Tour of Computer Programming in BASIC by Thomas A Dwyer and Michael S Kaufman, Houghton Mifflin Company, Boston, 1973; 8'A X 11, 156 pages. Paperback $3.60.

Although this book was written to teach BASIC programming to secondary school students, it is also an excellent book for adults as well as young people. Since very little knowledge of mathematics beyond basic arithmetic is needed to understand the authors' many example programs, this is one of the few BASIC programming texts that can be used comfortably by people who

30 LET C=(B/A)*100* 40 PRINT A,B,C;"%"* 100 END

-That's a good start.

-We have to PRINT the answers to get OUTPUT.

know little mathematics beyond that taught through sixth grade.

The book is organized into four parts — "Getting Ready for the Journey" and "The Economy Tour," which are sufficient for many programming applications; and "Techniques for the Seasoned Traveler" and "Far Away Places," which contain more advanced programming techniques and applications. "Getting Ready for the Journey" features a comparison of minicomputers and time sharing computers and shows how to communicate with each system. The procedures described are similar to what will be found in many microcomputer based systems. This section also has a model of what a normal session at a terminal might look like. The example session, which uses only the key words LET, PRINT, and END, has margin notes pointing to the mistakes and telling how to correct them. "The Economy Tour" shows how to use the key words PRINT, END, LET, INPUT, GOTO, IF . . . THEN, STOP, FOR . . . NEXT, and STEP to make BASIC statements and illustrates how to sequence statements into useful programs. This section concludes with one of the best explanations I have seen on how to use paper tapes. "Techniques for the Seasoned Traveler" explains and illustrates the key words DIM, REM, TAB, READ . . . DATA, RESTORE, GOTO ... OF . . ., ON ... GOTO ■..., and GOSUB ... RETURN as well as the functions SQR, INT, ABS, and

122

in kit form

$99.95

We took everything we learned from selling AKx8 RAM boards for the past year, added some of this year's circuit tricks, and came up with ECONORAM a memory board that is even more remarkable due to its low price. We've engineered this with the user in mind, giving you several benefits:

* 3 regulators to share power load, plus optimized thermal design, means a cooler running mi crocomputer

* Typical current consumpt ion of under 750 ma gives your power supply a break

* Fast — Zero wai t states

* All TTL support ICs are latest Low Power Schottky types

* For reliable and unambiguous data transfer, al 1 addresses, data 1ines, and outputs are buffered for minimum loading and maximum output capability

* Power-on clear included

All these features are packed on to an Altair-sized, industrial quality double-sided PC board, with sockets for all ICs, 7 tantalum capacitors for power supply decoupling, and plenty of bypass capacitors 39 of them, in fact, as we 11 as a logic print

and instructions.

also available assembled $129.95

Our popular ECONORAM 4K x8 RAM board is now available assembled, tested, and warranteed for one year. Plug it in to your Altair or IMSAI and enjoy the same performance that has made the kit such a success guaranteed zero wait states and current drain of 750 mA or less; on board regulation, easy address selection, and lots more.

"EconoROffl" $179.95

ALTAIR 8800/IMSAI PLUG-IN COMPATIBLE. This is a 4K. by 8 EROM board...the ideal place for putting software, be it assembler, editor, or any custom set of routines. Additionally, this board may expand to 8Kx8 by simply adding more sockets and EROMsj also available is a 2K x 8 version if you don't need a full 4K. LOW POWER: 8K board requires %A @ 5V, & 150 ma @ -12V. Buffered addresses for lightest loading, buffered outputs for maximum drive. Kit includes sockets, double- sided quality PC board, on board regulators, logic print, and instructions. Program it yourself, or have us do the programing.

8KX8 BOARD $269.95

2KX8 BOARD $135.00

8080 Software Board $189.95

We took our EC0NOROM board kit, but instead of including blank EROMs, these are programmed with assembler, editor, £ monitor routines for the 808O. This is a valuable first step if you're trying to get away from machine language programing. There's not really enough room here to fully describe all the functions of the software...but if you send us $2.95 (refundable with order), we'll send you our software packet that includes instructions listing, schematic, and assembly data.

li'LSlrTL

VfcAMP

I POWER SUPPLIES

LBS SHIPPING

I $7.95 + 2

Regulated, short-proof, thermal-: ly limited. half an amp contin-: uous, or 1 amp intermittent.: Save yourself the headache of: designing your own) let us col-: lect the parts and save you mon-i ey too. Specify 5, 6, 8, or 12; volts. less case and hardware.:

00

$0.36

30

$0.36

132 $1.50

175

$1.35

01

0.36

32

0.38

138 1.38

221

1.38

02

0.36

37

0.53

139 1.38

240

1.88

04

0.42

38

0.53

155 1.38

257

1.25

08

0.38

42

1.25

157 1.25

258

1.38

10

0.36

74

0.56

160, 161,

273

2.25

11

0.38

75

0.85

162, 163=

283

1.20

20

0.36

109

0.60

$1.85 ea.

367

1.00

21

0.38

124

2.50

168 1.87

368

1.00

22

0.38

125

0.75

169 1.87

377

1.88

27

0.38

126

0.75

174 1.38

378

1.38

Now you have a choice--specify wire wrap pins (illustrated) or solder tail with .250" row spac

For IMSAI and Altair peripherals. Wire wrap part # S-100WW. Soldertail part * S-100ST

: COMF. AND GET

BILL GODBOUT ELECTRONICS BOX 2355, OAKLAND AIRPORT, CA 94614

(CAVE)

TERMS: Add 50c handling to orders under $10. Cal res add sales tax. No COD orders. Place credit card orders (BankAmericard* and Mastercharge®) by calling 415-562-0636, 24 hours.

NOTE: These chip sets come with ICs&pinout sheet

8008 CHIP SET $29.97

(1) 8008 CPU (8) 2102s (1) 5203 2K EROM

8080A CHIP SET $35.60

Includes 1-8080A + 8-2102L1S. All memories in our chip sets are LOW power and guaranteed 450 ns.

Both chip sets include PACE DATA PACKET

PACE

o\a//

:: ff' (1) PACE CPU

FIVE/$1

Standard phenolic type. LTD QTY

(4) DS3608 (1) DS0026 (1) DM8837 (2) 5204 ROMs

DELUXE PACE SET

$175

(1) PACE CPU (4) DS3608 (1) DS0026 (1) DM8837 (32) 2102s (4) 5204 ROMs

T03 SOCKETS {

PACE PACKET

Learn about this powerful 16 :;

| bit CPU for $2.50. 80 pp. I

RND. "Far Away Places" has nine application programs — two dealing with data analysis, two on nonnumeric uses of computers, a simulation, a game, and three business-oriented examples. The system commands RUN, LIST, SCR, BYE, PUNCH, TAPE, and KEY are presented early in the book with a careful explanation of the differences among system commands, key words in BASIC, and BASIC statements.

The authors stress interactive computing throughout the book and also use an interactive, conversational style to communicate their ideas to the reader. The 31 sections in the book contain pencil and paper questions for the reader to answer, exercises where the reader is asked to pretend that he or she is a computer and RUN (on paper) example programs, interesting exploratory programs to be executed on line, and brief reviews of previously presented skills and concepts. The authors know precisely where the programming novice may become confused and offer frequent "morals," "notices," "notes," "practical rules," and "formal rules," all of which are highlighted in red boxes. For example, in the first part of the book the reader is reminded to press RETURN at the end of each program line and to SCRatch an old program before typing a new one. Later the reader is shown what can happen when one tries to INPUT a common fraction as numeric data. Care is taken to introduce precise computer language and to explain it using everyday terminology. Many BASIC statements are explained by telling how they could be said in English.

Good use is made of analogies and examples in explaining how computers operate, how to use key words, and how to write BASIC statements. For instance, IF . . . THEN statements are compared to a bus driver who "loops" through his route 10 times, keeping track of the number of loops with a counter, before returning to the garage. In using this book, the reader is gradually taken from an instructordominated learning mode to a dual learning mode and on to a solo mode as he or she reads from page 1 to page 156. For example, the first on-line activity is to enter, list, and run a prepared program; other exercises require the reader to modify and improve given programs; later in the book the reader is asked to write his or her own programs to carry out specified tasks.

This book has a number of distinctive features which facilitate learning BASIC programming:

1. No partial programs which could mislead the reader are given. Every

example of a BASIC key word or a BASIC statement is imbedded in a complete, executable program with sample output.

2. The book is very well organized. Large type is used throughout. Engaging red and black cartoon-like illustrations abound. (See one such reproduced in black and white on page 122.) Callouts boxed in red with arrows pointing to program lines are used to explain BASIC statements. Things are easy to locate by either browsing through the book, using the Contents, or looking through the Index and Summary in the back of the book. Selected answers and hints for the exercises are grouped near the end of the book.

3. Typical idiosyncracies due to the particular computer system being used are pointed out as they are encountered.

4. In each short section the person using the book is required to go to a terminal and become an active participant in interactive computing.

5. Most of the example programs are both interesting and practical.

6. BASIC key words and programming techniques are introduced when they are needed to make the computer carry out desired tasks. The authors also explain why a "bulldozer" technique such as using GOSUB . . . RETURN may be preferable to a "shovel" technique such as using GOTO. Flowcharting is presented not as an end in itself but as a useful tool to organize and explain programs.

This book has few shortcomings. However, an explanation could be given as to why a switch is made early in the book from numbering program lines 1, 2, 3, . . ., n to numbering them 10, 20, 30, . . ., 10/7. Several of the programs that illustrate the use of bulldozer type BASIC key words could be clarified by inserting additional callouts to certain sections within each program.

In summary, this is one of the best of the several score BASIC programming books and manuals on the market, and it is certainly the most interesting of them all. Even after programming in BASIC for many years I still enjoyed reading this interesting book. If you are about to select a book for use in teaching and learning BASIC be sure to consider Guided Tour.

Frederick H Bell

Coordinator, Mathematics Education Programs

University of Pittsburgh

Pittsburgh PA 15260"

124

IRCHILD

ANNOUNCES THE

HI

SOLID STATE

TECHNOLOGY KIT

• FOR THE EXPERIMENTER WITH TASTE FOR "STATE OF THE ART" PRODUCTS

• COMPLETE SPECIFICATIONS ARE PRINTED ON THE BACK OF EACH TECHNOLOGY KIT

FTK0020

PNFTK0020 ^P

SOLID STATE

TECHNOLOGY KIT

FTK0020

FTK0106

TECHNOLOGY KIT

automobile clock

l=AIRCHILD

TEN RfOLED LAMPS

TECHNOLOGY BY

FAIRCHI

CARD FRONT

CARD BACK

CARD FRONT

DIGITS

FTK0001 0.5" High Common Cathode Digit $1.00

FTK0002 0.5" High Common Anode Digit 1.00

FTK0003 .357" High Common Cathode Digit .75

FTK0004 0.8" High Common Cathode Digit 2.00

FTK0005 0.8" High Common Anode Digit 2.00

0.8" HIGH DISPLAY ARRAYS

FTK0010 12 Hour, 31/2 Digit Clock Display 7.00

FTK0011 24 Hour, 4 Digit Clock Display 8.00

LED LAMPS

FTK0020 10 Red LED Lamps 1.00

FTK0021 5 Mixed Colored LED Lamps 1.00

FTK0022 10 LED Mounting Clips 1.00

FTK0023 5 Three Piece LED Mounting Adapters 1.00

PHOTO TRANSISTORS

FTK0030 5 Flat Lens Photo Transistors

FTK0031 5 Round Lens Photo Transistors

FTK0032 3 Flat Lens Photo Darlingtons

FTK0033 3 Round Lens Photo Darlingtons

1.00 1.00 1.00 1.00

PHOTO ARRAYS

FTK0040 9-Element Tape Reader Array

FTK0041 12-Element Card Reader Array

FTK0042 Reflective Opto Coupler

16.00

24.00

4.00

COUPLERS

FTK0050 3 General Purpose Opto Couplers

FTK0051 Darlington Opto Coupler

1.00 1.00

MPS CLOCK CIRCUITS

FTK0400 Digital Clock/Calendar Circuit 7.00

(FCM7001) FTK0401 Digital Clock/Calendar with BCD 7.00

Outputs (FCM7002) FTK0402 Direct Drive Digital Clock Circuit 5.00

with AC Output (FCM3817A) FTK0403 Direct Drive Digital Clock Circuit 5.00

with DC Output (FCM3817D)

FTK0405 Direct Drive Digital Clock/Calendar 6.00

Circuit (FCM7015)

FTK0106

KITS

Automobile Clock Kit

40.00

• THESE PRODUCTS ARE PACKAGED FOR OUTSTANDING WALL DISPLAY APPEARANCE

.FULL p^^l PRODUCT LINE TO FOLLOW

Satisfaction Guaranteed. $5.00 Min. Order. U.S. Funds.

California Residents — Add 6% Sales Tax

Send a 24c Stamp (postage) lor a Free 1977 Catalog

1021-A HOWARD AVE., SAN CARLOS, CA. 94070 PHONE ORDERS WELCOME — (415) 592-8097

• DEALER'S AND WHOLESALER'S INQUIRIES INVITED — PRICE LIST AVAILABLE.

• BUY WITH PRIDE THE PRODUCTS BUILT BY

THE INDUSTRTS^^^^ LEADER —J=£\»

/fjf 7400N TTL

SN74O0N .56 SN7459A .25

SN7401N .16 SN7460N .22 SM74154N

SN7402N .21 SN7470N .45 SN74155N

SN7403N .16 SN7472N .39 SN741S6N

SN7404N .18 SN7473N .37 SN74157N

SN7405N .24 SN7474N .32 SN74160N

SN7406N .20 SN7475N .50 SN74161N

SN7407N .29 SN7476N .32 SN74163N

SN7408N .25 SN7479N 5.00 SN74164N

SN7409N .25 SN7480N .50 SN74155N

SN7410N .18 SN7482N .98 SN74166N

5N7411N .30 5N7483N .70 SN74167N

SN7412N .33 SN7485N .89 SN74170N

SN7413N .45 SN7486N .39 SN74172N

SN7414N .70 SN748BN 3.50 SN74173N

SN7416N .35 SN7489N 2.25 SN74174N

SN7417N .35 SN7490N .45 SN74175N

SN7420N .21 SN7491N .75 SN74176N

SN7421N .33 SH7492N .49 SN74177N

SN7422N .49 SN7493N .49 SN74180N

SN7423N .37 SN7494N .79 SN74181N

SN742SN .29 SN7495N .79 SN74182N

SN7426N .29 SN7496N .89 SN74184N

SN7427N .37 SN7497N 4.00 SN74185N

SN7429N .42 SN741O0N 1.00 SN74186N

SN7430N .26 SN74107N .39 SN74187N

SN7432N .31 SN74121N .39 SN74188N

SN7437N .27 SN74122N .39 SN74190N

5N7438N .27 SN74123N .70 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

SN7445N .75 SN74143N 4.50 SN7419BN

SN7446N ,B1 SN74144N 4.50 5N74199N

SN7447N .69 SN74145N 1.15 SN74200N

SN744BN .79 5N74147N 2.35 SN74279N

SN7450N .26 SN74148N 2.00 SN74251N

SN7451N .27 SN74150N 1.00 SN74284N

SN7453N .27 SN74151N .79 SN742B5N

SN7454N .20 SN74153N .89 SN74367N MANY OTHERS AVAILABLE ON REQUEST

2d% Discount for 100 Combined 7400's

CO4O00 CD4001 CD4002 CD4006 CD4007 CO4O09 CD4010 CD4011 C04012 CO4013 CD4016 CD4017 CD4019 CD4020 CD4022 CD4023 CD4024 CD4025 CD4027 CD4028 CO4029 CD4030

.25

CMOS

CD4035 1.85

CD4040 2.45

CD4042 1.90

CD4044 1.50

CD4046 2.51

CD4047 275

CD4049 .79

CD4050 .79

CD4051 2.95

CD4053 2.95

CD406O 3.25

CD4066 1.75

CD4069 .45

CD4071 .45

CO4081 .45 CD4511 CD4518 CD4566 74COON 74C02N

2.50 2.50 3.00

TTCT—

LM301H

LM301CN

LM302H

LM304H

LM305H

LM307CN

LM308H

LM308CN

LM309H

LM309K

LM310CN

LM311H

LM311N

LM318CN

LM319N

LM320K-5

LM320K-5.2

LM320K-12

LM320K-15

LM320T-5

LM320T-5.2

LM32QT-8

LM320T-12

LM320T-15

LM320T-18

LM32QT-24

LM323K-5

LM324N

LM339N

LM340K-5

LM340K-6

LM340K-B

LM34QK-12

LM340K-15

LM340K-18

LM340K-24

LM340T-5

LM340T-6

LM340I-8

LM340T-12

LM340T-15

LM340T-1B

LM340T-24

LM350N

LM351CN

74C04N

74C10N

74C20N

74C30N

74C42N

74C73N

74C74

74C90N

74C95N

74C107N

74C151

74C154

74C157

74C160

74C161

74C163

74C164

74C173

74C193

74C195

MC4044

MC14016

LINEAR

LM370N 1.1.5

LM373N 3.25

LM377N 4.00

LM3B0N 1.39

LM390CN 1.05

LM381N 1.79

LM382N 1.79

NE501K B.OO

NE510A 6.00

NE531H 3.00

NE536T 6.00

NE540L 600

NE550N .79

NE555V .45

NE560B 5.00

NE561B 5.00

NE5628 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

LM74114N .39

LM747H .79

LM747N .79

LM74BH ,39

LM748N .39

LM1303N .90

LM1304N 1.19

LM1305N 1.40

LM1307N .85

LM1310N 2.9

IM1351N 1.6

LM1414N 1.7

LM1458C .6

LM1496N .9

LM1556V 1.8

LM2111N 1.9

LM2901N 2.9

LM3065N .6

LM3900N .5

LM3905N .6

LM3909 1.2

LM5556N 1.8

MC5556V 1.0

LM7525N .9

LM7535N 1.2

803BB 4.9

LM754SO .4

75451CN .3

75452CN .3

754S3CN .3

75454CN .3

75491CN .7

75492CN .8

75494CN .8

RCA LINEAR

CA3013 2.1

CA3032 2.5

CA3035 2.4

CA3039 1.3

CA3046 1.3

CA3059 3.2

CA3060 3.2

CA30BO .B

CA3081 2.0

CA3082 2.0 CA3083 CA3086 CA3089 CA3091 CAS123 CA3130 CA3140 CA3600 RC4194 RC4195

3.75 10.20 2.15

74LS0Q 74US02 74LS03 74LS04 74LS05 74LS08 74LS10 74LS13 74LS14 74LS20 74LS26 74LS27 74LS28 74LS30 74LS32 74LS40 74LS51 74LS55 74LS73

74LS00

.65

74LS74 74LS75 74LS76 74LS83 74LS85 74LS86 74LS90 74LS92 74LS93 74LS95 74LS96 74LS107 74LS109 74LS112 74LS132 74LS136 74LS138

74LS153 74LS157 74LS162 74LS163 74LS164 74LS175 74LS181 74LSJ90 74LS191 74LS192 74LSI 93 74LS194 74LS195 74LS257 74LS260 74LS279 74LSG70

DATA HANDBOOKS 7400 Pin-out 8. Description of 5400/7400 ICS $2.95 CMOS Pin-out & Description of 4000 Series ICS $2.95 Linear Pin-out & Functional Description $2.95

ALL THREE HANDBOOKS $6.95

100 per strip MOLEX PINS

Intended for use as an inexpensive substitute for IC M,|.| .,.., sockets. Also perfect for use as board connectors tttttttti amj m subassemblies. - SPECIAL—100/1.49—1000/12.00

CONSUMER ELECTRONICS

PONG SUPER PONG

SINGLE GAME

4 GAMES IN ONE

$55.00 $79.95

GAMES INCLUDED IN SUPER PONG ARE:

• PONG . CATCH

• SUPER PONG • HANDBALL

FEATURES 0F PONG ANDSUPER P0NG

■ Incremental spend on volleys increases excitement.

■ Playing field adjusts to any size screen.

■ Game appears in color or in blacks while, depending on television set

■ Unmistakable "PONG" sound accompanies each volley

■ Digital scoring flashes on the screen between each point.

■ 2 player challenoe orSolilaiie

■ Hooks up amply to any model television set; the screen actually liecomfs Ihe playing tteld

■ English and other techniques can be used to make any member of ihe lamily a Pong champion

■ Battery operated by 4 size "D" llashlighl battefies included with the Unit.

AC Adaptor (Eliminates Batteries) $9.95

PONG

XC209

Red

XC209

Green

XC209

Orange

.200"

XC22

Red

XC22

Green

XC22

Yellow

XC22

Orange

SSL-22

RT

Red

10(51

DISCRETE LEDS

XC526

Red

XC526

Green

XC526

Yellow

XC526

Orange

XC526

Clear

XC556

Red

XC556

Grean

XC556

Yellow

XC55B

Orange

XC556

Clear

Green Yellow 4/S1

Orange 4/$1

.0S5" dia.

MV50

085" dia. Micro

red LED

8/S1

DISPLAY LEDS

TYPE

MAN1 MAN 2 MAN 3 MAN 4 MAN 7 MAN 7G MAN 7Y MAN 52 MAN 64 MAN 72 MAN 74 MAN 82 MAN 84

POLARITY

Common Anode 5 x 7 Dol Matrix Common Cathode Common Cathode Common Anode Common Anode-green Common Anode-yellow Common Anode-green Common Anode-red Common Anode Common Cathode Common Anode-yellow Common Cathode-yellow

TYPE

MAN 3620

MAN 3640

MAN 4710

OL701

DL704

DL707

DL72B

DL 747

DL7E0

DL33B

FND70

FNO503

FNO507

POLARITY

Common Anode-orange Common Cathode-orange Common Anode-Red Common Anode-red ± Common Cathode Common Anode Common Cathode Common Anode Common Cathode Common Calhoda Common Cathode Common Cathode Common Anode

IC SOLDERTAIL— LOW PROFILE (TIN) SOCKETS

i-49 50-100 «■

HUH nmtiLU

24 pin 28 pin

22 pin

35 SOLDERTAIL STANDARD (TIN)

28 pin 40 pin

SOLDERTAIL STANDARD (GOLD)

I. .. Hi ^fl^if

24 pin 28 pin

WIRE WRAP SOCKETS (GOLD) LEVEL #3

24 pin

M'.'J.IJ

INlfNl Will INTO I ^

WIRE WRAP TOOL ,.„,„

30 $5.95 ea.

■END 1NDHOIDWIII run ova II1MINM

lum arxKWitf ' nom in rums

(OHNKHON riNUHED

WIRE WRAP WIRE

30 AWG — 25 ft. min. - $2.10 50 ft. - $2.75 100 ft. JjPECIF^CJJ^pj^

IMTOOI | J,.

COUNTIRCIOCKWISt ^"

$3.50 1000 ft. - $24.00

50 PCS. RESISTOR ASSORTMENTS $1.75 PER ASST.

10 OHM 27 OHM 68 OHM

12 OHM 33 OHM 82 OHM

15 OHM 39 OHM 100 OHM

OHM 22 OHM 47 OHM 56 OHM 120 OHM 150 OHM

1B0OHM 220 OHM 270 OHM 330 OHM 390 OHM 470 OHM 560 OHM 680 OHM 820 OHM IK

220K 560K 1.5M 3.9M

100K 270K 680K

120K 330K 820K 2.2M

1/4 WATT 5% = 50 PCS.

1/4 WATT 5% - 50 PCS.

1/4 WATT 5% - 50 PCS.

ASST. 8R lncludesResistorAssortments1-7(350PCS.) $10.95 ea.

XR-2206KA Kit

TIMERS XR-555CP I .69 XR-320P 1.55

XR-556CP 1.85 XR-2556CP 3.20 XR-2240CP 3.25

S17.95

EXAR

XR-2260KB Kit

S27.95

PHASE LOCKED LOOPS WAVEFORM GENERATORS STEREO DECOOERS MISCELLANEOUS

XR 210

XR-215

XR-567CP

XR-567CT

XR-205

XR-2206CP

XR-2207CP

XR-1310CP S3.20

XR-1310EP 3.20

XR-1S00P 3.20

XR-2567 2.99

XR-2211CP

R70

XR-4136

2.00

XR-1468

HHh

XR-1488

5.80

All Advertised Prices Good Thru December Satisfaction Guaranteed. $5.00 Min. Order. U.S. Funds. California Residents — Add 6% Sales Tax — Data Sheets 2Sc each Send a 24« Stamp (postage) far a Free 1977 Catalog

Wvess

1021 -A HOWARD AVE., SAN CARLOS, CA. 94070 PHONE ORDERS WELCOME — (415) 592-8097

orer

an

I

3«.

to*

KM

o»

OF,

ON

»

2.95

2.55

1.B7

1.70

l

t

0«

"™"

ON

233

2.95

2.15

1.58

1,43

|

1'

ON

o.

ON

™

2.3S

IBS

l.O

.30

MINIATURE TOGGLE

rff

PUSH BUHON

PB-123 $1.75 PB-126 $1.75

THUMBWHEEL SWITCHES

THUMBWHEEL SWITCH ONLY

"_ff i?7>^"PoiPirTr7SSiSn 's";>

J_3_.0O SF - F.ofir Mn,m

II HIES sn flu.

ACCESSORIES

sr t"p

T~ Dnoipiisn ErmPlairiPa,,!

-f*

5F DP

DioHf.iPl3t>(H

Blink Body \iK

sf nn

H.iH Body ic.icli

.'10

DIP SWITCH

These switches feature seven SPST slide switches in a

molded clip. They are ideally suited lor microprocessor applications p. gr

jCLIPLITE!! 4 $1.00

NEW LED ' ,,

'MOUNTING SYSTEIV • 1 >t—

• CLIPLITE mounts -from the front of the Panel in a .250 hole on 3/8" centers. Panel thickness from 1/16" to 1/8".

• CLIPLITE equalizes and increases the brightness > commonly used wide beam LEDS.

• CLIPLITE is to be used with XC556 LEDS.

• Specify colors—red, green, amber, or yellow whi ordering.

TTPE

IN746

1N751A

1N752

1M753

1N754

1N959

1N3G5B

1N5232

1fJ5234

1N5235

IK5236

1fJ456

irJ45B

IN485A

1N4001

1N40Q2

IN4003

!fJ4004

ZENERS—DIODES—RECTIFIERS

400m 400m 400m 400m 400m 400m 500m 500m 500m 500m

50 PIV 1 AMP 12-1.00

100 PIV 1 AMP 12/1.00

200 PIV 1 AMP 12/1.00

400 PIV 1 AMP 12/1.00

TYPE VOLTS

1M4005* 600 PIV 1 AMP

1N4006* 800 PIV 1 AMP 10/1 00

1N4007* 1000 PIV 1 AMP 10/1.00

PRICE 10/1.00

1N3600

1N4148 75 1fJ4154 35

1N4305 75

1N4734 5.6

1N4735 5.2

1N4736 6.8

1N4738 8.2

1N4742 12

1N4744 15 1N1183 50 PIV

1N1184 100 PIV

200m

10m

1w

6/1.0 15A.00

35 AMP 35 AMP

M11B5 150 PIV 35 AMP

IN11B6 200 PIV 35 AMP 1N118B 400 PIV 35 AMP

SCR AND FW BRIDGE RECTIFIERS

C36D 15A@400V

C38M 35A@200V

2N2328 1.6A@200V

MDA9B0-1 25A@50V

MDA 980-3 25A@ 200V

FW BRIDGE REC FW BRIDGE REC.

MPS A05 MPS A06 JN22I9A

^N^2^t

2N2222A 2N2369 2N2369A FM2415 2N2484 2N2906A 2N3907A 2N2925 2H3053 2N3055 MJE3055 MJE2955 2N3392 2N3398

541 I

5'St 00 4/11.00

4/S1 00

TRANSISTORS

:

PN3567 PN356S PN3563 2N370J 2N3705 2M3706 2N3707 2N3711 2N3724 2N3725 2N3903 2N3904 2N3M5 2N3906 2N4013 2N4Q14 2N4I23

2NJJ00 2N4J01 2N4402

if

2H50BB

2N5087

2N50GR

2H50B9

2NS!29

2W513B

2N5139

2N5209

2N595t

ClOBBtSCR

2N5432

4WJ73

CAPACITOR

10 pf 22 pf

47 pf 100 pf 220 pf 470 pf

.OOlfflf

.0022 0047mf .01 mf

.1/35V .15/35V .22/35V .33/35V .47/35V . 68/35 V 1.0/35V

04

50 VOLT CERAMIC DISC CAPACITORS

0-49 50-100

OOVF

CORNER

.05

.04 .03 .0047nF .05

.04 .03 OVF .05

04 .03 .022|iF .06

.04 .03 .047^F .06

.04 .035 .VF ,12 1DD VOLT MYLAR FILM CAPACITORS

.10 .07 022mf 13

,047mf .2!

.10

.07

.1mf

.27

Axial Lead

.47/50V .15

1.0/50V .16

3.3/50V .15

4.7/25V .16

10/25V .15

10/50V .16

22/25V .17

22/5DV .24

47/25V .19

47/50V .25

IO0/25V .24

I00/50V .35

220/25V .32

220/50V .45

470/25V .33

1000/16V .55

2200/16V .70

.22ml

+ 20% DIPPED TANTALUMS (SOLID) CAPACITORS .28 .23 .17 1.5/35V 30 26

.28 .23 .17 2.2/25V .31 .27

.28 .23 .17 3.3/25V .31 .27

.28 .23 .17 4.7/25V .32 .28

.28 .23 .17 5.8/25V .36 31

.28 .23 .17 10/25V .40 .35

.28 .23 .17 15/25V .63 .50

MINIATURE ALUMINUM ELECTROLYTIC CAPACITORS

13

.10

.47/25V .47/50V 1.0/16V 1.0/25V 1.0/50V 4.7/16V 4.7/25V 4.7/50V 10/16V 10/25V 10/50V 47/50V 100/16V 100/25 V 100/50V 220/16V 470/25V

Radial Lead .13

/ "3 CRYSTALS jM[

•— -u5^ THESE FREQUENCIES ONLY C=!C-H

P.-1# CY1A

CY2A CY3A CY7A CY12A CYKA CY19A CY22A CY30B

Frequancy

1.000 MHz 2.000 MH; a.000 MHz 5 000 MHz 10 000 MHz 14 31818 MHz 18.000 MHz 20 000 MHz 32.000 MHz

Case/Style

HC33.U HC33/U HC18/U HC18.U HC18/U HC18U HC18U HCIflU HC18/U

FrICfl S5.95 $5.95 S4 95 SJ 95 S4.95 S4 95 S4 95 S4 95 St .95

CLOCK CHIPS — CALCULATOR CHIPS

MMS309 B Diflit BCD Outputs. RssGt PIN

MM5311 6 Dirjit. BCD OulDuls. 12 of 24 Hour

MM5312 4 Dibi!. BCD OutDuls. 1 PPS Oulpul

MM5314 6 Digil. 12 or 24 Hour, 50 or 60 Hz

UH5316 4 Drrjil. Alarm 1PPS Outou!

MM5318 ViCeo Cloc. Cnio. For Use Willi MM5841

CT7001 6 Digit. CalariDer. Alarm. 12 or 24 Hour

CALCULATOR CHIPS

MM5725 6 Diflrl. Four Function Less Decimal MM573B B Digit. 5 Function + = x - °= CT533C i; Digit 4 isx o- and •.

4.95 695 9.95 595

25-PIN CONNECTORS

D-Subminature

DB25P MALE $3.25 each

DB25S FEMALE $4.95 each

3V2 DIGIT DVM KIT

This 0-2 VOC .05 per cent digital voltmeter leatures the Motorola 3'/j Oigil DVM chip set. Il has a .4" LED display and operates from a single -*-5V power supply. The unit is provided complete with an injection molded black plastic case complete with Bezel. An optional power supply Is available which (its 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

VECTOR WIRING PENCIL ,

p

.-- . E

"1 C

„ - "".'•' I

w ^ L

Veciot Wiring Pencil Pi73 consists of a nana held fealhefwriplil {untlcr one ounce) tool which is used to guide and wrap insulated wite led off a sell-contained 'eniaceablc bobbin onto component leads or terminals installed on pre-punchcd P Pattern Vecfo'bord' Connections Between ine wrapped wire ano component leads pads or Icrmmals are made Oy soldering Complete with 250 FT of red mire.

S7.95

REPLACEMENT WIRE — BOBBINS FOR WIRING PENCIL W36-3-A-Pkq 3 250 t! 36 AWG GREEN $1.95

W36-3-B-Pkg 3 250 It 36 AWG RED SI .95

W36-3-C-Pkg. 3 250 It 36 AWG CLEAR S1.95

W36-3-D-Pkg 3 250 ft 36 AWG BLUE $1.95

1/16 VECTOR BOARD

I ■■-■■ ■

■..:..; ....

6-IPM 8JP-H on,' 169PJ-J '"■■ ■...... . ..

189P4J in/. ■

■'HI ' I 8 50

#

HEAT SINKS

y

205-CB Beiyi.nim Cnpeei Heal Sink wnh Black finish lor TO-S .25

291-.36H Aluminum Heal Sink for rO-220 Transistors & Regulators .25 680-.75A a.acv Anorjimf Aluminum Heat Sink to- TO-3 1.6D

NIBBLING TOOL DIAGONAL CUTTER

J '>■' Semi-Flush Cul Fine Diagonal

/] A

Nibbling Tool S6.95 Liqhl Blue Handle

Replacement Punch S3.75 Each A97MS S8.5D ea.

coded SP5T keys any kind o! PC B molded plaslic 1'

$19.95

HD0165 IE LIHE TO FOUR BIT PARALLEL KEYBOARD ENCODER

JOYSTICK

These joysticks feature four * potentiometers, that vaty resistance proportional to the angle of the stick. Sturdy metal construction with plastics components only at the movable joint. Perfect for eleclronic games and instrumentation.

*5K Pots $6.95 *100K Pots $7.95

MICROPROCESSOR COMPONENTS

8080A $34.95

2504 25TB 2519 252J 2525 2527 2529 2532 2533

3513

2516 74S3B7

8212 8216 8224

8228

CPU'S

6 BIT CPU Super BODE Super SODS

SRS

102-1 D.namic

ne» 32 BiT He» JO BIT 512 Dynamic 102- Dvnamic Dual 256 BIT Dual 512 BIT Quag 80 BIT 102- Sianc

Frio

16 < i Reg

UAHTS

30K Baud

Char 6tn 102-J-Bi: Piojjra

8080 SUPPORT DEVICES

8 BIT INPUT/OUTPUT PORT FOR 8080 S 5 95

NON INTERRUPT BI-DIRECTIONAL BUS DRIVER 7 95

CLOCK GENERATOR AND DRIVER FOR 8080 12 95

SYSTEM CONTROLLER AND BUS DRIVER FOR 8080 12,95 RAM'S

2101 2102 2107 2111

rot o

7489

74200 93421

MM5262

S 9.95 10.95

Siai<c Dynamic Slatrc Stanc Dynamic Static MNOS Sialic Static Sialic Static Static Sialic Sianc Dynamic PROMS Famos Famos Open C Tnsiaie Static

8080 S24.95

5 2 25

2 lor 1.00

5.95

29 95 2 49 6.95 6.95

6330-1 6331-1 6300-1 6301-1 6305-1

256 Bit (32 x B) Open Collector

256 Bit (32 it Bl Three State 2 95

1024 Bl (256 x i) Open Collector 3 49

1024 Bit (256 x 4| Three Stale 3 49

204S Ba (512 x 4) Open Collector 9.95

BIPOLAR PRDM SPECIAL 2.95 6306-1

6340-1 6341-1 6352-1 6353-1

2048 Bit (512 x 4) Three State 2048 Bil (512 xB) Open Collector 2048 Bit (512 x B) Three State 4096 Bil {102 x 4) Open Collector 4096 Bil (1024 x 4) Three Stale

9.95 19.95 19.95

Pinto Board 100

Continental Specialties

5 -79.95

59.95

H l|_M $f

.' 1 'i -V

i, or s

I IAS tdmWWWM:

f%*&

im$

Proto Board 6 515.95

SPECIAL!

LOGIC MONITOR

Simultaneously displays sialic and

dynamic logic slates ot DTL, TTL.

HTL or CMOS DIP ICs

Pocket size S84.95.

•numiii4MHffi<

QTPro

.'-j.!*|itti!.ilii ■»■.-■ •

■ Qt 35S • OT 358

8* OT-7S

OT-SBS

QT-59fl OT.J7S QT-.17B QT-3SS

OT-Ubft

QI 1?S

DIGITAL WATCHES

Ladies Watch

• 6 Function

• Bracelet Styling

• 1 Year Guarantee

• Model 900

• Specify Gold or Chrome

$69.95

EXELAR Mens Watch

• 5 Function

• Quartz Crystal

• Black Leather Band

• Manufacturer Guarantee

• Specify Gold or Chrome

$29.95

DIGITAL QUARTZ CAR CLOCK

Complete kil Imm ntr lirm burkH ill Hit: inaction molded case

down to the three conductor power cord and all components including MM5314 clock chip Features quartz accuracy ot .OIV ■be digit. 38" high LED display, and PC Boards. Work; on any 12 volt system — motorcycles, boats, vans. mDlorhomes, auios. and trucks DIMENSIONS: 415" x 4" x 2" — 12 OR 24 HOUR MODE

Kit: $29.95 Assembled: $39.95

DIGITAL CLOCK KIT — V/i INCH DIGITS

This dock leanings uig 3'.?' lugti digits lor viewniq in offices, auditoriums BtC Each digit is lormed by 31 bright O 2 LEDs Tliuclockoperatestiomll7VAC has timer 12 or 24 lit operation, "he 6 and l he

4 DIGIT KITS49.95 6 DIGIT KIT S69.95

4 DIGIT ASSEMBLED S59.95 6 DIGIT ASSEMBLED S79.95,

digit is IB' x3<; implflte i

Kits a

■ components i

Specily 12 Or 24 Hr. When Ordering

Satisfaction Guaranteed. S5.0Q Mm. Order. U.S. Funds.

California Residents — Add 6°° Sales Tax — Data Sheets 25c each

Send a 24c Stamp (postage) tor a FHEE 1977 Catalog

Wntss

\0^ 1021-A HOWARD AVE., SAN CARLOS, CA. 94070 PHONE ORDERS WELCOME — (415) 592-8097

«hbU

CB RADIO

1JK53§| $99-95

NEW IDI ICB-630 23-Channel Synthesized CB Transceiver SIZE: 6% (W) x 2" (H) x 8'A POWER INPUT: 5 Watts/12-Volt Max. POWER OUTPUT: 4 Watts RMS

MOBILE CB ANTENNA $24.95

BASE LOAD - FIBERGLASS WHIP KA-2401

Mounts on Hood or Trunk Lid

AMTEX 8 TRACK AM/FM STEREO

FEATURES $69.95

■ 8 track stereo player

■ AM/FM mpn radio

■ Advanced IC construction

■ Dial on door and slide-bar switch type

■ Compact — only I-25/32" (45mm) high, 4-13/16" [122mm) deep. 6-11/16" (170mm) wide and 5 position adjustable shaft distance.

■ Complete in-dash type design.

■ Easily adjustable antenna trimmer lor best performance.

KRACO CAR SPEAKERS $14.95

Flush Mount 10 Oz. Mag.IB ohm Model SST-101F

5 FUNCTION ELECTRONIC CALCULATOR RADOFIN MODEL 8P

$8.95

> 6 Digit Display

i 5 Finctionsconsstsolaooition subtraction nultiphcanon. division, percentage, witn constant on all functions, with lull lioalmn flectmal point

i Power source e i piece 9V DC Battery O0GP. jack 'or AC aaapter

i Stack suDPftme grained fmrsn plastic cabmel

5 FUNCTION ELECTRONIC CALCULATOR WITH WALLET-NOTEBOOK AND POCKET CHECKBOOK RADOFIN MODEL 1710

FEATURES: V 19-90

• 6 Digit Display

> 5 Funcnonsconsstsof addition.suDtrachon multiplication, division, percentage witnconsianton all (unctions, with lull floating decrial poini ■ Power source rs s AAA celts 9 V DC ' Wallet is 2 lone tenon caoinel is Ulack plaiUc

33

DIGITAL ALARM CLOCK

This 4 digit Novus Alarm Clock is a very reliable and irrv:, styled unit. It provides such leatures as an alarm sellable to any minute of the day. a 7 minutes snooze alarm, a power failure indicator, and even an A.M., P.M. indicator.

Novus

$17.95

NOT A KIT

JE700 CLOCK

Hie JETOO is a low cost digital clock. Put is a very high quality unit The unit lealutes a simulated walnut case with di mensmnsof 13x21; nl H utilizes a MAN72 higti brightness leattoiit and the MMS314 clock chip

$17.95

This large digit dock (.6" flours & minutes, .3" seconds) leatuies the MM531-1 clock chip It operates Irom 117 VAC. and will opciate in either a 12 or 24 hour mode The clock is complete with a walnut grain case, and has fast set. slow set, and hold time sel leatuies.

- ALL COMPONENTS & CASE $34.9b WIRED & ASSEMBLED S39.95

JE803 PROBE

The Logic Piobe is a unit winch is tor tin? most pari

IfldflspjfiabJe in trouDie shooting logrc families

TTL OTl RU CMOS II derives Itie oower it

eds to ooerale directly oft of tne circuit undei

it, drawing a scant 10 mA max II uses a HAN3

iidunl lo indiraip any ot Hie following states Dv

these symbols 1H1 -1 iLOWl - O iPULSEi - P The

Piolic can detect Jiigh !rer,inrnr.y uuImis In-5 MM;

11 in: used at mos levels oi cucuii damaga

~- ~j

$9.95 Per Kit

printed circuit board

PL 5V 1A Supply

This is a stancatd TTL power supply using the well known LM309K regulator IC lo provide asotid 1 AUPol cunenl ai 5 volls We try to make things easy lor you by providing evefyiruriijyou need m one package, including the hardware

,»r.„i, $9.95 Per Kit

5 VOLT POWER SUPPLY $39.95

Completely Assembled

• +5 Volts® 6 Amps Regulated Output

• -5 Volts @ 6 Amps Regulated Input

• 6.3Volts @ 5 Amps Unregulated Output

Length 85/a" x Width 6%" x Height 4"

H&r*

Limited Supply

The Technical Forum:

A Proposal for a Universal Prototyping Bus Structure

From time to time, BYTE receives extended letters on specific technical points, letters which don't quite constitute articles, yet certainly deserve some special treatment. As a place in the magazine for an ongoing discussion of technical issues - hardware or software, applications or machine design — The Technical Forum should provide some interesting reading. Readers are invited to submit opinions, react to published opinions, or start The Technical Forum off on a whole new direction of discussion.

We start the feature this month with an extended opinion provided by David Washburn, 22A University Rd, Brookline MA 02146. Subject: The proposal of a universal bus structure.

I would like to propose a universal prototype bus for experimenters. At first I wanted a universal bus, but I have come to realize that there are two types of computer enthusiasts. One type includes those who want to purchase a working well-thought-out system that includes BASIC and allows them to quickly build and turn on a working system and write programs in BASIC. Altairs, IMSAIs, Spheres, SWTPC 6800s and the like fill this need. This is what I wanted originally but as I looked into each system I found many shortcomings. The main problem with each system seemed to be its bus design. The Altair bus, while having lots of lines, is not easily expandable to 16 bits for data, requires an expensive edge connector for each card, and has some 8080 oriented control lines which are not available on other processors (nor are they needed). The Southwest Technical Products 6800 system bus is fully utilized with the exception of a few user defined lines, so expansion would be difficult here.

These processors are not (or so it seems) designed for the second type of enthusiast, the high performance systems hacker. It seems that a bus could be designed to be general enough to work with most processors and yet remain independent of any specific processor. Even Dr Suding, who

espouses processor independence, has some pretty processor specific points to his systems. There is a cost factor which also influences my thinking. A typical 4 K Altair compatible memory card kit costs $140. If the 32 2102s cost $2.50 each, then the memory alone costs about $80. The rest of the card, the PC board and supporting electronics then cost about $60. This is an overhead of about $1.80 per memory chip. If the user has four 4 K cards he or she has invested $240 for Altair bus specific designs, provided the memory chips are mounted in sockets. As new and more powerful processors are designed the user is not necessarily in a position to take advantage of these advancements. Adapters to new buses are possible, but this would require special PC cards and these could hardly cost less than $50 or so.

For the first type of user, mainly interested in BASIC, applications and some games, the difference between an IBM/370 and an 8080 (both operated in a stand alone mode for comparisons) is speed. More efficient use of memory and a more powerful instruction set are not important to such a person because it will always be cheaper to add more memory to an existing system than to invest in a whole new system.

Thus I see a "universal bus system" to be aimed primarily at the person who wants to experiment with different processors and create special cards for peripherals with special functions.

I see the different processors as being more similar than different in their basic functioning. All must be able to address memory, send and receive data, and communicate with the outside world. If the differences can be handled on the processor card, then the same memory and IO cards can be shared by most processors. There are

128

Mall right here

Prompt service

In-depth inventories

ELECTRONICS for INDUSTRY

LOW, LOW PRICES!

BRfGAR eLecironics

Office! & Warehouse: 10 Alice Sinai, Binghamion, New York 13904 • Tel.: 607-733 3111

SAVE SAVE

PHONE ORDERS 607 723 3111

MINIATURE LAMPS fl

lj3SH33gigg31HHiB c

CHICAGO MINIATURE LAMPS #387

SAME AS 1327 EXCEPT LONGER LIFE 28 volts. .04 amps. Bulb Style T-l-3/4 Mid-Flange Base. BRAND NEW BOXED, 100 per box. 40,000 pes in stock.

PRICE SCHEDULE 1 - 99 .. 40C each 100 - up .. 35C ea.

NION INDICATING GLOW LAMPS ^2^*0

NE-2 neon lamps, with dropping resistor

to operate directly from 115 VAC.

Nominal Watts - 1/17. T-2 Clear Bulb,

wire terminals.

25,000 pes in stock. Mfd by G.E. Co.

10* each up to 1000 pes.

1000 pes & up 7C each.

EHEESHZMIESE

MITI OLO INCANDISCINT LAMPS

BRITE-GLO Incandescent Lamps Ultraminiaturized Series, 100,000 hr.life Versatile, low cost indicator lamp. Ideal for Stero Amplifiers, Mobile Equipment, Instrumentation, Computer and Display Panels, Etc.

High temperature, T 1-3/4 lamps - Metal Base - Wire Terminals. Metal base increases light output and protects lamp from damage.

41, 685 pes - 6.3 volts, 75 ma, 8" wire leads.

40,263 leads.

6.3 volts, 200 ma, 13"

DISCOUNT SCHEDULE 1-99 25C ea. 100-499 20C ea. SA 500-999 15C ea. 1000-UP 12C ea.

bargains IPSlScgaia®]^

BRAND NEW - FINEST QUALITY

MFR TOL. OHMS WATTS PRICE (») Each

10,686

T. I.

1

191

1/8

$.04

KUbMt

3,000

Electra

1

191

1/8

.04

29,000

I R C

1

243

1/3

. M

75,000

T.I.

1

2.43K

1/8

.04

35,000

i\ I.

1

909

1/4

.06

7000

T. I.

1

10

1/2

.07

llfr^r

3000

Electra

1

15.4

1/2

.07

5700

Electra

1

28

1/2

.07

■i|i •

7900

I R C

1

53.6

1/2

.07

7200 6600 1300

IRC IRC

I R C

1 1 1

90.9 1650 6190

1/8 1/8

1/8

.04 .04 .04

Mfr: Grayhill Switch Co.

1000

IRC

1

2670

1/8

.04

2" x IV x IV

Computer Grade Capacitor

MallorY

CG (STANDARD] 85°C Suppligd with PVC Insulating Sleeve Quan. Mfd. Vdc Size Each

10000 1100 35 1-25/64 X 2-11/64 $.75 25000 100 350 1-25/64 X 2-11/64 .50

Electrolytic Capacitors

TUBULAR, HIGH RELIABILITY

10000

400

1-25/64 x 2-11/64

.60

POTTER SUB-MINIATURE

a BRUMFIELD GENERAl

RELAYS '""""

TYPE KH 5505 (Identical to KHU17D11)

COIL: 24vdc, 650 ohms.

CONTACTS: 4PDT, 3amps at 30vdc or 120 va«

Small rugged DC relay with clear polycarbonate dust cover. Contacts are gold flashed silver.

Mounts by solder terminals or 3-48 stud 5/16" long. Also mounts as plug-in. 6500 pc in stock, BRAND NEW, while they last at this price. $1_25 each

m

BRAND NEW PHENOLIC SHEETS

Grade LE- Natural

Type - FBE, Mil Spec: 15035, .062" thick

Needed by all experimenters, amateurs and

radio men for insulating parts - terminal

strips - building sets or for research

& development, etc.

Stock # 550 - 6" x 6" x .062" 42* each

# 551 - 6" x 12" x .062 82C each

# 553 - 12" x 12" x .062 SI.58 ea

# 554 - Full sheets 38" x 47" x .062" $13.00 each.

BRAND NEW QUALITY SHEETS

High-Speed Reset Counter Veeder-Root

i FIGURE COUNTER MANUAL RESET iisvnr U5VAC

VEEDER ROOT 177604

115V AC (Rectifier, supplied* Basic counter is 11SVDC, 6 waits I iiguiv. black on whitt background. Push button reset. Dim.: 1-7 S" width 1-1 8" hiRh * 2-1 2" deep.

58 w

$1295

LIGHTED

52.95 Each

PUSHBUTTON SWITCHES

Unit can be used on 6 v

or in series for 12 volt

;SPST, mom, PC board gold

Isolated pins for wiring or

I^ easy installation. 10,000 pes in stock

Widely used on computers, machine tools, office machines, guidance control and a wide variety ol applications.

Computer Grade Capacitors

PHONE ORDERS

607 723

3111

go AN.

MFD.

VOLTS

350

30000

5

494

60000

5

1016

25000

6

527

40000

7

353

15000

10

869

15500

10

277

40000

10

316

74000

10

375

15000

12

267

14000

13

600

10000

15

52

3

12500

16

Instant off-the-shelf delivery.

n

m

$

\

^

SIZE

1-3/8 x 4-3/16

3" x 4-1/2"

2-1/16" x 4-9/16"

2" x 5"

2" x 4-1/8"

2" x 4-7/16"

3" x 4-1/2"

3" x 4-3/4"

2" x 4-1/2"

2" x 4-3/8"

2-1/16" x 4-1/2"

2" X 4-1/0"

PRICE EA

SI

50

1

50

1

50

1

50

1

25

1

25

1

70

2

00

1

25

1

25

1

25

1

25

QUAN.

252

628

1014

10706

4200

792

478

337

200

500

23436

11800

MFD.

11500

11000

8200

1100

750

1500

450

400

500

750

100

80

100 100 150 200

350

400

SIZE

2" x 4-1/2"

2" x 4-1/2"

1-3/8" x 3-1/8" 1-25/64" x 2-11/64"

1" X 3-1/2"

2" x 4-1/2"

1-7/16" X 2-9/16"

1-7/16" x 2-1/2"

2-1/16" x 2-3/8"

1-1/2" x 4" 1-25/64" x 2-11/64" 1-25/64" X 2-11/64"

1.00 1.00

QUAN.

600

375

298

299

571

375

313

597

4000

26,000

416

350

2500

1161

2600

1000

825

1099

6549

1942

10,500

520

290

476

409

284

255

281

20,000

339

400

MFD

100

250

500

1000

1200

1500

2000

100

50

200

1500

2000

10

2000

10

500

100

150

250

300

60

80

300

40

100

20D

5

10

4

8

16

VDC

3

3

6

6

6

6

6

12

15

15

15

15

25

25

50

50

50

50

50

50

150

150

150

200

250

250

350

350

250

250

250

EACH

.30

.35

SI.00

1.11

. 60

.30

.30

1.10

1.10

.25

1.40

.40

.80

.95

.90

.98

1.07

.70

.90

1.00

1. 00

1.39

1.50

.90

.90

.35

.70

.60

QUAN.

1055

246

967

400

529

453

30

40

4

10

15

20

350 350 450 450

450 450

EACH SI.00 1.14 .98 1.07 1.07 1.14

METALLIZED PAPER FILM

QUAN

899

437

400

1360

820

4200

400

771

417

1100

1100

1600

565

4000

389

500

600

717

30,000

1000

291

MFD

.1

.33

1.0

.22

.022

.033

.1

1.0

1.5

.001

0022

.022

.047

.022

.05

.1

.2

.25

. 01

.047

.22

VDC 100 100 100 150 200 200 200 200 200 400 400 400 400 600 600 600 600 600 100 100 400

EACH S .35 .40 .45 .40 .35 .35 .40 .40 .40 .35 .40 .45 .50 .25 .30 .30 .30 .30 .15 .20 .30

NEW!

HIGH POWER DUMMY LOAD Mfg. Eastern Microwave. #10-1254...RF Coaxial Load Re sistor utilizing water flow to cool and provide a load resistance of 50 ohms for inputs from DC to 4000 MHz. Maximum power input is 1000 watts. Requires a flow of .218 GPM min. per 100 watts of input power; 100 psi pressure. Compression fittings on water line inlet and outlet for copper tubing supply lines. Has a Flange type coaxial fitting, friction type, 13/16" I.D. with 2-1/4" fiance. Completely shielded unit of machined aluminum. Size: 1-5/8" diameter by 5-3/8" long. Shipping weight, 2 lbs. 5,000 pes in stock, NEW BOXED 314.95 each

Cherry Electrical Products

These switches are postage stamp sized precision switches which feature long operating life & high electrical capacity for their size 5 amp, 1/4 HP, 125-250 vac, SPDT, quick dis-connect terminals. 2,000 pes in stock without lever..75* each 2,400 pes in stock with extended roller lever. 95C ea

TANTALUM CAPACITORS

EBB

EE2CEE5F

TYPE 109D

TUBULAR SINTERED-ANODE TANTALEX CAPACITOR

U09D147X9060T2

1620 pes - 140 nf ±10% - 60vdc 52.00 ea.

GENERALS® ELECTRIC

TANTALUMS 4-13

ii fu M,i.r Sm;

3,000 pes CL31BE180E-5PE, lBuf - ] 5vdc 65C each 300 pes CL31BE550MPE, 55uf - 15vdc 85C each

non-polarized CL.32/33 900 dcs CL33BLO20J-NE, 2.0uf - 75vdc SI. 00 each

MTP/MTPH ULTRA-MINIATURl TANTALUM CAPACITORS

10,550 pes MTP685MO20P1D, 6.8uf - 20vdc 55C each 2,100 |x:s MrP105MO30PlA, lOuf - 30vdc 75C each 1,028 pes MTP336MO10P1A, 33uf - lOvdc 65C each

flHTTTiir,'r'°i

ID ILECTROLYTI TANTALUM CAPACITORS

4996 pes, 4.7uf- ±101, 6vdc, TAS475K006P1A 35C ea

394 pes, -47uf ± 10%, 6vdc, TAS474K006P1A 3BC ea

1430 pes, 47uf ± 10%, 6vdc, TAS476K006P1C 40C ea 326 pes, 220uf t 20%, 6vdc, TAS227M006P1G $1.20 ea

"" pes, 5.6uf ± 10%, lOvdc, TAS565K010P1C 40C ea

4574 pes, lOuf ±10%, lOvdc, TAS106K010P1C 40C ea

900 dcs, 15uf ±20%, lOvdc, TAS156M010P1C 40* ea

887 pes, .0G8uf ±10%, 20vdc, TAS633K020P1A 51$ ea

152 pes, 2.2uf + 20%, 20vdc, Sprague 40C ea

1457 pes, -47uf ±10%, 35ydc, TAS474KQ35P1A 51C ea

GENERAL^ ELECTRIC "*'N ,<m T*N,*lUM* +1" e 365 pes G.E. 40uf,±20%, 50vdcr 125°C

Type: 2K105AA5M. $1.75 each

1168 pes SPRAGUE, 40uf, ±20%, 50vdc, 125°C

Type: 220D005A3M. SI.75 each C

other advantages; if the system works with a 6800 processor and the experimenter designs an SC/MP processor card, he or she knows that it is the only part of the system being tested. This allows the experimenter to isolate the area of the experiment that doesn't work when the inevitable bugs are detected.

Most important is the ability for people to share their ideas and projects. If such a system became popular enough, some of the basic cards developed with wire wrap might be converted to printed circuit boards. Memory cards, basic 10 cards and prototyping cards are good candidates as well as some of the more common or well understood processors. Computer clubs could undertake the design and production of printed circuit cards if their members were interested in a particular design. The club could sell to the rest of the computer enthusiast world via other clubs as well. The electronic design could be published in magazines like BYTE so that many people would benefit from each person's work. If interest in such a bus were great enough then companies might be able to produce their products on compatible printed circuit cards.

Of course, standardization causes problems of its own. Some people will feel left out and others will find it less than optimal for one reason or another. But if the basics common to most processors can be extracted and some foresight on processor architectural changes is anticipated, then a useful system could be designed.

Some of the ideas I would like to include follow; I am sure everyone has his/her own ideas and I would be interested in hearing from each one. My own crystal ball is probably far from perfect. If there is enough response this idea might even catch on.

• Low cost connectors that are easily available. One possibility would be to use dual double contact 22 pin connectors, a standard size widely available, for a total of 88 contacts at the backplane.

• A minimum of 18 bits of addressing. The most significant bits would be ignored for the time being, tied low, but would be available when the time comes for processors which can address 128 K.

• Memory organization of 16 bits data width. For the time being, most processors are 8 bits wide; these can interface a 16 bit bus by relatively simple selection logic based on the low order bit and implemented on the processor card.

• 18 bit data bus. The extra two data-like lines (given a 16 bit memory) could be used for user defined functions such as parity checking with interrupt on error, read or write protect faults, etc; the system would be designed to default to operation which ignores these bits.

• Provisions for DMA and multiprocessor priority adjucation. Multiple processors can be useful, as in the case where a 6800 micro is used to implement a file management system as a slave to (for example) a 9900 processor. Multiprocessing can be quite evolutionary in such a system; software written and reliably operating on one processor needn't be thrown out just because a new processor is on the system. Simply handing off control to the new processor gains its advantages for the programs which use them, while retaining the older software. With a true multiprocessor system (with independent, parallel processing), addition of new processors can improve the performance of the system within the memory bandwidth limits of the bus structure.

• A "speed code" number. Each memory board would place on the speed bus a number, for example, a 3 bit number, indicating the data ready delay. If 0 is 100 ns, then 7 would be 800 ns delay. The processor card would then have logic to digitally generate the required delays and slow down if necessary. A processor like the SC/MP would never see any delay, but a 6800 might slow down with any memory card that takes longer than a #6 value. A TMS9900 would slow down for any memory slower than a #5 value on the bus, etc.

• A standard set of 10 addresses for common peripherals, located at an "intelligent" place in memory address space. The only problem here, however, is that the ideal place depends upon which computer one is dealing with. One solution is to dedicate a specific 256 byte block for 10 use, and have standard low order address designations; the higher order page location of this block could then be switch selectable in hardware using standard hexadecimal rotary switches which plug into DIP sockets.

I hope some other people are interested in defining such a structure. With enough interest we might get a "Universal Prototype Bus Newsletter" going."

130

•

from proko!!

IMSAI 8080 with a FREE 22 slot mother board and 2 edge connectors a $666 value only $595

• IMSAI's new I/O board

* 2 parallel ports

* 1 serial port

* cassette interface

* control port

.$185

• IMSAI's new VDM kit $675

* 3 boards

* 15 colors

* 80 x 24 characters

* color graphics 120 x 160

* complete software control

The prokoboard -k from B1M...

New!! 8K x 8 Static Memory

By Solid State Music

$14

2/$25

NEW!! 8K x 8 Static Memory MB-6

The MB-6 8K x 8 board has on board Dip switches for wait cycle and address assignments, Memory protection is switchable for 256, 512, 1K, 2K, 4K or 8K. Board uses prime 91L02APC 500 nanosec Rams. Altair 8800 & IMSAI compatible Kit $250 Assembled and tested $290

Holds up to 7 dips

Comes with cover

The proko-box Just the thing for that homeless project. 4 x 7 x 2". Easy to drill, rugged ABS plastic.

*260 ea.

* r('((((((((((YA

Resistors

assorted values and wattages most l/2 watt 5% PC mount $7/thousand

We found these neat little aluminum boxes and couldn't resist. They have a few holes punched and have a nice walnut finish. Great digital clock case!

2 for S300

MM1402A

1.90

2501B

$1.25

1101

1.25

74LS00

.40

74L00

.25

74L78

.90

MM1404A

1.90

2503V

2.00

1103

1.25

74LS01

.50

74L01

.25

74L85

1.40

MM5006A

1.50

2504V

2.00

2101

4.50

74LS02

.40

74L02

.25

74L86

.75

MM5013

2.50

2505K

2.00

2102-1

1.65

74LS03

.40

74L03

.25

74L89

3.50

MM5015A

1.50

2507V

1.25

2111-1

4.50

74LS04

.45

74L04

.30

74L90

1.50

MM5016

1.50

2509A

2.00

2112

4.50

74LS05

.45

74L05

.40

74L91

1.50

MM5017

1.90

2510A

2.00

2602

1.60

74LS10

.40

74L06

.30

74L93

1.70

MM5025

2.50

2511A

2.80

4002-1

7.50

74LS11

.50

74L08

.40

74L95

1.70

MM5026

2.50

2517V

1.25

4002-2

7.50

74LS12

.55

74L09

.40

74L98

2. B0

MM 5027

2.80

2518B

1.50

MM 5260

1.00

74LS20

.40

74L10

.30

74L123

1.50

MM 5053

1.50

2519B

2.80

MM5261

1.00

74LS22

.45

74L20

.35

74L154

2.00

MM 5054

1.90

2521V

1.50

MM 5262

1.00

74LS27

.45

74L26

.40

74L164

2.50

MM5055

1.90

2522V

2.00

7489

2.00

74LS30

.40

74L30

.40

74L165

2.50

MM5056

2.80

2525V

2.80

74200

3.95

74LS51

.40

74L32

.45

74L192

1.25

MM5057

2.80

2527V

2.80

74L200

4.95

74LS55

.40

74L42

1.50

74L193

1.20

MM5058

3.50

2528V

2.80

74089

3.50

74LS73

.65

74L51

.35

MC4044

3.00

MM5314

4.00

2529V

2.80

74L89

3.50

74LS74

.65

74L54

.45

N8264

3.50

MM5316

4.50

2532B

2.80

8223

2.50

74LS76

.65

74L55

.35

N8263

3.50

MM5320

5.95

2533V

2.80

F4702

17.00

74LS151

1.55

74L71

.30

N8826

2.50

MM5554

1.90

91L02APC

2.55

(baud rate gen)

74LS174

2.20

74L73

.55

DM8131

2.50

MM5555

2.50

32 each

2.40

2.4576 MHZ

74LS175

2.40

74L74

.55

82S07

3.50

MM 5556

2.50

64 each

2.25

Crystal

8.95

74LS192

2.85

74L75

1.20

82S23

3.50

SOLID STATE MUSIC PRODUCTS

4Kx8 Stactic Memories

MB-1 MK-8 board, 1 usee 2102 or eq. PC Board $22

Kit $95

MB-2 Altair 8800 or IMSAI compatible Switched address and wait cycles. PC Board $25 Kit (1 usee) $132

MB-4 Improved MB-2 designed for 8K "piggy-back"

without cutting traces. PC Board $30 Kit 4k

.5usec....$137 Kit 8K .5usec....$209 MB-3 1702A's Eroms. Altair 8800 & Imsai 8080 compatible Switched address & wait cycles. 2K may be expanded to 4K. Kit less Proms....$65 2K Kit....$145 4K Kit....$225

I/O Boards

1/0-1 8 bit parallel input & output ports, common address decoding jumper selected, Altair 8800 plug compatible Kit $42 PC Board only $25

I/0-2 I/O for 8800. 2 ports committed pads of 3 more, other

pads for EROMS UART, etc.

Kit $47.50 PC Board only $25

Misc

Altair compatable motherboard. Room for 15 connectors

11" x ^^W' (w/o connectors) $45

Altair extender board (w/o connectors)...$8

IMSAI Connectors for above $4.80 ea.

1702A'prime EROM

1702A*unmarked

'programming send hex list

AY5-1013UART

2513 prime spec, upper or

lowercase 8080AprimeCPU 8212 prime latch buffer 8224 prime clock gen 8228 prime sys controller

$11.50 8.50 5.00

$6.95

11.00

25.00

4.00

5.00

8.90

Please send for complete list of transistors. IC's, and other products.

'ArNote merchandise with "^ are stocked only at Proko Electronics Shoppe. All other merchandise are stocked at Mikos. To avoid delays, please place orders from appropriate facility.

MIKOS

419 Portofino Dr. San Carlos, Ca. 94070

the proko or electronics shoppe

439 b marsh si

san luis obispo, ca. 93401

805/544-5441

Check or money order only. Calif, resident 6% tax. All orders postpaid in U.S. All devices tested prior to sale Money back 30 day guarantee. Sorry we can not accept returned IC's that have been soldered to. $10 min. order. Prices subject to change without notice.

Thinly disguised affiliates of: KO Electronics &Surplus, San Luis Obispo, California

Programming Quickies:

6800 Anti Wipeout Procedure

Charles C Worstell 36012 Military Rd S Auburn WA 98002

This program may deter wiping out a program or parts of a program inadvertently in systems which use an SWI instruction to return to the monitor.

It is to be used immediately after turning the computer on. It puts a 3F (Software Interrupt) instruction in all addresses designated. It may be relocated to any appropriate location, and the second and third command changed as appropriate.

The program as given puts a 3F in a block

of programmable memory starting at 0080. It stops when there is no more programmable memory available in a continuous sequence. For instance, I have programmable memory at A000 but not at 9000. This program would not put 3F in A000. To do this, I would have to change the program with the second and third instruction being the location 9FFF.

I start at 0080 because addresses 0060 to 007F are used by the stack in my computer.

Don't put this program in a location such that it will wipe itself out.

While this program is not a cure-all, it will often save a program from being wiped out by an errant instruction sequence.

0000

CEOO 7F

START

LDX

#FIRSTADR

0003

86 3F

LDAA

#SWI

0005

A7 01

NEXT

STAA

1,X

0007

08

INX

0008

A1 00

CMPA

0,X

000A

27 F9

BEQ

NEXT

OOOC

3F

SWI

X :=FIRSTADR;

Initialize SWI op code in A;

@(X+1): = A [store SWI in memory at X+1] ;

X :=X + 1;

is A = @X [check for valid memory write] ?

if so then keep loop going;

else return to monitor; ■

ZILOG Z-80 CPU CHIP

IN STOCK!

$75.00

(MANUAL INCLUDED)

The "last word" in 8 bit CPU's. You've read and heard about this fantastic chip with its tremendous power and versatility. 158 different instructions including all 78 of the 8080A. Superior software features include relative addressing, block data transfer and search, BCD digit rotate, etc. Superior hardware features include single phase TTL compatible clock, high clock frequency, no expensive support chips (like 8212, 8224) are required, on chip dynamic memory refresh circuitry. If you are thinking about building your own computer from scratch then this is the chip to use.

LIMITED QUANTITY - FIRST COME F/RSTSERVED

Z-80 TECHNICAL MANUAL

The whole story, inside and out, on the Zilog Z—80. Includes complete explanation of the Z—80's expanded instruction set. <S"7 TZf\

PS: If you are thinking about buying an I MSA I or ALTAI R compatible Z-80 CPU Board then WAIT! At least until next month when S. D. Sales will announce its next kit. It's worth waiting for!

S.D. SALES CO. P-O.BOX28810 B DALLAS, TEXAS 75228

132

S. D. SALES CO.

P.O. BOX 28810 B DALLAS, TEXAS 75228

4K LOW POWER RAM BOARD KIT

THE WHOLE WORKS

$89.95

Imsai and Altair 8080 plug in compatible. Uses low power static 21L02—1 500 ns. RAM's, which are included. Fully buffered, drastically reduced power consumption, on board regulated, all sockets and parts included. Premium quality plated thru PC Board.

Stick It!

IN YOUR CLOCK! IN YOUR DVM, etc.

HUGE SPECIAL PURCHASE!

NOT FACTORY SECONDS

AS SOLD BY OTHERS

t e:.nn

$3.95

BUY 3 FOR $10.00

4 JUMBO .50 INCH DIGITS

ON ONE "STICK"!

(with colons and AM/PM Indicator)

BOWMAR 4 DIGIT LED READOUT ARRAY The Bowmar Opto-Stick. The best readout bargain we have ever offered. Has four common cathode jumbo digits with all segments and cathodes brought out. Increased versatility since any of the digits may be used independently to fit your applications. Perfect for any clock chip, especially direct drive units like 50380 or 7010. Also use in freq. counters, DVM's, etc. For 12 or 24 hour format.

MICROPROCESSORS AND THINGS

LOW COST £

H'G

HVA!

8080A By AMD. Outperforms INTEL

8008-1 High Speed 8008

8212 I/O PORT

8224 Clock Generator

8820 Dual Line RCVR

8830 Dual Line Driver

8838 Quad Bus Transceiver

MC1488 RS232toTTL

MC1489 TTLtoRS232

2513 Character Gen.

MM5204 4K E Prom

$24.00 6.95 3.50 4.95 1.75 1.75 2.00 1.50 1.50 10.00 12.00

7400 — 19c 7402 — 19c 74L04 — 29c 74S04 — 44c 7404 — 19c 7406 — 29c 7408 — 19c 7410— 19c 7411 — 29c 7413 —50c 7420 — 19c

TTL INTEGRATED CIRCUITS

74307432

7437

7438 7440

7447 ■

7448 ■ 7451 ■ 7453 7473 7474 7575

19c 34c 39c 39c 19c 85c ■ 85c

- 19c

- 19c

- 39c -35c

- 35c

7476 — 7480 — 7483 — 7485 — 75 86 — 7490 — 7492 —

7495 —

7496 — 74121 74123 74141

35c

49c

95c

95c

45c

65c

75c

75c

89c

- 38c

65c

75c

74153 74154 74157 74161 74164 74165 74174 74181 74191 74192 74193 74195

75c 1.00

75c

95c 1.10 1.10

95c 2.50 1.25 1.25 1.00

69c

60HZ CRYSTAL TIME BASE 2/S10. FOR DIGITAL CLOCKS ^

S.D. SALES EXCLUSIVE! $5.95

KIT FEATURES:

A. 60hz output with accuracy comparable to a digital watch

B. Directly interfaces with all MOS Clock Chips

C. Super low power consumption (1.5 Ma typ.)

D. Uses latest MOS 17 stage divider IC

E. Eliminates forever the problem of AC line glitches

F. Perfect for cars, boats, campers, or even for portable clocks at ham field days.

G. Small size, can be used in existing enclosures.

KIT INCLUDES CRYSTAL, DIVIDER IC, PC BOARD PLUS ALL OTHER NECESSARY PARTS & SPECS.

$16.

kit

9S

JUMBO

LED

CAR

CLQ CK

You requested it! Our first DC operated clock kit. Professionally engineered from scratch to be a DC operated clock. Not a makeshift kluge as sold by others. Features: Bowmar 4 digit .5 inch LED array, Mostek 50252 super clock chip, on board precision time base, 12 or 24 hour real time format, perfect for cars, boats, vans, etc. Kit contains PC Board and all other parts needed (except case). 50,000 satisfied clock kit customers cannot be wrong!

FOR ALARM OPTION ADD $1.50 FOR XFMR FOR AC OPERATION ADD $1.50

50 HZ CRYSTAL TIME BASE KIT - $6.95

All the featues of our 60HZ kit but has 50HZ output. For use with clock chips like the 50252 that require 50HZ to give 24 hour time format.

UP YOUR COMPUTER!

21 L02-1 1K LOW POWER 500 NS STATIC RAM

TIME IS OF THE ESSENCE

And so is power. Not only are our RAM's faster than a speeding bullet but they are now very low power. We are pleased to offer prime new 21 L02 — 1 low power and super fast RAM's. Allows you to STRETCH your power supply farther and at the same time keep the wait light off. 8 for $12.95

1000 MFD FILTER CAPS

Rated 35 WVDC. Upright style with PC leads. Most popular value for hobbyists. Compare at up to $1.19 each from franchise type electronic parts stores.

S.D. Special

4 for $1.00

^

SLIDE SWITCH ASSORTMENT

Our best seller. Includes miniature and standard sizes, single and multiposition units. All new, first quality, name brand. Try one package and you'll reorder more. SPECIAL 12/$1.

RESISTOR ASSOI

1/4 W

PC lead..

of values. 200/$2. r

SSORTMENT <^

H 5% and 10%. ^. ads. A good mix ^

74S200

256 Bit High Speed RAM

Same as 82S16

$3.95

WESTERN DIGITAL UART

No. TR1602B. 40 pin DIP

This is a very powerful and

popular part.

NEW-$6.95 with data

LIMITED QUANTITY

C&K MINI TOGGLE SWITCH

No. 7103 SUB MINI SPDT

Center OFF.

SPECIAL -99c

MOTOROLA POWER DARLINGTON

Back in Stock! Like MJ3001. NPN 80V. 10A. HFE 6000 TYP. TO—3 case. We include a free 723 C volt reg. with schematic for power supply. SPECIAL-$1.99

11< PROM BACK IN STOCK!

82S129. 256x4. Bipolar,

50NS.

FAST. WITH SPECS.

$3.95

FAIRCHILD BIG LED

READOUTS

A big .50 inch easy to read character. Now available in either common anode or common cathode. Take your pick. Super low current drain, only 5MA per segment typical. FND—510 Common Anode FND—503 Common Cathode PRICE SLASHED! 59c each

TERMS: Money Back Guarantee. No COD. Texas Residents add 5% tax. Add 5% of order for postage and handling. Orders under $10. add 75c. Foreign orders: US Funds ONLY!

SALE ON CUT LEAD SEMICONDUCTORS

Leads were cut for PCB insertion. Still very useable. All new, unused. Some House no.

1N914/1N4148

100/S2.

1N4002 1 Amp 100 P1V

40/$ 1. 1N4745A 16V 1W Zener

20/$l. EN2222 NPN Transistor

25/$l. 2N3392 GE Pre-amp Xstr

25/$l.

C103Y SCR. 800MA 60V

10/$1.

CALL YOUR BANK

AMERICARD OR MASTER CHARGE ORDER IN ON OUR CONTINENTAL

UNITED STATES TOLL FREE WATTS:

1-800-527-3460

Texas Residents Call Collect

214/271-0022

S.D. SALES CO. P.O. BOX 28810- B Dallas, Texas 75228

World's Lowest IC Prices

SPECIAL PRICES

MEMORIES

Rams

2102

1.50*

Proms

82S23/S123

1.95*

TTL

7400

.12*

7402

.14

7403

.14*

7404

.16*

7407

.20

7410

.12*

7420

.12*

7427

.25

7438

.20*

7440

.12*

7441

.65*

7445

.45

7447

.75

7450

.14

7451

.14*

7473

.22

7474

.23

7480

7493

7495

74107

74109

74116

74123

74141

74145

74150

74151

.40*

.50 .49 .29 .30 1.50 .45* .80* .75 .60* .60

*

74152 74155 74157 74160 74161

74163 74165 74173 74174 74175 74177 74180 74181

74192

74193

74194

74198

9602

9300

9312

SCHOTTKY

74S01

74S02

74S37

74S38

74S85

74S113

74S139

74S140

74S153

74S172

74S174

74S175

74S181

74S197

74S257

.90 .60 .60 .75

.75*

.75*

.80 1.25

.75

.75*

.70

.80 1.50

.70* .70* .85 1.25 .50* .75 .70

.25

.25

.40

.60

2.00

.80

1.50

.50

2.50

4.50

2.05

2.05 =

4.50

2.20

1.50

HIGH SPEED

74H00

.20

74H01

.20

74H04

.20

74H10

.20

74H11

.20

74H40

.20

74H51

.20

74H52

.20

74H74

.40

74H103

.50

74H106

.50

LOW POWER

SCHOTTKY

74LS00

74LS02

74LS08

74LS10

74LS27

74LS73

74LS75

74LS151

74LS153

74LS157

74LS161

74LS163

74LS164

74LS174

74LS175

74LS193

74LS221

74LS251

74LS253

74LS257

74LS258

CMOS 4001 4002 4006

.29

.29

.29

.29

.30

.45

.65 1.10 1.10 1.10 1.50* 1.50 1.50 1.10* 1.50 1.50 1.50* 1.50 1.50 1.50 1.50

.16*

.16

.90

4007

.16

4008

.70

4011

.16*

4012

.16*

4013

.30*

4015

.80

4016

.35*

4019

.70

4020

.90

4021

.95

4023

.16*

4024

.75

4025

.20*

4027

.40

4028

.60

4030

.35

4040

.95

4042

.60

4043

.75

4044

.70

4049

.35*

4050

.35*

4066

.65

4068

.35

4069

.16

4071

.16

4073

.16

4075

.16

4516

.85

4528

.75

4585

.85

LINEARS

NE536T

2.75

NE555V

.43

NE556A

.90

1456V

.75

1458V

.52

566V

1.25

567V

1.35

540L

2.00

Order Minimum $10.00. Add $1.00 shipping and handling charge per order. California residents add 6°o sales tax. All orders shipped First Class within 24 hours.

Order the famous lasis 6 volume Programmed Learning Course "Microcomputer Design is a Snap" for $99.50 and receive a special $10.00 credit on any group of IC's.

Satisfaction 100% guaranteed. C.O.D. Orders: Phone (day or night) 408/354-1448

£"ITQf^kl p0 B0X 2542

V-LI r\V/l^ Sunnyvale, CA 94087

Free monthly catalog—Just send us your name and address

DELIA ELECT l&NKSCD

POST OFFICE BOX 2 7 OAKLAND ST AMESBURY, MASS 01913

VIATRON TAPE HEADS STOCK NO.6435 $6.95

XEROX

1 3 J 4 5

0 / B v IO .>

qj 42S2 Sm± iQS

SB IflB Bl lISS":

hs BO SBS 3S 12

- f^Q SE3 1^3

B t 1

i i

|. «-r»«-¥v.*> ■ .

These are prototype boards that can be used in almost and type of wirewrap application. The board consists of a (top) positive plane and the other side is a negative plane. There are two 44 finger connectors that may be utilized. There are 30 16 pin sockets and 30 14 pin sockets. All these pins are gold plated. The wire wrapping that is in the back can very easily be removed. We have a limited quantity of these boards, so act quickly. STOCK NO. P6434 $27.50 2/50.00

TYPE

SN7400

SN7401

SN7402

SN7403

SN7404

SN7407

SN7408

SN7409

SN7410

SN7SH11

SN7413

SN7420

SN7430

SN7432

SN7440

SN7442

STJ7448

SN7470

SN7474

SN7475

SN7476

SN7479

SN7486

SN7490

SN74107

SN74121

SN74193

INTERGRATED CIRCUITS SERIES 74...0%C to 70%C

FUNCTION STK NO

Quad 2 input NAND gate M3071

Quad 2 input NAND gate M30ai

Quad 2 input positive NOR gate M3067

Quad 2 input positive NAND gate M3065

Hex Inverter M3123

Hex Buffer/ Drivers, 30 volt output M3124

Quad 2 input AND gate M3125 Quad 2 input AND gate. Open collector M3126

Triple 3 input NAND gate M3127

Triple 3 input AND gate M3136

Dual NAND Schmitt trigger M3128

Dual 4 input positive NAND gate M3088

8 input positive NAND gate M3129

Quad 2 input positive OR gate M3130

Dual 4 input positive NAND buffer M3131

BCD to Decimal decoder M3043

BCD to 7 segment decoder driver M3120

J-K Flip-Flop M3041

Dual D, Edge triggered Flip-Flop M3073

Quad bistable latch M3059

Dual J-K Master-Slave Flip-Flop M3132

Dual Type D Flip-Flop M3110

Quad 2 input Exclusive OR gate M3I33

Decade Counter M3044

Dual J-K Master-Slave Flip-Flop M3134

Monostable Multivibrator M3121 Synchronous 4 bit UP/DOWN counter M3093

PRICE

.20

.20

.20

.20

.25

.40

.25

.35

.25

.25

.75

.20

.35

.35

.20

.65

.75

.50

.50

.75

.50

.50

.50

.75

.50

.75 1.00

KEYBOARD KIT

This very unusual keyboard kit is made by Micro Switch. It has a set of switches & space bar in a modular frame, plus 42 molded double-shot keys in red, white, or blue. There are 8 control keys in addition to letters, numbers, & many symbols. The switches are arranged in 4 rows, but are easily removed or moved to other positions. This makes for a very versatile keyboard, since any number and type of key can be arranged in any pattern to suit your own needs. Any type of encoding can be wired. Finished size is 9%" x 3%" x 2".

STOCK NO. B6015 Keyboard Kit 2% lbs. $19.95 ea. 2/35.00

KEYTOPS & SWITCHES

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

54 key typewriter set, keys only, grey K9278 2.95

54 key TTY set, no symbols white K9279 2.95

54 key TTY set, with symbols white K9282 2.95

54 key set, keys Si switches black K9288 30.00

54 key set, keys Si switches grey K9290 30.00

54 TTY set, no symbols keys & Sw. White K9291 30,00

54 TTY set, with symbols, keys & Sw. whiteK9291 30.00

11 Key Numeric set. Keys only Black K9283 1.50

11 Key Numeric set. Keys only Grey K9284 1.50

11 Key Numeric set. Keys only White K9295 1.50

12 Key numeric set. Keys only white K9286 1.50

11 Key Num.set, keys Si switches Black K9293 7.00

11 Key Num. set, keys Sr switchesGrey K9294 7.00

11 Key Num. set, keys Si switchesWhite K9295 7.00

12 Key Num. set, keys Si switches white K9296 7.50

SOPHISTICATED LINEAR PARTS BOARDS

This dual channel wide-band amplifier is loaded with late model parts. It has 2 ea. 733 differential video amps

Lm301 op amps, Mc 1414 dual differential comparators (dual 710's), CA 3083 NPN DIP transistor arrays,

Md221 9 dual high speed NPN transistors, 9624 dual interlace converters, 741 23 dual one shots, and (4)

7400's, Also (6) trim pots, capacitors, transistors atd many precision resistors and 'A watt resistors. One of

the best sources of parts we have ever offered.

STOCK NO. P5442 lib $3.50 2/6.00

Philbrick/ Nexus OPERATIONAL AMPLIFIER

Philbrick/Nexus Model SQ-10A is a high gain, high stability general purpose amplifier. It operates over the temp, range at -25 degressC to 385 degreesC. Both inputs and output are fully protected against shorts to ground or the power supply. It maybe used open loop as a voltage crossing detector. 1MHz unity gain bandwith. Open loop gain 60,000min. Slew rat l.lv/sec.min. 100nA. max. imp"t bias current. Nominal power plus or minus 15v. STOCK NO. P4539 , $1.75 4/6.00

SEND FOR OUR LATEST FREE CATALOG' WE WELCOME MASTER CHARGE AND BANK AMERICARD, WE MUST HAVE ALL THE NUMBERS ON THE CARD FOR PROCESSING. PLEASE INCLUDE SUFFICIENT POSTAGE(2lbs)min.EXCESS WILL BE REFUNDED'

minimum order $5.00

SOLID STATE SALES

PO BOX 74B SOMERVILLE, MASS. 02143

WE ARE LEADING THE WAY IN CUSTOMER SERVICE AND DELIVERY TIME FOR THE COST CONSCIOUS SEMI-CONDUCTOR USER, LARGE OR SMALL.

DIODES

TRANSISTORS

TRIACS

INTEGRATED CIRCUITS

2522 STAT SR

INTEL S080 CPU

2518-HEX 32 BIT SR 2102-1 1024 8T RAM . . . 5280 4K DYNAMIC RAM .

5202A UV PROM

MM5203 UV PROM

1 702A UV PROM

5204-4 K PROM ,

. S2.75 . S24.50 . S5.00 . SI.80

S12.50 . S12 50 . SI 2.50 . S1D.75

524.05

MINIATURE MULTI-TURN

IlihVl POTS

100. 1,00. 2K. 5K. 10K. 100K

200 K

MULTI-TURN TRIM POTSSi.

niNir to Bourns

3010 siyle3/16"x5/8"x1-1/4"

50, 100.

IK. 10K, 50K ohms

$1.50 eu

. . . .3/S4.0D

LIGHT ACTIVATtiU SCR's TO-1S.200V 1A

TRANSISTOR SPECIALS

2N3585 NPN Si TO-66 S .!

2N3772 NPN Si TO-3 S 1 .<

2N490S PNP Si TO-3 S 1.(

2N6056 NPN Si TO-3 Darlington . St;

2N5086 PNP Si TO-92 4/S 1 .C

2N4898 PNP TO-66 S .(

2N404 PNP GE TO-5 5/S 1 X

2N3919 NPN St TO-3 RF S 1.!

MPSA 13 NPN Si TO-92 3/S 1.(

2N3767 NPN Si TO-66 S ."

2N2222 NPN Si TO-18 5/S 1.(

2N3055 NPN Si TO-3 S .!

2N3904 NPN Si TO-92 5/S 1.1

2N3906 PNP Si TO-92 5/S 1.(

2N5296 NPN Si TO-220 S .!

2N6109 PNP Si TO-220 S .!

2N3638 PNP Si TO-5 5/S 1.(

2N65I 7 NPN TO-92 Si 3'S 1.(

C/MOS (DIODE CLAMPED)

74C02- .22

74C10- .22

4001- .22

4002- .22

4006- 1 20

4007- .22

4009- .42

4010- .42

4011- .22

4012- .22

4013- .40

4015- .95

4016- .40

4017- 1.05

4018- 1.00

4019- .22 4022- .95

4027- .40

4028- .88 4029-1.10 4030- .22

4035

4042

4047

4049

4050

4066

4071

4076

4081

4520

LED READOUTS

FND 500.5" C.C SI.95

HP 7740-.3" C.C S1.40

MAN-7-.3" C.A SI .25

NS 33-3 tliii. array SI.35

DL 747 S2.50

7 WATT L D-65 LASER DIODE $835

PRINTED CIRCUIT BOARD

4-1/2" *6 -1/2" SINGLE SIDED Ef'OXY BOARD 1/16" thick, unetchfld

S.50ea 5'S2.20

VECTOR BOARD 1" SPACING

4.5" x 6" SHEET . . SI 25

2N 3820 P FET S .45

2N 5457 N FET . . . S .45

2N4891 UJT S .45

TIS 43 UJT S .35

ER900 TRIGGER DIODES 4/S1.00

2N6028 PROG. UJT S .65

VERIPAX PC BOARD Tins board isa 1/16" single sided papei epoxy

board. 4Vx6V DRILLED and ETCHED which will hold up in 21 single 14 pin IC's or 8. 16. or LSI DIP IC's with busses fo.

power supply Loimncioi S4.00

MV 5691 YbLLOW-GREEN

BIPOLAR LED Si.25

FP 100 PHOTO TRANS S .50

RED, YELLOW, GREEN OR

AMBER LARGE LEO's . . . e;i. S .20

14 PIN DIP SOCKETS S .25

16 PIN DIP SOCKETS S .28

MOLEX P1NS 100/SI.00

1000/S 7.50

8 PIN MINI DIP SOCKETS S ?5

10 WATT ZENF.RS3.U, 4.7, 5,6.8.2, 12, i 5,

18,22, 100, 150 oi 200V . . . ea. S .60 1 WATT ZENERS 4.7. 5.6. 10. 12. 15,

18 OR 22V 80. S .25

TANTULUM CAPACITORS

Silicon Power Rectifiers

PHV

1A

3A

12A

50 A

125A

100 200 400"

.06 .07 .09

.14 .20 .25

.30 .35 .50

.80 1.15

1.40

3.70 4.25 6.50

600

11

.30

.70

1.80

8.50

800

.15

.35

.90

2.30

10.50

1000

,2Q

.45

1.10

2.75

12.50

SILICON SOLAR CELLS

2%" diameter .4V at 500 ma $5.00 ea., 6/$27.50

.22UF 35V 5/S 1.00 47UF 35V 5.S1.00 .68UF 35V 5/S 1.00 1UF35V 5/S t.00 2.2UF 20V 5/S 1.00 3.3UF 35V 4/S1.Q0

4.7UF 35V 4/S1.00 6.8UF 35V 3 SI.00 22UF 35V S .40 33UF 35V S .40 30UF 6V 5.-S1.00 100UF 35V S .50

M/001 ALARM CLOCK CI

$6.00

NATIONAL MOS DEVICES

MM 1402 MM 1403 MM 1404 MM 5013 MM501G MM 5017 MM5055 MM 50 56

1.75 1.75

2.50 2.50

MM505/ 2.25 MM5058- 2.75 .Y1M50GO 2.75 MM5061- 2.50 MM5555-4.75 MM5556 4.75 MM5210- 1.95 MM5260 1.75

7400

7401

7402

7403

7404

7405

7406

7407

7408

7409

7410

741 1

7412

7413

7414

7416

7417

7420

7425

7426

7427

7430

7432

7437

7438

7440

7441

TTLIC

7442744574467447744874507472 74737474747574767480-7483748574867489 7490749174927493749474957496 7410774121 74123

SERIES

.52 741257412674151741537415474155741577416174 164 7416574173741747417574177

7418

74191

74192

74 1 93

74194

74195

74196

75324

75491

75492

-2.10

- 1.20

- 1.20

MINIATURE DIP SWITCHES CTS-20G-4 Four SPST sw.tches

in one mm.dip package. . . SI.75

Full Wave Bridges

PRV 2A 6A _ 25A

200 _ _ .95 T25 200

400 1.15 1 50 3.00

600 i 35 1.75 -1 00

SANKEN AUDIO POWER AMPS"

Si 1010 G 10 WATTS S 6.90

Si 1020 G 20 WATTS S13.95

Si 1050 G 50 WATTS S24.95

CCD 110 LINEAR 255 XI BITSELF SCANNING CHARGED COUPLED DEVICE S99.00

CCD 201 100 * 100CHARGE

COUPLED DEVICE. . . S 135 00

LINEAR CIRCUITS . „

LM307 -Op Amp 5 .30

LM309K5V 1A REGULATOR .. SI.15

723 - 40 + 40VV RFGULATOR . . S .50

301 '748-Hi Par. Op. Amp S .31

320T 5.12,15. or 24V NEG REG . . SI.50

709C Op. Amo $ .31

741 A or 741C OP AMP S .31

710 COMPARATOR S .35

CA 3047 Hi Pel. Op. Amp S .95

340T 5, 6. 8. 12. 15. 18. 24V POS

REG. TO-220 51.50

101 OPER. AMP. HI PERFORM. . . S 75

LM 308 Opei. Amp., Low Power . . S .95

747 - DUAL 741 S .65

556 - DUAL TIMER SI.00

537 - PRECISION OP. AMP SI 70

LM3900 QUAD OP. AMP .... S .49

LM 324 - OUAD 741 SI.50

560 - PHASE LOCK LOOP .... S2.00

561 PHASE LOCK LOOP .... S2.00

565 - PHASE LOCK LOOP . .. . " S1.25

566 FUNCTION GEN SI .65

567 -TONE DECODER SI.50

LM 1310N FM STEREO DEMOD, . S2.75

8038 IC VOLTAGE CONT. OSC. . S3.90

LM 370 - AGC SQUELCH AMP. . S1.15

555 2JJS 2 HR. TIMER S .45

553 OUAD TIMER S2.50

FCD 810 OPTO-ISOLATOR .... S .80

1458 DUAL OP AMP S .60

LM 380 - 2W AUDIO AMP S .95

LM 377 - 2WSteien Audio Amp. . S2.50

LM 381 - STEREO PREAMP. . . . $1.50

LM 382 - DUAL AUDIO PREAMP SI.50

LM 311 - HI PER. COMPARATOR S .90

LM 319 - Duul Hi Speed Comp. . . S1.25

LM339 - QUAD COMPARATOR SI.50

WHO DARED TO CHALLENGE THE 8080 & 6800 SYSTEMS?

WE DID!

VERAS SYSTEMS

££

F-8"

A COMPLETE SYSTEM FOR ONLY $45Q 00

$7flQ oo

7" x 16" x 14-3/4" / V/v7»

COMPARE STANDARD FEATURES ON BASIC SYSTEMS

YOU'LL SEE WHY THE VERAS F-8 SYSTEM WINS HANDS DOWN! 'ReghrtBred Trademarks of Fairchild and Motorola

KIT FORM ASSEMBLED and TESTED

STANDARD FEATURES

VERAS F8

8080 & 8080A SYSTEMS

6800

SYSTEM

Parallel I/O Ports

(3) 8 Bit Bidirectional Brought Out To Rear Panel Conn's.

None

None

Serial I/O Port

RS-232 or TTY Brought Out To Rear Panel Term. Strip.

None

RS-232 or TTY

Interval Timers

(2) Programmable Interval Timers

None

None

Interrupts

a) Vectored Interrupt To Location 0090 Hex.

b) Vectored Interrupt Programmable Location

c) Two Vectored Interrupts Associated With Interval Timers

d) Total of (4) Interrupts In A User Defined Priority Interrupt Structure

None

a) 2 Non Vectored Interrupts on P I A

b) 2 Vectored S W I ( N M I

c) Total of 4 Non Prioritized Interrupts

Built In Mini Operating System in ROM For Terminal And Memory Debug

FAIRBUG*

None

MIKBUG*

Loader Program

Automatic Internal ROM

Manual Console Switches

Automatic Internal ROM

Static RAM Memory

1024 BYTES

None

2048 BYTES

Card Rack

Rugged Alum. Self Contained Card Rack/Plastic Self Aligning Card Guides

Card Supports

None

Auxiliary DC Power To Power Peripherals

+5V, -5V, +12V, -12V @ 1 Amp. Ea. Regulated At Rear Panel Terminal Strip

None

None

Basic Kit Price

$459.00

S539.00, S599.00or

S840.00 Depending

On System

S395.00

OUR 4K STATIC RAM BOARD FEATURES: (optional)

• On board decoding lor any 'our of 64 pages. • Address and data lines are fully buffered.

• No onboard regulators lo cause heat problems (Chassis mounted)

• 4K memory boards with connector, buffers, static RAM's & sockets are available in kit form

$149

I The More Flexible and Expandable Computer at a Comparative Price.

00

the VERAS SYSTEM

The VERAS System can be made into a

17K processor by merely adding four of our

optional memory hoards. The kit includes

everything you need to build the VERAS F-8 Computer as described. All boards, connectors,

switches, discrete components, power supply and cabinet are supplied. Programming manual,

data book and simplified support documentation supplied, 8K Assembler and Editor (paper

tape or K.C. std. cassette) available on request with minimum order of 3K RAM.

• Two I/O ports each on the CPU anil ROM chip make 32 bidirectional TTI lines.

• The Fairbug* programmed storage unit provides the programmer with all THE CPU I/O subroutines, allows the prugrammei to altei Ol display memory, and

register its contents via teletype. _. . __ • Programmable internal timei is built into the ROM chip

E)(jA HU • Built m clock gen^r^itor and power on reset are built into the CPU chip

• There is a local interrupt with automatic address vectoi rr ATllDrO • It is expandable to 65 K bytes of memory

rfcAl Unto! • 20 mil loop and/or RS232 interface included.

• IK of on board 2102 RAM

• Serial interlace buil: into PSU chip

'Fair bug is a registered trademark of Fair child Corp.

TINY 2 K BASIC (available) OCT. 15,1976 $25.00 FULL BASIC (available) DEC. 15,1976 $50.00

Computer dealers and hobbyist club inquiries are invited. Expected delivery time 30 days or less.

VERAS SYSTEMS

I Warranty: 90 days on parts and labor for assembled units. 90 days on parts for kits. Prices, specifications, and deliveiy subject to change without notice.

!~VERAS SYSTEMS A Div. of Solid State Sales, Inc. Box 74B, Somerville, MA 02143 (617)547-1461

>

or D Master Charge #

a VERAS F-8 Computer Kit □ 4K RAM Board Quantity

□ Asse

■nbled

City, State

Zip

Continued from page 29

MOV

A,E

ADI

04H

;INCREMENT THIRD BIT OF E

MOV

E, A

MOV

A,C

iSUB 64 FROM C

SB1

■4 0H

MOV

C,A

MOV

A,B

;GET X AGAIN

RRC

;DIVIDE BY 2

RAR

;DIVIDE BY 2 AGAIN

MOV

B, A

;STORE IN B

MVI

A,0

i CLEAR A

ADC

A

;PUT CARRY IN A

MOV

D,A

;STORE CARRY IN D

MOV

A, B

;GET X/1 AGAIN

AN I

OFH

iLOOSE HIGHER HALF-UORD

MOV

B, A

JSAVE IN 3

MOV

A,C

iGET Y AGAIN

RLC

; MULT I PLY BY 8

RLC

RAL

JNC

LOUER

ilF NO CARRY, DONT INCREM

INR

E

AN I

OFOH

iDUMP LOUER HALF-WORD

ADD

B

;ADD X DISPLACEMENT

MOV

L,A

;load l

MOV

H,E

iLOAD H

RET

Selecting the Color of the Crayon

We decided to let the user select the desired color and intensity by moving the switches for the lower four bits of the "programmed input" register on the IMSAI 8080 front panel. (If the switches are all off, zeros will be written into memory, which gives the "black" color.) We must also know into which half of Dazzler byte location we should put this color information. This is determined by the state of the carry bit which was saved in register D, when X was divided by 4 in the algorithm for address calculation. For example, X = 40 and X = 42 will translate into the same address. But X = 42 will set the carry bit, causing the most significant half of the word to be used, while X = 40 won't, causing the least significant half to be used. A program sequence to accomplish this would be:

1. Read switch registers.

2. Mask out the most significant half word.

3. Store in C.

If D = 0, get word in location referenced by H,L. Then zero least significant half and "OR" the result with C.

4. If D = I, rotate C 4 times, get word referenced by H,L. Then zero most significant half, and "OR" the result with C.

5. Move result back to memory.

The above manipulations are taken care of in the main program which we show assembled in listing 1 along with all the subroutines needed.

The Final Program

The final Cybernetic Crayon consists of a "main program" actually not very long),

program

(which is

and three sub

routines. The main program handles a few minor tasks (like turning the Dazzler on, and selecting a color), and also calls the subroutines as needed.

For example, in order to get X and Y from the digitizer, it must "read" each value separately from the appropriate input ports (in our program X is read from port 10, and Y from 11). These values must be decoded, and stored in two of the registers of the microcomputer. Thus, once the digitizer is connected to the two parallel ports as described, all that is needed to read and decode each coordinate is an input statement followed by a call to the "DECODING" routine. We can accomplish this task as follows:

1. Input from X port to accumulator and complement.

2. Call decode routine.

3. Move result to B register.

4. Input from Y port to accumulator and complement.

5. Call decode routine.

6. Move result to C register.

This segment is found at addresses 0019 to 0027, with the H register used as a temporary copy of the X value. All our programs were written in 8080 assembly language. For those readers who don't have an assembler, a machine language translation is also shown. This was produced by a cross-assembler written in BASIC-PLUS by Don Simon of Soloworks.

Some Ideas for Extending and Applying the Cybernetic Crayon

Extensions that we are working on include a blinking cursor, superimposing pictures from two digitizers, subpictures, moving pictures, and games that allow human interaction. Some of these may exceed the capabilities of a single processor, which suggests that several processors with shared memory is an idea worth exploring.

The principal application we have in mind is to education, but not in the sense of what is called "CAI" (computer assisted instruction). CAI says that computers should be used to "teach" children. We think that anyone who has used computers knows that it should be the other way around. One of the best ways to learn something is for the student to try to "teach" it to a critical audience. What more critical (but fair) audience can you find than a computer?

Another deep idea about human learning that comes out of letting people play with

138

computers (as opposed to using computers as Skinnerian teaching machines) is that real computing helps build a rich background of experiences. This is educationally valuable because people with lots of experiences are much better audiences for lectures and books. For example, a young child who has played with the Cybernetic Crayon will surely get a lot more out of a math book that explains Cartesian coordinate systems than one who reads the same book cold.

Computers are revolutionary for education, not because they can "automate" teaching, but because they make it possible to undo a serious mistake. Present educa

tional practice is basically upside down. It says to young children "listen to, and memorize all this stuff because- some day you'll do great things with it." How much better it would be if we could let kids do great things first, and then explain how it all worked. The followup would be to show how even better things could be done with new information. The power of computers is that they make such a strategy not only possible, but workable in a way that makes learning the adventure it ought to be. This is why the personal computing movement has much to contribute to the future of education."

The use of this system can lead to quite practical results for the artist. What called the Crayon System to our attention and resulted in this article was Margot Critchfield's first entry into the BYTE Computer Art Contest, the pastoral scene, photo 7. Here are several of the Art Contest entries which Margot Critchfield has created using the Cybernetic Crayon system described by this article. The comments are based on Margot's notes with direct quotes as indicated.

Using Computer Graphics as a Medium

for Artistic Expression:

A Portfolio of Explorations

9 V 11

By

Margot Critchfield Project Solo 311 Alumni Hall University of Pittsburgh Pittsburgh PA 15260

•M(,

■Illlli.

I ' '"»: W

Photo I: Fruit Salad. The background of warm colors in vertical stripes was created first. Then the shapes were created in Erase mode, after which the stripes were modified to echo the shapes.

Photo 2: Framework. The background of all possible colors was done first in horizontal stripes. Then the framework and "joints" were done in Erase mode.

139

Photo 4: Psychedelic Cat. This picture is an attempt to photograph a frame attached to the front of the television set. Margot writes "This is an attempt to work in a more traditional or painterly way with the digitzer. It involves a good deal of patience and much switching back and forth between colors. By this time I had more or less memorized the switches."

Photo 3: Modern Stained Glass. The framework of photo 2, modified by further erasures.

Photo 5: Windows and Spaces. This picture is restricted to horizontal and vertical contours. It achieves a dreamlike quality, with an illusion of overlapping forms.

Photo 6: Patriotic Motif.

"A predrawn map of the US was traced with the digitizer on a blue background then filled in. Initials were done in Erase mode."

140

Photo 7: Pastoral Scene or Ferocious Rabbit Attacking Two Horses at a Pond While the Sun Sinks Slowly Behind the Hills. The background of this image was drawn first, then the animals were added. There is a childlike quality (naturally) since a visiting 5 year old drew the horse.

Photo 8: Lily Pond. "With apologies to Monet. The attempt here is to approximate soft contours, Impressionist type color mixtures. Looks good through an out of focus projector lens."

THE

SC/MP at $ 95.00

SC/MP, the Microprocessor kit from National Semiconductor includes everything you need to buMd a completely functional microprocessor system - featuring the National SC/MP microprocessor — the low cost microprocessor for every application: Text Systems and Instrument Control; Machine Tool Control; Small Business Machines; Word Processing Systems; Educational Systems; Multiprocessor Systems; Proces Controllers; Terminal Control; Laboratory Instrumentation; Sophisticated Games; Automotive Controller and Appliance Controllers.

The kit, neatly packaged with all the components and literature you need, in a looseleaf binder, includes: The SC/MP Microprocessor — a single-chip Central Processing Unit in a 40pin, dual in-line package. Features static operations, forty-six instruc tion types; single-byte and double-byte, software controlled interrupt structure, built in serial input/output ports; bidirectional 8-bit TRISTATER bus, parrallel data/port and latched 12-bit TRI-STATER address port. ROM — 51 2 bytes (8-bits/byte) of pre-programmed ReadOnly-Memory containing KITBUG—a monitor and debugging program to assist in the development of your application programs, KITBUG provedes teletypewrite input/output routines and allows examination, modification, and controlled execution of your programs. RAM-256 bytes of static read/write memory for storage of your application programs. Transfers of data to and from RAM are controlled by SC/MP and KITBUG. Teletypewriter Interfact including buffer and drive capability for a 20 MA current loop interface. Voltage Regulator. Data Buffer —providing interface between memory and bidirectional data lines. All the literature you need, including schematics and programming manuals. Timing Crystal—providing 1.000 MHz timing signal. Plus all the passive components and circuit board with 72 pin edge connector required to build and interconnect your microprocessor system with external hardware.

ASC II KEYBOARD

J 1.1

mm} J-HI"!

9 9 9 9 B B B B ; W 9. 9 B B B B -M B M B tm ff If w-m m <\ >. .1

(Reg. $58.85)

$53.00

KEYBOARD ENCODER CHIP

G.i. AG-5-3600 ASCII Programmed

$14.95

SWITCHES

10 Position rotary switch by oak manuf. $1.00 per 4

8 position, 1 off switch in T05 can $.69 2 for $1.00

ROCKER SWITCH

SPST normally open contact rating 6A 250VAC solder $ .50 ea $2.00 per 6

MINIATURE TOGGLE SWITCH

SPST P.C. MOUNT $.99

I.C.'s

DM 7092 (8092) Dual 5 input N and Gate $1.00 per 3

DM 7094 (74126) Tri State Quad Buffer $1.00 per 3

Mismarked I.C.S. (marked 64xx instead of 74xx)

$1.00 per 10

7408 74192

$1.00 per 2

I.C. SOCKET 4 for $1.00

14 pin wire wrap

Limit 12 per customer.

BRIDGES

12A 50V* 25A 50V*

$1.40 ea $1.60 ea

$12.00 per 10 $14.40 per 10

*Were tested to 50V. Many may be good for 600-800V.

All prices effective through dec. 30th.

This 63 key ASC II Encoded Keyboard kit was designed and manufactured by Electronics Warehouse Inc. Features: single 5 volt D.C. supply, utilizing only TTL logic elements (no MOS devices to blow), TTL drive capability (each of the eight bits of ASC II output will drive the equivalent of ten standard TTL inputs without external buffer drivers), de-bouncing, upper and lower case fully ASC II, 8 bit parallel output. In addition to the alpha-numeric and symbol keys available on a regular keyboard, the following keys are utilized: escape, back-space, tab, line-feed, delete,.control, shift-lock, shift (2 keys), here-is, control-release.

Kit includes: 63 key keyboard, P.C. board, all required components and assembly manual with ASC II code list. Optional: 1. Parity bit-add $1.00

2. Serial output-add $2.00 Note: If you already have this teletype keyboard you can have the kit without it for $36.00 (reg. 539.85). Dealer inquires invited.

7 SEGMENT DISPLAYS - RED

.35" by OPCOA. High Intensity. With decimal point 4 for $4.00

Without decimal point 4 for $3.60

CAPACITORS

aaoooMF 10VDC 185000 MF6VDC A.C. Oil cap, 10MF 330VAC

$1.50 $2.00 $1.50

CALCULATOR KEYBOARD 4x5 MATRIX $1.95

CENTER TAPPED TRANSFORMER

14V at 1.A $2.50

28V at .5A

MINIMUM ORDER $5.00

Shipping & Handling:

KEYBOARD or SC/MP - $3.00 + $.50 Insurance

all others -$1.00

California residents add 6% sales tax.

ELECTRONICS WAREHOUSE Inc.

1603 AVIATION BLVD.

REDONDO BEACH, CA. 90278

TEL. (213)376-8005

WRITE FOR FREE CATALOG

You are invited to visit our store at the above address

UNIVERSAL POWER SUPPLY

A unique plug-in supply by Panasonic. Useful for calculators, small radios, charging many & various small NiCad batteries. Adjustment screw plug on the side changes output voltage to 4%, 6, TA, or 9 volts DC at 100 MA. Output cord with plug, 6 ft long.

No. SP-143C $4.50 3/$12

POWER SUPPLY

LAMBDA 5VDC 74 AMP

LV-EE-5-OV $125.00

NJE 5/OUP-D5

5 VDC 32 AMP

$75.00

CLOCK KIT $14.00

Includes all parts with MM5316 chip, etched & drilled PC board, transformer, everything except case.

SP-284 $14.00 each 2/$25.00

#

txssises

PARITY DETECTOR

New packaged, made for RCA, detects even or odd parity, baud rate 110, 150 or 134.46. Built-in logic supply for the IC's, operates from standard 115 vac. Control panel allows manual or automatic reset mode of operation. Aluminum enclosure (not shown), covers the electronics. TTY compatible.

Ship wgt. 10 lbs. $16.50

COMPUTER DISPLAY TUBE

New Sylvania 9 inch CRT, 85 degree deflection, with tinted faceplate. Same as used in Viatron systems (buy a spare). With complete specs.

Ship wgt. 5 lbs. $15.00

LINEAR by RCA, brand new

gold bond process

301

$ .60

747

$

.82

MM5314

$3.00

307

.52

748

.50

MIV15316

3.00

324

1.80

1458

.96

7001

8.00

339A

1.60

3401

.80

741

.50

555 timer

.60

MEMORY SYSTEM $125.00

New memory system by Honeywell, small . . . measures only 9x4x1 inches. 1024 core memory, 1024 words with 8,9,10 bits/word. Random access, with all logic, register, timing, control, core select and sense functions in one package. New, booklet of schematics and data. Looks like a good beginning for a mini-computer. Limited supply on hand. Ship wgt 3 lbs. #SP-79 $125.00

sS*;

1 *

:

msrf

.#'

COMPUTER GRADE LOGIC SUPPLY CAPS, BRAND NEW

3 Power supplies, transistorized & regulated. Made by TRANSISTOR DEVICES

15 volts DC 5 amps . $25.00

30 volts DC 2 amps 25.00

1 5 volts DC 4.5 amps 25.00

yTie&nMc^

47,000 Uf

32,000

160,000

66,000

1,000

2,000

25V

25

10

10

60

55

$2.00 1.75 2.00 2.00 .90 1.00

ST ST ST ST AL AL

1,000 3,300 1,600 8,000 500

50 35 20 16 6

JST" screwtop ,

Please add shipping cost on above.

.90 1.25

.60 1.25

.35 "AL" axial

AL AL AL AL AL

PHONE 617-595-2275

FREE CATALOG SP-8 NOW READY

MESHNA P0 Bx 62 E. Lynn Mass. 01904

BOTE

To get further information on the products advertised in BYTE, fill out the reader service card with your name and address. Then circle the appropriate numbers for the advertisers you select from this list. Add a 9 cent stamp to the card, then drop it in the mail. Not only do you gain information, but our advertisers are encouraged to use the marketplace provided by BYTE. This helps us bring you a bigger BYTE.

Midwestern Scientific Inst 61

Mikos 131

MiniTerm 79

MITSCIV, 3, 15

National Multiplex 35

NECA 89

North Star Computers 93

Ohio Scientific Inst 4

OK Tools 39

Oliver Audio Engineering 109

Parasitic 67

Per Com Data 53

Polymorphic Systems 40, 41

Processor Technology 71, 72, 73, 74, 75, 76

RBB Software Products 85

Scelbi 10, 11

SD Sales 132, 133

Smoke Signal Broadcasting 109

Solid State Sales 136, 137

Southwest Tech CI I

Sphere CI 11

STM 80

Sunny Computer Store 85

Synchro Sound 47

Technical Design Labs 21

Trintronics Ltd 89

Tri-Tek 121

Vector Graphic 51

Wilcox 85

Wintek 95

Worldwide Electronics 49

*Reader service inquiries not solicited, Correspond directly with company.

r~* r^ n rH f^* r"»

A166

Arizona Micro Systems 109

1 UdUcl

service

A119

A107

Audio Design Electronics 84

A57

A004

BITS 94, 112, 113

A112

A149

Bits and Bytes 85

*

A153

Bits, Bytes and Pieces 109

A22

A111

Brigar 129

A150

#

BYTE's binders 93

A155

A126 A127 A207 A140 A161 A143

Cheap,Inc 89 Comptek 89 Comptek 84 Computalker 89 Computer Corner 85 Computer Enterprises 89

A40

A147

A64

A63

A85

A23

A83 A159 A141 A6

Computer Mart of NY 109 Computer Microsystems 85 Computer Room 57 Continental Specialties 55

A24 A160 A26 A27

A87

A41

Creative Computing 97 Cromemco 1

A169 A59

A7

Delta 135

A29

A78

Digital Group 13

A30

A165

Digital Research 49

A99

A162

EEPS 109

A164

A157

Electronic Warehouse 142

A96

A102

Eltron 134

A82

A9

Godbout 123

A156

A11

lasis 84

A32

A12

IMSAI 8, 22, 23

A137

A38

A15

Intelligent Systems 6, 7 James 125, 126, 127

A115 A42

A18

Meshna 143

A154

A71

MPI 91

BO l\/l B: BYTE's Ongoing Monitor Box

BOMB's Beneficence Booms

The winner of the September 1976 BOMB analysis was Calvin Moerrs, author of "Are You an Author." He receives a bonus payment of $100. Runner up for the September issue was Dr Robert Suding, who wrote "The Circuit for Z-80s." Dr Suding receives a bonus check of $50 for his work.

Effective this month, we're increasing the BOMB bonus amount to $100 for the author receiving the highest rating, $50 for the author who places second in the tally of BOMB points. Be sure to send in your rating of BYTE authors, since it is a way of providing feedback to them on the quality of their work."

LIKED

PAGE ARTICLE

12 Banks-Sanderson: Machine Readable Software 18 Regli: Software for Reading Bar Codes 24 Dwyer-Sweer: Cybernetic Crayon 30 Penn: Buried Gold in the SR-52 36 Anderson: Processor Tech VDM-1 42 Henshaw: Stretch That 6800 Clock 58 Baker: Don't Waste Memory Space 62 Firth: Do It Yourself Weather Predictions 77 Merkowitz: Signal Processing . . . 98 Kay: Designer's Eye View of AC-30 110 Liming: Building the AC-30 Cassette 114 Milieu: Universal Turing Machine 139 Critchfield: Portfolio of Explorations

LEAST

BEST

0 1 2

3

4

5 6

7

8

9 10

0 1 2

3

4

5 6

7

8

9 10

0 1 2

3

4

5 6

7

8

9 10

0 1 2

3

4

5 6

7

8

9 10

0 1 2

3

4

5 6

7

8

9 10

0 1 2

3

4

S 6

7

8

9 10

0 1 2

3

4

5 6

7

8

9 10

0 1 2

3

4

5 6

7

8

9 10

0 1 2

3

4

5 6

7 8

9 10

0 1 2

3

4

5 6

7

8

9 10

0 1 2

3

4

S 6

7

8

9 10

0 12

3

4

S 6

7

8

9 10

0 12

3

4

5 6

7

8

9 10

144

i

I

^. *v

hS

N

1

a)

,y

f

WHAT a SWEET DEAL!

Programmable Microprocessor

Controller! $194oo

The Sphere TPU/1 micro computer on a card is designed for use in control environments; whether it be personal or business. TPU is an expandable CPU on a 4.4X4.9 inch edge connector board with the Motorola 6800 microDrocessor, a 6820 parallel interface, 256 or 512 bytes of EPROM, 2048 bits of static RAM and a crystal controlled clock driver. You can orogram the read only memory with special inst'uctions to meet your own needs or buy our prog

rammed ROM'S. The static memory is expandable to 32K and you can control teletype or other I/O. The TPU has a 72 pin edge connector with all the necessary signals to interface to almost any device. Use it to operate your sprinkling system, lights, heating/cooling system, security system or even control your electric train. The applications are limitless. The TPU/l is completely assembled and tested; includes schematics and manual. FOR $194 ITS ONE SWEET DEAL!

SPHERE

CORPORATION

Dept. 104 P. O. Box rX9 Bountiful, Utah 84010

(801) 292-8466

Please send me

Enclosed Check/Mastercharge/Bankamerlcard

Sphere CRT interface kits.

Amount $

Name

Address

City

Card No.

State & Zip

Limited offer, prices subject to change • Allow up to 30 days for delivery.

pleasuring just 11" wide x 11" deep x 5" high, and weighing a mere 7 pounds, the Altair™ 680b is a complete, general-purpose computer.

The secret to this revolutionary, small computer is its CPU board. This double-sided board fits along the bottom of the Altair case and plugs directly into the front panel board. It contains the new 6800 microprocessor, 1,024 bytes of RAM memory, a 256 byte PROM monitor, provisions for 768 bytes of additional PROM or ROM, and a single Interface port with a Motorola ACIA serial interface adapter which can be configured either RS-232 or TTY. A five level Baudot interface option is also available.

The Altair 680b can be programmed from front panel switches, or it can be interfaced to a video display terminal, or teletypewriter. Three additional circuit boards can be plugged inside the Altair 680b for further memory and interface expansion. The first of these boards is a 16K static RAM memory board.

Software already developed includes Altair 680 BASIC with all the features of the 8K BASIC previously developed for the Altair 8800. These include Boolean operators, the ability to read or write a byte from any I/O port or memory location, multiple statements per line, and the ability to interrupt program execution and then continue after the examination of variable values. This software takes only 6.8K bytes of memory space and a copy is included free with the purchase of the Altair 680 16K memory board.

Other software includes a resident two pass assembler. The Altair 680b is also compatible with Motorola 6800 software.

The Altair 680b is ideal for hobbyists who want a powerful computer system at an economic price. Altair 680b owners qualify

for membership in the Altair Users Croup, and like other Altair owners, they receive a complimentary subscription to Computer Notes and complete factory support.

PRICES:

Altair 680b kit with complete, easy-to-understand assembly manual, operator's manual, and programming manual $466

Assembled Altair 680b $625

Altair 680b Turnkey model kit 395

Expander Card 680MB (required to expand 680) $ 24

Altair 680BSM 16K static RAM board kit with 680 BASIC $685

Altair 680 BASIC when purchased separately $200

Baudot option $ 42

MAIL THIS COUPON TODAY

□ Enclosed is a (heck for S_ D BankAmericard =

or Master Charge =

D Altair 680b □ Kit D Assembled D Other (specify)

enclose $8 for postage and handling □ Please send free information package.

ADDRESSCITY

.STATE & ZIP_

(&LjlDIjC^

2450 Alamo SE/Albuquerque, NM 87106, 505-243-7821

NOTE: Altair is a trademark of MITS, Inc.

Price, specifications subject to change. Please allow up to 60 days for delivery.