Byte Magazine Volume 02 Number 08 - Working with APL

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)

SWTPC announces first dual minifloppy kit under $1 ,i

• it

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

$995 MF-68 Dual Minifloppy

You need dual drives to get full benefits from a minifloppy. So we waited to offer a floppy until we could give you a dependable dual system at the right price.

The MF-68 is a complete top-quality minifloppy for your SWTPC Computer. The kit has controller, chassis, cover, power supply, cables, assembly instructions, two highly reliable Shugart drives, and a diskette with the Floppy Disk Operating System (FDOS) and disk BASIC. (A floppy is no better than its operating system, and the MF-68 has one of the best available.) An optional $850 MF-6X kit expands the system to four drives.

$500 Terminal/Monitor

The CT-64 terminal kit offers these premium features: 64-character lines, upper/lower case letters, switchable control character printing, word highlighting, full cursor control, 110-1200 Baud serial interface, and many others. Separately the CT-64 is $325, the 12 MHz CT-VM monitor $175.

Enclosed is:

$1,990 for the full system shown above

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

$995 for the Dual Minifloppy

$325 for the CT-64 Terminal

$175 for the CT-VM Monitor

$395 for the 4K 6800 Computer

$250 for the PR-40 Line Printer

$79.50 for AC-30 Cassette Inferface

Additional 4K memory boards at $100

Additional 8K memory boards at $250

Or BAC # Exp. Date._.

OrMC# Exp. Date _

Name Address

City State

-Zip

$395 4K 6800 Computer

The SWTPC 6800 comes complete with 4K memory, serial interface, power supply, chassis, famous Motorola MIKBUG® mini-operating system in read-only memory (ROM), and the most complete documentation with any computer kit. Our growing software library includes 4K and 8K BASIC (cassettes $4.95 and $9.95; paper tape $10.00 and $20.00). Extra memory, $100/4K or $250/8K. Other SWTPC peripherals include $250 PR-40 Alphanumeric Line Printer (40 characters/line, 5x7 dot matrix, 75 line/minute speed, compatible with our 6800 computer and MITS/IMSAI); $79.50 AC-30 Cassette Interface System (writes/reads Kansas City standard tapes, controls two recorders, usable with other computers); and other peripherals now and to come.

ra

Southwest Technical Products Corp.

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

TV DAZZLER

O

o) z o o

o

I

o

p\

a

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 ^.P 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 [xP 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.

Q Cromemco incorporated Specialists in computers and peripherals 2432 CHARLESTON RD., MOUNTAIN VIEW, CA 94043

Circle 102 on inquiry card.

(415) 964-7400

Meet the most powerful jjlC system available for dedicated work.

Yet it's only $595t

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 nC

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

iprocessor which is

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 [iP 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.

w'-^&mZ&riftiaii' ■

18 36 44 50 70 158

26 30 81 108 114 120 130 142

4

5

9

17

86

102

129, 156 138 147 152 170 176 176

In the Queue

Foreground

CONTROLLING SMALL DC MOTORS WITH ANALOG SIGNALS

Display Hardware-Sweer-Dwyer-Critchfield UNDERSTANDING APL

Programming Techniques—Iverson HERE'S APL IN ACTION!

Software—Keefe AN APL INTERPRETER FOR MICROCOMPUTERS, Part 1

Interpreter Design—Wimble SERENDIPITOUS CIRCLES

Software-Gal way-Anderson A TRAPPING TECHNIQUE FOR THE 8080

Software—Schulein

Background

A MICROPROCESSOR COURSE

Education—Fohl COSMAC VIP, THE RCA FUN MACHINE

Product Description—Weisbecker EDITORIALIZING WITH YOUR COMPUTER

Software—McGath WHY PEOPLE GET HOOKED ON APL

Software—Atwood AN 8 DIGIT HEXADECIMAL READOUT

Hardware—Burns LOOK WHAT YOU CAN DO . . . WITH AN EDGE AS A CUE

Hardware—Tenny PROCESSING LOGICAL EXPRESSIONS

Algorithms—Maurer SIMPLE ALGORITHMS FOR CALCULATING ELEMENTARY FUNCTIONS

Algorithms—Rheinstein

Nucleus

In This BYTE

Comments on the Acquisition of Knowledge

Letters

Technical Forum: An APL Update

The New Heathkit Computer Line

Book Reviews

BYTE's Bits

What's New?

Clubs, Newsletters

Altair (S-100) Bus Interface New Products

Classified Ads

BOMB

Reader Service

Cover: NEWTON UNDER THE APL TREE by Robert Tinney

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 36I, Arlington MA 02174; phone (617) 646-4329.

Second class postage paid at Peterborough NH 03458 and at additional mailing offices—USPS Publication No. 102410. Subscriptions are $12 for one year, $22 for two years, and $32 for three years in the USA and its possessions. Add $5.50 per year for subscriptions to Canada and Mexico. $25 for a one year subscription by surface mail worldwide. Air delivery to selected areas at additional rates available upon request. $25 for a one year subscription by air delivery to Europe, or DM 60,- for a one year subscription through our European distributor in Darmstadt, West Germany.

Single copy price is $1.50 in the USA and its possessions, $2 in Canada and Mexico, and $3 elsewhere, or DM 7,— through our European distributor in Darmstadt, West Germany.

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.

BITE

Volume 2 Number 8

AUGUST 1977

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

ADVERTISING

Elizabeth Alpaugh

Debra Boudrieau

Virginia Peschke

EDITORIAL ASSISTANT

Ingrid Nyland

PRODUCTION ASSISTANT

Cheryl Hurd

ADVERTISING ASSISTANT

Norecn Bardsley

SUBSCRIPTIONS

Kimberly Barbour

DEALER SALES

Ginnic F Boudrieau

CLUBS, PAPERBYTES

Peter Travisano

TRAFFIC MANAGER

Edmond C Kelly Jr

ART

Mary Jane Frohlich

WaiChiu Li

Ellen Shamonsky

SPECIAL PRODUCTS

Medellin Stephens

Floyd W Rehling

David Wo/mak

EXECUTIVE SECRETARY

Patricia Clark

RECEPTIONIST

Jacqueline Earnshaw

DRAFTING

Lynn Malo

Bill Morcllo

Stephen Kruse

TYPOGRAPHY

Custom Marketing Resources Inc

Good way Graphics

PHOTOGRAPHY

Ed Crabtree

EDITORIAL CONSULTANT

Daniel Fylstra

ASSOCIATES

Waller Banks

Steve Ciarcia

David Fylstra

Portia Isaacson

FOREIGN DISTRIBUTOR

Pan Atlantic Computer Systems GmbH

Frankfurter Sir 78

D6I Darmstadt West Germany

(061 51) 29 29 23

ADVERTISING SALES REPRESENTATIVES

National:

Parker & Short

1 Lakeside Office Park

Wakefield MA 01880

(617} 246-2293

Southern California:

Buckley/Boris Associates Inc

912 South Barrington

Suite 202

Los Angeles CA 90049

(213) 826-4621

Northern California:

Jules E Thompson Inc

Hearst Building

Suite 11 1 I

San Francisco CA 94103

(415) 362-8547

page 70

In This

KITE

One of the most exciting aspects of experimentation with computers is using the computer to make objects move. Distilling this excitement to its simplest form, Leon Swccr, Thomas Dwyer and Margot Critchficld at the University of Pittsburgh's Project Solo have designed a "one-dimensional plotter" which is used as the output display for the familiar Lunar Lander simulation game. Read Controlling Small DC Motors with Analog Signals.

The small computer field is expanding fast. Growing with it is a need for more microprocessor oriented courses in our universities. In his article, A Microprocessor Course, Mark E Fohl explains how he helped initiate a microprocessor course at Franklin University in Columbus OH and details some of the difficulties instructors might expect to run into.

Read Joe Weisbecker's COSMAC VIP, the RCA Fun Machine, a personal description of his new COSMAC VIP kit. This article contains some background information on one man's design philosophy and its result in a new product from RCA.

The lead article of our special section on APL (A Programming Language) was written, appropriately, by the man who developed it at IBM during the early 1960s: Dr Kenneth E Iverson. In Understanding APL Dr I verso n analyzes some basic APL op

erators through a series of questions designed to test your powers of induction. The article concludes with some challenging APL "thought experiments" for your decoding pleasure.

An excellent way to become more familiar with APL is to read David D Kecfe's Here's APL in Action! David has written an APL version of the popular Lunar Lander game along with a detailed description of the entire program to help the reader decipher those high information density APL statements.

Have you ever wanted to own a truly powerful computer? APL may be an answer to this quest for an ultimate language when it is added to an otherwise mundane computer. Mike Wimble's An APL Interpreter for Microcomputers can help you implement APL if you have a flair for do it yourself software. With a little effort you can use any of the popular processors to produce your own APL interpreter from Mike's design.

Have you always wanted to have an elegant looking computer art program for graphic display, but didn't want to spend the time required to program it? Try Serendipitous Circles! Authors Galway and Anderson have discovered a simple algorithm to create beautiful and unusual moving patterns in no time at all.

The ability to handle and manipulate text is a very useful function. It allows programs to be changed very quickly without having to manipulate large amounts of data (and it is certainly better than an IBM correcting Selcctric typewriter for writing and manipulating text). In his article, Editorializing with Your Computer, Gary McGath describes some of the properties of simple text editing programs.

What makes APL such a heavily discussed topic among small system enthusiasts? How docs it differ from BASIC, and why should you use it at all? Allen Atwood discusses all of these topics and more in Why People

Get Hooked on APL. Find out what you've been missing by programming in BASIC.

Often it is necessary to determine the data that is present on a particular port or set of lines of a computer for purposes such as debugging. The usual indicator bit pattern consisting of individual lamps can be very confusing and lead to errors if read quickly. R R Burns offers a solution to this problem. In his article, An 8 Digit Hexadecimal Readout, he describes a test rig that can monitor 32 lines in groups of four bits.

In this issue, Ralph Tenny describes some of the tricks (some call them kluges) which can be done with pulse waveform edges, Schmitt triggers, resistors and capacitors. Turn to Look What You Can Do . . . with an Edge as a Cue to understand some of the design practices you may occasionally find in a processor.

In two earlier articles in BYTE W Douglas Maurer described an algorithm for processing algebraic expressions when implementing compilers or interpreters. In his latest contribution to BYTE's ongoing flow of tutorials on computer science problems and techniques, Dr Maurer presents an ingenious extension of the BauerSamelson algorithm which will enable the do-it-yourself compiler writer to create efficient object code for expressions involving logical operators and comparisons of operands.

Many people use their computers as number crunchers and want quick, accurate algorithms for determining some fairly involved mathematical functions. Typical examples are trigonometric functions, hyperbolic functions and exponentiation. In his article, Simple Algorithms for Calculating Elementary Functions, John Rheinstein details several algorithms to calculate these functions quickly.

How do you gel rid of bugs? Set out a few traps using techniques outlined in John M Schulein's article on A Trapping Technique for the 8080.

4

Editorial

Comments on the Acquisition of Knowledge

By Carl Helmers

I am sometimes asked by persons new to the field, "What is the best way to approach the problem of learning enough about computers and their intricacies to allow the neophyte to accomplish useful tasks?" Some thoughts on this subject, with an aside on simplicity and system design, provide the theme for this essay on the philosophy of personal computing usage and experimentation. My point of departure for this thought journey is an old but useful princle adapted to a modern context.

The Principle of Simplicity

There is a famous rule of thumb which is well-known to philosophers, logicians, mathematicians and natural scientists, which might be called the "Principle of Simplicity." The familiar name for this principle is the rule of "Occam's Razor" after a medieval logician (William of Occam) who has become identified with the concept. Paraphrased from the typical undergraduate

Continued on page 66

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 tobies 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. ■

If you've been looking for S-100 bus 16K module expansion... look no further. Solid State Music is delivering, today, through more than 75 computer stores, coast to coast.

Delivery is just one of the benefits you'll get from Solid State Music. The New MB-7 16K static board is packed with features that give you total system versatility and expansion at a price you can afford.

• Low power—(+8V @ .55A, +16V @ .08A, -16V @ .03A typical).

• High speed—32-4K x 1 200ns static RAMs.

• Fully buffered—All data output, input and address lines are fully buffered.

• Automatic unprotect and memory protect—Memory protects in 4K block segments and memory automatically unprotects at power-on.

• Memory disable—ROM monitor can initialize system at power-up or reset (SOL compatible).

• Expansion beyond 64K—Low power features and a board-inhibit line allows expansion beyond normal 64K capacities.

• Quality construction—includes low profile Tl sockets and gold edge connectors.

The new MB7 16K static board is priced at just $525.00, in easy-to-assemble kit form, or $625.00 fully assembled and tested.

Contact your local computer store today for complete details on the new MB7 or other fine Solid State Music products.

Solid State Music 2102A Walsh Avenue Santa Clara, CA 95050 (408) 246-2707

WE'RE THE BLUE BOARDS!

Sol Terminal Computer

A fcxi

t

■

Todoreal work with any computer, big or small, it takes a complete system. That's one of the nice things about the Sol-20. It was built from the ground-up as (he heart of three fixed price computer systems with all the peripheral gear and software included to gel you up and on the air.

Sol System I costs just SIM1) in kit form or S2I2() fully burned in and tested. Here's what you net: a Sol-20 with the

i as pel sonant y module lor si and alone coin pi Her power,

\()2 word memory, a 12" 'I V/video monitor, a cassette

rder with MASK' software tape and all necessary cables,

Sol System II has the same equipment plus a larger

^v

■

■ *

.,.acity 16,384 word memory. It sells for S1883 in kit form: S2283 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. $4750 in kit form, S5450 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 com*

iputer Sysii;

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 oi our iuiiv uiusiraiea n page catalog. Or you may write or call us if more convenient. Please address Processor Technology, Box B, 6200 Hollis Street. Emeryville, CA 94608. f415) 652-8080.

See Sol here

ALABAMA

ICP, Computerland 1550 Montgomery Hwy Birmingham, AL 35226 (205)979-0707

ARIZONA

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

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

Byte Shop Tucson 2612 E. Broadway Tucson, AZ 85716 (602) 327-4579

CALIFORNIA

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

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

(916)961-2983

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

Data Consultants, Inc. 2350 W. Shaw, Suite 114 Fresno, CA 93711

(209)431-6461

Bits'N Bytes

679 S. State College Blvd. Fullerton, CA 92631 (714)879-8386

The Byte Shop 16508 Hawthorne Blvd. Lawndale, CA 90260 (213) 371-2421

The Byte Shop 1063 El Camino Real Mountain View, CA 94040 (415) 969-5464

Digital Deli 80 W. EI Camino Real Mountain View, CA 94040 (415) 961-2828

The Computer Marl 624WestKatella#10 Orange, CA 92667 (714)633-1222

The Byte Shop 2227 El Camino Real Palo Alto, CA 94306 (415)327-8080

Byte Shop

496 South Lake Ave.

Pasadena, CA 91101

(213)684-3311

The Computer Store of San Francisco 1093 Mission Street San Francisco. CA 94103 (415)431-0640

Byte Shop

321 Pacific Ave.

San Francisco, CA 94111

(415)421-8686

The Byte Shop 2626 Union Avenue San Jose, CA 95124 (408) 377-4685

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

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

The Byte Shop 3400 El Camino Real Santa Clara, CA 95051 (408) 249-4221

Recreational Computer

Centers

1324 South Mary Ave.

Sunnyvale, CA 94087

(408) 735-7480

Byte Shop of Tarzana 18424 Ventura Blvd. Tarzana, CA 91356 (213)343-3919

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

Byte Shop

14300 Beach Blvd.

Westminster, CA 92683

(714)894-9131

COLORADO

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

FLORIDA

Sunny Computer Stores

University Shopping

Center

1238A S. Dixie Hwy.

Coral Gables, FL 33146

(305) 661-6042

Delta Electronics 2000 U.S. Hwy. 441 East Leesburg, FL 32748 (904)357-4244

Byte Shop of Miami 7825 Bird Road Miami, FL 33155 (305)264-2983

Microcomputer

Systems Inc.

144 So. Dale Mabry Hwy.

Tampa, FL 33609

(813)879-4301

GEORGIA

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

ILLINOIS

The Numbers Racket 623'/2South Wright St. Champaign, IL 61820

(217)352-5435

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

Reeves Communications 1550 W. Court St. Kankakee, IL 60901 (815)937-4516

ilty bitty machine CO. 42 West Roosevelt Lombard, IL 60148 (312)620-5808

INDIANA

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

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

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

The Data Domain 219 West Columbia West Lafayette. IN 47905 (317)743-3951

KENTUCKY

The Data Domain 3028 Hunsinger Lane Louisville. KY 40220 (502)456-5242

MICHIGAN

The Computer Store of Ann Arbor 310 East Washington Ann Arbor, Ml 48104 (313)995-7616

Computer Mart or Royal Oak 1800 W. 14 Mile Rd. Royal Oak, MI 48073 (313)576-0900

Genral Computer Store 2011 Livernois Troy, Ml 48084 (313) 362-0022

NEW JERSEY

Hoboken Computer Works No. 20 Hudson Place Hoboken, N.I 07030 (201)420-1644

The Computer Mart of New Jersey 501 Route 27 Iselin, NJ 08830 (201)283-0600

NEW YORK

The Computer Mart of Long Island 2072 Front Street East Meadow, L.I., NY 11554 (516)794-0510

Synchro Sound

Enterprises

193-25 Jamaica Ave.

Hollis, NY 11423

(212)359-1489

The Computer Shoppe 444 Middle Country Rd. Middle Island, NY 11953 (516) 732-3086

Audio Design Electronics 487 Broadway, Ste. 512 New York, NY 10013 (212)226-2038

The Computer Mart

of New York

118 Madison Ave.

New York, NY 10001

(212)686-7923

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

OHIO

Cybershop

1451 S. Hamilton Rd. Columbus, OH 43227 1614)239-8081

OKLAHOMA

High Technology 1020 West Wilshire Blvd. Oklahoma City, OK 73116 (405)842-2021

OREGON

Byte Shop Computer Store 3482 S.W. Cedar Hills Blvd. Beaverton, OR 97005 (503) 644-2686

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

Byte Shop Computer Store 2033 S.W. 4lh Ave. Portland, OR 97201 (503)223-3496

RHODE ISLAND

Computer Power, Inc. M24 Airport Mall 1800 Post Rd. Warwick, RI 02886 (401)738-4477

SOUTH CAROLINA

Byte Shop 2018 Green Street Columbia, SC 29205 (803) 771-7824

TENNESSEE

Microproducts & Systems 2307 E. Center St. Kingsport, TN 37664 (615) 245-8081

TEXAS

Byte Shop 3211 Fondren Houston, TX 77063 (713) 977-0664 Computertex 2300 Richmond Ave. Houston, TX 77098 (713)526-3456

Interactive Computers 7646V2 DashwoodRd. Houston, TX 77036 (713)772-5257

The Micro Store 634 So. Central Expressway Richardson, TX 75080 (214)231-1096

VIRGINIA

The Computer Systems

Store

1984 Chain Bridge Rd.

McLean, VA 22101

(301)460-3634

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

WASHINGTON

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

The Retail Computer Store 410N.E.72nd Seattle, WA 98115 (206) 524-4101

WISCONSIN

The Milwaukee Computer Store 6916 W. North Ave. Milwaukee, WI 53213 (414)259-9140

CANADA

Trintronics 160 Elgin St. Place Bell Canada Ottawa, Ontario K2P 2C4 (613)236-7767

First Canadian Computer Store, Ltd.

44 Eglinton Ave. West Toronto, Ontario M4R 1A1 (416) 482-8080

The Computer Place 186 Queen St. West Toronto, Ontario M5V 1Z1 (416)598-0262

Pacific Computer Store 4509-11 Rupert St. Vancouver, B.C. V5R2J4 (604)438-3282

153^^

Circle 104 on inquiry card.

OPTIMIZING KEYBOARDS?

i

ED/TOR

BYTE

70MAINST,

N.H. WMW

CW Mr. porters;

Ja uow edcfaw '^a April 1177 BUJr, uou mode mevvfion ot tW Dvorak susrem. Bu. one rf "Hiose peqjl W r1 Coincidences, Mono, areat *lmc(s IlKe ourse/ves, J was luadliM a cwiospi of tyi eraonomic tej.bocwq.-based upon"Tle ^CVovciK ■su-^ei^ and "Hie new f?C.D. Ltd.'s LtzQoMns RoacljWflborouaVlj IfWsjtmlcmcJ] McJtoDKl LUMnC tepuuntef - WU-Doaircl (■see pVjtc, pg,% Apnm77 Popufar Science J. Dew fs a irouak Vev^toHjHeactirJ keus-smcleiwcJlui/i/ecl-ooMuieo Ke.u&-s,lntW W rooi^ksi". CUce ot +wdioiAS a^W«WU.

1u

Iteee^-lo we before svml! tompirieir/W^tWs become move ttu/vjeisa/ we fc-Waldi"n>rt^itKct€ Hie DnokqK *«rsp\owiic deswiis.

6Wu 600 mi an

Hardmsbura j <u. tOIH-j C5o2-) 257-W06 J

random path is surprisingly nol much greater than the time required using a regular path (nonrandom path). This gadget has been marketed for some time. A similar idea could be used for a home vacuum cleaner, although making it small enough to sweep under the furniture would be a tough mechanical problem. Those who were devotees of B grade TV as children will recall a "Science fiction Theater" story thai featured a mysterious couple from the future who used such a gadget in their home. Of course, Dan Davis has already invented it. (See Heinlein, R A, The Door into Summer, Signet Books, New York). I bought il when paperbacks were still 50 cents. In the book, "Hired Girl" was first marketed in 1970; however, not in this universe.

William R Hamblen

946 Evans Rd

Nashville TN 37204

MORE INFORMATION ON MOWBOT

Enclosed is a data sheet lor the Mowbot automatic lawnmower which I distribute in the Cincinnati Oil area. This lawnmower has been around for at least seven years and costs considerably less than the $1500 quoted in the letter from lames Ward found on page 59 of April 1977 BYTE.

The lawnmower is completely automatic and will cut around trees, permanent obstacles and patios with no problem. The secret to the Mowbot's performance is in a buried 14 gauge copper wire which is placed around the perimeter of your yard about 1 to 2 inches below the surface. The signal generator which conies with the Mowbot generates a high frequency current which the Mowbot will detect and turn away from. The Mowbol's pattern is completely random which gives your lawn a finished manicured look. And meanwhile, you are off watching TV, playing golf or working on your robot to clean your house (a chore the Mowbot will not presently perform).

I thought you might be interested in this "robot" lawnmower. If I can be of any more assistance, please let me know.

Kim Pollock 11824 Fairsprings Ct Cincinnati OH 45246

With the ability to redefine keystrokes at will, it is possible to do considerable experimentation with keyboard meaning just within the confines of a standard key layout. The PCD keyboard seen in Popular Science April 1977 and sketched in your letter represents experimentation with physical placement, a different order of problem.

HIRED GIRL AND THE MOWBOT

Re: James F Ward (Ask BYTE, BYTE, Volume 2, Number 4, page 59):

There is a robot lawnmower. It is called "Mowbot," and has been written

up in magazines such as Scientific American and Esquire. It is a self-propelled mower that covers the area to be mowed in a random walk. Out-of-bounds areas are marked by a current carrying wire buried just below the surface of the ground; the Mowbot senses the magnetic field around the wire and "bounces" off the boundary in a random direction. If it contacts an object, it stops. Besides not requiring an operator, one claimed advantage is that the random path covered by the machine eliminates undesirable mowing patterns. The time required to cover a given area in a

The Mowbot is manufactured by Kistler Products, 9 Hacket Dr, Tonowanda NY 14150. A factory representative in phone conversation said that a limited number are available from stock for $775. The company also markets a swimming pool cleaner which works on a similar principle.

SMALL COMPUTERS

While skimming EDN magazine this morning I found an item that brought to mind your April 1977 editorial concerning Arthur Clarke's Minisec. Pages 43 to 46 of the April 20 1977 issue of EDN have an article on a microproces

sor based calibration aid used by the US Navy. Of particular interest is the means of operator interface. Under control of a PACE processor, an 80 by 256 dot matrix plasma display panel displays various control legends and prompting messages as well as graphics, like XY plots. A 16 by 4 infrared sensor-detector array "looks through" the display panel to detect the presence of an operator's finger on any of 64 spots on the panel.

Now, wouldn't it be nifty to use something like that as the front panel of our home computers?

How about the pocket computer? Well, not yet, but today we could build a personal computer about as large as a portable cassette tape recorder. Texas Instruments now supplies samples of a 92 K magnetic bubble memory (complete with all magnetics) in an oversized 14 pin DIP. That's 11.5 K bytes on one chip with nonvolatility, too!

Put together a processor, the panel display/sensor arrray, a bubble memory package or two, and a NICAD battery pack, perhaps even a cassette drive, and you have a truly portable personal computer 300 years ahead of its time.

D Lamkins

D B L Electronics

Canton MA 02021

SURPRISE!

Dear Carl/Karl,

Yes, it's a small universe . .. and I'm embarrassed to say that I'd never even noticed the name of BYTE's editor. . .

Although the January issue is the latest to arrive here by balsa-wood raft, my ever-loving editor at Ballantine Books, Judy-Lynn del Rey, has airmailed me your editorial on Imperial Earth, which I read with great interest. I was well aware of the total impossibility of imagining 23rd century technology, and

am glad that my "Minisec" isn't already listed in next reason's models. Incidentally, the new Casio CQ-1 does contain a clock/calendar of the type I suggested!

However, the COMSOLE is already upon us! Earlier this month I watched the British Post Office engineers demonstrate their VIEWDATA system at the Venice EUROCON 77 (see enclosed leaflet). When fully developed, it will do essentially everything I described in Chapter 24.

Concerning alphanumeric keyboards for a hand-sized device, I agree that you wouldn't use them for extended keystroking. But you'll need them to make brief entries for such purposes as directory and dictionary information (vide the problem of the wristwatch telephone directory, which I mentioned in my speech at the MIT telephone centennial —you'll find it in the upcoming 777e View From Serendip).

When I was in Boston last year I was fascinated by the video displays in Marvin Minsky's lab, and am determined to take one back to Sri Lanka with me on my next visit in October. . . if I am able to make a choice from your embarrassing selection of riches. (ECD's Micromind seems the one that best fills the bill, as all I really want to do is to make pretty pictures and impress the neighbors.)

Arthur C Clarke Colombo SRI LANKA

BUG REPORT: AMSAT MONITOR

I just wanted to call your attention to a program bug in the AMS80 monitor you published in September of 1976, page 108. The punch routine will not punch out high memory correctly if the ending address is over FFEFH. The program, as it stands, requires that the lower limit +16 be greater than the

upper limit at the end of the program to start its last record (03BB DAC303 JC PN1). Changing this instruction to JM PN1 solves this problem.

D K "Billy" Manzarek

8609 Cedros St, #2

Panorama City CA 91402

BUG REPORT ON "FLIGHTS OF FANCY . . ."

In the March 1977 issue I found an old friend about whom I'd like to make a few comments. I am referring to "Flights of Fancy with the Enterprise." This version of Star Trek is a modified version (aren't they all) of STTR1, the Star Trek game provided by HewlettPackard for their 2000F series timesharing systems. Further, it was a submitted program, so who knows where it came from originally. I ran across it in their program library listings soon after I had discovered computers and programming in high school. Being an optimistic beginner I decided that I would modify it to run on our 2000E series system which did not support formatted output nor have a workspace large enough to hold the entire program.

After some work I succeeded in splitting it into three pieces which could chain (call into execution) to each other, and which communicated through a common block which was undisturbed by the chaining process. As a side effect of this work I discovered some of the bugs in the original version, one of which is still present in the listing which appears in the March issue.

If one attempts to warp out of the galaxy, the program will die a ghastly death with a subscript out of range error. This is because the handy code used if you move more than one quadrant (lines 1360 to 1470) does not check for or correct this situation. To see that this

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 (MPS) 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

PEFGOM

PerCom Data Co.

P.O. Box 40598 • Garland, Texas 75042 • (214) 276-1968 PerCom - 'peripherals for personal computing'

TEXAS RESIDENTS ADD 5% SALES TAX

10

POWER.

IMSAI Introduces the Megabyte Micro!

The Megabyte Memory

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

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 I6K 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 16K 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 MicroIM 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 106 on inquiry card.

GENTLEMEN: I'm power hungry!

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

□ Send 32K RAM Board Kit $749 □ Assembled $ 1099

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

□ Send IMM ROM Control Kit $299 [J Assembled $399

□ Send [MM EROM Control Kit $499 {J Assembled $699

□ Send full catalog $1.00

Check/MO enclosed. Ami. $

Charge my: QBAC QM/C

* Exp. Date:

Sig

Q Send name of my nearest IMSAI dealer

Name

Company .

Address

City.

_ Title.

Stale/Zip .

MBM

®

IMSAI Manufacturing Corporation

14860 Wicks Blvd.

San Leandro, CA 94577

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

problem really exists, start in quadrant 1, I sector 1, 1 and move in direction 3 with a warp factor of 1 (Q1 = 1, Q2 = 1, S1 = 1,S2 = 1, W1 = 1, CI =3). You will find that you end up in quadrant — 1, 1 sector 8, 1 and the next time an array is indexed with the quadrant coordinates you will have a problem.

Exactly what one should do isn't clear: you can either type a nasty error message and stop the ship at the edge of the galaxy, or you can make the galaxy "circular" so that the ship comes back in on the other side. In my original correction I modified the move section to actually move the ship from one

AN APL BIGOTSPEAKS

DEAR EDITOR;

YOU MAY CONCLUDE FROM THIS LETTER THAT I AM AN APL BIGOT. YOU, OF COURSE, ARE CORRECT. I AM TYPING THIS LETTER ON MY SELECTRIC II USING MY APL ELEMENT (987). I PRESENTLY DO NOT HAVE MY OWN PERSONAL COMPUTER SYSTEM BUT AM LOOKING FORWARD TO THE DAY WHEN I CANBEGIN THAT PROJECT. I USE (OR MISUSE) APL ALMOST DAILY IN MY WORK AND OCCASIONALLY HAVE AN IBM 5100 AT MY DISPOSAL FOR A WEEKEND. I AM OVERJOYED TO SEE THE MOMENTUM THAT APL IS STARTING TO PICK UP HERE IN THE UNITED STATES. CANADA AND EUROPE ARE WAY AHEAD OF US IN ACCEPTING APL AS THE CONCISE PRODUCTIVE LANGUAGE THAT IT IS.

I READ WITH INTEREST THE ARTICLE ON APL IN THE NOVEMBER BYTE BY MR. ARNOLD. THE ARTICLE WAS A GOOD INTRODUCTION TO APL. THE DEFINITION OF THE PRIMITIVES WAS INCOMPLETE AND THE REPRESENTATION OF THE PRIMITIVES WAS CRUDE AT BEST. I WILL TYPE THE COMPLETE CHARACTER SET WITH OVER-STRIKES AT THE BOTTOM OF MY LETTER SO THE READERS CAN SEE IT IN ALL ITS BEAUTY. ON MR.

ARNOLDS MICRO-PROCESSOR APL SPECIFICATIONS MY COMMENT IS '..BACK TO THE DRAWING BOARD. • A MICRO-PROCESSOR IS NOT A 360/370 SO WHY ADOPT THEIR FORMAT. ALSO USING 4 BYTES TO REPRESENT A CHARACTER IS RIDICULOUS. I HAVE READ OF AN APL IMPLEMENTATION DONE IN EUROPE ON A 15-BIT 16K MACHINE THAT USED THE COMPLETE APL LANGUAGE. THEY HAD DISKS ATTACHED TO THE MACHINE. I THINK THE ANSWER IS TO USB A COMBINATION OF FLOPPY DISK AND PROM I ROM TO PROVIDE THE INTERPRETER. THE IBM 5100 MANAGES TO PUT THE FULL APL LANGUAGE IN iHK. ISN'T THERE A SIMILAR APPROACH FOR MICRO? (LET ME EXPLAIN THAT MY USE OF PROM/ROM IS NOT BASED ON ANY KNOWLEDGE OF WHAT THEY REALLY ARE OR MEAN. I'VE JUST READ THE TERMS AND HAVE A VAGUE IDEA ABOUT THEM. I AM MORE SOFTWARE ORIENTED. I DON'T HAVE ANY HARDWARE KNOWLEDGE. ..HELP'.'.)

IN THE FEBRUARY ISSUE OF BYTE I SAW SEVERAL LETTERS ASKING ABOUT FINDING AN APL ROM. AGAIN, I MAY BE WAY OVER MY HEAD, BUT SEEMS TO ME THAT THE IBM 5100 MUST HAVE A ROM OR SOMETHING FOR CHARACTER GENERATION. CAN THAT BE INTERFACED WITH EXISTING SYSTEMS TO GET THE DESIRED RESULT?

FINALLY, THE BYTE STAFF SHOULD BE HUNG FROM THE NEAREST YARDARM. YOU ACCEPTED AN ARTICLE FROM DR. KENNETH B. WELLES WHICH CONTAINED A PICTURE OF A HOME-BREW MODIFIED SELECTRIC TYPEWRITER AND NOT A WORD ON THE CONVERSION. I HAVE READ MANY LETTERS IN BYTE BEGGING FOR INSTRUCTIONS ON HOW TO MAKE THE CONVERSION. IF YOU ACCEPT ANOTHER ARTICLE FROM DR. WELLES WITHOUT A COMPLETE DETAILED DESCRIPTION OF THE SELECTRIC CONVERSION PROCESS, 1 WILL PERSONALLY COMMIT BATTERY UPON YOUR PERSON.

I ENJOY YOUR PUBLICATION AND AM THE PROUD OWNER OF ALMOST A

COMPLETE SET OF BYTE. SOMEHOW I HAVE MISPLACED ISSUE 2 IN THE

PROCESS OF MOVING FROM CALIFORNIA TO ILLINOIS. KEEP UP THE GOOD WORK'.

SIMJOERELY ,

■;f fcX^Xti,

GARY J. LUTHER

RR 1

ROCHESTER, IL 6 2 563

PS: HERE IS THAT BEAUTIFUL CHARACTER SET I PROMISED.

sector to the next, across as many quadrants as necessary to complete the move. This single stepping allowed me to catch the ship in the act of trying to leave the galaxy and to stop it at the edge with a warning about navigation out of the galaxy being prohibited. These changes or those to implement any other reasonable solution arc not difficult but do require careful thought. In hand tracing my example above vou will find a bug new to this version: the array C (which is used in course calculations) is not completely defined. In lines 1 70 and 1 80, only 1 1 of the 1 8 elements are initialized. What the other seven have in them when they are first used (presuming your system will let you evaluate expressions with undefined variables in them) is anyone's guess and will most certainly not be what you want. The other seven values should be defined in say line 185 as follows:

85 C[1, 2] = C[2, C[7, 1] = C[8, C[9, I] =1

C[6, 1] C[8, 2]

I don't wish to sound like I'm putting Mr Price's work down; overall, this version looks quite reasonable. I do have two suggestions (both are things that were in the original but are not in this version) which I feel make the game more enjoyable.

1. The short range scans should be completely optional as they take a long time to type on a Teletype and are often not needed.

2. The player should be told what quadrant and sector they arc in after each ship movement. It seems to me that this game would be very difficult to play since you don't know where you started nor where you are in the galaxy. How do you know where to look for the rest of the Klingons without wandering around aimlessly hoping to find them? (Not knowing where you've been makes it hard to know where you haven't been.) This lack of information also makes the "flight out of the galaxy" bug worse; if you don't know where you are it's easier to go too far the wrong way.

I also seem to remember that there is a problem in the library computer section, but I don't remember exactly what or where it is. Perhaps it has been corrected in this version. If it comes back to me I'll let you know.

John Stafford

4231 Casa de Machado

La Mesa CA 92041

<< = >>*va-; ?wcp~tlio*-> a[L_V&o'D() cDnuiT|;:\ G®t)4>0[r]F3\/¥ 1234567890-rx QWERTYUTOP* ASDFGHJKLi'i ZXCVBNM,./ iV«!H**I

Information on Selectric conversions is coming; have patience. Dan Fylstra's article on the IO Seleclrics is a first step, for the electronics of his interface is the same as that required for a converted manual machine. The mechanical details

of the interface are discussed in one article presently being edited and a second article promised (but not yet in our office). Both of these future articles are written by people who have successfully accomplished working systems.

HOMEBREW?

First of all, as a newcomer to BYTE, I must say you have a very good set up, but after reading awhile I must call

Continued on page 136

12

■

IS YOUR DOLLAR BUYING

AS MUCH POWER & FLEXIBILITY

AS TDL'S XITAN SYSTEMS PROVIDE?

rolafc

OUR CUSTOMERS SAY

THINGS LIKE THIS

ABOUT TDL PRODUCTS:

7v\2I

"... the best CPU board I've put together... excellent parts... .

IRC

Cambridge, Mass.

KMM

Bella Vista, Ark.

"... high quality components, good engineering & complete

;... .wp

Seattle, Wash.

"Excellent."

Col. DWW

Santa Maria, Calif.

"Very impressed with superb quality."

SK-L

Boston, Mass.

alpha 1

When we combined our highly praised ZPU board and our 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 1. By adding a CRT terminal and/or teleprinter you will have a complete computer system.

KIT: $769 ASSEMBLED & TESTED: $1039

alpha 2

By adding a Z16 memory module and our PACKAGE A software to the alpha 1 we created a second XITAN system, the alpha 2. Thus, a complete and extremely powerful micro-computer system emerges well worthy of you who are operating at the 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 8K Basic, the Text Output Processor, the 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: $1749

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.

i'Write for descriptive brochure on the XITAN alpha series and system software. When you ask at your dealer, say "ZY-TAN."

ORDERING INFORMATION: Send check, money order or BankAmericard, Master Charge current 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.

Circle 107 on inquiry card.

ITECHNICAL

DESIGN

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

Introducing Apple II.

t

mszwom&t?^*-"

Jk%Z

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 II's 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.

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 48v, 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 integer 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 pqrt_

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

_«~

tipple computer inc.

Circle 108 on inquiry card.

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

Order Form

□ 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

Phone _

.Zip

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

D Master Charge

Card Number

Expiration Date Signature

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

Circle 108 on inquiry card.

An APL Update

E H Anthony Zoology Department University of Guelph Guelph, Ontario N1G 2W1 CANADA

You and your contributor, Mark Arnold, are to be congratulated for introducing your readers to APL. Nevertheless, the article in your November 1976 issue may benefit from updating with respect to current usage of some fundamental terminology, especially for those who may have encountered APL for the first time in your journal.

Arnold lists functions such as + -- X t "f'tbut calls them operators. They are functions. Then, when he gets to operators, such as / and . , Arnold calls them composite operators. They are simply operators. Is this not merely nit picking? No, it is not. Is this distinction in terms really important? Yes, it is. To say otherwise is to overlook much that is significant in the evolution of APL.

I believe the corrections proposed here align with the grain of APL in a significant manner. Computer languages scarcely bear close comparison with APL for the simple reason that it is more than just a computer language. First and foremost it is a teaching language. Teaching is the role for which it was born. Requiring a language to be useful in teaching apparently invokes a different and better set of constraints than merely requiring that it enable us to operate a digital computer. In general, it may be said that what is good for teaching is good for all aspects of society. Certainly computer science is not immune to this thesis.

An obvious requirement of a teaching language is consistency in notation and terminology. The lack of such consistency has been a common source of difficulty for those learning traditional mathematics. Common functions like plus and minus have frequently been referred to as operators, while less common ones like sine and cosine

have been called functions in the same text. This distinction in terminology tends to divert attention from the basic activity they have in common, namely accepting an (nonfunctional) argument (or arguments) and returning a result. Using terminology that relates them to the same class of activity emphasizes the underlying unity. The term function seems admirably suited to that usage, although the choice is obviously arbitrary.

Operators perform a higher level of manipulation in APL. They are characterized by the fact that they take a function as one or both of their arguments. (Their introduction necessitates a hierarchy in the order of execution, such that operators are executed prior to functions.) The differences between function and operator in APL may be illustrated with reference to the symbol / , which serves dual roles. If we say / 0 I 1 Ojl 2 3 4 5 , we are using the symbol as a compression function. It then has a Boolean vector as left argument and an ordinary numeric vector as a right argument and returns 7 3 4 as a result. Note that neither argument is a function; the only function in the expression is compression, represented by /. If, on the other hand, we say +/J 2 3 4 5, we are using / as the reduction operator. It takes as its left argument a primitive scalar dyadic function, ie: a function whose three properties are indigenous to APL (present on the keyboard of an APL terminal), that it is defined initially for scalars (single numbers), and that it accepts two arguments. In this specific instance, the left argument of reduction is the plus function. Plus reduction is summation and the oper

Continued on page 106

17

Photo I: A detail of the actual model, in operation in the authors' Project Solo laboratory at the University of Pittsburgh. The program used to drive the output device is a relatively conventional BASIC version of lunar lander, with modifications to use the analog inputs and outputs diagrammed in figure 1. Input comes from a "throttle" stick which is a lever mounted on a potentiometer read by an analog to digital input conversion channel. Outputs from several digital to analog conversion channels drive display meters (see figure I), as well as the voltage set point of the motor drive electronics described here. In the authors' system, these analog conversion functions are provided by a Cromemco conversion module which plugs into an Altair (S-IOO) bus backplane of the computer which runs BASIC for the lunar lander simulation.

Controlling Small DC Motors with Analog Signals

(Or, the Key to Making a Realistic Lunar Lander Simulation Display)

Leon Sweei Thomas Dwyer Margot Critchf ield Project Solo University of Pittsburgh Pittsburgh PA 15260

Microcomputers are starting to show up in an unexpected variety of places: engineering labs, businesses, factories, golf courses, radio stations, the home, and most recently, the classrooms of adventuresome teachers.

One consequence of this growth has been a rapid expansion in what might be called "blue sky" thinking about how computers might be used. Amateurs aren't afraid to fantasize a bit, knowing that's where half the fun lies. Even when these ideas are too ambitious for immediate implementation, they often suggest simpler partial projects that will eventually fit in as components of a bigger system. For example, getting simple black and white graphics to work on CRT monitors could be the prelude to running a more ambitious sound and color "spectacular" under computer control.

Our experience at Soloworks in applying computers to education indicates that working at this imaginative level helps foster the natural ability of people to learn through creative explorations. This in turn suggests that the more flexible the technology, the better the learning. Computers hold special promise because of the way they can be "transformed" with software. Their main limitation has been at the inter

face level. For example, it has not been easy to find hardware for controlling "things" (as opposed to symbols on a terminal).

An important first step in solving this problem has been the appearance of analog to digital and digital to analog interface boards (eg: the Cromemco D+7A). On the input side, continuous joystick control now becomes easy. But what about output? In particular, it now makes sense to ask if a computer can be used for control of continuous DC motors. We'll also want to ask if computers can move things according to algorithms that specify position. The answer is yes, provided that (a) we can find a way to amplify the analog output so it can drive a motor, and (b) we can create a feedback path that lets the motor know if it has run long (or fast) enough to accomplish the task at hand.

This article describes one simple approach to solving these two problems. In order to make the ideas involved easier to follow, they are presented in terms of a specific project, namely building a one-dimensional dynamic plotter for use with a "lunar lander" style game. However, with a little imagination, many other applications of these ideas should be possible, including the control 6f several motors.

18

INSTRUMENTS

a

z

-•-FEEDBACK

MOTOR CURRENT

ZT^

□

0 © © O

LANDING PAD

^

Figure I: A pictorial diagram of how the one-dimensional plotter fits into the implementation of a planetary landing simulator. The motor drive circuits (2) use feedback to set the altitude of the model ship based on the current set point command Xc issued by a digital to analog conversion output of the computer. The computer (I) implements a mathematical model of the spaceship's flight based on analog to digital conversion of a throttle signal input, with analog output of the ship's altitude as voltage Xc.

The One-Dimensional Plotter

A plotter is an electro-mechanical instrument for displaying the position or motion of some object, usually as a function of time. It can be used for such things as showing the flight path of an airplane or the trajectory of a rocket. To display the position of an airplane it would be necessary to have a three-dimensional display or a three-dimensional plotter (x, y and z, where z is altitude). To show the flight path of a plane flying at constant altitude only a two-dimensional plotter would be needed. The graph produced would have one axis corresponding to the north-south component of motion, while the other axis would represent the east-west component.

While most general plotting work is done in two dimensions with the mechanism dragging a pen to create a picture on paper, a one-dimensional plotter also has applications. For example, a one-dimensional plotter could be used to show the vertical descent phase of a spaceship making a simulated landing on a moon or planet. A small scale model of the spaceship could be raised and lowered a number of feet with

respect to a landing surface (the planet's surface) by a motor-driven derrick-like arrangement. The result would be a dynamic plotter that allowed the "pilot" to practice landings in one-dimension, up-down (see figure 1). Later, other components of motion (dimensions) could be added by using a fancier mechanical setup.

Authors' note; The next few paragraphs can be read over rapidly by those who are not familiar with calculus.

In this design, the information displayed, either graphically or dynamically by a plotter, is the position of the spaceship or other object of interest. The plotter must be told the initial position, and any changes in position as part of the mathematical model of a spaceship landing. Sometimes this change information is not known directly, and must be calculated from other information, such as velocity. For the spaceship problem, the change in position (called displacement or AX) can be calculated from velocity by integrating the velocity with respect to time AX = J'Jv dt. For a constant

19

Figure 2: A block diagram of the ship's position display system (.') unci the programming model oi the ship's behavior which drives the display plotting device (IJ.

MOTOR WITH GEARS AND PULLEYS

<4 fc,

CONTROL SOFTWARE WIIH POTENTIOMETER INPUTS

velocity, the displacement X is the velocity multiplied by time, X = vl H both the velocity and d en1 are nol known

thc\ may be calculated From the accelera tion "| thi i< ■ hip fwhii li is pi'i>pi'»i tiun.il to rocket thrust). 11 .1 acceli 1 ition,

V = J0 a dt (assumin ; velocil

■ 1 cm)

and therefore,

Ax=/5(/3 1 dt) dt.

I hese mathematii al integi ition can b pei formed with anali ig cin uits, 01 with a digital computei r in numnu .1 mi ei aiiun mi il ods.

One e thi displacement o1 the ship i h

rived hum 111 > ai i eleration 01 veloi u>. g

cither kind ot t ■onipuiri • 1 in be Used to supply ihi input i" iln one dimen iional altitude plottei rhi job of the plottei is to move the modi I ship to a position equal to its initial poi ition plus the displai emi nl Let's call this correct positii in K, , tnd think of it as an input signal to thi plotter. X, 1 hi correct position input, is when thi ship should he, according to thi equations of

motion, i le dimi n ;ii in tl pai e. It a

digital computei 1 being u;ed, then will have to be genei tted with 1 ine digital to

analog output 1 using the < urrenl 1 iti

ot its programmed model o1 the laps behavior. I igur< I md .' how h<i\\ ilmsi ideas all Iii togethei

I f «e < all thi i I p<'iii.m iit th« i

ship Xa, this in i) diii.a at times from the calculated pi isition \, I hi5 11 roi i repre sented In an err 11 ignal w hich 1 pn 1 the difference between the i ah uku. .1 position nl the ship (X( i and the a< tual position 111 the model (\,,i.

PLOTTER HARDWARE

e=0 il Xc- Xa=0 1 -0 il Xc Xa>0 £■ 11 il xc Xa<0

In othei words, e is zero when there is no error (XL=Xa), positive when Xc>Xa, and in ;ative when Xc<Xa.

I hr error signal e tells the motor which direction to turn in order to move the model ship to the correct position. If e is positive the motor in our diagram of figure

I must turn one way to raise the model until the actual position becomes equal to the correct position. If e is negative the motoi must turn the opposite way to lower the model to the correct position. If e=0 then the correct position equals the actual position o1 the model and the motor does nol turn. The magnitude of e can also be used to determine the speed of the motor.

Mow does the motor driver know the aiiiial position (Xa) of the model? When the motoi moves the model, the motor also moves a wiper on a "feedback" potentiometer. I he voltage at this wiper will be piopoi lional to the altitude of the model and may range anywhere from —6.5 V to 1-6.5 V in this design. The potentiometer ii« ik bat I- ah electronic signal to the "summing" circuit (circuits in figure 3, IC1) null' ating the actual position of the model.

II the ship is at maximum altitude, the wipei is near the top of the potentiometer, and i hi voltage is about 6.5 V. If the ship is at minimum altitude, the wiper is near the hoilom nl the potentiometer and the voltage

ibou) 6.5 V. The mechanical arrangenn nl (see figure 4) must be set up to ensure this relationship.

In summary, the correct position (Xc) is compared by the ^ circuit which tells the motoi driver if Xc is greater than (>), less

Ml

j^> wire wrapping center

BATTERY WIRE-WRAPPING TOOL MODEL BW-630

ANOTHER UNIQUE PRODUCT

DESIGNED, MANUFACTURED AND MARKETED WORLDWIDE

BY OK MACHINE & TOOL CORPORATION

STRIP/WRAP/UNWRAP TOOL MODEL WSU-30

$5.95

ANOTHER UNIQUE PRODUCT

DESIGNED, MANUFACTURED AND MARKETED WORLDWIDE

BY OK MACHINE & TOOL CORPORATION

DIP IC INSERTION TOOL WITH PIN STRAIGHTENER MODEL INS-1416

$3.49

ANOTHER UNIQUE PRODUCT

DESIGNED, MANUFACTURED AND MARKETED WORLDWIDE

BY OK MACHINE & TOOL CORPORATION

$34.95

ANOTHER UNIQUE PRODUCT

DESIGNED, MANUFACTURED AND MARKETED WORLDWIDE

BY OK MACHINE & TOOL CORPORATION

WIRE DISPENSER MODEL WD-30-B

THE DISPENSER WHICH

CUTS AND STRIPS

THE WIRE

$3.45

ANOTHER UNIQUE PRODUCT

DESIGNED, MANUFACTURED AND MARKETED WORLDWIDE

BY OK MACHINE & TOOL CORPORATION

WHATSr NEXT

MINIMUM ORDER $25.00, SHIPPING CHARGE $1.00, N.Y. CITY AND STATE RESIDENTS ADD TAX

OK MACHINE & TOOL CORPORATION

3455 Conner St., Bronx, N.Y. 10475 1(212) 994-6600■ Telex 125091

Figure 3: Details of the motor drive servo ctrt nil. This basic cin nil < an be used (with appropriate choices of gearing and mechanical arrangement at the feedback pots) to control a large numbei oi mei nanisms which depend upon DC motors to set position. The feedback from the position measuring potentiometer Xa is compared with the set point Xc by amplifier IC1. The error signal resulting (if large enough) directly drives the motor after inversion by IC4 when the set point Xc is far away from the actual position Xa. As the set point is appnuu hed, the diret I erroi signal bet omes nearly zero, so the amplified error signals for small positive or negative displacements (K.J and IC3) become the dominant turns in the summation at the input of IC5, until finally Xa matches Xc within limits set by the small erroi threshold potentiometers. This complexity of the circuit is required by the fact thai the DC motors require a t ei lain minimum dri\ e i 'oltage in older for any motion to occur.

•. ■ v..

H H AMI :. I

ERROR SIGNAL

POSITION

rtEDBOCK

I ROM P>

POTENTIOMETER

(SEE FIG 41

(-6 5 TO + 6 5V1

POSITION

COMMAND , ^

FROM [_>

COMPUTER

DAC OUTPUT PORT

1-6 5 TC .6 bVI

NOTE:

ALL RESISTORS 1/2 WATT EXCEPT R7 TO RI2 WHICH ARE I WATT

OPAMP PINOUTS SHOWN FOR 8 PIN DIP OR METAL CAN VERSIONS

NVERTING UNITY LAIN POWER OPAMP

TO DC MOTOR, FIGURE 4

o

than (<), oi equal id (~) Xcl. I he motoi driver, in turn, tells the motoi to go one way, or the opposhc way, oi nol to turn, by a +, , or 0 voltage. I he motoi then moves the model ship towards .1 more correct position, M necessary, while infoi ming the 1 circuil oi the new position. When the actual position equals the (.Direct position, the error signal becomes equal to 0 and the motor stops. \\\) luitliei change in the input signal (correcl position signal, Xc) will cause furthei movement oi the model in the same way.

I he remaindei o1 this article describes how to build the seilol in liguie I labeled motor drive ihiuils| ji], and lm« these circuits interface to the othei components. This corresponds to the element-, in the right of the dotted line in figure 2

Circuit Description

Figure 3 shows the motoi drivci intuit, and figure 4 shows the Feedbacl potentiometer and how it is connected to tin motoi

I he output of the potentiometer is the position Feedback. The job of the circuit of figure .1 is to attempt to make the position feedback voltage equal to the position command voltage by moving the motor until the difference between the two is zero. This is accomplished .is follows.

K I is connected as a difference amplifier so licit its output is equal to approximately -l*<, where e r (position command Xc) — (position feedback Xa). This difference is led through R15 to the summing amplifier l( I si. lb,n its magnitude is one component oi the final motor voltage. Thus, the larger the dil ference, the larger the voltage, and the fastei the motor turns. In actual practice, as ibis difference approaches 0, it would not be enough to drive a 12 VDC motor. Here is where comparators IC2 and IC3 come' in. I hey are constantly looking to see if the difference voltage, a portion of which appears across R6, is larger than some small positive voltage (set by R13), or smaller than some sin.ill negative voltage (set by R14). If

22

Application Software!

You can buy software from anybody but ours works in your system.

We only sell one product, Quality. Our general ledger does what everybody else's Payroll, A/R, A/P, Inventory, General Ledger, and Tax programs do and it's much shorter and easier to use.

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

• Versatile — as most programs allow for multiple modes of operation.

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

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

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

• Virtually Machine Independent — these programs are written in a subset of Dartmouth Basic but are not oriented for any one particular system. Just in case your Basic might not use one of our functions we have included an appendix in Volume V which gives conversion algorithms for 19 different Basic's; thats right, just look it up and make the substitution for your particular version. If you would like to convert your favorite program in to Fortran or APL or any other language, the appendix in Volume II will define the statements and their parameters as used in our programs.

Unfortunately this much versatility, comprehensiveness and compatibility requires extra money. But over 85% of our programs in the first five volumes will store and execute, as is, in most 8K Basic's with I6K of free user RAM. If you only have 4K Basic, because of its lack of string functions only about 60% of our programs in Volumes I thru V would be useable, however they should execute in only 8K of user RAM. Volume VI will require the user to have external data files and 30K of user RAM.

Our "General Ledger Program" (Vol. VI) is a complete comprehensive business system designed to keep ALL of your company's records without the need for updating from other programs and there is NO need to keep monthly tear sheets to be added together for end of the year reports as our system will provide you with year end account totals. This program generates over 30 major reports, including: 941 s, P/L's, Balance Sheets, and year end account totals for filing Federal Income Tax Schedule C's and/or I I 20's.

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

Future additions:

Soon to be released! A "fantastic" word processing package set up for lawyers, publishers and writers; and a Medical Billing system which will also allow a patients record to be individually scanned. AND there are rumors that a I 2K chess game, in Basic, will also be released.

Subjects Covered in Volumes 1 - VI

Vol. 1 — $24.95

Vol. Ill — $39.95

Vol. VI — $49.95

Bookkeeping

Advanced Business

Complete

Games

Billing, Inventory

Business

Pictures

Investments

Systems

Vol. II — $24.95

Payroll

General Ledger Taxes (requires

Math/ Engineering

Vol. IV — $9.95

Plotting/Statistics

General Purpose

Basic Statement

Def.

Vol. V — $9.95

Experimenter's

Program

AVAILABLE

AT MOST

COMPUTER

STORES

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

©

SCIENTIFIC RESEARCH

1712-B Farmington Court Crofton, Maryland 21114

Phone orders call (800) 638-9194 Information and Maryland residents call (800) 721-1148

accepted

Figure 4: A pictorial schematic of the mechanical arrangement used for the lunar lander model. A main shaft is connected directly to the motor and has a spool of thread used to suspend the model. The direction of the motor controls whether the module rises or falls relative to the ground surface of the planet model as the shaft rotates. The main shaft has a spur gear which drives a large gear to achieve a gear reduction which maps complete physical travel of the model lander into the motion of the pot's wiper through its complete range.

DRIVE FROM FIGURE 3 IC5 PIN4

FEEDBACK POTENTIOMETER

one of these conditions is satisfied, the comparator output becomes 12 V, and a portion of that output (usually around 2 V, and determined by R17 and R19) drives the motor into its operating range. The actual values of these potentiometers will depend upon the particular motor you use, and upon your actual physical configuration.

IC5 is a high power operational amplifier capable of delivering up to one amp of current at up to 12 V. It is also used as a summing amplifier to bring together the voltage commands from the other circuits.

Parts Substitution and Adjustment

None of the parts are extremely critical, and substitutions can be made. Almost any operational amplifier that accepts +12 V can be used (eg: 741C), and it is not necessary to use the LM306 comparators. LM311s, for instance, will do. A substitute for the power operational amplifier can also be used, but be sure that whatever you use is provided with a good heat sink.

When the entire configuration is set up,

POINT B, FIG. 3

POSITION FEEDBACK,Xa

POINT A, FIG.3

GEAR REDUCTION:

PICK RATIO SO THAT FULL TRAVEL OF POT SHAFT TAKES PLACE WHILE LUNAR MODULE TRAVERSES ITS FULL RANGE OF ALTITUDE.

be sure that the feedback pot turns less than once when the model moves through its entire range. If it turns more, increase the radius of the take up spool or change the drive ratio of the motor pot gears. The wiper should be almost midway in the pot (0 V) when the model is halfway up in distance.

Apply power and short the position command line to ground. The model should position itself somewhere in the middle of its range. If it oscillates, adjust the potentiometers to set the response range of the lander (R13, R14) and the magnitude of the threshold motor voltage (R17, R19). Experimenting with different motors and gearing setups should give you an idea of what type of performance to expect. Basically, you want the motor to move at a rapid rate if the difference between the Xc and Xa is more than about 2 V, and then to slow down as Xc—Xa approaches zero.

Use a power supply to apply different position command voltages to see if the model "seeks" correctly. Don't apply more than about 6.5 V. If you do, the system will try to move the model so that the position feedback is more than 6.5 V, and this is impossible. Result: the model goes crazy.

Once all of the above is working, you're ready to connect it to an integrating computer. The two choices here are a special purpose analog computer, or a general purpose digital computer with a digital to analog output board. A discussion of what is involved in using a digital computer for this purpose can be found in chapter 10 of the book An Amateur's Guide to Personal Computing (by Margot Critchfield and Thomas Dwyer, Addison-Wesley Company, Reading MA, 1977).■

24

Circle 110 on inquiry card.

Photo 1: Packaging technology at Franklin. Although it looks a little shaky it still works.

A Microprocessor Course

Mark E Fohl 3567 Karikal Dr Westerville OH 43081

In August 1975 Franklin University made a commitment to offer a program in microprocessors. I would like to describe what has happened since then, both in terms of Franklin's goals in offering the course and of my experience in developing and teaching the course.

First of all, the character of Franklin may explain some of the rationale used in organizing the course. Franklin University is located in downtown Columbus OH. With some 4,000 students, it is the second largest institution of higher education within 50 miles of Columbus, second only to Ohio State. Sixty percent of the students attend classes in the evening. Franklin promotes itself as "a third kind of education": broader than a technical school but more detailed than a liberal arts school. Franklin offers bachelors and associates degrees in business and engineering, and has recently been accredited by the North Central Association of Colleges and Secondary Schools. Franklin keeps in touch with the needs of local industry and stresses practical education.

I am currently a software design engineer at North Electric Company, located near Columbus. Prior to this, I worked at a government division of RCA doing mostly design automation work. One of my projects there was coordinating the design automation efforts for the design and production of a 3 chip CMOS microprocessor. While at

North, I taught math part-time at a small school about 40 miles north of Columbus. I wanted to teach closer to home, so I blanketed the schools in Columbus with a letter asking for a teaching position in math, programming or electronics. Dean Sidney Kelly of Franklin responded that there were no such positions open there, but that Franklin was considering offering a course in microprocessors. Following an afternoon interview, we both thought it was worth a try.

Franklin decided that its microprocessor course would offer thorough coverage of the fundamental concepts of microprocessors along with in-depth experience on one particular system. It was also decided that the course would start with the basics with respect to available prerequisites, and continue with hands on experience in alaboratory environment. These goals suggested that the course occupy two trimesters, and that it actually be a 2 course sequence. Each course would have four class hours per week for 15 weeks, and each course would be worth three semester credits. Furthermore, the sequence would be divided equally between lecture and laboratory, with almost all lecture in the beginning, gradually changing to almost all lab in the end. The course prerequisites were listed as a familiarity with digital logic and the binary number system. These prerequisites could be met with Franklin's series of electronics courses, and

26

It's like adding a room to your brain

!

The System 8813 from PolyMorphic Systems is a complete, powerful problem solver in a single walnut cabinet. This machine allows you to perform complex financial, engineering, and scientific models in the comfort of your office or den.

The high speed video display presents your results in text, tables and graphics. The detachable typewriter-like keyboard permits relaxed program entry and operation. Convenient mini-discs store programs and data for compact filing, secure storage, and fast access. Our disc BASIC programming language is simple enough for the computer newcomer, yet powerful enough to amaze the most advanced users.

The whole family can immediately use and enjoy preprogrammed applications and educational packages. Let the System 8813 become your trusted business, profession, and

personal tool. The PolyMorphic Disc System is a completely assembled and tested unit with brushed aluminum front panel, walnut cover, detachable keyboard, video monitor, 16K RAM. Includes system software and fully extended BASIC on disc.

System with 1 disc drive —$3250 System with 2 disc drives — 3840 System with 3 disc drives — 4430

Delivery 60 days ARO. Upgrade packages for POLY 88 owners will also be available. Prices and specifications subject to change without notice.

PolyMorphic Systems

(805)967-0468

460 Ward Drive, Santa Barbara, CA 93111

with a course entitled "Computer Calculations." The sequence would be offered not only to full-time students at Franklin, but also to anyone in the community who, for either industrial or personal reasons, wanted a solid background in microprocessors. Students would need no previous experience with microprocessors, and the sequence would be offered as an attractive alternative to a 3 day seminar.

With the philosophies and preliminaries taken care of, implementation of the sequence remained. By this time it was late August, and the sequence was scheduled to begin the following January. Being the instructor, I was responsible for putting the entire package together. Two tasks presented themselves: the first was to adopt a course outline and prepare corresponding lectures, and the second was to equip the laboratory.

The first task was relatively easy. The obvious strategy was to start from the absolute basics and work upward. Accordingly, the course would begin with a review of binary numbers and binary operations. A review of digital logic elements, both gates and flip flops, would be next, followed by development of a generalized arithmetic and logic unit. The arithmetic and logic unit would proceed to a generalized microprocessor unit, followed by a discussion of a particular microprocessor. Course development could not proceed until specific laboratory equipment was selected.

One of the problems at this point was selection of a suitable textbook. No general textbooks on microprocessors were available at the time. I chose Blakeslee's Digital Design with Standard MSI and LSI because a few of its chapters covered microprocessors and microcomputer system elements. In retrospect, the text was not very good for the sequence because of its constant emphasis on hardware design considerations.

While preparing the lectures, I began the process of acquiring laboratory equipment. At the time, the two manufacturers who seemed to be far ahead of the pack were Intel and Motorola. I thought that these two would be in the best position to donate equipment, considering their stable positions in the marketplace and their competitiveness. Accordingly, I contacted local representatives from both Intel and Motorola. I asked each for any help they could provide, and I reminded each that I was talking to the other.

The Intel representative stated flatly that there was nothing he could do personally, but he advised me of a university donation program. I wrote to Intel in California requesting more information and an application form. The material came shortly there

after, and it turned out that each application was good for up to four kits, each containing an 8080 chip, 256 words of programmable memory, 1 K of blank erasable read only memory, and four. 8212 data latch chips. I made a copy of the application and gave it to another instructor at Franklin. We sent in our applications sometime in September; in mid-November, we received eight kits in the mail. Each kit contained the chips plus one programmer reference card.

The Motorola representative said he didn't know exactly what to do, but he was sure there was something. After much correspondence (among him, me, Austin and Phoenix), he said Motorola would provide five Microcomputer Evaluation Kits, without read only memories, if the University would purchase four kits. Each of these kits contained an M6800, 128 words of programmable memory, two PIAs, one ACIA, a printed circuit board, 1 K of read only memory containing the MIKBUG debugging program, assembly instructions, a reference manual, and an applications manual. This offer came in early December.

It appeared that the cash values of Intel's and Motorola's donations were about equal. Intel's equipment was already in, and I had to decide how to proceed. Whereas Intel's donation represented more raw computing power, Motorola's contribution was a better package, which included a tested system design, software and a Teletype interface. Considering that I would have to do the system design for the Intel package, and considering that I was up to my ears already, I opted for the Motorola deal.

The time came now to spend some money. Class was scheduled to start in about four weeks, but we wouldn't be using the lab equipment until about the seventh or eighth week. The dean was reluctant at first to spend any money, but at this point there was no alternative. Besides, the tuition from the students already enrolled in the course was enough to cover both my salary and the lab equipment. The dean gave his blessing, and we proceeded from there. I contacted the Motorola representative and informed him of our decision; then I called the local distributor and ordered the equipment. I expected the equipment to be ready in about two to three weeks, about the same time as the beginning of the winter trimester.

The equipment I ordered from the distributor included all the discrete circuitry specified in the assembly instructions. There were still two glaring omissions from the microcomputer system: the power supply and the IO device. In addition, there was the

Continued on page 90

28

Whether managing accounts at the local general store or aiding in the development of the latest Space War, the MiniTerm Dual MiniFloppy* System 80/2 can do the job best. Z-80 powered, and S-100 bus structured, the System 80/2 mainframe with regulated supplies for two mini floppies* is also available without cards and drives.

Dealer Inquiries Invited.

MiniTerm Associates, inc.

Box 268, Bedford, Mass. 01730 (617) 648-1200

■Mini Floppy is a registered trademark of Shugart Assocates.

29

Circle 111 on inquiry card.

f^X

■i

■■

/^oto 7: 7"/7e COSMAC VIP system demonstrating its graphics abilities. The kit version of this product includes the board alone; the user must supply a standard video monitor (or modified TV) and inexpensive tape recorder.

COSMAC VIP, the RCA Fun Machine

Joseph A Weisbecker

1220 Wayne Av

Erlton, Cherry Hill NJ 08002

Most beginners think of computers only in terms of solving equations or processing data in English language format. Ask someone with limited exposure to computers about their use in homes and they invariably mention kitchen recipe files, meal planning, income tax preparation or checkbook balancing. I don't think any of these applica

tions has really caught on so far. This view of computers as super calculators or data processors is apparently shared by many people currently involved in the home computer movement. This orientation keeps prices higher than necessary for the majority of potential hobby users who could have just as much fun with much less sophisticated machines.

The COSMAC VIP was created to provide a viable alternative to expensive hobby computers. It was not designed to compete

30

with existing systems, but rather to maximize the number of people who can afford to own their own high technology graphics and games fun machine.

In this article I'll give you some background information, outline my design philosophy, and describe the COSMAC VIP system. You can then decide whether this article represents a blatant sales pitch or an honest explanation of a relatively low cost approach to small personal computers. Home or business users who want extensive data processing capability should stop reading now. You will be better off with one of the more expensive BASIC language oriented systems. Those who are beginners or are interested in computers for fun at absolute minimum cost should continue reading.

First some background. About five years ago I developed a system called FRED. This was the prototype for a low cost microcomputer aimed at video games, hobby and school use. (FRED was described in the August 1974 issue of the IEEE Computer magazine.) COSMAC VIP evolved from this FRED system. My family and friends have been using this type of system for almost five years and we've only scratched the surface of applications for it. In fact, my $2000 personal BASIC system seems dull by comparison and is gathering dust. The development of the 1 card COSMAC VIP system is due primarily to a desire to share fun I've been having with as many others as possible. RCA deserves a lot of credit for supporting the development and making the system available for home and school use.

Design Philosophy

COSMAC VIP is based on the premise that a home computer should be low cost, easy to use and fun for the whole family. It is therefore aimed at video graphics and games applications. Even the youngest family member can have hours of fun drawing pictures on the TV screen.

Let's examine some cost factors. While memory and logic costs continue to decrease, a 2 K byte programmable memory will always be cheaper than a 16 K byte one. To many designers, lower memory costs mean that they can design more memory into a system at the same price. To me it means that I can design lower cost computers using about the same amount I've always used. When the current crop of $1000 computers drops to $500, a COSMAC VIP type computer might drop to $150. The lower the cost, the more people can own their own computers.

The drastic price reduction for a central processing unit caused by the development of single chip microprocessors has not been matched by equivalent cost reductions for conventional computer input and output devices. The lowest cost home computers can only be achieved if the need for specialized IO devices is minimized. I don't think it is fair to ask the limited budget, unsophisticated beginner to spend several hundred dollars on a system which uses a $10 central processor but requires an additional expenditure of $1000 for a terminal and enough memory to make it useful. The COSMAC VIP minimizes IO device cost by relying only on a video monitor, audio cassette recorder and 16 position key pad. CMOS circuits reduce power supply costs, and a minimum number of integrated circuits permit the entire computer, including keyboard, to be packaged on one inexpensive printed circuit board.

As I sec it, four major obstacles must be overcome before everyone can own their own computers. The first obstacle involves justifying a relatively high priced piece of equipment which is often useful to only one family member. COSMAC VIP was designed for relatively low cost and includes 20 video game listings that can be immediately loaded and played by the whole family. This goes a long way toward eliminating the first obstacle.

The second obstacle is the complexity of conventional computer operating and programming procedures. I can't understand how a beginner can be expected to cope with complex operating systems. COSMAC VIP programs are initiated with a single RUN switch. Any memory byte can be examined or modified using the built-in hexadecimal keyboard. Loading programs is easy. Just enter the starting address followed by the byte sequence to be stored. No extra key depressions arc required between bytes. Memory addresses and stored bytes arc displayed on the TV screen in hexadecimal format. Tapping a single key steps through memory letting the user examine stored bytes without modifying them.

To load a cassette program into memory, you merely enter the starting memory address and single digit block length code via the hexadecimal keyboard and play the tape. Less than 30 seconds later, COSMAC VIP shows you the last byte loaded into memory on the TV screen and you're ready to run your program. Recording the contents of memory on a cassette is just as easy.

A third obstacle in the path of home

Product Description

31

A. PROVIDED WITH COSMAC VIP

SOFTWARE

• 20 VIDEO GAMES

• LANGUAGE

TEST PROGRAMS

MANUALS

OPTIONAL 2046 BYTE USER PROGRAMMABLE MEMORY

+ 5VDC POWER SUPPLY (COMPLETE)

HEX KEYBOARD

OPTIONAL 8-BIT PARALLEL 1-0 PORT

B. ON-CARD OPTIONS

512 BYTE ROM

OPERATING SYSTEM

TONE CIRCUIT

(TONE OUTPUT)

CHEAP SPEAKER OR EARPHONE FOR TONES

COSMAC MICROPROCESSOR COP 1802

AUDIO CASSETTE READ/WRITE INTERFACE

(MIKE - EAR)

O O

CASSETTE RECORDER

C. SUPPLIED BY USER

2048 BYTE USER PROGRAMMABLE MEMORY

GRAPHIC

VIDEO

DISPLAY

INTERFACE

(VIDEO OUTPUT)

®

VIDEO MONITOR

Figure I: Block diagram depicting the essentials of a fully functioning COSMAC microprocessor. The system provides the user with everything needed to start programming except a video monitor and a cassette recorder.

computer purchase is the ability to program the computer. Suppose you buy an expensive system and then discover that you either can't or don't enjoy programming it. COSMAC VIP provides enough ready to use programs to justify the price even if you never write a program. It also provides a simple interpretive user language that many have found just as easy to learn as BASIC. This new language requires much less memory and is oriented toward simple graphics.

The fourth obstacle preventing many potential home users from getting started is the fear of buying an expensive computer and watching it become obsolete within several months. I feel that use of state of the art integrated circuits for COSMAC VIP helps minimize this problem, as does the relatively low cost of the system.

Hardware

Figure 1 shows a block diagram of the COSMAC VIP system. It shows exactly what is provided in the price and what the user has to provide. What you don't get is a video monitor, inexpensive speaker, standard audio cassette recorder and expensive cabinet. What you do get is everything else needed to immediately load and run 20 video games and write and debug your own graphic, game or educational programs. This includes all the memory you need and

an easy to use numerically oriented language. You also have the ability to use COSMAC machine code.

All system timing is derived from a crystal clock so there are no adjustments required. A single tone can be generated by programs. This tone can be used in games or sounded when a key is pressed. The hexadecimal keyboard is a reliable touch pad type, and is fully debounced by read only memory software.

The audio cassette interface was designed to allow saving programs on tape. You load a program into memory from the hexadecimal keyboard and then record the contents on an audio cassette. You can then load the program from the audio cassette any time you want to use it again. The cassette data transfer rate is about 100 bytes per second. You must manually start and stop the cassette recorder, unless you add your own start and stop relays. The reliability of any audio cassette data system may not be suitable for commercial work. Audio cassettes are however the best means of saving programs available for the hobby computer user working on a limited budget. With proper care in use they have proven themselves to be quite adequate. In the COSMAC VIP tape system, each byte on

Continued on page 94

32

I [llr

ii;<*Wi[r

to have

i, i r\

ORDER FORM

KIT ASSEMBLED

I I4KROM [ J 8KSC-Z [ J 68KSC I I 8KSC

NAME.

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

KIT ASSEMBLED KIT ASSEMBLED

I | WWC 1 ! 68EXT-L | |

I I 88 EXT I , ^] 68WWC | |

I I 68EXT-S [ I | | BBUC I I

ASSEMBLY AND OPERATING MANUAL $4.00

PLEASE PRINT OR TYPE

ADDRESS. CITY

.STATE.

.ZIP.

SEND CHECK • MONEY ORDER • COD'S ACCEPTED • CREDIT CARDS

BBS i mThTTTmTi i i i i

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

MOST ORDERS SHIPPED WITHIN 10 WORKING DAYS

I I 1 I I I I I I

•tag ► [_

JJ'.

...all it takes is a

c»3&

MORY

k^Sfrrrrf acres, v.-til\. eiira'EVkvirW'tVTSi > • ti

[Static Memory Card for SWTPC 6800]

• 8192 Words of Static Memory

• Access Time: 500 nsec (250 nsec on request)

• Memory Chip 91 L02 APC or 2102AL-4

• Battery Standby

• Address Selected 8 ea. SPST Dip Switch

• Low Power

• All Lines Buffered

• All IC's with Sockets

• Solder Mask on both sides of PC Board

Memory Card

from SEALS.

Kit

Price

$269.00

Assembled

Price

$369.00

OTHER SEALS ELECTRONICS PARTS AVAILABLE

Item No, Description Kit Price Assembled Price

4KROM. 4K Read Only Memory Card $119.00 $179.00

8KSC-Z 8K Static Memory Card 250 nsec 295.00 395.00

8KSC 8K Static Memory Card 500 nsec 269.00 369.00

88 WWC Wire Wrap Card 37.50 47.50

88 EXT 88 Extender Card 29.00 38.00

68 EXT-S Extender Card (Small) 19.00 25.00

68EXT-L Extender Card (Largt.'I 29.00 39.00

68 WWC Wire Wrap Car 35.00 45.00

BBUC Battery Back-Up Card 55.00 68.00 4K BASIC 4KROM with 14 EProms containing Seals Basic 8080 and the Seals

4K8080 Basic instruction manual (integer math only availal

this time). Phone for more information. List Price $358.00. TRODUTORY PRICE OFFER

ELECTRONICS.INC.

ORDER DELIVERY: FROM STOCK TO 10 DAYS

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

Circle 11 2 on inquiry card.

Our American Economic System

isngoodabad.

We asked thousands of your fellow citizens this question. You should know how your answer compares with theirs.

Not too surprising, most people have gripes. Inflation. Unemployment. Taxes. These are among the concerns that topped the list.

Yet, if you checked "good," you join the great majority of Americans (about 80%) who believe that fundamentally the American Economic System—with the individual freedom and high standard of living that have accompanied it—is the best in the world.

The question is: how do we overcome the bad without destroying the good?

Obviously, the more we all know about our system and how it works, the better we can decide what to preserve, what to change.

That's why we are offering a booklet that explains the American Economic System. It is easy to read, interesting—and free. Mail the coupon for your copy today.

Every American ought to know what it says.

The American Economic System.

It's one of your basic freedoms.

(check one)

Booklets, P.O. Box 1887, New York, NT. 10001

Please send me a free copy of the booklet

about our economic system. I would also like a copy of the survey

highlights.

Name

Company .

Address

City

-Title:

_State_

Note: Booklets in quantity, posters and other materials are available for use by companies, clubs, etc. For information, write: The Advertising Council, 825 Third Avenue, New York, New York 10022

/ VL t A public service message of The Advertising Council ' UB3 : & U.S. Department of Commerce

\#^T-,I/ presented by this Magazine.

Circle 109 on inquiry card.

Meet the First Family in floppies.

The roots of our floppy family

/T

1143M controller • LSI technology • IK buffer

Dual head

50 pin LSI interface

<%;?.■;,— ' ',.V:^V :~>

V

1

_

| • c ■ U

1 1 a" 1

1 1 C

1

m

LSI-ll

RS-232-C

S-100 BUS

1149M Multipurpose

Cabinet assembly.

Rack or table mounted.

New 143M disk drive. Two-sided recording. Single/double density. LSI Multifunction.

Our host adaptors

CalComp's got it all together for you. A total floppy family. Any way you want it.. .single products or the total package. In every case you get true multifunction, LSI technology, high MTBF and low MTTR reliability, compatibility and multiple interfaces.

And that's not all. Field-proven double density — now one or two-sided. And our new 1143M controller along with three host adaptors.

With CalComp it's all there. Choice. Flexibility. Everything you need for all or part of a total memory subsystem. Phis CalComp's worldwide service to support our family. We've delivered 50,000 drives—why not add your application requirements to our growing family.

Just call us or use the coupon. We'd like to tell you more about our family.

California Computer Products, Inc.

24U West La Palma Avenue Anaheim, California 92801 (714) 821-20U

Please send me your free Floppy Family information kit.

I am interested My needs are immediate

Name

Company

Phone |

Stale Zi^i !

Understanding APL

A Note to Those Unfamiliar with APL

If you are totally unfamiliar with APL, a good first step would be to consult some of the references listed at the end of this article and Mike Wimble's article. We recommend the IBM APL/1130 Primer, available

3/77 IBM branch offices, as an excellent self-teaching tool... CM

Dr Kenneth E Iverson

APL Design Group

IBM

1700 Market St

Philadelphia PA 19103

Note: In the APL listings which follow, the user's entries are reproduced in blue while the computer's responses are in red f°r clarity.

Adin Falkoff, in his review of APL conferences to be published in Computer Reviews (as of this writing), indicates the "widely ranging subject matter" covered in APL papers by listing dozens of applications, covering such areas as word processing, convex geometry and database systems, to name a few. Because of this potential breadth, it is necessary, in a short paper, to focus more narrowly on some one aspect of APL.

In scanning previous issues of BYTE to identify some aspect which would be relevant to its readers, I concluded that, however diverse their interests, this audience held one thing in common: a penchant for experimentation and exploration, for playing around with ideas and things. I have therefore chosen to emphasize these aspects of APL: the use of experimentation on an APL computer in learning the language itself, and the exploration of other topics both with and without the aid of a computer.

True experimentation must be carried out on a real physical device. Readers who have the use of APL computers or terminals may find them useful for verification of the questions posed later in the article. For other readers we will try to approximate this experience by showing certain experiments together with the results they produce. The reader may then study the results of these experiments in the same way he or she would study the results of his or her own experiments on a real computer.

However, unlike the experimenter at a real APL computer, the reader cannot then decide what experiment to try next in order

to settle the questions raised in his or her mind by the last experiment, but can only use the experiments next presented by the author. Although each experiment may have been chosen to answer questions raised by its predecessors, it may miss many of the questions raised in the minds of particular readers. However, this difficulty can also be overcome to a large degree by the use of "thought experiments," discussed later in this article.

To fully appreciate and enjoy the experimental approach used here, one should make the most of each experiment by not reading any result until every clue has been used to puzzle out what the result should be. For example, one would try to reason out and state the definition of the function \ from the following experiments:

3i"5 UT7

5T3 "5 T3

before going on to read that "the symbol \ denotes the maximum function which yields the value of the larger of its arguments." Remember, of course, that APL statements (shown in red here) start at the left margin, while user entries are indented. Similarly, try to guess the result of the following experiment:

8 1 2 L 8

before reading it, since the relation of the symbols \ and L alone suggests that L denotes the minimum function.

One final comment on the reading of this paper: although it is clear that this magazine enjoys the patronage of many young readers, I have, in the interests of clarity and precision, chosen to use words which may be unfamiliar to some readers. If you happen to fall into this class, then this is as good a time as any to acquire the important habit of reading with a good dictionary at your elbow.

Systematic Experimentation

Simple functions yield to experiments with randomly chosen arguments, as happened in the case of the maximum function. Even there, however, the arguments were chosen with more care than might appear. For example, if only the two on the left (3(~5 and 4|~7) had been given, one might

36

Memories are made of this.

w £ ste MS

'Jm. m m m w m m m

m m m m m mimim

ki mil iu

tnrti.

in m\ m\ m m\ m m\ m m m\ w *\ «\ «\ fcv

Tli 111111111111111111111111 ii 1111111

■A m m\ m\ M m m m

i \

\ \

32K. One Card. One low price. Only from the Digital Group.

Now, on only one fully static card, the Digital Group has squeezed in a whopping 32K of memory. Which, with a little quick addition, means a full 64K architecture now requires only 2 boards instead of 8. That's a 4-to-l space reduction ...and leaves one extra memory slot on the Digital Group's standard motherboard still available for future products.

All this and one low price, too.

It just may be the best news of all. Our full static, assembled and tested 32K memory board is only $995. Now that's worth remembering. It's substantially less than our equivalent assembled 8K board prices. (Please note: We're initially offering this 32K board assembled only, but kit versions will soon be available, too—at even lower prices.)

Here's what you get.

Specifications:

• 32K on single card

• Speed—450ns. All of our current CPUs will operate at full-rated speed.

• Decoding—Lower or upper 32K bank

• Power—+5V only (a 4A

• Card size—12" x 5" (excluding connector fingers)

Features:

• May be intermixed on Digital Group systems with our 8K memory cards

Circle 114

• All data and address lines are buffered

• Fully static memories—EMM 4801 (450ns) or equivalent

Price:

32K board complete, assembled and tested $995.00

For all the memorable details, just fill out the coupon below. (Then all you have to remember is to mail it in.)

mailing

fto(JgfiM

§\mm> )

P.O. Box 6528

Denver, Colorado 80206

□ I promise to mail this in

Name

(303) 777-7133 , so add me to your

list!

Address

rity/Statp/Zip

I] Remember me? I'm already on your mailing list, but I need the memory spec sheet desperately.

on inquiry card.

have concluded that the result of the function was simply the value of its right argument, but the third case (5T3) ruled out this possibility.

Experimentation with a systematic set of arguments usually gives a clearer picture of the function. For example, we might use a fixed left argument and a set of successive integers for the right argument, as in 3pl and 3T2, and so on. This can be clone most conveniently by giving a list of arguments as follows:

1 ' ! ? 1 J 5 6 7

3 6 9 12 15 19 21

3*1 2 3 4 5 6 7

4 5 6 7 8 9 10

3 r 1 2 3 ii 5 6 7 3 3 3 4 5 6 7

3^1234567

1110 0 0 0

3*123 4567

The behavior of the two new functions (> and #=) are probably clear from the last two experiments. However, the experiment:

12 0

3 | 1 2 3 12 0 1

might leave one in doubt, wishing to see cases with different left arguments such as 4, 5, etc. In general, one might wish to see a whole table of values for a systematic set of left arguments. This will be explored in the section on tables.

Names

It is clearly convenient to give a name to any number or list or table of numbers that is used repeatedly. For example, wc could give the name S to the list 1 2 3 4 5 6 7 as follows:

S«-l 2 3 M 5 6 7

We could then write the preceding experiments more simply as 3xS and 3+S and 3[5, etc. Thus:

it is clear that the multiplication applies to the left argument 4 together with each element of the right argument. In the experiments:

s+s

2 4 6 8 10 12 14

S*S 1 4 9 16 25 36 49

it is clear that the functions apply to each of the corresponding pairs of elements of the left and right arguments.

In order to make an addition table for the integers from 1 to 7, it would be necessary to add each element of the left argument to every clement of the right argument. This will be indicated by placing the symbols for null (°) and dot (.) before the plus sign as follows:

i)

5 6 7 8 9 10

8 9

9 10

10 11

11 12

10 11 12 13

11 12 13 14

Tables for times (x), maximum ([), and less than (<) can be produced similarly:

4 6 0 10 1? 14

6 9 1? 15 IS 21

8 12 16 20 24 28

10 15 20 25 30 3 5

12 18 24 30 36 42

.: 28 3 5 4 2 4 9

2 3 4 5 6 7 2 3 4 5 6 7

5 6 5 5 5 6 7

6 6 6 6 6 6 7

0 1111

0 0 111

0 0 0 11

0 0 0 0 1

0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0 0

The patterns of numbers (such as the diagonals of twos, threes, etc, in the addition table, and the L-shaped patterns in the maximum table) are often surprising even if one is already familiar with the particular function, and it is entertaining to predict patterns before actually producing the table. Tables are also useful in determining the definition of an unknown function. To illustrate this we will return to the function I for which we have already seen the case:

3 6 9 1 2 : 2«S

2 4 8 1 5 i: >.-■ . ■

3«i'

3 9 2 7 81 2 4 3 729 21 S 7

S»2 1 4 9 16 25 31

S'-i 1 8 27 64 125 216 343

This use of names corresponds to the notion of variables in algebra.

Tables

In the experiment:

4xS 4 8 12 16 20 24 28

3|123456 12 0 12 0 1

The following table should suffice to identify the function for most readers:

So. [s

0 0 0 0 1 0 2 0 1 2 2 2

3 0

12 3 4

Some Tools

The functions introduced by the following experiments are not only interesting

38

LIME BUFFEF

^6°

^^3

2

12

)2

J2

52

32

lip

3 134 134 13S 13< 136 137 140

SCELBI does it again! Here, for the first time, are all the tools you need to get the most out of your '8080'. About the only thing missing is the '8080' itself. Just look at what's in this total package ...

'8080' Octal Code Card and/or '8080' Hexadecimal Code Card, instant slide rule aids for programming or debugging '8080' software. Contains all standard mnemonics, with corresponding codes for either octal or hexadecimal modes. Easy-reading instructions are color coded to indicate which flags are affected during instruction execution. Front of card features quick, logical reference formats, while back displays ASCII code chart for all 128 characters, plus '8080' status words and register pair codes.

The '8080' Programmer's Pocket Guide is a

compact 3 x AVz" ever-ready, instant reference for either Code Card, that explains the instruction set in detail, giving both octal and hexadecimal codes.

SPECIAL MONEY SAVING INTRODUCTORY OFFER!

Each of these "must" programming tools sell individually for only $2.95. If you order today, you can own any two for only $5.50 ... or all three for only $7.95! You need these low cost, highly productive tools. So, order today, and save, Save, SAVE! Clip this handy mail order coupon and mail it today!

Scelbi Computer Consulting, Inc. P.O. Box 133 B PP STN Milford, CT 06460

Please rush items checked below (Write quantities of each in Q_) )

f~J Octal Code Card(s) Qj Hexademical Code Card(s)

[J The '8080' Programmer's Pocket Gulde(s)

□ I enclose $2.95 for Item indicated above.

□ I enclose $5.50 for 2 Items indicated above.

□ I enclose $7.95 for 3 Items indicated above. LIMIT: 3 items per customer for this money-saving Introductory

Offer.

Address, City

.State .

-Zip.

HuAG .AG ) VAL 4T FL

IT

R

30 2

065 002 JNZ

MRRED

• r>M T T

/ * « —

IF NOT, SET PNTR

PASS TO CON

Circle 115 on inquiry card.

in themselves, but prove very useful in further experiments:

17 17 210

+ /3 2 7 5 3+2+7t5

x/3 2 7 5

r/3 2 7 5

7> ( 11 ) '

0 "1 "2 "3

1 0 "1 "2

2 1 0 "1

3 2 10

* As a challenge to readers, we will print the answer to this thought experiment next month together with a complete explanation of how the expression is evaluated.

1 2 3 1

5o3

3 3 3 3 3

Mp2

2 2 2 2

0 12 3 "10 12 "2 10 1 "3 "2 "1 0

0 10 10/15

2 2 6

6 2 2 6

r/r

0 12 3

These functions can be used in many interesting ways to bring out the properties of other functions. For example, the relation between addition and multiplication and the relation between multiplication and power can be brought out by considering the following expressions for various values of N and/W:

tl-'l

iV-5

M-3

t/«p«

10

t/»p»

M*N

10

«»«

«/»pM

32

x/ffpM

M*»

MtH

Thought Experiments

Thus far we have considered only experiments performed with the aid of a computer or, what amounts to the same thing, with the aid of printed results prepared in advance by a computer. However, if the rules governing the notation are simple and uniform (as they are in APL), then one can perform interesting and revealing thought experiments by simply applying the rules. For example, the following expressions can be seen to be equivalent by performing thought experiments for various chosen values of N:

( (+/i/n + (+/<t>iAO M2 (+/(( iff)+4>iff )M2 C+/((A'pU+l)))*2

(ffx(ff + i ));2

In particular, the last expression is a neat way of evaluating the first. For example, if N is 100, then +/ \N is the sum of the first 100 integers, and is equal to (100x101)* 2, or 5050.

We will conclude with two thought experiments which use only functions already treated. The first:

(2=+/8)0 = (iAO°. I \N)/iN *

has a result which, when obtained for any argument N equal to 7 or more, should be recognized by any reader.

The second concerns comparisons of two tables M and T. The expression M¥=Tyields a

table of the same size containing ones and zeros, with ones only where M and T disagree. Therefore +/M^T gives counts of the disagreements in each row, and +/+//W=7t7" gives a single total count. Hence the latter expression yields zero only if M and T are identical.

The expression +/+/M^= § M therefore yields zero only if M agrees with its transpose § M obtained by "flipping M about its diagonal to interchange the rows with the columns." Evaluate the expression + / + /M*<SiM for values of M produced as function tables for various functions such as:

m*-s° .+s

«<-s° . xs

M<-S° . -S

M*-S° . <S

Then try to determine what class of functions yields a zero result.

Ideas for experiments in a variety of fields are available in existing publications. Among the references cited at the end of this article, Iverson (references 2 and 3) presents further definitions of APL functions, Blaauw (4) presents a 1 page APL definition of the Intel 8080 instruction set, the exercises in Iverson (5 and 6) and in Orth (7) present topics in mathematics at various levels, Spence (8) treats electric circuits, and Iverson (9) treats a variety of topics which include geometry and computer science."

REFERENCES

1. Falkoff, AD, Computing Reviews (to appear).

2. Iverson, K E, An Introduction to APL for Scientists and Engineers, APL Press, Pleasantville NY, 1976.

3. Iverson, K E, Introducing APL to Teachers, APL Press, Pleasantville NY, 1976.

4. Blaauw, G A, Digital System Implementation, Prentice Hall, Englewood Cliffs NJ, 1976.

5. Iverson, K E, Algebra: an algorithmic treatment, APL Press, Pleasantville NY, 1972.

6. Iverson, K E, Elementary Analysis, APL Press, Pleasantville NY, 1976.

7. Orth, D L, Calculus in a new key, APL Press, Pleasantville NY, 1976.

8. Spence, R, Resistive Circuit Theory, McGraw-Hill, New York, 1974.

9. Iverson, K E, APL in Exposition, APL Press, Pleasantville NY, 1976.

10. American Heritage Dictionary, American Heritage Publishing Co, 1969.

40

if you're not designing

with acsc proto-board;look

at all you're missing.

Utility—Models are available with or without built-in regulated power supplies (fixed or adjustable).

Accessibility—All parts are instantly and easily accessible, for quick signal tracing, circuit modifications, etc.

Economy—Eliminate heat and mechanical damage to expensive parts. Save money by re-using components.

Versatility —Use with virtually a types of parts, including resistors capacitors, transistors. DIP'S, TO-5's, LED's. transformers, relays, pots, etc. Most plug in directly, in seconds.

Durability—All Proto-Board models are carefully constructed of premium materials, designed and tested for long, trouble-free service.

Expandability—Proto-Board

units can be instantly interconnected for greater capacity.

Visibility-All parts are instantly and easily visible, for quick circuit analysis and diagramming

Variety—A wide variety of models are available with capacities ranging from 630 to 3060 solderless tie-points (6 to 32 14-pin DIP'S), to fit every technical and budget requirement.

Speed—Assemble test and modify circuits as fast as you can push in or pull out a lead. Save hours on every project.

Adaptability— Use in design packaging, inspection, QC, etc. Works with most types of circuits in many, many applications.

Flexibility—Use independently, or in conjunction with other accessories, such as scopes, counters, CSC Proto-Clip™ connectors, Design Mate™ test equipment, etc. One Proto-Board unit can serve a thousand applications.

Whatever type of electronic circuits you work with, you can do more in less time with |6f CSC's solderless ProtoBoard systems. As fast and f easy as pushing in or pulling out

a lead, you can design, test and modify circuits at will. Components plug into rugged 5-point W terminals, and jumpers, where f needed, are lengths of #22 AWG

solid wire. In the same time you took to read this ad, you could be well on your way to assembling a new circuit. For more information, see your CSC dealer, or write for our catalog and distributor list.

CSC PROTO-BOARD SOLDERLESS BREADBOARDS

CONTINENTAL SPECIALTIES CORPORATION

44 Kendall Street, Box 1942, New Haven. CT 06509

203-624-3103 TWX 7 10-465-122 7

West Coast 351 California St.. San Francisco. CA 94104

415-421-8872 TWX 910-372 7992

© 1976Continental Specialties Corp.

Prices and specifications subject to change without notice.

mmmmmmmmmmmmmmmmmmmsmmm

NO. OF MODEL SOLDERLESS IC CAPACITY MANUFACTURER'S OTHER NUMBER TIE-POINTS (14-PIN DIP'S) SUGG LIST FEATURES

PB-6

630

6

$15.95

Kit — 10-minule assembly

PB-100

760

10

19.95

Kit-with larger capacity

PB-101

940

10

29.95

8 distribution buses, higher capacity

PB-102

1240

12

39.95

Large capacity, moderate price

PB-103

2250

24

59.95

Even larger capacity; only 2.7t per tie-point

PB-104

3060

32

79.95

Largest capacity; lowest price per tie-point

PB-203

2250

24

75.00

Built-in 1%-regulated 5V, 1A low-ripple power supply

PB-203A

2250

24

120.00

As above plus separate %-amp +15Vand -15V internally adjustable regulated power supplies

Circle 116 on inquiry card.

The Complete Challenger 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

$2599°°

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

and baud rate

$209900

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.

Dept. S, Hiram, Ohio44234

Announcing a Computer that thinks in BASIC for only $298.

Ohio Scientific's new Model 500 computer has full mini-computer BASIC in ROM and a minimum of 4K RAM for user programs. BASIC is always there when the computer is turned on. Make your terminal intelligent!

If your company or school has remote computer terminals, consider the Model 500-1. It fits in the communications line between the terminal and modem or system. When the 500-1 is off, the terminal talks to the modem. When it is on, the terminal talks to the Model 500. Use the Model 500 for short and medium sized programs in BASIC. Use its immediate mode as an ultra-powerful scientific calculator! Computers for Students

Couple a Model 500 to a low cost purchased or leased terminal such as the popular ASR-33 teletype for student instruction. The Model 500's BASIC is a perfect instructional language for students. Since the computer's machine code is also accessible, the Model 500 can challenge the advanced student with other optional software such as our interactive Assembler/Editor. Personal Computing

The Model 500 has eliminated all of the grief of the first generation personal computers. This computer comes fully assembled, tested, and guaranteed.

Most importantly, it is easy to use since the BASIC is always there.

Flexibility and Expandability

The Model 500 uses Ohio Scientific's standard 48 line bus so that it is fully compatible with our Model 400 kits and Challengerlm product lines. Any of thirteen accessory boards including RAM, PROM, parallel, serial, A/D, D/A, cassette, and video graphics can be added as well as peripherals including floppy disks, line printers, color graphics, and more.

The Model 500 is offered here in three forms to meet every application and pocket book. Specifications

Model 500 Board $298.00

8" x 10" fully assembled board including 6502 microprocessor running at 1MHz, 512 bytes of PROM, 8192 bytes of ROM containing 8K BASIC and 4096 bytes of RAM for user programs. The board contains an ACIA based serial interface which is jumper selectable for RS-232C or 20ma loop at 110, 300, 1200, 2400, or 4800 baud.

The 8K BASIC features: full floating point math including transcendental functions, N dimension arrays, multiple letter

variables, full string functions, logical operators, PEEK, POKE, USR, and lots more!

The Model 500 board requires +5 volts at 2 amps, -9 volts at 500ma, an external reset switch, and an ASCII serial terminal for operation. Model 500-1 $429.00

Fully enclosed 500 board with power supply, reset switch, and two 25 pin EIA standard terminal connectors for loop through operation. The 500-1 is 12" x 15" x 4". Model 500-8 $629.00

This unit is a 500 board in an eight slot Challenger"11 case allowing seven slots for expansion. The unit has a heavy-duty UL recognized power supply and is 15" x 17"x10".

ORDER FORM

Order directly from:

Ohio Scientific; Hiram, Ohio 44234

This introductory offer expires August 31, 1977. Please allow up to 60 days for delivery.

PRINT OR TYPE CLEARLY.

Name

Shipping Address

City

_State_

-Zip_

Payment by: BAC(VISA)_ Credit Card Account # _

MC_

. Money Order

Expires.

Interbank # (Master Charge).

. Model 500 Boards @ $298.00 _

. Model 500-1 Computer @ $429.00 _

. Model 500-8 Computer @ $629.00 _

. Additional 4K RAM Memories for 500-8 @ $149.00

4% Sales Tax (Applies to

Ohio Residents only) _

TOTALCHARGEDOR ENCLOSED.

All orders shipped insured UPS unless otherwise requested.

Hiram, Ohio 44234

Circle 11 7 on inquiry card.

Listing 1: An APL Lunar Lander program. The program consists of the main program function FL Y, plus an optional initialization program LEM and a set of subfunctions called from FL Y. All input and output operations are contained in the subfunctions so that the operator can more easily experiment with different output formats. The program has been written for a hypothetical APL interpreter designed for use in microcomputers, and as such uses a subset of the standard APL operators. Note the compact nature of the program (an APL hallmark), and the fact that line numbers used in program functions can be repeated in subfunctions.

Here's APL

David D Keefe 144A Spring St Tillson NY 12486

7 FLY

[1] I550:SB*Z*S*3pr3*Sr*r»0

[2] E-3pl0

[3] F»F3

[I] D»/13,01,DS [5] V~YS,VH,V5 [6] 16H0!2T-i-|<(C|lHi'xJr)-2» [7] CKSCALE

[8] FTSTAT

[9] T*-t'T' ,(0.01>F)/'F'

[10] -*(0.01>F)/£830

[II] SETVALUE

[12] Mfrr 11 (I r) L r J"F

[13] Z*Z+#<|B

[1U] B-CMUBJxxfl

[15] B-l ( IB)[(0[F-+\ 3t2 + flxT)*3')

[16] ->(0.01SF»0[F-3,x-i-/|B)/£1530

[17] '.««*. OUT OF FUEL »***»'

[18] £1530:->(V/(0=F) ,2=Z)/£1780

[19] (Z»0)/[0](3 10 p'VERTICAL

E WILL BLOW III ' ).<3 3 p [20] E~F-Z«0 [21] £830:£)»D + (PxTH (TxTxG + B

DxC)»0. SltltntltC

TRANSVERSEHORIZONTAL< 0 IE) , 3 7 p' BURNS. •

[22] [23] [21]

[25] [26] [27] £1780:

!)*2

W'D.OKF »(0.001<l + £>)/£610 ENDGAME

****BANG'. '

[1]

[2]

[3]

[■4]

[5]

[6]

[7]

[8]

[9]

[10]

[11]

[12]

[13]

[11]

[1] [2] [3] [»] [5] [6]

SAVED TRIS TYPE TYPE

[1]

[2]

[3]

[1]

[5]

[6]

[7]

[8]

[9]

[10]

[11]

[12]

[13]

[1"]

[15]

[16]

[17]

[18]

[19]

[20]

[21]

[22]

[23]

[21]

[25]

[26]

[27]

V CKSCALE:DS1:DS2;PL0T -►(lOOOSlfO/O »(100<1*£>)/£1

'.**«».PBSPdtfE FOR IMPACT' -*(10sltB)/£l

>***•*••***FASTEN RETAIHING STRAPS' L1-.DS1- lt(0 20 100 500 2500 <|ltl*£>)/ 1 20 100 500 2500 0S2- l+(0 20 100 500 2500 <| 1+0)/ 1 20 100 500 2500 ' SCALE :X=' ,(?£>S2) , ' ,y= • ,f£>51 P£OT~121pO P£03'[5 + llxill]i-6 F£OT[55+lll]<-llp5

P£02'[60»(llx(5[[ |B[l]ffl51)xxB[l])t( (5LL |D[2 ]«DS2 )*»i>[2 ] >>1 P£0T[6O]-2+P£Or[6O]

4> 11 11 p+' *DBi-l-DD'[P£orl r

V FTSTAT

'AT TIME T - •,{lT3-T3*T).' SEC. STATS ARE AS FOLLOWS:'

• VERTICAL TRAIIVERSE HORIZONTAL'

'DISTANCE' ,9K18 2 »£»),' METERS'

'VELOCITY',94(18 2 IV),'MTRS/SEC.'

'FUEL... ,,(2tF),' BURN UNITS'

•COMPUTED TIME TO IMPACT AT PRESENT RATE... • , (2»J'F«D[0]>

0.001) ,' SECONDS. ' '

)LOAD LEM

18.10 01/03/77 IS THE-"LUNAR LANDER" PROGRAM

"LEM" TO ENTER A NEW SET OF SPACE AND VEHICLE CONDITIONS "FLY" TO USE THE PRESTORED SET OR TO RETRY THE SET YOU ENTERED IN "LEM"

V LEM 'THIS IS A LUNAR LANDING PROGRAM' 'ENTER INITIAL ALTITUDE IN METERS...' A3*fJ

'ENTER INITIAL VERTICAL VELOCITY (DOWN IS MINUS)...' P6-P

'ENTER TRANSVERSE DISTANCE (Y)...' BH-D

'ENTER Y VELOCITY. . . ' V1-D

•ENTER HORIZONTAL (X) DISTANCE...' 05-D

'ENTER X VELOCITY...'

P5*D

•ENTER MAXIMUM BURN RATE...• «*□

•ENTER FUEL CAPACITY...• F3*D

•ENTER PLANETARY FORCES (GRAVITY, Y AND X CORIOLIS COMPONENTS)' G-<-3pD,0 ,0 ,0

'enter minimum specifiable time delta...'

mt~d

'enter name of your ship...'

About the Game

This APL version of the Lunar Lander program is developed from a BASIC version called LEM, published in the NovemberDecember 1976 issue of Creative Computing magazine ("LEM" contributed by Bill Cotter). The program has been restructured

The APL System

This APL Lunar Lander program has been written using a significant subset of the full APL operator set (such as APLSV implemented on the IBM 5100), and is eventually intended for use on a small system APL interpreter. In general, the functions use no array operations or vector subscripting (indexing). However, for illustration purposes specific examples of array reduction and vector indexing are included. In these cases the text describes alternate procedures with examples to show why it is advantageous to keep this higher level of capability. The operator subset used is based on a proposal contained in Mark Arnold's article "What is APL?" (November 1976 BYTE, page 20), which has been expanded slightly to include the execute and vector rotation operators.

tCONTROL TO

COMMENCE LANDING'

About the Author: Dave Keefe describes himself as an incredibly lazy programmer. He is convinced that APL lets him write, test and bring up a new application in less time, less effort and with less symbols than any other major language. He wrote this article over the holiday season in the hope that the game format would make a good vehicle for showing how APL can be applied. The game program took a couple of evenings at an APL machine's terminal. The rest of the article took considerably longer.

44

Listing J, continued:

in Action!

to use vector operations within the force equations, resulting in a simplified program structure. Vector operations also allow the game to be easily expanded: For example, the user can now specify Coriolis force elements, seen as an effect on the horizontal and transverse velocities as a result of the rotation of the target planet. These forces are applied as a part of the same equation which applies the gravitational force.

The Program

The APL LEM program consists of a main program function (FLY), an optional initialization function (LEM), and a set of subfunctions which are called from within FLY. In general, the input and output operations associated with LEM have been put into separate functions. This permits experimentation with variations of the 10 formats without affecting the main processing program which calls these functions. The accompanying write-up describes each of the statements in the FLY program and the general operations performed in the other functions. It is intended as a tutorial to be read in conjunction with the function listings, which continue on the next two pages.

rn

[21 [3] [1]

[1] [2] [3]

[«:

[5] [6] [7] [8] [9]

[1] [2] [3] [1] IS]

m if]

[3] tt] [5]

[6] [7]

m

[9] [10]

en]

[12]

V SETVALUE

•T' SET 'ENTER TIME INTERVAL- ' 'B[0]' SET ' VERTICAL (2) BURN? '

'Bill' SET ' TRANSVERSE <Y) BURN?

'B[2]' SET ' HORIZONTAL (X) BURN?

7

V A SET HSG;V »(1=1'S' ,A I/O B+MSG

i'»(p«sc)+n

h-(v/F=',' )/ss lA,'~FIX I"

■»a

SS:t'S',A ,' id, **-0' ♦0

-l1

7 Z~FIX D DLl*Z/\oZ-<-D=' . ' Z-ID*' 'I/O B*l+Z,'0' Z»(0«pZ)/(l~De ' Z»l»lZ.' ',WIA

0123>»56789' )/ '

. 0123456789' 1/Z

1 ENDGAME

D[0]~0

CKSCALE

PTSTAT

+(a/3»|v)/succ

(8 8 d'OH-OH...SHUCKS..SORRY. 1+ + / 1 2 4 xZ*-3<\V+G;]

.AAAAARCHWUOOPS. .o!?>*'.

AIEEEEEEGDHELRUS')[

ATE' 0.5)

'AT ',(0»T3*60),' MIN.. ',(2»60|T3),' SEC. INTO THE LANDING PROCEDURE' ALL RADIO CONTACT WITH THE ',N,' WAS LOST.' AT LAST REPORT SHE WAS ',((0.01>F)/'OUT OF FUEL AND ').'DESCENDING AT THE R

METERS/SEC., WITH A GROUND SPEED OF

[13]

[11] SUCC:

OF ' , WlVlOt)

METERS/SEC.'

'.»««. 1.HER LAST REPORTED POSITION WAS ' , < 2T ( + /DxD-1 tD)*0 . 5 ) , ' ET LANDING SITE.'

' SHE IS PRESUMED TO HAVE ' . ( I 3 < I l'[ 0 ] ) / • CRASHED '.(3<B)/

FED OVER '),'UP0N IMPACT.'

(2»B»(+/fl«B»l*r+G>* METERS FROM THE TARG ' AND ').((3<fl)/'FLIP

'THE

,N , ' HAS LANDED'. 1»D)»0.5)/GRT

[15] ~(A/U>|B~(+/Bx

[16] -»(A/20>IB)/OX

[17] ~(r./100>lB)/FAIR

[18] ~(A/SO0>|B)/PC<7fl

[19] 'OF COURSE YOU ARE HOPELESSLY LOST IN THE WILDERNESS.'

[20] ->0

[21] FAIR:'TOO BAD THAT YOU ARE BALANCED ON THE EDGE OF A CREVASSE... YOU WERE ',(

7 2 »S),'METERS OFF TARGET'

[22] »0

[23] OK:'YOU ARE ALMOST READY TO SOLO WITH THAT PERFORMANCE'.'

[21] -»0

[25] CRT:'YOU QUALIFY FOR SENIOR PILOT WITH THAT ONE'.'

[26] ->0

[27] POOR-.'UNFORTUNATELY YOU ARE IN THE MIDDLE OF A RATHER DEEP RIVER

WORSE YET, YOU ARE 3 METERS UPSTREAM OF A 1000 METER WATERFALL'.

[28] -»0

Listing 2: An explanation of the Lunar Lander program shown in listing I. Author Keefe provides detailed comments about the program, a virtual necessity when programming or reviewing programs in APL, because of its conciseness. In the case of the subfunction CKSCALE, an alternate program is described which avoids the use of vector and array indices.

FUNCTION NAME: FLY

THIS FUNCTION IS THE PRINCIPAL CALCULATION AND bOGIC PROCESS IN THE LUNAR LANDER (ALIAS - THE MAIN LINE). BRANCH POINTS WITHIN FLY ARE LABELLED "l«>" WHERE ««« IS THE LINE NUMBER IN THE BASIC VERSION OF LEM WHICH IS MOST COMPARABLE TO THE PROCESSING WHICH OCCURS AT THIS STATEMENT. THE FOLLOWING SECTION PROVIDES A LINE BY LINE DESCRIPTION OF THE PROCESSING WHICH IS PERFORMED IN FLY:

LINE NO| DESCRIPTION

1 THIS LINE SHOWS HOW A SINGLE APL STATEMENT CAN BE USED TC

SPECIFY MULTIPLE VARIABLES FOR BOTH VECTORS AND SCALARS. THIS STATEMENT SETS ALL OF THE VARIABLES NAMED TO ZERO. SB, Z, AND B ARE 3

ELEMENT VECTORS: T3, ST, AND T ARE SCALARS.

2 E IS A VECTOR WHICH SHOWS THE NUMBER OF BURNS LEFT FOR A

DAMAGED ENGINE. IF ANY ELEMENT OF E EVER REACHES ZERO THE ENGINE WILL EXPLODE.

3 F IS THE REMAINING FUEL. IT IS INITIALIZED TO THE VALUE

INPUT IN THE LEM ROUTINE.

TRANSVERSE AND HORIZONTAL VELOCITIES BEING APPLIED TO THE LANDER.

£640 - THE START OF THE MAIN PROCESSING LOOP. TF IS THE CALCULATED TIME UNTIL IMPACT ASSUMING THE VERTICAL ENGINE IS SHUT DOWN. THIS IS SIMPLY A SOLUTION FOR THE POSITIVE REAL ROOT OF THE QUADRATIC EQUATION [ 0 = 0+ ( VxTFl t ( . 5»<7 )xTF*2 ] .

THE CKSCALE FUNCTION PRINTS THE GRID SHOWING LEM tOCATION VERSUS THE TARGET AS THE LEM APPROACHES TOUCHDOWN.

THE PTSTAT FUNCTION PRINTS THE CURRENT FLIGHT STATISTICS.

AND 10 PROVIDE A SHORTCUT FOR THE CASE WHERE THE LEM HAS RUN OUT OF FUEL. STATEMENT 9 FORCES THE TIME TO THE FULL TIME-TO-IMPACT AND 10 THEN BRANCHES DIRECTLY TO THE MAIN CALCULATION SEGMENT. THESE STATEMENTS COULD HAVE BEEN COMBINED INTO A SINGLE COMPOUND STATEMENT. FOR EXAMPLE, ->lFT,OoT<t'T' ,(.FT<0.01>F)/'F')/LQ30 HOWEVER THE CATENATION FT,0pT->-... IS ARTIFICIAL AND NOT CONSIDERED GOOD FORM IN APL.

u D IS THE DISTANCE VECTOR CONTAINING THE ALTITUDE,

TRANSVERSE AND HORIZONTAL DISTANCE FROM THE TARGET LANDING AREA. NOTE BOW CATENATION IS USED TO FORM THE VECTOR FROM THE THREE SCALARS WHICH WERE ENTERED IN LEM .

5 V IS THE VELOCITY VECTOR MADE UP OF THE VERTICAL.

11 THE SETVALUE FUNCTION READS IN NEW VALUES FOR THE TIME

INTERVAL AND BURN RATE (T AND B).

12 THE RESULTANT VALUE OF T WILL BE EQUAL OR GREATER THAN

THE MINIMUM ALLOWED TIME (MT) AND NO GREATER THAN THE NEAREST WHOLE SECOND GREATER THAN THE ZERO-BURN TIME TO IMPACT !TF).

45

Listing 2, continued:

13 A REAL EXAMPLE OP THE POWER OF APL. SOTS HOW THE RESULTS

OF THE LOGICAL OPERATION M<\B (MAXIMUM BURS RATE LESS THAU THE ABSOLUTE VALUE OF THE BURN VECTOR ELEMENTS) ARE USED TO INCREMENT THE Z VECTOR WHICH INDICATES ENGINE DAMAGE. IF ANY ONE OF THE BURN ELEMENTS EXCEEDS M, THE CORRESPONDING ELEMENT IN Z IS INCREMENTED.

14 THE RESULTANT B IS LIMITED TO THE MAXIMUM BURN RATE. THE

OPERATION xxfl REPLACES THE SIGN ON EACH ELEMENT OF B WHICH WAS REMOVED BY THE ABSOLUTE VALUE OR MAGNITUDE OPERATION.

15 THE BURN VALUES (B) ARE LIMITED BI THE AVAILABLE FUEL

AND FUEL PRIORITY GOES TO THE VERTICAL ENGINE BEFORE TRANSVERSE, BEFORE HORIZONTAL. NOTE THE USE OF THE PLUS SCAN OPERATOR (+\). IF gal 2 3, THEN +\"3t2+B WOULD BE + \0 1 2 OR 0 1 3. IF PLUS SCAN IS NOT IMPLEMENTED LINE 15 MUST BE EXPANDED TO 3 LINES WITH SEPARATE FUEL TESTS FOR EACH ELEMENT OF B.

16 THE NEW FUEL VALUE IS CALCULATED AND THEN TESTED, A

BRANCH TO 11530 OCCURS IF MORE THAN 9 THOUSANDTHS OF A BURN UNIT REMAIN.

17 PRINTS THE OUT OF FUEL WARNING

18 £1530 CONTAINS A POWERFUL TEST USED TO DETERMINE IF ANY

ENGINE HAS BEEN ABUSED. TWO LOGICAL VECTORS (0-E AND 2=2) ARE CATENATED AND THE RESULT IS TESTED VIA OR REDUCTION (v/). IF ANY OF THE ELEMENTS IN THE RESULTANT VECTOR IS SET TO 1, THE BRANCH TO £1780 OCCURS (.BANC).

19 SHOWS APL ARRAY CAPABILITY AS THE LOGICAL VECTOR Z»0 IS

USED TO SELECT ROWS OF A CHARACTER ARRAY WHICH CONTAINS A MESSAGE. IF THE MICRO-APL SYSTEM DOESN'T SUPPORT ARRAY OPERATION, USE ONE OF THE NON-ARRAY ALTERNATIVES SHOWN BELOW.

[19] (OzltZ)/'VERTICAL',(ENG*' ENGINE WILL BLOW IN ')

, (JltE) ,BN--' BURNS' [19.1] (0«1+1*Z)/'TRANSVERSE',ENG,(rltltE),M [19.2] (0» HZ)/'HORIZONTAL' ,ENG , (.v'liE ) ,BN

IF VECTOR SUBSCRIPTING IS ALLOWED A CONVENIENT ALTERNATIVE IS:

[19] 0 BURN 'VERTICAL' [19.1] 1 BURN 'TRANSVERSE' [19.2] 2 BURN 'HORIZONTAL'

WHERE BURN IS THE FUNCTION... VA BURN MSG [1] IU1/SJS,1 ENGINE WILL BLOW IN MlIU]),1 BURNS"!

20 LIKE LINE 13 USES THE LOGICAL VECTOR RESULT IN AN

ARITHMETIC 0PERATI0N-T0 DECREMENT THE REMAINING BURN COUNT.

21 £860 - THE REAL WORK OF THE FLY FUNCTION'. THIS STATEMENT

CALCULATES THE NEW DISTANCE VECTOR

22 FORMS THE NEW VELOCITY VECTOR

23 ZEROS THE BURN VECTOR IF THE FUEL IS EXHAUSTED.

2U BRANCHES BACK TO £640 IF THE LEM IS MORE THAN A MILLIMETER ABOVE THE SURFACE.

LESS. WARNING MESSAGES APPEAR AT 100 METERS ALTITUDE AND AN EXPANDED WARNING APPEARS AT 10 METERS. TRY LINES 6 AND 7 IN BASIC THE HORIZONTAL AND TRANSVERSE SCALES OF THE GRID ARE AUTOMATICALLY ADJUSTED AS THE LEM GETS CLOSER TO THE TARGET. THE LEM IS SUPERIMPOSED ON THE TARGET IMAGE IF YOU FLY IT WITHIN 4 METERS. THIS FUNCTION USES VECTOR OPERATIONS ONLY EXCEPT FOR LINE 14 WHICH PRINTS THE GRID AS A CHARACTER ARRAY. LINE 14 COULD BE REPLACED WITH A LOOP TO PRINT EACH ROW OF THE GRID. THE ROTATE OPERATORS (t) CAN BE ELIMINATED BY CHANCING A COUPLE OF SIGNS IN LINE 12. THIS WHOLE ROUTINE IS MORE STRAIGHTFORWARD IF ARRAY INDEXING IS ALLOWED. EG - HERE ARE LINES 9-14 IN APLSV NOTATION AS USED IN THE IBM 5100:

[9] PLOT+ll llpO

[10] PLOTl ;5>6

[11] P£OT[5;>5

[12] P£Or[5-(5[[|0[l]tBSl>«

[13] PLOTl 5; 5]-P£On 5; 5]*2

[14] I iDffit |-DD'[P£0!'1V

:B[l];5+(5[[|P[2]*BS2)xx/)[2]]~l

AN ALTERNATIVE ROUTINE WHICH USES A LOOP AND AVOIDS BOTH VECTOR AND ARRAY INDICES IS:

[9] £i-5-(5LL|Cl*OSl>«*Bl*ltltB

[10] fl~5t(5[[IB25BB2)xxB2»ltB

[11] 7*0

[12 ]£OOP:»(/ = £)/SET

[13] ~<I=5)/B5y(

[14] lit 6t ' -'

[15] ~NXT

[15 ]S5/t:llp(5p' I ' ) ,'D'

[17] -NXT

[ia]5£T:»(I=5)/ff5B

[19] (.RtSC) ,'*' , (fftll+SOllt 6t'-'

[20] +NXT

[21 ]P5B: (RISC) , I. It ((S=5 )/'E' ) , '» ' ) . (fl+1 HSCVllp (5p ' I ' ) , ' D'

[22]M7,:»(10>I-i'+l )/L00P1

FUNCTION NAME: PTSTAT

THIS FUNCTION PRINTS OUT THE CURRENT FLIGHT STATISTICS.

FUNCTION NAME: LEM

THIS FUNCTION IS USED TO INPUT THE INITIAL PARAMETERS TO THE WORKSPACE. NOTE THAT MORE VARIABLES ARE REQUESTED IN THIS VERSION OF LEM THAN IN THE BASIC VERSION. THE ADDED VARIABLES LET YOU MAKE THE GAME MORE CHALLENGING BY SPECIFYING THE MINIMUM BURN TIME AND ALSO IMPOSING CORIOLIS FORCES ASSOCIATED WITH THE R0TATI0N0F THE PLANET IN ADDITION TO THE GRAVITY FORCE.

FUNCTION NAME: SETVALUE

THIS FUNCTION IS USED TO INPUT NEW TIME AND BURN VALUES TO THE FLY PROGRAM. SETVALUE USES THE SET FUNCTION TO READ AND CHECK EACH VALUE. SET IN TURN USES THE FIX FUNCTION TO TRANSLATE THE CHARACTER INPUT INTO A VALID NUMERIC VALUE. IF NO VALUE IS ENTERED IN RESPONSE TO THE REQUEST FOR INPUT, THE PREVIOUSLY ENTERED VALUE WILL BE USED. SET ALSO SCANS FOR A "*" IN THE INPUT CHARACTER STRINC. THIS CHARACTER IS USED TO SHUT DOWN THE ENGINE FOR THE DURATION OF THE FLIGHT. THE APPROPRIATE BURN VALUE WILL BE SET TO ZERO AND NO FURTHER INPUT VALUES WILL BE REOUESTED FOR THIS ENGINE.

25 THE ENDGAME FUNCTION PRINTS YOUR REPORT CARD.

FUNCTION NAME: CKSCALE

THIS FUNCTION DISPLAYS A GRID SHOWING THE LEM POSITION ({SYMBOL) RELATIVE TO THE TARGET LANDING AREA. THE GRID APPEARS AS SOON AS THE ALTITUDE IS 1000 METERS OR

FUNCTION NAME: ENDGAME

THIS FUNCTION PRINTS THE GOOD/BAD NEWS ONCE THE LEM HAS REACHED THE SURFACE. NOTE THAT A COMMON MESSAGE IS USED FOR ALL CRASH REPORTS WITH LOGICAL OPERATIONS USED TO CONTROL INCLUSION OF VARIOUS DISASTERS.

Listing 3: A sample run of the Lunar Lander program. This is the classic version of the game In which the operator attempts to become a senior pilot by optimally landing his craft within the constraints of the program. As part of its printout, the program provides a set of two coordinate axes showing the position of the operator's ship at discrete time intervals.

FLY AT TIME T - 0 SEC. STATS ARE AS FOLLOWS:

VERTICAL TRANVERSE

DISTANCE 3000.00 2300.00

VELOCITY "100.00 "580.00

FUEL... 1500.00 BURN UNITS COMPUTED TIME TO IMPACT AT PRESENT RATE:.. ENTER TIME INTERVAL- 10

VERTICAL (Z) BURN? 1

TRANSVERSE (Y) BURN? 61

HORIZONTAL (X) BURN? "ll

AT TIME T = 10 SEC. STATS ARE AS FOLLOWS:

VERTICAL TRANVERSE

DISTANCE 1900.00 "450.00

VELOCITY "120.00 30.00

FUEL... 770.00 BURN UNITS

HORIZONTAL 2000.00 METERS S.OOMTRS/SEC.

2 6.49 SECONDS.

HORIZONTAL 1500.00 METERS ~105.00MTRS/SEC.

COMPUTED TIME TO IMPACT AT PRESENT RATE. ENTER TIME INTERVAL- 14.5

VERTICAL (Z) BURN? 1.2

TRANSVERSE (Y) BURN? 0

HORIZONTAL (X) BURN? 1

SCALE:X=20.7=4

I I I I IDI I ! II

14.91 SECONDS.

46

Listing 3, continued:

AT TIME T = 2U.5 SEC. STATS ARE AS FOLLOWS:

VERTICAL TRASVERSE

DISTANCE _181.03 15.00

VELOCITY 117.10 30.00

FUEL... 738.10 BURS UNITS

COMPUTED TIME TO IMPACT AT PRESENT RATE. .. ENTER TIME INTERVAL- 1

VERTICAL (Z) BURN? 0

TRANSVERSE (Y) BURN? "30

HORIZONTAL U) BURN? 70

******PREPARE FOR IMPACT SCALE:X=20,7=0

HORIZONTAL _B2.63 METERS 90.SOMTRS/SEC.

1 . 514 SECONDS .

TRANVERSE

.00

VERTICAL

DISTANCE 3.3 3

VELOCITY "2.10

FUEL... 518.10 BUSS UNITS

COMPUTED TIME TO IMPACT AT PRESENT RATE.

ESTER TIME ISTERVAL- 1

VERTICAL (Z) BURN? 1 HORIZONTAL <X) BUSS? 17.5

******PREPARE FOR IMPACT **********FASTEN RETAISISG STRAPS SCALE:X=»,Y=0

II I I IHII I I I

HORIZONTAL

8.13 METERS "17. ■iOMTRS/SEC.

1.2 3 SECONDS.

STATS ARE AS FOLLOWS: TRANVESSE

niimmii

AT TIME T = 2 5.5 SEC

VERTICAL

DISTANCE _ 6 3.1*3 .00

VELOCITY "118.10 .00

FUEL... 638.10 BURN UNITS COMPUTED TIME TO IMPACT AT PSESENT RATE. ENTER TIME INTERVAL- 1

VERTICAL (Z) BURN? 117

TSANSVESSE (Y) BURN?

HORIZONTAL (X) BURS? 3

******PREPARE FOR IMPACT **********FASTEN RETAINING STRAPS SCALE:X=1,Y=0

HORIZONTAL _27.13 METERS 20.iOMTRS/SEC.

.5U SECONDS.

AT TIME T = 27.5 SEC. STATS ARE AS FOLLOWS:

VERTICAL TRASVERSE

HORIZONTAL

DISTANCE 1.2 3 .00

.6 3 METERS

VELOCITY 2.10 .00

.00MTRS/SEC

FUEL... 1499.60 BURN UNITS

COMPUTED TIME TO IMPACT AT PRESENT RATE...

.52 SECONDS.

ENTER TIME INTERVAL- 1

VERTICAL (Z> BURN? 1

HORIZONTAL (X) BURN?

******PREPARE FOR IMPACT

******,***FASTEN RETAINING STRAPS

SCALE:X=U,7=0

1111 IIBI 1111

II IIIDI'll I

AT TIME T - 26.5 SEC. STATS ARE AS FOLLOWS:

AT TIME T = 2 8.5 SEC. STATS ARE AS FOLLOWS:

VERTICAL TRASVERSE

HORIZONTAL

DISTANCE .00 .00

.6 3 METERS

VELOCITY 2.10 .00

.00MTSS/SEC

FUEL... U98.60 BURS UNITS

COMPUTED TIME TO IMPACT AT PRESEST RATE...

.00 SECOSDS.

*t**t*THE HAL-LUJAH HAS LANDED1.******

YOU QUALIFY FOP. SESIOR PILOT WITH THAT ONE'.

Business Firmware Announced!

Includes over $25,000.00 of business programs free and that's only part of what we're giving away. We built our reputation providing quality software at affordable prices. Now we are going to do the same with Firmware.

Dealer Inquiries Invited.

Soon To Be Unveiled

What is a Firmware System?

A Firmware system is the entire package — Software and Hardware that work.

Our Firmware includes a miniature micro 8080 computer; S-100 Buss, with over 65K of user RAM. No switches to set, Power-on operation, multiple I/O interfaces, printer, Video Terminal, over 600K Byte Disk, Disk Extended Basic and applications Software on diskettes complete with full documentation (includes General Ledger, Payroll, Word Processing, Medical A/R, A/P, Engineering, Statistics, more) plus a lease purchase plan and field service in most areas. Hard to believe! For less than $300 you could lease your very own, nothing else to purchase. Foreign packages available last of 77.

Complete System (fully assembled) $8999.00*

Additional 600K disks optional.

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

"Add $60 for UPS shipping and handling • No Purchase Orders — include 50% deposit with all COD orders.

o

SCIENTIFIC RESEARCH

1712-B Farmington Court

Crofton, MD 21114

(301)721-1148

47

SYNCHRO-SOUND Enterprises

Your Small Computer Department Store

LtJ iI^M M*X^ ■!•]•]•] 11L*U4j

Hardware and Software

NEKI

LEARSIEGLER

ADM-3A TERMINAL

Compare our PRICES, PRODUCTS, QUALITY,

you need in small computers, terminals, printers, monitors, keyboards, accessories. We'll meet or beat competitive prices on everything we sell!

IMSAI 8080 MICROCOMPUTER

• 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 to 19,200 baud (switch selectable).

• Computer Interfaces— EIA standard RS232C and 20mA current-loop (switch selectable).

• Data Entry— New data enters on bottom line of screen; line feed causes upward scrolling of entire display with top-ofpage overflow. Automatic new line switch selectable, end-of-line audible tone.

ADM-3A Kit 795.00

ADM-3A Assembled . . 895.00 Lower Case Option . . . 89.00

Powerful • Easy to use • Low cost

With 22 Slot Mother Board... $619.95 With Z-80 CPU 849.95

OKIDATA Model 110 Line Printer

• 110 CPS dot matrix

Friction Feed $1099.00

Tractor Feed 1229.00

RS 232C Serial Interface.. .250.00

SPECIAL BUYS

HAZELTINE Modular One Video

Terminal $1639.00

SORAC IQ120 Video Terminal Kit 959.00

DEC LA180 Printer 2769.00

COMPUCOLOR8001 Color Graphics

Computer 2595.00

ICOM Microfloppy Disc & Controller... 989.00 NORTH STAR Microfloppy Disc &

Controller 599.00

OKIDATA Model 22 Printer 2095.00

OMNITEC 401C 300 Baud Modem 300.00

2708 EPROMS 29.95

OAE Papertape Reader 69.95

SOL 20 In Stock For Immediate Delivery

NEKI

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.

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

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

Keyboard Kit $99.95

Enclosure (with numeric

cutout) 49.95

Numeric Pad 34.95

Complete Kit (with pad)179.95 Assembled Unit

(with pad) 229.95

DECwriterll

SOFTWARE

Attention ALTAIR DISK Owners

Now available—an Accounts Receivable System for the small user. This system is expressly designed to be run on an 8080 based microcomputer using an Altair floppy disk with Altair Basic, Video Terminal and Printer. Many features normally found only on large scale computers are included. Provided are such functions as: Adding New Customer Accounts, Deleting Dormant Accounts. Transaction Processing, and Report Generation. The Monthly Statements include both current and aged balances. Other reports generated are the Aged-Accounts Receivable and Delinquency Notices.

This easily usable system requires very little operator training. All communication is in an interactive mode with the program constantly prompting the appropriate responses. Operator errors are easily corrected and accidental data base deletions are prevented by requiring additional confirmation.

This Accounts Receivable System, although supplied ready for use, may readily be modified to include special installation-dependent functions. All major programs are written in high level language making program additions and alterations a simple task. This program module is designed to serve as the basis for a complete accounting package. Provisions are included for linking Billing Inventory Control and General Ledger modules which will be available in the near future.

We carry a full line of the following: TDL, OAE, Processor Tech., Hayden, Tarbell, IMSAI, Cromemco, Compucolor, Icom, Lear Siegler, Okidata, DEC, Javelin, Teletype, North Star, Heuristics, Peripheral Vision, TRW. Same day delivery and shipping on most items. Full, modern repair facilities on premises for complete servicing of everything we sell.

SYNCHRO-SOUND Enterprises

The Computer People

193-25 Jamaica Avenue, Jamaica, New York 11423 • 212/468-7067

Hours 9-4 daily Visit our new showroom .

and Saturday working units on display

Dept. b BankAmericard • Master Charge

• 132 column printing • 30 CPS

• Full keyboard • Tractor Feed

$1769.95

I i Please send

me

furth

er informat

on on

(list

items)

Price

List

□

City

State

Zip

Circle 118 on inquiry card.

An APIInterpreter for Microcomputers:

Parti

Michael Wimble

6026 Underwood Av SW

Cedar Rapids IA 52404

With this article we begin a three part series by Mike Wimble about an APL interpreter for small systems. The articles consist of a series of flowcharts from which the enterprising reader can construct his or her own code. Considering the complexities of APL, it is interesting to note that Mike's own program for this interpreter (written in PL/I) is less than 1600 statements long!

The format of this article will be slightly different from most of the other articles that have appeared in BYTE. Because this series of articles is predominantly pictorial, we have integrated the main text into the figure captions. As a result, some of the captions discuss topics related to other figures. In these cases we have added cross references for clarity's sake. We hope this format will eliminate unnecessary page turning.

Table of Contents

The following table of contents describes the material covered in this month's article

as well as the two upcoming articles (to be published in the September and October issues of BYTE).

Part 1: The Scanner

Statement scanner tables

Results of a hypothetical program containing a user-defined function

Statement scanner overall flowchart

Scanner subroutine flowcharts

Part 2: The Statement Interpreter — Expression Evaluation

\

Interpretation of variables

I September 1977

Interpretation of constants

i BYTE

Interpreter flowcharts

)

Part 3: The Statement Interpreter — Mathematical Processing

)

Recognition of operators Interpretation of operators

} October 1977 \ BYTE

Interpreter flowcharts

)

50

The Great APL Interpreter Contest

As an incentive to those experimenters who would like to try writing their own APL interpreters based on this series of articles, BYTE announces the Great APL Interpreter Contest. We will award prizes for APL interpreters (suitable for publication with royalties to authors) based on Mike's flowcharts (or independent of them if you prefer).

Contestants are free to write their interpreters for any microprocessor they choose. Entries will, however, be judged on their suitability for use on small systems with a minimum of 16 K bytes of memory, as well as on programming elegance and efficient use of space. All of these factors should therefore be kept in mind.

Entries should be addressed to BYTE, attn: The Great APL Interpreter Contest, 70 Main St, Peterborough NH 03458, and must be postmarked no later than midnight,

February 28 1978. Entries must be in the form of a publication quality manuscript which describes the implementation of the interpreter and which includes a listing of source code and object code. Contestants should also submit machine readable source and object code in the form of paper tape or cassette.

The winners (if any) will receive $1000 plus normal author payments, should the entry be chosen for publication in book form or as an article in BYTE. We reserve the right to choose more than one winner under the same terms.

judging will be done by the editors of this magazine. Those seriously interested in entering this contest should call Carl Helmers or Chris Morgan at BYTE, (603)924-7217. May the midnight oil burn prosperously for all.

Introduction

Under the sponsorship of the National Science Foundation, Bernard J Robinet produced an NTIS report entitled, "Architectural Design of a Directly-Executed APL Processor". Although at a detail level the paper is fraught with logical and typographical errors, it presents an excellent and complete plan for implementing an APL interpreter via software, firmware or hardware. This article is a description of just such an interpeter. The program was originally written in the PL/I language but is presently being enhanced and translated for execution on a TMS 9900 microprocessor. No attempt will be made herein to describe APL, and the information is aimed at the experienced programmer who can use flowcharts and diagrams as a starting point. Emphasis is placed on architecture, rather than on actual code so that, while the more experienced programmer should have enough information to program his or her own interpreter, even the neophyte can still learn many of the techniques of interpreter design.

The APL interpreter is organized as two separate subprograms which are executed sequentially. The first subprogram is the scanner, the second is the intepreter. The scanner accepts all program input, translating the program into a series of syllables and pointers, until the end of an immediate mode statement is found. The interpreter gains control to execute an immediate mode statement, using the information built by the scanner, and returns control to the

scanner upon completion. We begin our discussion by looking at some of the tables common to both subprograms. After this discussion one should have a general understanding of the working of the interpreter and we can begin a detailed description of the actual program.

Table I: A sample APL statement, plus a breakdown of the statement into "tokens." This program inputs a list of numbers and prints their average. The token is the basic semantic element of a program, just as a program

I consists of one or more statements, a statement consists of one or more tokens. (In the literature, the term token is sometimes equated with "symbol" or "atom. " This can lead to some confusion because the term "atom" has a somewhat different meaning when used by LISP programmers.) Even though tokens can be further broken down into elements called characters, the interpreter spends very little time dealing with individual characters

j compared with the time spent in manipulating tokens.

1

Characters

Token

D

quad

1

-*

left arrow

\

(

left parenthesis

APL Statement \

+

plus operator

1

/

reduction operator

[}*■(+/XX) *p,XX+U (

XX

variable name

\

)

right parenthesis

J

T

divide operator

1

P

rho operator

1

3

ravel operator

1

XX

variable name

I

-<

left arrow

\

□

quad

51

Table 2: Set of noun-adjective combinations (syllables) used by the interpreter. One of the main functions of the scanner is to extract the tokens from each statement, left to right, and to store them in a table as a noun-adjective combination. Surprisingly few nouns (only nine) are needed to construct a powerful interpreter. The table of noun-adjective pairs built by the scanner is labelled SP, and each entry consists of two elements: C is the noun and P is the associated adjective. Three of the adjectives are labelled "variable number. " This number is actually a pointer to the symbol table VTAB which is indexed by VAR. Each entry in VTAB has three elements: VI, V2 and V3. VI is the character representation of the symbol. V2 is a pointer to another table, FTAB (see table 5), but V2 is used to distinguish between global variables and formal parameters of the same name. V3 is also a pointer to another table, D (see tables 4a and 4b), and Is set by the statement Interpreter as memory is assigned to hold a value for the variable. V3, then, is either the address, or a pointer to the address, of the value of the variable.

NOUN

NUMBER 1

NOUN

FORMAL RESULT

ASSOCIATED ADJECTIVE

VARIABLE NUMBER

2

FORMAL ARGUMENT

VARIABLE NUMBER

3

GLOBAL VARIABLE

VARIABLE NUMBER

4

MONADIC OPERATOR

OPERATOR NUMBER

5

REDUCTION OPERATOR

OPERATOR NUMBER

6

DYADIC OPERATOR

OPERATOR NUMBER

7

SPECIAL OPERATOR

CHARACTER

8

CONSTANT

ADDRESS OF CONSTANT

9

STATEMENT END

STATEMENT NUMBER

Table 3: Representation of the tokens oftheAPLstatement a^{+IXX)+p,XX+-n in table SP (see table I). After a program has been stored left to right in table SP by the scanner, the interpreter will execute the statements from right to left. Obviously more information is needed for statement execution than is contained in this table.

Table 4a: Format of entry

in table D for a vector or

TABLE SP INDEXED

BY I

a matrix. When a constant

is encountered in a statement, the actual value is

ENTRY C P

TOKEN

1 7 11

QUAD

D

stored in this table, and

2 7 3

LEFT ARROW

<

the appropriate adjective

3 7 6

LEFT PARENTHESIS

(

in table SP points to the

4 5 1

REDUCTION BY +

+/

address of the constant in

5 3 1

GLOBAL VARIABLE XX

XX

this table. Constants, values

6 7 7

RIGHT PARENTHESIS

)

assigned to variables, and

7 6 4

DYADIC OPERATOR i

intermediate results of

computations are stored in

8 4 7

MONADIC OPERATOR p

p

this table. Each entry in

9 4 8

MONADIC OPERATOR ,

3

the table is a variable

10 3 1

GLOBAL VARIABLE XX

XX

length string consisting of

11 7 3

LEFT ARROW

+•

several elements.

12 7 11

QUAD

E3

TABLE D INDEXED BY DA

ELEMENT CONTENTS

1 TOTAL LENGTH OF ENTRY

2 NUMBER OF DIMENSIONS FOR ENTRY (RANK OF ENTRY OR ppENTRY)

3 LENGTH OF DIMENSION 1 (SIZE OF FIRST

DIMENSION OR pENTBILll)

4 LENGTH OF DIMENSION 2 (SIZE OF SECOND

DIMENSION OR pENTRK2l)

N+2 LENGTH OF DIMENSION N (SIZE OF LAST DIMENSION OF pENTRYlppENTRYl)

N+3 )

f VALUE OF ELEMENTS STORED

I IN ROW MAJOR ORDER

N+2+x/pENTRY )

52

TABLE D INDEXED BY DA

Table 4b: Format of entry in table D for a scalar.

ELEMENT 1 2 3

CONTENTS

CONSTANT 3 CONSTANT 0

VALUE OF SCALAR

(LENGTH OF ENTRY)

{NUMBER OF DIMENSIONS FOR ENTRY)

Table 5: Format of an entry in the FTAB table. This table is used to store function headers when they are encountered. Each entry has seven elements, as shown. The remaining table that deals with function definitions is table VFUNC (table 6). There are also several tables of constants, but they are used primarily to simplify the scanner, and are discussed as necessary in the section entitled Statement Scanner later in the article.

TABLE FTAB INDEXED BY F

ELEMENT

n

F2

F3

F>4 F5

F6

Fl

USE

CHARACTER REPRESENTATION OF FUNCTION NAME

"ARITY" OF FUNCTION. EQUALS 0 FOR NILADIC, 1 FOR MONADIC,

AND 2 FOR DYADIC.

"EXPLICIT RESULT" FLAG. BINARY 0 FOR NO EXPLICIT RESULT,

BINARY 1 FOR EXPLICIT RESULT.

CHARACTER REPRESENTATION OF VARIABLE NAME OF EXPLICIT RESULT.

CHARACTER REPRESENTATION OF VARIABLE NAME OF LEFT ARGUMENT

FOR DYADIC FUNCTION.

CHARACTER REPRESENTATION OF VARIABLE NAME OF RIGHT ARGUMENT

FOR DYADIC FUNCTION, OR ARGUMENT FOR MONADIC FUNCTION.

POINTER INTO TABLE VFUNC.

Note: "ARITY" is a mathematical term denoting the number of arguments in a function.

ENTRY VALUE

1 NUMBER OF STATEMENTS IN FUNCTION 1.

2 POSITION OF RIGHTMOST SYLLABLE IN TABLE '5P' OF STATEMENT 1 IN FUNCTION 1.

3 POSITION OF RIGHTMOST SYLLABLE IN TABLE '£P' OF STATEMENT 2 IN FUNCTION 1.

N+l POSITION OF RIGHTMOST SYLLABLE IN TABLE ' £P' OF

STATEMENT N IN FUNCTION 1. N+2 NUMBER OF STATEMENTS IN FUNCTION 2. N+3 POSITION OF RIGHTMOST SYLLABLE IN TABLE '£P' OF

STATEMENT 1 IN FUNCTION 2.

Table 6: Organization of table VFUNC. VFUNC, indexed by VAL, holds the address pointers to the individual statements in a function. The sample program and comments in listing 7 should help to clarify the use of VFUNC. Two more tables are discussed in parts 2 and 3 of this series of articles.

53

TABLE 1A

TABLE

IB

TABLE

1C

TABLE ID

MOPTAB

DOPTAB

REDTAB

CHARTAB

Ml M2

Dl

D2

HI

R2

CI

1 + 2

1

+

52

1

+ /

2

1

:

2 - 3

2

53

2

-1

3

2

->

3 x 4

3

X

54

3

*/

4

3

X

4 i 5

4

T

55

4

f/

5

4

*

5 * 6

5

*

56

5

*/

6

5

.

6 i 21

6

1

87

6

= /

21

6

(

7 p 22

7

P

88

7

*/

22

7

)

8 , 23

8

*

89

8

</

23

8

[

9

=

71

9

</

24

9

]

10

*

72

10

>/

25

10

Tables 7a, 7b, 7c and 7d:

11

<

73

11

>/

26

11

□

These tables complete the

12

<

74

12

A/

27

12

SPACE

set of A PL tokens used by

13

>

75

13

v/

28

this A PL interpreter. The

14

>

76

14

17

29

tables are scanned by sub

15

A

77

15

L/

30

routine OTHERS when a

16

V

78

16

®/

31

token is encountered

which has not already

been recognized by sub

routines IDEN or NOM

BRE.

Listing 1: Results of a hypothetical program containing a user-defined function. This exercise demonstrates the interrelationships of tables 1 through 7. The program consists of a definition for a function AVG with a monadic argument Y and an explicit result X. Following the function definition is an immediate mode call of the function.

The scanner begins by inserting a statement end noun type in table SP, position 1, and proceeds to scan the first statement. When the function header is recognized, an entry is made in table FTAB as shown and scanning continues with the second statement. Again a statement end noun is inserted into table SP, position 2, but this time it is known that this should be statement number 1 of the function, so the adjective has a value of 1. Positions 3 thru 14 are the noun-adjective description of the second program statement and are similar to table 3, the differences being due mainly to the fact that the variables are no longer global but rather are formal arguments and formal results. Program statement 3 produces no entry in table SP but merely signals the end of a function definition. Table SP, positions 15 thru 19, contains the noun-adjective description of the immediate statement. Note how position 19 indicates a constant whose value is stored in table D beginning at position 1. Also note how the element vector is stored in D and relate this to the description in table 4a.

For the one entry in FTAB, element F7 points to position 1 in table VFUNC (see table 6). Here, VFUNC shows that there is only one statement in the function and that its rightmost syllable (noun-adjective pair) is at position 14 in table SP. Positions 3, 7, 12 and 18 in table SP refer to variables, and the associated adjectives point to entries in table VTAB. For variables X

54

Results of Scanning a Hypothetical Program Containing a User Defined Function

PROGRAM:

V X -*- AVG Y [1] X «- (+/Y) i p , y

[2] V

D -*- 4 PC 37~25

T/lSLff SP INDEXED BY I I ~ 20

D

1

2

3

4

5

6

7

8

9

10

11

12

13

m

15 16 17 18 19

C 9 9 1 7 7 5 2 7 6 4

4

2

7 7 9 7 7 3 6

Note: Colored arrows indicate pointer destinations

TABLE VTAB INDEXED BY VAR

VAR

= 4

VI V2

73

1

X (l\

0

2

Y 1

0

3

AVG 0

0

TABLE FTAB INDEXED BY F F = 2 Fl F2 F3 F4 FS 1 AVG 1 Ttft/ff J

TABLE VFUNC INDEXED BY VAL VAL - 3

1 1** ■—

2 (l3)

TABLE D INDEXED BY DA DA = 8 7 1 4 3 _7 2 5

and Y in VTAB, element V2 indicates that the symbols are local to function AVG, while the symbol AVG in VTAB has a V2 value of zero indicating a global variable name. V3 values are all zero at this time, and will be set when the statement interpreter executes.

Having now discussed the major tables used by the interpreter and shown the general direction or goal of the scanner we can now discuss the statement scanner in greater detail. The scanner is a relatively easy function to program, and with the detailed discussion and flowcharts which follow one should be able to implement a scanner for any of the popular small computers.

55

The Statement Scanner

The main function of this module is to build the various tables required by the statement interpreter. There are two types of statements and two modes of scanning to be handled by this module. The first statement type is the function header which

1:1 ** < er ♦ i O Q Q > Q ->

o a.

cl a. I

WW"

defines the form of a function and which also causes the scanner to enter the function definition mode. The second type of statement is any statement other than a function header. This type of statement can occur when the scanner is in either immediate or function definition mode. Upon startup, the scanner is in immediate mode. When a del character (v) is encounted in immediate mode, the scanner switches to function definition mode and the characters immediately following the del, on the same line, form the function header. After the function header come the statements forming the function body. When another del character is found while in function definition mode, the scanner returns to

r~\

o z

,

I

,

rO

C\J

1

\

I

3

=>

3

UJ

uy

_j

<S>

>

_

N

3 or

/ U_ \

o

/ u_u- \

O

ro

Q.

D

O

o

>

< 3«-->

F

\ CD /

H

/ ■ CD Or n\

ViS/

\

1

CD

fc

\ P /

>

\ U_ /

o

^

1E|

CLCfl

0>O

uq.;

Y ——'CC I ▼

I + CLO_< + <I

31

56

immediate mode. When a statement is finally scanned in immediate mode, control is transferred to the statement interpreter to execute the statement, using any previously defined functions as necessary. Following execution of the immediate statement, control is again returned to the statement scanner and the process repeats. When a line of input code is read, it is stored in a character vector called S, indexed by J. Each element in S is one character long; the last character for each line must be a carriage return. Thus the expression S(J) refers to the Jth character of the input string. Similarly the expression S(J) = CR is a test for the Jth character being a carriage return (CR). After some initialization, then, block IP loads vector S with the next statement and sets index J to 1.

Subroutine SKIPSP (see figure 2) is next invoked to skip over any leading spaces. If the next character is a carriage return, then the line was all blank and is ignored. Otherwise a check is made for a del character, which causes switching between the two scanning modes as mentioned above. If FLAG is true, the scanner is in function mode and a del will return the scanner to immediate mode. If FLAG is false, the scanner is in immediate mode and a del will put the scanner into function definition mode, and processing will proceed at the box labelled FUNC which scans the function header. If no del character is found, scanning proceeds as normal. The next step is to call subroutine I DEN (figure 3) which is invoked to determine if the next token is an identifier. If not, scanning will resume at block NOMBRE (see figure 4). When an identifier is found, it must be encoded and entered into the appropriate tables. The identifier can be one of four things: a global variable, a formal argument, a formal result, or a label. If FLAG is false (immediate mode), then the identifier can be neither a formal argument nor formal result. If FLAG is true (function definition mode), a quick test will determine the type of identifier: if the identifier is equal to element F4 in table FTAB, the identifier is a formal result of the current function. Similarly, the identifier being equal to elements F5 or F6 in table FTAB means the identifier is a formal argument of the current function.

One must check two things to test if an identifier is a label: if the character immediately after the identifier is a colon (ie: S(J) = ':') and no other semantic information has yet been scanned for this statement (ie: SP(I-1).C=9), then a label has been found. In any case, the identifier must be

put into the symbol table, if not already there, and the appropriate noun-adjective combination must be entered in table SP. Finally, if a label was found, the value link (V3) for the symbol table entry is made to point at a scalar in table D. The value of the scalar is equal to the statement numbers where the label is found.

If the next token is not an identifier, scanning continues at the block labelled NOMBRE, as mentioned previously. Figure 4 shows the scanning process for numbers in the source program. Subroutine NUMBER is invoked to extract a number (see figure 5). If the next token is not a number, scanning proceeds at block OTHERS, described next; otherwise the number is stacked in a temporary vector, TVAL. The stacking process continues as long as numbers separated by spaces are found. Finally, the noun-adjective pair for a number is entered into table SP, and the appropriate scalar or vector is created in table D.

OTHERS, shown in figure 6, handles the scanning for tokens not previously recognized. Tables 7a, 7b, 7c and 7d aid in this processing. A call to subroutine LOOKUP appears several times with the accompanying parentheses containing three arguments. Subroutine LOOKUP will scan the table named in the second argument for an occurrence of the first argument: if found, the third argument points to the relative position of the match; otherwise, the third argument is set to zero.

The next step, then, is to check if the next character is in the table of monadic operators. If S(J) is not a monadic operator, a further test is performed to determine if it is a dyadic operator, carriage return, or valid special character. Figure 6 illustrates the handling for each case. If a monadic operator is found, a further test is made to determine if it is part of a reduction character pair. Again, figure 6 shows the testing and handling of each case. The handling of a carriage return will be discussed in the last paragraph of this section.

Returning to the beginning of the discussion of the statement scanner, you will recall that function headers require a special scan. Figures 1, 7a, 7b, 7c, 8 and 9 detail this processing, which is actually quite simple, although at first glance it may appear to be lengthy. The tokens after the del character (del indicates the beginning of a function header) are examined to determine the type of function, its name, its arguments and its result. There may of course be zero, one or two arguments (corresponding to a niladic, monadic and dyadic function respectively),

57

and one or no explicit result. After these pieces of information have been extracted, they are used to build an entry in the table FTAB, one entry for each function. The symbol table VTAB is updated to reflect the occurrence of any formal parameters. There comes a point, finally, when a carriage return is found and the scanner is in immediate mode. This occurrence causes the statement scanner to end and the statement interpreter to begin. All the tables described in the first part of this

article are now complete, and the variable I points to the first syllable to be interpreted. Next month we will begin to describe the statement interpreter. You should, however, at this point be able to take any APL program and produce a valid set of encoded tables using the flowcharts shown. Do not be intimidated by the number of flowcharts used, since the actual amount of code required for implementation is not too lengthy when using any of the more powerful microprocessors.

Figure 1: Subroutine FUNC. This routine is called whenever the scanner encounters a del function, which signifies that the following statement contains a function header. The function header contains the syntactic form and the name of a user defined function (see listing I). The purpose of FUNC is to perform the scanning operation for this special case.

f FUNC j

{ ERROR 5 J

UNRECOGNIZABLE FUNCTION NAME

SKIPSP

FALSE

IDEN

( ERROR 6 )

UNRECOGNIZABLE FUNCTION TO RIGHT OF EXPLICIT RESULT

INVALID RIGHT ARGUMENT NAME

SKIPSP

-f MONAD J

( DYAD J

-f ERROR 9 J

INVALID RIGHT ARGUMENT NAME OF DYADIC FUNCTION HEADER

58

Figure 2: Subrouti SKIPSP. This routine used to skip over leadi blanks.

ne is

f SKIPSP J

-1

'

;

/^S(J>-\ NO

<^ A BLANK V

( RETURN J

Tyes

J-—J+1

Call SKIPSP

Result: Global variable J is incremented until S(J) is a nonblank character.

Need Hard Copy?

OFT PRICES

SSP-40

Contains its own micro processor (or easy connection to your RS232 serial port or TTY Current loop

MP-40

Interlaces to your micro computer parallel output port for ASCII data transfer

KP-40KIT

Contains mechanism. PC board, all components, transformer and complete assembly instructions for parallel data transfer

All of our 40 series printers use the same reliable 5x7 impact dot ma up to 40 columns per line on ordinary paper with a print speed o

SEND FOR FREE LITERATURE

$575 $425 $179

Box 22101

Salt Lake City, Utah 84122

(801)566-0201

Circle 119 on inquiry card.

f IDEN j

SKIPSP

IGNORE

LEADING

BLANKS

Figure 3: Subroutine IDEN. This subroutine is invoked to determine if the next token is an identifier. If not, scanning resumes at block NOMBRE (see figure 4). If a variable is found as the next token, B will be true and Q will contain the character representation of the variable.

^/slJJ-X.

NO

B*-FALSE

\^ p /

<

Tyes

Q*—S (J )

J« J+ 1

J

'

B-«—TRUE

„

<sA LETTER/

NO

Call IDEN (Q, B)

Result: If a variable is found as the next token, B will be true and Q will contain the character representation of the variable.

If the next token is not a variable, B will be false.

Tyes

CONCATENATE S (J ) TO 0

( RETURN 1

( NOMBRE J

NUMBER

^—( OTHERS )

K-«—0

TVAL(K)-«-VALUE K-«-K+l

S(J)=A \ NO BLANK ?

YES

NUMBER

FALSE

D(DA)—3

D(DA+l)-«-0

DA-»-DA+2

D(DA) •»—TVAL(Z) DA-«-DA + l Z-»-Z+l

(Z)

TRUE

Figure 4: Subroutine NOMBRE. This subroutine is called when the next token scanned is not an identifier. It calls subroutine NUMBER (see figure 5) to determine if the token is a number. If not, a further call is made to subroutine OTHERS (see figure 6) to scan for tokens not previously recognized. The noun-adjective pair for a number is entered into table SP (table 3) and the appropriate scalar or vector is created in table D (see tables 4a and 4b).

THE BliU 8700 COMPUTER/CONTROLLER

An exceptional price on an applications oriented 6503 based micro-processor system featuring:

► IK bytes RAM locations (512 bytes supplied)

► IK bytes ROM (256 byte monitor included)

► 2 - 8 bit input ports

► 2 - 8 bit output ports (1 latched, 1 buttered)

► 24 key touch operated keypad (used by monitor to allow entry & execution of user programs also user definable.)

► 2 - latched seven segment displays (usedby monitor to display memory location 6 contents easily user programmed)

► Optional cassette interface ($22. 50) fits entirely on the processor board.

THE IDEAL. LOW COST SOLUTION TO IMPLEMENTING ALL THOSE WILD COMPUTER DASED CONTROL SYSTEMS YOU'VE REEN DREAMING OF!

PAIA software currently available or under development includes: Music synthesizer interface: Home applications package including: multi-zone fire/burglar alarm, real time clock, energy saving heat/air conditioning control, computer generated "door-bell": Model roalroad controller and more

8700 COMPUTER CONTROLLER KIT $149.95

(requires 5v. ("' 1. 2A. ; 12v. ft' 150 ma.) Shipped direct from PAIA (add $3. 00 postage)

ELECTRONICS • 0EPT. 7-0 • 1020 W. Wilshire Blvd. • Oklahoma City. OK 73116 Also available at FULL-LINE Computer stores.

Circle 120 on inquiry card.

60

( NUMBER J

SKIPSP

CALL SKIPSP

SIGN-*— I

COUNT-«-0 VALUE-^-0

( RETURN )

YES

SIGN-*—"I

J-«-J + l

-/ ERROR I

)

INVALID CHARACTER FOLLOWING MINUS SIGN

VALUE-*—S(J) J-*-J + l

YES

COUNT-«-COUNT + I J-«—J +1

YES

YES

VALUE*—10* VALUE +S(J)

J*-J + l

VALUE-LVALUE + S(J)/IO|-COUNT C0UNT-«-COUNT + I

J«-Jtl

f ERROR 2 J

DIGITS MUST FOLLOW THE DECIMAL POINT IN A NUMERICAL CONSTANT

VALUE-«-VALUE*SIGN

f RETURN )

Call Number (VALUE, B)

Result: If a numeric constant is found as the next token, B will be true and VALUE will contain the value of the constant.

If the next token is not a numeric constant, B will be false.

Figure 5: Subroutine NUMBER. This subroutine tests the token being scanned to determine whether it is a number or not. If a numerical constant is found, B will be true and VALUE will contain the value of the constant. If the next token is not a number. B will be false.

Practical Microcomputer Programming: The Intel 8080

Here is a comprehensive source of programming information for the present or prospective user of the 8080 microcomputer, an architecture which appears in the MITS Altair, 8800, Processor Technology SOL, IMSAI 8080, Polymorphics POLY-88, and other popular microcomputer system products.

After several preliminary chapters, the authors get down to practical details with topics such as moving data, binary arithmetic operations, multiplication and division, use of the stack pointer, subroutines, arrays and tables, conversions, decimal arithmetic, various 10 options, real time clocks and interrupt driven processes, and debugging techniques. Most examples are given in symbolic assembly form, with occasional listings of assembled code using a Computer Automation software development system.

This 306 page hardcover book is well worth its $21.95 price and should be in every 8080 or Z-80 user's library.

by W J Weller, A V Shatzel, and H Y Nice

Send $21.95 plus 50 cents postage to:

BankAmericaho.

wmnnxM

BITS, Inc. 70 Main St. Peterborough IMH 03458

Master Charge and

BankAmericard Welcome

For convenience, use the coupons on pages

146 and 148.

All orders must be prepaid

Price shown is subject to change without notice.

In unusual cases, processing may exceed 30 days.

61

Circle 121 on inquiry card.

( OTHERS J

LOOKUP

(S{J), MOPTAB, Z )

G>

LOOKUP

(S( J ) , DOPTAB, Z)

YES

(S(J), CHARTAB.Z)

note: the symbol "||" INDICATES CONCATENATION.

Figure 6: Subroutine OTHERS. This subroutine is used to identify those tokens (listed in tables 7a, 7b, 7c and 7d) not already identified by subroutines IDEN or NOMBRE.

■/ CARRET j

SP(I).C*-6 SP(I). P-«-Z I ——I + I

J -"—J + I

4 ERROR 4 )

INVALID

CHARACTER

ENCOUNTERED

SP(I).C-«—7 SP(I).P-»-S(J) I-"-I+ I J-«-J + I

(S(J), SPECTAB.K)

YES

0*-S(J)||S (J + l)

(O.REDTAB.N)

YES

SP(I).C«-5 SP(I). P-«-N I*-I +I

J-«—J + I

c

3

SP(I).C-»-4 SP(I).P-«-Z

J-«-J + I

62

f NILAD )

FALSE

Q-«-QI

Q-«—02

(0, FTAB. Fl, Z)

F-«-F+l

FTAB(F)

FA

*-'©'

FTAB(F)

F5

r$

FTAB(F)

F6

FTAB(F)

Fl

—Q

FTAB(F)

F?

—0

FTAB(F)

F3

«-W

-/ ERROR 5 j

FUNCTION

PREVIOUSLY

DEFINED

\

v \true

3 ./

'

FALSE

,

CK)

Figure 7a: Subroutine NILA D. This subroutine performs the scanning function for a niladic function header. A niladic function is one which takes no arguments.

( monad J

FALSE

LOOKUP

(Q, FTAB. Fl, Z)

-f ERROR 5 J

FUNCTION PREVIOUSLY

DEFINED

F«— F+ 1

FTABIF)

F4-«-'®'

FTAB(F)

F5-«-'®'

FTABIF)

Fl —Q

FTABIF)

F2-»- 1

FTABIF)

F3-»—W

<L v

„ \-TRUE

FTABIF)

F4-«-QI

3 ^r

FTABIF). F6-«-Q3

1 FALSE

FTABIF). F6-«-Q3

1

'„

m

Figure 7b: Subroutine MONAD. This subroutine scans monadic function headers. A monadic function is one which takes one argument.

63

f DYAD J

Q-— Q3

LOOKUP

(Q.FTAB. Fl, Z)

F-«-F + l

FTAB(F)

F4

—'©'

FTAB(I)

Fl

*-Q

FTAB(F)

F2

••—2

FTAB(F).

F3

♦-W

TRUE

FTAB(F).F5-»-QI FTAB(F).F6»Q3

c~j

Q-.— 02

-/ ERROR 5

FUNCTION

PREVIOUSLY

DEFINED

)

FTAB(F).F4-»-QI FTAB(F).F5-«-Q2 FTAB(F).F6*-04

Figure 7c: Subroutine D YA D. This subroutine scans dyadic function headers. A dyadic function is one which takes two arguments.

CiD

SP(l).C"*-9 SP(I).P*-0

t*-I+l

FTAB(F).F7»-VAL LENG-«-VAL VFUNC(LENG)*0 VAL*-VAL + I

FTAB r).F6 =

NO

( CARRET J

SP(I).C«-9

SP(I).P*-STMT

Figure 8: Subroutine EOL. This routine performs the common processing needed for function headers. See section entitled "The Statement Scanner."

/FTAB^v ..-,

FN_VAR_ADD

in rrf-'ffi)1 \N0

CALL FN_VAR_ADD(FTAB(F).F4,F)

V ? yS

J YES

FN_VAR_ADD

CALL FN_VAR_ADD(FTAB(F).F5,F)

\ P yT

1 YES

FN_VAR_ADD

CALL FN_VAR_ADD(FTAB(F).F6, Fl

( IPGET J

—

(fn_var_add)

Figure 9: Subroutine FN— VAR ADD. This routine

aids subroutine EOL by adding user defined formal parameter names to the

VAR-«-VAR + l VTAB(VAR). VI --Q VTAB(VAR). V2-«-F

symbol table.

.

( RETURN J

FALSE

( IPINIT J

VFUNC(VAL)-«—I - 2 VAL-«-VAL + l VFUNC(LENG)-»-VFUNC(LENG) +1

( IP_GET J

Figure 10: Subroutine CARRET. This routine scans carriage returns.

64

GLOSSARY

Array: A group of numbers or characters which can be subscripted and treated as a single object. APL arrays can be vectors or matrices. Compiler: A program which translates a high level language source program into machine language object code. APL, like any language, may be compiled but is usually executed interpretively. Composite Operator: An APL operator which operates on all the elements of an array. Dyadic: Taking two operands. Used to describe certain APL functions or operators. Execute Mode: The APL mode in which a line of APL code entered by the user is immediately executed by the computer (also called immediate mode). Compare Function Defintion Mode. Function Definition Mode: The APL mode in which functions are created.

Function Header: A line of APL consisting of a del operator ( V ) followed by a function name and information about the number of arguments the function takes and whether or not it returns a result.

Global Variable: A variable which is available to any calculation or any function in the workspace. Interpreter: A program which takes a source listing from a high level language (like APL) and executes it sequentially (usually line by line). Local Variable: A variable which is available only during the execution of the function in which it is defined. For example, in the function header

VY+R Q;I;J

I and J would be local variables.

Monadic: Taking one argument. Used to describe

certain APL functions or operators.

Niladic: Taking no arguments. Used to describe

certain APL functions or operators.

REFERENCES

John Coake and J T Schwartz, Programming Languages and Their Compilers, Courand Institute of Mathematical Science, New York, 1970, pages 601-642.

Leonard Gillman and Allen J Rose, APL 360: An Interactive Approach, Wiley and Sons, New York, 1974.

IBM APL/1130 Primer, Student Text, IBM Publications, White Plains NY 1969. Highly recommended.

Kenneth Iverson, A Programming Language, Queens University, Kingston, Ontario, 1968.

Harry Katzan, APL Programming and Computer Techniques, Van Nostrand Reinhold, New York, 1970.

Harry Katzan, APL User Guide, Van Nostrand Reinhold, New York, 1971.

Sandra Pakin, APL/360, Science Research Associates, Chicago, 1972. A manual for the IBM 360 implementation of APL.

Sandra Pakin, APL: A Short Course, Prentice-Hall, Englewood Cliffs NJ, 1973.

Raymond P Palivka and Sandra Pakin, APL: The Language and Its Usage, Prentice-Hall, Englewood Cliffs NJ, 1975.

William Prager, Introduction to APL, Allyn and Bacon, Boston, 1971.

Xerox APL Reference Manual, Xerox Corp, El Segundo CA 1973. ■

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-Aalso saves about 1k 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. ** or MC card*with exp.

^.^..r-T-rr-c *< irrv date and signature. Uncer

DISKETTES $4.50 ea. tified checks require 6

FPB-A $359 weeks processing. Calif.

(ASSEMBLED) $499 residents add sales tax.

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

65

Circle 122 on inquiry card.

is coming!

The 8-bit computer that's easier and more convenient to use. Featuring an intelligent front panel with octal data entry and control, 9-digit octal readout and a built-in ROM monitor with bootstrap for one-button program loading and storing. And a fully buffered bus and mother board with plenty of slots for memory and I/O interfaces. With complete system software included!

I

Simplicity and Personal Computing

The design of systems and the programming of computers are activities, like many human activities, which benefit from the application of this principle. If I take the liberty of reformulating the principle of simplicity from an engineering or programming point of view, it might read:

That system (program) is best which accomplishes its goals with minimum complexity.

This application of an old principle to a modern context is a desirable design goal for the personal computer, or its attendant programming. But understanding and utilization of such constructs can only be simplified within the limits of the function which is the goal of the design. A complex structure is a complex structure, and ceases to be itself when pieces are removed by a simplification which compromises the goals and functions of the structure. Within any given definition of the functions or goals of a computing system or program, the principle of simplicity is most applicable; but if the overall goal is not simple, the available alternatives

Continued from page 5

philosophy course, the elements of this principle are:

Given multiple, equivalent logical formulations of an argument, that argument is best which is both complete and of the simplest structure.

Complete means that the argument takes into account all the necessary details of the point being made.

Simplest structure means that the argument in some sense is the most compact or easiest to understand.

The whole point of this principle is that in order to reduce the complexity of long and involved logical constructions, one should choose paths of explanation which are direct and concise rather than long and convoluted. However, the principle says nothing about the need for complicated logical structures to describe complicated concepts. It merely says that for a given level of complexity the simplest argument, which accounts for all features of the point being made, is the best argument to adopt.

66

coming!

The greatest value in a complete video terminal kit available. With full ASCII keyboard, bright 12" CRT display, all standard serial I/O interfaces, 110-9600 selectable baud rate.

u» cur mm* un

U- cit iiwu, MW » mi mem m cm **" «« lIDUr «

iSTk uiim. an >im *«w Mrr uucraati i» u.uw. n-iu a

•CMu.II*. HTtMTIt I HrttMt CMMt nam

»•« naauuiu fun ttaa t«« at Bin am my l

of view) within the new system. It can be used when acquiring knowledge about a new area by the technique of slicing up a complicated subject into manageable units. We see the success of this method as design discipline in numerous ways, ranging from the modular low level hardware function boxes called integrated circuits, to the design of finished product personal systems, to the modular design of systems software, to the applications software an intelligent user designs modularly with an eye towards the problems of managing complexity.

Applying the Principle of Simplicity: A Caution

The owner of the personal computing system can use this principle of simplicity in numerous ways. However, it is not possible to accomplish positive goals with a personal computer by ignoring complexity and demanding some form of "absolute" simplicity which amounts to a lack of awareness of the subject matter.

The computer as a servant to mankind cannot be used to its fullest potential without active thought on the part of an interactive user. A "brain amplifier" is less than maximally useful without

for approaching this goal will necessarily reflect this lack of simplicity.

However, all is not lost. One of the greatest contributions of the past half century of systems engineering is what might be called a principle of local simplicity within a larger (ie: system wide or "global") structure. The goal is still complex, but the details are locally simple. This principle is inherited by today's personal computing designs, as well as much of modern technology from aerospace control systems to robotic manufacturing and process control.

The practical application of the concept of keeping designs and structures as simple as possible, consistent with accomplishment of complex goals, is seen in the idea of modularity as implemented in both hardware and software. It is nearly impossible to keep track of a myriad of details about a large and complicated system. But, if the design is approached from a modular and hierarchical point of view, the principle of simplicity is much more easily and usefully applied on a local basis and reflected in the entire system's conception. Local simplicity is used by the designer to minimize complication by choosing and evaluating the best alternatives at each level (or point

67

brain activities (thoughts) to "amplify." With an understanding of the idea that most complex problems can be organized and presented by applying the principal of simplicity locally, a knowledge of the organization and design of systems and their use can grow and flourish in each active user's understanding of the technology.

I consider it very important to emphasize the point that the user of a computer is an active participant in the technology, that knowledge of the technology and its potential is essential to its full utilization by individuals. When we publish an article on some subject, it helps in this endeavor by providing a local and specific focus on that subject within the global knowledge of computer science. This is a sort of modularization of some aspect of the technology, with various pointers and references to the more general context of computer science practices as necessary. But each such element assumes an active and intelligent reader not willing to turn off input activities at the scanning of the end mark (■) for an article. There is no simple shortcut to knowledge and understanding; we can only provide aids and pointers to help mark the path.

ip with newsletters, a complete software library with access to all programs developed. And programmed instruction courses in BASIC and assembly language to help

you learn heath^

programming digt^

fast and easy. |^l( »S

Practical Philosophy for the Neophyte

The osmosis theory of education, coupled with a bit of inspiration from the principle of simplicity, is perhaps the best method of approaching the unknowns of personal computing systems on the part of the beginner. The osmosis theory may be described as a form of directed Brownian motion (in analogy to a well-known physical phenomenon of random motion). It is a directed activity in the sense that there is a particular goal used to judge the relevance of sources of information. It is a random activity in the sense that prior to acquiring an understanding of the field, there is no hard and fast criterion upon which to judge the order and timing of materials to be read and intellectually digested. In its simplest form, it is to simply plunge into the literature of a field and read every scrap of information which is related to the desired goal of understanding the subject. As new points are encountered with this approach, they are integrated into a personal internal structure of knowledge. The strategy is eminently successful when it covers all levels of detail about a subject through various readings, coupled with reflection and a bit of feedback which helps

68

eliminate the randomness in the direction of future readings.

In one respect, I write about this osmosis method of acquiring knowledge (and its relationship to the principle of simplicity) with some authority; I know that the method is practical because I've personally applied it to gain my present understanding of computer science, such as it is.

This process of acquiring knowledge about a field is prone to an apt computer science analogy: imagine that the person acquiring the knowledge is analogous to a compiler program, that the source text of the compilation is the literature of the field, and that the object text out of the compiler is an internal understanding of the field. The analogy is illuminating with respect to the problems compilers often have with parsing and detecting subtle semantic nuances of a source language, or the problems of forward references to undefined elements of a program, which are analogous to gaps in the knowledge of a person embarking upon a detailed study of a field.

Learning About Mental Amplifiers

I think it can be safely asserted that the

Watch for the NEW

Heathkif

low cost personal

computer systems

in the next issue!

(See them at PC-77, Atlantic City, New Jersey, August 28th and 29th)

COMPUTER SYSTEMS

They're the ones you've been waiting for!

Circle 123 on inquiry card.

id documentatioi

The H8 and H11 computers and peripherals have been developed by the world's largest manufacturer of electronic kits, with hardware assembly and operation manuals plus software documentation that sets new standards for accuracy, clarity and precision. And a

War

X

>.

network of service

support locations

to provide qualified

technical help, fast

parts replacement

and service

by trained

technicians.

raison d'etre for computing is to amplify one's mental powers by automating various processes which can benefit from the effort. There is, of course, the intoxication with technology's details, which affects us all, and a certain degree of speculation on the experimenter's part as to whether an ultimately useful result will ensue when enough hardware and software development has been accumulated. But the pot of gold which attracts a lot of such speculations in the present era is the idea that computers can become amplifiers for mental functions. When both the mental and physical functions are modeled and automated, the result is a robot, hence one of the reasons for the dual fascination with robots and computers.

Mental powers and mental operations are tar from simple. The range of activities to which I can turn my conscious attention is wide and varied; the same applies to every reader. In dealing with a complex subject, mental operations and their assistance through automation, the principle of simplicity is by no means to be forgotten, for it gives a criterion for judgment and discrimination among numerous alternatives at all levels."

69

■ *

» **,

D John Anderson Dept of Zoology NJ-15 Univ of Washington Seattle WA 98195

William F Galway

2246 Windsor St

Salt Lake City UT 84106

Serendipitous Circles

In this article we describe a simple algorithm which produces beautiful computer art. The algorithm was written to draw circles, but when we tried to draw large circles, we saw strange complex patterns. The screen was filled with wildly oscillating jelly bean shapes which would periodically explode in a beautiful sparkling flash and collapse back into new jelly beans. Experimenting with different diameters, we discovered many new dynamic patterns.

The Magical Algorithm

The algorithm that produced these serendipitous circles is remarkably simple. A

Photo 1: The basic ellipse created with the algorithm in figure 1 and with the origin centered. There is no evidence of "display wrap around" or arithmetic overflow here.

flowchart is shown in figure 1. This algorithm can be implemented on the smallest of home computers in a short time, and is guaranteed to impress everybody with pretty pictures while providing an interesting mathematical puzzle. An example of an assembly language listing for the Motorola 6800 is shown in listing 1.

Implementing this algorithm on a computer which has graphics capabilities is very easy. However, if you are one of the many unfortunate people with no graphics capabil

70

CHOOSE AN INITIAL X VALUE AND Y VALUE

DISPLAY THE POINT (X,Y)

Y XNEW:=X" y

Y ..YvXMEW YNEW" Y+ ^2^

X:=XNEW

Y:= YNEW

Listing 1: The serendipitous circle algorithm as written for the 6800 microprocessor. This program uses 16 bit arithmetic. The photos shown in this article illustrate circles generated with 24 bit arithmetic, a/though the results for both methods are quite similar. Different precision arithmetics can be used to generate slightly different results.

Figure I: The magical circle drawing algorithm. This straightforward procedure results in some surprisingly sophisticated displays when each coordinate pair is calculated and displayed on a graphics peripheral device. The algorithm solves a difference equation which has as its solution an ellipse. The none/liplical patterns arise from overflows in the computer's registers during the calculations, and from lack of precision due to the finite size of computer words.

ities, we suggest the following possible solution: Borrow your friend's oscilloscope (the one you used to get your computer working). This oscilloscope should be able to draw a point on its screen, given an X deflecting voltage and a Y deflecting voltage. Now all you do is connect a digital to analog converter (DAC) to each of two parallel outputs from your computer, and you'll have the X and Y voltages necessary to drive the oscilloscope. This is how the 6800 program in the listing works.

The reason this program produces its beautiful patterns is quite well understood. The algorithm solves a difference equation which has as its solution an ellipse. The continuous analog of this equation is a differential equation which has as its solution a circle. The complicated nonelIiptical patterns come from overflows and lack of precision due to the finite size of a computer

00001

NAM

CIRCLE

00002

OPT

M

00003

**********>Mo|ok*************!K**«K**

00004

*

00005

*CIRCLE DRAWING PROGRAM

00006

*URITTEN BY UILLIAM F.

GALUAY

00007

* 30

DEC-76

00008

*THE

ALGORITHM USED IS

AS FOLLOUS:

00009

*

00010

*L00F

: DISPLAY A POINT AT CURRENT (X.Y)

00011

*

X

<

X-Y/2

00012

*

Y

<

Y+X/2

00013

*

GOTO

LOOP

00014

*

00015

^tofc ^k Ac SOkllOlQIC Ai >k34^>k"ik *k Ac >k>k^k }4tS( ^fc>k Ac *4^ At Ac W Ac *ikAcA(A( A'Ac X\C Ac Ac Ac ilc Aalc Aolc^k >4e

0001S

*

00017

*SIXTEEN BIT

ARITHMETIC IS USED ALTHO ONLY

00018

*EIGHT BITS ARE DISPLAYED.

00019

****#**#*#******************

00020

*

00021

*S0ME

GOOD

STARTING VALUES FOR (X.Y) ARE:

00022

* C7F00.0000)

00023

* (7F00.8100)

00024

* (7D00-7D00)

00025

* (7CF3.7CF3)

00026

*

00027

^^^^^^^r.*t^Hs^''K'K^^^^^^^'K'K^K^K^K?K?KH^n^^K'K

00029

*DEFINE SOME

SYMBOLS

00031

3B0B

UK0

EQU

S3B0B

UORK REGISTERS, USEFUL FOR

00032

3B0D

UK1

EQU

UK 0+2

GETTING NUMBERS FROM

00033

3B0D

XHI

EQU

UK1

UORK REG'S USED FOR X.Y

00034

3B0F

UK 2

EQU

UK 1+2

00035

38 11

UK 3

EQU

UK 2+2

00036

***********«**:«************************

00637

*DEFINE ADDRESSES FOR

00038

*DIGITftL TC

ANALOG CONVERTERS

00039

*THE

FOLLOWING THREE REGISTERS ARE

00040

*UNIQUE TO

THIS SYSTEM

00041

Ac. Ac 'A\ slc AC Ac & *k AC Ac %\c Ac Ac Ac AC ^k 'AC Ac AC AC 3k Ac A^ Ac Ac AC Ac Ac AC *k Ac Ac Ac stc Ac Ac AC Ac AC

00042

3804

DACCSR EQU

$3604

USED FOR SETTING UP DAC'S

00043

3805

DACX

EQU

DACCSR+1

DAC FOR X VOLTAGE

00044

3806

DACY

EQU

DACX+1

DAC FOR Y VOLTAGE

00B46

2000

ORG

$2000

00048

2000

CE

3B0D

START

LDX

*XHI

POINT TO HI ORDER X

00049

*THE

FOLLOWING TUO INSTRUCTIONS ARE

00050

*UNIQUE TO

THIS SYSTEM

. AND ARE NECESSARY

00051

*T0 MAKE THE

DflC'S UORK IN THE DESIRED MANNER.

00052

2003

86

30

LDA

ft

#$30

SET UP DAC CSR

00053

2005

87

3804

STA

A

DACCSR

TO SHOU DATA NOT ADDRESS

00054

2008

A6

00

LOOP

LDA

A

0.X

GET HI ORDER X

00055

200P

E6

82

LDA

B

2.X

GET HI ORDER Y

00056

200C

B7

3805

STA

ft

DACX

DISPLAY A POINT AT (X.Y)

00057

200F

F7

3e06

STA

B

DACY

00058

2012

E6

03

LDA

B

3.X

B GETS LO Y

00059

2014

06

02

LDA

A

2.X

A GETS HI Y

00060

2016

47

ASR

ft

GET Y/2

00061

2017

56

ROR

B

00062

2018

40

NEG

ft

DO A 16 BIT NEGATE

00063

2019

50

NEG

B

NEGATE LO ORDER

08064

201ft

82

00

SBC

A

#8

PROPAGATE CARRY

00065

201C

EB

01

ADD

B

l.X

GET X+C-Y/2) LO ORDER

00066

201E

ft9

00

ADC

A

0.X

THEN HI ORDER

00067

2020

E7

01

STfl

B

l.X

STORE LO X

00068

2022

07

00

STA

A

0.X

STORE HI X

00069

2024

47

ASR

A

GET X/2 HI ORDER

00070

2025

56

ROR

B

LO ORDER

00071

2026

EB

03

ADD

B

3.X

ADD LO Y

00072

2028

A9

02

ADC

ft

2.X

ADD HI Y UITH CARRY

00073

202A

E7

03

STA

B

3.X

SAVE LO Y

00074

202C

ft7

02

STfi

ft

2.X

SAVE HI Y

00075

202E

20

D8

BRA

LOOP

LOOP TO DISPLAY SOME MORE 1

00077

END

71

The screen was filled with wildly oscillating jelly bean shapes which would periodically explode in a beautiful sparkling flash and collapse back into new jelly beans.

word. For example, overflow occurs when your computer adds two positive numbers and gets a negative number. Lack of precision occurs when your computer divides 5 by 2 and gets 2 as the result.

Variations on the Algorithm

There are several different ways that the program in figure I can be varied. Some of these are described below.

Photo 2: Effects created by overflows and lack of precision of finite computer words. The initial point (X, Y) for this photo was chosen to be slightly further from the origin than the initial (X, Y) used for photo 1.

• Initial X and Y

The choice of a starting point determines the pattern the program draws. Points close to the origin draw ellipses; larger values can produce more interesting patterns. Photo 2 was produced by using slightly larger starting values than for photo 1. The best way to understand this

effect is to experiment with different values of X and Y yourself.

• Display Wrap Around

Most display devices have less than 16 bits of resolution, typically ten or fewer bits are used. If X and Y are represented as 16 bit integers, which ten bits should be displayed? The logical solution is to display only the most significant bits. Different interesting results can be obtained by displaying successively less significant 10 bit slices from a 16 bit value of X and Y. Choosing a 10 bit slice that excludes some high order bits produces an effect called wrap around. The effect is the same as magnifying the original picture and then folding it over on itself to fit the display screen. Photo 3 was produced from the same initial point as photo 2; but photo 2 displays the ten most significant bits, while photo 3 displays the ten bits just below the most significant bit. Photo 4 was produced by displaying an even less significant

■

»l

■....:»:>,

i

IH

l .-■'J

I

a,'

■

''Qifl

,-••■,..

.; '■"■..- '

ELLIPSE

Figure 2a: One of two preferred locations for the origin of your coordinate system display. Here the origin (o,o) origin is placed in the

middle of the display to produce an ellipse centered about the origin. See photo 1.

ORIGIN (0,0)

■

1/4 OF THE ELLIPSE

Figure 2b: In this case the origin has been placed in the corner, splitting the ellipse up into four quarters. This is called "display wrap around."

P/70/-0 3: This photo shows the effect of displaying the ten bits just below the most significant bit for both X and Y. Note the

radical change in appearance.

.•«,,-•

4*'

' ' ' ¥■ tt «

,r

: ».• • V 'f'l

» *

■

$■•••**>

0

*N*

-O

Wf...

. *'

i i"

v."

■ " . 4

if'

KM

T t

1

i

,fr"

*

. r '-■*

■

*■**"*

Photo 4: Once again the display changes significantly, this time by choosing an even less significant group of ten bits for display. The technique of using only certain groups of bits is analogous to magnifying the original picture and then folding it over on itself to fit the display screen.

group of ten bits and using a different starting point.

• Position of Origin

Figure 2 shows two choices of placement for the origin. Choosing the origin in the center of the display, as in figure 2a, results in the ellipse drawn in the

nnr*yiNiiiiiiii|'iwi»iiiiii iai"ii*iiiin

About the Authors

William F Ga/way is employed by the University of Utah working with computer-aided instruction using computer graphics. It has been known by many people that the algorithm described in this article will draw ellipses and circles. While working with a computer music research group at the University, Mr. Ga/way noticed the curious behavior of the algorithm when large diameters were used.

D John Anderson is a graduate student at the University of Washington in the Department of Zoology wdrking on difference equation models of population growth. In the past, he was employed at the University of Utah where he worked with minicomputers in physics and chemistry.

center of the display. However, if the origin is placed in the corner as shown in figure 2b, then one quarter of the ellipse is drawn around each corner. Choosing the origin in the center corresponds to using a signed digital to analog conversion and choosing the origin in the corner corresponds to an unsigned conversion. Patterns that are not very interesting with one origin may be very interesting with the other origin.

• Speed of Display

The speed of displaying points, ie: the number of points per second, is an important factor in the appearance of a pattern. You can put a loop in your program to introduce a delay and experiment with this effect.

Generalizing the Equation

Still more patterns can be produced by using the more general equation:

X|MEW:=X - aY YNEW:=Y + bXNEW

74

The photographs in this article used a=b=/2. We have tried values other than Vi with interesting results, but have never used different values for a and b.

Precision of Arithmetic

Most of the programs we have written to draw our patterns have used 16 bit arithmetic. The program used for the pictures in this article used 24 bits (double precision on a PDP-8 computer). It is possible that using fewer bits will not produce such interesting results.

Other Algorithms

Another algorithm you might try is shown in figure 3. Without much trouble it can be shown that this is a difference equation analog of a differential equation that draws parabolas. This particular algorithm can produce interesting and complicated musical sounds if the output of the Y DAC is amplified and played through a speaker.

It is easy enough to try new forms of these or other difference equations. It has been our experience that these algorithms often produce new visual and audio effects that will astound you."

CHOOSE AN INITIAL X VALUE AND Y VALUE

DISPLAY THE POINT (X,Y)

xNEW-. = x+i

YNEW:= Y+*NEW

x-.=xNEVV

Y;= YNEW

This algorithm can produce interesting and complicated musical sounds if the output of the Y digital to analog converter is amplified and played through a speaker.

Figure 3: A serendipitous algorithm based on a parabola. (This can be more easily seen by manually executing the algorithm and plotting a few points for X and Y.) The parabola is the solution to a difference equation which forms the basis of the algorithm.

COMPUTER ENGINEERING

THE MIDNIGHT SPECIAL . . .

... a full color limited edition poster for your Casey

Jones fantasies.

The poster is \6Vi by 21 Vi inches (41.9 by 54.6 cm) with a white border. The colors are the same as the original by Robert Tinney, which graces our July cover, minus the BYTE logo. The price is $3.00, plus 50$ postage. It is shipped unfolded, in a mailing tube.

ORDER NOW. SUPPLIES ARE LIMITED.

BITS Inc

70 Main Street

Peterborough NH 03458

□ Bill BankAmericard

□ Bill Master Charge No

Name.

In unusual cases, processing may exceed 30 days.

Address. City

Posters $3.00 each plus $ .50 mailing

□ Check Enclosed

$ Exp. Date

. State Zip.

.............. ...............4

75

Circle 121 on inquiry card.

COME TO PC 77 ..

Atlantic City, New Jersey August 27 and 28, 197

PC '77 offers you the most complete show of its kind ever held. Proven in '76 and acclaimed in '77 by all the major professional publications as the coming event of the year, this show is a 'must'. Make plans now to attend. Here are some of the scheduled events:

PRE-CONVENTION PROFESSIONAL SEMINARS

August 22-26 Technical Design Labs and Trenton State College Z80 Seminars at nearby Trenton State College. Five software and four hardware seminars.

August 25, 26, 28 SYBEX Seminars at the Shelburne Hotel. Three intensive seminars: Introduction to Microprocessors, Programming Microprocessors, Microprocessors Applications.

August 24, 25, 26 TYCHON INC. Microcomputer Interfacing Workshop at the Shelburne Hotel.

August 26, 27 Osborne & Associates Microprocessors — Where they came from and where they are going, an analysis of all products on the market today. At the Shelburne Hotel.

MORE NEW PRODUCTS THAN EVER!

All the products you've been reading about in the ads will be on display at PC '77. Many companies will be showing exciting new products. HEATH COMPANY will display exclusively, for the first time, their complete computer line. SOLID STATE MUSIC, POLYMORPHIC ' SYSTEMS. THE DIGITAL GROUP, THOMAS INSTRUMENTATION, MOS TECHNOLOGY, TECHNICAL DESIGN LABS, SOUTHWEST TECHNICAL PRODUCTS, CROMEMCO, E & L INSTRUMENTS, THE INTERPRING GROUP, KENT-MOORE INSTRUMENTS, PERSCI INC. GEORGE RISK INDUSTRIES, MID WEST SCIENTIFIC, OSBORNE AND ASSOCIATES. EXPANDOR, QUAY CORP, MATRIX PUBLISHERS, CAMELOT PUBLISHING CO, HAYDEN BOOK CO, GAW ELECTRONICS, ENCLOSURE DYNAMICS AND SOROC TERMINALS will all be showing new products. Plan to attend!

OUTSTANDING COMPUTER HOBBYIST OF THE YEAR AWARD

This is an annual award presented to a person who has given outstanding service to others in the personal computing field with no commercial motives. Nominations are currently being accepted from individuals and clubs.

For an interesting evening of family entertainment, plan to attend the Ice Capades which are in town the week of PC 77.

LET'S KEEP THE PERSONAL IN PERSONAL COMPUTING!

te

\^<

<

Deal yourself in

on the biggest personal computing show of the year!

FREE!

SEMINARS, FORUMS. TECHNICAL TALKS

publisher of Malcolm Wright of

ENIAC by Dr. John Mauchly, the co-inventor of ENIAC PROGRAMMING ENIAC by Mrs. John Mauchly

SAM 76 by Claude Kagan of Western Electric Co., an interactive symbol system manipulations system which grows with the user.

TELECOMMUNICATIONS FROM THE TERMINAL USERS VIEWPOINT by David L. Peters of Vadic Corp.

INTRODUCING THE HEATHKIT COMPUTER PRODUCTS by Lou Frenzel of Heath Companv

HOW MICROPROCESSORS ARE DESIGNED by Will Mathvs of MOS Technology THE FUTURE OF MICROS IN MEDICINE by Dick Moberg, Dept. of Neurosurgery. Jefferson Medical College, Philadelphia

THE HUMAN FACTOR by Andrew Singer of ROM Magazine

SHOULD MICROS BE USED FOR BUSINESS APPLICATIONS? by Frank J. Ponzio. Jr.. of Mini Computer Suppliers, Inc.

ROBOTS by Tod Loofbourrow, author for Interface Age Magazine GETTING INTO THE MICRO COMPUTER BUSINESS by Robert S. Jones, Interface Age Magazine

MUSIC FOR THE HOBBYIST, HARDWARE AND SOFTWARE by Solid State Music

HAM RADIO APPLICATIONS by Dr. Robert Sliding of the Digital Group HANDICAPPED SYMPOSIUM by Dr. Robert Suding of the Digital Group HOME MANAGEMENT SYSTEMS by Dr. Robert Suding of the Digital Group FLOPPY DISK bv Herbert G. Waite of PerSci Inc.

INTERFACING A HOME SELECTRIC by Charles Yates of Amateur Computer Group of New Jersey

MOVING UP TO AMATEUR RADIO bv Chod Harris of the American Radio Relay League OPERATING THROUGH AMATEUR SATELLITES OSCAR 6 AND 7 by Gary Tater W3HUCof AMSAT

THE PHASE III MICROPROCESSOR CONTROLLED AMATEUR SATELLITE by Tom Clarke WA3LND and Jan King W3GEY of AMSAT

MICROPROCESSOR APPLICATIONS FOR RADIO AMATEURS bv Kasser G3ZCZ of AMSAT

WHAT PEOPLE ARE NOT GOING TO DO WITH HOBBY COMPUTERS by Stephen Gray of Creative Computing

APPLICATIONS OF MICROCOMPUTERS: THE MYTH AND THE REALITY by David Ahl of Creative Computing

INTRODUCTION TO COMPUTERS THROUGH THE BASIC LANGUAGE by Eri Golembo of Computer Mart of New Jersey

DYNAMIC DEBUGGING SYSTEM FOR THE 8<>80 CODE by Larry Stein and David Benevy of Computer Mart of New Jersey

MICROPROCESSORS FOR THE HOBBY MARKET TODAY AND TOMORROW by Dr. Adam Osborne of Osborne and Associates

GETTING STARTED WITH MICROCOMPUTER SOFTWARE by Dr. Christopher A. Titus, author of the Bugbooks COMPUTERS AND MUSIC by Carl Helmers of BYTE Magazine

PRE-REGISTER! FILL OUT AND MAIL THE COUPON ON BACK PAGE I

Personal Computing College

In-depth information through seminars, lectures and workshop sessions covering the personal computer field.

(MWllu *>

iC\tf£,

OS'

B0»*

not

***■£*£&* *&

sa' sons

\e9

p,m^ "fSS- »?sri***U^

vo

.IWIPIIIIII.11 II

?0LS«$5?£2L**

^a^;y^^v^^

at\c

Itac

^^frt^rc"

>m

y^

.■"most S0» evPenence tn> " J/VTFftn

10*'

!mire a broad vm ^disadvantage* * hat te needed ^

£oP^eS9°:9' a"dvanW* ^ Scroproces^ W „cesBO^

Thto -*01"* 9vstem *ncUf Written a«d « e » to P m

°!f« Requires an MlCROW" Aer.

croproces^

WO^Setwosemtnarsbea 26

pn that these r„'JaV, v*lUg"

USE?—-^ay, ^us. tc.no* „

VJe.,Ber^eVCA _

.d'mos( 5()<y xPer>ence tn> " J/VTFftn Pc|?^S^n^S

TECHNICAL DES.GN LABS AND TRENTON S^WeGE

An introduction to th, Bn, ™EuCOWNER.

AUVANCED ASSEMBI \ I ,«,■,,„.„

F^TRA>';vman""r'Ke9S™« ,r0' "' A""M':""' "^

An introduction to tlie Fortran i

WORD PROCESSING WiTHifpS Foril,RAN IV for ,!„■ Z-im " """

Introduction to the u« 7™ JIfS?"™" MD F««MArrER

J-M-nl proccMing ^pabi^X^t'TDr^V^^ '» —*•

^sxrr "rs "n" *" ,h"',",

Instruction in digiul logic circuits „, ■ u

scriVu r, i . * imm.s oovenne the 4jk> tti i .

senes. Codes, regiaters couni-ro ^ ' IL Hn<l the CMOS

HOW TOSET H- a cStSs^Rrbin"to™1 «■*• *

Guest lectures from o„„„/ "„,' ,'<K

PU^r manuf.cn.rers. How „ be™" e „ TT'l "'^ ""'' n"0™»»

SBORNE ASSOCIATES, SYBEX AND TYCHON SEMINARS ARE ALL HELD IN THE SHELBURNE HOTEL, ATLANTIC CITY, NEW JERSEY. TECHNICAL DESIGN LABS AND TRENTOP STATE COLLEGE SEMINARS ARE HELD AT NEARBY TRENTON STATE COLLEGE TRENTON NEW JERSEY

Plug in any one of a number of Solid State Music modules and enhance the power of an Altair (S-100) bus system. In particular enjoy the new SB-1 music synthesizer and the VB1A video board to be given out as door prizes at PC77.

r°Co«. in

***£

Scientific Research Vol I - V

Where does one get software? The lucky winners of the Scientific Research BASIC software library will have a good start at answering this question.

Interface Age

Life Time Subscription

Interface Age is an exciting window on this burgeoning new technology. Find out about microcomputing for the home and the small businessman using this monthly compendium.

Heathkit

This new Heathkit H9 video terminal features data rates ranging from 110 to 9600 bps, EIA RS-232 and 20 ma current loop interfaces, a full ASCII keyboard and 12 lines of 80 characters per line.

Register

before

August 10

SAVE 20%

In-depth

Seminars,

lectures,

presentations!

Silicone Sea ... There's a new excitement in Atlantic City. With the advent of casino gambling $800,000,000 is being invested by such companies as Caesar's International, Playboy, Penthouse, Bally Corporation, Resorts International, Loew's Corporation and many others in new hotel, restaurant and entertainment facilities. And of course all the old attractions of this famous resort remain, the miles of sandy beach with gentle surf, the clean, well run amusement parks, the boardwalk with its exotic shops and much more. All of this adds up to the perfect family vacation spot, easily reached in less than two hours driving time from Washington DC, Philadelphia or New York City. There is parking for 20,000 cars within a three block area of convention headquarters. The convention hotel is right on the boardwalk. Hotel parking is for hotel guests only. Others park on near-by Pacific Avenue.

Club Booth ... Every computer club is welcome to participate with us at PC 77 at our gigantic club booth. Clubs may have members manning the booth to engage in non-commercial activities such as meeting new people from their areas, giving out club literature, newsletters, membership forms and signing up new members.

Dr. John Mauchly and ENIAC ... Enthusiasts will have a chance to meet one of the earliest pioneers of the computer industry. Dr. John Mauchly, coinventor of ENIAC, the first electronic digital computer, will be a featured speaker and guest at PC 77. Dr. Mauchly will be telling the inside story of the trials and tribulations, as well as the triumphs, of ENIAC. And remember, all of this was going on during World War II! Accompanying Dr. Mauchly will be Mrs. Mauchly who worked on the project as one of the original woman computer programmers. Dr. Mauchly, who is an active home computerist, will be available to speak informally with hobbyists during the convention. Don't miss this!

Club Hospitality Suite ... The Amateur Computer Group of New Jersey, Northern New Jersey Amateur Computer Group, Philadelphia Area Computer Society and the Chesapeake Micro Computer Club will host a hospitality suite during the show. Representatives of all computer clubs are encouraged to drop by the suite during the show to exchange views, greet old friends and meet new ones.

SPECIAL GROUP TRAVEL RATES ... for Clubs and Organizations from West Coast and Mid America. Contact Seven Seas Travel, 17220 South Norwalk Bldv., Cerritos, Calif. 90701. Dawn Corrigan. 213/924-8383.

Helpful Hints for Getting the Most Out of the Show

1. Make a list of the companies that you particularly want to see.

2. Bring pregummed address labels with your address printed on them for exhibitor questionnaires, booth prize tickets and requests for information. This will save having to write your name hundreds of times and give you more time to get around the show.

3. Plan on returning to your room or car several times during the day to drop off literature and to change into a fresh pair of comfortable shoes.

4. Bring a good tape recorder, lots of spare batteries and tapes and record information, make notes, and record the seminars. (Recording of seminars is for personal use only, reproduction is prohibited.)

5. If you are planning to attend only one day, make that day Saturday. If you find you really need more time you'll be able to come back on Sunday.

6. Make hotel reservations early. Have them confirmed to save both time and disappointment.

7. Bring spare pencils, pens, and note paper.

8. Bring adequate identification in order to make purchases.

9. Be open minded when talking to exhibitors. Listen to what they have to say, you may learn something valuable.

10. Bring your camera, there will be much to photograph.

11. Remember that advance registration will save you from having to wait in line. Mail the coupon below today!

PC '77 Weekend admission at the door will be $10.00. Register before August 10th SAVE ! 20% AVOID WAITING IN LINE! Admission includes exhibits and seminars for both |

days, August 27-28th.

Please rush

Please rush

. advance registration tickets for August 27-28th at $8.00 each. . Banquet tickets for Saturday, August 28th at $17.50 each.

Send reduced Hotel rate information .

I

I I I

I Make all checks payable to "PERSONAL COMPUTING '77" and mail to: I PC'77, Route 1, Box 242, Mays Landing, N.J. 08330

I Name Amount enclosed

| Address ,

I City.

_State_

Zip.

I

J

1

J

Editorializing with

Your Computer

One of Ihc basic requirements of a software system is a way to get text input. Programs need data to work on; and you need some way to turn this data from markings on a piece of paper to bits inside the machine. The most obvious examples, if only because you have to use them before you can have any other programs of your own creation, arc assemblers and compilers. The source program to be translated is just the data for the translating program. Other kinds of programs, tabulations, statistical analyses, and so forth, also cry out for a convenient way to get a large amount of text into the computer. This is where the text editor comes in.

A text editor is a program which allows the user to enter and modify encoded character data. With it, you can enter a program or a list of figures or anything else, go back and make corrections, and finally output the text onto a storage device or leave it in memory for your next program to work over. A text editor is a fairly simple program to write, and the 8 bit machine which you arc probably using actually has one advantage for editing over many big computers: Its unit of information is just the right size for holding one ASCII character.

There are two basic requirements for an editor: a place to put the text and a way to handle it. The place to put it is the text

buffer, which is simply a block of main memory of a reasonable size. The way you handle it is with a command language, which will run interactively through your console.

The buffer can always have the same starting location, but where it ends depends on how much text it holds at any moment. So a pointer indicating the current end of the buffer has to be kept. Initially (or after you "scratch" your file), it points to the beginning of the buffer, since there is no text yet. The convention assumed here is that the end of buffer pointer indicates the first unused location. There is also an absolute end to the buffer, which does not change; this is the end of the memory allocated for it. The editor should guard against any attempt to store characters beyond this point, for that might wipe out a program or crucial data.

Another pointer which the editor needs is the cursor. This pointer indicates the exact location in the buffer which will be affected by editing commands. Inserted characters will appear at this point; deletions will wipe out the characters which are here. When the editor starts up, the cursor addresses the beginning of the empty buffer.

Text Modifying Commands

The commands which an editor needs can be classified into text modification, cursor

Gary McGath

7 Silver Dr, Apt 3

Nashua IMH 03060

81

The Text Editing Buffer Concept

A text editing buffer is an area in memory address space which has programmable memory implemented. It is the computer equivalent of a blackboard on which to create programs, letters to friends, or even novels or other writings. A typical way of describing such a buffer is through several pointers (address values) which identify the limits of available programmable storage. The starting location is a fixed address which is built into the text editor program when such a program is typically implemented on a small computer. Similarly, the absolute end of buffer space is a fixed address which points to the next location after the end of the buffer. The cursor location is a variable in the text editing program which is allowed to range between the starting location value and the current end of buffer. The current end of buffer is another variable, which identifies the location of the next available unused byte in the buffer space. This variable should be constrained to be greater than the cursor location, but always less than the absolute end of buffer. When the current end of buffer is the last byte in the buffer, the buffer is full.

STARTING LOCATION •

CURSOR LOCATION

CURRENT END OF BUFFER

ABSOLUTE END OF BUFFER

.'.WW W

^1

■i,^,^:,

OTHER PROGRAMS, DATA OR UNIMPLEMENTED MEMORY

BUFFER AREA IN MEMORY

positioning and 10 commands. Since the main concern of the editor is to do something with text, I'll start with the commands that modify text.

At the very least, a command to input text from the keyboard is needed. There doesn't actually have to be an explicit input command; if all commands are issued by special control characters (excluding carriage return, tab, etc), then the editor can take every noncommand character which it reads in its normal course and insert it directly into the text buffer. Alternatively, a specific input command can cause all text which is typed to be stored in a temporary buffer, up to a preselected termination character, such as the aptly named "escape" code. The temporary buffer is then copied into the text buffer after getting the termination character. The latter method makes typing in control characters, except the termination character, easier. It is even more efficient in some cases where "efficient" means quicker response to the user. On the other hand, direct insertion can be handled with fewer instructions, avoids the need for a buffer, and eliminates the chance of forgetting whether the editor is waiting for commands or input.

Inserting characters is easy when the cursor is at the end of the buffer. The characters are just deposited there, and the

cursor is moved along. But when the cursor is somewhere else, then the character which it points at and all the characters after it have to be moved down to make room for the inserted character(s). This is where buffered input is more efficient. Without it, the characters have to be pushed down every time a new character comes in; with it, they can be moved over by the number of characters in the buffer all at once. If, for example, you want to insert 40 characters at a point in text that has 100 characters after it, you would have to do 4000 memory to memory transfers, not counting the insertion itself, without buffering, as opposed to 100 with buffering. But this only matters if you can type characters in faster than your processor can handle them. [In the text edition I wrote for my 6800 based system, I used the "quick and dirty" brute force technique just described. With my homebrew machine on long text chunks (12 K or so) it takes typically 1/5 second for the program to respond, intolerably slow. . . CH/

The other basic text modifying operation is character deletion. Probably the best character to delete is the one just before the cursor, so that you can rub out what you just typed in if you made a mistake. But be sure to check for deleting past the beginning of the buffer! If the deletion occurs at the

82

FLIP OVER OUR FLOPPY

Only $750 from Peripheral Vision.

Peripheral Vision is a brand-new company that's dedicated to selling reasonably priced peripherals tor various manufacturers' CPU's.

We think you'll flip over our first product.

It's a full-size floppy disk for the Altair-lmsai plug-in compatible S-100 BUS. And it's available for as low as $750.

Here are the features:

• 1 interface card supports 4 drives

• Stores over 300,000 bytes per floppy

• Bootstrap EPROM included—no more toggling or paper tape

• Completely S-100 plug-in compatible

• Interface cabling included

• Drive is from Innovex (the originator of the floppy concept)—assembled and tested

• Interface card design is licensed from Dr. Kenneth Welles and the Digital Group

• Disk operating system with file management system included on floppy

• Cabinet and power supply optional

Now, a little more about our company.

Peripheral Vision may be brand-new, but we have some old-fashioned ideas about how to run our business.

We know there are serious incompatibilities among the different manufacturers' peripherals and CPU's. We want to get them together. And, we want to bring significant new products to market—products consisting of everything from adaptation instructions/kits for hardware and software to major new products.

It's a tall order, but we feel we're up to the task. Peripheral Vision has already obtained a license from The Digital Group to adapt versions of some of their products to the S-100 BUS. And we're working on getting more from other companies.

Most important to our customers, Peripheral Vision is committed to helping you get along with your computer. We'll do all we can to make it easy.

Write us now for all the information on our company, our philosophy and our exciting line of products. And be prepared to flip over all of it.

Prices:

Interface card kit and assembled and tested drive

Power supply—+24V at 2A

Cabinet—Optima, blue

Kit Assm.

$750 45

$850 65 85

RO. Box 6267/Denver, Colorado 80206/(303) 733-1678

Send me the works, and I just might flip over it!

Name

Address,

City/State/Zip.

Circle 124 on inquiry card.

end of the buffer, then the end of buffer pointer just has to be decremented; for neatness, the deleted character might also be zeroed out. If the cursor is in the middle of the buffer, then the character it points at and all subsequent characters are moved back one position, thus overwriting the unwanted character.

For added power, the deletion command could be allowed to take a numerical argument, indicating how many characters to delete. A number reader for this command can also be used in connection with other commands. Other options conceivable include deleting all characters up to and including the next "end of line" character, thus enabling the editor to delete one or more lines.

Cursor Commands

Commands which position the cursor are fairly easy to implement, since they require no moving of text. Commands to increment and decrement the cursor, and to move it to the top and bottom of the buffer, are trivial to implement. The only thing to worry about is the possibility of moving the cursor outside the buffer.

Commands to move up and down a line of text are just a little trickier. Assuming that the end of a line is designated an "end of line" character such as the carriage return character, the next line command searches the text buffer, starting at the cursor, for a carriage return; it then positions the cursor immediately after the carriage return. The previous line command searches backwards from the cursor for the second carriage return it encounters (the first carriage return is at the end of the previous line), and positions the cursor at the character immediately after this second carriage return. Numeric arguments can be used to move up or down several lines at a time.

The most complex cursor positioning command is the search command. Its function is to search the buffer for a user specified sequence of characters, and then to position the cursor where the sequence is found. The search may be forward or backward from the cursor.

A buffer will be needed to hold the search string: the sequence of characters to be matched. If you implemented a buffer for input, you can use it again here. To conduct the search, scan the text buffer for the first character; then, having found a match for it, check if the immediately succeeding characters match the rest of the search string. If they don't, resume scanning for the first character. Continue until a match is found or the buffer runs out. If the search is

unsuccessful, the cursor is probably best left where it was before the search started.

Input and Output Commands

There are two kinds of input and output that the editor needs to be able to do. One is communication with the terminal; the other is interaction with long term mass storage such as cassettes, tape cartridges or floppy disks.

Terminal input has been implicit in the discussion of all the commands. Terminal output has two specific functions: giving the user messages and displaying parts of the text buffer. Messages should include complaints about illegal commands, notifications of whether searches succeeded, warnings about attempts to go outside the buffer, indications of failure in transfers to or from mass storage, and so forth. Typeouts from the buffer can be handled in various ways, but what is important is that it be easy to look at the vicinity of the cursor. A minimal print or display command might just print the line which includes the cursor character. For greater flexibility, arguments to indicate a number of lines could be implemented. With two arguments, a number of lines before the cursor and a number afterward could be printed out; if both arguments are zero, just the line containing the cursor character would appear.

The other part of input and output is based on the need to store your text- for later use. It is not very efficient to have to type in your whole program anew every time you want to update it; it is far more convenient to have a copy of the previous version on magnetic or paper tape, disk, or whatever medium is available to you, so that you can load the editor's text buffer, make the necessary changes, and output the new version for later sessions.

This is simple enough if the entire text file with which you are working will fit in the text buffer (given that you have the necessary interfacing and 10 routines). But when there is loo much text for the editor to handle at once, it has to be broken down into buffer sized pieces. To do this, you need the ability to alternate between reading one file and writing another. If you have cassette storage, this means you should have two recorders with motor control. The trick can probably be done with one recorder, but only with painful quantities of rewinding and positioning via the tape counter as the tape is moved between the two files.

A large text file should be broken up into pages. This is done by inserting the form feed character control L into the text at reasonable intervals. The text input routine

84

Command Explanation

IxxxtC Insert xxx, any sequence of characters except tC, into the text buffer.

DnnntC Delete nnn characters prior to the cursor.

FnnnIC Move the cursor forward nnn characters.

RnnntC Move the cursor back nnn characters.

A Move the cursor to the top of the buffer.

Z Move the cursor to the bottom of the buffer.

LnnnIC Move forward nnn lines.

BnnnlC Move backward nnn lines.

SxxxtC Search forward from the cursor for xxx.

Uxxxl C Search backward from the cursor for xxx.

Y Yank a page of text into the buffer after first clearing the buffer.

W Write a page of text from the buffer.

C Close the output file or device.

Tmm.nntC Type out mm lines before the cursor, the line containing the cursor, and nn lines after the cursor.

Table I: A set of possible commands for a text editor. These commands are just suggestions for the type of arguments that may be used in an editor language. Note that the character t C stands for control C. Control C cannot be encountered in the text to be edited since it is used as an indicator at the end of a command.

can then be designed to read the input file up to and including the first control L encountered, copy it into the buffer area, and then wait for another command before reading another page in. This method allows you to fix up one page at a time, oulputting each page before getting another page from the input File.

Table 1 presents a possible command language for an editor which includes the features discussed here. If a command takes no literal or numeric arguments, it needs no terminator; the next character is a new command. Where there are arguments, the character control C terminates the com

mand. Note that with this command language, control C itself cannot be inserted; this should not be a great loss, since control C is normally an end of text indicator.

These commands will provide you with a small, yet versatile editor. If you want to expand further, options such as scratch buffers, iteration, and macro-commands are possible; for an example of a powerful editing program, see Digital Equipment Corporation's TECO. At the other end, you can leave out numeric arguments, searching and even line positioning for the simplest editor possible. It all depends on what you can afford in time, effort and storage."

IN WIRE-WRAPPING <3fe HAS WE LINE

DIP SOCKETS

DIP IC INSERTION TOOL WITH PIN STRAIGHTENER.

MODEL INS1416

$3.49"

PRE-CUT PRE-STRIPPED WIRE

'MINIMUM ORDER $25.00, SHIPPING CHARGE $1.00. N.Y. CITY AND STATE RESIDENTS ADD TAX

OK MACHINE AND TOOL CORPORATION

3455 CONNER STREET, BRONX, NEW YORK, N.Y. 10475 U.S.A. PHONE (212) 994-6600 TELEX NO. 125091

85

Circle 196 on inquiry card.

What's

The New

Heathkit Computer Line

Pdoto I.

On June 1 7977 we traveled to the Heath Company's plant near Benton Harbor Ml to take part in the "Heath Computer Product Press Party." This was a gathering of people from various publications to preview the new product line which Heath is introducing to the general public at the Personal Computing 77 show in Atlantic City NJ at the end of August. The major features of the new Heath product line are best described by pictures supplied to us at the press party, along with notes based both on the press release and our experiences.

The H8 Computer Kit (Photo 1)

The Heath product line has one 8 bit member, the H8 computer based upon the Intel 8080A design. This product, which sells at $375 for the basic processor box, includes cabinetry, front panel with 1 K ROM monitor, processor board and power supply. Memory cards are available with the H8-1 kit for 4 K

bytes by 8 bits at $140 and the H8-3 expansion module adding another 4 l< by 8 bits to the H8-1 for $95. (The cabinet shown is said to be capable of holding up to 32 K bytes in the form of H8-1 cards fully populated with memory chips.) Peripherals cards presently available include the H8-2 parallel interface card ($150) with three input and three output ports, and the H8-5 serial interface board ($110) which contains RS-232 interfaces at a number of data rates, 20 mA current loop interface, and an audio cassette interface which uses 1200 bps modified Manchester phase encoding at the "Kansas City" standard frequencies.

These systems come complete with software for immediate use, included as part of the price. At the press party, we exercised the H8 with Benton Harbor BASIC, a full implementation of Dartmouth BASIC for the 8080 which takes 8 K bytes and features dynamic storage allocation (programs expand and contract with use of data). The more complete 12 K Benton Harbor BASIC, extended, adds strings and other exten

Photo 2.

sions to the 8 K version. Both versions have a number of user-oriented editing features which are both unique and useful as demonstrated to us at the press party. The design and coordination of the systems software for the H8 system were performed by Gordon Lctwin, Heath's resident software wizard, whose title is Lead Systems Programmer for the Computer Products Line.

The H11 Computer "Kit" (Photo 2)

The second star in the Heathkit constellation is the top of the line H11 system, a confirmation of persistent rumors over the past year that Heath had allied itself with Digital Equipment Corporation. The H11 is an LS1-11 board from Digital Equipment Corp, mounted in a Heath supplied chassis and accompanied by Heath's switching power supply, backplane assemblies, and heavy duty documentation. It is intended for use with a terminal such as the Heath H9 or the LA-36 DECwriter which Heath will market, and at the time of initial deliveries the H11 is intended to be used as a stand alone paper tape system using the Heath H10 product as its paper tape facility. (Floppy disk systems and software are in the works but arc not yet available from Heathkit.) The HI I computer itself is $1295 for the cabinet, LS 1-11 board, Heath backplane and power supply. This price of course includes the built-in terminal support software of the LS 1-11, the 4 K by 16 bit semiconductor memory of the LS 1-11 board, and a terminal interface. Purchase of the Heathkit enrolls the user in the DECUS library and includes complete DEC systems software on paper tape: Editor, PAL-1 I assembler, linker, ODT, BASIC and FOCAL languages. (BASIC requires additional memory.) Other components of the H11 line include the H11-1 4 K by 16 bit memory board at $275, the HI 1-2 parallel interface board at $95, and the H11-5 serial interface board at $95. The

86

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 J, 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:

• Low power consumption, total board 5 watts.

• Transparent refresh, which means the memory looks static to the outside ivorld.

• No waiting. In fact, xrdy is not even connected to the memory.

• Full DMA capability

• Reliable, low level clock and control signals.

Dynabyte

■ * ~

UyTlCLuy tG brings to the 5 — 700 Bus a state of the art, industrial quality memory system. 16K on a single board for $485.00, Guaranteed for 1 year.

BYTE OF PASADENA 496 So. Lake Ave. Pasadena, Ca. 91109 (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 Si. Walnut Creek. Ca. 94596 (415) 933-6252

BYTE OF SAN MATEO 1200 W. Hillsdale Blvd. San Mateo, Ca. 94403 (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

B of A & MASTERCHARGE ACCEPTED

Circle 125 on inquiry card.

Photo 3.

HI 1 box will accommodate up to 20 K words of memory, according to the press release copy.

Other Systems Products

Both the H8 and the HII are designed for use with other products which have generic applicability to any computer system. At present these include the H9 video terminal and the H10 paper tape reader and punch unit.

The H9 video terminal at $530 is probably one of the best buys available

Photo 4.

in a kit based terminal unit today. Its features include a full 67 key ASCII encoded keyboard, a 12 line by 80 character display format (upper case only), a formatting option for four columns of 12 lines of 20 characters built into its hardware, a block trans

Presenting a growing line of [rJ)n /l\l

professional quality q - f\f\ LPjlLi/A\

IMSAI/ALTAIR 0~1\J V

COMPATIBLE

BOARDS

8K BLANK RAM BOARD »■««„ $25.00

—with MEMORY PR0TECT/UNPR0TECT and SELECTABLE WAIT STATES

(new) Z-80 CPU BOARD $35.00

-will! PROVISIONS for ONBOARD 2708 and POWER ON JUMP

(new) PR0T0B0ARD

$25.00 $25.00

(new) 2708/16 EPR0M BOARD

—accepts up Id 16K at 2708's or 32K of 2716's. ALL BOARDS FEATURE

FULL BUFFERING on ALL DATA and ADDRESS LINES1

SOLDER MASKS and SILK SCREEN '

DIP SWITCH ADDRESSING'

GOLD EDGE CONNECTORS

PLATED THROUGH HOLES

'except lor PR0T0B0ARD

WATCH FOR OUR 16/64K DYNAMIC RAM BOARD AND ADDITIONAL BOARDS TO BE ANNOUNCED FORTHWITH. 0 0

IMSAI 8080 Kit

—with 22 Slot M.B.

$575.oo

Z-80 cpu CHIP $25.00

2708 CHIP. $20.00

i&

iTiiflH audio

PO BOX 91 ITHACA, N.Y. 14850

PLEASE CALL (607) 273-3271 TO ORDER OR OBTAIN TECHNICAL ASSISTANCE.

BankAmericard and Master Charge orders welcomed. OEM and quantity discounts available

mission feature, and a limited plotting mode of operation. The entire unit is contained in an attractive cabinet, as seen in photo 3.

The H10 paper tape reader punch is Heath's principal mass storage unit for use with the H11 product line as currently available (although, according to the people at Heath, this is by no means intended as the last word in that area). It can also of course be used with the H8, and any other computer which has a parallel 8 bitTTL compatible interface for input and output. Features of this unit, shown in photo 4, include a built-in power supply, stepper motor drive, a stand alone tape copy mode, and data rates of 50 characters per second reading, 10 characters per second punching. The price of the H10 kit is $350.

All Heathkit products can be purchased under Heath Company's revolving charge credit plan, a benefit which should be of major interest to potential computer hobbyists. Shipping dates for all new computer products are scheduled for the fall. For further information write for the "Computer Information Package" — Heath Company, Dept 360-26, Benton Harbor Ml 49022."

Circle 600 on inquiry card.

Computerized Morse Code Reception Package

Polaris Computer Systems has announced a Morse Code reception package for Altair (S-100) bus 8080 microcomputers. The package consists of a tone to DC converter module and complete software. The converter connects to the communications receiver via headphone jacks and to the computer via a parallel IO port. The converter contains a phase locked loop for tone decoding and adjustable center frequency and band width controls. Its design is highly immune to impulse noise. Provision for audio and visual synchronization (with an oscilloscope) of the incoming signal is provided.

The software adjusts for variations in transmission as each code element is received, allowing for manual or automatic transmission of CW at speeds ranging from 5 to 60 words per minute. Noise and dropout negating logic is included. Final output of received text is to an SIO port for display to a printer or CRT.

Package price in kit form for the converter, object program and complete documentation is $95. An assembled and tested version lists at $145. Source tapes and complete turnkey packages arc also available. A schematic of the converter, object dump and documentation of the device are available for $17. Polaris Computer Systems is located at 3311 Richmond Av, Houston TX 77098."

Circle 602 on inquiry card.

Note: A group of other Altair (S-100) bus interface new products items begins on page 152. ■

Circle 126 on inquiry card.

88

XililcDiA P^E^Enti

TheSOROC IQ120

CURSOR CONTROL. Forespace, back space, 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. 15 cps repeat action.

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

SCREEN. 12 inch rectangular CRT - P4 phosphor.

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 Assembled

-$699 -$799

IMSAI I-8080 with TDL ZPU

Kit

Assembled

-$825 -$975

Digital Systems FDS Disk Drive with CP/M Software (assembled only) . Single —

Dual

$1,750 $2,350

Mountain Hardware PROROM

Kit Assembled

-$145 -$210

Vector Graphic 8K RAM . . .

Kit

-$235 -$285

Assembled

NOW WE'RE TOLL FREE

800-227-4440

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

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.

XililcDiA

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

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

Circle 140 on inquiry card.

Continued from page 28

matter of assembling the kits. The dean introduced me to two senior students who worked part-time in the school's electronics lab. These students, he said, would design a power supply and assemble the kits. The students began immediately on the power supply, and in about a week they finished the design. They gave me their parts lists, and I phoned the order in to the distributor. There was nothing left to do now except wait for the equipment.

It was now time to begin class. I went to the classroom the first evening and found a room full of students. Of 30 people who registered, 29 showed up. We got all the preliminaries out of the way early. I announced

Photo 2: A typical class session: designing, discussing, debugging and some time at the drawing board.

the class schedule, the type of equipment we would use, the grading scheme, my office hours, prerequisites, and all the other good stuff that's announced during the first class session. After some philosophizing about the history and potential of microprocessors, we got down to the business of the sequence. We started with the binary number system as planned. The lectures went very well. There was the usual supply of questions, answers, quizzes, homework, problems, and discussions.

Meanwhile, the equipment was not coming in from the distributor as planned. We got the Evaluation Kits from Motorola, all except the read only memories. The discrete circuits just trickled in, a resistor here, a socket there, maybe a potentiometer or a voltage regulator. No amount of discussion, coaxing, cajoling, begging or screaming could get the components in. Some of the components, they admitted, had a 7 or 8 week lead time. Four weeks into the class schedule, we had approximately 90 percent of the pieces for one system. The students went to a local electronic shop to buy the missing items. This brought out our other major problem: namely, there were no terminals with which to talk to the system. I mentioned this to the dean, then borrowed an old CRT from North Electric for debugging purposes. At this point the dean ordered six new ASR-33s from Teletype. He explained that these would be used for other courses also.

One of the interesting developments of all this was that my student helpers, who were super careful in their work, discovered a few minor errors in the schematic that Motorola provided with their Evaluation Kit. The students routinely corrected the drawings and made up about 40 C size sheets for distribution to the rest of the students. In the process, I sent a copy of the revised schematic to the Motorola applications engineer in Cleveland to see if Motorola would object. He was quite surprised that the errors had not been found before. Not only did he not object, but he also was grateful for the sheet and asked if we could spare a few more!

After 11 weeks of class, including four weeks of excuses and apologies to the students, six lab stations were equipped. The packaging left a little to be desired (see photo 1), but the power supply and the kit worked, and the entire system served as an excellent educational vehicle. By this time, the lectures had covered the M6800 processor architecture, the Evaluation Kit system structure including the address space, and most of the M6800 instruction set. The students were more than ready to get their

90

Announcing. . .

MJCRQTECK SOFTWARE

Microtech, Incorporated introduces a number of sophisticated software packages for microcomputer users. Our software is created expressly for microprocessors, making it fast and memory-efficient. Our higher level language, MICROTECH BASIC, provides features never before offered for microcomputers, and our applications and documentation allow even first-time users to be up-and-running quickly and effortlessly.

MICROTECH BASIC is designed with great flexibility. The structure easily accomodates driving a wide range of peripheral devices through BASIC commands. The language is constructed expressly for Z-80 based microcomputers, affording a truly sophisticated higher level language with a small (under 7 K without I/O drivers) memory requirement. Briefly, MICROTECH BASIC has all of these features:

• 32 BIT ARITHMETIC - numeric range ±2,147,483,647 without loss of accuracy.

• COMPLETE STRING VARIABLE PACKAGE.

• TABLE DRIVEN VARIABLE STORAGE - reduced memory overhead for variable storage.

• MASS STORAGE DATA FILE HANDLING - allows data to be read or written to mass storage devices either sequentially or randomly.

• MASS STORAGE PROGRAM FILE HANDLING - a full directory based program file capability has been implemented. Commands available include PGRM (used to create a directory entry), SAVE, ERASE, LOAD, and RUN (load and go).

• COMPLETE PROGRAM OVERLAY CAPABILITY - a powerful programming technique that allows an executing program to load and execute any other program currently in the directory with all variable values passed to the new program.

MICROTECH BASIC is currently available in audio cassette form for Digital Group Z-80 systems. We have hooked MICROTECH BASIC to our own Phi-Deck driver software to create TOS (Tape Operating System) BASIC. Up to four Phi-Decks may be used for mass data and program storage. All tape control is provided through BASIC commands. This package, with all audio, video, and mass storage drivers, requires roughly 9.5 K. A minimum 18 K system is recommended.

MICROTECH BASIC will soon be available for many Z-80 based microcomputers and will include a variety of drivers for tape and disc mass storage systems. Write for complete details.

APPLICATIONS APPLICATIONS APPLICATIONS

MICROTECH has an extensive library of applications written in MICROTECH BASIC. As examples, we have:

• BASIC GAMES — a collection of 10 programs on tape (to be used with our Phi-Deck BASIC). This is a comprehensive package including Casino Games, Educational Games, Space Battle, and Tic-Tac-Toe.

• PERSONAL CHECKBOOK MANAGEMENT SYSTEM - a group of programs that allows checkbook management, bank reconciliation, and tracking of deductibles for tax purposes. It uses a single tape drive for programs and data storage.

You may purchase our products through computer retailers or directly by mail.

PRICING

TOS BASIC (for Digital Group Systems) - includes BASIC, data tape formatting routine, and deck-to-deck copying

routine — 28 page user's manual and free updating service Special introductory price $59.95

(specify 32 or 64 character video when ordering) ($100.00 after 9/15/77)

BASIC GAMES - Program tape and documentation $20.00

PERSONAL CHECKBOOK MANAGEMENT SYSTEM

Program tape and documentation $30.00

Dealer and Manufacturer Inquiries Invited

POST OFFICE BOX 599

MICROTECH

E. BRUNSWICK, N. J. 08816

INCORPORATED

Circle 127 on inquiry card.

hands on the system. Consequently, most of the next four weeks were spent in the lab, writing and testing small programs.

On the 15th week of class, 25 students took the final exam. The first trimester, which covered in significant detail a complete microcomputer system, was finally finished. In my opinion, it was a resounding success, even considering some of the problems.

After a week long vacation the second trimester began. In this trimester, applications and project work would be emphasized. Several lab projects were scheduled, some of which involved interfacing external hardware. Lecture time would be minimized, and most of what there was would feature guest lecturers and cover applications and related topics such as microprogramming and direct memory access techniques.

Unfortunately, only 15 students enrolled for the course. I attribute the sharp drop in part to graduation, but mostly to the fact that many students do not like to go to school in the summer. The students who did attend had an advantage though, because smaller class size gave them more opportunity to use the equipment.

The first part of the trimester was devoted to various number representations, conversion from one representation to another, and arithmetic operations in the representations. The first two lab exercises were the multiplication of two 8 bit numbers and the binary coded decimal addition or subtraction of decimal numbers up to four digits long. I scheduled these exercises first because my two technicians had graduated and nobody was available to assemble and test the hardware. I also thought that these exercises would accustom the students to writing fairly detailed programs. The students, however, had a difficult time with these programs. I found there were two major reasons for this.

The first was that there was no assembler available; all programs had to be written, assembled and entered into system memory by hand. This made for a lot of aggravating housekeeping and transcription errors. The second reason was that most of the students were electronic types and this was their first experience with programming.

Meanwhile, I decided that there would be three more lab exercises. The first would be storing data on a tape cassette using the Lancaster interface described on page 30 of March 1976 BYTE. The second would involve a row of 24 LEDs addressable as three memory locations. The third exercise could be analog to digital conversion using the circuit shown on page 70 of May 1976 BYTE.

By this time I had rounded up a technician, and he started to work about the fourth week of class. The cassette interface was finished first, but we never got it working right. It took about two weeks to figure out that coupling capacitors were needed on the TTL circuitry. Then we found that the tape was position sensitive, even after we changed the delays from 2.5 and 5 seconds to 5 and 10 seconds, respectively. In addition, the entire thing was assembled on a super strip, and they just don't lend themselves to reliable operation. The analog to digital conversion and lights projects went very smoothly. The hardware worked right just about as soon as it was built. The students had less difficulty with these two projects, and had more fun playing with them than they did with any of the other three. Photo 2 depicts a typical class session during the second trimester.

The second trimester went fairly smoothly, and passed without much incident. We had one guest lecturer, and we spent one evening at Ohio State University watching a demonstration of a Motorola EXORcisor. The only problems during the second trimester were a few minor glitches in some of the external hardware and the lack of software development facilities.

It was finally over. The 30 week excursion into microprocessors ended. For me, it was a great experience. Most of the hard work and sweat came in preparing the lectures and waiting almost endlessly for the hardware to arrive.The actual teachingof the course and conducting of the class were a pleasure. The students were perceptive, cooperative and eager.

The total cost to Franklin for both trimesters was about $1400. This includes six Motorola Evaluation Kits; discrete components, power supplies and extra programmable memory chips for nine kits; and a few miscellaneous components for the hardware labs. Not included in this figure is the cost of six brand new Teletypes.

I would like to express my gratitude to a few people whose contributions were invaluable. Dean Kelly provided his and Franklin's cooperation in the overall offering of the course. Mike Kabealo, the Motorola sales engineer, gave us the hardware which was the foundation of our lab. Dr Tony Lucido showed us his EXORcisor and its software, and he also provided us with an excellent example of how not to fix a Teletype. Finally, Lee Sensibaugh and Tom Richards, my two ace technicians, through their enthusiasm and tireless efforts, were the key factors in getting the laboratory together and working."

92

i i t I t 1 I I I I t r i

Extensys Corporation

The most cost effective products for your § ng*riljj^ microcomputer. mUa„m i

MM "It

THE RM64 MEMORY BOARD provides the most cost effective means for system memory addition in the industry. The board is S-100 bus compatible making it usable in over a dozen different microcomputer systems including ALTAIR and IMSA

It comes in three configurations: 32K, 48K or 64K bytes and is completely assembled, checked out and burned in for at least 50 hours prior to shipment.This complete testing procedure enables EXTENSYS to provide you a one year warranty on parts, labor and materials (assuming no misuse of the board occurs).

On board hardware is provided for:

Individual memory bank address selection in 8K increments;

. Complete dynamic refresh logic without loss of processing efficiency while programs are running;

Board select logic which allows more than one 64K byte board per system;

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

. Memory overlap which allows memory sharing the same address space to coexist in the same system; and

Write protection in 16K blocks

THE CGM77 COMPUTER GRAPHICS MACHINE is a fully tested system that provides the basis for developing the most sophisticated video graphics imaginable. The CGM77 board is S-100 bus compatible, making it usable on over a dozen different computer systems. The only additional components needed for a complete video graphics system are 8K bytes of RAM interfaced to the microcomputer system. The EXTENSYS RM64-32K RAM board is ideally suited for this.

Special control panels are available that provide universal control for interfacing with the graphics board. Output of the board is in the form of composite sync that can be used directly by a high resolution video monitor.

The heart of the system is the EXTENSYS GRAPHICS MACHINE. This is a sophisticated piece of software developed by EXTENSYS for the rapid implementation of video graphics. The GRAPHICS MACHINE permanently resides in PROM chips that are part of the board and therefore never need to be loaded. The GRAPHICS MACHINE software actually transforms the microprocessor into a much more powerful and sophisticated computer whose instruction set is ideally suited for the development of video graphics or video games.

Contact your local computer store ________

or order directly from EXTENSYS | j B-2

Please pJaM my WtJei for the following:

QTY DESCRIPTION AMOUN1

RM64-32K byte board 6>$ 895 ea.

RMG4-48K byte board @ S1195 ea.

RM64-64K byie board & S1495 ea.

CGM77 computer graphics

board <y> S 375 ea.

Subtotal

California residents add 614% lax

TOTAL

Shipping and handling prepaid in continental United Stales

NAME

extensys

^■■■■■/corporation

592 Weddell Drive Sunnyvale, California 94086

Please check method of paym

Check Enclosed

BankAmericard No.

expiration date . Master Charge No. _

expiration date .

ADDRESSCITY

PHONEUNCLUDE AREA CODE).

J

Circle 137 on inquiry card.

I I I I I I I I I I I I I

Continued from page 32

tape consists of a start bit, 8 data bits and a parity bit. Parity of each byte is automatically checked when a cassette program is loaded into memory. A light and warning tone tell the user immediately if a parity error occurs. This makes cassette volume and tone adjustments possible. Another light provides a visual indication of tape data. This lets the user manually position the tape when recording several programs on the same cassette. The last byte loaded into memory from a cassette is always displayed on the TV screen.

The graphic video display consists of an array of spots on the TV screen. There are 64 spots in the horizontal direction. The number of spots in the vertical direction can be varied, under program control, from 32 to 128. The normal display is 64 spots wide by 32 spots high. This array of 2048 spots represents 256 bytes. If a bit is 1, the spot is white; if a bit is 0, the spot is black. Changing the states of the memory bits with a program creates patterns, pictures or numbers on the TV screen. It is possible to create moving patterns by shifting the bit patterns around using a program. Switching between different display maps by changing the contents of a single address register allows very quick display changes.

This graphic display uses the RCA CDP1861 integrated circuit which was designed for use with the COSMAC microprocessor. It provides the lowest cost graphic video display currently available with any microcomputer. It is limited to fairly low resolution applications. Higher resolution requires larger refresh memory capacity and much more expensive circuits. In five years of experience I have found this resolution adequate for large numbers of applications. A very inexpensive color graphics add on is being planned for this display.

Physically, the COSMAC VIP consists of a single 8.5 by 11 inch (21.6 by 27.9 cm) printed circuit card that sits on rubber feet (see photo 1). The hexadecimal keyboard occupies the lower right hand corner of the card. The power pack plugs into the wall and is connected to the card with two wires. Three shielded cables are needed for connection to the video monitor, the cassette recorder mike input and the earphone output jack. These cables are readily available at local electronics outlets.

Assembly time for a COSMAC VIP kit is two to three hours. It involves soldering the components into the card. No individual wiring is required, other than the above external connections. The assembly instructions and printed circuit card were designed with the experienced kit builder in mind. If

you have never built a kit you would be better off finding a friend with a sharp eye, steady hand and fine point soldering iron to help you out. Assembled versions will be available and a plastic cover for the card is planned. The printed circuit card can also be mounted in your own box with the keyboard, single operating switch and three LEDs remounted on the surface of the box. Only 19 integrated circuits are used in the 2 K byte standard system. A single +5 VDC supply comes with the kit and powers the computer. Only 350 mA, average current, is required with most of the current used by the NMOS programmable memory. The CDP1802 COSMAC microprocessor is the key to the low power and relatively few integrated circuits required for a system of this type.

System Expansion

The COSMAC VIP was designed as a complete, stand alone, graphic home computer. Hardware hackers will, of course, not be satisfied with the standard system and will want to add a variety of gadgets of their own. Expansion capability was therefore designed into the system. First, you can increase memory to 4 K bytes by just adding four ICs to the printed circuit card. This permits more sophisticated programs for a system of this class. A comprehensive, 44 line interface is provided that can be used to add almost anything to the system including up to 32 K bytes of programmable memory. This interface provides all the COSMAC microprocessor signals. A fair amount of technical skill is, of course, required by hackers who actually use these lines.

For novices who want to add existing IO devices such as relays, music synthesizers, printers, or an ASCII keyboard, an easy to use parallel IO port option is provided. Adding four readily available ICs to the printed circuit card provides an 8 bit output port and an 8 bit input port plus handshaking signals on 22 interface pads. A standard 22 pin card socket can be used for connecting external devices to these ports. The output lines can drive two TTL loads. The input lines are high impedance, 22 K ohms or more.

Software and Documentation

Two manuals are provided with the COSMAC VIP system. The COSMAC microprocessor user manual is for those who want to get involved with the details of machine language programming. The COSMAC VIP manual provides all the information required to assemble, run, program and troubleshoot the system. Every

94

THE LATEST IN TAPE SYSTEMS

MODEL CC-8 - $175.00

2SIO (R) CONTROLLER MODEL 3M3A - $220.00 $190.00 ($160.00 Kit)

4800 BAUD CASSETTE RECORDER

An ASYNCHRONOUS NRZ type Recorder with remote motor start/stop. Error rate 10.8 at 4800 BAUD. Can be used from 110 to 4800 BAUD into a UART or "Bit Banger PIA" - no clocking required. This is not an audio recorder. It takes RS232 or TTL signals from the terminal or computer and gives back the same signals. No audio interface is used. Motor start/stop is manual or through TTL or RS232 signals.

Tape speed is 3.2"/second nominal; 1.6"/sec. optional. 110 volt, 60 Hz, 5 watts. (220 Volts on special order). Can use high quality audio cassettes (Philips Type) or certified data cassettes. Can be used in remote locations from a 12 Volt battery.

Recommended for DATA LOGGING, WORD PROCESSING, COMPUTER PROGRAM RELOADING and DATA STORAGE. Especially recommended for 6800 systems, 6502 systems, 1800 systems and beginners with the 8080 systems. Manual control except for motor start/stop. 6800 or 8080 software for file or record searching available on request with order. Used by major computer manufacturers, Bell Telephone and U.S. Government for program reloading and field servicing. AVAILABILITY - Off the shelf.

50 KILOBAUD CARTRIDGE RECORDER

This is a self clocking (1/1) high speed recorder. Loads BASIC in under 2.0 seconds. Recording is done at 19.2 Kilobaud. Playback at 30 Kilobaud. File or Record searching is done at 50 Kilobaud and loading is automatic. Worst case access time about 2 minutes for up to 2 megabytes on the 3(VI Data Cartridge.

Tape speed 10'7sec. on record, up to 30'7sec. on playback. Records one clock track and one data track on each pass (2 passes). Recording is NRZ unencoded from RS232 or TTL signals.

This recorder requires one Parallel port for motor control, and one serial port for data and clock. (Cannot be used with UART's or UART boards such as the 3P+S). Used with USART's, ACIA's or other 1/1 clocking I/O devices under software control only. No manual controls. Software for 8080 and 6800 available. Power supply is built in, 110V, 60 Hz. 220 V, 50 Hz for export.

AVAILABILITY-90 Days

PROVIDES MONITOR AND TAPE SOFTWARE in ROM TERMINAL and TAPE PORTS on SAME BOARD CONTROLS ONE or TWO TAPE UNITS (CC-8 or 3M3A)

This is a complete 8080, 8085, or Z80 system controller. It provides the terminal I/O (RS232, 20 mA, or TTL) and the data cartridge I/O, plus the motor controlling parallel I/O latches. Two kilobytes of on board ROM provide turn on and go control of your Altair or Imsai. NO MORE BOOTSTRAPPING. Loads and Dumps memory in hex on the terminal, formats tape.cartridge files, has word processing and paper tape routines. Best of all, it has the search routines to locate files and records by means of six, five, and four letter strings. Just type in the file name and the recorder and software do the rest. Can be used in the BiSync (IBM), BiPhase (Phase encoded) or NRZ modes with suitable recorders and interfaces.

This is Revision 7 of this controller. This version features 2708 type EPROM's so that you can write your own software or relocate it as desired. One 2708 preprogrammed is supplied with the board. A socket is available for the second ROM allowing up to a full 2K of monitor programs.

Fits all S100 bus computers using 8080 or Z80 MPU's. Requires 2 MHz clock from bus. Cannot be use; with audio cassettes without an interface. Cassette or cartridge inputs are RS232 level. AVAILABILITY-Off the shelf.

OVERSEAS: Export Version 220 volt 50 hz. Write factory or: Megatron-Datameg, 8011 Putzbrunn, Munchen, Germany; Nippon Automation 5-16-7 Shiba, Minato-Ku, Tokyo. Japan; Hobbydata, FACK 20012, Malmo, Sweden; G. Ashbee. 172 Ifield Road, London SW 10-9ag: Trintronics, Ltd., 186 Queen Street W., Toronto, Ontario, Canada; EBASA. Enrique Barges 17, Barcelona 14, Spain; ARIES, 7, rue Saint Phillipe clu Roulc, 75008 Paris; Microlem 20131, Milano, Italy; Eagle Electric, Capetown, S. Africa.

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

Canadian Distributor:

Trintronics Limited

186 Queen Street West

Toronto, Canada M5V 1Z1

Tel: (416) 598-0262 NATIONAL MULTIPLEX CORPORATION

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

Circle 129 on inquiry card.

program provided in this manual can be run on the standard 2 K byte memory system. Detailed, drafted logic diagrams are provided and a section of the manual is devoted to troubleshooting techniques.

The most important feature of the manual is the number of ready to use program listings provided. I am one of those people who find it hard to understand anything unless I can see some examples. I suspect that a lot of people are in the same boat but don't like to admit it. For this reason, plenty of actual programs are provided. You can enter these programs using the hexadecimal keyboard and record your own cassette library. These programs were developed and debugged using the COSMAC VIP system itself to thoroughly test the operating system. Most of the programs were written in the interpretive language provided with the COSMAC VIP system.

Several test programs are provided to help you identify and analyze hardware problems should they occur. A short test program that can be loaded from the hexadecimal keyboard allows recording of a test cassette for analyzing tape problems. A special memory test program is provided that will detect most types of memory bit failures and will inform you which circuit to replace.

20 video game programs are provided. These games include target shooting, number guessing, picture or pattern generation, shooting stars, etc. Let's be honest, a primary application for home computers is games. There is nothing to be ashamed of if that's all you do with your computer. Chess, Go, bridge, tennis and baseball players do not constantly apologize for playing games. The sales of commercial games and the newer video games show that games fill a real need. Many people spend most of their spare time watching people getting paid to play games on TV. Games are fun, educational and satisfy basic human needs. The computer is a super toy. Why not relax and enjoy it? The COSMAC VIP game set permits the whole family to enjoy it with you. Starting with games may even develop latent programming interests that solving equations won't.

Designing Programs

This is where the frustration starts for many beginners. A number of high level languages have been developed to make computers easier to program. These are invariably English language oriented. This is nice in theory but uses up a lot of memory in practice. The more popular languages are also aimed at math and data processing applications rather than control, games

and video graphics. A unique numerically oriented interpretive language is provided with the COSMAC VIP.

This language looks a lot like machine language. It provides 31 elementary instructions. Each instruction is two bytes or four hexadecimal digits. Single instructions permit generating a random byte, reading in a hexadecimal keyboard digit, displaying a pattern on the TV screen, sounding a tone, incrementing a variable, setting or testing a real time clock, etc. Sixteen 1 byte variables are provided. Subroutine nesting and machine language inserts are permitted. The interpreter for this language only occupies 512 bytes of programmable memory. Programs written in this language are extremely compact. A programmed video kaleidoscope requires less than 64 instructions. A rocket launching space ship intercept video game only requires 104 instructions including on screen decimal scoring. It is possible to play tic-tac-toe against the computer using a 235 instruction program that includes random mistakes by the computer. There is space for programs containing up to 592 instructions in the standard 2 K byte system.

I've been using this type of hexadecimal interpretive language programming for a number of years. It has been learned and used by children, engineers and programmers with no difficulty. An occasional professional programmer may grumble about the lack of self-documentation and the need for patches, but the money that these features cost isn't coming out of his pocket. Newcomers to computers might even find this COSMAC VIP language somewhat easier to understand than conventional high level languages. This is particularly true if they come from a hardware background. It is certainly cheaper to implement this type of interpretive language. Ease of understanding is difficult to measure since everyone is different. What's easy for one person may be difficult for another. Newcomers may welcome a programming approach that simplifies programming without straining their memory budgets. The home computer field is still young enough to tolerate experimenting with a variety of languages.

Some home computer users will want to get involved with machine language programming. They may be interested in developing their own languages or learning microprocessors at the detail level to enhance their careers. The COSMAC VIP can be directly programmed in machine code from the hexadecimal keyboard, and machine language programs can be saved on cassettes. The operating system permits examination of the

96

processor's registers to facilitate debugging machine code programs. The external interface permits substituting a user's read only memory based operating system for the standard one, if ever required.

Summary

COSMAC VIP is a complete computer on one printed circuit card. It is oriented toward control and video graphics. In price and performance it fits in between low priced machine language trainers and more expensive high level language oriented systems. It is ideally suited to personal use at home and educational use in schools.

COSMAC VIP is being made available by RCA. It is the result of five years of development effort in my laboratory which was aimed at producing a cost effective hobby computer. A low level interpretive programming language, test programs and 20 video game programs are provided with COSMAC VIP as it is coming to market for the first time. Assembled and covered up versions are planned. Add ons such as color graphics are being developed. Family fun, low cost, and flexability were primary design goals, which I believe we've accomplished with this product."

Circle 130 on inquiry card.

MULLEN COMPUTER RQAPnQ

BOX 6214, HAYWARD, CA 94545 ' CAVi a^

i eBBIl ISOLATOR

CONTROL BOARD $117 2

8 fast reed relays respond to an 8 bit 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.

Especially suited for model railroad, burglar alarm, audio switching, ham radio, music synthesizer, and automated display applications, this board goes wherever you need a general purpose 1/0 switching gizmo.

>

to

EXTENDER 2

BOARD 2

W/LOGIC Z

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.

Circle 131 on inquiry card.

Sbj. Boards are kit form only. Cal res add

*4TIBLE • AVAILABLE BY

3 8

I

tax. 2"

No bells or whistles...just performance, a warranty and a low price.

■ ■ ■■■■■■: :-:■-.

<>l

•Lr^Mii

■ttfl WW fllMTjBhiWTIl MM

tsa HBI

1 * miss MHt^sp in i>wr tsa tsa

W*WMHPtBHW

U

M&9 ■£»$Wi^j3 M££lW&9

ESEE, EEEE, B1EE,

II I

For $107.00 take your choice; the 4K RAM board or the alpha video board. For $137.00 the video graphic board can't be matched. (8K RAM and much more on the way.)

These are not kits, but completely assembled, burned-in, tested boards with a 1 year warranty. No soldering, no messing, no chance of mis-connections . . . just plug 'em in and you're ready to go.

The 4K RAM has the same features and speed as what you're used to (500 nsec, no wait states) but with a couple of extras you might not expect. Like a mechanical write protect switch that gives you positive memory protection. And Visaddress", an easily accessible switch on top of the board for easy to read address selection.

The alpha video board offers Visaddress address selection and displays 128 ASCII characters: both upper and lower case. A standard 16 line by 32 character format with character selectable video reverse and socketed ROM are standard features. (Character generator ROM available with standard graphics characters. Optional Greek or ASCII control characters available.)

And our video graphic board gives you an exceptionally easy approach to computer animated dynamic displays.

Our matrix approach allows direct addressing of each dot in an 128 by 96 array, simplifying dynamic movement. And unlike DMA displays, our on-board RAM allows your CPU card to do other work during display time and with no dynamic RAM problems. And like our other boards, it has Visaddress address selection.

Quality, assembled boards at less than kit prices. But what else would you expect from a company whose prime product is electronic test instrumentation and microprocessing components?

Order direct, by check, BankAmericard or Master Charge (Add $1.50 shipping, credit customers give us all the card numbers, please and Ohio residents add 41/2% sales tax) or contact us for more information. Kent-Moore Instrument Company, P.O. Box 507, Industrial Ave., Pioneer, Ohio 43554. (419) 737-2352.

Kent-Moore

INSTRUMENT COMPANY

Personal Computing Expo will come to New York!

PCEPERSOINAL COMPUTING EXPO

NEW YORK COLISEUM, OCTOBER 28, 29, 10, 1977

r

It's a brand new show (in the world's biggest economic center) specifically for manufacturers, buyers and those providing services to the personal computing enthusiast. For the first time, this booming field wilt have a New York Coliseum showcase. It is planned as the largest public show of its type and will attract attendance from the huge population areas of Boston, Washington, Philadelphia and Baltimore. New York's 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.

More than 100,000 paid subscribers of BYTE magazine will be urged to view the exciting exhibits and to attend the BYTE-sponsored lectures. Circle the dates: October 28, 29, 30 — and make your plans now to be there when Personal Computing Expo comes to New York!

//

Personal Computing: An idea whose time has come!

it*

Tutorials by the IEEE Computer Society, Mid-Eastern Area

Personal Computing Expo is also joined by the Institute of Electrical and Electronics Engineers Computer Society, Mid-Eastern Area Committee, whose experienced staff is presenting six day-long tutorials at a modest charge. If inconvenient for you to attend a tutorial during the show, simply sign up for follow-up tutorials on weekends after the show.

Whereas the lectures will provide you with information, the tutorials will teach important skills enabling you to use your own computer at home or at work.

TUITION:

The tuition fee for the tutorial program includes a one-day admission to the Personal Computing Expo.

Students (with ID)

IEEE Members Non-Members

One Two Three

Tutorial Tutorials Tutorials

$30 $50 $75

$40 $70 $100

$50 $90 $125

REGISTRATION:

In order to provide an interactive, learning environment between the participants and the lecturers, the number of registrants is limited. Registration is accepted on a first-come, first served basis. Early registration is therefore suggested. Cancellations received before September 15, 1977 will receive a full refund.

To register, make your check payable to the IEEE COMPUTER SOCIETY, and mail to: Daniel R. McGlynn, Ph.D. Tutorial Program Chairman IEEE Computer Society 329 - 84th Street Brooklyn, N.Y.1T209

FOR FURTHER INFORMATION:

on the technical content of the tutorials, technical background suggested to derive maximum benefit from the program, or information on the IEEE Computer Society, call Cary Ringel Chapter Chairman IEEE Computer Society (212) 460-4600

TIME AND LOCATION:

The tutorials will be held from 9 AM to 4 PM each day in the New York Coliseum, at a location to be announced and posted. Participation in the tutorials also includes a one-day admission to the exhibition area and other lecture programs.

EXPO TICKETS:

Will be sent to tutorial registrants about three or four weeks prior to the show.

Tuition includes hand-out material, including text and/or hand-out materials. Participants will also receive a certificate of participation.

CITE

DAILY TUTORIALS AND SPONSORED LECTURES

Exciting lectures

sponsored by

Personal Computing Expo is endorsed by BYTE magazine, whose staff has contacted prominent speakers

for an exciting series of lectures.

Visitors will be able to attend these meetings free of charge. The lectures will not conflict with each

other eliminating the worrysome choice among several equally important topics. In addition, they will be

repeated on the next day to give you a second chance if you missed a topic.

Lectures are typically 30 minutes, often with demonstrations and an additional 15 minutes for questions.

Portia Isaacson Ph.D.... Saturday 11 AM and Sunday 12 Noon

Co-owner of the Micro Store, a personal computer store, in Richardson Texas actively engaged for 12

years in the computing field in industry and at universities.

Member of the ACM and IEEE, and chairman of the 1977 National Computer Conference.

Author of many articles in professional journals and magazines.

Received a Ph.D. in Computer Science from the Southern Methodist University.

Personal Computing: An Idea Whose Time Has Come

A review of what has happened so far in the personal computing field, and an outlook into future developments, including those in the computer assisted home. Slide demonstration. Sol Libes .. . Friday 6 PM and Saturday 10 AM

President of the Amateur Computer Group of New Jersey Teacher of electronics and computer programming at a community college

Author of 10 books (working on the 11th) and several hundred magazine articles in electronics and computing

Received an award for "The Outstanding Amateur Computer Hobbyist of 1976" in Atlantic City by Personal Computing 1976 show, and BYTE.

How to Get Started

A discussion of typical home computer systems and their essential hardware and software components.

John H. Dilks III... Saturday 1 PM and Sunday 2 PM

President of Personal Computing Inc. and tradefair director of the Personal Computing shows in Atlantic

City in 1976 and 1977.

Experience with various computer systems since 1962.

Employed by Western Electric Co. Inc., division of the Bell System.

Member of the Amateur Computer Group of New Jersey and of the Philadelphia Area Computer Society.

Teaches microcomputer courses in an adult evening program at a vocational school.

Innovative and Unusual Computer Applications for the Home.

Discussion of "far-out" applications of microcomputers and electronic technology for home use, such as a child locator and warning device, a home security system, etc. Slide demonstration.

Robert S. Jones ... Friday 7 PM and Saturday 2 PM

Publisher of Interface Age Magazine

Prior experience in sales and marketing for the semiconductor industry, including Intel, National

Semiconductor and Analog Devices Inc.

Personal Computing for the Business Man

Evaluating business applications for micro computers, including slides showing selected applications.

Louis E. Frenzel... Saturday 3 PM and Sunday 3 PM

Director of Computer Products at Heath Company, involved in the planning of new computer products. Prior to Heath, with McGraw Hill in product planning and design of educational electronic kits. Prior experience including computer engineering for eight years

Author of several books, home study courses and numerous magazine articles in electronics and computers. Received a BS in electronics from the University of Houston and a MEd from the University of Maryland

How to Build Personal Computer Kits

Tips for successful kit construction. Benefits of kit products for the personal computer user. Including slides showing selected computer kits.

Carl Helmers ... Saturday 4 PM and Sunday 4 PM

Editor-in-Chief and co-founder of BYTE magazine.

Obtained computing experience as a personal way to accomplish artistic and technological goals in

music.

Graduated in 1970 with a BS in Physics from the University of Rochester, NY.

Worked for several years at Intermetrics, Inc. in Cambridge, Massachusetts on the NASA Space Shuttle

Project.

Prior to working with BYTE, publication of a small computer newsletter on a part-time basis.

^

r

Computers and Music

How to create music with computers. Problems of performing electronic music, music under computer program control and computer music in conjunction with traditional instruments. Illustrations and examples from personal experience. Jack L. Davies ... Friday 8 PM and Saturday 5 PM

President of Pan Atlantic Computer Systems GmbH, a distributor of various micro computer systems in

Europe.

Extensive experience in using minicomputers and microcomputers in the US

Military Schools in Europe. Designed and developed numerous games and educational programs for

students in these schools.

Microcomputers in Education

Discussion of the many possibilities of using microcomputer systems in schools. Effect of personal computers on students.

David Fylstra ... Saturday 6 PM and Sunday 5 PM

Member of the research staff of the Telecommunications Sciences Center at Stanford Research Institute for more than two years. Specialized in microcomputer software and computer simulation of speech processing systems.

Graduated in 1974 with a BA in English and Psychology, Stanford University, Phi Beta Kappa. Active in the research on communication systems and devices for the deaf.

Speech Analysis and Synthesis for the Amateur

Using the personal computer as a device to analyze the acoustical foundations of speech and to formulate rules for the control of the speech synthesizer. Max Mathews Ph.D. ... Friday 9 PM and Saturday 7 PM

Director of Acoustical and Behavioral Research, Bell Labs

Author of The Technology of Computer Music, and numerous articles.

Scientific Advisor to the Institute for Research and Coordination of Acoustics and Music (IRCAM)

Dr. Mathews is often regarded as the "Father of Computer Music"

Pure Digital and Real Time Music Synthesis

The use of the digital computer as a musical instrument with which composers and performers create and play music. Slide and tape demonstration.

Carl L. Holder ... Saturday 8 AM and Sunday 6 PM

Director of Product Management, Planning and Communications at Information Terminals Corp. for five

years.

Prior experience, including Memorex Corp., in the area of magnetic media development and testing.

Present and Future Storage Devices

Survey and discussion of current devices and media, including latest technological developments like the charge coupled devices and magnetic bubble memories. Costs, advantages and disadvantages of these devices for the personal computer user. Accompanied by slides.

DAILY TUTORIALS

There will be two tutorials offered each day, one aimed at those participants who have

little or no experience with microprocessors, and the other for those already experienced

■with microprocessor systems.

BASIC COURSES

1. Development of Microcomputer Systems for Business Use

Sy Ratner, Citibank, N.A.

— system design concepts

— economic efficacy of microcomputers versus large centralized computer systems

— distributed processing definitions

— advantages and problem areas

— network design and architecture

— data communications aspects

— case study: design of a stand-alone workstation for data entry and retrieval

2. Development of Microcomputer Systems for Home Use

Cary Ringel, Con Edison

— survey of simple microcomputer control systems for home use

— selection of hardware: IC's, boards, kits, development systems

— programming and software aids

— interfacing: A/D and D/A conversion

— examples: design of a home control system; microcomputers for a music synthesizer; computer TV games.

— case study: use of the Motorola 6800 in design of a microcomputer system

3. Survey and Comparison of Microprocessors

Donald Lewi's, Standard Microsystems Inc. and other speakers

— definitions and distinctions between ALU-chips, controllers, microprocessors, microcomputers

— current applications

— microprocessor architectures (bit-slice, 4-bit, 8-bit, 16-bit. minicomputer-type)

— vendor survey

— performance evaluation and criteria for selection

INTERMEDIATE/ADVANCED COURSES

4. Microprocessor Interfacing

Donald Lewis, Standard Microsystems Inc.

— interface components (peripheral interface chips, UARTS, etc.)

— interface standards (IEEE 488, RE232C, S-100. etc.)

— interfacing to keyboards

— interfacing to casette and floppy disk drives

— interfacing to display devices

— case study: how to design a CRT terminal

5. Microprocessor Programming and Software

Donald Lewis, Standard Microsystems Inc.

— software design: flow-charting, setting breakpoints, documentation, etc.

— assembly language for the Intel 8080, 8085, Z-80. Motorola 6800

— instruction types and addressing techniques

— use of the stack

— interrupt handling and direct memory access (DMA)

— software development aids

— high level languages for microcomputers

6. Technology Analysis and Forecast of Future Microprocessor Structures

Daniel R. McGlynn, U.S. Philips Corp. and Will Mathys, MOS Technology Inc.

— emergence of specialized computational elements (SCE) ■

— architectural evolution (stack processors, reconfigurable architectures, multi-level logic)

— resource management techniques

— software evolution (nano-programming, extensible instruction sets, structured programming modules, very-high-level

languages)

— evolution of semiconductor technology of microprocessors

— microprocessor architecture at the chip level

— case studies: design of MOS Technology's new 8-bit and 16-bit processors

J

Personal Computing Expo to be

produced by

H.A. Bruno & Associates

H.A. Bruno & Associates, Inc., has been prominent 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.

Interesting, educational exhibits of Personal Micro Computers

The lectures and tutorials are not just theory! You will be able to see a multitude of micro computers. Try out various demonstrations: fascinating games, even in color; small business applications; computer produced speech; music; color graphics; and many more. Micro computers are not only small and portable, also you will need only a "micro budget" to be able to take them home.

Show Hours and Admission

Personal Computing Expo hours are as follows: Friday, Oct. 28 — Noon to 10 p.m. Sat. Oct. 29 — 10a.m. to 10p.m. Sunday, Oct. 30 — Noon to 7 p.m.

General Admission: $5.00 (includes free BYTE lectures) per day.

Two-day Tickets: $9.00 (advance sale only) Three-day tickets: $13.00 (advance sale only)

General Information

You may find it advantageous to purchase two or three-day admission tickets in advance. These are available by mail only, no later than October 10, 1977. Use coupon below.

Group rates (10 or more persons) qualify for $1.00 off regular prices. Arrangements must be made by mail prior to October 10, 1977.

Special arrangements have been made if you desire to stay overnight. Our headquarters hotel, the Barbizon-Plaza, is located on Central Park South, two blocks from Columbus Circle. Single rooms available at $34.00 per night; $40.00 double, plus tax. There's a weekend plan: $22.95 daily, plus tax per person, double occupancy . . includes breakfast (brunch on Sunday) and meal gratuities. Children under 14 in same room with parents, free.

For hotel reservations and information, call toll free (800) 223-5493. From New York State call (800) 223-5963.

For those traveling to New York by air, American Airlines offers a convenient service through arrangement with Personal Computing Expo. For information, call toll free (800) 433-1790. In Texas the number is (800) 792-1150. From the West Coast, round trip fare via American is only $227.00.

20,000 persons are expected to attend and view the more than 200 exhibits by personal computer manufacturers and retailers.

Personal Computing Expo will occupy the 4th floor of the New York Coliseum. It is located on 59th Street and Columbus Circle — the geographical center of New York City. Garage parking in the building is available.

For answers to any questions pertaining to your attendance at Personal Computing Expo, contact the Show Manager, Ralph lanuzzi, at Area Code 212/753-4920.

Advance sale of tickets available ... Three days $13

Two days $9 ... General Admission $5

MAIL THIS CONVENIENT ORDER FORM NOW!

Personal Computing Expo admission is $5.00 per day. Advance reservation eliminates waiting in line. Order advance tickets with this coupon. Admission ticket includes access to exhibits, lectures and tutorials.

Please send me advance registration tickets for three days, October 28-29-30. Total cost $13.00 per person.

Please send me . advance tickets for two days, October and

October . Cost is $9.00 per person.

Please send me advance tickets for one day, October Cost

is $5.00 per person.

Make all checks payable to PERSONAL COMPUTING EXPO, and mail to:

Personal Computing Expo, 78 East 56th Street, New York, N.Y. 10022.

Name Amount enclosed $

Address City

.State.

-Zip.

Beck Reviews

A Note About Prices in This and Other Book Reviews

Readers should be aware that publisher's prices are subject to change without notice. While we check the accuracy of prices at the time book review copy is prepared, occasionally prices may have changed by the time subscribers receive their B YTEs.

Expanding Your Computer Library

What do you do with your system? Where is all the applications software? These are questions frequently posed by people who are trying to find out about small computers. Aside from games, which are a challenge to write as well as play, applications software seems somewhat scarce. In this article, I recommend some books that can introduce you to the world of computer applications. Most of the books discussed below contain program listings in BASIC or FORTRAN. Others do not, but are useful for the wealth of ideas or methods presented.

At the head of my list is a remarkable book, Scientific and Engineering ProblemSolving with the Computer, by William Ralph Bennett Jr (Prentice-Hall, NJ, 1976, hardcover, $17.95). Based on a computer course which Dr Bennett taught at Yale, the book introduces you to BASIC programming, then rapidly branches out to explore many unusual, but highly fascinating problems in various areas. Chapter headings include "Plotting and Graphic Display," "Dynamics," "Random Processes," "Wave Motion and Fourier Series," "Electronics •and Communication," and "Language" (a singularly intriguing subject; ciphers, random text generation, and computer identification of authors are some chapter subheadings). Program examples introduce you to computer applications in these areas, and there are do-it-yourself problems to solve. References are given at the end of each chapter to facilitate further research. A reasonable knowledge of mathematics, such as college level calculus, is useful, but certainly not necessary to enjoy this text. Dr Bennett's writing style is refreshingly informal, and quite humorous in places. A word of warning: You will be extremely frustrated if you buy this text and do not have a machine on which to experiment.

Numerical methods are the mainstay of programming. Unlike analytical methods, which yield answers in terms of symbols or

equations (the way you did things in algebra, trigonometry, etc), numerical methods are computer oriented, and yield digital answers. Typical numerical algorithms (a prescribed step-by-step way of carrying out calculations) are used to approximate functions (trig, log, etc), solve equations, find areas and volumes (integration), or the inverse, rates of change (differentiation), solve differential equations, manipulate matrices, and numerous other procedures.

Though Bennett describes some numerical methods, there are more detailed books on the subject. Two of the best I have encountered are Numerical Methods for Scientists and Engineers, by Richard W Hamming (McGraw-Hill, New York, 1962, hardcover, $18.50) and Numerical Methods for Digital Computers, Volumes I and 2, by Anthony Ralston and Herbert S Wilf (Wiley, New York, Volume 1, 1960; Volume 2, 1967, $17.25 and $19.25 respectively). Both of these cover algorithms for numerical procedures mentioned above, and considerably more. Hamming's book is a text, with descriptive chapters on each major subject. There are no program listings, but the algorithms are not terribly difficult to translate into a computer acceptable form. The book can be used for self-instruction, and a knowledge of calculus is helpful. Ralston and Wilf's books are more referenceoriented. It is easy to find the algorithm for your particular need. The first (earlier) volume does not contain specific program listings, though flowcharts are abundant. The second volume does have listings, mostly in FORTRAN and ALGOL. This volume also includes an introduction to programming in both FORTRAN and ALGOL, though it is somewhat out of date. Ralston and Wilf's volumes are more useful once you have some experience with numerical programming.

A very fine text in numerical methods is Applied Numerical Methods, by Brice Carnahan, H A Luther and James O Wilkes

102

Talk to your computer for $299 with SpeechLaB.

Use SpeechLab to directly control any S-100 Bus Computer such as Sol, IMS AI, Altair and so on. SpeechLab can teach you almost as much as the Bell Laboratories know about voice recognition, voice control and computer input.

SpeechLab digitizes and extracts data from speech wave form and applies pattern matching techniques to recognize the vocal input. Response is real time. The system features 64 bytes of storage per spoken word and can handle up to a 64 word vocabulary. And recognition after very little practice is 95 percent or better.

$299" assembled and tested

When we talk price everybody's skeptical. And why not? We give you a complete hardware/software system, a 275 page laboratory manual, 95 page hardware manual and high fidelity microphone.

The lab manual includes 35 graded experiments with over 100 tables and graphs. In fact, it's the only introductory volume on speech recognition currently available.

Software includes SpeechBasic Basic programming language in source and

* Available in kit form for slightly less.

paper tape, assembly language speech recognition program in source and paper tape, hardware self-test program in source and paper tape. SpeechBasic plot, correlation, recognition and advanced recognition programs are offered in source.

Hard to believe, you bet. True? A Los Angeles customer says, "I love your kit!!! I have 40 boards and 2 IMSAI's and your kit was the best documented of them all. I love the way you integrated the software and hardware together. I love your lab manual!'

We loved those comments. They tell the story better than we ever could. The LA customer did ask who the founders of the firm were so he could relate better. They're a couple of

gifted young engineers who got tired of the big firm, big technology trip and decided to take a chance with a better idea.

You can't get better quality You can't get more performance

Sure, more complex, higher price equipment is available for about 50 times more money. It won't do much more than you can do with SpeechLab. And the quality and state-of-the-art engineering can't be any better. We use CMOS design for low power and ultimate reliability.

See SpeechLab at your nearby computer store

Selected computer stores have SpeechLab on display. Visit your nearest. If he doesn't have it, ask him to contact us or simply write us directly.

Heuristics, Inc., Box B, 900 N. San Antonio Road Los Altos, CA 94022, Phone (415) 948-2542

□ Send me SpeechLab. I enclose $299. California residents add sales tax.

D Send me more information.

Name_ Street. City

~l

State_

Zip_

Heuristics

INC.

Circle 132 on inquiry card.

(Wiley, New York, 1969, hardcover, $21.95). This book uses solved and unsolved problems to illustrate the major concepts of numerical problem solving. Numerous useful program listings are given in FORTRAN, along with sample computer runs. Like Hamming's book, this is a text, but is less general in scope. The programs, however, make it most attractive, as it is sometimes easier to understand an algorithm when presented in coded form. The problems chosen as illustrations are engineering oriented. For example, the book uses radiant interchange between plates, displacement of a camfollower, flow in a pipe network, member forces in a plane truss, and transient behavior in a resonant circuit. The programs are organized as subroutines which you can easily use for other purposes.

Graphical presentation of data is discussed in Bennett and Carnahan et al, with some program examples. For those of you with some sort of computer graphics facility, or an interest in graphics, Mathematical Elements for Computer Graphics, by David F Rogers and J Alan Adams (McGraw-Hill, New York, 1976, paperback, $9.95) provides an excellent software "how-to" (unless you have a system with hardware graphics functions). The book has chapters for each major graphic function: rotate, translate, reflect, project, perspective and stereo view. A major bonus is a complete set of program listings for use in any BASIC that has true subroutine call capability (like FORTRAN). They can easily be rewritten to accommodate other dialects of BASIC. The book is an excellent reference and text. Some knowledge of analytic geometry and trigonometry is helpful.

While Carnahan et al briefly examine chemical engineering, a more thorough book on programming in chemistry is FORTRAN IV in Chemistry, by G Beech (Wiley, New York, 1975, hardcover, $23.50). In addition to programs for simulation of lab problems on the college levei, there is much material on theoretical chemistry (quantum and classical mechanics), as well as practical lab problems. These problems are complemented by FORTRAN listings and sample runs. This is a specific text, and if your interest is in chemistry, you might easily find a computer application based on the material in this book. Topics include: numerical methods, kinetic and thermal problems, spectrometry, atomic and molecular orbital theory, and data acquisition in chemistry. Familiarity with the noncomputer approaches to chemistry problems and a knowledge of FORTRAN are useful in reading this book.

Bennett, Carnahan et al, and Beech have chapters devoted to statistics, an area in which the computer has proved of inestimable value. Market analysis, reliability testing, election results projections, and even scholastic testing would be nearly impossible without the computer. The basic programs are relatively easy to write, but the more advanced techniques, including analysis of variance and factor analysis, are considerably more complex.

Two books serve as excellent guides to statistics by computer. Biometry, the Principles & Practice of Statistics in Biological Research, by Robert R Sokal and F James Rohlf (W H Freeman, 1969, hardcover, $18.50) is a textbook of statistical methodology. It is well written and clear, and as an added feature includes a complete library of statistics programs in FORTRAN. These are all subroutines which you can assemble to perform the task at hand. The book is oriented to biological research, but the methods are easily adapted to other situations.

FORTRAN Programming for the Behavioral Sciences, by Donald J Veldman (Holt, Rinehart and Winston, New York, 1967, paperback, $5.98) is not as thorough as Sokal and Rohlf, but is more concise. It has a chapter devoted to learning FORTRAN, and a set of statistics programs in FORTRAN. These two books assume a knowledge of mathematics through elementary calculus, but the mathematical difficulty varies with the particular topic. These texts have served me well, and I have even been able to earn some extra income by doing statistical analysis on research data. Believe it or not, there is a large number of people who still do statistical calculations on nonprogrammable calculators.

A book related to my field of endeavor is Computer Techniques in Biomedicine and Medicine, edited by Enoch Haga (Auerbach, Philadelphia, 1973, hardcover, $24.95). This collection of articles is divided into two major parts: simulation and modeling, and data acquisition and management. The articles vary in complexity and specificity. Topics include simulation with applications in cardiovascular and pharmacologic research, database accumulation, image processing, and the role and potential of minicomputers in medicine. Some topics contain sample program listings and flow diagrams. Other topics, especially those on data base management, are quite general, but applications would be highly dependent on the particular data base. The book serves as a good starting point for exploring the rapidly growing field of biomedical computing.

104

Circle 133 on inquiry card

This has been a brief introduction to selected books on applications programming. Because my involvement in computing is oriented to scientific applications, the books I've covered here are mostly science and engineering tomes. The amount of FORTRAN usage in these books is also large, but it has been my personal experience that FORTRAN and BASIC can be directly translated, if attention is paid to proper language rules. An elementary text on FORTRAN is always handy to have as a reference for syntax. If you know BASIC, FORTRAN is not at all difficult to learn.

The books mentioned are not inexpensive, but they serve as good investments if they help you solve a problem, or pose a problem you become interested in solving. I would encourage you to examine these books, if you can, before you buy them. A well stocked college science or engineering library should have many of them available. This review might also serve to encourage you to write about your favorite computer books."

Steven C Horii MD

40 Waterside Plaza, 15F

New York NY 10010

PCC'S

Reference Book

of Personal

and Home Computing

Ever try to find the addresses of some manufacturers of, say, tape cassette or floppy disk interfaces for micros? Frustrating, isn't it? Well PCC has done something about it. This book lists hundreds of companies and stores selling hardware, software, and services. Survey articles on software, hardware, kits, applications and the future for the experienced and the not-so-experienced user of micros. Also included in this edition are bibliographies for further reference, book reviews, and an index of the articles from the major hobbyist magazines. All for the low price of $4.95, plus 50 cents postage.

Available through:

BITS, Inc.

70 Main Street

Peterborough l\IH 03458

Master Charge and BankAmericard Welcome.

In unusual cases, processing may exceed 30 days.

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, 1702A PROMs.

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.

MMEDIATE DELIVERY FROM FACTORY OR YOUR LOCAL COMPUTER STORE

T.M.

£03 G3APHC inc.

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

105

Circle 134 on inquiry card.

Continued from page 17

ation returns the result 15. This dual use of a symbol, like the concept of valence applied to functions, may seem strange and even confusing upon first encounter. Familiarity soon reveals that adoption of this procedure is a source of considerable economy in the language. There are only a few operators in APL so far, but they impart great power to the language. Implementation of new operators will likely highlight subsequent development of this exciting language.

Some insight into the evolution of APL has been provided by the innovator of that language, Kenneth Iverson, and his collaborators. When the history of its development is widely appreciated, APL will be seen as one of the great intellectual achievements of this century. Iverson is a mathematician who is keenly aware of inconsistencies that have long plagued his discipline and is eager to avoid those blemishes in APL. Nevertheless, the distinction drawn here between function and operator was not made in the earliest versions of the language. Only after operators were recognized as "composite functions" did the matter receive the attention that brought it into line with the generality that is a basic theme of the language.

Arnold certainly is not alone in using the older terminology. He cites a widely used textbook that deals rather lamely with this point. A more recent textbook on the language (one author a mathematician and prominent user of APL) uses the terms function and operator interchangeably and appears determined to promote the confusion that originators of the language have been at pains to dispel.

BIBLIOGRAPHY

1. Falkoff, A D and K E Iverson, "The Design of APL," IBM J Res Develop 17:324-334, 1973.

2. Forsythe, G, "What to Do Until the Computer Scientist Comes," Amer Math Monthly 75:454^62, 1968.

3. Iverson, K E, "APL in Exposition," Tech Rept 320-3010 IBM Philadelphia Scientific Center, 1972. A section of this excellent little volume entitled "The Computer: A Device for the Automatic Execution of Algorithms" is particularly appropriate to your journal and should be reprinted if at all possible.

An anonymous contributor to Scientific Research (1969) posed two interesting questions: "To what extent are scientists beginning to use programming languages to describe or model their problems in preference to normal mathematics?" "Is it possible that researchers will some day automatically think in FORTRAN or BASIC instead of algebra or calculus?" Positive answers to those questions could scarcely have been framed then, even by enthusiastic users of those languages. If those enquiries now be made of APL, there can be little doubt of affirmative answers.

As Forsythe (1968) pointed out, "The most valuable acquisitions in a scientific or technical education are the general-purpose mental tools that remain serviceable for a lifetime." APL certainly fits more comfortably into that category than does any other language by which we now try to instruct computers. APL is sometimes referred to as Iverson's notation; hence it is appropriate to recall a remark attributed to Bertrand Russell: "A good notation has subtlety and suggestiveness which at times make it seem almost like a live teacher." That notion seems to have been crystallized in APL. Iverson will eventually be recognized as the teacher of the century.

The story of APL includes a lesson that our overstressed society might do well to ponder, namely the importance of providing some shelter from expediency for the development of any significantly new idea. The small team initially involved in design and implementation of APL were not subject to strong duress to get their kite in the air. They did not have to settle for the compromises by which committees have produced such regrettable languages as say PL/I. Instead, they were able to indulge the luxury of Quaker consensus in reaching important decisions. Our greatest debt to earlier computer languages may well prove to be the lebensraum they provided for the development of APL. This remarkable language will undoubtedly undergo considerable further evolution, some of which will surely be influenced by its use with microcomputers. It must be implemented throughout the computer world. Those involved with its development and implementation should consider its history very carefully.

Our thanks to Mr Anthony for his comments about Mark Arnold's article and about the present and future status of APL. ■

106

FREE YOURSELF FROM THE ONE BYTE WORLD. MOVE UP TO THE TWO BYTE TEXAS INSTRUMENTS TMS-9900 16-BIT MICROPROCESSOR — WITH OUR — "SUPER STARTER SYSTEM" — TEC-9900-SS. SHOWN ABOVE, FEATURES HARDWARE MULTIPLY AND DIVIDE. 69 MINI-COMPUTER INSTRUCTIONS, 7 ADDRESSING MODES, EXPANDABLE TO A FULL 65K BYTES; MONITOR, TMS 9900 CPU, RAM, P-ROM, E-PROM, PROGRAMMER ALL ON ONE P-C BOARD BASIC OPERATING SYSTEM AS LOW AS $299 UNASSEMBLED $399 ASSEMBLED AND TESTED EXPLICIT MANUAL INCLUDED OR AVAILABLE SEPARATELY AT $35, TO LEARN MORE . . JUST TEAR OFF A PIECE OF THIS AD. PIN TO YOUR LETTERHEAD & RETURN TO TECHNICO OR CALL OUR HOTLINE 1-800/638-2893 TO RECEIVE FREE INFO-PACKAGE. —DESIGN & TECH SUPPORT BY ROSSE CORP.

Circle 11 3 on inquiry card.

TECHNICO

INCORPORATED

9130 Red Branch Rd.

Columbia, Md. 21045

301-596-4100

THE TECHNOLOGY LEADER IN ELECTRONICS DISTRIBUTION

Why People Get Hooked on APL

Allen Atwood III Rm 2-501 472 Memorial Dr Cambridge MA 02139

The first question one must ask when thinking about the implementation of a new language is whether or not the language is capable of solving the problems commonly solved on that machine.

APL, A Programming Language, is one of the most powerful interactive languages in use today. Its rich set of operators is oriented toward operating on groups of data with the same freedom that other languages operate on single data items. These operators give the language the breadth to handle an amazingly wide range of computing problems. This article explores APL's applicability to personal computing, and looks at some of the ways that APL can be practically implemented on the small system. Particular attention is given to the problem of storage management. References in the article to the internal workings of an APL interpreter for a microcomputer pertain to the APL interpreter currently under development by the Microsoft Company for use with the Intel 8080 chip. This interpreter (being implemented as this is written) will include a significant subset of APL, designed to contain most of the features available on large APL systems, except for those parts of the language which pertain to a multiuser environment.

The first question one must ask when thinking about the implementation of a new language on a machine is whether or not the language is capable of solving the problems commonly solved on that machine. With APL, the answer is a qualified yes. Since the language is interpretive, it will never be as fast or as efficient as assembly language or a true compiler; one would not want to refresh a display from memory using APL. On the other hand, APL is a far less cumbersome programming language than assembly language. Clearly then, APL can be used to solve the problems (and play the games) that are presently implemented with BASIC, an area where APL excels. As an interactive system, like BASIC, APL is easy to program with and debug, and it is also considerably faster than BASIC.

The heart of APL's speed lies in the ability to express highly complicated algo

rithms with a few keystrokes. This gives the language a double advantage over BASIC. Part of the speed improvement will come about simply because APL programs are shorter than their BASIC counterparts. The interpreter wastes less time analyzing the program and spends more time manipulating the data. The other, more subtle, speed advantage lies in the speed of the functional subroutines that are built directly into APL. As an example, consider this BASIC routine which calculates the average of the data items in the N element array A:

1000

s«o

1010

FOR 1=1 TO N

1020

S»S+A(I>

1030

NEXT I

1040

S»S/N

The routine exits with S being equal to the average of the N items in the array. Now compare that with an APL routine that performs the same function:

SH+/A)*pA

Notice that the entire loop, lines 1010 thru 1030, is reduced to the expression +/. Thus BASIC, while summing up the array elements, must go through great convolutions to achieve the desired result, including performing the subscript calculation A(l) N times and storing the temporaries S and I in memory each pass through the loop. This involves considerable overhead, including looking up S in the symbol table every time through the loop, skipping over any remark statements left inside the loop, calling the formula evaluator to analyze the LET statement in line 1020 each time through the loop, etc. The BASIC routine is also fairly cumbersome to use as a subroutine, because one must be sure that the loop variable I is not confused with some important piece of data (with the same name) in the calling program.

108

APL, on the other hand, does the entire calculation in a very fast loop internal to the interpreter, keeping the sum in a special memory location (or possibly an 8080 register, depending on the magnitude of the temporary). Not counting the time spent lexically analyzing the line, one would be hard pressed to write an assembly language program that performs the summation faster than APL does. The time overhead of analyzing the line, while measurable, is a fairly insignificant percentage of the total time spent, both because it is only done once, and because the line is only nine characters long. APL also relieves the programmer of the possible variable conflict between the loop variable I, and another use of I in some other part of the program, since it does not use a named variable as a temporary.

APL's operators can be used in combination to perform considerably less trivial tasks than averaging an array. Consider the following APL function called SORT. This function sorts an array of alphanumeric strings into an order specified by another string called an "alphabet" string. SORT takes two arguments: the string array to be sorted, and the alphabet to be used during the sort. As an example, wc first assign the siring ABCDEFGHIJKLMNOPQRSTUVW XYZ to the variable ALPHABET.

The request:

ALPHABET SORT FOO

would then cause APL to type the string array FOO sorted into normal alphabetical order. Other common permutations are easy to achieve; one could use the reverse operator (0) to gel reverse alphabetical order. In this case, the proper APL incantation would be:

(0 ALPHABET) SORT FOO

Well, what does it take to write this magical SORT in APL? The function sort is defined as follows:

VR+-ALPHA SORT LIST;TEMP

[ 1 ] TEMPH pLLSTH ALPHA*-' '

,ALPHA)\L1ST) [2] [ 2 ] LIST<-LIST [ k LIST [; TEMPI;] [ 3 ] +2 x 10 *TEMP<-TEMP-1 [>] H+-ALPHA LLIST1V

In the first line (often called the function header) the function is declared as having two arguments which are assigned the values ALPHA and LIST during the execution of the function. TEMP is declared as a temporary variable, used only inside the function, and R is declared as the value variable of the function. Thus when the function is exited

the value returned will be the value of R. All four of these variables are local to the function; that is, they will be cleared. Thus any space they use will be reclaimed upon exiting the function. Also, if there were any variables with these names already in existence, the old values are pushed onto the 8080 stack to be restored on exit from the function. (Actually, a pointer to the old value is pushed onto the stack, not the value itself.) This guarantees that there will be no conflicts between the function and the environment from which it is called.

Consider the deepest level of nested parentheses in line 1: The variable ALPHA has a string composed of one space catenated in front of it. This new string is first reassigned to ALPHA, and then used as the left argument of dyadic iota, with the right argument being the array (LIST) that we want to sort. This function returns a numeric array having the same number of rows and columns as LIST, and whose every character is replaced by the index of the matching character in ALPHA. A space would thus become a 1, because the first character of ALPHA is a space. This new numeric array is assigned to LIST, and then the shape function p (the greek letter rho), is applied to it. This returns a two clement vector whose first clement is the number of rows in LIST, and whose second element is the number of columns. The second element of the vector is selected by the indexing brackets, and is assigned to TEMP. TEMP thus points to the last column of LIST.

Lines 2 and 3 perform the actual sort. In line 2, the entire column pointed to by TEMP is extracted by the expression LIST |; TEMP], and sorted to produce a vector of indices used to index LIST again. This has the net effect of sorting LIST based upon the column pointed to by TEMP. In line 3, TEMP is decremented and its value tested. If TEMP is nonzero (indicating that the array has not been sorted on every column), control is transferred back to line 3 for another pass. If TEMP is equal to zero, then the interpreter proceeds to line 4 where LIST is used to index ALPHA and produce a character array sorted in the proper order. When the end of the function is reached, the old values of ALPHA, LIST, TEMP and R arc restored, and the last value assigned to the sorted alphanumeric array R is returned.

Because the bulk of the sort is done by the grade up and index bracket operators, the algorithm is fairly fast. It is also quite short, being less than 120 characters. When compared with a BASIC routine that performs a similar function (see listing 1), the APL routine seems quite short indeed. The

APL tends to use large

quantities of memory,

reflecting its IBM/360

origins. The cause of this

weakness is unfortunately

also the cause of its

strength: its ability to

operate on groups of data.

109

100 FOB Xl-1 TO M-l FOR XS-xl-M TO N X-l EOO IF INSTR<AS.MID«(X$eXl>.X.l>>-INSTR<AS.tlID*<X»<XS)#X.l >> THEM IF X-LEN(XS(X1>> THEN NEXT X2.X1 ELSE X-X»l GOTO 200 ELSE IF INSTRCAS»MID$<X»<X1>.X.I>»INSTR<AS.MIDS<XS<X8>.X.1>>

THEN SVAP xi<xi>.xscxe>

NEXT X2.XI ELSE NEXT X2.X1

Listing I: A BASIC string sort. This routine is designed to take a string of characters and arrange them in alphabetical order. Compared with the corresponding A PL string sort (see article) this routine will typically take longer to execute and is more cumbersome to write. One of the drawbacks of A PL, however, is that it invariably takes more memory space than other high level language interpreters.

BASIC sort, incidentally, is written in Altair extended BASIC; in standard BASIC it would be longer yet.

This routine also demonstrates one of APL's losing features: its memory inefficiency. APL tends to use memory in large quantities, reflecting its origins on the IBM/360. The cause of this weakness is unfortunately also the source of APL's strength: its ability to operate on groups of data. Instead of having single numeric temporaries inside a formula, as BASIC might, APL often designates entire arrays as temporaries. (Although BASIC can generate large character temporaries during string operations, they are limited to 255 bytes in implementations such as Microsoft's Altair BASIC.) These temporaries can consume significant amounts of memory, especially if they are numeric. APL requires at least 16 decimal digits of precision in its numbers, which in turn require eight bytes of storage per number.

The problem is aggravated by the size of the interpreter itself, which we expect will occupy around 24 K bytes if all the features of the language are implemented. Clearly, if APL is to become popular as a language among personal computer users, some way must be found to implement a practical APL interpreter on a small system.

The simplest way to solve the problem is to streamline the language, eliminating features until the interpreter will take up no more than 8 K bytes or so. One could limit the size of floating point data to four bytes rather than eight. Limiting arrays to one dimension, and thus eliminating most of the operators designed to operate on multidimentional arrays, would be a big saving. Eliminating the composite operators (except for the most important one, reduction) would save a lot of storage in the interpreter.

Once this point is reached, it would probably be better to forget about APL entirely and go back to BASIC, because all that remains is a simple desk calculator style lan

The heart of APL's speed lies in its ability to express highly complicated algorithms with a few keystrokes.

guage with a strange character set and a peculiar order of evaluation. The heart of the language is its ability to manipulate arrays, and when this feature disappears the language loses much of its usefulness.

It might seem more reasonable to eliminate only those operators, like matrix inner and outer products, which appear to be useful only to mathematicians; but as one becomes more familiar with APL, these functions become increasingly more useful in everyday applications. Matrix inner product, for example, is one of the most powerful tools in the language for extracting information from a stored array. Using matrix inner product, the entire APL sorting function can be reduced to only one line of code:

VR+ALPHA S0RT1 LIST [ 1 ] R+LIST [ 4( ( ' ■, ALPHA )

\LIST)+.x0((pALPHA)+l)* 1 +\(pLIST) [2] ; ]

This algorithm (from Gillman and Rose, APL 360: An Interactive Approach, John Wiley and Sons, New York, 1970) performs only one numeric sort, as opposed to SORT, which performs a numeric sort for each column of the array. Although this code is fairly obscure (especially to a person used to BASIC or FORTRAN), one becomes more comfortable with this sort of coding through time.

I feel that the efforts of an implementor of an 8080 APL interpreter should be directed toward writing a full set of APL that is reasonably memory efficient. This is not as hard as it seems: There are a few features that can be built into the interpreter which can reduce the memory requirements of an APL function down to a reasonable level.

The first problem to solve is the number of bits of resolution needed for accurate data representation. If a person is doing floating point calculations, he or she should have a full 16 digits of precision available (ie: eight bytes of information per numeric value). On the other hand, it is quite extravagant to use 64 bits for storing Boolean or character data. Also, operations on integer data (such as loop variables, counters, etc) should be carried out using a small, reasonably fast integer format, rather than a slow floating point format.

For example, in Microsoft's upcoming APL interpreter, we have chosen to store data in four different formats: 1 byte unsigned integer, 2 and 4 byte signed integer, and 8 byte floating point. These types arc transparent to the user, and any necessary

110

AUERBACH Publishers, exclusive distributor for INFOTECH INTERNATIONAL

introduces the

COMPUTER STATE OF THE ART REPORTS

1977 Series a unique blend of theory and practice in computing

Computer professional . . .

Keeping up-to-date and in touch with your ever-changing technology is as close as the COMPUTER STATE OF THE ART REPORTS from INFOTECH INTERNATIONAL. These unique publications are:

• Complete in-depth surveys of all current, critical and dynamic areas of computing

• Capable of influencing the nature and direction of computing throughout the next decade

• Seminal works in their own fields

Drawing on the finest and most erudite sources in the world, each INFOTECH Report is a comprehensive, analytical study of the most current and critical technical information in the data processing field today. The new 1977 Series covers . . .

33. Minicomputer Systems

34. Software Engineering Techniques

35. Microprocessors

36. On-Line Data Bases

37. Software Reliability

38. Future Systems

39. Distributed Processing

40. Performance Modeling and Prediction

Emanating from international conferences on advanced computer technology, each Report includes . . .

A unique method of Analysis — a distillation and synthesis drawn from formal presentations and question and answer sessions of in-depth seminars.

Invited Papers — especially commissioned from worldwide leading experts in their fields — which have been selected to give comprehensive coverage to each Report's area of expertise.

Bibliography and Indexes.

Published in one calendar year, these eight information-filled Reports are just $1295 . . . individual Reports are $215 each. Also available at these prices are the 1974/5 Series and the 1976 Series.

AUERBACH Publishers Inc., a leading source of data processing and data communications material and information, is proud to make these Reports available to you, and urge you to join most major computing organizations worldwide who are taking advantage of the valuable information service.

Save money and time

and stay right up-to-date with

INFOTECH INTERNATIONAL'S

COMPUTER STATE OF

THE ART REPORTS.

To order your Reports or receive

your free 28 page catalogue . . .

fill out this coupon and

mail to . . .

AUERBACH ®

AUERBACH Publishers Inc.

6560 North Park Drive Pennsauken. N.J. 08109

INFOTECH COMPUTER STATE OF THE ART REPORTS ORDER FORM

Name/Title

Company

Address

City

State

Zip

Phone (Area Code)

Aulhonzmg Signature

□ Send me the 1977 Series at $1295.

□ Send me the following Individual Reports at $215:

□ Please send my tree 28 page catalogue about INFOTECH State of the Art Reports.

Check Enclosed:

P.O. Number: .

Make Checks Payable to: AUERBACH Publishers Inc.

Do you currently subscribe to any AUERBACH services?

□ □ W*SL Yes No

^■wJs\ AUERBACH Publishers Inc., 6560 North Park Drive, AUERBACH Pennsauken. NJ, 08109.

B/777

Circle 136 on inquiry card

you can get

llTIs

conversions between types are performed automatically. If one adds two arrays, for example, there is no need to worry about the best format for the arrays or for the result. This multiformat scheme will also tend to increase the speed of the interpreter, since operations between integers are much faster than operations between floating numbers.

For this multiformat scheme to be effective, the interpreter must be as stingy as possible in converting to a larger format when deciding on the size of the result of a calculation. If two arrays are being multiplied, for example, the interpreter will assume that the size of the resulting array will be the same as that of the larger operand. Only when this assumption fails (ie: when the product of two elements of the arrays overflows the result type) does the interpreter increase the size of the result.

As careful as the interpreter is, occasionally a variable is stored in an overly large format. This can happen if the square root is taken of an array whose elements are all perfect squares, for example. To solve this problem the interpreter scans all data during terminal input waits and converts each one to the smallest format that can hold it.

Another storage saver that can be built into an interpreter is a careful examination of each statement to eliminate unneeded temporaries. For example, consider this APL statement:

The simplest way to operate on this statement would be to make copies of both X and Y, multiply them, and then store the result in a new location pointed to by Z. While this is an acceptable way of handling scalars, it is wasteful to the extreme if X and Y are large arrays. This statement should use only enough memory to hold the result and the two operands. No temporaries are necessary. Accomplishing this is not difficult when the interpreter knows how large the result will be; it is a more difficult problem when the type of the result is uncertain. If both X and Y are stored in a 1 byte format, for example, Z might require either one or two bytes per value depending on the contents of X and Y. Since the final size of the result cannot be determined until the last elements of the arrays are multiplied together, it might seem necessary to go back and start again using a 2 byte multiply routine!. A more sane solution, though, is to go back and convert all previous results from 1 byte to 2 byte format, and then continue from

112

Circle 138 on inquiry card.

the point of overflow using 2 byte multiply. Since upward type conversion is very fast, the overhead oh overflow will be small.

Two other ways of saving storage are worth mentioning: data sharing between variables, and the overwriting of temporary results. Data sharing, the more difficult of two to implement, is a method of saving storage by keeping as few copies as possible of any one set of data. For example, if A is an array, then the statement B *- A should not copy any data: B and A should point to the same array in memory. The sharing will continue until either A or B is modified, at which point the interpreter is forced to make an extra copy of the data. Although this example is rather contrived, the technique can be of great value when calling functions. Only rarely does a function modify its arguments (SORT being a notable exception), so there is little point in making unnecessary extra copies of them. Data sharing has the additional advantage of requiring very little overhead, just one byte per data structure counting the number of variables pointing toward it.

The technique of overwriting previous results can also be a big scratch memory saver. Consider this APL statement:

B ■*■ r 1 + A

Let us assume that A is an array stored in floating point format. Working from right to left, the interpreter adds 1 to A, then takes the reciprocal of that result and assigns it to B. At first glance it might seem that this statement requires two temporaries: a place to store 1 + A, and a place to store the reciprocal of 1 + A. The interpreter can avoid creating the second of these temporaries by writing the result of the reciprocal operator over the 1 + A temporary. The only remaining problem is finding a quick way to distinguish between a "true" array, pointed to by a named variable, and a temporary array. The solution is to look at the reference count of the array: If it is zero, then no variable is pointing toward it and it can be safely destroyed.

No matter how careful a programmer is, or how many tricks he or she builds into an interpreter, there is no way of avoiding the fact that implementing a powerful language like APL on a small computer will take a lot of memory, certainly more than a BASIC interpreter. As I consider all of APL's useful features (and the plummeting of memory prices), I feel sure that APL will become one of the most popular languages among small system enthusiasts. APL programs are short and easy to understand once you are familiar with the Greek character set."

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

6DITYPER SYSTEMS CORPORATION

A SUBSIDIARY OF TYCOM CORPORATION 26 Just Road, Fairfield. New Jersey 07006 [201)227-4141

The @

fabulous Phi-Deck family of 5 cassette transports

Una&lylUU 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. Micro processing

2. Data recording/logging/storage

3. Programming

4. Instrumentation

5. Industrial Control

6. RS-232 Data storage

7. Security/automatic warning systems

8. Test applications

9. Audio visual/education

10. Telephone interconnect

11. Hi-Fi

12. Point of sale

a

Clnplel Incorporated b

4605 N. Stiles P.O. Box 18209 ■ Oklahoma City, Oklahoma 73118 (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.

113

Circle 139 on inquiry card.

An 8 Digit Hexadecimal Readout

R R Burns

17502 Teachers Av

Irvine CA 92714

Table 7.' The truth table of the read only memory that is used for the display. With this table it is possible to have a separate, dis tinguish able ch arac ter for each of the hexadecimal digits.

While working or playing with a microprocessor the logic state of many lines must be studied simultaneously in order to understand and debug the system. Typically, 16 address lines, eight data lines and possibly some IO lines are of interest. Each line can be individually checked with a meter or oscilloscope, but it is much more convenient

Hexadecimal

Decoder

b a f g e d c

segment

Address

7654321 0

bit

00

0 1110 111

l_

01

0 10 0 0 0 0 1

I

' I

02

0 110 1110

C

03

0 110 10 11

1 —l _l

04

0 10 110 0 1

l_l 1

05

0 0 1110 11

r

Zl

06

0 0 111111

r

07

0 110 0 0 0 1

i

08

0 1111111

i—i

09

0 11110 0 1

C|

0A

0 111110 1

'n

i i

0B

0 0 0 11111

i_i

OC

0 0 110 110

r

0D

0 10 0 1111

■d

0E

0 0 111110

a

OF

0 0 11110 0

F

10

All zeros

blank

to 1F

to measure the states of the lines in parallel. Most microprocessor front panels have many LED indicators to simultaneously read out the address and data lines.

Since microprocessors are byte oriented machines, hexadecimal digits are often used when writing code. After countless mistakes decoding data and address lines, I knew I needed an automatic method to translate the many ones and zeros to hexadecimal. The 16 hexadecimal digits 0 to 9 and A to F can be displayed in a directly readable format using a 7 segment readout. A check of the data sheets for the common TTL binary coded decimal to 7 segment decoders, such as the 7447, showed none display the letters for inputs greater than nine. Although the display may be unique for each input, a directly readable digit is required or the system is not much of an improvement over individual lamps.

A simple solution is to build a custom decoder by burning part of an 8 bit by 32 word bipolar programmable read only memory. The hexadecimal digit to be displayed provides four of the five address bits that determine the decoder's output. Seven of the eight output bits are used to turn on or off the appropriate segments of an LED readout. Table 1 shows the truth table for the decoder. It can be programmed using methods such as those described on page 66 of the November 1975 BYTE or by the distributor at the time of purchase. The fifth input, highest order bit, is grounded since only half of the read only memory is needed to hold the hexadecimal 7 segment code. The eighth output bit is also unused. It could be used to light the decimal point during display of input values greater than nine to emphasize the hexadecimal nature of

114

fs

L<

DO

Dl Y

D2 ICI

74LSI5I D3

04 A

D5 8

06 C

D7

^r

n

/77

B

ROI C

R02 D

IC 6 7493A

DO

Dl Y

D2 IC 2

D3

D4

74LSI5I

D5 D6

D7

M

r<

DO

Dl Y

D2 IC 3 __ 74LSI5I D3

D4 A

D5 B

D6 C

D7

M

22

m

Gl G2

IC 7 74154

(ALTERNATE CIRCUIT: 7442)

the readout. Since only minimal confusion is present (b could be read as 6), this was not felt to be necessary.

The circuit diagram is shown in figure 1. Since programmable read only memories are relatively expensive, the display is multiplexed to reduce cost. This also results in a power savings. A 555 timer oscillates at about 1000 Hz and drives a 7493 which is used as a 3 bit counter. Its output address determines which input digit is to be displayed by selecting the correct output from each of the 74LS151 multiplexers and also sets a 74154 decoder to drive the corresponding readout digit. Each 74LS151 multiplexes one bit of the eight different input digits. Low power or low power Schottky should be used to minimize line

■oi

02

-er

DO

Dl

D2 £4

74LSI5I D3

D4

05 D6 D7

1

POWER WIRING TABLE

m

AO

Dl

Al

D2

A2

D3

82S23

PROGRAMMED

PER

TABLE I

IC DEVICE

+ 5V

GND

1 74LSI5I

16

8

2 74LSI5I

16

8

3 74LSI5I

16

8

4 74LSI5I

16

8

5 555

8

1

6 7493A

5

10

7 74154

24

12

8 82S23

16

8

rh

2N3906

loading of the device under test. The four bits to be decoded, the outputs from the multiplexers, address the 82S23 decoder as discussed above. Common cathode 7 segment LED readouts are interfaced to the decoder outputs and to the 74154 outputs using PNP and NPN transistor drivers.

The component layout is not critical and the construction technique will depend on the use intended. The unit could be built as a dedicated front panel; however, since I feel that a microprocessor should be brought up with a monitor system that enables the system video display or teleprinter to serve as the front panel, 1 built the readout to be a stand alone tester.

The timer circuit, transistor and resistor networks, and the output leads from the

Figure I: This is the schematic diagram for the 8 digit hexadecimal readout. The output for the display is multiplexed to save on the cost of the relatively expensive read only memory. All resistors are .25 W and are measured in ohms.

115

How to Make a Display Printed Circuit . . .

The pattern below shows the typical foils for two positions of hexadecimal display fabricated at home with printed circuit techniques. This double sided board can be made by first laying out all the holes for all the displays. (A template made by marking a section of "P"pattern Vectorboard can be used to guarantee the same pattern at each position.) Then using the template or hole locations marked without the template, the set of six holes for each position is drilled with a small (eg: #60) drill. After thoroughly cleaning the board, the pattern is laid out using printed circuit resist tape, a resist pen such as the San ford's "Sharpie" marking pen available at stationery stores, or a resist paint. Both sides of the board receive this hand crafted pattern for as many positions as you care to wire up. When mounting the LED readouts, the b, c and cathode pins are bent outward to make contact with the pads on the top of the board. Due to the difficulty of removing the LED readouts after installation, testing the devices prior to soldering is a highly recommended procedure.

In this figure, the patterns for only two readout sections are illustrated; the hole and circuit pattern is repeated for each additional one required. The segments are lettered near the printed circuit paths which connect them. Both patterns are viewed from the top foil looking into the printed circuit board.

(TOP)

■ es:

immzM-m

a

&b

g 1

........ m 4...

Q :

d£

-4

COMMON

CATHODE CONNECTIONS.

-BOTTOM FOILS

74154 and 82S23, as well as voltage and ground, were etched on a printed circuit board. The rest of the circuit was wirewrapped. Two 16 pin dual in line package sockets were used for the input connectors.

Eight Fairchild FND-70 7 segment LED displays were mounted on a separate board in four groups of two to represent four bytes. The segments are wired in parallel. These readouts do not plug into a dual in line package socket and must be either point to point wired, or a printed circuit board must be made.

The readout is simply used by connecting it to the lines of interest. The data on the lines must be stepped slowly enough to enable the data to be read. For cases where this is not possible the data could be latched on command by a strobe that selects the time of interest and then read out at leisure.

Besides serving as a temporary front panel during the period when a new microprocessor system is being brought up, the readout is useful for later use to monitor 10 lines during program debugging sessions. It is also a very useful tool for general testing and breadboard development when several lines must be monitored. Example uses include deciphering read only memories made long ago, but left unlabeled, checking out surplus integrated circuits such as comparators, decoders, adders, etc. It can be attached to the switches of a manual read only memory programmer to give insurance that the switches have been properly set.

From my experience, it is well worth the few hours and few dollars to get together a hexadecimal readout. You will soon find it is one of the handiest tools on your bench."

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

USES

88-UFC Frequency Counter Module

88-MODEM Originate/Answer MODEM

GENERAL PURPOSE PERIPHERALS

MCTK

TSM

DAC8

Morse Code Trainer/Keyer Temperature Sensing Module

Eight Bit Digital to Analog Converter

Your computer keeps time ol day regardless ol what program it is executing. Applications include event logging, data entry, ham radio, etc. Provision for battery backup is included

Measure frequencies up to 600 MHz or period with 1/10 microsecond resolution. Computer can monitor four separate inputs under software control.

Use your computer to call other computer systems such as large timesharing systems. Also allows other computer terminals to "dial-up" your computer. Auto-dialer is included so your computer can call other computers under software control. Operates at 110.134.5. 150, 300. and 600 band.

Hard/Software package which allows your computer to teach Morse Code, key your transmitter, and send prestored messages. Uses "NEW CODE METHOD" for training.

Use it to measure inside and/or outside temperature for computerized climate control systems, etc.

Requires one eight bit TTL level latched parallel output port. Use it to produce computer music or to drive voltage controlled devices.

KIT PRICE

$96.00

$179.00 $245.00

$29.00 $24.00 $19.00

Terms: Payment with order. Shipment prepaid. Delivery is stock to 30 days. Write or call for detailed product brochures.

Circle 135 on inquiry card.

116

You should subscribe to

creative Gorapatiigg

today! Here's why —

I.

4. 5.

7.

Creative Computing will help you decide which computer is best for you.

Creative's no-nonsense equipment profiles arm you with the facts before you talk to the vendor or dealer. Whether you're interested in a microcomputer kit, a mini, terminal, or programmable calculator, you'll find the evaluative information you need in Creative. Indeed, one wise hardware decision could save you the cost of a lifetime subscription!

Creative Computing discusses computer applications in nontechnical, understandable language.

Business people who want to know what's going on in the EDP department, students who want to learn about microprocessors, hobbyists looking to make good use of home computers, or anyone concerned about the effect of the computer on society will find these and many, many more mind-expanding topics covered on the pages o) Creative

Creative Computing covers computer education in depth.

After all. that's where we got our start and so we

continue to present four or five major learning activities every issue If you're a teacher Cieative will save you hours of preparation time II you re a student, you'll be way ahead of your class with Creative. And if you've already graduated you can bone up on what you missed

Creative Computing carries outstanding fiction every issue.

One of the best ways of exploring future scenarios of computer usage is through fiction, so Creative seeks out material from the best authors — Isaac Asimov. Fredenk Pohl, Arthur C. Clarke to name just a few. as well as many others who are destined to be the best of the next generation

Creative Computings book reviews are honest and timely.

We're not owned by a big book publisher to whom we owe loyalty, nor do we depend upon advertising for our revenue. Hence, not onlydoour reviews pull no punches, but we also rank order similar books (like all 34 books on the BASIC language which we reviewed last year). Creative reviews virtually every computer book of interest to educators, hobbyists. and general laypeople. even including vendor manuals and government pamphlets

An extensive resource section will save you time and money.

Every issue of Creative carries 40 or more short

resource reviews evaluating periodicals, booklets, hardware, terminals, couplers, peripherals, software packages, organizations, dealers, and much more Every entry has a brief description, evaluation, and the name, address, and phone number of the vendor You'll save valuable time seeking out this information, much of which you'd possibly never come across.

Creative Computing will provide hours of mind-expanding entertainment, even if you don't have a computer.

Creative Computing carries 10or !2pagesof games and puzzles every issue. Most of the puzzles don't need a computer or calculator to solve; some do Naturally, the 4 or 5 new computer games (in Basic. Fortran, and APL) in every issue require access to a computer.

Creative Computing gives you things to actually do with a computer.

Home computer kit. mini, timesharing terminal —

whatever your access to computer power, Creative provides thoroughly documented programs with complete listings and sample runs that you can use with minimum effort. Games, simulations. CAI, computer art — whether education or recreation is your bag. you'll find programs which you can use in Creative.

A no-compromise policy of editorial excellence means every issue is of value to you.

We firmly intend to be around a long time and we believe the way to do that is to publish only material of the very highest quality. We believe our readers are among the most astute, intelligent, and active people in the world. You can't afford to waste time reading imprecise, opinionated, or wordy articles and you won't find any in Creative.

The price is right — only $21 for 3 years.

That same S21 will buy you a pair of Star Trek walkie

talkies, six direct dialed 10 minute calls between New York and Boston, 3 tankfulls of gas, or 10 cocktails at a Hilton hotel Wouldn't you rather have 18 issues of Creative Computing each containing over 85 pages of solid editorial material (including advertismq, over 100 pages per issue) Count the editorial pages in any other hobbyist or special interest magazine and compare it to Creative. Any other. 1 year subscription S8. Lifetime S300.

NO RISK GUARANTEE

You may cancel your subscription at any time for

any reason and we will refund the balance without

question _ ,,, ... _ ... .

David H. Ahl. Publisher ,

FOR FASTER RESPONSE 800-631-8112

(In NJ, call 201-540-0445)

SUBSCRIPTION ORDER FORM

Type Term Individual 1-Year 3-Year Lifetime

USA D $ 8

D 21 D 300

Foreign

D S 11 D 30 D 400

Institutional 1-Year 3-Year

D 15 □ 40

D

□

15 40

a New

□ Renewal

□ Cash,

check, or M.O. enclo:

ed

nencard Card Nc Charge Expirati

u Maste

on date

_

!

u Please

bill me ($1,00 billing

fee will be added)

Name

City

State

Zip

Send to:

Creative Computing, P.O. Box 789-M. Mo

Attn: Darcy

ristown. NJ 07960

*o<!>«"

e***

top values, professionalism

Computerland stores are exciting, enjoyable places to visit. From the striking decor to the fun and challenge of the ComputerlandiM 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 Apple Computer, Cromemco, DEC, Diablo, IMSAI, Lear Siegler, Polymorphic Systems, TDL and Vector Graphic to name a few.

Every store is completely stocked with tools, books and a broad range of accessories.

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.

now open:

• 2 DeHart Street Morristown, NJ 07960

(201)539-4077

• 6840 La Cienega 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

• 4233 Convoy Street San Diego, CA 92111

(714) 560-9912

• 50 East Rand Road Arlington Heights, IL 60004

(312) 255-6488

• 225 Elmira Road Ithaca, NY 14850

(607)277-4888

• 16065 Frederick Road (Rt 355) Rockville, MD 20850

(301)948-7676

• 1612 Niagara Falls Blvd. Buffalo, NY 14150

(716) 836-6511 opening soon:

• Thousand Oaks, CA

• Park Ridge, IL

• Houston, TX

• Huntsville, AL

• Franchise Opportunities available —Contact: Ed Faber, President Computerland Corp.TM (415) 895-9363.

Circle 128 on inquiry card.

DO IT BETTER

With the language that is best suited for your application: Business programming in COBOL, Scientific and Engineering in FORTRAN IV, Educational in BASIC, and Systems Implementation in our MACRO ASSEMBLER.

With hardware that will grow with your application, and protect your software investment.

'..»;'.

DO IT FASTER

With extensive support and utility programs to speed development of your applications software. These include a Diskette Operating System, Relocatable Linking Loader, Load Module Library Editor, Symbolic Debugger, and Text Editors.

With a 16 bit processor that includes hardware multiply and divide, real-time clock, and peripherals like single or dual diskette subsystems with integral DMA controller.

DO IT WITH A MicroNOVA

I ■

i ■

■H

HI

_-<

U

If you are serious about computing, call or write today. BPI Inc.. 2205 East Broadway. Suite 6. Tucson. Arizona 85719 (602) 326-6975

Qt) NOVA is a registered trademark ol Dala General Corporation, Southboro, Mas"-1^

!■* "•

Look What You Can Do...

...with an Edge as a Cue

Ralph Tenny

POB 545

Richardson TX 75080

There are hundreds of digital integrated circuit functions, some highly specialized and others perfectly general. So long as simple digital functions are involved, logic cookbooks, truth tables and functional descriptions explain what various integrated circuits do and show how to apply "standard" solutions to problems. But it is often possible to combine integrated circuits and other components to provide clever solutions to various problems, taking advantage of the characteristics of the integrated circuits. In this article, we concentrate upon several different ways to generate pulses or time delays on cue, using analog, asynchronous and synchronous (clocked) digital methods.

input r> OUTPUT

LINEAR AMPLIFIER

TIME

Figure 1: Comparison of the Schmitt Trigger and Linear Amplifier. The simple linear amplifier generates an output voltage which is a fixed multiple of the input voltage. The graph at the left shows what happens to a simple input waveform as amplified with a gain greater than unity. The Schmitt trigger, in contrast, has two threshold levels, VI on the rising side and V2 on the falling side of the input waveform. The output changes from a high logic level to a low logic level when the VI threshold is crossed, and returns to the high logic level when the V2 threshold is crossed in the opposite direction. In this example a 7414 circuit is used, which is an inverting Schmitt trigger.

Exploring the Schmitt Trigger

Schmitt trigger integrated circuits are available in both the TTL and CMOS logic families, and share a common characteristic: A property called hysteresis has been incorporated in the circuitry between input and output, which leads to a useful time delay effect with signals that are slowly varying compared to logic speeds. This action can be illustrated by comparing a linear amplifier's response with the response of a Schmitt trigger. Figure 1a shows how the linear amplifier responds to an input waveform: It simply amplifies the signal but otherwise makes a faithful copy. In figure lb, the response of the Schmitt trigger to the same type of input waveform is illustrated. Note how the Schmitt trigger output makes no change until the input crosses a threshold VI, then makes no further change until the input voltage has dropped to a lower threshold, V2. The hysteresis property of the Schmitt trigger is this difference between the rising (VI) and falling (V2) change thresholds. The use of this hysteresis to reduce noise on a signal is illustrated graphically in figure 2. The analog input signal in figure 2 would cause problems if applied to a TTL gate input. By simply taking advantage of the hysteresis levels V1 and V2 using a Schmitt trigger, the input signal is transformed into a much more usable signal with clean (ie: the typical 10 ns) transitions.

Because the Schmitt trigger's hysteresis rejects noise so readily and has a rapid response once the threshold has been crossed, it is often used to accept slow waveforms for input to normal logic cir

120

INPUT (ANALOG)

OUTPUT

T>

OUTPUT

(DIGITAL 0 OR I LEVEL)

^~v

i

xvi

/! W ~l\

/ i V / >

i 1

F/#we 2: One of //?<? principal uses of the Schmitt trigger circuit is to convert slowly varying analog signals into the nearly instantaneous transitions of digital logic - and at the same time to filter out minor variations. This example illustrates how an arbitrary analog input is converted into a digital signal by a Schmitt trigger with thresholds VI and V2. Changes only occur at VI when the input is rising, and V2 when the input is falling.

cuitry. With proper external circuitry, the Schmitt trigger will also accept capacitively coupled waveforms. Due to this property, the Schmitt trigger is a very versatile device.

An example of the Schmitt trigger's application is the generation of a trigger pulse on an "edge" of another waveform. Figure 3 shows two different edge detectors made with the 7414 circuit as the key Schmitt trigger element. Figure 3a shows the positive edge detector, and Figure 3b shows the negative edge detector. The Schmitt trigger's properties of hysteresis allow the reliable use of long time delays in the RC network driving the device; use of an ordinary TTL gate would not be reliable due to the optimization of TTL devices to standard TTL transition speeds. The timing diagram in figure 3 shows the relationship of the two edge detector outputs to a common driving waveform. How about pulse delays? Cascading several such edge detectors gives a series of delayed pulses as shown in figure 4. The timing is determined by the RC components used, and is thus called "asynchronous" since it has no dependence upon a regular clock period and can vary with the temperature and other physical parameters which affect resistors and capacitors.

The Schmitt trigger also interfaces with the real world outside digitland. Figure 5 shows two ways to create what is called a "power on reset." Such a reset function is used to clear digital logic such as counters, sequencers, controllers, and microprocessors which must start from a predetermined state following the application of power to the system. A typical rule to thumb is to choose the RC time constant to give a reset delay at least three times as long as the power line takes to come up to full voltage.

a. POSITIVE EDGE

hZ4'4

b. NEGATIVE EDGE A+5

1

■ OUTPUT

TIMING DIAGRAM

-)| 1 H^O—►OUT

a. POSITIVE EDGE OUTPUT

b. NEGATIVE

EDGE OUTPUT

Figure 3: By using an RC network to differentiate a logic signal, the analog signal which results can be used with a Schmitt trigger to generate pulses at "edges. " The positive edge detector (a) and negative edge detector (b) here use the Schmitt trigger version of an inverter, the 7414.

,UT ^l^^o^l-^^c^L^^c

INPUT

POINT A

[

POINT B

J l|

y .

OUTPUT

u

i

Figure 4: A cascading series of positive edge detectors can easily be made using several Schmitt trigger stages. Each stage uses the logic signal generated by the previous stage, resulting in a series of pulses with progressively longer delays relative to the input signal's rising edge.

121

7400 (TYPICAL)

KX

, SPDT

4 PUSHBUTTON

+ 5V * C2

»-H>

•• POWER ON RESET

••SYSTEM ENABLE

I—vw 11

spst m

PUSHBUTTON

7414

KEYSTROKE DURATION

+ 5 SUPPLY BUS AT TURN ON TIME

DIFFERENTIATED SPIKE AT C2-RI JUNCTION

VI THRESHOLD OF SCHMITT TRIGGERS CHARGING CURVE OF C2

V2 THRESHOLD OF SCHMITT TRIGGERS

(FOLLOWS POWER SUPPLY UP)

+ 5 RS fy

_vw

SPST PUSHBUTTON

1

7414

TL

KEYSTROKE DURATION

Figure 5: Using the time delay properties of a Schmitt trigger with an RC network leads to this technique to produce a power on reset signal. A master system enable (a low state) is delayed by the RC time constant of C2 being charged by R2 after the power is turned on. During the time that normal system action is disabled, the power on reset pulse is created by the positive edge trigger of the upper Schmitt circuit. The RC constants are chosen so that the system enable falling edge follows the rising edge of the power on reset by a good margin.

Figure 6: The time delay properties of a Schmitt trigger and RC networks can be used to debounce switches. The common approach is to use a flip flop such as the circuit at (a). However, by using a Schmitt circuit, it is possible to get away with an SPST switch instead of the SPDT switch required for the flip flop technique. Two versions of SPST switch debouncing are shown at (b) and (c).

7414 II TJ^O-<l—

T>

rh

OUTPUT

n_n_n_n" gatet

ouTpT7Ln_n_n_r

b

Figure 7: An inverting Schmitt trigger can be used as an oscillator by feeding its output back to its input with an RC network as shown at (a). If a Schmitt trigger NAND gate is used instead of the inverter form, the extra input can be used to gate the oscillator on or off.

122

One of the most troublesome real world logic interface problems is switch debouncing. Any switch contact bounces, a little or a lot depending upon many factors. A typical way of debouncing a switch is to use two NAND (or NOR) gates in a set-reset flip flop circuit as shown in figure 6a. However, this circuit requires a single pole, double throw switch. The circuits of figures 6b and 6c show how the Schmitt trigger gate can be used to generate a debounced TTL signal from an SPST switch by using RC components to generate a time delay which is longer than the typical bounce interval for the contacts.

One other place the Schmitt trigger shines is in the digital oscillator as shown in figure 7a. Besides the 7414 hex inverter package, Schmitt triggers come in several other packages including a quad NAND package called the 74132. As an oscillator, the 74132's gating action can be used to gate the oscillator on or off using the second input as shown in figure 7b. (Note that any of the previous illustrations can be implemented with the 74132 or other gates in the 7400 series of parts with Schmitt trigger inputs.)

For those who may not have the appropriate logic handbooks, let's note that the two Schmitt trigger integrated circuits mentioned above are functionally identical to their normal TTL counterparts, with the exception of the Schmitt input property. In figure 8, these pinouts are reproduced for reference purposes. If you need a spare inverter or NAND gate, the Schmitt trigger property of any extra active sections can be ignored without side effects in most cases.

VCC 48 JA 4Y 3B 3A 3Y 14

3 ] [ 12 11 _ 10 _ 9 _ 8

~^p) ~^P)

1A 1B 1Y 2A 2B 2Y GND

SN7414

SN74132

Figure 8: Some Pinouts for Review. This illustration shows the pinouts of the 7414 and 74132 Schmitt trigger packages. Note that these pinouts correspond exactly to the pinouts of the 7404 and 7400 respectively. The only difference between the standard inverter and NAND gates and the Schmitt trigger forms is the fact that the inputs have the Schmitt trigger property. These figures reproduced from pages 5-9 and 5-3 7 of the TTL Data Book for Design Engineers (available through BITS).

The Schmitt trigger aspect of these gates is thus a useful bonus. Every digital kluge board will most likely require at least one Schmitt trigger integrated circuit on it for those unexpected noise and timing problems which crop up sooner or later. One other item should be noted about the TTL Schmitt triggers: Pull down resistors and feedback resistors (see the examples in the figures) should not be larger than 390 ohms. Pull up resistors can range up to about 2.2 k ohms.

A Schmitt trigger can be made using positive feedback around an AND gate.

7414 tl >o—OUTPUT

AP At

Figure 9: If the Schmitt trigger property is needed in an existing circuit, an AND gate can often be modified as a temporary expedient. The circuit at (a) shows a 7408 AND section used as the equivalent of the Schmitt trigger in figure lb. The circuit at (b) shows the equivalent of the positive edge connector in figure 3a.

v CAP

VI THRESHOLD

Figure 10: If the input network of the Schmitt trigger is hooked up as an integrator, charging the capacitor, the pulse edge out of the Schmitt circuit will be delayed. In this case, the negative edge of the 7414 output is a delayed and inverted copy of the positive edge input.

123

/

TJ^O

OUTPUT

m

Figure II: If a delay network such as that in figure 10 is presented with a string of short pulses, there will be a certain minimum length input which will be recognized as a transition on the output. If the pulse is not long enough to charge the capacitor to the threshold level through the resistor, then there will be no change at the output. Thus the Schmitt trigger with an RC network can be used to discriminate against short pulses.

Figure 9a shows the 7408 used as the basic Schmitt trigger in a circuit analogous to figure lb. Figure 9b shows the 7408 substituting for the 7414 in a circuit like figure 3a. In both cases, except for the fact that the output is not inverted by the 7408, the effect is the same. Note that the unused input of the AND gate is tied to +5 V to enable the gate. Make the feedback resistor about 10 times the pull down or pull up resistor for best results. Use your own imagination to design all the previous functions (with the exception of the oscillator) using positive feedback and AND gates instead of Schmitt trigger circuits.

By reversing the resistor and capacitor at the inputs, a Schmitt trigger will delay a signal or discriminate against narrow pulses. Figure 10 shows the delay function, and figure 11 shows how narrow pulses (or noise glitches) can be filtered out of a pulse string.

Using Gate Propagation Delays

When gates are as cheap as they are, it is sometimes more appropriate to solve problems without resistors and capacitors. For example, the edge detector can be made using gate propagation delays instead of the RC time delays of a Schmitt trigger. Figure 12 shows such an edge detector. For those who may not be familiar with the principle, another common name for this circuit is a "delay oneshot." The delay oneshot works this way (referencing figure 12): The input is initially low, which

forces the output high. With three inversions, point C will be initially high. When the input goes high, the output will go low (after one gate delay) since point C is still high. Three gate delays after the edge, point C will go low forcing the output high again after one gate delay. A similar process takes place for the NOR gate version of figure 12b. The timing diagrams of figure 12 show how the gate delays lead to the pulse effect.

The name delay oneshot comes from the fact that an integrated circuit's output does not change instantaneously with its input; rather there is a finite propagation delay shown as AT in figure 12. Therefore point C goes low three propagation delays after the input went high, and the output will then be low (for figure 12a) for a short time of about 25 to 35 ns with standard TTL parts. The exact time depends upon the particular integrated circuit, its current temperature, and other physical parameters. In many applications, the exact pulse width is not important; for it is wide enough to trigger clock and edge sensitive inputs of other TTL devices such as flip flops and counters. While figure 12a shows a positive edge detector, using a NOR instead of a NAND as in figure 1 2b yields the negative edge detector. The circuit of figure 12c completes the picture by using an exclusive OR gate to detect both edges of the input waveform. This exclusive OR circuit is also known as a frequency doubler since it produces two pulses in each period of the input waveform.

Digitally Controled Delays

Is a longer pulse needed? Do you need a pulse with a programmable length? Is a special synchronous timing relationship needed? If the answer to any of these questions is yes, then use of clocked digital delay generation methods is a useful approach.

Figure 13 shows a combination synchronizer and delay generation circuit which uses a shift register. The input waveform falling edge can have any timing relationship with respect to the clock signal to the shift register. In the illustration, its change is shown occuring approximately in the middle of one phase of the clock cycle. Whenever it changes, the next active edge of the clock (marked by an upward arrow) will read the input data into the first stage of the shift register. Then seven clock periods later, the output stage of the shift register will change, since the 74164 used in this example has a total of eight stages. By using the NAND gate shown along with the inverter, the time during which the Q|_| and QA outputs of the shift register disagree is detected to form the

124

pulsed output waveform shown in the timing diagram. Note that, assuming a I MHz clock, the width of the pulse generated by this circuit will be exactly 7 us. The relative timing of the input change and the first clocked transition of the shift register determine the exact starting time of the pulse. By adding other NAND gates tied to different shift register outputs, it is possible to produce several different but synchronized pulses for the same input edge. Also, since the change information is passed from stage to stage by the clock, the output of any stage will have a change edge which is synchronized to the clock. The example of figure 13 uses a 74164 shift register; the same principle can be used with shorter or longer shift registers. Note also that to obtain a complete 7 us pulse, the input must remain low for at least 8 us (worst case relative timing).

How about a oneshot with a programmable pulse width? Figure 1 3 shows how the combination of a presettable counter with a latch gives a programmable oneshot. It operates this way: assume that no negative going input pulses have reached the circuit lately. The normal operation of the counter is to continuously count through 16 slates, giving a borrow output (called the "end pulse" in the diagrams) whenever state 0 is reached. Thus after power is turned on, within 16 clock cycles the RS latch will have been reset such that the output line of the circuit is low.

Now suppose an input pulse of arbitrary duration reaches the circuit. This pulse forces the digital pattern on the four input lines (noted C3 to CO corresponding to their binary weights) to be loaded into the counter. During the load pulse, which need not be synchronous with the clock, the counter is inhibited from counting and the RS latch is set so that the output is high. As^ soon as the load pulse ends, the counter can again count down, from the loaded state of

Figure 12: Making use of the finite (typically about 10 ns) gate delays of logic circuits, it is possible to make edge detectors without any analog components such as resistors or capacitors; (a) is a positive edge detector, (b) is a negative edge detector, and (c) is a frequency doubler, which detects both edges of a repetive logic waveform.

3 in the example. Eventually the counter reaches zero having exhausted the programmed count. This causes the borrow pulse to be emitted, resetting the latch again, thus ending the generated pulse. The net length of the pulse generated is equal to the length of the input pulse plus the delay between the end of the input pulse and the end of state 3, plus 2.5 clock periods. If the input pulse is restricted to a short width

(a)

"t>

-H>-s->>^

•OUTPUT

INPUT POINT A

POINT B

ATI AT

AT

PULSE WIDTH=3 AT

AT1 AT= PROPAGATION DELAY

(ASSUMED IDENTICAL HERE)

(b) INPUT

H>-M>-H>-sJr^

7404

INPUT

POINT A

POINT B

POINT C

H

OUT PUT

AT

At

PULSE W

AT

At! at = propagation delay

(c) INPUT

(ASSUMED IDENTICAL HERE)

7486

I P^

7404

]

INPUT

r

i

POINT A

1

POINTB

1 1

i

i

i

POINT C

i

i

OUTPUT 1

AT

!

'At

J

1

II

AT

AT

AT

AT

AT

At'

AT'AT

AT

At!

AT = PROPAGATION DELAY (ASSUMED IDENTICAL HERE)

125

Figure 13: Use of digital circuits with clocked transitions enables delays, edge detection and other functions to be done with outputs synchronized to the clock. For example, this 8 bit shift register is used to obtain a pulse width of exactly seven clock periods, synchronized to the clock. If the input pulse is longer than the seven clock periods plus one clock period for relative timing slop, this circuit produces a digital negative edge trigger.

CLOCK

CLOCK

SHIFTOUT

OUTPUT

ftu

QA QB QC OD QE QF OG A SHIFT

74,64 REG'STER

B

QH

CLEAR

li SHIFTOUT

+ 5 6

AT '<* 7iT

S' CLOCK

ATS= SYNCHRONIZATION DELAY, FROM INPUT CHANGE TO FIRST RISING CLOCK EDGE.

7400

Figure 14: A programmable delay generator. This circuit generates a delay which is set by the inputs of the counter and the width of the trigger pulse at the input. The end of the pulse is synchronized with the clock, but the start of the pulse is synchronized to the input.

0 0 I \-—(FOR THE

C3 C2 CI CO TIMING EXAMPLE)

a o Q <

L>

■RS LATCH 7400

<3=r

LOAD D C B A

74193 BORROW

DOWN UP CLEAR

END PULSE

END PULSE

u

such as might be generated by the circuit of figure 12a, then the programmable delay is determined by the count entered but with an uncertainty of one clock period due to the possible variations in timing of the input pulse relative to the clock. This same circuit can be extended to arbitrary pulse widths by cascading the 4 bit counters. With a 1 MHz clock, for example, four 74193s could be used to programmably time periods of up to 65,535.5 ms.

Hopefully your imagination has been

jogged a little by the discussion of these edge related phenomena. A number of circuits which treat edge related phenomena were made by using the characteristics of some integrated circuits and a little imagination. These particular techniques may not be immediately useful; but when you need one of the functions described, they will come in handy. In your spare time, remember to study the various integrated circuits, not just the cookbook applications, but any imaginative extensions you can dream up."

126

ANY NUMBER OF FILES MAY BE OPEN (IN USE) AT ONE TIME

THE NUMBER OF FILES AND SIZE OF FILES IS LIMITED ONLY BY THE SIZE OF THE DISC

MERGING FILES REQUIRES NO EXTRA DISC SPACE

NO WAITING FOR THE DISC TO RE-PACK

LONGER DISC LIFE-MORE EVEN DISC WEAR

Our Basic Floppy Disc System (BFD-68) must, in all modesty be called superb. It comes completely assembled with a disc controller that is plug compatible with the SWTPC 6800. In fact all our products use the 6800 standard SS-50 (Smoke Signal 50) bus used by SWTPC. The cabinet and power supply are capable of handling up to 3 Shugart Mini-Floppy Drives. One drive is included in the price of the BFD-68 and others may be added easily at any time. Or you may save money by ordering the dual-drive BFD-68-2 or triple drive BFD-68-3 (pictured). Price: BFD-68 $795, BFD-68-2 $1169, BFD-68-3 $1539, SA-400 Drive $390.

The BFD-68 includes our Disc Operating System Software. Our software provides for a soft-sectored disc format consisting of 128 bytes per sector, 18 sectors per track and 35 tracks per disc. The software provides direct commands to name and rename files, transfer memory to disc and disc to memory and to automatically jump to the starting location of any program loaded from disc to memory. The direct command names are: RUN, GET, GETHEX, CLOSE, SAVE, DELETE, APPEND, RENAME, COPY, LIST, FIND, LINK and PRINT. In addition, the Disc File Management subroutines are available to create files under your program control.

A bootstrap PROM is included on the controller board to initiate the Disc Operating System which loads into a 4K memory board located at 7000 or optionally at D000. Thus, you can be up and running from a cold start in just a few seconds.

SUPER SOFTWARE

Free patches are provided for SWTPC BASIC version 2.0 and Co-Resident Editor/Assembler. These patches allow the SAVE and LOAD commands to work with the disc or the cassette at your option.

SUPER EDITOR: Smoke Signal Broadcasting now has its own editor. It is a content oriented editor with string search and block move capability. Changes may be made by referring either to line number or string content or a combination of references. Naturally, it is designed for file transfers to and from the BFD-68. Price: SE-1 $29 on diskette.

ALLOUR PRODUCTS EXCEPT THE PS-1 ARE COMPLETELY ASSEMBLED.

SUPER ASSEMBLER: Inputs source code from file on the BFD-68 disc system and outputs object code to disc file. Assembly listings include alphabetized and tabulated symbol table. Price: SA-1 $29 on diskette.

Complete source listing included for both editor and assembler. Order both for $53 and save $5.

SMARTBUG —A CURE FOR MIKBUGITIS: A super smart Motorola-Mikbug replacement that preserves almost all Mikbug entry locations so your present programs will run without modification. Uses ACIA instead of PIA and includes many additional features including a software single-step trace command. A SMARTBUG listing is included and object code is provided on a 2708 free with each P-38 series board purchased. Source listing available separately for $19.50.

NEED A FULL SIZE FLOPPY? Our P-38-FF is a plug-in interface card to the ICOM Frugal Floppy™. 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-A is a 16K single power supply STATIC RAM memory system. The M-16-A is fully buffered and requires only half the power of a similar size system using low-power 2102's. With the M-16-A, you can expand your system to 48K and still have room left for one of our EPROM boards. The M-16-A is switch selectable to any 4K starting address and hardware write protect is included. Quick delivery. Price $595.

BANKAMERICARD, VISA AND MASTER CHARGE WELCOME.

P.O. Box 2017, Hollywood, CA 90028* (213) 462-5652

Circle 142 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 is heading. It is now available through BITS Inc for only $11.95 and 50 cents postage.

Name

Address

City

State

^ip_

The Best of BYTE, Volume 1

D Check enclosed

O Bill MC #

□ Bill BA #

Price of Book $

Postage, 50 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.

All orders must be prepaid.

'J

PAPERBYTES Design and Implementation of a

Tiny Assembler 6800 — Microprocessor Self Assembler

$7

1 n f JLi JLl JJ A 1 JUO

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

AH 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

-ZJE.

PAPERBYTES Tiny Assembler 6800

n Check enclosed

□ Bill MC #

□ Bill BA #

Price of Book I

Postage, 35 cents I

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 121 on inquiry card.

128

eVTE's Gits

Getting Back to BASIC

If .it first you don't succeed, try reentering your program! That was the order of the day at America's first large scale collegiate BASIC contest held at Taylor University, Upland IN, on April 23 1977. Taylor hosted teams from almost SO midwestern colleges during a four hour struggle to solve five problems using Taylor's DEC 11/40 timesharing system. Taylor's team came in first with DcPauw University, Greencastle IN, a close second.

Additional competitions are planned for next spring throughout the country, all to be hosted by Taylor. Interested teams should contact Professor R Waldo Roth, Chairman of the Computer Science Department, Taylor University, Upland IN 46989."

Trenton Computer Festival

On the last weekend in April

the

Second Trenton Computer Festival was held at Trenton State College in Trenton NJ. The festival consisted of approximately 30 exhibitors, a large flea market, and a large number of technical talks which covered such varied subjects as robots, computer music, games and applications.

Several door prizes were given away; among these was a lifetime subscription to BYTE. The exuberant winner of this prize was Mel Richman o: Philadelphia PA. Mel has homebrewed a 6502-based microprocessor on OSI boards. One of Mel's uses for his system is Morse Code transmission. The system is capable of sending Morse Code at four different speeds while displaying the characters being sent on a video screen."

An Intensive Short Course on Personal Computers and Microcomputer-Based Business Systems

The Evening Division and Department of Mathematics and Computer Science of St John's University, Jamaica NY, has announced a series of intensive short courses on low cost personal computing. Each course is designed to provide an understanding and a well rounded body of information on successful implementation and use of small computer systems. It reviews the state of the art in current microcomputer technology including both hardware and software design as well as numerous applications of personal computing in education, recreation, business, etc. No computer expertise is required. Any individual who has a common sense understanding of computers can actively

benefit from the course. The course will meet every Tuesday from 6 to 8 PM, from September 27 through October 18, and it costs $20. For further information contact Dean Patrick Basilice, Evening Division, St John's University, Jamaica NY 11439."

Attention Computer Store Owners

VVRC Smith Publishing Company will begin a new tabloid business paper to be known as Computer Retailing. A complete prototype was mailed to prospective subscribers in April 1977, with the first actual issue scheduled for July.

The publication will reach retail stores selling microcomputers to individuals for personal use and for use in small business. Some 300 such stores exist today. This number is expected to rapidly escalate as miniaturization and

cost reductions bring computers within the reach of the average person. Contact Walter Mitchell |r, WRC Smith Publishing Company, 1760 Peachlrce Rd NW, Atlanta GA 30357."

A New Toronto Store

A retail microcomputer store, Computer Mart, has opened at 1543 Bayview Av, Toronto, Ontario CANADA MIK 4K4. The store will feature computers for business and personal use. Systems will be available in assembled and kit form including spare parts and peripheral devices. The store will be stocked with tools and books, and demo systems will be up and running. Computer Mart will provide engineers and hobbyists the opportunity of pulling their own systems together and will also offer inexpensive computing for small business."

$699 builds Equinox 100™

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. Equinox 100 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 100™ At $699, it's clearly The Frontrunner. Write for free specs to Parasitic Engineering, P.O. Box 6314, Albany, CA 94706.

' The Frontrunner from Parasitic Engineering!)

*A trademark of MITS Inc.

129

Circle 150 on inquiry card.

Processing Logical Expressions

(Or, how an ingenious extension of the Bauer-Samelson Algorithm allows us to compile efficient code for expressions involving "and," "or," "not" and relations among operands.)

W Douglas Maurer University Library Rm 634 George Washington University Washington DC 20052

Editor's Note: The first two articles by Dr Maurer appeared in BYTE's February and March 1976 issues. This article represents an extension of concepts presented in those articles, which are available in reprint form in the book Best of BYTE, Volume 1.

In a previous two part article, "Processing Algebraic Expressions," we presented the Bauer-Samelson algorithm and applied it to expressions involving the arithmetic operators and parentheses. Here we shall extend these ideas further and show how code can be generated in cases where relational operators ("greater than," "greater than or equal," and so on) and logical operators ("and," "or," "not" and so on) may be present.

Consider an IF statement (as in FORTRAN) such as:

IF (A-B.NE. C*D) GO TO 87

If we are compiling code for statements, the code we want to compile in this case, assuming we have a single register machine, would be:

1. Load A.

2. Subtract B.

3. Store in TEMP.

4. Load C.

5. Multiply by D.

6. Compare with TEMP.

7. On inequality, go to statement 87.

These last two steps are subject to a certain amount of variation depending on details of the computer involved. On machines with a condition code register (e.g., an 8080 or 6800), the steps will be as above. The comparison will set the condition code register, and the specific reference to the relation (.NE. in this case) that we are interested in is made only in step 7. On

machines without a condition code register, but with a set of skip instructions, step 6 will be "skip the next instruction if the given register and TEMP are equal" and step 7 will be simply "jump to statement 87." If there are no skip instructions of this kind, then step 6 will be "subtract TEMP" and step 7 will be "if nonzero, jump to statement 87." In any case, we can represent these two steps by a single function, "if unequal to TEMP, go to statement 87." This function will always require two steps, as long as there can only be one address in each instruction, because we have to make reference to two addresses here, namely the address of TEMP and the address of statement 87.

Let us now consider the expression:

A-B .NE. C*D

as a logical expression. This means that it may include operators (such as .NE.) in addition to the standard arithmetic operators. It also means that it has the value "true" (if A—B is unequal to C*D) or "false" (otherwise). We would like to process this logical expression according to the BauerSamelson algorithm in order to generate code like that shown above. In the remainder of this article we will show how to do this.

What Precedence for Relational Operators?

Let us first consider precedence of operators. Recall that in typical algebraic expression processing, multiplication is defined as having a higher precedence than addition.

130

This means that in an expression such as:

W*X+Y*Z

we perform the multiplications first (W*X and Y*Z) before adding together the results. Because logical operations are defined as comparisons of values (e.g., the results of arithmetic operations) we must evaluate our arithmetic expressions first. Thus, it should be clear that any arithmetic operator (+,—,*, /) has higher precedence than any relational operator (.EQ., .NE., and so on). Thus in our expression:

A-B.NE.C*D

we have to perform the subtraction (A--B) and the multiplication (C*D) before comparing the results to see whether they are unequal.

There will never be any need to compare one relational operator with another with respect to precedence, and we can assume [hat all six relational operators (.EQ., .NE., .GT., .GE., .LT. and .LE.) have the same precedence. This allows us to start the process of generating code for our example expression. We recall that, in the Bauer-Samelson algorithm, we have two stacks, one for operands and one for operators (see figure 1). The process in this case proceeds as follows:

1. The A goes on the operand stack.

2. The minus sign goes on the operator stack.

3. The B goes on the operand stack.

4. Now we come to the .NE. which we cannot put on the operator stack because, as we mentioned before, the minus sign has higher precedence. Therefore, we must take the minus sign off the operator stack; take its operands, A and B, off the operand stack; perform the operation, which in this case means generating the code for "load A" and "subtract B"; and put the result back on the operand stack. In this case the result is simply the name of the register where the answer (A—B) was left. Let us call this register AC.

5. Now we can put .NE. on the operator stack, since the operator stack is empty.

6. The C goes on the operand stack.

7. The * goes on the operator stack, since it has higher precedence than the .NE. operator.

8. The D goes on the operand stack.

9. Now we come to the end of the expression. First we must treat the * operator (at the top of the operator stack). We take it off the operator stack; take its two operands (C and D) off the operand stack; and perform the operation, which in this case means generating the code for "load C"

(equation )

VARIABLE

OPERATOR

Figure I.' A simple diagram of the stack data constructs of the BauerSamelson algorithm. Take an equation and analyze it from left to right putting variables or constants in the operand stack and operators in the operator stack. With each additional item added to the stacks, the previous one is shifted down. Special attention must be paid to the operator stack because the operators must be stacked in descending precedence order. If an operator of lower precedence than the previous one is loaded into the operator stack, it will be saved, while the higher precedence operator and its corresponding operands are processed out of the stack. The newly computed value will be put into the operand stack, and the lower precedence operator will now be loaded into the operator stack. The process then continues on. When the end of the expression is reached, a cleanup process of unstacking operators and operands continues until both stacks are empty. This algorithm can be used in a compiler to generate machine code, or in an interpreter to control actual evaluations of expressions.

and "multiply by D." In doing this, we will note (if wc have a single register computer) that the register AC will be overwritten. Therefore, wc will have to generate "store in TEMP" and put TEMP on the operand stack where AC was. Finally, we put the result back on the operand stack. This time the result is the register where C*D is kept. Let us assume that this is again AC (although the method would work just as easily if it were some other register); then this is put back on the operand stack.

10. Finally, we come to the .NE. operator. Its two operands arc AC and TEMP. Since we arc only processing the expression A- B .NE. C*D, and not the whole statement in which it is contained, wc don't know where to jump yet (in this case it is to statement number 87). Let us, therefore, generate code which will jump to a label called TRUE if the condition is satisfied, and to a label called FALSE if it is not. Later on,

131

Figure 2a: The basic block diagram that will be used to represent the different logical operators; "alpha" and "beta" represen t generated code whereby either a true or false state is possible, depending on whether or not the condition in question is satisfied. Arrows in this diagram indicate branches which might be taken.

Figure 2b: Generating code for "alpha or beta." If the first state is not true then the second state must be checked:

ALPHA

BETA

•• FALSE

Result

Alpha

Beta

Branch

False

or

True

——TRUE

False

or

False

— FALSE

True

or

True*

-TRUE

True

or

False*

— TRUE

'State need not be checked.

ALPHA

BETA

-►TRUE

► (FALSE)

these can be patched up: TRUE can be changed to statement number 87, and FALSE can be changed to be the next statement after the IF statement. So, in this case, depending on the computer we arc doing this on, we would generate:

"compare with TEMP; if unequal, go

to TRUE; go to FALSE"

or "if equal to TEMP, skip the next

instruction; go to TRUE; go to

FALSE"

or "subtract TEMP; if nonzero, go to

TRUE; go to FALSE."

We notice immediately that, no matter which of these options we take, the last instruction we generate is "go to FALSE," and this is unnecessary, because FALSE corresponds to the next instruction following the IF statement. In this case the final "go to FALSE" can simply be thrown away; however, in a more complex case we might actually need the "go to FALSE." So for the moment, let's assume that it is always generated.

Logical Operators

We now pass to a consideration of the logical operators "and," "or," and so on. Just as before, we start by considering

questions of precedence. Suppose we have a statement such as:

IF (A-B ,GT. C*D .OR. E/F .LT. G+H) GO TO 87

It is. now clear that we have three levels of precedence. That is:

1. First we perform the arithmetic operations: A-B,C*D, E/F, and G+H.

2. Then we look at the relational operators (.GT. and .LT. in this case) and form the expressions A-B .GT. C*D and E/F .LT. G+H.

3. Finally, we look at the logical operator (.OR.).

From this it should be clear that, just as arithmetic operators have higher precedence than relational ones, relational operators have higher precedence than logical ones. Suppose that we have more than one logical operator. For example, suppose we have a statement:

IF (A.LT.B .OR. C.EQ.D .AND. E.GT.F) GO TO 84

Do we consider the .AND. first? Or do wc look at the operators from left to right, which would mean considering the .OR. first? The answer to this question is not a natural result of the way wc define logical operations in the same way that it is for the arithmetic operations such as + or *. In algebra and arithmetic, when wc look at W*X+Y*Z, we know that by the ordinary rules of algebra the multiplications arc performed first. But, there are no "ordinary rules of algebra" for logical expressions. The only clue wc have is that "or" and "and" are often called logical sum and logical product, respectively, and are sometimes even denoted by + and * in mathematical logic. This would suggest that the "and," or the logical product, be performed first; in fact, this is the rule that is generally adopted. The logical operator "not," when it is allowed, has higher precedence than "and" and "or," while "implies," when it is allowed, generally has lower precedence.

In order to see how to generate object code when "or" is present, let us look at figures 2a and b. In accordance with what we have just discussed, the code we are trying to generate for an expression of the form "alpha or beta" will have various jumps to TRUE and FALSE. We do not care how many jumps there are, and in a complex case there may be quite a few of these. Wc assume, however, that wc have already generated code for "alpha" and also code for "beta," and that at this point we only wish to take care of the "or" operator. The code for "alpha" comes first, followed by the code for "beta"; and the code for "alpha"

132

will have its own jumps to TRUE and FALSE, as will the code for "beta." This means that there are four possibilities:

1. A jump to TRUE from "alpha." If "alpha" is true, then clearly "alpha or beta" is true. So this can remain a jump to TRUE.

2. A jump to FALSE from "alpha." If "alpha" is false, we still have to check "beta." So this is changed into a jump to the start of the coding for "beta."

3. A jump to TRUE from "beta." If "beta" is true, then again "alpha or beta" is true, so this can remain a jump to TRUE.

4. A jump to FALSE from "beta." We don't check "beta" unless "alpha" is false, and we now know that both "alpha" and "beta" are false, so that "alpha or beta" is also false. So this can remain a jump to FALSE.

From this we can sec that the only jumps we have to change (i.e., patch) arc jumps to FALSE from "alpha." Each one of these must be changed from a jump to FALSE to a jump to the start of the coding for "beta" (see figure 2b). We have shown only one jump in the figure; but, if there is more than one such jump, all of them must be changed.

Now let us look at "and" (sec figure 3). The setup is exactly the same as before; we still have four possibilities; but the rules are a bit different. Taking the four possibilities one by one, we consider:

1. A jump to TRUE from "alpha." If "alpha" is true, we still have to check "beta." So this is changed into a jump to the start of the coding for "beta."

2. A jump to FALSE from "alpha." If "alpha" is false, then "alpha and beta" is false. So this can remain a jump to FALSE.

3. A jump to TRUE from "beta." By this lime we know that "alpha" is true, and if "beta" is also true, then "alpha and beta" is true. So this can remain a jump to TRUE.

4. A jump to FALSE from "beta." If "beta" is false, then again "alpha and beta" is false, so this remains a jump to FALSE.

Thus, it is only the jumps to TRUE from "alpha" (rather than the jumps to FALSE) which have to be changed to go to the start of the coding for "beta," as in figure 3.

In all cases of this kind, the coding for "beta" will immediately follow the coding for "alpha." If A is the start of "alpha" and B is the start of "beta," we only need to look through from A to B-l in order to find jumps to FALSE (or, respectively, jumps to TRUE) that have to be changed to be jumps to B. The start of each section of generated code for an expression is what goes on the operand stack to represent that expression.

ALPHA

BETA

(TRUE)

FALSE

Figure 3: Generating code for "alpha and beta." With the "and" logical operator, both states must always be checked. If either state is false, the condition isn't satisfied and thus the end state is false.

TRUE

Condition

Result

Alpha

Beta

Branch

True

and

True

TRUE

False

and

True*

FALSE

True

and

False

FALSE

False

and

False

FALSE

'State need not be checked.

FALSE

ALPHA

SUBEXPRESSION

If C

t

1

TRUE

FALSE

TRUE

FALSE

_

"NOT"ALPHA

SUBEXPRESSION

If (NOT C)

ilfWET - FALSE

iEA-fcSE") TRUE

TRUE

I (LAST STEPS TO BE GENERATED)

A variable CREL (current relation) is kept at all times to indicate the start of the section of code generated for the current relation (e.g., A.LT.B). When we finish generating code for a relation, CREL goes on the operand stack, and the current position in the generated code, plus one, becomes the new value of CREL. At the beginning, CREL is initialized to indicate the start of all generated code.

Let us now look at "not alpha" (see figure 4). This seems easy: All the jumps to TRUE become jumps to FALSE, and vice versa. There is one exception, however. For any logical expression or subexpression, the generated code will end with something of the form "if C then go to TRUE; go to FALSE," which we shall abbreviate as "if C then DECIDE." This is clearly true of the code for relations, and it remains true when blocks "alpha" and "beta" arc combined by means of "and" or "or," because "beta" will not be patched up. When wc use "not," however, it would seem that "if C then go to

Figure 4: Another logical operator is the "not alpha." It can be thought of as the inverse of an alpha, true is false and false is true. Fhere is also a modification on the subexpression as explained in the text.

133

ALPHA

BETA

FALSE

DECIDE

ALPHA

If C

BETA

TRUE

(JlEetOE")

Figure 5: Optimized code for "alpha or beta." The subexpression "if C then go to TRUE; go to FALSE" can be simplified to "if C then DECIDE"; decide whether the code satisfies the situation in question or not. But, if the first state of the "or" operator isn't satisfied, then "go to FALSE" in the subexpression must be changed to "go to beta" which is the next step in the procedure. In the optimized form, the "go to FALSE" has been deleted and the subexpression has been simplified to "if C then go to TRUE. "

Figure 6: The steps involved in evaluating the FOR TRAN expression:

IF (A.LT.B .OR.

C+D.EQ.E .AND.

.NOT. FGTG*H) GO

TO 87 as compiled using the Bauer-Samelson algorithm.

TRUE; go to FALSE" would be changed to read "if C then go to FALSE; go to TRUE." Instead, we will change it to read "if (not C) then go to TRUE; go to FALSE" (or "if (not C) then DECIDE"), so that the above mentioned property of generated code will be preserved. All other jumps to TRUE are changed to FALSE, and vice versa, when we produce "not alpha" from "alpha."

This property of generated code—namely, the fact that it always ends with "if C, then DECIDE"—may be used to "optimize out" the last generated instruction for any subexpression. In generating code for "alpha or beta," the last "go to FALSE" in the subexpression of "alpha" must be changed to "go to the start of beta"; but this is the very next instruction, so that "go to FALSE" may simply be thrown away. Thus "if C then DECIDE" is changed, in this case, to "if C then go to TRUE" (see figure 5). In generating code for "alpha and beta," we can think of "if C then DECIDE" in the subexpression of "alpha" as if it were "if (not C) then go to FALSE; go to TRUE." This time "go to TRUE" must be patched so that it goes to the very next instruction, and it may likewise be thrown away. Therefore, "if C then DECIDE" may be changed in this case to "if (not C) then go to FALSE."

1.

Load A.

2.

Compare with B.

3.

If less than B, DECIDE.

4.

Load C.

5.

Add D.

6.

Compare with E.

7.

If unequal to E, DECIDE.

8.

Load G.

9.

Multiply by H.

10.

Compare with F.

11.

If greater than or equal to F, DECIDE.

12.

Continue with next instruction.

We illustrate all these notions by generating code for:

IF (A.LT.B .OR. C+D.EQ.E .AND. .NOT. F.GT.G*H) GO TO 87

The generated code is given in figure 6; it is generated as follows:

1. CREL is initialized to indicate step I.

2. A goes on the operand stack.

3. .LT. goes on the operator stack.

4. B goes on the operand stack.

5. .OR. has lower precedence than .LT., so we cannot put .OR. on the operator stack yet. We remove .LT. from the operator stack, and we remove its two operands, A and B, from the operand stack. We generate code for A.LT.B, namely "Load A; compare with B; if less than B, DECIDE," and put the result back on the operand stack. This result is the current value of CREL, namely "step I," and CREL is reset to "step 4" since three steps have been generated so far.

6. Now we can put .OR. on the operator stack, since that stack is empty.

7. C goes on the operand stack.

8. + goes on the operator stack, since it has higher precedence than the .OR. operator.

9. D goes on the operand stack.

10. We cannot put .EQ. on the operator stack, because it has lower precedence than +. We take + off the operator slack, and its two operands, C and D, off the operand stack. We generate code for C+D, namely "load C; add D," and put the result, AC, back on the operand stack.

11. Now we can put .EQ. on the operator stack because it has higher precedence than .OR., which is at the top of that stack.

12. E goes on the operand stack.

13. We cannot put .AND. on the operator stack, because .EQ. has higher precedence. So we take .EQ. off the operator stack, and its arguments, namely AC and E, off the operand stack. The code we generate to compare AC with E is simply "compare with E; if equal to E, DECIDE." CREL, namely "step 4," goes on the operand stack, and since we have generated four steps since then, the next step would be number 8; so "step 8" becomes the new value of CREL.

14. Now we can put .AND. on the operator stack, because its precedence is higher than that of the .OR. operator.

15. .NOT. goes on the operator stack, since .AND. has lower precedence.

I 6. F goes on the operand slack.

17. .GT. goes on the operator stack, since .NOT. has lower precedence.

18. G goes on the operand stack.

19. * goes on the operator stack, since .GT. has lower precedence. The operator

134

stack now contains: .OR. (at the bottom); .AND., .NOT., .GT., and *.

20. H goes on the operand stack, which now contains "step 1," "step 4," F, G and H. We are now at the end of the expression.

21. First we treat the *. We take it off the operator stack; we take its two operands, G and H, off the operand stack; we generate code for G*H, namely "load G; multiply by H"; and we put the result, namely AC, back on the operand stack.

22. Now we treat the .GT. operator. Its two operands are F and AC, not AC and F. The result is the same as if .LT. were the operator and AC and F were the operands. (If F is greater than AC, then AC is less than F, not less than or equal.) We generate "compare with F; if less than F, DECIDE" and put CREL, namely "step 8," on the operand stack. As before, we have generated four new steps, so that "step 12" becomes the new value of CREL. Note that we have now generated all the steps of the compiled code shown in figure 6. The operand stack now contains "step 1," "step 4," and "step 8."

23. The next operator to be treated is the .NOT. operator. Its operand is "step 8," and "step 12" is the current value of CREL. This means that steps 8 through 11 have to be checked. In these steps, there are no jumps to TRUE or to FALSE (if there were, then TRUE would be changed to FALSE in these steps, and vice versa), but there is a reference to DECIDE in step II. This step therefore becomes "if greater than or equal to F, DECIDE" and "step 8" remains on the operand stack.

24. Now we treat the .AND. operator. Its two operands are "step 4" (alpha) and "step 8" (beta), which means that we have to check from step 4 to step 7. Again there arc no jumps to TRUE or FALSE. (A jump to TRUE would have to be changed, here, to a jump to step 8.) But there is a reference to DECIDE in step 7, which is changed to "if unequal to E, go to FALSE," and "step 4" goes back on the operand stack, since this is the beginning of the code for "alpha and beta."

25. The last operator to be treated is the .OR. operator. Its two operands arc "step 1 " (alpha) and "step 4" (beta), which means that we have to check from step I through step 3. If there were any jumps to FALSE in this range, they would have to be changed to "jump to step 4" (see figure 5). But, just as before, there are none of these; there is only the reference to DECIDE in step 3, and, again by figure 4, this is changed to "if less than B, goto TRUE."

26. Finally, we read the "GO TO 87," so that TRUE becomes statement number 87.

Comments on Notation

In this article, the logical and relational operators are shown using a FORTRAN IV convention, as follows. They are used to define conditions with relational operations, then combine them with logical operations. Logical Operators: A new condition is evaluated using other conditions X and Y.

.NOT. X Logical inverse of

condition X. X.AND. Y Logical product of results

of conditions X and Y

(XAY). X. OR. Y Logical sum of conditions

Xand Y(XVY).

Relational Operators: A condition is evaluated using operands which can be compared, such as integers for other representations of numbers), strings, etc.

A .GT. B True if A is greater than B.

A .GE.B True if A is greater than or

equal to B. A .LT. B True if A is less than B.

A .LE. B True if A is less than or

equal to B. A . EQ. B True if A is equal to B.

A .NE. B True if A is not equal to B.

Note that the meaning of the comparisons depends upon the type of data involved, and that compiled code for each kind of test must reflect the comparison of identical types of data. Thus, A and B should both be integers in a simple compiler or interpreter (such as Tiny BASIC), and both should be of consistent integer or floating point (REAL) type in a FORTRAN compiler or interpreter, etc. The meaning of string comparisons for value (other than equality) can be defined.

There are now two jumps to TRUE (in steps 3 and II), and these must be changed to refer to statement number 87; there is one jump to FALSE (in step 7), and this must be changed to refer to the next step after the generated code, namely step 12. This completes the process of generating code for this statement.

As a final note, wc may consider the "implies" operator of symbolic logic. The construction "alpha implies beta" is equivalent to "(not alpha) or beta." Thus "implies" may be put on the operator stack, just like any of our other operators. It is treated in the same way as "or" (sec figures 2 and 5), except that FALSE and TRUE are interchanged in "alpha" just beforehand (see figure 4)."

135

Teach your System to type with a

TYPEAWAY

Selectric I/O Writer interface

Interface any Selectric I/O Writer to S-100 computers with a TYPEAWAY Selectric I/O Writer Interface.TYPEAWAY is compatible with any model 731 or 735 I/O Writer, including versions with correspondence or BCD coding, 24 or 48 volt solonoids, and common anode or common cathode diodes. TYPEAWAY is a complete package of everything needed to interface any model 731 or 735 I/O writer to an S-100 computer, including;

* S-100 compatible PC board with solonoid drivers, input ports, and PROM memory.

* Complete cables and connectors

* Power supply for 24 or 48 volt systems.

Optional word processing software is also available.

Add professional, economical hard copy to your S-100 system with an IBM Selectric I/O Writer and a TYPEAWAY interface. Prices

Kit $225

Assembled 325

Documentation 25

Call toll-free anytime to

place credit card orders:

800/648 5311

MICROMATION INCORPORATED

524 UNION STREET

SAN FRANCISCO, CA. 94133

415/398-0289

Circle 143 on inquiry card.

Continued from page 12

attention to a few misconceptions. Referring to Prof Isaacson's article in February 1977 BYTE, I'll agree that Hie time of personal computing Is coming, but it hasn't got here quite yet!

She may think that $1000 is cheap, and it is to some, but not for the vast majority of students and others. This is my main sticking point: too many writers assume one has $1000 to $2000 to blow on a system. Surprise! A lot of people don't! Professor Isaacson may think $1000 is nothing, but to me it is! Pardon me if I am old fashioned, but . I like to get the most for my money!

I'd like to see more articles like the one on calculator interface, and Sucling's article on TV typewriters. But why limit this to peripherals? Why not a homebrew computer that can be expanded and use BASIC? There are plenty of guys like me who enjoy "rolling your own." Not to mention, it's cheaper!

Edgar N Cohen

3228 Smith Av

Baltimore MD 21208

Homebrewing is definitely a learning experience, but hardly recommended as an economic alternative. The cost of individual parts may look small, but any realistic computer uses a very large number of the little bugs and inordinate amounts of time getting it up and running. The reasons for homebrewing are most likely psychic: the intimate knowledge and the chance to "do it right" by some arcane standards of system design only known to the builder of the system.

MICROCOMPUTER

CORRESPONDENCE COURSES

NEEDED . ..

I am trying to locate a formal course of instruction in microcomputer technology. I have considerable experience in third generation computer systems (maintenance, operations and programming at all levels). I also have worked with programmable calculators a great deal. Now my goal for both personal and professional interests seems to lie within the micro/mini computer range.

Unfortunately, my financial resources are somewhat limited, and the course of study must be limited to spare time with no restrictions on movement. The answer would be a correspondence course, preferrably VA approved.

If possible, I would like a course with kit construction as part of the curriculum. Not only would I then benefit by practical application of the knowledge being taught, but would retain the system for continued training and satisfaction, in addition to possibly being able to have some of the costs borne by the government. This would make it possible for me to continue my education in a manner that is currently beyond my means.

136

If you know of such a course, or might be influential in organizing such a course, then I would appreciate your help and influence.

Donald R Darden

519 Corday St, Lot 3

Pensacola FL 32503

Perhaps publishing your letter will have the influence you seek.

LAMENTS

1 lament your loss of linkage on the 8008 update in April 1977 BYTE. The laborious data dependent search was eventually successful. Thus forced to acknowledge the anecdotal nature of this issue caused my correlator to flash Readers' Digest in red letters. Back to basics and I'll continue to sing your praise.

Frank Evans CorvallisOR 97330

BEWARE OF PUNS

William Stock, in his letter ("What's New?", April 1977 BYTE), mentioned the sloppy disk, which was first introduced by our company in late 1976, as though he had never heard of it, not to mention our company. The unfortunate fact that many others are in the same position prompted this letter (which I am trying to key in slowly, as I know many "compuniks" are used to 110 baud and therefore cannot read very fast).

MNewmonics is currently based in Lawrence KS. The company made its start by marketing a small microprocessor, introduced soon after the popular 3000 series came out. By coincidence, our model is the MN1500, a I bit (not bit slice, but truly 1 bit) machine with two powerful instructions: 0 = NOP; 1 = HALT/CRASH. Although the actual fabrication is proprietary, I can say that it is a combination ol the p-type and n-lype bipolar (PPP, NNN) TTL components noted in William's letter. The device is capable of such extremely fast operation that we have developed a special dovetailed clock for it, which allows four states per cycle. I won't divulge its secret, but it uses an in-house NLL (noise locked loop).

We, loo, have a WOM (write only memory), in 19 and 23 pin DIP formats. These are nicely complemented by our 64 K*1 static RNMs (read never memories), though some enterprising soul will probably soon discover that the same thing can be done with a 7404. Next, we have a RAM which covers several speed and power ranges. As we are a small company, we couldn't afford to support three chips differing only in speed, so we put the high, medium and low speed devices all in one package, and control them with an automatic gear shift, an industry first! The latest cheap,

excuse me, chip, which we developed locally was our MK*N RMM (read maybe memory). Also, my (barely) capable VP, Mr John C Nunley, has recently closed a deal making us the sole supplier of a new thin-film technology memory device. At one point, he was so worried about the deal that we have dubbed the ultra thin film (10**-8 cm) chip the ANGST-ROM.

We are currently trying to get our corner on the market with the product William mentioned, something we feel is a breakthrough for the microcomputer industry: the sloppy diskette. In passing, our prototype was made from a square piece of coated mylar housed in a circular sheath, which when placed in our drive sat motionless. Rather than the motor turning the diskette and a small flywheel, the entire drive began rotating with a negative frequency (another application of our dovetailed clock). The mangled test rack and the plaster patch in the wall are testimony to the fact that the idea was indeed a breakthrough!

Also, we have in the works a device which was suggested to us by one of our company insultants, Mr Craig Paul. The new device will be a yet smaller version of the increasingly popular diskettes. As we intend it to be used with the upcoming "baby" (pico) processors, we have tentatively named it the "Bassinette Drive."

Glen E Monaghan

President

MNewmonics

Lawrence KS 66044

GEM/pdp-15

MORE COMMENTS ON AUDIOTAPE PROBLEMS

Having read your reply to the letter by Warren Bell in the April 1977 issue I feel the problem should be clarified so that computer people out there don't start tearing into their cassette recorders needlessly. As I interpret Mr Bell's problem, it is unrelated to the phase of the tape recorder output, and reversing the output jack leads as you suggest won't help. The cassette recorder interface I've built which is on a IO card inside my SWTPC 6800 is similar to the AC30 that Mr Bell mentioned. The incompatability he experienced sounds like the problem I had with a prototype of my board. The SWTPC AC30 has 2400 Hz as the frequency that is recorded when there is no data coming out of the serial IO. I suspect that his interlace rests at the lower frequency of 1200 Hz. My first board had the same problem. I could record and play my own tapes but it took several hours to find out why I could not read the BASIC I bought from SWTPC. As Mr Bell observed, you must invert the data before it is modulated to invert the frequency. My interface doesn't care if I invert the cassette output since it is frequency dependent, not phase dependent.

1 might add my objection to the Kansas City interface using the upper frequency as the resting point. As the cassette starts up on unmodulated 2400 Hz it must pass through the lower frequency to get up speed. I would have thought the lower frequency would be used so the interface would not put out a burst of garbage data each time it starts up. My software must ignore any data for about a second as the cassette gets up speed.

Leo Taylor

18 Ridge Ct W, AptC21

West Haven CT 06516

The phase inversion fix, if needed, is done with patch cords, not inside recorders!

ANOTHER COMMENT ON DEFINING THE BYTE

Not only does the quotation from Donald E Knuth published in the Letters column of April 1977 BYTE not address the question of the origin of the word "byte," it is not even intended to be a general definition. Professor Knuth was describing the basic unit of information on a particular computer, the MIX 1009. The passage quoted is taken from Knuth's The Art of Computer Programming, Volume I. There Knuth describes the mythical MIX computer, the machine language of which is used to illustrate the algorithms in the book:

MIX has a peculiar property in that it is both binary and decimal at the same time. The programmer doesn't actually know whether he is programming a machine with base

2 or base 10 arithmetic. This is done so that algorithms written in MIX can be used on either type of machine with little change; and so that MIX can be easily simulated on either type of machine.

An algorithm in MIX should work properly regardless of how big a byte is.

For those who may be looking for a general definition of "byte" I propose the following: A byte is the smallest directly addressable area of a computer's storage; if the smallest such area is the same size as the accumulator (or a general register) then it is more properly called a word.

Thus, an IBM 360 has an 8 bit byte size (smallest addressable storage location) and a 32 bit word (size of a general register). Operating under the above definition, each storage location of an 8 bit microcomputer would more properly be called a word than a byte.

Bob Brown

Chief of Computer Systems

Medical Association of Georgia

938 PeachtreeSt NE

Atlanta GA 30309a

137

NEW- REVOLITTIONARY TOO L

WRAPS INSULATED WIRE FOUR TIMES FASTER

NO Prestripping NO Precutting Spool Fed Wire

Users say:

"Your P180 tool really does just what you said it would-We're very satisfied"

"We're shifting nearly all our wrapping over to Slit-N-Wrap." .."

The spooled wire passes thru the tool past a slitting edge next to the wrap post. A narrow longitudinal cut is made in the insulation where - it passes the square post corner. Trie bared copper is indented by the sharp edge, (7 turns equal 28 contacts.) Insulation is slit where wrapped, but riot between terminal posts when fed straight outqf the tool.

Model P180 with two 100' spools of 28 gage wire . S24.5Q

Battery power«d Model P160-4T includes charger and wire S75.00

""" ""odel P160-4TI S8OJ30

view of unwrapped wire end .025 sq. post^_-~

t/ prrptriMir r

ELECTRONIC COMPANY 12460 Gladstone Avenue Sylmar, CA 91342

If unavailable locally, factory order. Add $2.00 shipping and handling charge.

California residents n ,- .

add 6% sales tax. MSBS)'

Parker Rolls into Microprocessor Games Market

What's

New?

A New Computer Package from Polymorphic Systems

The POLY 88 System Sixteen computer system has been announced by Polymorphic Systems, 460 Ward Dr,

Santa Barbara CA 93111. The unit is a 16 K system featuring a high speed video display and alphanumeric keyboard. Cassette tapes are used for permanent program storage; a verify feature is included to insure correct loading of programs. A BASIC package is included which features formatting options and string manipulation. A program library is available to POLY 88 users. The price for the system as shown is $2250, assembled. ■

Circle 604 on inquiry card.

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:

1 CRT Terminal Board, BASIC in I EPROM, Audio Cassette Interface, 7K RAM Expansion Board/ EPPOM 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 fully 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, Intel compatible I/O routines) which greatly simplifies program development; Parallel and Serial l/Oon the board; and very reasonable prices.

M

Call 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

Board game fans take note! Parker Brothers has announced a microprocessor-based board game called CODE NAME: SECTOR, a submarine pursuit game in which players compete with one another and with the computer as it moves an invisible submarine through 4800 possible positions under the sea. Parker Brothers expects that the price of this new product will probably be in the $30 to $45 range at department stores and other retail outlets this summer and fall. Significantly, there is no video screen involved with the game: a calculator-like module is used for both input and output, and apparently the entire game algorithm is built into read only memory parts with occasional inputs from players, through switches. For new players of the game, a unique "teach" mode is designed to give instruction regarding rules and operation. For more information, write Parker Brothers, Salem MA 01970."

Circle 605 on inquiry card.

A New Servocontrolled Cassette Transport

A new, patented, servodriven digital cassette recorder has been announced by Memodyne Corporation, 385 Elliot St, Newton Upper Falls MA 02164. The Model 764 consists of a tape transport attached to a card cage which contains the servocontrol electronics plus a read-while-write electronics card. Data can be recorded at up to 32 K bytes per second, and the transport search speed (forward or reverse) is 100 inches (254 cm) per second. (Thus a 300 foot

138

cassette has a maximum access time of 36 seconds. At 1600 flux changes per inch a standard cassette holds about 5 million bits, or about 1/2 million bytes. High quality certified digital cassettes should be used with this type of data density.) Start-stop settling time is 200 ms. The Model 764 is priced at under $500 in OEM quantities. Single unit prices were not listed on the data sheet we received. Contact Memodyne for more information."

Circle 606 on inquiry card.

An APL-Compatible DECwriter

"paper out visibility and new terminal duplex and

Digital Equipment Corporation has announced a new 1200 bps keyboard terminal called the LS120 DECwriter III, designed for interactive communication with a computer or as a unit in a data, or message, communication network, features of the DECwriter III include an 180 cps print rate, a 1 K character buffer E1A interface, an automatic switch, last character self-test capability. The is compatible with full half duplex protocols. Optional features include an APL alternate character set, a compressed font and a 300 bps acoustic coupler. Price is $2270 in quantities of 100, with deliveries to begin this summer. Contact Digital Equipment Corporation, Digital Components Division, 1 Iron Way, Marlborough MA 01752."

Circle 608 on inquiry card.

A New Terminal Kit from SwTPC

The Southwest Technical Products Corporation CT-64 Terminal System kit, along with the optional CT-VM video monitor, form a complete stand alone terminal system compatible with a variety of modems and ASCII computer systems. The kit features 16 lines of 32 or 64 characters per line, scrolling or page mode operation, upper and lower case characters, reversed character printing, control character printing, cursor control and complete control character decoding.

The unit is available as a kit only

A Successor to the Teletype Model 33

Teletype Corporation, 5555 Touhy Av, Skokie IL 60076, has announced a

for $325. The price includes power supply, keyboard, serial interface, beeper, assembly instructions, chassis and cover. The optional CT-VM video monitor, sold assembled, requires the CT-64's power supply and sells for $175. Contact Southwest Technical Products Corporation, 219 W Rhapsody, San Antonio TX 78216."

new under $1000 Model 43 matrix teleprinter offering 30 character per second throughput, upper or lower case printing, and 132 column format capability on 11 inch wide fanfold paper. It features a 9 wire impact printhead mechanism. MOS technology is used throughout. The desk top terminal, which weighs approximately 30 pounds, is designed to be portable. Quiet operation makes it suitable for a variety of office environments. The 43 teleprinter is designed for interactive timesharing, data inquiry and response applications, and is interchangable with the Teletype Model 33 terminal. It is available with an EIA or 20 mA current loop interface and is designed for use on the switched net

Circle 609 on inquiry card.

.1

Nothing fancy. Just more hard core information. Fewer ads and a lot more articles for every level of experience.

Computer Notes.

Published in Albuquerque by MITS, Inc., the Altair1M people.

/■computer ' notes

2450 Alamo S.E.

Albuquerque, New Mexico 87106

B 8

Please send me a 1 year subscription to Computer Notes. $5.00 per year in U.S. $20.OO per year overseas.

NAME:

ADDRESS:CITY:

. STATE:

.ZIP_

COMPANY/ORGANIZATION

D Check Enclosed Mc Qr BAC/Visa #_

D Master Charge

□ BankAmericard/Visa Signature

Circle 146 on inquiry card.

139

work and point-to-point private line facilities. The terminal includes operator controls for 10 or 30 characters per second, half or full duplex operation, parity checking and printer test. The terminal is comprised of five major pluggable components and features builtin self-diagnostics for troubleshooting. For further information call Tom Race (312) 982-3134."

A sample of Teletype Model 43 listings:

Vector Announces New Enclosures

Tele

type

Co

rporatibn

5555

Tol

hy

Avenue

Skok

u,

111

. 60076

Circle 610 on inquiry card.

Circular Reasoning

^

v»V

J* ■:

^XJH

HEXADAISYTM is a new device which calculates the offset for relative addressing as used by the 6800, Z-80, 6502, SC/MP and F-8 microprocessors, adds and subtracts hexadecimal numbers, calculates 2's complements and converts decimal to hexadecimal numbers and back. All results within the range of 0 to 255 (decimal) can be read directly, while larger numbers are calculated two

VECTOR-PAK, a new line of enclosures from Vector Electronic Company Inc, 12460 Gladstone Av, Sylmar CA 91342, is designed to house laboratory equipment, instruments, development systems and computers. Internal structures such as optional card guides, brackets and straps permit installation of cards, modules and electronic components. The units are available in 17 sizes and ten colors. They are designed for the experimenter with a custom personal computer system, who wants a professional looking enclosure. Prices range from $65 to $95 without internal structures. Prices with the internal structures range from $125 to $185. Custom unit prices on request. Delivery is stock to four weeks."

Circle 613 on inquiry card.

hexadecimal digits at a time. The device is made from plastic in the form of a circular "slide rule" with waterproof printing. Available for $3.95 postpaid, with instructions, from E & L Pfeiffer Computer Products, Box 2624,Sepulveda CA 91343, or from local computer stores."

Circle 61 2 on inquiry card.

A New Microcomputer High Level Language Compiler

PennMicro announces the development of a true, code emitting compiler for Intel microcomputer systems: the SLAM compiler. SLAM (Symbolic Language Adapted for Microcomputers) is a high level language which uses signed 16 bit decimal integers and simple English-like statements to program microcomputers without any need to learn assembly or machine language. SLAM is said to feature a variety of conditional and subroutine commands, plus signed decimal numbers, simplified print commands, symbolic variables, and Englishlike program statements.

The compiler is source code compatible with the previously announced SLAM interpreter. This concept allows programs to be created, modified and debugged using the interactive nature of the interpreter, then translated into hexadecimal 8080 object code in Intel standard format when the user's program design has stabilized. The compiler provides for parameter linkage conforming to Intel conventions, absolute memory pointers and machine language subroutine calls. SLAM occupies less than 8 K of RAM. Versions are available for the Intellec 8/Mod 80, MDS-800, or SBC80 systems. The compiler and interpreter are available on paper tape in Intel standard hexadecimal format. Ininstruction manuals are supplied with each. Price for either product is $99; both are available as a package for $175. Delivery is stock to two weeks. Customers should specify MDS, Intellec 8, or SBC system-type, and available user programmable memory (RAM) size.

For more information, contact PennMicro, POB 5073, Lancaster PA 1 7604."

Circle 614 on inquiry card.

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 WJNDSOR- GARLAND. TEXAS 75042

(214) 276-1968

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

PerCom 'peripherals for personal computing'

140

Building a better computer wasn't easy. But we did it.

Introducing the MSI 6800 Computer System

When we set out to build the new MSI 6800 Computer System, we knew we had our work cut out for us. It had to be at least as good as the now famous MSI FD-8 Floppy Disk Memory System which is also pictured below. So, the first thing we did was analyze all the problems and drawbacks we had encountered with other 6800 systems, and then put our engineers to work on solutions. The objective: Build a better computer.

We started with power supply. We had big ideas, so we used a hefty 18 amp power supply. You can run full memory and several peripherals without the worry of running out of juice. We also put it in the front of the cabinet so it's out of the way.

The next step was the CPU Board. A separate baud rate generator with strappable clock outputs allows any combination of baud rates up to 9600. A separate strappable system clock is available and allows CPU speeds of up to 2 MHz. The new MSI monitor is MIKBUG software compatible, so you will never have a problem with programs. Additional PROM sockets are available for your own special routines and to expand the monitor. The CPU also contains a single step capability for debugging software.

To complete the system, we used an MSI 8K Memory Board which employs low power 2102 RAM memory chips and is configured to allow battery back-up power capability. A DIP switch unit allows quick selection of a starting address of the board at any 8K increment of memory.

If you're one of those people who understands the technical stuff, by now you'll agree the MSI 6800 is a better computer. If you're one who does not understand it yet, you'll be more interested in what the system can do . . . play games, conduct research and educational projects, control lab instruments, business applications, or just about anything else you might dream up that a microcomputer can do. The point is . . . the MSI 6800 will do it better.

The MSI 6800 Computer System is available in either kit form or wired and tested. Either way, you get a cabinet, power supply, CPU board, Mother board, Interface board, Memory board, documentation, instructions, schematics, and a programming manual. Everything you need.

There is more to say about the MSI 6800 than space permits. We suggest you send for more information which includes our free catalog of microcomputer products.

When we got to the Mother Board, we really made progress. It has 14 slots to give you plenty of room to expand your system to full memory capability, and is compatible with SS-50 bus architecture. Heavy duty bus lines are low impedance, low noise, and provide trouble-free operation.

With all this power and potential, the interface had to be something special. So instead of an interface address in the middle of memory, we put it at the top . . . which gives you a full 56K of continuous memory. Interfaces are strappable so they may be placed at any address. An interface adapter board is compatible with all existing SS-50 circuit boards and interface cards. All MSI interface cards communicate with the rear panel via a short ribbon cable which terminates with a DB-25 connector. All baud rate selection and other strappable options are brought to the connector so they may be automatically selected by whatever plug is inserted into the appropriate interface connector. Straps may also be installed on the circuit board.

Building a better computer was not easy. Becoming the number one seller will be.

See the MSI 6800 Computer System at Personal Computing '77 - Atlantic City.

THicUveAtScientific

i)K4t*U*HeHt&

220 West Cedar • Olathe, Kansas 66061 913/764-3273 • TWX 910 749 6403 (MSI OLAT)

aDDDnnnDDDDDnDDDannnnnDn

D

□

D

NAME.

Midwest Scientific Instruments 220 W. Cedar, Olathe, Kansas 66061

□

D D □ □

D

ADDRESS

CITY

STATE

ZIP.

0010877

Circle 147 on inquiry card.

Simple Algorithms for Calculating Elementary Functions

John Rheinstein 10 Gould Rd Lexington MA 02173

( START 1

Y = 1 0

i - o

no

no

6. = R-l 1

a. = argtan(6.J

Vi - Ai-*j

^ Ai+,<0?^

XR1 " Yi+1 ■

*i + 6iYi Yt -8.X|

Ai" Ai+1+Qj j =1 + 1

^ j > n

ax ?

1

an(A 1 = o

X Y

"

(

STOP

)

Figure I: Flowcharted algorithm for calculating the tangent of A. It is preferable that the value of A be in the first circle, 0°<A<360°.

Several years ago, shortly after obtaining an HP-35 calculator, I became interested in the algorithm utilized by Hewlett-Packard to calculate the sine and cosine functions. Upon looking through the literature I found that the simple elegant algorithm employed is based upon the CORDIC technique developed by Voider. The basic algorithm was first described by Henry Briggs in 1624 in Arithmetica Logarithmica. This algorithm, which does not seem to be widely known, should be easily implemented in a microcomputer. Further, a simple variation of the algorithm, described by Walther in "A Unified Algorithm for Elementary Functions" (see bibliography), allows the calculation of hyperbolic functions and, more interestingly, the exponential function. Inverting the procedure allows the calculation of the inverse trigonometric and hyperbolic functions and the logarithm. These algorithms are generalizations of the well known add and shift algorithm used for multiplication.

Trigonometric Functions

The flowchart for calculating the tangent of an angle is given in figure 1. The algorithm may be carried out in any radix, R, generally the decimal (R = 10) or the binary (R = 2). The radix should be chosen so that the multiplication indicated in the iterative calculation of Xj+-| and Yj+-| may be performed by shift operations only. Thus no multiplication or division is required until the final step of the algorithm is reached. The calculation may be in either degrees or radians, as long as either one is used consistently, a-, and 5; should be prestored in memory and called as a look up table. It is not required that the calculation be performed in the first circle (0° < Ao<360°); however, this is generally to be preferred. Care must be exercised if the final value of Y is very close to zero (A0 is close to 90°

142

or 270 ) since division by a very small number, or zero, is apt to blow up. A separate test for this condition should be included. Max indicates the number of iterations through the major loop and should be at least one larger than the accuracy desired. For example, if an accuracy of about one part in R~$ is desired, then Max should be about 6.

The final value of X obtained after exiting the major loop is proportional to the sine of A0, and the final value of Y is proportional to the cosine of A0, the proper signs being maintained. Thus having obtained the tangent of A0, the sine and cosine may be obtained.

sin(A0)

cos(Ac

(sgnX)(tan(A0)) v/l + tan2(A0)

sin(A0) tan(A0)

where sgnX is the algebraic sign of X.

Hyperbolic Functions

A strikingly similar algorithm may be used to calculate the hyperbolic tangent of a number. For most of us this does not seem to be a very useful function, and the need for calculating it may not be clear. Having tanh(A0) we can calculate sinh(A0) and cosh(A0).

sinh(Ac

cosh(A0) =

tanh(A0)

\/(1 - tanh2(A0))

s/(1 - tanh2(A0))

Having the capability to calculate the hyperbolic sine and cosine is something that most of us could get along without.

The next step provides the exponential function, which is often of interest.

exp(A0) = sinh(A0) + cosh(A0)

Using the identities

sinh(—x) = —sinh(x) cosh(—x) = cosh(x)

we also obtain

exp(-A0) = -sinh(A0) + cosh(A0).

( START J

X - 0

o

Y - 1

tanh~1(6,| A. — a.

i - J + 1

V

tanh(A } =-y

1

STOP ]

Figure 2: Flowchart for calculating the hyperbolic tangent of A. The value of A should be between 0 and 5 because the hyperbolic tangent rapidly approaches unity for values greater than 5.

The hyperbolic tangent approaches unity rapidly for arguments greater than about 5, causing a loss of accuracy in the algorithm. Thus it is best to prescale A0 to the range 0 < AQ < 1. For prescaling, the following identity may be used.

exp(Qloge(R) + D) = RQcxp(D).

Powers to any base may now be calculated. Setting D to zero above gives

exp(Qloge(R)) = RQ

143

from which we can obtain, for example

10Q = exp(2.3025851Q) 2Q = exp(0.69314718Q).

Figure 2 shows the flowchart for calculating the hyperbolic tangent. Again aj and 5j should be prestored in memory and called by means of a look up table. It is relatively easy to combine these two algorithms into one. This saves some memory, but at the expense of control instructions. For this algorithm we again find that the multiplications carried out within the loop may be performed by shift operations only.

The Inverse Functions

Having implemented these two algorithms

utilizing table look up procedures for the as and 6s, the inverse tangent and inverse hyperbolic tangent can easily be calculated with the same look up tables. Flowcharts are shown in figures 3 and 4. The arcsine and arccosine as well as the inverse hyperbolic sine and cosine may also be easily obtained. Another function of more general interest, the logarithm, is obtained from the inverse hyperbolic tangent (tanh-') by making use of the identity

loge

2 tann"1 (

1

x + 1

The logarithm to any base, b, may be obtained

logb(x) = loge(x)/(loge(b)).

( START J

T"

f START J

0 0

no

'

no

6. = R"j

J a. = arctanlS.)

Vi ■ Xi-Vi

I

Hf yes

V1 ■ zi+1 ■

Y. +6.X.

i I i 2. +a.

i I

X. = Xi+1+6jY.

j -1 + 1

^ i> l\

flax ?

*

Yo = 1

Z « 0 0

i - 1

no

no

6. - R~'

a. = tanh- (6.)

V1 =xi-5iYi

^ Vi<0? J^ y*yes

Yi+1 " Zi+1 "

y. -6.x.

1 1 1 1. +0.

1 1

xi " xi+i+6jYi i - J +1

' j > n

flax ? ^>

c

Figure 3. Flowchart for calculating the arctangent of X. For this algorithm to work accurately, X should be a positive number.

3

Figure 4: Flowcharted algorithm for calculating the inverse hyperbolic tangent of X. The value of X must be between 0 and 7.

144

When calculating logarithms, prescaling should be carried out so that only the mantissa is calculated.

Given the arctangent, the arcsine and arccosine may be calculated from

arcsin x = arctan

Listing 1: A BASIC program for determining the tangent or arctangent of an angle. The program was written using the flowcharts of figures I and 3. The sample run glues a demonstration of the accuracy attained with these algorithms.

arccos(x) = arctan (

If the argument of the arccosine is negative, 180° should be added to the result obtained from the above equation.

Given the inverse hyperbolic tangent, or logarithm, the inverse hyperbolic sine and cosine may be found.

sinh '(x) = loge (x + 7(1 + x2)

cosh-1 (x) = loge (x +vfx2-1))

Basic Program

A listing of a BASIC program which uses these algorithms to calculate the tangent and arctangent is shown in listing 1 to indicate the manner in which these algorithms can be used. The program was written in MaxiBASIC for the Digital Group Z-80 system but it should run on almost any BASIC with only minor modifications, if any. This program operates in radix 10 (R = 10). I also tested a version in radix 2 (R = 2) changing only statements 10 and 20 and the DATA statements.

This program will operate well in BASIC as listed, but the real power of the algorithms can best be obtained if a machine language version is utilized. The multiplication indicated in statements 220, 230, 380 and 400 consume much of the'time. In a machine language version these may be replaced by shift operations which take considerably less time.

Comments

These algorithms could easily be used to augment the set of available functions written in BASIC as subroutines or they could be added as machine language subroutines for high speed operation. The accuracy can be made quite high. For the sample program seven significant digits will be obtained.

I do not know whether Hewlett-Packard uses algorithms similar to these for all of the functions described. Walther reports that Hewlett-Packard did construct a hardware floating point processor of a generalized version of these algorithms, and reports excellent performance."

5 6

10 20 30 35 40 45 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 999

REM** PROGRAM TO CALCULATE TAN OR ARCTAN OF REM AN ANGLE (IN DEGREES)

LETR = 10

LET M = 8

FOR J = 0 TO M

REM** D(J) = DELTA SUB J

LET D(J) = Rt(-J)

REM** AKJ) = ALPHA SUB J

READ AKJ)

NEXT J

PRINT "DO YOU WANT TAN (ENTER 1) OR ARCTAN (ENTER 0)'

INPUTB

IF B - 1 THEN 120

IF B = 0THEN 300

GOTO 70

PRINT "INPUT A(0)";

INPUT A

LET W = A

LET X = 0

LET Y = 1

FOR J = 0 TO M

LET A = A -AKJ)

IF A <0THEN 250

LET X1 =X

LET Y1 =Y

LET Y = Y1 - D(J)*X1

LETX = X1 + D(J)*Y1

GOTO 180

LET A = A + AKJ)

NEXT J

LETT = X/Y

PRINT "TAN(";W;") = ";T

GOTO 70

PRINT "INPUT X(0)>0";

INPUT X

LET W = X

LET Y= 1

LET Z = 0

FOR J = 0TO M

LET X1 =X

LET Y1 = Y

LET X = X1 - D(J)*Y1

IF X < 0 THEN 430

LET Y = Y1 +D(J)*X1

LETZ = Z + AKJ)

GOTO 360

LET X = X1

NEXT J

PRINT "ARCTAN(";W;") = ";Z

GOTO 70

DATA 45, 5.7105931, 5.729387E-1, 5.729576E-2, 5.7295779E-3

DATA 5.729578E-4, 5.729578E-5, 5.729578E-6, 5.729578E-7

END

Sample Runs:

DO YOU WANT TAN (ENTER1) OR ARCTAN (ENTER 0)? 1

INPUT A(0)? 26.3

TAN (26.3) = .49423074

DO YOU WANT TAN (ENTER1) OR ARCTAN (ENTER 0)? 0

INPUT X(0) > 0? .49423074

TAN( .49423074) = 26.300001

ARCTAN (.49423074) = 26.300001

1. Jack E Voider, "The CORDIC Trigonometric Computing Technique," IRE Transactions on Electronic Computers, September 1959, page 330.

2. J S Walther, "A Unified Algorithm for Elementary Functions," Proceeding, Spring Joint Computer Conference, 1971, page 379.

145

Problems for Computer Solution by

Steve Rogowski, Teacher Edition. A collection of mathematical problems designed to stimulate thought and encourage research by students towards the goal of a final solution. The subjects range from arithmetic through calculus and on to problems that have yet to be resolved. An analysis of each problem provides ideas on logical approaches to a solution, and a sample program demonstrates one possible final solution. $9.95.

Chemistry with a Computer by Paul A

Cauchon. People are always looking for details of applications for the computer. It is one thing to say "gee whiz wouldn't it be nice if. . ." but such thoughts are but the stimulus to action. One result of a "gee whiz" idea is a series of educational and tutorial BASIC programs for use by teachers of chemistry, invented by Paul A Cauchon and published by Educomp Corporation. This book contains a collection of tutorial, simulation and problem generation programs which can be employed to advantage by teachers in high schools or colleges wherever a BASIC facility is available. If you're a chemistry professor or teacher by trade, or just a hobbyist interested in chemistry, this book will prove to be an invaluable tutorial aid. $9.95.

Take a Byte of APL

APL—An Interactive Approach Second

Edition, Revised, by Gilman and Rose. Here's an excellent way to introduce yourself to the APL language. APL is rapidly becoming one of the most popular high level languages in the computer field because of its clarity and conciseness. Gilman and Rose have extensively updated their popular book to include the latest information about the language and the various forms of it which are now in use. Since the examples are all carefully spelled out, APL—An Interactive Approach is particularly recommended for those who do not have access to an APL terminal. Answers to all problems are included. $11.95.

The Underground Buying Guide, by

Dennis A King. Here at last is a source book for all those hard to find suppliers! It's designed especially for computer hobbyists, experimenters, hams and CB'ers, and can tell you where to buy items like connectors, discrete components, electronic music supplies, instrumentation, analog to digital and digital to analog converters, and synthesizers. The list goes on to include Teletypes, speakers, microcomputer software, cassette units, floppy disks and many other items. It will be an invaluable addition to your reference library. $5.95.

1

The

Underground Buying Guide

for Hams. CBets. Experimenters and Computer Hobbyists.

PCC'S Reference Book of Personal and

Home Computing. Ever try to find the addresses of some manufacturers of, say, tape cassette or floppy disk interfaces for micros? Frustrating, isn't it? Well PCC has done something about it. This book lists hundreds of companies and stores selling hardware, software, and services. Survey articles on software, hardware, kits, applications and the future for the experienced and the not-so-experienced user of micros. Also included in this edition are bibliographies for further reference, book reviews, and an index of the articles from the major hobbyist magazines. $4.95.

Send to:

Bits, Inc.

70 Main Street

Peterborough NH 03458

Name

Address

Check Payment method:

My check is enclosed

Bill my MC No..

.Bill my BAC No..

. Exp. date . Exp. date.

. books

City

State

Zip Code

Signature

You may photocopy this page if you wish to leave your BYTE intact.

Total for all books checked Postage, 50 cents per book for. Grand Total

Prices shown are subject to change without notice.

All orders must be prepaid.

In unusual cases, processing may exceed 30 days.

rcle 121 on inquiry card.

146

Circle 183 on inquiry card.

Glubs and Newsletters

Unofficial Cosmac Users' Newsletter

We recently obtained firm evidence of a group of strange beings in a remote corner of New York State. Their latest communique read very much like this:

There exist small groups of computer buffs who are not interested In buying a complete "off the shelf" computer system, or even a kit. These strange people would rather take a single microprocessor chip, study it, play with it and caress the documentation until they have learned about possible hardware options. These misfits in the world of printed circuit boards then dig out their wire wrap tools (which they use so that their wiring errors are only semipermanent) and have the audacity to build their first systems for less than the price of a good tape recorder. True, these systems are very limited, but they grow easily as cash and ideas become available, until they rival any of the ready-made systems at a fraction of the cost.

One such group of people, who happen to have chosen the RCA CDP 1802 as the basic building block for their systems, exists in Western New York.

Their interest in this chip was kindled by the Popular Electronics article on the Cosmac Elf. They have added hexadecimal keyboards, control systems, el-cheapo 6 digit displays and expanded memory to the tiny Elf. Some of these systems are capable of timing an egg, displaying the time of day, playing games and other vitally important things.

All letters containing worthwhile, workable hardware or software ideas for the CDP 1802, and a stamped selfaddressed envelope will entitle their authors to receive a free copy of the Unofficial Cosmac Users Newsletter.

Future editions of this dubious technical publication may or may not be available, depending on response.

Terry Wolfe, Cosmac Newsletter

3812 Orchard St

Walworth NY 14568.

The West Virginia Computer Society. . .

. . .is off to a very fast start. Their first

Ample Juice

Constant voltage power supplies by Parasitic Engineering.

Give your Altair, IMSAI or custom system the power it needs to keep your programs up and running through brownouts and power fluctuations. The famous Parasitic Engincring Constant Voltage Power Supplies deliver full output wilh line voltages as

1210 10th St., Bel

low as 90 volts or as high as 140 volts. 12-amp kit designed for Altair 8800(A), $90 postpaid. Universal 20-amp kit, $200 postpaid. (Cal. res. add tax).

9

Thinker Toys

keley, CA 94710

Sec ii at your local computer shop. Or place BAC/MC orders to 800-648-5311.

MICROCOMPUTERS 19" RACK, S-100 BUS CARD CAGE

I I I I I I I I I L

RUGGED

20 SLOTS

EXTRUDED

CHANNELS

ECT-100 CARD CAGE 8t

BUS TERMINATION GROUND PLANE SOLDER MASK 12.25"Hx8"D OTHER BOARD ... .KIT $100

ECT-100-F with 20 CONNECTORS 81 GUIDES .. KIT $200 ECT-100-8080 CARD CAGE MICROCOMPUTER KIT $320 ECT-100-Z80 CARD CAGE MICROCOMPUTER . KIT $420 PS HEAVY DUTY 30A POWER SUPPLY KIT $100

10 SLOT TABLE TOP SYSTEMS

8080 or Z80 10 SLOT TABLE TOP MICROCOMPUTERS WRITE FOR SYSTEMS VARIATIONS & LOW PRICES

if

CPUs

' i , | - - , 8080 or Z80

Ii- BJfliiili NEEDNOFRONTPANEL . - 3>P-.R-.B:™:* ffij|JUMPON RESET CIRCUIT

MOTHER BOARDS 10 SLOTS, 20 SLOTS or 21 SLOTS

IPR0T0TYPING BOARD .$28 8K RAM KIT $295*

I EXTENDER CARD $24 16K RAM KIT $555|

ELECTRON CONTROL TECHNOLOGY

P.O. BOX 6, UNION, NEW JERSEY 07083 (201) 686-8080

I I I I I I I I I J

147

Circle 151 on inquiry card.

What's Cooking?

- - - The Lancaster Series!

ttii«i-~._

.14*.

ACTIVEFILTER cookbook

• TV

TYPEWRITER COOKBOOK

TV Typewriter Cookbook by Don

Lancaster. A complete guide to low cost television display of alphanumeric data, several chapters of which were published ahead of the book in early issues of BYTE magazine. $9.95.

Active Filter Cookbook by Don Lancaster. The chief chef of electronics Cookbooks concocts another gourmet appetizer. Run to this book when you need to find a starting point for the design of a filter for use in an electronic application. $14.95.

The TTL Cookbook by Don Lancaster. Start here with Don's tutorial explanations of what makes TTL logic design tick. 335 pages, $8.95.

CMOS Cookbook. Don Lancaster has

taken his highly successful TTL Cookbook formula and done it again. This bigger than ever (414 pages!) book tells you how to use CMOS, the exciting new power logic family. $9.95.

Modern Operational Circuit Design by

John L Smith. An absolutely essential introduction to the use and application of operational amplifier systems. The book contains both theoretical background information and practical circuit suggestions which can be used to advantage by the experimenter. $23.25 (hardbound).

Linear IC Principles, Experiments, and

Projects by Edward M Noll. From basic principles to complicated systems, from simple amplifier experiments to applications in radio, TV and control systems, this book can improve your knowledge of the way circuitry of the analog world really works. $8.95.

LINEAR

WNBHa.Ort«IUMS.Mf»Hrn

rmtiMtm m wmMi n

X 1

WUhi

il

■ \

,

■

, '

1

Practical Solid-State Circuit Design by

Jerome E Oleksy. A self study course in the design of semiconductor circuits from the simple transistor to the complex operational amplifier. $5.95.

Fundamentals and Applications of

Digital Logic Circuits by Sol Libes. An invaluable tutorial background volume on digital logic, arithmetic, IO concepts and interfacing to analog devices; written by one of the founders of the Amateur Computer Group of NJ. This book acquaints the reader with much of the terminology and background concepts of digital hardware. $6.95.

Send to:

BITS, Inc.

70 Main Street

Peterborough NH 03458

Name

Check Payment method:

My check is enclosed

Bill my MC No.

Bill my BAC No.

Address

Exp

date

3.

Total for all books checked

$

Postage 50 cents per book for

books $

Grand Total

$

City

State

Zip Code

Signature

L

You may photocopy this page if you wish to leave your BYTE intact.

Prices shown are subject to change without notice.

All orders must be prepaid.

In unusual cases, processing may exceed 30 days.

Circle 121 on inquiry card.

148

Circle 152 on inquiry card.

meeting drew nearly 70 hobbyists. A newsletter is already off the press just a few weeks after their initial get together.

New clubs naturally need active imaginative people to form a strong nucleus. So, West Virginians, here's a chance to get in on the ground floor of what could well be a successful venture. Computer oriented ham and CB people are more than welcome. Bill England is the man to contact at 167 Iroquois Trl, Ona WV 25545, (304) 7369794.

Southern New England Computer Society

SNECS is a well-established group serving Connecticut and Western Massachusetts. Meeting places vary but the Hartford area is most often chosen. For more information write Southern New England Computer Society, 267 Willow St, New Haven CT 06511, or call (203) 562-4739.

The Eastern Iowa Computer Club

Hobbyists may contact Samuel E Dillon, 1125 Washington Dr, Marion OH 52302, for information regarding the Eastern Iowa Computer Club.

Amateur Computer Group of NJ

ACGNJ continues to grow steadily in membership and ability to provide club services. Group purchase opportunities, workshops and a consistently improving newsletter are among this club's accomplishments. Included in the May issue of the ACGNJ News are a series on "Selectric Interfacing" by Charles Yates, a "6800 Disassembler" test program by T D Farnsworth, a "6800 Memory Test Program" by Brian Loofbourrow and an article on "Interfacing a Papertape Reader to the SwTPC 6800" by Michael P Burton. Write Amateur Computer Group of NJ, UCTI, 1776 Raritan Rd, Scotch Plains NJ 07076.

Ventura County Computer Society

Write POB 525, Port Hueneme CA 93041, for information about the Ventura County Computer Society.

KIM Users' Notes — A Change of Address

Eric Rehnke, Publisher of KIM Users' Notes has changed his address from 425 Meadow Ln, Seven Hills OH 44131 to 1330 Summitt Blvd, Broadview OH 44147.

Japan Microcomputer Club

RAMS' Memory Pages printed a letter from Koji Yada, a member of the Japan Microcomputer Club. Mr Yada says that the

"We may have the surplus

electronics

you need!"

Terminal/Keyboard With Schematics $250.00

• CRT Terminals •Assemblies

Tape Drives S800.00

• Peripherals

• Components

Keyboards $40.00 to $60.00 (ASCII Encoded!

Equipment Cabinets $45.00 to $60.00 (19" With Fan]

Send for a free catalog or call Bill Blaney, toll free 800 258-1036

in NH 603-885-3705

\twl Come to our showroom

IAIUFLDWIDE ELECTFumcsjnc.

10 Flagstone Drive, Hudson, New Hampshire 03051

149

Circle 153 on inquiry card.

Washington D.C.'s Newest Computer Store

Intelligent Business

Machines, Inc.

Cromemco, IMSAI, TDL, Administrator I, SEALS, DIP Chips, etc.

Come see us at

938 Ellsworth Dr. Silver Spring, MD 20910

computer depot: ind

351 5 W. 70th Street

Minneapolis MN 55435

612-338-2695

Upper Midwest

Headquarters

for

PROCESSOR TECHNOLOGY, IMSAI, POLYMORPHIC SYSTEMS, DIGITAL GROUP, WAVE MATE, CROMEMCO, VECTOR GRAPHICS, TDL, SEALS, TARBELL, MICRO DESIGNS, NORTH STAR, NATIONAL SEMICONDUCTOR, FAIRCHILD SEMICONDUCTOR, MOSTEK, E & L INSTRUMENTS, SAMS, TAB, HAYDEN, WILEY, MC-GRAW HILL

Catalog Free

C40

Circle 154 on inquiry card.

Circle 155 on inquiry card.

T'S A GREAT BIG COMPUTER WORLD

Tj But You Only Need

*-THE COMPUTER CORNER1

"**" •SOL - A New Dawn Is Here!

-V<~ • IMSAI 8080

~**~ •POLY-88

~*~ »TDL Z-80

-*~ •Memories & I/O Boards

-W

-H . •Computer Book Service

pi •Magnetic Tapes & Disks

-H_ • Full Line of Magazines

H_ • Brain Games & Puzzles

_K_ •Workshops & Club Information _

~y~ Visit THE COMPUTER CORNER for

___ all your computer needs. Stop in and

browse — you'll like our personal service, -pf

hi THE COMPUTER CORNER

White Plains Mall - Upper Level W 200 Hamilton Avenue

_^f- White Plains, New York 1 0601

-W~ Tel: (914) WHY-DATA

Ample Parking 10-6 Daily & Saturday

V , 10-9 Thursday \ ^W

%j^TtTTTTTT^

Circle 156 on inquiry card.

NOW HEAR THIS!!

ALPHA DIGITAL SYSTEMS

SELLS IMSAI KITS AND TOTAL INTEGRATED SYSTEMS ASSEMBLED. CHECKED-OUT, AND WARRANTED AT KIT PRICES.

ALPHA I SPECIAL DOS SYSTEM DEAL i includesi

• IMSAI hiiko Computer

• 22 Slol Mother Bd. With Conn.

• 16 K RAM

• 90 K Disk (with Controller)

» Selectric typewriter (with Controller)

• DOS-BASIC Software ^ssemhlcd System Total 53995

t Less Selectric) $2495

Select any kit or system of kits from the IMSAI price list, order from us and receive Ihe assembled unit for the same price If you don't have a price list, drop us a line and we will send you one Terms: Cash with Order Prices in elude freight ( NC Residents Add 4D0 Sales Tax )

How can ALPHA DIGITAL SYSTEMS do all this',' Its simple. ALPHA DIGITAL WANTS TO HE YOUR COMPUTER COMPANY.

ARC ALPHA DIGITAL SYSTEMS ""J RT. 4BOX171A

BOONE, NC. 28607

(704) 264-7946

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 for further information.

Rotundra Cybernetics

i\

Box 1448, Calgary, Alta. T2P 2H9 Phone (403) 283-8076

SOFTWARE

DEBUGGED READY-TO-RUN

Special Program Packages

,,$19.95

loncia Reitdenlf add

4% Sales Tax

SP 8080 (X

EACH CASSETTE CONTAINS SIX PROGRAMS

IPLEASE SPECIFYBYTE. BIPHASE. TARBELLI

LISTING OF PROGRAMS

INCLUDEO WITH CASSETTE

COMPLETE SOURCE LISTINGS

OF PROGRAMS $ 3.95 & up

Slant Programming Cassettes

Designed Especially For

microcomputers

$2.00 each (

Send For Catalog Of Our Programs. $1.00

fTlicro-Bube

5870 MIAMI LAKES DRIVE EAST

MIAMI LAKES. FL 33014

1305) 822-6010

Circle 197 on inquiry card.

Circle 158 on inquiry card.

Circle 169 on inquiry card.

of tkt* cU> -fV UsesS tff

heatuk/j::

n°*) cod's ^$.T$fy*&U Apr J *k lifted &

Nv+t ^3veA, cf t>GSi\

DETROIT'S FIRST AND FINEST

Trits Si ii| 11 :i Hari

SUMMER SPECIALS

Decwriter II — *1700.°° Lear Siegler ADM 3A — *829.°°

FULL BUSINESS PACKAGES AVAILABLE ALL MAJOR BRANDS

Call for Lowest Quotes

(313) 576-0900

Monday thru Saturday: 10:30 to 7:30 1800W. 14Mile ■ Royal Oak, Ml 48073

Today's Most Complete Electronic Assembly Tools Catalog

FREE from Contact East!

• Over 5000 hand tools listed in 160 pages.

• Off-the-shelf delivery.

• Pricing shown for all items.

• Easy to order by phone or mail-MASTER CHARGE accepted.

• Circle reader service card for your FREE catalog.

contact east, inc.

7 Cypress Drive, Burlington, MA 01803 , 617-272-5051

Circle 160 on inquiry card.

Circle 161 on inquiry card.

Circle 162 on inquiry card.

club has grown to a membership of over 1000 since its formation last Fall. They would be glad to establish a newsletter exchange. Anyone speak Japanese? Write Koji Yada, Manager, Computer Center, Electrotechnical Laboratory, Tanashi Branch, 5-4-1 Mukodi-Machi, Tanashi-Shi, Tokyo JAPAN.

Charlotte Computer Society

The Charlotte Computer Society meets on the third Wednesday in Room 200, Benny Hall, at the University of NC at Charlotte. No address or phone number was given.

The Computer Network of Kansas City

Those hobbyists looking for club activity in the Kansas City area should get in touch with the Computer Network of Kansas City, 968 Kansas Av, Kansas City KN 66105.

Rochester NY - RAMS

There's something refreshing about Memory Pages, the publication of the Rochester Area Microcomputer Society. It's not a large or impressive newsletter by most standards, but the articles tend to be clear and intriguing. Hats off to a small club that does its work well. One new series that holds some promise is "How Not to Build a Microcomputer System" by Peter Helmers, a BYTE contributor. Here's a chance to cash in on an expert's mistakes. The series started recently and should run for some time. The address is RAMS, POB D, Rochester NY 14609.

Permian Basin Group in Texas

The Permian Basin Computer Group in the Midland and Odessa area of Texas is still meeting once a month. The Midland Group meets the second Monday of each month at 7:30 PM in the Student Union Building on the Midland College campus. The Odessa Group meets the second Saturday of each month at 1 PM in the Electronic Technology Building, Room 203, on the Odessa College campus. For additional information write John Rabenaldt, POB 3912, Odessa TX 79760, or phone (915) 332-9151, 9 AM to 5 PM Monday thru Friday or (915) 697-4607, after 6 PM.

Are You Looking for a Way to Give Your Club Greater Visibility?

Just send a letter to Peter Travisano, BYTE Publications Inc, Peterborough NH 03458. If you put out a newsletter, send that along, too, or put us on your regular mailing list. ■

Circle 163 on inquiry card.

M6800

HARDWARE/SOFTWARE

• REAL TIME OPERATING SYSTEM

RT/68 is mask-programmed on a 6830 ROM thai replaces the Mikbug* ROM in your SWTPC 6800, Motorola Evaluation Module, etc. It is a powerful real time, multiprogramming operating system with many versatile system functions. RT/68' can support up to 16 concurrent programs at 8 priority levels.

MICROWARE has improved the Mikbug* functions, added four more (Dump, Exec, Svs, Bkpt) and made tape load and punch program-usable. RT/68'is software and hardware compatible with Mikbug*and supports ACIAor PIAtype interfaces. RT/68MX 55.00

• ANALOG INTERFACE SUBSYSTEM

Consists of a PIA connected to a high speed, high accurancy 8 bit digital-to-analog converter. Also included is a buffer and precision comparator to implement a analog-to-digital converter using one of several software techniques listed in the manual. Applications include sensor input/output, audio synthesis, vector graphic displays, etc. Circuit board is plugcompatible with the SWTPC 6800 I/O buss.

AS1-K (COMPLETE KIT) 87.50

AS1 (ASSEMBLED and TESTED) 115.00

• SERIAL I/O INTERFACE

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

SC1-K (COMPLETE KIT) 35.00

SC1 (ASSEMBLED and TESTED) 50.00

THE MICROWARE CORPORATION

HO. BOX 954 Des Moines,Iowa 50304

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

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

Canada Boards DO Something

!

v

y stems,

inc

m

■■'

1

1

~^"\

'■',#

i

't. i

I

0

■

11

i

i i

lit

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 PC321B $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.

Canada

systems, inc.

(formerly comptek)

P.O. Box 516

La Canada, CA 91011

(213) 790-7957

151

Circle 164 on inquiry card.

Circle 121 on inquiry card.

The Great

International

Math On Keys

Book

ilrei

From Texas Instruments

Do you need a numerical algorithm for calculating exchange rates in a hotel on a foreign trip? Or figuring those mysterious "points" when facing the sanctimonious charisma of a banker at mortgage arrangement time? This book is a compendium of simple explanations and step by step procedures for accomplishing numerical solutions to numerous commonly encountered situations in daily life. Each entry is characterized by a statement of the problem, including the elements of theory required, and the keystrokes needed to solve the problem on an algebraic entry calculator. This is an invaluable sourcebook of information for the person who is inclined to manipulate numbers. $4.95, plus 50 cents postage.

Send now to: BITS, Inc. I 70 Main Street

Peterborough N H 03458

1 Please allow six weeks for delivery.

Master Charge and BankAmericard Welcome.

For convenience, use the coupon on page 146 or 148, writing in this book's title.

J^ 000 00 0000 D £H 0

(omputebNtom:

Vl/ I DO 0 EJ V

Mall Order Computer Store

IMSAI 8080 kit with 22 slots (limited quantity) $ 599.00

IMSAI 4k RAM 129.00

IMSAI 16k RAM 419.00

IMSAI 32k RAM 699.00

IMSAI 64k RAM 2,459.00

When Ordered With Kit

TERMS: Shipping charges — $10 per CPU or large units, $1 50 per kit, $2

minimum per order Provided slock is available, we ship immediately tor payment by cashiers check or money order.

Allow 3 weeks tor personal checks to clear Nevada residents, please add appropriate tax

PRICES SUBJECT TO CHANGE WITHOUT NOTICE

PLEASE, NO PHONE ORDERS ACCEPTED

Phone: (702)734-1104 Write: Metatec Corporation

3453 Industrial Road Las Vegas, NV 89109

What's

Altair (S-100) Bus Interface New Products

// one thing is fairly obvious, it is that the Altair 8800 bus, sometimes referred to in advertisements as the S-100 bus, is de facto a standard among many of the products we've seen to date in this industry of personal computing systems. This point was made quite dramatically when we went through the new products file for this month and found 12 different releases about various products which interface to the Altair bus: The products range widely in purpose and intent, but we've grouped them together since they address a common backplane definition. ■

Speech Synthesizer

Computalker Consultants (D Lloyd Rice et al) have sent this picture of the Model CT-1 Speech Synthesizer, a $395 assembled and tested module for the Altair (S-100) bus. The Model CT-1 is designed to optimize the trade-off between low data rate speech and directly digitized speech. Low data rate speech relies on canned definitions for the sound of each phoneme, which produces mechanical sounding speech. Digitized speech, while remaining faithful to the original sound, requires 10 K to 20 K bytes per second of storage and is inflexible to phonetic manipulation.

With the Computalker Model CT-1, the sounds are defined in real time under software control. Parameters which represent the phonetic structure of human speech are transmitted to the CT-1 at a rate of 500 to 900 bytes per second, depending on the data compression techniques used. This allows the production of highly intelligible and quite natural sounding speech output. Speaker characteristics and language or dialect variations are retained in the output.

The Computalker Model CT-1 can also be operated in a low data rate mode using phoneme definitions contained in the CSR1 Synthesis-by-Rule software package, which is available for $35. The Computalker speech synthesis system, used in this way, has the

Circle 148 on inquiry card.

152

Circle 1 59 on inquiry card.

advantage that the software driver can easily be modified to keep the naturalness and intelligibility of the speech output up to date with the constantly evolving state of the art of rule governed speech.

The Model CT-1 is a factory assembled and tested board, 5 1/4 by 10 inches, which occupies a single card slot. It requires a block of 16 output locations, one byte (8 bits) each, relocatable to any hexadecimal boundary via an onboard selector switch. Power requirements are +8 V unregulated (or +5 V regulated) at 170 mA typical, 250 mA maximum, and ±16 V unregulated (or ±12 V regulated) at 85 mA typical. Delivery is from stock to 45 days. Computalker Consultants is located at POB 1951, Santa Monica CA 90406."

Circle 616 on inquiry card.

Vocal Input to your Computer

A new system compatible with all Altair (S-100) bus computers to provide voice input and control, and replacing keyboards in many instances, has been announced by Heuristics, a Los Altos CA speech research firm. Known as SpeechLabTMj the system is available in selected computer stores and directly from the manufacturer for $249 in kit form or $229 assembled and tested.

SpecchLab digitizes and extracts data from speech waveforms and applies pattern matching techniques in order to

computer enterprise/

Your Mail Order Computer Shop...

IMSAI8080 kit with 22 slots (limited quantity) $645.00

TDLZ-80 ZPU (the one with full software availablenow) 242.00

Edge Connectorsa/idguides for IMSAI each 4.25

EdgeConnectorsandguidesforlMSAI 10for 40.00

Vector Graphic 8k RAM kit with 500 ns chips 225.00

Seals 8k RAM kit with 250 ns chips 260.00

NorthStarcompleteMicro-DiskSystemkit 599.00

WETAKE

MASTERCHARGEORBANKAMERICARD

For phone and mail orders...

(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 • SEALS ELECTRONICS

CALL: (315)637-6208

WRITE: P.O. Box 71 • Fayetteville, N.Y. 13066

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 (617) 423-1900 ROBERT MARLOWE

PERRI-WHITE & ASSOCIATES, INC. 5373 W. ALABAMA PLACE HOUSTON, TEXAS 77056 (713). 961-5500 FRANK COLLINS

Management Consultants

Specializing in Data Processing/Systems Engineering

All Replies Held In Strictest Confidence

153

Circle 168 on inquiry card.

Circle 100 on inquiry card.

Why Wait?

- ~"'~ ~~ ■'-■

■• — ■ - ' '~\\f

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.

21 START-AT-HOME COMPUTER BUSINESSES

in the shoestring, start-at-home

computer business handbook

CONSULTING •PROGRAMMING ©SOFTWARE PACKAGES *C0M

FREELANCE WR I T I NG • SEM INARS • TAPE/D I SC CLEANING FIELD SERVICE • SYSTEMS HOUSES • LEASING#SUPPLIES PUBL I SHING • TI ME BROKERS • HARDWARE DISTRIBUTORS SALES AGENC I ES • HEADHUNTING ©TEMPORARY SERVICES USED COMPUTERS* FINDER1 S FEES0SCRAP COMPONENTS COMPUTER PRODUCTS AND SERVICES FOR THE HOME

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.

• 8± X 11 ringbound #113 PP- •$12.00

730 WAUKEGAN ROAD • SUITE 108 DEERFIELD. ILLINOIS 60015

DHTHSERRCH

Incorporated

Rush copies of "The Shoestring Start- At-Home

Computer Business Handbook to me right away

NAME/COMPANY

ADDRESS

C ITY/STATE/ZIP

□ check ENCLOSED[~JBANKAMERI CARDQMASTERCHARGE

recognize vocal input. Applications include computer input, games, research and vocal control.

In addition to Altair bus computers, SpeechLab can be used with any computer by using a separate power supply and connector.

Included in the price is a complete hardware and software system, a 275 page laboratory manual, 95 page hardware manual, high fidelity microphone, and three programs on paper tape. The lab manual includes 35 graded experiments with over 100 tables and graphs.

The recognition of spoken inputs requires 64 bytes of storage per word and a vocabulary of up to 64 words in memory. Other features include real time response, 95% recognition accuracy, automatic hardware self-test capability, and C-MOS design for low power dissipation.

Software includes the SpeechBasic™ BASIC programming language, assembly language speech recognition program, SpeechBasic plot, correlation, recognition, advanced recognition and hardware self-test programs.

For more information write to Heuristics Inc, 900 N San Antonio Rd, Los Altos CA 94022."

Circle 61 7 on inquiry card.

A Modular Graphics Subsystem

Matrox Electronic Systems, located at POB 56, Ahuntsic Station, Montreal, Quebec CANADA H3L 3N5, has sent along some information on what has come to be called the ALT-256**2 Graphics System in their product line of display devices. The ALT-256**2, to which we alluded in a previous new product story (see November 1976 BYTE, page 60) is designed to plug directly into any Altair (S-100) bus compatible computer such as the IMSAI shown in the press release photo. The board interfaces to the host computer as a set of four peripheral ports. Two of the ports are used for storing the X and Y coordinates ol a spot, and a third port is used simply to turn the dot on or off; a fourth port is dedicated to clearing or presetting the whole screen. It contains its own 65,536 bit refresh memory so that no address space in the host computer is used up for display purposes. This is an important consideration, since multiple copies of this 256 by 256 grid display can be plugged into the same computer and jumpered to use common

Circle 170 on inquiry card.

154

Circle 171 on inquiry card.

synchronization so that a color effect with 256 by 256 resolution and seven colors can be achieved by driving a commercial RGB monitor (red-green-blue guns on separate inputs with common synch). The board is not a kit, and is priced at $395 FOB Montreal, with delivery two to four weeks after receipt of orders. European readers will also appreciate the fact that the ALT-256**2 is also available in a standard version using the European television timing definitions.*

Circle 618 on inquiry card.

Instrumentation and Test with the Personal Computer Bus

International Data Systems has announced an instrumentation module for the Altair (S-IOO) bus which allows the user to make measurements of frequency and period, formerly done with "dumb" uncomputerized measuring equipment. The product is the 88-UFC, a 9 decade universal frequency counter module. The design allows software selection of all functions and has capabilities said to have been previously available only on counters costing several times its $179 price. The 88-UFC has provision for four signal sources which can be selected under software control. Three of the inputs have general purpose analog or digital signal conditioning, and the fourth accepts TTL signals for use in debugging logic systems. One of the general purpose inputs includes a divide by ten prescalar which extends its input range typically above 600 MHz, and the other two general purpose inputs can count signals ranging typically up to 65 MHz. With one of these boards and the software provided, the user can in principle perform nearly all the frequency and time period measurements encountered in the typical electronics or scientific laboratory (to say nothing of the amateur radio station or electronics repair shop). The crystal controlled time base on the board can be selected in software to provide count periods from 100 ns to 1 second, with half cycle or full cycle counts. The board is said to allow measurement of a 600 MHz signal's frequency with ±1 Hz resolution, or two parts in 1 09.

Software included with the unit provides totalizing or accumulation of event counts, measurement of the period of a signal, measurement of frequency, computation of frequency ratios

Continued on page 162

That's right, if we don't sell a bunch of our BASIC SOFTWARE VOLUME 1 albums quick, we'll get fired! Included are lots 'n' lots of your favorite Basic programs such as LUNAR LANDER and BLASTOFF!, plus new ones like MAILING LIST, FOURIER FIT and AMPLE ANNIE. Plays through your Tarbell, Kansas City or Altair cassette interface (we coded all three ways). Or make cassette copies. Only 6 bucks. Don't be a dummy, order today! Satisfaction guaranteed or money back.

to:

$6

SOFTWARE RECORDS

PO BOX 8401-B UNIVERSAL CITY,

CA 91508

(CALIFORNIA RESIDENTS: PLEASE ADD 6% SALES TAX)

L^fl

MICRODESIC3IM

i

I microcomputer products

2708 TMS2716

EPROM/RAM

VERSATILITY • Individual Addressing • Shadow alternates ROM wilh RAM • External RAM disable • Optional IK on-board RAM • S100 compatible • Power-on jump or bootstrap capability • All sockets included

MR 8 KIT For 2708 99.50

MR 16 T KIT FOR TMS 2716 99.50

EPROM (shown) not included

FIRMWARE • 2K Monitor/Utility • Supports Tarbell cassette, paper tape • Now available lor SI0, MI0. 3P4S, SI0 2

MM 2K (two 2708 type EPROMS) 89.50

MM2T (one TMS 2716 EPROM) 84.50

EPROMS • Prime, full specification • programming available

2708 type 1024x8 35.00

TMS 2716 2048x8

65.00

MICRODESIGN

8187 Havasu Circle. Buena Park CA 90621 • (714) 523-8080

155

Circle 172 on inquiry card.

FINALLY.

A State-of-the-Art lool For Learning Software Design.

And at an affordable price. The Modu-Learn™ home study course from Logical Services. Now you can learn microcomputer programming in ten comprehensible lessons. At home. In your own time. At your own pace.

You learn to solve complex problems by breaking them down into easily programmed modules. Prepared by professional design engineers, the Modu-Learn™ course presents systematic software design techniques, structured program design, and practical examples from real 8080A micro-computer applications. All in a modular sequence of 10 lessons . . . more than 500 pages, bound into one practical notebook for easy reference.

You get diverse examples, problems, and solutions. With thorough background material on micro-computer architecture, hardware/software tradeoffs, and useful reference tables. All for only $49.95.

For $49.95 you learn design techniques that make software work for you. Modu-Learn™ starts with the basics. Our problem-solution approach enables you to "graduate" as a programmer.

See Modu-Learn™ at your local computer store or order now using the coupon below.

Please send the Modu-Learn1"course for me to examine.Enclosed is $49.95 (plus $2.00 postage and handling) or my Mastercharge/Bankamericard authorization.

Name:.

Address:

City:

Card #_

_State:_

Expiration date:. Signature:

711 Stierlin Road Mountain View, CA 94043 (415) 965-8365

SERVICES INCORPORATED

BYTE's Bits

A Personal Computing Electronic News Service: the "Net" Worth of Space Age Journalism

We recently received a copy of the Washington Amateur Computer Society's Journal which contains news about the society, product reviews and speculative articles. In short, a very good example of the sort of journalism coming out of the local computer clubs.

What makes this particular issue so special, though, is that it is available via computer link to anyone possessing a computer terminal and telephone coupler! Members and nonmembers alike can dial (202) 635-5730 (for a 300 bps line) or (202) 635-5710 (for a 110 bps line) and start receiving the latest scoop from the Washington DC area.

The Journal is written and edited each month on a DECsystem-10 at the Catholic University of America; it is available as a "free access" text file (ie: no password or account number is necessary).

The procedure used to obtain the journal is simple. After calling either of the two numbers listed above, the DECsystem will respond with its answer tone. Activate your modem and type "Control C." The computer should echo an up-arrow followed by "C." (If it does not, repeat the procedure several times. If you still have no luck, the computer is probably down.) Next, type "I" followed by a carriage return. The system will reply with the following response (there may be some slight variations in this response): "CATHOLIC U. 507B20 19:39:01 TTY60 SYSTEM 95," followed by a period on the next line to indicate that you are conversing with the timesharing monitor and that it is waiting for your instructions. To get the Journal, type "HELP WACS" and a carriage return. The computer will then type out the journal text. The journal is set up to fit in a format of 60 characters to the line and 66 lines per page. If you are going to read the text on a video display unit, it is a good idea to tape the telephone output for later reference. To stop the output at any time, type "Control O."

It should be mentioned that the Journal is rather lengthy (16 pages for the April issue). The question of long distance phone charges for this type of service is not a trivial one. The following excerpts are taken from a letter sent to us by the directors of the club in which they discuss this and other points:

We believe that this is the first such electronic "mail service" or journal. You will not be working with a recording but rather will be

running a program on the timesharing system that moves information stored on a disk file to a serial communications port. We would not be able to share this new adventure in communications with you if it were not for the kind assistance of the computer center of the Catholic University of America. Since this service uses computer time, which slows the computer down slightly and ties up a communications port, we ask that you use it only during nonbusiness hours: late at night or weekends would be ideal.

Our journal is also available in printed form. . . . We hope that this will be the first of many such computer hobbyist communication nets, and that the age of electronic mail and news journals will not be far off. We understand that long distance telephone rates will make our service rather expensive for the individual, let's say, in California. But perhaps that is where hobbyist clubs can show their worth and make use of unused business WA TS lines late at night or on weekends. . . . I Electronic journals! are just the kind of justification for the adoption of ASCII as a legal transmission code on the amateur airwaves that the FCC will recognize. We computer hobbyists need access to quick, efficient and up to date communications media to enable us to grow and exchange ideas.

Why can't we have access to radio communications in the code that is a national standard not only for our hobby but also for ANSI? Computer hobbyists unite! Petition the FCC to allow us to communicate in our "native tongue." Meanwhile, find those fallow WATS lines and make them serve our hobby.

Robert Jones, director

Thomas Crone, assistant director

Richard Bonanno, editor

William Stewart, assistant editor

Washington Amateur Computer Society

4201 Massachusetts Av #168

Washington DC 20016*

Pushover stacks are characteristic features of incompetent waiters."

What is a strip of leather used to hold integrated circuits into the sockets of a voice analysis system?

SuonidlQV ■

Circle 145 on inquiry card.

156

Attention KIM-1 and other 6502 system users. If you are tired of waiting for slow-slow program loads, we have the solution. A cassette write/read program that requires no additional interface hardware! Just two single-bit I/O ports! 213 bytes per second fast! Self-clocking with checksum and check read. Uses moderately priced recorders and cheap cassettes. $25.00 check or money order covers program and use instructions. Other copyrighted 6502 software available. Write for particulars. (California residents include 6% sales tax.)

INNOVATIVE SOFTWARE, INC.

3107 Casa Bonita Dr.

Bonita, CA 92002

PARALLEL I/O, POWER SUPPLY, 256 BYTE RAM, 16 OP CODES, TTL (Open Col) COMPATIBLE, CABINET.

Rodent

COMPUTER KIT $129.00

4K ROM/RAM kit (Less ROM)

3K RAM $99.00

KITS IN STOCK

KIT HOUSE 161 GARY WAY NSL, UTAH 84054

* G*N *

What you can do with a 4K RAM that can be positioned anywhere in memory by program commands.

We have some Ideas you may not have thought of. Write and ask about our new 4K PL (program locatable) RAM card tor the 3100 bus.

The 4K PLRAM comes fully assembled, tested and burned in for only

$179.

$199.

Sorry - Blame Pierre Ont. Residents Add 7% PST.

l^olMJaHo industries ltd.

P.O. Box 421 Slmcoa, Ontario, Canada N3Y 4L5

Circle 149 on inquiry card.

Circle 1 74 on inquiry card.

Circle 175 on inquiry card.

Disc/3

r DISC/3 COMPANY

COMPLETE MICRO BUSINESS SYSTEMS

A/R, Mailing Labels, G/L, Pay roll, A/P, etc.

plus Lear Siegler $ 749.95

ADM-3A kit IMSAI 8080 kit $ 599.95

Centronics Business $1520.00

Printer (132 columns;

Disc/3

DISC/3 COMPANY 1840 LINCOLN BLVD. SANTA MONICA, CALIF. 90404 (213)451-8911 '

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

micRO-syTE

PRESEnTS

PROGRflmmms

TAPE CASSETTE

Designed Especially For

microcomputers 30 minutes,». --.

hish pneQuencu

SUPER SEnSITlUE

lsuj noise

T~r $5.00 each micro-Bute

5870 MIAMI LAKES DRIVE EAST MIAMI LAKES. FL 33014 (306) 8226010

Circle 176 on inquiry card.

Circle 177 on inquiry card.

Circle 169 on inquiry card.

KIM-1 USERS

Are you in need ol peripheral

support to get the job done?

HERE ARE SOME OF THE THINGS

YOU'VE BEEN WAITING FOR!

2704/2708 EPR0M PROGRAMMER

S275

2K ROM BOARD with 2 1702A roms

S105

8K ROM BOARD with 2 2708 roms

SI 55

2K RAM BOARD with 16 21021 rams

S105

4K RAM BOARD with 32 2102-1 rams

$165

8K RAM BOARD with 64 2102-1 rams

S275

ONE PASS ASSEMBLER BOARD for KIM 1

S245

64 Char ASCII TV INTERFACE BOARD

S265

Bin RELAY OUTPUT BOARD 120v,400W

$195

MOTHERBOARD 6 card KIM 1 to S 100 bus

S95

MOTHERBOARD 6 card KIM-1 to EXORCZR bus

S95

MOTHERBOARD G card KIM-1 to KIM-1

S105

EXPANDER CABLE to couple motherboards

S45

KEY80ARD (63key)/EDIT0R/ASSEMBLER

with 8K RAM and TV INTERFACE

S895

All units fully assembled

'Pa. Res. add 6% Sales Tax

HYBRID TECHNOLOGIES

P.O. BOX 163

BURNHAM, PA 17009

Dealer Inquiry Welcome

7?r

aeco

THE ULTIMATE IN:8*

BPTtfiAS, TAPS BJftDSSS Precision machined tape guide Interface directly to a pjjj or ljflRT Tristate buffer output fill handshake logic-"nil computable Pull thru tape- Keads 9t«B999 cps Interface thru a 14 pin IC plug

t$ 38.00' * 5.50

O ORDER. SEND CHECK OR M.o. TO: 'O BOX 1221 OND DU LAC, Wl 54935

WUCROCOMP

WE SPECIALIZE IN MICROCOMPUTER SYSTEMS FOR HOB BY- BUSSINESS- EDUCATION WE ARE EXCLUSIVE OSI DEALERS...

WE DO A BETTER JOB.

ACCESSORIES

FOR YOUR ALTAIR OR OTHER S-100 BUS

UP

io*tf

,o/o Of*

NEW FACTORY WIRED & TESTED BOARDS & SPECIAL-COMPUTERS (mfg.byMITS)

• 12 BIT AID

• 2SIO

• CPU

• 4K STATIC RAM

8K PROM BOARDS (WIW.O. PROMS) & OTHERS 2708 PROMS ALSO NEW GE TERM INET 30s 24 INPUT MUX (110or300BAUD)

CALL DICK REEVES

(314) 569-1506

Circle 179 on inquiry card.

Circle 1 57 on inquiry card.

Circle 181 on inquiry card.

A Trapping Technique

for the 8080

John M Schulein 1186 Arlington La San Jose CA 95129

Debugging 8080 Software? How About a Trap Routine?

If you have got your 8080 system up and running and you are starting to write some programs for your system then the trap routine discussed in this article may be just what you need to assist you in debugging your own software or other software you have keyed in or relocated. This trap routine is in PROM in my system and has been invaluable in locating bugs in various programs.

This trap routine is a program that is written as a subroutine and is designed so that when it is called it will do the following:

1. Immediately save the machine state.

2. Print out the machine state on a television display.

3. Wait for a keyboard input so that the programmer can decide whether to examine or modify memory or to restore the machine state and resume execution of the program that called the trap routine.

A typical way to use this trap routine is to change one or more instructions in critical areas of the program being debugged to the 8080's RST 7 instruction (FFhexadecimal). Note that this implies thatyour problem program is in programmable memory and that if a multibyte instruction is changed, the RST 7 instruction is placed in the first byte of the multibyte instruction. Several traps can be

set at once since the trap location will be printed out each time the trap routine is executed. The trap routine is activated (called) whenever the 8080 processor encounters an RST 7 instruction. The RST 7 instruction assumes there is a trap handler routine beginning at hexadecimal location 0038 in memory, so if the trap routine does not start at this location then a J MP TRAP instruction must be present instead. If your PROM memory starts at location 0000 then you can fix the trap routine (or jump instruction and trap routine) into PROM and you are ready to go. If your PROM is in high memory, then you can fix the trap rotuinc in high memory and you will have to remember to load the jump to trap instruction (three bytes) into locations hexadecimal 0038 thru 003A each time you initialize your system. An alternate way to get into the trap routine would be to use a standard three byte call instruction. (Here no jump instruction would be required.) I decided to use the single byte call (RST) mainly for convenience (one byte to change instead of three) and also because my PROM is in low memory.

The output of my trap routine is two lines of listing on a television display as shown below:

TRAP AT :xxxx: Axxxx:Bxxxx:Dxxxx:Hxxxx:Sxxxx:

A

flags

BC DE H L SP

158

Line Label Op

Operand

Commentary

1 TRAP PUSH PSW

2

PUSH B

3

PUSH D

4

PUSH H

5

PUSH H

6

PUSH PSW

7

LXI H.000EH

8

DAD SP

9

POP PSW

10

XTHL

11

PUSH H

12

PUSH D

13

PUSH B

14

PUSH PSW

15

LXI H, Trap Message

16

CALL PRST

17

LXI H,0013H

18

DAD SP

19

MOV D,M

20

DCX H

21

MOV E,M

22

DCX D

23

XCHG

24

CALL PTADR

25

CALLCRLF

26

MVI D,"A"

27

CALLPRREG

28

MVI D,"B"

29

CALLPRREG

30

MVI D,"D"

31

CALL PRREG

32

MVI D,"H"

33

CALLPRREG

34

MVI D,"S"

35

CALL PRREG

36

CALL RDTTY

37

CALLCRLF

38

POP H

39

POP D

40

POP B

41

POP PSW

42

RET

43 PRREG CALLPRNT

44

POP H

45

XTHL

46

CALLPTADR1

47

RET

48 TRAP- TRAPATV

MESS

Save registers for final return to the program being debugged.

Put corrected SP onto stack and restore HL. Save and restore flags.

Save registers for display.

Display "TRAP AT"

Calculate trap location, result in HL.

Display trap location as four hexadecimal digits.

Display flags, registers, and SP.

Wait for keyboard input (ESC forces jump to monitor).

Restore machine state.

Return to program being debugged.

Subroutine to POP a trap register through the top of the stack and then print the result.

Listing 1: Symbolic assembly language listing of the trap routine used by the author in his 8080 system. Detailed comments by line number are made in the text of the article. Note that in the author's system, a hardware vector to ' the monitor occurs if an ESC key is pressed on his terminal keyboard instead of some other character when the program is looking for input at line 36. The system routine referenced by this program are summarized in table 7.

The first line shows the memory location of the RST 7 instruction that invoked the trap routine and the second line displays the machine state (accumulator, flags, the registers B,C,D,E,H and L, and the stack pointer) at the completion of the last program instruction executed before the trap calling instruction (RST 7) was encountered.

The trap routine is shown in listing 1 and the auxiliary subroutines used by the trap routine are described in table 1. Listings of these auxiliary subroutines are not provided since most monitor programs will already have these routines and they most likely are peculiar to individual systems since they deal directly with 10 devices. The stack data generated by the trap routine is shown in figure 1 and will help in understanding the operation of the trap routine.

When the trap subroutine is called by a RST 7 instruction, the program counter is

automatically pushed onto the stack. The first four push instructions in the trap routine (listing 1, lines 1 thru 4) save the A,B,C,D,E,H and L registers and the flags in the stack. This machine state information will be used at the very end of the trap routine to restore the machine state just before the trap routine return instruction (line 42 of listing 1) is executed. The fifth push instruction (line 5) is used to provide a space in the stack for the value of the stack pointer when the trap routine was called. This value is calculated by adding 000E hexadecimal to the current stack pointer value at line 7 of the trap routine. The DAD SP instruction (line 8) does this addition and the desired initial stack pointer value ends up in HL after the DAD SP instruction is executed. Note that the DAD SP instruction affects the carry flag, and thus the PUSH PSW and POP PSW instructions at lines 6

159

Table J: Summary of Auxiliary Subroutines. This table lists the symbolic name referenced in listing I and the corresponding functions of several monitor routines required. No listings of these routines are provided since the detailed code will vary from system to system.

Symbol

Function

PRST

Display (as on a printer) a string of ASCII characters in memory starting at the location pointed to by HL. The string is terminated by a zero byte.

PTADR

Display (print) HL as four hexadecimal digits surrounded by colons.

PTADR1

Display (print) HL as four hexadecimal digits surrounded by colons.

CRLF

Sends a carriage return and a line feed (or equivalent) to the output device.

RDTTY

Reads an ASCI I character from the keyboard. Any character other than ESC returns the processor to the calling program with the ASCII character in the A and D registers. An ESC character sends the processor to the monitor routine.

PRNT

Display (print) the ASCII character in the D register.

and 9 are required to preserve the flag byte.

The XTHL instruction at line 10 exchanges the most recent two stack bytes with the contents of HL. Thus after the execution of line 10, the initial value of the stack pointer is on the bottom of the stack (8080 stack grows downward) and the contents of HL have been restored to their initial values (the values they had when the trap routine was called). The next four push instructions (lines 11 thru 14) save the machine state a second time for the printing operation.

Lines 15 and 16 print the ASCII character string "TRAP AT" in preparation for the printing of the memory address that generated the trap. This information is highly desirable since several traps may have been set into the program being debugged and it is nice to know which trap was encountered each time the trap routine is executed. The trap subroutine return address (pushed onto the stack when the trap subroutine was called) is the key to determining the trap location. In order to access this information, line 17 and 18 cause the HL register pair to point higher up in the stack to the most significant byte of the return address. The return address is put into the DE register pair by the instructions at lines 19, 20 and 21. Note that the value of the DE register pair is decremented by one (line 22) in order to reflect precisely the location of the RST 7 trap generating instruction. This is due to the fact that the return address pushed onto the stack by the RST 7 instruction is the next memory address after the RST 7 instruction. The XCHG instruction at line 23 exchanges the register pairs DE and HL which puts the trap location into HL so that the PTADR subroutine called at line 24 will print the trap location. (PTADR prints out the contents of HL as four hexadecimal digits surrounded by colons.) A CRLF subroutine called at line 25 moves the output display device to the beginning of the next line.

Now things get a little tricky, but we are almost through so don't give up yet. The next ten lines of program (lines 26 thru 35) result in the printing out of the machine state in the form of five groups of characters on the display using the PRREG subroutine (lines 43 thru 47). Each group of characters consists of a single identifying alphabetic character, four hexadecimal digits, and a colon. Thus the printout of the machine state line takes 30 characters and just fits on a 32 character line.

Each execution of the PRREG subroutine results in the following operations. First the ASCII character in the D register is printed out on the display by the PRNT subroutine. Next the return address for the PRREG subroutine is popped off the stack into the HL register pair by the POP H instruction at line 44. This brings to the bottom of the stack one of the two byte values to be printed that was placed on the stack by the instructions at lines 10 thru 14. Now the PRREG subroutine return address is restored to the stack (two bytes up from its original position) and the two byte value at the bottom of the stack that is to be printed is put into HL by the XTHL instruction at line 45. (That XTHL instruction sure is nice!) Finally the four hexadecimal digit value now in HL is printed out on the display by subroutine PTADR1 (called at line 46). Each execution of the PRREG subroutine causes the stack to be reduced by two bytes and after the execution of the last PRREG call instruction (line 35) the stack has been reduced to the upper half of that shown in figure 1.

After the entire machine state line has been printed out, the trap routine waits for a keyboard input in the RDTTY subroutine (called at line 36). This gives the person debugging a program a chance to digest the trap information before proceeding. Any character other than ESC will return the processor to the trap routine and then to the program being debugged. An ESC will cause

160

the processor to return to the monitor program where the operator can examine and modify memory if necessary. If the character typed was not an ESC, a CRLF is generated and then the machine state is popped off the stack by the four pop instructions at line 38 thru 41. After restoring the machine state, the processor will now return to the program containing the trap (the program being debugged) and resume execution. Note that you can only use this technique if the program being debugged has the trap calling instructions (RST 7) located in program locations that originally contained NOPs. Most of the time I use the ESC monitor exit so that I can restore the original instruction and move the RST 7 trap calling instruction to a new location. Then another execution of the problem program can be initiated. This process will continue until the source of a problem is determined and then the program can be modified to (hopefully) correct the problem.

This trap routine (or a similar one) should make debugging much easier as it produces a printout of the entire machine state at a known point in a program. Good luck in finding and removing those bugs!"

used to get back to the program being debugged

used to restore the machine stat

I

used to print out the machine state

BITS 15-8

BITS 7-0

SP

BITS 15-8

BITS 7-0

SP

Return address for the calling RST 7 instruction.

PUSH A@ line 1 PUSH B ® line 2 PUSH D@ line 3 PUSH H(a> line 4

Corrected stack pointer

PUSH H @ line 11 PUSH D<9> line 12 PUSH Big) line 13

PUSH A@ line 14

Figure J: Stack Frame Used by TRAP. This diagram shows the allocation of data in the 8080 's stack when TRAP routine is executing line 15 of listing I. Actual contents vary during the course of TRAP, and this particular frame represents the maximum stack utilization (ignoring the supporting subroutine return address) during the routine. When TRAP routine returns, the state of the processor including the stack pointer is completely restored.

COMPUTERWAREHOUSE STORE

SPECIAL DISCOUNTS/

ON KITS & ASSEMBLED UNITS

SAVE UP TO 201 OFF KIT PRICE UHEN A USED PERIPHERAL IS PURCHASED AT THE SAME TIME (S200 MAXIMUM)

PERIPHERAL(S) OVER $9001 PERIPHERAL(S) OVER $2501 PERIPHERAL(S) OVER $95 i

20% OFF KIT PRICE 10% OFF KIT PRICE 5% OFF KIT PRICE

DEPT B • P.O. BOX 69- KENMORE STATION* BOSTON, MA. 02215 • 617-261-2700

BUILD YOUR OWN TERMINAL! HOT AUGUST SPECIAL ! $494 75 GREEN PHOSPHOR package price

VIDEO MONITOR +■ includes shipping

SWTPC CT64 TERMINAL KIT $510

16x64 CHAR., 2 PAGE WITH SCROLLING, 6x9 TnTr.™ MATRIX, SERIAL INTERFACE, KEYBOARD, FULL UK""'™"C0NTR0L CHARACTER DECODING, POWER SUPPLY. PR,CE

KITS

SCAMP KIT

FR0H NATIONAL SEMICONDUCTOR COMPUTER KIT... KEYBOARD KIT...

LEAR SIEGLER ADM-3A

i,,s,-¥:WITH CURSOR CONTROL

• 12" CRT «RS232

• 2*1 LN x 80 CHAR •20 mA LOOP

$875

THOUSANDS OF KITS & PERIPHERALS

KIT.

$25 SHIPPING

IMSAI 8080MICROKITS

I MM ROM CONTROL KIT EXPANSION TO 1 MEG.

KIT

ASSEMBLED

KIT 22 SLOT..

llK MEMORY KIT

PIC-8 PRIORITY INT. SERIAL I/O KIT

LOW POWER DYNAMIC MEMORY 65K RAM CARD $3899

$299 32K RAM BOARD KIT $ 7*19

399 ASSEMBLED 1099

16K RAM BOARD KIT <l99

ASSEMBLED 679

.139 PROM *i-512 KIT 165

. 125 UCRI-1 KIT 59

. 125 CABLE A KIT 18

VIKING 100 PIN CONNECTORS, HEAVY DUTY 53.00

SWTPC 6800 $395

• 512 BYTES OF ROM

• RS232 OR 20 mA

MPA U5 MPB.. .

MPC !|0 MP0. . .

MPE H.95 MPF. . .

MPM 65 MPMx. .

MPP 42.50 MPL...

MPS 35 MPAb. .

KPMb 1*1.50

4K MEMORY

CT 61| TERMINAL KIT.

•SERIAL INTERFACE

• AK RAM .$ <I0 MPCb.MPSb.MPLb, EACH 9.50

. 35 <IKBA 5.00

37.50 GT61 99

. 35 AC30 AUDIO INTERFCE 79.50

. 35 CTP 15.50

H.50 CTS 39.95"

CONNECTOR SETS S100 -MPU/MEMORY 2.50

-INTERFACE 2.00

325 PP40 PRINTER 250

SMOKE SIGNAL BROADCASTING 16K RAM $595

HAZELTINE 1000? $795

^£ -**~.

35 lb SHIPPINC 12

VIDEO DISPLAY TERMINAL LINES X 80 CHAR. 5x7 MATRIX, 525 LINE RAS TER. BUILT & TESTED; PLUG & GO!

+ $25 SHIPPING

GREEN PHOSPHOR

VIDEO MONITOR $150

16 MHz BANDWIDTH, STANDARD RASTER SCAN, 24 LINES X 00 CHARACTERS, ONE D,

ALL an ASR33 is and MORE $875

+ 165 lb SHIPPING OLIVETTI TE318 - RS232 INTERFACE, 10 CPS, BUILT-IN PAPER TAPE, ELECTRIC TYPEWRITER KEYBOARD W/ ADDITIONAL 10 KEY NUMERIC PAD, YOUR CHOICE SPROCKET OR FRICTION FEED.

COPE 1030

BUILT UNITS

ICOM MICROFLOPPIES $10951

.... 6<i9

PLUG COMPATIBLE FOR S100 BUS. ..FD2411 .

SINGLE DRIVE FD2ll02 .

ICOM FLOPPIES:

FF36-1 FRUGAL 1195

FF36-2 DUAL FRUGAL 1895

360-58 BUILT; INTERFACE 8080 300

S171 POWER SUPPLY 250

FD360-2-5 DUAL SYSTEM 30OO

FD3711 DESK TOP SINGLE FLOPPY SYSTEM 2350

FD3712 DESK TOP DUAL 2650

KIM-1 6502 S21.5 INTERCEPT JR ""J?.,™

KIM-2 kf. 179 FROM INTERSIL, INC.

70 lb SHIPPING IBM 2741 COMPATIBLE - "SELECTRIC BASED" PORTABLE CONVERSATIONAL DATA TERMINAL, PRINTS UP TO 15 CPS.

48 PAGE CATALOG FEATURES SYSTEM BUILDERS EQUIPMENT

THE ONLY ONE OF ITS KIND!! FULL DETAILS ON OUR COMPLETE LINE OF KITS AND UNITS, REVIEWS OF OVER 150 BOOKS, LISTS OF NEW AND SURPLUS PARTS AND "ALL ABOUT HOBBY MICROCOMPUTERS"— AN INTRODUCTION TO PERSONAL COMPUTING.

$1

CHIP!

KIM-3 8K

MANUALS PACKAGE.

289

TARBELL AUDIO CASSETTE 'KIT 120

12K RAH Ill5

19.95 ROM/PROM BOARD 7*1.65

(YOU ADD MEMORY CHIPS) SERIAL I/O 81 .50

AUDIO VISUAL BOARD.. 125

TO ORDER EQUIPMENT

1.ENCLOSE CHECK FOR FULL PRICE PLUS SHIPPING CHARGES (KITS - ADD $5 IF UNDER S100; S10 IF OVER) VISA (BANKAMERICARD) 8 MASTER CHARGE ACCEPTED SEND CARD t, EXPIRATION DATE, INTERBANK I

2.CLEARLY IDENTIFY SHIPPING ADDRESS

3.DESCRIBE ITEM BY MODEL NUHBER

161

Circle 182 on inquiry card.

Continued from page 155

between inputs, data storage and subsequent retrieval, ASCII binary and BCD conversion of outputs, and a general purpose intelligent counter program allowing user interaction and function selection.

International Data Systems Inc is located at 400 N Washington St, Suite 200, Falls Church VA 22046. The kit form of the 88-UFC is available for $179."

Circle 620 on inquiry card.

A High Resolution Text Display with Considerable Flexibility

Lome Trottier, marketing manager for Matrox Electronic Systems, POB 56, Ahuntsic Station, Montreal, Quebec CANADA H3L 3N5, has sent us some information on a product which will be of great interest to users of many Altair,

M

f f I

•ill tin

.ft.

IMSAI, Poly 88 and other computers which have the Altair bus structure. This new product is the Model ALT2480 text display, which produces a high resolution display of 80 character lines, 24 lines per screen. The character generator has several user selectable options including a reduced bandwidth mode with two pages of 40 character lines, 24 lines per page; 5 by 7 or 7 by 9 dot matrix character generators, upper or lower case letters, selectable reverse video or blinking, adjustable page boundary locations in address space, and either European or American standard television composite video outputs. By plugging it into an Altair or similar computer and running a coaxial cable to an appropriate video input, one can achieve a word processing output device with all the necessary features for text manipulation. In order to take advantage of the high resolution 80 by 24 character mode of operation, this display will require use of a relatively high bandwidth video monitor; it is not recommended for use with an RF converter and standard television set. This product is available in assembled form only, and is priced at $295, FOB Montreal CANADA. Delivery is quoted at two to four weeks after receipt of order."

Circle 621 on inquiry card.

Two New Memory Boards

Advanced Microcomputer Products has announced two new memory cards which plug into an Altair (S-100) bus. These are the Logos I 8 K static low power memory board (photo 1) and the

Photo 1.

Photo 2.

Model 801C 8 K memory board (photo 2). The Logos I board features switch selection of address space allocations at any 1 K boundary in memory address space, and has write protection options (1 8 K block, 2 4 K blocks, ... 32 256

K-rations

for your computer

K- Ration™ 8Kx8 memory with

SynchroFresh™. $188 assembled and warranted.

Now you can load your Altair, IMSAI, Equinox 100 or other S-100 buss computer with 8Kx8 memory boards for just $188 apiece ... and that's assembled, tested and warranted for repair or replacement for 1 full year. It's possible because Morrow's Micro-Stuff has developed SynchroFresh™, the first and only memory refreshing system that weaves itself invisibly into the natural timing of the S-100 buss. And that makes the K-Ration™ 8Kx8 memory refreshingly reliable and helps keep the cost down. Just $188 assembled with 1 year warranty, kit just $159 (Cal. res. add tax). Postpaid from ThinkerToys™.

K-Ration™ 4Kx8 MEMORY is now the lowestcost 4K memory available for S-100 buss personal computers. A complete memory board kit, just $109 (Cal. Res. add tax). Postpaid from ThinkerToys™.Product of Morrow's Micro-Stuff

9

Place BAC/MC orders toll-free to 800-648-5311. Or see it at your local computer shop.

Thinker Toys

1201 10th St. Berkeley, CA 94710

Circle 183 on inquiry card.

162

<

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

ELECTRONIC TOUCH ORGAN KIT

Fantastic new design uses CMOS I.e. and a total of 39 semi-conductors to give a touch control keyboard, all the electronic parts in one PC Board. This organ is easy to build, yet has features like a full two-octave range touch keyboard, variable tremolo; two voices; built-in I.C. amplifier with volume control, complete with speaker and a specially designed plexi-glass

kit for beginner or gift for children

$24.50 eo.

-4

•4

4

-4 -4

-4

•4

■4

<4 -4 -4

SLIM LINE CALCULATOR

6 Functions with % and memory 8 Digits LED display *One full year guarantee Special Price Only

$8.50 Ea.

BATTERIES NOT 1

JCLUDED

CALCULATOR

with STOPWATCH

6 Functions with % and memory

8 Digits big green display

•Built-in X'tal controlled stop

watch count to 1/10 of a second.

Special Price Only

$16.50 Ea.

BATTERIES NOT INCLUDED

.C. TEST CLIPS

Same as the E-Z clips

With 20" Long Leads

In Black and Red Colors

$1.75 Per Pair

12V DC REED RELAY SPDT

DATROIM/ES DIV.

PART NO. LH30-029

$1.25 ea

Multi-Color LED Indicator

j Red—Green Colors in one LED p* with Plastic Housing

99c Ea. *V4- Voltage 2V 20 MA per LED

TIMER KIT

Time Controlled from 1-iOOsec.

Ideal to be used as time delay unit for burglar alarm, photo service, and other purposes. Max. loading 110V, 2 AMP. Supply voltage 12-18V D.C.

■ timer $11.50 each

Electronic Pollco Siron Kit

Ideal for use as an alarm unit. High output up to 5 watt at 12V DC supply. Can be used with horntype spe

$14.00 each

Music on Light in Colour /

COLOR ORGAN KIT

Operates in low voltage (9 V 24V DC). Can control up to 100 low voltage light bulbs. Light bulbs change colors to the tones of music. Conned to the speaker outpm o* ihe

$10.50 per kit

lifier.

Don't move .' LIGHT CONTROL SWITCH KIT

Can control TV, radio, lights

or can be used with the Police

Siren Kit to form a burglar

] alarm system.

$4.50 each

POWER SUPPLY KIT

0-35V D.C. REGULATED Uses UA723 and ZN3055 Power TR output can be adjusted from 0-35V, 2 AMP. Complete with PC board and all electronic parts.

$9.50 each

MA1003, 12V DC CLOCK MODULE

$23.50 EACH

Built in X'TAL controlled time base. Protected against automotive volt transients. Automatic brightness control with 0.3" green color display. Display turn off with ignition "OFF".

TOGGLE SWITCH

Half-size of submini toggle switch rated 3 amp 125V AC contact

MS-2432P

MS-244

MS-245

SPST SPDT DPDT

1-9 0.90 1.00 1.20

10-99 0.80 0.90 1.10

LARGE QUANTITY AVAILABLE I

TV Gomes

DtfMt

$•!•! Only

$2950

nATIMISi

* 4 Games-Tennis, Hockey, Racquei Handball and Single Handball.

* Auto counter display on the screen.

SW AUDIO AMP KIT

Use 2 LM 380 with Volume Control Power Supply 6 - 18V DC

only *S.OOoo.

TV CAME MODULATOR UNIT

ONLY $4.50

TI1955

lative AY3-8500-1 6 Game (28 Pin Dip) TV Game Chip with Data Tennis Squash hockey, practice & 2 shooting. Special Only $11.00

NI-CD

RECHARGEABLE

BATTERIES

AA SIZE. 12V SI.25 ea. C SIZE, 1.2V $1.50 ea. SUB C SIZE $1.50 ea. F SIZE. 1.2V $2.50 ea.

AUTO ALARM KIT

ixin ui .tn ouiomob l« Two minutes afun turning oil ihe ignition, the alarm automatically iu"is inwM "on "

When the aulo >s i Herod the horn will

sound attei a 50^5 second unuv delay, Thp automobile owner, ti\ inserting Ihe ignition key, win activate th* alarm. Once activated, the alarm will tound (oi two minutes before automatically turning of. The alarm then re sets and is ready lo aflS'n oroteci the uehic4e irom unwarned entry

FEATURES Simple installation 5 wires, Automatically turns on when auto lS parked. Adjustable mwiv """■. ExtendwJ exit limeto allow tai unruihed bum iiom vehicle. Numiw ous applications incluiIf protection ol boats, cam|)i-Ts. tr.iili-ii. motoicvclei. ducks. Ciinnoi bf deactivated bv "hoi wring" en .hud, C.in noi be turned oil without ignition kt-v, Neq .inv.- ground only

ONLY S10.00 PER KIT

•U*

ELECTRONIC SWITCH KIT

CONDENSER TYPE

Touch on Touch Off

use 7473 I.C

and 12V relay

$5.50 each

►

►

► ►

FM WIRELESS MIC KIT

Transmit range up to 100 ft. Easy to assemble (MIc Included) $4.50 each

Sub-Mini Size

Condenser Microphone

$2.50 each

FET Transistor Built-in

SIGMA 78REI, 12DC RELAY

400.TC COIL SPDT $1.30 ea. or 10 for $10.00 ALL BRAND NEW UNITS

►

Computer Grade Capacitors

Z00O MFD 2.00 ea.

3DQ0 MFD 3.25 >b.

8000 MFD 3.75 ta.

10000 MFD 3,95 ««.

6000 MFC 7SV-0C 4.00 u.

15500 MFD 75V-DC 5.95 •■

m

CLOCK KIT MOST POPULAR MM5314 KIT

WITH A NEW CASE!! Features: 12/24 Hour Display 50/60 HZ Input 6 Digits Readout Kit Includes: Grey Color Plastic Case MM5314 Clock Chip PC Boards and Transformer, 6 Green Color 0.3"'Tube Readouts, All other transistor Drivers and other Com

ponen,s Special Only $14.95 ea.

► ►

WIRE

WRAPPING

TOOL

$33.50

WIRE WRAPPING

IN BULK

Red or Blue

100' S2.00

S00' S8.50

MATCHED PAIR

ii POWER TRANSISTORS

MOTOROLA MJE2U55 PNP

MJE305S NPN

10 AMP 60 VOLT 90 WATTS

S2.25PER PAIR

Sub Mini Size PANEL METER

500 UA ONLY $1.20 ea

AC POWER SUPPLY

Adapter Type Transformer

12V AC 200 MA Output

S2.75 Each

4 Dlgltf Alarm Clock

LI '01E, 6011/. 12 hr. rjfip LT 701G. 6OH7, 2d hr. rlisp

rS13.nO FACH

500 UA VU METER

Special Price 2 for $1.99

SO UA PANEL METER

Only S3.80 ea.

QUARTZ CRYSTALS

rt

1 MHZ

2 MHZ 4 MHZ 10 MHZ

3.579 MHZ Color TV Type

S4.95 S5.25 S5.25

$5.25 S1.25

SAE DIP SWITCHES

^V

a rosB'esr-ST s.*

SUBMINIATURES TOGGLE SWITCHES

A A

SPOT OnQM DPDT On Off 3PDT On OH

QUAD VOLUME CONTROL

onlLj $7.50 .'

PUSH-BUTTON SWITCH

N/Open Contact Color: Red, White, Blue, reen, Black. 4/$1.00

N/Close also tAvailable 50c ea.

LARGE QTV. AVAILABLE

SOLID STATE ELECTRONIC BUZZER

$1.50 each or 2/S2.5G

UNIMUM ORDER $10.00. California rosirients add 6

& postage lor out O* stale. Overseas countries add 15c

SEND CHECK OR MONEY ORDER TO

#j| FORMULA INTERNATIONAL I C.

^^(k^^ I 260 II -.'-■■■■:. BOULEVARD • HAWTHORNE. CALIFORNIA 902b0

j^^-^^r_ For more information please call 12 13) 679-5162

STORE HOURS 10-7 Monday Saturday

Circle 184 on inquiry card.

byte blocks), low 1.4 A power consumption and provision on the board for battery backup. Logos I is available as a kit for $248 ($31 per 1 K block installed) and $298 in assembled form ($37.25 per 1 K block installed). The Model 801C is a static memory board which can be placed at any 4 K boundary in memory address space, and trades a slightly lower price off against the lack of memory

protect and battery backup features of the Logos I. The Model 801 C is available in assembled form only, priced at $198 if 21 L02-1 parts are used, and $207.95 if 91L02APC parts are specified for the memory array. Advanced Microcomputer Products is located at POB 17329, Irvine CA 92713."

Circle 622 on inquiry card.

A Frequency Meter Plug-In

8 K Combined EROM and Volatile Memory Card

Mountain Hardware, Box 1133, Ben Lomond CA 95005, has introduced this PROROM board for use in computers which use the 100 pin Altair backplane design. The purpose of this board is to enable the user to store custom software in a region of 7.5 K bytes (7680 bytes decimal) of UV erasable read only memory parts. The board uses an even 8 K of memory address space, with the extra 0.5 K devoted to volatile pro

grammable memory. The EROM parts employed in this design are AMI-S-6834 which can store 512 bytes per package in fifteen 24 pin packages. Also included in the design is a programming circuit which enables the user to write into the EROM regions. There are DIP switches for selecting the 8 K address range for the board, as well as write protect logic to protect against accidental writing into the EROM parts. The standard $164 kit price includes 256 bytes of volatile memory, one S-6834 EROM preprogrammed with an 8080 system monitor program, and complete documentation. Where would this product prove most useful? Anyone considering assembly of a general purpose or dedicated application system with Altair compatible peripherals should find this card a useful component: its built-in volatile memory can provide the 8080's subroutine linkage stack, as well as a small amount of scratch pad storage for the application program; the 7.5 K bytes of read only

The AIM-1005 is a novel Altair (S-100) bus interface which is an adaptation of a previously available industrial module to an Altair compatible 100 pin bus connector as seen in this picture. The AIM-1005 is primarily intended for use as a receiver of signals from transducers which generate frequency analogs of physical parameters for transmission to the computer over twisted pair wires. The precision of the measurement is 16 bits, and the company also provides the AIM-1000 transducer interface and a multiplexor for multichannel systems. This product was demonstrated to us on an Altair 8800a by Barry Hilton, its designer. He is also the proprietor of Automated Industrial Measurements Inc, POB 1 25, Wayland MA 01 778."

Circle 624 on inquiry card.

memory capacity, when fully stuffed with EROM parts is sufficient for a quite sophisticated set of dedicated

Continued on page 168

WE PAY POSTAGE!

D.R.C. ELECTRONICS

P. O. Box 401247, Garland, Texas 75040 (214) 271-2461

If your computer uses the S-100 buss; D.R.C. is a name you will want to know. Send us your name.

ROTARY SWITCH

Instrument grade. 6 Pole. Position. Centralab. $.99 each

1 AMP RECTIFIERS

House Numbered. Factory marked units. All meet 200 PIV minimum. Many up to 1,000 PIV! Full Leads. 30 FOR $1

2708

1KX8 EPROMS

2708

Prime new units from a major U.S. mfg. 650 N. S. access time. Equivalent to four 1702A's in one package!

GOING INTO &1 r "J C

BUSINESS SALE! 4>I3./ D each

OPCOA LED READOUT

SLA-l Common Anode. .33 In. character size. The original high efficiency LED display. $.75 each 4 FOR $2.50

DISC CAPACITORS

.1MFD 16 V. P.C. Leads

Most Popular Value!

P.C. Leads. By Sprague.

20 FOR $1

TANTALUM CAPACITOR

1 MFD. 35 V. Kemet. Axial

Lead. Best Value.

10 FOR $1

TERMS: ORDERS UNDER $15 ADD $.75. NO C.O.D. WE ACCEPT VISA AND MASTER CHARGE CARDS. MONEY BACK GUARANTEE ON ALL ITEMS.

■k

ELECTRONICS P. O. BOX 401247 • GARLAND, TEXAS 75040 • (214) 271-2461

Circle 185 on inquiry card.

164

SOLUTIONS FOR SALE:

OUR KITS SOLVE YOUR PROBLEMS

PROBLEM: As you add more cards on to your buss, funny things start to happen ... data scrambles, bits drop, and programs crash for mysterious reasons.

SOLUTION: ACTIVE TERMINATOR BOARD ($29.50)

Plug into any S-100 slot to tighten up your machine by providing proper loading for TTL lines. Active terminations draw far less power than passive types, and provide superior data handling compared to unterminated lines.

PROBLEM: You have outgrown your CPU board, and are getting tired of talking to your 8080 in machine language.

SOLUTION: 4K ECONOROMII™ SOFTWARE BOARD ($265)

Our latest model offers improved listings that make this board even more flexible ... contains editor, assembler, and monitor routines for your 8080, implemented in eraseable ROM. Very low power operations, S-100 compatible. Also available unprogrammed for storing custom programs and routines.

PROBLEM: You have no idea which RAM card to choose out of the many available.

SOLUTION: 8K ECONORAMII™ ($169)

Everything you want, from low power, to speed (zips along at 450 ns), to reliable technology (static RAMs with low power Schottky support), to convenience features (dip switch block selectors, ability to configure as 2 separate 4K blocks, and tri-state outputs that mate with the S-100 buss or bi-directional busses). In our years of experience selling RAM cards, we've learned how to do it right... and how to do it inexpensively.

PROBLEM: You need a simple, compact, regulated supply that won't blow up your computer if something goes wrong.

SOLUTION: SMALL SYSTEM POWER SUPPLY($45)

Delivers 5V at 4A with crowbar overvoltage protection, and ± 12V at V2 A per side. Also features an adjustable bias supply and compact design.

PROBLEM: You want to add more peripheral cards to an already overpopulated machine ... or start a stand alone system.

SOLUTION: 10 SLOT MOTHERBOARD ($89) or 18 SLOT MOTHERBOARD ($124)

Not just another S-100 motherboard—includes all edge connectors, as well as our active termination circuitry and extra-wide supply line traces (go ahead . .. fill all the slots, you won't get additional problems with additional cards). Starting a system? Start here.

r

CAVTi

TERMS: Allow up to 5% shipping, excess refunded. Cal res add tax. BankAmerlcard® and Masterchard©orders, call our 24-hour order desk at (415) 562-0636. Include street address for UPS.

BILL GODBOUT ELECTRONICS BOX 2355, OAKLAND AIRPORT, CA 94614

DEALER

INQUIRIES

INVITED

Circle 186 on inquiry card.

/^W' CRYSTALS iT

Pin?

CY1A CY2A

c THESE FBEQUEHC1ES ONLY

Fraquancv Casu/Style"

ICY2 01

1.000 MHz 2.000 MHz

HC33U HC33U

~PFTHb

$5 95 S5.95

2 010 MHz

ifcVTTl

CY3A CY7A CY12A CY14A CY19A CY22A CY30B

4 000 MHz 5.000 MHz 10 000 MHz 14 31818 MHz 18 000 MHz 20.000 MHz 32 000 MHz

HC18/U HCIB'U HC18U HC18U HCIB'U HC18/U HC16U

$1.951

S4.9S S4 95 S4 95 S4 95 S4 95 S4.95 54 95

XH-2206KB Kit $29.95 Special XR-2206KA Kit S19.9S

WAVEFORM GENERATORS

XR-205 SS 40

XR-2206CP 4 49

XH-2207CP 3 85

STEREO DECODERS XR-I310CP S320

XR-1310EP 3 20

XR-18O0P 3 20

XR2567 299

EXAR

XR-4136 XR-146B XR-1488 XR-1489 XH220B

TIMERS

XR-555CF' S .til

XR-32QP 1 55

XR-556CP 1 85

XR-2556CP 3.20

Xfl-2240CP 325

PHASE LOCKED LOOPS

XR-210 5 20

XR-215 6 60

XR-567CP 1 95

XR-5G7CT 1 70

CONNECTORS

PRINTED CIRCUIT EDGE-CARD

156 Spacing-Tin-Double Read-Oiil Bilurcaled Contacts — Fits .054 to .070 P.C. Cards

15/30 PINS (Soldei Eyelet) S1.95

18/36 PINS (Solder Eyelet) S2.49

22/44 PINS (Solder Eyelet) S2.95

50/100 1.100 Spaciog) PINS (Solder Eyelet) S6.95

25 PIN-D SUBMINATURE

DB25P PLUG S3.25

DB25S SOCKET S4.95

31/2 DIGIT DVM KIT

This 0-2 VOC 05 per cenl digital voltmeter features the Motorola 3'2 digit DVM chip set. II has a A" LEO display and operates from a single ->-5V power supply The unit is provided complete with an mjeclion molded black plastic case complete with Bezel An optional power supply is available which (its into the same case as the G-2V DVM allowing 117 VAC operation.

A. 0-2V DVM with Case $49.95

B. 5V Power Supply $14.95

32 X A-1 P C Etch Materials Kit

27XA-1 — Plugboards 3662

8800V

enough lor 5 circuit boards

- Etched CkcuiI Kit Complete M — only add water

- 6 5 X 4 5 X 1 '16 Epoxy glass PPanein-44 PC Tans-spaced 156

- Universal Microcomputer/Processor plugboard — Epuxy Glass — complete with healsmk and mounting hardware 5 313 X 10 X 1/16 copper clad

$29.95 ea. S 9.95 ea S 6.95 ea. $19.95 ea.

1/16 VECTOR BOARD

0.1 Hole Spacing P-Pallem

Pari No L W

6.:P.:-!062\XXP 4 50 6 50 1

I69P44 02XXXP 4 50 17 00 3

64P44 062 J 50 6 50 ?

a4P44 062 -i'50 6 50 ?.

T69PJJ062 J 50 17 00 5

I69P84 062 R50 17 00 9

lfi'.P44 062C1 ■! 50 17 00 6

#

HEAT SINKS

205CB 680-75A

205-CB BeiyHium rouii.-i h.mi Sink *im Bljck rimsli lot n 291-.36H Aiuin,i,uiti Hear Sink lor TO-220 lunsislors & Rci| 680-.75A Bitu Anoa.rea AiU'n.n..n ForTO-3

S .25

S .25 S1.60

HEXADECIMAL ENCODER 19-KEY PAD

tm Kjt . Return Key

jpJJ • Optional Key i Period)

$10.95 each

60 KEY KEYBOARD

Tnib keyboard loatures 60 uut coded SPST keys, unattached any kind ol P.C.B A very solid molded plastic 13' * 4' suits most applications

$19.95

HOD165 IB LINE TO FOUR BIT PARALLEL KEYBOARD ENCDDER

TOOLS

A97MS — Diagonal Cutter - 4" semi-flush cut $8.50 ea.

A11DMS —Chain Nose Pliers - 4%" long 7.50 ea.

T-6 —Wire Stripper - #16 to #26 gauge 3.75 ea.

55B — Wire Stripper - #10 to #20 gauge 2.50 ea.

CS-8 — Cutter-Crimper Tool - 8V long 8.50 ea Nippling Tool — Cuts. Trims or Notches Metal

up to #18 gauge 6.95 ea.

Nibbling Tool Replacement Punch 3.75 ea.

PERMACEL P-29 PLUS Electrical Tape - All Weather

• V wide x 66 ft. • Black vinyl ^ 1-9 Rolls S.7fleach 10-up Rolls S7.95/10 roll package

MICROPROCESSOR COMPONENTS

8212 8214 8216 8224

SOB0 80802650

2504 251B 2519

2532 2533 3341 74LS670

CPU

8 Bit Input/Output Priority Interrupt Control Bi-Directional Bus Driver Clock Generator/Driver 12 - with user manual

CPU'S

Suds- 3006

Super sooa

B BIT MPU

SR'S

1024 Dynamic He. 32 3IT

He. 40 BIT 512 Qynumif 1024 Dynamic Dual 256 BH Dual 512 Bit

$19 95

4,95 15.95

6.95 10.95 39.95

8228 System Controller - Bus Driver MC6800L 8 Bit MPU MC6820-L Periph. Interface Adapter MC6810AP1 128 x 8 Static RAM MC6830L8 1024 x 8 Bit ROM Z80 CPU

$10.95 35.00 15.00 6 00 18.00 49.95

RAMS

256.

Static Dynamic Static 5ianc

BIT '024 Stale

AY-5-1013 30*. Baud

RUM'S 2513I2UD] Chai Gen -upper case 2513(30211 Char Gen -lowercase 2516 Char Gen

9ii.ii:

I02J i 1

Sianc

2 25

MZOO

256 ■ '

Sialic

u95

93421

258 . •

Static

2 95

,:.'■.■■:.':.

2K a i

■ •

2 lor 1 00,

HROMS

1 ."0?A

204H

Famos

S 9 95

5203

2048

Famos

14 95

B2I

32 »8

Open C

5 00

S2S12'

restate

500

74838!

1.624

Static

1 95

1601

256 .4

rm

3 95

Lnroril

6301-1

TO?'.

Tri-Slr.1i' lliiir.'.si

3 49

FCM3B17

AY-3-8500-1

MC3061P

MC4016P (7-1

MC14S83

MCI 456?

CD4059

CD4070

MCI 4409

MCM410

SPECIAL REQUESTED ITEMS

CD450B

C04515

CO4520

MCM6571

MCM6574

MCM6575

MCI 4419

ICM7045

17 50 1750

17 50 14 95 24 95

MK50240

11C90

DS0026CH

TIL30B

ICM7208

ICM7207

25 00 9 95 1750

10 50 2200 7 50

8T97 3341

9368

MC1408L7

LDIIOi'LDHI

AY5-9100

95M90

ICM7209

H00105

9 95 25 OOsei

17 50 ea 13 95 750 7 95

PARATRONICS

ALLOW t TO 3 WEEKS DELIVERY

Featured on February's Front Cover of Popular Electronics

Logic Analyzer Kit

■ Analyzes any type ol 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 oi hexadecimal formal

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 89.00/Kit

Some applications are.

— Troubleshooting microprocessor address, instruction, and data flow

— Examine conlenfs ol ROMS

— Tracing operation of control logic

— Checking counter and shift register operation

— Monitoring I/O sequences

— Verilying proper system operations during testing

SI

BUGBOOK •

Continuing Education Series

BUGBOOK I & II - Basic concepts ol TTL Logic—over 90

experiments S17.D0/set

BUGBOOK lla - Introduces UART — recommended

lor RTTY enthusiast S5.00/book

BUGBOOK III - Explores 8080 chip — introduces

Mark 80 Microcomputer $15.BO/book

555 TIMER APPLICATIONS SOURCEBOOK WITH

EXPERIMENTS — ovei 100 design techniques S6.95/hook

CMOS-M-DESIGNERS PRIMER AND HANDBOOK

a complete CMOS inslrucliorl manual S6.08

I

/ Ollfi - all IS books iwoitli t-19 95 SPECIAL • S42.95

CONTINENTAL SPECIALTIES

PROTO BOARD 6 S15.95

(6" long X 4" wide)

Other CS Proto Boards

PB100 PB101 PB102 PB103 PB104 PB203

4,5" x 6' S 19.95

5.8" x 4.5" 29.95

7"x4 5" 39.95

9"x6" 59.95

9.5 x 8" 79.95

9.75 x SV2 x 2*4 75.00

PB203A - 9.75 x 614 x KG 120 00

(includes riowei supply)

Logic Monitor S84.95

loi DTL HTL, T7L 01 CMOS Devices

PROTO CLIPS

14 PIN S4 50

16 PIN 4.75

24 PIN 8.50

OESIGN MATES

OM1 - Circuit Designer

54.95 DM2 - Function Generator

69.95 OM3 - RC Bridge

59.95

QT PROTO STRIPS

■ ,!■, ', i'i..;. ■'■

or 35B

OT type OT-59S 0T-59B OT-47S QT-47B OT-35S OT-35B OT-18S OT-12S OT-8S OT-7S

Experimenter 300 Experimenter 600

S 995 $10.95

$5.00 Minimum Order — U.S. Funds Only California Resldsntt — Add 6% Sains Tax

Spec Shouts • 25c — Send 35c Stamp lor 1977ft Catalog Dealer Discount Available — Request Pricing

1021-A HOWARD AVE., SAN CARLOS, CA. 94070 PHONE ORDERS WELCOME — (419] 592-8097

All Advertised Prices Good Thru Augutt

0 Timebancl ]*\ Digital Alarm Clocks

. Dott Button i 100"» Solid State ( larrjc Reo Led Display

i S riirjnt i AMPM indicator i Seconds display at loucti

ot Outlon i fowei failure mdicatoi . One year taciory warranty

DIGITAL AUTO INSTRUMENT

SEVEN DIFFERENT INSTRUMENTS!

MEETS OR EXCEEDS ORIGINAL AUTOMOTIVE SPECS

Please specify wtucn one ol the seven models you want

when oidenng - those do not all come in one onir

Each model must be bought separately

WATER TEMP

FUEL LEVEL 3 Ppicentage Low Fuel Intji&id

W>

, SPEEDOMETER* * 0-99 MPH

OIL PRESSURE

BATTERY MONITOR

BRIGHT YELLOW ORANGE X- I FD DISPLAY! eludes case, brackei and .ill componenls — complelt* Noihing else to Duy' 12 Voll NEG GBD

dimensions 4'.-«4 * 2 KIT: S49.95

Add S10.00 lor required speed transducer ASSEMBLED: S59.95

DIGITAL STOPWATCH

• Bngtit G Digit LEO Display

• Times In 59 minutes 59 59 seconds

• Crystal Conn oiled Time Base

• Three Stopwatches m One Times Single Eveni — Split S Taylor

• Size4.5 x2 15 « 90 (4'j ounces!

• Uses 3 Penlite Cells

Kit — $39.95

Assembled — $49.95

Heavy Duty Carry Case$5.95

Stop Watch Chip Only (7205) $19.95

AUTOTEL — an audible alarm kit Indicating potential engine damage An audible signal |70 db pulsing) im mediately lorewarns a malfunction 01 failure. There is no sound during normal operation Features CMOS circuitry 2Vj" x 2Vi" x V case. Complete kit with all components, hardware and

case. SPECIAL

$6.95/Kit

QUARTZ DIGITAL AUTO CLOCK OR ELAPSED TIMER!

Elapsed Timer: Mrs. Mint and Sect

12 or 24 Hr Capacity

Simple Reset - Start Pushbutton

Contra!

Complete kit includes mounting bracket case and alt components, noilung else 10 tiuy fealuiesMM53l4chip Large 4 LCD's Accuracy Better than i mm per mo internal nailery hackup 12 voll non-poLn operation

* ?

Kit: $29.95 Assembled: $39.95

CASE ONLY (includes hardware

mting bracket and bezel) $6.50

JE700 CLOCK

Trie JE'OO is a low cost digital clock Out is 3 very nign duality unit Ine unn tealures a simulated walnm case will! dimmns oi 6 »?'.-* i It utilises a MAN72 i"igh tHigtitneSS readout and ihc

$17.95

DIGITAL CLOCK KIT — 3% INCH DIGITS

4 DIGIT KIT $49.95 6 DIGIT KIT $69.95

4 DIGIT ASSEMBLED $59.95 6 DIGIT ASSEMBLED $79.95

This clock features big ;jv/ high digits lor viewing in offices, auditoriums, etc. Each digit is formed by 31 bright 0.2" LED's. The clock operates from 117 VAC, has either 12 or 24 hr. operation. The 6 digd version is 27" x 3Vi"KlVj"andthe4digrtts 18"x3Vi" x lyj". Kits come complete with all components, case and transformer.

Specify 12 or 24 Hour When Ordering

JE803 PROBE

the I ogic Protie is a unil wnicti 15 lor me "iOsl I i ndes pen si t4e in imublc snooting loqic lamil; TTL DTL RTL CMOS 11 derives itie powe riHods lo aperatn ilunciiy oil ot trie cucuit

lesl i

iwing a

MAN3

reartoul Id indicate any oi \he lollowmg 5

symbols iHl t aOWl ■ 0 iPUlSEi P Tne

frurn: c.v- Keren hi-j'i ''rLit^nr, ijuiscs lo 45 WH* :ani De used at MOS levels O' circuit damage

$9.95 Per Kit

printed circuit board

PL 5V 1A Supply

This « a standard TTL power supply using the well known LM309K rtyulatar E lo provide a solid 1 AMP Ol current at 5 volts *i- try lo make inmqs easy lor you ay providing everyminc you need in one package incluOmiillii'luulwarL'

'°'anl, S9.95 Per Kit J

B7 7400N TTL

SN7400N .16 SN7459A 25

SN740IN .16 SN7460N 22 SN74154N

SN74Q2N 21 SN7470N .45 SN74155N

SrJ?403N .16 SN7472N .39 SN74156N

SN7404N .18 SN7473N 37 SN74157N

SN7405N .24 SN7474N .32 SN74160N

SN7406N .20 SN7475N' 50 SN74161N

SN7407N 29 SN7476N .32 SN74163N

SN7408N .25 SN7479N 5.00 SN74164N

SN7409N .25 SN7480N 50 SN74165N

SN7410N .18 SN7482N ,96 SN74166N

SN7411N 30 SN7483N .70 SN74167N

SN7412N ,33 SN7485N .89 SN74I70N

SN7413N 45 SN7486N 39 SN74172N

SN7414N ,70 SN7488N 3,50 SN74173N

SN7416N .35 SN7489N 2.49 SN74174N

SN7417N 35 SN7490N .45 SN74175N

SN7420N 21 SN7491N .75 SN74176N

SN7421N .33 SN7492N .49 SN74177N

SN7422N .49 SN7493N ,49 SN74180U

SN7423N .37 SN7494N .79 SN74181N

SN7425N 29 SN7495N 79 SN74182>J

SN7426N .29 SN7496N .89 SN741B4N

SN7427N .37 SN7497N 4.00 SN7418SN

SN7429N .42 SN74100N 1 00 SN74186N

SN7430N 26 SN74107N .39 SN74187>J

SN7432N 31 SN74121N 39 SN74188N

SN7437N 27 SN74122N 39 SN74190N

SN743BN 27 SN74123N .50 SN74191N

SN7439N .25 SN74125N .60 SN74192N

S\7440N 15 SN74126N .60 SN74193W

SN7441N 89 SN74132N 1.09 SN74194N

SN7442N .59 SN74I36N .95 SN74195N

SN7443N 75 SN74141N 1.15 SN74196N

SN7444N .75 SN74142N 4.00 SN74197N

SN7445N 75 SN74143N 4.50 SN74198N

SN7446N .81 SN74144N 4.50 SN74199W

SN7447* 69 SN74145N 115 SN74200H

SN7448N 79 SN74147N 2.35 SN74279N

SN7450N .26 SN74148N 2.00 SN74251H

SN745IN .27 SN74150N 1,00 SN74284N

SN7453N .27 SN74151N ,79 SN74285N

SN7454N 20 SN74153N 89 SN74367N

MANY OTHERS AVAILABLE ON REQUEST 20% Discount lor 100 Combined 740Q's

CD-1O0O CD4001 CD4002 CTJ40O6 CD4007 C04009 CD4010 CO40U CO4012 CD4013 CD-I 016 C04017 CD4019 CD4020 CD4Q22 CD4023 CC402J CD4025 CO4026 C04027 CD4028 CD4029

25

CMOS

2.90

CD4030

CD4035

CD40-10

CDJ042

CD4044

CD4046

CD4047

CD4049

CD4050

CD4051

CD4053

CD4060

CD4066

CD4069

CD4071

CD4081

CD4511

CD4518

MCI 4566

74C0ON

74C02N

7.1C04N

74C10N

74C20N

74C30N

7JC42N

74C73N

74C74

74C90N

74C95N

74C107N

74C151

74C154

74C157

74C160

74C161 '

74C163

74C164

74C173

74C193

74C195

MC4044

MC1J016

3.25 2.60 2.75 2.75

LM3U0H .80

LM301H 35

LM301CN 35

LM302H 75

LM304H I.0B

LM305H 95

LM3Q7CN 35

LM308H 1.00

LM306CN 1.00

LM309H 1 10

LM309K .99

LM310CN 1 15

LM311H 90

LM311N .90

LM31BCN 1.50

LM319N 1.30

LM320K-5 1 35

LM320K-5.2 1.35

LM320K-12 1.35

LM32DK-15 1.35

LM320T-5 1,75

LM320T-5 2 1,75

LM320T-8 1.75

LM320T-12 1 75

LM320T-15 1.75

LM320T-1B 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-I2 1.95

LM340K-15 1.95

LM340K-1B 1.95

LM340K-24 195

LM340T-5 1 75

LM340T-6 1 75

LM340T-8 1.75

LM340T-12 1.75

LM340T-1S 1.75

LM34QT-18 1 75

LM340T-24 1.75

LM350N 1.00

LM35ICN 65

LINEAR

78MG

LM370N

LM373N

LM377N

LM380N

LM3B0CN

LM3B1N

LM382N

NE501K

NE510A

NE531H

NE536T

NE54CL

NE550N

NE555V

NE5608

NE5618

NE562B

NE565H

NE565N

NE566CN

NE567H

NE567V

LM703CN

LM7Q9H

LM709N

LM710N

LM711N

LM723H

LM723H

LM733N

LM739N

LM741CH

LM741CN

LM741-14N

LM747H

LM747N

LM748H

LM748N

LM1303N

LM1304N

LM1305N

LM1307N

LM1310N

LM1351N 1.6

LM1414N 1.7

LM1458C .6

LM1496N .9

LM1556V 1.8

LM2111N 1.9

LM29Q1N 2.9

LM3065N .6

LM3900N 5

LM3905N .6

LM3909 12

LM5556N 1.8

MC5558V 1.0

LH7S25N .9

LM7535N 1,2

8038B 4.9

LM75450 4

75451CN .3

75452CN .3

75453CN .3

75454CN .3

75491CN .7

75492CN .8

75494CN .6

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

CA3081 2.0

CA30B2 2.C

CA30B3 1.e

CA3086 ,i

CA3089 3 7

CA3091 10.2

CA3102 2.5

CA3123 2.1

CA3130 1.3

CA3140 1.2

CA3600 1.7

RC4194 5.9

RC4195 3.2

74LS00 74LS02 74LS03 74LS04 741.S05 74LSOB 74LS10 741S13 74LS» 74LS20 74LS26 74LS27 74L528 74LS30 74LS32 74LS40 74LS51 74LS55 74LS73

29

74LS00 TTL

29

74LS74

74LS75

74L576

74LS63

74LS85

74LSB6

7JLS90

74LS92

74LS93

74LS95

74LS98

7JL5107

MLS 109

74LS112

74LS132

74LS136

74LSI38

74LS139 74IS151

74LS153 74LS157 74 LSI 62 74 LSI 63 74LS164 74LS175 74LS181 74 LSI 90 74LS191 74LSI 92 74LS193 741S194 AILS195 74LS257 74LS260 74LS279 74LS670

CLOCK CHIPS

MM5309 6 Digil. BCD Outputs. Reset PIN

MM5311 6 Bgil. BCD Outputs. 12 or 24 Ham

MM5312 4 Digit. BCD Outputs. 1 PPS Output

MM5314 6 Digit. 12 or 24 Hour. 50 or 60 Hz

MM5316 4 Digit, Alarm. 1 PPS Output

MM5318 Vidso Clock Ctiip. for Use With (MM5B41 - S3 95)

CT70Q1 6 Oiflii. Calendar, term, 12 or 24 Hour

DATA HANDBOOKS

7400 Pin out & DoscMpiion of 5400/7400 ICS CMOS Pin out & Description o* 4000 :-,-<-. ICS Linear Pln-OUt & Functional Descnotion ^ All THRFR HANDBOOKS S6.95

S2.95 S2.95 S2.95

■M

T201 Black Bracalat $19.95

|

TZ37 Whllo w/hfacolol S29.95 T236 Yellow wibmcelBlS34.95

Timcband by/n/MH/w — Watches —

Men's & Ladies

• Solid State

• Displays hour, minute, second, month S day

• Snap-out battery replacement

• Free set ot replacement batteries

• Choose LED or LCD styles

• One year factory warranty

i [Mil While w/slrap S29.S TC440 Yellow w/ilrap $34.5

^ LADIES LED

\

T311 White w/slrap $34.95 T310 Yellow w/slrap $39.95

CHANNEL F

5gT $159.95

• Freeze Action • Speed Option

• Automatic time and scorekeeping Battery-free AC operation Dual controls with 8-way action Built-in Pro Hockey and Tennis games Easy hook-up on any B/W or Color TV Factory warranty

Channel F — additional cartridges — $19.95 ea.

#8112 - Desert Fox/Shooting Gallery #8113 - Blackjack (1 or 2 players)

#8114 - Spitfire (1 or 2 players) #8115 ■ Space War

#8111 - Tic-Tac-Toe/Shooting Gallery/Doodle/Quadra -Doodle

XC209 XCZ09 XC2Q9 XC209

XC22 XCZ2 XC22 XC22 SSL-22

DL707

TYPE MAN 1 MAN 2 MAN 3 MAN A MAN 7 MAN 7G MAN 7V MAN 52 MAN 6-1 MM ti MAN 62 MAN 84 MAN 3620

125" dii. ReC 1

Green Orange

.2CD" rJla

DISCRETE LEDS

XC526 XC526 XC526 XCS26 XC526

Yellow Orange Clear

XC5S6 XC556 XCS56 XC55G XC556

G'een Yellow Orange Clear

.190" dla. Red 10/51

Greer 485

Yellow Al$]

Orange 4/SI .085" dla. MVSO - Red - 6/S1

[INFRA-RED LED

DISPLAY LEDS

C*tti

POLARITY Commo'i Anoas 5 i 7 Doi Main Commnrt Cathcde Common Cathoilc Cotmron AnoO; Common Anofli-gieen Common Anooe-yellow Common Anoae-green Comnion Annds-iDtl Common Calficde Common Anode-yellow Common Cainode-yellow Common Anode -orange

TYPE

MAN 3640 MAN 4710 DL701 01704 DL707 MAN -1740 DL7J1 DL 747 DL 750 DL 33B

POLARITY

Common Calliodeoiange Common Anode-Red Common Anode-red ^ Common Calhode Common Anode Common Anode-Red Common Anode Common Annrle Common Cathode Common Calhode Common CairiDde Common Calhode Common Anode

FCS 8000A — 3W Digit — .8" Display

NEW1 25 Pin Version w

l?:?B

FRONT VIEW -FSCBOOO

SPECIAL

$4.95 EA.

. MAXIMUM FORWARD CURRENT - 25 mA

colon & am/pm mdicalor

• Connects almost one lor one wiin 3817. 38I7A or D. (3817 available al 55,00 each).

■ Typical segment current BmA except colon. 10 hrs b & c and 10 mm. a & fl wiich are 16 mA

• Forward voltage drop 1.5 volts.

1-24

IC

25-49

HP 5082-7300 Multi-Digit Series

• '/«" HI. • Common Cathode • Dip Package

• 3 to 5 volts @ 5 mils per segment

• 7 segment Monolithic • Red Display

2 Digit $ .79

3 Digit .89

4 Digit .99

5 Digit 1.19

SOLDERTAIL — LOW PROFILE (TIN) SOCKETS

50-100

Bpm 14 pin

18 pin 22 pin

14 pin 16p.n IB pin 24 pin

10 pin 16 pin

5 SOLDERTAIL STANDARD (TIN)

SOLDERTAIL STANDARD (GOLD)

24 pin 28 pin

40 pin

WIRE WRAP SOCKETS (GOLD) LEVEL #3

43

50 PCS

ASST. 1 ASST. 2

<ASST. 3

O

- ASST. 4

CL

CO ASST. 5

ASST. 7

ASST. 8R

RESISTOR ASSORTMENTS $1.25 PER ASST.

10 OHM 12 OHM 15 OHM 18 OHM 22 OHM

27 OHM 33 OHM 39 OHM 47 OHM 56 OHM

68 OHM 82 OHM 100 OHM 120 OHM 150 OHM

180 OHM 220 OHM 270 OHM 330 OHM 390 OHM

470 OHM 560 OHM 580 OHM 820 OHM IK

1 2K 1 5K 1 BK 2 2K

3 3K

3 9K

180K

J70K

1 2M

4 7K

5 6K

27QK 680K

1 8M

2 7K

6 8K

330K 820K 2 2M

1/4 WATT 5% 50 PCS. 1/4 WATT 5% 50 PCS.

CO

1/4 WATT 5% . 50 PCS. "U

r~

1/4 WATT 5% = 50 PCS.! 1/4 WATT S*i 50 PCS. 1 1/4 WATT 5% 50 PCS.

5ea. 2 7M 3 3M 3 9M 4 7M 5 6M 1/4 WATT 5% 50PCS.

Includes Resistor Assortments 1 -7 (350 PCS.) $7.49 ea.

$5.00 Minimum Order — U.S. Fundi Only California Hasidonls — Add 6% Sales Tix

Spec Sheets - 25c — Send 35c Stamp tor 1977A Catalog Dealer Olicount Available — Requett Pricing

1021-A HOWARD AVE.. SAN CARLOS, CA. 94070 PHONE ORDERS WELCOME — (415) 592-8097 All Advertised Prices Good Thru August

WIRE WRAP CENTER^

HOBBY-WRAP TOOL-BW-630

$34.95 *

Battery Operated (Size C) Weighs ONLY It Ounces Wiaps 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 lor 30 AWG Wire

• Roll ol 50 Ft. White or Blue 30 AWG Wire •

• 50 pes. each 1". 2". 3" 8 4" lengths pre-stripped wire.

$11.95

WIRE WRAP TOOL WSU-30

WRAP . STRIP . UNWRAP -S5.95

WIRE WRAP WIRE — 30 AWG

25ft. min. $1.25 50(t.S1.95 100ft. $2.95 1000ft. $15.00 SPECIFY COLOR — White • Yellow ■ Red - Green - Blue - Black

Plastic Push Button Switch

' 18 AWG Solid Wire - 5" Long

- .50 (wide) X .60 (high) w-27 Thread

• 8 AMP @ 14 Volt - 1 AMP @ .10 Volt

J.18

-1 Push On-Push Oft .59 -2 Normally Open .59 -3 Normally Closed .59

10-Up

.49

DIP SWITCHES

SPST Slide Action

#206-4 (8 pin dip) 4 switch unit $1.75 eo. #206-7 (14 pin dip) 7 switch unit $1.95 ea. #206-8 (16 pin dip) 8 switch unit S2.25 ea

TV GAME CHIP SET — $14.95

Includes AY-3-8500-1 chip and 2.010 mhz crystal — if purchased separately would cost $18.95.

TYPE

1N746 1N751A 1N752 1N753 1N754 1N959 1N965B 1N5232 1N5234 1N5235 1NS236 1N456 1N458 1N4B5A 1N4001 1N4002 1N4003 1rJ40G4

ZENERS

VOLTS W

3.3 400mm

5.1 400m 5.6 400m

5.2 40Om 6.8 400m 8.2 400m 15 4O0m 5.6 500m 6.2 500m 6.8 500m 7.5 500m 25 40m 150 7m 180 10m

50 PIV 1 AMP

100 PIV 1 AMP

200 PIV 1 AMP

400 PIV 1 AMP

VOLTS 600 PIV 1 AMP 800 PIV 1 AMP 1000 PIV 1 AMP 50 200m

10m 10m

DIODES —RECTIFIERS

PfllCE TYPE

4/1.00 1N4005

4/1.00 1N40O6

4/1.00 1N4Q07

4/1 00 1N3600

4/1.00 1N414B

8/1.00 1N4154

4/1.00 1N4305

28 1N4734

2B 1N4735

28 1N4736

28 1N4738

6/1.00 1N4742

6/1.00 1M4744

6/1.00 INI 183

12/1.00 1N1184

12/1.00 1H11

12/1.00 IN11

12/1.00 1N11

12

PHICE

10/1.00 10/1.00 10/1.00 6/1.00 15/1.00 12/1.00 20/1.00

1w

50 PIV 35 AMP 100 PIV 35 AMP 150 PIV 35 AMP 200 PIV 35 AMP 400 PIV 35 AMP

SCR AND FW BRIDGE RECTIFIERS

C36D ISA @ 400V SCR

C38M 35A @ 200V SCR

2N2328 1.6A@200V SCR

MDA 980-1 I2A @ 50V FW BRIDGE REC.

MDA 980-3 13A@200V FW BRIDGE REC.

MPS A05

MPS A06

2NM19A

2N2221

2N2222A

2H2363

2N3369A

2N2484

2N29D6A

2N2907A

2N2925

2N3063

2N3055

MJE3058 MJE295S 9BBK

2K3398

S'SI 00

Mi oo

3/S1.00 4/S1.00 SSI OC

s/si oa

4/S1.00

4,'SI.OO

TRANSISTORS

PN3567 PN3S68 PN3569 2N3704 2N3705 2N370B 2N3707 2N3711 2H3724 2N372S 2M3903 2N3904 2N3905 2N3906 2NW13 2H4014 2N4123

t»1.eS „-,

ssi oo \L

S'si oo jT

m oo fl i

PN4249

PN42S0

2N140O

2N1401

2N4402

2N4403

2N4409

2N5086

2N50B7

2N50SB

2NS0S9

2N5129

2N513A

2N5139

2N5209

2NS9S1

C1D6B1SCR

2NS43!

441 00 4 HI .00 4/SVOO 4/S1 00

CAPACITOR

10 pi

22 pt

47 pf 100 pt 220 pf 470 pt

.OOlmt .0022

.0047ml .01 ml

.1/35V .15/35V 22/35V .33/35V .47/35V .68/35V 1.0/35V

50 VOLT CERAMIC DISC CAPACITORS

1-9 10-49 50-100 1-9 10-4

05 04 .03 .OOlfiF .05 .04

.05 .04 .03 0047^F .05 .04

.05 .04 .03 .OVF .05 .04

.05 .04 .03 .022/iF .06 .05

.05 .04 .03 .W7/aF .06 .05

.05 .04 .035 1fiF .12 .09

100 VOLT MYLAR FILM CAPACITORS

.12 .10 .07 ,022ml .13 .11

.12 .10 .07 .047ml .21 .17

.12 .10 .07 .imf .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.2/25V .31 .27

.28 .23 .17 3.3/25V .31 .27

.28 .23 .17 4.7/25V .32 .28

.28 .23 .17 6.B/25V .36 .31

.28 .23 .17 10/25V ,40 .35

.28 .23 .17 15/25V .63 .50

MINIATURE ALUMINUM ELECTROLYTIC CAPACITORS Radial Laid

CORNER

47/50V .

I.0/50V .

3.3/50V .

4.7/25V

10/25V

10/50V

22/25V

22/50V

47/25V

47/50V

100/25V

100/50V

220/25V

220/50V

470/25V

1000/16V

2200/16V

Ail a I Lead .13

.47/25V .47/50V 1.0/16V 1.0/25V 1.0/50V 4.7/16V 4.7/25V 4.7/50V 10/1BV 10/25V 10/50V 47/50V 100/16V 100/25V 1OO/50V 220/16V 470/25V

1

ll J

Circle 187 on inquiry card.

Continued from page 164

applications or systems programs. If more scratch memory were needed, any one of a number of Altair compatible 4 K, 8 K or 16 K memory cards could be used with the resident nonvolatile EROM capacity of this card.*

Circle 625 on inquiry card.

A Noteworthy New Board

i

iMiMiimimiiiimiimliiiftii! itiiir00

Mary P Rezanow, production manager of Stillman Research Systems, POB 14036, Phoenix AZ 85063, sent along information on the new SRS-320 Generator Board. This music peripheral

is used to create four distinct channels of output for an Altair compatible computer, with each channel consisting of a well tempered musical pitch timing signal set by a 4 bit note code and a 4 bit octave code. In the minimal music system represented by this board, the outputs of the four channels are summed as square waves and can be used to play four part polyphonic music [with a timbre most appropriate for baroque organ music]. The board comes with a complete manual, including two 8080 programs and hexadecimal music texts for "Joy" by ) S Bach (one part only) and "Dona Nobis Pacem," composer unknown (polyphonic). The two sample texts and the two different driver programs are intended for use on minimal systems. The company is designing a second module in this series, which will be called a Modifier Board and will take the pitch outputs of the Generator Board and process them in a manner similar to a conventional music synthesizer but with computer control of parameters."

Circle 626 on inquiry card.

Attention Altair Bus Experimeters.. .

Do You Have Some Data to Communicate?

D C Hayes, located at POB 9884, Altanta GA 30319, has introduced this Model 80-103A Data Communications Adapter for the Altair (S-100) bus. The product is fully programmable and implements automated dialing or answer

ing, 110 and 300 bits per second data rates with character format and parity error detection, uses the standard US telecommunications modem frequencies, and is fully compatible with the Bell System when attached via a DAA device. The unit features crystal control and all digital modulation and demodulation, so there are no adjustments to be made. Users seriously interested in networking of personal computers will want to consider this product, which is available in several forms: fully assembled and tested at a retail price of $279.95, as a bare board (sans electronic components) with manual for $49.95, and as the manual alone for $7.50. Dealer inquiries are invited as well."

Circle 630 on inquiry card.

And Now, an IEEE-488 Standard Bus Interface

Pickles & Trout have announced this new peripheral interface for the Altair (S-1 00) bus which allows any one of the many computers which have copied the Altair design to talk to instruments and

peripherals which use the HewlettPackard Interface Bus, now supported by the Institute of Electrical and Electronic Engineers (IEEE) as IEEE standard 488. While the 488 standard was originally intended for laboratory instrumentation, its generality makes it quite useful in personal computer systems. A number of commercial and industrial peripherals are already on the market which use this communications discipline.

Six of the eight ports on the Pickles & Trout BDPIO board (Bi-Directional Parallel Input and Output) are on the bi-directional IEEE 488 bus which includes six interrupt lines and an uncommitted line for power or other user selected functions. This bus allows a small number of lines (25) to service devices which require several ports, such as the Digital Group cassette controller. The six ports require only one

Here is an interesting new product which ■ allows the experimenter, or systems consultant, to completely start from scratch in the selection of Altair (S-100) bus compatible peripherals and system components. This new product, called The Mainframe, is the physical starting point for such a system with its essential physical and electrical characteristics. The Mainframe includes a heavy duty vented aluminum cabinet finished in blue color, a 12 slot Altair compatible mother board (with 100 pin connectors inserted, soldered and checked out), a front panel which includes an indicating AC switch and a reset switch, a unique power supply which includes a constant voltage transformer for brownout protection, better than 100 db isolation of the DC supply voltages from AC line transients, and a capacity of 17 A at 8 V and 2 A at +16 and -16 V. A muffin fan rated at 115 cubic feet (3.26 cubic meters) per minute air flow is mounted in the cabinet. All wiring of the kit version is precut and prelugged for ease of assembly.

No price was given in the press release information we received, so potential users should contact CMC Marketing Corporation at 7231 Fondren Rd, Houston TX 77036. Specify either Model MCS-112K or MCS-112A for the kit or assembled versions, respectively.

This product will prove useful to people who want to select a processor board from manufacturer X, a systems software read only memory and terminal interface board from manufacturer Y, main volatile memory boards from manufacturer Z, and whiz-bang peripheral board from manufacturer Q. The result can be a completely custom selection of boards."

Circle 628 on inquiry card.

cable assembly and use a single 25 pin D style connector. An external junction box also available from P & T is used to decode addresses on the 488 bus at the peripheral, and provide additional signal buffering for systems with long cables. For more information on this interesting peripherals interface line, contact Pickles & Trout at POB 2270, Goleta CA 93018."

Circle 629 on inquiry card.

168

FIRE SMOKE INTRUDER ALARM

12 volt DC operation, large 5 inch bell, one unit, all the works under the bell. Nice for camper, boat, homes. $25

VIATRON CASSETTE DECKS

The computer cassette deck alone $35 Set of 2 boards read/write amp & serve control boards for this deck $40.00

PORTABLE FIRE ALARM

Operates on 3 internal AA cells (not furnished) On temp rise of approx 150 Sonalert type alarm sounds off. Push to test switch makes nice sounding code practice oscillator $6.00

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

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

10'

Footage 8 Cond. #24 $2.50

12 14 24 29

Great

22 22

" #24

22

savings as

50' 100' 9.00 15.00 11.00 18.00 13.00 21.00 20.00 30.00 7.50 28.00 45.00 these are about 1 /4

3.00 3.50 5.00

book prices. All fresh & new.

TOUCHTONE ENCODER CHIP

Compatible with Bell system, no crystal required. Ideal for repeaters & w/specs. S6.00

CHARACTER GENERATOR CHIP

Memory is characters.

512x5 produces 64 five by seven ASCII New material w/data $6.00

sTie&nMci

Please add shipping cost on above. Minimum order $10

FREE CATALOG SP-9 NOW READY P.O. Box 62, E. Lynn, Massachusetts 01904

Circle 188 on inquiry card.

169

Classified Ads

FOR SALE: One Central Data 2650 board with 8 K of static programmable memory, power supply and cabinet. Has connectors for the keyboard, video monitor and tape recorder, and is totally assembled and tested; best offer over $850. Also have a switch console for the 2650 board. Has address, data and control bus switches as well as hardware breakpoint and single step. $250. J Roloff, 2214 Brookshire Dr, Champaign IL 61820.

USER'S GROUP: For 2650-based microprocessor as featured in April 1977 Radio Electronics. G Frank Humiston, 506 Wayne Av, El Cajon CA 92021.

FOR SALE: Hewlett-Packard HP-55 scientific programmable calculator with all original accessories, plus a security cradle, extra recharger, and reserve power pack (less battery). Asking $225. Frank Scavo, 1811 Court St, Syracuse NY 13208.

FOR SALE: Five new Phi-Deck units. $100 each, $25 with order, balance COD. Ron Riley, POB 4310, Flint Ml 48504.

FOR SALE: One IMSAI 8080 microcomputer with 6 slot mother board, 4 K RAM, and IMS MIO multiple IO board with cassette interface. Also one cable for one IO port. All assembled and working. Postpaid $965. Michael C Bechard, 1 Walnut St, Box 242, Champlain NY 12919.

FOR SALE: Burroughs Accounting System. Consists of E6090 processor, E6000 console, A4004 ledger reader, A594 card reader, A988 line printer. Magnet wire #29 to #35, $2 lb; #36 to #10, $2.50 lb; #41 to #44, $3 lb, SASE for reply. Douglas Craton,5625 Balfrey Dr, W Palm Beach FL 33406, (305) 686-1106 after 6:00 PM.

WANTED: Looking for PDP-8 m/e modules,

positive IO, Teletype, Data Break, 8 K memory, and RK 8 controller. Who can help? Wolf L Carstens, D-2359 Hasenmoor.W GERMANY.

WANTED: Altair 8800, 8800a, or 8800b, new or used, kit or assembled, in working order, at a good price. I also need one copy each of BYTE issues 1 thru 11. Call evenings (201) 652-2875 or write D Rubin, 47 Dale Av, Wyckoff NJ 07481.

FOR SALE: HP-65 fully programmable calculator with all accessories, like new, with two Math Pacs, Nav Pac 1 and Stat Pac 1, Standard Pac, blank magnetic cards, complete HP-65 User's Library catalog, $325. Jack Sullivan, 17 Pelham Rd Hudson NH 03051, (603) 883-8514 evenings.

FOR SALE: SWTPC CT-1024 converted to 64 characters, computer cursor, screen read, power supply, working perfectly, best offer over $250. MARK-8: output port, CPU board, address latch, display board, input multiplex, 1 K memory without chips, C8008-1, documentation, populated boards, best offer over $1 20. Will wait two weeks, return all others, t pay postage. Cashiers check, money order, postal money order only. Matt Perdue, 4015 N 20th Rd, Arlington VA 22207, (703) 527-8979.

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

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

FOR SALE: Two complete CDC, RPC-4000 computers, each includes CDC paper tape reader, Friden paper tape punch. Royal McBee console typewriter 8000, 32 bit drum memory. These are second generation computers, with discrete transistors, etc. Both are running. With the above goes: one Friden adding machine with paper tape punch; one Friden Flexowriter, an extra Friden punch, a Soroban high speed punch, and several other peripherals partially scavenged for parts. Each computer was $80,000 when new. Will sell the works for $2,500 including a compiler, some utility programs and some application programs. Walter E Page, 3960 S Marginal Rd, Cleveland OH 44114.

FOR SALE: Viatron System 21, complete with CPU power supply, keyboard, CRT monitor, and two tape drives, $475. Also Friden 10 cps paper tape reader-punch with 80 column card reader attached, $95. Michael Toft, 69 Westbury St, Thousand Oaks CA91360, (805) 497-7141.

WANTED: DECtape read write head in usable condition preferably with cable and Amphenol connector intact. Also CM8/I card reader with manuals and engineering drawing if possible. Quote price on any or all as well as other PDP-8/I peripherals, memory, parts you may wish to put into our kindly "old horse" pasture. FREE: copy of Mark-8 Construction Booklet for 10 by 12 inch. SASE. Bro Felix Neussendorfer, Colegio San Antonio Abad,POB 729, Humacao PR 00661.

FOR SALE: Typagraph Terminal (a modified Model 33 Teletype). Good condition. Full plotting capability. Will make beautiful curves. Can make 1/50 inch incremental moves in any direction. Also has paper tape punch and reader. Two electronic modules included. Software available. $995. Call Nancy Daedone (408) 279-2737.

FOR SALE: Brand new MITS 88-S4K synchronous dynamic memories, professionally built by electronic company, $130 each. Call days. Marco Lanza (617) 244-3216.

WANTED: Schematic or technical assistance on interfacing a Friden Flexowriter (Model SPS) to an IMSAI 8080. Would like to be able to use the Friden in both local or remote mode. The IMSAI has both serial and parallel ports. Write John Gill, RT 5 Box 370, Blountville TN 37617.

FOR SALE: Portable TV, modified for TVT use $55; MITS 1 K static assembled, best offer; 4 K static $95; MITS 4 K static $125; HP line printer 11 columns, digits only, needs interfacing $40 Charles Zalenski, POB 92,Johnson City NY 13790.

FOR SALE OR TRADE: One SIO IMSAI board,

two ports. New, never used, assembled as a kit tested by IMSAI. One Carterfone data modem, half full and power, RS-232; some parts need replacement but in good condition. Make an offer. Garry Baratta, POB 335, Eveleth MN 55734, or call (218) 741-6838 after 7:00 CST.

FOR SALE: Altair 680b, assembled and running great. Best offer over S300. Alan Dahlbom, 16 Forest St, Cambridge MA, (617) 492-0676, evenings.

FOR SALE: Friden Model TM20K714 keyboardprinter with TM20K15 controller and schematics. $300, you pay shipping. Also copies of schematics for above controller available for $6 to cover copying and first class shipping. Tim Ahrens, 2200 Sorret Tree Ct, Austin TX 78744.

FOR SALE: IMSAI 8080, 8 K IMSAI memory, 22 slot mother board, IMSAI audio cassette board. Processor Tech 3P+S interface, Oliver Audio Engineering OP-80A paper tape reader, plus much miscellaneous software, plugs, sockets, etc. All in like new condition, $899. Ken Schweim, 1709 Mary Ln, N Mankato MN 56001. (507) 388-5734.

FOR SALE: Percom data cassette interface CI-810 in box with cable and connector, ready to plug into a parallel IO port, $50. Larry Belmontes Jr, 1762 Yale St, Corpus Christi TX 78416.

FOR SALE: OP-80 paper tape reader, brand new and working, used only three times; regularly $80, asking $55. Larry Belmontes Jr, 1762 Yale St, Corpus Christi TX 78416.

WANTED: First ten issues of BYTE. K C Naizer, POB 355, Nederland TX 77627.

TELETYPE: Western Union Model 101 Baudot Teleprinter. Going to college, no room for machine, good condition. Sell for S60 or trade for ??? David J Lilja, 6401 Van Wert Rd Rt 3, Cedar Falls IA 50613, (319) 266-7633.

SWAP OR SELL: Have first 16 issues of BYTE, like new. Desire Grid Dip Meter, ham radio equipment, or ??? Billy Travis, 4054 Sawtelle Blvd, Los Angeles CA 90066.

WANTED: Micropersonal computing mate. I've gotten so wrapped up with microprocessors that my love life is suffering. If there's an interesting female out there with similar interests, let's get synergistic. I fly, so a reasonable distance is no problem. Martin Edwards, POB 6244, Torrance CA 90504 or answering service telephone (213) 874-2200.

WANTED: Burned out ICs, any size. Also burned out CPUs in 40 dip package. Indicate price desired. Is there a computer club for 1802 users? If so, tell me how I can join. Jeff Foster, POB 603, Bellflower CA 90706.

FOR SALE: ASR 33 TTY with auto reader, auto punch, print blind features, parts, maintenance, lube manuals and diagrams, good condition $700. A W Walker, 6000 N 27th St, Arlington VA 22207, (703) 533-9336.

FOR SALE: IBM 024 Card Punch, with alphanumeric keyboard, good condition with documentation $275. IBM 056 Card Verifier, with alphanumeric keyboard, documentation, good condition $125. Use for original intended purpose or modify readily for microprocessor card IO. Will not ship. A W Walker, 6000 N 27th St, Arlington VA 22207, (703) 533-9336.

FOR SALE: 63 key ASCII encoded keyboard, 100% working and built, $50. Oliver Audio Engineering OP-80A paper tape reader assembled and working, $75. Memory Translator, digital FSK modern (see April 1975 Popular Electronics} $75. Call (617) 963-5578 Monday thru Friday after 3PM.

WANTED: Issues 1 thru 16 of BYTE in good condition. Best offer under $75. Brian Branson, POB 911, Loma Linda CA 92354, (714) 7961128.

FOR SALE OR SWAP: Texas Instruments SR-52 with PC-100. Outfit includes all standard accessories, EE1 program library, PPX-52 membership, and spare battery pack. As a complete outfit only, will sell for $340 or swap with cash for HP-67. David Lamkins, 502-12 Sherman St, Canton MA 02021, (617) 828-7480 or 253-2460 most days and evenings.

FOR SALE: Complete Viatron System 21 with communications adaptor (missing UART); includes all data and about six Viatapes, $375. Printing robot and interface to Viatron, $175. IBM Selectric Model 72 typewriter, $300. Will take $730 for all or make offer. All in perfect operating condition; you ship. Keith Teague WB5FMJ, POB 65, Alma AR 72921, (501) 632-2532 after 6 PM.

ATTENTION HAMS: I have vintage QST and CQ magazines, 1962 to 1966, and I will swap ten for one BYTE issues #1, 2, 3, 8, 9, 14. Dan Lasley, 3365 Steve #14, Memphis TN 38111, (901) 744-4866.

FOR SALE: Issues 2, 3, 4, 5 of BYTE; two MITS 4 K programmable memory boards assembled and in excellent condition; one 5 V, 25 A Wanless regulated power supply; one Heath IMPScope. Will accept best offer on each item. David Milhouse, 2823 Griffa Av, Columbus IN 47201.

SELL OR TRADE: PDP-8 4 K minicomputer with TTY interface $750. Will sell with Teletype for $1500. Data Mark 300 1 pm printer with PDP-8 interface and spare memory module $900. PDP-8/E Teletype interface $200. Ampex TM-11291 9 track 150 ips tape drive $600. Wayne Simpson, 3330 W 64th PI, Tulsa OK 74132, (918) 446-0401.

170

Circle 189 on inquiry card.

World's Lowest IC Prices

MEMORIES

Rams

74S200

2102

2102-1

2.95 1.40 * 1.60*

7447 7450

Proms

7451

82S23/S123 82S129

1.95* 3.25

7473 7474

Others

7475

TMS 3409 MM 5013 NS 5260 NS8619 MH 0026H

2.00 1.50 1.50 2.00 3.25

7480 7483 7486 7490 7493 7495 74107

TTL

7400

.12*

74109

7402

.14

74116

7403

.14*

74123

7404

.16*

74141

7407

.20

74145

7410

.12*

74150

7416

.25

74151

7420

.12*

74152

7427

.25

74155

7437

.20

74157

7438

.20*

74160

7440

.12*

74161

7441

.65*

74163

7445

.60

74165

SPECIAL PRICES

.65* .14 .14* .28 .28 .40 .35* .68 .28 .45 .44* .49 .29 .30 1.50 .45* .80* .65* .60* .60 .90 .60 .60 .75 .60* .75* .80

74173

74174

74175

74177

74180

74181

74191

74192

74193

74194

74195

74198

9602

9300

9312

1.25

.75

.75*

.70

.65* 1.50

.85

.70*

.70*

.85

.68 1.25

.50*

.75

.70

SCHOTTKY

74S01

74S02

74S37

74S38

74S85

74S113

74S138

74S139

74S140

74S151

74S153

74S172

74S174

74S175

74S181

74S197

74S257

.25

.25

.40

.60 2.00

.80 1.50 1.50

.50 2.00 2.50 4.50 2.05 2.05 * 2.95 2.20 1.50

LINEARS

DM8820/30

NE536T

NE555V

NE556A

1456 V

1458V

566V

567V

540L

HIGHSPEED

74H00

74H01

74H04

74H10

74H11

74H40

74H51

74H52

74H74

74H103

74H106

1.75

2.75

.43

.90

.75

.52

1.25

1.35

2.00

.20 .20 .20 .20 .20 .20 .20 .20 .40 .50 .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

.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

4073 4075 4516 4528

LOW POWER

SCHOTTKY

74LS00

74LS02

74LS08

74LS10

74LS27

74LS73

74LS75

74LS151

74LS153

74LS157

74LS161

74LS163

74LS164

74LS174

74LS175

74LS193

74LS221

74LS251

74LS253

74LS257

74LS258

.16 .16 .85 .75

.23 *

.23*

.23*

.23*

.25*

.45

.65

.75*

.75*

.75*

1.00 *

1.50

1.50

1.00*

1.50

1.50

1.25*

1.50

1.50

1.25*

1.25*

Order Minimum $10.00 Add $1 00 shipping and handling charge per order Calilornia residents add6.5% sates tax All orders shipped First Class within 24 hours

Order the famous lasis 6 volume Programmed Learning Course $99.50 and receive a special $10.00 credit on any group of IC's.

Microcomputer Design is a Snap" for

Satisfaction 100% guaranteed.

€LTRON

Free catalog—Just send us your name and address

C O.D Orders: Phone (day or night) 408/354-1448

PO BOX 2542 B Sunnyvale, CA 94087 ---J

v

Q qjbercDrn boards

MB-1 MK-8 Computer RAM, (not S-100), 4KX8, uses 2102

type RAMs, PCBD only $22

MB-3 1702A EROM Board. 4KX8, S-100, switchable address and wait cycles, kit less PROMS $65

MB-4 Basic 4KX8 ram, uses 2102 type rams, may be expanded to 8KX8 with piggybacking, S-100 buss. PC

board $30

MB-6 Basic 8KX8 ram uses 2102 type rams, memory protect in 256 to 8K switchable S-100 buss, PCBD $35

MB-8 2708 EROM board, S-100, 8KX8 or 16KX8 kit without

PROMS $85

IO-2 S-100,8 bit parallel l/Oport, %of board is tor kludging.

Kil $55 PCBD $30

VB-1 64X 16 video board, upper lower case Greek, composite and parallel video with software, S-100.

Kit $189.00 PCBD $35

SP-1 Music synthesizer board, S-100, computer controller wave forms, 9 octaves, 1V rms Vz% distortion, includes

software kit $250

Allair Compatible Mother Board, 11 x 11'/> x Vis".

Board only... $45 With 15 connectors $105

Extender Board full size. Board only $9

With connector $13.50

Solid state music Cybercom boards are high quality glass board with gold finger contacts. All boards are check for shorts. Kits only have solder mask. 90 day guarantee on Cybercom kits.

Waneco Boards

MM-1 8KX8 fully buffered, S-100, uses 2102 type rams.

PCBD $30

Mother Board 12 slot, terminated, S-100, board only$40

Special 8080A processor & support chip set kit includes one of each; all parts prime 9080A (8080A); 8228; 8212; 8216; 8251; 8214; 8224; 8225. Special $75.00

Special 2101AL-4 1K x 1 ram W less power than 21L02 type rams, with power down, prime from NEC. Ea. 2.00; 32 ea. 1.80; 64 ea. 1.70; 128 ea. 1.60; 256 ea. 1.50; 512ea. 1.45.

9080A AMD 8080A (Prime) 25.00

8212/74S412 Prime 4.00

8214 Prime 8.30

8216 Prime 4.95

8224 Prime 5.00

8228 Prime 8.90

8251 Prime 14.50

8255 Prime 14.50

1702A-6 AMD 4702A Prime 8.00

TMS-6011 UART Prime 6.95

2513 Char Gen Upper Prime 11.00

2513 Char Gen Lower Prime 11.00

1702A Intel Not Prime 8.00

8T10 8T13 8T16 8T20 8T24 8T26 8T34 8T37 8T38 8T80

2.00 2.50 2.00 2.00 2.50 2.75 2.50 2.50 2.50 2.50

8T97

8T110

5309

5312

5313

5320

5554

5556

5055

2.00 2.00 8.00 4.00 4.00 5.95 1.90 2.50 1.60

MC4044 2.25

M

80L97 81L22 82L23 85L51 85L52 85L63 86L70 86L75 86L99 88L12

419 Portofino Drive San Carlos, California 94070

Please send lor IC, Xistor and Computer parts list.

1.50

1.50 1.90 2.50 2.50 1.25 1.50 1.90 3.50 .80

74L00

74L01

74L02

74L03

74L04

74L05

74L06

74L08

74L09

74L10

74L20

74L26

74L30

74L32

74L42

74L51

74L54

74L55

74L71

74L73

74L74

74L75

74L78

74L85

74L86

74L89

74L90

74L91

74L93

74L95

74L98

74L123

74L164

74L165

74L192

74L193

MH0026

MC1488

.25

.25

.25

.25

.30

.40

.30

.40

.40

.30

.35

.40

.40

.45

1.50

.35

.45

.35

.30

.55

.55

1.20

.90

1.40

.75

3.50

1.50

1.50

1.70

1.70

2.80

1.50

2.50

2.50

1.25

1.20

2.95

1.50

74LS0O

74LS01

74LS02

74LS03

74LS04

74LS05

74LS08

74LS10

74LS12

74LS20

74LS22

74LS27

74LS30

74LS37

74LS38

74LS42

74LS51

74LS54

74LS55

74LS73

74LS74

74LS76

74LS151

74LS174

74LS175

74LS192

2501B

2502 B

2507V

2510A

2517V

2519B

2532B

2533V

DM8131

N8263

MC1489

DM8837

.40

.50

.40

.40

.45

.45

.40

.40

.55

.40

.45

.45

.40

.60

.60

1.50

.40

.45

.40

.65

.65

.65

1.55

2.20

1.95

2.85

1.25

3.00

1.25

2.00

1.25

2.80

2.80

2.80

2.50

3.50

1.50

1.50

1101

1103

2101

2111-1

2112

2602

4002-1

4002-2

MM5262

7489

74200

74C89

82S06

82S07

82S17

8223

82S23

82S123

82S126

82S129

82S130

82S131

IM5600

IM5610

IM5603

IM5604

IM5623

IM5624

MMI6330

DM8573

DM8574

DM8575

DM8576

DM8577

DM8578

2.4576 MHZ

XTAL 7.20

1.25 1.25 4.50 3.75 4.50 1.60 7.50 7.50 1.00 2.00 4.95 3.00 2.00 2.00 2.00 2.50 3.00 3.00 3.50 3.50 3.95 3.95 2.50 2.50 3.00 3.50 3.00 3.50 2.50 4.50 5.50 4.50 4.50 3.50 4.00

Check or money order only. If you are not a regular customer and your order is large please send either a cashier's check or a postal money order, otherwise there will be a delay ot two weeks lor the check to clear. All items post paid in the U.S. Calif, residents add 6% tax. Money back 30 day guarantee. We cannot accept returned IC's that have been soldered to. Prices subject to change without notice. $10 minimum order.

171

Circle 190 on inquiry card.

ARTEC Introduces

The Expandable 32K Elephant

The 8K-32K Expandable Memory That Grows With Your System

Now, for the first time, you can have a reliable true static memory that will grow with your system. Start with the board and 8K memory. Then add on one, two or three 8K increments of memory up to 32K. 250 ns access time. The Artec 32K Expandable Memory allows you plenty of room for memory and all necessary support hardware.

For five years Artec craftsmanship and reliability has been proven in tough industrial use. Now, you too can enjoy breadboards and memories that will work time after time. Boards like the GP 100 and the wire wrap WW-100. Send for an Artec Board, your order will be sent the same day as received.

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

GP-100— $20.00

Maximum design versatility along with standard address decoding and buffering for S—100 systems. Room for 32 uncommitted 16 pin IC's, 5 bus buffer & decoding chips, 1 DIP address select switch, a 5 volt regulator and more. High quality FR4 epoxy. All holes plated through. Reflowed solder circuitry.

WW-100—$20.00

A wire wrap breadboard, similar to the GP 100. Allows wirewrap of all sizes of sockets in any combination. An extra regulator position for multiple voltage applications. Contact finger pads arranged for easy

TO ORDER: Use your Mastercharge or BankAmericard. Or just send along a money order. Your order will get same day service.

FOR MORE INFORMATION: For more information about these or any of Artec's complete line of circuit boards or for either industrial or personal use, please call or write. A catalogue will gladly be sent.

Please send me:

□ 32K □ GP-100 □ WW-100

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

□ BankAmericard No.

Name.

Address City

. State.

.Zip.

10% discount for students & computer club members.

pin insertion.

dRTGCeLCCTRONiajNC

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

Circle 195 on inquiry card.

INTRODUCTORY MEMORY OFFER

NEW

PRIME

QUALITY

2708 $0^95

1Kx8 uv ^&^T PROM

Programming

Service

Available

21L02 350nS STATIC RAM $1.95

8 FOR $14.00

FACTORY SECONDS

2102 STATIC RAM $1.25

8 FOR $ 9.00

-7400T"

rL SERIES

7400

.16

7491

.75

7401

.16

7492

.50

7402

.21

7493

.50

7403

.16

7494

.80

7404

.18

7495

.75

7405

.24

7496

.90

7406

.20

74100

1.00

7407

.29

74107

.40

7408

.25

74109

.90

7409

.25

74121

.40

7410

.18

74122

.50

7411

.30

74123

.70

7413

.45

74125

.60

7414

.70

74126

.60

7416

.35

74132

1.00

7417

.35

74141

1.15

7420

.20

74145

1.15

7423

.37

74147

2.35

7426

.30

74148

2.00

7427

.35

74150

1.00

7430

.25

74151

.80

7432

.30

74153

.90

7437

.27

74154

1.00

7438

.27

74155

1.00

7440

.20

74156

1.00

7441

.85

74157

1.00

7442

.60

74160

1.25

7443

.75

74161

1.00

7444

.75

74162

1.50

7445

.75

74163

1.00

7446

.80

74164

1.10

7447

.70

74165

1.10

7448

.80

74166

1.25

7450

.25

74170

2.10

7451

.25

74173

1.50

7453

.25

74174

1.95

7454

.20

74175

.95

7460

.20

74176

.90

7470

.45

74177

.90

7472

.40

74179

.90

7473

.35

74180

.90

7474

.35

74181

2.50

7475

.50

74182

.95

7476

.30

74184

1.95

7480

.50

74185

2.20

7483

.70

74190

1.15

7485

.90

74191

1.25

7486

.40

74192

.90

7489

2.00

74193

.90

7490

.45

74194

1.25

74195

.75

74LSSERIES

74L SERIES

LINEARS

74LS00

74LS02

74LS03

74LS04

74LS05

74LS08

74LS10

74LS13

74LS14

74LS20

74LS26

74LS27

74LS28

74LS30

74LS32

74LS40

74LS51

74LS55

74LS73

74LS74

74LS75

74LS76

74LS83

74LS85

74LS86

74LS90

74LS92

74LS93

74LS95

74LS96

74LS107

74LS109

74LS112

74LS132

74LS136

74LS138

74LS139

74LS151

74LS153

74LS157

74LS162

74LS163

74LS164

74LS175

74LS181

74LS290

74LS191

74LS192

74LS193

74LS194

74LS195

74LS257

74LS260

74LS279

74LS367

.39

.39

.39

.45

.45

.39

.39

.79

2.19

.39

.49

.45

.49

.39

.45

.49

.39

.39

.65

.65

.79

.65

1.75

1.75

.65

1.25

1.25

1.25

1.25

1.89

.65

.65

.65

1.25

.65

.65

25

25

25

25

75

25

1.75

1.25

3.69

1.75

1.75

1.65

1.75

1.75

1.75

1.25

.55

.79

1.15

74L00

74L04

74L06

74L08

74L09

74L10

74L20

74L26

74L30

74L42

74L75

74L78

74L86

74L90

74L91

74L93

74L95

74L98

74L123

74L164

.25

.30

.30

.40

.40

.30

.35

.40

.40

1.50

1.20

.90

.75

1.50

1.50

1.70

1.70

2.80

1.50

2.50

301CN

308CN

318CN

320T-5

320T-5.2

320T-8

320T-12

320T-15

320T-18

320T-24

323K-5

324N

339N

340T-5

340T-6

340T-8

340T-12

340 T-15

340T-18

340T-24

566CN

567V

.35 1.00 1.19 1.50 1.50 1.50 1.50 1.50 1.50 1.50 7.95 1.50 1.10 1.50 1.50 1.50 1.50 1.50 1.50 1.50 1.65 1.55

COMPUTER POWER SUPPLY

+5V at 1.2 AMP, ±12V at .25 AMP

*Q96

I.C. SOCKETS (SCANBE)

14 PIN 16 PIN 14 PIN 16 PIN 24 PIN

SOLDERTAIL

.22

SOLDERTAIL

.24

WIREWRAP

.45

WIREWRAP

.49

WIREWRAP

.69

BATTERY CHARGERS

6Vand9V *Q50

S100 BUS DESCRIPTION

DETAILED WRITE-UP OF ALL S100 SIGNALS

$195

Minimum Order $10.00. California residents add 6% sales tax.

For immediate shipment, send cashier's check or money order.

Add $1.00 shipping and handling charge per order. **** 100% SATISFACTION GUARANTEED *****

ORDER BY PHONE: (213) 888-5079

OR BY MAIL

QUAN TRONICS

P.O. BOX 264 CHATSWORTH, CA. 91311

MANY OTHER PARTS AVAILABLE - JUST CALL OR WRITE FOR FREE CATALOG

Circle 191 on inquiry card.

S.D. SALES CO. p.o. box 28810 - ■ dallas, texas 75228

Z-80 CPU KIT For Imsai-Altair $149. ^t

Z-80 Chip & Manual $49.95

From the same people who brought you the $89.95 4K RAM Kit. We were not the first to introduce an Imsai/Altair compatible Z-80 card, but we do feel that ours has the best design and quality at the lowest price!

The advanced features of the Z-80 such as an expanded set of 158 instructions, 8080A software compatibility, and operation from a single 5VDC supply, are all well known. What makes our card different is the extra care we took in the hardware design. The CPU card will always stop on an M1 state. We also generate TRUE SYNC on card, to insure that the rest of your system functions properly. Dynamic memory refresh and NMI are brought out for your use. Believe it or not, not all of our competitors have gone to the extra trouble of doing this.

As always this kit includes all parts, all sockets, and complete instructions for ease of assembly. Because of our past experience with our 4K kit we suggest that you order early. All orders will be shipped on a strict first come basis. Dealers inquiries welcome on this item. Kit includes Zilog Manual and all parts. Kit shipped with 2 MHZ crystals. Z-80 MANUAL - $7.50 SEPARATELY

THE WHOLE WORKS

$89.95

4K LOW POWER RAM BOARD KIT

Imsai and Altair 8080 plug in compatible. Uses low power static 21L02-1 500 ns. RAM'S. Fully buffered, drastically reduced power consumption, on board regulated, all sockets and parts included. Premium quality plated through PC Board. ' For 250 ns RAM's add $10.00

CAR/BOAT KIT

$34.95

/ NEWEST KIT FROM S.D. SALES!

MUSICAL HORN

HOME KIT

$19.95

Musical Horn Kit for Car, Boat or Home

Plays any tune from Mozart to Led Zeplin

Change tunes in seconds

Complete Solid State electronics

Standard or custom tunes available at S6.95 each

(you supply us with the sheet music — we supply

electronics for your favorite tunes.)

One song supplied with original order

Standard Tunes Available: DIXIE - EYES OF TEXAS - ON WISCONSIN YANKEE DOODLE DANDY - NOTRE DAME FIGHT SONG - PINK PANTHER - AGGIE WAR SONG - ANCHORS AWAY - NEVER ON SUNDAY BRIDGE OVER RIVER QUI - CANDY MAN Home Kit includes speaker which operates from your door bull. When door belt is pushed your favorite tune is played. Car/Boat Kit DOES NOT include speaker. Uses standard 8ohm PM speaker. Allow 4 weeks delivery on both kits.

JLmitd OmMf! SIX DIGIT ALARM CLOCK KIT $9.95 wt

We made a fantastic kit even better. Redesigned to take advantage of the latest advances in I.C. clock technology. Features: Litronix Dual Vi" 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). For P.C.Board add $3.00; AC XFMR add $1.50. Do not confuse with Non-Alarm kits sold by our competition! Eliminate the hassle - avoid the 5314! NEW! WITH JUMBO LED READOUTS!

1000 MFD

Filter Caps Rated 35 WVDC Upright style with PC leads. Most popular value for hobbyists.

4/$1.00

SLIDE SWITCH Assortment Our best seller. Includes miniature and standard sizes, single and multiposition units. All new.

12/$1.00

POWER

RESISTOR

IS OHM

25W

BY

CLAROSTAT

750 ea.

RESISTOR ASSORTMENT

7.W 5% & 10% PC leads. A good mix of values! Special I

200/$2.

P.C. LEAD DIODES

1N4148/1N9I4

1007S2.00

1N4002-1A

100 PIV

40/$1.

Just received a good mixed lot of National TO-92 plastic transistors. PNP & NPN, even a few FET's. 40-50% yield. Untested Asst.

~500/$3.

DISC CAP ASSORTMENT P.C. Leads. At least 10 different values. Includes .001, .01, .05 plus other standard values.

60/$1.00

AMD-1702A

FACTORY PRIME UNITS! BRAND NEW! 1.5 Micro-Seconds Access Time.

10/$40. $4.95 ea.

IC s from XEROX

7400- 9c 7402 - 9c 7404- 9c 7406 -11c 7407-11c 7410- 9c 7416 -13c 7420- 9c

7430 - 9c 7440- 9c 7437-10c 7438-10c 7451 - 9c

7474 -16c

7475 -24c 7486 -16c

7493 -26c 74121 -22c 74123 -32c 74151 - 9c 741 55 -22c 74193-35c 8233 -35c Intel -1302-45c

1402 A Shift Regulator - 50c MH0025CN - 55c

IC's REMOVED FROM

PC BOARDS

ALL TESTED;

FULL SPEC.

UP YOUR COMPUTER! 21L02-1

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!

500 ns 8/$12.95 250 ns 8/$15.95

$12.95£2) SokiZvluwi!$12.95

MOS 6 DIGIT UP/DOWN COUNTER

40 PIN DIP. Everything you ever wanted in a counter chip. Features: Direct LED sement drive, single power supply (12 VDC TYPE.), six decades up/down, pre-loadable counter, separate pre-loadable compare register with compare out-put, BCD and seven segment outputs, internal scan oscillator, CMOS compatible, leading zero blanking. 1MH2. count input frequency. VERY LIMITED QUANTITY!

28 PIN IC Sockets 3/$1.00

11,000 MFD

50WVDC

Computer Grade

Cap. $3.00

3.579545

MHZ Time

Base Crystal

$1.25

39 MFD 16V Mallory Electrolytic

15/$ 1.00

TERMS:

MONEY BACK GUARANTEE! No COD's. Texas Residents add 5% Sales Tax. Add 5% of order for postage & handling. Orders under $10. add 75c. Foreign orders: U.S. Funds Only!

Call in your BANKAMERICARD or MASTER CHARGE order in on our Continental United States Toll Free Watts Line:

1-B00-527-3460

Texas Residents Call Collect:

214/271-D022

Cheap DC Supply $2. ea.

Actually an AC adaptor for calculators. 9VDC no load. 6VDC @200ma. 4VDC 19

376ma.

S.D. SALES CO.

P.O. BOX 28810-B

DALLAS, TEXAS 75228

Orders over $15. - Choose $1. FREE MERCHANDISE!

Circle 192 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 may be used with the

F8 and with minor modifications may be used

with KIM-1jup.

32-2102-1 static RAM's, 16 address lines, 8 data lines in, 8 data lines out, all buffered. Onboard decoding for any 4 of 64 pages, standard 44 pin, .156" buss.

_F8 EVALUATION BOARD KIT WITH EXPANSION CAPABILITIES

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

$99

00

64 Byte register

Built-in priority interrupts

Documentation

Uses Fairbug PSU

FOR FAIRBUG 4K F8 BASIC ON PAPER TAPE $25°

2708-8K EPROM . S24.95

2522 STATIC SHIFT RE6 S 1.95

2513CHARACTER GEN S 9.95

2513-HEX 32 BIT SR S 3.50

2102 1 1024 BT RAM S 1.29

5280 IK DYNAMIC RAM . . S 4.75

MM5202A UV PROM S 6 95

MM5203UVPROM S 6.95

1702AUVPROM S 4.95

5204-4 K PROM S10.95

AYft-1013 UART $ 6.95

mTnIATURE MULTI TURN TRIM POTS " 100, 500, 1K,2K,5K,10K,25K,50K,100K,

200K,500K 1 Mng. $.75 each 3/S2.00

"WfuLTt'TUFlN TRIM POTS Similar to Bourns 3010 style 3/l6',x5/8"x1-1/4"; 50, 100, IK, 10K. 50K nhrns SI .50 ea. . .3/54.00 LIGHT ACTIVATED SCR's TO 18.200V 1 A S 1.75

TRANSISTOR SPECIALS

2N3585 NPN Si TO 66 S .95

2N3772 NPN Si TO-3 S 1.60

2N4S6A PNP GE S 75

2N490S PNP Si TO 3 . S 1.00

2N6056 NPN Si TO 3 Darlington S 1.70

2N5086PNPSi TO-92 4/S 1.00

2N4898PNPTO-66 S .60

2N404 PNP GE TO 5 5/$ 1.00

2N3919MPN S. TO 3 RF SI.50

MPSA 13 NPN Si TO 9? ... . 3/S 1.00

2N3767NPNSiT0 66 . . .$ 70

2N222? NPN S< TO-18 . . S/S 1.00

2N3055 NPN S. TO-3 S .70

2N3904 NPN Si TO-9? 5/S 1.00

2N3906 PNP Si TO-92 5/S 1.00

2N5296NPN Si TO 220 S 50

2N6lO')PNPSi TO-220 , , S .55

2N3638 PNP Si TO 5 - 5/S 1.00

2N65I / NPN TO 92 Si ... 3/S 1.00

C/MOS {DIODE CLAMPED)

74C10- 22 4016 .40 4029-1.10

74C1931.50 4017 105 4030- .22

4001 22 4018 1.00 4033-150

4002 22 4019 .25 4035-110 4006 120 4020 1.05 4042- 78 4007- 22 4022 .95 4046-2.25

4009- .42 4023 22 4049- 40

4010- .42 4024 ,75 4050- 40

4011- .22 4025 .22 4055-1.50 4012 - 22 4026 1.25 4066- 80 4013- .40 4027 40 4071- .27 '4015 95. 4028 88 4076-1.05

IN 414K »lf-JiJ14) 15/S1 .Ul

MC-\;r QIMICAL MMIT SWITCH SI b0

LED READOUTS

FND 359 C.C. .4" S .50 HP 7740.3" C.C. Si.25

FND70CC .4." S -55 MAN-7-.3" C.A. $ .95

FND 503 C.C. .5" S .85 NS 33-3 dig. array S .75

FMnRinr a b*1 S .85 ni 747 0 a .6" S1.95

Terms: FOB Cambridge, Mass. Send Check or Money Order.

Include Post

Order $5.00, COD'S $20.00

PRINTED CIRCUIT BOARD

4-1/2" x6'1/2" SINGLE SIDED EPOXY

7 WATT LD-65 LASER DIODE IR $835

2N3820P FET S 45

2N 5457 N FET $ .45

2N2646. S .45

ER 900 TRIGGER DIODES 4/$1.00

2N 6028 PROG UJT . . . S .65

8 PIN DIP SOCKETS S 24

14PIN DIPSOCKETS . . . S .25

16 PINDIP SOCKETS S .28

18 PIN DIPSOCKETS S 30

24 PIN DIP SOCKETS S .40

28 PIN DIPSOCKETS S .50

40 PIN DIP SOCKETS $ .60

VERIPAX PC BOARD This board is a 1/16" single sided paper upoxy board. 47;"x6V DRILLED and ETCHED which will hold up in 21 single 14 pin IC's 01 8. 16. or LSI DIP IC's with busses lor

pawt-r supply rjonneuisr S4.00

MV5691 YbLLOW-GREEN

BIPOLAR LED S .90

FP 100 PHOTO TRANS S .50

RED. YELLOW, GREEN or AMBER

LARGE LED's 6/S1.00

1L-5 (MCT-21 $ -75

MOLEX PINS 100/91.00

1000/S8.00 10 WATT ZENERS3.9, 4.7,5.6,8.2,

12,15,18.22.100,150 or 200V . ea. S .60 1 WATT ZENERS 4.7, 5.6,10. 12, 15

18 or 22V ea. S .25

MC6860 MODEM CHIP S9.95

TANTULUM CAPACITORS

22UF 35V 5/S1.00 47UF- 35V 5/S 1.00 .68UF 35V 5/$ 1.00 1UF 35V 5/S 1.00

2 20UF 20V5S1.00

3 3UF 35V 4/S 1.00 4.7UF 15V 5/S1.00

6.8UF 35V 3/S 1.00 22UF 35V S .40 30UF 6V 5/S1.00 33UF i5V S 40 47UF 20V S .35 68 UF 15V S .50 10 UF 25V S .25

M/001 ALARM CLOCK Ch

NATIONAL MOS DEVICES

MM1402 ■ 1-/5 MM1403 - 1.75 MM1404- 1.75 MM5013- 2.50 MMS016-2.50 MMS017- 2.70 MM5055 - 2.25 MMW56 ■ 2.25

MM5057 - 2.25 MM5058- 2.75 MM5060- 2 75 MM5061- 2.50 MM5555-4.75 MM5556-4.75 MM521D- 195 MM5260- 1.75

Silicon Power Rectifiers

PRV

IA

3A

12A

50A

125A

100

.06

.14

.30

.80

3 70

200

.07

.20

.35

1.15

4.25

400

.09

.25

.50

1.40

6.50

600

.11

.30

.70

1.80

8.50

800

.15

.35

.90

2.30

10.50

1000

.20

.45

1.10

2.75

12.50

SILICON SOLAR CELLS

2Va" diameter ' at 500 ma. S4.00 / ,2V at 200 mils S2.00

~REGULATORS

309K S .95 340K-5.12.15

723 S .50 or 24V. . . . .$ .85

LM 376 .... S .60 340T-5, 6, 8. 12 320K-5or15V S1.40 15,18 or 24VS1.10

320T-5,12,15 78 MG S1.35

or 24V . . S .85 79 MG S1.35,

RS232 DB 25P male S3.25

CONNECTORS DB 25S female .... S3.95

7400

7401

7102

7403

7404

7405

7406

7407

7408

7409

7410

7411

7412

7413

7414

7416

7417

7420

7425

7426

7427

7430

7432

7437

743B

7440

7441

7442

.40

TTLIC 744574467447

74487450747274737474747574 7674807483748574867489749074917492749374947495749674107741217412374125 7412674132

SERIES

■ 15 74150

.30 1.85

.67

74151

74153

74154

74165

74157

74161

74163

74164

74165

74173

74174

74175

74176

74177

74180

74181

74190

74191

74192

74 1 93

74194

74195

74257

74279

75324

75491

75492

1.20 .95

.52 1.25 .87

MINIATURE DIP SWITCHES CTS 2064 Fou. SPST switches

in one riunidip package. - SI.75

CTS 2063 Eight SPST swiiches in .. 16

pm DIP package. $1-95

8\/5PST tuliniatt )cn..330Ohmco

^LCO MINIATURE TOGGLE SWITCHES

MTA 106SPDT SI .20

MTA 206 DPDT . . $1-70

SOLID STATE SALES

P.O. BOX 74B

SOMERVILLE, MASS.02143 TEL. (617) 547-4005

Full Wave Bridges

['iiV 2A 6_A 25A

200 .75 1.25 2.Q0

400 .90 U$0 3.00

600 1.2Q 1.75 4 0Q

SANkEhJ AUDIO POWER AMPS

Si 1010 G 10 WATTS S 7.95

Si 1020 G 20 WATTS S15.95

Si 1050 G 50 WATTS $27.95

CCD 110 LINEAR 256 XI BIT SELF SCANNING CHARGED COUPLED

DEVICE SbS-OO

CCD 201 - 100 X 100 CHARGE COUPLED DEVICE $99.00 .

Send 25t (or our catalog featuring

Transistors and Rectifiers

his Hampshire St., Cambridge, Mass. .

74LS 74LS LINEAR

SERIES ■ SERIES CIRCUITS

74LSOO - .23 74LS153 - .93 LM 308"i - 95

74LS02 - .33 74LS155 ■- 1.40 JJU311 95

74LS04 .28 74LS157 - .98 LM 318 - .35

74LS08 .23 74LS160- 1.02 LM 319 -95

74LS10 - .23 74LS161 - 1.02 LM 324 - .05

74l.SU. -i23 74LS162- 1.02 LM 339 - -10

74LSI3 - 50 74LS163-1.02 LM 370 1.15

74LS20 - .23 74LS168 - 1.10 i LM 377 -2.50

74LS21 - 23 74LS169- 1.10 LM 380 -95

74LS22 - 23 74LS173 -1.39 LM 381 125

741 S27 - 27 74LS174-1.05 LM 382 - 125

74IS10 23 74LS175 - 1.22, LM 537 -2.50

747ST? 33 74LS190 - 1.50 LM 553 2.50

741 SI7 37 J4LS191 - 1.50 LM 555 -44

?4^338 - 37 74LST92-1.75 LM 556 - .85

741S74 - 49 74LS193- 1.75

74LS90 - 95 74LS195 - 1.25 ■ 5BQ sfM

7SLSd2 " m 74LS196- .99 565 - 1-10

?4tl?3 " 40" MLS197- -99 566 - \»

74LS74 " 40 74LS257-1.35 567 1.50.

74^76 40 74LS258-1.38, 703 - -90

7* lit '^ '4LS2G6- .38 709 - .26

Ml ...90 .89 .. 71Q .35

74LS92 .85 ^15365 - .66 /u

MLS93 .85 %[f3l67-_ f6 Co.V-31

74LSM2 43 KtlieS - "S-M7 *j

Stim M- 74LS390_^.20 LM 3,0 2.50

74LS114 .43. LINEAR 1458 .60

74LS132 80 piR(-|||T<; CA 3046 - -75

74LS138 72 . CIRCUITS^. ^ ^ _ g5

74LS139 .72 LM 101 - 75 3goo _ 4g

74LS145 1.15 LM 301/748 - .31 ' on-iarr - 3 90

74LSI51 • 98 LM307 ^T30 8038CC 3'TO

WE SHIP OVER 95%

OF OUR ORDERS THE

DAY WE RECEIVE THEM

Circle 193 on inquiry card.

Feeder Service

Reader Service Number

Page Number

152

197 Alpha Digital 150

108 Apple Computer 14, 15, 16

195 ARTEC 172

121 BITS Inc 61, 75, 105, 128, 146, 148

141 BPI119

* BYTE Index 112 194 California Computer Products 35 164 Canada Systems (Comptek) 151

160 Charles Floto 150 156 Computer Corner 150 155 Computer Depot 150 159 Computer Enterprises 153

161 Computer Mart 150 177 Computer Mart of NH 157 128 Computerland 118 148 Computer Store 152 182 Computer Warehouse 161

162 Contact East 150 116 Continental Specialties 41

* Creative Computing 117 102 Cromemco1,2 170 Data Search 154 114 Digital Group 37 176 Disc 3, 157

185 DRC 164 105 ECDCIII

139 Economy Company 113

138 Edityper113

151 Electronic Control Technology 147

189 Eltron 171

175 EMA157

137 Extensys93

184 Formula International 163

186 Godbout 165

* HAL Communications 138 'Reader service 123 Heath 66, 67, 68, 69

To get futher 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.

Page Number

PerCom Data 10. 140

Peripheral Vision 83

Perri White 153

Personal Computing EXPO 98-101

Polymorphic Systems 27

Processor Technology 6, 7, 8

Quantronics 173

Reeves 157

RHS Marketing 87

Rotunda Cybernetics 150

Scelbi 39

Scientific Research 23, 47

SD Sales 174

Seals 33

Sherwood Medical 157

Smoke Signal Broadcasting 127

Software Records 155

Solid State Music 5

Solid State Sales 175

Southwest Tech CM

Synchro-Sound Enterprises 48, 49

Tarbell Electronics 154

Technical Design Labs 13

Technical Systems Consultants 25

Technico 107

Thinker Toys 147, 162

Tripke I 13

Vector Electronic 137

Vector Graphic 105

Worldwide Electronics 149

Xybek149

Ximedia 89

Reader

Reader

Service

Page

Service

Number

Number

Number

132

Heuristics 103

*

179

Hybrid 157

124

106

IMSAI 11

168

136

Infotech 111

*

149

Innovative Software 157

*

154

Intelligent Business Machines 150

104

135

International Data Systems 116

191

126

Ithaca Audio 88

181

187

James 166, 167

125

131

Kent-Moore 97

158

174

Kit House 157

115

145

Logical Services 156

*

188

Meshna 169

192

169

Micro BYTE 150, 157

112

172

Micro Design 155

181

157

Microcomp 157

142

143

Micromation 136

171

163

Microware 151

103

127

Microtech 91

193

147

Midwest Scientific Inst 141

101

190

Mikos 171

118

111

MiniTerm 29

100

146

MITSCIV, 139

107

183

Morrow 162

110

119

mpi 59

113

130

Mullen 97

183

129

National Multiplex 95

139

122

North Star Computers 65

144

117

Ohio Scientific 42, 43

134

196

OK Tool 21, 85

153

120

PAIA 60

152

150

Parasitic 129

140

*

PC 77, 76, 77, 78, 79, 80

inquiries not solicited. Correspond directly with company.

ecMe

EYTE's Ongoing Monitor Box

Defused

This months there is no BOMB analysis for May BYTE. The BOMB got defused by the late delivery of the May 1977 isssue due to the strike at our printer. As a result, we are holding the analysis until next month when a double BOMB will report the results of May and June reader response together."

On BOMB Card,

Article No. ARTICLE PAGE

1 Sweer-Dwyer-Critchfield: Controlling Small DC Motors 18

2 Fohl: A Microprocessor Course 26

3 Weisbecker: COSMAC VIP, the RCA Fun Machine 30

4 Iverson: Understanding APL 36

5 Keefe: Here's APL in Action! 44

6 Wimble: An APL Interpreter for Microcomputers, Part 1 50

7 Galway-Anderson: Serendipitous Circles 70

8 McGath: Editorializing with your Computer 81

9 Atwood: Why People Get Hooked on APL 108

10 Burns: An 8 Digit Hexadecimal Readout 114

11 Tenny: Look What You Can Do. . .With an Edge as a Cue 120

12 Maurer: Processing Logical Expressions 130

13 Rheinstein: Simple Algorithms for Calculating Elementary Functions 142

14 Schulein: A Trapping Technique for the 8080 158

176

Tha £2) P"-*S ntcr»in« d<i*iiv fraetiiir «ii»lat>i araihici |ft|

fhancttr EaCJtil — lit diffirtnt | a 12, MftHtrtdafinablt dot iktrli characttrt, dupUvid II 21 or *l Itnts of IS to 121 characters atr Mm. ill ch*r.ep»ti.

■o CCD\0Bltr l@*

Olfi. ****** — 0 kit pit d.ipiiv, ••eh aquara indiv

n mth o 121 m ally aattakia.

Key Into Maxi-Power <g> Micro-Pric

Micromind is an incredibly flexible, complete and expandable, hardware/ software, general purpose computer system. You won't outgrow it.

Hardware includes an 80 key, softwaredefinable keyboard, I/O interface board, 6500A-series microprocessor (powerful enough for advanced computing), a highdetail graphics and character display processor, power supply, enclosure and connections for up to 4 tape recorders plus TV or monitor. An interconnect bus

powerful assembler, a debugger, a file system, graphic routines, and peripheral handlers. We also include dynamic graphic games: Animated Spacewar and Life. ECD's standard Micromind yuM-65 supplies 8K bytes of memory. Additional

32K byte expansion boards and a mapping option give Micromind expandable access to 64 Megabytes. Utilizing softwarecontrolled I/O channels, Micromind's advanced encoding techniques load data from ordinary tape recorders at 3200 bits per second.

Micromind comes to you ready-to-use, factory assembled and fully tested. Among microcomputers, it has the largest memory capacity and the fastest storage. You're looking at the work of the finest display processor on the market. You won't find a microcomputer with a more powerful CPU. You won't find a computer with a more flexible keyboard. You won't find anything to touch it at $987.54.

permits 15 additional microprocessors, parallel processing and vastly increased computing power.

System software—including ECD's own notsoBASIC high level language, on advanced error-correcting tape cassettes —provides a word processing editor, a

So, quit the kluge scene and key into Micromind. You'll be a main frame performer, with all the comforts of home. We're not fooling... this is the cat's fj.1

ECD CORP. 196 Broadway, Cambridge, Mass. 02139 (617)661-4400

€CD

Name.

Address.

City/State.

Zip.

□ Fantastic! Check enclosed: $987.54. shipping paid by ecd

□ BankAmericard □ Master Charge Mass. Resident add 5% Sales Tax

#

Expiration Date.

Signature

□ Send me your brochure.

Actual unretouched photographs.

Circle 105 on inquiry card.

Powerful in computing muscle, yet lall in physical size, the Altair'^SOb offers many special features at an affordable price. Based :>n the 6800 microprocessor, the 680b comes with IK of static RAM, Serial I/O port, PROM monitor and provisions for IK of PROM as standard components. Its good thinking, when you're interested in making a modest investment ona highly reliable computer, to consider the Altair 680b. Our PROM monitor eliminates the necessity for toggling front panel switches to load bootstraps or manipulate memory contents. Only a terminal and programming language are required for complete system operation. With Altair System software — Altair 680 BASIC, assembler and text editor—you may begin problem solving immediately with ease.

By adding the 680b-MB Expander card, many options are currently available: '16K Static Memory Board — Increase your system memory with 16K bytes of fast access (215 ns), low power (5 watts per board) static RAM. 680 BASIC and assembler/text

editor are included free with purchase. *Process Control interface—A PC card that uses optically isolated inputs and relay outputs that transmit sensory information to and control signals from the computer. A diverse world of control applications is opened up with the Altair 680b-PCl.

*Universal Input/Output Board —If your I/O needs exceed the serial port already on the main board, augment your I/O channels with the 680b-(JI/O. By implementing the optional serial port and two parallel ports, you can simultaneously interface to four terminals.

*New Addition —Kansas City Audio Cassette InterfaceUse the 680b-KCACR to interface your Altair 680b with an audio cassette recorder for inexpensive mass storage of programming languages, programs and data.

Available in either full front panel or turnkey models, the Altair 680b presents many computing capabilities at a low cost—without skimping on performance. See it today at your local Altair Computer Center or contact the factory for further details.

m

DuDi

Good Thinking.

Circle 146 on inquiry card.

2450 Alamo S.E. Albuquerque, New Mexico 87106

dealer inquiries invited.