Byte Magazine Volume 02 Number 06 - Cognitive Robot

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)

CT-64 TERMINAL SYSTEM

64 OR 32 CHARACTERS PER LINE

UPPER AND lower case LETTERS

FULL 8 BIT MEMORY

128 CHARACTER ASCII SET

110/220 Volt 50-60 Hz POWER SUPPLY

SCROLLING OR PAGE MODE OPERATION

CONTROL CHARACTER DECODING-32 COMBINATION

PRINTS CONTROL CHARACTERS

USABLE WITH ANY 8 BIT ASCII COMPUTER

REVERSED BACKGROUND -I

HIGHLIGHTING

COMPLETE WITH

Chassis and cover, cursor control, 110-1200 Baud serial interface and keyboard. Optional monitor show in photo available.

Now you can buy it. The terminal that has all the features that people have been asking us to include. The CT-64 has all the functions that you could want in a terminal and they may be operated by either switches, or through a software program.

All cursor movements, home-up and erase, erase to end of line, erase to end of frame, read on, read off, cursor on, cursor off, screen reversal, scroll, no scroll, solid cursor, blinking cursor, page selection and a beeper to warn you of end of page; all are provided for your use in the CT-64.

You may also switch from upper case only teletype style operation to upper-lower case typewriter style operation. You can reverse the field on individual words to highlight them, or you can reverse the whole screen.

CT-64 is complete with keyboard, power supply serial interface and case. A matching 9 inch monitor with coordinated covers is also available to make a complete system.

CT-64 Terminal Kit MM-1 Monitor (assembled)

$325.00 $175.00

219 W. Rhapsody San Antonio, Texas 78216

Circle 29 on inquiry card.

You are right, it's just what I have been asking for.

□ Enclose is $325.00 for the CT-64

G Send the MM-1 monitor too. □ Send Data

□ or B AC #

□ or MC Ex Date

NAME

ADDRESS

CITY STATE

Southwest Technical Products Corp.

219 W. Rhapsody, San Antonio, Texas 78216

Meet the most powerful AtC system available for dedicated work.

Yet it's only $595!

Here's the muscle you've been telling us you wanted: a powerful Cromemco microcomputer in a style and price range ideal for your dedicated computer jobs—ideal for industrial, business, instrumentation and similar applications.

It's the new Cromemco Z-2 Computer System. Here's some of what you get in the Z-2 for only $595:

• The industry's fastest /xP board (Cromemco's highly regarded 4 MHz, 250-nanosecond cycle time board).

• The power and convenience of the well-known Z-80 MP.

• A power supply you won't believe ( + 8V @ 30A, + 18V and -18V @ 15A — ample power for additional peripherals such as floppy disk drives).

• A full-length shielded motherboard with 21 card slots.

• Power-on-jump circuitry to begin automatic program execution when power is turned on.

• S-100 bus.

• Standard rack-mount style construction.

• All-metal chassis and dust case.

• 110-or 220-volt operation.

DEDICATED APPLICATIONS

The new Z-2 is specifically designed as a powerful but economical dedicated computer for systems work. Notice that the front panel is entirely free of controls or switches of any kind. That makes the Z-2 virtually tamper-proof. No accidental program changes or surprise memory erasures.

FASTEST, MOST POWERFUL p,C

Cromemco's microcomputers are the fastest and most powerful available. They use the Z-80 microprocessor which

Shown with optional bench

'kit f.l'r

widely regarded as the standard of the future. So you're in the technical fore with the Z-2.

BROAD SOFTWARE/PERIPHERALS SUPPORT

Since the Z-2 uses the Z-80, your present 8080 software can be used with the Z-2. Also, Cromemco offers broad software support including a monitor, assembler, and a BASIC interpreter.

The Z-2 uses the S-100 bus which is supported by the peripherals of dozens of manufacturers. Naturally, all Cromemco peripherals such as our 7-channel A/D and D/A converter, our well-known BYTESAVER with its built-in PROM programmer, our color graphics interface, etc., will also plug into the S-100 bus.

LOW, LOW PRICE

You'll be impressed with the Z-2's low price, technical excellence and quality. So see it right away at your computer store—or order directly from the factory.

Z-2 COMPUTER SYSTEM KIT (MODEL Z-2K) (includes 4 MHz juP card, full-length 21-card-slot motherboard, power supply, one card socket and card-guide set, and front panel; for rack mounting) .$595.

Z-2 COMPUTER SYSTEM ASSEMBLED (MODEL Z-2W) (includes the above as well as all 21 sockets and card guides and a cooling fan; for rack mounting ).. .$995.

l-UOJ 96"W*UU

TV DAZZLER

O

I

g

13

To make ^ your computer

more useful

a wide choice of

memory, I/O, CPU

Your computer's usefulness depends on the capability of Its CPU, memories, and I/O interfaces, right?

So here's a broad line of truly useful computer products that lets you do interesting things with your Cromemco Z-1 and Z-2 computers. And with your S-100-compatible Altairs and IMSAIs, too.

CPU

• Z-80 MICROPROCESSOR CARD. The most advanced /xP card available. Forms the heart of our Z-1 and Z-2 systems. Also a direct replacement for Altair/IMSAI CPUs. Has 4-MHz clock rate and the power of the Z-80 juP chip. Kit (Model ZPUK): $295. Assembled (Model ZPUW): $395.

MEMORIES

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

• 4K RAM. Bank-select allows expansion to 8 banks of 64K bytes each. Kit (Model 4KZ-K): $195. Assembled (Model 4KZ-W): $295.

• THE BYTESAVER —an 8K capacity PROM card with integral pro

grammer. Uses high-speed 2708 erasable PROMs. A must for all computers. Will load 8K BASIC into RAM in less than a second. Kit (Model BSK-0): $145. Assembled (Model BSW-0): $245.

• 16K CAPACITY PROM CARD. Capacity for up to 16K of high-speed 2708 erasable PROM. Kit (Model 16KPR-K): $145. Assembled (Model 16KPR-W): $245.

I/O INTERFACES

• FAST 7-CHANNEL DIGITALANALOG I/O. Extremely useful board with 7 A/D channels and 7 D/A channels. Also one 8-bit parallel I/O channel. Kit (Model D + 7A-K): $145. Assembled (Model D + 7A-W): $245.

• TV DAZZLER. Color graphics interface. Lets you use color TV as fullcolor graphics terminal. Kit (Model CGI-K): $215. Assembled (Model CGI-W): $350.

• DIGITAL INTERFACE (OUR NEW TU-ART). Interfaces with teletype, CRT terminals, line printers, etc. Has not one but two serial I/O ports and two 8-bit parallel I/O ports as well as 10 on-board interval timers. Kit

(Model TRT-K): $195. Assembled (Model TRT-W): $295. • JOYSTICK. A console that lets you input physical position data with above Model D + 7 A/D card. For games, process control, etc. Contains speaker for sound effects. Kit (Model JS-1-K): $65. Assembled (Model JS-1-W): $95.

PROFESSIONAL QUALITY

You get first-class quality with Cromemco.

Here are actual quotes from articles by independent experts: "The Cromemco boards are absolutely beautiful" . . . "The BYTESAVER is tremendous" . . . "Construction of Cromemco I/O and joystick are outstanding" . . . "Cromemco peripherals ran with no trouble whatsoever."

Everyone agrees. Cromemco is tops.

STORES/MAIL

So count on Cromemco. Look into these Cromemco products at your store. Or order by mail from the factory.

We wish you pleasure and success with your computer.

rj| Cromemco

incorporated Specialists in computers and peripherals 2432 CHARLESTON RD., MOUNTAIN VIEW, CA 94043 • (415) 964-7400

Circle 41 on inquiry card.

In the Queue

18

46

76

88

100

140

154

30

54 116

Foreground

DESIGNING MULTICHANNEL ANALOG INTERFACES

Hardware—Kraul INTERFACING THE IBM SELECTRIC KEYBOARD PRINTER

Peripherals— Fylstra COME FLY WITH KIM

Peripherals—Simpson SOFTWARE FOR THE ECONOMY FLOPPY DISK

Systems Software—Welles ARTIFICIAL INTELLIGENCE: Part 2, Implementation

Software—Wimble A 6800 SELECTRIC IO PRINTER PROGRAM

Software—Guzzon A GUIDE TO BAUDOT MACHINES: Part 3

Construction-McNatt

Background

NEWT: A MOBILE, COGNITIVE ROBOT

Robotics—Hoi [ is INTERFACING TO AN ANALOG WORLD: Part 2

Hardware—Carr INTRODUCTION TO MICROPROGRAMMING

Software—Quek

Nucleus

108

Clubs, Newsletters

126

BYTE's Bits

150

Desk Top Wonders:

SR-52Card BLACKJACK

160

BYTE's Bugs

180

BOMB

180

Reader Service

4 In This BYTE

9 The Software Dilemma

12 Letters 16,24,144,158 What's New?

60 Ask BYTE

74 Technical Forum

85 Classified Ads

BYTE is published monthly by BYTE Publications Inc, 70 Main St, Peterborough NH 03458.

Address all mail except subscriptions to above address; phone (603) 924-7217. Address all

editorial correspondence to the editor at the above address. Unacceptable manuscripts will be

returned if accompanied by sufficient first class postage. Not responsible for lost manuscripts or

photos. Opinions expressed by the authors are not necessarily those of BYTE. Address all

subscriptions, change of address. Form 3579, and fulfillment complaints to BYTE

Subscriptions, PO Box 361, Arlington MA 02174; phone (617) 646-4329.

Second class postage paid at Peterborough NH 03458 and at additional mailing offices.

Subscriptions are $12 for one year, $22 for two years, and $32 for three years in the USA and

its possessions. Add $5.50 per year for subscriptions to Canada and Mexico. For air delivery to

western Europe, and for surface delivery worldwide, $25 for a one year subscription only.

Worldwide air delivery available at additional rates. Please see subscription card.

Single copy price is $1.50 in the USA and its possessions, $2 in Canada and Mexico, and $3

elsewhere.

Foreign subscriptions and sales should be remitted in United States funds. Printed in United

States of America. Entire contents copyright © 1977 by BYTE Publications Inc. All rights

reserved.

JUNE 1977 BITE

Volume 2 Number 6

PUBLISHERS

Virginia Peschke

Manfred Peschke

EDITOR IN CHIEF

Carl T Helmers Jr

PRODUCTION MANAGER

Judith Havey

CIRCULATION MANAGER

Gregory Spitzfaden

ASSISTANT PUBLISHER

Debra Boudrieau

EDITOR

Christopher P Morgan

CO-OP EDITOR

Raymond Cote

PRODUCTION EDITORS

Karen Gregory

Nancy Salmon

EDITORIAL ASSISTANT

Ingrid Nyland

PRODUCTION ASSISTANT

Cheryl Hurd

SUBSCRIPTIONS

Kimberly Barbour

Noreen Bardsley

DEALER SALES

Ginnie F Boudrieau

ADVERTISING

Elizabeth Alpaugh

Debra Boudrieau

Virginia Peschke

CLUBS, PAPERBYTES

Peter Travisano

TRAFFIC

Edmond C Kelly Jr

Wai Chiu Li

ART

Mary Jane Frohlich

Ellen Shamonsky

SPECIAL PRODUCTS

Susan Pearne

Floyd Rehling

RECEPTIONIST

Jacqueline Earnshaw

DRAFTING

Lynn Malo

Bill Morello

Stephen Kruse

TYPOGRAPHY

Custom Marketing Resources Inc

Goodway Graphics

PHOTOGRAPHY

Ed Crabtree

PRINTING

The George Banta Company

Custom Marketing Resources Inc

EDITORIAL CONSULTANT

Daniel Fylstra

ASSOCIATES

Walter Banks

Steve Ciarcia

David Fylstra

Portia Isaacson

AFFILIATE PUBLISHER

Southeast Asian Editions

John Bannister

FOREIGN DISTRIBUTOR

Pan Atlantic Computer Systems gmbh

Frankfurter Str 78

D61 Darmstadt

(061 51) 29 29 23

page 46

In This

Some uses of a microprocessor involve the connection to the outside world through an analog interface. When fooling around with such projects from music generation to robotic control, however, it quickly becomes necessary to have a large number of inexpensive real world interfaces. To help point you in the right directions Douglas R Kraul supplied an article on Designing Multichannel Analog Interfaces.

In the past, readers have seen some interest expressed in the concepts of robotics, the use of small computers as the brains of mobile automated mechanisms. Robots have long been fancied in science fiction literature and cinema, but only rarely have people taken any practical steps towards a "real" robot as opposed to paper romanticisms or stage dummies. One of those rare cases is that provided by Ralph Hollis and his associate Dennis Toms, both of whom are physicists at the University of Colorado, Duane Physical Laboratory, Boulder CO. Ralph has been pursuing the design of practical robots as an avocation since 1957, and lately has progressed to the point of a working mobile computer system called Newt, whose picture provides the theme of this month's cover. Turn to Ralph's article, Newt: A Mobile, Cognitive Robot for essential background information on contemporary robot design philosophies.

KITE

Hard copy is a most useful output, but it tends to be somewhat expensive. Dan Fylstra shows one very attractive option in his article on Interfacing the IBM Selectric Keyboard Printer. Dan purchased a used print mechanism late in 1976, and since then has successfully interfaced the device to his KIM-1 system. Readers interested in using these printers (which are available in significant numbers on surplus markets) will find Dan's article an essential guide to the art.

How can hardware be used to accomplish the details of Interfacing With an Analog World? Turn to author Joseph Carr's second part of a two part series to find out some of the details of basic conversion circuits which use the outputs of sensors and preamplifiers discussed in last month's article.

Much of the software that is available on the market today is available on paper tape so as to be easily read into your microprocessor. The problem is that most common paper tape readers are so slow that it seems to take forever to read a large program into memory. In the article Come Fly With KIM, Rick Simpson introduces us to a solution to this speed problem: the Fly Reader, which he uses with MOS Technology's KIM-1,

Now that you've got the hardware built, how do you run it? Ken Welles answers this question in Software for the Economy Floppy Disk. His previous article (February I977 BYTE, page 34) described how to construct an inexpensive floppy disk with minimal hardware. This month he provides a series of subroutines to run it, which could easily be expanded into a complete floppy disk operating system.

Last month in the first part of his article Artificial Intelligence, An Evolutionary Idea, Michael Wimble introduced us to the use of a simulated evolution technique by which it was possible for a program to alter itself and reshape its responses as a direct result of an outside stimulus. This month in Part 2: Implementation, Mr Wimble details how the computer experimenter can implement this type of program on any small computer system.

To many people the concept of assembly language is that of the fundamental language of the computer next to machine language. However, each particular assembly language command must be broken down into a series of simpler command sequences. These commands are known as microinstructions. In his article, An Introduction to Microprogramming, S M Quek describes how the concept of microinstructions is a great benefit to the user of a computer, allowing the easy change of basic instructions.

In previous issues Michael McNatt has shown us the availability of Baudot teleprinters and the ways in which they can be interfaced with your microprocessor. In his concluding article, A Guide to Baudot Machines: Part 3, A Teleprinter Test Circuit, he describes a test circuit that can be used for generating Baudot characters for alignment and adjustment purposes.

POWER.

IMSAI Introduces the Megabyte Micro!

The Megabyte Memory

Until today, the largest memory you could fit and address in a single microcomputer CPU was 65K.

Now, IMSAI presents an incredible memory system for micros 16 times more powerful than yesterday's best.

Imagine, a full megabyte of power from sixteen 65K RAM boards.

And, to control all this, the IMSAI Intelligent Memory Manager (IMM), the super control board.

You can write protect blocks throughout the full megabyte. Or, map in 16K blocks.

Plus, preset 16 mapping configurations with protect for high speed transfer or rapid change.

All interrupts are fully vectored, and there's an interrupt if an attempt is made to write into protected memory.

There's even a real "time of day" clock.

65K, 32K and 16K RAM Boards

Until today, the most memory you could plug into a single slot was 16K.

Now. IMSAI presents memory boards in astonishing multiples of sixteen: 65K, 32K and I6K low power, dynamic RAM Boards. They can be used in any S-100 bus computer individually or in combination to form conventional systems up to 65K bytes.

Every board is fast. With "hidden refresh" and no "wait state."

The Complete Megabyte Microcomputer System

The IMSAI Megabyte Micro™ is only part of the story. The full system can include dual floppy disks, terminals, plotters, printers and tape cassettes.

IMSAI also offers the finest high level and peripheral software available. Paper tape and Tape Cassette I/O and super Disk Operating Systems. Plus, BASIC and Disk BASIC with more high level languages coming.

Until today, the microcomputer's potential was just something you talked about.

Now, you can put it to work. Powerfully. Circle 12 on inquiry card.

GENTLEMEN:

I'm power hungry!

□ Send 65K RAM Board Kit $2599 Q Assembled S3899

□ Scnd32K RAM Board Kit $749 Q Assembled $1099

□ Send I6K RAM Board Kit $449 fj Assembled $679

□ Send IMM ROM Conlrol Kil S299 □ Assembled $399

□ Send IMM EROM Conlrol Kil S499 □ Assembled S699

□ Send full catalog $1.00

Check/MO enclosed. Ami. $

Charge my: Q BAC QM/C

ff Exp. Date:

Sig

□ Send name of my nearest IMSAI dealer Name

Company

Address

City

Stale/Zip .

IMSAI Manufacturing Corporation

14860 Wicks Blvd.

San Leandro, CA 94577

(415) 483-2093 TWX 910-366-7287

Sol Terminal Computer

iT.rrratogy

^^

^■^^

•

To do real work with any computer, big or small, it takes a complete system. Thats one of the nice things about the SoI-20. It was built from the ground-up as the heart of three fixed price computer systems with all the peripheral gear and software included to get you up and on the air.

Sol System I costs just S1649 in kit form or S2129 fully burned in and tested. Here's what you get: a Sol-20 with the SOLOS personality module for stand alone computer power, an 8192 word memory, a 12" TV/video monitor, a cassette recorder with BASIC software tape and all necessary cables.

Sol System II has the same equipment plus a larger

Processor

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

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

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

power per dollar than anything ever offered. They provide performance comparable with mini-computer systems priced thousands of dollars more.

The Small Computer Catalog for the rest of the real computer system story.

Visit your local computer store for a copy of our fully illustrated 22 page catalog. Or you may write or call us if more convenient. Please address Processor Technology, Box B, 6200 Hollis Street, Emeryville, CA 94608. (415) 652-8080.

The functional beauty of Sol Computer Systems is more than skin deep. A look inside reveals a simple elegance of design and sturdy construction.

CorporatK3n5J#

See Sol Systems at your dealer

ARIZONA

Byte Shop Tempe 813 N. Scottsdale Rd. Tempe, AZ 85281

Byte Shop Phoenix 12654 N. 28th Dr. Phoenix, AZ 85029

Byte Shop Tucson 2612 E. Broadway Tucson, AZ 85716

CALIFORNIA

Bits 'N Bytes

679 S. State College Blvd.

Fullerton, CA 92631

The Byte Shop 1514 University Ave. Berkeley, CA 94703

The Byte Shop 2626 Union Ave. Campbell, CA 95124

Byte Shop Computer Store 6041 Greenback Lane Citrus Heights, CA 95610

Computer Center 1913 Harbor Blvd. Costa Mesa, CA 92627

The Byte Shop

16508 Hawthorne Blvd.

Lawndale, CA 90260

The Byte Shop 1063 El Camino Real Mountain View, CA 94040

The Computer Mart 624 West Katella#10 Orange, CA 92667

The Byte Shop 2227 El Camino Real Palo Alto, CA 94306

Byte Shop

496 South Lake Ave.

Pasadena, CA 91101

The Computer Store of San Francisco 1093 Mission Street San Francisco, CA 94103

Byte Shop

321 Pacific Ave.

San Francisco, CA 94111

The Computer Room 124H Blossom Hill Rd. San Jose, CA 95123

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

Byte Shop

14300 Beach Blvd.

Westminster. CA 92683

Recreational Computer Centers 1324 South Mary Ave. Sunnyvale. CA 94087

Byte Shop of Tarzana 18424 Ventura Blvd. Tarzana. CA 91356

Digital-Deli

80 West El Camino Real

Mountain View, CA 94040

COLORADO Byte Shop 2040 30th St. Boulder. CO 80301

FLORIDA

Byte Shop of Miami

7825 Bird Road

Miami. FL 33155

Microcomputer Systems Inc.

144 So. Dale Mabry Hwy.

Tampa. FL 33609

Sunny Computer Stores

University Shopping Center

1238A S.Dixie Hwy.

Coral Gables. FL 33146

Delta Electronics

2000 U.S. Highway 441 East

Leesburg, FL 32748

GEORGIA

Atlanta Computer Mart 5091-B Buford Hwy. Atlanta. GA 30340

ILLINOIS

The Numbers Racket 518 East Green St. Champaign. IL 61820 itly billy machine CO, 1316 Chicago Ave. Evanston, IL 60201 itty bitty machine CO. 42 West Roosevell Lombard. IL 60148

INDIANA The Daia Domain 406 So. College Ave. Bloomington, IN 47401 The Data Domain 219 West Columbia West Lafayette. IN 47905 The Data Domain 7027 N. Michigan Rd. Indianapolis. IN 46268

The Byte Shop 5947 East 82nd St. Indianapolis. IN 46250

KENTUCKY The Daia Domain 3028 Hunsinger Lane Louisville. KY 40220

MICHIGAN

The Computer Store of Ann Arbor 310 East Washington Ann Arbor. Ml 48104

General Computer Store 2011 Livernois Troy. MI 48084 Computer Marl of Royal Oak 1800 W. 14 Mile Rd. Royal Oak. MI 48073

NEW JERSEY The Computer Mart of New Jersey 501 Route 27 Iselin.NJ 08830

Hoboken Computer Works No. 20 Hudson Place Hoboken. NJ 07030

NEW YORK

Audio Design Electronics 487 Broadway. Ste. 512 New York. NY 10013

The Computer Corner 200 Hamilton Ave. While Plains. NY 10601

The Computer Mart

of Long Island

2072 Front Street

East Meadow. L.I. NY 11554

The Computer Mart of New York 314 Fifth Ave. New York. NY 10001

Synchro Sound Enierprises 193-25 Jamaica Ave. Hollis, NY 11423

The Computer Shoppe 444 Middle Country Rd. Middle Island. NY 11953

OREGON

The Real Oregon Computer Co. 205 West 10th Ave. Eugene. OR 97401

Byte Shop Computer Store 2033 S.W. 4th Ave. Portland, OR 97201 Byte Shop Computer Store 3482 S.W. Cedar Hills Blvd. Beaverton. OR 97005

OKLAHOMA

High Technology

1020 West Wilshire Blvd.

Oklahoma City, OK 73116

RHODE ISLAND Computer Power, Inc. M24 Airport Mall 1800 Post Rd. Warwick, RI 02886

SOUTH CAROLINA Byte Shop 2018 Green Street Columbia, SC 29205

TENNESSEE Microproducts & Systems 2307 E. Center St. Kingsport, TN 37664

TEXAS

The Micro Store

634 So. Central Expressway

Richardson, TX 75080

Computertex

2300 Richmond Ave.

Houston, TX 77098

Interactive Computers

7646 Dashwood Rd.

Houston, TX 77036

Byte Shop 3211 Fondren Houston. TX 77063

WASHINGTON

Byte Shop Computer Store

14701 N.E. 20th Ave.

Bellevue, WA 98007

The Retail Computer Store

410 N.E. 72nd

Seattle, WA 98115

WASHINGTON, DC. Area Media Reactions Inc. 11303 South Shore Dr. Reston.VA 22090

WISCONSIN The Milwaukee Computer Store 6916 W. North Ave. Milwaukee, WI 53213

CANADA

The Computer Place 186 Queen St. West Toronto, Ontario M5V 1Z1 Trintronics 160 Elgin St. Place Bell Canada Ottawa, Ontario K2P 2C4 First Canadian Computer Store Ltd. 44 Eglinton Ave. West Toronto, Ontario M4R 1A1 Pacific Computer Store 4509-11 Rupert St. Vancouver, B.C. V5R 2J4

sor

Corporation ^# m

Processor Technology, 6200B Hollis Street, Emeryville, CA 94608, Phone (415) 652-8080

Circle 24 on inquiry card.

The

Software

Dilemma:

How is it possible to simultaneously make software widely available (and low priced), yet reward the producers of good software with adequate compensation for their efforts?

By Carl Helmers

Conventional wisdom has it that proprietary software must come at extremely high prices, commensurate with concentrated work on the part of a small number of dedicated and thoughtful programmers. After all, this wisdom has it, we'll only sell a few copies of package X anyway, so why not keep a tight lid on it and charge as much as possible?

This conventional wisdom has worked well in the past, when the typical computer system might cost upwards of $10,000 or $100,000. But when the typical computer system comes in at a price on the order of $1000, paying prices which are of this same order of magnitude for software packages is not a very likely move on the part of the individual purchaser with his or her personal budget.

In the personal computing field we are participating in a market phenomenon characterized by a change from the situation which supports the conventional software wisdom, to a new situation which has its own characteristics. More and more people are getting into the swing of things with computer use, and thus more and more people have needs which can and should be filled by specialized software products. Where computers are concerned, when we talk about a 100,000+ person active individual user market as we do today, we are for the first time talking about the potential for mass marketing of software in ways unheard of in the conventional wisdom of computing. Establishing a new "conventional wisdom" is clearly required; as a step toward that goal, this paper provides a survey of the prospects for mass marketing

of software, and a solution of the software dilemma posed above.

Let's Draw Some Parallels: Woodworking

Like many individuals, I dabble a bit in the arts of crafting furniture. Suppose, for example, that I want to build a nice, neat contemporary rolltop desk for my study. As an individual with limited time available for such leisure crafts activity, I'd probably want to start with an existing design rather than working out all the details myself. In seeking the end product of a rolltop desk, I'd be in the same situation (as a wood craftsman) as the owner of a computer system desiring a compiler, assembler, application product or peripheral. I know in principle that rolltop desks exist and that in principle I could design then fabricate one, or use an existing one as a mental model with my own variations. But to save time and possible mistakes I might want to find some source of a "proven" design with detailed information on achieving the goal of a rolltop desk. Well, in the world of woodcrafting, as in the world of photography, the world of live steam model engines, or the world of backpacking, there are numerous sources of information including ready-made designs and techniques. I refer, of course, to books which are just published products with specific orientation or theme.

Similarly, when I have a computer system and I know that some neat language or software development tool exists, I also know that in principle I could write such a package myself using my own design or general design concepts taken from any

Continued on page 68

This editorial consists of the text of a paper delivered at the First West Coast Computer Faire in April of this year.

About those missing mailing wrappers and the May issue:

A strike at the printing plant was responsible for May BYTEs arriving late to subscribers and for May and June issues being mailed without the customary brown wrappers. The wrappers will be restored as soon as our printing situation is restored to normalcy. ■

Intel delivers micro ahead of the fast

In 1971, Intel invented the microcomputer and quickly became the world's largest supplier of microcomputers and microcomputer support products. We still are.

Over the past six years we've invested millions of dollars to make the microcomputer even more useful and more economical.Today there are over 195 Intef microcomputer hardware and software products available to help people like you keep ahead of costs, ahead of the competition and ahead of the fast changing world.

We're now offering seven microcomputer families. Including the newest high performance 8085 and the single chip 8748 with resident PROM. And 81 LSI peripheral, memory and I/O support circuits to help you cut design time, do more and get to market first. To reduce design time even further, choose one of our SBC80 Single Board Computers or System 80

packaged microcomputer

7 microcomputer families

ffnTTfTfnnnnTiT

33 software products, users' library with 235 programs

30 SBC 80 Single Board Computer products

81 LSI peripheral, memory and I/O support products

Intellec Development System with 42 options and accessories

2 System 80 packaged microcomputer systems

systems.

But a wide selection of microcomputer components and systems is only half the story. We also provide programming support, including the PL/M high level microcomputer language to help you cut months off those big software development jobs. And Intellec' microcomputer development systems with ICE™ in-circuit emulation

computers to keep you changing world

and symbolic debugging to help reduce system integration and debug time.

Then there's application assistance, training classes and regularly scheduled seminars available worldwide. A users' library with 235 programs and still growing.

Intel's investment protects your * investment. Here are a few examples. Our new 8085 microprocessor offers r greatly improved performance over our industry standard 8080, with substantial cost savings. Yet you use the same software, the same peripheral, memory and I/O circuits as the 8080. You don't have to go through a new learning experience or re-invest in software to upgrade your system to 8085 performance. And that same kind of protection comes when you invest in an Intel development system. Last year's investment in an Intellec system is preserved even when we introduce a new microcomputer. Our newest 8085 and 8748 microcomputers are now fully supported with development software for your present Intellec system. And you will soon be able to add low cost ICE-85 and ICE-48 incircuit emulation modules.

Let Intel help you stay ahead. Get started now by asking for our new microcomputer product line brochure describing the full line of Intel microcomputer products, systems and software. Use the reader service card or write: Intel Corporation, 3065 Bowers Avenue, Santa Clara, CA 95051.

intgl delivers.

Circle 117 on inquiry card.

Letters

AN APL LOVER'S STORY

Regarding the two letters by APL enthusiasts in your February 1977 issue, let me lend my voice to this group. While still in high school, I got my first taste of APL from a friend at IBM via a longdistance line to Detroit, and got access to Xerox Sigma 9 APL while a junior in college. Since then I've written a lot of APL code — including a 7 page pattern recognizer program (imagine what that would be in BASIC!) and about five pages of n-dimensional optimization routines, and now I am running IBM 5100 APL where I work. Needless to say, I think APL is the greatest thing since left-hand Turing machines.

I have just bought an ECD MicroMind computer (graphics) system with the explicit intent of buying 32 K of memory when the price comes down, and beg, borrow, buy, or if necessary, write an APL interpreter. (What about Tiny APL, analogous to Tiny BASICs being written now?) Since my computer will have graphics capability, I won't be interested in APL ROMs. (Might I suggest mnemonics, eg: $R for APL "rho," $QQ for APL "character quad.") I have used them "without hardly noticing." But in any case, put my vote in for APL, and I would be happy to hear from any APL enthusiasts.

Gregg Williams

3439 Southern, #7

Memphis TN 38111

SOMEAPL PERIPHERALS QUESTIONS

You can add my name to the list of those who would be interested in an APL character generator chip (Letters, February 1977). Like a lot of people who have used APL, I caught the bug, and have been disappointed that there is no software for the 8080 to support APL. Though I suspect it's only a matter of time.

A cost of $20 to $25 for a chip "feels" right to me. This would require about half the 500 buyers that Mr Montgomery postulates in his letter. I have a couple of warnings to add, though. First, a full upper and lower case keyboard is desirable, although it's certainly possible to use a spare control key to signal upper case and take care of the translation problem in software. Such keyboards don't seem to be as cheap and available as the surplus upper case ones. Second, I can attest to the fact that using little stickers on the keys to show you where the symbols are leads to a lot of frustration. Better to have keys imprinted with the letters and symbols. What would it cost to have sets of these made up for distribution with the character generators?

I'm convinced that there's a real market for a "small" (not tiny) APL interpreter. The word would spread fast to those who haven't had a chance to use it and are putting up with the inadequacies of BASIC (mainly the size of source programs) without much complaint.

James C Wilson

Ketron Inc

3250 Wing St #402

San Diego CA92110

We know of one interpreter which is nearly complete for the TMS-9900, plus

several 8080 versions. Watch future BYTEs for some fairly extensive APL information. Articles are now in preparation concerning APL interpreter design, use of APL, etc.

ON AUTOMATED BAROMETERS AND OBTAINING MERCURY

I was very interested in Mr Firth's article on weather predictions (December 1976 BYTE, page 62), for there have been very few articles in BYTE on getting a computer to do things other than to play Star Trek. I was especially interested in his idea about getting barometric readings into a computer. Being a chemistry student I ran across an article in the Journal of Chemical Education (October 1976). Although the barometer in the journal is a little different, it's basically the same as Mr Firth's.

Also, in Mr Firth's article he mentions that you need a quarter pound of mercury, and many lab supply houses will not sell you mercury for any reason without a company's purchase order. Another way of obtaining the mercury, although it may take some time, is to remove the mercury switches from old washing machines. The mercury is not very pure, but it can be cleaned up somewhat by passing it through a pin hole in filter paper. The mercury obtained by this method is good enough to be used in the barometer. This may seem a lot of work to go through, but it sure beats paying $13 for a quarter pound of mercury that you will probably use a quarter of.

D Pasken

23 Farview Cir

CamillusNY 13031

Mr Pasken enclosed a Xerox shot of the article he mentions, which can be found on page 670 of the October 1976

SWTP 6800 OWNERS-WE HAVE A CASSETTE I/O FOR YOU!

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

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

Kit - $69.95*

Assembled - $89.95*

(manual included)

* plus 5% f/shipping

PerCom Data Co.

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

PerCom — 'peripherals for personal computing'

TEXAS RESIDENTS ADD 5% SALES TAX

12

issue of the Journal of Chemical Education. The design is by John T Viola and William E McDermott of the US Air Force Academy. The design, in detail, is a recording manometer. Reference is made to a paper, circa 1953, by H T Svec and D S Gibbs (in Rev Sci Instr, 24, 202, 1953). The paper also gives a reference to a source of wire for the measurement: 28 gauge bare nickel chrome wire cable cord manufactured by Consolidated Companies, Chicago IL.

SOMESR-51 CALCULATOR INTERFACE INFO

I read with interest Ralph Getsla's (Letters of January 1977 BYTE) request for information on interfacing his SR-S2. My interests are similar, only my outlook evolves around the use of the SR-51 A terminal strip that can be seen upon removal of the battery pack of the 51. My plan here is to interface the 51 to the modified TV typewriter terminal that I am presently in the completion stages of building, I was able, so far, to track these lines back to their source by the use of a hand held flashlight after disassembly of the 51 (see interface diagram). If I can get any information on the two chips in question I believe I would be in business.

William D Lewis 469 Heatherbray Ct San Jose CA 94136

15

TMC0523NS-5

"U1"

Piggybacked over

(?)

TMC0501NL "112"

U2-10

PS: Could this interface be the same as the SR-52? 1 will be writing Texas Instruments for any information they will be able to give me on these devices. If not, I will operate via the probe.

Who knows?

Continued on page 122

The new 2708 MB-8 8K-16K EPROM kit for just $85.00

.nouncing...

/■ATIvJI LldL/lt?

EPROM boar your S-lOO bus

Both the MB-8 2708 and the MB-3 1702A EPROM boards offer these features:

• Optional memory—option of 2K or4K 1702A's, or 8K or 16K 2708%.

• Dip switch selection of addressing and wait cycles.

• Reverse voltage protection.

• On-board regulators for ail voltages.

• All sockets included.

• Gold-plated contacts.

Contact your local dealer today for complete details.

[\&j Solid State Music

^2102A Walsh Avenue

Santa Clara, CA 95050

(408) 246-2707

The 1702A MB-3 gives

you lowest cost

EPROM versatility.

Board only $65.00 2K $105.00 4K $145.00

■m

msm.emit*i*?'>*i~"

You've just run out of excuses for not owning a personal computer.

Clear the kitchen table. Bring in the color TV. Plug in your new Apple Ilf and connect any standard cassette recorder/player. Now you're ready for an evening of discovery in the new world of personal computers.

Only Apple II makes it that

easy. It's a

complete, ready to use computer, not a kit. At $1298, it includes video graphics in 15 colors. It includes 8K bytes ROM and 4K bytes RAM-easily expandable to 48K bytes using 16K RAMs (see box). But you don't even need to know a RAM from a ROM to use and enjoy Apple II. For example, it's the first personal computer with a fast version of BASIC permanently stored in ROM. That means you can begin writing your own programs the first evening, even if you've had no previous computer experience.

The familiar typewriter-style keyboard makes it easy to enter your instructions. And your programs can be stored on—and retrieved from— audio cassettes, using the built-in

cassette interface, so you can swap with other Apple II users.

You can create dazzling color displays using the unique color graphics commands in Apple BASIC. Write simple programs to display beautiful kaleidoscopic designs. Or invent your own games. Games like PONG—using the game paddles, supplied. You can even add the dimension of sound through Apple IPs built-in speaker.

But Apple II is more than an advanced, infinitely flexible game machine. Use it to teach your children arithmetic, or spelling for instance. Apple II makes learning fun. Apple II can also manage household finances, chart the stock market or index recipes, record collections, even control your home environment.

Right now, we're finalizing a peripheral board that will slide into one of the eight available motherboard slots and enable you to compose

music electronically. And there will be other peripherals announced soon to allow your Apple II to talk with another Apple II, or to interface to a printer or teletype.

Apple II is designed to grow with you as your skill and experience with computers grows. It is the state of the art in personal computing today, and compatible upgrades and peripherals will keep Apple II in the forefront for years to come.

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

■

HflM [IK II

-] I I 'H ! 'HI I »li '.'■! !'.| I kllM

H INI,I'M ...

.. "I'M' lltlM,?_|\! .

i ! t

•i ihc ■■

Apple II™ is a completely self-contained computer system with BASIC in ROM, color graphics, ASCII keyboard, lightweight, efficient switching power supply and molded case. It is supplied with BASIC in ROM, up to 48K bytes of RAM, and with cassette tape, video and game I/O interfaces built-in. Also included are two game paddles and a demonstration cassette.

SPECIFICATIONS

• Microprocessor: 6502 (1 MHz).

• Video Display: Memory mapped, 5

modes—all Software-selectable:

• Text—40 characters/line, 24 lines upper case.

• Color graphics—40h x 48 v, 15 colors

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

• Both graphics modes can be selected to include 4 lines of text at the bottom of the display area.

• Completely transparent memory access. All color generation done digitally.

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

• Uses either 4K or new 16K dynamic memory chips

• Up to 12K ROM (8K supplied)

• Software

• Fast extended BASIC in ROM with color graphics commands

• Extensive monitor in ROM •I/O

• 1500 bps cassette interface

• 8-slot motherboard

• Apple game I/O connector

• ASCII keyboard port_

• Speaker

• Composite video output

Apple II is also

available in board-only

form for the do-it-yourself hobbyist. Has

all of the features of the Apple II system,

but does not include case, keyboard,

power supply or game paddles. $598.

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

-«

cippkz computer inc.

Circle 272 on inquiry card.

What's

CfWMVMCO

Games are More Fun with Action Inputs

a

ill

G

A New Audio Tape Cassette Driver for the Altair Bus

PerCom Data Company Inc, 4021 Windsor, Garland TX 75042, has just introduced a new version of Harold Mauch's Kansas City standard phase encoding audio signal interface board, a version which plugs directly into an Altair bus slot. Harold's design allows phase encoding with redundancy at 300

bps (Kansas City standard), 600 bps, 1200 bps and 2400 bps. In addition to the tape interface function, the CI-812 product also includes a companion RS-232 terminal interface with data rates from 300 to 9600 bps. The kit price of this board is $89.95, and an assembled version is $11 9.95.*

Circle 602 on inquiry card.

a

This little truism can be confirmed by anyone who has implemented and played a space war with joystick control, or used joysticks for direct control of moving systems such as robots or other mechanical marvels. Cromemco, 2432 Charleston Rd, Mountain View CA

94043, has sent along this photo of the new model )S-1 joystick console adapters for their Altair compatible D+7A 10 board. What you get is two independent game control boxes with two axis joysticks, four game function buttons, and loudspeaker outputs for aural effects (such as photon torpedo or phaser sounds). The kit form of the box (in foreground) is available for $65.■

Circle 601 on inquiry card.

Inexpensive Wire Wrap Tools

Hard Copy That's Hard to Beat for Speed

The Digital Group, POB 6528, Denver CO 80206, has announced what is probably the fastest and widest line width matrix impact printer mechanism and electronics package yet to be marketed to personal computing users. In kit form (kit refers to the electronics, not the mechanics), prices for this printer start at $495. What you get is a fast 120 characters per second 5x7 dot matrix printer which gives 96 characters per line at 12 characters per inch pitch, and line spacing of six lines per inch.

Since it is a true impact printer mechanism intended for computer systems use, it will take up to four part forms and should prove most useful to business people for that reason. For the amateur computer person with software development in mind, the 120 character per second rate means listings of assemblies and compilations which take one twelfth the time of a 10 character per second Teletype, but at a price for the mechanism and its interface which is lower than the new cost of a Teletype! Other features of the OEM mechanism selected by the Digital Group include built-in ribbon reinkers for a total ribbon life of 10,000,000 characters, use of 8.5 inch (22 cm) wide standard roll, fanfold or sheet paper, an 8 bit parallel interface ready to plug into your computer's output port after you wire up the cable, and the option of double width characters. For those with idle curiosity, the inking life of 10,000,000 characters before replacement of ribbon corresponds to over 23 hours of flat-out printing, or 250,000 lines with 40 nonblank characters per Iine.■

Circle 603 on inquiry card.

OK Machine and Tool Corporation, 3455 Conner St, Bronx NY 10475, has come out with a unique product line of wire wrapping tools and accessories for the amateur electronics person. These products include manual and battery powered wire wrtpping tools, precut and stripped wire, wire rolls, dual in line package sockets, and wire wrapping "kits." Of particular interest to people on a tight budget is a new low in prices for wire wrapping tools which are powered. The OK BW-630 battery powered wire wrap tool uses standard C size batteries and comes equipped with a bit and sleeve for wrapping AWG 30 wire for only $34.95 (less batteries). This is not a kluge, but a genuine wire wrap gun with positive indexing mechanism to return the bit to a well defined position after each wrap, and the usual "antibackforce" spring loading of the bit to prevent overwrapping. Both of these features are standard items on the industrial wrapping guns which have been used for years."

Circle 604 on inquiry card.

16

Order your Apple II now.

Use this order form to get your Apple II fast. As a special offer for those who order now, we will include free a custom vinyl carrying case (a $50 value). And we will also pay shipping charges to anywhere in the continental United States.

Apple II Price List.

RAM

Complement

Apple II System

Calif. Residents Add

Apple II Board-only

Calif. Residents Add

4K

$1,298.00

$ 84.37

$ 598.00

$ 38.87

8K

1,398.00

90.87

698.00

45.37

12K

1,498.00

97.37

798.00

51.87

16K

1,698.00

110.37

978.00

63.57

20K

1,778.00

115.57

1,078.00

70.07

24K

1,878.00

122.07

1,178.00

76.57

32K

2,158.00

140.27

1,458.00

94.77

36K

2,258.00

146.77

1,558.00

101.27

48K

2,638.00

171.47

1,938.00

125.97

Memory is offered at a 20% savings when ordered with the system-or board-as reflected in the prices above.

Additional RAM can be easily added-in at a later date as your needs develop. One set 4K chips (4K bytes) $125 One set 16K chips (16K bytes) $600

Prices and specifications subject to change without notice.

apple computer inc.

20863 Stevens Creek Blvd., B3-C Cupertino, California 95014 (408) 996-1010

Older Form

D Please send me an Apple II System □ Board Only

with K bytes of RAM (4K minimum) at $.

California Residents add 6.5% tax

Total $

Name

Address

City.

State Zip

Phone

Shipping Address (if different)

□ Cashier's check or money order enclosed.

(Please allow 2 additional weeks for personal checks.) Please charge to my

□ BankAmericard

□ VISA

□ Master Charge

Card Number .

Expiration Date Signature

Mail to: Apple Computer Inc., 20863 Stevens Creek Blvd., B3-C, Cupertino, California 95014

Circle 272 on inquiry card.

Designing Multichannel

Douglas R Kraul 4373 Ashwoody Trl Atlanta GA 30319

ANALOG INPUTS

i o

Analog interfaces to and from the personal computer system can present a difficult dilemma to the small systems user: The analog interface usually is a very expensive proposition, especially if more than one input and one output are needed. Schemes like that suggested by Roger Frank [page 70 of the May 1976 issue of BYTE], can greatly reduce hardware complexity, ahd thus cost, since much of the interface burden is left to the software of the computing system. Direct extension of this principle to the case of multiple input voltages and multiple output voltages can, however, result in a hardware cost that at the least rises linearly with the number of needed outputs and inputs. One alternative scheme requires an additional bit of input to the computer and one additional voltage

DIGITAL TO ANALOG CONVERTER

ANALOG MULTIPLEXER

INPUT SELECT

10

PORT

A

VOLTAGE COMPARATOR

>

INPUT 10

PORT B

OUTPUT

Figure 1: Block diagram symbolizing the hardware that is needed for a multiplexed analog to digital converter for eight inputs. The three outputs from 10 port B select the analog channel. The output from the multiplexer is fed to the negative side of a voltage comparator. An analog output from a digital to analog converter is fed to the positive side of the comparator. When the analog value from the converter is greater than the value being tested, the voltage comparator will output a 1. Using successive approximations the input voltage can be determined.

comparator for each additional analog to digital input up to a total of 8. On the output side each additional voltage output leads to an additional 8 bit output port and an additional 8 bit digital to analog converter. This results in a situation where a many input, many output analog interface requires an inordinate amount of hardware, which means money to the user. (We should not kid ourselves by saying that large numbers of analog channels are rarely needed. Many worthy applications, like control of analog music synthesis, automated test facilities or control of robots would easily push the number of channels needed beyond the point of no return for the previously suggested schemes of interface.) Thus one must turn to a modified philosophy of interface design in order to meet the necessary goal of a less expensive analog interface.

Fortunately digital techniques provide us with a method of solution to the problem: time multiplexing. Time multiplexing is simply the process by which one device can be made to function as many logical devices. To the user these virtual devices appear as if they were full fledged dedicated devices. Thus our objective is to find some technique by which one analog to digital converter and one digital to analog converter can be made to function in many seemingly simultaneous conversions.

Basics of Time Multiplexed Interfaces

The basic principles are illustrated first for the analog to digital case. Figure 1 illustrates the hardware that allows multiplexed analog to digital conversions. An output port, A, from the computer is used to provide the necessary eight bits to drive the digital to analog converter (DAC). The output of the digital to analog converter is connected to the minus input of the voltage

18

Analog Interfaces

comparator. The output from the comparator provides an input to the computer by way of the most significant bit of an input port to the computer. This structure thus far is identical to the scheme proposed by Roger Frank. The difference is that the positive input to the comparator is no longer connected directly to the voltage to be converted. Rather the comparator is connected to the voltage to be converted by way of an analog multiplexer.

The analog multiplexer here is performing the needed function that allows one analog to digital converter to deal with many channels. A typical application might use an 8 to 1 multiplexer. Thus any one of the eight voltage inputs might become the voltage to be converted if the multiplexer selects it.

The selection is accomplished by a binary code applied to the select input of the multiplexer. In an 8 to 1 device the binary code 011 would pick the input labeled 3. The code which selects the input was set by the computer through an output port. For our 8 to 1 example three bits would be needed, possibly originating from the lower three bits of an 8 bit output port.

This change results in almost no change in the software that would service the analog to digital conversions. In fact, the only necessary modification is to preload the channel selection word, which chooses the voltage to be converted in the proper output port. Then the analog to digital conversion routine can be called.

Time Multiplexed Digital to Analog Conversion

Multiplexing of the analog to digital conversion really only solves half of the analog interface problem. The problem of economically generating multiple analog out

puts from the converter still remains. We can apply the versatile analog multiplexer to solve this problem as well. (However, there are complications that can mask the simplicity of the method.)

The basic hardware of the multiplexed digital to analog converter output is shown in block form in figure 2. Once again the source of the digital to analog converter's word is an 8 bit output port from the computer. The output is now connected to multiplexed sample and hold circuits. Much like the multiplexer used in the analog to digital conversion system the multiplexed sample and holds connect the output of the digital to analog converter to the desired analog output which is chosen by the select inputs to the multiplexer. The difference between the plain analog multiplexer and

DIGITAL TO ANALOG CONVERTER

Figure 2: Block diagram of the basic hardware needed for a multiplexed digilal to analog converter for eight channels of output. Three bits of output from 10 port B select the channel that is to be used. When a strobe is enabled the chosen channel is activated. Each analog channel has a sample and hold circuit which must be updated periodically due to the leakage of the capacitor.

19

HIGH IMPEDANCE BUFFER

TO BE HELD

SAMPLE |—.. COMMAND I—-""

A:»NUMBER

OF CHANNELS

SELECT CHANNELS SET OUTPUT VOLTAGE

Figure 3: Functional schematic of a typical sample and hold circuit. The input switch can be mechanical or electronic. In the case of a multiplexed interface it is an analog switch.

the multiplexed sample and hold is memory. The multiplexed sample and hold has the ability to remember the voltage that was applied to the desired output (for a while).

Before proceeding, some background information on sample and hold circuits in general will prove instructive. A functional schematic of a sample and hold circuit is shown in figure 3. The major components of the sample and hold circuit are an electronic input switch, a memory capacitor and a high impedance buffer. The sample and hold circuit works as follows: The voltage to be remembered is applied to the input. The switch is closed, allowing the voltage to be applied to the capacitor. The switch is then opened and the input voltage can now be changed because the output of the sample and hold now reflects the formally applied voltage. This discussion assumes ideal components. There are a number of error sources. The majority revolve around the memory capacitor.

The remembered voltage is stored as an electric charge in the memory capacitor. Because of this any variation of charge with time, ie: current, causes an error in the remembered voltage. This explains the need for a high input impedance in the buffer amplifier so that it doesn't drain away too much charge. A measure of a sample and hold circuit's ability to retain the voltage to within a certain percentage is its hold time. Another problem associated with the memory capacitor is acquisition time. This arises from the fact that charge cannot be delivered instantly to the capacitor. A finite amount of time is needed to deliver enough charge to change the capacitor to the new voltage. Thus we have two design parameters: hold time and acquisition time.

The multiplexed design is not much different from the principles outlined above. The sample switch is merely replaced by our friend, the analog multiplexer. The output to be changed is selected, the strobe then enabled (closing the switch) and after the acquisition time, disabled (opening the switch). The select word and the strobe will

(return j

Figure 4: Flowchart of a typical 10 driver for a digital to analog system. This program is called periodically to update the value that is being held by the sample and hold circuitry.

possibly originate from the lower four bits, for an 8 output system, of an output port from the computer.

This type of interface does represent a burden on the computer. The reason for this burden is the very finite hold time of the capacitor. No sample and hold circuit can retain its value forever. The time can be increased by using a larger capacitor, but a limit is reached because a larger capacitor leads to longer acquisition times. Thus, the sample and hold device must be updated periodically if the outputs are to remain accurate. This situation is not unlike that of dynamic memories which are effectively two state sample and hold circuits.

Use of the Multiplexed Digital to Analog System

Obviously this type of interface will require much more computer intervention. The software, though, is not difficult. A possible 10 driver is flowcharted in figure 4. For an 8 output system an 8 entry data file is needed to hold the current output values. Periodically (perhaps cued by the interrupt system) with a period less than the hold time a routine is executed to update the eight outputs. The main loop of this routine consists of the following: The value of the output presently being updated is sent to the digital to analog converter interface. The output is then selected and strobed. This action then repeats until all eight outputs have been updated.

What Time Multiplexing Buys You

For the small systems user minimizing hardware is essential. The potential saving of a time multiplexed analog interface is high. The reason for this in general is the reduced hardware. Another not so apparent reason is the ease of expansion.

The most obvious hardware savings occurs in the digital to analog converter. This is because eight channels can be had for the cost of one converter, one 8 to 1 analog multiplexer, eight memory capacitors, eight output buffers, and two output ports. This is contrasted to the eight converters, and the eight output ports from the computer needed by the conventional brute force approach. On the input side the gain is not as obvious. Here we have replaced eight comparators with one comparator and a multiplexer. Both cases require an output port, an input port and a digital to analog converter. A check of prices reveals, though, that eight comparators cost more than one multiplexer.

The clincher is when one considers updating the system to more than eight chan

20

nels. The output channel needs only to increase the number of sample and hold devices which is cheaper by factors of eight. The brute force scheme required one more converter and one more output port per additional channel. Table 1 compares the number of components needed for a conventional and a multiplexed system based on 16 channels.

The multiplexed analog to digital conversion process has an even more spectacular success. In the dedicated hardware approach each channel requires one comparator and one bit of input to the computer. The increment for the multiplexed approach is only one multiplexer per eight additions, and one bit of output. Table 2 compares the needed components, based on 16 channels. Thus overall we see that the multiplexed approach offers a multitude of hardware savings.

What Time Multiplexing Costs You

This design technique is typical of many that trade hardware for software. Obviously since we have taken so much out of the hardware, the software and computer efficiency will degrade. It is perhaps a truism that if the interface is designed intelligently these problems can be minimized.

The analog to digital interface suffers the least. The main problem here is the amount of time spent doing the conversion routine. If fast changing inputs or a multitude of moderate inputs are to be converted then the computer is severely loaded. However, many applications only require moderate conversion rates. Foremost of these are interfaces to human operators. Maximum conversion rate needed here is around 100 Hz. Typically, this is around 0.001 Hz to 0.1 Hz. Examples of this are the proportional controls in games and operator set parameters. Control signals in electronic music also fall in these categories. Thus this type of interface can work well in many

Component

Digital to analog

converter 10 ports 8 to 1 multiplexer

Dedicated

16

16+16 bits

0

Multiplexed

1 2 2

Table 1: Comparison of the amount of hardware that is needed for the direct method of digital to analog converter versus the multiplexed method of interfacing. The table is constructed for an interface consisting of 16 channels.

Component

Digital to analog converter 10 ports

Voltage comparators 8 to 1 multiplexers

Dedicated

1

3

16

0

Multiplexed

1 2 1 2

Table 2: Comparison of the amount of hardware needed for direct methods of analog to digital interfacing versus the multiplexed method of interfacing. The table is constructed for an interface consisting of 16 channels.

typical applications if the rates and the numbers are not excessive.

The digital to analog interface suffers from a similar situation. Here the main problems arc extremely slow changing outputs or large numbers of fast outputs. Here again an analysis of likely applications reveals that a great number of output signals reside in the frequency spectrum between 1 Hz and 100 Hz. Sample and hold circuitry can be economically designed with hold times in the excess of one second. Also the whole refresh process can be made transparent to the main program if it is done under interrupt control by causing the update routine to be executed at the rate of the fastest output in response to the request of a programmable timer. As with the analog to

GLOSSARY

Acquisition Time: The time required for a sample and hold circuit to change from its previous value to its new value within a prescribed tolerance.

Analog Multiplexer: A solid state device that allows a multitude of connections to be accessed by a common line. The action is like an N position switch.

High Input Impedance Buffer: A device whose input draws little current from any other devices connected to it. It is important in a sample and hold circuit since currents cause the voltage held in the memory capacitor to discharge.

Hold Time: Amount of time that passes before the output from a sample and hold circuit changes from the originally held value by a prescribed tolerance.

Comparator: An analog device whose output is logical 1 if the plus input is greater than the minus input and logical 0 if the situation is reversed.

Digital to Analog Converter (DAC): A device whose output analog signal (current typically) is proportional to a digital word at its input.

Sample and Hold: Analog memory device which stores a voltage as electrical charge in a capacitor.

Time Multiplexing: Process of combining several measurements for transmission over one signal path. In our case, this signal path is the IO port structure of a processor.

21

ANAL06

ici ^

O-^w-1—^_

<D—WV-4—^_

1000 pF

1000 pF

X

IC4 I

OOOpF

X

lOOOpF

X

lOOOpF

TIT

IC7 J

lOOOpF

l\£

lOOOpF

n^p

lOOOpF

IC I TO 8 CA3I30

IC9 CD405I

7 10 6 ENABLE

5 C

4 B

3 A 2 I

lOOpF

♦ I0K

I vw

:iok

IOpF

ICI3 LM3I8

COMP COMP 1 2

^P1

3pF

ICI2 LM3M 3

I.8K

r?

OUT MSB

>2.2K

3?

.IMF

-VREF

ICII MCI408L-8

LSB COMP VEE

200

1

lOOpF

OUTPUT PORT

-I5V

SIGN BIT 10

PORT

STROBE

SELECT I

-03 -02 10

-00

1-5V

t_

m

-0+I5V

-0 + 5V

JT

^tvIOmF ^tnIO^F ^rslO/iF ,-pOO/tF

-X

-OGND

-0-5V

-0-I5V

Number

Type

+5 V

GND

-15 V

+ 15 V

-5 V

1 to 8

CA3130

7

4

9

CD4051

16.

8

7

10

CD4051

16

8

7

11

MCI408L-8

13

2

12

LM311

1

4

8

13

LM318

4

8

Figure 5: Schematic of the multiplexed analog to digital and digital to analog interface. The parts were mostly chosen for speed and cost considerations. The integrated circuits are mostly CMOS. All resistances are measured in ohms and all resistors are 114 W. Be sure to bypass each power pin with a 0.01 [iF capacitor to help eliminate any stray spikes originating from power surges.

digital cases this type of interface works well with a moderate number of medium speed outputs or a multitude of low speed outputs. Note that outputs which can be changed at a rate up to that of the acquisition time (if only one channel is used) can be had by using fewer channels in the output program loop. Outputs that meet these requirements are some automatic testing signals, mechanical devices and control signals for electronic music.

To summarize, this type of interface burdens the computer system. Using it wisely for moderate types of signals does lead to a workable system. Conveniently these types of signals are quite prevalent in interfaces to humans, and many types of equipment.

A Complete Design Example

To illustrate these principles in more concrete terms a complete interface is described in figure 5. The 8 channel interface represents hardware well within the realm of most small systems users. It is optimized for signals from 0.1 Hz to around 100 Hz, though lower and higher rates are possible at the expense of efficiency. This type of interface is useful in interactive games, testing of equipment and electronic music. Parts used are neither exotic nor expensive.

Figure 5 contains the complete circuit. The following comments on component selection are in order. The digital to analog converter was chosen for cost reasons. However, almost any state of the art current output converter can be used. Note that a

22

multiplying converter can provide for scaling of the output by a voltage, possibly from another interface. The LM318 operational amplifier was chosen to be the current to voltage converter to minimize response time of the DAC. As such, only an operational amplifier of similar speed should be substituted unless you can tolerate slower response. Also care must be taken to isolate the amplifier from stray signals, or it could become unstable and oscillate. The multiplexer chosen for both converters is one of the CMOS variety. In order to meet the specifications on this device and give an easy design, the voltages of this system are restricted to ± 5 V. This allows for adequate range for most 8 bit applications. 10 V full scale means one bit is 39.1 mV. This can be scaled down if needed.

The sample and hold capacitor was chosen to satisfy the acquisition and hold time requirements. Changing its value can tailor the system to individual needs. Always use polystyrene capacitors since their characteristics are essential to a good interface. I used the new CMOS operational amplifiers for the buffers because of their high impedance and low cost. Notice that they operate on the same power supplies as the analog switches.

The comparator was chosen for its low cost and speed. Similar devices could be substituted. The necessary power supplies are ±15 V and ±5 V. The ±15 V could be reduced to ±12 V if convenient.

The software for such an interface is not difficult. Roger Frank's article and figure 4 contain the basics. A complete routine written for an MOS Technology 6502 based system is shown in listing 1.

Listing J: Typical program written for a 6502 based system to update eight digital to analog conversion channels. The program sequentially addresses each channel, outputs the desired voltage to be held, disables the channel, and steps to the next channel. This is done once for each time that the program is called. This program could be set up as an interrupt handler which responds to a clock strobing an interrupt line.

Label Op Operand Commentary

UPDATE LDX #07 initialize pointer;

LOOP LDA,zpa,X BUF get next byte for output;

STA DAC output byte;

TXA accumulator:=pointer;

STA CONT select channel and enable sample and hold;

ORA 04 turn sample and hold strobe off;

STA CONT turn selected sample and hold off;

DEX pointer:=pointer—1;

BPL LOOP if pointer >=0 then go to LOOP;

RTS else return from subroutine;

Data Definitions

BUF: A string of output bytes DAC: Address of DAC output port CONT: Address of control port

few software vs hardware trade offs are made. Though the multiplexed approach does impose some software burdens, for most applications the variation of the outputs and inputs is slow enough to make this type of interface transparent under the interrupt system. This type of interface should make many real world applications possible to the limited budgets of most experimenters."

BIBLIOGRAPHY

1. Frank, "Microprocessor Based Analog/Digital Conversion," BYTE magazine, May I976, pages 70 to 73.

2. Graeme, Huelsman, Tobey, Operation Amplifiers: Design and Application, McGrawHill, 1971.

Summary

A multichannel analog interface can be designed with a minimum of hardware if a

3. Kraul, "Analog Interfaces for Microprocessor Systems," Electronotes, Newsletter of the Musical Engineering Group, volume 8, number 63, March 1976, pages 11 to 14.

COMPUTER MUSK WITH OR WiTHOUT^-T^ _ THE COMPUTER

EQUALLY TEMPERED DIGITAL TO ANALOG CONVERTER

Based on a multiplying principle, the 8780 generates the exact exponential stair-step function required to make the simplest linear response oscillators and filters produce equally tempered musical intervals. 6 bits of data generate over 5 octaves control voltage. Compatible with PAIA synthesizer modules, easily interfaced to any processor with or without hand-shaking logic. #8780 D/A CONVERTER KIT.. $34. 95 (+$1 postage)

THE PAIA HIGH LEVEL LANGUAGE FOR COMPUTER MUSIC DATA ENTRY (We call it a keyboard)

An n key roll-over scanning matrix encoder tied to a 37 note AGO keyboard provides 6 bits of date and both STROBE and STROBE control outputs. Input control lines to the encoder include SCAN (starts & stops the encoder clock), RESET, START & RANDOM' making the keyboard universally applicable to all computer/processors from the largesttothe smallest. #8782 ENCODED KEYBOARD. . $109. 95 (+ freight 20 lbs)

WITH A COMPUTER

Both the 8780 D/A and the 8782 Encoded Keyboard easily interface to any processor providing capabilities and control never before possible with

.music synthesizers?

*;:W:*:***:-w:***-s~**«

WITHOUT A COMPUTER

An infinite hold, DIGITAL Sample & Hold and the heart of an entire system of modules that will be introduced over the next few months including: Memories, ionic output modules and others.

ELECTRONICS. INC.

DEPT. 6-B 1020 WEST WILSHIRE BLVD. OKLAHOMA CITY, OK 73116

23

Circle 265 on inquiry card.

COMPLETE FLOPPY DISK SYSTEM FOR YOUR ALTAIR/IMSAI $699

That's right, complete.

The North Star MICRO-DISK SYSTEM™ uses the Shugart minifloppy™ disk drive. The controller is an S-100 compatible PC board with on-board PROM for bootstrap load. It can control up to three drives, either with or without interrupts. No DMA is required.

No system is complete without software: we provide the PROM bootstrap, a file-oriented disk operating system (2k bytes), and our powerful extended BASIC with sequential and random disk file accessing (10k bytes).

Each 5" diameter diskette has 90k data byte capacity. BASIC loads in less than 2 seconds. The drive itself can be mounted inside your computer, and use your existing power supply (.9 amp at 5V and 1.6 amp at 12V max). Or, if you prefer, we offer a power supply ($39) and enclosure ($39).

Sound unbelievable? See the North Star MICRO-DISK SYSTEM at your local computer store. For a high-performance BASIC computing system, all you need is an 8080 or Z80 computer, 16k of memory, a terminal, and the North Star MICRO-DISK SYSTEM. For additional performance, obtain up to a factor of ten increase in BASIC execution speed by also ordering the North Star hardware Floating Point Board (FPB-A). Use of the FPB-A also saves about 1 k of memory by eliminating software arithmetic routines.

Included: North Star controller kit (highest quality PC board and components, sockets for all IC's, and power regulation for one drive), SA-400 drive (assembled and tested), cabling and connectors, 2 diskettes (one containing file DOS and BASIC), complete hardware and software documentation, and U.S. shipping.

MICRO-DISK SYSTEM ... $699 To place order, send

(ASSEMBLED) $799 check, money order or

ADDITIONAL DRIVES. . . $425 ea. BAor MC card#withexp.

„ _ Z. date and signature. Uncer

DISKETTES $4.50 ea. tjfied checks require 6

FPB-A $359 weeks processing. Calif.

(ASSEMBLED) . $499 residents add sales tax.

NORTH STAR COMPUTERS, INC. 2465 Fourth Street i Berkeley, CA 94710

What's

New?

A High Performance Character Display Terminal

Volker-Craig Ltd, 266 Marsland Dr, Waterloo, Ontario CANADA N2J 3Z1, has introduced a new data terminal intended for use in small business systems, timesharing and other small computer end user applications. The features of this terminal include RS232C interface at rates from 11 0 to 9600 bps, a 1920 character display (24 lines of 80 characters), 12 inch CRT display, composite video output for extra slave monitors, XY cursor addressing by computer or operator, 64 key ASCII keyboard with tactile feedback and automatic repeat, and an optional separate numeric data entry keypad. Options include upper and lower case ASCII keyboard and display, switched serial interface, parallel input and output interfaces, and custom keyboard character fonts such as APL or French. The display is the model VC303A, and the price is $1595 in quantities of one, $995 to distributors and OEM quantity buyers."

Circle 605 on inquiry card.

Here's a Product That Counts

E Barry Hilton, president of Automated Industrial Measurement Inc, POB

'

Circle 155 on inquiry card.

24

XELBi ttFCWiRE

New books... for everyone who's into their own computer. Programs. Fun. Games. Languages. Excitement.

SCELBAL, the new microcomputer language that's simpler than machine language.

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

Order your copy today! Get $^ f% started advancing your system! ^F^7

A complete language for "8008"/"8080" systems including source listings, routines, flow charts and more!

SCELBAL SUPPLEMENTS ...

SCELBAL has taken off so fast, two special supplements had to be printed. First, there's Extended Math Functions: SIN, COS, LOG (BASE E), EXP (BASE E) and ATN . . . only $5.00 ppd. The second supplement, String Handling Capabilities, includes the numeric functions LEN and ASC. It sells for only $10 ppd.

Cook up mouthwatering programs for your "8080" or "6800"!

Delectable "how to" facts, including descriptions of "8080" or "6800" instruction sets. How to manipulate stacks. Flow charts. Source listings. General purpose routines for multiple precision operation. Programming time delays for real time applications.

Random number generators. And more. You even get floating point arithmetic routines! Input/output processing for basic I/O programming through interrupt processing. And so much more, we can't list it all here. Scelbi's Software Gourmet Guides and Cookbooks for"8080" or "6800". (Specify!)

Order your copies today! $ Q95

Start cookin'! Bon Appetite. w each ppd.

ftAMW Microcomputer Outer

\MfII*IW¥ Space War Games ...

Captain your own starship on an inter-gallactic journey to adventure. Meet alien ships in realistic combat. Plan a painstaking journey filled with battles, refueling problems, weaponry, warp factors and more—all against your "8008"/"8080" or "6800" computer. Either complete book, written in machine language for 4K memory, is an ongoing, ever-changing interstellar adventure, including source listings, flow charts, routines and much more. Choose your copy today. Blast off to high adventure in outer space!

Order either GALAXY today! $

14

95

each ppd.

Prices shown for North American customers. Master Charge. Postal and Bank Money Orders preferred. Personal checks delay shipping up to 4 weeks. Pricing, specifications, availability subject to change without notice.

f CEUBI COMPUTER fONIUUlNft INC.

Scelbi Books are available in many fine Computer Stores.

Post Office Box 133 PP STN Milford, CT 06460

Circle 26 on inquiry card.

END FRONT

PANEL FIDDLING... Use a

JUMP START

4KRfiM

With a JUMP START 4K RAM

board in your Altair/IMSAI, the system will jump to any preset byte of memory after power-up or reset. Never toggle a jump to your monitor or bootstrap again! Just power-up or hit reset—JUMP STfiRT automatically transfers control to the selected address. The JUMP START 4K RAM board has these standard features:

» 4K 450 ns low power RAM

• fully buffered

• DIP switch address selection

• memory protect with POC

• battery backup connector

• fully socketed

• disabled during INTA

• optional wait state

Prices:

Kit

$145

Assembled

190

Call toll-free anytime to

place credit card orders:

800/648 5311

Prepaid mail orders shipped postpaid in USA. California residents add 6% sales tax.

Hlllllllil

MICROMATION INCORPORATED

524 UNION STREET

SAN FRANCISCO, CA. 94133

415/398-0289

Dealer inquiries invited CIRCLE NO. 242

125, Wayland MA 01778, stopped by BYTE's offices in early February, toting an Altair 8800 under his arm and an interesting peripheral which his firm has designed and is marketing. The peripheral is the AIM-1005 frequency meter, demonstrated to us mounted upon a Vector prototyping card for the Altair bus. (This was a demonstration setup; his firm will soon have a $30 card with all the connections to the Altair bus made for piggyback mounting of the frequency meter on a permanent basis.) What this $ I 78 product does for its user is provide a programmable frequency meter with 13 bits of precision, and 11 different time base ranges allowing measurement over time periods from 10 MS to one hour. The input logic has scaling counters with an upper limit of 25 MHz, so it is possible to make a quite useful general laboratory frequency meter with outputs on a computer terminal by simply driving this peripheral with a simple assembly language or BASIC program. The device is interfaced through memory address space, decoding the high order four bits of the 8080's 16 bit address bus."

Circle 606 on inquiry card.

A New Brochure

A Synthesizer Example ....

Al Cybernetic Systems, POB 4691, University Park NM 88003, has sent along some new information on their Model 1000 Speech Synthesizer, which was first described in Wirt Atmar's article in August 1976 BYTE, page 26. The picture here is the production version of this device, which is an analog model of the human vocal tract, digitally programmed with commands that correspond to American English phonemes. Since the device works with coded phonemes, the maximum information transfer rate for speech which is required is about 50 bps. The device plugs directly into the Altair bus and cost is $325, with delivery from stock.

A significant and interesting bit of literature which came with this picture was "Programming Example I," an

EDUCATION AND DEVELOPMENT MICROCOMPUTER

E & L Instruments, 61 First St, Derby CT 0641 8, has just released a new 8 page brochure describing the MMD-1 education and development microcomputer and its optional accessories. Copies of the MMD-1 brochure are available from the company, as well as its representatives and authorized dealers."

Circle 607 on inquiry card.

Altair BASIC program with an 8080 machine language subroutine for details at a low level. The program is an implementation of the well-known Lunar Lander game, but with the novel twist that the "ship's computer" tells you your present height from the surface of the planet as you land. It will run on any Altair 8800 equipped with 12 K of memory. So, what you do is plug in the Model 1000, read in BASIC, type in this program and set up its machine language support routine, then proceed to use a new mode of interaction with the computer system."

Circle 608 on inquiry card.

26

XililEDiA P=?E3EnCb

The SOROCIQ120

CURSOR CONTROL. Forespace, backspace, up, down, new line, return, home, tab, PLUS ABSOLUTE CURSOR ADDRESSING.

TRANSMISSION MODES. Conversation (half and full Duplex) PLUS BLOCK MODE — transmit a page at a time.

FIELD PROTECTION. Any part of the display can be "protected" to prevent overtyping. Protected fields are displayed at reduced intensity.

EDITING. Clear screen, typeover, absolute cursor addressing, erase to end of page, erase to end of line, erase to end of field.

DISPLAY FORMAT. 24 lines by 80 characters (1,920 characters).

CHARACTER SET. 96 characters total. Upper and lower case ASC11.

KEYBOARD. 73 keys including numeric key pad.

REPEAT KEY. 1 5 cps repeat action.

DATA RATES. Thumbwheel selectable from 75 to 19,200 baud.

SCREEN. 12 inch rectangular CRT phosphor.

P4

SPECIAL INTRODUCTORY PRICING

Kit $ 995.00

Assembled $ 1,295.00

(Price includes block mode, lower case and 24 line options.)

Specials of the Month

North Star Micro Disk

with power supply and cabinet Kit — $699

Assembled -$799 IMSAI I-8080 with TDL ZPU Kit - $825

Assembled - $975

Digital Systems FDS Disk Drive with CP/M Software (assembled only) . Single - $1,750

Dual -$2,350 Mountain Hardware PROROM Kit - $145

Assembled -$210 Vector Graphic 8K RAM Kit - $235

Assembled - $285

XIMEDIA OFFERS A FULL RANGE OF PRODUCTS FOR THE PERSONAL COMPUTER ENTHUSIAST AND THE SMALL SYSTEM DESIGNER. LET US QUOTE ON ALL YOUR HARDWARE AND SOFTWARE NEEDS.

OUR RETAIL STORE - THE COMPUTERISTtm - IS NOW OPEN IN SAN FRANCISCO. CALL US FOR DIRECTIONS.

NOW WE RE TOLL FREE

800-227-4440

in California, Hawaii, and Alaska, call collect: 415/566-7472)

XililEDiA

1290 24th Avenue, San Francisco, CA 94122 (415)566-7472 „. , „„„ . .

Circle 220 on inquiry card.

COD orders freight collect. Orders with payment shipped prepaid. Californi; residents add 6% sales tax. Please allow 3 weeks for delivery.

27

The Digital Group adds character®.

J^^

■

nj^j^jj

64, to be exact.

The Digital Group's computer systems have a lot of character already. Just one quick look at any of our products in their unique custom cabinets confirms that. But we believe it never hurts to add a bit more.

So, the Digital Group has added character in a big way to give an added dimension to the operation of our video-based computer systems. We are pleased

to announce our new TV readout with a 64-character line. It will give your system a great deal more capability. Give it more character, if you will.

Here are the specifics on the Digital Group TV Readout and Audio Cassette Interface:

1024 Character TV Readout

• 64 characters horizontal by 16 lines

• 7x9 character matrix (effectively 7x12 due to character shifting)

• IK on-board RAM for buffer storage—requires no main memory—completely independent

• 128 character ASCII

Upper case alpha

Lower case alpha with base line extenders (g,

h p, y)

Numbers and extended math symbols Greek alphabet

• Software driven cursor—forward and backward

• Compatible with most microprocessors; Interfaces with 1 8-bit parallel output port

• Timebase may be driven with an external timebase

(may be synchronized to TV camera, TV set, etc.)

• Readout timebase available at connector (can be used for graphic driver, etc.)

• White characters on black, and/or black on white; software selectable

• Plugs into standard dual 22-pin TVC connector on Digital Group Systems

Improved Audio Cassette Interface:

• Reliable FSK recording technique

• Uses standard unmodified audio cassette recorder

Write cassette system uses a digitally synthesized frequency shift system, derived from TV system's master crystal oscillator

Read cassette system easily aligned using the write system as an alignment aid.

•Runs (100 characters/second)—loads 16K in 3 minutes

at 1100 baud

512 TVC to 1024 TVC Upgrade Kit:

As always, when the Digital Group extends the capabilities of our systems, it doesn't mean obsolescence for any products. We are offering an upgrade kit for present Digital Group system owners who wish to go to the longer line length. This kit uses most of the IC's from our TVC-F readout. No unsoldering is required; all new sockets, capacitors, resistors, PC board and other necessary parts are supplied.

Prices:

TVC-64—Full 64-character TV Readout & Audio Cassette Interface:

Kit — $140 Assembled — $205 TVC-64UPG—Upgrade kit from TVC-F:

Kit — $65

If you already own a Digital Group system, our 64-character line will definitely enhance its operation. If you're just looking, you might want to keep in mind that the Digital Group has a lot of characters.

Write or call now for details on our new 64-character TV readout and all our other exciting products.

box 6528 denver, Colorado 80206 (303) 777-7133

Circle 78 on inquiry card.

Peripheral Vision

impacts

your computer.

WITH A

FULL-SIZE,

LOW-COST

IMPACT

PRINTER.

Until now, the hobbyist and small businessman have had one major problem in assembling a reasonably price microprocessor system with the capabilities found in the more costly computers. It was impossible to find a high-quality, high-output printer for hard copy needs at an affordable price.

Peripheral Vision has come up with a solution.

We are offering a full-size impact printer designed for microprocessors—and it comes with a mini price. Kit prices start as low as $495 for the printer and interface card. And that won't impact your pocketbook.

Peripheral Vision's printer is loaded with capabilities. Take a look:

• It's fast—120 characters per second

• 96 characters per line, 12 characters per inch horizontal, 6 lines per inch

• Makes up to 4 copies simultaneously

• Character set and pitch variable under software control

• 5 x 7 character matrix

• Ribbon has built-in re-inkers for a life of 10,000,000 characters

• Paper can be either a standard 81/2-inch roll, fanfold or cut page

• Interfaces to 8-bit parallel ports

Just remember, Peripheral Vision is committed to helping you get along with your computer. The new printer we are offering is another example. It is high quality, low in cost and will definitely impact your system.

Write or call now to find out how to impact your computer.

LJ/vPinc P.O. Box 6267 Denver, Colorado 80206 (303) 777-4292

Circle 194 on inquiry card.

Newt:

A Mobile,

Cognitive

Robot

MAIN IMAGE SENSOR

MOTIVE SYSTEM GEAR BOX

WALL

FOLLOWER

(RETRACTED)

«—REAR FEELER (EXTENDED)

Figure 1: The robot Newt as it will appear when completed. There are three main subsystems shown in this diagram which was supplied by the author: motive, manipulator and sensory turret. The entire machine is controlled by an on board microcomputer. The motive power subsystem is built around two precision drive wheels actuated by stepper motors. The manipulator, a simple hand capable of grasping, lifting and rotating, is also actuated by stepper motors and includes various sensors. The sensory turret at the top is a platform which includes a main image sensor, which can be tilted to look straight down or up at a slight angle using a stepping motor; other sensors are shown in outline form, and are a subject for future experimentation.

Ralph Hollis

Dept of Physics and Astrophysics University of Colorado Boulder CO 80309

In the late 1930s, a young man named Rossum began manufacturing industrial robots in a small factory on the outskirts of Prague. This venture was immediately successful and would have virtually guaranteed a second industrial revolution had it not been for a singular tragic circumstance: The robot workers became irrational and revolted. They turned on their masters and burned the factory to the ground.

Fortunately, the preceding scenario is only a work of fiction by the Czechoslovakian writer K Capek. Since Capek's coinage of the word "robot" in his 1923 play R U R it has been the subject of a great many works of science fiction, including Isaac Asimov's /, Robot and the movies

"Forbidden Planet," "Gog," "Silent Running," "Westworld" and others.

Alas, the imaginative stories of the science fiction writers have far outstripped the efforts of the robot engineers. Progress in building real robot devices has been painfully slow over the past several decades, although a few individuals and small groups have produced some very interesting results.

It is not my purpose here to review these works, but rather to describe a project with which I have been personally involved for some time: the construction of a freely moving robot vehicle which will be capable of interacting with its environment in a rational way, and managing its own survival. I he work is being done by a small group of people in the Duane Physical Laboratory of the University of Colorado. The project is being financed through personal funds, and in this sense qualifies as an "amateur" undertaking.

30

What are the requirements for such a robot? It must be able to explore the environment in some orderly manner, measure the attributes of objects and obstacles encountered, classify them according to some scheme, and incorporate them in its evolving internal world model. The world model must have a logical structure which allows modifications to be easjly made; it must be compact with respect to memory space, and it must use a design which can be consulted in some reasonable way. The roLot must be able to manipulate the world model (cognition), derive informed decisions from it, and carry out these decisions in physical action to achieve broadly defined goals.

Figure 1 is a general view of the robot as it will appear when completed. Practically speaking, it resembles less a mechanical man than, say, a shop type vacuum cleaner. The machine is cylindrical, about 36 cm (14 inches) in diameter and 76 cm (30 inches) in height, weighing approximately 27 kg (60 pounds). All rigid mechanisms lie within the cylindrical boundary or can be retracted within the boundary if necessary. This design greatly reduces the number and diversity of senses required. The robot will be fitted with a smooth cylindrical skin (not shown), removable in sections for easy inspection and maintenance. Modular construction is used in the robot wherever possible. There are three main subsystems: motive, manipulator and sensory turret. These are presided over by an 8080 based microcomputer with 8 K bytes of EROM and 24 K bytes of programmable memory. The entire system is powered by a 6 V, 84 amp-hour storage battery.

How the Robot Gets Around

The robot is given locomotion by two main diametrically opposed drive wheels. A third (unpowered) castoring wheel is located at the rear. This motive geometry has been successfully employed in several other robot vehicles constructed by other groups, and has been in use in the author's robot research since 1957. The vehicle's center of gravity is located well aft due to the placement of the battery and other heavy components, obviating the need for a front wheel. The wheels are constructed of aluminum with neopreme O-ring tires. The main wheels are driven by stepping motors through precision 3:1 gearing. A single command step rotates a wheel 0.6 degrees, so there is a total of 600 steps per revolution. If both wheels are moved in the same direction, the vehicle travels forwards or back

wards in a straight line. If the wheels are moved in opposite directions, the vehicle executes a perfect rotation about its vertical axis. By stepping the wheels at different rates, a circular trajectory is approximated having a radius which can range from zero to infinity. The hardware and software necessary to drive the stepping motors are discussed in some detail later in this article, since they have very general application.

The robot navigates principally by open loop dead reckoning. That is, it depends largely on the precise control of the wheels during acceleration, deceleration, and constant speed motion to achieve accurate positioning of the vehicle. The robot's position and azimuth relative to a fixed origin are computed at the end of each motion segment by counting stepping motor increments and using trigonometry. The precision attainable is limited principally by wheel slippage, unequal wheel diameters, nonplanar floors, round-off errors, and step quantization. In practice, all these errors are small for short distance movements.

The robot's excellent open loop performance makes it unnecessary to have continuous closed loop servo systems, such as have been extensively employed in other robots. For example, consider the problem of having a robot view a small object on the floor a short distance away, and then go pick up the object. One approach would be to have the robot continuously view the object as it moves towards it, adjusting its motion in a continuous way to converge on the object and pick it up. In this approach, a rather crude motive system would suffice, since errors are always nulled. A heavy load, however, is placed on the sensor-computer system. An alternative approach, the one followed here, is to have the robot view the object once, and then compute exactly how to move to the object and pick it up. When the computation is completed, the machine simply carries out the proper motions in a blind fashion. There is a greatly reduced strain on the sensor-computer system, at the expense of having to build, rather precise motive machinery. Of course, this approach assumes the relevant environment will remain fixed for the duration of the task.

In this general spirit, by using high precision open loop movements throughout the robot, only intermittent feedback through the senses is 'required to close the control loop. In this way, the overall complexity of the robot can be kept at a reasonable level, allowing the required computations to fall within the abilities of an on board microcomputer. '

Epistemological Engineering

With artificial intelligence, robotics and applied cybernetics coming of age through the recent progress in the fabrication of computer systems, it is quite likely that the branch of philosophy called epistemology will have a much more explicit role In technology during the coming years. Epistemology Is the study of nature and grou/ids of knowledge; understanding of epistemology , is crucial to any attempt to realistically implement artificial intelligence systems. So in a future world of cognitive automata and advanced information systems, we may Indeed find the new specialist who is the "epistemological engineer."

31

Scanning the Environment with Electronic Senses

The sensory turret (see figure 1) provides a general platform on which to mount various senses, some of which might be quite experimental and temporary in nature. It can pan a full 360 degrees, and a small section containing the main image sensor can tilt from approximately 30 degrees above horizontal to 90 degrees below horizontal. Both of these motions are controlled by stepping motors. The main image sensor has a motorized focus control. The geometry of the "hand-eye" system allows orthogonal views of objects held in the manipulator jaws by using both image sensors under conditions of controlled focus and lighting.

Each image sensor is a 32 by 32 element integrated array of photodiodes on a silicon chip measuring approximately 4 mm (0.1 inch) square. The array acts like a 1024 bit memory. Each element is precharged to a fixed voltage; then at some later time the voltage of each element is read out, decreased in proportion to the amount of light which has fallen on it. Several milliseconds are required to digitize the image. Up to 16 levels of gray can be discerned, which means that 512 bytes of computer memory are sufficient for a single image. Once the image is obtained, it is analyzed by appropriate software. The extremely small size of these solid state image sensors, and the simplicity of their associated electronics, make them ideal for robot use. Higher resolution devices such as charge coupled sensors and miniature television cameras are available, but their cost and complexity make them unattractive for such applications. Besides, the amount of data generated would be too unwieldy to handle with a microcomputer.

In addition to the main image sensor, several simple phototransistor light sensors are mounted on the tilting platform of the sensory turret. These enable the robot to locate and track point sources of light.

Several other proposed senses are to be mounted on the turret. These are shown in schematic form in figure 1. To the left of the image sensor is shown an ultrasonic ranging transmitter and receiver which should be extremely useful for finding the range to walls at distances as great as 10 meters (33 feet). The idea is to transmit short bursts of 40 kHz sound and measure the time required for an echo to be received in order to compute the distance. Much of the necessary circuitry is available in compact integrated form.

Just to the right of the image sensor is shown a long wavelength infrared radiation detector with which it might be possible to

locate sources of heat such as dogs, cats and humans.

Located on an axis perpendicular to the main image sensor are shown two microphones which form part of a sound location system. The intent is for each sensor to acquire a short sample of sound. The computer then attempts to find a phase relationship between them, thereby locating the direction of the source.

Many other possible senses can be imagined; the sensory turret is intended to provide a versatile platform and interface for experimenting with them. For example, using a helium neon laser, or perhaps a compact metal vapor laser, it may be possible to provide an optical range finding system with high resolution if a suitable detector can be found. Eventually it is hoped to provide limited forms of speech synthesis and phrase recognition (using off line electronics with an analog radio link). This would make it possible to give general spoken commands to the robot in contextual surroundings, and have verbal feedback to insure that the commands were being properly interpreted.

Sharing some space with the sensory turret system, and directly below the platform in figure I, is the necessary power conversion electronics. These modules convert the battery voltage to ±12 V and +5 V (regulated) for use by the electronics, and also house the battery recharging circuitry.

Manipulating Objects in the Environment

The number of tasks which a simple robot can do is greatly increased if it has some sort of hand with which to grasp and manipulate objects in the environment. The human arm and hand system, with its 27 degrees of freedom, is a marvelously versatile mechanism. Large industrial manipulators are fairly complicated and have six or seven degrees of freedom. For practical reasons, the present system is limited to a mere three degrees of freedom which, when combined with the two degrees of freedom of the motive system, should be sufficient for carrying out simple tasks.

The manipulator is able to grasp objects, move up and down along the front of the robot by means of a rack and pinion drive, and to rotate about a horizontal axis. All three motions are controlled by stepping motors. The manipulator has a parallelogram geometry which permits the jaw faces to remain parallel regardless of their separation. This feature simplifies the problem of picking up objects of varying sizes. When not in use, the jaws open wide enough to bring all

32

parts of the manipulator within the cylindrical boundary of the robot, where it is out of the way and does not cause problems when the robot turns and maneuvers in tight places.

An auxiliary 32 by 32 element image sensor with fixed focus lens is mounted directly in the manipulator assembly, providing a view of whatever object is between the jaws.

In addition to mechanical force sensors in the jaw faces, there are several infrared LEDs in one face with opposing phototransistors in the other face. These LED phototransistor pairs define beams of light between the two jaw faces. By scanning the manipulator up and down, and moving the entire vehicle forwards and backwards, these beams enable the robot to measure the height and depth of simple objects resting on the floor between the jaw faces, as well as to determine when objects are correctly positioned for picking up. The widths of objects are measured directly by counting the number of stepping motor pulses required to close the jaws on the object.

A tactile sensor is mounted on the front of each jaw to enable the robot to sense and locate large obstacles such as walls. The robot can align itself accurately either parallel or perpendicular to the wall, after performing a simple series of maneuvers. This action is convenient for many of the tasks the robot might have to carry out. For example, a simple strategy of maneuvers allows the robot to "square itself off" from a corner in a room, thereby defining a precise origin for its navigational coordinates.

The tactile sensors double as electrical contacts used for plugging into ordinary wall outlets for the purpose of recharging the robot's battery (more about this later).

All electrical power and signals to and from the manipulator assembly are sent through folding ribbon cables which are not shown in figure 1.

Auxiliary Senses

In addition to the senses mounted on the manipulator and sensory turret assemblies, there are several auxiliary senses illustrated in figure 1. A pair of retractable feelers are provided in the rear of the vehicle and serve much the same purpose as the tactile sensors on the manipulator jaws. These rear feelers enable the robot to detect and square up from walls and corners if the manipulator is occupied with holding some object.

In addition to the rear feelers, a pair of retractable wall-follower feelers located on the sides of the vehicle enable the robot to

travel parallel to a wall by measuring the distance from itself to the wall. The rear feelers and the wall-follower feelers are both activated by double coil latching solenoids and contain "microswitches" consisting of movable masks and infrared LED-phototransistor pairs.

For all of the robot's varied and specialized senses we have discussed so far, there is nothing to prevent the robot from accidentally running at high speed into a wall. To prevent just such a mishap, and to provide a "soft" broad area "sense of touch," the robot is equipped with a number of proximity detectors, several of which are shown in schematic form in figure 1. These detectors work on a simple, but elegant, principle. Infrared LEDs, amplitude modulated by a 20 kHz signal, send broad beams of light out from the robot. If a wall is nearby, some of this light is reflected back into phototransistor sensors located in the same module. The received signal is amplified and sent to a phase sensitive detector locked to the outgoing signal. The computer is notified if the signal exceeds some programmable threshold. These proximity detectors are quite insensitive to ambient light conditions, not very sensitive to the color or texture of the reflecting surface, and have useful ranges extending from several centimeters to perhaps one meter. With these detectors, the robot is free to travel at fairly high speed until a wall or other obstacle is encountered, and can then slow down and investigate it with caution.

It should be mentioned that all of the senses interact with the processor through a vectored priority interrupt system.

Robot Psychology

Up to the present time, the environment of the robot has been intentionally restricted. The robot is permitted to roam freely within a large "playpen" constructed of plywood. As various sensory functions are added, and the robot nears completion, simple objects such as blocks of wood, and larger obstacles constructed from plywood will be introduced, and restrictions on the environment will be gradually relaxed. While this is happening, the complexity of the software will greatly increase. It is expected to take several more years of effort before the robot reaches a form which can be considered "finished." Whether the robot will ever be able to cope successfully with a "general" environment, such as a typical research laboratory or home living room, is certainly an open question.

The software will be developed as a hierarchy of modules. The bottom strata of

33

/

Photo I: The feeding trough. This is a photograph of an ordinary wall outlet with a white concrete block wall as a background. The robot must be able to, seek out and plug into outlets such as this in order to periodically replenish its energy supply.

this hierarchy will be occupied by hardware oriented routines for motor control, interrupt servicing, sensory data acquisition and the like. These routines will be relegated to EROM, where they will reside as powerful appendages for the higher level software. In the highest reaches of the hierarchy will be the planning algorithms: heuristic programming which will take into account goals, subgoals, behavior, the structure of priorities, and what may generally be called the "psychology" of the robot.

If the robot is turned loose in a strange room, its immediate behavior will be to begin exploring the room in some systematic way, locating walls and the boundaries of objects with respect to a specific origin. As new features of the environment are encountered, they will be incorporated into the world model. Particular interest will be shown in the positions and heights of recognizable wall outlets, since these are critical for survival. As the model of the room nears completion, the original intense curiosity will subside, and will be replaced by an attitude of playfulness. The world model will be consulted to find out which objects (eg: wooden blocks) are small enough to be manipulated. The robot may choose to group together objects with similar characteristics, build simple structures by stacking blocks and so forth. When the energy supply nears exhaustion, the robot will interrupt its play, head directly for a convenient wall outlet, plug in, and recharge its battery. The recharging process might take several hours, during which all motors will be turned off, and all but one 4 K byte memory module will be powered down. After recharging, the

robot will unplug itself and continue on its way. When the robot eventually "tires" of its environment, it will perhaps leave the room, wander down the hallway, and look for other rooms to explore. An interesting experiment would be to observe how long it takes for the machine to recognize a room in which it is arbitrarily placed, but has previously explored. In addition to observing general behavior, one can give the robot general tasks to perform, such as picking up all small objects in a cluttered room and placing them in a box in the corner. (Mothers with small children, take note!)

Many of the computing requirements for the robot will exceed the capabilities of its on board microcomputer. For example, the analysis of complicated scenes viewed by the image sensors can, at present, be done only by a very fast computer with lots of memory. For this reason it is planned to equip the robot with a duplex radio telemetry link to a "black box" which connects with a telephone. The robot will then be able to initiate telephone calls to a large timeshared computer, and be able to communicate with it via the 2400 bps telephone lines. Control routines in the on board microcomputer will invoke large analysis programs stored on permanent disk files attached to the timeshared computer.

A visual scene can be transmitted in less than a second, and the large computer can extract features of interest and send them back to the robot in several seconds. It will also be useful to take advantage of the off line disk files to store large data bases such as portions of the world model. When the robot has finished its transactions with the

34

large computer, it simply "hangs up the phone" and goes about its business, perhaps reinitiating the hookup at a later time. It is important to point out here that in no sense is the large computer "in control" of the robot. The robot is simply using the services of the large computer to perform calculations that are too involved or too lengthy to do itself, much as you or I would use a computer to solve some problem. Also, it should be noted that if the large timeshared computer is busy, or if the computations are long, the robot is free to continue with other tasks until the requested analysis can be performed.

This usage of an off line timeshared computer will permit access to a large amount of general robot planning software written in high level languages by other groups. The telemetry hookup will, as a side benefit, enable the robot to make calls to human researchers (hopefully not in the middle of the night) to report malfunctions or unusual conditions in the environment by means of coded audio signals. (The robot night watchman?)

Finding Energy Sources

It may be necessary for the robot to survive for weeks at a time without supervision or interruption of its operation. To do so, it must manage its own energy supply. The battery voltage and current are sensed periodically and converted to digital form by a simple software driven analog to digital conversion system. This information, along with the battery's internal temperature (sensed with a thermistor probe), allows the state of charge to be determined. When this reaches some minimum level, the robot is obliged to renew its supply of energy by finding a wall outlet and plugging in.

From the outset, it must be said that the robot will depend heavily on preprogrammed strategies to accomplish this task. A standard wall outlet mounted on a white concerete block wall is shown in photo 1. The cover plate is of brushed stainless steel, and the receptacles are made of light colored molded plastic. From a distance of perhaps 10 meters (33 feet), with the turret image sensor focused on infinity, the "outlet appears as a small spot. Any such spot, identifiable by the software as a few dark picture elements surrounded by a light field, is worth further investigation. If several spots are visible, a single one will be selected for closer examination.

Using the motive system and the sensoiy turret in combination, the direction and distance to the spot is then computed by triangulation. After this is done, the robot

Photo 2: Here is an oscilloscope display of the wall outlet shown in photo 1, as viewed by an image sensor. Theie aie a total of 1024 picture elements in this sensor, each with 16 levels of gray perceptible to the computer. The picture has 32 columns and 32 rows of elements. The outlet appears as a dark rectangle with a light background. The two receptacles can just be resolved at this range.

Photo 3: As the robot moves closer to the wall outlet, more detailed features of the socket become apparent. This is an oscilloscope display of an individual receptacle, as viewed at close range by the image sensor. By applying pattern recognition techniques to images such as this and the image in photo 2, the robot can recognize outlets and determine the exact position and height of the electrical contacts, prior to its final maneuver to plug itself into the wall.

35

CONTROL \ MEMW 0~

(D7 C

|_(SIGN BIT

)

A3 £>■

8080 ADDRESS ( BUS

A2 O

L^

A0 O

s>

AI5 |_^>

(I/O SELECT)

74L04I4) 5 \ 6

l>

>—H>

74LS04(4) 5 P\ 6

i>—•■>

{>"t>

^—

^S^ 12 13 \.

> 1>

^O

/z7

07 06 05 Q4 03

9334 02

01

E - 00

C

A2 Al A0 Gl

G2A G2B 74LSI38

Y7 Y6 Y5 Y4 Y3 Y2 Yl Y0

D07 D06 D05 004 D03 D02 D0I

>LEVEL OUTPUTS

P06 P05 P04

>PULSE OUTPUTS

Figure 2: Output decoding logic used to create discrete (level) outputs and pulse outputs. This circuitry connects to an 8080 data bus through memory address space. The outputs are used to drive the various lines of stepper motor interfaces such as those shown in figure 3. Each stepper motor individually uses one discrete level output (for forward or reverse direction control) and one pulse output (to initiate one step sequence). Two discrete level outputs are also used to control the running versus standby, or off, status of the motors.

drives to the approximate position of the spot, and with LED proximity sensors and the tactile sensors on the manipulator, it attempts to sense and recognize the existence of a wall, which is hopefully associated with the spot. If this is the case, the robot moves out perpendicular to the wall for a fixed distance, sets the image sensor focus accordingly, and rescans for the spot which hopefully should now begin to have the shape of a wall outlet from this short range. By a series of small maneuvers, the robot positions itself exactly in front of the outlet at a precise distance away. At this time, the manipulator begins a vertical motion until the outlet is centered in the field of view of the auxiliary image sensor. The computer now has a straight on, in focus view such as that seen in photo 2.

At this point, fairly simple pattern recognizing algorithms are used to analyze the shape, size and topology of the image (feature extraction). These features are compared with known properties of wall outlets. If enough features match within certain error bounds, the recognition is successful. (In this respect, it is much easier to attempt to recognize a specific object than to try to analyze a general scene.) If the recognition is not successful, several more attempts are made at slightly different distances to over

come the granularity effects of the sensor. If a recognition is still not successful, the robot heads off to explore other spots. Assuming success at this point, the robot moves in for a high resolution image of a single receptacle (see photo 3). Again, the image is analyzed, and further recognition tests are made. If everything is okay, the exact height and distance to the electrical contacts are determined, and the manipulator jaws close to the separation appropriate to the space between the two contacts. An attempt is now made to plug in, with the computer monitoring the voltage between the two plug prongs on the manipulator. Small searching motions are made until contact is established, whereupon the jaws open slightly to make good electrical connections. The computer then directs the recharging operation until the correct charge is reached. It is expected that the robot will normally be able to go about six hours between recharging operations.

Stepping Motor Drives

In order to execute all of the motions required of it, the robot must have precise control of the motors. This is accomplished by means of the stepping motor drive modules which constitute the interface between the on board computer and the stepping motors. There is a total of seven

36

identical drives: two for the motive system (one for each wheel), three for the manipulator (grasp, lift and rotate), and two for the sensory turret (pan and tilt).

Figure 2 illustrates the logic used to provide both pulse and discrete (level) outputs from the computer. For simplicity, only eight pulse outputs and eight discrete outputs are shown. The scheme can be expanded to many more outputs, with the addition of suitable logic. Low power TTL provides the connection to the address, data and control buses of the microprocessor. Lines Afj to A3 select one of 16 possible outputs, with A15 acting as an input output select line. The sign bit, D7, is used to signify whether a one or a zero will be written into the selected discrete output line. Generation of the negative going output pulses and strobing of the data are done by the MEMW pulse. A 9334 addressable latch and 74LS138 binary to octal decoder provide the outputs to the system. If desired, one pulse output can be wired to the CLR line of the 9334 latch for simultaneous resetting of all the discrete outputs.

Figure 3 shows an individual stepping motor drive circuit which is sufficiently simple and general to permit many other nonrobot applications where precise computer controlled motion is required. The circuit generates the 4 phase pulse sequence of high currents necessary to operate a Slo-SynTM bifilar type stepping motor manufactured by the Superior Electric Company. Inputs to the stepping motor circuit are connected as desired to the discrete and pulse outputs shown in figure 2. The forward or reverse input (FR) determines whether the motor shaft turns clockwise (FR ~ I) or counterclockwise (FR = 0) as viewed from the shaft end of the motor. The forward limit input (FL) prevents the motor from moving forwards (clockwise) if FL = 0. The reverse limit input (RL) prevents the motor from moving backwards if RL = 0. These inputs are generally not controlled by the computer, but are wired to simple limit switches to prevent excessive motion of the motor in a particular direction. In the case of the robot, these "reflex inputs" are independent to allow the computer to change the direction of motion after a mechanical limit has been reached, and to establish "zero point" settings for the various possible motions. The pulse input (P) triggers on a negative going transition and causes the motor to advance one step (1.8 degrees) in the direction specified_by the FR input. Thus, 200 pulses on the P input cause the motor shaft to rotate exactly one revolution. The maximum pulse rate is of the order of several hundred pulses per second without error, but this

depends strongly on the motor size and the driven load. The clear input (CLR), when momentarily brought low, resets the counting flip flops to zero in case it is necessary to establish a standard shaft position when power is turned on. The off input (OFF), when brought low, removes all current from the motor windings, and frees the shaft except lor a small holding torque caused by the permanent magnets. If OFF = 0 and standby (SBY) is brought high (SBY = 1), the shaft position is maintained, but at greatly reduced current. The off and standby inputs are critical for application in the robot, since they permit substantial power savings. In figure 3, series 7400 logic can be substituted for the 74L and 74LS series if desired, but at the expense of extra power. Resistance values in the drive circuits are typical, and might need to be optimized for a particular motor. The diodes in the emitter circuit of the 2N3055s should have a high surge rating, and moderate heat sinking for 2N3055s is advised.

Connections to a Slo-SynTM stepping motor are shown in figure 4. In the robot, all motors arc powered directly from the main 6 V battery (+MV). Values for the resistance R can vary from zero lo several ohms and are selected to be compatible with the motor's maximum current rating and dynamic characteristics.

Robot Control: Software Aspects

The previous discussion dealt with several general and specific aspects of the robot system and how it is intended to operate, once completed. Of the three major subsystems, motive, manipulator and sensory turret, only the motive subsystem is fully operational at present. The others are in various stages of detailed design and construction. Photo 4 reflects the current state of construction, which includes several temporary items such as the hand wired computer backplane and stepping motor drive modules, the crude "hand" made from sheet metal, and the cables leading to conventional power supplies. The 16 kg (35 pound) battery is on board to maintain balance, but not used, awaiting completion of the power conversion electronics. The open area at the front of the robot will be taken up by the manipulator assembly when it is completed. The power conversion modules and the sensory turret will go in place above the computer.

Software for the robot is created on the CDC-6400 computer using an 8080 cross assembler written in FORTRAN IV by Robert Mitchell. Object code for the 8080 is punched on 8 level paper tape by the 6400

37

Figure 3: Each stepper motor (there are seven presently incorporated into Newt's design) requires a drive circuit as shown here. This circuit contains counting logic and high current drivers needed to create the 4 step sequence of signals required by a

•-^Wv-I HW^

a,0 ID CO _

^ Q Q 6 6

-—• 1 -I c\i| o- ml m °I 2 £!l

in <-*A^—11

It* at it o o o §

o

=» "■ "- ^

5

a:

o o ° °

tr

2 ^ Lj. UO^OO

Q. LU

i

— oj ro <}■

m<—Vv\—l i

ccm' 5 DC S S uj o c£> £!£!

OU llO

u. tr _

o

OU. _J

li 1 LU =1

oa-i

Z LL u - _ LU LU ^ If)

a:

stS

O 5Z

a: =ui

U 1 Ul

1 tt Z) Q.

_j

„o

2Z

■Tq:

oo

W|_

SE:

oo

m2

<s

i-uj

*d

z

<

cc

o

a:

UJ

5

o

0.

<r

UJ

5

o

_i

OUES

3QUE

£ o

p ►

IU z

> —

o U Si

■* ox

OK

5^1

gdE

o u- o

s -»■

f- a z

Ol?

URN

OTC AIN

<

r

1

ifi

1- S 5 X

(J

h

Ll

o - o

0

u

vr

in

*

m

o o

o

(n

a.

38

Slow-SynTM stepping motor. The inputs to this interface circuit include one level (FR) signal and one pulse signal (P) derived from an output port such as the one shown in figure 2. The forward and reverse limit inputs are used to override commands when a sensor detects that rotation of the motor has reached some mechanical limit of the motor's activity. The power control logic (summarized in the chart) is used to conserve battery power by allowing a "standby" mode for the motor when it is not being actively driven. This standby mode holds the motor shaft positon actively, but uses less current than the full torque state used to move the shaft from step to step.

system, and is subsequently read into the robot's memory through an ASR33 Teletype. A modest resident monitor program is stored in the first 666 bytes of EROM, which allows dumping and modifying of memory, punching and reading of paper tape, and branching to any memory location. The monitor is essential, because the computer has no conventional "front panel" with switches and lights.

The current robot control program occupies about 1000 bytes of programmable memory, not including table areas of variable size. It provides a method for exercising direct control of the robot for testing purposes. The coding, written by Dennis Toms, is very general, modular and compact. In order to start and stop the stepping motors without error, it is necessary to provide a profile of acceleration and deceleration. This is most conveniently done by using a time-delay table giving the appropriate time intervals between stepping motor pulses. The table is precomputed to yield a uniform acceleration over some time period. It is sufficient to have a single table for all motors. Each motor has associated with it a 14 byte motor status word (MSW) whose format is given in figure 5. The motor number and motor flag each occupy one byte; the other entries are two bytes (one word) each. The motor number byte is a fixed number which associates the MSW with a particular motor. The motor flag byte is a code which gives the current state of the motor (off, on, standby, accelerating, decelerating, emergency stop, etc). The speed pointer word is an index which points to the current entry in the time delay table. The top speed word specifies the index to the delay table entry, giving the shortest permissible delay between stepping motor pulses (maximum motor speed). The total steps word specifies the number of steps the motor is to execute. The acceleration, constant speed and deceleration counters specify the number of steps to be taken in the acceleration, constant speed and deceleration phases of the motion, respectively. These counters are decremented appropriately as the motion takes place, so that if necessary, at any time during the motion the state of the motor can be determined by

CABLE

FROM

MOTOR

DRIVE

CIRCUIT

(FIG. 3)

o

GREEN/WHITE

o

GREEN

1 VW

/77 1 vw

o

RED

o

RED/WHITE

Figure 4: Wiring and color code for the Superior Electric Slow-Syn TM bifilar stepping motors. The resistance R should be set (see text) to reflect typical operating characteristics of the motor's use. The wiring is shown by color designations, and is connected to the drive circuit of figure 3. The ground return to figure 3 can be via the robot's chassis or through an additional circuit in the cabling.

interrupt handling routines. After all bytes of the appropriate MSW have been loaded with proper values, low level software takes over to carry out the motion. A pulse is issued to the selected motor causing it to advance 1.8 degrees. After a delay specified by the first entry in the delay table, a second pulse is issued, and the speed pointer is incremented to point to the second value in the delay table, and the acceleration counter is decremented. This process continues until the acceleration counter reaches zero. When this occurs, the acceleration phase is complete and the constant speed phase is entered. For this phase, the speed pointer is

Figure 5: Format of the motor status word. There is one motor status word allocated to each stepper motor; an interrupt driven process updates and times the operations of the motors. The information includes motor identification, status flags and parameters which specify the details of a cycle of operation consisting of acceleration, constant running speed and deceleration.

Motor Status Word (MSW)

Motor Number

Motor Flag

Speed Pointer

Top Speed

Total Steps

Acceleration Counter

Constant Speed Counter

Deceleration Counter

39

Photo 4: The robot Newt as it appears In the current state of construction. The hand wired computer backplane and stepping motor drive modules and sheet metal "hand" and power cables to an external source are all temporary.

held fixed, pointing to the time delay value corresponding to the top speed index, while the constant speed counter is decremented for each step. After the constant speed phase is completed, the speed pointer is decremented for each pulse, causing the motor to decelerate. The motor finally stops after a number of pulses have been issued equaling total steps. The motor is then placed in

standby condition and this fact is stored in the motor flag byte. If unforeseen conditions arise which make it inadvisable or impossible to complete the motion as planned, the interrupt software stores the appropriate emergency stop code in the motor flag and the motor is halted. In all but extreme emergency cases requiring instant stopping of a motor running at high speed,

40

the software can recover the total number of steps actually taken, saving it for navigational purposes.

To exercise direct control of the robot, a simple interpretive command system was developed. The currently implemented commands are listed in table 1. Each command consists of the 1 byte ASCII character F, B, L, R, W, V or Q, followed by a 2 byte argument. In the case of the F, B, L and R commands, the argument is simply the number of motor steps to be taken (less than or equal to 215 — 1), For the W command, the argument is the waiting time in units of 10ths of a second. For the V command, the argument specifies the new maximum speed of the robot in steps per second. For the Q command, the argument gives the 16 bit address of a sequence of commands stored in memory. Of course, many other commands, such as those appropriate for sensory turret and manipulator motion, will be added to the list of table 1. A program of robot activity consists of a simple sequence of these 3 byte commands, one after the other. For example, the following 15 byte sequence (arguments shown in hexadecimal notation):

F0A10 L000B B0010 W0066 B0002

would cause the robot to move forward 2576 steps (about 1.4 meters), turn left 11 steps (a few degrees), back up for 16 steps, stop and wait for 10.2 seconds, and then back up two steps. All accelerations and decelerations are taken care of automatically by the lower level software.

Commands can be given to the robot in several different ways (command modes) which are specified in table 2. For the D mode, the robot simply executes the commands directly as they are entered on the Teletype. After each command is given, it is necessary to wait until it is carried out before entering another command. In the R mode nothing is executed, but each command is recorded in sequence in the memory. The N mode is a combination of the D and R modes. It permits a sequence of commands to be recorded as they are being executed. The P mode allows playback of any previously recorded sequence. In this mode, the Teletype cable can be disconnected to allow the robot to roam freely. If the C mode is specified, the robot creeps along at a very slow pace under an F, B, L or R command for an indefinite number of steps. The motion is terminated by de

Table 1: Currently implemented commands. The demonstrations of operation seen in photo 5 were created using an interpretive sequence including these seven basic commands. The command list is open ended in that many additions to the possible operations are expected as the software is developed further.

ASCII Command Code

F B L R W V Q

Command Definition

Move robot forward

Move robot backward

Rotate robot left

Rotate robot right

Make robot wait

Set robot maximum speed

Execute command sequence

pressing any key on the Teletype, after which the number of steps taken is printed out. The T mode is a combination of the C and R modes. The E, L and O modes are "bookkeeping" in nature, and permit erasing, listing, and setting the origin of a command sequence, respectively. During the creation of a program of action for the robot (command sequence), any combination of modes can be used as desired. It is easy to think of many other useful modes which could be added to the list of table 2.

Using the commands listed in table 1, it has been possible to do a number of preliminary experiments with the robot which serve to test both the hardware and software, and to prove some of the fundamental ideas. For example, one can place wooden alphabet blocks on the floor at random, and then program the robot (using the N and T modes) to "pick them up" by trapping them in its temporary "hand." After putting the blocks and the robot back in their initial positions, the playback (P) mode can be used to repeat the motions automatically. One such test, rather in the form of a demonstration, is shown in photos 5a to 5g. In the first frame, photo 5a, the robot is moving towards the nearest block from its

Table 2: Command modes for the robot. The software presently implemented is used to try out various exercises of the robot's machinery. The software is structured into several command modes described by this list.

Command Mode D

R N P C

T E L O

Type of Operation

Direct (simply execute the commands)

Remember (record commands)

Normal (combine D and R)

Playback (run through a command sequence)

Creep (directly execute motions at a turtle's pace)

Teach (combine C and R)

Erase

List

Set origin

41

(a)

(b)

(c)

(d)

Photo 5: A program of action executed by the robot. In this sequence, prearranged blocks are pushed to appropriate locations to spell out NEWT, which is the robot's name.

(a) The robot's actions start with its movement from an initial position in the left corner of the playpen toward its first block.

(b) As it closes in on the block, it maneuvers into position to entrap the block. Note that in this prearranged course, the robot is executing a fixed sequence of interpretive commands, and is not yet using visual inputs to find blocks at arbitrary positions.

(c) After trapping the block and moving to the final position, Newt releases the block at its final position.

(d) Here, a second block has been fetched and released next to the first block, and Newt is turning around in order to head for the third block.

(e) Now Newt is ready to pick up the third block in the sequence.

(f) A fter placing the third block and going to the fourth, Newt has picked up this last block.

(g) Finally, the fourth block has been placed, completing the spelling of Newt's name, which is the end of the programmed sequence of approximately 100 interpretive motion commands.

42

(e)

(f)

initial position in the left corner of the playpen. In 5b, it is maneuvering into position for "picking up" the block. In 5c, the block has been picked up, moved and released in a new position. In 5d, a second block has been fetched and placed next to the first block, and the robot is turning around and heading for a third block. In 5e, it is about ready to pick up the third block. In 5f, the third block has been placed, and the fourth block is in the "hand." In the final frame 5g, the fourth block has been placed, spelling out N E W T, which is, of course, the robot's name. Approximately TOO 3 byte commands were required for this sequence. The program can be executed dozens of times without errpr, and the final positions of the blocks and the robot after the sequence is finished has a scatter of a few millimeters (±1/8 inch) in each direction. Of course, when the robot is complete with all its senses, it will seldom have to execute such a lengthy sequence in a completely open loop fashion. Perhaps it can eventually do tasks such as searching for and finding specific alphabet blocks in a random pile of blocks. This would require frequent closing of the feedback loops through the visual senses.

As the robot goes through its motions, such as depicted in photos 5a to 5g, it seems to possess an almost uncanny grace and precision. Small children, when watching it, are frightened at first, but this soon gives way to playful interest and warm curiosity. Even hardened computer experts are amazed to see a computer driving itself around on wheels!

(g)

Some Personal Remarks on Building Robots

It will not be possible for one person alone to write the software for the robot. This is far too large a job. It is hoped, however, that as the hardware nears completion, it will act as a focal point for many persons wanting to experiment with the robot by writing their own software. A

43

fascinating project would be to create a general "Robot Control Language" which would free each programmer from the details of the hardware. What a rich experience it would be to work together, exchanging ideas in a highly interactive way. There are many tutorial possibilities for computer

science classes and beginning student!

KaiMMi;:.; tlUUUL cui M(JU lui :>. iiicic tiic piuu

lems in psychology, procedural languages, human-to-machine communication, functioning of parts of the brain . . . (Working with robots is certainly one way to gain a much greater appreciation for the complcx

SOME TERMINOLOGY

Amp hour: A unit of energy for rating batteries. The battely of NEWT, with its 84 Amp hour capacity, can store enough charge to drive a steady 1 A load for 84 hours, or a 14 A load for six hours. The finite capacity of any practical battery means that any mobile robot must incorporate some programs for seeking electrical outlets and recharging batteries periodically.

Azimuth: As used here, an angle relative to a fixed direction in the horizontal plane.

Cognition: As Webster has it, this is "the act or process of knowing, including both awareness and judgement." [Webster's New Collegiate Dictionary, 1976 edition.7ln the context of robots and artificial intelligence, this term refers to programmed models which approximate the behavior of natural cognition.

Degrees of freedom: The state of a robot mechanism (or any other system) can be described by specifying the current value of each variable parameter. Thus, if a robot arm has seven joints, the position of its "hand" might be determined by the angular setting of each joint. Each such independently variable parameter of a system is called a "degree of freedom," so the seven jointed arm would have seven degrees of freedom.

Heuristic: A heuristic computer program is one which starts out with an approximate method of solving of a problem within the context of some goal, and uses feedback from the effects of the solution to improve upon its own performance. Heuristic programming is one of the major contemporary artificial intelligence techniques, and is a key to developing a cognitive robot.

Manipulator systems: A generic term for any mechanical device which a robot uses to directly manipulate its environment. In the NEWT robot, this is currently (see photos) a simple sheet metal frame which can catch a block and slide it across the floor as the robot moves, with no active grasping; NEWT is intended to eventually have a much more flexible system of manipulation as described in the text. Most industrial robots currently in use consist of manipulators alone, without much in the way of sensory feedback or motive systems.

Motive systems: A generic term for the mechanisms used to convey the robot around its environment. In the NEWT robot, this refers to the two drive wheels, balancing caster and stepper motors which propel the robot.

Open loop, closed loop: A closed loop system is one which operates with feedback from errors. The feedback is intended to correct for the errors and thus approach the truth; an open loop system ignores error signals and operates on the sometimes

naive assumption that no errors occur. The terms must be qualified by a reference to the time intervals involved in the system: NEWT, for example, is a closed loop system over long time periods, since it is intended to navigate using feedback from its sensors; however, due to the processing loads associated with sensors, NEWT operates open loop between navigation sightings in a manner analogous to the dead reckoning method of navigation used occasionally by airplane pilots or captains of ships.

Round off errors: In operations such as addition, multiplication or calculating transcendental functions, there is often some uncertainty in the least significant part of the result. In an extended calculation in which these operations are repeated over and over, appreciable round off errors can accumulate. In a digitally controlled vehicle guidance system such as that used for a robot, these numerical errors are a major source of uncertainty in the vehicle position, and are just as important as more obvious sources of error such as step quantization or slippage in the drive mechanism.

Senses: In a robotics context, senses are specialized peripherals which convert information about the environment into signals which can be analyzed by a computer or used directly by the electronics, as in a reflex. Sensory information may be obtained from devices as simple as a microswitch with a "feeler" arm, or as complicated as photoelectric imaging arrays with zoom lenses and pointing mechanisms.

Stepping motors: An ordinary electric motor is characterized by continuous motion when energized. A stepping motor uses a different design philosophy to achieve a motor which will move its shaft in small incremental angular steps on command, and will actively maintain its position in between each command. This type of motor is very well adapted to digital control of mechanical systems, and is used by NEWT for all mechanical motions in the robot.

Step quantization: The stepper motors have a finite angular resolution built into their design. This means that any mechanical motion derived from the motor will have a certain minimum step size, so that any attempt to position to a finer tolerance must be approximated.

Trajectory: The path of a moving object is its trajectory. In the case of the mobile robot, a trajecectory is planned before motion takes place, given a desired goal position and a world model which covers its course and objects which may be in the way.

World model: A world model is the result of cognition as implemented in robots. Formally, it is an information structure built up in the memory of the robot, based on both initialization and heuristic interaction with the environment.

44

ity and capability of the brain.) In addition, experiments can continue on sensor development and interfaces from sensor to computer. There are a great many practical spinoffs from this kind of work.

Many people believe that as more and more advances are made in microelectronics, the prospects of mass producing robots will become attractive, and the prices of these hypothetical machines will plummet. (Let us hope we will have learned something from R U R.) If this occurs, many applications will open up. Besides such things as planetary surface exploration, such as already demonstrated by the Viking robots, one can envision undersea robots working on oil pipelines and well heads, coal mining robots, fire fighting robots, agricultural robots, robots on assembly lines producing customized articles, robot-like prosthetic devices, and many other types of robots for specialized and general service, doing jobs which are too difficult, too dangerous, or which arc otherwise undesirable for humans.

I have been asked many times the questions, "Why are you building a robot?", and "What will it do when it is finished?" The answer to the second of these questions is easy: I simply don't know what the robot will be able to do. This is the whole point of building the robot. Given a modest amount of hardware and a greater amount of software, thoroughly integrated to form a system, the idea is to find out just what such a system is capable of doing. The whole is likely to be far greater than the sum of the parts. The system is pushed as far as the available time, money and energy will allow in order to learn what can be done and what cannot be done; in other words, to explore the frontier of robot research, and to know and understand the problems involved. The necessary knowledge can neither be obtained by theoretical studies, nor by simulations using large computers.

In regard to the first of the questions, I have been fascinated with robots since the mid-1950s and have constructed several robot devices prior to the one described in this article. The construction of such machines presents many interesting challenges. A functioning robot is a most, curious blend of electronics, mechanics, computer design, computer programming and artificial intelligence. All these fields come together in the design and construction of a robot, and each must be explored in depth. Added to this are the challenges and excitement of locating obscure components in surplus store parts bins around the country, planning, building, and then replanning, rebuilding, and, of course, experimenting and learning. To me,

About NEWT's Name and Family Tree

The origin of NEWT's name is buried in an often quoted verse from Macbeth by William Shakespeare . . .

In the cauldron boil and bake; Eye of newt and toe of frog, Wool of bat and tongue of dog, Adder's fork and blind-worm's sting, Lizard's leg andhowlet's wing, For a charm of powerful trouble, Like a he I I-broth boil and bubble.

Newt I, the present robot's predecessor, was a light-seeking robot consisting of a large eye on a stalk rising above a motor driven platform.

all these are fascinating aspects of endeavors which are perhaps best left to amateurs. I say this, because I strongly believe that the amateur computer enthusiast has a golden opportunity to participate in advances in the field of robotics. In fact, the amateur has several advantages over the professional. The research can be as abstract as the amateur wishes it to be and can be conducted without regard to immediate payoff potential in the marketplace. There is no need to spend time writing elaborate proposals, no need to continually justify the direction of the work, and no need to get hard results every few months to write up and stick into quarterly reports. History has shown that precisely this atmosphere of freedom which surrounds the amateur is the atmosphere in which brilliant innovations and discoveries are sometimes made."

Acknowledgment: The author wishes to express gratitude to Dennis Toms for his enthusiastic help and interest in this project.

45

Photo I: The complete setup of the IBM Selectric Keyboard Printer, typing under the control of a KIM--1 microcomputer with a 4 K memory expansion. The Selectric interface described in this article is housed in the equipment case in the center of this photo.

Interfacing the IBM

Dan Fylstra Hamilton Hall C 23 Harvard Business School Boston MA 02163

Photography by Carole Brock

One of the most desirable forms of computer output is high quality typewritten text suitable for preparing letters, reports and other documentation. A word processing system which speeds up the process of writing and revising text would be a very useful and feasible application for a small microprocessor based system, provided that a suitable hard copy output device can be found at a reasonable price.

An ideal output medium for such a word processing system would be an IBM Selectric office typewriter. Selectrics are moderately expensive when compared to ordinary typewriters ($630 to $830 depending on the options chosen), but they are ubiquitous in the office environment, produce very high quality typed output, and can be used to print in many different type styles simply by changing the ball shaped typing element. Special typcballs are available for printing mathematical symbols and for the APL character set (see "What is APL?", by Mark Arnold, November 1976 BYTE, page 20).

Unfortunately, the job of converting a Selectric office typewriter is made somewhat more difficult by the fact that (contrary to popular belief) the Selectric mechanism is entirely mechanical and not electronic in nature. The only use of electric power in an ordinary Selectric is for the motor which turns the drive shaft and various gears and cams. It is necessary to use solenoids to push levers and "bails" in the base of the mechanism to achieve printing under computer control. Similarly, contact switches must be installed in order to use the keyboard for computer input.

There is another alternative, however. A variety of computer terminals and other devices based on the Selectric mechanism are becoming available on the surplus market, often at a fraction of their original prices. These machines have their own built-in solenoids or other means for mechanical control, and present some sort of electrical or electronic interface to the outside world. The simplest, most commonly available, and of

46

Selectric Keyboard Printer

(Teaching KIM to Type)

ten the cheapest of these are the Selectric Input/Output Keyboard Printers, Models 73, 731, 735 and others. They were manufactured by IBM, typically for use as IO devices in other companies' computer systems. As these systems have become obsolete, the Selectric Keyboard Printers have found their way into surplus channels.

As a business school student and experienced user of computers, I have always wanted to build a word processing system around my own home computer. Hence I seized a chance to acquire a Model 73 Keyboard Printer for $450 from the Computer Warehouse Store in Boston. (These units were sold out in a few weeks; I have heard of prices ranging from $250 to $1500 through other channels, but as interest in the units increases, their typical prices are bound to rise.) Armed with a couple of old IBM manuals provided by the Computer Warehouse Store, I set out to accomplish what I expected would be a straightforward interfacing process.

This article is a report of my experience, and a detailed description of the interface which I built. Briefly, the interfacing process, while simple in principle, was not at all straightforward in practice. But it was successful, even for such a mechanically inept person and relative novice in electronics as me. For about $50 in parts (including such extravagances as a pretty cabinet and a $20 IBM connector to plug into the Selectric's peculiar 50 pin receptacle), and lots of labor, I produced the unit shown in photo 1. It's only an interface to the Selectric printer, since I'm content to use my existing ASCII keyboard for input. It has its limitations, but it works.

This, of course, is hardly the last word on Selectric Keyboard Printer conversion. As a BYTE reader, I would be delighted to see information on mole comprehensive interface designs, as well as actual experiences with several of the units currently on the market. Since most of them are sold on an "as is" basis, these machines can bring

47

Photo 2: A closeup of the IBM Selectric ball mechanism on its moving carriage within the printer. The Courier 72 ball shown here is one of many balls available with the ' 'Correspondence'' coding arranaement.

you a lot of grief (read on). So it's wise 10 report on problems, and how you overcame them.

The Selectric Mechanism

To appreciate what the interface must do (and what can go wrong), it is first necessary to understand basically how the Selectric mechanism works. The typing element is a

ROO« IS. Kej&oora SecBon.wxi Character Select"

Photo 3: This diagram, from the IBM manual number 241-5159-3, shows how the various bails of the mechanism are connected in a typical case. The IBM manuals for the typewriter output unit are valuable reference materials and can be obtained by calling your local IBM office.

golfball sized hollow sphere embossed with up to 88 characters, arranged in four horizontal rings of 22 characters each. Photo 2 illustrates the ball in its rest position in the mechanism. All the lower case or unshifted characters appear on the "western hemisphere," the side normally closest to the paper. The upper case characters are in corresponding positions on the back side or "eastern hemisphere." Pressing the shift key causes the whole typeball to rotate 180°, thereby allowing the upper case characters to be printed. Hence, the actual typing operation can select any of 44 characters, four half rings of 11 characters each, with five to the left and five to the right of the center or "home" position on each ring. A particular character is selected by causing the typeball to tilt up or down and rotate right or left; then the ball jumps forward to strike the ribbon and paper. These movements account for the peculiar "dancing" motion seen when the Selectric is typing continuously. The typeball is mounted on a carriage which moves across the page, as opposed to traditional pre-IBM typewriters where the paper carriage moves and the typing mechanism remains stationary.

The actual tilting and rotation of the typeball is accomplished by an incredibly complicated system of latches, pulleys and levers which are driven by six moving "bails," or rods in the base of the machine. Although we need not understand the detailed mechanical linkages, we should appreciate the roles played by these six

48

II

UCING THE COMPLETE CHALLENGER SYSTEM.

OSI's DREAM MACHINE is a totally integrated computer system.

Imagine a system complete with terminal, CPU, memory, floppy disk, software, and all the little necessities to make it work together immediately. Now imagine this complete system available not only fully assembled, but priced much lower than anyone else's kit. What you are dreaming of is OSI's "new" Challenger System!

In the configuration shown above, the Challenger includes everything an end user needs for a complete small computer system. All you add is 110 VAC power and a desk to put it on.

This fully-assembled system includes:

HARDWARE:

OSI Challenger 65 with 16K RAM, serial interface, system monitor PROM, and floppy disk bootstrap PROM.

OSI Challenger single drive floppy disk formatted for 250K bytes storage per diskette surface.

Stand-alone terminal and Sanyo monitor for 16 lines of 64 characters at 2400 baud (other terminal options are available).

And all interconnecting cables!

SOFTWARE:

2 diskettes containing over 100,000 bytes of software including OSI's powerful Disk Operating System with variable length sectors. 6502 DISK BASED RESIDENT ASSEMBLER/ EDITOR! A totally interactive Assembler/Editor which assembles up to 600 lines a minute and is completely compatible with MOS Technology's Cross Assembler format. This program also contains a powerful disk-based line editor with commands for general text editing. OSI'S EXTENDED MONITOR: A powerful machine language debugging and utilities package including a Disassembler which is format compatible with the Assembler! OSI 6502 8K BASIC FOR DISK BY MICROSOFT: This powerful BASIC has all the features of Altair" 8K BASIC for the 8080 plus higher speed and disk storage. And it comes complete with a BASIC program library.

DOCUMENTATION AND SUPPORT:

We include over 600 pages of hardware, software, programming, and operation manuals. The Challenger is based on the well-proven OSI 400 system. The over 2,000 OSI 400s and Challengers now in use assure continuing hardware and software support for this system for years to come!

EXPANDABILITY:

The Challenger System can now be expanded to 192K of RAM and 16K of I/O and ROM. There are over 13 accessory boards including A/D, D/A, parallel and serial I/O, cassette interfaces, a dual drive floppy, a video graphics display, several RAM and PROM boards, and multiple-processor configurations.

APPLICATIONS:

The Challenger system is complete, fully assembled and configured so that the Disk Operating System can be booted in immediately on system power-up. Even a relatively inexperienced operator can have a complex BASIC program on-line just seconds after the system is turned on. The ease of use, high reliability, and large library of standard BASIC applications programs make the OSI Challenger System the first practical and affordable small computer system for small business, educational institutions, labs, and the personal computerist.

PRICES:

Challenger System, complete as stated above with terminal and monitor

As above without terminal. Specify RS-232 or 20ma loop and baud rate

$2599°°

/ RS-232 or 20ma loop

$2099<x>

IMPORTANT NOTE:

One of the most important features of the Challenger System is that it is not really "new". OSI has been delivering the basic circuitry of the Challenger since November 1975 and the floppy disk since June 1976. The only thing new is the total integration of the components as a complete, simple to use, fully-assembled, small computer system.

For more free information and the address of the OSI Computer Dealer or representative in your area, write to: OSI; Dept. S; Hiram, Ohio 44234 or enclose $1.00 for the full OSI catalog which contains kits from $134 and fully assembled computers from $439.

I

Ohio Scientific Instruments

11679 Hayden Street, Dept. S, Hiram, Ohio 44234 Circle 40 on inquiry card.

moving bails. Two of the bails, referred to as T1 and T2, are moved or not moved in one of the four possible combinations to provide the proper degree of tilt necessary to select one of the four rings. Three more bails, called Rl, R2 and R2A, are moved or not moved in various combinations to provide 1, 2, 3, 4 or 5 increments of counterclockwise rotation, normally to select one of the five characters to the right of center on the given ring (as seen from above). Finally, when the bail named R5 is moved, the typeball rotates 90° clockwise so that the counterclockwise movement provided by R1, R2 and R2A can select one of the five characters to the left of center on the ring. (When none of the rotate bails is involved the center position on each ring is selected.)

To print a particular character, then, we need to know its position on the typeball (which can vary from ball to ball), as well as what combination of bail movements— T1, T2, R1, R2, R2A and R5 - will take us to that position. Figure 1 presents the "coordinates" of each character in terms of the six bail movements for the two most common character arrangements, the ones used on the

"BCD" and "Correspondence" encoded typeballs.

The Keyboard and Print Magnets

In an ordinary Selectric typewriter, the keys are mechanically linked to the various bails, as shown in photo 3. Striking a key depresses an "interposer" bar with a particular combination of fingers which arrest the motion of some of the bails. The interposer also moves a "cycle bail" which releases the drive shaft and allows it to turn 180°. On the drive shaft are a number of cams which control the series of movements necessary to print a character, as selected by the tilt and rotate bails. At the end of the cycle everything is back to normal, waiting for another key to be struck.

In a Selectric Keyboard Printer, the tilt and rotate bails are also mechanically linked to six electromagnets. The magnets pull down armatures which otherwise would arrest the motion of the bails. To print a character, some combination of the six magnets must be energized, the particular tilt and rotate "code" for that character as found in figure 1. In addition, something

TYPEHEAD LAYOUT

T —#s = Tilt latches active R—#s = Rotate latches active

- Upper C -1 0

— Lower Case -1 0 +1

Til

-5

-4

-3

-2

+ 1

+2

+3

+4

+5

-5

-4

-3

-2

+2

+3

+4

+5

t

T2

T2

■

■

■

■

@

>

■

■

■

V

1

3

5

7

8

0

2

4

6

9

t

0

0

BCD TYPEBALL

■

■

■

t

%

\

■

■

■

/•v^

4tf

/

T

V

X

Y

■t

S

U

W

Z

,

1

0

CODES

■

■

■

I

>''

;

■

■

■

]

A

J

L

N

P

Q

K

M

0

R

S

0

1

■

■

■

7

a

>

■

■

■

[

*

A

C

E

G

H

S.

B

D

F

1

1

1

H <

CC ,n

o

o

o

o

o

o

o

o

o

o

o

o

DC g

o

o

o

o

«

o

o

o

o

«

<

o

o

o

o

«

o

o

o

o

«

t

h

o

X ^

o

o

r

«

«

o

o

«

t

t

<

o

o

<

>

r

o

o

*

>

t

«

oc

or

o

<

o

«

O

o

«

o

«

o

«

o

<

o

O

o

«

o

>

o

*

[

&

#

$

Z

@

%

V

)

(

]

3

7

8

4

z

2

5

6

0

9

0

0

^RESPONDEIMCE

X

U

D

C

L

T

N

E

K

H

B

X

u

d

c

I

t

n

e

k

h

b

1

0

TYPEBALL CODES

M

V

R

A

O

"

I

S

W

m

V

r

a

o

i

'

i

s

w

0

1

G

F

.

?

J

+

P

Q

Y

9

f

;

■

/

i

=

P

q

v

1

1

ROinR KEY

UJ

O

1

1 I

1

J = Home Position of Ball

J = Tilt Rotate Command Bits

Figure 1: The graphic fonts of the BCD and Correspondence typewriter codes. The location of each character on the Selectric ball is described by a unique combination of case, tilt and rotate commands. The upper case versus lower case choice is made by a mechanical latch set up before printing, so the chart is broken down into two main sections for each code. The home position of the typeball is flagged in each case by a color shading. The binary command information for each matrix position is given by the rows in the center labeled "ROTA TE" and the columns at the right labeled "TILT." Thus, to form the Correspondence code for the letter S, the tilt command bits are 01, and the rotate command bits are 0110 for a tilt rotate command code of 010110 to be used in the format described in figure 7.

50

SATISFY YOUR APPETITE FOR COMPUTER KNOWLEDGE

WITH SAMS COOKBOOKS

Send for the cookbooks and manuals described. Increase your knowledge of minicomputers, microprocessors, computer technology, related computer circuits and peripheral equipment. Be satisfied or your money back.

How To Buy & Use Minicomputers & Microcomputers

By Will/am Barden, Jr. This manual gives you the basics of minicomputers and microcomputers. Explains their hardware and software, the peripheral devices available and various programming languages and techniques. Allows you to decide which system is best for your needs. 240 pages; softbound. No. 21351 $9.95

Microcomputer Primer

By Mitchell Waite and Michael Pardee Written for the beginner in the computer field. All the basic concepts and characteristics of microcomputers are explored. The easy to understand language prepares you for further study. 224 pages; softbound. No. 21404 $7.95

CMOS Cookbook

By Don Lancaster Your complete guide to the understanding and use of Complementary Metal-OxideSilicon integrated circuits. Gives usage rules; power supply design examples; applications; information on breadboards, testing, tools, and interface. Detailed coverage of logic and more. 416 pages; softbound. No. 21398 $9.95 The Big CMOS Wall Chart 35" x 23" Big, readable wall chart provides essential information on CMOS devices. No. 21399 $2.95

HANDBOOK

I *'• ""

I !

Computer Dictionary and and Handbook

By Charles J. Sippi & Charles P. Sippi At your finger tips you have more than 22,000 definitions, acronyms, and abbreviations dealing with the field of data processing. Also 13 appendices cover a myriad of computer related subjects. 784 pages; hardbound. No. 20850 $19.50

TTL Cookbook

By Donald E. Lancaster You'll discover what Transistor-Transistor Logic is, how it works and how to use it. Discusses practical digital applications. You'll learn to build TTL systems that entertain, test and train. 336 pages; softbound No. 21035 $8.95 User's Guide to TTL (Wall Chart) 35" x 23" Shows you needed information on TTL devices at a glance. No. 20180 $2.50

3 O

TV Typewriter Cookbook

By Don Lancaster Your comprehensive guide to low cost television display of alpha-numeric and graphics data for microprocessor systems, word processing, TV titling and video games. Covers configurations, memories, keyboards, techniques and much more. 256 pages; softbound. No. 21313 $9.95

Send your order Today!

Send books and/or wall charts checked below,

$ enclosed*. I understand that, if not

completely satisfied, I may return my order within 10 days for a full refund.

□ 21351 □ 21399 □ 21080 □ 20969

□ 21404 □ 20850 □ 21313 □ 20715

Active-Filter Cookbook

By Don Lancaster Dynamic coverage of active filters. What they are and how to use them. Learn to build and apply them to audio equalizers, speech therapy, psychedelic lighting and more. 240 pages; softbound. No. 21168 $14.95

NAME

please print

ADDRESS

CITY

STATE

ZIP

o

c

EJ630

□ 21398 □ 21035 □ 21168

•Include sales tax where applicable. Canadian prices slightly higher.

&

Howard W. Sams & Co., Inc.

4300 West 62nd Street Indianapolis, Indiana 46206

Circle 282 on inquiry card.

IC Op-Amp Cookbook

By Walter G. Jung Now one book gives you in-depth exposure to IC op amps. Covers theory and over 250 practical circuit applications. 592 pages; softbound. No. 20969 $12.95

RTL Cookbook

By Donald E. Lancaster You will learn the how and why of Resistor-Transistor Logic. Obtain useful design information and many digital applications. 240 pages; softbound. No. 20715 $5.75

Keyboard

Tilt Rotate Bails

Drive Shaft

Keyboard Lock Solenoid

Upper and Lower

Case Shift

Magnets

Photo 4: A detail of the underside of the Selectric Keyboard Printer with housings removed. The overlay shows several of the key points such as the location of various magnets, the switch contacts and interconnection receptacle.

T2 „ ■ T1 ' R1 __ R Check R2A R2

Check R2A

Print Magnets

50 Pin Receptacle

must actuate the "cycle bail" to start the printing process. Hence a trip mechanism is provided which moves the cycle bail whenever any of the armatures is pulled down. However, there is one character on each hemisphere which should be printed when none of the magnets is energized, for the code 000000. Hence the trip mechanism is connected to a seventh magnet, called "check," which provides an odd parity function for the other six magnets. It is energized whenever necessary to ensure that the total number of magnets energized is odd. Thus the check magnet is energized on the code 000000, and this serves to actuate the cycle bail. (I didn't realize this when building my interface, so I can't print those two characters yet. Don't make the same mistake!)

Besides the print magnets, there are a number of other magnets and armatures inside the Keyboard Printer which control special functions such as space, backspace, tab, carriage return, index (ie: advance paper without returning), ribbon shift, and upper and lower case shift. Many of these magnets

Control Magnets

(tab, backspace, index, space, carriage return)

can be seen in photo 4, which exposes the underside of the machine and outlines the positions of many components. The upper and lower case shift magnets are latching, and hence they lock the machine into the new case until the opposite magnet is energized. Note that the operator cannot shift the machine back into lower case when the upper case magnet is latched! By Murphy's Law this is bound to happen whenever you are testing the interface, but it can be remedied by fooling around with the shift cam at the end of the drive shaft.

No electric power is provided for any of these magnets inside the Keyboard Printer, but the coil connections are brought out to the 50 pin receptacle at the back of the machine. The magnets are rated for 43 to 53VDC at 125 to 300 mA, applied for at least 10 ms in order to pull down the armatures and cause the desired action.

Switch Contacts

The other major addition to the basic

Continued on page 133

52

IS YOUR DOLLAR BUYING

AS MUCH POWER & FLEXIBILITY

AS TDL'S XITAN SYSTEMS PROVIDE?

OUR CUSTOMERS SAY

THINGS LIKE THIS

ABOUT TDL PRODUCTS:

"... the best < PL) board I've put together. .. excellent parts Worked right ulf without trouble shooting." ,

.|RG Cambridge, Mas

KMM

Bella Vista, Ark.

"... high quality

dm uinrnt.ition . .

components f good engineering & complete

WP

Seattle, Wash.

Col. DWW

Santa Maria, Calif.

SK-L

Boston, Mass.

alpha 1

When we combined our highly praised /PU board and ciur System Monitor Board, we defined the standard for the industry; we integrated more power and flexibility in two slots of our motherboard than most other systems can muster using five or more boards. When we put this setup into our rugged aluminum case we created the first XITAN system, the alpha I. By adding a CRT terminal and or teleprinter you will have a complete computer system.

KIT: $769 ASSEMBLED 8, TESTED: $1039

alpha 2

By adding a 716 memory module and our PACKAGE A software to the alpha 1 we created a second XITAN system, thea/pha2. Thus, a complete and extremely powerful micro-computer system emerges well worthy of you who are operating at Ihe most sophisticated levels. The XITAN alpha 2 provides you with 18K of RAM, 2K of ROM, 2 serial I/O ports, 1 parallel I O port, our 1200 baud audio cassette interface as well as our extraordinarily powerful software package which includes BK Basic, the Text Output Processor, Ihe Zapple Text Editor and the Relocating Macro-Assembler. Add your own I O device and GO...with the most powerful and flexible micro-computer package ever offered.

KIT: $1369 ASSEMBLED & TESTED: S1749

IF YOU ARE A BEGINNER, YOU WON'T EASILY OUTGROW THE XITAN SYSTEM. IF YOU ARE AN ADVANCED USER, YOU WILL DISCOVER XITAN IS EXACTLY WHAT YOU NEED.

Circle 82 on inquiry card.

■ Write for descriptive brochure on the XITAN alpha series ^^1 TECHNICAL

and system software. When you ask at your dealer, say "ZY-TAN." ^^ff| ^DESIGN

ORDERING INFORMATION: Send check, money order or BankAmericard, Master Chargecurrent number and expiration date. Shipping is usually made via UPS or UPS Blue Label. Specify other arrangements if you wish. Prepaid orders are shipped postpaid.

RESEARCH PARK BLDGH 1 101 STATE ROAD PRINCETON. NEW JERSEY 08540 (609) 921-0321

Joseph J Carr

Bioelectronics Laboratory

The George Washington Univ Medical Ctr

901 23rd St IMW

Washington DC 20037

Interfacing With an

Analog World

Last month we discussed transducers and amplifiers. These are necessary portions of a signal processing system which result in scaled voltages of, for example, 0 to 10 V corresponding to the original physical parameter being measured. But how can we convert these voltages into numbers inside a computer for computation, and use numbers from computations to control external voltages? In this article we'll see how some of the more common conversions are accomplished. We'll start with digital to analog conversion, even though this may seem at first glance to be backwards. The reason for starting with the output process is that digital to analog conversion is simplest, and that many analog to digital input conversion techniques require a digital to analog conversion as part of the process.

There are several techniques for making a digital to analog converter (often abbreviated DAC). In most cases these converters use some form of binary weighted current or voltage summation that is controlled by the digital word presented to its inputs. A typical example is the classical R-2R technique which is outlined in figure 1. The active element A1 is an operational amplifier of unity gain inverting follower configuration. Although an amplifier of the 741 general purpose family will suffice in many experimental situations, it is often better to select one of the more costly premium grade integrated circuit operational amplifiers. We have shown the digital inputs of the circuit in figure 1 as mechanical switches, a configuration which is most useful in a tutorial situation when teaching the concept of the digital to analog conversion. In practical digital to analog conversion applications the switches are electronic, and are

controlled by some form of n bit binary data source such as a counter or computer output port.

A precision reference voltage source is required as well, and for many commercial and industrial system designs this will be a precise 10.000 ... V. The accuracy of the converter is largely dependent upon the precision of the reference voltage. Although any precise voltage regulator circuit may be used for the reference, I have found in laboratory instrumentation experience that commercial products such as the REF-01CJ or REF-01HJ (for severe applications) work quite well. In a homebrew experimenter's situation, where relaxation of tolerances is quite normal, a simple zener diode reference circuit will often prove quite adequate.

Now let's consider the circuit in figure 1 in more detail. What happens when various combinations are presented to the digital input? Suppose that all the input bits are in the low state, which means that they are connected to ground by the electronic or mechanical switches shown. The value of the output voltage is given by the product li R. When all bits are grounded through the switches, the input current to the amplifier is zero, as can be deduced by tracing, noting that there are no nonzero inputs to the amplifier's feedback node. (In practical circuits, though, there may be some output voltage under these circumstances due to offsets in the operational amplifier itself. These undesirable offsets may be nulled out through an offset adjustment potentiometer arrangement, R|\HJLL 'n tn's circuit. See some of the tutorial design books on operational amplifiers for further elaboration of this detail.)

If the most significant bit of the word is

54

vcc(+) rnull

f 20K

•2R

•2R

ASN AS3 As2 i SI

\ \ V \(MSB)

I ► \ O V O \ O T3

"I" |"0" "l" "o" "l" "0" "l" |"0'

I

set to a logical 1 value, then the output voltage (assuming Rq is arbitrarily set) will be approximately one half the reference voltage, as can be verified with the operational amplifier gain formula shown in figure 3 of the first part of this article. (The remaining resistors in the R-2R network have no effect in this case since both ends are effectively tied to ground. One end is the real ground at the left, and the other end at the feedback node of the amplifier is its "virtual ground" for the signal.) The analysis of the next most significant bit and the remaining bits of the digital word is a bit more complicated, but the result is what might be expected. The bit controlled by S2 in figure 1 will contribute one fourth of the reference voltage to the output of A1; the bit controlled by S3 will contribute one eighth of the reference voltage. And for switch, or bit, n (where n starts at 1) the contribution will be E^r£p/(2n).

Let us assume that we have an 8 bit digital to analog converter of the type shown in figure 1. The word at the input terminals is 11001011 and the reference voltage is precisely +10.000 VDC. What is the output voltage? The following calculation, which is easily generalized, shows how the value is derived:

E0= I0X

II

I

\21 22 23 24 25 2G 27 28/

-RCI

V

Fraction Based on a Digital Word

Output

= (10/2) + (10/4) + (10/32) + (10/128) + (10/256) = = 5 + 2.5 + 0.3125 + 0.078125 + 0.0390625 " 7.93 V

i-i

rrr

Rz -wv

15V

LOW PRECISION EXPERIMENTER'S VOLTAGE REFERENCE

CHOOSE Rz FOR +5V DROP

._l

PICK ONE

REFERENCE

SOURCE

'EREF= +10.000 VOLTS

HIGH PRECISION LABORATORY QUALITY REFERENCE

+ I5V t.

I

1

6

PRECISION MONOLITHICS

REF-OI

1

IOOK

5

io-turn :

' TRIM

ft,

IV

L.

But use of amplifiers and resistors as shown in figure 1 is hardly optimal in an age of integrated circuits. A number of manufacturers offer convenient low cost 8 bit integrated circuit digital to analog converters that contain almost all of the electronics, except possibly the E^rfp supply and the operational amplifier used for output voltage conversion and level shifting. I have used those by DATEL, Analog Devices and Precision Monolithics with good results in laboratory instrumentation. Experimenters and designers will also find the parts in the Motorola MO408 family, as well as several similar parts made by Signetics, to be quite useful. For my examples in this article I have selected the Precision Monolithics DAC-08. I found this product easy to obtain in low quantities (ie: one) through local distributors.

Figure 2 shows the basic circuit for using the DAC-08, along with two voltage conversion schemes for its current outputs of pins 2 and 4. The integrated circuit itself contains the electronic switches, the resistance ladder, a reference amplifier and the current output buffer that drives pins 2 and 4. Two types of input are required to make

Figure 1: A classical R-2R network digital to analog converter implemented as a circuit diagram with discrete parts and operational amplifiers. The essentials of any digital to analog converter are present: a reference voltage (two alternatives shown), a switched network that creates a binary weighted current controlled by the switches, and buffering and conversion amplifiers to create a voltage output which can drive other circuits.

55

Rref

- r-^ 5K l4

DIGITAL

INPUT

LINES

:REF

o

o

o

+ I5V A

C2 .01

DAC-08

Bl

B2 B3 B4 B5 B6 B7 B8

C3

.01

HhHh'

/JF

5K

-I5V

CI .01

io

TO

OUTPUT

VOLTAGE

CONVERSION

10

OUTPUT VOLTAGE CONVERSIONS

CONDITION

FULL SCALE HALF SCALE ZERO

BINARY CODE

I I I I I I I I I 100000000 000000000

-OUT

-9.96

- 5.00

0.00

FROM DAC-08

-Oe

OUT

;Rp

-VW—I I RN

m

NEGATIVE OUTPUT 4B

CONDITION

(+1FULL SCALE (+1ZER0 (-)ZERO (-)FULL SCALE

BINARY CODE

I II I I I I I 10000000 01 I I I I I I 00000000

;0UT

+ 9.96 + 0.04 -0.04 -9.96

2

BIPOLAR OUTPUT 4C

Figure 2: While the circuit of figure I could be constructed, it is usually more convenient to replace it with a monolithic integrated circuit device such as the DAC-08 part by Precision Monolithics, which is used for this illustration. The integrated circuit contains all the components of the R-2R network of switches and buffering amplifiers. It still requires an output conversion circuit (two variations shown) and a reference voltage. Because the R-2R network is an integrated circuit, this form guarantees the highest possible accuracy with none of the extra bother of hand wiring a circuit as in figure J.

this digital to analog converter do its work. One is the reference current, Iref thru pin 14. This current can be generated by a precision voltage reference (see figure 1) and a precision low temperature coefficient resistor in the ideal cases. (For low precision applications, ordinary resistors will work just fine.) For the configuration shown in figure 2 and a reference potential of 10 V, this resistor should be precisely 5000 ohms, a number which is derived from the documentation of the DAC-08.

The second major type of input to the converter is the 8 bit digital word that is applied through pins 5 to 12. In the notation of figure 2 and throughout this article, the bits are numbered from 1 (most significant) to 8 (least significant). Bit 1 of the DAC-08 package is wired to pin 5, with bits 2 thru 8 wired to pins 6 thru 12. The logic levels at the inputs are the usual TTL levels, with a low voltage (approximately 0 volts) signifying a logical 0, and a high voltage signifying a logical 1.

One of the output conversion circuits shown in figure 2 is a simple unipolar conversion which uses two resistors and no operational amplifier. With this conversion, the formulas discussed in figure 1 apply except for the fact that the voltage is negative with respect to ground. When the input word is binary 00000000, then the output of the converter system is 0.00 V. Half scale (—5 V output) is given by an input word of binary 10000000, and full scale output occurs when the input word is binary

11111111. The output under full scale conditions will not be 10 V, but approximately 9.96 V. This slightly unexpected condition is due to the mathematics of the switching network. Evaluating the formula for the conversion given earlier, with a reference of 10 V and a binary 11111111 digital value, we find:

Lout

10 X (255/256) = 9.96 V

Also shown in figure 2 is an output circuit which uses an operational amplifier as a level shifter and voltage conversion device. Wired with the components shown, this amplifier connected to the DAC-08 gives a gain of 2 and shifts the generation of output levels to a symmetric bipolar range of —9.96 to +9.96 V. Note that it is impossible to get an exactly zero voltage in this case, since the 256 possible states are split symmetrically about zero. If the level shifting reference resistor R|_5 were adjusted slightly off the 5 K value, the voltage range of the conversion could be pulled slightly (ie: 0.04 V) positive or negative so that a true zero would be possible for one of the binary states. There are other possibilities for the output conversion circuits and as in any design situation, a little bit of imagination always comes in handy. [Readers looking for more examples of typical applications should consult the applications notes of the various manufacturers. Of particular use is the excellent specification sheet and application notes on the MCI408 DAC, published by Motorola . . . CH]

56

Analog to Digital Conversions

With the concept of a digital to analog conversion covered, it is now possible to consider the opposite case: conversion of measured voltages from the sensor preamplifiers into numbers which can be processed and used by a computer. Of the many techniques which are available for performing analog to digital conversions, we will only consider the details of integration, counter (or ramp), and successive approximation methods here. These are the simplest and most universal methods.

One of the basic parameters to be considered when talking about any analog to digital conversions is speed. This is not a major consideration in the output problem already discussed, since digital to analog current output conversions essentially take place at the switching speeds of digital logic, and are then limited only by the final operational voltage output amplifier's response. In the input case, however, some form of approximation cycle which converges upon the digital value is required; as a result, the conversion can be somewhat slower.

Integration Methods

At the slow end of the analog input conversion spectrum is the integration method. This is the type of conversion which is typically used in digital panel meters and similar instrumentation. These

ANALOG I—■>_ INPUT l—"*~

EREF O

can be useful in cases where you might mount the digital panel meter or multimeter in a system, both as a readout mechanism and as a measurement conversion device. Many such instruments offer parallel digital outputs on their rear panels, along with control and strobe lines. The appeal of this approach often is affected by two characteristics: relatively slow conversion speeds and binary coded decimal (BCD) encoding directly taken from the displays. The relatively slow conversion rates become a problem when looking at signals other than "slowly varying DC levels" of very low frequency sources. The coding characteristics may in fact be optimal for many computational schemes in a computer program, but it can be a nuisance if one attempts to use such a meter in a binary oriented hardware system. The typical "dual slope" integrator used in these digital panel meter circuits is illustrated in figure 3.

The dual slope conversion circuit consists of five basic sections: an integrator, a comparator, a control logic section, a binary counter, and a reference current or voltage source. The integrator consists of an operational amplifier connected with a capacitor in a negative feedback loop. This capacitor is charged by the operational amplifier output voltage. The input to the integrator is taken from either the analog input or the reference source. The comparator is made with an operational amplifier that has an open feedback loop.

START E7>

COMPARATOR

V rh

_TL

OVERFLOW

CLOCK XZ>

—I 1— [—^ EOC

L-^ (END OF CONVERSION)

BINARY COUNTER

o -o -o -o -o -o -o

Figure 3: Analog to digital conversion by the dual slope integration method is often performed by slow devices such as digital panel meters. This method works through an analog integrator and a counter. The integrator has switchable inputs. It first integrates the incoming signal for a specified time interval. Then it counts the time necessary to linearly discharge the charge just accumulated with a known slope. The result is a count which is proportional to the voltage which drove the integrator during the charging time.

) BINARY OUTPUT

57

ANALOGi—^ INPUT I *

START O CLOCK O

8 BIT DIGITAL TO ANALOG CONVERTER

Figure 4: The ramp or counter method of analog to digital conversion is straightforward: A counter is initially zeroed and then allowed to count upwards until its binary code through a digital to analog conversion creates a voltage greater than or equal to the input voltage.

BINARY COUNTER

O>E0C

(END OF CONVERSION)

■Ol

-o

-o -o -o -o

-OJ

) BINARY OUTPUT

This makes its gain very high. If the two input voltages are not equal, then the operational amplifier output is high or saturated. In this case the comparator is ground referenced and uses just one active input.

When a START command is received the control circuit resets the counter to 00000000, resets the integrator to 0 V output (discharges C), and sets switch S1 to the analog input. The analog voltage creates an input current to the integrator which causes the integrator output to begin charging capacitor C. This means that the output voltage of the integrator begins to rise. As soon as this voltage rises a few millivolts above ground the comparator output snaps high. The high comparator output causes the control circuit to trigger the counter, which begins counting clock pulses. The counter is allowed to overflow and this outputs an overflow bit. This bit changes the state of switch S1. The graph in figure 3 shows the integrator charging during the interval between START and the overflow of the binary counter (to to t-|). At time t-] the switch changes the integrator input from the analog signal to a precision reference source. Also, at time t-j, the counter has overflowed and again it has an output of 00000000 (maximum count + 1 is the same as the initial condition). It will, however, continue to increment so long as we have a high comparator output.

The charge accumulated on capacitor C during the first time interval is proportional to the average value of the analog input voltage between tg and t-].

Capacitor C is discharged during the next time interval (t^ to 12). When C is fully discharged the comparator will see a ground condition on its input and again it will change state to make its output low. This causes the control circuit to stop the counter but does not reset the counter. The binary word at the counter output at the instant it is stopped is proportional to the average value of the analog waveform over the interval Xq to t|. An end of conversion (EOC) signal is generated to let the microprocessor or other system know that the output data is stable, valid and ready for use. The speed limitations are based on the requirement for an accurate and stable analog integrator, and the need to average the input signal over a long cycle.

Counter (Ramp) Analog to Digital Conversion

A counter or ramp type analog to digital conversion circuit is shown in figure 4. Here we find a voltage comparator, a digital to analog converter with voltage output, a binary counter, and necessary digital control logic. Here is how the conversion works:

When the START command is issued by a control system (for example, a computer output port) the control logic resets the binary count to 00000000 and enables the clock input to the counter, which begins counting upwards at the clock rate. Since the counter outputs set the voltage level out of the digital to analog converter, the DAC generated voltage to the comparator will begin to rise. As long as the analog input voltage is greater than the reference voltage generated by the digital to analog conversion, the state of the comparator output will enable counting via the control logic. However, when the rising reference level finally equals or exceeds the input voltage for the first time, the comparator output state will switch and stop the counter. At this time, the output of the counter can be read by the computer or other system, and represents the value of the analog input voltage. If the counter and digital to analog converter are both eight bits, the number in the counter will represent from 0 (00000000) to 255/256 times the digital to analog converter's reference voltage level. The conversion time of this algorithm is proportional to the voltage being measured.

Both the dual slope integration technique and the counter technique discussed thus far take far too long for many applications. On the order of 2n clock cycles are typically required where n is the number of bits involved. Conversion time becomes critical in an application when the frequency

58

COMPARATOR

R3 IK

SUCCESSIVE APPROXIMATION SHIFT REGISTER UNIT-, OUTPUT LATCH AND CONTROL LOGIC

START O2.25 TTL CLK O

ANALOG -CD INPUT

(O-IOV)

NOTE: NOT ALL PIN CONNECTIONS ARE SHOWN FOR DAC-08. REFER TO FIGURE 4.

> BINARY OUTPUT

SERIAL OUTPUT

EOC

(END OF CONVERSION)

response must be high and a faithful reproduction is required. (For reference, consult textbooks in electrical engineering concerning the "sampling theorem" and Nyquist's criterion that says we must have a sampling rate of at least twice the highest frequency that is to be recognized, if a faithful reconstruction of the signal is to be achieved.)

Successive Approximation

In programming and software design, we often find use of a "binary search" stratagem instead of a flat out sequential search when trying to speed up the process of finding an item in a table. This same approach is just as applicable in hardware, where the "successive approximation" technique of analog to digital conversion provides a much higher speed of conversion than the sequential counting methods discussed so far. The successive approximation technique typically requires only n+1 clock cycles to make an n bit conversion, and its hardware is no more complex than that of the dual slope or counter methods.

The successive approximation converter, shown in figure 5, consists of a comparator, control logic, a shift register with output latches for this form of conversion, and a voltage output digital to analog converter.

When a START command is issued to the converter circuit, it loads a binary 1 value into the most significant bit of the shift register, which in turn sets the most significant bit of the output latch. This sets the output of the digital to analog converter to half scale. In true binary search strategy, if the input voltage is less than the reference output provided by this half scale setting, the most significant bit is cleared from the latch on the next clock pulse; otherwise, the most significant bit is left unchanged at the next clock pulse. Then the internal shift register of the successive approximation register unit is shifted so that its single high level bit is opposite the next most significant bit. Again, the output register is modified, this time so that bit 2 is set to 1 for the trial measurement. This bit has a value of one fourth of the total voltage range, which is added to the half range or zero value still latched from the first measurement. At the next clock pulse, if this new trial value to the comparator is greater than the input value, the 1 bit is latched in the successive approximation register; otherwise a 0 bit is inserted at the current position. This process continues with successively less significant bits until the shift register overflows indicating that the last bit has been tested. Some forms of this conversion have control logic to detect an equality condition and

Figure 5: The successive approximation method, here illustrated with a practical circuit, uses a binary search strategy. The most significant bit is tested first, then the next most significant bit, and so on down the line until all n bits have been tested. If at each stage the contribution of the selected bit causes the trial approximation output from the converter to exceed the input value, the bit will be stored as a zero. A fter all n bits have been tested, the result is an n bit binary representation of the voltage of the input.

Continued on page 62

59

Ask BYTE

BRITISH COMMENTARY

As one of the relatively small number of personal computing addicts in England, I'm very impressed with the rate at which the field is growing in popularity on the other side of the Atlantic. I've been subscribing to BYTE for the past six months and I promise it's always made fascinating reading. I wish I knew where in this country one could lay hands on any issues before last August's. (Hint, anybody?)

The advertisements are fascinating, too. Anybody considering purchasing any sort of system is almost forced to import it from the USA. My query is about TV displays that most of these systems use. Naturally, they're designed for American TV standards, which differ from British ones. We have 625 interlaced lines per frame, repeating at 25 Hz. Is it, in general, possible to modify an American TV display device to work with a British TV? Or is all the timing generation usually performed inside a special chip? Might I have more success if I tried to modify a TV instead? I know rather more about TTL logic than about televisions, but I'm game to learn if necessary. Otherwise, if the answer to all these questions is no, then the temptation to come and live in the States is going to be almost unbearable ....

I look forward to every issue of your magazine; I'm only sorry that I discovered it so late. Best wishes for the successful future that you deserve.

Guy A Burkill

Corpus Christ! College

Cambridge CB2 1 RH ENGLAND

Are there any other British readers who have experienced the problems of interfacing American video generation logic to European television designs? Some firsthand knowledge of the subtleties to be found would be the best way to answer Guy's query on that subject.

With regard to back issues of BYTE, there are none left. However, much of the editorial content is now available in a book titled Best of BYTE edited by David Ahl, publisher of Creative Computing. This book contains reprints of numerous articles from the first 16 issues of BYTE, September 1975 thru December 1976.'

SACRED BUSES

I am very curious about something. What is sacred about the Altair bus as opposed to others? Would it not be possible to install a peripheral designed for the Altair scheme to, for example, a

Digital Group or Southwest Technical Products bus? I am confused on the issue since it seems to me that, functionally, lines must correspond between the systems pretty well. Perhaps the answer lies in the fact that the Altair bus was based on the 8080 processor, which has some unique IO methods. Is that the problem? Is it really a question of 8080 versus other processor compatibility? I understand why a manufacturer would want to make plug compatible cards to the Altair bus, but why couldn't a simple conversion be available for any product?

J C Chirigos

1601 Kentucky NE

Albuquerque NM 87110

The main issue is one of plug-in compatibility. Whether you call it the Altair bus, or, as used by non-MITS suppliers, the S-100 bus, the key to the wide availability of the peripherals is nominal compatibility at the hardware level. Even here, there are occasional clashes between various manufacturers about the definitions of pins not originally assigned meanings in the Altair definition of the bus.

At the detail level, a 100 pin bus surely works, and in principal one could talk to any other similar computer at the memory and bus interface level simply by simulating all the signals which would have been present on the bus in its Altair implementation. This is a quite workable procedure, as demonstrated by many products

True, the IO structure of the 8080 is unique, and there are some 8080 specific features of the Altair bus as a result of this and other characteristics of the 8080. But for the most part, the particular selection of the lines present on the 100 pin interface of the Altair bus is just a reflection of discretionary choices on the part of the designer(s) of the first Altair within the framework of the general design of a microprocessor with 16 address bits and eight data bits. ■

SOME TERMINOLOGY

I have a problem.

First, let me give you some idea of my background. I have spent 15 years in the computer industry as an applications programmer. I am fluent in BASIC, FORTRAN, PL/I and APL. Now that I have left the industry, I am getting interested in recreational computing.

I have never been involved in logic design or in the details of hardware, nor do I feel that I want to get involved with it now. I would not mind building a kit provided that the instructions were of the "put tab A into slot B" type. However, when I read all the ads and literature furnished by the various manufacturers, I have the following problem: What are you all talking about?

I thought I knew what "read only memory" was. Now I come across "pro

Continued on page 67 60

BUY YOUR COMPUCOLOR8001 FROM THESE DEALERS.

ARIZONA

Phoenix:

Phoenix Byte Shop West 12654 N. 28th Dr.

(602)942-7300

Temps:

Tempe Byte Shop East 813N.ScottsdaleRd.

(6021894-1129

Tucson:

Byte Shop of Tucson

(602)327-4579

2612 E.Broadway

CALIFORNIA

l-awmtale:

Bjyte Shop of Lawndale 16508 Hawthorne Blvd.

(213)371-2421

Orange:

Computer Mart of Los Angeles 625 W. Kalefla. No. 10

(714)6331222

San Diego:

The Computer Center 8205 Ronson Rd.

(714)292-5302

San Francisco:

The Computer Store 1093 Mission St.

(415) 431 0640

Son Jose:

Amco Electronics 414 S. Bascom Ave.

(408)998-2828

San Jose:

ByleShop

155 Blossom HHJRd.

(408)226-8383

Von Nuys:

Computer Components 5848 Sepulveda Blvd.

[213)786-7411

CONNECTICU

r

Windsor Locks:

'Hie Computer Store

615 S. Main SI.

(203)627-0188

FLORIDA

Coral Gables:

SunlW Computer Stores 1238AS. Pixie Hwy.

(305)661-6042

Tampa:

Microcomputer Systems 144 S. Dale MabryHwy.

(813)879-4301

GEORGIA

Atlanta;

Atlanta Computer Mart 5091-BBufordHwy.

(404)455-0647

HAWAII

1 lonolnlu:

Compact Computers P.O. Box IW96

(808)373-2751

ILLINOIS

Champaign:

The Numbers Racket 518 E. Green St.

(2)7)352-5435

Kvnnston:

Itty Bitty Machine 1316 Chicago Ave.

(312)328-6800

Pork RMgE

Chicago Computer Store l57TalcoltRd..Ilwy.62

(312)823-2388

INDIANA

Indianapolis:

1 lome Computer Shop 10447 Chris Dr.

(317)894-3319

MARYLAND

Itockville:

Computer Workshop. Inc. 5709 Frederick Ave.

(301)468-0455

MASSACHUSE

ITS

Burlington:

IhcComputer Store

120 Cambridge St.

(617)272-8770

MICHIGAN

Troy:

Genera] Computer Company 2017 Livernois

(313)3620022

MINNESOTA

Minneapolis:

Cos! Reduction Services 3142 Hennepin Ave. So.

(612)822-2119

MISSOURI

Kansas City:

Computer Workshop of Kansas City

6903 Blair Rd

(816)741-5055

NEWJERSEV

Iselin:

The Computer Mail 501 Route 27

(201)283-06(X)

NKW YORK

East Meadow:

"Hie Computer Mart of Long Island

2070 Front St.

(516)794-0510

New York:

The Computer Mart 314 5th Ave.

(212)279-1048

OHIO

Columbus:

Compulervtsion 894 W. Broad St.

(614)228-2477

SOUTH CAROLINA

Columbia:

Byte Shop

2018 Greene St.

(803)771-7824

TI-IXAS

1 louston:

Communications Center

7231 Fondren

(713)774-9526

Richardson:

'Hie Micro Store

634 S. Central Expressway

(214)231-1096

WASHINGTON

Seattle:

Retail Computer Store 410 NE72nd St.

(206)524-4101

WISCONSIN

Bcloil:

Austin Computers 1835 Northgate

(608)365-6096

Walertown:

General Precision Electronics 207 Rhine St.

1414)261-8148

Comrj

Circle 38 on inquiry card.

NOW $2750. AMERICA'S LOWEST-PRICED PERSONAL COMPUTER SYSTEM WITH COLOR VECTOR GRAPHICS.

By taking advantage of the new technologies available to the industry today, we've consistently been able to give you one of the best prices on the market. Now because of great response, we can give you the best price. You can now buy the Compucolor 8001 for the reduced price of $2750. A complete stand-alone system with expanded graphics software for plotting points, vectors and bargraphs on a 160 x 192 addressable grid —in color. Eight independent background and foreground colors.

The Compucolor 8001 has an Intel 8080 CPU, 34 I/O ports and a color display with an effective band width of 75 MHZ compared to 5 MHZ for standard TV sets. In fact the Compucolor is the only totally integrated system on the market which includes a color display. You can also have special options for the Compucolor 8001 right now, including: Mini Disk Drives for extra memory, light pens and a variety of special keyboard features. BASIC 8001 Is Easy To Learn. Compucolor's BASIC 8001 is

a conversational programming language which uses Englishtype statements and familiar mathematical notations. It's simple to learn and easy to use, too. Especially when it comes to intricate manipulations or expressing problems more efficiently. The BASIC 8001 Interpreter runs in ROM memory and includes 26 statement types, 18 mathematical functions, 9 string functions and 7 command types for executing, loading, saving, erasing, continuing, clearing or listing the program currently in core. Expandable Memory To 64K. The Compucolor 8001 has UK bytes of non-destructible readonly memory which handles the CPU and CRT operating systems as well as BASIC 8001. Sockets are in place for an additional 2IK of EPROM/ MROM memory. The Random Access Main Memory has 8K bytes for screen refresh and scratch pad, 8K bytes for user workspace and room for 16K bytes of additional user workspace. The Compucolor also comes complete with a convenient mass storage device,

Floppy Tape Memory. It's an 8-track continuous loop tape system, with a Baud rate of 4800 and an extra storage capacity of up to 1024K bytes per tape.

Color Graphics At

Alphanumeric Black And White Prices. That's what we're becoming famous for, and thanks to the tremendous response to the Compucolor 8001, we've been able to reduce our price even lower—to $2750. Look over our dealer listing on the adjacent page for the dealer nearest you.Then drop by for a demonstration. And while you're checking out the Compucolor 8001, check out your dealer's financing plan. He can help you turn a good deal into a good deal more.

Compucolor Corporation, P.O. Box 569, Norcross, Georgia 30091.

Compucolor Corporation

Continued from page 59

VOLTAGE

63

62

60 58 56 54 52 50 48 46 44 42 40 38 36 34 32 30 28 26 24 22 20 18 16 14 12 10 8

4

2 01=

stop the conversion ahead of overflow, but the worst case time is the n+1 clock pulses for n bits mentioned earlier. Figure 6 shows the sequence of voltages presented to the comparator by a 6 bit successive approximation algorithm, as compared to a 6 bit counter conversion algorithm to show the time savings of this method.

In the circuit of figure 5, the comparator is shown as the Precision Monolithics CMP-01C device, although faster conversions may be possible if a higher speed Advanced Micro Devices AM686 comparator is used instead. The Advanced Micro Devices AM2502 integrated circuit, which was designed for this successive approximations conversion application, contains everything needed for the logic described verbally above, except the digital to analog converter and the comparator. Other companies go even further with integration of the input conversion. Precision Monolithics, for example, makes an AD-02 circuit which contains all the complete 8 bit analog to digital conversions. It is relatively expensive, but its cost can often be justified by its utility and ease of use. It has a respectable conversion speed and has several input options that can accomodate analog voltage ranges of 0 to 5 V, 0 to 10 V, -2.5 to +2.5 V, -5 to +5 V, and -10 to +10 V.

Software Approaches. ..

As noted earlier, the software of a microprocessor can often implement the algorithms of digital to analog conversion. This is especially so with the successive approximation algorithm, since its inherent speed makes up for some of the slow facts of life concerning programmed execution. To rig a software approach to the problem, we need a digital to analog converter attached to an output port, an input comparator which drives one input line, and the software of successive approximation (or other methods for that matter). In this case, the successive approximation shift register is variable in a program, the output latch is an output latch connected to the DAC device, and decisions are made based on the single bit input. A previous article in BYTE [see "Microprocessor Based Analog I Digital Conversion, " by Roger Frank, page 70 of May 1976 BYTE J discussed both the ramp (counter) and successive approximation methods described here, but showed how to implement them in software.

Whether the approach taken is that of pure hardware or software aided designs, adding analog input conversions to a personal system can expand its capabilities to cover many interesting real world control and measurement problems."

REFERENCE DAC OUTPUT VOLTAGES

INPUT VOLTAGE

REFERENCE DAC OUTPUT VOLTAGES

SUCCESSIVE

APPROXIMATION METHOD BECOMES READY

COUNTER METHOD BECOMES READY

Figure 6: Comparison of the successive approximation method with the ramp method of conversion for a 6 bit value. (Six is chosen for purposes of this illustration.) The successive approximation method takes a mere six cycles of testing to arrive at the best value, where the ramp method has to count up to the number which matches the input and causes the conversion to terminate. The ramp takes 44 cycles here, versus six for the successive approximation method.

62

rwAOfi/d Computing NotionaluwipulM umfmmc^

Jum 13-16, W7

jyson/sketch pad /

Personal Computing & the

It's happening at the Dallas Convention Center

Big Plans for "Big D"

Innovation and relevance are key words for the 1977 National Computer Conference, the first NCC ever held in the Southwest and the year's largest gathering anywhere of data processing users, computer professionals and computer hobbyists. More than 25,000 people are expected to gather in Dallas for a conference program of more than 100 sessions and the year's largest display of computer hardware, software, systems and services—plus the first National Programming Contest and a series of outstanding Professional Seminars.

Largest Computer Exhibits Ever

More than 300 major hardware and software companies will pack 1,143 booths into the Dallas Convention Center's modern 200,000-square-foot main hall —surpassing the all-time exhibit record set at the 1969 Fall Joint Computer Conference in Las Vegas. Additional space for the Personal Computing Fair & Exposition is on the next level for a totally separate exhibit by commercial producers of Personal Computing hardware and software.

For computer professionals and hobbyists with a need to know, the 77NCC offers a unparalleled opportunity to make close-up evaluations and comparisons of the latest in computer hardware and software, systems and service . . . with many of the offerings scheduled to be shown for the first time.

Headquarters Hotel

Personal Computing headquarters for the 77NCC will be at the Holiday Inn in downtown Dallas. Low-cost housing also will be available at Southern Methodist University. For information about NCC's Deluxe Travel Service, which can take care of all travel and housing reservations for you in one neat package, contact 77NCC, c/o American Federation of Information Processing Societies, Inc., 210 Summit Ave., Montvale, N.J. 07645, 201/391-9810.

Registration Information!

For registration at the conference:

] Full four-day registration for

program, exhibits, Proceedings $75

[~~J Student registration, as above,

without Proceedings $10

| | One-day registration, program

and exhibits only $25

~J Four-day registration, exhibits only $25

~J One-day registration, exhibits only $10

~J Proceedings only: members $30; non-members $60

] Professional seminars, each $30

Checks should be payable to 1977 National Computer Conference for the exact amount only. Purchase orders will not be accepted.

Great Computer Roundup

during the 1977 NCC, June 13-16

Personal Computing Fair & Exposition

The fast-growing field of Personal Computing will share the national spotlight in June, when the 77NCC will recognize the dynamic growth and promise of the field with the Personal Computing Fair & Exposition. In addition to the commercial exhibits of Personal Computing manufacturers, dynamic displays and demonstrations of non-commercial individual and group-owned projects will be featured at the Dallas Convention Center. The success of other hobbyists can give you new ideas for your own systems, "how-to" tips and dozens of clever solutions to everyone's problems. You might even find a joint-venture partner with a kindred spirit. More than 100 non-commercial small computing systems are expected, featuring hardware and/or software implementations, games, recreation, music, art, amateur radio, scientific, miscellaneous and general applications. Prizes and awards will be given in all categories.

Personal Computing Program

Two full days of panel sessions on June 15 and 16 will provide an in-depth look at Personal Computing: Past, Present and Future; The Future of Retail Computer Stores; Hardware of the Computer "Hobby" Market; and Personal Computing Software. Leaders in the Personal Computing movement will appear on each of the panels to let you know the latest developments in the field, point out trends you'll need to be aware of— and answer your questions.

Special Interest Sessions

In addition to the panel sessions, special interest groups will be able to gather informally for "how-to" programs on building a kit, debugging software, using assembly language, I/O interfaces, cassettes and disks, software standards and so on, into the night. If the special interest group you want is not organized when you get there, we'll do our best to help you get one started!

National Club Congress

Is a national personal computing association needed? If it is, what does it do, how does it do it, and who does it? To find out what's happening—pro and con—club reps from across the nation will gather to exchange ideas and discuss issues related to club activities and programs. Make certain your club sends an official delegate who can speak for you and vote vis-a-vis a national organization, establishment of national hardware/software standards, a national program library and interchange, educational seminars, meetings, ad infinitum.

1977 NATIONAL COMPUTER CONFERENCE

Dallas Convention Center • June 13-16

77NCC: The Great Computer Roundup

A record-setting roundup of the latest trends and developments in computing and data processing will be offered at the 1977 National Computer Conference, the first ever held in the Southwest. As a vital learning experience for people whose business, professional or personal activities relate to information processing technology and techniques, it will encompass 89 technical program sessions, 11 professional seminars, the largest computer exhibit ever held and many other special events.

Timeliness and pertinence are key elements in the program, which will analyze latest developments and applications in computer science and technology, costeffective computer usage, management concerns and public policy issues. A series of briefings and panel discussion will cover practical, up-to-date information important to effective management and professional development. Throughout, emphasis will be on personal interaction and the exchange of ideas.

Underscoring the importance of NCC as a learning experience, the professional seminars will offer topics from system development and database technology to networking, planning and computer usage. Each will be covered in a comprehensive, one-day mini-course conducted by a nationally recognized authority.

77NCC will pay special attention to the fast-growing field of Personal Computing. Included will be two full days of program sessions, a Personal Computing Fair, a Personal Computing Exposition, a National Club Congress, plus additional activities of particular interest to hobbyists.

Special plenary sessions will feature a keynote address June 13 by Mark Shepherd, Jr., chairman and chief executive of Texas Instruments Inc.; the AFIPS Presidential Address June 14 by Dr. Theodore J. Williams; and a special address June 15 by A. Douglas Murch, senior vice president, Prudential Insurance Company of America.

Other highlights will include a Pioneer Day Program honoring members of the computing group at Los Alamos Scientific Laboratory; the first NCC National Programming Contest; the annual NCC Computer Science Film Theatre; special tours and an all-conference reception.

Be in Dallas June 13-16, when the 1977 National Computer Conference will offer computer specialist and generalist alike a most outstanding opportunity to attend the year's most complete computer roundup.

1977 NATIONAL COMPUTER CONFERENCE

Dallas Convention Center • June 13-16

Circle 248 on inquiry card.

FRANKLIN ELECTRIC Co.

"^

altair - IMSAI - S-100 BUS

COMPATIBLE Check these features ...

ACCESS TIME - 450ns No wait states

FULLY BUFFERED - for BUS reliability

LOW POWER CHIPS - for long life and low power drain

MEMORY WRITE PROTECT - Hardware, 2K segments

POWER REGULATION - 4 Regulators for reliability

ADDRESS SELECT - 1K boundaries - Dip. Switch

LED MEMORY SELECT INDICATOR - Visual Check

LED MEMORY PROTECT INDICATOR - Visual Check

BATTERY BACKUP PROVISION - Saves memory during power failure

OUTPUT DISABLE - Switch selectable for transparent loader application

P.C. BOARD - Quality G10 material with solder mask both sides and silkscreen

SOFTWARE - Diagnostic provided

To Order

Price

Name . City _

Address State

_Zip

KIT - With IC Sockets S239

KIT - Without Sockets S225

Solder chips directly to PCB

ASSEMBLED - With Sockets $295

ASSEMBLED - Without Sockets S280

Enclosed is S Check □ Money Order O

Bill my BankAmericard □: Master Charge O: Card No. „___

Exp. Date Interbank No. ,

Signature '

Handling and Postage $2.50. California Residents add 6% sales tax.

FE

FRANKLIN ELECTRIC Co.

733 LAKEFIELD ROAD

WESTLAKE VILLAGE, CA 91361 (805) 497-7755

Continued from page 60

grammable read only memory" (or worse yet, erasable programmable . . .). If it's read only, how can it be programmable? What is static memory? Is there any other kind of memory other than "random access memory?"

Is it possible for you to help me out of my dilemma? Something between "binary numbers are made up of zeros and ones" and "when the static EPROM is connected to the DMA using a 3P+S 10 module."

Al Weiss

POB 942

Alleghany CA 95910

Short of the tutorial article which may be inspired by your questions, here are a few notes on terminology and concepts in computer design and implementation.

Random Access Memory: For the purposes of discussing the present state of technology, a random access memory means some sort of reference to semiconductor memory parts (excluding serial access devices such as shift registers). A magnetic core memory is a form of random access memory, but is not used in modern small computer technology due to various manufacturing and

economic considerations. A read only memory (ROM) is a random access memory part, as is an ordinary programmable memory. The read only memory is distinguished from the fully programmable memory by the fact that it is nonvolatile (the information is retained when power is removed) and moderately difficult or impossible to alter once it has been set up with a program,

A commonly used acronym found in technical jargon and advertising is RAM, referring to random volatile programmable semiconductor memories. Since both read only memories and volatile programmable memories are random access devices, this term is misleading and ambiguous. In BYTE's editorial content, we do not use the term RAM intentionally, because of this ambiguity, and refer instead to "programmable" and "read only" memory. Programmable emphasized the volatile, user program oriented nature of parts which are often called RAMs in conventional engineering journals, and read only characterizes the nonvolatile, permanent nature of the other type of random access memory part. (Of course, "programmable" is still not an optimal choice, since even read only memories are always programmable in the sense of "program it only once.")

Static Versus Dynamic: In brief, there are two types of volatile programmable memory parts, characterized by the in

ternal design of the basic memory cell of the circuit. A static memory typically has a cell with sufficient active transistor elements to create a true flip flop memory register, A dynamic memory typically has a smaller memory element size which is achieved by replacing the memory flip flop with a capacitor which stores an electric charge. As a result of this smaller unit bit cell size, at the limits of technology the largest dynamic parts have historically had about four times as many bits as the largest static memory parts. At the present time, the largest static memories readily available are 4 K bits per chip, whereas the largest dynamic memories are 16 K bits per chip.

There is a subtlety of design with dynamic memories, however. This is the fact that since the storage elements are capacitive in nature, sensing and support electronics on the chip tend to drain the charge with time, losing any information stored in the cell. The dynamic memory chips must thus be refreshed periodically, an operation that is commonly performed by cycling through a reference to the low order bits of the address inputs to the chip. Static memory chips have no such refresh requirement, and are often easier to use in prototype, small or homebrew circuitry; the manufacturing economies tend to make dynamic memories the most attractive in larger systems products. ■

67

Ill III

9t)CUt it!

If you could design

your own computer system

from scratch,

you'd do it right.

You'd want...

The Ideal Model of a Published Software Product

When we talk about publishing software at the present state of technology, we are talking about a product which is akin to the detailed design of the rolltop desk mentioned earlier. It is a product which serves as the starting point for the home software craftsman, not a recipe which will fit without thought into every conceivable system. This will change a bit as the systems in the marketplace become more refined, but the nature of the computer as an intellectual amplifier tends to require a certain level of technical familiarity on the part of its user. (This is the element which distinguishes the general purpose computer from the applications oriented dedicated computer such as a 4 function calculator or oven controller.)

In order to make a software package which is optimally configured for the customer's standard or customized use, there is a certain minimal level of documentation which is required. This level of documentation is not necessarily needed by all users all of the time, but is in many respects akin to the reference books for integrated circuits: When a question needs to be answered, it is good to have the information needed to zero

Continued from page 9

number of existing computer science textbooks. But I'd really like to somehow buy the design in a completely documented form so that like the plan of the hypothetical rolltop desk, I could implement it literally with custom modifications. Tutorial and "how to" plans books for specialized fields such as those mentioned above are widely available already, and at prices well within the range of an individual's budget. They are marketed in large quantities because large numbers of individuals use the information; outlets range from mail order book services to retail stores. Drawing out of this parallel between individualized computing and individualized "anything else," it should be obvious what the solution of the software dilemma is: Publish detailed plans and tutorial information for software, on a scale commensurate with the size of the market. Publishing ideas is an activity which has a long and distinguished history, and yields both personal and financial rewards to those who engage in the practice, as well as real benefits to those who purchase the products. Let's turn now to the application of this concept to the software designs of the computing world.

Computers

with more

convenience and power

for your money

plus flexible memory

and

I/O expansion

68

published in BYTE, printing technology also covers machine readable representations as well.

Varieties of Machine Readable Representations

User convenience demands that a software product be made available in some form of machine readable representation. While it is certainly possible to take an object listing in printed form and type it into a processor by hand, this is a long, tedious and error prone process. To complete the functional definition of "adequate documentation" given above, we need a form of machine readable object code at minimum, along with machine readable relocation information. Fortunately there exist several technologies which can be employed for this purpose, which I'll review here.

ROM Releases

This is the most expensive medium presently available for reproducing software; however, it has utility in the convenience of use provided by built-in software. In terms of practical products, however, this form of software will most frequently show up in manufactured products preloaded at the

in on the answer. Here is what I consider to be adequate documentation:

• Users' manual textual materials concerning the "standard" uses and limitations of the software. Here is where we find such information as standard 10 patch points, relocation tables, etc.

• Complete object code, preferably machine readable along with machine readable relocation information.

• Complete source listing of the package including source language and generated object code for each statement.

• Program logic manuals and tutorials on the design of the product are an excellent option.

The idea is to include enough information to allow the user to do routine field alterations, including relocation. The idea of a published software product is to compile all this information together in a comprehensive book form, to be sold at prices characteristic of books, as opposed to the past history of software prices for applications and system software packages. The technology of printing covers all the portions of the "complete" package except machine readable code, at least in the minds of most people. However, as we have demonstrated with experiments

Software

and superior

documentation to

get your system up

and running fast

with practical

applications and a

well-organized

user's group

(more)

factory, rather than user integrated software. A ROM program is difficult to achieve in a relocatable form, and has a certain permanence which is both its advantage (convenience) and its disadvantage (difficulty or impossibility of patching). This method has been successfully employed in several desk top calculator packages in the form of ROM software options, and in such personal computing products as built-in BASIC interpreters and monitors. For end user markets, this form of software can dispense with all but the user oriented manuals in most purchases, since modification is impossible.

Magnetic Digital Media Releases

As more and more floppy disk products, large and small, come to market, the use of the magnetic diskettes for software releases is becoming common. Similarly, the Philips and 3M digital tape media with standard digital recording techniques can be considered as vehicles for release of machine readable data. However, the price of the media and the costs of digitally recording and verifying each copy tend to make this method of delivery limited. It is used, quite naturally, as the vehicle for delivery of floppy disk operating systems from the

Service

from experts at the factory and

through a nationwide network of stores

real help if you need it

Instruction ursc

\ computer operation

and programming to

help you get more from your

system, whether you're

an expert or a novice

manufacturers of drive interfaces, but there the writing and testing of a diskette full of data falls out of the expected quality assurance tests prior to packing and delivery. The same is true for the other forms of hardware which have related operating system software products that can be recorded.

Paper Tape

This venerable medium has been in existence longer than the modern electronic computer. No survey of distribution media would be complete without mention of it. Very reliable means exist for reading paper tapes into computers at quite economical prices, well under $100 for the peripheral. As a distribution medium, however, paper tape in my opinion suffers from several disadvantages: It is inconvenient to store, bulky, prone to create a messy tangle due to manual handling with inexpensive peripherals. Whether my opinion is supported in the marketplace is another question altogether.

Audio Media Releases

One of the most useful and practical vehicles for the distribution of software is likely to be the use of audio recording media. Here we can identify two principal

70

methods of distribution; recording on tape cassettes or other magnetic tape audio media, and recording on the audio equivalent of a read only memory, the phonograph record.

The technology of recording on tape results in a product with a fairly high unit cost for each copy of the information. To this must be added the cost factors associated with normal printing of the rest of the documentation. Cassettes, as a recording method, are a logical choice for custom software, or small volume situations, but the high degree of manual labor associated with each copy argues against the practicality of large production runs in this form.

The technology of making phonograph records is, on the other hand, a well established mass production technique which can be adapted to the software distribution without much variation from standard methods. To illustrate the point and to test the concept, I made a test in the spring of 1976 at the suggestion of David Fylstra, an associate of mine who is also a homebrew record maker. He arranged for the cutting of a test record with the audio format of my personal monitor program, circa March 1976, to test out this method using a master record cut on standard recording industry equipment. Depending upon size and quan

...but you don't need to design your own

because our systems* are coming this Fall:

icijrc

ones jcifi/e been waiting for.

1 he Healh oo. benlon MarDor, Ml

PTsserrtlj

mortals

that are by far the best and

most complete in the world.

You'd want illustrated,

step-by-step instructions

and a "we won't let you

fail" pledge.

tity of pressing, the costs per record run well under $1, which is hard to meet with the cassette duplication method.

Machine Readable Printed Media

As a final option, there is the use of machine readable printed formats for object code and relocation information in the release of software products. This is a form which was suggested to us at BYTE by Walter Banks of the University of Waterloo, and with which we have been experimenting in the pages of BYTE. In this method, an optical reader is used to scan printed materials which have been formatted into a series of bars corresponding to the digital information. Because of constraints in the design of the layout and the method of scanning, it is possible to simplify the scanner designs to the point where a very inexpensive peripheral is used together with some adaptive software which takes care of the speed tolerant input scan. The beauty of this method is that it "comes for free" in so far as actual production costs are concerned. Why is this true? The reason is that the 200 to 300 pages of documentation needed to support a systems software product with perhaps 12 K bytes of object code require only an additional five to seven pages of

71

Circle 151 on inquiry card.

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."

machine readable bar code copy, hardly affecting the economics of the book at all. These 200 to 300 pages of documentation are required by the product concept, whether or not there is any other form of machine readable code made available.

Economics of Publishing

With media established, and a product concept outlined, what about addressing the problem of rewarding the producers of software products? Here, as in any area of publishing, the answer is quite simple. The publishing house judges whether the particular software package is in its view a readily marketable product with a certain minimum press run potential. If so, the publisher puts up production capital, where the author puts up intellectual capital in the form of his or her work. It is a risk situation in which both parties are making a speculation that readers will purchase the product; as in numerous parallel situations throughout industry, authors and publishers work on an agreed upon split of any rewards from success in the marketplace.

Applied to the software publishing variant of this business, the author's intellectual capital is in the form of the program, its source code, its object code, and its documentation; the publisher's contribution is the marketing organization, the technical editing of the manuscripts, and the technical detairs of book preparation. Other than the specialized content, the method of operation and the details of the arrangement are not much different from publishing any item. Rewards to authors now become a small

amount (in absolute terms) of royalty recovered from orders of magnitude in sales for successful software book products.

Proprietary Products

The problem of protecting and keeping software proprietary is no longer a major "new" issue when publishing of software is contemplated. How many people extensively copy from books? Very few, and if they attempt to make a regular practice of it they would tend to be prosecuted by publishers under copyright law. In publishing software, an implicit or explicit license to copy the copyrighted materials for personal use and modification is part of the bargain; the price is low enough so that if you want your own user documentation, you buy your own copy of the book (even if you may have been using object code derived from your neighbor's computer). Since the documentation is a necessary component of use, no sales tend to be lost in the long run due to the fact that object code can be swapped around.

Conclusions

What I have endeavored to show is that there is quite some potential for the sale and distribution of software using conventional publishing techniques with modifications to suit this type of product. By publishing software along with machine readable code, we end up with a way to make the products widely available, yet retain the desirability of compensating authors for their efforts in proportion to the success of the product."

MULTIPLE DATA RATE INTERFACING FOR YOUR CASSETTE AND RS-232 TERMINAL

the CI-812

The Only S-100 Interface *

You May Ever Need

On one card, you get dependable "KCstandard "/biphase encoded cassette interfacing at 30, 60, 120, or 240 bytes per second, and full-duplex RS-232 data exchange at 300- to 9600-baud. Kit, including instruction manual, only $89.95*.

PERCOM DATA COMPANY, INC.

4021 WINDSOR • GARLAND. TEXAS 75042

♦Assembled and tested, $119.95. Add 5% for shipping. Texas residents add 5% sales tax. BAC/MC available.

PerCom 'peripherals for personal computing

72

GET THE

Wf

man..

SEALS,,,

ORDER FORM

KIT ASSEMBLED

I I4KROM

~| 8KSC-Z 68KSC 8KSC

[Write in each box the quantity of each part required]

KIT

□

ASSEMBLED WWC 88 EXT 68EXT-S

KIT ASSEMBLED

J 68EXT-LI I

J 68WWC [

I IBBUC I I

J ASSEMBLY AND OPERATING MANUAL $4.00

NAME.

PLEASE PRINT OR TYPE

ADDRESS. CITY

.STATE.

ZIP.

SEND CHECK • MONEY ORDER • CODS ACCEPTED • CREDIT CARDS

SEALS ELECTRONICS, INC P.O. BOX 11651 KNOXVILLE, TN 37919

MOST ORDERS SHIPPED WITHIN 10 WORKING DAYS

I Ml

__. iff:,!,,.1..! i i

u jjjjjjTjXlij. 11

SkE.*1 I I I 15SVI I II I I

[READ ONLY MEMORY]

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

I Each 1702-A has its own Vgg clocked for Low Power Consumption.

I Will work with the weakest power supply based S-100 buss computer.

I Switched Selected Address in 4K Blocks.

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

Kit Price: . . $119.00 Assembled Price: . . .$179.00

[STATIC MEMORY CARD FOR SWTPC 6800]

8192 Words of Static Memory Access Time: 500 nsec. (250 nsec on request) Memory Chip 91L02 APC Battery Standby

Address Selected 8 Ea. SPST Dip Switch Low Power All Lines Buffered. All IC'swith sockets I Solder Masked on both sides of PC Board.

Assembled Price: . . .$359.00

Kit Price:

$269.00

[STATIC MEMORY CARD]

ALTAIFr^lMSAI^and S-100 buss compatible.

Access Time: 250 nsec max.

Ziloa Speed Compatible up to 4 mhz.

Memory Chip: 2102LHPC or 2102AL-2

Battery Standby :>1.5 to 4 volts<

Address Select: 8 ea. Spst. Dip Switch.

Wait States: None

Current Reg.: Less than 200 ma per 1K

All Address, Control, and Data out lines fully buffered.

All IC's supplied with IC Sockets

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

Kit Price: . . $295.00 Assembled Price: .

.$395.00

OTHER SEALS ELECTRONIC PARTS AVAILABLE Item No. Description Kit Price Assembled Price

8KSC 8K Static Memory Card 500 nsec

WWC Wire Wrap Card

88 EXT 88 Extender Card

68 Ext S Extender Card (Small) swtpceaoocom„.„i,i.p

68 Ext-L Extender Card (Large) jwrpoeaooc

68 WWC Wire Wrap Card swtpcesoocomp.ni...p.mui..

BBUC Battery Back-Up Card

ORDER DELIVERY: FROM STOCK TO 10 DAYS

$269.00

$369.00

$ 37.50

$ 47.50

$ 29.00

$ 38.00

$ 19.00

$ 25.00

$ 29.00

$ 39.00

$ 35.00

$ 45.00

$ 55.00

$ 68.00

SERLS^*

ELECTRONICSJNC.

TELEPHONE # 615/693-8655

Circle 236 on inquiry card.

Technical Fcnum

More on Using the 8x300

Jon Twichell

303-D Eagle Hts

Madison Wl 53705

A short note concerning your note in the March 1977 issue of BYTE (page 100) on the Signetics 8X300. This processor was designed and sold as the SMS 300 (Scientific Micro Systems, 520 Clyde Av, Mountain View CA 94043). I used SMS's development system in a scientific data acquisition system. Two years ago it was the fastest thing on the market. I was building a two dimensional multichannel analyzer out of a Modcomp II, and used the microcontroller for the address mapping and handshaking. Pure blinding speed was our object, subject to the constraint of programmability. The observation is that this is the same criterion for a microprocessor used for emulation.

True, the 8X300 is fast, but by today's standards, not that fast. It is rumored that

SMS is working on an ECL version .... Anyway, if one examines the architecture of the 8X300, one finds two chokes, both fixable. The first is that the microcode is quite vertical, as one would expect with a 16 bit instruction. One can effectively double the speed of the system by simply extending the microcode width by eight bits. Make your program memory 24 bits wide; use 16 in the normal fashion. The extra eight are used as the address in working storage or IO space. The 8X300 must use an instruction to load the "memory address register" (IVR REG) and then another instruction to fetch the word at that address; by selecting an address for each instruction (the extra eight bits), most programs halve in size, and double in speed.

The second choke is the time multiplexed IO bus. I seriously suggest the user extend the microcode and stay away from those

Continued on page 110

theVECiCKI

=+T

null

PROM/RAM

BOARD

from

Vector graphic

PROM: Space for 2K bytes, 1702A. Store bootstrap loaders and monitors.

RAM: 1K bytes, 2102LIPC, 450 ns, low power. NO NEED TO RELOCATE STACK WHEN ADDING MEMORY.

CIRCUITRY: Replaces memory write logic on ALTAIR™ and Imsai front panels.

REGULATORS: Two regulators. No need for regulated power supply.

JUMP-ON-RESET: PROM program execution starts at any location in memory without interfering with programs in any other portion of memory.

S-100 BUS; +8 and -16 VDC; P/C BOARD SOLDER MASKED BOTH SIDES WITH PLATED THROUGH HOLES; ALL SOCKETS INCLUDED.

OPTIONAL FIRMWARE: 512 byte monitor

for use with Tarbell tape interface on 2,

1702APROMs.

PROM/RAM KIT WITHOUT PROMS $89

+ OPTION A-SIORev. 1 or3P+S $129

+ OPTION B-2SIO(MITS) $129

+ OPTION C-SIO 2 (IMSAI) $129

+ OPTION D-Poly Video Interface $159

(Includes Video Driver)

California residents please add 6% tax.

IMMEDIATE DELIVERY FROM FACTORY OR YOUR LOCAL COMPUTER STORE

T.M.

CO* G=tAPHC inc.

LAKEFIELD ROAD. SUITE F • WESTLAKE VILLAGE, CA 91361 • (805) 497-0733

Circle 137 on inquiry card.

74

wm

Deal

yourself in

ATlahtic City, N.J. August 27th-28th

What its all about!

Software Development

Micro Computers

Hardware Development

Disc Memories

Computer Comparisons

Interfacing

Program Implementation

AMSAT

Computerized Music

Video Terminals

Kit Construction

Printers

Computer Games

Digital Tapes

• Seminars and Technical talks by leading electronic equipment manufacturers

• Major Exhibits from all over the country

• Demonstrations in many areas including Home and Personal Computing

• Door Prizes, Free Literature and Free Mementos

• All this plus Sun and Surf - Fun and Excitement - Relaxation and Leisure

c

Personal Computing

77

SPECIAL GROUP RATES FOR CLUBS AND ORGANIZATIONS TRAVELING FROM THE WEST COAST AND MID-AMERICA.

contact Seven Seas Travel

Dawn Corrigan 17220 S. Norwalk Blvd. (213) 924-8383 Cerritos. CA. 90701

Write for FREE TRIP-KIT to PERSONAL COMPUTING 77, Rt 1, Box 242, Mays Landing, New Jersey 08330

Consumer Trade Fair

m*m

EXHIBITION BOOTHS STILL AVAILABLE - CALL (609) 653-1188

Photo 1: The Teleterminai Corporation Fly Reader for use with the KIM-1 microprocessor.

Come Fly With KIM

Rick Simpson

MOS Technology |nc

Valley Forge Corporate Center

950 Rittenhouse Rd

Norristown PA 19401

Many computer hobbyists start with nothing more than a processor, a small amount of programmable memory, a small onboard monitor such as MIKBUG or KIM and some front panel switches. Those with more foresight, or cash, will have a keypad or even a full keyboard for data entry and processor control. But even with a good monitor and a full keyboard and display, loading programs is a tedious chore at best, and there is an awful feeling when you turn off power, knowing that twenty minutes of typing just evaporated.

The next step in expanding the system is usually an audio cassette interface or a Teletype with paper tape reader and punch for the wealthy or fortunate. Now the tedious retyping is eliminated and a program, once written and recorded or punched, can be reloaded in a matter of minutes.

Many people stop at this point. When hand assembly of programs is required, a program of more than a few hundred bytes is rarely attempted. But as the software gap is slowly filled, more and more systems are being implemented with assemblers or

BASIC interpreters. More memory is purchased to expand programmable memory from a few hundred bytes to 4 K, 8 K, or more. [One firm now even markets a 64 K board!. . . CH/ Once again your memory has outrun your ability to fill it in a reasonable time.

For instance, using the Teletype paper tape reader or audio cassette interface on the KIM system, a 2 K Tiny BASIC interpreter takes almost ten minutes to load. A 12 K BASIC source program would take an hour. Even a 30 character per second interface only cuts this to twenty minutes. The alternatives seem to be a Tarbell or Suding type high speed cassette system, a 3M drive at 9600 bps or a floppy disk.

The floppy disk certainly solves the speed problem. We can now load 12 K in a few seconds, but at a cost of $1,000 to $2,000. The high speed cassette is reasonable in cost, about $200 including the high quality cassette unit required, but tricky to interface unless a manufacturer-supplied board or kit is available.

Although some magnetic tape units have start, stop, and search functions under pro

76

gram control, most users end up pushing the buttons. No hobbyist magnetic tape cassette unit can read a few (ie: one line or so) characters, stop and process the data, and then start and read some more, a real need when running an assembler with the source stored on the tape in a limited resource system.

After this lengthy preamble, you may have suspected that I have an alternative solution in mind, and I do: a high speed paper tape reader, manufactured by the Teleterminal Corporation, called the Fly Reader, shown in photo 1. Although a bit more expensive than the high speed cassette system (about $350), it is far faster; reading at 300 characters per second, it can load my Tiny BASIC in twenty seconds, or fill that 12 K of memory in two minutes. It is easy to interface, requires little software, and is extremely reliable. It needs only a single +5 V, 2 A power supply and is operated completely under program control. You can read as little as a single character at a time and can read in either direction; try that on your cassette!

Paper tape has always been the standard mass storage device for minicomputers, until floppy disks came along, and paper tape has been the most universal and inexpensive method of software distribution and interchange in the minicomputer field.

The basic problem is that it is only a reader; how do you punch the tape? There are several answers: Flexowriters and other similar low speed punches are becoming available, as are gobs of older 7 level machines. I've also seen higher speed punches, typically 60 characters per second, advertised for under $100. The fact that the punch is slow is not so important; typically you punch a tape once and read it many

times. Even if you have no punch, the reader is a useful peripheral because much software is available already punched.

How it Works

The Fly Reader can read at such a high speed because it transfers 8 bits in parallel and contains only a single moving part: a stepping motor connected to a toothed wheel which engages the sprocket holes in the paper tape. Sensing of the holes in the tape is done by photodetectors rather than the mechanical fingers used in a low speed reader. This is a method similar to that used in the manual reader sold by Oliver Audio. Figure 1 shows a block diagram of the unit.

There are five control lines for the unit. All are compatible with standard TTL circuitry. The "load status" line is a logic 1, +5 V, if the reader is not ready because the feed gate is not closed. When tape is inserted and the gate is closed, this signal goes to logic zero.

In operation, the reader must be checked by software to see if the "reader ready" signal is at logic "I to indicate that the reader is ready to read another tape character. The software must then issue a pulse from logic 1 to logic 0 whose width is between 500 ns and 500 us. This READ pulse will start the reader and drive the reader ready line to logic 0. The software then watches the "data strobe" line. When data strobe goes to logic 1, the data can be read from the eight parallel output lines. If the program needs to read another character from tape, it must wait until reader ready goes back to logic 1, issue another read pulse, and wait for another data strobe. Figure 2 shows the flowchart for such software and figure 3 shows the interface timing diagrams.

Figure 2: Flowchart of the software for reading the paper tape with the Fly Reader.

( START J

( RETURN )

Figure I: Block diagram of the Fly Reader. The input is achieved through an incandescent lamp and a photodetector array. The tape is advanced by a stepping motor allowing input of data either forwards or backwards. The reader open sense switch is closed when the paper tape is in the reader.

PAPER TAPE

(Q

&

PHOTODETECTOR ARRAY

TOOTHHEAD SPROCKET DRIVE WHEEL

AMPLIFIER AND SIGNAL CONDITIONING

STEPPING MOTOR

CONTROL LOGIC

8TTL

OUTPUT

LINES

(TO KIM-I PAO TO PA7)

DATA STROBE (PB4) READER READY (PB5) READ (PBO)

FORWARD, REVERSE (SET TO DEFAULT STATE OF O OR I)

READER OPEN SENSE SWITC

1

LOAD STATUS LINE

(TO PBI OF KIM-I)

77

LOCATION

LOAD READER

READ FORWARD, 2 CHARACTERS

REVERSE TAPE DIRECTION

READ REVERSE, 3 CHARACTERS

LOAD STATUS

READER READY

READ COMMAND

FORWARD REVERSE

SPROCKET

DATA STROBE

DATA OUTPUTS

J3 P7

J3 P8

J3 P6

J3 P5

INTERNAL

J3 P9

J3 PI2 TO PI9

20ms RISE AND FALL TIMES

M~nf

500jts

500ns

20ms "DELAY"

Ji n

U IT

¥

ji n.

LT

n

L^

DATA

TRUE

J3

PI2 TO PI9

Figure 3: Timing diagram generated by the software of listing I. The minimum width of the data strobe is 50 ids except when forced low by a new read command. The crossed out sections in the data true section indicate that the state of the output is unknown. A read command is issued only when the reader ready line is high.

Interfacing to Kim

As described above, the Fly Reader interface requires eight parallel input lines, three input control lines and one or two output control lines. Two output control lines are needed if the forward, reverse function is used; otherwise only one control line is needed. Since KIM-1 has 15 bidirectional 10 lines the interface is very simple. The A data port lines PAO to PA7 are programmed as input lines and connected to the parallel output lines from the Fly Reader. PB5 is connected to the reader ready line, PB1 is connected to the load status line, PBO is connected to the read command line and programmed as an output line, and PB4 is connected to the data strobe line. A 5 V, 2 A power supply is connected to the reader and the interface is complete. When wiring the power connectors, you should make sure that separate power and ground wires are run back to the power supply for both the motor and logic connections. This will insure that current surges to the motor during stepping operations do not feed noise pulses into the control logic.

Other Interface Possibilities (An Advertisement . . .)

The interface described here uses most of the available 10 lines on the KIM-1. Systems supporting several 10 devices may wish to interface the Fly Reader through a separate interface chip. The MCS6532 is one such interface chip for adding more 10 to KIM-1 as well as an additional 128 bytes of programmable memory and another interval timer. Two of these chips (with ROMs) are already built into each KIM. Since the 6532 is a MOS rather than TTL device it does not load the KIM-1 address or data buses significantly. The MCS6532 is available for $16 postpaid from National Electro-Sales, 12063 W Jefferson, Culver City CA 90230.

Interface Details

The fifteen KIM

IO lines are divided

into two ports. Each port has a data direction register and a data register. Writing a 1 to a bit or bits in the data direction register configures the corresponding 10 lines for output, writing a 0 sets them for input. For instance, writing a hexadecimal 02 to the A data direction register configures the PAO line for input, PA1 for output, and PA2 through PA7 as input lines. Similarly, writing hexadecimal FO to the B data direction register configures PBO through PB3 as input lines and PB4, PB5 and PB7 as output lines. Note that there is no PB6, and PB7 has no output pullup; it is essentially an open collector output. Reading the A or B data register will show whether the signal at each input line is 1 or 0 and will show whether a 0 or 1 was previously written to any lines configured as outputs. Writing to a data register will set the appropriate output lines to 1 or 0 and does not affect lines programmed as inputs. Hexadecimal address location 1700 is the A port data direction register, hexadecimal 1702 is the B data direction register, hexadecimal 1701 is the A data register, and hexadecimal 1703 is the B data register.

The KIM Paper Tape Format

The software to drive the reader uses the same paper tape format as that used in the KIM-1 Q (paper tape dump) and L (paper tape load) commands. Thus any paper tape punched on a low speed punch by KIM-1 can be read by the Fly Reader. The KIM-1 paper tape format ignores any characters

78

Fantastic Software

This LIBRARY is a complete do it yourself kit. Knowledge of programming not required. EASY to read and USE

Written in compatible BASIC immediately executable computer with at least 4K, NO other peripherals needed.

ANY

9**.**

1 BASIC

SOFTWARE

ii*

mm L ^L

^P VOLUMS , XjU

1 1

1

PS"

| ky iP^iioww

This Library is the most comprehensive work of its kind to date. There are other software books on the market but they are dedicated to computer games. The intention of this work is to allow the average individual the capability to easily perform useful and productive tasks with a computer. All of the programs contained within this Library have been thoroughly tested and executed on several systems. Included with each program is a description of the program, a list of potential users, instructions for execution and possible limitations that may arise when running it on various systems. Listed in the limitation section is the amount of memory that is required to store and execute the program.

Each program's source code is listed in full detail. These source code listings are not reduced in size but are shown full size for increased readability. Almost every program is self instructing and prompts the user with all required running data. Immediately following the source code listing for most of the programs is a sample executed run of the program.

IM.H

BASIC ^^

SOFTWARE

LIBRARY

/VOLUME tit

;:;:::::

*¥

*. *. beowh

BASIC

SOFTWARE LIBRARY

VOLUME tl

B. W. EKOWN

The entire Library is 1100 pages long, chocked full of program source code, instructions, conversions, memory requirements, examples and much more. ALL are written in compatible BASIC executable in 4K MITS, SPHERE, IMS, SWTPC, PDP, etc. BASIC compilers available for 8080 & 6800 under $ 10 elsewhere.

This Library is destined to become one of the reference bibles for the small computer field, due to its versatility and uniqueness and the ease of operation of the programs it contains. These volumes are deductible as a business expense when purchased by a company. Send your remittance for prompt delivery, while supplies last. Volume discounts are available to qualified dealers.

VOLUME I

Bookkeeping

Games

Pictures

S24.95

VOLUME II

Math & Engineering

Plotting & Stat

Basic Statement Def.. ..

S24.95

VOLUME III

Advanced Business

Billing

Inventory

Payroll S39.95

VOLUME IV

General Purpose S9.95

VOLUME V

Experimenter S9.95

©

FUTURE ADDITION TO THE "BASIC SOFTWARE LIBRARY"

Volume VI (A Complete Business System S49.95) General Ledger System - Taxes, Pyrl W-2's, Inventory, Depr., Financial Statements, etc. AVAILABLE MID SUMMER

Available at most computer stores.

Add S1.50 per volume for postage and handling.

SCIENTIFIC RESEARCH

1712-B FARMINGTON COURT CROFTON MD 21114

Phone Orders call (800) 638-9194 Information and Maryland Residents Call (301) 721 1148

Circle 282 on inquiry card.

hexadecimal address code label

op. operand commentary

$1C4F

clear decimal mode; go toPTRINI; go to GETPTR;

| if A not equal to 3B go to LOAD;

else A:=00;

| store checksum;

go to PTRBYT; [get byte count)

X:=A;

compute checksum;

get high address;

store high address pointer;

compute checksum;

get low address pointer;

store low address pointer;

compute checksum;

A:=X;

if A:=0 goto LOAD3;

get data;

store data;

compute checksum;

get next address;

X:=X-1;

go to LOAD2;

X:=X+1;

get data;

compare high order checksum;

if different go to LOADER;

else get data;

compare checksum;

if different go to LOADER;

else A: = X;

if A not equal to 0 go to LOAD;

else X:= location of 'KIM';

output message;

go to START;

X: = location of 'ERR KIM';

go to LOAD8;

[initialization routine]

A: = B port address;

read flag: = 1;

A:=B register;

determine PB1;

if reader ready go to OK;

else A:= 'X';

output 'X';

goto PTRINI;

return;

[subroutine to input one character]

get bit from B data register;

if not ready go to GETPTR;

> else output read pulse; I turn off read pulse;

1 get bit 5 from B data register;

if character not ready go to CHECK;

else get character;

return;

get character;

pack character;

get another character;

pack character;

A:=2 characters;

return;

goto PTRINI;

go to GETPTR;

go to LOOP;

Listing J: The basic software needed to run the Fly Reader with the KIM-1 microprocessor. The software uses the KIM-1 monitor routines and substitutes the GETCH and GETBYT routines with routines GETPTR and PTRBYT. The new subroutine PTRINI properly configures the 10 lines used with the reader. Subroutine PTRINI will output an endless number of 'X' characters until the tape is loaded into the reader. The listing was set prepared from a cross-assembly provided by the author. A symbol table showing the values of the symbols used and where they are referenced follows the assembly and will prove useful when it is necessary to relocate a program at a different starting address.

1C4F

START

EQU

4000

D8

CLD

4001

20

57

40

PTRLD

JSR

PTRINI

4004

20

6F

40

LOAD

JSR

GETPTR

4007

C9

3B

CMP

$3B

4009

DO

F9

BNE

$LOAD

400B

A9

00

LOADS

LDA

00

400 D

85

F7

STA

$F7

400F

85

F6

STA

$F6

4011

20

8B

40

JSR

PTRBYT

4014

AA

TAX

4015

20

91

1F

JSR

$1F91

4018

20

8B

40

JSR

PTRBYT

401 B

85

FB

STA

FB

401D

20

91

1F

JSR

$1F91

4020

20

8B

40

JSR

PTRBYT

4023

85

FA

STA

FA

4025

20

91

1F

JSR

$1F91

4028

8A

TXA

4029

F0

OF

BEQ

LOAD3

402B

20

8B

40

LOAD2

JSR

PTRBYT

402 E

91

FA

STA

FA,Y

4030

20

91

1F

JSR

S1F91

4033

20

63

1F

JSR

S1F63

4036

CA

DEX

4037

DO

F2

BNE

LOAD2

4039

E8

INX

403A

20

8B

40

LOAD3

JSR

PTRBYT

403 D

C5

F6

CMP

$F6

403 F

DO

12

BNE

LOADER

4041

20

8B

40

JSR

PTRBYT

4044

C5

F7

CMP

$F7

4046

DO

0B

BNE

LOADER

4048

8A

TXA

4049

DO

B9

BNE

LOAD

404B

A2

OC

LOAD7

LDX

OC

404D

20

31

1E

LOAD8

JSR

$1E31

4050

4C

4F

1C

JMP

START

4053

A2

11

LOADER

LDX

11

4055

DO

F6

BNE

LOAD8

4057

A9

01

PTRINI

LDA

$01

4059

8D

03

17

STA

$1703

405C

8D

02

17

STA

$1702

405 F

AD

0'2

17

LDA

$1702

4062

29

02

AND

$02

4064

DO

08

BNE

OK

4066

A9

58

LDA

'X'

4068

20

A0

1E

JSR

$1EA0

406B

4C

57

40

JMP

PTRINI

406E

60

OK

RTS

406F

AD

02

17

GETPTR

LDA

1702

4072

29

20

AND

$20

4074

F0

F9

BEQ

GETPTR

4076

A9

00

LDA

$00

4078

8D

02

17

STA

$1702

407B

A9

01

LDA

$01

407D

8D

02

17

STA

$1702

4080

AD

02

17

CHECK

LDA

$1702

4083

29

10

AND

$10

4085

F0

F9

BEQ

CHECK

4087

AD

00

17

LDA

$1700

408A

60

RTS

408B

20

6F

40

PTRBYT

JSR

GETPTR

408 E

20

AC

1F

JSR

$1FAC

4091

20

6F

40

JSR

GETPTR

4094

20

AC

1F

JSR

$1FAC

4097

A5

F8

LDA

$F8

4099

60

RTS

409A

20

57

40

MAIN

JSR

PTRINI

409 D

20

6F

40

LOOP

JSR

GETPTR

40AO

4C

9D

40

JMP END

LOOP

CROSS REFERENCE TABLE

Symbol

Value

Referenced

CHECK

4080

4085

GETPTR

406 F

4004 4074 408B 4091 409D

LOAD

4004

4009 4049

LOADER

4053

403F 4046

LOADS

400B

* # # #

LOAD2

402 B

4037

LOAD3

403A

4029

LOAD7

404B

**■»*

LOAD8

404D

4055

LOOP

409 D

40A0

MAIN

409A

#** *

OK

406 E

4064

PTRBYT

408B

4011 4018 4020 402B403A 4041

PTRINI

4057

4001 406B 409A

PTRLD

4001

# * # *

START

1C4F

4050

read until a semicolon is found; the next two characters give the hexadecimal number of bytes on the current line to be punched. This is followed by four characters, two bytes, giving the high order and low order bytes of the starting address for the data to follow. This is followed by the data which KIIV1-1 software always punches 24 bytes per line, a 2 character checksum for the line, and a carriage return. The carriage return is followed by six null characters, and a semicolon starts the next line. The last line punched contains 0 for the number of bytes, 0 for the address bytes and is followed by a four character checksum. When finished reading a paper tape, KIM-1 types 'ERR KIM' if the checksum does not compute (there has been an error in reading the tape), or just 'KIM' if the tape was read correctly.

The software consists of a copy of the KIM-1 monitor routine for reading paper tape modified by removing all calls to the GETCH and GETBYT routines and substituting two new routines, GETPTR and PTRBYT. A new subroutine, PTRINI is called at the beginning of the mainline program to properly configure the IO lines and check that the read head on the Fly Reader is closed. If it is not, KIM-1 will type out the character 'X' endlessly until the read head is closed. The software shown in listing 1 occupies 154 bytes starting at hexadecimal location 4000.

The Fly Reader is an excellent way to add a high speed paper tape reader to a microprocessor system. It is easy to interface and requires only a single +5 V supply. Asa fast paper tape device it is considerably faster than an audio tape cassette system and offers increased flexibility of operation."

80

THE HOME COMPUTER COMES OF AGE

Beyond state-of-the-art capabilities, handsomely housed in a fine piece of functional furniture.

Noval Incorporated proudly introduces the finest personal computer ever offered, the NOVAL 760 COMPUTER. This fully computational, self-contained hardware and software package offers limitless expansion capabilities. NOVAL's extensive and expanding library of programs presents exclusive opportunities for educational applications, practical implementations and a world of fun. And you can develop low-cost end user products never before available at the small board level.

The NOVAL 760 COMPUTER, in its handsome desk setting will take you wherever your imagination wants to go.

Introducing the NOVAL 76CrComputer

m£ww

The Ultimate in Home Computers

$2995 includes a fully-assembled, fully-tested personal computer with:

• Handsome wood desk, designed to complement any decor

• Crisp black and white 12" professional display monitor

• Full, easy-to-use AlphaNumeric Keyboard

• Printer

• Extensive graphic capability

• Fully remote-control, professional mag tape system

• 8080 Microprocessor System

16K RAM 3K PROM

• Display control, with additional

1K Refresh RAM

2K Character generator

RAM 1K Scratch pad RAM

• 8 built-in I/O ports

• Power Supply

• System Software on mag tape, with

Interactive Editor/Assembler I/O control for

Printer

Display (black & white or optional color)

Mag Tape Unit

Audio Tone Generator

Keyboard

Film Reader

Paper Tape Reader Graphics On-line debugging

technique E-PROM burner Copy-verify

• Comprehensive and complete Operating Manual (also available separately)

The NOVAL 760 COMPUTER Instant-Edit feature makes Assembly Language interactive AS YOU WRITE IT! The computer corrects errors before they're entered.

And Look at these Additional NOVAL Capabilities:

• System Software on PROM

• BASIC on Mag Tape

• BASIC on PROM

• Bright color display screen

which converts for TV use

• Second display screen

• 16K additional RAM

• E-PROM Burner

• Bus-extender

• Film reader

• Paper tape reader

• Dual hand-held keyboards for competitive game action and, for the first time on a home computer,

• Basic Graphics!

The NOVAL 760 COMPUTER Operating Manual This comprehensive, yet easy-to-understand, Noval Operator's Manual provides an exciting introduction to the capabilities and possibilities of microprocessor technology. In step-by-step, "how to" fashion, the intriguing inner-workings of the NOVAL 760 COMPUTER are revealed (included with your 760 Computer or available separately for $20.00). Challenging Libraries Available Now Add the excitement of actionpacked competition as your child learns the elements of math with Noval's extensive TELEMATH library. TELEMATH, a computer audio-videographic instructional system developed by Noval, presents challenging math problems to each of 2 players. The first player responding correctly moves one step closer to victory in this graphic game format.

Our exclusive affiliation with Gremlin Industries, the leader in commercial computer videographic and wall games, offers you the opportunity to play some of the most sophisticated games ever developed at home! With the Gremlin library, your NOVAL 760 COMPUTER becomes a home entertainment center.

The expanding libraries of TELEMATH and Gremlin are available to all NOVAL 760 COMPUTER owners.

The NOVAL 760 COMPUTER. A fully-assembled, fully tested personal computer... not a kit!

If you can imagine it, you can achieve it with the NOVAL 760 COMPUTER.

NOVAL

NOVAL INCORPORATED, 8401 Aero Drive, San Diego, California 92123 • 714/277-8700

Classified Ad

FOR SALE OR TRADE: Issues 1, 2 and 3 of BYTE for $10 or exchange for May 1976 issue and $5. CPT William T Pace, 5433B Seay St, Fort Polk LA 71459. (318) 537-7198.

FOR SALE: Computers in Laboratory Medicine. I have several copies of this book which are surplus to a class requirement. This excellent book is edited by Derek Enlander MD and is one of the most up to date and forward looking works on the subject of computerization in nuclear medicine, clinical pathology, anatomic pathology and diagnostic data retrieval. The book was published by Academic Press in 1975-1976 and costs $14. David Johnson, 1473 Pine St, San Francisco CA 94109.

FOR SALE: IBM 2311 compatible disk drive made by Marshall, plus disk pack, $425.Teletype ASR 33 with auto-answer modem, auto-dial, stand. Three MITS 4 K dynamic boards, operating. Signetics 3000 Microprocessor Designer's Kit. Make offer. Lenny Heath, Bob Turnage, 86 Village Grn, Greenville NC 27834. (919) 752-7813.

FOR SALE: Two MITS 4MCD memories, one S-4 K update kit, less RAMS. All assembled, all nonfunctional. First cashiers check for $145 takes it all. K K Tatlow, 303 S 4th St, Rockford IL 61108.

FOR SALE: Friden Flexowriter Model 2303 with paper tape punch reader, 7 level, types 100 wpm in upper and lower case, works good, recently serviced, can be converted to ASCI I, $150 plus shipping. J E Upchurch, POB 1987, Sebring FL 33870.(813)385-2788.

FOR SALE OR TRADE: One Cartrivision video tape recorder, camera and tapes, $650 cash or Altai r, I MSA I equivalent with memory. Doug Thurston, POB 1104, Silsbee TX 77656. (713) 246-3091.

FOR SALE: Altair 8800 computer with 2 MITS 4 K Dynamic memory cards, 88-ACR cassette interface, 88-2SIO serial board, 88-PIO parallel board, 2 expander boards, 8 K BASIC on cassette. Not completely assembled. Original cost was over $1200. Will sell for $750. Bob Majdanski, 214 Coolidge Av, Hasbrouck Heights NJ 07604. (201) 288-3742 after 7 PM.

WANTED: BYTE numbers 1, 2, 3, 8, 9 and 10. I will consider any offer, even partial ones. (One issue is better than none.) Send your terms and asking price to me and I'll get in touch with you. Tony Aiuto, 19 Old Field Ln, Lake Success NY 11020.

FOR SALE: Sphere 340 system with 20 K programmable memory plus 16 K memory board less memory chips, 1 K EPROM system monitor, full SIM board (one cassette and modem), 80 column line printer with tractor feed, dual floppy disk, 9 inch CRT in console, large power supply, 4 K EPROM board (1702A), no EPROM chips. Software includes assembler, editor, IO handler, memory test and disassembler. This system is ideal for program development. Working perfectly, $6500. Wayne Smith, 227 S State St, Salt Lake City UT 84111. (801) 363-4941.

FOR SALE OR SWAP: One Mohawk Data Systems 1101 keyboard and tape unit. It's in good working condition with loads of electronics and it would even make a nice desk! Will trade for Altair 8800 interface, memory, terminal or best offer of cash. Write G Ryan, Rm 1-15, Off Campus Apts, Potsdam NY 13676.

FOR SALE: HP-65, including a case, charger, manuals, programming forms, over 100 magnetic cards with tested prerecorded programs, and 40 blank magnetic cards for your new programs. Any of over 140 HP-65 Users' Library programs available for copying cost. Remember, the HP-65 is faster than the HP-67; so is better for problems where speed is needed. $300. Delmer D Hinrichs, 2116 SE 377th Av, Washougal WA 98671.

FOR SALE: IMSAI 8080 with 22 card mother board, new in box, $645. Also, will assemble and debug it for you for $120 extra. S Kim, 10190 Vicksburg Dr, Cupertino CA 95014. (408) 996-0537, after 7 PM.

FOR SALE: Two PDP-12s (PDP-8 and Line); four 4 K 12 bit memory units; three DF 32 disks, 32000 words 16.7 ti$ access time; two PC-12 high speed tape readers, 300 cps; two PC-12 high speed tape punches, 50 cps; two AF01-AM08 analog converter systems; two IO bus converters; two Teletypes; Dual-MS and OS-8 software and a lot of Decus software for the PDP-8, BASIC, FORTRAN and 8 K assemblers. All this for $5,500. I'll sell the units as two or three PDP-12s separately or together. Contact Keith Elkin, Dianavagen 30, 11 5 43 Stockholm SWEDEN 08/67 35 68.

FOR SALE: Model 15 Page Printer - Baudot Teletype suitable to OSI, MITS 680b computers. Excellent working condition, with current source and box of paper. Also, Friden Auxiliary Punch — Baudot paper tape punch. Could be modified to ASCII with additional parts, not supplied. Probably works, not guaranteed, with stand and motorized tape take up spool. Make offers for either to GAR Trollope, 433 Cherry Ln, Lewiston NY 14092. (716) 754-7222.

FOR SALE: M6800 cross assembler. A two pass cross assembler written in FORTRAN IV is available for the M6800 Motorola micro. Input is in fixed format. Statements are similar to Motorola assembler language, most features of the language being supported. Additionally, a system symbol table is supported, enabling symbolic reference to system addresses and assembly of routines to contiguous memory locations. Send $1 for the manual, and $5 for the listing or $8 for a paper tape (state if XOFF needed) to G A R Trollope, 433 Cherry Ln, Lewiston NY 14092. (716) 754-7222.

FOR SALE: CDP-1802 microcomputer software, Morse keyboard, 256 bytes, $3. WA6UYV, 4956 Andrea Blvd, Sacramento CA 95842.

FOR SALE: Viatron System 21 in working condition. Must sell to make room for 8080 system, $300; you pay shipping. Jim Williams, 4175 Walnut Ridge Dr, Columbus OH 43224, (614) 889-3836, (days).

TIMESHARING SERVICES WANTED: Research and advanced degree level programs and routines of civil and mechanical engineering, or bio-engineering or bio-medical interest. Please send full information and price list to Donald Becnel, POB 14473, Baton Rouge LA 70808.

WANTED: Someone who has or wants to write an 8 K version of BASIC for my COSMAC ELF, as in the Popular Electronics August 1976 construction article. It uses the RCA COP 1802 central processor unit. Please send any and all correspondence on this subject to Greg Watson, 9617 Jomar Dr, Fairfax VA 22030.

FOR SALE OR TRADE: BYTE issues #1 thru #10, $50, or swap for first six issues of 73 magazine or first three issues of CQ magazine. Wanted: Flexowriter with upper and lower case type; will buy or swap for three upper case only machines, one designed for computer interface. Greggory S Walls, 5630 Ensenada Way, Riverside CA 92504.

TELEPRINTER: Creed 7B. Serial input/output device. Swap for KIM-1 or similar microprocessor. Free delivery. All BYTE back issues, 1975 and 1976 (excluding numbers 3 and 10), included. T N Arthur, 30 Willingdon Av, Kloof 3600, Natal Republic of SOUTH AFRICA.

FOR SALE: Vidar ^624 computer clock, 999 days, 23:59 hours, 23:59 minutes and 60 seconds, BCD output (like new), S200. Also, 1 Brpe (used) $100. FOB, Norwich NY 13815, (607) 334-4478.

WANTED: BYTE issues, October and November

1975, (~2, 3). For sale or prefer to trade for the above issues, December 1975, June thru December

1976, (^4, 10, 11, 12, 13, 14, 15 and 16). David A Eastman, 46 Sable Av, N Dartmouth MA 02747, (617) 993-7098.

FOR SALE: BYTE #1 in mint condition (never removed from mailing wrapper). Best offer over $20. Steve Saunders, 5400 Ellsworth Av, Pittsburgh PA 15232.

FOR SALE: MCS 6502 resident assembler. Uses 6530 TIM input and output routines. Can be easily modified to be used in systems not having the TIM chip. Resides in less than 2 K memory (4000-47FF). This software contains a text editor (TED) which sets up the source file, and a 2 pass assembler which assembles the source and generates a symbol table. If an error occurs, an error code and line number are outputted which pinpoints the error in the source file. Source file and symbol table can be located practically anywhere tn memory. Assembled programs can be executed via the TED R (Run) command. Hexadecimal listing and operator's manual, $15. Source code and manual, $25. C W Moser, 3239 Linda Dr, Winston-Salem NC 27106.

FOR SALE: M6800 cross assembler written in FORTRAN and set up to run under any system with some minor modifications. Other M6800 programs available. Mid-Michigan Computer Club, T Preston, 15151 Ripple Dr, Linden Ml 48451.

KIM-1 USERS: Am designing a universal PC board same size as KIM-1 board. Double sided, space for up to 70 16 pin and 12 28 pin chips, four regulator or power transistor packages with heat sinks. Need ten people to get cost to $30 each. Contact Gerry Houlder, 3832 Stevens Av, Minneapolis MN 55409.

WANTED: The base for the CRT terminal enclosure that was offered by Tri-Tek. Will buy outright or swap for TTL chips or back issues of BYTE. If you have one of these bases for sale, write Larry Ingram, 20 Locust St, Cambridge MA 02138.

AUCTION: Issues 1, 2 and 13 of BYTE. Good condition. Make your offer of cash or equipment for use with Altair 8800. Bidding closes last day of month this is published. Enclose SASE and you will be notified if you are not a successful bidder. Also for sale: DEC PDP-11 regulators 5 V 25 A, $30; 15 V 10 A, $20. H S Corbin, 11704 Ibsen Dr, Rockville MD 20852.

FOR SALE: DEC PDP-8E with following options: MM8E EJ 8 K core memory, KM8E memory extension and timeshare control, KC8E programmers console, KP8E power fail detect, KL8E console Teletype control, BE8A omnibus expander. Asking $3000. If interested contact David Kohl, 3002 Bedford Av, Brooklyn NY 11210.(212)952-4420 days.

COMPUTER Paper tape punches and readers, 8 and 5 level. IBM 056 Verifier, ultra high speed paper tape punch (2400 ppm), 5 level. PDP8e/Lab8e software to exchange. 150 item list of ham, computer, test, hi fi, aircraft, photo, and antique gear for sale or trade. SASE. K2DCY, 11 Squire Hill Rd, N Caldwell NJ 07006.

FOR SALE: Teletype Model 33 KSR, $250. Model 33 ASR, $350. Friden ProgramBtic Flexowriter

Model SPD with tape punch and tape reader, $225. Friden Programatic Flexowriter Model 2201 with tape punch and tape reader, $325. Send SASE for small list. Ron Turnure, 206 S Highwood Av, Glen Rock NJ 07452.

Readers who have equipment, software or other items to buy, sell or swap should send in a clearly typed notice to that effect. To be considered for publication, an advertisement should be clearly noncommercial, typed double spaced on plain white paper, and include complete name and address information. These notices are free of charge and will be printed one time only on a space available basis. Insertions should be limited to 100 words or less. Notices can be accepted from individuals or bona fide computer users clubs only. We can engage in no correspondence on these and your confirmation of placement is appearance in an issue of B YTE.

Please note that it may take three or four months for an ad to appear in the magazine. ■

85

synchro-sound enterprises

"THE COMPUTER PEOPLE"

se

9*

"IN STOCK"

NEW LEAR SIEGLER ADM - 3A KIT

FULL ADDRESSABLE CURSOR

CHARACTER GENERATION

5x7 dot matrix.

DISPLAY FORMAT

Standard: 1920 characters, displayed in 24 lines of

80 characters per line.

CHARACTER SET

Standard: 64 ASCII characters, displayed as upper

case, plus punctuation and control.

COMMUNICATIONS RATES

75, 110, 150, 300, 600, 1200, 1800, 2400, 4800,

9600, 19,200 baud (switch selectable).

IMSAI 8080 MICROCOMPUTER POWERFUL • EASY TO USE • LOW COST

$619.95/22 SLOT MOTHER BOARD 849.95/WITHZ-80CPU

COMPUTER INTERFACES

El A standard RS232C and 20 mA current-loop

(switch selectable).

DATA ENTRY

New data enters on bottom line of screen; line feed

causes upward scrolling of entire display with

top-of-page overflow. Automatic new line switch

selectable, end-of-line audible tone.

ADM-3A KIT $ 839.95

ADM-3A ASSEMBLED 1099.95

LOWER CASE OPTION 89.00

(when ADM-3 kit is purchased from us .... 59.95)

FOLLOWING MANUFACTURERS IN STOCK PERIPHERAL VISION, iCOM, TDL, OAE, PROCESSOR TECH., SWTP, APPLE, HAYDEN, TARBELL, IMSAI, LEAR SIEGLER, OKIDATA, DEC, JAVELIN, TELETYPE ASR-33, TRW.

SPECIAL 9" JAVELIN HIGH RESOLUTION VIDEO MONITOR $159.95

*****************

* 2708 EPROM $59.95 *

* Set of seven $350.00 * *****************

Circle 96 on inquiry card.

86

DECwriter II

($1099.00)

OKIDATA MODEL 110 110CPS DOT MATRIX LINE PRINTER FRICTION FEED* $1099.00

TRACTOR FEED 1229.00

RS232C SERIAL INTERFACE 250.00

MOST ITEMS IN STOCK FOR SAME DAY SHIPPING. FULL MODERN REPAIR FACILITIES ON PREMISES-WE SERVICE WHAT WE SELL.

*

* -K * *

$1769.95

synchro-sound enterprises

Features

132 column printing

30CPS

Full Keyboard

Tractor Feed

NEW COMMERCIAL QUALITY KEYBOARD

The Model SS-1 Communications Terminal is a non-contact capacitive keyboard with a guaranteed life of over 100,000,000 operations. FEATURES

• MOS/LSI Encoder with high reliability and low power consumption

• n Key Roll Over which eliminates operator error and increases thruput

• Hysteresis for tease proof operation

• Solid State performance at mechanical switch prices

• Tactile Feedback at the operate point

• ASR-33 Array with four mode encoding

193-25 Jamaica Ave., Jamaica, NY 11423 Phone (212) 468-7067

HOURS 9 - 4 DAI LY + SATURDAY

BANKAMERICARD MASTER CHARGE

VISIT OUR NEWSHOWROOM

WORKING UNITS ON DISPLAY

KEYBOARD KIT $ 99.95

ENCLOSURE 49.95

(WITH NUMERIC CUTOUT)

NUMERIC PAD 34.95

COMPLETE KIT (with pad) 179.95

ASSEMBLED UNIT (with pad) 229.95

87

Software for the Economy Floppy Disk

Dr Kenneth B Welles General Electric, Nela Park 2623 Fenwick Rd University Heights OH 44118

The two fundamental routines needed for a floppy disk system are: Write a block of data to the disk, and read a block of data from the disk.

As hobbyists are rapidly finding out, even the most sophisticated hardware is next to useless without the proper software to control it. My previous article on the floppy disk drive interface (see February 1977 BYTE, page 34) described a hardware device of the simplest and, consequently, most software dependent type. This month's article describes the operation and use of the routines needed for transferring data between the computer and a disk drive (one of up to eight) connected to the interface.

The two fundamental routines needed for a floppy disk drive system are: Write a block of data to the disk, and read a block of data from the disk. This sounds simple in theory but in practice much more information and many operations are needed. How many bytes of data are in the block to be transferred, and which disk drive should the block go to or come from? At which track and sector is the block to be located? How will an error be detected (and if detected what steps should be taken for correction)? These are some of the major questions involved, without even considering such specific details as data format, file structure, unrecoverable errors, directory structures, naming and dating conventions, and so on ad futilitum.

A block read or write routine can be divided into four stages:

• Set up for the data transfer

• Transfer the actual data to or from the disk

• Error detection

• Error correction

These stages must, by their definition, occur in the order listed, and in most disk systems all four stages are included. In some operating systems the error detection and correction stages are ignored during a write operation. While this speeds up transfers by eliminating a reread or verify operation, it means that most write errors will be unrecoverable.

Write Set Up

Because this interface is quite unsophisticated, data to be written onto the disk must be prepared in memory in exactly the manner that it will appear on the disk. A preamble containing 16 bytes of zeroes (128 "0" bits) and a byte boundary synchronization signal (or sync byte) must precede the data. Before the data is written, the error detection bytes must be calculated and stored with the data to be written, since there will be no time to calculate them once the write operation has been initiated. This software uses a 16 bit cyclic redundancy check (CRC) word calculated from the data bytes by the binary polynomial:

x16+ x12 + x5+ 1

Because they are precalculated, the error detection bytes may be put in any position before, within, or after the data. I chose to place them directly after the data. The assembled block of data to be transferred (consisting of the preamble, sync byte, data and CRC bytes) is now in the proper format for transmission to the disk, but the disk drive itself is not yet properly set up for the

88

transfer. Because the interface may control multiple drives, the first action of the software is to select the proper drive and to assure that it is ready. "Ready" means that a diskette is loaded and revolving, and the power supplies are working. Next, the current track location of the data transfer head is determined and compared to the desired track. If the desired and current tracks differ, the software must step the head in or out at the proper rate (10 ms per track) until the correct track is reached, and then delay for the proper head settling time (10 ms) before continuing.

If the head is not currently loaded, the software must load the head and allow time for the loading to be accomplished (30 ms).

All that remains before initiation of the data transfer is to find the starting point of the proper sector. Because the timing is fairly critical between finding the sector and initiating the write operation, all of the parameters for the write data loop such as pointers, counters and output commands must be set up ahead of time in the 8080 registers. The software now searches.for the index pulse from the index hole of the selected disk drive and, having found it, begins to count sector pulses until the desired sector is found. When the leading edge of this sector pulse is sensed, the software transfers immediately to the write routines, using the values previously stored in the registers to speed the initiation of the write operation. This generates the proper timing relationship between the sector pulse and the start of the recorded data.

16

BYTES

10000001

DATA BLOCK

16 BYTES

PREAMBLE

SYNC BYTE

N DATA AND

HOUSEKEEPING

BYTES

> POSTSCRIPT

Figure I: Floppy disk data transfer block format. The simplicity of this "hard sectored" floppy disk system requires that a specific format be used for the data. The first 16 bits act as a preamble to enable the interface to distinguish between data pulses and clock pulses. Next comes the sync byte used by the Universal Synchronous Receiver Transmitter (USRTj to find the boundaries between bytes. This is followed by the actual data and, finally, a 16 byte safety region to assure that no data is destroyed when the disk drive write head is turned off. See also table 2.

Write Data Transfer

If N bytes of information (including the cyclic redundancy check) are to be recorded on the disk, the software will actually send out N+33 bytes of data to the interface. Figure I shows that the first 16 bytes (a preamble of zero bytes) are recorded to allow the interface to correctly distinguish between data pulses and clock pulses when this data block is read. The seventeenth byte recorded is the sync byte, in this case a binary value of 10000001. This sync byte is used by the Universal Synchronous Receiver Transmitter (USRT) to find the boundaries between bytes during a read operation. The next N bytes are the block of data to be recorded, and finally there are 16 bytes as a postscript to assure that no data is destroyed when the disk drive write gate is turned off. Because the only use of this data is to maintain clock synchronization and protect the preceding data, the contents of the last 16 bytes are not critical, and may overlap data used for some other purpose.

Write Error Detection

After all N+33 bytes have been sent to the disk through the interface, the write gate of the disk drive is turned off and error detection may now be performed. Error detection consists of performing a single read operation of the block of data just written. The block of data read in is compared byte by byte to the block of data written. If all N bytes are not the same for both blocks, an error has occurred. This process could be called a "verify" operation.

Write Error Correction

If error correction is necessary on a write operation that fails to verify, it is accomplished by rewriting the same block of data to the same disk, track and sector. After this rewrite attempt, a verify of the rewritten data is performed and compared to the correct data to determine the success or failure of the error correction operation. If

As block sizes increase there are fewer preambles and postscripts on any given track, thus maximizing the usable data bytes per track.

89

In the very simplest system each block of data would have some form of error detection ranging from a single byte of checksum to a 16 bit cyclic redundancy code or even a complex Hamming code.

Table 7: Characteristics of different data block sizes. Smaller data blocks have the advantage of not tying up large blocks of memory (a premium commodity in many small systems). Large data blocks, by comparison, speed up data transfer, require fewer blocks per track, and maximize the number of usable data bytes per track.

the write operation fails four (or some other small integer) times in a row, all hope is abandoned, an error message is printed on the user's console device, and the write routine terminates. Manufacturers' recommendations for action taken at this point are as follows: Move to an unused sector and track on the disk in question, and retry the write operation. If the error persists, the disk drive has write circuitry problems; notify the user. If the error is eliminated, then the track and sector where the original error occurred probably has some damage to its oxide coating. In this case, relink the data file to reflect the new location of the data (the track and sector where the second attempt was made), and then record in some table the fact that the original track and sector where the write operation failed is an unusable area. But what do you do when the area that failed to write properly is the location of the table where the failed areas are stored? This is why operating systems designers have such a high incidence of insanity. The software in this article ignores the whole issue, the traditional ostrich solution.

Read Set Up

No data preparation need be done on a read operation because the only routines required are disk drive select, head load, track seek and sector seek. These are the same routines used by the write operation as described earlier.

Read Data Transfer

The USRT is reset to search for an occurrence of the sync byte within the incoming serial data, and the program is set to wait for the USRT to signal that the sync byte is found. When the sync byte is found, data is brought in from the interface and stored in memory. For a block recorded with N bytes of information as in the write operation, a total of N+1 bytes are read in. The first byte brought in by the software is the sync byte, accounting for the extra byte transferred.

Data Blocks

Usable B

Per Track

Per Bio

1

5127

2

2549

4

1260

8

615

16

293

32

132

Data Bytes Housekeeping Per Block Bytes Per Block

4096

2048

1024

512

256

128

1031

501

236

103

37

4

All Formats Store 315,392 Data Bytes Per Disk

Read Error Detection

The routine that calculated the 16 bit cyclic redundancy check (CRC) for the write operation is now used to calculate the CRC of the data block just read. The calculated cyclic redundancy check must match the CRC read in if the data is correct. If these values do not agree, an error has occurred during the read operation.

Read Error Correction

If a single read operation is unsuccessful, two more attempts are made to read the data. If the computed and read-in cyclic redundancy check values still disagree, the disk head is stepped in one track and then out one track, and up to three more read operations are tried. Continued lack of success causes the head to be stepped out and then stepped in one track, and three more attempts to read are made. If the error persists after all of this, then this software concludes that the data is unrecoverable. The jogging of the head one track in or out is recommended by the manufacturer to release any dust particles which may have lodged between the disk and head, and which therefore may be causing the read errors.

Block Size

The discussion of the software to this point has referred to the transfer of a "block" of data, but no definition has been made of the size of this block. The disk is divided physically into 32 different sectors by the presence of 32 sector holes. The combination of the rotational speed of the disk (360 rpm), the data rate (250,000 bps), variation in the timing of the sector hole detection (±500 us), and the necessity for the 16 byte preamble, sync byte and 16 byte postscript on each record determines that if each track holds 32 blocks of data, then each block has 132 usable data bytes. There is no electronic or philosophical reason that the disk must be recorded in a format of 32 data blocks per track, or even that a 32 block track must consist of full size 132 byte blocks. The proper operating system software could quite easily make use of a data format with only 16 bytes per block and 11 blocks per track. However, this would make the capacity of each disk less than 30 K bytes, a tenfold reduction in storage capacity. The software presented here can be easily modified to allow other block sizes and formats to be used, and the reasons for choosing different block sizes will be presented before attempting to justify the block size used.

90

Smaller data blocks have three main advantages. First, because of the nature of a disk drive, data must be transferred one block at a time, never as a fraction of a block. If the data is not ready all at once (as is usually the case), then some area of computer memory must be dedicated to the storage of this data until a full block can be acquired. The size of this buffer area is the same as the size of the block, and a smaller data block consumes less memory than a large data block. Even with the dropping prices of memory, the average person cannot afford to dedicate large blocks of a computer's storage solely to disk data buffering, especially in a sophisticated operating system that may work on many disk data files simultaneously and require a data buffer for each one. Secondly, when recording data files onto a disk device, the data file rarely contains the right number of bytes to be stored in exactly an integral number of blocks. An average of one-half of a data block is wasted on each different file recorded on the disk. If one works with a data base that consists of a large number of short data files, this lost capacity of this disk can become significant. Smaller block size minimizes this loss of storage capacity. Last and definitely not least, the growing awareness of the need for standardization of data storage among the users is a motivation to seek out de facto (read IBM) standards to work with. Operating with somebody else's block and physical recording parameters makes it potentially possible to exchange data between different computer systems via diskettes. The most widely embraced standard for floppy disk data operations is the IBM soft sectored standard. Unfortunately, this standard is incompatible with the inexpensive interface I described in my previous article, and does not (at the time of this writing) lend itself to as cheap and simple an interface. However, the IBM standard uses 128 byte data blocks, and large amounts of software exist for it. Software for the hard sectored version of this format currently uses data blocks of 128 byte size, although the new double density disk drives are promoting software with 256 byte data blocks. Most existing software, then, is written with 128 byte blocks of data, 32 blocks per track on a hard sectored disk or 26 blocks per track on a soft sectored disk. This is an argument in favor of short data blocks, based on conventions of existing users of floppies.

Larger block sizes also have three main advantages. First, because the software presented here can only transfer one block of data per revolution, large data blocks greatly

speed up data transfer. Dedicating a track to a single data block, a 5 K byte block of data can be transferred in 1/6 second. Second, large block sizes mean fewer blocks per disk. This reduces the data required in the addressing of disk data blocks, and can reduce the complexity of directories and block occupancy bit maps. Table 1 shows the third advantage of large data block sizes. As block sizes increase there is less overhead on any given track, and so the maximum number of usable data bytes per track (and per disk) increases. While the overall amount of data storage increases by only a small percentage, the increase is important to certain data structures, as will be shown.

In block structured random access data bases, such as disk storage, data is usually stored in blocks of 2n bytes. An integral power of two is a handy size for organization of data in a binary computer and makes data manipulation easier than with some other sizes. With each block of useful data, there is some other data which is transparent to the user and of no real concern to him/her, but which is associated with file management and the operating system of the computer. This housekeeping or "overhead" data contains information about the status of the data within the block. In the very simplest system, for instance, each block of data would have some form of error detection, ranging from a single byte of checksum to a 16 bit cyclic redundancy code or even a complex error correcting Hamming code. Most simple systems also record the track number and sector number of the block with

Table 2: This is an expansion of figure I showing how the data block is laid out in memory prior to an output disk transfer or following a read operation from the disk. The "housekeeping" bytes mentioned in the text are used for error detection and error correction as well as for labeling files.

No other peripheral device requiring direct memory access (DMA) operations should be active during the read or write operations of this software. In general, no interrupts or hold operations lasting longer than two microseconds can occur simultaneously with disk writing.

Byte Number (Decimal)

-17 to-2 -1 0 to 8 9 10 11 12 13 14 15 16 to 19

20 21 to 276 277 278 to 279 280 to 295

Value

0

hexadecimal ASCII 0 to 7 3 to 76 0 to 30 3 to 76 0 to 30 3 to 76 0 to 30

0 to 255 DATA

CRC

0

Function

Clock synchronization 81 Sync byte for data synchronization 9 letter file name Drive number Track number

Sector number (must be even) Track number of preceeding block Sector number of preceeding block Track number of following block Sector number of following block Future use

Byte count of incomplete data blocks User data (256 bytes) Future use

16 bit CRC (cyclic redundancy check) Trailer bytes

Bytes 0 to 279 are shown as they exist in memory. Bytes —1 7 to 295 are shown as they exist on the disk.

NOTE: The software in this article uses only bytes 9 to 11 and 278, 279. (All bytes numbered 0 to 279 are transferred to disk and back.) See note at end of article concerning a complete floppy disk operating system which uses all the bytes.

91

THE FOLLOWING IS A GENERAL PURPOSE ERROR TVPEOUT ROUTINE

THE VFILUE OF CO REFERS TO A USERS ROUTINE WHICH TVPES OUT

THE ASCII VALUE IN THE C REGISTER ONTO THE USERS CONSOLE OUTPUT.

ONLV THE A REGISTER AND FLAGS NAV BE DESTROYED BY CO.

EQU ORG

0 10H

; THIS ROUTINE MAY BE ORG'D ANYWHERE IN MEMORY

THIS ROUTINE TVPES OUT AN ERROR MESSAGE TO THE USER. IT IS CALLED INTERNALLY AS:

CALL ERTVP

DB X THE RESULT IS THE TVPING OF: ERROR X

0010

E3

ERTVP:

XTHL

Ban

F5

PUSH

PSW

0012

C5

PUSH

B

0013

D5

PUSH

D

0014

7E

MOV

A, M

0015

23

I NX

H

0016

E5

PUSH

H

0017

F5

PUSH

PSW

0018

212800

LXI

H, ERMES

001B

CD5500

CALL

TXTVP

001E

Fl

POP

PSW

001F

CD2F00

CALL

BVTVP

0022

El

POP

H

0023

Dl

POP

D

0024

CI

POP

B

0025

Fl

POP

PSW

0026

E3

XTHL

0027

C9

RET

0023

0D0A4552

ERMES:

DB

13. 10. ' ERRO'

002C

524FD2

002F

F5

BVTVP:

PUSH

PSW

0030

0E20

MVI

C. ' '

0032

CD0000

CALL

CO

0035

Fl

POP

PSW

0036

F5

HMTVP:

PUSH

PSW

0037

OF

RRC

0038

0F

RRC

0039

OF

RRC

003P

0F

RRC

003B

CD4300

CALL

HEXCHR

O03E

Fl

POP

PSW

003F

CD4300

CALL

HEXCHR

0042

C9

RET

0043

F5

HEXCHR:

PUSH

PSW

0044

E60F

AN I

0FH

0046

C630

AD I

'0'

0048

FE3A

CPI

' 9' +1

004A

DA4F00

JC

HEX1

004D

C607

AD I

' A' -' 9' -1

004F

4F

HEX1:

MOV

C, A

0050

CD0OOO

CALL

CO

0053

Fl

POP

PSW

0054

C9

RET

0055

7E

TXTVP:

MOV

A. M

0056

B7

ORA

A

0057

C8

RZ

0058

F5

PUSH

PSW

0059

E67F

AN I

7FH

005B

4F

MOV

C, A

005C

CDO00O

CALL

CO

005F

Fl

POP

PSW

0060

F8

RM

0061

23

I NX

H

0062

C35500

..IMP

TXTVP

0001

ERWRT

EQU

1 ; IF

0002

ERRED

EQU

2 i IF

0003

ERDKNM

EQU

3 . IF

: THESE

ARE THE 19-AUG

FLOPPY DRIVE 76

IF THE DISK FAILS TO WRITE, TYPE "ERROR 1" IF THE DISK FAILS TO READ. TYPE "ERROR 2" IF NO SUCH DISK EXISTS, TYPE "ERROR 3"

1-0 ROUTINES

00F1 00F2 00F3 00F4

00F0 00F1

00F3 00F4 00F5 00F6

0001 0002 0004 FFFB

INPORT OTPORT

FDRED FDSTAT SRTSWE SRTRR

FDINWT

FDWRIT

SPTTFS

SRTRSS

FDOUT

FDOTWT

LOADHD

HDUNLD

EQU EQU

EQU EQU EQU EQU EQU

EQU

EQU EQU EQU EQU EQU EQU

0F0H 0F0H

INPORT

INPORT+1

INPORT+2

INPORT+3

INPORT+4

OTPORT

OTPOPT+1

0TP0RT+2

0TP0RT+3

0TP0PT+4

0TP0RT+5

0TP0PT+6

DATA FROM THE FLOPPY STATUS BITS OF THE FLOPPV READ THE SRT STATUS WORD

INPUTTING THIS RESETS THE USRT TO LOOK KLUGE TO SYNCHRONIZE TO 32 MICRSECS

;DATA TO EE WRITTEN TO THE FLOPPY ; PORT OF THE DEFAULT CHARACTER

SEND SIGNALS TO THE FLOPPY

SVNC TO 32 MICROSECS

THIS COMMANDS LORDS THE HERD FOP 3 SECONDS

THIS FORCES RN IMMEDIATE HEAD UNLOAD

, THESE ARE SIGNALS TO FDOUT (DIRECT FLOPPY CONTROLS:.

WCSEL EQU 1 i 1=TRACK 0-43. 0=TRACK 44-76

FUREST EQU 2 > USE TO RESET A FILE UNSAFE CONDITION

DIRIN EQU 4 iLOGICAL OR FOR IN TRACK

DIROT EQU NOT DIRIN ; AMD FOR OUT TRACK

WRTGAT EQU 10Q ; LOGICAL OR TO START A WRITE

STEPP EQU 20Q ; LOGICAL OR TO START A STEP PULSE

STEPM EQU HOT STEPP ;LOGICAL AND TO STOP THE PULSE

; THESE ARE THE DIRECT TRKZRO EQU 1 UNSAFE EQU 2 FDRDV EQU 4

ETRTUS LINES OF THE FLOPPY (IN FDSTAT>

Listing J: Floppy disk drive input and output routines. As it stands, this listing is one step short of being a complete operating system, but could be used as a starting point for such an operating system. This program will run only on an 8080 with memory having a cycle time of 500 ns or faster; it will not run correctly if any interrupts or direct memory access (DMA) routines lasting longer than 2 ps occur during program execution. (See part I, page 42, February 1977 BYTE, "Software Timing.")

the rest of the data on that block. When some track and sector is read, the track and sector numbers read must agree with the desired track and sector numbers. If these bytes disagree, then a seek error has occurred. The error detection information and the track and sector numbers are simple housekeeping data that the user need never be concerned with during data transfer. A more complex data base management system may store extensive housekeeping information with each block of data. Information such as forward and reverse linkages (pointers to the succeeding and preceding blocks of data in a file), file name, number of valid bytes in a partially filled data block, date and time of the recording of this block of data, write or read protection, user identification, destroy date — all may be recorded as useful housekeeping data.

If a format of 32 blocks per track, 128 data bytes per block is used, table 1 shows that this leaves only four bytes of data available with each block to record housekeeping data. Going to 16 blocks of 256 data bytes per block, the available housekeeping area increases to 37 bytes per block. 512 data byte blocks gives a substantial 103 bytes of housekeeping on each of eight blocks per track. The routines presented here were written as a first low level step toward a full floppy disk operating sytem, and the amount of housekeeping required for the full system necessitated at least the 256 byte block size. The 512 byte block size was ruled out because it consumed buffer space much too quickly, and because a single byte would no longer be sufficient as a buffer data counter.

A DOS Block Format

Table 2 shows the layout of the data block for my disk operating system (DOS) as it exists in memory and as it is written to and read from the disk. There are 280 bytes in the block, 256 of which are usable data bytes, and 24 of which are reserved for housekeeping. Of the housekeeping bytes,

92

five are not currently defined, and all but bytes 9, 10, 11, 278 and 279 are available to the user in the routines listed in this article. As of this writing, a full floppy disk operating system for my peripheral interface to the 8080 has been completed (see note at end of this article). The format described here is that used by this operating system. In this format, the first nine bytes are designated as the file name, ordered a la DEC as six ASCII characters of file name and three characters of extension. Having the file name associated with each block of a file is a great aid in data recovery from crashed systems (a not unheard of occurrence) and in troubleshooting modifications to the operating system (a frequently heard of occurrence). Byte 9 is the number of the device (disk 0 to disk 7) where this file was originally recorded. This number does not have to match the number of the device that the file is subsequently read from. Bytes 10 and 11 are the numbers of the track and sector where this data block is stored. Valid values are any integer from 0 to 76 for the track, and only even integers from 0 to 30 for the sector. (With 256 byte blocks, we have to use every other sector.) Bytes 12 and 13 indicate the track and sector of the block of data preceding this one in a linked data file. If the current block is the first block, and no previous data blocks exist, then bytes 12 and 13 are set to zero. Since track zero, sector zero is reserved for the bootstrap copy of the operating system, no linked file can have this block address as a legal forward or reverse linkage. Bytes 14 and 15 give the track and sector of the data block following this block in the linked file. If this is the last block, values of 0 and 0 are again used to indicate an invalid linkage (end of file).

Because no operating system is ever finished and better ideas are generated as a continuous function of time, bytes 16 to 19 are reserved for whatever functions may become desirable in the future. Byte 20 is used when the last block in a recorded data file is not completely filled, indicating the actual number of valid data bytes stored in the data area. Bytes 21 to 276 inclusive contain the 256 bytes of usable data. The data in these bytes is usually the only data of final concern to a program retrieving data from a file. Bytes 278 and 279 are the cyclic redundancy check bytes, least significant byte first. This 16 bit value is calculated as detailed earlier, from the values of bytes 0 to 276 inclusive.

Now, the Software

Listing 1 shows the software which controls the disk interface and performs the

Listing 1, continued:

13008 0810 0020

9081 0100 0016 0117 0003

E00O

E000 F3 EO01 0602 E803 C5 EO04 CD15EG E0O7 CD6FE0 E00H CI E0OB C8 EO0C 05 EOOD F203E0 E010 CD1000 E013 01 E014 C9

E015 E018 E01B E01E E01F E021 E022 E023 E024 E027 E029 E02C E02F E022 E035 E036 E03? E03C E03F E042 E045 E046 E04S E04B E04D E04E E051 E052 E054 E056 E058 E05R E05B E0SD E05E E05F E060 E061 E064 E067, E069 E06B E06E

E06F CDH3E0

E072 CO

E073 2175E3

E076 115BE2

E079 0600

E07B 1A

E07C BE

E07P CO

E07E 13

E07F 23

E080 05

E081 C27BE0

E084 C9

E0S5 E086 E089 E08F1 EB8D E090 E093 E094 ES97 E09A E09C> E09E E0A1 E0A2

3H65E2

CD2EE1

214EE2

AF

0610

77

05

C221E0

3631

2A66E2

2243E2

215BE2

CDF3E0

EB

2272E3

CDD8E1

CD09E2

113601

214BE2

FIF

P3F1

3A46E2

F60A

E6FP D3F3 D3F4

IB

7FI

B3

C253E0

3A46E2

E6F7

CDR3E1

CDB2E1

CDA3E0

CS

CDB2E1

CDA3E1

CDA3E0

CS

CDIOOO

02

C9

SCTP EQU INDX EQU HEADLD EQU

8 10H

THESE RRE VARIOUS PARAMETERS

SYNCB LNBUF XTRA

LN2SNC DSKLIN

EQU EQU EQU EQU EQU

ORG

DI

MVI

PUSH

CALL

CRLL

POP

RZ

DCR.

JP

CALL

DE

RET

81H I THIS IS THE SVNC BVTE FOR STRPT OF TRUCK

256 i LENGTH OF THE BUFFER

22 ; EXTRA BYTES FOR HOUSEKEEPING

LNBUF+XTRH+1 (DISTANCE OF SVNC TO CHECKSUM

8 ; UP TO 3 DISK DRIVES ON THIS CONTROLLER

OE000H

WRT256 CHKMRT

B

GDWR1 ERTYP ERWRT

I THIS IS DISCONTIGUOUS RRM

; DISABLE THE INTERRUPT TO MAINTAIN CRITICAL TIMING I TRY THIS 3 TIMES BEFORE GIVING UP

, FIRST, WRITE IT

; THEN CHECK FOR PROPER WRITE

i RESTORE STACK, DON'T CHANGE FLAGS

i SUCCESSFUL WRITE. RETRIJN HOW

I A BAD WRITE, TRY AGAIN

; IF WE STILL HAVE TIME, TRY AGAIN

.ELSE, SIGNAL THE ERROR AND QUIT

THIS ROUTINE A'

AND THE DATA RT256; LDA

CALL

LXI

XRA

MVI

UMES THAT THE TRACK AND SECTOR TO BE WRITTEN ARE IS ALL IN WRDAT

CLRLOP; MOV I NX DCR

MVI

LHLD

SHLD

LXI

CALL

XCHG

SHLD

CALL

CALL

LXI

LXI

XRH

OUT

LDA

OR I

MOV

CALL

MOV

OUT

AN I

OUT

OUT

MOV

OUT

INK

DCX

MOV

ORA

LDA AH I OUT

WRDEV DSKNUM : H, WRTBIJF A 1 B, 10H I M, A H B

CLRLOP M, SYNCB I TRKWRT TRKWNT ; H.WRSHC9 CHK436

THIS MUST CONTAIN THE DISK NUMBER! PROCESS ANY UNIT NUMBER CHANGE

; CLEAR THE CLOCK SVNC BVTES BV FILLING WITH ZEROES 16 OF THEM

STORE THE SVNC BVTE

SET UP THE TRACK AND SECTOR POINTS J START OF THE CHECKSUM AREA

WRCHKS ; STORE THE CALCULATED CHECKSUM

TRKGET , GET THE DESIRED TRACK

HEDLOD i LOAD THE HEAD

D,LNBUF+XTRA+32

H, URTBUF , BUFFER AREA TO WRITE TO THE DISK

A

SRTTFS ; TRANSMIT A FILL CHAR OF ZERO

FDBUF I THE OUT STATUS

WRTGAT + FUREST i TURN ON THE WRITE GATE

C, A ;HOLD THE WRITE COMMAND IN C

SCTGET I GET THE PROPER SECTOR

A, C

FDOUT ; INIT THE WRITE GATE QUICKLY

NOT FUREST I TURN OFF FILE UNSAFE RESET

FDOUT

FDOTWT ; KLUGE AND WAIT FOR. READY FOR DATA

A, M

FDWRIT

A, D

E

WRTLOP

FDBUF

NOT WRTGAT

FDOUT i NOW

FDBUF ; THIS IS THE PRESENT STATUS

TURN OFF THE WRITE GATE

THIS ROUTINE PERFORMS A REREAD OF THE SECTOR JUST WRITTEN RETURN IS WITH Z=0 IF A READ FAIL OCCURRED, OR IF A READ DIDN'T MATCH THE IMMEDIATE PREVIOUS WRITE. Z=l IS A SUUCCESSFUL WRITE

CALL

RHZ

LXI

LXI

MV I

LDAX

CMP

RNZ

I NX

I NX

DCR

TRV3RD iTRY 3 TIMES TO READ IT .RETURN WITH Z=0 ON fl BAD ERROR

H, RDSNCB D, WRSNCE B, 0 I

H E: CHKW1

, SET UP A 256 BYTE COMPARE

; 256 ISN'T ALL, EUT IT IS ENOUGH

; GET WHAT WAS WRITTEN

; COMPARE TO WHAT WAS READ

I RETURN ON AH ERROR

I UP THE POINTERS

;SUCCESSFUL RETURN, Z=l

;THIS ROUTINE TRIES 3 TIMES TO READ, THEN JOGS IN, AND OUT AND .AGAIN

R.ED256: DI

; DISABLE THE INTERRUPT FOR CRITICAL TIMING TRV3RD ; TRY 3 TIMES TO READ THE BLOCK ;IF SUCCESSFUL, THEN RETURN

CALL

CALL

CALL

RZ

CALL

CALL

CALL

TRAKIN TRAKOT TRV3RD

TRAKOT TRAKIN TRV3RD

ERTVP ERRED

JOG IN

SCRAPE OFF FLIES AND FROGS

THREE MORE

JIG OUT

SCRAPE OFF DIGITS AND DOGS

LAST CHANCE COWBOY

IF FIHALLV SUCCESSFUL, THEN RETURN

IF NOT. THEN TYPE OUT THE ERROR

THIS ROUTINE TRIES TO READ THREE TIMES, RETURNS Z-l FLAG

IF OK. ON REA

E0A3 3E02

E0H5 3245E2

E0A3 CDB4E0

E0AB CS

MVI STA CALL

REDTPY REDONC

ACTUALLY TRY 3 TI HOLD ONTO IT TRV IT JUST ONCE

93

Listing 1, continued:

E0AC 2145E2 E8AF 35

eobo fb

E0B1 C3R8E0

E0B4 E0B7 E0BH E0BD E0C0 E0C3 E8C6 E0C8 E0CR EOCD EOCF E0D1 E0D3 E0D4 E0DS E0DS E0D7 E0DS E0D6 E0DE E0E1 E0E4 E0E7 EBEB

3R4RE2

CD2BE1

CDD8E1

CD09E2

111R01

2175E3

3E81

D3F2

CD1RE2

DBF3

DBF4

DBFO

77

IB

7R

B?

C2CFE0

2175E3

CDF3E0

3R3RE2

327FE3

2R3CE4

C3EDE3

E0ED 7C E8EE 32 EBEF C0 E0F0 7D E0F1 93 E0F2 C9

E0F3

E0FS

E0F9

E0FR

E0FB

E0FC

E0FD

E0FE

E0FF

E100

E1B1

E102

E103

E104

E106

E107

E108

E109

E10A

E10C

E10D

E10E

E10F

E110

E112

E113

E114

E11S

E116

E118

E119

EUR

E11B

E11C

E11D

E11F

E120

E121

E12

E123

E124

E12S

E126

E127

E12A

011601

110000

7E

E5

C5

RB

OF

4F

RS

E6F0

RR

SF

79

07

E61F

07

E601

57 79 E60F

R3 07 E6E0

El

23

0B

78

El

C2F9E0

C3

E12B

FE08

E12D

F285E1

E130

213RE2

E133

BE

E134

C8

E135

F5

E136

E5

E'137

3E0S

E139

BE

E13R

FA4EE1

El 3D

4E

E13E

0600

E140

09

E141

23

LXI OCR RM JMP

; THIS ROUTINE PEDONC: LDR CRLL CRLL CRLL LXI LXI MVI OUT CRLL IN REDLOP: IN IN MOV I NX DCX MOV ORR JNZ LXI CRLL LDR STR LHLD JMP

TRGP

TRIES ONLY DSKWNT DSKNUM TRKGET HEDLOD D, LHBUF+: H,RDSNCB R, SYNCE SRTRSS SCTGET SRTRR FDINWT FDRED N, fi H D

R. D E

REDLOP H,RDSNCB CHK436 LSTDSK RDDEV RDCHKS COMPRR

i IF TOO MANY, THEN RETURN Z=0 ;TPV TRV AGAIN, AGAIN

ONCE (AND I DON'T BLRME IT RTHLL>

THIS MUST CONTAIN THE DISK NUMBER!!

PROCESS RNV UNIT CHANGE

GET THE TRRCK

LORD THE HERD

TRA+4

; POINT TO THE BUFFER AREA PROMPT THE USRT WITH WHAT TO EXPECT SHOVE IT

GET THE PROPER SECTOR

RESET THE USRT TO LOOK FOR THE SVNCB SPECIAL SVNC KLUGE TO HOLD ONTO THE BUD UNTIL DATA IS AVAILABLE

; POINT TO THE BUFFER AREA

;GET THE NUMBER OF THIS DISK,

;AND STORE IT IN THE READ AREA FOR FUTURE USE

; HL HAS THE CHECKSUM

;THIS ROUTINE COMPARES HL TO DE

COMPPP: MOV A, H

SUB D

RNZ

MOV R, L

SUB E

RET

.THIS ROUTINE DOES R DOUBLE PRECISE CHECKSUM

CHK436 CHKSUM CHKLOP

LXI

LXI

MOV

PUSH

PUSH

XRR

MOV

RRC

RRC

RRC

RRC

MOV

XRR

RNI

XRR

MOV

MOV

RLC

RNI

XRR

MOV

MOV

RLC

RNI

XRR

XRR

MOV

MOV

RNI

XRR

MOV

MOV

XRR

RLC

RNI

XRR

MOV

POP

POP

I NX

DCX

MOV

ORA

JNZ

RET

B,LNBUF+XTRA D, 0

iGET THE BVTE TO SUM

JSRVE RLL THE REGS

L, R fl, C

L, R

A, B

D. A

A, C 0FH B

E. A A, C B

R. B C

CHKLOP

J NEXT BVTE IF NOT VET DONE

THIS ROUTINE IS ENTERED WITH fl CONTAINING THE NUMBER OF THE DISK DRIVE UNIT ON WHICH THE DESIRED OPERATIONS ARE TO BE PERFORMED <0-DSKLIM-l>. IF THE LAST DRIVE USED HRS THIS DRIVE- THEN RETURN IS IMMEDIATE, AND NO ACTION IS TAKEN. IF R HEW DRIVE IS CALLED, THEN THE HEAD OF THE PRESENT DRIVE IS FORCED TO UNLOAD AND THE CURRENT TRACK NUMBER ASSOCIATED WITH IT IS STORED. THE NEW DISK'S LAST TRACK IS REMEMBERED, AND IF VALID, CONTROL IS RETURNED ELSE. THE NEW DISK IS INITED, AND THE TRRCK 0 IS FOUND.

DSKNUM: CPI JP

LXI

CMP

RZ

PUSH

PUSH

MVI

CMP

JM

MOV

MVI

DAD

I NX

DSKLIM , 0DSKR1 ; NO H, LSTDSK

DSKN1 CM B, 0

ACCEPTABLE

IS CONDITIONALLY

UCH DISK EXISTS!!

i POINTER TO THE LAST DISK ;NEW-OLD?

iIF SO. THEN RETURN NO ACTION J ELSE, SAVE THE NEEDED DATA

; WAS THE OLD ONE LEGAL?

i IF NOT. DON'T STORE THE OLD TRACK ) C=LAST NUMBER

;HL=LSTDSK+OLD DISK+1

operations described above. There are three main entry points to this software: DKINT, GDWRT and RED256. When called, these routines initialize a disk drive, write a data block, and read a data block, respectively.

DKINT

DKINT (for DisK INiTialize) is a subroutine called with the accumulator containing the number (0 thru 7) of the disk drive to be initialized. DKINT causes the selected disk drive to unload its data transfer head, step the head to track zero, and reset the track counter associated with that drive to zero. DKINT destroys the contents of all of the 8080 registers, so appropriate precautions should be taken when using it. This routine must be used after powering up the processor, and should be used both before disks are removed from the disk drives, and before they are referenced by programs after insertion.

GDWRT

GDWRT (for GooD WRiTe) causes a data block to be written to a specified track and sector on a specified disk. When the GDWRT subroutine is called, all of the data relevant to the transfer is assumed to already reside in the 280 byte buffer area from WRFLNM to WRFLNM+279. The number of the disk to be written on (0 thru 7) must be in location WRDEV (which is WRFLNM+9), the track number (0 thru 76) must be in TRKWRT (which is WRFLNM+10), and the sector number (an even number from 0 to 30) mustbeinTRKWRT+1 (WRFLNM+11). The data to be stored on the disk may reside anywhere in bytes 0 to 8 and 12 to 277 of the buffer area, but in the context of my operating system, the 256 bytes from WRFLNM+21 to WRFLNM+276 are specifically reserved for data. GDWRT performs the steps previously described for the write data block operation: generating the preamble, calculating the cyclic redundancy check, selecting the disk and positioning the head, writing the block, verifying the write operation and attempting to rewrite if necessary. Control will return to the program which called GDWRT after a delay of from 0.2 to 2 seconds, depending on the distance that the head had to travel and the occurrence of any write errors. The user need not worry about the timing of the operation; however, no interrupts or hold operations longer than 2 jus may occur during GDWRT. Specifically, no memory slower than 500 ns response time may be used, and no device using direct memory access (DMA) operations may occur during GDWRT. If such a delay happens at the wrong time, the data

94

will not be properly recorded, and following data blocks on the same track may even be overwritten and destroyed. Caution must also be observed when using both GDWRT and RED256 from the same program, since the write check operation of the GDWRT routine reads data into the buffer used by the RED256 routine, thereby destroying data previously present in the buffer. GDWRT performs the error detection and correction steps outlined above the returns with the zero flag true whenever the write operation was successful. If some write error occurs, the zero flag will be false (a JNZ instruction will jump). The contents of the 8080 registers are destroyed by GDWRT in either case, and only the Z flag returns with valid information.

RED256

RED256 (for REaD a 256 byte block) reads a data block in from a specified disk, track and sector. When RED256 is called, it initiates the read operation, and assumes that the disk, track and sector of the data block to be read are stored in the memory locations DSKWNT, TRKWNT and SECWNT, respectively, with the same restrictions on the disk track and sector values as in the GDWRT routine. After being called, RED256 will return to the calling program after a delay of from 0.1 to 3 seconds. Upon returning, the zero flag is set (true) to indicate that the data block read in had the proper cyclic redundancy check bytes, and that the read operation was successful. The zero flag is cleared (false) to indicate that the read failed to produce the proper check value even after the multiple reads and head jogs described in the read error correction section. After a successful read, the block of data read will be present in the 280 byte buffer area from RDFLNM to RDFLNM+279, in the format shown in table 2. Because the buffer area is also used to check for errors during a write operation, as noted previously, the data read from the disk by a call to RED256 should be copied into another buffer area if the data is to be kept beyond the time of the next data block read or data block write. None of the 8080 registers are sacred during a call to RED256, and the programmer must take this into account.

The three entry points described, DKINT, GDWRT and RED256, are sufficient for all operations involved in any data base management or operating system which uses the data block format of table 2. However, the personal computing enthusiast (by definition never satisfied) may wish to use different data formats or different disk drives.

Listing 1, continued:

E142 E145 E146 E143 E149 E14A E14B E14C E14D E14E E14F E152 E154 E156 E15S E156 E15C E15D E15E E161 E163

E164 E166 E1S3 E16B E16E E171 E174 E177 E17H E17C E17E E181 E1S4

77

D3F6

El

Fl

77

4F

0F

0F

OF

3246E2

D3F3

DBF1

E604

C285E1

09

F3

DBF1 ES04

C234E1

CDH3E1

CDA3E1

CDH3E1

CDH3E1

CDB2E1

DBF1

ES81

C277E1

3247E2

C9

E185 CD10OO E188 03 E189 C9

E13fl 3EFF E18C 323HE2 E18F 3C E190 F5 E191 CD9CE1 E194 Fl E195 3C E196 FE03 E198 C290E1 E19B C9

E19C CD2BE1 E19F CDS4E1 E1H2 C?

E1H3

Eine

E1A7 ElAfl E1HC ElflF E1B2 E1B5 E1B6 E1B9 E1BB E1BE E1C0 E1C2 E1C4 E1C6 E1C9

2147E2

34

3A46E2

FS04

3246E2

C3BEE1

2147E2

35

3A46E2

ESFB

3246E2

F610

D3F3

E6EF

03F3

CDCAE1

C9

E1CA 01FF03 E1CD flF E1CE BB E1CF B9 E1D0 C2CEE1 E1D3 B3 E1D4 C2CEE1 E1D7 C9

E1D8 E1DB E1DD E1DE E1E1 E1E2 E1E4 E1E5 E1ES E1ER E1ED E1EE E1F0

E1F1 E1F4 E1F5 E1F8 E1F9 E1FR E1FD E2O0 E203 E206

3R48E2

FE4D

F0

2146E2

7E

E6FE

77

3R48E2

DE2C

F2F1E1

7E

F601

C3

F203E2

CDB2E1

C3F1E1

CDH3E1

C3F1E1

GTRKS■ DSKH2

LDA

MOV

OUT

POP

FOP

MOV

MOV

RRC

PRO

RRC

STA

OUT

IN

RNI

JNZ

DAD

I NX

MOV

STR

CPI

PM

IN

RNI

JNZ

CALL

CALL

CALL

CRLL

CALL

IN

RNI

JHZ

STR

RET

CALL

DB RET

MVI

STA

IHR

PUSH

CALL

POP

INR

CPI

JHZ

RET

PSW

M, A C, A

FDBUF FDOUT

FDSTRT

FDRDV

DSKR1

A* M

TPAKNO

FDSTRT

FDRC'V

NODS!:'

TRflKIN

TRRKIH

TRRKIN

TRflKIN

TRAKOT

FDSTRT

TRKZRO

TRZLP

TRRKMO

; STORE THE OLD CURRENT TRACK NUMBER i FORCE THE HERD TO UNLOAD

> RETRIEVE THE OLD DATR

i STORE THE NEW NUMBER RS THE OLD ONE

i BC=NEXT DISK

i fl=NENTRRCK*32

I CONSIDER THIS THE NEXT DRIVE COMMAND

;SET UP RHERD OF TIME TO DEGLITCH

; CHECK THE STRTUS OF THIS DISK

i IS IT LORDED AND USEFUL?

; NO, TELL USER ABOUT IT!

;THIS IS WHERE THE DISK WAS LEFT I DECLARE IT THE CURRENT COUNT I 0-76?

ERTVP iDISK NUMBER >7 ERDK.NM

A, 255 LSTDSK

PSW

DKINT

PSW

fl

DSKLIM

IHI1

DKINT: CALL DSKNUM CALL QTRK0 RET

THESE ROUTINE THESE ROUTINE ONE TRACK FOR

TRAKIN: LXI INR LDA OR I STA JMP

TRAKOT: LXI DCP LDR RNI STR

TRRKMV: ORI OUT AN I OUT CALL RET

1 THIS ROUTINE

TENMIL: LXI XRR

TMLP . DCX CMP JNZ CMP JNZ RET

; THIS ROUTINE

TRKGET: LDR CPI RP LXI MOV AH I MOV LDR SB I JP MOV ORI MOV

S HOVE THE TRAM!: : MOVE THE EAD IN (TOWARDS HUB) OR OUT (TOWARDS CIRCUMFER EACH CALL9 CRLL LASTS 10 MILSECS H, TRRKNO

M i COUNT UP ONE TRACK FDBUF DIRIN FDBUF TRRKMV H, TRRKNO

M

FDBUF

DIROT

FDBUF

STEPP

FDOUT

STEPM

FDOUT

TENMIL

JU

T fl 17770

. COUNT DOWN THE TRACK

; CLEAR FOR AN OUT MOVE

I SAVE IT

I SET THE STEP BIT

I AND THE START BIT

; CLEAR STEP BIT

I MBIT TEN NILSECS

SOFTWARE 10MS WAIT

GETS THE DESIRED TRACK (FOUND IN TRAHNT) TRKWNT : GET THE DESIRED TRACK NUMBER 77

i ERROR H- FDBUF A, M

NOT UCSEL M, fl TRKWNT 540 TRKG1 fl, M WCSEL M, R

TRKG1' TGETLP:

LDA

MOV

LDA

CMP

RZ

JP

CALL

JMP

INGIN: CALL JMP

; THIS ROUT IHE

TRRKNO B, fl

TRKWNT B

; GET THE PRESENT TRACK NUMBER

; B IS WHERE WE ARE AT

;fl IS WHERE WE WANT TO BE

WE ARE THERE ; A>B THEN GO IN I fl. <B, THEN OUT

I THDA. INGIN TRHKOT TGETLP TRHKIN TGETLP LOADS THE HEAD AND WAITS 30 MS

FOR SETTLIHG

95

Listing 1, continued:

E20? E20B E20D E20F E210 E213

E21A E21C E21E E221 E224 E226

E229 E22B E22E

DBF1

E628

D3FS

C9

COCAEl

CDCAE1

CDCAE1

C?

DBF1

E618

C24RE2

3A4SE2

E61E

47

DBF1

ES0S

DBF1 E688 CA28E2

C227E2

ani

OUT

RNZ

CALL

CALL

CALL

RET

IN

AMI

JNZ

LDA

AN!

MOV

IN

RNI

JNZ

DCP

RM

HI

RNI

FDSTRT HEADLD LOADHD

TENMIL TENMIL TENMIL

FDSTRT INOX SCTOET SECWNT

36 B, A

FDSTRT SCTP

sctlp

B

FDSTRT SC TR SCTL2 SC TLP

. WAIT FOT THE INDEX . GET THE DESIRED SE

WAIT FOR END OF SECTOR PULEE

RLL THE FOLLOWING MUST E:E RAM

E23A 00 E22E

E243 0000 E245 00 E24S 00 E247 60 E243 00 E24? 00 E24R 00 E246 E25B

RLL DRTR FILES

BVTE 8-8 BVTE 9 BVTE 10.11 BVTE 12.1J BVTE 14, 15 BVTE 1.5-19 BVTE 20 BVTE 21-276 BVTE 273-27

DB 0 DS DSK

LINKED OR FI

JS. SHRLL HRVE THE FOLLOWING FORMAT:

BVTES ASCII FILE NRME ON ERCH BLOCK

IGNORE . 3-76V SECTOR O3-30i EVEN? OF THIS BLOCK IF PREVIOUS BLOCK <0, 0 IF THIS IS FIPST>

IS LOST''

E25C

81

46494C4E 414D4558

LSTOSK:

DKTR8:

SCTNXT:

REDTPV

FDBUF

TFRKNO

TPtUNT

SECWNT:

DSKHNT

HPTEUF:

MRSNCS

WPFLNM

E260

E264 54

E265 00

E266 0088

E268 0000

E26A 0888

E26C

E270 00

E271

E372

E275

E375 SI

E376 46494C

E37R 414D45

E37E 54

E37F 00

E386 8888

E382 0000

E3S4 0000

E386

E33A 80

E33B

E4SC

0000

BVTVP 082F

CHKW1 E07B

CONPfl EOED

Dl TR8 E23B

DSKNU

EPMES

FDBUF

FDPDV

fupe:

HDUNL 00F6

HEXCH 6043

INIT EISA

LGHDH 80F5

UTPOR 06F6

RDDEV E27F

PEDLO E0CF

RRVLH E382

SCTNX E243

SRTPS 0OF2

STEPP 0010

TMLP E1CE

TPAKO E1B2

TRKRE E330

TRV3R E8R3

WCSEL 8601

URDAT E271

WRT25 E015

WPVLN E26S

URDEV: TRKIdRT:

NPVLNK L-JFL-JLrJK

WRCNT: WRDAT: WRCHKS

RDSNCB RDFLNM

RDDEV: TPI'PED PRVLNK: RFNLNK

RDCNT: PDDRT RDCHKS

E12B

0028

0004 0002

CHK43

CHKHR

DIRIN

DSKLI

DSKP1

ERRED

FDINN

FC'RED

GDUR1

HERDL

INDX

INPOR

LSTDS

RDCHK

PDFLN

REDON

SCTGE

SCTP.

SPTSU

SVNCB

TRRKI

TRGP

TRKWN

TRZLP

WFWLN

IIPDEV

WPTBU

XTRA

DB DB DB DB DB DB DS DB DB

DB

DB

DE:

DB

DS

DB

DS

EGU

ORG

DB

DB

DB

DB

DB

DS

DB

DS

EGU

END

E8F3

E86F

0884

0008

E18S

0002 00F4 0OF6

Eoa;

0020 6010 00FO E23R E4SC E376 E0B4 E21H 0008 80F2 0081 E1A3 E0R8 E248 E177 E26A E2S5 E24B 0816

SVNCB FILNRM

NAM. ext. ?

DEVICE NUMBER CURRENT TRRCtTRACK SECTOR I TRACK. SECTOR OF FOLLOWING BLOCK <0» 0 IF THIS

FUTURE USE

BVTE COUNT OF INCOMPLETE DRTR BLOCKS

256 DRTR BVTES

CVCLIC REDUNDANCE CHECK BVTES

;NUMBER OF THE LAST DISK TO BE USED I i UP TO 8 DISKS WITH SEPEPATE TRACKS TO KEEP ; TEMPORARY POINTER TO NEXT SECTOR i COUNTER FOR 3 RTTEMPTES IBUFFEPE TO THE FD CONTROLS ; CUPRENT TRACK i DESIRED TRACK I DESIRED SECTOR NUMBER I DESIRED DISK NUMBER .128 BITS OF 0 SVNC S THE CLOCK I SYNC BVTE GOES HERE ■ EXT' .NRME OF FILE RS IT RPPERPS IN THE DIRECTORS'

0 I ONE OF IS DEVICES OF 16 TYPES 0.0 TRACK, SECTOR THAT THIS WILL BE WRITTEN TO 0,0 ,TRACK, SECTOR OF THE LAST BLOCK BEFORE THIS 0, 0 I TRACK, SECTOR OF THE NEXT BLOCK AFTER THIS 4 .RESERVE 4 BVTES FOR EXPANSION 8 ;RERLLV ONLV USED BY THE BVTOT ROUTINES 256

WRSHCB+LN2SHi: WPCHKS+3

SVNCB I HERE FALLS THE INPUT SVNCBVTE FILNRM , EXT , SAME RS DIRECTORY ENTRY

I INCONSEQUENTIAL

J THIS MUST AGREE WITH THE TRACK, SECTOR DESIRED

: LRST TRACK SECTOR READ

,NEXT TRACK SECTOR READ FOR THIS FILE

. EXPANSION

RDSNCB+LN2SNC

CHKLO E8F9 CHKSIJ E8F6

CLRLO E021 CO 0888

DIROT FFFB DKINT E1SC

DSKN1 E146 DSKH2 E166

DSKWN E24A ERDKN 0003

ERTVP 0010 ERWRT 0001

FDOTW 00F4 FDOUT 00F3

FDSTA 06F1 FDWPI 0OF0

GDWRT E000 GTPK8 E164

HEOLO E20S HEX1 004F

INGIN E203 INI1 E190

LN2SN 0117 LNBIJF 0100

NMTVP 0036 NODSK E184

RDCNT E3SP PDDHT E33B

RDSNC E375 PED25 E035

PEDTR E245 RFWLN E384

SCTL2 E236 SCTLP E227

SECMN E249 SRTRR 00F3

SPTTF 08F1 STEPM FFEF

TENMI E1CR TGETL E1F1

TPRKM E1BE TPRKH E247

TRKG1 E1F1 TPKGE E1D8

TRKWR E266 TRKZR 0001

TXTVP 0055 UNSAF 0002

WPCHK E372 WRCNT E270

NRFLN E25C WRSNC E25B

WPTGA 0008 WPTLO E053

The following subroutines, which are contained in this software, are useful for such purposes.

WRT256

This subroutine performs all of the write operations: generate preamble, sync byte, cyclic redundancy calculation, head load and seek, and data write. This is all that is done; no verify operation is performed, and the write is only performed once per call of WRT256.

REDONC

This subroutine performs all of the read operations: head load and seek, data read, cyclic redundancy check generation and comparison. Control is returned to the calling program with the Z flag set if the calculated cyclic redundancy check equals the value read from the disk. The read is performed only once per call of REDONC, regardless of whether the checking information indicates a proper read or not.

DSKNUM

In a multiple disk drive system, when changing from a read or write operation on one disk to a read or write operation on another drive, this routine must be called. The number of the next drive to transfer data to or from must be in the accumulator (a value of 0 to 7) when DSKNUM is called. If the number of the next drive to be used is different from that of the last drive, then DSKNUM will unload the head of the last drive, store the number of the track where the head of the last drive is positioned, enable the next drive, and recall the track where the head of the next drive is positioned. If the next and last drives are the same, no action is taken.

CHKSUM

This routine is entered with the HL register pair pointing to the first byte of some block of data whose cyclic redundancy check is to be calculated. The BC register pair contains some number from I to 65,536, indicating how many bytes are used in the calculation. The 16 bit check value is returned in the DE register pair. The program used to calculate this binary polynomial is adapted from the Intel Users Library (program 80-41).

TRKGET

The desired track, from 0 to 76, is stored in the byte labeled TRKWNT. When TRKGET is called, the selected disk (selec

96

ted by DSKNUM above) will move its data transfer head in or out until it is over the desired track. The desired track number is compared to 44, and the proper write current is selected on the WRITE CURRENT SELECT line of the interface. Upon returning from TRKGET, the head is at the proper track and the required head settling time has transpired. Calling TRKGET when the head is already at the proper track causes an immediate return; this will not significantly slow down the calling program.

TRAKIN

Calling this routine moves the data transfer head of the selected disk inward one track and increments the track counter. A 10 ms track movement delay occurs before control returns to the calling program.

TRAKOT

TRAKOT performs the inverse of TRAKIN by moving the head out one track, decrementing the track counter and delaying 10 ms before returning.

TENMIL

This is a software delay routine which delays 10 ms before returning. When using an 8080 or Z-80 system with a faster cycle time than 2 MHz, the delay loop counter should be changed. Because this software will not operate properly in memory with a cycle time longer than 500 ns, no values for slow memory need be given.

HEDLOD

This routine generates a head load pulse which causes the head of the selected disk drive to be loaded for at least 3 seconds following the call to HEDLOD. If the head was not loaded when HEDLOD was called, a delay of 30 ms occurs before control is returned to the calling program. If the head was loaded when HEDLOD was called, then the return is immediate.

SCTGET

SCTGET is called with the desired sector value in the memory location labeled SECWNT. The routine waits for an index pulse to occur on the selected disk drive, and then counts the sector pulses that follow. The first sector pulse following an index pulse is the start of sector 0, and the last pulse preceding an index pulse is the start of sector 31. Control is returned to the calling program within 15 to 25 ms of when the leading edge of the desired sector pulse is found. Only registers A and B are used by this routine, allowing all other registers to be used by the calling program.

Conclusion

The software described in this article allows the advanced computer experimenter, who has implemented the economy floppy disk interface, to make good use of his/her floppy disk drive(s) for data storage and retrieval. These routines have been operational for well over one year, and for the last year, GDWRT, RED256 and DKINT have formed the heart of my 4 K byte (including data buffer areas) 8080 floppy disk operating system. This operating system allows machine language programs to be stored and retrieved, MITS BASIC programs to be stored and loaded (through the CSAVE and CLOAD routines), editing of text files (this article and my previous one were written and edited on the disk system) and batch stream processing (by assigning the keyboard input to be taken from a batch stream file on the disk). An unlimited number of files may be open for input or output simultaneously, requiring only a 280 byte buffer area for each file. BASIC programs can create, read, write and modify data files in ASCII or binary. All files can be specified with a 9 letter file name and a disk number.

The rest is up to you. This sytem can give you the extra bit of programming power you've been looking for!"

NOTE: A floppy disk operating system is available for use with the interface described in February 1977 BYTE. The operating system runs in 4 K of 500 ns (or faster) user memory addressed at D000 hexadecimal.

The operating system is available on a diskette with two bootstrappable copies of FDOS on tracks 0 and 1, and the source code for the operating system is also supplied on the diskette.

Programs supplied on the diskette allow the user to reconfigure the FDOS to use his own IO devices and to store and run any of the users programs by name. The diskette and documentation are available for $40 (Ohio residents add 5.5% tax) from K B Welles, 2623 Fenwick Rd, University Heights OH 44118.

Object Code in Machine Readable Form

The bar code representation of Dr Welles' floppy disk software is expected to be prepared in time for the July issue of BYTE, where it will be printed as a small feature supplementing the information in this month's article.

97

NOW!!

Z-80 Power for the S-100 bus without getting rid of

your CPU card

$159.95

assembled

,®

"Mf*34»*S-ft-J3J<l

ZBO-80".

L) U 1 /v(_//V/L/>J a leader in low cost, low power ram boards has just announced it's Zj oU — OU

piggy back card. This plug — in board enables you to use your existing IMSAI, ALT AIR CPU card

and upgrade your system to a Z — 80.

The card design is such that all you do is pull out your 8080 and 8212 chips, plug in the Board

to the 8080 socket itself and the ribbon cable to the 8212.

A system monitor, on paper tape, is included with the board as well as a 280 Manual and Theory

of Operation Manual.

Dutronics will also supply all additional software at no cost, when it becomes available The price is $159.95 (assembled) only. OFF THE SHELF.

BYTE OF PHILADELPHIA 1345 W. Lancaster Ave. Bryn Mawr, Penn. 19010 (215) 525-7712

BYTE OF PALO ALTO 2227 El. Camino Palo Alto, Ca. 94306 (415) 327-8080

HOBOKEN COMPUTER WORKS 20 Hudson Place Hoboken, N.J. 07030 (201 420-1644

BYTE OF WESTMINSTER 14300 Beach Blvd. Westminster, Ca. 92683 (714)894-9131

BYTE OF SANTA CLARA 3400 El Camino Real Santa Clara, Ca. 95051 (408) 249-4221

for more information call or write to:

R.H.S. MARKETING

2233 El Camino Real

Palo Alto, California 94306

(415)321-6639

DEALER INQUIRES INVITED

B of A & MASTERCHARGE ACCEPTED

16384 BYTES for $485.00

assembled (with sockets) : tested - burned-in - guaranteed

A new high in S100 bus memory cost effectiveness. Fully assembled (with sockets), tested, burned—in and guaranteed. 4Kxl dynamic memory chips (the same ones used by the ton in IBM compatible memory systems) combined with self contained control

logic, yield a memory system with:

• L

ow power consumption, total board 5 watts,

• Transparent refresh, which means the memory looks static to the outside world.

• No waiting. In fact, xrdy is not even connected to the memory.

• Full DMA capability

• Reliable, low level clock and control signals.

Dynabyte

UyTlCluy t6 brings to the S—100 Bus a state of the art, industrial quality memory system. 16K on a single board for $485.00, Guaranteed for 1 year.

BYTli OF PASADENA 496 So. Lake Ave. Pasadena, Ca. 9J 109 (213)684-3311

BYTE OF SANTA CLARA 3400 El Camino Real Santa Clara. Ca. 95051 (408)249-4221

BYTE OF WALNUT CREEK 2989 N. Main St. Walnut Creel,: Ca. 94596 (415) 933-6252

BYTE OF SAN MATEO 1200 W. Hillsdale Blvd. San Mateo, Ca. 94103

(415)341-4200

BYTE OF PALO ALTO 2227 El Camino Palo Alto, Ca. 94306 (415)327-8080

for more information call or write to:

R.H.S. MARKETING

2233 El Camino Real

Palo Alto, California 94306

(415)321-6639

DEALER INQUIRES INVITED

BofA & MASTERCHARGE ACCEPTED

Circle 219 on inquiry card.

Artificial Intelligence,

Part 2: Implementation

Michael Wimble 6026 Underwood Av Cedar Rapids IA 52404

As described last month in part 1, there are five types of mutations that can be performed with the simulated evolution technique. A separate subroutine will be used for each mutation type. Four of the subroutines rely heavily on a subroutine which generates a random number between limits. (For those systems not already possessing random number generators, a box

(FROM FIG. 6) f ADDSTATE J

mutation i: add state [mutate subroutine]

(FIG. 6)

SELECT RANDOM NUMBER OF MUTATIONS

DETERMINE NEW STATE LINKAGE

ENOUGH \ NO MUTATK

BUILD NEW STATE

INDICATE

SUCCESSFUL

MUTATION

f GO TO \ I ISREM J

I 1

ISELECT RANDOM I ILINKAGE AND I IREPOINT IT TO | I NEW STATE I I

(FIG. 7)

Figure I: Mutation type I, add a state to the model. This routine determines if there is room for another state. If there isn't enough room the model fails. If there is enough room the routine determines a new state linkage and then builds the new state. This is a component of the MUTATE subroutine.

accompanying this article gives an algorithm to produce pseudorandom numbers by the power residue method.)

Figures I through 9 are flowcharts of the basic modules which were extracted from a fairly sophisticated system of FORTRAN programs. These are intended to serve as a starting point for the reader in implementing his/her own program. If there is sufficient reader interest, I would be happy to program and publish program listings of implementations for one or more small system processors, in any popular computer language.

The rest of this article then is a description of the modules used to implement a 2 symbol gaming program using the artificial intelligence technique. If more detail is needed I suggest you look first into the book Artificial Intelligence Through Simulated Evolution by L J Fogel, A J Owens and M J Walsh (John Wiley and Sons, New York, 1966) or send questions and a self-addressed stamped envelope to me. Although there are many flowcharts and the technical jargon may seem complex at times, I wish to emphasize that the programming is simple and the technique can be implemented on any personal computing system with sufficient memory.

Mutation 1 — Add a State

Figure I describes the first mutation type. As shown, the number of states is first compared to some maximum number. Most programs will have a fixed amount of memory allocated for containing the model, and so a check is made to see if any memory is yet available for expanding the model. The 2 symbol version previously discussed can conveniently be implemented using two bytes per state with the maximum number of states being 127. The programmer must determine the internal representation of the model and the amount of memory available and then set a variable to represent the maximum number of states the model can hold.

100

An Evolutionary Idea

The random number subroutine is called to provide an iteration counter. This counter is the number of randomly selected transitions that will be pointed at the new state. If no transitions were pointed to the new state then it would be an impossible state, ie: it could never be reached and could contribute no value to the model. Next, random transitions are changed to point to the new state which is to be created. Then, the new state is created. Finally 1SREM is entered to remove any impossible states from the model.

Mutation 2 — Delete a State

Figure 2 describes the second mutation type. As with mutation type 1, a check is made of the number of states currently in the model. If there is only one state in the model, the mutation fails, since to delete the state would totally eradicate the model. If there is more than one state then the mutation will be able to proceed successfully.

Next, one of the states in the machine is randomly selected to be deleted. The only state that cannot be deleted with this subroutine is the state designated as the first state. To delete this state would result in the same mutation as mutation type 4 and is thus prohibited to this subroutine.

The actual deletion is accomplished in a rather roundabout manner. Every transition in the model is checked to see if it refers to the state being deleted. If so, it is repointed to some other random state number. The result of course is the creation of an impossible state, one that cannot be reached and is thus useless to the model. Entering the ISREM routine, as explained in the description of mutation type 1, will remove any impossible states from the model and so effect the actual deletion of the desired state.

Mutation 3 — Change a Transition

Figure 3 describes the third mutation type. The model is first checked for having more than one state. If there is only one state, then all transitions must necessarily point to that state, and so no change can be made and the mutation fails. Otherwise a

(FROM FIG. 6) ( DELSTATE J

MUTATION 2: DELETE STATE

[MUTATE subroutine]

C GO TO \ ^ ISREM J

(FIG. 7)

Figure 2: Mutation type 2, delete a state from the model. This routine checks to make sure that there is more than one state in the model or else it fails. If there is more than one state it deletes all references to a randomly chosen state thereby severing it from the rest of the model. This is a component of the MUTA TE subroutine.

(FROM FIG. 6)

MUTA RAND [MUTi

TION OM 1 \TE

)

3: "RANSITION CHANGE SUBROUTINE]

( RANSTATE J

,/STATES\ *

< s >

\^ 1 jr

Tno

ES/' GOTO ^ MUTCHK

(FIG. 6)

CHOOSE AND REPOINT RANDOM LINKAGE

Figure 3: Mutation type 3, change a transition. This mutation will fail if there

is only one state In the model. If there is more than one state a transition will be randomly chosen and repointed to another

INDICATE

SUCCESSFUL

MUTATION

state from that to which it is presently pointing. This is a component of the MUTA TE subroutine.

f GO \^ ISR

(FIC

TO N

EM J

. 7)

101

A Pseudorandom Number Algorithm

1. Test X, a 16 bit variable. If X is equal to zero, then set X to any number such as the time of day, or some other indeterminate number, and repeat step 1. This defines the initial seed of a pseudorandom sequence.

2. Multiply X by 259 to yield new value for X. Keep only the 16 least significant bits of the result. Increment X by 1.

3. If X is zero go to step 1.

4. Divide X by the input argument but do not destroy original value of X. The remainder of this result is a pseudorandom number between zero and one less than the input argument.

(FROM FIG. 6)

mutation a: change initial state [mutate subroutine]

(FIG. 6)

CHANGE FIRST STATE TO ANY OTHER STATE

INDICATE

SUCCESSFUL

MUTATION

C GO TO *\

IisremJ

(FIG. 7)

(FROM FIG. 6)

Figure 4: Mutation type 4, change the first state number. This mutation fails if there is only one state in the model. If there is more than one state the first state will be changed to any of the other states. This is a component of the MUTA TE subroutine.

f PSI STATE J

mutation 5-. advance i state [mutate subroutine]

(FIG. 6)

SET FIRST STATE TO SECOND STATE

INDICATE

SUCCESSFUL

MUTATION

(GO TON ISREM J

(FIG. 7)

Figure 5: Mutation type 5, advance model by one state. This mutation fails if the first state is equal to the second state. If this is not true the first state is set equal to the second state of the model. This is a component of the MUTA TE subroutine.

random element in the model is chosen and its transition pointer is changed to point to some other state. ISREM must be entered at the end of the routine since the changing of a transition may have resulted in the creation of an impossible state.

Mutation 4 - Change the First State Number

Figure 4 describes the fourth mutation type. Again, if there is only one state in the model, then it must necessarily also be the first state, and the mutation would then fail. Otherwise the first state number is set to any other state in the model. Also it is possible that an impossible state was created as the result of this mutation, so ISREM is entered to remove such impossible states.

Note that earlier discussion described the fourth mutation type as changing the current state number of the machine. The model must be driven by history from the first state when performing evolution, and it is seldom possible to work backwards from the current state number to determine the first state number. It is practical, therefore, to modify the mutation from change current state number to change first state number. The result of changing the first state number will usually end up changing the current state number.

Mutation 5 One State

Advance Model by

Figure 5 describes the simple but powerful mutation type 5. If the first state number is equal to the second state number of the model, then the mutation fails. Otherwise the first state number is set to the second state number.

Earlier discussion of mutation 5 described it as advancing the current state number by one. As with the case of mutation type 4, it is impractical to change the current state number directly, so the first state is advanced by one and evolution routines described later will run the model over its historical recall to result in the current state number actually being advanced by one state.

Mutation Control

Figure 6 shows the logic involved in controlling the mutation process. A random number is generated and used to select one of the five mutation types to be performed. Upon return from the mutation routine, a check is made for successful mutation. If the attempt was unsuccessful, a random selec

102

tion is again made until a successful mutation is finally made. Finally, the routine OPTIMIZE is used to perform deterministic optimization and to assign a value to the model.

For those who implement this artificial intelligence game and would like to improve the intelligence forming process, the mutation control routine of figure 6 offers the greatest potential for improvement. The mutation selection process shown is simple and effective, but is essentially a brute force method. One of the first improvements I made to the program was to allow dynamic altering of the probability of selecting a mutation type. That is, if ADDSTATE was called successfully and resulted in a model with a higher value than before, then the probability of selecting ADDSTATE in the future was increased slightly. Similarly, if any mutation type was performed successfully and decreased the value of the model, then the probability of selecting that mutation type again was made slightly less. The most sophisticated versions of this artificial intelligence program use the very artificial intelligence process to optimize the selection of mutation types, thus aiding the evolution process.

ISREM — Remove Impossible States

Figure 7 describes the subroutine that removes impossible states. An impossible state is any state that cannot be reached. For example, the model:

<£b

Y

f =X

has the impossible state Z. An impossible state cannot contribute to the value of a model but can hinder the model. If a model already had the maximum number of states permitted, but five of these states were impossible states, then the ADDSTATE mutation could not be performed until some states were deleted to make room.

The flowchart of figure 7 will not remove all impossible states. For instance, if in the figure above, the current state was changed from X to Z, then X and Y would now be impossible states instead of Z. The subroutine described will only find those states which are impossible solely because they cannot be reached from another state of the current model. In practice, this has never yet failed to eventually find all impossible states.

(CALLED FROM FIG. 9) (FROM FIGURES I TO 5)

MUTATE SUBROUTINE

ENTRY POINT

f MUTATE J

RANDOMLY SELECT MUTATION TYPE

(do

60 TO SELECT^ MUTATION^

(FIGURES I TO 5)

f GO TO "N

^ OPTIMIZE J

(FIG. 8)

Figure 6: The MUTATE subroutine entry point. MUTATE chooses the type of mutation that will be performed using a pseudorandom number generator. At MUTCHK we check to see if the mutation was a success. If it was not then the MUTA TE routine continues by choosing another mutation. (If at first you don't succeed . . .) If the mutation was a success then the optimization process cleans up the mutation by transforming it to its most usable form before returning control to the main program logic of PREDMUT.

(FROM FIGURES I TO 5)

impossible state removal [mutate subroutine]

SET VECTOR TOO FLAG STATE I AS REFERENCED

FLAG ALL NONSELF REFERENCES

INTERCHANGE UNREFERENCED STATE WITH LAST STATE

REPLACE REFERENCES TO OLD LAST STATE

NUMBER OF STATES

NUMBER OF STATES

Figure 1: Routine ISREM removes any impossible states from the model. It performs this by checking all of the transitions to see that all of the states are referenced at least once. If it finds a state that is not referenced it will interchange that state with the last state of the model and delete the last position as valid. This is a housekeeping component of the MUTA TE subroutine.

103

(FROM FIG 6) ( OPTIMIZE J

deterministic optimization [mutate subroutine]

SET MATRIX TO ZEROS

DETERMINE MOST FREQUENT OUTPUT

STEP THROUGH MODEL

DETERMINE

OPTIMUM

PREDICTION

| 1

| USING HISTORY STEP ITHROUGH MODEL AND 'COUNT REQUIRED OUTPUTS I [FOR EACH STATE LINKAGE I

( !

I CHAIN THROUGH EACH STATE LINKAGE I 'AND SET OUTPUT TO MOST FREQUENTLY ! REQUIRED SYMBOL, THIS IS OPTIMUM | IPREDICTION FOR THE STATE I

I I

STEP THROUGH MODEL USING HISTORY

COMPUTE VALUE OF MODEL

/return TO~\ V^ PREOMUT J

prediction

ai symbol-]

:tual occur

symbo^

ence

symbo^

symbol 1

value] ]

value-] 2

value]3

symbol

value2l

value22

value23

symbol3

value3i

value32

value33

(FIG 9)

Figure 8: Routine OPTIMIZE determines the optimum prediction for each state of the new model. Il will then evaluate the model using past history as a model to determine the value of the mutation. This is the final processing of the Mill ATE subroutine of the program.

Table I: The matrix used to evaluate the optimized form of the new mutation. Each predicted input symbol is matched against the actual input. The value for that combination is then added to the total value of the model. In this manner, using historical methods, the new model can be compared to the older model to see if it is more efficient.

Looking at the flowchart then, the process is simple. First a table is set to zero. Every transition is then examined. If the head of the arrow points to a different state than the tail, then the entry in the table corresponding to the state pointed to by the head of the arrow is flagged.

After looking at all transitions, the table is examined. If any state in the model remains unflagged then it is an impossible state. If the impossible state is the last stale in the model, then one need only decrement the variable denoting the number of stales in the model to result in the deletion of the state. Otherwise the impossible stale is first swapped with the last state in the model before the variable is decremented.

OPTIMIZE - Evaluate New Model

Figure 8 describes the most important segment of the program. OPTIMIZE performs the deterministic optimization mentioned previously, and evaluates the model with respect to the goal. Optimization and evaluation provide the criteria for the evolution selection procedure.

OPTIMIZE is conceptually simple, although often large of implementation. The model is made to perform with historical data. As each input observation is fetched and the appropriate transition made, the required output is noted. Thus for each transition we have a table of the number of times each output should have occurred for perfect prediction. The output symbol that should have occurred most frequently for a transition is then made the output for that transition. If the transition was never used during this historically driven run, then the transition is made to output the most frequently occurring output symbol over all of history.

After optimization, the model is rerun using the same historical data. Now, however, the optimized model is evaluated in terms of its ability to achieve the goal provided. The goal is expressed in a matrix of the form shown in table I.

For each transition the prediction and actual occurrence are used to extract a value from the table. The sum of these values is the value of the model.

For the purpose of predicting primes, the matrix is defined in table 2a, while for earthquakes the matrix is defined as in table 2b. You see then that each accurate prediction of an actual earthquake or no earthquake adds 1000 to the value for the model. To predict an earthquake when one does not occur adds 500 to the value of the model,

104

IF you talk computer!, me ipeak qour

language.

1. MICROPROCESSORS Technology, Architecture and Applications Daniel R. McGlynn

This book explains how a microcomputer system is built and used.and also provides a unique survey of the specific models of microprocessors available today. Gives useful actual applications including automotive, telecommunication, low-cost home computers, microprocessor selection criteria, microcomputer system design techniques, a semiconductor technology review, software and the use of development systems.

(0 47158415-2) 1976 207 pp. $11.95

2. MICROPROCESSORS AND MICROCOMPUTERS Branko Soucek

Here is a complete, detailed text and introduction to the field beginning with the basics and taking the reader all the way to programming. Some of the book's features include: ■ Explanation of digital codes

• Simple hexadecimal, assembly, and highlevel programming

• Logical systems and microcomputer organization

• Basics for design and use of microprocessor-oriented systems, and the replacement of powerful minicomputers with the microchip set.

(0 47181391-5) 1976 607 pp. $23.00

3. COMPUTER-AIDED EXPERIMENTATION Interfacing to Minicomputers Jules Finkel

Providing practical guidance on all major topics needed in interface specification and design, this book shows you how to connect scientific instruments and experiments to computers and to analyze suggested criteria for the selection of system elements. Offers many examples of practical connections and how to overcome problems that are commonly encountered.

(0 47125884-9) 1975 422 pp. $28.00

4. INTRODUCTION TO MICROCOMPUTERS AND MICROPROCESSORS Arpad Barna & Dan I. Porat

Presents a concise, basic introduction to microprocessors—what they are, how they work, and how to read the applications literature. You'll find descriptions of the basic structure of a microprocessor, arithmetic operations and circuits, basic programming techniques, and information on input/output, memory, assemblers, loaders, data structures, and subroutine linkages.

(0 47105051-2) 1976 108 pp. $11.25

5. MINICOMPUTERS IN DATA PROCESSING AND SIMULATION Branko Soucek

Explores basic principles of digital codes and logical systems, concentrating on programming, organization and interfacing. Soucek explains the elements of digital circuit design, the basic instruction set for a minicomputer, and data simulation necessary to design and use your digital systems.

(0 47181390-7) 1972 467 pp. $24.50

WILEY-INTERSCIENCE

a division of John Wiley & Sons, Inc. 605 Third Avenue, New York, N.Y. 10016 In Canada: 22 Worcester Road, Rexdale, Ontario

6. A PRACTICAL GUIDE TO MINICOMPUTER APPLICATIONS

Edited by Fred Coury

Bringing together the work of leading experts, this volume provides information and examples of the application of minicomputer techniques, what is actually involved in the application and how to go about the selection and connection process. The five parts include an introduction to minicomputers, peripheral and software considerations, minicomputer selection, general applications and specific application.

(0 47118051-3) 1972 211pp. $6.45

7. SCIENTIFIC ANALYSIS ON THE POCKET CALCULATOR Jon M. Smith

Smith shows, in clear step-by-step procedures, how to use and apply numerical techniques, approximations, tables, graphs, and flow charts for performing quick accurate calculations, all the way to advanced mathematics. Using few derivations and theorems, it's the best book for getting numerical results for scientific operations from your pocket calculator.

(0 47179997-1) 1975 380 pp. $13.75

Circle 214 on inquiry card.

Please send the books indicated for 10-DAY FREE EXAMINATION. (Restricted to the continental U.S. and Canada.)

Mail to: WILEY-INTERSCIENCE P.O. Box 092 Somerset, N.J. 08873 □ Payment enclosed, plus sales tax. Wiley pays postage/handling. We normally ship within 10 days. If shipment cannot be made within 90 days, payment will be refunded. [J Bill me. □ Bill firm or institution.

NAME

AFFILIATION ADDRESS CITY

D 1. McGlynn (0 471 58415-2)

□ 2. Soucek (0 471 81391-5)

□ 3. Finkel (0 471 25884-9)

□ 4. Barna/Porat (0471 05051-2)

□ 5. Soucek (0 471 81390-7)

□ 6. Coury (0 471 18051-3)

□ 7. Smith (0 471 79997-1)

STATE /ZIP

Prices subject to change without notice.

092 A 8071-57

(a)

prediction

prime

actual

not prime

prime

1

0

not prime

0

1

(b)

prediction

earthquake

actual

no earthquake

earthquake

1000

500

no earthquake

0

1000

Figure 9: This is the main control logic of the simulated evolution technique. It first builds a dummy model, predicts an event, and receives the response. It then performs repeated versions and variations of the model looking for the optimum model to predict the correct answers.

( PREDMUT J

MAIN PROGRAM

BUILD

DUMMY

MODEL

MAKE PREDICTION

GET RESPONSE

SAVE

ORIGINAL

MODEL

ADVANCE MODEL ONE STATE

■*!'

|REFERENCES

I FIGURES I TO 8, |

j PIECES OF MUTATE |

REPLACE ORIGINAL WITH MUTATION

NO /GENERATIONS YES

LIMIT

^REACHED/

P.

Table 2: Two tables which illustrate examples of goals used to evaluate the models using historical data methods. Table 2a shows that when a correct guess of either prime or not prime is made a value of 7 Is added to the total value of the state. Table 2b illustrates another manner of weighting answers. A correct answer receives a weight of 1000. Predicting an earthquake when there isn't one only adds a weight of 500 to the model. Not predicting an earthquake when there is going to be one adds nothing to the model. This is a more subtle form of weighting since it not only allows a good and bad answer but also a not so good answer.

while missing an earthquake prediction adds nothing to the value of the model.

PREDMUT - Putting It All Together

Figure 9 shows the mainline logic for the program. The flowchart should be obvious except perhaps for the use of the terms search limit and generation limit.

In order to prevent the evolution procedure from taking hours or days, it is constrained as to how long it can take. Each time an evolution cycle must occur, two variables are set. The search limit variable defines the number of times the parent may be serially mutated when searching for a better offspring. The generation limit variable defines the number of offspring to be generated.

The result is that a fixed number of offspring are generated. Further, each offspring can undergo a maximum series of mutations, since it is seldom that a single mutation results in a better model. To make the program more intelligent, one can increase these limit constants, but the result is a greater amount of computer time required between responses.

Again, for those adventurous programmers who want to make their programs even smarter, other methods can be employed to determine dynamically how many offspring and how many mutations are to be performed. There are other advanced evolutionary techniques that can also be employed. Interbreeding, majority logic and second order pattern recognition are just a few terms describing the advanced tech

106

Circle 136 on inquiry card.

niques available in computer science literature.

In Conclusion

If you have the patience, sit down with a pencil and paper and attempt to perform the process I've just described. Many mathematical books and papers contain random number tables you can use. As a result you should quickly see how this mathematical technique results in the creation of a model of some process. From there it is relatively simple to program.

Do not be afraid to try your own improvements, but do so intelligently as you get a feel for the underlying processes. The process described herein is the basis for many computer versions of this artificial intelligence technique and has worked with varying degrees of success for a wide variety of goals. I might conclude from personal experience: Be careful how and to whom you expose this technique. There are many people who fear computers as they fear anything they don't understand and their enthusiasm for your creation may not match yours. With a good enough program model, however, you should be able to predict who these people will be. [Hmm . . . our artificial life has defense mechanisms. ] ■

SOFTWARE

All programs include: Complete assembler source listing, sample output, hex dump, sorted symbol table, plus complete instructions and thorough documentation. Text Editing System for 6800. The best! SL68-24 $23.50 NEW Mnemonic Assembler System for 6800. SL68-26 $23.50

NEW Stack Oriented Arithmetic Processor (6800) SL68-25 $10.00

NEW 8080 KUngon Capture Space game. SL80-7 $6.50 Special Game Packages Each containing 6 programs:

8080 PD80-1 $19.95. 6502 PD65-1 $19.95.

6800PD68-1 $16.50 Complete 6800 Software Pack 16 programs. PD68-3 $35.50

Battleship for 6800, like the board game. SL68-22 $8.00 Space Voyage'" TSC's 6800 Star Trek game. SL68-5 $12.00

Micro BASIC Plus The best 6800 "Tiny BASIC!' SL68-19 $15.95

Diagnostics for 6800. Very Important! SL68-23 $10.00 Stock Market for 6800. Lots of fun! SL68-7 $4.25 Complete Catalog of all of our programs. $ .25 Program-of-the-Month-Club'" Join the hundreds of hobbyists already enjoying this service. No obligation and no time valued cards to return. Discounts offered. One year for $2.00

To Order: Include 3% postage, $1.00 handling on orders under $10.00. Indiana residents add 4% sales tax. Check your dealer!

TCP TECHNICAL SYSTEMS CONSULTANTS

BOX 2574 W. LAFAYETTE, INDIANA 47906

,,,.,,.:,:,■

I/O SPECIFICATIONS (now switch selectable)

Data rate:

110, 300, 600, 1200, 2400, 4800, 9600, or 19200 baud

Parity:

odd, even or none

Stop bits: 1 or 2

Logic Levels:

RS232, TTL, source or

sink 20 ma loop

Price:

$400 excluding monitor

Optional features: the additional functions of cursor forward, backward, bell, screen roll up and roll down are available for $50.

The ACT-I sets the standard for Affordable Computer Terminals. The ACT-I is the most economical method of alphanumeric communication at data rates all the way to 19200 baud. The ACT-I video computer terminal 1 manages a 1024 character memory organized as 16 lines of 64 characters chosen from the standard uppercase ASCII set. Receipt of more than 64 characters automatically scrolls the screen and initiates a new line

The ACT-I comes fully| assembled and tested. MICRO-TERM products! are available in stock at discriminating computer! stores or factory direct! (30-45 days). Optional) video monitors are avail-1 able from the factory be-| ginning at $125. Prices) FOB St. Louis, MO.

MICRO-TERM INC.

RO BOX 93B7

ST. LOUIS. MO 63117

ction rACT-l ON

107

Circle 77 on inquiry card.

Circle 205 on inquiry card.

THE PROM SETTER

WRITE and READ EPROM

1702A and 2708

• Plugs Directly into your ALTAIR/IMSAI Computer

• Includes Main Module Board and External EPROM Socket Unit

• The EPROM Socket Unit is connected to the Computer through a 25 Pin Connector

• Programming is accomplished by the Computer

• Just Read in the Program to be Written on the EPROM into your Processor and let the Computer do the rest.

• Use Socket Unit to Read EPROM's Contents into your Computer

• Software included

• No External Power Supplies, Your Computer does il all

• Programs and Reads Both 1702 A and 2708 EPROMS

• Doubles as an Eight Bit Parallel I/O

• Manual included

KIT COMPLETE — $165

ASSEMBLED — $275 Delivery Loss Than 60 Days

SZERLIP ENTERPRISES

1414 W. 259th St. — Harbor City California 90710 California residents plebse add 6% Bales tax.

21 START-AT-HOME COMPUTER BUSINESSES

in the shoestring, start-at-home

computer business handbook

CONSULTING •PROGRAMMING ^SOFTWARE PACKAGES «C0M FREELANCE WRITING »SEMINARS •TAPE/DISC CLEANING FIELD SERVICE • SYSTEMS HOUSES • LEASING«SUPPLIES PUBL I SHING • TIME BROKERS • HARDWARE DISTRIBUTORS SALES AGENC I ES • HEADHUNT I NG ^TEMPORARY SERVICES USED COMPUTERS* FINDER'S FEES«SCRAP COMPONENTS COMPUTER PRODUCTS AND SERVICES FOR THE HOME

IMA1 .TUB"

Plus - - hundreds of ideas on moonlighting, going full-time, image building, revenue building, bidding, contracts, marketing, professionalism, and much more. No career planning tool like it ever published. Order now and if you're not completely satisfied, send it back within 30 days for a full and immediate refund.

r i ngbound • 1 13 pp.

$ 12.00

730WAUKEGANROAD • SUITE 108 DEERFIELD, ILLINOIS 60015

DflTRSERRCH

incorporaled

Rush copies of "The Shoestring Start-At-Home

Computer Business Handbook to me right away

NAME/COMPANY

ADDRESS

CITY/STATE/ZIP

□ CHECK ENCLOSED QB AN KAMERICARDrjMASTERCHARGE I

(Ms and Newsletters

KIM Users Notes

Owners of KIM microprocessors should look into KIM Users Notes, published monthly by Eric C Rehnke, Apt 207, 7656 Broadview Rd, Parma OH 44134. The subscription rate is $5 for the first six issues.

Alberta Microprocessor

David Lavers, a member of the recently formed Alberta Microcomputer Society, has been in touch. Right now information at this end is a bit sketchy, but you can find out more through their acting president Dwight K Soloman, c/o The Computer Hobby Shop, 4812 16th St SW, Calgary Alberta CANADA T2T4J5, (403) 243-6776.

Diablo Professional Users Group — Pleasant Hill CA

Here's a unique idea for a computer club.

The word professional in this case includes two categories: the computer novice who is an expert in another field, and the computer expert who can provide answers to the first group. This is an opportunity for budding technical types to get in on the ground floor of microcomputer consulting. The beginners include a wide spectrum of industries and professions. Anyone from the high school level up, with several years experience with hardware and/or software, can consider himself or herself an expert.

Meetings are held in the Diablo Valley College library's large conference room from 8:00 to 9:00 PM on the fourth Wednesday of each month. Diablo Valley College is located near the Willow Pass exit of Freeway 680. For details write or call Bob Hendrickson, Electronics Dept, Diablo Valley College, Pleasant Hill CA 94523, (415) 687-8373.

South Florida Computer Group

The South Florida Computer Group has apparently grown to the status of a major computer club. Meetings are held in both Miami and Ft Lauderdale. Meeting times seem so flexible that it would be best to contact them directly to get their schedule. Their newsletter I/O has improved substantially over the past six months to the point that it is far more than just a review and

Circle 223 on inquiry card.

108

listing of club events. Volume 2, number 2 contains an in-depth look at resistors and capacitor color codes, and a piece on the new "minor loop" chips designed by Texas Instruments to be used with bubble memories.

To contact the South Florida Computer Group, write 1155 NW 14th St, POB 236188, Miami FL 33123, or phone (305) 324-5572.

Looking for Computer Games? Try POPULAR COMPUTING

POPULAR COMPUTING is a monthly compilation of computer games, puzzles and brain twisters. Most of the programs are fairly short, perfect for whiling away a spare afternoon. Among the games is up-to-date information on the micro field and a regular feature called "Schwartz on Calculators." To subscribe, write POPULAR COMPUTING, POB 272, Calabasas CA 91302. Subscription rate is $20.50 per year, or $17.50 if remittance accompanies the order. Add $1.50 per year for Canada and Mexico; all other countries, add $3.50 per year. Back issues are $2.50 each.

The Computer Hobbyist Group — North Texas

The Computer Hobbyist Group of North Texas is the place for computer buffs in the Dallas-Fort Worth area to develop and share an understanding of the hobby.

Meetings are held regularly at the University of Texas, Arlington, and the University of Texas, Dallas. Contact the Computer Hobbyist Group of North Texas at 2377 Dalworth 1 57, Grand Prairie TX 75050.

ON LINE - Hardware and Software Exchange

ON LINE is a newsletter strictly limited to classifieds for computer hobbyists. You'll find page after page of hardware and software available to buy, sell or swap. A great place to find a bargain or an odd item.

ON LINE is published every three weeks. Four issues are available for $1,18 for $3.75 and 36 for $7. For advertising rates and other information, get in touch with D H Beetle, publisher, 24695 Santa Cruz Hwy, Los Gatos CA 95030.

Chicago Area Computer Hobbyist Exchange

Looking through The Register, newsletter of CACHE, I came across what may prove to be an interesting series on languages. In the coming months The Register is planning on a series of articles on BASIC, PL/I, SNOBOL, PASCAL, PILOT,

FORTRAN, LISP, TRAC, CASUAL and FORTH. This should be a step toward clearing up language questions and misconceptions. Write to CACHE at POB 36, Vernon Hills IL 60061. 77?e Register is available for $10 per year.

Washington Amateur Computer Society

The Washington Amateur Computer Society is a growing group of hobbyists in the nation's capitol. Meetings are held on the last Friday of the month in the second floor conference room of St John's Hall at the Catholic University of America. WACS is interested in exchanging newsletters with other computer groups. Correspondence should be addressed to Washington Amateur Computer Society, c/o 4201 Massachusetts Av, Washington DC 2001 6."

Conducted by Peter Travisano

BYTE's wide readership gives your club a unique opportunity to reach thousands of hobbyists. If you'd like to help your club develop or maintain a high profile, put us on your mailing list. Information about new clubs is especially welcome. Address your correspondence to Clubs and Newsletters, B YTE Publications Inc, Peterborough NH 03458.

Introducing Equinox 100 computer kit

THE FRONTRUNNER

Equinox 100™is the 8080 CPU/S-100 Bus computer kit that's years in front of Altair* and IMSAI in design, function and frontpanel programming capability. EquinoxlOO is easier to build, easier to program, easier to expand in the future and completely debugged right now. After all, it's from Parasitic Engineering, the leading supplier of debugging kits for the Altair* 8800. Before you invest in any micro-processor kit, discover the new Equinox 100TM At $699, it's clearly The Frontrunner. Write for free specs to Parasitic Engineering, P.O. Box 6314, Albany, CA 94706.

109

Circle 63 on inquiry card.

Thin

Your single source for componen

■Ar Guard your Altair , IMSAI or custom system against program crashes with CONSTANT VOLTAGE POWER SUPPLIES, special 12 and 20-amp models from Parasitic Engineering. * INTEGRATED CPU/FRONT PANEL gives you access to all 8080 registers, I/Os and memory from octal keyboard and digital LEDs ... by Morrow Micro-Stuff.

the most advanced S-100 ts available:

-At WiinderBuss with Noiseguard™ is the only 20-slot S-100 bus-board with twoway squelching, -k TOTAL I/O BOARD for $120! 3 cassette channels with control, RS232/TTY port, parallel port, memory. * Write for specs.

Thinker

lovs

, 505 Arlington Berkeley, Ca. 94707

photo - courtesy Peter Hollenbeek Byte Simp lierkele;

STATE OF THE ART

BOTH FORMS

There are two forms of the "state of the art." One form is the personal growth attained by most professionals who realize they must stay in step, intellectually, with new concepts and new techinques. Too often, a tragedy occurs when the professional neglects the second form, his career development. The fatal mistake occurs when working in an environment that provides a continuous parallel to industry but neglects to provide the professional growth that is necessary to insure career development and avoid potential future frustrations. To insulate yourself against this happenstance, check with our professional staff. They will advise you on your career development as it relates to your technical development.

Our areas of specialization are:

Software Development Computer Graphics Data Base Computer Design Simulation and Modeling Telecommunications Hardware/Software Interface

For further information either call or send resume to:

PERRI-WHITE ASSOCIATES

50 FRANKLIN STREET

BOSTON, MASS. 02110 PERRI-WHITE & ASSOCIATES, INC.

(617)423-1900 5373 W. ALABAMA PLACE

HOUSTON, TEXAS 77056

(713) 960-0350

Management Consultants

Specializing in Data Processing/Systems Engineering

All Replies Held In Strictest Confidence

Continued from page 74

blasted- IV bytes. They are great if you never want to do anything fancy, but. . . .With the bus address coming from an extended microcode, one may simply decode a la 8080 and use 8212s as your IO ports. Also note that for some instructions there are free bits, ideal for adding instructions.

Interrupts will be painful, as the system doesn't have a stack, unless you use one of the aforementioned free bits to implement one (hint, hint).

My reaction to your suggestion about emulation of a 360 is unprintable. /Quite reasonable evaluation . . . CH/ If you must, however, don't do it with the 8X300. Use Motorola's 10800 series. It's faster (50 ns, YES, 50 ns), and in the end would be less work. See, it's optimized for 360 type systems. Leave the 8X300 for the job it was designed for, a microcontroller.

Which gets around to the point of this letter: As a controller, the 8X300 is unbeatable. You neglected to mention what I consider to be the best feature of the system (after its speed). Every instruction operates on a bit string. You specify the starting bit and the length in bits of the field in the byte that you want the instruction to operate on. One can also do n bit rotates on any register to register instruction. Thus, you can add two registers and rotate right n bits in 250 ns or move bits 5 to 2 from memory to IV byte bits 7 to 4 without affecting the rest of the bits. This applies to all instructions. Thus, the 4 port kit can easily act as a front end to a busy computer for 8 Teletypes. Or consider a floppy disk. At double density, the bit transfer rate is 500 kHz, or a bit every 2 (us, or a bit every 8 instructions. Actually, as shift registers are so cheap, one might as well use them and free the microcontroller for other tasks like file handling. I have SMS's floppy disk controller interfaced to my 8080. At $640 it's not cheap, but they do provide the address and data bus on connectors for "maintenance." They are rather tight with the source code in the read only memories, though. It would be nice to have a parallel processing floating point processor when not doing disk transfers, particularly as it is practically free.

In short, the hobby world should take a long look at this device. But keep in mind that it was designed as a controller, not a computer. Its architecture is optimized as a bit banger, and it does that superbly. As an emulator, it's the pits: Use a 2901 and a 2909, or any of the other bit slices and save yourself a bunch of time, trouble and hassle. Do use the 8X300 as a peripheral controller,

Circle 281 on inquiry card.

110

fccN

^

.^%W-AC«

A«

top values, professionalism

Computerland stores are exciting, enjoyable places to visit. From the striking decor to the fun and challenge of the ComputerlandTM Game room, you'll find Computerland stores a completely new shopping experience.

You can count on Computerland stores for total professional support whether your needs are those of a computer hobbiest, education, science or business user. The skilled, managementtrained staff offers knowledgeable service, expert maintenance, and software guidance.

breadth of products

At Computerland stores the emphasis is on quality products. Major brands like Cromemco, DEC, Diablo, IMSAI, Lear Siegler, Polymorphic Systems, TDL and Vector Graphics to name a few.

Every store is completely stocked with tools, books and a broad range of accessories.

Franchise Opportunities available—Contact:

Ed Faber, President Computerland Corp.TM 1922 Republic Ave. San Leandro, CA 94577 (415)895-9363

Circle 208 on inquiry card.

beginners welcomed

Do you want to get started with microcomputers? Are you seeking expert guidance on computers, peripherals, software? The place to visit is your nearest Computerland.

Watch for a Computerland store opening near you soon.

now open: DeHart Street Morristown, NJ 07960

(201) 539-4077 6840 La Cienga Blvd. Inglewood, CA 90302

(213)776-8080 813 B Lyndon Lane Louisville, KY 40222

(502) 425-8308 104 W. First Street Tustin, CA 92680

(714) 544-0542 24001 Via Fabricante Mission Viejo, CA 92675

(714)770-0131 22634 Foothill Blvd. Hayward, CA. 94542

(415)538-8080 Opening Soon: Chicago, ILL. Gaithersburg, MD San Diego, CA Buffalo, NY

floppy disk controller, unibus to Altair address mapper, DMA IEEE-448 bus interface, data acquisition controller, etc. If you use it for its intended purpose, you cannot be anything but delighted.

Finally, a note about Scientific Micro Systems. They arc the only company to provide really complete documentation. Their products work as advertised. They

gave me the shirt off their backs in helping with the nuclear instrumentation. It is truly refreshing to deal with such a company. I urge you to drop them a note as the microcontroller is only one of a large group of components they make. All are so pleasant to use, you kind of forget about them, which is the highest compliment I know how to give to an IC."

In February 1977 BYTE, page 132, we published an article by Charles Howerton, giving the software of a package of utility routines for an 8080 processor. Joseph Newcomer of Carnegie-Mellon University sends along this critique of the methods of coding the BARC routines. It should be noted that within the context of an interrupt free single process computer, the BARC routines will work as described. The subtleties occur in cases where interrupts are allowed or one desires to put the program into write protected or read only memory regions.

A Critique of Self-Modifying Code

Joseph M Newcomer

Computer Science Dept

Carnegie-Mellon University

Pittsburgh PA 15213

Mr Howerton's article in the February BYTE would have performed a much greater service to the community of programmers if he had coded it to allow recursion and provided a few extra items of documentation. After having expended a great deal of effort and cleverness to fit his code into 256 bytes, he then compromises reliability by having it modify itself. The concept of code modifying itself is undoubtedly the worst single idea that neophyte programmers fall in love with. Since the most obvious thing in the world is to take his BARC package and put it in a PROM, my first critique is that he has

carefully made sure that is not possible! Not only is self-modifying code useless in the world of read only memory, but experienced programmers know that code which modifies itself is inherently harder to debug.

I should like to offer the obvious solution: Instead of storing the dispatch address in line in the code, store it out of line in the writable programmable memory. Thus, one must reserve a certain number of bytes for this address. However, since none of the routines in BARC call one another, only one dispatch address area is required. Then one only need do a "call indirect" through this address. Of course, the 8080 does not have a call indirect instruction, so one has to fake it; use a 3 byte dispatch area, and make the first byte the op code of a )MP

NEW 8080 and 8085 REFERENCE GUIDE

A TOTALLY NEW APPROACH!

SAVES TIME AND MONEY!

MAKES YOUR JOB EASIER!

PLEASE SEND

NAME

STREET

CITY

STATE

A powerful new tool for every serious 8080 user—professional and novice alike. Priceless timesaver for engineers,

technicians, and programmers. Saves time and money in the lab, on the production line, or in the field.

This convenient pocket size guide (3% by 7% inches) gives quick and easy access to all vital reference data. No more

searching here and there for codes, instructions, or definitions. It's all there — at your finger tips — everything you

need to successfully use the 8080A and its replacement — Intel's new 8085 microprocessor.

Features cross listing, for rapid assembly and disassembly, of MACHINE CODES and MNEMONICS. Concise

description of 8080 and 8085 OPERATIONS, SIGNALS, PINOUTS, and INSTRUCTIONS. Convenient cross

conversion of OCTAL, HEXIDECIMAL, DECIMAL, ASCII, and EBCDIC codes. Easy-to-use tables of powers of two,

eight, and sixteen . . . and much more . ..

' This handsome easy-to-read guide is printed on durable "lifetime" vinyl. Sturdy metal binding insures that your timesaver will provide many years of professional service. $12.95 each (plus postage & Calif, sales tax) — 25% discount for 4 or more.

Money Back Guarantee: You must be fully satisfied or simply return the guide within 15 days for full and prompt refund. URBAN INSTRUMENTS • 4014Codyroad ■ departmentbi

SHERMAN OAKS • CALIFORNIA 91403

8080 timesavers to:

MAIL TODAY OR CALL ORDER DESK (213) 986-6958

CHECK/M.O ENCLOSED G BANKAMERICARD □ MASTER CHARGE □

CARD NUMBER

GOOD THRU

4 DIGITS ABOVE NAME

(MASTER CHARGE)

Circle 270 on inquiry card.

112

instruction. This is, of course, "modifying code," but at least we now have the ability to put the program in read only memory.

writeable space: GODO JMP

rom, typical call: SHLD

CALL

Q'000000'

GODO+I

GODO

Now, as to the issue of insufficient documentation: The functional documentation is quite clear, but the crucial piece of information that I find to be missing is that the routines in the BARC package should never be called from an interrupt service routine. This is because the routines are not reentrant (and my proposal of the dispatch vector in programmable memory does not change this); if they are active when an interrupt is taken, and the interrupt service calls them, the dispatch address will be changed. Consider the following sequence (events are listed):

CALLOCHR

CALL DASXR

CALL DASNT -<interrupt>

CA1 L XCHR

t/i CD

o "a

<5

a

fu

O OQ

<return from XCHR> —<retum from interrupt>

DASFC: CALL <something>

where <something> is expected to be OCHR but in fact is XCHR. The difference in time between the setting of the dispatch address and the use of it is (if I counted correctly) 235 machine cycles: a very, very long time. Furthermore, this sort of bug is nearly impossible to locate at the "lights and switches" level because the act of singlestepping changes the relative timings and the error will not occur. Using a debugging system may have the same effect, and if it is a homebrew debugger which would use BARC, then it would destroy the very information it was trying to analyze. Absolutely nowhere in the article could I find any warnings about this! Only my experience was an indicator: Whenever static data, either code or otherwise, contains state information, look for cases in which routines which use it can be called recursively. Note that recursion does not have to be explicit; calling a routine from interrupt level where the routine was active at the time the interrupt was taken constitutes a recursive call.

Less Bread, f More Box. 2

New, complete Breadboarding/Interfacing Station.

Only $237.50

We took our economy Breadbox IV kit and did a complete design number on it... to add accessories and give you far more hardware for the buck.

For example: It plugs directly into your Altair/lmsai buss without special adapters ... Gives you almost 3,000 connections for breadboarding ... Power supplies (+5&+/-15V) built in... Available in kit or assembled format. All that for just $237.50 each in kit form.

And to top it off, monitor the buss with LED or 7 segment displays, add an LR-6/K LED indicator outboard - 4 individual LED's with driving circuits ($10.00 each). And LR-4/K seven segment display outboard with driver/decoder ($19.00 each).

So bug out to your local computer store now and save substantial bread on this E&L deal. Or write us for the store nearest you. •Suggested resale price (U.S.A.). Dealer inquiries invited.

C

§•

E&L INSTRUMENTS, INC.

61 First Street, Derby, Conn. 06418 (203) 735-8774 Telex No. 96 3536

Circle 56 on inquiry card.

113

Circle 222 on inquiry card.

rt£_Jj . .:

PRAMMER

by XYBEK

An extraordinary 2k memory board for your Altair-bussed computer

ir On-board 1702A PROM programmer

"A" Space for 1792 bytes of read-only memory (seven 1702A EPROMs)

if 256 bytes of RAM

if Supplied with one 1702A, pre-programmed with stand-alone programming software — no sense switches are used

"A" Supplied with programming power supply

"fc PRAMMER's own on-board clock makes it compatible with almost any Altair-bussed system.

if All read and write sequences are generated via an on-board micro-programmed state machine, thus eliminating all one-shots.

"A- Complete 1702A programming in 18 seconds

COMPLETE KIT: $209

($189 through June 14, 1977)

Assembled and tested: $289

Immediate (off-the-shelf) delivery

California residents please add sales tax.

Master Charge and BankAmericard accepted.

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

IBM SELECTRIC

TYPEWRITER

INPUT OUTPUT

CONVERSION KIT

Easy to install on any IBM Selectric I and II, providing quality hard copy output for all microprocessor devices.

PRICE $395

GDITYPER SYSTEMS CORPORATION

A SUBSIDIARY OF TYCOM CORPORATION

26 Just Road, Fairfield. New Jersey 07006 (201)227-4141

The use of a single dispatch vector does make it possible, with care, to use BARC from an interrupt routine. Before invoking any BARC routines, push the current dispatch address onto the stack; after using BARC, pop it off. If BARC was active, the program has correctly preserved state; if not active, only a few cycles have been lost.

The requirement that the parameter lists be in line also seems to be a bad choice to me; it would be much better to simply store a pointer to the parameter lists, or even better pass a pointer in a register. Since speed was not of the essence and size was, it seems to me that something which reduces the size of the code at the call site would be more desirable. Furthermore, if the addresses or values of the parameters must change, in line parameters force the user to write self-modifying code. This means that the user cannot, after having developed some neat system, convert it to a PROM region of memory.

A good criterion for evaluating a program is: Can it be put in PROM? If, after separating out the data areas, it cannot be put in PROM, then from my experiences I consider it to be badly written, no matter how useful or amazing its functions may be. Then ask: Can it be called recursively? If not, do not call it from an interrupt routine if it can ever be called from outside an interrupt routine. And don't forget multilevel priority interrupts, which are very easy to handle on 8080 architecture. Do not call the routine from outside an interrupt context if it can be called from within one, which is the complementary condition. Note that these are not always obvious errors to detect, since the interrupt routine may call something which calls something which eventually calls something else; and one day the "something else" is modified so that it calls one of the nonrecursive routines. The scenario is now set for disaster: Let an interrupt come in at the wrong time and you are set for a long, tedious and probably unrewarding debugging session attempting to locate a source of "random" behavior.

Charles Howerton Replies

In response to the critique of BARC by Mr Newcomer of Carnegie-Me/Ion University, I should like to begin by saying that I agree with his comments without equivocation for the environment which he hypothesizes. I also agree that the concept of modifying running code is very "hairy." However, even Mr Newcomer's proposed "fix" requires the modification of running code.

Circle 269 on inquiry card.

114

The BARC routines were written for newcomers to the computer programming field. It has been my experience that the greatest problems the beginner has in writing programs are manipulating the registers (hence, the register preservation facilities of BARC), and writing routines containing loops which are designed to perform the functions provided by BARC.

In addition, the newcomers to home computing or even industrial or business computing are rarely faced with programming an 8080 or Z-80 which is loaded with interrupt generating hardware. Those of us who work with interrupt driven hardware (and I do) would not use BARC for the simple reason that we are, presumably, sufficiently talented in programming arts that the creation of routines to perform equivalent functions is trivial.

As for embedding the parameters in line with the code, the one type of code that the average beginner writes well is straight line code with a few conditional jumps where decisions are required. Also, this is a fairly standard practice in large machine operating systems. Relative to the comment, "... if the addresses or values of the parameters must change ... ", what is the difference whether they change in a work area or in the in line code? They must still be changed!

BARC was not designed to be called recursively; it was designed to be used as a programming tool by someone who was using straight line code to solve a problem. As for debugging it: it works.

Could BARC have been written to meet all of Mr Newcomer's criteria? Undoubtedly. However, not nearly as many functions could have been included in the same space.

Charles P Howerton

Digital Group Software Systems Inc

POB 1086

Arvada CO 80001 ■

Thanks to Charles Howerton For BARC

Thanks for the Howerton article in your February 1977 issue, page 132, "Add Some BARC to Your 8080." Now I can finally get rid of the needless duplication and generally sloppy coding of utility routines in my programs and turn the job over to BARC. What a great time and memory saver!

D M Bell

Vice President, Engineering

Handi Kup Company

195Tamal Vista

Corte Madera CA 94925 ■

THE COMPUTER RQQM

SMALL COMPUTER SYSTEMS • SOFTWARE • AMATEUR RADIO EQUIPMENT

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

"WE TAKE THE Umm OUT OF THE MICRO "

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 RM EASY TO UNDERSTAND CATALOG COVERING

IMSAI

THE DIGITAL GROUP

POLYMORPHIC SYSTEMS

SOUTHWEST TECHNICAL PRODUCTS CORPORATION

TECHNICAL DESIGN LABS

ETC.

3. the COMPUTER RQQM -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

115

Circle 141 on inquiry card.

Introduction to

S M Quek

Stanford University POB 9647 Stanford CA 94305

Microprogramming

REGISTER FILE

REGISTER B

ARITHMETIC LOGIC UNIT

(2) ADD

(31ACCUMULATOR OR REGISTER B RESULT

1±

ACCUMULATOR

TEMPORARY STORAGE

(OTEMPORARY -•- REGISTER B

Figure 7: A block diagram with time notations for a sequence of events that might occur in a simple machine instruction such as: Add accumulator to register B. First (I) register B is put into a temporary storage area. Then (2) this storage area and the accumulator are added together by the arithmetic logic unit. The resulting answer (3) is stored in the accumulator or register B.

CENTRAL PROCESSING UNIT

i

1

1

1

1

CONTROL UNIT

REGISTER FILE

ARITHMETIC LOGIC UNIT

1

l_

i

i

t •

1

'

,

.

J

BUS

J

t

'

'

MEMORY

10 DEVICE

10

DEVICE

Figure 2: Block diagram of the architecture of a typical bus oriented digital computer.

What is Microprogramming?

When we consider the operation of a simple machine instruction, like add accumulator to register B on some computer, we often find that there is a sequence of even more elementary operations involved. For the example given, we may first have a transfer of data in register B to some temporary register in the arithmetic logic unit. Next, we may then perform an addition operation and finally, return the result of the operation to either the accumulator or register B. Figure 1 illustrates this sequence of operations.

Wilkes, an early pioneer in the field of computer design, called these elementary operations "microoperations." (See reference 1.) By this token, a single machine instruction, like the add described above, would consist of a microprogram of these microoperations. Microprogramming is, then, the implementing of control logic for a computer's instruction set through the ordered storage of processor control information.

Microprogrammable Computer Organization

Figure 2 is a simplified block diagram of the architecture of a digital computer. The organization of a microprogrammable computer differs from that of a nonmicroprogrammable computer in the design of the control unit. The nonmicroprogrammable

116

machine uses a hardwired control unit. All control lines are fixed and cannot be changed easily. On the other hand, a microprogrammable machine uses a changeable microprogram in implementing the control unit and thus by changing the microprogram, the machine can be altered within certain limits of its design. Let us now take a look at the control unit of a microprogrammable computer and figure out how it works.

A typical microcontrol unit would consist of a mapper, a microsequencer, a microcontrol storage and a decoder. The last item, the decoder unit, is optional and may not be found in some machines. The interconnections between these units are shown for a typical design in figure 3.

In operation, a machine instruction is fetched from main memory and is stored in the instruction register. The mapper converts this machine instruction into the starting address of the microprogram routine which is supposed to execute the instruction as a sequence of microoperations. This address is passed on to the microsequencer whose job is to step through the microprogram. As each microinstruction is read out, the decoder translates it into control signals for the various control lines.

Originally, the mapper was implemented using a decoder tree made up of discrete logic gates. Nowadays, array logic blocks in the form of read only memory and so called programmed logic arrays are used for this purpose. (It should be noted that programmed logic arrays are especially suited for this task. Read only memories contain many more bits than are needed, and are thus more expensive than programmed logic arrays. The array is powerful enough to implement most functions needed and its lower cost makes it a very attractive candidate for the mapper.)

The function of the microsequencer is to provide a value for the next address of an instruction in the control memory. It can be thought of as having a microprogram counter and additional logic to test for conditional branches. Thus, in its simplest form, it could just be a presettable counter with associated circuitry for performing branches and conditional tests. However, most commercially available micro

L

INSTRUCTION REGISTER

MAPPER

MICROSEQUENCER

1

MICROPROGRAM COUNTER

"

~i

CONTROL

STORAGE

(THE MICROPROGRAM)

1 1 1

BRANCH LOGIC

CONDITION FLAGS

1 ~'

' 1

DATA REGISTER

DECODER

'

1

r

CONTROL SIGNALS

SEQUEN

CE INFORMA

TION

Figure 3: Block diagram of the connections between various parts of a microprogrammed central processor. The typical processor consists of a mapper, a microsequencer, control storage and an optional decoder.

X

X.

X

X

X.

X.

X.

X.

X.

CONTROL SIGNALS

Figure 4: Typical diode matrix. A binary number is input on n number of lines. It is decoded into 2n number of outputs. These lines are then decoded through the use of a diode matrix. The outputs of the matrix are at the control signals lines.

117

Figure 5: Typical microinstruction word format. The instruction allocations are generalized but are found in almost all such data formats. The word format itself can be of any length. The usual length is from 24 to 60 bits although a field width of 100 bits is used by IBM in some applications.

. n'n INSTRUCTION

DATA ROUTING

ARITHMETIC

LOGIC UNIT AND SHIFTER

MEMORY 10

DATA SOURCE

DATA DESTINATION

NEXT ADDRESS

USER FUNCTIONS

sequencers (such as the Intel 3001 or AMD 2909) are more sophisticated than this; some (eg: AMD 2909) even to the extent of having a built-in stack for processing microprogram subroutine linkages.

The microcontrol store is usually some kind of read only memory. Wilkes envisioned this as a diode matrix such as shown in figure 4. Of course, immense technological advances have been made since Wilkes' time and now the microcontrol store is usually implemented by read only memories, of which the discrete diode matrix can be thought of as the forerunner. In addition to read only memories, some microprogrammable computers have a form of programmable memory as part of their microcontrol store. This allows for dynamic changes of microprogramming which lead to an even more flexible and powerful machine. With such a configuration, the microprogrammer can easily rewrite, add or delete portions of the microprogram to suit the particular task at hand.

From a consideration of the microcontrol store, we next proceed to a discussion of the microinstruction. It is the microinstruction that forms the control mechanism which causes each data register change. A typical microinstruction word format is shown in figure 5. Generally, there has to be a field to control the arithmetic logic unit and the shifter, one for memory, and one for 10 control. In addition, another field has to be reserved for information regarding the routing of data. Some kind of sequencing field which specifies the next microprogram address is usually also included. Finally, to

•4 (n + I)1

IF | D |

INSTRUCTIONDF I E

IF: INSTRUCTION FETCH E: EXECUTE

D:DECODE T: TESTS

DF: DATA FETCH

TIME

Figure 6: Timing diagram for the sequence of interpreting an instruction. This process is divided into five stages: instruction fetch, decode, data fetch, execution and testing. As soon as the testing is finished, the instruction fetch cycle is again encountered to start the next sequence.

suit the architecture of a particular machine, there is a field left for user definable functions. These vary from machine to machine but would usually include conditional tests and branches. From this brief discussion, it should be apparent that there is no fixed width for the microinstruction. Indeed, it varies from 16 bits for the Signetics 8X300, chip, to 24 bits for the HP21MX minicomputer to 100 bits for various models of the IBM360. However, the width of the microprogram word in most small and medium size computers ranges from 24 bits to 60 bits.

If the microinstruction is wide enough, we can allocate a single bit to a single control line. In such a case, the microinstruction is said to be unpacked or horizontal. However, if we want to save control memory space, we may want to encode the data so as to compress the word width. An external decoder can then be used to recover the data. This is the packed or vertical format. A machine seldom takes on a fully packed or unpacked format for its microinstruction. Instead, most machines have microinstructions which lie somewhere between the two extremes; some fields are encoded while others are not.

When deciding on the width of the microinstruction, several factors have to be considered. The first and most obvious is cost: The wider the microinstruction, the higher its cost. This is so because memory is more expensive than a decoder. The penalty paid for having a vertical or packed format is a decrease in speed and flexibility. In the case of a horizontal machine, there are separate bits controlling the individual lines. Thus, there can be more parallelism in the control as more resources can be controlled simultaneously. However, for this same reason, horizontal machines are much harder to program. The microinstruction set of vertical machines resembles the assembly languages of minicomputers.

Instruction Interpretation

Let us consider the sequence for the interpretation of an instruction. In figure 6, we see that the process of interpreting an

118

TIME SAVED

IF

D

DF

E

T

TIME

instruction can be roughly divided into five stages. The first stage is that of an instruction fetch. The contents of the program counter is sent to the memory address register and a read memory command is initiated. The program counter is now incremented and the microcontrol unit waits until memory is ready with an instruction.

Once memory is ready, the instruction is loaded into the instruction register. This completes the first stage. On the time chart (figure 6), this corresponds to the segment IF. The mapper decodes this instruction into a microaddress which is passed on to the microsequencer. This is the decode phase, segment D on the time chart. As the microsequencer steps through the control memory, we have control signals coming out of the microcontrol memory. Depending on the instruction, we may need to initiate another memory read to fetch data. This would be segment DF. Once this is completed, we can proceed to instruction execution, segment E. Finally, upon completion of execution, a series of tests can be performed. These could include software tests for conditional branch hardware or software tests for interrupt, and hardware tests for direct memory access requests. The sequence for an add accumulator to register B (store results in accumulator) and skip if overflow may look like listing 1,

Of course the listing has to be coded into micromachine language form. DMA. SERVICE, INT.SERVICE and INSTRUCTION.FETCH would then be microprogram subroutines to service the various requests. A register, which holds data coming from memory, is assumed to be present. If no buffer register is used, then step 10 in the routine should be changed to:

10)IR:

1EMORY DATA.

Figure 7: Timing diagram illustrating the time that is saved when implementing the changes of listing 2. This time saving occurs only when an interrupt or direct memory access request does not have to be processed. If a request does have to be processed, the timing diagram of figure 7 applies to the process..

sign, most computer designers had to rely on multiphase "hardwired" logic for their design. Multiphase logic uses multiphase clocks to control the various register to register transfers and other functions. Hence, the designs are extremely complicated. Once the machine has been hardwired, it becomes virtually impossible to change the instruction set without redoing the design once again, ie: rewiring it.

Microprogramming overcomes these disadvantages and provides a means for obtaining relatively simple and flexible designs. To illustrate, reconsider the microprogram for the add instruction. If we look at the time chart of figure 6, we see that waiting for

Step Instruction

1 MAR:=PC

10

PC:=PC+1

[wait for memory] ;

IR:=MDR

TEMP:=REG B

ADD, ACC:=RESULTS

IF OV=1 THEN PC: = PC+1

IF DMA REQ=1 THEN JMP

DMA.SERVICE

IF INT REQ=1 THEN JMP

INT.SERVICE

JMP INSTRUCTION.FETCH

Commentary

memory data counter:= program counter;

[read memory]

increment program counter;

enable mapper, load microsequencer;

disable mapper;

add and store results in accumulator;

if overflow increment program counter;

if direct memory access requested, go to

routine;

if interrupt requested, go to routine;

fetch next instruction;

Listing I: A program listing for the sequence: Add accumulator to register B, store results in accumulator and skip if overflow exists. Lines I through 4 are the instruction fetch routine. Lines 5 and 6 add register B to the accumulator and stores the result in register B. Line 7 checks for an overflow, and lines 8 through 10 check for interrupt and direct memory access requests. When the program listing is encoded into micromachine language form the DMA.SERVICE, INT.SERVICE, and INSTRUCTION.FETCH will become microprogram subroutines to service the various requests.

This will enable the mapper and load the microsequencer.

Step Instruction

9 MAR: = PC

10 IF INT REQ=1 THEN JMP INT.SERVICE

11 JMP INSTRUCTION.FETCH + 1

Commentary

read memory;

if interrupt requested, go to routine;

skip first step of instruction fetch;

Why Microprogramming?

Before microprogramming was developed and firmly incorporated into computer de

Listing 2: Revisions of the program of listing 1 which allow a savings of time in the execution of the program. This savings is shown graphically in the timing diagram of figure 7.

119

memory to be ready with an instruction takes up a good portion of our time. Thus, to speed things, we may want to initiate a read memory instruction before we proceed to the various tests. Accordingly, we rewrite our microprogram with the modifications starting on line 9 shown in listing 2.

The new time chart obtained with this modification is shown in figure 7. Note that if no direct memory address requests or interrupts have been requested, then there is a savings in time. This is because we do not have to wait as long for the instruction fetch: a result of the early initiation of the read memory. If there has been an interrupt or direct memory access request, then no gain in speed would be obtained. However, since these requests are relatively rare, this new modification would result in an overall increase in speed.

If hardwired logic was used for the control unit, it would be very difficult to make the modification just described. Thus, we see that microprogramming is a very powerful tool in the design of digital computers."

REFERENCES

1. Wilkes, M V and Stringer, J B, Microprogramming and the Design of the Control Circuits in a Digital Computer, Proceedings of the Cambridge Philosophical Society, Part 2, Volume 49, April 1953, pages 230-238.

2. Mick, J R, AM2900 Bipolar Microprocessor Family, Micro 8 Proceedings, September 1975, pages 56—63.

3. Coleman, V and Rallapalli, K, A Versatile Microprogram Sequencer, Micro 8 Proceedings, September 1975, pages 52—55.

4. Intel, "3001 Microprogram Control Unit," data sheets, Intel Corp, Santa Clara CA.

5. Cook, R W and Flynn, M J, System Design of a Dynamic Microprocessor, IEEE Transactions on Computers, C-19, 1970, pages 213-222.

6. Stone, H S, editor, Introduction to Computer Architecture, Chapter 10, "Interpretation, Microprogramming, and the Control of a Computer" by Flynn, M J, Science Research Associates Inc, Palo Alto CA, 1975, pages 432-471.

6800 OWNERS UNITE!

FREE YOURSELVES FROM THE BONDAGE OF SLOW CASSETTE I/O.

LOUDLY PROCLAIM YOUR SUPERIORITY OVER YOUR 8080 NEIGHBORS

AND THE Z-80 SUBCULTURE. JOIN THE BFD-68 REVOLUTION.

Our Basic Floppy Disc System (BFD-68) must, in all modesty, be called superb. It comes completely assembled with a disc controller that is plug compatible with'the SWTPC 6800. The cabinet and power supply are capable of handling 3 Shugart Mini-Floppy Drives. One drive is included in the basic system price of $795 and other drives may be added easily at any time for $390. Or, you may save money by ordering a dual or triple drive system initially. The price for the BFD-68-2 is $1169 and for the BFD-68-3 triple drive system $1539.

Remembering that we are prone to understatement, we must say that while the BFD-68 hardware is superb, the software is even better. Our Disc Operating System provides the following advantages over most other systems.

• ANY NUMBER OF FILES MAY BE OPEN (IN USE) AT ONETIME

• THE NUMBER OF FILES AND SIZE OF FILES IS LIMITED ONLY BY THE SIZE OF THE DISC

• MERGING FILES REQUIRE NO EXTRA DISC SPACE

• NO WAITING FOR THE DISC TO RE-PACK

• LONGER DISC LIFE-MORE EVEN DISC WEAR

NEED A FULL SIZE FLOPPY?

Our P-38-FF is a plug-in interface card to the ICOM Frugal Floppy1'1'. It includes all the features of the P-38-1 plus one 2708 EPROM containing the ICOM bootstrap software. Just plug the P-38-FF into your SWTPC 6800 and your ICOM into the P-38-FF and you're ready to use the Frugal Floppy and ICOM's 6800 software package. Price $299.

Our P-38 is an 8K EPROM board containing room for 8 2708's. Or, you may use it to hold up to 7 2708's plus your Motorola Mikbug or Minibug II ROM. The P-38 addressing is switch selectable to any 8K location. Price $179.

The P-38-1 contains all the features of the P-38 plus an interface to the Oliver Paper Tape Reader and our EPROM Programmer. Price $229.

The PS-1 Power Supply Kit provides plus and minus 16 volts required for the P-38 series boards. Also, it allows a wiring modification to be made to the 8 volt supply that will increase its output by one volt. Price $24.95.

Our M-16 is a 16K single power supply STATIC RAM memory system. The M-16 is fully buffered and requires only half the power of a similar size system using low power 2102's. With the M-16, you can expand your system to 48K and still have room left over for one of our EPROM boards. Price $595.

ALL OUR PRODUCTS EXCEPT THE PS-1 ARE COMPLETELY ASSEMBLED. AVAILABLE AT MANY SWTPC DEALERS OR FROM US BY MAIL. BANKAMERICARD AND MASTERCHARGE WELCOME.

SMOKE SIGNAL BROADCASTING

P.O. Box 2017, Hollywood, CA 90028

Circle 169 on inquiry card.

120

Your microcomputer is only as good

as its memory

pin

*"fSK

TSSEWT _■, is*.*

SBiTii 6800

COMPUTER

system

'

Your m icrocomputer is... in a manner of speaking... capable of thinking. The amount

of information you can store, combined with the access speed, determines the bottom line capability of your microcomputer.

The Midwest Scientific Instruments' FD-8 Floppy Disk Memory System will enable you to get the most out of your microcomputer.. .6800 or 8080. We have the most complete 6800 disk operating system available today, which interfaces to any microcomputer via a single PIA chip.

When used with the MSI FDOS Operating System.. .included with purchase.. .the FD-8 gives your microcomputer a level of performance which can only be matched by larger computers.

You can have program save and load with named, variable length, password protected files at three levels: object code files, source code files, and BASIC files.

It has disk routines which can be used easily by

low level assembler language programs as well as high level BASIC programs. The coresident assembler/editor saves and loads source files from disk, assembles and stores object code on disk, and creates assembly listings on a high speed printer. You get a full ANSI standard BASIC interpreter* with program load and save, from disk as well as tape, with both random and sequential disk data files. BASIC also has multi-l/O port capability under software control.

And all you need do to access any of these functions is type the appropriate commands on your terminal. The FD-8 is complete, including all power supplies, cabinet, cables, software, manuals, and documentation.

You can order the FD-8 as a kit for $1,150.00, or wired and tested for $1,395.00.

Visit one of our dealers for a demonstration, or send for our free Catalog of MSI products.

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

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

Micro Store

634 South Central Expressway Richardson, Texas 75080 (214) 231-1096

Vanguard Systems Corporation

6812 San Pedro

San Antonio, Texas 78216

(512)828-0553

A-Vid Electronics Company 1655 East 28th Street Long Beach, California 90806 (213) 426-5526

Electronics for Yachting 1525 South East 16th Street Ft. Lauderdale, Florida 33316 (305) 525-3478 TWX 510-955-9484

High Technology 1020 West Wilshire Blvd. Oklahoma City, Oklahoma 7311£ (405) 842-2021

Computer Workshop 174 Ifield Road London England SW10 9AG 01-373-8571

Tttidcve&tScientific *)i€4fouinei€t4>

220 West Cedar • Olathe, Kansas 66061 • 913/764-3273 TWX 910 749 6403 (MSI OLAT)

DDnnnnDnnannnnnDDanannnDD

□ Before I forget.

'-' Name

D

□ Address

a

a City

D State D

.send me your catalog

□ D □

D

D

D

D

BY577 Q

□ □aooonQncinnQQnonaaaDnnaa

*MSI BASIC is an additional $65.00

Zip

MSI is a dealer for Southwest Technical Products • Mastercharge & BankAmericard Orders accepted

220 West Cedar • Olathe, Kansas 66061 • 913/764-3273

Circle 119 on inquiry card.

TWX 910 749 6403 (MSI OLAT)

~'- I

MERLIN is the best ASCII/Graphics board now available for the S-100 bus . . . and at an unbelievable price!

Compare these features to any other

video interface:

ft 160H x 100V resolution bit mapping

graphics i, On-board ROM (Monitor/Editor)

option * 40 characters by 20 lines, character

ROM generated (hardware) it Keyboard interface (with power) it Programmable modes and display

format ft Serial I/O port

•ft Low power . . . only 6O0ma at +8V it Extremely fast (uses DMA) it Comprehensive User Manual

. . . 200ps ft American 60HZ or European 50 HZ

operation.

Designed-in expandability means maximum versitility at minimum cost. Add-on options now available (in kit form) include: it Super Dense Graphics

(M320-K) $39

it Lower case characters

(LC) $25

■ti Serial-tc-parallel expansion Kit

(MSEK-K) $45

is 1500 Baud (software) cassette

interface kit (MCAS-K) $29

it 2K x 8 Mask ROM: graphics,

cassette, & extended editing

software (MEI) $35

ft 2K x 8 Mask ROM/256 RAM;

Monitor Editor Software (MBI) ..$39

The MBI ROM software is designed to allow turnkey operation and sophisticated editing and scrolling.

Ask to see a demonstration of MERLIN at your nearest computer store. Many dealers now stock MERLIN and there is nothing like a hands-on demo for really evaluating a product. We know you'll be sold.

MERLIN Kit with Manual $269

MERLIN, assm'd& tested $349

MERLIN User Manual $ 10

For fast information, write us direct! MC and BAC accepted.

MmiTerm Associates, inc.

Mass 01730 1617) 648-1200

WBm

Circle 11 2 on inquiry card.

Continued from page 13

ELIZA INTEREST

John Aurelius' letter (March 1977 BYTE, page 16) struck a resonant chord. When I succeed in getting my own system, I have plans to implement a version of the ELIZA program. ELIZA was first described by Weizenbaum in the Communications of the ACM (CACM), Volume 9, Number 1, January 1966, and has subsequently been discussed by Weizenbaum and others too numerous to mention. ELIZA is still alive and productive, although not necessarily as a psychotherapist. I am referring to a version of ELIZA implemented by Shapiro and Kwasny (CACM, 1975, 18, pages 459 to 462) as an interactive consultant for a timesharing system. ELIZA is a very general program whose specific personality derives from a script she is given. Shapiro and Kwasny reasoned that ELIZA would be a suitable mechanism for providing assistance to timesharing users. It was this application of ELIZA which intrigued me sufficiently to begin experimenting with her. Using their program as a point of departure, I have implemented my own (somewhat improved, I feel) version of ELIZA also designed to act as a timesharing system consultant. This program is now free of bugs (I think); however, the script is not yet very sophisticated, so a dialogue with the program is not yet rousing. I would be willing to provide a reasonably well documented listing to anyone seriously interested. Before the idly curious drop me a card requesting a copy, I should warn them that the program alone consists of 500 lines of SNOBOL 4 statements and requires 60 K words (the equivalent of approximately 360 K bytes) of storage to run on the Honeywell 635 computer for which it was written.

Now that everyone's enthusiasm has been dampened, I should admit that my choice of SNOBOL was expediency. ELIZA was originally written in LISP (also a memory hungry, slow, interpretive language).| ELIZA requires the ability to search input text for certain desired content (pattern matching) and ELIZA's internal data structures are best represented as some form of list structure. These two attributes suggest that the most natural (but not necessarily most efficient) choice of a programming language is one that facilitates one or both of these ends. For implementing ELIZA on a small machine, I envision a relatively small core resident program to maintain the keylists and do the pattern matching, while the lengthy script is maintained as files on a secondary storage medium. These files would preferably be kept as random access files on a relatively fast device such as a floppy. A sequential device like cassettes might do, but 1 fear it would be intolerably slow. Unfortunately, ELIZA needs to keep a great deal of text at her fingertips (core resident in my SNOBOL program)

122

for matching against input and for reconstructing into output. Again, I would gladly exchange ideas with anyone interested in implementing such a program.

Glen A Taylor

Wisconsin Research and

Development Center for

Cognitive Learning

University of Wisconsin

1025 W Johnson St

Madison Wl 53706

COMMENTS ON TURING MACHINES

Jonathan K Millen's December 1976 article (page 1 14) on an actual hardware implementation of a universal Turing machine was very interesting. The relationship between the Turing concept of a universal machine (computer) and the capabilities of "real" computers continues to be ignored or misunderstood by many persons who think they know what a computer is. Millen's hardware project may help to enlighten these persons who view the Turing machine world as totally separate from the "real computer" world.

It may be of interest to note that Konrad Zuse appears to have investigated the Turing machine concept soon after World War II, hoping to find some ideas which could be used to simplify the construction of real computers. (My knowledge of this activity comes from a brief private conversation with Zuse at Los Alamos in June 1976.) He did not find any, of course, since we know now from experience that extremely simple machines in their primitive state are difficult to use in practice. Zuse's early work on computers was done without any knowledge of Turing's work, while it is known that von Neumann's input to early computers was not independent of such knowledge, (von Neumann became acquainted with Turing while Turing was at Princeton in 1937 and 1938 after the Turing machine work which was published in England.)

Millen makes some statements regarding the Busy Beaver Game that should be corrected. This game was invented by Tibor Rado and is described in the article "On Non-computable Functions" in the Bell System Technical Journal, Volume 41, May 1962. Millen has taken the liberty of adding an additional state to his Turing machines which he counts as a state for the Busy Beaver Game. This adds behavior that effectively eliminates his machine example from being considered in the game. II goes into a nonstop loop instead of halting. This also distorts the rules of the game. His 6 counting "4 state" machine is actually a 3 state machine by Rado's rules.

Millen then gives what he says are known results for 3 thru 7 states when he really should be saying 2 thru 6 states. In any case, the "known" results he mentions are still incorrect. The best results are as follows:

Current Results (1975) Busy Beaver Game

(Millen's

Correct Number

States:)

of States

Busy Beaver Score:

Determined by:

(3)

2

= 4

T Rado

(4)

3

= 6

S Lin

(5)

4

= 13

A Brady

(6)

5

> 112

D Lynn

(7)

6

> 117

A Brady from 5 state result of D Lynn

7

> 22,961

M Green

8

>3.(7.392-i)/i2

M Green

While the summary I have shown here is in the process of being published, most of these results have been available in the open literature.

Allen H Brady

Univ of Nevada

Computing Center

POB 9068

Reno NV 89507

AUTHOR JONATHAN MILLEN REPLIES:

I am grateful to Dr Brady for his update on the Busy Beaver Game results. The terminal "copy" loop on state 4 of the example program was necessary because my universal Turing machine (UTM) has no automatic halt. A copy loop is an adequate substitute, because it is recognizable as such, and it does not change the contents of the tape.

Readers may be interested in the alternative Turing machine hardware realizations described in the following two references:

1. I Gilbert and J Cohen, "A Simple Hardware Model of a Turing Machine: Its Educational Use," Proceedings of the ACM Annual Conference, 1972.

2. Wakerly, J F, Logic Design Projects Using Standard Integrated Circuits, John Wiley and Sons, NY, 1976.

Jonathan Millen

66 Main St

Concord MA 01742

FURTHER SYS 8 EXTENSIONS

Readers who have been following the two recent articles in the January and February 1977 issues on improving SYS 8 Software Package 1 by Willard Nico may be interested to know about one of our products. This product is called Software Package 0.5.

This is a program in source code, plus a complete manual, for improving SYS 8 Package 1. In addition to the added commands and auto line capabilities discussed by Mr Nico, our program offers: insert, delete, and change string operations on a current line; string operations on a find first occurrence basis; page listing modes; reordering of line numbers; automatic tabbing; optional suppression of line numbers; and more. For the assembler, we add the following: octal numbers are accepted; a

global symbol table for often used symbols; an ASC pseudo op for including real time output lines; output of the symbol tables; an expandable table of pseudo ops; and still more.

The program also adds the capability to assemble programs in sections as they are read in from a mass storage device. This means that program size is no longer limited by the amount of programmable memory available for source code files!

The source code translates to 1.75 K object code bytes. The user edits this in with his existing SYS 8 Software Package 1, conforming it to the limits of his system. For this gem of a program, we charge a mere pittance, a token $14.95.

Larry Weinstein

Objective Design Inc.

POB 20456

Tallahassee FL 32304

WINDMILL JOUSTING DEPARTMENT

I'm just getting started in this field and have enjoyed and benefited from the past six or seven issues of your publication. I will soon purchase and (I hope) have running a micro, both for personal use and as a fairly large data base device for a three man law office.

What prompts me to write this is the use of such expressions as "his/her" and "he or she" which appear with increasing regularity in your magazine. The zenith was reached in the February issue.

Let's be fair; you are leaving out a lot of readers. For example, there are certainly corporations and schools which own micros. Surely, the inclusion of only the masculine and feminine gender must seriously offend these neuter users. [Let's start an "It" liberation front?] Please, then, include "it" in such expressions as "Whenever the user finally gets his/her/its machine running . . . . "

Secondly, there no doubt are some partnerships or associations that own or use micros. Can you imagine the chagrin of the members of these bodies not to be included in all your pronouns! This will necessitate your saying: "Whenever the user finally gets his/her/its/their machine running . . . . "

Don't offend, for God's sake. And to heck with grammar or readability.

I am sure, if you really work at it, you could find even more ways to insure that your articles are hard to read — like,

SUPER DENSE GRAPHICS

320 Horizontal by 200 Vertical

KC0S(2iX/b>

.■1. b-42 86

IF YOUR COMPUTER \Z/ \Z/

CAN'T 8NILE <0R PL0T> IT PROBABLY O

HAS BERLIN DEFICIENCY V V

ANEHIA. \\^y

(EQUATION PLOTTED HITH BASIC)

The MERLIN Super Dense add-on kit provides maximum resolution at a minimum cost. In fact, MERLIN with Super Dense has more capabilities than any other S-100 bus video interface at any price!

Once you've seen 'Super Dense' graphic resolution you'll know there is nothing to compare it to . . . short of spending over $600 . . . and even then you'll not have all of the capabilities of MERLIN with 'Super Dense'.

Super Dense provides true bitmapping. Each and every point on the screen is controlled directly by a bit in memory. (Requires 8K of system memory.)

ROM character-graphics looked good for a while; then came MERLIN'S 160 by 100 bit mapping graphics; and now . . .

320 by 200 bit-mapping graphlcsl! I If you're looking for a graphic display, MERLIN with Super Dense Is the best there is. And if you hadn't considered graphics or thought it was out of your price range, consider what you could do with 320 H by 200V graphics and for only $39 extra.

The Super Dense add-on kit to the popular MERLIN video interface is now available with off-the-shelf delivery.

M320-K, Super Dense Kit $39

M320-A, Super Dense Assm. ..$54 See MERLIN ad on previous page.

For information fast, write direct, or see 'Super Dense' at your nearest computer store.

MC and BAC accepted.

MimTerm Associates, inc.

Bo, 268. Bedford, Mass 01730 (6171 646-1200

123

Circle 112 on inquiry card.

.;,

Made possible by the designed-in expansion capabilities of the impressive MERLIN Video Interface.

Aside from general purpose uses, the designers at MiniTerm anticipated Graphics and Graphics games and the problem of control interfacing. The MSEK (MERLIN Serial Expansion Kit) provides:

Three parallel Input ports Three parallel output ports

These can be used for interfacing joysticks or game controllers or parallel I/O devices. And the price can't be beat! The MSEK mounts inside your keyboard and connects to MERLIN through the keyboard cable.

WA

Also available from MiniTerm is the first real raster graphics."Space War" game for the personal/hobby market.

"Space War" gives the user control of rotation, accelleration, and firing of missiles for two space ships. When used on the MERLIN video interface with 'Super Dense' add-on option (320 x 200) the game provides more excitement than any BASIC version of "Space War" or any of the standard TV games!

A delux version of "Space War" is also available which allows selection of ship dynamics to simulate cars, tanks, boats, etc. and allows the user to draw his own 'ship'.

Space War (SPW) $25

Delux Space War (DSPW) $35

(Add suffix -T for Tarbell tape, or -P for

INTEL hex paper tape.)

A complete source listing is available for an additional $10 for either game.

Write for full description, or better yet, play a few rounds at your local computer store. But be prepared to stay a while. There is likely to be a line and you may become addicted.

MC and BAC accepted.

MiniTerm Associates, inc.

Box 26B Bedlcrd. Mass 01730 (617) 648-1200

Circle 112 on inquiry card.

"owner/user," for example — we have to be accurate, right? Or "hobby/personal/ recreation/small business" every time to describe (modify) the word "microcomputer." That'll really screw up the readers and give more money to the authors, too.

Be honest, folks; are you on some kind of a crusade? If not, please drop the abominal usage of English (even lawyers recognize the use of "his/her" and the like is bad) and get on with publishing valuable, concise and readable pieces for the benefit of your poor readers. It the gals are offended by the use of masculine pronouns, then fine — print 'em all in the feminine gender. Most men couldn't care less. But stop the foolishness, okay?

WC Welborn Jr

Caine and Welborn Law Office

2221 W Franklin St

Evansville IN 47712

Its, you? Gesundheit!

SOME COMMENTS ON MIKBUG

The following letter reaches readers in two parts. The main body of the letter is found here; the information in one paragraph of the letter is noted in "BYTE's Bugs" on page 160, and is not repeated here.

I was pleased to see John Rathkey's article "A MIKBUG Roadmap . . . " in February 1977 BYTE, page 96. The IO routines in this ROM are very useful and have saved me a lot of programming time.

The following comments and additions apply to table 1:

1. BADDR alters the contents of both A and B.

2. OUTHL and OUTHR both destroy the contents of A. Thus A must be reloaded if one desires to output both nybbles.

3. INHEX puts a hexadecimal digit in the right nybble of A.

4. OUT4HS outputs the four hexadecimal digits pointed to by X and X+1, then prints a space. X is incremented by 2 and the contents of A are lost.

5. OUT2HS also uses X as a pointer. X is incremented and A is altered.

6. OUTS is omitted from the list. This routine prints a space and begins at EOCC.

The routine labelled PSTR in listing 1 duplicates PDATA1 in MIKBUG. The only significant difference between the two routines is that PDATA1 uses the code 04 (EOT) to mark the end of the string rather than 00 as used by Rath key.

The indexed mode JSR command can occasionally be used to save a few bytes of code when using the MIKBUG IO routines to and from the A register. Simply load the lowest address of the routines you will be using into X; the

124

desired routines can then all be addressed with the 2 byte indexed mode JSR rather than the 3 byte extended mode. Of course, this technique won't help if you want to use the routines that require X as a pointer.

The MIKBUG program uses a block of programmable memory from A0O0 to A049. Since this is usually provided by a 128 by 8 RAM chip, the remaining 53 bytes from A04A to A07F are available to the user for data or short programs. In addition, space for a stack is provided from A014 to A042. Since many programs won't require such a large stack, some of these bytes can generally be used for other purposes. The stack pointer is initially set to A042 and increments downward as more stack bytes are required.

You have a fine magazine; keep up. the good work.

D B Brumm

dB Engineering

224 HeclaSt

Lake Linden Ml 49945

NOTES ON ARTICLE CONTENTS

I have been reading BYTE for about a year now. I would like to congratulate you on your very interesting journal. However, it disturbs me that you continue to publish articles on programming and construction techniques only for the more well known microcomputer chips such as the 8080 and 6800. I contend that articles on microcomputers based on the 1802 and the 6502 would also be beneficial as they are also in popular use.

Leonard P Jacobs Jr

USF#1570

Tampa FL 33620

We've had numerous articles on the 6502, already, starting with a review of the processor in November BYTE 1975 by Dan Fylstra, and continuing with several about the KIM-1 and its application or modification. In the near future we'll have David Brader's Komputar, a homebrew 6502 system plan. As for the 1802, or any other processor, what we print to a large extent depends on what people are doing, since the majority of BYTE articles are unsolicited contributions from readers actively engaged in experimentation. Based on recent data from readers, authors and manufacturers, there should be a bit of an upswing in 1802 awareness over the next few months.

THE EVOLVING LEXICON

A thorough answer to W Buchholz's question I February 1977 BYTE, page 144] about words that have passed from computer jargon into the general vocabulary would probably require a master's thesis.

The main reason is that several wholly new dictionaries have come on the US market in the past ten years or

so. Among them are: American Heritage Dictionary (three editions), Doubieday Dictionary, Random House Dictionary (two editions). Several older dictionaries have been extensively revised; set in new type, or both: Webster's New World Second College Edition, MerriamWebster Seventh College Edition, Thorndike-Barnhart Advanced Dictionary. And that's not all.

The Oxford English Dictionary has started work on a 3 volume supplement that will cover new words and meanings since about 1 91 4. The first volume came out in 1972. The Oxford English Dictionary seems to be doing a more thorough job on computer terms than on general electronics! The entry for "control" in the new Oxford English Dictionary supplement quotes the 1948 MIT glossary and the 1955 glossary of the British Standards Institute. But the Oxford English Dictionary inexplicably skipped the electronic use of "emission" as the kind of signal (AM, FM, TV) a statidn sends out, although that word with that meaning has been around since at least 1927.

Almost the first thing I did when I got interested in microcomputers was to build my own glossary, starting with the lists in the back of the IEEE Dictionary (and acquiring other glossaries as I went). So I had a list I could check against a brand new dictionary (American Heritage Dictionary, College Edition of 1969) and a dictionary whose date of revision is known (Webster's New World Dictionary, Second College Edition of 1970).

American Heritage Dictionary started with a clean sheet. It has excellent typography but fewer entries than Webster's New World Dictionary. It uses larger type, and has very wide outer margins on each page where the artwork is put. Its vocabulary of computer terms includes:

accumulator, address, ALGOL, alphanumeric, analog computer;

base, bit; Boole, George; Boolean algebra;

chip, computer, computer language, converter ("a device that transforms information from one code to another");

data ("Numerical information in a form suitable for processing by computer"), data processing, demodulation, digital computer;

flip flop, FORTRAN;

gate ("a circuit extensively used in computers that has an output dependent on some function of its input");

hardware ("a computer and the associated physical equipment directly involved in the performance of communications or data processing functions");

information, information theory, input;

machine, machine language, memory, module, Murphy's Law;

PL/1, printer, print out (verb), printout (noun), program (noun and verb), programmer;

readout, real time;

software, storage.

Webster's New World Dictionary has more entries and smaller type. The College Edition is its number 2 product. Some of the computer definitions are eyebrow raisers:

accumulator, address ("the location in a computer's storage compartment of an item of information, identified by a number or other code"), alphanumeric, analog, analog computer;

bit, Boolean Algebra;

computer, console;

data processing, decoder, digital computer;

flipflop, FORTRAN ("a digital computer language similar to algebra");

gate;

hardware;

information, information theory, input;

language ("a special set of symbols, letters, numerals, rules, etc, used for the transmission of information, as in a computer"), logic ("the systematized interconnection of digital switching functions, circuits, or devices, as in electronic digital computers");

machine language, memory;

printer, printout (noun), program (noun and verb, two definitions each), programmer and programer (as shirttails, undefined, following program);

random access, read ("to obtain [information] from [punched cards, tape, etc] ; said of a computer"), readout, real time, routine;

software, storage, store, symbolic logic;

throughput, track;

word, write ("to record information in a computer's memory or on a tape, etc, for use by a computer").

Webster's New World Dictionary had a contributing editor who was then the head of the Electronics Engineering Department at Carnegie-Mellon University. American Heritage Dictionary had no electronics specialist identified as such on its I 969 masthead.

If you know someone who is majoring in computer and minoring in linguistics, you might set him or her on this. The sooner it's wrapped up thoroughly, the easier it will be to do thoroughly. One question that should be explored in any exhaustive treatment is why certain words were admitted to the general vocabulary, and others were not, in each edition of each dictionary.

C J Mike Fern Jr, WA60WJ

1046S Westlake #1

Los Angeles CA 90006"

125

They can transform a hobby computer into a professional, useful tool.

But why pay $300 for one? The MERLIN Video Interface is also a ROM Monitor board. The optional 2K x 8 MBI ROM Monitor/Editor is available for only $39.

The MERLIN Monitor provides commands for turnkey 8080 or Z80 operation and program debugging and the Editor is the best there is. Any BASIC or user program is compatible with the MBI software.

And now MiniTerm introduces the ROM/EROM kit so that you can put the rest of your operating system and general purpose routines in ROM for increased ease of use and reliability.

Just Look at these features:

<r Power-on jump to any 1K block

* Holds eight 2708 EROMs ir Bank select feature

A S-100 bus compatible ■a Wait state logic

* Addressable to any 4K block And it's only $89 in kit form!

So write or buy your operating system — then optimize it for your specific needs and put it into ROM where it will always be available and yet changeable when necessary.

MiniTerm will also provide 2708s for $40 and will introduce its inexpensive 2708 programmer next month.

Once you've had or used a system with good ROM operating software (Monitor, Editor, Relocatable loader) you'll understand why ROM boards are becoming so popular.

But don't spend more for ROM boards with extra goodies when all you need Is a board to hold your ROMs and to provide power-on jump. Buy the MiniTerm ROM/EAROM kit for only

For more information fast, write direct. MC and BAC accepted.

MiniTerm Associates, inc.

2fcS (iedloid Mass 11 l 13U (61 71 6-18-1200

Circle 11 2 on inquiry card.

BYTE's Bits

A Phonograph Record in a Computer Magazine?

Bob Jones of Interface Age magazine has informed us of an intriguing new feature included in their May issue: a flexible plastic phonograph record bound into the magazine which contains a 4 K byte BASIC compiler plus a binary loader and two memory test programs. The program, written by Robert Uiterwyk for Motorola 6800-based systems, uses the 300 bps Kansas City standard. The record's appearance marks the first time that such a technique has been used in a magazine to disseminate software. (Readers may recognize the record as the type used to promote recordings by mail).

To recover the programs, the user plays the record on his or her phonograph in the normal manner and feeds the output to an AC-30 or similar cassette interface, the same procedure used for data cassettes. Using the "tape out" feature (available on most amplifiers) is probably the easiest way to feed the signal to the interface.

Each record is good for about 100

playings; unless they are severe, scratches have no effect on accuracy. An additional benefit of this system is the elimination of tape dropout problems. Bob has promised some 8080 and Z-80 programs for future issues. Contact Interface Age, POB 1234, CerritosCA 90701."

KIM Has a Contest

In a press release from MOS Technology Inc, Richard Simpson has announced the KIM Software Contest, open to all KIM owners and users. The prizes are:

First prize: KIM-3 8 K memory

expansion board Second prize: KIMROM-1 Resident

Editor/Assembler ROM Set Third prize through tenth prize:

KIMath Source Listing and User

Manual.

All entries must contain program documentation and source code listing (but a hand assembled source is allowed). All entries become the property of MOS

OUR PROTO-CLIP

CAN PAY FOR ITSELF THE

1STTIMEYOUUSEIT.

The reason's as simple as the time you'll save testing, signal tracing or wiring in DIP's. Not to mention the cost of IC's ruined by accidental shorts. A Proto-Clip is the foolproof, short proof way to bring up leads from crowded circuit boards. Its patented, molded design and unique gripping teeth free hands for other work. Built to withstand tough dayto-day use, CSC clips are available with or" without cable for 14-, 16-, and 24-pin DIP'S, starting at $4.50* For more information, see your dealer or write for our full-line catalog and distributor list.

CONTINENTAL SPECIALTIES CORPORATION

44 Kendall Street, Box 1942

New Haven, CT 06509 • 203-624-3103

TWX: 710-465-1227

West Coast office: Box 7809,

San Francisco, CA 94119 • 415-421-8872

TWX: 910-372-7992

U.S.Pat No. 3.914,007 "Mfrs.sugg. retail © 1975. Continental Specialties Corp.

Technology Inc and will be turned over to the KIM Users Group for possible publication.

Entries will be judged on the basis of originality and usefulness to the user community. If external hardware is required, a schematic should be provided. Complex programs taking more than 1 K bytes of memory such as high level languages, assemblers, cross assemblers, text editors, etc, will be awarded a duplicate first prize if accompanied by working source tape or cassette. All entries must be received by July 1977. Prizes will be awarded on August 1 1977. Send all entries to KIM Software Contest, MOS Technology, 950 Rittenhouse Rd, Norristown PA 19401.

This looks like an interesting opportunity for KIM enthusiasts to earn a bit of glory. ■

The Following Was Received From American Federation of Information Processing Societies (AFIPS):

The fast growing field of personal computing will be in the national spotlight this June at the 1977 National Computer Conference in the Dallas Convention Center. Reflecting the dynamic growth and promise of the personal computing field, the 1977 NCC will feature a Personal Computing Fair, a Personal Computing Exposition, two full days of program sessions, a National Club Congress, as well as special interest sessions for computer hobbyists.

The Personal Computing Fair, scheduled to run throughout the four days of the conference, June 13 to 16, will feature operational displays and demonstrations of individually and group owned noncommercial projects. More than 100 small computing systems are expected to be displayed featuring hardware and software implementations, games, recreation, music, art, amateur radio, as well as scientific and general applications. Prizes and awards will be presented in recognition of outstanding achievement. The Personal Computing Fair will provide hobbyists with the unique opportunity to obtain new ideas for their own systems, solutions to current problems, and a wealth of "how-to" tips on personal computing.

The conference program will feature an in-depth examination of personal computing on Wednesday and Thursday, June 15 to 16. Two 3 hour panel sessions on Wednesday will examine "Personal Computing — Past, Present and Future" and "Hardware for the Computer Hobby Market." Thursday morning will feature a 3 hour panel covering "Personal Computing Software," with the afternoon devoted to the presentation of papers relating to personal computing, plus a concluding panel on "The Future of Retail Computer Stores." Each panel will feature presentations by leading authorities in the personal computing field, and will be designed to

Circle 6 on inquiry card.

126

THE COMPUTER SHOP

Calgary, Alberta 3515 18th St SW

Phone (403) 243-0301

IMSAI, SWTPC, Digital Group, Cromemco, T.D.L., Lear Siegler ADM3A, Morrow cassette interfaces, MiniTerm, Polymorphic, Solid State Music, and the Calgary made Interalia 8000 micro. Prices generally US list plus duty, tax & exchange (now 30% altogether). Special: free Morrow serial/parallel/cassette port board incl. PROM boot with every IMSAI 8080 mainframe — first 50 orders mentioning this ad only! Full repair facilities.

CANADA

k

LOGIC

DESIGN

INC

QUALITY Support for those who wish to dig deeply into digital design.

Breadboarding System, textbook on logic design, and complete schematics for an elegant CPU that will run the PDP8 instruction set .. $1095

132 IC's $ 87

TTY Interface $ 20

Memory $26/k

BOX 3991, UNIV. STATION

LARAMIE, WY 82071

(307) 742-7977

19" RACK S-100 BUS CARD CAGE

ECT-100 CARD CAGE KIT $100

CARD CAGE / MICROCOMPUTERS

ECT-100-8080 KIT $320

ECT-100-Z80 KIT $420

8,192 x 8 BIT STATIC MEMORY EXCEPTIONALLY LOW POWER

f-EBBB IBEBBEBUV ' ■

■ m\

rTWY'

!m liu!rimi>i<')YnViiift'jsiv'.

8KM MEMORY BOARD KIT $295 PB-1 PROTOTYPING BOARD $28 EXT-100 EXTENDER CARD $24

ELECTRONIC CONTROL TECHNOLOGY

P.O. Box 6, Union, New Jersey 07083 I201I686-B080

Circle 179 on inquiry card.

Circle 209 on inquiry card.

Circle 47 on inquiry card.

BITE

Article Index

FREE

Complete listing of all feature articles appearing in Volume I of BYTESeptember, 1975 thru December 1976. Indexed for easy reference. Includes all errata.

To get yours, send a $.24 stamped self addressed envelope to:

BYTE Index

70 Main Street

Peterborough NH 03458

BVTESHDP

the affordable computer store 7825 BIRD ROAD QF (305)264-2983 MIAMI

DIAL264-BYTE MIAMI

WE HELP YOU GET YOUR SYSTEM

UP AND RUNNING.

The word is getting around ... the Byte Shop of MIAMI is a remarkable exception to the rule among computer stores. We offer a truly delightful environment supported by

* REAL courtesy

* REAL expertise

* EXPERT service

* GREAT classes

demo systems

IMSAI 8080

BYTE-8

SWTP MP68

CROMEMCO

PROCESSOR TECH

INTERFACES (KITS or ASSEMBLED UNITS)

Opening computer store #2 IN FORT LAUDERDALE

MEMORY EXPANSION COLOR TV GRAPHICS LEAR SIEGLER ADM 3 PAPER TAPE READER

DISCOUNTS!

IMSAI 8080 KIT $599.

assembled 750. IMSAI 8080 w/22 slot MB 645.

assembled 795. RAM4A-4 125.

assembled 225. MULTIPLE I/O Board (MIO) (both Tarbell and Byte modes one serial, two parallel, one control port) 175.

assembled 275.

EXPM (100 pin w/edge conn 6.50

assembled 11.50

(POLYMORPHIC SYSTEMS)

16x64 CHAR VIDEO BOARD 189.

assembled 229.

Keyboard —

63 key fully encoded ASCII, +5v only, positive or negative logic, repeat key, IC sockets. kit $54.

assembled 69.

*write for discount prices on other IMSAI products.

*N.C. residents add 3% state sales tax

CDfTlPUTER ELECTRDFItCS

BOX 339

Cary, N.C. 27511

Circle 271 on inquiry card.

Circle 253 on inquiry card.

provide attendees with the latest information on new developments, trends, and the outlook for the future. Ample time will be allotted to answering questions from those in the audience.

Plans are also under way to bring together various special interest groups in personal computing for a series of informal sessions on such topics as the building of computing kits, debugging software, use of assembly language, peripheral interfaces, cassette and disk storage, and software standards. In addition, plans are being developed for a "National Club Congress" to enable representatives of clubs from throughout the nation to exchange ideas and discuss issues relating to their activities and programs. Among expected topics will be whether or not a national personal computing association is needed, and if so, how it might be formed. Related topics are expected to include hardware/software standards, a possible national program library interchange, and the establishment of educational seminars.

In addition, the 1977 NCC will feature a commercial exhibition by equipment manufacturers and suppliers of personal computing products and services. The Personal Computing Exposition will be in the North Hall of the

Dallas Convention Center, one level below the main NCC exhibit hall.

Information on the 1977 NCC may be obtained from AFIPS Headquarters, 210 Summit Av, Montvale NJ 07645, or by calling (201) 391-9810.■

A Calgary, Alberta Store . . .

The Computer Shop is the name of a new store which sells IMSAI, Digital Group, Interalia, Cromemco, LearSeigler, Polymorphic Systems, Southwest Technical Products, Morrow, MiniTerm and TDL products to central Canadians. The shop sent us a flier, with a handwritten note that the typical prices are USA prices plus about 25%. The store is located at 3515 18th St SW, Calgary, Alberta CANADA T2T 4T9."

Another Dallas Area Store

KA Electronic Sales, a Dallas distributor of industrial electronic components to both businesses and individuals, has opened a computer store at 1220 Majesty Dr in the Brookhollow Industrial Pk, Dallas TX.

The KA Computer Store currently

expand your ^S50R

1tJ^g% programmable ^>X4^v\ scientific

€t#<^<^t".^., calculator

• Unlimited Number of Steps

H.n.".n . . INCLUDES FREE. 14 Digit Readout • 44 page HANDBOOK

• ONLY $189.00 • Users Group Membership

• IN STOCK • Programming Sheets

ARTISAN

ELECTRONICS CORPORATION

5 EASTMANS RD., PARSIPPANY

NEW JERSEY 07054

TELEPHONE: (201) 887-7100

markets central processing units and peripherals by several manufacturers including IMSAI, Southwest Technical Products Corporation, Lear-Siegler Terminals, Solid-State Music and The Digital Group.

KA also supplies electronic components and parts as an industrial and retail distributor, and has a second electronics parts walk-in store located at 1117 S Jupiter, Garland TX."

How to Get a BASIC Source Listing

Dr Dobb's Journal of Computer Calisthenics & Orthodontia, in its J anuary edition of this year, has published the complete source and object code assembly listing of the Lawrence Livermore Laboratory BASIC interpreter developed by John Dickenson, Jerry Barber, John Teeter and Eugene Fisher. The interpreter is a 5 K byte program designed to be loaded in PROM or ROM. It includes a floating point arithmetic package. Dr Dobb's is located at People's Computer Company, POB 310, Menlo Park CA 94025. ■

Question:

Dr Chuck Adams of the Texas A & M University EE Department posed the following question in a recent phone conversation: "Who invented the D flip flop?" Can a reader supply the answer to this query, for publication in a future issue?"

Want to Find Out Who's a Professional Computer Scientist?

The 1977 Association for Computing Machinery Roster of Members, an alphabetic and geographical cross-listing of the names and addresses of more than 35,000 ACM members as of January 1 1977 is now available.

The Roster may be ordered from the ACM Order Department, POB 12105, Church St Station, New York NY 10249. Prices are $7 to members and $25 to nonmembers, prepaid."

Guide to Buzzwords

"Sherry's Guide to Data Communications Buzzwords" is the name of a 24 page booklet of words and definitions which are commonly used in the data communications field. Write for your complementary copy, available from: Public Relations Dept, International Communications Corp, 8600 NW 41st St, Miami FL 33166."

Survey Sweepstakes Results . . .

In November 1976 BYTE ran a random survey of readers, to gather data for editorial and marketing purposes about this crazy field. Of approximately 2100 survey questionnaires mailed, 1448 were returned prior to the deadline of Novem

Circle 275 on inquiry card.

128

ber 15 1976. As an incentive to return the survey, we offered five Life Subscriptions to BYTE, commencing with the expiration of the current subscriptions of the winners. The following five individuals were drawn at random from the returned survey sweepstakes entry blanks (which were kept separate from the actual questionnaires in order to keep the questionnaires anonymous and private).

Arthur H Bazell 50 El Camino Real Berkeley CA 94705

Allen L Curl Robert S Curl & Assoc 1555 Alum Creek Dr Columbus OH 43209

Dennis A Hewitt

POB 8747

S Charleston WV 25303

Mark T Marshall 18229 Topham St Reseda CA 91335

Howard Rothman 86-25 Van Wyck Expy Briarwood NY 11435*

in publication of a report late this year. An international advisory group will review the report before any moves to approach Third World nations about hosting the spaceport.

Total cost of the study is estimated at $50,000, to be provided by contributions from philanthropic, space oriented organizations and individuals.

Although the project is at an early stage, it has drawn support from leading aerospace figures. Among the advisors are Prof Freeman Dyson of the Institute for Advanced Studies, Princeton; Dr Philip K Chapman, a former astronaut; Dr Raymond Bisplinghoff, past NASA associate director and research director; and Dr George Robinson of the Smithsonian Institution.

Three study groups will be responsible for preparation of the final report. The Government Launch Activities Committee will examine ways that governmental organizations could use an equatorial spaceport to their advantage, and the Private Users Committee will investigate opportunities for nongovernmental groups. The Freeport Design Committee, chaired by Stanford freeport specialist Dr Avlin Rabushka, will recommend possible sites and alternative legal and economic configurations of the site.

Copies of an eight page brochure

describing Earthport are available for $.50 per copy. Suggestions about the project are welcomed by the foundation. For further information, write Mark Frazier, Space Freeport Project, Sabre Foundation, 221 W Carrillo St, Santa Barbara CA 93101.

Project Members (Partial Listing)

Advisory Board: Dr George Robinson, Smithsonian Institution; Dr Philip Chapman, former astronaut; Prof Freeman Dyson, Institute for Advanced Studies, Princeton; Pat Gunkel, Hudson Institute; Dr Larry Smarr, Harvard Astrophysics Center; Prof Alvin Rabushka, Hoover Institution, Stanford; Dr Raymond Bisplinghoff, former NASA associate director, NASA research director, and dean of engineering at MIT; Robert Prehoda, consultant.

Study Groups. Government Launch Activities Committee: Arthur M Dula J D, chairman. Private Users Committee: Robert W Poole Jr, chairman; Raymond L Kendall, program development manager, Motorola Inc; Paul Siegler, president, Earth/Space Inc. Freeport Design Committee: Prof Alvin Rabushka, chairman; Michael Bader, assistant director, NASAAmes; Jerry Glenn, consultant.

Executive Director: Mark Frazier."

Technology Fact Attention S2Btre«-RcQ5nJ_overs . . . Another Far-Out Technology

How About Running a Real World Enterprise Instead of a Computer Driven Simulation Game?

A group of aerospace specialists has begun to investigate the prospects for a satellite launch center at the equator. Sponsored by the Sabre Foundation, the group hopes to determine the extent of interest by government and private organizations in an "Earthport" that would be open to peaceful users from every nation.

Equatorial sites offer cost savings for most satellite launches because the earth's spin gives rockets a boost into orbit. Several nations now operate equatorial launch sites of varying sizes, but none are international.

"In the past six years, aerospace companies such as Boeing and General Dynamics have explored the possibility of providing commercial launches from the equator," said the director of the study, Mark Frazier. "We plan to work with representatives of private organizations as well as governments to determine what environment would be best suited for them."

The initial stage of the study is intended to assess international interest in establishing a "space freeport," and will be completed within the next four months, according to Frazier.

Project members will then evaluate the economic, technical, legal and political aspects of establishing an international launch site, culminating

Make the HAL Connection

• 8080A MPU

• 1K Monitor/Debug Software in 2708 EPROM or 2-3624 PROMs

• On board space for: 4K ROM (2708),2K RAM (2102A-4)

• TTY Current Loop or RS-232C serial I/O (8251)

• 24 lines of Parallel I/O(8255) • Hardware "front

panel" on board

• Optional Accessories:

m CRT Terminal Board, BASIC in — EPROM, Audio 1 Cassette Interface, 7K RAM Expansion Board/ EPROM Programmer, Power Supply.

MCEM-8080 from$375 (2-3624 ROM/1K RAM) or$445 as shown (2708 EPROM/2K RAM)

and solve your lab or OEM computer problems

1. Connect to the 24 lines of Parallel I/O and ASCII or Baudot Serial I/O.

2. Connect to processor bus to add memory expansion board/EPROM programmer, I/O devices, or our unique CRT Terminal Board.

3. Connect to our power supply or use your own.

Lab users and OEM's alike will find solutions to their computer problems with the MCEM-8080 computer. All essential com

puter system elements are incorporated in this fuily assembled, tested single-board computer. Some unexpected features of the HAL MCEM-8080 are: hardware "front panel" which allows setting a breakpoint and manual control of the computer; 1K ROM Monitor/Debug Software (with user callable, lntel®compatible I/O routines) which greatly simplifies program development; Parallel and Serial l/Oon the board; and very reasonable prices.

Cal I or write for further information on the HAL Connection. You'll be glad you did!

HAL COMMUNICATIONS CORP.

Box 365B 807 E. Green Street, Urbana, III. 61801

Telephone (217)367-7373

129

The Midwest Affiliation of Computer Clubs invites you to attend the Second Annual, Midwest Regional Computer Convention and Exposition....

J

UNE 10,11,12

COMPUTERFEST 77

BOND COURT HOTEL

777 St. Clair, Cleveland, Ohio

> Manufacturers' Reps & Exhibits stmoniy

> Roofed Flea Market iJi

> Seminars & Tech Sessions per ticket

> Club Congress

> And Prizes, Games, Media Duping, and more....

The M.A.C.C. Convention is Where It's At in the Midwestern region. See you there! And if you plan to attend NCC, why not fly with us? Ask for information about the charter flight to Dallas. Drop a line to:

A.

WiPoMPUTER^^LUBS

IDWEST ^"AFFILIATION OF ^M^OMPUTER P.O. BOX 83, CLEVELAND, OHIO, 44141

BITS

TM

Game Playing With Computers by

Donald D Spencer, published by Hayden. What does it mean to play games using a computer? Read this book to get an introduction into numerous recreational uses of the computer to program and play mathematical and logical games. Topics include numerous mathematical problems, casino games, board games, unusual gambling games, and miscellaneous logic games. Numerous BASIC language programs and listings are included to show details. $16.95.

Scientific Analysis on the Pocket

Calculator by Jon M Smith, published by John Wiley & Sons. This book is another in a set of source books for mathematical analysis using the contemporary products of technology. It is oriented to the pocket calculator, yet it will provide you with algorithms and methods useful with any personal computer which implements the scientific and analytical functions found on a good pocket calculator. For a more complete description, see the book review on page 120 of the December 1976 BYTE; or order its 392 pages of detailed technical information and review its use for yourself. $13.75.

■

\

Build Your Own Working Robot by

David L Heiserman, published by Tab Books. This book will not tell you how to build Robbie, the robot of Forbidden Planet, or a classical android of science fiction. What it will introduce you to is the problems of making a robot mobile device called Buster III, using pre-microprocessor TTL integrated circuits for all logic functions. It is a must book for background reading, but much of the logic can be extremely simplified using today's microprocessor technology. Use this book as a first look at these problems from which you can build further and more elaborate solutions. Softbound, $5.95.

A Dictionary of Microcomputing by

Philip E Burton. In the opinion of BYTE's editor, Carl Helmers, "This is one of the best designed and executed dictionaries of computer related terms yet seen on the market. It is of particular relevance to those individuals who want a good general reference to numerous technical terms, broadly covering hardware and software fields as currently practiced," This new hardbound edition is part of the Garland Reference Library of Science and Technology. $12.50.

Software Design for Microprocessors.

This stand alone guide to microprocessors has been designed by the people at Texas Instruments to convey knowledge to the first time user of microprocessors. This excellent source book of computer concepts begins with an outline of the basic principles of the general purpose computer, its machine architecture, software, and methods of addressing. It proceeds to discuss how to build software, what is involved in documenting what you've done once you've done it, the mechanics of programming, and specific examples using the Tl TMS-1000, TMS-8080, TMS-9900 and SBP0400 designs. You'll find a thick hardcover textbook filled with over 370 pages of useful information including a comprehensive glossary of microprocessor terminology, among several other detailed appendices. $12.95.

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

Total for all books checked Postage, 25 cents per book

for books

Grand Total

$

$

Name

Address

City

State

^ip_

Signature

You may photocopy this page if you wish to leave your BYTE intact. Please allow six weeks for delivery.

Circle 4 on inquiry card.

Digital Computer Fundamentals by Jefferson C Boyce. The way to a world of learning is through books. A great place to start, and to return from time to time, is the classical textbook. This new book from Prentice Hall is intended as just that. Topics covered include digital computer operation, basic computer circuits and concepts. Boolean algebra, implementing computer operations in hardware, communicating with the computer and related issues of coding schemes, detailed discussions of the control section, memory functions, arithmetic and logic functions, input and output functions of a classical computer, a chapter on computer programming and a final summary chapter on the details of a typical minicomputer design interpreted in the light of the more theoretical general concepts in the book. This book is excellent background information for the literate and well read hacker. Order yours today. $15.95 hardbound.

Adam Osborne's books An Introduction to Microcomputers, Volumes 1 and 2, are a

concise compendium of the technical details of microprocessors at the component (engineering) level. These are the source books for the system designer who plans to employ the microprocessor, or the advanced homebrewer who wants a dash of customization not found in commercial products.

Volume 1 is subtitled "Basic Concepts." This is the book which presents a framework of ideas concerning the design and use of small computers implemented with LSI. Topics include definitions of the microcomputer, fundamental concepts of logic and numbering characteristics of instruction sets, etc. $7.50.

Volume 2 is a much thicker (895

How to Buy and Use

Minicomputers and Microcomputers

by William Barden. People have often asked us where to turn to get an introductory book about computers for personal use. One excellent place to start is How to Buy and Use Minicomputers and Microcomputers, William Barden Jr's instant summary of the small computer revolution, published by Howard Sams in mid1976. This is one of the first books of the "general introduction to computers" genre to be published with an emphasis towards the small computer and personal computing as it is being practiced these days, the book, written for the novice as well as the expert, surveys the technical details of the field in nine chapters and 10 appendices. This book is light (but essential) reading for the experienced computer person, and worthy of serious, concentrated perusal by the novice. $9.95.

HowmBuY&UBO

1 KIOCOIHPUTEAS fi

MICRQEQIilPliTEnS

page) detailed volume which complements the information in the first volume. This is the volume which fills in many of the details left out of the conceptual treatment in Volume 1. Here you'll find 19 detailed chapters on the engineering and logical specifications of products made by 16 different manufacturers, including in many cases reprints from the manufacturers' documentation as well as new materials provided by the author. Published in 1976, it even includes such processors as the MicroNOVA by Data General and the Texas Instruments TMS-9900 as well as the older 8 and 16 bit machines. Organization is by design type, and where parts of several manufacturers were intended for a given processor design such as the 8080, these are grouped into a single chapter. $12.50

■fnUncnHiiHi COMPUTER POWER

AND HUMAN REASON

FtoMJUDGMBJI 10 CALCULATION

Computer Power And Human

Reason by Joseph Weizenbaum. This book is one which should be purchased or read for several reasons. If you're presently a programmer by trade or skill, you'll see a philosophy of computer use and abuse propounded. It's genuinely interesting, and definitely provocative if you reference the storm of letters, counter letters and counter counter letters which this book produced in the Association for Computing Machinery's SIGART newsletters during 1976. If you're a novice to the field, the tutorial and explanatory chapters of this book, which are aimed at the layman, will serve as an excellent background source which is also eminently readable This includes an excellent and low level explanation of what an algorithm is, and how computers go about executing effective algorithms. $5.95 softbound.

Send to:

BITS, Inc 70 Main St Peterborough NH 03458

Total for all books checked Postage, 25 cents per book

for books

Grand Total

fflB

Check payment method:

My check is enclosed

Bill my MC No.

Bill my BAC No.

Name

Address

$

City

Exp. date Exp. date

State

Jip_

Signature

You may photocopy this page if you wish to leave your BYTE intact. Please allow six weeks for delivery.

Circle 4 on inquiry card.

Continued from page 52

Selectric mechanism found in the Keyboard Printer is a set of switch contacts which are closed by movement of the tilt rotate bails, and by movement of the cams in various stages of the printing cycle. These contacts can also be seen in photo 4. Again, no electric power is applied to these contacts inside the Selectric, but six of them, called C1 to C6, are wired together thru certain pins in the receptable at the back of the machine (more on this later). For printed output, these contacts can be tested to determine when the printing cycle is complete. For keyboard input, there is another set of contacts which must be tested at the proper instant in order to capture the code for the key just depressed. Other contacts are provided which make it possible to determine whether the machine is currently locked in upper or lower case, whether the end of line margin stop has been reached, and so on. According to the documentation, the contacts are rated for 40 mA at 10 V (minimum) to 300 mA at 48 V (maximum).

BCD and Correspondence Machines

At this point, I should clear up the mystery surrounding the differences between the so-called "BCD" and "Correspondence" versions of the Selectric Keyboard Printer. There are differences in three areas:

1. The arrangement of characters on the lypcball that is used.

2. The arrangement of the fingers on the interposers connected to particular keys.

3. The code obtained for keyboard input at the 50 pin receptacle when a key is pressed.

The Correspondence version is the simpler of the two. All of the office typewriters are built this way, and nearly all the typeballs available from IBM use the Correspondence arrangement of characters. In a Correspondence encoded Keyboard Printer, the tilt and rotate bail contacts are wired directly to the 50 pin receptacle, and so the code obtained when a key is pressed is the actual tilt rotate code. Note that the tilt rotate code is the same for, say, an upper case A and a lower case a, so the current state of the shift contacts must be checked whenever a character is read.

Many Selectric Keyboard Printers were built for use in equipment which employed a 6 bit byte and the old BCD (binary-coded decimal) character code, and so IBM developed the "BCD" version of the Selec

tric. In this machine, the tilt and rotate contacts (there are several sets of contacts for each bail) are wired through a maze of diodes and shift contact connections to yield a unique 6 bit code for all of the essential characters in the BCD set. Hence the code which reaches the 50 pin receptacle can be read directly into a 6 bit byte, and the shift contacts themselves need not be tested. Of course, a 6 bit byte can represent only 64 different characters, and after allowing for the digits and various special characters, there was room for only the upper case alphabetics. In fact, because of the limitations of wiring through diodes and switch contacts, only 48 distinct codes are actually produced. Even so, in order to accomplish this wiring feat, it was necessary to move some of the essential characters to convenient spots on the typeball, and hence the interposers with certain finger combinations also had to be moved around in order to preserve the usual layout of the keyboard. This is why the characters are all mixed up when you type manually on a BCD machine with a Correspondence typeball. Indeed, just to make everything fit together, IBM puts only the upper case characters on most of the typeballs intended for use with the BCD machine. (An exception is the Model 963 typeball which is used in many timesharing terminals.) But, in fact, the mechanism is still capable of tilling and rotating to any character position.

What docs all this mean for the computer hobbyist? If you are using the Selectric as a printer only, it makes no difference whether you have a BCD or a Correspondence machine, since in either case you have direct access to the tilt and rotate magnets. By energizing the proper combinations of the seven magnets, you can use both BCD and Correspondence typeballs with cither machine. (My Selectric is a BCD machine and I regularly use it with a Correspondence encoded Courier 72 typeball.)

If you want to use the Selectric keyboard for computer input (and you want upper and lower case), or if you want to use the machine off line with a variety of Correspondence encoded typeballs, you are considerably better off with the Correspondence version of the Keyboard Printer. But, since most of the units available through surplus channels (at least at reasonable prices) are BCD machines, you may have to settle for one of these. With some mechanical and electronic skill (and lots of courage), you could convert a BCD machine into a Correspondence version by:

I. rearranging the interposers to match the Correspondence typeball arrangement.

133

Figure 2: A very simple power source for the unregulated DC used to power the solenoids of the Selee trie Keyboard Printer.

2. tearing out all the wiring for BCD code generation and replacing it with direct connections from the bail switch contacts to the 50 pin receptacle.

So much for the theory of operation of the Selectric mechanism. Now let's get on to the design of an interface unit which will let us control the Selectric printer using standard TTL level signals from a computer output port. Mindful always of our potential exposure to Murphy's Law, we will keep this interface as simpleminded as possible. Readers with more sophistication in electronics may use this approach as a jumpingoff point (so to speak) for their own designs.

Interface Design

To control the operation of the Selectric printer we must provide three types of functions:

1. Signal conversion of TTL levels to magnet currents.

2. Code conversion of ASCII codes to tilt rotate code.

3. Control and timing to type successive characters, wait for carriage return, etc.

It seemed to me that the most appropriate division of labor was to provide the first function in hardware, and the second one in software. Signal conversion requires an external power source, while code conversion requires some flexibility to accommodate different typeballs. For the third function, I have experimented with both open loop control (realized entirely in software) and closed loop control (which uses a hardware feedback signal); both approaches will be discussed briefly here.

SIGNAL • V>

(7400) —[_ y

Signal Conversion

For signal conversion, we simply need a power source for the Selectric magnets and a means of switching the power on and off using TTL level signals. For the power source, we need a maximum of about 1 A of DC (for seven simultaneously energized magnets at 125 mA per magnet) in the range of 43 to 53 V. The source need not be regulated nor even ■ filtered. (See "Watts Inside a Power Supply," by Gary Liming, January 1977 BYTE, page 42, for a further discussion.) Figure 2 is a circuit diagram for the power supply which I built around a $4 surplus transformer. The only really essential element is the full wave rectifier. The capacitor was included simply to jack up the voltage of the particular transformer I was using to the point where it would energize the magnets.

To switch power on and off, I used a set of reed relays (optoisolators or power transistors could be used instead). These particular reed relays have a coil resistance of 290 ohms, so they can be driven by an ordinary TTL gate (17 mA at 4.8 V, or 10 TTL loads). They are available from Digi-Key Corporation, POB 677, Thief River Falls MN 56701, for $1.70 each (part number 5VRR). I used a total of 12 relays, six for the print magnets (since I forgot about the "check" magnet) and six for the most important control functions (space, backspace, tab, carriage return, and upper and lower case shift).

The reed relays were each connected to a computer output port and a Selectric magnet through the circuit diagram shown in

Figure 3: Switching of the solenoid actuator magnets in the Selectric Keyboard Printer is accomplished by this basic circuit. A reed relay which is within the drive capabilities of TTL is driven from a TTL logic gate, with protection against back EMF provided by the diode A. The reed relay, in turn, drives the magnet in the printer from the 48 V (nominal) supply of figure 2. Diode B provides back EMF protection for the relay contacts to prevent arcing which would shorten the life of the relay. The dotted line outlines the detailed circuit repeated many times in figure 4.

134

figure 3. Here the 1N4001 diodes protect the TTL gate and the reed switch from voltage transients in the two coils. Since I needed a standard TTL buffer to provide enough current for each reed relay, and since I wanted to economize on my use of output ports, I used a seventh control line to switch between the six print magnets and the six control function magnets. The resulting circuit diagram is shown in figure 4. The lettered squares which terminate the reed switch contact lines refer to pin designations on the Selectric's 50 pin receptacle (see below). Photo 5 shows the physical layout of the components of figure 4 in the interface which I built. Most of the wiring is Vector Slit n' Wrapped on the other side of the square piece of Vectorboard.

This construction layout is not recommended! Allow yourself much more room for repairing, replacing or adding components (like a seventh pair of reed relays!). A length of scrapped telephone cable makes a good connection between the interface and the Seleclric itself. Also shown in photo 5 is a 50 pin connector which plugs into the

Photo 5: Physical layout of the components of the interface box which houses the circuit described in this article.

COMPUTER OUTPUT PORT

[el (71 [71 13: : n.'.'l

CONTROL DRIVERS

rft

TAB

JTfTL

-e—r * jt-§cGl£'

SPACE _/"YYY~i_

-H 1

BACKSPACE

-0—r ~r~s°C^E^"

CARRIAGE RETURN r r**rrs [p] 1

W

UPPER CASE I 1 /• LIS ■

—rr™ S—i * t—s\ 3C [sT

LOWER CASE r °rYY^— 0 1

ICI 7400

izCEXi-*-]

]j zb)°M~ * j—H

PRINT DRIVERS

I—0

Tl

T2

I—&

Rl

\zs~^y^~[_ * ~y~&

R2

'.z^y^-

i—0

R2A

mh>

R5

*COPIES OF THE RELAY DRIVE CIRCUIT IN FIGURE 3

Figure 4: The complete interface schematic. The 7400 NANDgate logic is used to select either the drivers for the miscellaneous control functions, or the drivers for the print commands. The basic drive circuit of figure 3 is repeated once for each magnet in the printer.

135

Pin

Function

A

X

T2

B

<r

Check

C

<

T1

D

<

R2A

E

<

R1

F

*r

R2

H

*

R5

J

<

Magnet Common

K

<

Keyboard Lock

L

<

Tab

M

<~

Space

N

<

Backspace

P

<"

Carriage Return

R

X

Index

S

<

Upper Case Shift

T

<

Lower Case Shift

U

*

Red Ribbon Shift

V

■*

Black Ribbon Shift

w

->

C1 N/C

X

->

Contact Common

a

-»

Feedback N/C

b

->

Feedback N/O

e

-*

End of Line N/C

f

->

End of Line N/O

n

->

C1 N/O

r,s,t,u,v,w

->

BCD Bit Lines

Figure 5: The Selectric Keyboard Printer receptacle pin identifications. This receptacle can be purchased as a spare part through an IBM office. The arrows in this table indicate direction of the signal: A left arrow indicates drive to the printer (typically a magnet) from a source in the interface; a right arrow indicates a sensor contact in the printer.

O O O

0HE0

n0nQ

r-ilil.-.Q

QnQn

BB0D

0000

nDnD o o o

receptacle at the back of the Selectric, which I obtained from my local IBM branch office for $20 (IBM part number 1167134). The more important pin designations on this connector are shown in figure 5.

INTERFACE TO SELECTRIC

Figure 6: Table structure for the conversion of ASCII to Selectric coding. The table base pointer identifies the start of the table. There should be one table for each different ball coding scheme employed. The ASCII character value is added to the base address giving an address in the table. At this address is found the code which is sent to the output port. The logic of sending the code to the output port is given in detail by figure 8.

Code Conversion

Assuming that the ASCII code is used for characters inside the computer, the process of code conversion is basically just a simple table lookup: The 7 bit ASCII code is used as an index into a 128 byte table to obtain the 6 bit tilt rotate code. Since the tilt rotate code for a given character may vary depending on the typeball that is used, it should be possible to switch between several I 28 byte tables. This is easily done by indexing from a pointer to the base of the table as shown in figure 6.

The main complication in code conversion is the handling of upper and lower case. At any given time the Selectric Keyboard Printer is locked into one case or the other. If the machine is locked in upper case and the next character to be printed is an upper case A, we need only send out the appropriate tilt rotate code. But if the next character is a lower case a, we must energize the lower case shift magnet, wait for the machine to shift into lower case, and then send out the tilt rotate code. This is easily accomplished by using a seventh bit in the table entry byte for each ASCII character to indicate whether it is to be printed in upper or in lower case.

136

7

6

5

4

3

2

1

0

ULC

Tl

T2

Rl

R2

R2A

R5

CL

HEXADECIMAL

TABLE OFFSET

41 »■

UPPER/ i— TILT-ROTATE CODE—'CONLOWER FROM FIGURE I TROL CASE LINE

OD ■

09

0

1

0

0

0

1

1

1

ASCII

"A"

1

1

0

0

0

1

1

1

ASCII

'a"

0

0

0

0

1

0

0

0

ASCII

"CR'

0

1

0

0

0

0

0

0

Figure 7: The coding scheme for each conversion table entry is given by the general box at the top of this diagram. Bit 7 tells the software whether the mechanism should be in the upper or lower case mode. (The need to shift explicitly in a Selectric is reminiscent of the shift requirements of Baudot Teletypes.) The tilt rotate code contained in bits 6 thru 2 is derived from figure I for each character in the table. (For other ball arrangements, a version of figure I would need to be generated.) The low order bit of the word is used to indicate to the logic of figure 4 whether a control command (0) or print command (J) is being sent.

ASCII HT

The last problem in code conversion is the handling of control functions such as carriage return, tab, backspace, etc. Fortunately, the ASCII character set assigns unique 7 bit codes for functions such as these. For example, the ASCII carriage return character (hexadecimal code OD) can be used for carriage return, and the ASCII horizontal tab (hexadecimal code 09) can be used for the tab function. Since in my interface a special control line determines whether the six output ports affect the print magnets or the control function magnets, I can use the eighth bit in each table entry byte to set the control line appropriately. The table entries for the printable characters have this bit set to 1, with six bits providing the tilt rotate code; the entries for the control characters have this bit set to 0, with the bit corresponding to the given control function magnet set to 1 and the other five bits set to 0. This encoding is illustrated in figure 7.

Once we have this encoding of the information needed for code conversion, the actual program logic to accomplish the conversion is straightforward. A flowchart of the logic is presented in figure 8, and an

Figure 8: A flowchart giving the logic of a simple open loop driver program which takes a given ASCII character, looks up its table entry, and then takes appropriate printer actions. As an open loop program, each time delay in this chart (the L\Ts) is picked to reflect the worst case response time for the action involved. This makes the Selectric type successfully, but does not optimize operation for the maximum speed, since as everyone knows, the worst case is often not identical with the typical value of a parameter.

SINGLE CHARACTER PRINT ROUTINE

UPPER CASE

WAIT AT SUFFICIENT TO COMPLETE OPERATION

SEND CONTROL CODE FOR DOWN SHIFT

SEND CONTROL CODE FOR UP SHIFT

WAIT AT SUFFICIENT TO COMPLETE SHIFT

WAIT AT SUFFICIENT TO COMPLETE SHIFT

WAIT AT SUFFICIENT TO COMPLETE PRINTING

NOTE: SENDING A NONZERO 7 BIT PATTERN TO THE INTERFACE PORT WILL ENERGIZE ONE OR MORE SOLENOIDS, INITIATING A MECHANICAL OPERATION.

SEE FIGURES I AND 7

l__

.J

( RETURN J

137

CHARACTER OUTPUT ROUTINE FOR SELECTRIC KEYBOARD PRINTER

OUTCH

TAY

ASCII character to index register

LDA

(TABPT), Y

get code byte from table

LSR

A

test low order bit

BCC

CTL

0 means control character

ROL

A

test high order bit

BMI

LOWER

1 means lower case character

LDX

#4

code for upper case shift

LDY

CASE

check current case

BEQ

OK

0 means upper case

INC

CASE

indicate shift to upper case

JMP

SHIFT

go initiate shift operation

LOWER

LDX

#2

code for lower case shift

LDY

CASE

check current case

BNE

OK

—1 means lower case

DEC

CASE

indicate shift to lower case

SHIFT

STX

PORT

send shift code to port

JSR

ENERG

for 10 milliseconds

LDY

#60

delay for 60 milliseconds

JSR

WAIT

until shift operation is done

OK

STA

PORT

send tilt rotate to port

JSR

ENERG

for 10 milliseconds

LDY

#50

delay for 50 milliseconds

JSR

WAIT

until print operation is done

RTS

return to calling program

CTL

ROL

A

restore control code

STA

PORT

send to output port

JSR

ENERG

for 10 milliseconds

LDY

#120

delay for 120 milliseconds

JSR

WAIT

until control operation is done

RTS

return to calling program

ENERG

LDY

#10

set up for 10 millisecond delay

JSR

WAIT

loop for that long

LDY

#0

send 0s to output port

STY

PORT

to turn off magnet current

RTS

return to caller

WAIT

LDX

#200

number times thru inner loop

LOOP

DEX

decrement inner loop count

BNE

LOOP

loop until count is 0

DEY

decrement outer loop count

BNE

WAIT

loop until count is 0

RTS

return to caller

Listing 1: 6502 assembly language source code of a program which implements the logic of the flowchart in figure 8. This program is a subroutine which will drive the Selective Keyboard Interface in an open loop mode and is run on a KIM-1 system.

equivalent assembly language program for the MOS Technology 6502 used in my system is shown in listing I. In this simple version of the program, delay loops are used for timing purposes, and sufficient time is allowed either to print a character or to complete the worst case control function (carriage return across the entire length of the page). Of course, this version of the program will operate the Selectric at far less than its maximum rated speed, and will monopolize the processor's time while waiting for completion of each operation. In order to improve on this, we turn next to the subject of control and timing.

Control and Timing

Now that we have a working Selectric interface, we can turn our attention to two major improvements: driving the Selectric at maximum rated speed, and minimizing use of the processor's time for Selectric control.

To drive the Selectric at full speed we can adopt an approach of "open loop" control or "closed loop" control. Open loop control

involves keeping track of the carriage position, margin, tab stops and similar information in software (changing the margin and tab stop information via software interpreted commands), and calculating the delay time necessary for each operation. Closed loop control involves testing the Keyboard Printer's switch contacts to determine when each operation has been completed. The worst case delay approach used in the program of listing 1 is a simplified version of open loop control. For full speed operation, the closed loop approach is much simpler and more reliable; so let's consider it here.

Nearly every mechanical operation opens or closes some set of switch contacts inside the Selectric. Sets of contacts are wired to the 50 pin receptacle in a variety of ways to reflect operations such as printing, tabbing, backspacing, etc. We will not consider all the possible methods of achieving feedback control using these contacts, but will outline one particularly simple approach, which remains to be tested in my own system. The pin labeled a on the receptacle is wired through a set of normally closed contacts, and the pin b through corresponding normally open contacts, associated with the set of common contacts connected to pin X. Figure 9 shows how these contacts may be debounced to yield a clean TTL level signal (ignoring the nominal voltage ratings for the contacts). Here we use the last half of the 7400 package left over from figure 4. During any printing or control function operation, pin a will go from ground to +5 V and back to ground again, while pin b does the reverse. Hence the feedback line will go from logic 1 to 0 to 1. By sensing this change in software through a loop testing the feedback input port after energizing the magnets, we can closely control the operation. When the line goes to logic 0, we can turn off current to the magnets, and when it returns to logic 1, we are ready to start the next operation.

The second problem we face in control and timing is how to minimize use of the processor's time for Selectric control. Here, of course, is where the interrupt system comes into play. If we are using the circuit outlined in figure 9 for closed loop control, we can tie the feedback line to a processor interrupt rather than to a data input port. If we are relying instead on open loop control, we can use a programmable interval timer which is capable of causing an interrupt as an alternative to delay loops. The software to handle interrupts from the Selectric is slightly complicated by the need to shift between upper and lower case prior to typing the next character, but this can be handled by initiating the shift operation and

138

then arranging to retry the character printing operation on the next interrupt, at which time the Selectric will be locked into the proper case.

Actual Experience

Hopefully this article has given the reader all the information he or she needs to build a Selectric Keyboard Printer interface similar to, or better than mine. Lest you are unduly emboldened by the foregoing discussion, however, consider what can go wrong.

I carefully tested the interface in stages, by using an ohmmeter to verify that bit patterns sent to my computer output port closed the proper combinations of reed switches, and by testing the power supply on some of the Selectric's magnet coil connections. Nevertheless, when I first tested the entire setup, I thought I saw a blue flash around one of the reed relays when I tried to pulse the R2 magnet. Nothing seemed to happen when I tried again, except that the R2 magnet wasn't being energized. Then, listening carefully, I heard a telltale simmering sound that sent me leaping for the electric outlet. The R2 reed relay had stuck closed, and on further examination I found that most of the arc suppressing diodes inside the Selectric had been destroyed. After painstakingly replacing the R2 reed relay and installing the diodes visible in photo 5, I tried again. This time I found out why the reed relay, like its replacement, was sticking closed! The R2 magnet in the unit I purchased had been burned out and was a short circuit. No wonder the unit was a surplus item.

Not willing to give up, I managed to remove the coil from the R2 magnet core, and replace it with the coil from the unused (by me!) check magnet. After this feat, I found that when I typed manually on the keyboard, only @s, Os, and a few other characters could be printed! Only after hours of reading and experimentation did I discover that the adjustment of the plate holding the magnet armatures in place (which I had removed to change the coils) was critical, and could be set only by considerable trial and error.

These are the kinds of things that can go wrong. You cannot be too careful in playing with these machines! Readers certainly should investigate the possibility of an IBM maintenance contract on at least the mechanical portion of the Keyboard Printer, which need not be too expensive.

And, to conclude, although I probably never would have undertaken this project had I known at the outset what it would ultimately entail, it certainly is satisfying to have that Selectric typing away under the

FEED BACK CONTACTS

SELECTRIC KEYBOARD PRINTER PLUG PINS

^v

7400

NC

NO

<H E>n +sv

<H DO

INPUT PORT

OR INTERRUPT

control of my home computer. To anyone else who is ready to undertake such a project, I hope that this article has helped, and I wish you the best of luck."

BIBLIOGRAPHY

"IBM Selectric Input-Output Writer: An Exciting Advance in the Field of Input-Output Media," Form # 543-0033-1. This manual is absolutely essential since it gives circuit diagrams, timing charts, and end Views of the magnets and switch contacts.

"IBM Selectric I/O Keyboard Printer: Customer Engineering Manual of Instruction," Form #241-5159-3. This or a similar manual is very valuable for understanding the mechanical functioning of the Keyboard Printer.

Figure 9: A circuit for debouncing the feedback information generated by contacts in the printer which are mechanically linked to the action. Using the feedback pulse to drive an input port or interrupt line can result in operation at the maximum possible speed since the timing is now on an "each case" basis rather than "worst case."

The

®.

fabulous Phi-Deck family of 5 cassette transports

UnOGIylUU in quantities of 10

Featuring:

• Die-cast frames ■ Remote controllable

• Precise, fast head engage/disengage

• Quick braking

• Search FF/rewind 120 ips

• Speed ranges from .4 to 20 ips

Electronic packages and mag heads for most applications For application in:

1. Microprocessing 7.

2. Data recording/logging/storage 8.

3. Programming 9.

4. Instrumentation 10.

5. Industrial Control 11.

6. RS232 Data storage 12

Security/automatic warning

systems

Test applications

Audio visual/education

Telephone interconnect

Hi-Fi

Point of sale

Triple I A Division of the Economy Co. b

4605 H. Stiles P.O. Box 25308

Oklahoma City, Oklahoma 73125 (405) 521-9000

□ I am interested in application no

□ Have Representative call □ Send application notes

Name

.Title

Company Name.

Address ,

City

I Phone Number _

State.

Zip.

139

Circle 79 on inquiry card.

A 6800 Selectric IO Printer Program

Listing 1: The listing of the Selectric printer interface routine for a 6800 system driving the 10 version of the standard office typewriter. This listing is extracted from two assemblies done using the Southwest Technical Products Corporation's version of the M6800 self assembler. The first part of the listing is the actual code, and the second part is a table of Selectric correspondence codes which is referenced using ASCII codes as an index into the table which is computed at CONVI.

SWTPC M-6800 ASSEMBLER ENTER PASS : 1P,1S,2P,2L,2T

00001 00002 00003 OOOO'I 00005

00006 0100

00007 0100 7E 17CD

00008 0212

00009 0212 BD 17F1

00010 08F7

00011 08F7 181'F

00012 093D

00013 093D 1900 0001') 13D6

00015 13D6 1900

00016 17CD

00017 17CD C6 FF

00018 17CF F7 8000

00019 17D2 7F 8002

00020 17D5 C6 01

00021 17D7 F7 8001

00022 17DA P7 8003

00023 17DD C6 81

00021 17DF F7 8000

00025 17E2 F7 18CA

00026 17E5 FE 181A

00027 17E8 FF 18CB

00028 17EB ED 18C3

00029 17EE 7F 8000

00030 17F1 7E 0300

NAM SELECTRIC •SELECTRIC DRIVER PROGRAM FOR

IWTPC 6800 ASSEMBLER

OPT OPT OPT ORG JMP ORG JSR

ORG FDB

ORG FDB ORG FDB ORG LDA B

STA B CLR LDA B STA B STA B LDA B

S

0

L

$0100

START

$0212

START1

$08F7 $18FF

$093D $1900 $13D6 $1900 $17CD #$FF

PIAOUT PIACHK

#$ol

PIAOUT+1 PIACHK+1 #$8l

CALL OUTPLT(HEW)

MAKE ROOM FOR PATCH

INITIALIZE PIA

STA B PIAOUT STA B CASE LDX COUNT1

START ALWAYS IN LOWER CASE

SETUP TIMER FOR SHIFT CYCLE

STX COUNTR

JSR TIMER

CLR PIAOUT

JMP $300 GOTO MAIN PRGM

00031

17F1

81

7F

START1

AND

A

M7F

RESET PARITY

00032

17F6

FF

18CD

STX

SAVEX

SAVE XREG FOR MAIN PRGM

00033

17F9

81

10

CMP

A

#$10

TRAP HOME-UP

00031

17FB

26

02

BNE

CR

00035

17FD

20

01

BRA

CR1

PRINT IT AS CR.LF

00036

17FF

81

OD

CR

CMP

A

«0D

TRAP CR

0O°37

1801

26

OB

BNE

SP

00038

1803

86

81

CR1

LDA

A

C$81

00039

1805

FE

181C

LDX

COUNT2

SETUP TIMER FOR'CR.LF

00010

1808

FF

18CB

STX

COUNTR

000ll

180B

7E

18BA

JMP

EX1

00012

180E

81

20

SP

CMP

A

#$20

TRAP SPACE

00013

1810

26

05

BNE

CONVO

00011

1812

86

88

LDA

A

#$88

00015

1811

7E

18B1

JMP

EX 2

GO PRINT BUT DO NOT RES1

00016

1817

7E

1880

CONVO

JMP

CONVRT

00017

181A

2000

COUNT1

FDB

$2000

00018

181C

1000

COUNT2

FDB

$1000

00019

181E

0100

COUNT3

FDB

$0100

00050

1880

ORG

$1880

00051

1880

81

20

CONVRT

CMP

A

#$20

IS IT A PRINTING CHARAC

00052 1882 22 02 BHI CONV1 YES

00053 1881 20 39 BRA EXIT NO

00051 1886 B7 18D0 CONV1 STA A TABLEP+1 CONVERT CODE

140

The following letter and listing 1 were received from an Italian reader of B YTE, Fulvlo Guzzon of Rome. Fulvio purchased the same print mechanism (IBM Model 735 10 typewriter) which is described by Dan Fylstra in his article in this issue. We 're treating Fulvio's letter as a short article, since its technical content is far above that of the usual letter. The listings photographically reproduced here were typed on pin feed paper using his printer mechanism. The text of his letter was submitted using a text editor with the Se/ectric 10 mechanism as its output.

I understand there is some interest among your readers in using a Selectric typewriter for hard copy. As you can see I have tunneled an editor program (SWTPC) and an assembler program (SWTPC, too) through a Selectric typewriter. [The original of this note was typed on the Selectric] I bought the machine on the surplus market in Boston and it had some problems: It was stuck in upper case by a bolt screwed on the right side of the frame, it had some unrecoverable backlash in the head rotate mechanism, and many feedback and interlock contacts were missing or badly damaged. I had the machine serviced here in Rome (Italy) and at last, with a new carriage, a new motor (here we have 220 V 50 Hz power), and a new set of shift magnets, the printer was ready. I decided to use it only as a printer in order to reduce the hardware and software effort to a minimum.

On the underside of the machine there are seven printing magnets. In table 1 I have paired them with the bits from 0 to 6. Seven transistors provide for the interface between the PIA and the printer.

There are seven more magnets for the machine commands: space, backspace, tab, carriage return, index (line feed), upper case, and lower case; so seven more transistors are required. Seven output lines from the PIA in slot 0 are switched between the two sets of magnets by digital logic. The various feedback and interlock contacts were wired in series and filtered for bounce by a condenser and a software loop. The conversion table shown in the assembly listing provides for the characters used on the so called "Correspondence" balls. As I later found out, there are minor variations between the balls of this series.

The MSB in the table is set when the character to be printed is on the upper case half of the ball. (The upper or lower case of ASCII code bears no relation to the upper or lower side of Selectric golf balls). The MSB of the output byte to the printer

Listing I, continued:

00055

1889

FE

18CF

LDX

TABLEP

00056

188c

A6

00

LDA

A

0,X

00057

188E

26

02

BNE

CASECK

IS IT AVAILABLE SOMEWHERE Oil

00058

• THE

BALL?

00059

1890

20

2D

BRA

EXIT

NO,RETURN

00060

1892

2A

01

CASECK

BPL

CASELW

MSB CLEAR?

00061

1891

C6

CO

LDA

B

itCO

NO,CHECK IF PRINTER IS III UC

00062

1896

20

02

BRA

SKIP

00063

1898

06

81

CASELW

LDA

B

#J8l

YES,CHECK IF PRINTER IS IN L>

00061

189A

Fl

18CA

SKIP

CMP

B

CASE

NEW CHAR. SAME KALFBALL

00065

•AS THE PREVIOUS ONE?

00066

189D

27

13

BEQ

PRINT1

YES GO AND PRINT IT

00067

189F

F7

8000

STA

B

PIAOUT

NO, ROTATE BALL 180 DEGREES

00068

18A2

F7

18CA

STA

B

CASE

AND RECORD IT

00069

18A5

FE

181A

LDX

COUNT1

SETUP TIMER FOR SHIFT CYCLE

00070

18A8

FF

18CB

SIX

COUNTR

00071

18AB

8D

16

BSR

TIMER

00072

18AD

7F

8000

CLR

PIAOUT

00073

18B0

8D

11

BSR

TIMER

00071

18B2

81

7F

rniNTi

AND

A

#$7F

RESET CASE BIT AND

00075

18B1

FE

181E

EX 2

LDX

COUNT3

SETUP TIMER FOR PRINT CYCLE

00076

18B7

FF

18CB

STX

COUNTR

00077

18BA

B7

8000

EX1

STA

A

PIAOUT

NOW PRINT

00078

18BD

8D

12

BSR

HAITI

00079

18BF

FE

18CD

EXIT

LDX

SAVEX

RESTORE X REG

00080

18C2

39

RTS

GO AND FETCH NEXT CHARACTER

00081

18C3

FE

18CB

TIMER

LDX

COUNTR

00082

18C6

09

LOOP

DEX

OOO83

18C7

26

FD

BNE

LOOP

00081

18C9

39

RTS

00085

8000

PIAOUT

EQU

$8000

00086

8002

PIACHK

EQU

$8002

00087

18CA

00

CASE

FCB

00088

18CB

0000

COUNTR

FDB

00089

18CD

0000

SAVEX

FDB

00090

18CF

1800

TABLEP

FDB

$1800

00091

18D1

8D

FO

WAIT1

BSR

TIMER

00092

18D3

a

01

LDA

B

11

SETUP MASK

00093

18D5

F5

8002

BIT

B

PIACHK

PRINT CYCLE STARTED?

00091

18D8

27

F7

BEQ

WAIT1

NO

00095

18DA

7F

8000

CLR

PIAOUT

YES ON IT'S WAY

00096

18DD

8D

El

WAIT2

BSR

TIMER

00097

18DF

F5

8002

BIT

B

PIACHK

READY FOR A NEW ONE?

00098

18E2

26

F9

BNE

WAIT2

NO

00099

18E1

39

RTS

YESI

00100

18E8

ORG

$18E8

SHIFT START OF SYMBOL TABLE

00101

•TO NEXT PAGE

00102

18E8

CI

FCB

$C1

00103

18E9 18EA 18EB

20

20 20

FCC

5,

18EC 20

18ED

20

00101

18EE

FFFF

FDB

*FFFF

00105

18F0

C2

FCB

$C2

00106

18F1 18F2 18F3 18F1 18F5

20 20 20

20

20

FCC

5,

00107

18F6

FFFF

FDB

tFFFF

141

Listing J, continued:

00108 :

L8F8 D8

00109 :

L8P9 20

18FA 20

L8PB 20

L8FC 20

L8FD 20

00110

18FE FFFF

00111

START

17CD

START1

17F4

CR

17FF

CR1

1803

SP

180E

CONV0

1817

C0UNT1

181A

C0UNT2

181C

C0UNT3

181E

CONVRT

i860

C0NV1

1886

CASECK

1892

caselw

1898

SKIP

189A

PRIHT1

18B2

EX 2

18B1

EX1

18BA

EXIT

18BF

TIMER

18C3

LOOP

18C6

PIAOUT

8000

PIACHK

8002

CASE

18CA

COUNTR

18CB

SAVEX

18CD

TABLEP

18CF

WAIT1

18D1

WAIT2

18DD

TOTAL ERRORS 00000

SWTPC M-68OO ASSEMBLER ENTER PASS : 1P,1S,2P,2L,2T

00001

00002

00003

00001

1821

00005

1821

FE

00006

1822

Dl

00007

1823

BE

00008

1821

CE

00009

1825

D6

00010

1826

D8

00011

1827

51

00012

1828

86

00013

1829

C6

00011

182A

9E

00015

182B

BO

00016

182C

18

00017

182D

01

00018

182E

31

00019

182F

18

00020

1830

16

00021

1831 7E

00022

1832 36

00023

1833 3E

FCB

$D8

00021

1831 IE

FCC

5,

00025

1835 56

00026

1836 16

00027

1837 5E

00028

1838 IE

00029

1839 06

FDB

$FFFF

00030

183A D8

END

00031

183B 58

00032

183C 00

00033

183D 30

00031

183E 00

O0035

183F C8

00036

1810 B6

00037

1811 9C

00038

1812 82

00039

1813 9A

00010

1811 DA

oooll

1815 D2

00012

1816 B8

00013

1817 F8

00011

1818 C2

00015

1819 91

00016

181A FO

00017

181B 92

00018

181C CA

00019

181D FC

00050

181E B2

00051

181F CC

00052

1850 DO

00053

1851 90

00051

1852 DC

00055

1853 CI

00056

1851 F2

00057

1855 BA

00058

1856 BC

00059

1857 81

00060

1858 FA

00061

1859 CO

00062

185A F6

'T

00063

185B 00

00061

185c 00

NAM

TABLE

00065

185D 00

OPT

L

00066

185E 00

OPT

S

00067

185F 81

ORG

$1821

00068

1860 00

FCB

$FE

00069

1861 1C

FCB

$D1

00070

1862 02

FCB

$BE

00071

1863 1A

FCB

$CE

00072

1861 5A

FCB

$D6

00073

1865 52

FCB

$D8

00071

1866 38

FCB

$51

00075

1867 78

FCB

$86

00076

1868 12

FCB

$C6

00077

1869 11

FCB

$9E

00078

186A 70

FCB

$B0

00079

186B 12

FCB

$18

00080

186C 1A

FCB

$01

00081

186D 7C

FCB

$31

00082

186E 32

FCB

$18

00083

186F 1c

FCB

$16

00081

1870 50

FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB

FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB FCB

$7E $36 $3E $1E $56 $16 $5E $1E $06 $D8 $58 $00 $30 $00 $C8 $B6 $9C $82

$9A $DA

$D2 $B8 $F8 $C2 $91 $F0 $92 $CA $FC $B2 $CC $D0 $90 IDC $C1 $F2 $BA $BC $81 $FA $C0 $F6 $00 $00 $00 $00 $81 $00 $1C $02 $1A $5A $52 $38 $78 $12 $11 $70 $12 $1A $7C $32 $1C $50

interface is set to select a machine command. Only one input line of the PI A is used to sample the status of the printer READY or BUSY.

Since the shift feedback and interlock contacts were missing, a timing loop provides for the timing here; however, for the carriage return it has been necessary to build an interlock contact to lock out the printing function till the completion of a carriage return which takes a variable time.

A commented assembler listing of the program driving the printer was written for a 6800 and assembled with output to my Selectric (see listing 1). It can be loaded after the original SWTPC tape has been read in. A refinement which could be added is to provide for motor on or off via software as the printer can be powered up only after the program is running. This is because the power up reset of the computer leaves the PIA LINES all programmed as inputs, ie: open circuited and this simultaneously turns on all the machine magnets.

Another refinement could be to sense via an unused input line if the motor is on or off and steer the output to a TV terminal when the printer is off. To probe into undocumented programs like the SWTPC assembler or editor, I used a little program which searches the memory for a particular string of bytes and prints out the address of the first byte when and if found. I think it can save lots of time.

Fulvio Guzzon

c/o L Alessio

Via Anassagora 63

Casalpalocco 00124

Rome ITALY"

00085 00086 00087 00088 00089 00090 00091 00092 00093 00091 00095

1871 10

1872 5C

1873 11 1871 72

1875 3A

1876 3C

1877 01

1878 7A

1879 10 187A 76

FCB

$10

FCB

$5C

FCB

$11

FCB

$72

FCB

$3A

FCB

$3C

FCB

$01

FCB

$7A

FCB

$10

FCB

$76

END

TOTAL ERRORS 00000

Table 1: Assignment of bits.

BIT6

ROTATE+1

BIT 5

ROTATE+2

BIT4

ROTATE+2A

BIT3

ROTATE-5

BIT2

TILT 1

BIT 1

TILT 2

BIT0

CHECK

when energized removes the ROTATE+1 latch

when energized removes the ROTATE+2 latch

when energized removes the ROTATE+2 supplementary latch

when energized activates the ROTATE-5 latch

when energized removes the TILT 1 latch

when energized removes the TILT 2 latch

this one unlatches the print clutch (and so does every one of the previous six)

142

When you get your home or office computer, will you know what to do with it?

The typical home or small business computer system starts with a microcomputer, keyboard, cassette recorder, and TV set. From there you can add the peripherals, sensors, controllers, and other devices you need for your own special applications.

Music, Sp

sech

keyboard

Color TV Set

Synthesis

Cassette Recorder

Printer

Microcomputer

r i

/ /

V V

Jc

jystick

s

Input Sensors

Output

Con

rol Li

nes

Creative Computing Magazine is dedicated to describing applications for home, school, and small business computers completely and pragmatically in non-technical language. You won't need a Ph.D in Computer Science, or a technical reference library, or a computer technician beside you to get these applications up and running. We give you complete hardware and software details. Typically, applications utilize commercially available systems. However, if an application needs a piece of home-brew hardware, we tell you how to build it. Or if it requires a combination of high-level and machine language code, we give you the entire listings along with the flowcharts and algorithms.

We also run no-nonsense reviews of computers (assembled and kits), peripherals, terminals, software, and books. We're frank and honest, even if it costs us an advertiser, which it occasionally has.

Here are just some of the applications you'll see fully described in future issues of Creative Computing. ■

Building Management and Control

1. Alarm monitoring/police notification

2. Environmental control (heating, air conditioning, humidification, dehumidification, air purity, etc.)

3. Fire and smoke detection

4.Appliance control (microwave oven, gas oven, refrigerator) 5.Perimeter system control (sprinklers, outdoor lights, gates)

6. Solar and/or auxiliary energy source control

7. Watering system control based on soil moisture

8. Fuel economizing systems

9. Maintenance alert system for household devices (key | component sensing and periodic preventative maintenance)

Household Management

1. Address/telephone file

2. Investment analysis

3. Loan/annuity/interest calculations and analysis

4. Checkbook maintenance

5. Periodic comparisons of expenditures vs. budget

6. Monitor time and cost of telephone calls i

7. Record incoming telephone calls and select appropriate j response to caller

8. Recipe file

9. Diet/nutrition analysis 10.Menu planning

11.Pantry inventory/shopping list \

Circle 87 on inquiry card.

Health Care

1. Medical/dental record keeping

2. Insurance claim processing

3. Health maintenance instrumentation control (EKG, blood chemical analysis, diet analysis, self-diagnosis)

Education and Training

1. Mathematics drill and practice

2. Problem solving techniques

3. Tutorial instruction in a given field 4.Simulation and gaming

5. Music instruction and training

6. Music composition and synthesis

7. Learning to program

8. Software development

9. Perception/response/manipulation skills improvement Recreation and Leisure

1. Games, games, games

2. Puzzle solving

3. Animation/kinetic art

4. Sports simulations

5. Needlepoint/stitchery/weaving pattern generation

6. Computer art

7. Library cataloging (books, records, etc.)

8. Collection catalog/inventory/value (coins, stamps, shells, antique auto parts, comics, etc.)

9. Model railroad control

10. Amateur radio station control

11. Astronomy; star, planet, satellite tracking

12. Robotics

13. Speech recognition and synthesis

Business Functions

1. Small business accounting

2. Word processing/text editing

3. Customer files

4. Software development

5. Operations research 6.Scientific research

7. Computer conferencing

8. Telephone monitoring

9. Engineering calculations

10. Statistical analysis

11. Survey tabulation

12. Inventory control 13.Mailing lists

e>

*

*

&

W *

*</>*

SUBSCRIPTION ORDER FORM

I

Type

Term

USA

Individual

1-Year

□ $ 8

3-Year

D 21

Lifetime

□ 300

Institutional

1-Year

□ 15

3-Year

□ 40

□ New

3 Renewal

Foreign

□ s 10

□ 27 D 400

□ 15

□ 40

D Cash, check, or M O. enclosed

i iBankAmericard Card No

□ Master Charge Expiration date

n Please bill me ($1 00 billing tee will be added) Name

Address . City _

Zip.

Send to Creative Computing. Attn: Becky

P O Box 789-M, Mornstown. NJ 07960

The New Programmable Clock Kit

CO

Trom uigiiai v^oncep

lb

\J>^li7.v70

CD CM

SYSTEM 5000 is (he programmable clock kit that makes kii-huild

WW"^ ■■ ^^^H

OJ

ing a new experience. The system hat been designed to meet a var

■'-^^

u

iety of particular requirements anil tastes, and programming

, ■ ■ .. ■ .. .,:."' '""""'" ■ ■ !

techniques are used to create a truly individualized timepiece.

, , "T - is

O

Numerous functions and features are provided for maximum flexi

h' , 9S 1

bility and adaptability, arid any or all can he used to construct many

different lypc-s of time-keeping and timing devices.

liiii »id:3S i

SYSTEM 5000 ii not a simple LEO lime of day clock, but a full

feature digital timing system. Programming is accomplished by

if; ; , i

connecting the appropriate jumpers and switches to produce the

desired system configuration. Complete assembly and program

B^; !;,: : ^^^^^^^m

ming manuals are included.

SYSTEM 5000 has a fluorescent readout panel with lour 0.5"

to 7D0 Watts by adding the optional relay. Plug in your radio or

numerals that brighten and dim automatically according to the

stereo to construct a full function clock radio that puis you to sleep

ambient light This unique digital display provides optimum read

with gentle music and wakes you to music, a tone, or both The

ability at all limes from almost any viewing angle.

system will also control TV's, small appliances, or other accessories.

SYSTEM 5000 cm be built as a desk clock, alarm clock, calendar

SYSTEM 5000 can be used to construct timers for a variety of

clock, or all of these in one full-feature timepiece. The Duplicate

applications. It is ideal for automatic process timers and controllers

Time Register can monitor elapsetl time or another Time Zone such

in laboratories, workshops, and engineering facilities.

as GMT. A ten minute "ID" reminder capability is included far

SYSTEM 5000 includes all components, speaker, two time setting

Radio Station use. A Quartz time base is available for high precision,

switches, and comprehensive instruction and programming manuals

stability and uninterrupted operation if the AC line should fail.

Case & switches for programming additional functions are not

SYSTEM 5000 can automatically control AC or DC accessories up

i

eluded but available as options $29.95

FEATURES AND SPECIFICATIONS

Timekeeping Functions

Display

General

■ Time of Day Register

■ Bright4-DHfit Fluorescein Panel

. Forward or Reverse Tim*! Setting

■ Duplicate Time Register

■ Automatic Brightness Circuit

■ Reset and Count Inhibit Controls

. True 24 Hour Alarm

■ 12 or 24 Hour Display Format

■ Seconds Display

■ Duplicate24 Hour Alarm

■ PM and Power Failure Indication

■ Single 9 Volt Battery Backup

. 10 Minute Snooze on Alarms

■ 1 Hi Activity Indicator

■ 700 Watt Relay Optional

• True Four Year Calendar

. Pnwer-On Clear

■ 50 or 60 Hz, 117Vac, 3 Walts

. One Hour Down Counter

. Direct Drive Eliminates all RFI

■ l.S"H.x4"W,x4"D.

RELAY OPTION - $4.00

SWITCH OPTION -S3.75

Includes 700 watt relay and all interface components. Will control

Contains

A black SPST pushbuttons. 2 black DPDT pushbuttons.

AC or DC accessories such as appliances, stereos, etc

and 2 hi.

ck SPST slide switches. Programs all major features

QUARTZ TIME BASE OPTION - S6.95

CASE OPTION -$11.00

Generates precise 60 Hz. buffered output with exceptional stability, reliability, and accuracy. Direct interface to System G000 and most other clocks. Includes Quartz Crystal, IC Divider, trimmer, compact

G 10 board, all necessary components-, instructions, and inMallation

This del Sl.OOea

•sing for the complei-'tl system Includes ie.ii panel and blue faceplate; extra faceplates (hlue or grcenl are Cabinet dimensions - 5'i" x 6K" x 3".

ORDER THIS EXCITING KIT TODAY AND PUT

Send your check or money order today ^^^^^ 1 for fast delivery Add S% 10 total order 1 | to cover shipping ami insurance. N.J fli—

.jy 07662 • (201)645-7101

ty? digital concepts

MULLEN COMPUTER RQAPrv;

BOX 6214, HAYWARD, CA 94545

3

£

Eti

»fffB«

CAVI

uraix

RELAY OPTO"

ISOLATOR

CONTROL

BOARD $117

mm 8 fast reed relays respond to an 8 bit word: Feed

■■» the relay associated with its bit a " 1" and it closes, give it

Sa "0" and it opens. Also, 8 opto-isolators accept an 8 bit word from the outside world and send it to your com' puter for handshaking or further control purposes. £* Especially suited for model railroad, burglar alarm,

^^ audio switching, ham radio, music synthesizer, and auto^m mated display applications, this board goes wherever wl you need a general purpose 1/0 switching gizmo.

EXTENDER

BOARD W/ LOGIC PROBE $35

Whether for troubleshooting or analysis at some point you'll need an extender board. Ours offers a built-in logic probe, special edge connector that allows clip lead probing, jumper links in all supply lines, a non-skid probe. . . plus good instructions and a realistic price.

Ill

i

5 S

I

A. Boards are kit form only. Cal res add

V*4TIBLE •AVAILABLE BY

tax.

MF

What's

New?

A Full Size Floppy Disk with Altair Interface

Peripheral Vision, POB 6267, Denver CO 80206, has announced this full size floppy disk for the Altair bus. Prices start at $750 for the interface card kit and one assembled and tested drive. A 24 V at 2 A power supply is also available in kit form for $45 or assembled for $65; and a cabinet is offered for an additional $85. The Peripheral Vision floppy disk interface card supports eight drives and according to the press release, stores over 300,000 bytes per floppy. A bootstrap EROM is included to make system start-up automatic.

The floppy is completely Altair bus compatible, and interface cabling is included. The Peripheral Vision floppy disk drive itself is manufactured by Innovex, and comes assembled and tested. A disk operating system with file management system is included on a floppy disk cartridge."

Circle 61 5 on inquiry card.

New Technology for the 9900 Family

Texas Instruments Inc has introduced a new version of the 9900 architecture in the form of this SBP 9900, which uses integrated injection logic (called I L in much of the engineering and design literature). The key features of this new product are in the subtleties of using the

chip at a hardware level (software is identical to the previous TMS 9900 and Texas Instruments' 990 line of miniComputers which use this architecture). For the hardware designer or homebrew hacker, this new premium version of the design gives a wide (-55°C to +125°C) operational temperature range, infinitely variable clock rates from DC to 3 MHz (power consumption levels vary with the rate) and TTL compatibility with wide tolerances on power supply voltages. This is, however, a premium device intended for applications which require ruggedness. The ceramic packaged SBP 9900 starts at a $386 price in 100 piece quantities. Reader inquires should be directed to Texas Instruments Inc, Inquiry Answering Service, POB 501 2, M/S 308 (attn: SBP 9900), Dallas TX 75222. ■

Circle 616 on inquiry card.

A Rugged Z-80 Product

Cromemco has sent along this press release picture of the new Z-2 processor which is the latest product of thenlaboratory. This processor uses their Z-80 processor board which according to the company is available in a fast 4 MHz version. Coupled with Cromemco's other peripherals which also work at this speed, in principle this one has one of the fastest processors yet available in a commercial product. The basic box contains the processor card, a mother board with 21 card slots for Altair compatible cards, and a heavy duty power supply intended to suffice for all system needs including floppy disk drives. Naturally, in addition to the $595 kit version of this processor, you'll want to have some dedicated monitor ROM and extra peripherals, but the price makes it an attractive way to start building a system. Cromemco has software of a monitor, assembler, and a BASIC with processor control extensions. The firm also makes numerous peripherals including digital to analog interface cards, ROM memory cards and a color graphic product. Cromemco is located at 2432 Charleston Rd, Mountain View CA 94043."

Circle 617 on inquiry card.

A 16 K Byte Memory Board

RHS Marketing, 2233 El Camino

Circle 278 on inquiry card.

C IMSAI 8080 kit

WITH 22 SLOT MOTHER BOARD

00

plus $10.00 shipping

Sk blank RAM board

Featuring

OFULL BUFFERING ON ALL DATA, AND ADDRESS LINES

OMEM0RY PR0TECT/UNPR0TECT

for 2102 type memory 0 SELECTABLE WAIT STATES

$25.00 oDIP SWITCH ADDRESSING

SPECIAL LIMITED QUANTITY ^

SUPERIOR TRP-125 PAPERTAPE READER (125 cps) $275.00 FACIT4070PAPERTAPE PUNCH (125cps) $350.00

Complete with all documentation, including field service . manuals and schematics.

WAND READER $75.00 Reads PAPERBYTE®or any 2- or 3-color bar code. Pen is fiber-optic, which plugs into analog decoding board. All documentation is included.

i3 laoooio

POBOX91 ITHACA, N.Y. 14850

Pleasecall (607)273-3271 for technical assistance and toorder. BankAmericard and Master Charge orders welcomed.

Confused About Printers?

MPI HAS YOUR ANSWER!

»575

TTYREPLACEMENT? THESSP-40 ^3# t «9

The $SP-40 contains its own microprocessor for easy connection

.to your serial port *-v:

LOW COST BUSINESS SYSTEM? THEMP-40 *425

TheMP-40 connects to your parallel port for ASCIIdata transfer

MINIMUM COST FOR HOBBYIST? ... THE KP-40 KIT *l79

All of our 40 series printers use the same reliable 5x7 impact dot matrix mechanism up to 40 columns per fine on ordinary paper with a print speed of 75 lines/minute.

MASTER. CHARGE WE

JTAH RESIDENTS ADO.

SEND FOR FREE LITERATURE

MICROPROCESSOR SYSTEMS AND PERIPHERALS

P.O. BOX 22101/SALT LAKE CITY/UT. 84122

(801) 566-0201

145

Circle 71 on inquiry card.

Why Wait?

The Tarbell Cassette Interface

Plugs directly into your IMSAI or ALTAIR*

Fastest transfer rate: 187 (standard) to 540 bytes/second

Extremely Reliable — Phase encoded (selfclocking)

4 Extra Status Lines, 4 Extra Control Lines

37-page manual included

Device Code Selectable by DIP-switch

Capable of Generating Kansas City tapes also

No modification required on audio cassette recorder

Complete kit $120, Assembled $175, Manual $4

TARBELL ELECTRONICS

20620 S. Leapwood Ave., Suite P, Carson, Ca. 90746 (213) 538-4251

California residents please add 6% sales tax •ALTAIR is a trademark/tradename of MITS, INC.

BUILD THE CRATE!

THE S-100 CARDFRAME THAT YOU CAN BUILD FOR LESS THAN $150

COMPLETE PLANS, INFO ON TOOLS, PARTS, SOURCES, ETC. ORDER THE CRATE BOOK $1 9.95

ENCOUNTER!

FOR GAME LOVERS, REALTIME GAMEBOARD WARFARE ON A VDM. NO TAKING TURNS, JUST ACTION, STRATEGY, AND LOGISTICS.

8080 CODE ON P-TAPE + SOURCE, RULES $16.95

USE SYS 8/SOFT PKG 1?

AUTO-LINE ENTRY, STRING EDIT, AUTO TABS, OCTAL NBRS, MULT. SECTION ASSEMBLIES. MORE ADDED BY OUR PROGRAM.

SOURCE ONLY. SPKG. 5 $1 4.95

OBJECTIVE DESIGN, INC.

P.O. BOX 20325, TALLAHASSEE, FL. 32304

•»»..M-;;";;:.:i"&--w».

I

Real, Palo Alto CA 94306, sends this picture of a new Altair compatible, assembled and tested 16 K byte memory board with a price of $485 or $30 per installed 1024 bytes. The board contains its own refresh control logic and uses 4 K dynamic memory chips with a total board power consumption of 5 W. External to the board, this product looks like a static memory board and has no wait states since the refresh is transparent. The number of personal computers with a saturated 64 K memory address space is likely to go up as more and more products such as this reach the market."

Circle 618 on inquiry card.

Controlling Those Necessary Bells, Whistles and Other Goodies

Comptek has designed and manufactured this interesting array of components with the needs of the real world interface in mind. The heart of the control setup is of course a typical microcomputer, an Altair bus compatible machine into which the main "control logic interface" board plugs. Out of the board comes a ribbon cable to a DB-25 connector at the back edge of the cabinet. The DB-25 is in turn the recipient of a cable which goes to your remote power unit, the box shown in this picture. This box, which is one of many which may be driven from one control logic interface board, contains the optically isolated 400 W controller for 110 VAC. The costs of this interface in kit form are $189 for a 16 channel

Circle 260 on inquiry card.

146

Circle 127 on inquiry card.

PC3216 control logic interface card, plus $39.50 for each PC3202 400 W power control unit kit. Other options include fully assembled versions at higher prices and a 32 channel PC3232 control logic interface card. A product like this is needed when you want to have your computer drive 110 VAC appliances, lighting circuits and other household electrical loads. Comptek is located at POB 516, La Canada CA 91011.■

Circle 619 on inquiry card. Morrow Tape Interface

Morrow's Micro Stuff, POB 6194, Albany CA 94706, has introduced this Altair bus plug-in unit which generates and reads data on up to three channels of audio recording in the Kansas City standard of recording, at 300 bps. Also thrown into the board is a serial port to allow communication with a Teletype with reader control, as well as any RS-232 serial device. Also included is an 8 bit parallel board for use with parallel interfaced peripherals such as keyboards or tape readers. A ROM on the board holds 512 bytes of programming for the cassette interface, UART simulation, and transfer to or from your 8080's memory or the 512 byte programmable memory region on the board. This board is available in kit form for $120 or assembled and tested at $165 with warranty. The product is marketed by mail or through computer stores."

Circle 620 on inquiry card.

Matrox Video Display with External Sync Capability

One fascinating possibility for the use of small computers is in combination with standard video signals for various purposes. (An example might be display of product feature data along with digital messages in a merchandising situation such as a department store.)

comptek. Boards DO Something

IV

fsi in lit.

..,,, . ■„,... ..,,

ii ill it

CL2400

Real Time Clock

$98—Kit

$135—Assembled

If your system needs to know what time it is, our CL2400 is the board for you. The present time in hours, minutes, and seconds is always available for input, and is continuously updated by the highly accurate 60 Hz power line frequency. Need periodic interrupts? The CL2400 can do that, too, at any of 6 rates. Reference manual with BASIC and assembly language software examples included.

PC3200

Power Control System

PC3232 $299—Kit PC3216 $189—Kit PC3202 $39.50—Kit

$360—Assm.

$240—Assm.

$52—Assm.

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

P.O. Box 516

La Canada, CA 91011

(213) 790-7957

'Real World Electronics'

16 K STATIC RAM

For ALTAIR / IMSAl / POLY 88

$459 kit

ASSEMBLED $529

• USES 4K STATIC RAMS -NO REFRESH

• VERY LOW POWER-LESS THAN 1 AMP

• Z80 FAST-200ns ACCESS TIME

• PROVISION FOR BATTERY BACKUP

• LOW PROFILE SOCKETS FOR ALL CHIPS

• EACH 4K ADDRESSABLE TO ANY 4K SLOT

• HARDWARE/SOFTWARE MEMORY PROTECT FOR EACH 4K

• SPECIAL PAGING OPTION ALLOWS UP TO 1 MEGABYTE ADDRESSABLE MEMORY

• LOW COST

CONSTRUCTION MANUAL $1.75

PAGING OPTION $9.00

QUANTITY DISCOUNT 5 BOARDS — 5%

10 OR MORE —10% DEALER INQUIRIES INVITED

OMNI SYSTEMS INC.

P.O. BOX 7536, UNIV. STATION PROVO, UTAH 84602

READER SERVICE NO. 198

147

Circle 143 on inquiry card.

computer enterpn/c/

Your Mail Order Computer Shop...

IMSAI8080 kit with 22 s/ofs (limited quantity) $645.00

TDLZ-80ZPU (the one with full software available now) 242.00

EdgeConnectorsandguidesforlMSAI each 4.25

Edge Connectorsandguides for IMSA110 for 40.00

Vector Graphic 8k RAM kit with 500 ns chips 225.00

Seals 8k RAM kit with 250 ns chips 260.00

North Starcomplete Micro-Disk System kit 599.00

WETAKE

MASTERCHARGEORBANKAMERICARD

For phone and mailorders...

(Add 4% of TOTAL ORDER for service charge)

TERMS: Shipping charges — $10. per CPU or large units, $1.50 per kit,

$2. minimum per order. Provided stock is available, we will ship immediately for payment by cashiers check or money order.

Allow 3 weeks for personal checks to clear. New York State residents add appropriate sales tax.

PRICES SUBJECTTO CHANGE WITHOUT NOTICE.

For the best prices available on:

IMSAI • TDL • NORTH STAR • POLYMORPHIC TARBELL • SEALSELECTRONICS

CALL: (315)637-6208

WRITE: P.O. Box 71 • Fayetteville, N.Y. 13066

Teach your DUMB TERMINAL to display lower case!

ADM-3 Lower Case Kit

by Northern Valley Systems

• Add Lower Case character display to your ADM-3 or ADM-3A CRT

• Installs in under 10 minutes with NO MODIFICATIONS to PC board.

• Custom programmed character generator ROM included.

• Save $70 off Lear Seigler Kit price - yet get the same results.

Price: $27.50, 25% deposit required on all COD's. NonCOD orders sent Postpaid. Dealer Inquiries Invited.

y\\f( Send to: Northern Valley Systems, J XI P.O. Box 687, Englewood, N.J. 07631

Enclosed find $ for units.

MC/BAC# Signature:. Name

(N.J. Residents add Sales Tax.)

Expires

Interbank #

Street

City, State .

Zip.

Matrox Electronic Systems, POB 56, Ahuntsic Sta, Montreal, Quebec CANADA H3L 3N5, has just announced the new member of its video RAM family of devices. Th(s is the MTX-1632SL, shown here in front of a television driven by a mixed signal generated from another video source and the character generator. Since the horizontal and vertical synchronization can be slaved to the external source, such as the standard television video picture in this case, it is possible to combine the displays. The application of this $225 module (lower prices in larger quantities) provides ample opportunities for the imagination."

Circle 621 on inquiry card.

Ruggedized Power Supplies

Calex Manufacturing Company Inc, 3305 Vincent Rd, Pleasant Hill CA 94523, has come out with this sealed power supply black box which is designed for use with small dedicated microprocessor systems using the 8080. The supply transforms an AC input at 110 V (or several other voltages) into + 12 V at 225 mA, -5 V at 20 mA, and +5 V at 1.25 A. These voltages are sufficient to run a typical 8080 system with 8080, 8024, 8228, two 2708s and several programmable memory parts with about 500 mA of TTL logic power left over on the +5 V lines."

Circle 622 on inquiry card. A Splice in Time Saves Nine?

Master Digital Corporation, 1308-F Logan Av, Costa Mesa CA 92626, lias come out with this $60 tape splicing jig which can be had with various options for tapes from 5 to 8 channel widths. The company also makes pressure sensitive mylar tape patches in lengths from one to 1 2 inches, opaque or clear."

Circle 623 on inquiry card.

Circle 280 on inquiry card.

148

New kid on the

Mock!

But watch out

he means

business

.*>._

z\

PERSONAL COMPUTING EXPO

COMES TO NEW YORK FOR BIG BUSINESS

It's a brand new show in the world's biggest economic center specifically for manufacturers and buyers who are into personal computing. For the first time, this booming field will have a New York Coliseum showcase in the major population center in the east. It is planned as the largest public show of its type in the world that will attract enthusiastic buyers from a multi-state area.

WHY NEW YORK?

New York is the economic nerve center of the world. It also is the world's communications focal point, the one place that will put personal computing in a significant spotlight. New York is surrounded in depth by people who work in the computer field, by computer learning centers, universities, personal computing clubs, and thousands of others whose lives are affected by computers.

From this vast potential, Personal Computing Expo will draw the hard-core hobbyist, the interested student, and, because of a highly-publicized program of introductory seminars, those who are attracted and fascinated by computing but have not had exposure to the ways and means of becoming personally involved.

SHOW MANAGEMENT

Personal Computing Expo is being produced by H.A. Bruno & Associates, Inc., a firm in the exposition and promotion fields since 1923. Highly skilled in the production and promotion of consumer and trade shows, the company currently promotes the American Energy Expo, the National Boat Show, Auto Expo/ New York. Promotion assistance also is currently rendered to the National Computer Conference and the Triennial IFIPS Congress in Toronto.

The show producer has promoted successful shows in the New York Coliseum every year since the building opened in 1957. Staff personnel are thoroughly familiar with the building, its services, management and labor.

EXCITING SEMINARS FROM "BYTE" MAGAZINE

Personal Computing Expo is endorsed by "Byte" magazine, whose staff is developing an exciting series of seminars and lectures for the exposition.

Visitors to the show will be able to attend these meetings free of charge. They will hear from lecturers such as Louis E. Frenzel and Carl L. Holder. More importantly, visitors will be able to attend meetings aimed at their proficiency levels, from beginner through intermediate and advanced personal computing.

FOR DETAILED INFORMATION CONTACT:

RALPH IANUZZI, Show Manager H.A. BRUNO & ASSOCIATES, INC. 78 E. 56th Street New York, N.Y 10022 (212) 753-4920

PCE

(■ 1 H_ j—,,____—_^-- f£nc|orsecl by BYTE Magazine

OCTOBER 28, 29, 30, 1977 PERSONAL COMPUTING EXPO • NEW YORK COLISEUM

Location Code Key

000

01

1

001

51

SBR

002

32

SIN

003

42

STO

004

00

0

005

03

3

006

02

2

007

51

SBR

008

32

SIN

009

01

1

010

51

SBR

011

32

SIN

012

41

GTO

013

12

CB

014

46

*LBL

015

32

SIN

016

42

STO

017

00

0

018

00

0

019

22

INV

020

57

♦fix

021

43

RCL

022

09

9

023

09

9 ,

024

40

*X2

025

52

EE

026

00

0

027

09

9

028

22

INV

029

52

EE

030

42

STO

031

09

9

032

09

9

033

75

—

034

53

(

035

42

STO

036

55

o/o

037

01

1

038

03

3

039

75

—

040

93

041

05

5

042

54

)

043

57

*fix

044

00

0

045

52

EE

046

22

INV

047

52

EE

048

65

X

049

01

1

050

03

3

051

85

+

052

02

2

053

75

—

054

42

STO

055

00

0

056

05

5

057

01

1

058

01

1

059

95

=

060

90

*if z

061

33

COS

062

22

INV

063

80

*if p

064

34

TAN

065

01

1

066

00

0

067

41

GTO

068

65

X

069

46

*LBL

070

33

COS

071

36

♦IND

072

43

RCL

073

00

0

074

00

0

075

75

—

076

01

1

077

01

1

078

95

=

079

22

INV

080

80

♦if p

081

34

TAN

082

01

1

Commentary

Deal card to dealer Store as face down card. Deal card to player.

Deal card to dealer.

Jump around subroutine Begin "Deal Card" subroutine

Listing 1.

QeskTcpWonders

SR-52 Card BLACKJACK

Generate random number in R99

Convert random number to a card value.

Store card value

Is card = 11 [ACE] ? If so then go to COS

Is card in range 2 to 10? If so then go to TAN.

Force card value of 10 if outside legimate range

Blackjack Logic:

Would hand go over 2, if ace counted as 11?

If so then ACE = 1 else ACE = 11

Michael J Garvey, vice president and systems consultant with General Computer Services Corporation, 2308 Central Av, Middletown OH 45042, sends in a game program for the SR-52, which was accompanied by this note:

/ appreciate your article in your December issue on the "buried gold" in

Operating Procedure For "SR-52 Card BLACKJACK":

1. Load the program card, both sides, after it has been prepared.

2. Prime the random number generator with a 9 or

10 digit number as its seed. A good choice of a priming number is the current time of day (24 hour clock), followed by the date. This gives 10 digits total in the format.

Enter: hhmmyymmdd

Then press: STO, 9, 9

3. Enter the amount of your bet and start the

game:

Enter: bet amount Then press: A

4. Outcome:

If the display flashes, then the game is over. The display shows the total of dealer and player hands.

Press: CE to stop flashing.

Then press: RCL, 9, 8 to read out the

cumulative score if desired. Go to Step 3 to restart game. If the display is not flashing, the dealer's face down card is not shown.

5. Player options: To take a "hit,"

Press B

Then go to step 4. To "stand,"

Press C

Then go to step 4. To "double down" (if player's hand is 10 or 11 and not initial deal).

Press D

Then go to step 4.

Notes on operation of the game:

The player always wins at 21.

House always draws to 16 or lower, stands on

17 or higher. On a "push" (both hands equal) neither side

wins unless player has 21.

150

Advanced 8K EPROM Memory Module Doubles As Programmer

Q |> AwL

Introducing

pnanoM

» Holds 8K BASIC Plus System Monitor

I S-IOO Bits Compatible

» So Special Software Requhrd-Write to

EPROMs Just Like RAM » 512 Bytes of On-board KAH for Stack or

Scratch Pad < Shipped With One 256-Byte RAM and One

512-Byte EPROM pre-programmed with a

System Monitor

COMPLETE KIT S164

MO UNTAIN HARD WARE

Box 1133B, Ben Lomond, CA 95005

NOW HEAR THIS!!

ALPHA DIGITAL SYSTEMS

ELLS IMSAI KITS AND TOTAL INEGRATED SYSTEMS ASSEMBLED HECKED-OUT. AND WARRANTED AT KIT RICES.

TYPICAL SYSTEM

* IMSAI 8080Computer

* 22 Slot Mother Board

• All Connectors

* 4 K RAM

• MIO •3 Cable A » I Cable M

• Assembled System Total sk-oT

$ ftttti

54

ALPHA I SPECIAL DOS SYSTEM DEAL tinetadesl

• IMSAI tram) Computer

• 22 Slot Mother lid with Conn,

• 16 K HAM 14 IK Boards)

• 90 K Disk (with Controller I

• DECwriler typewriter 30 cps » DOS-BASIC Software

Assembled System Total $:!9<l;i (Less DECwriterl S2495

Select any kit or system of kits from (he IMSAI price list, order from us and receive the assembled unit for the same price. If you don'l have a price list, drop us a line and we will send you one. Terms: Cash with Order - Prices include freight ( NC Residents Add 4°; Sales Tax )

How can ALPHA DIGITAL SYSTEMS do all this'.' Its simple. ALPHA DIGITAL WANTS TO BE YOUR COMPUTER COMPANY.

AnC ALPHA DIGITAL SYSTEMS *""■'•* RT. 4BOX171A

BOONE. N.C. 28607 (704) 264-7946

SUPPLIES

• FLOPPY DISKS, MINI OR STANDARD MEM0REX OR 3M

• 3M DATA CARTRIDGES DC300A, DC100A

• 3M DIGITAL CASSETTES

• 3M OR MEM0REX AUDIO CASSETTES, C-60

• 3M DISK CARTRIDGES

WE OFFER:

• COMPETITIVE PRICING

• IMMEDIATE DELIVERIES (Any Quantity)

• UNCONDITIONAL GUARANTEE

BETA BUSINESS SYSTEMS

8369 VICKERS ST., #G SAN DIEGO, CA 92111 (714

565-4505

Circle 250 on inquiry card.

Circle 255 on inquiry card.

Circle 276 on inquiry card.

Camp Retupmoc

Rose-Hulman Institute of Technology

Four one-week programs in computer programming will be offered this summer at Rose-Hulman Institute of Technology, Terre Haute, Indiana. The program, known as Camp Retupmoc, is for boys about to enter their junior or senior years in high school; it consists of lectures on BASIC programming, films on computing, and talks by computer scientists in business and industry who are making novel applications of the computer.

Dates for the Camps are June 19-24, June 26-July, July 10-15, July 17-22. The fee, including tuition, room and board, is $125.

For further information contact Dr. John Kinney, Rose-Hulman Institute of Technology, 5500 Wabash Ave., Terre Haute, Indiana 47803.

LONG ISLANDs

first:

OPEN

AFFOC,0

BYTE

Tues. - Fri.

-UNtJ

12to9 |

inLst

Sat %, A?

10 to 5 VrEq ^°

We have . . .

IMSAI 8080

SOL

Byt-8

Processor Tech

SWTPMP68

Interfaces

CROMEMCO

Memory Expansion

TDL

Lear Siegler

Poiy-88

Floppies

Cassetts

Dec Writers

KITS and ASSEMBLED

BYTE SHOP EAST, INC.

27-21 Hempstead Turnpike

Levittown, Long Island N.Y.

(516)731-8116

Two Blocks East of Wantagh Pkwy.

Circle 227 on inquiry card.

Circle 140 on inquiry card.

Listing 1, continued:

Locat

on Code

Key

083

46

*LBL

084

65

X

085

42

STO

086

00

0

087

05

5 ,

088

46

*LBL ,

089

34

TAN

090

43

RCL

091

00

0

092

05

5

093

36

*IND

094

44

SUM

095

00

0

096

00

0

097

56

*rtn '

098

46

*LBL

099

11

A

100

47

*CMs

101

42

STO

102

01

1

103

09

9

104

86

*rset

105

46

♦LBL

106

14

D

107

02

2

108

49

♦PROD

109

01

1

110

09

9

111

50

♦stfl

112

00

0

113

46

•LBL

114

12

B

115

02

2

116

51

SBR

117

32

SIN

118

41

GTO

119

45

yx

120

46

*LBL

121

13

C

122

50

*stfl

123

00

0

124

46

*LBL

125

45

yx

126

43

RCL

127

00

0

128

02

2

129

75

—

130

02

2

131

01

1

132

95

=

133

90

*if z

134

88

*2'

135

80

*if p

136

87

*r

137

43

RCL

138

00

0

139

01

1

140

75

—

141

02

2

142

01

1

143

95

=

144

90

♦if z

145

87

*1*

146

80

*if p

147

88

*2'

148

22

INV

149

60

*if fl

150

00

0

151

68

♦8'

152

43

RCL

153

00

0

154

01

1

155

75

—

156

01

1

157

07

7

158

95

=

159

80

*itp

160

89

*3'

161

01

1

162

51

SBR

163

32

SIN

Commentary

Store adjusted card value.

Add card to total hand of receiver.

Game entry (start here)

Clear bet in R19

Go to 000

"Double down" entry

Multiply bet by 2

Turn on "stand" flag "Hit" entry

Deal card to player

Skip around "stand" From step 012

Turn on "stand" flag

If player's total = 21 then go to 2' else if player's total >21 then go to 1'

If dealer's total = 21 then go to 1' else if dealer's total >21 then go to 2'

If "stand" switch on then go to 8' [to display]

Is dealer's total >17?

If so then go to 3'

Draw another card for dealer

Location Code

Key

164

41

GTO

165

13

C

166

46

♦LBL

167

89

»3'

168

43

RCL

169

00

0

170

01

1

171

75

—

172

43

RCL

173

00

0

174

02

2

175

95

=

176

90

♦if z

177

67

*7'

178

22

INV

179

80

♦if p

180

88

♦2'

181

46

♦LBL

182

87

T

183

01

1

184

94

+/

185

49

♦PROD

186

01

1

187

09

9

188

46

♦LBL

189

88

♦2'

190

43

RCL

191

01

1

192

09

9

193

44

SUM

194

09

9

195

08

8

the Texas Instruments SR-52 Programmable Calculator; it confirmed my suspicions that my SR-52 had more power than the instruction manual said.

Enclosed is a program listing for a program that I have written that will allow you to play BLACKJACK with an SR-52. This program was the toughest that I have written for that machine, since the 224 program steps allowed just didn't seem enough for the game; several days were spent in working and reworking the code in order to get the game to fit with the features I wanted. As you can see, it just fits, exactly.

I have sent this program to you in case any of your readers would be interested in it. My family and friends have had a great deal of fun with it, and it's especially great for killing time on a long trip; one person can "stake" the "house," while another person is the player. The program automatically keeps score for the player, and even handles the "double-down" feature of the game.

I submit it for the entertainment of anyone who wants to use it.

Listing 1 shows the program code, which we typeset using column headings from the original form, along with the register allocations. The procedures for using the SR-52 Card BLACKJACK program are summarized in the box labelled "Operating Procedure."

Commentary

Go to C

Is dealer's total = player's total?

If so then go to 7'

Is dealer's hand less than player's If so go to 2' Otherwise, dealer wins

So make bet amount negative.

Add current bet to player's total score

152

Listing 7, continued:

Location Code Key

196

46

*LBL v

197

67

*7 |

198

43

RCL

199

00

0 }

200

03

3

201

85

I

202

85

+ '

203

46

*LBL ">

204

68

*8'

205

57

•fix

206

02

2

207

43

RCL

208

00

0

209

01

1

210

75

—

211

43

RCL

212

00

0

213

03

3

214

85

+

215

43

RCL

216

00

0

217

02

2

218

55

o/o

219

01

1

220

00

0

221

00

0

222

95

=

223

81

HLT J

Commentary

Game over, so display end game

Display dealer hand as integer, player as decimal, and await next round.

The SR-52.

Register Utilization:

ALLOCATIONS FOR SR-52 CARD BLACKJACK:

User accessible labels: Flag Usage:

A = Start game 0 = "stand" flag

B = Hit

C = Stand

D = Double

00

=

pointer for subroutine parameter

01

=

dealer count

02

=

player count

03

=

facedown

05

=

current card

98

=

winnings

99

=

random number output

19

=

current bet

Spring into Season with a BYTE T-shirt

At lastl No more wardrobe crises! BYTE T-shirts are here! Now you have the perfect garb for computer club meetings, Altair Conventions, playing Shooting Stars and computer chess. (A pair of trousers from your own closet is suggested as an addition to the BYTE T-shirt. BITS can't do everything for you.)

BYTE T-shirts are of top quality 100% cotton or cotton-polyester. The original design, by artist Judy Lee Rehling, is silk screened in red on white shirts with blue trim on collars and sleeves, or on blue heather shirts.

The $5.50 price includes postage and handling.

Send to:

In unusual cases, processing may exceed 30 days.

BITS, Inc. 70 Main St. Peterborough NH 03458

Please send me

_extra large -large _medium -small

Total enclosed $

Bill MasterCharge No

Bill BankAmericard No.. Name

AddressCity

blue heather

white with blue trim and

red letters

T-shirts @ $5.50 each (includes postage and handling)

Exp. Date

Exp. Date

_State_

-Zip

Signature

All orders must be prepaid

Prices shown are subject to change without notice.

153

Circle 213 on inquiry card.

A Guide to Baudot Machines:

Part 3, A Teleprinter Test Circuit

Michael S McNatt 4658 E 57 St Tulsa OK 74135

Now that you've found out what type of Baudot teleprinters are available on the surplus market, and where to go to get information on how to interface them to your microprocessor, it might be convenient to build a test box to check the working condition of your new acquisition. What follows is a circuit for just such a test box which can be used to provide the 60 mA current loop required by the Baudot machine. Circuits are also included in the box to generate signals which can verify correct machine function. Although not as handy as the test box, a Baudot keyboard may be used to test a page printer of the same speed. The test box has variable control of data rate for testing all Baudot teleprinters. The test box circuits supply the following functions:

1. Standard RY test signals, either continuously or at two second intervals, for mechanical alignment purposes. These signals result in a maximum amount of slipping and sliding of adjacent gears and parts within the machine, conditions which are also most likely to cause malfunctions to

surface. The two second interval used with the RY test prevents a rather large waste of paper or tape during a long test. 2. Individual Baudot characters at two second intervals. Five bit-switche? select the particular character desired (see table 1 in part 1 of this article for bit codes). One use of this function is to check various machines to see which keys are actually installed for selected bit combinations. For example, there are at least three different "figures" code assignments. Another use is in troubleshooting, for instance when the wrong character is appearing on the printer or punch in response to a processor output command. The test box can be quickly switched from "CPU" to local "char" mode to verify that the source of the problem is or is not the machine itself.

Also included in the test box is circuitry to accept serial TTL or CMOS level Baudot coded output from the processor or hardware code converter. The "MODE" switch

Cc

PROCESSOR

TTL

PROCESSOR

INTERFACE

BAUDOT

CHARACTER

GENERATOR

BIT SWITCHES

^o"TSW

LOOP SUPPLY

LOW

VOLTAGE

SUPPLY

HIGH VOLTAGE

►TO CMOS

CURRENT SWITCH

.

TELEPRINTER

~J

■

KEYBOARD

I

RY GENERATOR AND CONTROL

DATA CLOCK

Figure I: Block diagram of a Baudot machine test box allowing the generation of continuous or intermittent 'RY' test signals, or individual Baudot characters.

* ~\ CLUTCH

CONTINUOUS RY

2 SECOND TIMER

154

selects between processor input, RY test signals, and the individual character generator.

The absolute minimum amount of hardware one can get by with when setting up a Baudot machine is a high voltage loop supply. Some machines, Model 28s and Kleinschmidts, for example, come equipped with this supply; unfortunately, my Model 15 RO page printer didn't. It may be a good idea to borrow or build a test box anyway. When trying to determine the operating condition of a prospective Baudot machine, taking along a simple loop supply can enable at least a very minimal check of the printer mechanism. When purchasing my 15, the seller, a ham, used his own supply to demonstrate successful clutch action, then opened and closed the loop by rubbing the connections, causing random characters to be printed. Obviously, a better check would have been with a test box or a speed compatible Baudot keyboard. However, the

demonstration, in this case, was totally satisfactory because of the price, $30!

Theory of Operation

A complete schematic of the Baudot machine test box is shown in figure 2. Many of the parts used were selected solely because they were immediately available from the proverbial junk box. (I think there are companies which would envy some of the so-called "junk boxes" I've seen belonging to hams and computer phreaks . . . ) For instance, the transformer shown was the only one usable that came out of a thorough purging of not only my junk box but that of a fellow designer. Actually any transformer secondary from 110 V to 300 VAC may be used, as long as adequate series power resistors are included to result in a short circuit current of 65 to 70 mA. Telegraph loops, such as Western Union, usually work at 260 V. Use of the higher voltages, around 200 VDC, although requiring more power to

Photo 1: A sample layout of the Baudot test box. Note the eight diodes plugged into the 16 pin IC socket at the lower right of the picture. These diodes are being used in replacement of IC7 in the circuit of figure 2.

Photo courtesy of Don Clum

155

II—0i^o-^-WVO

ih-oy>-iwJ

"-H(-rt

PO

C\J

p

in

_L ^_

Q-1" •

in

j^fi

ro

o

o

V(

= 5

Q

o

2 v>

$

fc

m ^

c

Km *

OS

o

ID

in

*{

o

HI

" 5

r

LO

LU

P

o

l\J Z

3

ttH

3 s *

O U

fe r

ty

tt

o

LU (/)

-o

(T>

(/I ¥

h _i

UJ u

LU O CD

fg

* o

o o

< o

< Z r

r>

•*">

<

o - o

-o-o-o-o

- o

- o

is

m

O O

— 00--00

- o

o

(jj ll

o

o o o

o ooo

o

I UJ

Q

o o o

1- 3

=) o

iii

q: lu

<

o — w

rt^miDStoaiO

— CM

ro <fr in

z

in

o

z o

Q

>

o

>

Q

>

a

>

a

a

W 0)

P"

r

<r>

2

01

z

jr

* +

e>

+

o

+

o

+

t!>

+

o

+

o

z

o

^

o

o o

d

III

^

k

■»

s

<*■

r

^r

S

<fr

s

•3"

k

p

0.

n

C>

—

(Vt

(NJ

ro

K>

*

a>

u>

N

N

o

rt

en

IO o

o

CO

cc

—

a i

0)

z

i 1

i—i

i i

>■

IO o

,8

L-81

z o

Si

oz

156

Figure 2: A Baudot machine test box and interface. This circuit generates 5 level Baudot code to be used in testing the working condition of a Baudot teleprinter. All resistances are measured in ohms, and unless otherwise marked are J/4W and ±-10% accuracy. The circuit allows either continuous R Y test strings or intermittent 2 second test strings. The R Y test string causes the most movement of gears and will show any difficulties in operation quicker than other test string combinations. All unused inputs of any CMOS integrated circuit must be grounded.

be wasted in the series resistors, results in a faster response in the printer selector magnets, which is especially important at the higher speeds such as 100 words per minute. Do not put the standard transient suppression diode across the coils because selector magnet release will be slowed down.

Since CMOS logic elements are used, the low voltage secondary winding can be of any voltage which will result in from 5 to 12 VDC for the +V supply. The series resistor capacitor network across high voltage transistor Q1 is used to suppress the voltage transient occurring in the magnet coils when Q1 is turned off. A low logic state at IC4, pin 10, results in a mark or clutch state, since this will switch Q2 and thus Q1 on, causing loop current to flow. Resistor R1 tied to +V insures that the machine will remain in the mark state while changing the MODE switch.

The data clock and the 2 second interval clock, IC3 and IC4, are standard CMOS oscillators. In substituting CMOS, try to avoid 4049 inverters in these oscillators. The character generator is formed by 8 bit shift register IC5, which is parallel loaded with the 5 Baudot data bits, a start bit, pin 15, and a stop bit, pin 7. The remaining bit, pin 1, is tied high. Characters are generated every 2 seconds when the load control, pin 9, is pulled high for one half period of the data clock. Flip flop IC6 synchronizes the load pulses from the slow interval clock with the much faster data clock. Note that serial input IC5, pin 1 I, is tied high. This provides marking 1s to be introduced into the shift register after the parallel loaded Baudot bits have been shifted out.

The RY generator is essentially a CMOS version of an RTL circuit published in Ham Radio magazine, March I97I, pages 23 to 29. Briefly, IC1 and IC2 form a four bit, labeled A through D on schematic, binary counter which skips two states when counting from 0 to 15. The RY pattern thus generated is shown in the timing diagram of figure 2. Referring to the schematic, counter state 1, DCBA = 0001, causes flip flop A to be reset, thus clocking flip flop B. This occurs when ICI, pin 2, goes high, causing the reset pulse at IC3, pin 4. Counter state 14, DCBA =1110, causes flip flop A to

be set, with no clocking of flip flop B. This occurs when IC1, pin 1, goes high, causing the set pulse at IC3, pin 10.

The RY control is a three position SPDT minitoggle switch with the center position off. A neat feature of this circuit is that no matter when the RY control is switched from one position to another, complete RYs are always generated.

Miscellaneous Notes

• I used six 1N914 diodes and two resistors in place of IC7, hence the 16 pin socket was used as a diode holder, (see photo 1). The 4075s are more convenient, but the diodes were in the junk box at the time. If diodes are used, connect three of the anodes in place of IC7, pins 1, 2, 8, and the cathodes in place of IC7, pin 9, and tie a 1M resistor to ground at this point. Ditto to replace the second gate.

• To avoid the self-smoke or reach for the sky mode, all unused CMOS inputs must, be grounded or tied to +V.

• Obviously the test box can be as simple or complex as one desires. The minimum configuration would probably be two Eveready No. 416 67.5 V batteries and a resistor in series, using the "sparking" method to generate random characters!

• Seriously, the RY generator is mandatory, with the character generator and 2 second timer as options. Of course a more sophisticated Baudot test box would have an 8080A, a 1702A, an 8251, and maybe some hexadecimal character readouts. . .

Summary

An old surplus Baudot code teleprinter is the most inexpensive hardcopy peripheral available to the computer hobbyist today. This series of articles has presented approaches to acquiring, using and testing these units, as well as sources of reference material and interfacing hardware and software. It is hoped that the information provided will greatly ease the acquisition and interfacing tasks facing the hobbyist who owns or is planning to own one of these practically indestructible machines."

157

The Ultimate in Terminal Printers

What's

GNAT 3M Drive

This new GNAT MC-200 data storage system will make an interesting option for many users. This is an RS-232 interfaced serial device which plugs into a standard DB-25 connector often used

with RS-232. It gives the user a serial storage capability on 3M DCD-100 cartridges. Optional parallel IO is also available.

The unit has sufficient intelligence built in to recognize various command sequences including start write, start read, stop write, stop read, rewind, etc. All these sequences are duplicated by hardware switches on the front panel for manual control as well. The data rate for the device, which looks logically like any RS-232 serial terminal, can be set by a switch at rates from 75 to 9600 bps. Options available include parallel inter

The ultimate in terminal printing mechanisms is that provided by the Diablo HyType II printers and similar high-speed, high quality impact mech

anisms. These mechanisms give print quality (with carbon ribbons) good enough to photocopy and reproduce, yet at character printing rates of up to 45 characters per second. Applied Computer Systems, 248 Sobrante Way, Sunnyvale CA 94086, has taken the Diablo mechanism and placed it into this attractive package along with a microprocessor and numerous options. The result is a hard copy oriented microcomputer with prices starting at $4500 and options including floppy disks, memory to 64 K, plotting, sort and merge capability, down loading of programs over communications lines to large systems, and user programmability of the built-in microprocessor. Communication speeds of 600, 1200, 2400 and 4800 bps are supported, and the standard memory size is 4 K bytes. Keyboards customized for APL, ASCII and IBM 2741 compatibility are available.*

Circle 61 2 on inquiry card.

face, file search capability, dual drives, etc. The price of this system is $1930, and its mix of features should prove quite useful for those who want a file storage system with the minimum of interface complexity.

GNAT is located at 7895 Convoy Ct, Unit 6, San Diego CA 92111, and delivery is quoted as from stock to 60 days ARO.»

Circle 613 on inquiry card.

Kl

An Interesting Test Fixture

AP Products, POB 110, 72 Corwin Dr, Painesville OH 44077, has introduced this interesting new fixture for use in testing integrated circuit assemblies. Called the "Logical Connection," this is a preassembled ribbon

cable attached to an IC test clip at one end, and a flat cable socket connector at the other. The length of the ribbon cable can be chosen by the purchaser; the example here is of course rather short to illustrate the idea."

Circle 614 on inquiry card.

MY/M 1024 Microprocessor Video

Module

>ft Sixteen 64-character lines, upper/lower case 128 character font.

^ Software-controllable reverse video characters.

^ Full read and write capability for both cursor position and character code.

^ Interfaces to any microprocessor: 8080, 6800, 6502, etc.

+ Scrolling, line/character insert/delete, etc. easily done with software.

THE SOPHISTICATED VIDEO MODULE $225 FOR THE ADVANCED EXPERIMENTER

ASSEMBLED AND TESTED

Write or call for complete literature.

~Ar

RiTCrskle

ELECTRONIC DESIGN INC

1700 NIAGARA STREET ' BUFFALO, NY. 14207 716 875-7070

Circle 201 on inquiry card.

158

THE COMPUTER CORNER

Lower Hudson Valley Southern Connecticut

•IMSAI8080 •POLY-88 •Teletype supplies • Full line of magazines

•Processor Tech •Computer Book Service •Magnetic tapes & disks •Brain Games & 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

MPRES!

your computer.

Monitor up to 256 points under software control.

Each MPRES card monitors eights points and plugs into the XPRES bus.

Callus. We're the interface people.

CRC ENGINEERING, INC.

P.O. BOX 6263 BELLEVUE.WA 98007 (206)885-7038

SURPLUS

BARGAIN

+ 5V @ 7A - 12V @ 2A

+ 12V@2.5A +180 V@ 150 ma +30V @ 200ma (unregulated) -6.2V @ 25ma (no adj. pot)

Brand new, made by CDC for microprocessor terminals. 110 VAC in, regulated and adjustable DC outputs. Overvoltage protected +5, -12. Power status signal. Fan. Schematic. Original list $600+. From stock, UPS paid, custom foam box, guaranteed.

$50.00

ELECTRAVALUEINDUSTRIAL

BOX 464

Cedar Knolls, NJ 07927

(201) 267-1117

Circle 161 on inquiry card.

Circle 202 on inquiry card.

Circle 247 on inquiry card.

COMPUTER MART

OF NEW HAMPSHIRE

DEALERS FOR TDL ICOM IMSAI DIGITAL GROUP

SOFTWARE INCLUDES:

8K BASIC EXT. BASIC

TEXT EDITOR DISK BASIC

WORD PROCESSOR

MACRO-ASSEMBLER

170 MAIN STREET NASHUA (603) 883-2386

the microcomputer

i

an introduction to reality

now in Canada

misai processor cromemco

tdl and more

The Computer Place 186 Queen St. W Toronto M5V 1Z1 416-598-0260

Focus Scientific 160 Elgin St. Ottawa K2P 2C4 613-236-7767

WE NEED PEOPLE WHO ENJOY COMPUTERS

We're a small custom software house doing state-of-the-art things with large online scientific data bases. Not with packages — our systems are too sophisticated for that. You would develop systems for real-world use, in intellectually challenging applications. Mostly Fortran for IBM/370, DEC-10, Univac 1100-series. We offer the usual benefits (a bit better than most), comfortable offices, and company-paid coffee. Send your resume (in confidence), salary requirements, to

Dr. R. Gary Marquart

Fein-Marquart Associates, Inc.

7215 York Road

Baltimore, Maryland 21212

Circle 176 on inquiry card.

Circle 156 on inquiry card.

Circle 257 on inquiry card.

An Interesting New Product

for People Wanting Complete Systems

Frank Laczko, president of TLF, POB 2298, Littleton CO 80161, called us early in February to announce his new brainchild, the Data 12 computer, shown here. This machine is an example of a completely integrated system oriented to a terminal user. Its architecture is that of the Digital Equipment

A New Variation on Solderless Prototyping Boards

Continental Specialties, 44 Kendall St, POB 1942, New Haven CT 06509, has announced an interesting new variation on the solderless breadboard concept: modular units with a set of interlocking edges so that they can be built up into multiboard arrays that are rigidly held together."

Circle 609 on inquiry card.

Corporation's PDP-8E, using the Intersil IM6100 microprocessor.

The $1695 price tag of this processor with its built-in tape drive gets a PDP-8 like computer with 4096 1 2 bit words of user memory, serial terminal interface, tape controller with one drive built in, and a tape operating system that includes both an unattended batch mode of operation and real time task scheduling capability. The random access tape cassette drive uses a Preformatted digital cassette that has an average access time quoted by the TLF press release as less than 25 seconds, with bidirectional search speeds of 100 inches per second. The tape holds a maximum of 262,144 words in 128 word blocks. The software supplied with the system is completely

A Portable Display Terminal

The Micon KDM/1 is manufactured by Micon Industries, 252 Oak St, Oakland CA 94607. The terminal is a self-contained keyboard with 32 character alphanumeric LED display, available for $400 mail order. The product is available in eight different colors. It is also available in many fine computer stores. Options include acoustic coupler, digital cassette tape storage and additional memory capacity to 1920 characters."

Circle 610 on inquiry card.

oriented to an interactive keyboard, and it includes an "invisible" system executive that handles all IO scheduling, buffering and'vectoring. The operating system, modeled after DEC's OS-8, is written with an eye towards device independence in the same fashion as larger computers. The system software manages named files for mass storage control, and also includes the usual text editor for program preparation, a symbolic assembler, dissassembler and loaders. The system is marketed with a BASIC compiler which includes multisegment program linkage conventions, large multidimensional arrays, string handling, and multiline user defined functions. User memory can be expanded to 32 K words, and additional peripherals are also available."

Circle 611 on inquiry card.

BYTE's Bugs

Oops . . . Some Phi-Deck Updates to Freeman's Article

I have read an article published in the March 1977 issue of BYTE. The article, "Cassette Transports for the 'Roll Your Own' Hobbyist," had some errors in it concerning the PhiDeck cassette transports. These errors are apparently due to the normal time lags involved between the occurrence of a development and the time consumed to communicate the event.

Areas I would like to bring to your attention are:

Solenoid Operation

Phi-Deck uses a 4 motor design for all control functions. No solenoids are used, thus eliminating the power con

INTERNATIONAL DATA SYSTEMS, INC.

400 North Washington Street, Suite 200 Falls Church, Virginia 22046 USA Telephone (703) 536-7373

S100 Bus- Cards (ALTAIR/IMSAI Compatible)

88-SPM Clock Module

88-UFC Frequency Counter Module

88-MODEM Originate/Answer MODEM

GENERAL PURPOSE PERIPHERALS

MCTK

TSM

DAC8

Morse Code Trainer/Keyer Temperature Sensing Module

USES

Your computer keeps time ot day regardless of what program it is executing. Applications include event logging, data entry, ham radio, etc.

Measure frequencies up to 600 MHz Computer can monitor multiple frequencies such as transmit and receive frequency.

Use your computer to call other computer systems such as large timesharing systems. Also allows other computer terminals to "dial-up" your computer.

Hardware/Software package which allows your computer to teach Morse Code, key your transmitter, and send prestored messages.

Use it to measure inside and/or outside temperature for computerized climate control systems, etc.

Requires one eight bit output port. Use it to produce computer

music.

Eight Bit Digital to Analog Converte Terms: Payment with order. Shipment prepaid. Delivery is stock to 30 days. Write or call for detailed product brochures

KIT PRICE

$96.00

$149.00 $199.00

$29.00 $24.00 $19.00

Circle 204 on inquiry card.

160

Floating Point

Software for the 8080

PACKAGE INCLUDES MANUAL, OBJECT CODE ON PAPER TAPE, AND COMPLETE ANNOTATED SOURCE LISTING.

ROUTINES PERFORM:

Add, subtract, multiply, and divide

Load and store floating point accumulator

Format conversion

Square root

S ine and cos i ne

Natural logarithm and exponential

Arc tangent

Hyperbolic sine and cosine

Logarithm base ten

OTHER FEATURES:

Compatible with any 8080 microcomputer Requires less than 2K bytes program store High speed—worst case multiply 2.5 msec. Accurate to six decimal digits Low cost (source tape available separately)

SEND $10 TO:

BURT HASHIZUME P.O. BOX 447

MAYNARD, MASS. 0)754

ORANGE COUNTY

Hardware and Software SERVICE and SALES

Fountain Valley Plaza

1/a Block South

of

San Diego Freeway

1B120 Brookhurst St. Fountain Valley

Calif. 9270B

714-363-5551

• Hours •

Monday-Friday 1-9

Sat 10-6 Sun 12-5

THE BETTER

BUG TRAP

The Better Bug Trap is an Altair/IMSAI plug-compatible board that extends system capabilities to facilitate software debugging and real-time processing. Capabilities include interval timer, real-time clock, watchdog timer, processor slowdown, and clock with variable rates. Four hardware breakpoint addresses allow you to stop processing or generate an interrupt at a breakpoint without modifying existing software. The board services its interrupt with a CALL instruction to ANY memory address you choose. All capabilities may be set by software or front panel. Write for free literature.

$180 assembled, tested, complete documentation, software.

MICRONICS, INC.

PO Box 3514, Greenville, N.C. 27834 919-758-7757

Circle 262 on inquiry card.

Circle 261 on inquiry card.

Circle 196 on inquiry card.

COMPUTER CLUBS PROFESSIONALS-AMATEURS BUSINESSMEN-HOBBYISTS

ORGANIZE (5-20 PEOPLE) AND BUY A FULL TELEPROCESSING SYSTEM (Z-80 MICROCOMPUTER, CUSTOM BOARDS, DUAL FLOPPY). THEN BUY SINGLY REMOTE OR IN-HOUSE VIDEO TERMINALS (WE SELL THESE TOO!). ADD MVT's BOSSYSTEM/1 SOFTWARE AND YOU HAVE A "DEDICATED" COMPUTER FOR 5-20 USERS.

USING OUR MULTI-USER BASIC INTERPRETER YOU ARE NOW READY FOR EASY REMOTE PROGRAMMING, PROCESSING, GAMES, ETC. FOR A COMPLETE SYSTEM (TESTED AND BURNED-IN WITH SOFTWARE, TERMINALS AND PERIPHERALS) THE PRICE FOR 10 PEOPLE IS LESS THAN $1900 PER PERSON.

WRITE NOW FOR FURTHER DETAILS ON THIS MEW AND EXCITING DIMENSION IN PERSONAL COMPUTING.

MVT MICROCOMPUTER SYSTEMS, INC.

P.O. BOX 62

AG0URA, CALIFORNIA 91301

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 only $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.

IUU

SIX PORT I/O CONTROLLER

• Program Control of Ports

• S100 Buss Compatible

• Parallel I/O

• Single Printed Circuit Board

VIDEO SYSTEM

• 30 x 64 Display - 1920 Char.

• 120 Character Buffer

• 1 Msec Read/Write Time

• Extensive Software Provided

• Display Attribute Controls Are All Programmable

Available in Kits or Assembled

BankAmericard and Master Charge

Accepted

Dealer or Club Discounts Available

Box 28823

IOR

Dallas, Texas 75228

Circle 264 on inquiry card.

Circle 64 on inquiry card.

Circle 268 on inquiry card.

Circle 83 on inquiry card.

COMPUTER MART

A NEW YEAR, A NEW LOGO, A NEW STORE ! !

Last year we opened the first computer store on the East Coast. This year we move out of the Hobby Store and into our new Real Systems Showroom and Store. The largest display of up-and-running computer equipment. The same friendly help and advice. Plus-all the bits and pieces you can't find elsewhere! Plain and Fancy Software too!

1P

*0**A*<

L^

£

s*>

over $10.00 BankAmericard

and Master Charge accepted

Stan Veit -Storekeeper.

COMPUTER MART OF NEW YORK INC.

118 MADISON AVE. (ENTER ON 30th ST.)

212-686-7923.

sumption associated with maintaining a solenoid in the active state.

Die Cast Chassis

All Phi-Deck models now utilize a precise die cast chassis. Triple I no longer uses the sheet metal frames.

AC Phi-Deck Models

Triple I is announcing two new Phi-Deck transports which will give us a total of five models. Both of the new models will use an AC capstan motor.

New Pricing

Phi-Deck Models 1 and 2 are now built with the die cast chassis. This and other factors have increased the price of these models to $124 in quantities of 1 to 9. The price is higher, but you can now get a precise die cast chassis for under the $169 mentioned.

If you could update your audience about the above corrections to the article, it would be greatly appreciated.

Jack Morrow

Applications Engineering Technician

Triple I

POB 25308

Oklahoma City OK 73125

My fault. In editing, I should have correlated later Phi-Deck literature with the article, which was written in the Summer of 1976 ... CH ■

PAPERBYTES Design and Implementation of a

Tiny Assembler 6800 — Microprocessor Self Assembler

$7

Tiny Assembler 6800

Design and Implementation

of a Microprocessor Self Assembler

by Jack Emmerichs

Send today to:

BYTE Interface Technical Services, Inc. 70 Main St Peterborough NH 03458

Dealer inquiries invited

All orders must be prepaid.

Originally described in the April and May 1977 BYTE, PAPERBYTES is now offering Jack Emmerichs' Tiny Assembler 6800. This book contains the complete Tiny Assembler source listing plus object code in cross assembly format (space restrictions prevented printing of this material in BYTE). A bar code version of Tiny Assembler is included for convenience, as well as reprints of Jack's two articles and additional user manual materials. Tiny Assembler will run on any machine with Ml KBUG and 4K of memory starting at address 0000, and is an excellent tool for the interactive development of functional blocks for a large structured program. Add it to your 6800 system and you'll have a valuable programming aid which can free you from the drudgery of machine language. The best part is the price: only $7. Order yours today!

Name

Address

City

State

Zip

PAPERBYTES Tiny Assembler 6800

d Check enclosed

□ Bill MC #

□ Bill BA #

Price of Book $

Postage, 35 cents $

Total $

Exp. Date Exp. Date

Signature

In unusual cases, processing may exceed 30 days.

You may photocopy this page if you wish to leave your BYTE intact.

No. 700

Circle 4 on inquiry card.

162

CANADIANS!

Eliminate the Customs Hassles. Save Money and get Canadian Warranties on IMSAI and S-100 compatible products.

IMSAI 8080 KIT $ 838.00 ASS. $1163.00 (Can. Duty & Fed. Tax Included). AUTHORIZED DEALER Send $1.00 for complete IMSAI Catalog.

We will develop complete application systems. Contact us tor further information.

Rotundra Cybernetics

/A

Box 1448, Calgary, Alta. T2P 2H9

Phone (403) 283-8076

TWX 610-821-1883

South Florida

Across from the University of Miami

University Shopping Center 1238A South Dixie Highway Coral Gables, FL 33146 (305) 661-6042

Sunny Computer Stores, Inc

South Florida's First Computer Store

We Cany:

•IMSAI, COMPUCOLOR, VECTOR, SOUTHWEST, C.S.C., CROMEMCO VECTOR GRAPHIC, SEALS •Books, Magazines, Newspapers •Sockets, IC's, Printers •Digital Cassette Equipment •Debugging Equipment

We offer Classes, Friendly Advice and Service

Hours: Monday - 1 2 Noon to 9 P.M. Tuesday through Saturday — 10 A.M. to 6 P.M.

WIREWRAP

Cut & Stripped =30 Wire Golil Wire Wrap Sockets

in Red, Yellow, Sluo or Orange High Quality Closed Entry Type

1.02 3.63 6.75 28 1 DG 3.83 7.16 40

r.350n Hulls $4.00 10'S30(t

HOBBY WRAP TOOL

Hand Wn)p UnWou

& Strip Tuol

S5.95 with S2 free wire.

S34.9B includes S5.00 fi wire & sockets (C Batteries not incl.)

We also Stock.

• Wire Wrap Boards

• 74OO&74LS0O IC's

• Processor Support Chips Call or Write for catalog (2131 797-4002 or 797-4007

Orders under S10 or COD's add SI.00; other orders shipped UPS ppd. BankAmcricard and Master Charge.

Page Digital Electronics

1701 East Orange Grove Blvd Pasadena, California 91104

Circle 234 on inquiry card.

Circle 164 on inquiry card.

Circle 273 on inquiry card.

The Best of BYTE, Volume 1

Send now to:

BYTE Interface Technical Services, Inc. 70 Main St Peterborough NH 03458

The volume we have all been waiting for! The answer to those unavailable early issues of BYTE. Best of BYTE, edited by Carl Helmers Jr and David Ahl. This 384 page book is packed with a majority of material from the first 12 issues. Included are 146 pages devoted to "Hardware" and how-to articles ranging from TV displays to joysticks to cassette interfaces, along with a section devoted to kit building which describes seven major kits. "Software and Applications" is the other side of the coin: on-line debuggers to games to a complete small business accounting system is included in this 125 page section. A section on "Theory" examines the how and why behind the circuits and programs. "Opinion" closes the book with a look ahead, as to where this new hobby heading. It is now available through BITS Inc for only $11.95 and 35 cents postage.

| Name

I Address

I City

State

Zip

st of BYTE, Volume 1

O Check enclosed

□ Bill MC #

□ Bill BA #

Signature

Price of Book Postage, 35 cen Total

Exp. Exp.

$

The Be

s $

$

Date Date

Ml

Iuuhkicmo

In unusual cases, processing may exceed 30 days

All orders must be

prepaid

LI

You may photocopy this page if you wish to leave your BYTE intact.

Circle 4 on inquiry card.

Advanced Microcomputer Products Presents

Prototype Design Equipment sHlri

25

*■* -Zl- -1r~

as.

Itii?

I 1 ill

!ii3

'tin

Microprocessor Prototyping

NEW SOCKETS & BUS STRIPS

E.p*.,m*r.«r600 S10.95

E„e*.™n.o, 300 S 9.95

CSC CATALOGUE

* MICROPROCESSOR PRODUCTS

8K RAM BOARD $198.00

ADU

* MOOCDMPUTER

.PRODUCTS

BUILD YOUR OWN COMPLETE COMPUTER SYSTEM

Jr AMI EVK 99 6800 BASED ~ MICROCOMPUTER

Photo of expanded EVK 99 NOW $133.00

74 Vj S0870

Sr.BJJ I S6S00 I

0141APC U

r»60 tmsioio i: KMO twwniio i:

b2?h g>m

TV GAME KITS

6B3I 16* ROM

TV KIT NO.1

i.H.jiViAYJBSOO !

PCBuJXIIor.^rott

TV KIT NO. 2

ir..-.,i,t..i A ¥38600 i '

ONLY

■ $29.95

ONLY

„ S34.95

ONLY

S49.95

2. UNIVERSAL KLUGE BOARD S98.00

3. 16K BYTE RAM BOARD S77.95

16K .Bu> B" ■ IB oiqji.iljl.ati Uiri flOJin. 21L07ljn

4. 6 SLOT MOTHER BOARD S29.95

5. EXTENDER BOARD $46.50

8T268

74LS13B

8097

74166

74161

741HC

MH0026CN

SPECIAL

BUY 10 OF THE FOLLOWING

AND YOUH PRICE IS. . . AMD 808UA . . .S19 95 AMD 9111 4 10

AMD 9112 2 30

RF MODULATOR MODULE

* NEW PRODUCTS

* IC MARKET PLACE *

*

7400 TTL

IB

744JN

79

ia

99

79

74192r.

19

7450N

74l93r.

J0

7451N

25

H

40m

IS

J4J0N

30

IS

SI 59

J4196N 74198H

7473N

90

74l99r.

74J4N

7475N

74179*

7476N

M

35

3G

748 3N

B096N

7485N

99

B097N

35

74S6N

Mris.'i

IS

75150 r.

36

99

754 50 f.

J5

74I55N

99

IB4SU

36

7492N

754 52f

29

7493N

MM

uw

21

31

7494N 74 95N

74I72N

S16 25

11 40

30

J496N

35

S3 7b

74I7SN

35

74100ft

S< 10

M41N

1105

7410SN

53 S3

741 UN

n

U42N

33

7443N

St 50

i«,nS

33

38

74IB4N

tin

00 PIECES MIX TAKE 10% DISCOUNT

000

PIECESMIX TAKE

15% DISCOUNT

F4702BjlhI Run.. Cjr.-ii

15 95

8214 I'rrufilv hit.

11.95

ZBQCPU

49.95

Z80 3881 PIC

9.95

Z80 3882 CPC

995

PD 372 Floppy Controls

55.00

PD 371 May. Tips Cttntroltn

49.95

APP Notes lor 372 Floppy

6.95

Gl AY5 35504'i Driiit DVM

29.95

Gi AYS 3B00 Keyboard Eneoda

14.95

litu-itil 8038CC LV,»e Gen.

3.50

AY3507 DVM Chip

12.95

R03 2613 Uppercase

9.95

R03 2513Lowt;ruasu

10.95

IMS 40GQNL 2 4K HAM

3.95

MK4096 4K RAM

3.95

1G02BUART

5.50

1883 UART

6.50

AY51013A UART

5.50

1J101C-E 1K CMOS RAM

B.95

WD 1671B Astros

29.95

WD 1941 Dual El,iiid Gen

9.95

WD 1771 Floppy Disc Cant.

74.95

6330-1 256 Bil OC Prurn

2.95

6331 l 256 Bit TSP.om

295

GH00 1 IK OCProm

3.50

6301 1 IKTSPiom

3.50

6305 1 2K OC Piom

9.95

6306 1 2KTSPtom

9.95

6340 1 IK OCProm

1B.95

aSnjp"only S99 !>0 Microcomputer Applic. only S7.95

[flMCS8Lht.riM.iiiii.il 1HMCS4 Users M.IIHUI . . Vtrimin Linear Catalogue

yihaon Quads & Duals Mam

6800 STARTER SET

8080A STARTER SET

All shipmmm first class or UPS i lor shipping and handling Mum California Residents *ttl li".. ia«

u s or add 5'i mm ordai S 10.00 Foreign add Hv

DITTO? P.O. BOX 17329 ^ „„«Nt*cft

JrU 1 tTV IRVINE, CALIFORNIA 92713 oBOt«,'oU

PHONE 17141 988366b

00

o

SO

PS

I

O

>

*

INS

00

<A

SO

SO

WIREWRAPSOCKETS

-GOLD

14 Pin WW 1 level

.30

14 Pin WW 2 level

.33

14 Pin WW 3 level

.37

16 Pin WW 1 level

.31

16 Pin WW 2 level

.34

16 Pin WW 3 level

.38

18 Pin WW 3 level

.60

24 Pin WW 1 level

.70

24 Pin WW 2 level

.75

24 Pin WW 3 level

.85

40 Pin WW 3 level

.25

EDGE CARD CONNECTORS

IMSA1 S100 WW .250" Row Spacing ....

S5.00

IMSA1 S100 ST .250" Row Spacing

5.00

AltairSlOO WW Wire Wrap . . .

5.50

AltairSlOOSTSoldertail ....

5.25

D-SUBMIN CONNECTORS

RS 23225 Pin Male Part No. DB25P

S3.50

RS 23225 Pin Female Pan No. DB25S. . . .

3.95

RS-232 Plastic Hood for above . .

75

CRYSTALS

Frequency

Case

1.000 MHz

HC6/HC33

2.000 MHz

HC6/HC33

2.097162MH

HC6

4.000 MHz

HC18

G.000 MHz

HC18

6.000 MHz

HC18

10.000 MHz

HC18

s Timebases

Frequency 13.000 MHz 14.31818MHz 18.000 MHz 20.000 MHz 32.000 MHz lOOKc 3579.45 Kc 2.457GMH,

Cast HC18

HC18 HC18 HC18 HC18 HC13 HC18

4.95 4.95 4.95 4.95 4.95 12.95 4.95 5.95

^Exar

HOOSHtf*.., K 2706KA

XI1555CP XR55GCP XR2556CP

XH221ICP fSK Omoaaor XB8BTCP rmOKBta

* COMMUNICATION CIRCUITS *

*S1LHEOI)ECO0ERS*

* fUNCIION CENtRAIOHS *

♦ OPERATIONAL AMPLIFIERS*

2708 PRIME

only $49.95

Build Your Own MONITOR

Now in Stock - NEW M3000 -100 12-inch display module $229.00

M2000 - 155 9-inch display module S208.00

"Add S10.00 Shipping

MOTOROLA Exorciser. MEK6800DI and MEK6800D2 Compatible Modules

9601 16 Slot mother board - Inc. Conn. S175.00

9602 16 Slot card cage 19" rack mount S 72.00 9610 Utility Prototyping Board S 36.00 9615 4K Eprom Module I1702A) S350.00 9620 Parallel I/O Module S375.00 9626 8K Static Ram Module S350.00 9650 8 Channel Duplex Ansyn I/O S390.00

All assembled and tested. Not Kits

'MISCELLANY

I'jVUUtZZH St!

KEYBOARD

CEVBOAUD n"'-V" "Tf,' ■ TELEPMONE NPS-S-**' '

LjiUblr Iq. S4 95

Only S9.95

CLOCK CHIPS

IX G3 Kfv Krvbcui 10 300 FOX HDK.

"9tRE

'VARIABLE RESISTORS

CORCOM EMI FILTER

ROTARY SWITCH

Circle 75 on inquiry card.

Circle 168 on inquiry card.

TTL SPECIALS

74H10 Dual 4 Input Buffer $ .20

7490 Decade Counter 49

74S175 Quad Flip-Flop with clear 99

74283 4 Bit Binary Adder 99

2Vi" round speaker, 8 Ohms 1.00

2%" round speaker, 100 Ohms 1.10

Speco miniature replacement speakers from 1" to 3Vi", SASE for list. Brand New GE Stereo Tape Amplifier Board with all components 4

Watts 12 Vac supply limited 3.50

Mono Amplifier Board 1 control 2.25

6 foot black or brown zip cord and plug 35

RG174 50' coil 4.50

2Vi" round speaker, 8 Ohms 75

VHF Ferrite Beads 15 for 1.00

Ham & CB Slide Mounts with lock & coax connectors 8.95

2 Amp Bridge Rectifier, 200 Volt 50

2 Amp Bridge Rectifier, 600 Volt 1.25

3 Amp Bridge Rectifier, 200 Volt 85

Gould AA 500 mA Nicads 1.69

2 Amp 1000 volt rectifier 10 for 1.00

LM 723 14 pin Voltage Reg 49

RF DEVICES

2N3375 3W 400 MHz $5.50

2N3866 1W400MHz 1.15

2N5589 3W175MHz 4.75

2N5590 10W175MHz 7.80

2N5591 25W 175 MHz 10.95

2SC517 3.95

2SC1226 1.25

2N6080 4W175MHz 5.40

2N6081 15W175MHz 8.45

2N6082 25W175MHZ 10.95

2N6083 30W 175 MHz 12.30

2N6084 40W 175 MHz 16.30

2SC1306 4.30

2SC1307 5.25

2N2876 special 10.95

1N746 to 1N759 400 Mw ... ea. .25

1N4728 to 1N4764 .. 1 watt 28

1N5333 to 1N5378 . . 5 watt 2.10

1N2970 to 1N3005 .. 10 watt 2.40

1N3305 to 11M3340 .. 50 watt 4.75

.001 Pacer Cap. 192P10292 200 WVDC . .18 12.8 kHz Crystal in TO 5 Can 4.95

2N918 95

2N2218 45

2N2219A 40

2N2222A 30

2N.2369 20

2N2483 341

2N2484 45

2N2905 35

2N2907 25

2N2926G 24

2IM2926Y 241

2N3053 50

2N3390 .751

2N3439 1.59

2N3440 ,6ol

2N3512 i.isj

2N3553 1 401

2N3565 22 [

2N3584 30

2N3638A 37

2N3646 271

2N3713 1.351

2N3725A 1.80

2N3771 2.50

ALDELCO COMPUTER CENTER NOW OPEN

Kits, Books, Boards, Magazines. Special 2102LI 8 for $17.50'. 8080A CPU Chip $29.95. We stock OK Battery Operated Wire Tool $34.95, OK Hand Wire Wrapped Tool $5.95 7400 ICs CMOS, Timers PLL's IC Sockets. All kinds of transistors, rectifiers and diodes. Plus other electronic parts.

HOURS: MONDAY TO SATURDAY, 9:30-5:00 OPEN WEDNESDAY UNTIL 9 PM (516) 378-4555.

We quote on any device at any quantity. Add 5% for shipping. Minimum order $6.00. Out of USA send certified check or money order, include shipping costs.

Special 50 Foot Spool #30 wire wrapl $1.98. White, blue, red or yellow.

NATIONAL 8080A SPECIAL $19.95

8038 $3.25

.MPSA14 .90

2N3055 99

MPF102FET 55

2N3904or2N3906 25

2N5496or2N6108 70

MJE340 (2N5655) 1.10

40673 RCA FET 1.55

741 or 709 14 Pin DIP 25

555 Timer 75

556 Dual 555 1.75

200 Volt 25 Amp Bridge 1.50

1N914-1N4148 15 for .99

1N34-1N60-1N64 10 for .99

CA 3028 Dif. Amp 1.50

4060 CMOS 2.00

LM309K Volt Reg 1.10

MJ3055 2.20

5313 Clock Chip 3.95

5314 Clock Chip 4.50

5316 Clock Chip 4.95

2IM6103 89

LM309or741 Min DIP Op Amp 45

LM741CE T05 Op Amp 45

14 or 16 Pin IC Sockets 30

Slide Pots Tapered 1 K or 15 K . $ .50 Egg Insulators 45

2N3772 2.25

2N3773 4.95

2N3859 .29

2N3903 .20

2N3905 .25

2N3924 1 80

2N3926 6.30

2N4041 7 80

2N4249 25

2N4401 25

2N4402 25

2N4403 25

2N4409 19

2N4427 1.35

2N4429 7.65

2N4888 50

2N5016 17.60

2N5090 7.50

2N5129 40

2N5179 .90

2N5641 5 40

2N5642 10.25

2N5643 14.35

2N5913 1.70

Build the W7BBX Programmable Keyer (Ham Radio April 1976) We can supply the four PC boards and a Comprehensive Construction Manual all for only $29.95

Write for our catalog featuring other Kits including the hard to get Keyer switching transistor 2N4888 as well as other Keyer parts and boards.

Clubs contact us for quantity discounts on any of our kits.

We have Wire Wrap Sockets and Wire Wrap Wire - 50 feet SI.98.

STOPWATCH KIT Operates on a 9 Volt battery. Includes Crystal, Switches, 7205 MOS Chip & LED

Displays and Board $29.95

STOPWATCH HAND CASE for

above 3.95

CLOCK CABINETS Beautiful wood simulated walnut grain $3.95 Plexiglass in Blue, White, Black or Smoked $2.95

SIX DIGIT AUTO OR BOAT DIGITAL CLOCK KIT Has a

beautiful Charcoal Grey moulded high temperature plastic case with chrome rim. Dimensions are 1%" high x 4" wide x AVi" deep. Large 0.4 LEDs display hours, minutes and seconds. Works on 12 Volt AC or DC as well as automatic switching to a 9 Volt battery for power failures. Battery (not supplied} fits in case. Provision for blanking display LEDs for out of car or boat use. Adjustable Crystal Time Base included, as well as

Mobile Mounting Bracket. KIT ONLY $29.95

Three or more kits 27.95

Wired and Tested 39.95

Power Pack for use on AC 2.95

NOW NEW IMPROVED DIGI- , TAL ALARM CLOCK KIT Hours • Minutes ' Seconds displayed on six BIG 0.5 Fairchild 7 Segment Display LEDS 12-hour format 24-hour alarm with snooze feature, plus elasped time indicator and freeze feature. Eight pages of pictorials and instructions. NEW on-board power transformer and circuitry for optional time

base $19.99

60 Cycle time base kit for dc use in automobile or for battery

operation $4.95

12 OR 24 HOUR CLOCK KIT. Comes with Big 0.5 Seven Segment LEDs. Uses National 5314 Clock Chip. Fits our Walnut Grain or Plexiglas Cabinets. ONLY $18.95

ALDELCO

2281A BABYLON TURNPIKE, MERRICK NY 11566 516-378-4555

A2

CaUFornIa

striaI

Post Office Box 3097 B • Torrance, California 90503

SPE R%t =^p U N I VAC

The famous Sperry Univac 1710 Hollerith keyboard assembly is now available from California Industrial for only $24.88 The ideal computer input device for accountants and mathematicians. The numeric keys are placed on the lower three rows to resemble a ten key adding machine. This format allows one handed numeric data entry. Original cost was $385. Used but guaranteed in excellent condition. Complete with documentation.

CONNECTORS

Z?

iUlUMMU.

BP MALE "^

i/n ■

RS 232

DB25P male plug & hood

s3.95

0B25S female

*395

Power Transformer

$4.98

5150 shipping

Input 117ac. Output-21v 5A center tapped. Suitable for 12v. 5A. or 5v. 10A power supply. Four other windings at lower currents.

100 PIN

IMS AI /ALTAI R Edge Connector

Altair. Imsai compatible gold plated, dual 50 (.125 centers) three tier wire wrap edge connector. 3 lor $13.50

CALCULATOR KEYBOARD

198

Ideal lor keyless entry systems, burglar alarms. Touch Tone or hexadecimal computer input code.

17 50

63 key

KEYBOARD

Uncoded computer keyboard Contains. 63 reliable gold plateci SPST switches ASCII Kit components and printed cucuit board. $35.00 additii

$398 Digital Clockl

JO

VSTICK $

S.$c

This joystick feature lour 100K potentiometers, thai vary resistance proportional to the angle ol the slick. Perfect for television games, quad stereo and radio controlled

aircraft.

POWER SUPPLIES

$17.50

$150 shipping

5 volt 2.2 Amp regulated power suppiy. Also delivers 12 volls at 4 Amps unregulatedPerfect tor TTL applications.

Ma nu lac lured lor the Panasonic clock radio. The clock mechi trips a microswitch upon reaching your preset wake-up time.

BNC CABLE 15 feel of RG-58U connector at ends

As Low As

Jl

74164 74165 74166 74167 74170 74173 74174 74175 74176 74177 741 BO 74181 74282 74184 74185

7400

09

7476

7401

.19

7479

3.99

7402

.19

7480

79

7403

.19

7482

99

7403

.19

7483

7404

19

7485

99

7405

19

7486

49

7488

7407

25

7489

2 79

7408

7490

7409

.25

7491

99

7492

7411

7493

.49

7412

7494

.79

7413

.49

7495

.79

7414

.79

7496

.79

7416

.39

7497

7417

39

74100

7420

19

74107

39

7422

49

7423

39

74110

179

7425

39

74116

199

7426

.39

74120

179

7427

39

74121

7428

49

74122

7429

39

74123

7430

.25

74125

.59

7433

.39

7437

39

74128

7438

.39

74132

7439

.39

74136

7440

.39

74141

7441

B9

74145

7442

.59

74147

7443

.79

74148

1.99

7445

.89

74150

1.19

7446

.99

74151

7447

99

74153

7448

.99

74154

7450

25

74155

.99

7451

25

74156

7453

25

74157

7454

25

74159

2.99

7460

.25

74160

7470

25

74161

7472

.39

149

7473

39

7474

.35

7475

.49

c

Compucorp DIGITAL CASSETTE Recorder

^ ? Thu Compucorp 392 cassette

recorder Isengineered exclusively lor storage and lelrievaiol Unary (jiqiiui uiiormalion Trio iDCO'tlei does nol require lone delecliun oi analog Interface boards High-low binary stale is delected Ihrougti a sett contained cflgtlBl iransmon amplifier The upper hall Ol the tecorduis Bloreo head is used lor detection ol Knit docket] pulse sigtuls liilorrnalian received liom the CPU advances the capstan driven tape transport Conirol cable terminates into a 25 pin male "RS-232" type connector Documuntalton included Limited qu^n

SOLID-STATE

J.98 £^

1.5 TO 3 VI

MICRO BUZZER

Thumbwheel s^lX switch

Ten position

BCD

ll?9.a.

V

I

10 50

TTI5 .89

SPDT

MINIATURE TOGGLE SWITCH

$.98».

10 50 100 S.88 .81.73

LckJ

TRIMMER

POTENTIOMETERS

2K 10K 50K

5f„r*.98

20 50 100

Oi

16 > 14' 121

32^v $.49

Conductor Ft.

RIBBON WIRE]

SPECTRA-STRIP

Transistors

ea. 10 50 100

4042 4043 4044 4046 4047

I to give IhBm away — tarns won't let us. So instead we are selling thorn at cost And therefore must limit the purchase ol the SN740O end the LM74I to 50 per customer.

2N2222A.20 .18 .16.15 2N3055 .89 .84 .77 .65 Ml 3055 .99 .94 .87 .75 2N3904 .15 .11.09.07 2N3906 .15 .11 .09.07

Diodes

10 25 100 1N4002 100.. .08.06.05 1N400S GOO...10.08.07 1N4148 signal .07.05.04 jumbo red ea. 10 25 100 LED's ?15.10.08.07

COMPUCORP

PowerAdapter

1£9

Oulput: 12v. 175ma. TRANSFORMER

I I

^3* 5-WAV

fm BINDING

^3P POSTS

5H

COMBINATION LENS MOUNTING DEVICE C Red Amber Green

for 20 SO 1001k

»9g 17<15rl3'll

CLIP LI XI

CAPACITORS

ELECTROLYTICS

ea. 10 50

4500/50V.5H' 135 1)9

1000/15V. »55 49 45 axial

».98e

DPDT

ROCKER SWITCH

Photoconductor Cells

3 for'.98

10 ohm to IOO K

DISCOUNT

Wire Wrap Center

Heavy

duty grounded power cord and mating chassis connectors.

IC SOCKETS

wire wrap

Solder

ea. 25 50

ea. 25 50

17' 16 15

37<36 35

20 19 18

38 37 36

21 20 19

99 93 85

36 35 34

169 155 139

63 60 58

529.95 ;

son. $.98

KYNARMp

500 1,000 11,000 59. SIS. S105.

H

15214 Gre.illea Avenue • Lawndale, California 90260 ■ (213) 772 0800

J.

Circle 200 on inquiry card.

COMPUTERWAREHOUSE STORE

DEPT: B • 58if COMMONWEALTH AVENUE • BOSTON , MA • 0221 5 • 617-261 -2701 • V I S IT US: 9"9 WEEKDAYS; 9-6 SATURDAYS

ONE DAY SHIPMENT

USED PERIPHERALS FOR MICROSYSTEMS

HAZELTINE 1000 $795

VIDEO DISPLAY TERMINAL + SHIPPING'35 12 LINES x 80 CHAR., TTY COMPATIBLE, 5 x 7 DOT MATRIX, 525 LINE RASTER. BUILT £ TESTED; PLUG £ GO

SPECIAL DISCOUNTS/

ON KITS & ASSEMBLED UNITS

SAVE UP TO 20% OFF KIT PRICE WHEN A PERIPHERAL IS PURCHASED AT THE SAME TIME.($200 MAXIMUM DISCOUNT)

PERIPHERAL PRICE OVER $900^20%OFF KIT PERIPHERAL PRICE OVER $250^10%0FF KIT PERIPHERAL PRICE OVER $95^ 5%0FF KIT

ALLanASR33isand MORE! GREEN PHOSPHOR $150

OLIVETTI TE318 - BACK IN STOCK!

RS232 INTERFACE, QUIET OPERATION

10 CPS, PRINTER, BUILT-IN PAPER TAPE

READER/PUNCH, ELECTRIC TYPEWRITER

KEYBOARD WITH ADDITIONAL 10 KEY

NUMERIC PAD, YOUR CHOICE OF FRICTION

$875 0R SPR0CKET FEED, LIGHTED PLATEN AREA

ifccik F0R EASY READING> STANDARD PAPER AND + SHIPPING 165 lb TApE> supp0RTED By OLIVETTI

+ $25 SHIPPING

TECHTRAN 4100 $595

TAPE CASSETTE DRIVE. CAN RUN DIRECTLY FROM TERMINAL INDEPENDENT OF CPU. FULL EDIT CAPABILITY.

KDI ADTROL AR-21...$95SH,mNc,

ELECTRO OPTICAL PAPER TAPE READER WITH 110V PS, STEPPER MOTOR, 250 CHAR/SEC, FAN IN TABLE TOP HOUSING

IBM 731 I/O WRITER $750shiH?Nq

8i"PLATEN,PINFD,EBCDIC,U/L CASE,DUAL CLR RIBBON,115V

CWS U-BUILD-IT SYSTEM $599

+ $35 SHIPPING MPU, CRT TERMINAL £ AUDIO CASSETTE AT A ROCK BOTTOM PRICE !

SC/MP MICROCOMPUTER; 256 x 8 RAM, 512 x 8 ROM GREEN PHOSPHOR VIDEO MONITOR; 12" RASTER SCAN SWTPC 102^4; 32 CHAR, x 16 LNS, ASCII KEYBOARD SWTPC AC-30 AUDIO CASSETTE INTERFACE *OTHER PACKAGE PLANS - SEND FOR OUR CATALOG

TO ORDER EQUIPMENT

1.ENCLOSE CHECK FOR FULL PRICE PLUS SHIPPING CHARGES (KITS - ADD $5 IF UNDER $100; $10 IF OVER) (FOREIGN RATES HIGHER)

BANKAMERICARD £ MASTERCHARGE ACCEPTED SEND CARD NUMBER, EXPIRATION DATE, INTERBANK ff

2.CLEARLY IDENTIFY SHIPPING ADDRESS

3.DESCRIBE ITEM BY MODEL NUMBER

ALL MERCHANDISE WARRANTEED

A MUST FOR PERSONAL COMPUTING

SEND $1 FOR OUR CATALOG THE ONLY ONE OF ITS KIND! FULL DETAILS ON OUR COMPLETE LINE OF KITS £ UNITS, REVIEWS OF OVER 150 BOOKS, LISTS OF NEW £ SURPLUS PARTS £ "ALL ABOUT HOBBY MICROCOMPUTERS" - AN INTRODUCTION TO PERSONAL COMPUTING. Circle 138 on inquiry card.

VIDEO MONITOR

•-25 SHIPPING

STANDARD IV P TO P COMPOSITE VIDEO INPUT, 16MHz BAND WIDTH, RASTER SCAN 12x12x13" WITH POWER SUPPLY, VIDEO AMPLIFIER, DRIVING CIRCUITRY VENTILATION MUFFIN FANS, 7x9" HORIZONTAL VIEWING CAPABLE OF 2k LINES x 80 CHAR., ANTIGLARE £•" ETCHED GRADIENT DENSITY FACE PLATE, P39 GREEN PHOSPHOR, ON/OFF BRIGHTNESS CONTROLS, 115Vac, 60 W ... TRULY A COMMERCIAL UNIT BUILT TO WORK IN A DEMANDING ENVIRONMENT.

DATAPOINT 3300-200

THERMAL PRINTER $375+525 SHIPPING

PARALLEL PRINTER WITH ADDITIONAL CIRCUIT

BOARDS TO PROVIDE SERIAL INTERFACE, PRINTS

UP TO 30 CPS, lOOVac PS USES WIDELY AVAILABLE

NCR PAPER, 96 CH, ASCII, 80 COL, CRT COMPATIBLE 5x7

DOT MATRIX, SOLID STATE WITH LESS THAN 25 MOVING PARTS.

DATAPOINT 2200-200 $3?5smSi!5

CONSOLE PRINTER

BOTH UN I VAC £ SINGER BUILT THESE PRINTER MECHANISMS WHICH OPERATE AT 30 CPS FROM A ROTATING WHEEL. 65 CHAR. USES STANDARD FORM FEED PAPER, PINWHEEt IS INTERCHANGEABLE. UNIVAE 0769-06 PRINTER MECHANISM ONLY INCLUDES MOTOR/PRINT WHEEL ... $195 +SHIPPING 75 II

KITS*

HIGHLIGHTS FROM OUR

WIDE SELECTION

IMSAI 8080 MICROKITS

8080A KIT 5 SLOT $699

8080A KIT 22 SLOT 751

4K MEMORY KIT 139

PIC-S PRIORITY INTERRUPT 125

SERIAL I/O KIT 125

PROM 4-512 KIT 165

UCRI-1 KIT 59

CABLE A KIT 18

STANDARD INPUT/OUT INTERFACES,

1ANUALS, SOCKET SETS

VIKING 100 PIN, HEAVY OUTY $3-00

SWTPC 6800 $395

►512 BYTES of ROM •RS232 or 20 mA

•SERIAL INTERFACE *4K of RAM

4K MEMORY S100

MPA 145 MPB 40

MPO 35

MPF 30

MPMjc 35

MPL 35

MPAb T4.50

EACH.

.9.50

MPC 40

MPE 14.95

MPM 65

MPP 35

MPS 35

MPMb 14.50

MPCb, MPSb, MPLb,

CONNECTOR SETS MPU/MEM 2.50

CONNECTOR SETS INTERFACE 2

4KBA 5 GT61 99

AC30 AUD 10 INTERFACE 79-50

PP40 PRINTER 250

CT 1024 TERMINAL KIT 275

CTP 15-50 CTS 39.95

ALL SWTPC UNITS ARE KITS SHOKE SIGNAL BROADCAST 16K RAM 595

LEARSIEGLER ADM-3A

W/ Cursor Control

•12" CRT

•24 LN X 80 CHAR •RS232 t„

\ T>— «20 mA LOOP *O/0

SCAMP KIT S99

FROM NATIONAL SEMICONDUCTOR KEYBOARD KIT 95

• BUILT UNITS • ICOM MICROFLOPPIES

PLUG COMPATIBLE FOR: *,nnc

S100 BUS...FD24I1 IplUyO

SINGLE DRIVE FD2402 S 649

ICOM FLOPPIES:

FF36-I FRUGAL 51 195

FF36-2 DUAL FRUGAL 1095

360-58 BLTllNTFC 8080.. 300 S171 POWER SUPPLY ... 250

FD360-2-5DUAL SYSTEM... 3000

KIM-16502 S 245

KIM-2 4K 179

KIM-3 8K 289

MANUALS PACKAGE 15

TARBELL AUDIO CASSETTE KIT 120

INTERSIL INTERCEPT JR. $281

12K RAM 145

ROM/PROM BOARD 74.65

YOU ADD MEMORY CHIPS

SERIAL I/O 81.50

AUDIO V I SUAL BOARD 125

SPECIAL OFFER 100 STEPS

PROGRAMMABLE SCIENTIST

#4525

• RPN logic with "built-in" hierarchy for increased accuracy and speed in calculating sequences involving arithmetic, trigonometric, logarithmic, power or exponential functions. • A rollable 4-level stack lets you review or use intermediate solutions. • Eightdigit plus 2-digit exponent LED display with fullfloating decimal system. • Scientific notation for increased mathematical capacity. • Sine, cosine, tangent and inverse trigonometric functions. • Common and natural logarithms and antilogarithms.

• Instant automatic calculation of powers and roots.

• Single-key square root calculations. • Single-key Pi entry. • Separate storage memory. Square, square root and reciprocal calculations. Change sign and register exchange keys. • MOS/LSI solid-state circuitry. • Includes 3 AA rechargable NiCad batteries.

MANUFACTURED IN USA BY

BY NATIONAL SEMICONDUCTOR

ONE YEAR UNLIMITED WARRANTY

10 DAYS MONEY BACK GUARANTEE

Model #4525 ( -Model #4520 (

»38.95 _ > 28.88 _ _AC Charger@4.95

Case(s)@2.95

Calc. Stand®2.50

Cal. Res. add 6% tax

Total _

ALSO AVAILABLE

MODEL #4520 With the same features as above but without programming capability @ $28.88. Accessories same price as above. Cirde y 57 on inquiry card.

SAME DAY SERVICE IF PAID BY CASHIER'S CHECK, MONEY ORDER OR CHARGE CARD.

ASC II KEYBOARD NEW LOOK IMPROVED DESIGN

.... ■■■::.

3 3 « 8 9

W » W T Y a T w

W W V KF T T f f W *

w w W v 9 n W

$58.00

This 63 key ASC II Encoded Keyboard kit was designed and manufactured by Electronics Warehouse Inc. Features: Single 5 volt DC. 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. 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), return. All 128 ASC 11 characters are generated.

Kit includes: 63 key keyboard, P.C. board, all required components and assembly manual with ASC II code list.

Optional: Parity bit-add 50$ • Enclosure-$25.00 • Serial output-add $2.00* 18 Pin edge connector - $2.00 • Sockets - $4.00 Note: If you already have this teletype keyboard you can have the kit without it for $39.00. Dealer inquiries invited.

FROM CONCORD

THE FIRST FULL FEATURE LSI DMM KIT

INTRODUCTORY PRICE:

77

Reg. Suggested Retail: $149.00

AUTO RANGING

AUTO POLARITY

AUTO ZERO

3 Large Digits (1/2") Rechargable

77

MEASUREMENT RANGES:

Voltage'(AC & DC) 1 MV- 1000V Current (AC & DC) 10JJA- 1A RESISTANCE 1 Q - 10 MQ Basic DC Accuracy, better than 0 1% ± 1 Digit

Power 4 AA batteries (Rechargable batteries optional)

NICAD BATTERIES: $6.00 • AC CHARGER: $4.95 • ENCLOSURE: $12.95 • TEST LEADS: $1.95 • SHUNT KIT FOR 3 CURRENT RANGES: $4.75 • SOCKETS $2.50

ORDERING INFORMATION

SHIPPING AND HANDLING - $3.00 + 50<? Insurance California residents add 6% sales tax

ELECTRONICS WAREHOUSE Inc.

1603 AVIATION BLVD. Dept. B REDONDO BEACH, CA. 90278

TEL. (213)376-8005 WRITE FOR FREE CATALOG

You are invited to visit our store at the above address

World's Lowest IC Prices

MEMORIES

Rams

745200

2102

2102-1

Proms

82S23/S123 82S129

SPECIAL PRICES

2.95

1.50*

1.70

1.95 * 3.25

Others

TMS 3409

2.00

MM 5013

1.50

NS 5260

1.50

NS8619

2.00

MH 0026H

3.25

TTL

7400

.12*

7402

.14

7403

.14 *

7404

.16 *

7407

.20

7410

•12*

7416

.25

7420

.12 *

7427

.25

7437

.20

7438

.20 *

7440

.12*

7441

.65 *

7445

.60

7447

.75

7450

.14

7451

.14 *

7473

.28

7474

.28

7475

.40

7480

.40 *

7483

.68

7486

.28

7490

.45

7493

.50

7495

.49

74107

.29

74109

74116

74123

74141

74145

74150

74151

74152

74155

74157

74160

74161

74163

74165

74173

74174

74175

74177

74180

74181

74191

74192

74193

74194

74195

74198

9602

9300

9312

SCHOTTKY

74S01

74S02

74S37

74S38

74S85

74S113

74S138

74S139

74S140

74S151

74S153

74S172

.30 1.50

.45 *

.80 *

.75

.60 *

.60

.90

.60

.60

.75

.75 *

.75 *

.80 1.25

.75

.75 #

.70

.80 1.50

.85

.70 #

.70 *

.85

.68 1.25

.50 *

.75

.70

.25

.25

.40

.60

2.00

.80

1.50

1.50

.50

2.00

2.50

4.50

74S174 74S175 74S181 74S197 74S257

HIGHSPEED

74H00

74H01

74H04

74H10

74H11

74H40

74H51

74H52

74H74

74H103

74H106

LOW POWER

SCHOTTKY

74LS00

74LS02

74LS08

74LS10

74LS27

74LS73

74LS75

74LS151

74LS153

74LS157

74LS161

74LS163

74LS164

74LS174

74LS175

74LS193

74LS221

74LS251

74LS253

74LS257

74LS258

2.05 2.05 2.95 2.20 1.50

.20 .20 .20 .20 .20 .20 .20 .20 .40 .50 .50

.29

.29

.29

.29

.30

.45

.65 1.10 1.10 1.10 1.25* 1.50 1.50 1.10 * 1.50 1.50 1.25 * 1.50 1.50 1.50 1.50

CMOS

4001

4002

4006

4007

4008

4011

4012

4013

4015

4016

4019

4020

4021

4023

4025

4027

4028

4030

4040

4042

4043

4044

4049

4050

4066

4068

4071

4073

4075

4516

4528

LINEARS

OM8820/30

NE536T

NE555V

NE556A

1456 V

1458V

566V

567V

540L

.16

.16

.90

.16

.70

.16 *

.16 *

•30 *

.80

.35 *

.70

.90

.95

.16 *

.20 *

.40

.60

.35

.95

.60

.75

.70

.35 *

.35 *

.65

.35

.16

.16

.16

.85

.75

1.75 2.75

.43

.90

.75

.52 1.25 1.35 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.

€LTRON

Free catalog—Just send us your name and address Circle 102 on inquiry card.

C.O.D. Orders: Phone (day or night) 408/354-1448

PO BOX 2542 B Sunnyvale, CA 94087

A New Generation of Computer Kits

When we started catering to the computer hobbyist back in 73, some people thought we were going to go out of business; now it's 1977, and because of the popularity of our computer kits we are again expanding the line. Note particularly the new 8K ECONORAM lllm: first the price, which is extremely low; next the unique configuration that extends its usefulness. Our Motherboard represents another tremendous value made possible because of our large parts business. We're also distributing products from both George Morrow and Mullen Computer Boards---we think they are exceptionally good and represent cost effectiveness equal to our line of kits.

From parts to peripherals, we are your one-stop, mail order computer store.

8Kx8 ECONORAM II

Uniquely configured as 2 separate 4Kx 8 blocks (with fully independent protect and address decoding to increase flexibility), our ECONORAM II"™ features full buffering, guaranteed 450 ns or faster speed (use 1 wait state with Z-80; necessary logic included on board), plated-through, double-sided epoxy glass board with gold edge fingers, low profile sockets, on board regulation, and 3 state outputs that can drive the Altair/IMSAI S-100 buss or any bidirectional buss.

We use proven, reliable technology, like static 2102L-1 low power IK RAMs, and low power Schottky ICs which keep current consumption to an ab solute minimum. And there's more...to see for yourself, send $1 to cover costs and we'll send you our ECONORAM HTM Logic Print/Document ion.

%C per bitl

$163.84

4Kx8 Econoram"

If you want the best combination of value and economy, look at ECONORAM™. We don't just claim low power: we guarantee current consumption under 750 mA, with the typical board falling between 600 and 650 mA. Fully compatible with the S-100 buss; full buffering gives clean and unambiguous data transfer; and speed is guaranteed 450 ns or faster. We didn't cut corners on the kit either, with low profile sockets, dipswitch address selector, low power Schottky Support ICs, and a high quality circuit board.

Also available assembled, tested, warranted for one year for $130.

and

$100

MOTHERBOARD $80

Use with the IMSAI microcomputer as an add-on with room for 10 peripherals, or for starting an 11 slot stand-alone system. Comes with 10 edge connectors—lots of places would charge you the cost of our Motherboard for these alone. Active, regulated terminations, included on board, minimize the crosstalk, noise, overshoot, and ringing you can find on improperly terminated busses. And of course, we use an epoxy glass board, with bypass caps and heavy power traces included. Get yourself one of these, a Morrow Sigma-100 Front Panel, some ECONORAM II boards and a power supply, and you're well on your way to a powerful system at a really good price.

Small System Power Supply

Finally, a quality, cost-effective supply for small systems. Gives you a full 4 Amps at 5 Volts, with crowbar overvoltage protection, along with half an Amp of +12 and half an Amp of -12...and an additional 10 mA supply, adjustable over 5 to 10V for biasing required by some CPUs. Although intended to be used with computer systems, it's also a dandy little bench supply for digital experiments.

$45

Morrow SigmalOO Front Panel

At last, a machine where you can examine, alter, and monitor every function of the CPU/front panel and its operation in real time. Edit or modify your program while you run it...think of what this means in terms of extra productivity, reduced frustration, and greater speed.

The SIGMA - 100 Minicomputer CPU Board (with integral front panel) gives you this control...run your program, or step it at any rate from 1 to 1000 steps per minute. You can stop the machine to examine and alter processor

registers, memory locations, and I/O devices there is

special firmware to keep the CPU from going to sleep. You can also monitor all of the above during execution of a program as well. Everything is front panel controlled by your fingertips through a 12 pad keyboard; octal data reads out on 7 segment readouts. DOCUMENTATION: $5.

Mullen Extender Board $ 35

Almost every S-100 buss computer owneT will at some point need an extender board, and there are many good reasons to choose this one. Like the integral logic probe... the specially designed edge connector that allows use of clip lead probing and identifies pin numbers...the jumper links that allow easy current measurement...the nonskid probe . . . the quality board . . . and the instructions, which are clear and very complete. Save yourself troubleshooting time ind trouble with this useful peripheral.

$250

Mullen Board

Morrow I/O Board

If you think I/O boards don't offer enough features...we agree. This one handles 3 cassette machines, a modem or teletype, and video terminal or other RS-232 device...and includes a general purpose 8 bit port for an ASCII keyboard, tape reader, or the like. Contains h Kbyte of onboard RAM and h Kbyte of onboard ROM to give this peripheral the required smarts; data buffers handle the interface between the 1/0 board and your S-100 buss micro or minicomputer. Want to know more of this versatile board? Our complete documentation, many pages of useful information, is available for $5.

Opto-isolator/Relay

^F I §^y 8 fast reed relays respond to an 8 bit ^m ||^ word: feed the relay associated with its bit a "1" and it closes, give it a "0" and it opens. Also, 8 opto-isolators accept an 8 bit word from the outside world and send it to your computer for handshaking or further control purposes. Use it when you need a general purpose 1/0 switching gizmo - model railroad, security systems, audio switching, and so on.

$120

Vector 8800V Prototype Board $19.95

Same size as typical Altair card, but useful for any prototyping work. Accepts virtually any size IC package, has a power and ground plane, room for 4 regulators (with 1 heat sink provided)... implement your own memory boards, I/O boards, and other circuits.

PAPT<* FND359.4" r*Mvl«J READOUT «

Common cathode, 7 ^^^3

u

segment display. CAtI fifty cents EACH!

yrai-TX 10/ $4.00

■m 100/$35.00

actual size

FND503/510 .5" READOUTS.-,

FND510 Com anode / / FND503 Com cathode .■""?

95C each 1 I

10/$8.50

100 PIN EDGE CONNECTORS

actual size

S-100-140ST: NEW! Soldertail type, fits .140" spacing--same as Altair motherboards.

S-100WW: 3 level, gold plated wrap posts; .250" pin spacing fits IMSAI motherboards.

S-100ST: Same as above but soldertail.

$6 each

5/$27.50

$5 each 5/$22.00

TERMS: Add 50f to orders under $10. Please allow 5% for shipping; any excess refunded. Street address MUST be included for COD orders. Place BankAmericard',, and Mastercharge*'' orders ($15 minimum) by calling (415) 562-0636, 24 hours. California residents please add sales tax.

BILL GODBOUT ELECTRONICS BOX 2355, OAKLAND AIRPORT, CA 94614

Circle 9 on inquiry card.

FREE FLYER: Give us the word and we'll send you a copy of our flyer, which describes our complete line of products in greater detail. In addition to our computer oriented line, we carry many items relating to electronic music as well as a complete line of semiconductors and components.

MICROCOMPUTER

1702A 1 70ZAI.

2704

2708

S203AO.

5204A()

IIM76I I -S

7422B7

74^387

82223B

B2JI129R

r 7.00 30,00 35.00 '.1. 00

WAVEFORM CRNF.RATOR

80J8 VCO

MC4024 Dual VCO

566 VCO-Funct

CIIAHACT1-H CliKJ.KATORS

CM2140 yppe CM34 21 rsin

b hit

MMSOb 100

2S09K 50 .

2S18B 32 ;

2533V [02'

TMS3002 50 * 2 Bit

TMS 3112 3 2 x 6 Bit

MM5058 1024 x b Bi

.0 Mil 1.5 Mi: 1.0 Ml: 2.0 Ml: 1.5 Ml:

MISC OTHER COMPONEN

Dual Low Cost MOS C 5 Mil; Du.il SKIS Cloc Bi-Dircctional One Quad Bus Drivcr/Rcc Ilex Buffc

Tr

State Ik

lnvi

MM-532) MM-536' DM-81 31 DM-813

dm-sss:

DM-B83:

DM-88 3!

en flit Comp;t Hit Compara

Input AM) N,

Improved 8 Super 8008 CPU (3880} CPU (3SSO)

3853 3881 3882

8224 8228 8251 B2SS

8257

.ge Uni ■ Inter

fDtitro

8-Bit I/O Por

STATIC RAMS

334 1A 64 x 4

JADE CO. OFFERS

THE ITEMS SHOWN IN THIS AD FOR IMMEDIATE SHIPMENT FROM STOCK. IN ADDITION WE STOCK OVER 4,000 OTHER ITEMS. INCLUDING:

1. All Standard, Hi-Speed, Low Power, Schottky TTL Product

2. All Linear Devices

3. Transistors—Diodes

4. Clock Kits & Modules

5. Vectors & AP Products

6. Resistors-Capacitors

7. Video Games & Chips

8. PROM Setters [E-Prom]

9. Wire & Wire Wrap Tools

SPECIAL OF THE MONTH

2708 E-PROM Price $35.00 ea.

master charge

Digital Clock Module

-dtell 0.5 dlspla: ransformcr G »«H<

-p—*_

•

ast'skt _L

is Di yi

; s o

LOW SF.T *e ■ i Display o|

MA 1003 $24.95

FEATURES

• MM 5.Mb 1

L

•Needs on

12 V AC l

20C

•Blanking

"AM I'M Op

*S'J mniLHi

t im

er

$12. 95

TIME BASE CHIP

CLOCK CHIPS

CONNECTORS

Dual

.ISO UN .ISO h M

Cold

. ISti Solde

r Cold

Dual

.1:5 Soldi

1 Cold

Mo In femu

. 125 Soldi

Down Ears'

type w/e<

r Cold solder)

Ml [IM

M TURF:

£■

(2 5 -p1 (Ma 1e]

le f 25P £ 2S-S) <>.S»

y

74LS00

.40 .40 .40

.SO .40 .40

7 4 I.S00 7 4I.S0 2 74LS03 74LS04 74L5Q5 74LS08 74LS10 74 LSI 1 74L512 74LS20 74LS21 74LS30 74LS32 .40

7JLS37 .^0

74LS42 .90

74LS5I .40

74LS73 .60

74LS74 .65

74LS76 .60

7 41.S78 .80

74LS8S 2.00

74LS86 .55

74LS95 2.00 74LS107 .SS

74LSI09 .60 74LS112 .60

7 4 LSI 13 .60 74LS122 .60 74LS13!) 1.30 74I.S1S1 1 .SO .60

74 LSI 5 3 741.51 SS 74LS157 7 4LS161 74LS169 74LS174 74LS17S 74LS191 74 LSI 92 74LS193 74LS196 74 LS248 741.S251 7 41..S266 74LS363 74LS367 74LS3M 74LS386

1 .60

CMOS

11111 Dual i Input niih 1 m; i'iu,)i 1 Input wr 1

nu.id 2 Input Dull i input Triple J Inpi

i I! Type Register

iput NOR Catr

I 2 Input AND Gal

2.00

.75

Electronics for the Hobbiest and Experimenter

5351 WEST 144th STREET LAWNDALE, CALIFORNIA 90260 (213) 679-3313 Circle 215 on inquiry card,

SOCKETS

1 C SOCKETS

Pins

Descript ion

6

Lo Pro Tin

IB

14

Transistor IC-10) Lo Pro' Tin Wire Wrap Gold

Gold

16

Lo Pro Tin

16

Standard PC Ti

n

16 18

Wire Wrap Tin Lo Pro Tin

22 22

Lo Pro Open Fram Wire Wrao Tin

e Tin

24

Standard P c Ti

24

Wire Wrap Tin

28

Lo Pro (Open I'ram

0 T

28

Standard P C Ti

-^CRYSTALS [gt

Part#

CY1A CY2A CY3A CY7A CY1ZA CY1« CY19A CY22A CY30B

THESE FREQUENCIES CNLY

Frequency

1.000 MHz 2.000 MHi 4.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

HCIBiU

HC18.U

HCIB.'U

HC18U

HC18/U

HC18'U

HC18/U

Trice J5.95 $5.95 S4.95 S4.95 S4.95 S4.95 S4.95 S4.95 S4.95

XH-220BKB Kit $27.00 Special XR-2206KA Kil $17.00

EXAR

WAVEFORM

GENERATORS

XR-205 $8.40

XR-22D6CP 4.49

XR-2207CP 3.B5

STEREO OECODtnS XR-1310CP S3.2B

XR-13I0EP 3.20

XR-IBOOP 3.20

XR-2557 2.99

TIMERS

XR-555CP S 39

XR-320P 1.55

XR-556CP 1 B5

XR-2556CP 320

XR-2240CP 3.25 PHASE LOCKED LOOPS

XR-210 5.20

XR-215 660

XR-567CP 1 95

XR-567CT 1.70

CONNECTORS

PRINTED CIRCUIT EDGE-CARD

.156 Spacing-Tin-Double Read-Out Bifurcated Contacts — Fits .054 to .070 P.C. Cards

15/30 PINS (Solder Eyelet) $1.95

18/36 PINS (Solder Eyelet) $2.49

22/44 PINS (Solder Eyelet) S2.95

50/100 (.100 Spacing) PINS (Solder Eyelet) S6.95

25 PIN-D SUBMINATURE

DB25P PLUG $3.25

DR25S SOCKET $4.95

MICROPROCESSOR COMPONENTS

8212 8214 8216 8224

CPU

8 Bit Input/Output Priority Interrupt Control Bi-Directiooal Bus Driver Clock Generator/Driver

CDP1802 -wittl user manual

CPU'S

iucer 800B

S19.95 4.95 15.95 6.95 10.95 39.95

3Vz DIGIT DVM KIT

This 0-2 VDC .05 per cent digital voltmeter features the Motorola 3V? digit DVM chip set. It 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 tils into the same case as the0-2V DVM allowing 117 VAC operation.

A. 0-2V DVM with Case $49.95

B. 5V Power Supply $14.95

VECTOR WIRING PENCIL

Vector Wiring Pencil P!73 consists of a nanci held leaiherwejghl (under one ounce) tool which is used lo guide ana wraoinsul.iieU wire led olf a seit-container! replaceable hootjin omo component leads Dt terminals installed on pie-punched P Pattern

VectorOnrrt Connections between l*w u ratified ww and camiwneni lends pads nr terminals are nv.au By syidsuriy Compi<;|u ■.-,-,Hi 250 FT ol

reflwup SPECIAL S7.95

REPLACEMENT WIRE — BOBBINS FOR WIRING PENCIL W36-3-A-Pkg. 3 250 ft. 36 AWG GREEN $2.40

W36-3-B-Pkg 3 25G It 36 AWG RED $2.40

W36-3-C-Pkg. 3 250 11 36 AWG CLEAR $2.40

W36-3-n-Pkg 3 250 tl 36 AWG BLUE $2.40

1/16 VECTOR BOARD

Part No WP44 Q62XXXP 169P-M 02XXXP 64P4J 062 BJP44 062 169P4J 062 169PS.1 062 169P44 062C1

**

HEAT SINKS

u

205-CB Beryllium Copper Heal Sink With Black Fnnsh tor TO-5 S .25

291-.36H Aluminum Heal Sink for TO-220 Transistors & Regulators $ .25 680-.75A Black Anofeed Aiuminuni $1.60

HEXADECIMAL ENCODER 19-KEY PAD

^jelflll a *ABCDEF

■Q|DE hat .

^H • Optional Key (Period)

*S Bl •

$10.95 each

$19.95

HD0165 16 LINE TD FOUR BIT PARALLEL KEYBOARD ENCODER

JOYSTICK

These joysticks feature four * pofentiometers, fhat vary resistance proportional to the angle of the slick. Sturdy metal construction with plastics components only at the movable join!. Perfect for electronic games and instrumentation.

Special *5K Pots $4.95

*100K Pots $7.95

2519 2524 2525 2527 2529 2532 2533

Hex JO 6IT

512 Dynamic 1024 Dynamic Dual 255 BIT Dual 512 BIT Quad 60 BIT 102-i Sialic Hfo 15 x 4 Reg

8228 System Controlle MC6800L 8 Bit MPU MC6820L Periph, Interface Adapter MC6810AP1 128 x 8 Static RAM MC6830L7 1024 x 8 Bit ROM Z80 CPU

Sialic

Dynarnii Static Sialic Sialic

Bus Driver $10.95 35.00 15.00 6.00 18.00 49.95

81H

8599 91LCI2 74200 93421

[r.ir-.b.'u.

Sialic Sialic

Sialic

;:.:•.::.

W02A

5203

S2S23

82S123

74S287

3601

S 9 95 10 95

[27oir 6301-1 6330-1

PROMS

Famos Open C Install!

Static Fasi

Tn-Siiite Bipolar Open Collector Bipolar Tn-State Bipolar

AY - 3-8500-1

MC3061P

MC4016P (74416)

MC14583

MC14562

CD4059

CD407Q

SPECIAL REQUESTED ITEMS

CO450B

CD4515

CO4520

MCM6571

MCM6574

MCM0575

17.50 17.50

MK50240 11C90 DS002GCM TIL308

19.95 3.75 10.50

MC1408L7 LO110/LD111 AY-5-9100 95H90

13.95

PARATRONICS

ALLOW 1 TO 3 WEEKS DELIVERY

Featured on February's Front Cover of Popular Electronics

Logic Analyzer Kit

Analyzes any type of digital system Checks data rates in excess of 8 million words per second ■ Trouble shoot TTL. CMOS. DTL. RTL, Schottky and MOS families Displays 16 logic states up to 8 digits wide See ones and zeros displayed on your CRT, octal or hexadecimal format Tests circuits under actual operating conditions

Easy to assemble — comes with step-by-step construction manual which includes 80 pages on logic analyzer operation

MODEL

100A $189.00/Kit

Some applications are:

— Troubleshooting microprocessor address, instruction, and data tlow

— Examine contents of ROMS

— Tracing operation of control logic

— Checking counter and shift register operation

— Monitoring I/O sequences

— Verifying proper system operations during testing

©Timeband ^ Digital Alarm Clocks

C-oLifJ - Ivory Case

C-5Q0B - Ebony Case

J18J6

. Doze Button . 100°= Solid Siaie . Large Red Led Display [.8" mem

, AM.'PM Indicator

i Seconds display at touch

of button i Power (ailUtB indicator i One year factory warrant

C-B211

Woodgraln Case

519.95

DIGITAL AUTO INSTRUMENT

SEVEN DIFFERENT INSTRUMENTS!

MEETS OR EXCEEDS ORIGINAL AUTOMOTIVE SPECS.

Please specify which one ol trie seven models you want

when ordering - these do not all come m one unit.

Each model must be bought separately.

. SPEEDOMETER* * 0-99 MPH

; OIL PRESSURE , WATER TEMP. '^

FUEL LEVEL 3 Percentage

Low Fuel Indicator

BRIGHT YELLOW ORANGE .3" LED DISPLAY!

Kil includes case, bracket and all componeis — complole Nothing else to buy! 12 Voll NEG GRD. DIMENSIONS: 4Vi x 4 x 2 KIT: S49.95

Add $10.00 for required speed transducer ASSEMBLED: S59.95

DIGITAL STOPWATCH

■ Bnghi 6 Digit LED Display

■ Times to 59 minutes 59 59 seconds

• Cryslal Controlled Time Base

• Three Stopwatches m One

Times Single Event — Spiil & Taylor

■ Size 4.5" x 2.15 x .90" (4ft ounces)

• Oscs 3 Penlite Cells.

Kit - $39.95

Assembled — $49.95

Heavy Duty Carry Case $5.95

Stop Watch Chip Only (7205) $19.95

1-1

BUGBOOK •

Continuing Education Series

I

BUGBOOK I & II - Basic concepts of TTL Logic — over 90

experiments 517.00/set

BOGBOOK lla - Introduces UART — recommended

lor RTTY enthusiast S5.0D/book

BUGBOOK III - Explores 8080 chip — introduces

Mark 80 Microcomputer S15.00/book 555 TIMER APPLICATIONS SOURCEBOOK WITH EXPERIMENTS —over 100 design techniques S6.95/book CMOS-M-DESIGNERS PRIMER AND HANDBOOK a complete CMOS instruction manual £6.00

Introductory Offei - all 6 books iwoiih $49.95

SPECIAL • S42.95

CONTINENTAL SPECIALTIES

PROTO BOARD 6 $15.95

(6" long X 4" wide)

Other CS Praia Boards

PB101 - 5.8" x 4.5" PB102-7"x4.5" PB103 -9" x6"

PB104 -9.5" x 8" PB203 - 9.75 x 6'/; x 2* PB203A - 9.75 x 6'A x 2« 120.00

(includes power supply!

S 19.95 29.95 39.95 59.95 79.95 75.00

Logic Monitor S84.95

loi DTL, HTL, TTL or CMOS Devices

PROTO CLIPS

14 PIN S4.50

16 PIN 4.75

24 PIN 8.50

DESIGN MATES

DM1 - Circuil Designer

54.95 DM2 - Funclion Generator

69.95 DM3 - RC Bridge

59.95

QT PROTO STRIPS

•.Vi.T.iV

:ii!i«

OT type QT-59S OT-59B QT-47S QT-47B QT-35S OT-35B OT-18S QT-125 OT-8S 0T-7S

# holes price

590 12.50

bus strip 2.50

^3i*il».!,:.

Experimenter 300 S 9.95 Experimented 600 $10.95

$5.00 Minimum Older — U.S. Funds Only California Residents — Add 6% Sales Tax

Spec Sheets - 25c — Send 35c Stamp far 1977A Catalog Dealer Discount Available — Request Pricing

1021-A HOWARD AVE., SAN CARLOS, CA. 94070

PHONE ORDERS WELCOME — (415) 592-8097

All Advertised Prices Good Thru June

ELECTRONIC 'PENDULUM' CLOCK

• Swing Pendulum

• .7" Hours and Minutes Display

• 12 or 24 Hour Mode

• Time Set Push Buttons

• Alarm Feature Kit-unfinished $59.95

(case unassembled) Assembled-stained $59.95 (case assembled)

QUARTZ DIGITAL AUTO CLOCK OR ELAPSED TIMER!

Elapsed Timer: Hrs, Mins and Sees

12 or 24 Hr Capacity

Simple Reset - Start Pushbutton

Control

Complete kil includes mounting bracket,

case and all componenis, nothing else to buy. Features MM531-Setup Large. ■! LED's Accuracy Petier than * mm. per mo. internal Battery backup 12 volt non-polar operation

DIMENSIONS ■:

ii 24 HOUR MODE

Kit: $29.95 Assembled: $39.95

CASE ONLY (includes hardware, mounting bracket and bezel) $6.50

JE700 CLOCK

The JE 700 is a low cosi digital clock, but is a very high quality unit The unit tealures a simulated walnui case with dimensions of 6' x24 '«i It utilizes a man?? high brightness readout, and me MM53U dock chip

$17.95

DIGITAL CLOCK KIT — 3% INCH DIGITS

4 DIGIT KIT $49.95 4 DIGIT ASSEMBLED $59.95

6 DIGIT KIT $69.95 6 DIGIT ASSEMBLED $79.95

This clock features big 314" high digits for viewing in offices, auditoriums, etc. Each digit is formed by 31 bright 0.2" LEO'S. The clock operates from 117 VAC, has either 12 or 24 hr. operation. The 6 digit version is 27" x 3%" K^W^ and the 4 digit is 18" x 3VV x (%". Kits come complete with all componenis, case and transformer.

Specify 12 or 24 Hour Whan Ordering

JE803 PROBE

Tfie Logic ProDc is a uriii which is tar me most pan indcspensiDle in trouble shooting logic families TTL. DTL. RTL. CMOS tl derives Ihe power n needs to operate directly oft ol Ihe circuil under

drawing a scant 10 inA max It uses a MAN3 readout to indicale any til the lollowuio status by these symtiols |H) ■ I (LOW) ■ o (PULSE] - P The P(Obe can delect hitjh irwjin'nty pulses I0-I5 MHz

11 Be used al MOS levels or rataal damage

'- _y

$9.95 Per Kit

printed circuit board

PL 5V 1A Supply

This is a standaio TTL power supply using tne wen known LM309K regulator :C to provide a solid i AMP of current at 5 volis. We try to make things ensy lor you Oy providing everything you need in one package including the —'"

""onl» $9.95 Per Kit

^p 7400N TTLj

SN 7-5 CON SN7401N SN7402N SN7403N SN7404N SN74Q5N SN7406N SN7407N SN7408N SN7409N SN7410H SN7411N 5N7412N SN7413N SN7414N SN7-116N SW7417M SN7420N SN7421N 5N7422N SN7423N SN7425N SN7426N SN7427N SN7429N SN7430N SN7432N SN7437N SN743BN SN7439N SN7440N SK7441N SH7442N SN7443N SN7444N SM7445N SN744GN SN7447N SN7448N SN7450N SN7451N SN7453N SN7454N

SN7459A SN7460N SfJ7470N SN7472N SN7473N SN7474N SN7475N' SN7476N' SN7479N SN7480N SN7482N SN7483N SN7485N SN7486N SN7488N SN7489N SN7490N SN7491N SN7492N SN7493N SN7494N SN7495W SN7496N SN7497N SN741O0N SN74107N SN74121N SN74122N SN741Z3N SN74125N SN74126N SN74132N SN74136N SN74141N SN74142N SN74143N SN74144N SM74145N SrJ74147N SM74148N SN74150W SN74151N SN74153N

.50

Ml

SN74154N 1.00

SN74155N .99

SN74156N .99

SN74157N .99

SN74160N 1.25

SN74161N .99

SN74163N .99

SN74164N 1.10

SN74165N 1.10

SN74I66N 1.25

SN74T67N

tiy SN74170N

■39 SN74172N

3-50 SN74173N

2-49 SN74174N

-45 SN74175N

.75 SN74176N

49 SN74177N

.49 SN741B0N

.79 SN74181N

.79 SN74182N

-89 SN741B4N

4.00 SN741B5N

1.00 SN741B6N

-39 5N74187N

-39 SN74188N

-39 SN74190N

•50 SN74191N

.60 SN74192N

■60 SN74193N

1.09 SN74194N

■ 95 SN74I95N

LIS SM74196N

J 00 SN74197N

4.50 SN7419BN

180 SN74199N

115 SN74200N

2.35 SN74279N

2.00 SN74251N

<™ SN74284N

79 SN74285N

89 SN74367N MANY OTHERS AVAILABLE ON REQUEST 20% Discount tor 100 Combined 7<JO0's

25

CD-IOOO CD4D01 CD4002 CD4006 CD40D7 CD40O9 CD4010 CD4D11 CD4012 CD4013

CD4G16 56

C04017 1 35

CD4019 55

CD4020 1 49

CD4022 1.25

CD4023 .25

CD402J 1 50

CD4025 25

CD4027 69

CD402B 1 65

CD4029 2 90

CO4O30 65

"TOP. 80~

LM301H 35

LM301CN .35

LM302H 75

LM304H 1.00

LM305H 95

LM307CN .35

LM308H 1.00

LM308CN 1.00

LM309H 1.10

LM309K .99

LM310CN 1.15

LM311H .90

LM311N .90

LM318CN 1.50

LM319N 130

LM320K-5 1.35

LM320K-5 2 135

LM320K-12 1.35

LM320K-15 1.35

LM320T-5 1.75

LM320T-5.2 1.75

LM320T-8 1.75

LM320M2 1.75

LM320T-15 1.75

LM320T-18 1.75

LM320T-24 1.75

LM323K-5 9.95

LM324N 1.80

LM339N 1.70

LM340K-5 1.95

LM340K-6 1.95

LM340K-8 1.95

LM340K-12 1.95

LM340K-15 1.95

LM34QK-18 1.95

LM340K-24 1.95

LM340T-5 1.75

LM340T-6 1.75

LM340T-8 175

LM340T-12 1.75

LM340T-15 1.75

LM340T-1B 1.75

LM340T-24 1.75

LM350N 1 00

LM351CN 65

CMOS

C04035

CD4040

CD4042

CD4044

CD4046

CD4047

CD4049

CD4050

CDJ05!

CD4053

CD4060

CD4066

CD4069

CD4071

CD4081

CD4511

CD4518

MCI. 1566

74C00N

74C02N

74C04N

74C10N

74C20N

74C30N

74C42N

74C73N

74C74

74C90N

74C95N

74C107N

74C151

74C15J

74C157

74C160

74C161

74C163

74C164

74C173

74C193

74C195

MC4044

MCK016

LINEAR

78MG

LM370N

LM373N

LM377N

LM380N

LM380CH

LM381N

LM382N

NE501K

NE510A

NE531H

NE536T

NE540L

NE550N

NE555V

NE560B

NE561B

NE5G2B

NE565H

NE565N

NE5G6CN

NE567H

NE567V

LM703CN

LM709H

LM709N

LM710N

LM711N

LM723H

LM723H

LM733N

LM739N

LM741CH

LM74ICN

LM741-14N

LM747H

LM747N

LM748H

LM748N

LM1303N

LM1304N

LM1305N

LM1307N

LM131QN

LM1351N 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

MC5558V 1.0

LM7525N .9

LM7535N 1.2

8038B 49

LM75450 .4

75451CN .3

75452CN .3

75453CN .3

75454CN .3

75491CN .7

75492CN .8

75494CN .8

RCA LINEAR

CA3013 2.1

CA3023 2-5

CA3035 2.4

CA3039 1.3

CA3046 1.3

CA3059 3.2

CA3060 3.2

CA3080 .8

CA30B1 2.0

CA3082 2.0

CA30B3 1.6

CA3086 .8

CA30S9 3.7

CA3091 10.2

CA3102 21

CA3123 2.1

CA3130 1.3

CAS 140 1.2

CA3600 1.7

RC4194 5.9

RC4195 3.2

74LS00

74LS02 74LS03 74LS04 74LS05 74LS08 74LS10 74LS13 74LS14 74L320 74LS26 74LS27 74LS28 74LS30 74LS32 74LS40 74LS51 74LS55 74LS73

174LS00 TTL"

74LS74

74LS75

74LS76

74LS83

74LS85

74LS86

74LS90

74LS92

74L593

74LSD5

74LS96

74LS107

74LS1OT

74LS112

74LS132

74LS13G

74LS138

1 89

74 LSI 39 iLSISI

74LS153 74LS157 74LS162 74LS163 74LS164 74LS175 74LS1B1 74LS190 74LS191 74LS192 74LS193 74LS194 74LS195 74LS257 74LS260 74LS279 74LS670

CLOCK CHIPS

MM53Q9 6 Digit, BCD Outputs, Reset PIN.

MM5311 6 Digit, BCD Outputs, 12 or 24 Hour

MM5312 4 Digit. BCD Outputs, 1 PPS Output

MM5314 6 Digit, 12 or 24 Hour. 50 or 60 Hi

MM5316 4 Digit, Alarm, 1 PPS Output

MM531B Video Clcck Chip. For Use With [MM5841

CT7001 6 Digit. Calendar. Alarm. 12 or 24 Houi

5.95

of^TA HANDBOOKS

\4 Descfioiion of 5400/7400 ICS S2.95

..l-OUt & Description of 4000 Series ICS S2.95

•in oui a Functional Doscripiion S2.95

ALL THREE HANDBOOKS S6.95

T201 Black Bracelet S19.95

1

T237 While w/bracelel S29.95 T236 Yellow w/bracelel S34.95

Timcband 'hymmm/w — Watches —

Men's & Ladies

• Solid State

• Displays hour, minute, second, month & day

• Snap-out battery replacement

• Free set of replacement batteries

• Choose LED or LCD styles

• One year factory warranty

TC441 White w/slrap S29.95 TC44D Yellow w/Sttap S34.95

T311 While w/slrap S34.95 T310 Yellow w/strap S39.95

XC209 XC209 XC209 XC209

XC22 XC22 XC22 XC22 SSL-22

Yellow .200" dia

DISCRETE LEDS

10/S1 4.-S1

.200" dia.

XC526

Reel

XC526

Green

XC526

Yellow

XC526

Orange

XC526

Clear

SPECIAL • — XC556 Red 100/SB.00

DISPLAY LEDS

XC55B Red

XC556 Green

XC556 Yellow

XC556 Orange

XC556 Clear

1000/S60.00

Yellow 4 S

Orange 4.;$

.005" dia. MV50 - Red - 6/S

INERA-HEI) I.ED I Id" x ft" % 1/16" Flal 5/SI.QOl

— SPECIAL *

\MMlk, OL33B

TYPE

MAN 1 MAN 2 MAN 3 MAN 4 MAN 7 MAN 7G MAN 7Y MAN 52 MAN 64 MAN 74 MAN 82 MAN 84 MAM WM

POLARITY

Common Anode 5 x 7 Dot Main-; Common Cathode Common Cattiods Common Anode Common Anode-gran Common Anodc-yellDw Common Anode-green Common Anode-red Common Cathode Common Anode-yeiiow Common Calhode-yellow Common Anode -onnrje

300

TYPE

MAN 3640

WAN 4710

DL701

DL704

DL707

MAN 4740

DL741

DL 747

DL750

DL 33B

FND70

FND503

FND507

POLARITY

Common Calhode-oianrje Common Anode-Red C3mnioii Anode-red a Common Calhode Cammon Anode Cimmon Anode-Red Common Anode Cnmmon Anode Common Cathode Common Calhode Common Cathode Common Cathode Common Anode

WIRE WRAP CENTER

HOBBY-WRAP TOOL-BW-630

$34.95 ^

Battery Operated (Size C) Weighs ONLY 11 Ounces Wraps 30 AWG Wire onto Standard DIP Sockets (.025 inch) Complete with built-in bit and sleeve

WIRE-WRAP KIT — WK-2-W WRAP . STRIP . UNWRAP

• Tool for 30 AWG Wire

• Roll of 50 Ft. White or Blue 30 AWG Wire

• 50 pes. each 1". 2", 3" & 4" lengths — pre-stripped wire.

$11.95

St" ATARI GAME BOARDS

BOARD A— 8tt" * 16"

Over 60 each teusable IC's Misc. Transistors, Resistors. Diodes. Caps. Crystals. Switch,

DELUXE BOARD B— life"

Over 100 each reusaole IC Misc. Tranistors. Resistors. Diodes. Caps, Crystals, Switcnes. LEDS

S6.95 ea.

ONLY 500 EA. AVAILABLE

S9.95 ea.

□NLV 500 EA,

AVAILABLE

HP 5082-7300 Multi-Digit Series

Ve" Ht. • Common Calhode • Dip Package 3 to 5 volts @5 mils per segment 7 segment Monolithic • Red Display

2 Digit $ .79

3 Digit .89

4 Digit .99 %$\i% 5 Digit 1.19

14 pin

18 pin

12 pin

16 pin

24 pin

10 pin 14 pin 16 pm 18 pin

IC SOLDERTAIL — LOW PROFILE (TIN) SOCKETS

^SOLDERTAIL STANDARD (TIN)

SOLDERTAIL STANDARD (GOLD)

WIRE WRAP SOCKETS (GOLD) LEVEL #3

?A pin ?.f$ put

J Plastic Push Button Switch

• 18 AWG Solid Wire -5" Long

- .50 (wide) X .60 (high) H-27 Thread

■ 8 AMP @ 14 Voll - 1 AMP <& ■ ID Voll

1-9 10-t)p B8-1 Push On-Pusti Olf .59 .49 BB-2 Normally Open .59 .49

B8-3 Normally Closed .59 .49

CUPLITE 8/S1.49

LED MOUNTING SYSTEM use with XC556 LEDS

Specify Colors — Red - Greer - Amoer - Yellow

MINATURE TOGGLE SWITCH

JMT-221 DPDT on/ofl/on $1.95

JMT-223 DPDT on/none/on $1.75

JMT-121 SPOT on/off/on $1.50

JMT-123 SPDT on/none/on $1.25

1

DIP SWITCHES

SPST Slide Action

w206-J i B pin dipl 4 switch onil S1.75 e

#206-7 (14 pin dip) 7 switch unit S1.95 e

#206-8 (16 pin dip) B swilch unit SZ.25 e

50 PCS. RESISTOR ASSORTMENTS $1.75 PER ASST.

12 OHM 33 OHM

82 OHM

OHM IB OHM 22 OHM 39 OHM 47 OHM 5G OHM 00 OHM 120 OHM 150 OHM

180 OHM 220 OHM 270 OHM 330 OHM 390 OHM 470 OHM 560 OHM 6B0 OHM 820 OHM IK

220K

560K 1 5M

1/4 WATT 5% 50 PCS.

1/4 WATT 5% 50 PCS.

1/4 WATT 5% 50 PCS.

1/4 WATT 5% 50 PCS.

1/4 WATT 5% 5DPCS.

1/4 WATT 5% 50 PCS.

1/4 WATT 5% SI1PCS.

ASST. 8R Includes Resistor Assortments 1 -7 (350 PCS.) $10.95 6a.

SS.00 Minimum Order — U.S. Funds Only California Residents — Add 6% Sales Tax

Spec Sheets - 25c — Send 35c Stamp lor 1977A Catalog Dealer Discount Available — Request Pricing

1021 -A HOWARD AVE.. SAN CARLOS, CA. 94070

PHONE ORDERS WELCOME — (415) 592-8097

All Advertised Prices Gnod Thru June

WIRE WRAP TOOL WSU-30

WRAP . STRIP . UNWRAP-S5.95

WIRE WRAP WIRE — 30 AWG

25ft.min.S1.25 50ft.S1.95 10011. $2.95 1000ft. S15.00 SPECIFY COLOR — White - Yellow - Red - Green - Blue - Black

CUTTER CRIMPER TOOL (CS-8)

• Plier Nose (serrated-jaw)

• Scissors Action Cutting

. 6 Bolt Cutlers (4-40. 5-40, 6-32. 8-32, 10-32, 10-24)

• Crimp Stations (7mm Auto — 22-20 to 12-XO elect.)

• "Up-Front" Wire Cutting

• Scissors Action Stripping (No. 22-20 to No. 10)

• Crimp Stations — insulated (2w-20 to 12-10 elect.) A

Actual Size - B%" length $8.50

e

Permacel Electrical Tape

%"(wide)X66ft.{long) • Alt weather • Notimport S1.25 per roll — S9.95 per 10 roll package

TYPE

1N746 1N751A 1N752 1N753 1N754 1IM959 1N965B 1N5232 IN 523-1 1N5235 1N5236 1N456 1N458 1N485A 1NJ001 1N4002 1N4003 1N40Q4

ZENERS

VOLTS W

3.3 400mm

5.1 400m 5.G 400m G.2 400m 6.8 400m

8.2 400m 15 400m 5.6 500m 6.2 500m 6.8 500m 7.5 500m

■ DIODES - RECTIFIERS

PRICE TYPE

4/100 1N4005

50 PIV

100 PIV 200 PIV 400 PIV

AMP AMP AMP

AMP

N40Q6

N4007 N3600 N414B N4154 N4305 N4734 28 1N4735 28 1N4736 28 1N473B 00 1N4742 00 1N4744 00 1N1I83 00 1N1184 00 1N1185 00 1N1I86

VOLTS

600 PIV 1 AMP 800 PIV 1 AMP

1000 PIV 1 AMP JO 200m

10m 10m

50 PIV 35 AMP

100 PIV 35 AMP

150 PIV 35 AMP

200 PIV 35 AMP

400 PIV 35 AMP

SCR AND FW BRIDGE RECTIFIERS

C35D C38M 2N2328 MDA 980-1 MDA 980-3

15A @ 400V 35A @ 200V 1.6A @ 200V 12A@ 50V 12A@ 200V

FW BRIDGE REC. FW BRIDGE REC

TRANSISTORS

MPS Afie

5/S1.00

:j:j?:>i9a

331.00

2N?2?I

-i SI .00

2>;?2??!,

5S1.0C

2N2363

5 SI 00

JN2;lSW

4S1.00

2N3J84

4.SI .00

2N2906A

■l.'SI .00

?h;!9(i;a

5.-S1.00

2N2<)35

5/S1.00

2N3053

Z31.03

?.N1Q55

S 89

Mji :W)f>

si.no

MJf M!/)

SI 25

2N3392

5 SI 00

2N339S

5S100

PN3569 2M3704 2li3705 2N3706 2N3707 2N37I1 2N3724 2N3725 2N3903 2N3904 2H3905 2N3906 2N4013 2N401-1 2N4123

4 '11 00 4S1.00 SSI.00 SSI DO SSI 00 &SI.00 £.'S1.00 S 65 S1.00 &S1.00 ■VS1.00 4'S1.00 4 SI .00 3S1.00

v

PN4P49

PN4250

2N4400

ZN4401

2N4402

2N4403

2NJJ09

2N5085

2N5087

2M503E

2N50B9

2N5129

2NM3B

2N5139

2NS209

2N5951

C106B1SCR

2H5432

CAPACITOR

10 pi

22 pi

47 pi 100 pt 220 pi 470 pi

.001 ml .0022 .0O47mt

,01ml

.1/35V .15/35V 22/35 V .33/35V .47/35V .68/35V 1.0/35V

58 VOLT CERAMIC DISC CAPACITORS

1-9 10-49 50-100 1-9 10-4:

.05 .04 .03 .00 VF 05 .04

.05 .04 .03 .004 VF .05 -04

.05 .04 03 0^|lF .05 .04

.05 .04 .03 .022fiF .06 .05

.05 .04 .03 .047»iF .06 05

.05 .04 .035 VF 12 .09

100 VOLT MYLAR FILM CAPACITORS

12 .10 .07 ,022mf ,13 .11

.12 .10 .07 ,047mf .21 .17

.12 .10 .07 .1ml ,27 .23

.12 .10 .07 .22ml .33 .27 + 20% DIPPED TANTALUMS (SOLID) CAPACITORS

.28 .23 .17 1.5/35V .30 .26

.28 .23 .17 2.2i25V .31 .27

.28 23 17 3.3(25V 31 .27

.28 .23 .17 4.7/25V .32 28

.28 .23 .17 6.8/25V .36 .31

.28 .23 17 10/25V .40 .35

.28 .23 .17 15/2W .63 .50 MINIATURE ALUMINUM ELECTROLYTIC CAPACITORS

CORNER

Axial Lead

.47/50V .15

1.0/50V .16

3.3/50V .15

4.7/25V .16

10/25V .15

1O/50V .16

22/25 V .17

22/50V .24

47/25 V .19

47/50V .25

100/25V .24

100/50V .35

220/25V .32

220/50V ,45

470/25V .33

1000/16 V .55

2200/16V .70

13

.47,'25V .47/50V 1.0/16V 1.C/25V 1.C/50V 4.7/16V 4.7/25V 4.7/50V 10/16V 10/25V 10/5DV 47/50V 100/16V 1O0/25V 100/50V 220/16V 470/25V

Radial Lead .15

Circle 15 on inquiry card.

computer display terminal

This display terminal has an integral controller, B/W cathode ray tube and keyboard. The system has a serial I/O interface for communication and an I/O interface for a printer

DISPLAY (P/N 4802-1095-501) FEATURES:

• 17" B/W CRT

• 41 lines of data

• 52 characters per line

• Characters are generated by a diode matrix "graphic" technique

• 21 special push-buttons wired for a program call up

• Brightness Control

• Self-contained power supply

KEYBOARD (P/M 4802-1115-501) FEATURES:

• Reed switch technology

• 54 data keys

• 28 special keys detachable with cable

LOGIC UNIT (P/N 4802-1157-502) FEATURES:

• 1024 by 6 bit core memory

• Printer I/O interface

• Communication I/O interface

POWER: 115V, 50/60 Hz, 500 Watts

WEIGHT: 210 lbs. (including logic unit, keyboard, display and cables.)

FOB LYNN MASS (you pay shipping) Check with order please.

$180.00

External logic & power pack not shown.

tc

AS IS

•>f

4 way cursor control, graphics display.

The story: These are unused terminals made for airport ticketing & seat assignment. After several years of storage they require tinkering to make operable. We have some hints printed such as cleaning PC fingers. One of our customers has this tied into his KIM-1, another has his running with his IMSAI. We have data on this. Should be useable on most common computers. A hell of a deal and all for a paltry $180.00. Don't be left out as many were on our past VIATRON deal. Sold "as is" all sales final.

WITH COMPLETE DOCUMENTATION

SPECTRA FLAT TWIST

50 conductor, 28 gauge, 7 strands/ conductor made by Spectra. Two conductors are paired & twisted and the flat ribbon made up of 25 pairs to give total of 50 conductor. May be peeled off in pairs if desired. Made twisted to cut down on "cross talk." Ideal for sandwiching PC boards allowing flexibility and working on both sides of the boards. Cost originally $13.00/ft SP-324-A $1.00/ft. 10 ft/$9.00

SP-234-A $1.00 ft 50 cond. 10 ft/$9.00 SP-234-B .90 ft 32 cond. 10 ft/$8.00

In tall TO-5 can TINY

DPDT, 24 volts. Brand new. SWITCH

cost $16.00 each TELEDYNE

SP-134 $3.00 each 2/$5.00

WIRE WRAP WIRE

TEFZEL blue #30 Reg. price $13.28/100 ft. Our price 100 ft $2.00; 500 ft $7.50.

MULTI COLORED SPECTRA WIRE

Footage

8 Cond. #24

12 " 22

14 " 22

29 " 22

Great savings as

10'

$2.50 3.00 3.50 7.50

these

50'

9.00

11.00

13.00

28.00

100' 15.00 18.00 21.00 45.00

are about 1 /4

book prices. All fresh & new.

sffeMMiz

Precision 16 pin DIP network as shown. Each resistor 1K. For pull-up/pull-down interface networks. Value over $1.00 each; New, CTS or Beckman

J^J^U^-FLFLR

SP-320 pack of 6 $1.00 l^^^p^i

Please add shipping cost on above. Minimum order $10

FREE CATALOG SP-9 NOW READY P.O. Box 62, E. Lynn, Massachusetts 01904

Circle 18 on inquiry card.

174

kits by @ cyberccm KitsbyWALCON

4Kx8 Static Memories

MB-1 MK-8 board, 1 usee 2102 or eq. PC Board $22

(Not for S-100 Buss)

MB-4 Improved MB-2 designed for 8K "piggy-back"

without cutting traces. PC Board $30

Kit 4K .5 usee....$129.95 Kit 8K .5 usee....$199

MB-31702A's Eroms, Altair 8800 & Imsai 8080 compatible switched address & wait cycles. 2K may be expanded to 4K. Kit less Proms....$65 2K Kit....$105 4K Kit....$145

MB-6 PC Board $35

MB-6A 8Kx8 Switched address and wait assignments. Memory protection is switchable for 256, 512,1K, 2K, 4K and 8K. 91L02A .5 usee rams. Altair 8800& Imsai compatible. With battery power option.

Kit... .$250 Assembled & tested $290

I/O Boards

1/0-2 I/O for 8800, 2 ports, committed pads for 3 more.

other pads for EROMS UART, etc.

Kit....$55 PC Board only $25

64 x 16 VIDEO BOARD Altair plug compatible display 32 x 16 or 64 x 16 switch selectable. Composite and parallel video ports, upper and lower case with software.

Kit $179.95

PC Board $35

SP-1 Synthesizer Board Computer controlled wave forms 9 octaves 1vrms V4% distortion includes high

level music langauge. Kit $250

Altair Compatible mother board. Room for 15 connectors 11" x 11!6" (w/o connectors) $45

With 15 connectors $105

Altair Extender Board (w/o connectors) $9.00

With w/w connector $13.50

100 Pin spec WW or Soldertail both fit Imsai or SSM Mother Board $5.00 each 10/$44. 1702A EROM $ 8.00

programming send hex list 5.00

AY5-1013UART 6.95

2513 Prime spec, upper or lower case 11.00

8080A prime CPU 25.00

8212 prime latch buffer 4.00

8224 prime clock gen 5.00

8228 prime sys controller 8.90

(AVAILABLE MID-MAY)

MM-1 8Kx8 Ram Board First fully buffered 8K ram board. Addresses and data are fully buffered. Low power rams used. Protect is reset with a single switch. Documentation is available for $5 which is refunded at time of purchase of board or kit.

MM-1 Kit $245

Assembled 295

PC Board only 30

* 2102AL-4 FULL SPEED MEMORY (500ns) •

* Nearly Si less power consumption of even a * 21L02A PRIME FROM NEC

* $2.00 EACH 32 FOR $1.80 EACH * 64 - $1.70 128 FOR $1.60 EACH

82S06 82 SO 7 82S11 82S12 82S17 82S23 82S123

2.00 2.00 2.00 2.00 2.00 2.50 3.00

82S126 82S129 82S130 82S131 74S206 74S412

3.50 3.50 3.95 3.95

2.10 4.00

74C200

8573

8574

8575

8576

8577

8578

5.50 4.50 5.50 4.50 4.50 3.50 4.00

7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7413 7414 7416 7417 7420 7423 7425 7426 7427 7430 7432 7437 7438 7440 7441 7442 7443 7444 7445 7446 7447 7448 7450 7451 7453 7454 7460

.16 ,16

.21 .16 .18 .24 .20 .29 .25 .25 .18 .30 .45 .70 .35 .35 .20 .37 .30 .30 .35 .25 .30 .27 .27 .15 .85 .60 .75 .75 .75 .80 .70 .80 .25 .25 .25 .20 .20

7470

7472

7473

7474

7475

7476

7480

7483

7485

7486

7489

7490

7491

7492

7493

7494

7495

7496

74100

74107

74109

74121

74122

74123

74125

74126

74132

74141

74145

74147

7414B

74150

74151

74153

74154

74155

74156

74157

74160

.45

.40

.35

.35

.50

.30

.50

.70

.90

.40

2.00

45

.75

.50

.50

.80

.75

.90

1.00

.40

.90

.40

.50

.70

.60

.60

1.00

1.15

1.15

2.35

2.00

1.00

.80

.90

1.00

1.00

1.00

1.00

1.25

74161

74162

74163

74164

74165

74166

74170

74173

74174

74175

74176

74177

74179

74180

74181

74182

74184

74185

74190

74191

74192

74193

74194

74195

74196

74197

74198

74199

74200

74251

72284

74285

74365

74367

74368

MH0025

MH0026

95H90

1.00

1.50

1.00

1.10

1.10

1.25

2.10

1.50

1.95

.95

.90

.90

.90

.90

2.50

.95

1.95

2.20

1.15

1.25

.90

.90

1.25

.75

1.25

.90

1.75

1.75

4.95

1.75

4.95

4.95

.90

.75

.90

2.50

2.95

9.95

MM5309

8.00

2501B

$1.25

1101

.40

74LS00

.40

74L00

.25

74L78

.90

MM5312

4.00

2503V

2.00

1103

1.25

74LS01

.50

74L01

.25

74L85

1.40

MM5313

4.00

2504V

2.00

2101

4.50

74LS02

.40

74L02

.25

74L86

.75

MM5320

4.95

2505KN

2.00

2112

4.50

74LS03

.40

74L03

.25

74L89

3.50

MM5554

1.90

2507V

1.25

2602

1.60

74LS04

.45

74L04

.30

74L90

1.50

MM5556

2.50

2509A

2.00

4002-1

7.50

74LS05

.45

74L05

.40

74L91

1.50

MM5055

1.90

2510A

2.00

4002-2

7.50

74LS10

.40

74L06

.30

74L93

1.70

DM8836

.60

2511A

2.80

MM5262

1.00

74LS11

.50

74L08

.40

74L95

1.70

DM8837

1.50

2517V

1.25

7489

2.00

74LS12

.55

74L09

.40

74L98

2.80

80C95

1.10

2518B

1.50

74200

4.95

74LS20

.40

74L10

.30

74L123

1.50

80C97

1.00

2519B

2.80

74S89

3.50

74LS22

.45

74L20

.35

74L154

2.00

80L97

1.50

2521V

1.50

74C89

3.50

74LS27

.45

74L26

.40

74L164

2.50

81L22

1.50

2522V

2.00

74L89

3.50

74LS30

.40

74L30

.40

74L165

2.50

81L23

1.90

2525 V

2.80

8T80

2.50

74LS42

1.50

74L32

.45

74L192

1.25

81L51

2.50

2527V

2.80

8T97

2.00

74LS55

.40

74L42

1.50

74L193

1.20

85L52

2.50

2528V

2.80

INTEL

74LS73

.65

74L51

.35

MC4044

2.25

85L63

1.25

2529V

2.80

8216

4.95

74LS74

.65

74L54

.45

N8263

3.50

86L70

1.50

2532B

2.80

8214

8.30

74LS76

.65

74L55

.35

N8826

2.50

86L75

1.90

2533V

2.80

8251

14.50

74LS151

1.55

75L71

.30

DM8131

2.50

86L99

3.50

91L02APC

2.55

8255

14.50

74LS174

2.20

74L73

.55

8T16

2.00

86L12

.80

32 ea.

2.40

1488

1.50

74LS175

1.95

74L74

.55

8T20

2.00

8T13

2.50

64 ea.

2.25

1489

1.50

74LS192

2.85

74L75

1.20

8T10

2.00

uMO

419 Portofino Drive San Carlos, California 94070

Please Mnd for xlstor, IC and kit list

For large orders please send money order or cashier's check to avoid delays in waiting fr checks to clear. Check or money order only. California residents add 6% tax. All orders postpaid in U.S. All devices tested prior to sale. Money back 30 day guarantee. Sorry we cannot accept returned ICs that have been soldered to. $10 minimum order. Prices subject to change without notice.

The Proko Paper Tape Reader

A fully TTL buffered optical tape reader for reading 8-level paper tape. It's compatible with nearly all parallel input ports and has both positive and negative strobe outputs. The power (+5V @ 20ma) is derived from your I/O board...just supply a light source (study lamp), grab the tape and pull! PTR-II Kit $54.00 Assembled $68.00

». ——tt-tt:ii

Now, add mass storage to your micro with the North Star floppy disk system. Comes with cables, S-100 controller with bootstrap rom, and powerful extended basic. (Basic supports sequential and random access disk files.)

North Star Disk Kit $699

IMSAI 8060 Kit with 22 slots .$650

SPECIAL DEAL: IMSAI WITH DISK $1325

P1 -rrs,

m

Iff g^WS*1 $14900

The S.D. Sales Co. Z-80 CPU Kit

For S-100 Buss

SPECIAL DEAL No. 2

IMSAI 8080 with 22-SLOT MB UPGRADED WITH Z-80 CPU $750°

POWER TRANSFORMER FOR ALTAIR® TYPE BUSS

Designed to deliver +18VDC @ 2A and 5VDC @ 22A with proper bridges and filtering.

2950 each

NEW FROM IMSAI

32K RAM CARDS

for S-100 Buss

Full Speed — Low, Low Power

$72500

D-CONNECTORS

Blmboards for Prototyping

$1350each 4 for $44°°

Male S300

Female $4°°

Pair $650

proko

ironies

439 marsh street

san litis obispo, California 93401

805/544/5441

Delivery: Slock to 45 days from receipt of orrjer. We pay all U.P.S. shipping on U.S. orders. Check or money order accepted No P.O.s except by above terms. California residents add 6% tax. Prices subject to change without notice.

Circle 57 on inquiry card.

New Component Values

PRIME, NEW 2708 IK x 8 EPROM - $47.95 PRIME, NEW 2716 2Kx 8 EPROM - $77.95

zilog z-80's $47.95

91 L02C's , 300ns low-power - $1.89 PROTOTYPE BOARDS

Surplus Bargains

Prototype boards for the S-100 bus are available from many others —but only MINI MICRO MART supplies four different types. Two are wire-wrap versions and two are general-purpose DIP, for either ww or point-to-point wiring. All boards come with a 5V regulator and a heat sink. The two "bus" versions are unique and have circuitry etched on for buffering and address decoding, and include the decoders and necessary tri-state buffers. (Illustrated above is the general-purpose DIP version, MODEL 01-2115.)

01-2115 General-purpose DIP Prototype Board $ 18.95

01-2116 Wire-wrap Prototype Board $ 19.95

01-2136 Gen.-purpose DIP Bus Interface Bd.. . $29.95

01-2112 Wire-wrap Bus Interface Board $30.95

AUDIO CASSETTE INTERFACE

This simple board can be used with any minicomputer or TV terminal that uses a UART with a 16X baud-rate clock. Designed for the St. Louis BYTE standard, it also provides for a tone/no-tone and a HITS interface. Available in kit form, order as —

51-2166 Audio Cassette Interface $24.95

POWER

SUPPLY

Surplus power supply (made by Milwaukee Electronics) removed

from used Mohawk Data equipment, excellent condition 'Sorry

we can't give full details at press time, but we're sure that it will supply all the +5 you'll ever need as well as other voltages. 'Has all the good things — such as over-voltage protection. We hope to have schematics to ship with these units. Limited supply. A REAL VALUE! Order as

42-5005 Power Supply $ 24.95

TELETYPES

MINI MICRO MART has one of the largest selections of used, reconditioned, and rebuilt Teletypes in the U.S. —

RO-33's (printer only) $395 to $595

KSR-33's (keyboard & printer) $495 to $695

ASR-33's (prntr.,keybd..reader & punch). $695 to $895

Model 35 RO's, KSR 's and ASR 's also available.

SURPLUS PERIPHERALS

We have a tremendous inventory of used and like-new computer peripherals which we have rescued from large computer systems. Among them are: Delta video terminals, Hazeltine 1000 video terminals, Univac 30 CPS serial printers, Singer 30 CPS serial printers, 9-track digital reel-to-reel recorders, used commercial minicomputers and intelligent terminals.

Also available are a wide variety of transformers, power-supply kits, and surplus power supplies.

Send stamped, self-addressed envelope for details on any advertised items or for a copy of our catalog.

Add $2 for handling, shipping & insurance for each item ordered.

MiniMicroMart

1618 James Street, Syracuse, N.Y. 13203, Phone: (315)422-4467

Circle 279 on inquiry card.

S.D- SALES CO. pO. BOX 28810-@ DALLAS, TEXAS 75228

JUMBO LED CAR CLOCK

$16.95

KIT

Alarm Option - $1.50 AC XFMR -$1.50

THE HOTTEST SELLING KIT WE EVER PRODUCED!

You requested it! Our first D.C. operated clock kit. Professionally

engineered from scratch. Not a makeshift kluge as sold by others.

Features:

A. Bowmar Jumbo —.5 inch LED array. ~i oC^V.

B. C. D. E. F.

MOSTEK - 50250 - Super Clock Chip.

12 or 24 Hr. Real Time Format. S°L

Perfect for cars, boats, vans, etc.

On board precision crystal time base. ^qO S

P.C. Board and all parts (less case) included.

THIS MONTH'S SPECIALS AMD-8080A $14.95

Z-80 CPU 49.95

82S129 1K PROM 2.50

60 HZ CRYSTAL TIME BASE S.D. SALES EXCLUSIVE!

$5.95 ea.

.00

2,§A0J 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 Mt

D. Uses latest MOS 17 stage divider IC.

E. Eliminates forever the problem of AC line

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, Driver IC, PC board, plus all necessary parts and specs. At last count — over 20,000 sold!

1702A2K EPROM

We tell it like it is. We could have said these were factory new, but here is the straight scoop. We bought a load of new computer gear that contained a quantity of 1702 A's in sockets. We carefully removed the parts, verified their quality, and are offering them on one heck of a deal. First come, first served. Satisfaction guaranteed! U.V. Eraseable. NEW PRICE! $2.95 ea. (2.3 US access time)

i typ.) glitches.

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 21L02—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

rt.i-r.r- S.D. SALES EXCLUSIVE

5)1^.95 MOS 6 DIGIT UP-DOWN COUNTER $12.95

40 PIN DIP. Everything you ever wanted in a counter chip. Features: Direct LED segment drive, single power supply (12 VDC TYPE.), six decades up/down, pre-loadable counter, separate pre-loadable compare register with compare output, BCD and seven segment outputs, internal scan oscillator, CMOS compatible, leading zero blanking. 1MHZ. count input frequency. Very limited quantity! WITH DATA SHEET

I

1000 MFD Filter Caps

Rated 35 WVDC Upright style

with PC leads. Most popular

value for hobbyists. Compare at up to $1.19 ea. from franchise type electronic parts stores. S.D. Special 4/$l.

Slide Switch Assortment

Our best seller. Includes miniature and standard sizes; single and multiposition units. All new, first name brand. Try one package and you'll reorder more! Special 12/$ 1.00

RESISTOR ASSORTMENT

'AW 5% & 10%

PC leads. A good

mix of values.

200/$2.

I—nmJ

7400— 19c 741174LS00—49c74137402—19c 741674LS02—49C742C

7404—19c 74L04—29c 74S04—44C 74LS04-49C 7406—29c 7408—19c 7410—19c

29c 50c ■69c 19c

7430—19c 7432—34c 7437—39c 7438—39c 7440—19c 7447—85c 7448—85c

7451—19c 7453—19C 7473—39c 7474—35c 74LS74-59C 7475—69c 7476—35c 7480—49c 7483—95c 7485—95c 7486—45c

7490—65c 74153—75c 74LS90—95c 74154-1.00

7492—75c 7493—69c 7495—75c 7496—89c 74121-38C 74123-65C 74132-1.70

74157—75c 74161—95c 74164-1.10 74165-1.10 74174—95c 74181-2.50 74191-1.25

TTL INTEGRATED CIRCUITS

74S138-1.95 74192-1.25

74141-75C 74193-1.00

74195—69c

P.C. LEAD DIODES

1N4148/1N914 100/$2.00 1N4002-1A. 100 PIV 40/$l.

HEAVY DUTY Full Wave Bridge

25 AMP 50 PIV

$1.25

Disc Cap Assortment

PC leads. At least 10 different values. Includes .001, .01, .05, plus other standard values.

6o/$i.oo "23y

$9.95 kit

P.C. Board - 3.00

AC XFMR - 1.50

Do not confuse with Non-Alarrr

kits sold by our competition!

Eliminate the hassle —

avoid the 5314!

SIX DIGIT ALARM CLOCK KIT

We made a fantastic kit even better. Redesigned to take advantage of the latest advances in I.C. clock technology. Features: Litronix Dual Vz" displays, Mostek 50250 super clock chip, single I.C. segment driver, SCR digit drivers. Greatly simplified construction. More reliable and easier to build. Kit includes all necessary parts (except case). P.C.B. or XFMR optional. NEW! WITH JUMBO LED READOUTS!

Motorola SCR

2N4443. 8 AMP 400 PIV. P.C. Leads 3/$i_

FAIRCHILD -TBA641

4W. Audio power Amp. Just

out! In special heat sink

DIP. One super audio IC.

$1.50 with data

FND-359 -Led Readout

.4 IN. Common Cathode. High effeciency. Has FND70 PIN OUT. 79C

OUR CATALOG

is chocked full of rare parts

bargains, deals, RAM or CPU

kits, plus much more. Yours

FREE!

PRICES SHOWN SUBJECT

TO CHANGE WITHOUT

NOTICE.

COMPUTER POWER SUPPLY

. jm— -^ _ A very fortunate purchase. One of the best industrial quality REGSIS 95 ULATED supplies we have seen. High performance, small size. 1 *"" Input is 120 VAC 60 HZ. Has the following regulated outputs: -5VDC@800MA; -15VDC @ 1.25 AMP; -25VDC @ 180 MA. Sold at a fraction of original cost. Do yourself a favor and order NOW. We expect a quick sellout.

AMD - 1702A

Factory Prime Units. Brand New.

1.5 micro-seconds access time.

$4.95 each.HUGE FACTORY DIRECT PURCHASE!

Terms: Money back guarantee. No COD. Texas residents add 5% sales tax. Add 5% of order for postage & handling. Orders under $10. add 75c. Foreign orders: US funds only!

Call your Bankamericard or Master Charge order in on our continental United States toll free Watts:

1-800-527-3460

Texas Residents Call Collect:

214/271-0022

Special Thanks to:

Dennis, Fred, Abe, Bill, Sam,

Hal, Tom, Alex, John, Ely,

and Larry

S.D. SALES CO. P.O. BOX 28810 Q Dallas, Texas 75228

ORDERS OVER $15.00 - CHOOSE $1.00 FREE MERCHANDISE

Circle 27 on inquiry card.

NEW COMPUTER INTERFACE BOARD KIT

Our new computer kit allows you to interface serial TTL to RS 232 and RS 232 to TTL There are four of these supplied with the kit, so you can run up to four devices on one TTL or four separate TTL to RS 232 devices.

Typical use: You can use your computer ports to run an RS 232 printer, video terminal and two other RS 232 devices at once, without

constantly connecting and disconnecting your terminals.

Example: Out store to printer — Voltage requirement + 5V and ± 5V or ± 12 V depending on your RS 232 device.

We supply — board, connectors, documentation and components. Sorry, we do not supply case or power supply.

GENERAL PURPOSE COMPUTER POWER SUPPLY KIT

This power supply kit features a high frequency torroid transformer with switching transistors in order to save space and weight. 115V 60 cycle primary. The outputs with local regulators are 5V to 10A, in one amp increments, - 5V at 1A, ± 12V at 1A regulators supplied 6 340T-5 supplied.

$79

00

UNIVERSAL 4K MEMORY BOARD KIT

$74

50

This memory board kit can be used with most microcomputers. Some of the outstanding features are:

32-2102-1 static RAM's, 16 address lines, 8 data lines in, 8 data lines out, all buffered. Onboard decoding for any 4 of 64 pages, standard 44 pin, .156" buss.

F8 EVALUATION WITH EXPANSION

A fantastic bargain for only with the following features:

• 20 ma or RS 232 interface

• 64K addressing range

• Program control timers

• 1K of on-board static memory

• Built in clock generator

BOARD KIT CAPABILITIES

$99

00

64 Byte register

Built-in priority interrupts

Documentation

Uses Fairbug PSU

FOR FAIRBUG 4K F8 BASIC ON PAPER TAPE $25

270B-8KEPROM S29.5

2522 STATIC SHI FT REG . . ... S 1.95

2513CHARACTER GEN S 9 95

2518 HEX 32BITSR . S 3 50

2102-1 1024 BTRAM $ 1.39

5280 4K DYNAMIC RAM $ 6.95

5202A UV PROM S 6.95

MM5203 UV PROM S 6.95

1702A UV PROM S 6.95

5204-4K PROM . . . _ S10 95

AY-5-1013 UART. S 6.95

miniature""multi-turn TRIM POTS

100. 500, 2K,5K,10K,25K,50K,100K,200K

1 Meg. S.75e;ich 3/S2.00

MULTI TURN TRIM POTS Similar to Btntms 30tO style 3/T6"x5/8"x1 1/4"; 50. 100. IK, 10K.50Kj>hms SI.50 eg. . 3/S4.00 LIGHT ACTIVATED SCH's 10 18, 200V 1 A S 1.75

TRANSISTOR SPECIALS

2N358G NPN Si TO-66 S .95

2N3772 NPN S. TO-3 S 1.60

2N4S6A PNP GE S ,75

2N4908 PNP S. TO-3 S 1.00

2N6056 NPN Si TO-3 Darlirtfltan B 170

2N5086 PNP Si TO-92 4/S 1.00

2N4898PNPT0 66.. S .60

2N404 PNPGE TO-5 5/S 1.00

2N3919 NPN Si TO 3 Rl- S 1.50

MPS A 13 NPN Si TO-92 3/S 1 .00

2N3767 NPN Si TO-66 S .70

2N2222 NPN Si TO-18 5'S 1.00

2N3055 NPN Si TO 3 S .80

2N3904 NPN Si TO-92 5/S 1.00

2N3906 PNP Si TO-92 5/S 1.00

2N5296 NPN Si TO-220 S .50

2N6109 PNP Si TO-220 S .55

2N3638 PNP Si TO-5 5'S 1.00

2N65I / NPN TO-92 S. 3/S 1.00

C/MOS {DIODE CLAMPED)

MCQ2 .22 4015 9b 4029 1 IU

74C10- .22 4016- .40 4030 .22

/4C193 1.50 4017-1.05 4033 150

4001 .22 4018- 1.00 4035 1 10

4002 ,22 4019 25 4042 78 4006 1 20 4020 1.05 4046-2.25 4007- 22 4022 95 4047 2.00 4009 42 4023 .22 4049 4 0 40T0- .42 4024 .75 4050 40

4011- .22 4025 .22 4055 I 50

4012- .22 4026 1 25 4066 80

4013- .40 4027 40 4071 22

4028 88 4070 1.05

IN 4148 HWMi . . . 15 ■51 55

'U'A ;-:i ( H't ICAI LIM11 SWITCH SI 50

LED READOUTS

FND*359C.C. S .55 MAN-7-.3" C.A. S .95

FND 503 C.C. Si.05 NS 33-3 dig. army S .75

FND510C.A. Si.05 DL 747 C.A. SI.95

HP 7740-.3" C.C. Si.25

PRINTED CIRCUIT BOARD

7 WATT LD-65 LASER DIODE IR $a95

2N 3820 P FET $ 45

2N 5457 N FET S .45

2N2646. . . . S .45

EP 900 TRIGGER DIODES . . 4/$1.00

2N 6028 PROG. UJT $ .65

8 PIN DIP SOCKETS S .24

14 PIN DIP SOCKETS S .25

16 PIN DIP SOCKETS , . S .28

18 PIN DIPSOCKETS .... S .30

24 PIN DIP SOCKETS $ .40

28 PIN DIP SOCKETS $ .50

40 PIN DIP SOCKETS S .60

VERIPAX PC BOARD l liis board is u 1/16" single sided papei epoxy board, 4JS"x6K" DRILLED and ETCHED which will hold up to 21 single 14 pin IC's oi 8, 16, Oi LSI DIP IC's with busses for

power supply cunnecmi S4.00

MV5691 VtLLOW-GHEEN

BIPOLAR LED S1 25

FP 100 PHOTO TRANS S .50

RED, YELLOW OR GREEN

LARGE LED's

1L-5 (MCT-2) S .75

MOLEX PINS I00/S1.00

1000/S8.00 10 WATT ZENERS 3.9. 4.7. 5.6, 8.2,

12,15.18,22.100,l50o. 200V . on, S .60 1 WATT ZENERS 4.7, 5.6,

18 or 22V ea. S .25

MC6860 MODEM CHIP S9.95

TANTULUM CAPACITORS

Full Wave Bridges

SILICON SOLAR CELLS

2V»" diameter ' at 500 ma. $4.00 /.2V at 200 mils $2.00

309K

723

LM 376 320K-5 or 15 320T-5,12,15 or 24V

S .50 S .60

SI.40

RS232 CONNECTORS f

340K-5,12,15

or 24V. ... .$1.25 340T-5, 6, 8. 12

15,18 or 24VS1.10

78 MGS Si.35

79 MGS .... .SI.35

die ... S3.25

22UF 35V 5'SI.OO 47UF 35V 5/S1.00 -68UF 35V 5'S 1.00 1UF 35V G/S1.00 2.20UF 20V5/S1.00 3 3UF 35V 4'S1.O0 4.7UF 10V 5/S1.00

G.SUF 35V 3-S 22UF 35V S 30UF 6V S

331)1 :!5V 47UF 20V

100UF 35V

150UF 15V

M7001 ALARM CLOCK CHIP. . .

NATIONAL MOS DEVICES

MM 1402 MM 1403 MM I 404 MM5013MM5016- 2.50 MM5017- 2.70 MM0055- 2.25 MM5056 7.25

MM5057- 2.25 MM5058 2.75 MM50G0- 2.75 MM5061-2.50 MM5555- 4.75 MM555G 4.75 MM5210 1.95 MM52GO 1.75

Silicon Power Rectifiers

PRV 1A 3A 12A

50 A

125A

100 .06 .14 .30

.80

3.70

200 .07 .20 .35 400 .09 .25 50

1.15

4.25

1.40

6.50

GOO .11 .30 .70

1.80

a.50

800 .15 .35 .90

2.30

10.50

1000 .20 .45 1.10

2.75

12.50

7400

7401

7402

7403

7404

7405

7406

7407

7408

7409

7410

7411

7412

7413

7414

7416

7417

7420

7425

7426

7427

7430

7432

7437

7438

7440

7441

7442

TTL IC SERIES

7445- .70 1>

7446- .70 1' 74477448745074727473747474757476 7480748374857486 7489 7490 7491749274937494

.30 1.85

749574967410774121 7412374125 74126 74132

74154

74155

74157

74161

74163

74164

74165

74173

74174

74175

74176

74177

741 ao

74181

74190

74191

74192

74193

74194

74195

74196

74257

74279

75324

75491

75492

2.10 1.20 1.20

MINIATURE DIP SWITCHES CTS 2064 Foui spst switches

in one

n.nid

p paeki

l]C.

SI

75

CTS-20G-8

Eigh

SPST s

witches

in .i

16

pin DIP

pdckage

Si

.95

j-8V SPST M.n >i)cn, 330OI1H

600 l_?0 KJ5 A 00

SANKEN AUDIO POWER AMPS

i 1010 G 10 WATTS. . . . S 7.95 S. 1020 G ?0 WATTS S1595

Si 1050 G 50 WATTS S2/95

CCD 110 LINEAR 256 XI BIT SELF SCANNING CHARGED COUPLED

DEVICE SG5U0

CCD 201 100 x 100 CHARGE COUPLED DEVICE ., S9900

cataloy N:;ituiirui ml Rectifiers

. Camhndyn. M.tss.

74LS SERIES

74LS00 - .25 74LS02 - .25 74LS04 - .29 74LS08 - .25 74LS10 - .25 74LS11 - .25 74LS20 - .25 74LS21 - .25 74LS22 - ,25 74LS27 74LS30 74LS32 74LS37 74LS38 74LS74 74LS90 74LS132 74LS138 74LS13974LS15574 LSI 57 74LS160 74LS16274LS163 74LS175 74LS193 74LS25874LS367 74LS368

LINEAR CIRCUITS

LM 101 .75

LM 301/748 .31

LM 307

.95 1.10

1.40

LM 308

LM311

LM 319

LM 324

LM 339

LM 370

LM377

LM380

LM 381

LM 382

LM 537

LM 553

LM 555

LM556

560

562

565

703

709

710

71 1

741 Cor V

747

1310

1456

1458

CA 3046

CA 3047

3900

8038

.95 .95 .95 1.05 1.10 1.15 2.50

- 2.50

- 2.50

.44

- .85 -2.00 -2.00

1.10

- .90 .25

- .35 - .35

ALCU MINIATURE TOGGLE SWITCHES MTA 106 SPDT SI .20

Terms: FOB Cambridge, Mass. Send Check or Money Order. Include Postage, Minimum Order $5.00, COD'S $20.00

SOLID STATE SALES

P.O. BOX 74B

SOMERVILLE, MASS. 02143TEL. (617) 547-4005

Circle 59 on inquiry card.

WE SHIP OVER 95%

OF OUR ORDERS THE

DAY WE RECEIVE THEM

DIP PLUGS AND COVERS

Use for

mounting diodes, res

stors,

jumpers,

etc.

Gold p

ated parts for long wear

PLUGS

COVER:

1-24 25-49

50

-99

1-24

25-99

8 pin

.46 .39

.32

.10

.09

14 pin

.48 .40

.34

.10

.09

16 pin

.56 .47

.38

.10

.09

24 pin

.79 .72

.65

.15

.13

40 pin

SI.23 $1.08

.93

.25

.22

DIP PLUG INTERCONNECTS

Ideal for use from board to board, remote switches, in test equipment, lamp panels, etc. Made from gold plated connectors, color coded ribbon cable, molded plugs. Very flexible and durable.

To order, make up part number from characteristic and find price in chart. For instance: S-14P-18 is single ended 14 pin nterconnect 18 inches in length. Price is $1.72. D-24P-06 is double ended 24 pin, 6 inches in length. Price is S4.55. Quantity pricing is available.

PRICE CHARTS No Of Pins

SINGLE END

PRESTRIPPED WIRE WRAP WIRE

Highest quality 30 ga. Kynar insulated silver plated wire for wrapping. Stripped I" on both ends. Indicated lengths are lengths of insulated portion. Packed 100 per sturdy plastic vial or 1000 per poly bag . Compare our prices 11 I. Available in Black, Red, Yellow and Green. State color desired.

Length Price per tube of 100 Price per bog of 1000

I" $1. 48 (WW30VC-11 $11. 84 (#WW30B K-1)

2" $1.60 (WW30VC-2) S12.80 (*WW30BK-2)

4" $1.85 (WW30VC-4) $14.80 (*WW30BK-41

6" S2.20 (WW30VC-6) $17.60 (*WW30BK-6)

Dealer Inquiry Invited

100 ft. roll $3.45 10 rolls, mixed colors. .$24.00

500 ft. roll $9.95 4 rolls, mixed colors. .$35.82

1,000 ft. roll $17.85 4 rolls, mixed colors. .$64.26

WIRE WRAP I.C. SOCKETS, 3 LEVEL GOLD

14 pin 38c ea, 10 for S3.60 16 pin 42c ea, 10 for $3.90

HIGH CURRENT STUD DIODES

D2131 200V, 25A $ .85

D2I35 400V, 25A $1.00

D2138 600V, 25A $1.55

3289 200V, 10OA $5.85

Contract Cancellatiot

SN7490 39<;

LM320H-12...S1 .29

1N5231A 25c

1N5226B 35c

741(mini-dip,.3/$l

Specials All Full Spec, NEW!!

2N3734 38$

2N5861 75c

1N3572 90c

G.E.D45C5 44^ 50V, 3Amp Epoxy I

2N3773 $1.75 2N4401..5/$1 2N4403..5/SI 2N1557..$1.39 Ige 79c

m?cta

Be sure to gef the latest edition of the TRI-TEK flyer. Packed with good news on the latest components andjUerature II! I! !!! ! I ! I I ! ||! I

78HGKC 5A VARIABLE REGUTATOR

NOW- at last, a high current adjustable regulator. Same simple circuitry as the popular 78GKC. Needs only two external resistors to program to any voltage between +5 and 30V @ 5A output.

78HGKC $13.95

Spec 30

NEW BOOK

NEW BOOK FROM NATIONAL

MOS LSI. Giant data book filled with spec and apps

on large scale MOS circuits from National Semiconductor Corporation Price includes shipping in U..S„ only. ..S4.25 Outside U.S., add postage for 2 lbs.

i^; ►

PROFESSIONAL TEMPLATES-LOGIC SYMBOLS-Stand MIL806-B

3/4 Size $3.50

1/2 Size (Handy shirt pocket size) $3.25

Computer Flow Chart Symbols $3.50

Fast Signal Diode

115V VR 100mA If. Reverse recovery time is less than 20 nS at 100mA forward I 6 pf cap. Same size as 1N914, 1N4148. D600. ,20/Sl

TO-5 Heat Sink, THERMALLOY 22118 2-piece black

anodized for maximum heat dissipation. HS2211B. 5/Sl

6.8V, 50Watt Zener. Mode by Motorola in TO-3 case. Gold plated. SI.00

15V, 5W S% Zener. 1N5352B axial lead zener is just

right for those MOS voltage supplies 3/ $1

General Purpose NPN Switch. #2501-12 NPN switch in

TO-18 metal transistor similar to 2N2847.

#2501-12 12/$1.00

2N423A, 40V, 3A PNP switch, TO-5 50c

2N2905, 40V, .6A PNP Switch/Amp. TO-5 5/$1.00

2N2147, 50V Germanium TO-3 $1.00

50V, 45Amp Fast Recovery Diode.

Similar to 1N3909 stud mount. Reverse recovery at

1 Amp= .5uS $2.00

SIGNETICS 8000 SERIES TTL LOGIC

These quality units are faster and have greater fanout capability than standard TTL. From a giant factory change-over you get real bargain prices. All are house numbered, but we provide a reference and pin-out sheet.

N8880A. . .Quad-2 input NAND gate 8/$1.00

N8822A...Dual J-K master/slave F/F 4/51.00

N8885A...Quad 2-input NOR gate 8/51.00

N8890A...Hex Inverter 6/51.00

N8202A...10 bit "D" type register 51.25

The following items are available in large quantities Dealer or manufacturer inquiry is invited.

2N3414.. NPN switch on reels 10/$1

1N753A.. 6.2V, 5%, fcW Zener 5/$l

C106F2.. 50V, 4A SCR w/socket 3/$l

1N967B.. 18V, 5%, tyl Zener 5/$l

42501-1 Quad Hi speed NPN transistor in 14 pin DIP package. Similar to Motorola MPQ3303 5/$l

MCM6571A is an 8192-Bit Horizontal-'^can (Row select) character generator with shifted characters. It contains 128 characters in a 7X9 matrix, and has the capability of shifting certain characters that norm ally extend below the baseline, such as j,y,g,p and q. A 7-bit address code is used to'select one of the characters. Features:

.Static operation

.TTL eompatabiUty

.CMOS eompatabiUty (5V)

.Shifted character eompatabiUty

.Includes Greek alphabet

.Maximum access time =500nS (See article in March "77 issue of 73 Magazine for applications including TV-Computer interface)

MCM6571A $9.95

Specs 51.00

MM5320 TV SYNC GENERATOR I.C.

Generate all the sync pulses necessary for camera or video terminals. Use with MCM6571A In the TV-Computer interface . MM5320N SI 8.80

Specs 60c;

C30-1 400V, 25A Stud SCR S2.25

5C45E 500V, 10A Stud Triac $1.59

Insulated Stud 400V, 10A TRIAC assembly with built-in diac. TRI-133 SI.85

TIP-30 40V, 1 amp PNP Plastic 50?

TIP-33 40V, lOAmp NPN Plastic SI .00

LM1815 ADAPTIVE SENSE AMP CHIP.

Used with motor control to adopt to variable input and noise levels. Applications include zero crossing switch, motor control, tachometers, motor testing.

LM1815N S5.72

Specs 30C

1N5393 200V, 1.5A Diode. Sturdy replacement for I N4003 ot a good savings 15/51

DATA BOOKS BY G.E.

OptoElectronics Manual. Filled with spec and applications on a wide variety of Opto devices including many new isolators and couplers. G.E. Opto Manual S4.25

Semiconductor Data Book. A giant book of data, cross references, applications on G.E. devices from transistors and diodes to SCRs, Triacs and power modules. Over 1400 BIG pages. Nearly 5 lbs of book !! !

G.E. Semi Conductor Data Book SI 1.95

Foreign orders add postage for 5 lbs (2.3KG) Power Transistor Users Hondbook. For anyone using power transistors and you want to know how to mount on heat sink, derate or just generally apply them right, this is the book. G.E. Power Transistor Users Book $3.95

"COOK BOOKS"

The famous Howard Sams "Cook Book" series tells you what

and how in a broad range of subjects. Probably the most

widely referenced works in their fields.

Prices quoted include shipping (U.S. only)

TTL Cookbook 328 pages $9.95

Active Filter Cookbook 223 pages $15.95

CMOS Cookbook 402 pages $10.95

IC OP AMP Cookbook 579 pages SI4.25

TV Typewriter Cookbook 250 pages SI 0.95

MC14411 BIT RATE GENERATOR. Single chip for generating selectable frequencies for equip ment in data communications such as TTY, printers, CRTs

ti coprocessors. 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. MC14411 „ . $11.98

4 pages of data .....0 40

Crystal for the above $4.95

• Accuracy. ±0.05% of Reading ±1 Count

• Two Voltage Ranges: 1.999 V and 199.9mV

• Up to 25 Conversions/*

• Zjn> lOOOMohm

• Auto-Polarity and Auto Zero

• Single Positive Voltage Reference

• Standard BSenes CM05 Outpuls-Dni/es One Low Power

Schottky Load

• Uses On-Chip System Clock, or External Clock

• Low Power Consumption: 8.0 mW lypkul (a +5.0 V

• Wide Supply Range e.g.. ±4.5 V to -8.0 V

MC14433 SINGLE CHIP 34DIGITA/D

Single chip combines linear and CMOS digital to bring you

the simplest yet DVM approach,, Requiring only 4 external

passive parts, this subsystem gives you: Auto polarity, auto

zero, single voltage reference, 8 mW operation, overronge,

underrange signals, 25 conversions per second and .05% ±

1 count accuracy! 100 uV resolution. 24 Pin DIP.

MCI4433P with specs $19.55

W

tRi-tek, inc.

6522 nooth 43Rfc avenue.

QlenCiAle, ARizoru 85301

phone 60-2 - 931-6949

We pay surface shipping on all orders over $10 US, $15 foreign in US funds. Please add extra for first class or air mail. Excess will be refunded. Orders under $10, add $1 handling. Please add 50c insurance. Master charge and Bank America cards welcome, ($20 minimum). Telephone orders may be placed 10AM to 5:30PM 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.

Circle 32 on inquiry card.

tfeadep Service

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.

Reader

Reader

Reader

Service

Page

Service

Page

Service

Number

Number

Number

Number

Number

75

Advanced Microcomputer 164

157

Electronic Warehouse 168

260

168

Aldelco 165

247

Electravalue 1 59

40

255

Alpha Digital Systems 151

102

Eltron 169

64

272

Apple Computer 14, 15, 17

257

Fein-Marquart 159

198

275

Artison Computer 128

248

Franklin Electric 67

*

276

Beta Business Systems 1 51

9

Godbout Electronics 170

273

4

Bits Inc 131, 132, 162, 163

*

HAL Communications 1 29

265

*

Byte Index 127

262

Hashizume Burt 161

63

227

Byte Shop East 151

151

Heath Co 68, 69, 70, 71

*

271

Byte Shop of Miami 127

12

IMSAI 5

194

200

California Industrial 166

117

Intel 10, 11

281

#

Camp Retupmoc 151

204

International Data Systems 160

#

127

Comptek 147

268

IOR 161

*

38

Compucolor 60,61

278

Ithaca Audio 145

213

140

Computalker 151

215

Jade Company 1 71

24

161

Computer Corner 159

15

James 172, 173

219

253

Computer Electronics 127

214

John Wiley & Sons 105

201

143

Computer Enterprises 148

209

Logic Design 127

234

176

Computer Mart NH 159

#

MACC 130

27

83

Computer Mart NY 162

18

Meshna 174

282

156

Computer Place 159

261

Micro Computers 161

26

141

Computer Room 115

77

Micro-Term 107

73

208

Computer Shack 111

242

Micromation 26

236

179

Computer Shop (Canada) 127

196

Micronics 161

169

138

Computer Warehouse Store 167

119

Midwestern Scientific Inst 121

59

6

Continental Specialties 126

57

Mikos 175

29

202

CRC Engineering 159

279

Mini Micro Mart 176

164

87

Creative Computing 143

112

MiniTerm 122, 123, 124, 125

96

41

Cromemco 1, 2

*

MITS CIV

205

178

Cybercom 13

250

Mountain Hardware 151

121

223

Data Search 108

71

mpi 145

82

78

Digital Group 28

171

Mullen 144

136

263

Digital Concepts 144

264

MVT Microcomputer Systems 161

32

56

E&L Instruments 113

#

NCC 63, 64, 65, 66

270

79

Economy Company 139

155

North Star Computers 24

137

269

Edityper Systems Corp 114

280

Northern Valley Systems 148

220

47

Electronic Control Tech 127

277

Noval 81, 82, 83,84

222

Page Number

Objective Design Inc 146

Ohio Scientific Instruments 49

Oliver Audio Engineering 161

Omni 147

PC 77 Atlantic City 75

Page Digital Electronics 163

Paia Electronics Inc 23

Parasitic 109, 110

PerCom Data 12, 72

Peripheral Vision 29

Perri-White 110

Personal Computing Expo 149

PolyMorphic Systems Clil

Prime Radix 153

Processor Technology 6, 7, 8

RHS Marketing 98, 99

Riverside Electronic 158

Rotundra Cybernetics 163

SD Sales 177

Sams Howard W 51

Scelbi 25

Scientific Research 79

SEALS 73

Smoke Signal Broadcasting 120

Solid State Sales 178

Southwest Technical Products CM

Sunny Computer Stores 163

Synchro-Sound Enterprises 86, 87

Szerlip Enterprises 108

Tarbell Electronics 146

Technical Design Labs 53

Technical Systems Consultants 107

Tri-Teklnc 179

Urban Instruments 112

Vector Graphic Inc 74

Ximedia 27

Xybek 114

* Reader service inquiries not solicited. Correspond directly with company.

ECME

BYTE's Ongoing Monitor Bex

The Bomb of March

On BOMB Card, Article No.

ARTICLE

1 2 3

4 5 6 7 8 9 10

Kraul: Designing Multichannel Analog Interfaces

Hollis: Newt: A Mobile, Cognitive Robot

Fylstra: Interfacing the IBM Selectric Keyboard Printer

Carr: Interfacing to an Analog World: Part 2

Simpson: Come Fly with KIM

Welles: Software for the Economy Floppy Disk

Wimble: Artificial Intelligence: Part 2, Implementation

Quek: Introduction to Microprogramming

Guzzon: A 6800 Selectric IO Printer Program

McNatt: A Guide to Baudot Machines: Part 3

PAGE

18

30

46

54

76

88

100

116

140

154

The BOMB of March has fallen. In the tabulation of the stacks of cards returned with article evaluations, Jack Breimeir and Ira Rampil came out first, and receive the $100 prize for their article "The Digital Cassette Subsystem, Part 2." Second prize winner in the tally came up as a tie between Steve Ciarcia's "Try This Computer on for Size" and Thomas R Buschbach's "An Inexpensive Joystick Interface." Steve and Thomas will each receive a $50 bonus check."

180

The POLY 81 Microcomputer System

PolyMorphic Systems now offers the complete, assembled, personal computer system—the POLY 88 System 16. A full 16K system with high speed video display, alphanumeric keyboard, and cassette program storage. A BASIC software package providing the most advanced features available in the personal computing market. Features like PLOT and TIME, which utilize our video graphics and real-time clock. Others like VERIFY, so that you know your tape is good before you load another. Or input type-ahead so you can tell your program to run while the tape is still loading (it stores up to 64 characters of commands or question responses to be executed). All these plus a complete package of scientific functions, formatting options, and string capabilities. With the POLY 88 System 16 you can amaze your timesharing friends the very first night!

Polymorphic Systems 11K BASIC — Size: 11 K bytes.

Scientific Functions: Sine, cosine, log, exponential, square root, random number, x to the y power.

Formatted Output • Multi-line Function Definition • String Manipulation and String Functions • Real-Time Clock • PointPlotting on Video Display • Array dimensions limited by memory • Cassette Save and Load of Named Programs • Multiple Statements per Line • Renumber • Memory Load and Store • 8080 Input and Output • If Then Else • Input type-ahead.

Commands: RUN, LIST, SCR, CLEAR, REN, CONTINUE Statements: LET, IF, THEN, ELSE, FOR, NEXT, GOTO, ON, EXIT, STOP, END, REM, READ, DATA, RESTORE, INPUT, GOSUB, RETURN, PRINT, POKE, OUT.

Built In Functions: FREE, ABS, SGN, INT, LEN, CHR$, VAL, STR$, ASC, SIN, COS, RND, LOG, TIME, WAIT, EXP, SORT, CALL, PEEK, INP, PLOT.

Systems Available. The POLY 88 is available in either kit or assembled form. It is suggested that kits be attempted only be persons familiar with digital circuitry.

System 2: is a kit consisting of the POLY 88 chassis, CPU, video circuit card, and cassette interface. Requires keyboard, TV monitor, and cassette recorder for operation, $735 System 16: consists of an assembled and tested System 2 with 16K of memory, keyboard, TV monitor, cassette recorder, 11K BASIC and Assembler on cassette tapes. $2250. System 0: The circuit cards an S-100 mainframe owner needs to be compatible with the POLY 88 software library. System 0 consists of the central processor card with monitor ROM, the video circuit card, and cassette interface, all in kit form. $525.

Prices and specifications are subject to change without notice. California residents add 6% sales tax.

460 Ward Drive

Santa Barbara, Ca. 9311'

(805) 967-2351

PolyMorph

Now you can buy an

Altair*8800b 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 theshelf.

ALTAIR COMPUTER CENTER 4941 East 29th St TUCSON, AZ 85711 16021-748-7363

COMPUTER KITS 1044 Untversitv Ave BERKELEY. CA 94710

14151-845-5300

THE COMPUTER STORE

820 Broaaway

SANTA MONICA. CA 90401

12131-451-0713

GATEWAY ELECTRONICS. INC OF COLORADO 2839 W 44th Ave DENVER. CO 80211 13031-458-5444

THE COMPUTER STORE. INC

I Hartford area)

63 South Main Street

WINDSOR LOCKS. CT 06096

12031-627-0188

MARSH DATA SYSTEMS 5405 B Southern Comfort Blvd TAMPA. FL 33614 18131-886-9890

THE COMPUTER SYSTEMCENTER 3330 Piedmont Road ATLANTA, GA 30305 |404|-231-1691

CHICAGO COMPUTER STORE

51 7 Talcott Rd

PARK RIDGE, IL 60068

13121-823-2388

THE COMPUTER STORE OF ANN ARBOR 310 East Washington Street ANN ARBOR, Ml 48104

13131-995-7616

THE COMPUTER ROOM 3938 Beau D'Rue Drive EAGAN, MN 55122 16121-452-2567

GATEWAY ELECTRONICS. INC 8123-25 Page Blvd ST. LOUIS, MO 63130

13141-427-6116

ALTAIR COMPUTER CENTER 611 N 27th St Suite 9 LINCOLN. NB 68503 I402I 474-2800

COMPUTER SHACK 3120 San Mateo N E ALBUQUERQUE. NM 87110 15051-883-8282. 883 8283

THE COMPUTER STORE 269 Osborne Road ALBANY, NY 12211

15181-459-6140

THE COMPUTER STORE

OF NEW YORK

55 West 39th Street

NEW YORK, NY 10018

12121-221-1404

COMPUTER STORES

OF CAROLINA, INC

1808 E Independence Blvd

CHARLOTTE. N.C. 28205

17041-334-0242

ALTAIR COMPUTER CENTER 5252 North Dixie Drive DAYTON, OHIO 45414

15131-433-8460

ALTAIR COMPUTER CENTER 110 The Annex 5345 East Forty First St TULSA, OK 74135

19181-664-4564

ALTAIR COMPUTER CENTER 8105 SW Nimbus Ave BEAVERTON, OR 97005

15031-644-2314

ALTAIR COMPUTER CENTER 5750 Bintliff Drive Suite 206 HOUSTON, TX 77036

17131-780-8981

COMPUTERS-TO-GO 4503 West Broad St RICHMOND, VA 23230

I804I-355-5773

MICROSYSTEMS (Washington, D C ) 6605A Backlick Rd SPRINGFIELD, VA 22150

17031-569-1110

THE COMPUTER STORE Suite 5

Municipal Park.ng Building CHARLESTON. W. VA. 25301

13041-345-1360

flfc DODOS