Byte Magazine Volume 04 Number 07 - Automating Eclipses (THIRD SCAN)

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)

If you have a problem that can be solved by a computer—we have a systems solution.

* Two central processors with maximum RAM capacities of 56K and 384 K bytes

* Three types of disk drives with capacities of 175K, 1.2M and 16M bytes Two dot matrix printers with 80 and 132 line capacity

* A Selectric typewriter interface and a daisy wheel printer

Match these to your exact need, add one or more of our intelligent terminals and put together a system from one source with guaranteed compatibility in both software and hardware.

Southwest Technical Products systems give you unmatched power, speed and versatility. They are packaged in custom designed woodgrain finished cabinets. Factory service and support on the entire system and local service is available in many cities.

SOUTHWEST TECHNICAL PRODUCTS CORPORATION 219 W. RHAPSODY

SAN ANTONIO, TEXAS 78216 (512) 344-0241

Circle 350 on inquiry card.

You can do surprising things

when you have 64 kilobytes of fast RAM

on one card

4 MHz FAST—AND EXPANDABLE

Here's 64 kilobytes of memory on one RAM card. Yes, we mean 512K bits of read/write memory on this single card.

And, yes, we mean it's fast. With 150-nanosecond chip access times — so the card can operate in fast Z-80 systems with no wait states. Repeat, no wait states.

EXPANDABLE ON TWO LEVELS

Not only does the new Model 64KZ give you a large, fast RAM but it is expandable on two levels.

First, through our Cromemco Bank Select feature, you can expand to 512 kilobytes in eight 64K banks.

Or, with our Extended Bank Select feature, you can expand memory space to as much as 16 megabytes.

This expandability we call your obsolescence insurance.

The legend on the card's heat sink is an easy reference for address and bank selection.

□

BENCHMARK IT

Obviously, the speed and memory capacity of this new card give you a lot of power.

You can see that for yourself in our new 7-station Multi-User Computer System which uses these Model 64KZ cards. This S100-bus system outperforms the speed of many if not most timesharing systems of up to 10 times the Cromemco price.

And yet where some of these much more expensive and cumbersome systems clearly slow to a snail's pace when timesharing, the Cromemco system using Bank Select switching runs surprisingly fast.

SEE IT NOW

See the new Model 64KZ at your computer dealer now. Study the literature on it. See how for only $1785 you can get around that ever-present barrier of memory that's too little and too slow.

Cromemco

incorporated 280 BERNARDO AVE., MOUNTAIN VIEW, CA 94040 • (415) 964-7400 Tomorrow's computers now

For high reliability all Cromemco memory cards are burned in at the factory in these temperature-controlled ovens.

Cromemco Multi-User System shown with 7 stations

Circle 80 on inquiry card.

BYTE July 1979

Here's how you can be fully computerized for so much less than you thought

BUSINESS — EDUCATION — ENGINEERING — MANUFACTURING

We are pleased to announce the first professional time-sharing system in the microcomputer field.

Naturally, it's from Cromemco.

This new multi-user system will do all of the tasks you usually associate with much more expensive time-sharing computers. Yet it's priced at an almost unbelievably low figure.

Look at these features:

• You can have up to 7 terminals plus a fast, 132-column line printer

• You can have a large system RAM memory that's expandable to Vi megabyte using the Bank Select feature

• Each user has an independent bank of RAM

• You can have floppy disk storage of up to 1 megabyte

• You have confidentiality between most stations

• And, make no mistake, the system is fast and powerful. You'll want to try its fast execution time yourself.

PROGRAMMERS LOVE OUR BASIC

This new system is based on Cromemco's well-known System Three Computer and our new Multi-User BASIC software package.

Programmers tell us that Cromemco Multi-User BASIC is the best in the field. Here are some of its attractions:

• You can use long variable names and labels up to 31 characters long — names like "material on order" or "calculate speed reduction."

• You get many unusual and helpful commands that simplify programs and execution — commands such as PROTECT, LIST VARIABLES, NOLIST, and many more.

• No round-off error in financial work (because our BASIC uses binarycoded decimal rather than binary operation). And we've still been able to make it FAST.

• Terminals and printer are interruptdriven — no additional overhead until key is pressed.

• The conveniences in this Multi-User BASIC make it much easier to write your own application software.

• A line editor simplifies changes.

BENCHMARK IT — NOW In the final analysis, the thing to do is see this beautiful new system at your dealer. See its rugged professional quality. Evaluate it. Benchmark it for speed with your own routine (you'll be agreeably surprised, we guarantee you).

Find out, too, about Cromemco's reputation for quality and engineering.

Look into it now because you can have the capabilities of a fully computerized operation much quicker and for much less than you ever thought.

Cromemco

Microcomputer Systems

280 BERNARDO AVE., MOUNTAIN VIEW, CA 94040 • (415)964-7400

BYTE July 1979

Circle 80 on inquiry card.

m

In The Queue

Bill July 1979 Volume 4, Number 7

Foreground

18 GRAPHIC INPUT OF WEATHER DATA, by Stephen P Smith Graphical data acquisition techniques

34 SOUND OFF, by Steve Ciarcia

Interfacing a computer to external sound generation devices

54 A MODEL OF THE BRAIN FOR ROBOT CONTROL, Part 2: A Neurological Model, by James Albus A hierarchical network that can execute tasks and seek goals

120 SONIC ANEMOMETRY FOR THE HOBBYIST by Neil Dvorak

Measuring wind speed and direction by electronic means

134 THE NATURE OF ROBOTS, Part 2: Simulated Control System, by William T Powers Understanding closed loop control systems

176 QUEST, by Roger Chaffee

Will you find the treasure or will the giant find you first?

198 MOUSE, A Language for Microcomputers, by Peter Grogono

Simple language to demonstrate implementation processes

226 SUBROUTINE PARAMETERS, by W D Maurer

More ways than you ever dreamed possible to give your subroutines the data they need

Background

105 THE MATHEMATICS OF COMPUTER ART, by Kurt Schmucker

Plotting figures that express mathematical relationships

158 CREATIVITY IN COMPUTER MUSIC, by Hubert S Howe Jr

Effect of computer use on music composition and theory

194 PHOTO ESSAY: Physical Hardware of a New Computer Backplane, by Carl T Helmers Jr The beginnings of a homebrew 6809 personal computer

Nucleus

6

Letters

174

Nybbles: Tiny Pascal in Assembly Language

8

Editorial, "Computers and Eclipses"

193

World Power Systems: A Report

36,192

Programming Quickies

187

Book Reviews

96

Event Queue

222

Technical Forum

98,156

BYTE's Bugs

231

Languages Forum

99

BYTE News

233

What's New?

154

Clubs and Newsletters

270

Unclassified Ads

155

BYTE's Bits

272

BOMB, Reader Service

page 34

y

T

page 54

page 105

Cover Art: AUTOMATING ECLIPSES, by Robert Tinney.

BYTE is published monthly by BYTE Publications Inc, 70 Main St, Peterborough NH 03458. A wholly-owned subsidiary of McGraw-Hill, Inc. Address all mail except subscriptions to above address: phone (603) 924-7217. Address subscriptions, change of address, USPS Form 3579, and fulfillment questions to BYTE Subscriptions, PO Box 590, Martinsville NJ 08836. Second class postage paid at Peterborough NH 03458 and at additional mailing offices—USPS Publication No. 102410 (ISSN 0360-5280). Subscriptions are $1B for one year, $32 for two years, and $46 for three years in the USA and its possessions. In Canada and Mexico, $20 for one year, $36 for two years, $52 for three years. $32 for one year air delivery to Europe. $32 surface delivery elsewhere. Air delivery to selected areas at additional rates upon request. Single copy price is $2 in the USA and its possessions, $2.40 in Canada and Mexico, $3.50 in Europe, and $4 elsewhere. Foreign subscriptions and sales should be remitted In United States funds drawn on a US bank. Printed in United States of America.

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. Entire contents copyright © 1979 by BYTE Publications Inc. All rights reserved.

BYTE" is available in microform from University Microfilms International, 300 N Zeeb Rd, Dept PR. Ann Arbor Ml 4B106 USA or 18 Bedford Row, Dept PR, London WC1R 4EJ ENGLAND.

Subscription WATS Line: (800) 258-5485 Office hours: Mon-Thur 8:30 AM — 4:30 PM

Friday 8:30 AM — Noon

July 1979 © BYTE Publications Inc 3

Robert Tinney's cover painting, "Automating Eclipses", symbolizes this month's theme of computers and weather. See this month's theme articles by Stephen P Smith and Neil Dvorak, and the editorial by Carl Helmers.

In This BYTE

When entering large amounts of graph associated data into a computer, a graphic tablet that allows you to digitize the data is a great help. Stephen P Smith uses such a device, the Summagraphics Bit Pad digitizer, to perform the Graphic Input of Weather Data. page 18

This month "Ciarcia's Circuit Cellar" explores the use and interfacing of Texas Instruments and General Instrument sound generators. Find out how you can let your computer Sound Off. page34

In part 1 of A Model of the Brain for Robot Control, James Albus defined the notation we used for his brain model. This month he describes a neurological model that can store and recall a broad class of mathematical functions.

page 54

Much computer art employs the calculating ability of the machine to make drawings expressing mathematical relationships. Kurt

Schmucker defines two classes of such drawings and describes methods for producing them in The Mathematics of Computer Art.

page 705

To forecast weather, you need to know wind speed and direction. By using modern technology, we can do without whirling mechanical assemblies. Neil Dvorak shows us how to use electronic components and computer programs to measure the wind in Sonic Anemometry for the Hobbyist.

page 720

In part 2 of The Nature of Robots, William T Powers presents a BASIC simulation of a control system. By experimenting with this simulator, the reader is able to work with the concepts of a closed loop control system. page 134

Creativity in Computer Music by

Hubert S Howe Jr is a survey of some recent work in music theory, analysis, sound generation, and composition done with computers. Microcomputers can now be used for much of the work formerly done by large scale computers a decade ago. page 158

After you have successfully hunted the Wumpus, and destroyed all the Klingons, what is your next step? Roger Chaffee suggests you try your hand in some caves, searching for hidden treasure. Enter the world of suspense and danger on your Quest for riches. page 776

Building a computer from scratch as an amateur is the historical root of the personal computer field. In this issue, Carl Helmers begins an informal series of articles on a new homebrew project: a general purpose 6809 system. The computer itself has an intended application to music, but the design and construction of this homebrew project are quite general. See Photo Essay: Physical Hardware of a New Computer Backplane. page 194

Mouse is a programming language that contains many features usually associated with high level programming languages and can be implemented with minimal resources. It is of interest to people who enjoy obtaining dramatic results with little effort and to those who have a system which is too small to support a conventional high level language. Peter Grogono describes the implementation of Mouse by means of a Pascal program which can be used to write an assembly language version. Indications of how this might be done are provided in Mouse: A Language for Microcomputers.

page 198

When working with subroutines, the concept of passing parameters can be confusing. W D Maurer describes three methods of passing parameters (call by value and result, call by reference, and call by name) in his article Subroutine Parameters. page 226

Publishers

Virginia Londoner Gordon R Williamson Associate Publisher John E Hayes Assistant Jill E Callihan

Editorial Director

Carl T Helmers Jr Executive Editor Christopher P Morgan Editor in Chlel Raymond G A Cote Senior Editor Blaise w Llfflck Editor

Richard Shuford, N4ANG

Editorial Assistants

Gale Brltton

Faith Ferry

New Products Editor

Clubs, Newsletters

Laura A Hanson

Drafting

Jon Swanson

Production Editors

David William Hayward Ann Graves Faith Hanson Warren Williamson Art Director Ellen Bingham Production Art Wal Chlu Li Christine Dixon Nancy Estle

Typographers

Cheryl A Hurd Stephen Kruse Debe L Wheeler Photostat Technician Tully Londoner

Advertising Director

Patricia E Burgess Assistants Ruth M Walsh Marion Gagnon Adv/Prod Coordinator Thomas Harvey Advertising Billing Noreen Bardsley Don Bardsley

Circulation Manager

Gregory Spltzfaden Assistants Pamela R Heaslip Agnes E Perry Melanle Bertoni Barbara Ellis Dealer Sales Ginnie F Boudrieau Anne M Baldwin Receptionist Jacqueline Earnshaw

Traffic Department

Rick Fuette Mark Sandagata

Book Division Publisher

Edmond C Kelly Jr Production Editors

Patricia Curran William Hurlin E S Associates

Comptroller

Kevin Magulre Assistant

Mary E Fluhr

National Advertising Sales Representatives:

Hajar Associates Inc East

280 Hillside Av

Needham Heights MA 02194

(617) 444-3946

521 Fifth Av

New York NY 10017

(212) 682-5844

Midwest

664 N Michigan Av Suite 1010 Chicago IL 60611 (312) 337-8008 West, Southwest 1000 Elwell Ct Suite 227

Palo Alto CA 94303

(415) 964-0706/(714) 540-3554

Officers of McGraw-Hill Publications Company: Gordon L. Jones, President; Group Vice Presidents: Daniel A. McMillan, James E. Boddorf; Senior Vice Presidents: Russell F. Anderson: Ralph R. Schulz, Editorial; Vice Presidents: James E. Hackett, Controller; Thomas H. King, Manufacturing; Robert L. Leyburn, Circulation; John W. Patten, Sales; Edward E. Schirmer, International.

Officers of the Corporation: Harold W. McGraw Jr., President, Chief Executive Officer and Chairman of the Board; Robert F. Landes, Senior Vice President and Secretary; Ralph J. Webb, Treasurer.

4 July 1979 © BYTE Publications Inc

Good News for Smart People TDS-lB Disk System

HITACHI BASIC MASTER Compatible

Coming Soon:

• TDS-IA

Apple II Compatible

• TDS-lT

TRS-80 Compatible

• 35 Tracks with ten 256 byte sectors per Track.

• 87.5K bytes per disk.

• Interface, power-unit included.

• Controls up to four drives.

• Software included. TDOS (TIP Disk Operating System).

• OPTION: Business utility programs.

TRADE OF INDUSTRIAL PRODUCTS INC.

2-1-19-815 Kanda Surugadai Chiyoda-ku, Tokyo 101, Japan (03) 295-7055 TELEX 02226152 TIPIIMC J

Circle 370 on inquiry card.

BYTE July 1979

Look for Shugart drives in personal computer systems made by these companies.

Letters

Altos Computer Systems

2378-B Walsh Avenue Santa Clara, CA 95050

Apple Computer

10260 Bandley Dr. Cupertino, CA 95014

Digital Microsystems Inc.

(Formerly Digital Systems) 4448 Piedmont Ave. Oakland, CA 94611

Imsai Mfg. Corporation

14860 Wicks Blvd.

San Leandro, CA 94577

Industrial Micro Systems

633 West Katella, Suite L Orange, CA 92667

North Star Computer

2547 9th Street Berkeley, CA 94710

Percom Data

318 Barnes Garland, TX 75042

Polymorphic Systems

460 Ward Dr.

Santa Barbara, CA 93111

Problem Solver Systems

20834 Lassen Street Chatsworth, CA 91311

Processor Applications Limited

2801 E. Valley View Avenue West Covina, CA 91792

SD Sales

3401 W. Kingsley Garland, TX 75040

Smoke Signal Broadcasting

6304 Yucca Hollywood, CA 90028

Technico Inc.

9130 Red Branch Road Columbia. MD 21045

Texas Electronic Instruments

5636 Etheridge Houston, TX 77087

Thinker Toys

1201 10th Street Berkeley, CA 94710

Vista Computer Company

2807 Oregon Court Torrance. CA 90503

Shugart

Julv 1979 © BYTE Publications Inc

SERIOUS COMMENTS ON AMENDED BASIC

I enjoyed the humor that Robert Bass used in his Languages Forum on "Amended BASIC" (April 1979 BYTE, page 238). Most of his suggested additions to the BASIC language were of the April Fool's Day variety; however, his FORGET statement, though included in jest, does have some merit.

Frequently, the programs I write have hard-to-find bugs in them. These programs may have long printouts of instructions on how to use them. However, when debugging programs, it is irritating to have to wait for all of these printouts before the program really starts. I usually change all of those PRINT statements into comments by insertinga REM before them. A FORGET statement, however, would be far more convenient. The programmer could include astatement like FORGET 100-210, 320, 400-460 at the beginning, and then run the program. The BASIC will treat the statements listed in the FORGET statement as remarks. When you are finished debugging the program, remove the FORGET statement, or change it into a remark. In this way, you need to change only one statement in your program, instead of numerous statements as in our current BASIC.

Another suggestion I would like to see implemented in BASIC is a variation of the RESTORE statement. Presently the RESTORE statement sets the DATA pointer to the start of the list of DATA. However, sometimes it is convenient to have the pointer set at a different point. I suggest that a statement of the form "RESTORE 300" be implemented. This would set the DATA pointer to the first set of DATA at or following line 300. A variation of this might be "ON K RESTORE 300, 310,320." This statement would be analogous to the "ON K GOTO 300, 400, 500" statement. Both versions would allow immediate access to DATA. At present you must RESTORE the pointer to the beginning of the DATA, and then use dummy variables to READ to the DATA you actually want.

James L Boettler Director of the Computer Laboratory Claflin College Orangeburg SC 29115

SQUISH BUGS

Regarding the April 1979 editorial about operating systems with bombed file systems:

First, we note that the UCSD file system, RT-11 for the PDP-11, and many

other disk operating systems require periodic squishes to manage a disk. This is a foolhardy stunt as, in your case, one bad disk sector can prevent the entire squish from working. I feel that people who build and propagate file systems like this (without even any attempt to skip bad sectors!) are irresponsible.

It shows the need for better error recovery or a scheme which prevents the need for squish altogether, such as dynamic file space allocations (eg: CP/M).

Secondly, your need to write your own recovery program indicated a need for such a recovery program to come as a standard operating system utility. Disasters happen; the need is real.

To my knowledge, Motorola MDOS and Software Dynamic's SDOS (for the 6800) are the only microcomputer operating systems that provide both dynamic file allocation and disaster recovery programs.

The industry needs more systems like these.

Ira Baxter Software Dynamics 2111 W Crescent Suite G Anaheim CA 92801

A FASTER MAILING LIST

In reference to Thomas E Doyle's article, "A Computerized Mailing List," (January 1979 BYTE, page 84) a few modifications might be helpful, particularly, as he expresses some concern on saving time in the discussion of Program 6.

Program 7 is the main concern of this letter. After the program locates the desired record to eliminate, it performs, in closing up the gap, what is commonly called garbage collection. It would appear to be more desirable to flag that record as an unused record and not perform garbage collection every time. Two possible ways to do this are: a special (in Mr. Doyle's application) call sign which is recognized as a null record; or add an additional variable to the list for each record. This additional variable could be easily used to indicate a variety of meanings for the remaining data on the record besides a null record. Then Programs 2 and 3 could be selective.

With the addition of this variable, all the other programs would have to be modified to take into account the change in the structure of the file. The disk file could be viewed as a collection of one or more sets of records, each set being zero or more consecutive records of good data, and ending with one null record. Program 1, having initialized the file, would then write one null record before ending. Program 6 would only search up to the first null record after the point of insertion (a null record must still exist at the end of the file, for Program 4 as well). Program 8 (to be Text continued on page 98

"My Shugart bllowed me hot]

. - ^fl

IV

"After working all day with the computer at work, it's a kick to get down to Basic at home. And one thing that makes it more fun is my Shugart minifloppy™' We use Shugart drives at work, so when I bought my own system I made sure it had a minifloppy drive.

"Why? Shugart invented the minifloppy. The guys who designed our system at work tell me that Shugart is the leader in floppy design and has more drives in use than any other manufacturer. If Shugart drives are reliable enough for hard-working business computers, they've got to be a good value for my home system.

"When I'm working on my programs late at night, I can't wait for cassette storage. My minifloppy gives me fast random access and data

transfer. The little minidiskettes™ store plenty of data and file easily too.

"I made the right decision when I bought a system with the minifloppy. When you lay out your own hard-earned cash, you want reliability and performance. Do what I did. Get a system with the minifloppy."

If it isn't Shugart, it isn't minifloppy.

*A Shugart

435 Oakmead Parkway. Sunnyvale, California 94086

See opposite page for list of manufacturers featuring Shugart's minifloppy in their systems.

TM minifloppy is a registered trademark of Shugart Associates

BYTE July 1 979 7

Editorial

Computers and Eclipses

by Carl Helmers

The idea occurred last fall. An innocuous advertisement appeared in Smithsonian Magazine, trumpeting an exciting adventure called "Eclipse Over Big Sky" which would take place in February 1979 at the Big Sky ski resort in the southwestern part of Montana, near Yellowstone Park in Wyoming. Naturally, I sent away for the information advertised.

After receiving the literature, I made up my mind that a total solar eclipse was worth seeing, especially if it was to be the last one on continental North America for some forty years. So, I sent in my deposit and made plans to attend. It turned out (as I found when I arrived) that this expedition was one of a series of such expeditions organized by sociologist and eclipse buff Dr Phil Sigler of New York City. These expeditions had attended every total solar eclipse for the past eight or ten years. Using the latest in modern techniques, including reference to weather satellite data, they had found a necessary hole in the clouds at the right time in eight out of nine cases prior to this eclipse.

Previous expeditions had used cruise ships on the open ocean in order to implement the concept of "mobility" pioneered by Dr Ed Brooks of Boston University, the weather adviser for the operation. In order to utilize the same concept for the 1979 eclipse, some form of land mobility was required. An initial attempt to take advantage of an Amtrak route which paralleled the eclipse path was apparently squelched by the usual bureaucratic catch-22: "Sure you can rent the track, but we can't supply you with a train." Thus, mobility was achieved through the services of the Yellowstone Bus Company and a procession of 15 large buses. At 2 AM on eclipse day, this procession left the hotel for a six hour trip to central Montana, just west of a town called Roundup.

Taking pictures of a transient, two minute phenomenon is one of the goals of an eclipse expedition; the other goal being to simply watch this phenomenon with the naked eye or through a suitable telescope. When I say "naked eye," I mean it, despite all normal reactions which say "you can't look at an eclipse without protection." In actuality, there is absolutely no way to look at an un-eclipsed or partially eclipsed sun without using filters to avoid damaging your eyeballs or camera equipment.

However, this is the key difference with regard to a totally eclipsed sun: you can look at it directly. That last .1 percent that separates 99.9 from 100 percent makes all the difference in the world between the dull, filtered crescent sun of a partial eclipse and the incredibly beautiful natural phenomenon of a totally eclipsed sun. You can take excellent pictures, without filters, using 400 speed film and exposures of 1/30 to 1/2000 of a second (see photos 1 and 2). But, photographing the phenomenon is definitely a bit of a problem.

During this past eclipse, I had only enough time to take about 15 exposures, with one lens change. This was done in -3 to 0 degree Celsius prevailing temperatures on an isolated road west of Roundup, Montana. My hands froze, and I probably did not get the optimal personal viewing, although the 1000 mm reflex telephoto lens of my camera acted as an excellent spotting scope through which to watch the sun for most of the eclipse.

ComputerLand

Huntsville, AL Phoenix, AZ Little Rock, AR Belmont, CA Dublin, CA El Cerrito, CA Heyward, CA Lawndale, CA Los Altos, CA Los Angeles, CA Marin, CA Pasadena, CA Saddleback Valley, CA San Bernardino, CA San Diego, CA San Diego East, CA San Francisco, CA San Jose, CA Santa Maria, CA Santa Rosa, CA Thousand Oaks, CA Tustin, CA Walnut Creek, CA Colorado Springs, CO Denver, CO Fairfield, CT Newark, DE Boca Raton, F L Ft. Lauderdale, FL Jacksonville, FL Atlanta, GA Honolulu, HI Arlington Heights, IL Downers Grove, IL Mundelein, IL Niles. IL Oak Lawn. IL Peoria, IL

Indianapolis, IN Call Overland Park, KS Louisville, KY

Boston, MA Call Rockville, MD Grand Rapids, Ml Southfield, Ml Bloomington, MN Rochester, MN Springfield, MO Nashua, NH Cherry Hill, NJ Bergen County, NJ Morristown, NJ Buffalo. NY Ithaca, NY Nassau County, NY Charlotte, NC Cleveland, OH Columbus, OH Portland, OR Harrisburg, PA Austin, TX Dallas, TX

South West Houston, TX Houston Bay Area, TX Salt Lake City, UT Tyson's Corners, VA Bellevue, WA Federal Way, WA Tacoma, WA Madison, Wl Milwaukee, Wl INTERNATIONAL Adelaide, Australia Brisbane, Australia Melbourne, Australia Perth, Australia Call Sydney, NSW Australia Brussels, Belgium Burlington, Canada Toronto, Canada Winnipeg, Canada Manila, Philippines

(205) 539-1200

(602) 956-5727

(501) 224-4508 (415) 595-4232 (415) 828-8090 (415) 233-5010 (415) 538-8080 (213) 371-7144 (415) 941-8154 (213) 776-8080 (415) 459-1767

(213) 449-3205 (714) 770-0131 (714) 886-6838 (714) 560-9912 (714) 464-5656 (415) 546-1592 (408) 253-8080 (805) 928-1919 (707) 528-1775 (805) 495-3554 (714) 544-0542

(415) 935-6502 (303) 574-4150 (303) 759-4685

(203) 255-9252 (302) 738-9656 (305) 368-1122 (305) 566-0776 (904) 731-2471 (404) 953-0406 (808) 521-8002 (312) 255-6488 (312) 964-7762 (312) 949-1300 (312) 967-1714

(312) 422-8080 (309) 688-6252

Directory Information (913) 492-8882

(502) 425-8308 Directory Information

(301) 948-7676 (616) 942-2931

(313) 356-8111 (612)884-1474 (313) 652-9000 (417)883-7085

(603) 889-5238 (609) 795-5900 (201) 845-9303 (201) 539-4077

(716) 836-6511

(607) 277-4888 (516) 742-2262 (704) 536-8500 (216) 461-1200 (614) 888-2215

(503) 620-6170

(717) 763-1116 (512) 452-5701

(214) 363-2223 (713) 977-0909 (713) 488-8153 (801) 364-4416 (703) 893-0424

(206) 746-2070 (206) 838-9363 (206) 581-0388

(608) 273-2020 (414) 466-8990

22 35 083 07 221 9777 62 55 81 Directory Information 29-3753 43 29 05 (4161 632-5722

(416) 485-6700

(204) 772-9519 58-36-66

8 July 1979 © BYTE Publications Inc

Circle 75 on inquiry card.

If the truth is that you want a computer . . . then we want to be your computer store.

We're ComputerLand, the #1 computer store chain in the U.S. What's meaningful about that fact is, that ComputerLand has been chosen by more people as having what they've been looking for. And, since you're looking, let us tell you what you'll find, when you visit a ComputerLand store.

You'll find a product line that's continually evaluated to provide you with the widest and best selection in quality, brand name microcomputers anywhere. You'll find an enthusiastic and knowledgeable staff able to interpret all the equipment specifications, in terms of how they apply to you, and in a way you'll understand. You'll find demonstration areas where you can get a firsthand experience of running a computer yourself.

You II find educational materials to give you a total insight into the world of microcomputers.

You'll find a fully equipped service department to provide whatever assistance is required to keep your computer running in top-notch condition. You'll find computer user's clubs to join, where you can share ideas with people as enthusiastic as yourself. And, with each new visit, you'll find excitement—from the people you deal with, the equipment they offer, and from your own ever-growing personal involvement.

Enough about us. How about what computers do.To attempt to describe all the things your computer might do, would be to describe your imagination. So instead, we'll briefly list some of the many things for which small computers are already being used.

In business, the advent of the versatile and compact microcomputer has put the benefits of computing within reach of small companies. With systems starting at less than $6000, the businessman can

FOR THE HOME

ComputerLand Corp. 14400 Catalina St. San Leandro, CA 94577 (415) 895-9363

Franchise Opportunities Worldwide.

computerize things like accounting, inventory control, record keeping, word processing and more. The net result is the reduction of administrative overhead and the improvement of efficiency which allows the business to be managed more effectively.

In the home, a computer can be used for personal budgeting, tracking the stock market, evaluating investment opportunities, controlling heating to conserve energy, running security alarm systems, automating the garden's watering, storing recipes, designing challenging games, tutoring the children . . . and the list goes on.

In industry, the basic applications are in engineering development, process control, and scientific and analytical work. Users of microcomputers in industry have found them to be reliable, costeffective tools which provide computing capability to many who would otherwise have to wait for time on a big computer, or work with no computer at all.

And now we come to you, which leads us right back to where we started: If you want a computer, then we want to be your computer store.

Whether you want a computer for the home, business or industry, come to ComputerLand first. We'll make it easy for you to own your first computer. Because, simply put, we really want your business. When you come right down to it, that's what makes us #1.

ComputerLand

WE KNOW SMALL COMPUTERS

ComputerLand Europe Europa Terrassen 8 Rue Jean Engling Dommeldange, Luxembourg Phone 43 29 05 Telex 2423

© ComputerLand Corp., 1978

BYTE July 1979 9

Photo 1: A shot of the 1979 North American total solar eclipse taken with a relatively quick shutter speed. Note the prominences showing around the extremely dark disk of the sun as obscured by the moon. This picture was exposed shortly after totality began.

Photo 2: With a much slower shutter speed, elements of the solar corona begin to show. This picture was taken with about a I/30th second exposure at fjll using 400 ASA Ektachrome slide film. (I was too busy during the eclipse to take detailed notes for each exposure, so I can only observe that this was one of the longer exposures, probably at I /30th second.)

The problem is that if you spend your allotted time budget fooling around with the camera, you can miss a good portion of the event and its natural beauty. This is where the computer experimenter's inventiveness can come into play. Why not automate the exposure and picture taking sequences of the camera and telescope combination, so that once the first diamond rings of totality occur, a microcomputer can run through an open loop exposure sequence adapted to the camera equipment and the particular eclipse being viewed?

What are the functional requirements of such a device? Based on the recommendations of the expedition's photography advisers, George Keene of Eastman Kodak and Robert Little of Criterion Manufacturing (and confirmed by my own successful experience), the main requirement for achieving excellent photos with a 35 mm camera during an eclipse is to use a nonautomatic exposure technique which simply covers a range of shutter speed settings within a fixed aperture setting.

At each exposure of the film, different phenomena dominate the image. During short exposures, the extremely bright solar prominences are highlighted, with almost no corona visible (see photo 1). In longer exposures, one begins to see details of the fainter solar corona, while the inner prominence detail washes out due to overexposure.

During the transient events at the beginning ("second contact") and end ("third contact") of totality, a fixed aperture and shutter speed setting are appropriate, with a rather fast frame-to-frame timing. During totality, the film load of the camera should be spaced out over the balance of the 36 exposure magazine.

So, what we want the camera to do with its "n" exposures during the eclipse is to use a programmed sequence. The diagram of figure 1 shows a sequence that might have been ideal for me during the 1979 eclipse's 138 seconds of totality. In this figure, the events start at the last sliver of crescent sun when the filter is removed and a manual input starts the hypothetical computer sequence. Six shots are budgeted at 1/2 second intervals for the initial transient phenomenon called "Baily's beads" or "the diamond ring," depending upon the details of the sun shining through the lunar mountains.

The ideal case would then expose 24 frames at a uniform rate, covering an up and down sequence of exposure speeds. Finally, as the first bit of the departing transient starts to happen, the remaining six exposures would be used to capture the third contact "Baily's beads" or "diamond ring" effects as they occur. This would completely fill a single 36 exposure magazine of Kodak's excellent ASA 400 Ektachrome slide film. It sounds like a job for a microcomputer system as timing and control element, with suitable photographic peripherals.

How would this programmed sequence be possible? We want to use as much standard equipment as possible, for the purpose of reliability and to avoid total reinvention of the wheel. Fortunately, in contemporary photography, the motor drive is becoming an inexpensive and common accessory for the 35 mm SLR (single lens reflex) camera. This solves the problem of moving the film between frames. We need only set the motor drive on automatic and then the camera will take a picture and move the film to the next frame every time the exposure button is pushed. We must merely get the computer to push the shutter release button according to the timing diagram.

A relatively simple adaptation of a cable release to a solenoid actuator will serve to link the exposure button to the microcomputer sequencer. A suitable solid state relay power driver output from the computer will then press the button to take each picture. This, however, does not solve the problem of adjusting the shutter speed. Based on the current marketing literature of Nikon, I can get automated aperture control from an external source, but not control of the exposure time. Thus, the adaptation of my F2A camera will require careful thought and craftsmanship, of the same sort required for any other 35 mm camera body.

We will need a more elaborate combination of mechanical and electronic skills for this part of the operation. The adaptation of the camera shutter

10 July 1979 £ BYTE Publications Inc

IVe finally found a personal; - t T

i w K that professionals

computer 1 respect, w exdtiabout the shex01" "•

* ^ _JT It s a totally-integrated 8080A system

C f^fY^'fYI lf^ftlfYf* I 1 with full color gjraphks display built-in 5 IK

IHJ/WWmini-disk drive, and the best cost performance ratio available in a personal computer.

The complete system is only S 1495* And that price includes 8K. user RAM. RS-232C compatibility and random access tile capabilities.

Our 8 foreground and background colors will boost your comprehension, while introducing you to an exciting new dimension in BASIC programming. The vector graphics have lb.-±S-t individually-accessible plot blocks. And the 13" diagonal measure screen gives you 32 lines of (>i ASCII characters. You also have the flexibility that comes with 16K Extended Disk BASIC ROM.

Compucolor II offers a number of other options and accessories, like a second disk drive and expanded keyboard, as well as expandability to 32K of user RAM. Of course we also have a whole library of low-cost Sof-Disk™ programs, including an assembler and text editor.

Visit your nearest computer store for details. And while vou're there, do some comparison testing. With all due respect to the others, once you see it. you'll lie sold on the Compucolor II.

(&M Compucolor I Corporation

Corporation

Photo 3: A wide angle photograph showing the partially eclipsed sun in the southeastern sky, with one of several hot air balloons nearby. In order to get both the sun and the balloon, the sun is necessarily overexposed, and the balloon is underexposed.

Figure 1: A timing diagram of an "ideal" 36 exposure sequence for a 138 second eclipse event, allowing two seconds before and after totality for transient phenomena. The horizontal axis of this figure is time in seconds, and the vertical axis is shutter speed of the camera, a discrete phenomenon with the steps shown. During an eclipse, aperture setting of the camera cannot be controlled if long focus telephoto or astronomical telescope lens equipment is used.

speed control to computer control requires machining skills with an amateur's lathe and milling setup.

The adapter is based upon a metal bracket which screws onto the camera at the tripod mounting socket which is standard on all 35 mm cameras. This bracket is set up with suitable spacers so that it will mount to the camera in a reliably repeatable fashion. The bracket can be mounted in the tripod socket since the telephoto lens or telescope used during an eclipse has its own mount on either a tripod or a true equatorial telescope base.

The adapter plate is then used to mount the small DC instrumentation motor and gearbox, which creates a reasonably high torque from the light duty motor. With my Nikon F2A, I need to turn the shutter speed control through an angle of approximately 10 degrees in about 1 /4 to 1 /2 of a second in order to accommodate the timing diagram of figure 1.

The output of the gearbox is a shaft which lines up with the axis of rotation of the shutter speed control. To this shaft is attached an optical position sensor created by passing the edge of a thin brass disk through an optoelectronic interrupter arrangement of the sort one can purchase from any optoelectronic company catalog. In the final stage of the custom fitting of this mechanism to the camera, each shutter position is marked on the disk and a small hole is punched in the disk. Thus, while the motor is turning the computer can tell when a given position has been reached, and the motor can be turned off.

The DC motor itself is controlled by a bidirectional electronic interface similar to the one shown in the article on the Terrapin Turtle by James A Gupton Jr ("Talk to a Turtle," June 1979 BYTE, page 74). This bidirectional interface allows us to turn the shutter speed knob to any setting, with the sensing of the shutter position returned by the optical interrupter. Use of a second interrupter for encoding of the first and last shutter speed settings will guarantee proper initialization and referencing of the speeds. This provides direct feedback of the limit stops in addition to the intermediate position information.

The one critical, unsolved problem in projecting this setup for my camera is the detail of driving the shutter speed control from the output of the gearbox. I will probably have to consider some potentially disastrous modifications to the camera. One possible method could be a tight fitting, carefully milled cylinder with ridges on its inner surface that would mate with the ridges on the shutter speed control. Another possibility would be to drill one or more off-center drive holes that would receive a driving pin mounted off-center on the drive shaft's end. The latter might be impossible, due to the complicated nature of the shutter speed control and its interaction with the film speed setting mechanisms.

100% ECLIPSE BEGINS

1/2000

1/1000

1/500

1/250

1/125

1/60

1/30

l/lb

SHUTTER TRIPS FRAME I.D.

MANUAL CUE

4

| 1/2000

i/iooo / ! \i/iooo

\ 1/500

\l/250

\|/I25

\ 1/60

\ 1/30 j

\ 1/15

r

TT T T I I I I I I [ I I 1

II 12 13 14 15 16 17 18

_n

^—5.5 SECONDS BETWEEN INTERMEDIATE FOR 2/28/79 ECLIPSE

SHOTS

I

^

i i i i

i i i i

i I i i

MM

MM

MM

MM

-4 -2 0 2 4 6 8 10

30 40 TIME IN SECONDS

50

60

1 2 July 1 979 © BYTE Publications Inc

The computer system which drives the camera during an eclipse is quite simple. The computer itself should be a dedicated 8 bit device with a suitable high level language program loaded into its local read only memory. Several 2708 or 2716 read only memory parts should suffice to store the systems software and the application program needed to control the telescope camera during a specific eclipse and to space out the 24 intermediate pictures during the estimated length of totality. Power requirements can be adequately handled by a single 6 or 12 V battery which also supplies power to the shutter speed control motor and the shutter tripping solenoid. The camera motor drive has its own dedicated NiCad battery pack which is totally independent of the computer. In a field situation it is assumed that batteries can be recharged through 110 V AC mains on the cruise ship or in land based hotels. If North American standard voltages are not available, the chargers can certainly be run through one of a number of standard converters available for world travelers.

Photo 4: One of the most unusual occurrences was the appearance of several hot air balloons In the sky at the time of the eclipse. While the balloonists must certainly have been having fun, some of the people watching from the ground were, no doubt, perturbed. Here is a kind of man made "cloud" phenomenon totally unpredictable by any meteorologist.

Figure 2: A conceptual sketch of possible homebrew machinery adapted to a 35 mm camera with motor drive, to allow automation of eclipse photography according to the timing diagram in figure I. This fantasy was created by artist Ken Lodding.

100% ECLIPSE ENDS

1/2000

1/500 /

1/1000 /

^\l/250

INTERMEDIATE POSITIONS SKIPPED SO THAT SHUTTER ENDS UP AT 1/2000 FOR LAST 6 SHOTS

1 L

\|/I25

1 I I L

\ 1/60

i i

1/500/

1/60*/

/ \ \

\ 1/15

I L

1/2000

1 L

31 32 33 34 35 36

nj

MANUAL CUE

90

100

110

120

130 136 138 140 142

July 1 979 © BYTE Publications Inc 1 3

Articles Policy

BYTE Is continually seeking quality manuscripts written by Individuals who are applying personal computer systems, designing such systems, or who have knowledge which will prove useful to our readers. For a more formal description of procedures and requirements, potential authors should send a large (9 by 12 Inch, 30.5 by 22.8 cmj, self-addressed envelope, with 28 cents LIS postage affixed, to BYTE Author's Guide, 70 Main St, Peterborough NH 03458.

Articles which are accepted ore purchased with a role of up to $50 per magazine page, based on technical quality and suitability for BYTE's readership. Each month, the authors of the two leading articles in the reader poll (BYTE's Ongoing Monitor Box or "BOMB") are presented with bonus checks of (100 and $50. Unsolicited materials should be accompanied by full name and address, as well as return postage. ■

Will I ever build this? At this time I can't predict if and when I will get around to building this sort of system. If I do, readers can be certain that there will be photographic documentation of the system. My immediate deadline might be to get the system working for the 1980 eclipse which occurs over the equatorial Atlantic Ocean, Africa, Indian Ocean, India and China on February 16. However, as this is written, I don't even know if I will go to see that event.

This camera automation computer is one of those applications of a small computer system which is most appropriate. It has elements of the mechanical interfaces to electronics which are a necessary part of any practical robotic system, as well as elements of real time control akin to those needed for other practical uses of the small computer in home, laboratory and industry. It is the kind of system many of our readers are conceiving and building, whether it be for fun or for professional purposes. As time goes on, we can expect to see this kind of application documented in the form of articles with much greater detail than this editorial sketch. Conceiving, and then building this kind of application is when the fun of contemporary small computing reaches its highest level. ■

The More Things Change, The More They Stay The Same.. ..

On April 20, 1979, BYTE Publications Inc and onComputing Inc became a part of McGraw-Hill Publications Co. Thus, as we neared completion of our fourth year as an enterprise, BYTE, and onComputing magazines joined Electronics, Aviation Week and Space Technology, and Data Communications to become key parts in a group of high technology magazines published by McGraw-Hill.

BYTE will continue to be published from offices in Peterborough NH, with the same staff and the same dedication to quality. Aside from such detail changes as the notation "A McGraw-Hill Publication" on our cover, readers can expect the editorial and advertising content of BYTE to continue under the same philosophy which has established our reputation in the past. Indeed, a major factor in our decision to affiliate with McGraw-Hill is their commitment to the independence of individual magazines.

An interesting statistic is that at this exciting time, BYTE's paid circulation of about 156,000 readers (May 1979 issue) makes it second only to Business Week in paid circulation among the more than thirty magazines published by McGraw-Hill.

We look forward at this point to a long and flourishing relationship with the people who form the McGraw-Hill enterprise.

. . . .Carl Helmers

A Note About the Cover. . .

One of the interesting social phenomena of this eclipse was the appearance of a number of artificial clouds over the observation site: five or six different hot air balloons appeared over our site just at the time of totality. Photo 3 shows a wide angle shot that was intentionally overexposed during the partial phase of the eclipse just prior to totality. One of these artificial clouds is a dark object below and to the left of the sun in this picture. The telephoto shot shown in photo 4 captured one of these balloons in the sky to the west of the expedition site as they were drifting towards us, about 10 minutes before totality.

At the time of totality, I distinctly remember looking up and seeing two bright objects in the sky. One object was the eclipsed sun, and the second object, at about the same position as the dark balloon in photo 3, was one of the balloons with its propane flame shining a brilliant orange color. A man-made fire was complementing the eclipsed embers of the sun.

Combining the eclipse automation theme of this month's editorial with the hot air balloons actually observed, and the weather analysis and measurement themes of two of this month's articles, artist Robert Tinney has created a fantasy on eclipses, hot air balloons and weather for this month's cover. The dramatic effect of cumulonimbus thunderstorm clouds was used in place of the rather dull, high, thin cirrus cloud layer which partially obscured the 1979 eclipse as viewed from central Montana. And perhaps the hot air balloonists should have their heads examined for departing into this imagined thunderstorm, inexorable timing of an eclipse or not. But the resulting oil painting is an incomparable work of beauty, celebrating an uncommon event unique to our spaceship earth, its sister planet the Moon and a technological civilization.

14 July 1979 : BYTE Publications Inc

Circle 255 on inquiry card.

DOUBLE DENSITY

'"I "I ,! ^ ?. y ^lliljjjtllllllllllllllll, ; •

■]: gjrrj -it}."■"!^fry* <Bi

fit

C3

I'llMiii

i 0 U

~il i i ln i'i i ~i i inriTiTTf 1111 h l r iti Vi liiYi I inn f i t

■

11 i

*

I

OUD SAVIN

Now you can put your S-100 system solidly into a full-size, single/double density, 600K bytes/side disk memory for just $1149 complete.

DISCUS/2D™ single/double density disk memory from Thinker Toys™ is fully equipped, fully assembled, and fully guaranteed to perform perfectly.

DISCUS/2D™ is a second generation disk memory system that's compatible with the new IBM System 34 format. The disk drive is a full-size Shugart 800R, the standard of reliability and performance in disk drives. It's delivered in a handsome cabinet with built-in power supply.

The S-100 controller utilizes the amazing Western Digital 1791 dual-density controller chip ... plus power-on jump circuitry, 1K of RAM, 1K of ROM with built-in monitor, and a hardware UART to make I/O interfacing a snap.

The DISCUS/2D™ system is fully integrated with innovations by designer/inventor George Morrow. Software includes BASIC-V™ virtual disk BASIC,

DOS, and DISK-ATE™ assembler/editor. Patches for CP/M* are also included. CP/Mt Microsoft Disk BASIC and FORTRAN are also available at extra cost.

DISCUS/2D™ is the really solid single/double density disk system you've been waiting for. We can deliver it now for just $1149. And for just $795 apiece, you can add up to 3 additional Shugart drives to your system. Both the hardware and software are ready when vou are.

Ask your local computer store to order the DISCUS/2D™ for you. Or, if unavailable locally, write Thinker Toys,™ 5221 Central Ave., Richmond, CA 94804. Or call (415) 524-2101 weekdays, 10-5 Pacific Time. (FOB Berkeley. Cal. res. add tax.)

*CP/M is a trademark of Digital Research.

9

Morrow makes disk memory for

Thinker Toys

Graphic Input of Weather Data

Stephen P Smith 106 E Clearview Av State College PA 16801

: -:ifllHHHHHi

Photo 1: Infrared and visible light photographs like this one are the primary tool of the satellite meteorologist. Cloud formations help locate rain. Temperature data from the infrared images indicates intensity. Photograph courtesy NO A A National Weather Service.

1 6 July 1979 © BYTE Publications Inc

The fact that everyone complains about the weather, but nobody does anything about it, is well-known. Weather forecasting is still more art than science.

Manual techniques still yield the best quantitative weather predictions when compared with the largest computer systems processing a wealth of satellite, radar, and ground station data. However even modest data processing equipment can be an important tool for the meteorologist. I'll show how the combination of a small personal computer and a Summagraphics Bit Pad graphics tablet simplifies the processing of rainfall estimates for a regional data base. The application is an interesting one, and the BASIC language software developed will be useful in any system employing a Bit Pad for data entry.

Locally, rainfall can be measured with simple gauges. The heavy showers common during the prime growing and flood seasons have irregular distributions, so local measurements may be inadequate for regional use. Agricultural planners need to know how much rain has fallen over a specific growing area. Hydrologists working on flood warning and control need to know how much has fallen within a given watershed. Both groups need this information broken down into relatively small elements of time and area, perhaps for each 24 hour period and for each 10 kilometer square. To achieve this detail, tools in addition to rain gauges must be used.

The first of these tools is ground based radar. Most of us have seen weather radars operating on television news broadcasts. Rainfall reflects the radar signal and provides a visual display for the operator, similar to figure 1. Showers can be located accurately, and relative intensity can be determined. Unfortunately, even highly calibrated radars have difficulty measuring actual amounts of rain, and most weather radars are not well calibrated for this application. Radar coverage is also not complete over all areas of the country.

A second tool, satellite imagery, has extended that coverage significantly (see figure 2). Geostationary satellites, which remain fixed over one point on the earth, provide pictures every half hour. Polar orbiting satellites, flying much closer to the earth, provide more detailed images several times a day. A trained meteorologist can identify cloud formations in pictures like photo 1. Several investigators primarily at the National Oceanic and Atmospheric Administration (NOAA, pronounced like Noah) have developed schemes to estimate the rainfall beneath these clouds, (see references 1 and 2).

Text continued on page 20

Figure I: Meteorologists can locate rainstorms using ground based radar. Images like this are familiar from television news. Unfortunately, they are not sufficient to gauge intensity, and radar coverage is not complete throughout the country.

Figure 2: Meteorologists can obtain imagery from two types of satellites. Geosynchronous satellites orbit at the same speed that the earth turns. They appear to be stationary, giving continuous coverage of one area of the Earth. Polar orbiting satellites fly a North to South pattern while the earth turns west to east below them. They provide frequent coverage of every point on the globe.

July 1979 © BYTE Publications Inc 1 7

WeVe worked like mad to

cook up all your favorites.

■

33H

Now, we're cooking. Our boys in the lab have turned circuit chefs these past three months to create a smorgasbord of deliciously assembled boards to support your APPLE II* TRS-80*orS-100 bus systems. Feast your eyes on our monstrous selection in the menu below.Then, order enough to satisfy your hunger for experimentation for months to come. Contact your local computer store, or call us direct. Bon appetit!

California Computer Systems

309 Laurelwood Road -Santa Clara, CA (408) 988-1620-95050

So Nobody Goes Away Mad.

3r STore, or c;

s

1 \

ApPL£lh

7740 ^ST^^^e i

ia„. ' a ■

r ""race "-^ 488 ='n*/s

"-r'dce0« ^*

.' er?ace .. , 5 Sena/ °ai«3 r»fg a'Ur!nQ 0 ■ ■ ■

7570 5Jf2?^ * "iS?

iCircle 37 on inquiry card.

:aranOyCo'

added sa'»7 ,dfae<ted „0r • ■ ■ . 2510 smf ard haV ° Clrcu« *V.95

KJuly 1979 19

Figure 3: The result of the meteorologist's art is a map like this one. The curves are called isohyets. They define bands of equal rainfall in the same way that a contour map shows the height of the land.

Text continued from page 17:

The job of tying together the satellite information with ground station and radar data quickly falls to computers. The manual work should be made as simple as possible, with data provided to the computer in a format designed for the convenience of the meteorologist. The computer should accept this data, digitize it, manipulate it, store it, and produce reports in a format designed for agricultural planners, hydrologists, and other users. Programs of this type have typically been run on medium sized mainframe computers. For data entry and conversion, and limited report generation, however, there are a lot of good microcomputer applications.

Let's examine a specific example. We will accept rainfall estimates and process them to produce reports of accumulation in each 10 km square over a region of about 150,000 km2 (ie: 30 by 50 squares). It would be nice if a digitized satellite photograph could be input to a computer to generate rainfall estimates directly, but that is well beyond the current state of the art. Attempts have been made to input manual interpretations of cloud formations seen in the photos and have the computer evaluate their rain potential (see reference 3). This, too, lacks the necessary precision. The best estimates come from the evaluations of an experienced meteorologist working with satellite photos, and using

ground station reports and radar data as a supplement.

In our system, the rainfall estimates are submitted as maps on which bands of equal rainfall will be drawn. Figure 3 shows a sample. The bands are called isohyets and are similar to the isobars, or lines of equal barometeric pressure, also used by weather people.

A more familiar analogy might be a contour map. If locations on the ground are identified by XY coordinates, the rainfall rate can be thought of as a Z coordinate analogous to height at that point. Converting the isohyets to XYZ coordinates compatible with a grid of ten kilometer squares is the prime function of our processing system.

For a few locations, this could be done manually. The XY point could be located on the map and entered at a terminal along with the value of the isohyet in which it fell. When the number of points runs into the hundreds, however, and the data must be entered at half hour intervals, the manual approach becomes unworkable. A technique for rapidly entering the isohyets, automatically converting to XYZ format, and summing the entries over time must be devised.

Isohyets can be entered directly from the maps using a device called a graphic tablet. The map is placed on the tablet and a stylus is used to trace the outline of each isohyet. The tablet senses the position of the stylus, and the signals are electronically transmitted to a controller and converted to XY data. This type of equipment can resolve positions

20 July 1 979 © BYTE Publications Inc

Circle 285 on inquiry card.

North Star Announces

Double Density x 2 Sides = Quad Capacity!

The North Star Horizon now delivers quad capacity by using two-sided recording on our new mini drlvesl That's 360,000 bytes per diskette! A four drive North Star system accesses over 1.4 megabytes of information on-line! Think of the application flexibility that so much Information storage can give you I

North Star has auadrupled the disk capacity of the Horizon computer but prices have Increased a modest 15 percent. On a dollar per byte basis, that's a bargain that is hard to beat!

The proven North Star disk controller was originally designed to accommodate the two-sided drives. North Star DOS and BASIC are upgraded to handle the new capacity, yet still run existing programs with little or no change. Of course, single sided diskettes are compatible with the new disk system.

North Star Horizon Computer Prices (with 32K RAM):

Horizon-1-32K-Q $2349

Horizon-2-32K-Q $2999

Horizon-1-32K-D $2099

Horizon-2-32K-D $2549

Get both sides now! Quad capacity is available from your North Star dealer.

NorthStaf

North Star Computers 2547 Ninth Street Berkeley, CA 94710

(415) 549-0858 TWX/Telex 910-366-7001

Next Byte

Byte

Received

Mode 2

Mode 1

Rate 4

Rate 2

Rate 1

Status Valid

Figure 4: The computer usually talks to the Bit Pad in parallel mode. One 8 bit word is used to control the Bit Pad. The two most significant bits are part of the communications handshake. The next five provide software control, duplicating switches on the controller. The last bit, status valid, should be set when transmitting a command.

to 0.1 millimeter and can enter data as fast as the operator can trace the lines. Until recently, graphics tablets were expensive, typically $5000. With the introduction of the Bit Pad from Summagraphics, however, the price is now within the range of the personal computer experimenter for scientific and business applications. As of this writing, a complete unit with a tablet, stylus and controller can be purchased for $555.

Using the Bit Pad for our rainfall application involves a little hardware and some software to interface the graphics tablet to my Ohio Scientific computer. The hardware interface has largely been taken care of by Summagraphics. The software problem is a matter of scaling and accounting for misalignment of the maps during the digi

tizing process. The same techniques will apply to any Bit Pad application on an 8 bit microcomputer. Although BASIC may be too slow for some applications, I'll use it to illustrate this application, so the concepts will be available to the widest variety of users.

Before dealing with code, let's look at the hardware interface. The Bit Pad uses 8 bit parallel input and output as its standard. Serial communication at TTL (transistor-transistor logic) or RS-232 voltages is available as an option. With the option, it may be possible to place the Bit Pad between your serial terminal and computer in much the same way that a SwTPC cassette interface is installed. I have a parallel port based on a 6520 PIA (peripheral interface adaptor) on my central processor board, so I elected to use the parallel format. The physical connection consists of a cable with a DB-25P plug on each end. One end plugs into the Bit Pad's controller. The other connects to the PIA lines brought out to my computer's back panel. The installation could hardly be simpler.

The 8 input and 8 output signals flow along the cable. The Bit Pad receives commands from the computer in the format shown in figure 4. Each XY point is trans

SHUGART SERENADE

PEOPLE r

Computer. • IV

Specify Verbatim

K wju wain your machine to play, give it quality

mini magnetic media. And at Verbatim Corporation

the whole message is nuality.

Would Victor Barge kid you?

For the name of your nearest Verbatim distributor,

call toll free: |1| 800-538-1793.

In California call: (4081 737-7771. Call collect.

22 July 1 979 © BYTE Publications Inc

Circle 375 on inquiry card.

WE'RE ALTOS COMPUTER SYSTEMS, computer creates a new standard in quality

HIGH TECHNOLOGY The ACS8000 is a single board, Z80®* disk-based computer. It utilizes the ultra-reliable Shugart family of 8 inch, IBM compatible, disk drives. A choice of drives is available: single or double density, single or double sided. Select the disk capacity you need, when you need it: VzM, 1M, 2M, or 4M bytes. The ACS8000 features the ultimate in high technology hardware: a fast 4 MHz Z80 CPU, 64 kilobytes of 16K dynamic RAM, 1 kilobyte of 2708 EPROM, an AMD 9511 floating point processor, a Western Digital floppy disk controller, a Z80 direct memory access, Z80 Parallel and Serial I/O (two serial RS232 ports, 1 parallel port), and a Z80 CTC Programmable Counter/Timer (real time clock). In essence, the best in integrated circuit technology.

COMPUTER SYSTEMS

)ur SUN-SERIES ACS8000 business/scientific and reliability in high technology computers.

BUILT-IN RELIABILITY The ACS8000 is a true single board computer. This makes it inherently reliable and maintainable. The board and the two Shugart drives are easily accessible and can be removed in less than five minutes. All electronics are socketed for quick replacement. Altos provides complete diagnostic utility software for drives and memory.

QUALITY SOFTWARE Unlimited versatility. The ACS 8000 supports the widely accepted CP/M®** disk operating system and FOUR high level languages: BASIC, COBOL, PASCAL and FORTRAN IV. All available NOW.

PRICE ACS 8000-1, single density, single-sided ['A Mb] $3,840 ACS 8000-2, double density, single-sided [1 Mb] $4,500 ACS 8000-3, single density, double-sided [1 Mb] $4,800 ACS 8000-4, double density, double-sided [2 Mb] $5,300 Brackets show disk capacity per standard two drive system. All models come standard with 32 Kb RAM and two 8" disk drives as shown above. Expansion to 64 Kb is $363 per 16 Kb. FPP, DMA, software optional. Dealer/OEM discounts available. Delivery: 30 days ARO, all models.

*zko is a trademark of Zilog. Inc. . „ .

"CP/M is a trademark ol' Digital Research. Inc. Circle 6 On inquiry Card.

WALSH AVENUE • SANTA CLARA • CA 95050 • (408) 244-5766

Status (1)

Byte

Available

F3 F2

F1

FO

Data (0)

Byte Available

*5 !

X3

X2

X1

XO

I

Data (0)

Byte I Available

«, !

X10

xe

X8

X7

X6

Data (0)

Byte

Available

X3

Y2

Y1

Data (0)

Byte \ Available

Y11

I

Y10

Y7

V6 I

F/^wz-e 5: The Bit Pad communicates with the computer in parallel mode. Five bytes are used to transmit data to the computer. The first two bits of each are handshaking signals. The first byte contains status information. The bit labeled FO is set whenever the stylus Is in contact with the tablet. FT, F2 and F3 are used only with an optional cursor. The remaining four bytes hold data. The second and third provide a 12 bit X coordinate and the fourth and fifth provide a 12 bit Y coordinate. Both are measured in absolute units (0.1mm or 0.005 inches) from the lower left corner of the tablet.

^ START

COMPUTER SETS "NEXT BYTE"

NO

I I I HAS --I BIT PAD SET

I "BYTE AVAILABLE" | I J

COMPUTER

I ) RESETS "NEXT BYTE"

2) READS DATA

3) SETS "BYTE RECEIVED"

I 1

I HAS I -| BIT PAD RESET | | "BYTE AVAILABLE" |

WAS THIS

THE FIFTH BYTE 1 I

I

Figure 6: A handshaking arrangement insures proper data transfer between the Bit Pad and your computer. The Bit Pad performs Its part of the procedure automatically. A simple BASIC or machine language routine will handle the computer's end.

mitted as a sequence of five bytes, as shown in figure 5. A ninth output bit is generated as a data strobe and can be used for interrupt driven software. Using this strobe, interaction between the Bit Pad and the computer could become largely a hardware function. In order to present that interface, however, a lengthy discussion of the PIA interrupt handling and control line features would be needed. That would be beyond the scope of this article and is of little practical use to experimenters with 8080 and Z-80 systems. The more general interface I'll develop here uses a software handshake illustrated in figure 6. It can be handled with a BASIC program and can be implemented as easily on the Motorola type 6820 and 6520 PIAs or the 8080/Z-80 compatible 8255 programmable peripheral interface or 8212 I/O (input/output) port.

The computer begins the handshake by setting the next byte bit of the command word. In BASIC, this is accomplished by using the POKE command to put the value 128 (binary 1000000) in the PIA output register. This is memory location 63488 in my system. When the Bit Pad sees the next byte command, it places a data word on the output lines, setting the byte available bit. The computer has been looking for this by executing an appropriate wait command.

Now it reads the data, sets byte received and resets next byte. The Bit Pad acknowledges by resetting byte available. The computer is now certain that a valid byte was read and that the Bit Pad is ready for a new sequence. If this was the fifth byte of a sequence, processing can continue. If not, next byte is set and the entire process is repeated. Should the computer somehow miss a byte or lose track of the count, it can recover by monitoring the first byte bit of each data word. It will be set (ie: have value 1) on the first of the five bytes and be reset (ie: value 0) on each of the others. The Bit Pad holds up its end of the handshaking automatically. The computer's end can be handled by the BASIC subroutine beginning at line 1100 in listing 1.

Using this subroutine, we end up with five values between 0 and 255 in array D. The status information in the first byte may be ignored for now. D(1) and D(2) contain the X location of the data point, but they also contain the byte available and first byte handshake signals (always set and reset respectively for data bytes). We must mask them out using a logical AND operation, or, in BASIC, by subtracting 64 (binary 01000000). The high order portion of X in D(2) is now multiplied by 64 (26) and added to D(1). The result is X, the absolute dis

24 Julv 1979 © BYTE Publications Inc

10

20

30

40

50

60

1000

1010

1020

1030

1040

1050

1060

1070

1080

1090

1100

1110

1120

1130

1140

1150

1160

3000

3010

3020

3030

3040

3050

3060

3070

3080

3090

3100

3110

3120

3130

3140

3150

3160

3190

3200

3210

3230

3240

3250

3260

3270

3280

3290

3300

3310

4000

4010

4020

4030

4040

4050

4060

4070

4080

4090

4100

REM DATA ENTRY ROUTINE USING SUMMAGRAPHICS BIT PAD REM WRITTEN IN MICROSOFT 6502 BASIC REM STEPHEN P. SMITH, STATE COLLEGE, PA DIM D(4),EW(20,20),NS(20,20),M(10)

P1=63844: REM ADDRESS OF PARALLEL PORT

REM

REM GET A POINT FROM THE BIT PAD

GOSUB 1100: IF DK128 GOTO 1010: FOR 1=1 TO 4: GOSUB 1100: D(l)=D1-64: NEXT I

X=D(2)*64+D(1): Y=D(4)*64+D(3): RETURN

REM HANDSHAKE ROUTINE POKE P1, 128: WAIT P 1+2,64,0: D1=PEEK(P1+2): POKE P1,64: WAIT P1+2,64,64: RETURN

REM SET UP AUTOSCALING GOSUB 1000: AX=X: AY=Y GOSUB 1000: BX=X:BY=Y REM

DATA 0,0,30,50: READ AG,AH,BG,BH S1=SQR((BG-AG)t2+(BH-AH)t2): S2=SQR((BX-AX)t2+(BY-AY)t2): S=S1 /S2:

T1=ATN((BY-AY)/(BX-AX)): T2=ATN((BH-AH)/(BG-AG)): DT=T2-T1:

DX=AX-(AG*COS(DT)-AH*SIN(DT))/S: DY=AY-(AH*COS(DT)+AG*SIN(DT))/S: RETURN REM

CONVERT ABSOLUTE X,Y TO GRID COORDINATES J IS NUMBER OF ISOHYET K IS NUMBER OF THIS POINT

REM FETCH A BYTE REM IS IT THE FIRST OF 5 REM IF YES, READ NEXT 4 REM FETCH A BYTE REM STRIP THE HANDSHAKE BIT

REM FIND THE ABSOLUTE X POSITION REM FIND ABSOLUTE Y POSITION

REM SET "NEXT BYTE" REM LOOK FOR '"BYTE AVAIL" SET REM READ DATA

REM RESET "NEXT BYTE", SET "BYTE RCVD" REM LOOK FOR "BYTE AVAIL" RESET

REM GET X,Y, POINT A REM GET X,Y, POINT B

REM A & B IN GRID COORDINATES

REM DISTANCE AB IN GRID SYSTEM REM DISTANCE AB IN BIT PAD SYSTEM REM SET SCALE FACTOR REM ANGLE IN BIT PAD SYSTEM REM ANGLE IN GRID SYSTEM REM ROTATION ANGLE REM X TRANSLATION REM Y TRANSLATION

REM REM REM REM X=X-DX: Y=Y-DY:

X1=X*COS(DT)-Y*SIN(DT):

Y1=Y*COS(DT)+X*SIN(DT):

EW(J,K)=X1*S:

NS(J,K)=Y1*S:

RETURN

REM MENU BOARD ROUTINE REM

DATA 0.,.01 ,.02,.03,.04,.05,.06,.07,.08, FOR 1=1 TO 10: READ MO): NEXT I GOSUB 1000:

IF X>2794/20 GOTO 4060:

N=Y/2794*10:

R=M(N):

RETURN

REM TRANSLATE X REM TRANSLATE Y REM ROTATE X REM ROTATE Y

REM SCALE X AS EAST-WEST COORDINATE REM SCALE Y AS NORTH-SOUTH COORDINATE

09,.10

REM INITIALIZE 10 REM VALUES FOR MENU

REM FETCH AN X,Y POINT REM USE LEFTMOST 5% OF TABLET REM MENU HAD 10 ELEMENTS REM Y POSITION SELECTS ONE

Listing I: BASIC program to use the Bit Pad for entering data. This program inputs a point using the discussed handshaking method, automatically scales and rotates the point, and then allows you to perform operations using that point.

tance from the left side of the tablet. D(3) and D(4) are processed in the same way to calculate Y, the absolute distance from the lower edge of the tablet. The necessary subroutine begins at line 1000 of listing 1.

The absolute coordinates in the Bit Pad system run from 0 to 2794 for 0.1 millimeter resolution (0 to 2000 for .005 inch resolution). Given the scale of our map and assuming it is well aligned on the tablet, it should be a trivial matter to convert X and Y to our 10 kilometer grid coordinate system. Actually, a little software can be added to take care of the scale and map alignment, too. We begin each session by digitizing two known points on the map.

The distance between them gives us the scale factor. Their relative orientation tells the system how the map is positioned on the tablet. Figure 7 and caption give a general presentation of coordinate transformations. The subroutine which sets up this transformation begins at line 3000 of listing 1. At line 3200 absolute X and Y values are converted into grid coordinates and stored in a pair of arrays.

Using BASIC, the data is entered by touching the stylus to a number of points around each isohyet. The smooth curves on the map are approximated in the computer by polygons as in figure 8. A larger number of points produces a better approxi

26 July 1979 © BYTE Publications Inc

"Our inventory is our existence Think we'd trust it to anything le than Scotch Brand Diskettes?"

Don Stone, Vice-President, Mass. Auto Supply Company, Inc., Boston, Mass.

Scotch Diskettes are the diskettes you can depend upon with the information your business depends upon.

Each one is tested and certified error-free before it leaves our factory. Because we know nothing less than perfection is acceptable for your vital business data.

Scotch Diskettes are available in regular or mini sizes, compatible with almost any system.

To find out where you can find Scotch Diskettes, call toll free: 800-328-1300. (In Minnesota, call collect: 612-736-9625.) Ask for the Data Recording Products Division.

If it's worth remembering,

it's worth Scotch

Data Recording Products.

3M

Circle 368 on inquiry card.

BYTE July 1 979

27

Figure 7: In the general coordinate transform there are two problems. The first is translation. Each point must be moved by the distance between the origins of the two coordinate systems. Because the distance is the same for every point, you need only know the coordinates of one point in both systems to compute the translation vector dX, dY. The second problem is rotation. The line between A and B makes a different angle with the X axis than with the X' axis. Each point must be rotated by the difference. To compute the transformation, each point is multiplied by a rotation matrix, then added to the translation vector. The equation looks like this:

cos d - sin d sin d cos d

dX dY

Would You Like to Participate in a Weather Reporting System?

A system is being installed in the state of Virginia that typifies what can be done with microprocessors. A t each of seven remote stations, sensors collect data on wind, rainfall, temperature, etc; and store it in the memory of a dedicated microcomputer. About once a day the data is transmitted to a central minicomputer for processing and integration with other data sources. The microcomputers are nicknamed the Seven Dwarfs. The minicomputer, not surprisingly, is called Snow White. It should also be no surprise to those who work with small computers

that the first station to be installed was called Grumpy.

Now suppose that instead of just seven stations, a large number of personal computer owners attached some simple sensors to their systems, and were linked in a personal computer network (see February 1978 BYTE). Such a network is being tried, also in Virginia. Sensors are manually read; touch tone pads are used for communication. The interest of involved citizens is producing a valuable new resource for meteorologists, hydrologists and agricultural planners; and an interesting new application for readers of BYTE*

MENU

" ,0

1

8

IV9

// 2

/ (

J/8'

)\6 f ft /71

□ •»

3 ( 3

4

5

□ .80

Figure 8: A fter digitizing with the Bit Pad, simple closed curves are approximated by polygons. More corners in the polygon produce a better approximation. Unused areas of the tablet can be used for a menu board. Touching the stylus in the appropriate area enters the indicated value. A software handler is required.

mation but takes longer to enter. If a faster, machine language routine is used, we can take advantage of the Bit Pad's stream mode of operation to enter a large number of points rapidly. As long as the stylus is touching the tablet, the Bit Pad transmits points continuously at a rate of between .1 and 64 points per second. The rate is set by the operator using switches on the control box, or by the computer setting the mode and rate bits of the command word.

Using either approach, the computer must be able to recognize when the entry of an isohyet is complete. In our system this occurs when the most recent point closely matches the first one. The computer now queries the operator for the rainfall rate corresponding to the isohyet just entered. The rate may be entered at a terminal, or by using a portion of the tablet itself as a menu board. In the latter approach, the computer associates a touch of the stylus in one of several small boxes with a preset rainfall rate. Figure 8 shows the menu board ready for operation. The subroutine which interprets the input begins at line 4000 of listing 1.

When all the isohyets have been entered, the computer can begin to assign a rainfall

28 July 1979 ® BYTE Publications Inc

Circle 180 on inquiry card.

The Honor Graduate

There's been a lot of talk lately about intelligent terminals with small systems capability. And, it's always the same. The systems which make the grade in performance usually flunk the test in price. At least that was the case until the SuperBrain graduated with the highest PPR (Price/Performance Ratio) in the history of the industry.

For less than $3,000*, SuperBrain users get exceptional performance for just a fraction of what they'd expect to pay. Standard features include: two dual-density mini-floppies with 320K bytes of disk storage, 64K of RAM to handle even the most sophisticated programs, a CP/M Disk Operating System with a highpowered text editor, assembler and

*Quantity one. Dealer inquiries invited.

debugger. And, with SuperBrain's S-100 bus adapter, you can even add a 10 megabyte disk!

More than an intelligent terminal, the SuperBrain outperforms many other systems costing three to five times as much. Endowed with a hefty amount of available software (BASIC, FORTRAN, COBOL), the SuperBrain is ready to take on your toughest assignment. You name it! General Ledger, Accounts Receivable, Payroll, Inventory or Word Processing . . . the SuperBrain handles all of them with ease.

Your operators will praise the SuperBrain's good looks. A full ASCII keyboard with a numeric keypad and function keys. A non-glare, dynamically focused, twelve inch screen. All in an attractive desktop unit weighing less than a standard

office typewriter. Sophisticated users will acclaim SuperBrain's twin Z-80 processors which transfer data to the screen at 38 kilobaud! Interfacing a printer or modem is no problem using SuperBrain's RS232C communications port. But best of all, you won't need a PhD in computer repair to maintain the SuperBrain. Its single board design makes servicing a snap!

So don't be fooled by all the freshman students in the small systems business. Insist on this year's honor graduate ... the SuperBrain.

□

= NTE3TEC

□data s systems

2300 Broad River Road, Columbia, SC 29210 (803) 798-9100 TWX: 810-666-2115

BYTE July 1 979

29

EPROMs out at the touch of a finger.

After programming a 2708 or 2716 EPROM you won't need a screwdriver to pry it out of SSM's new PB1 board equipped withTextool sockets. Just flip the lever and lift it out. And on the same board there are 4 sockets waiting for 2708 or 2716 EPROMs that can be independently addressed to any 4k or 8k boundary above 8000 hex.Two boards in one.

PB1 has two separate programming circuits so 2708 or 2716 (5v) type of EPROMs can be programmed without modifying the board. Programming voltage is generated on-board by a DC-DC converter; no need for an external power supply. Programming sockets are Dip Switch addressable to any 4k boundary. And complete software is provided for programming and verifying EPROMs.

With our Magic Mapping™ feature, unused EPROM sockets don't take memory space, so you are never committed to the full 4k or 8k of memory.The board can be configured for 0 to 4 wait states. Use fast or slow EPROMs. All lines are buffered.

The PB1 kit is available at over 150 retail locations or directly from SSM for $145.00 (with Textool sockets) or $125.00 (without Textool sockets). All SSM kits are backed by a 90 day warranty. Assembled, one year warranty.

SSM manufactures a full line of S-100 boards, including CPU, Video, I/O, RAM, EPROM, Music, Prototyping, Terminator, Extender and Mother boards. For complete details just send for our new, free brochure.

PB12708/2716 Programmer &4k/8k EPROM Board

Textool programming sockets

Programming protect switch ^

LED indicating programming mode

Programming power supply

4k/8k EPROM sockets

EPROM addressing switches

2116 Walsh Ave., Santa Clara, CA 95050 (408) 246-2707

We used to be Solid State Music. We still make the blue boards.

rate to each square in the grid. It begins with the area of heaviest rain, and determines which grid squares are surrounded by that isohyet (eg: does the center of a square fall within the approximating polygon?). The heaviest rate is assigned to each of these squares. Beyond this area are bands of successively lighter rain. The grid squares surrounded by these isohyets, which have not already been included in another isohyet, are assigned the corresponding lighter rates. The process continues until an area of zero rainfall is encountered. The inverse situation, an area of light rain surrounded by heavier precipitation, does not occur in the sudden, convective storms this program was designed to monitor.

When all the grid squares have been assigned, the computer then holds a record of the rainfall during a one half hour period. When the next map is processed, the storm will have moved, and the distribution of rain will be different. These half hour records can be totaled over periods of any length to provide accurate accumulation data. The meteorologist need only be concerned with instantaneous rates, however. The computer, with the aid of the Bit Pad, handles the motion of the storm and the subtle effects of its changing shape and intensity.

As you may well imagine, updating 1500 grid squares 48 times a day could easily overwhelm many small systems with data. Access to rapid, random storage such as floppy disks is mandatory. The work is still within the capabilities of personal sized computers, but it begins to involve specific operating systems and algorithms which would be useful to only a few readers. The BASIC routines developed here, however, apply to any Bit Pad application. They demonstrate how easy it is to use the Summagraphics graphics tablet for data entry. In doing so, I hope this article has also shown that a microcomputer, when teamed with some novel peripherals, can be used to process data for a challenging meteorological application."

REFERENCES

1. Scofield, R A and V J Oliver, "A Scheme for Estimating Convective Rainfall From Satellite Imagery," NOAA Technical Memorandum NESS 86, April 1977.

2. Follansbee, W A, "Estimation of Daily Rainfall Over China and the USSR Using Satellite Imagery," NOAA Technical Memorandum NESS 81, September 1976.

3. Earthsat Spring Wheat Yield System Test, Final Report, Earth Satellite Corporation, prepared for Johnson Spaceflight Center, April 1976.

4. Cole, E W, Introduction to Meteorology, John Wiley and Sons Inc, New York, 1970.

30 July 1979 © BYTE Publications Inc

Circle 335 on inquiry card.

Circle 256 on inquiry card.

4P+2S+Strobe+Attention+RAM+fPIIOM=S199

I

Introducing The SwitchBoardrM I/O Interface, the most complete interface available for S-100 systems.. .designed by George Morrow exclusively for Thinker Toys™.

The SwitchBoard™ interface provides 4 parallel ports and 2 RS232/TTY serial ports. Plus, strobe and attention ports. Plus, on-board facilities for 4K of optional static RAM and 4K of user-supplied EPROM.

And every port is switch-programmable for total flexibility in interfacing complex peripherals.. .such as 12-bit daisywheel printers.

Each parallel port can be switched for input or latched output. Both serial ports can be switched to any of 16baud rates from 110to 19,200. Each strobe and attention port flip-flop can be switched for pos or neg pulsing.

And yet, The SwitchBoard™ Interface won't hang you up on price or delivery. In kit form, it's just $199. $259 assembled. 2114 4K static RAM option (4 MHz Z-80 compatible), $70.

Ask your local computer shop to place your order immediately for priority shipping. Or, if unavailable locally, order direct from ThinkerToys™, 5221 Central Ave., Richmond, CA 94804.

. Or call for The SwitchBoard™ at (415) 524-2101 weekdays, 10-5 Pacific Time.

"Sockets provided; chip set optional.

A product of Morrow's Microstuff for

Thinker Tovs

CAST A SPELL.

WIN A SORCERER.

J

J

J

If you've written software in Altair Basic, you've written

spells" for the Exidy Sorcerer. Now, make it pay off!

There's never enough software.

Particularly good software.

That's why Exidy is sponsoring a software contest where nobody loses.

Altair programs run on Sorcerer.

The Sorcerer computer's Standard Basic is compatible with Altair 4K and 8K Basic. So our contest is open to programs — we like to think of them as "spells" or "Sorcery"—written in all three of those Basic versions. Trade one of yours for one of ours. Just for entering a program in our contest, we'll send you a new, professionally written and documented program. Free. It's a classic game of concentration that's a fun mindstretcher for both kids and adults. Plus you'll get our new 20" by 24" color poster. And maybe 99 more good programs. We'll publish a bound book of the best programs entered —up to 100 of them, with full credit to each author. If you enter you can have a copy for just the printing and mailing cost. And if your program is included, you get the book free.

WIN THIS EXIDY SORCERER.

And maybe a free Exidy Sorcerer: Submit one of the four programs judged "best," and win a free Sorcerer computer. (Or choose Sorcerer accessories of equal value.) There'll be one winner in each of the following categories: Business, Education, Fun & Games, and Home/ Personal management.

Test-run your entry free.

Take your program to any participating Sorcerer dealer if you want to give it a test run. At the same time, maybe you'll want to jazz up your program to take advantage of Sorcerer's state-of-the-art features. These include 512 by 240 high-resolution graphics; user-defined characters; and dual cassette I/O, among others.

You can turn in your entry right at the dealer's. And collect your poster and new program on the spot.

Enter now. Send us your entry with the coupon. Or visit your dealer. But cast your best spell at Exidy now. And see if you can't make a free computer appear on your doorstep.

RULES:

1) Entries, including documentation, must be printed by computer or typed double spaced on 8Y2 by 11 paper, with your name on every page.

2) Enter as many times as you like. This coupon, or a copy of it, must be completed and attached to all entries.

3) Enter at any participating Exidy Sorcerer dealer, or mail entries postpaid to the address on this coupon.

4) Entries must be received by midnight, Aug. 31, 1979. Winners will be notified by Nov. 30, 1979. For a list of winners, send a self-addressed, stamped envelope marked "Winners List" to the coupon address.

5) You warrant, by your signature on this coupon, that all program and documentation material included in your entry is entirely your own original creation, and that

no rights to it have been given or sold to any other party, and you agree to allow Exidy to use, publish, distribute, modify, and edit it as it sees fit.

6) All entries become the property of Exidy, Inc. No entries will be returned, nor any questions answered regarding individual entries. No royalties, payments or consideration beyond the items set forth in this advertisement will be given to any entrant.

7) Judging will be by a panel of experts chosen by, and including representatives of, Exidy, Inc. Judges may assign programs to whichever entry category they consider appropriate. Decision of the Judges is final.

8) Employees of Exidy, Inc., its dealers, distributors, advertising agencies and media not eligible. Void where prohibited, taxed or restricted by law.

EXIDY, INC.

969 W. Maude Ave. Sunnyvale, CA 94086

Gentlemen:

Here's my "spell." Send me my free program and poster. If I win, send my Exidy Sorcerer computer to:

NAME

ADDRESS _ CITY

_ STATE

_Z1P_

DAYTIME PHONE

TITLE OF PROGRAM.

CATEGORY □ Business □ Fun & Games

□ Education □ Home/Personal Management

Circle 133 on inquiry card.

SIGNATURE

Copyright 1979, Exidy, Inc.

DATE

Qispcis's

Circuit

Cellan

Sound Off

Steve Ciarcia POB 582 Glastonbury CT 06033

Creating music and sound effects with a microcomputer is an arduous task when the processor must directly synthesize each wave form. The usual technique employed is for the computer to calculate a mathematical model of a desired sound and output it through a digital to analog converter. In theory this is fine, but in practice it requires an extremely fast computer to form complex waves. For example, to synthesize a simple 8 kHz tone, the computer must generate an audio wave coordinate every 62 /its. Use of memory tables to replace some calculations can speed up the process, but the production of complex waveforms or higher frequencies would monopolize all of the processor's available time. Copyright ©1979 by Steven A second technique for sound synthesis is

A Ciarcia. All rights reserved. to use an analog approach. The computer

Photo I: Sound effects for a Lionel Southern Crescent mode! steam engine is one use of a programmable sound generator device.

can simulate an electronic organ by attaching separate tone generators to the computer which are turned on and off digitally. In The Toy Store Begins at Home ("Ciarcia's Circuit Cellar", April 1979 BYTE, page 10) four oscillators were attached and could be individually controlled through an output port. Although a tune with four notes isn't very appealing, it served a purpose, and easily demonstrated this alternative synthesis technique. Complex sounds, such as a musical chord, were created by simply turning three of the tone generators on simultaneously. Unfortunately, the preset frequencies allowed only one chord, and in order to change it the circuit would have to be physically altered.

The concept of the external oscillator is the important fact to point out because the production of the sound no longer presents critical real time operation to the computer. To further simplify this approach and reduce the necessity for N number of oscillators to produce N conceivable tones, we can design this external generator to be frequency programmable by controlling the timebase components. More on this later.

More often than not, the sounds we hear are not pure tones, but rather are complex combinations of frequencies that are sometimes mixed with noise. In many instances it is the characteristic presentation or amplitude variations rather than the frequency content which we recognize as the relevant quantity.

Photo 1 shows a steam engine. For the model railroading buffs out there, it is a Lionel Southern Crescent steam engine. The chug-chug sound we all associate with trains is nothing more than white noise which is modulated. The amplitude, or envelope, is pulsed on and off to produce the characteristic sounds of a steam locomotive. While, in theory, the computer can directly synthesize all of these sounds, the personal computing enthusiast might find it more rewarding to consider a hardware alternative.

Fortunately, Texas Instruments and General Instrument have come to the rescue with LSI (large scale integration) sound generator integrated circuits. These integrated circuits contain the basic elements of sound

34 July 1979 © BYTE Publications Inc

+ 5 TO 12 V

SN76477

VOLTAGE CONTROLLED OSCILLATOR AND PITCHCONTROLS

NOISE CLOCK AND FILTER CONTROLS

ONE SHOT AND INHIBIT CONTROL

ENVELOPE SELECT 1 GROUND EXTERNAL NOISE CLOCK NOISE CLOCK RESISTOR NOISE FILTER CONT. RESISTOR NOISE FILTER CONT. CAPACITOR DECAY CONTROL RESISTOR ATTACK/DECAY TIMING CAP SYSTEM INHIBIT ATTACK CONTROL RESISTOR AMPLITUDE CONTROL RESISTOR FEEDBACK RESISTOR AUDIO OUTPUT

VOLTAGE CONTROLLED AND SUPER LOW FREQUENCY OSCILLATORS

NOISE GENERATOR AND FILTER

ONE

SHOT

CIRCUIT

VOLTAGE REGULATOR

ENVELOPE

SELECT

LOGIC

ENVELOPE GENERATOR AND MODULATOR

AMPLIFIER

V

CC

ENVELOPE AUDIO SELECT OUTPUT

ENVELOPE SELECT 2 MIXER SELECT C □ 27 MIXER SELECT A -^2S ^.MIXER SELECT B

MIXER 'SELECT CONTROL

ATTACK AND "DECAY CONTROLS

•VOLUME CONTROL

Figure 1: Functional block diagram and pin description of Texas Instruments SN764 77 complex sound generator.

ONE SHOT CONT. RESISTOR ONE SHOT CONT. CAPACITOR

□ 25

□ 24

□ 23

IZ2< VCO SELECT

□ 21 SLF OSC. CONT. CAPACITOR

□ 20 SLF OSC. CONT. RESISTOR

□ 19

□ 18

□ 17

□ 16

PITCH CONTROL

VCO CONTROL RESISTOR

VCO CONTROL CAPACITOR

V.

reg

synthesis: VCO (voltage controlled oscillators), mixers, envelope generators, noise generators, etc. The Texas Instruments unit is specifically designed to be used independently with sound defined through component selection. The General Instrument unit is bus oriented and attaches to a microprocessor. Both produce sound, but their interfaces are quite different.

The SN76477 Complex Sound Generator

The SN76477 complex sound generator produces sounds by the value selection of externally attached resistors and capacitors. Internally, as shown in figure 1, the generator contains two voltage controlled oscillators, a noise generator, envelope generator and modulator, and mixers.

July 1979 © BYTE Publications Inc 35

SUPER LOW FREQUENCY OSCILLATOR

SUPER LOW FREQUENCY OSCILLATOR CONTROL RESISTOR

SUPER LOW FREQUENCY OSCILLATOR CONTROL CAPACITOR

20

21

2 A)

Figure 2: The SLF (super low frequency) and VCO (voltage controlled oscillator) sections of the Texas Instruments SN764 77 complex sound generator. The desired frequency is selected by adjusting the resistor and capacitor circuits. The frequency is determined by the following formulas: super low frequency = 0.64/RSLF x CSLF and voltage controlled oscillator=0.64/RvcoxCvco.

Figure 4: Outputs of the super low frequency oscillator, voltage controlled oscillator, and noise generator are digitally selected. The control table indicates the output produced for any particular input.

"SLF MINIMUM 7.5K _vw

CSLF

Figure 3: The noise generator and filter section is composed of an external clock, two resistors, and a capacitor. The nominal value of R/y is 47 k ohms and the minimum value for Rfc/fis 7.5 k ohms.

rh

VOLTAGE CONTROLLED OSCILLATOR

VOLTAGE CONTROLLED OSCILLATOR CONTROL RESISTOR

VOLTAGE CONTROLLED OSCILLATOR CONTROL CAPACITOR

EXTERNAL VOLTAGE CONTROLLED OSCILLATOR CONTROL

PITCH CONTROL

2B)

RVC0 -w,

'vco

16

OEXTERNAL INPUT

19

^—] PITCH

CONTROL

Oscillators

Figure 2 illustrates the two oscillator sections and equations for frequency selection. Figure 2a is an SLF (super low frequency generator) with a normal range of 0.1 Hz to 30 Hz. This super low frequency output is most often used to provide the input to the voltage controlled oscillator which runs at a higher frequency. Such a combination results in frequency modulated sound synthesis. A familiar example is a siren.

The voltage controlled oscillator can be externally controlled by grounding pin 22. The frequency is then governed by a 0 to 2.35 V signal applied to pin 16. Signals above 2.35 V will saturate oscillator output. As a further enhancement, the voltage controlled oscillator allows pitch control through a similarly ranged signal applied to pin 19.

EXTERNAL NOISE CLOCK

NOISE CLOCK RESISTOR

NOISE FILTER CONTROL RESISTOR

NOISE FILTER CONTROL CAPACITOR

external

-Onoise

CLOCK

NF

'NF

rt)

The output of the voltage controlled oscillator and the super low frequency oscillator is a square wave which is supplied to the mixer and through the envelope selection logic to the envelope generator and modulator.

Noise Generator and Filter

Since so many sounds incorporate noise as an integral component, the 76477 includes a noise generator which can be set to produce pink or white noise by selection of the proper components. (Pink noise has a spectral intensity inversely proportional to frequency over a specified range. White noise is random and has constant energy for a unit bandwidth.) Further refinement of the desired noise range is accommodated through an external clock input applied to pin 3. Figure 3 illustrates this hookup.

The noise generator output is sent to the mixer.

The Mixer and Envelope Selection

Figure 4 shows how the mixer section of a sound generator works and specifically details the logic codes for the SN76477. The mixer is essentially a gating network which digitally combines the outputs from the super low frequency oscillator, voltage

super low frequencyoscillator

VOLTAGE CONTROLLED OSCILLATOR

NOISE

INHIBIT

I

y

i26

MIXER

MIXER

MIXER

SELECT

SELECT

SELECT

C

B

A

, OUT TO MODULATOR

MIXER

AND AMPLIFIER

Mixer Select Inputs

C

B

A

Mixer

(Pin 27)

(Pin 25)

(Pin 26)

Output

L

L

L

VCO

L

L

H

SLF

L

H

L

NOISE

L

H

H

VCO/NOISE

H

L

L

SLF/NOISE

H

L

H

SLF/VCO/NOISE

H

H

L

SLF/VCO

H

H

H

INHIBIT

H = high level

L = low level or open

36 July 1 979 © BYTE Publications Inc

puter

id.

intocomp

For the first time: Hard-to-obtain computer music material has been collected into one convenient, easy-toread book.

The BYTE Book of Computer Music combines the best from past issues of BYTE magazine with exciting new material of vital interest to computer experimenters.

The articles range from flights of fancy about the reproductive systems of pianos to Fast Fourier transform programs written in BASIC and 6800 machine language Included in this fascinating book, edited by Christopher P. Morgan, are articles discussing four-part melodies, a practical music interface tutorial, electronic organ chips, and a remarkable program that creates random music based on land terrain maps!

ISBN 0-931718-11-2

$1000

Buy this book at your favorite computer book store or order direct from BYTE BOOKS

Add 60C per book for postage and handling

BITE

"BOOKS OF INTEREST TO COMPUTER PEOPLE"

70 lVIciin Strc?t?t PeterfooroiiQli New Hcumpshirt? 03458

Circle 36 on inquiry card.

BYTE July 1979 37

controlled oscillator, and noise generator through a 3 bit code applied to pins 25, 26, and 27. An additional inhibit state is added to shut off operation of the mixer when desired.

The individual outputs of the voltage controlled oscillator, super low frequency oscillator and noise generator are selected with codes of 000, 001, and 010 respectively, as shown in the chart accompanying figure 4. The true value of this device is demonstrated when complex sounds are produced by combining these three sources and utilizing the inhibit for emphasis.

Figure 5a shows how the voltage controlled oscillator can be modulated by the super low frequency oscillator. As mentioned, an example of this is a siren. If, on the other hand, the super low frequency oscillator were programmed as in figure 5b, and mixed with the noise generator, the mixer output would sound like the steam engine we previously discussed. For faster on/off pulsing of the noise generator, the voltage controlled oscillator could be selected, and would appear as in figure 5c.

The inhibit line, rather than being an actual sound source, controls the duration of the other three sections. The internal one shot, triggering a 100 ms burst of noise to a loud amplifier, will sound like a gun shot. This is detailed in figure 5d.

The combined mixer output then goes to the envelope generator and modulator where

the amplitude (volume) of the output signal is tailored through proper attack and decay timing so that it will synthesize actual sounds accurately. A piano is most easily characterized by its sharp attack and very long decay. Figure 6 outlines the component calculations for these timed functions.

Manual Sound Synthesizer

The SN76477 is essentially an independent sound generator. This means that with a few discrete components it can independently synthesize the sound of sirens, phasers, guns, etc. A computer is not required to program this device and, in fact, with the exception of the envelope, mixer and inhibit selection inputs, it is not directly controllable with a microprocessor. An example of a typical hardwired circuit using the SN76477 is shown in figure 7. This circuit simulates the sound of a steam engine and a whistle. The timing components were selected by using the equations outlined in figures 2 thru 6. This circuit produces two sounds by multiplexing the mixer between the voltage controlled oscillator frequency and the super low noise outputs. Normally, with the push button open the super low frequency oscillator pulses the noise generator on and off, producing a chug-chug sound. When the button is pushed, oscillator IC2 multiplexes the integrated circuit to the voltage Text continued on page 42

Figure 5: By carefully choosing what signals are combined, a variety of different types of sounds can be produced. Figure 5a shows a combination of the super low frequency generator and the voltage controlled oscillator producing a sound such as a siren. Figure 5b combines the super low frequency oscillator and the noise generator to generate a sound such as a steam engine. In figure 5c, the voltage controlled oscillator and noise generator are mixed together to form a faster on and off pulsing than produced using the super low frequency generator. When the inhibit one shot is mixed with noise (figure 5d) the resulting sound would sound like a gun being fired.

5b

5c

MIXER OUTPUT

SUPER LOW FREQUENCY OSCILLATOR

VOLTAGE

CONTROLLED

OSCILLATOR

Jinruij-uinjiimrLTLT

L_ JUUIIUIUUI

MIXER OUTPUT

SUPER LOW FREQUENCY OSCILLATOR

NOISE

•JUUUUl IflL

VOLTAGE

CONTROLLED

OSCILLATOR

NOISE

MIXER OUTPUT

'jiuiniLJ^

MIXER OUTPUT

38 July 1979 © BYTE Publications Inc

This exceptional print quality for $560!

The new Comprint model 912 printer for computers and terminals:

■ Fast—225 characters/second (170 Ipm)

■ 80 character lines on 8Vi" wide paper

■ Quiet, non-impact operation

■ 6 month warranty

Available now at computer stores and industrial distributors.

comprint1

Computer Printers International, Inc. 340 E. Middlefield Rd., Mt. View, CA 94043 • 415 969-6161

Circle 48 on inquiry card. byte July 1979 39

Figure 6: The envelope selection (table) is determined by envelope select 1 and envelope select 2 (pins I and 28) as shown in the table. The attack and decay timing is determined by Ros, Cos, RD, C, and

TYPICAL

MIXER

OUTPUT

ATTACK

ONE SHOT

ATTACK

AND

DECAY

Envelope Select

Function Selected

1 2 (Pin 1) (Pin 28)

L L L H H L H H

vco

Mixer only One shot VCO with alternating cycles

H = high level

L = low level or open

Ros

Cos

23

7

Rd

c

8 M .

10

)\ Ra

ONE SHOT ~ 8 ( R0s'<Cos)

DECAY TIME ~ (Rn)lC )

ATTACK TIME « ( RAHC)

/77

♦ 5V

OUTPUT

DISCHARGE

I C 2 NE555

THRESHOLD TRIGGER

PUSH BUTTON NORMALLY OPEN

220pF

ft!

• 68k

,O0K IM I i-W. vyC —

47K ^—

0 01

rh

Number

Type

+5 V

GND

IC1

SN76477

15

2

IC2

NE555

8

1

5V

ENVELOPE SELECT 2 MIXER SELECT C

I C I SN 76477

PITCH CONTROL

ENVELOPE SELECT

MIXER SELECT A

MIXER SELECT B

SUPER LOW FREQUENCY OSCILLATOR CONTROL CAPACITOR

SUPER LOW FREQUENCY OSCILLATOR CONTROL RESISTOR

VOLTAGE CONTROLLED OSCILLATOR CONTROL RESISTOR

VOLTAGE CONTROLLED OSCILLATOR CONTROL CAPACITOR

EXTERNAL NOISE CLOCK

NOISE CLOCK RESISTOR

NOISE FILTER CONTROL RESISTOR

NOISE FILTER CONTROL CAPACITOR

SYSTEM INHIBIT

ATTACK CONTROL RESISTOR

EXTERNAL VOLTAGE CONTROLLED OSCILLATOR CONTROL

AMPL1 TUDE CONTROL RESISTOR

39K

-VA—

47K

390pF

IO0K

I00K -W—

Figure 7: The Texas Instruments SN76477 is often used in a hardwired, dedicated device. One such use is simulated steam engine and whistle sound as shown here.

40 July 1 979 © BYTE Publications Inc

_ TM

The Computer Cookbook.

Fast Becoming the Reference Standard

Find out for yourself why The Computer Cookbook has become the standard reference book of those who have to put together computer systems—and make them work.

Only The Cookbook gives all the ingredients for a successful system—hardware and software. We tell you how big a computer you really need to get the job done—not what size they'd like to sell you. We tell you what you can do yourself— and what you shouldn't do yourself.

Thinking of a system for a small business? We tell you what you need

for your scale of operation. Trying to evaluate "canned" programs? We'll tell the potential trouble spots in Accounts Receivable, Inventory, and other "packages."

Ready to do it yourself? Our 'helpful hints' can save you hours of frustrating trial-and-error learning. We give you program outlines and step-by-step recipies in our plain-English "Cookbook" language—recipies you can then adapt to your machine's own dialect.

Just dreaming? We tell you how to interface a hard disk to your S-100

microcomputer. We list information services you can get if you have a telephone modem. And we describe speech synthesizers, home control equipment and even robots you can play with.

Best of all: The Cookbook doesn't go out of date. Because we update it every two months—you merely plug the pages into our loose-leaf binder. Why bother with reference books that are already out of date? The Cookbook is always ahead of the pack.

All orders shipped UPS unless US Mail requested. Add $1.50 for shipping. (Overseas add $5). California residents add $.98 sales tax at $15, $1.56 at $24. Checks should be payable to "The Computer Cookbook." VISA and Mastercharge accepted with card numbers and 4-digit expiration date.

Name

Company/Street. City

.State.

-Zip

( ) Mastercharge: Interbank No: Card No:

( ) Visa BOTH: Expiration date:

The Computer Cookbook / P.O. Box 4084 / Berkeley, CA 94704

Act Now. The Cookbook will cost $24 after July 1, 1979

Circle 52 on inquiry card. byte juiy 1979 41

I/O Port Bit Assignment

Port 8

BitO

Envelope Select 1

1

Inhibit

2

Envelope Select 2

3

Mixer C

4

Mixer A

5

Mixer B

6

VCO Select

7

External VCO Select

Noise Filter Capacito 1

Attack/Decay Capacitor 1

SLF Capacitor

Port 9

'l50pF

0.001 jUF

0.01 JUF 1

'0.1 /iF

1.0 JUF

4.7 IJF 1

unused

I 1

0.1 JUF

SLF Capac

tor

VCO Resistor 1

VCO

Capacitor i

Port 10

0.47 JUF

1.0 jUF1

'10 k£l

100 kQ,

1 Mfi 1

' 0.005 JUF

0.05 jUF

0.47 jUF '

Sound Effect Desired

Hexadecimal Value Sent to Output Port

Port 8

Port 9

Port 10

Train

32

80

80

Phaser

B6

10

54

Siren

82

00

62

Table I: Designation of I/O (input/output) port assignments and associated component choices in the interface for the Texas Instruments SN76477 sound generator.

Text continued from page 38: controlled oscillator only position approximately half the time. The voltage controlled oscillator is programmed to produce a whistle. Sufficient power to drive a speaker is facilitated by a two transistor complementary amplifier attached to pins 12 and 13.

Build a Computer Programmable Sound Generator Interface

While the SN76477 is not directly controllable by a computer as it exists, an interface between it and a computer can be designed which will give it some semblance of programmability. Figure 8 illustrates such an interface. Sound generation is programmed through three output ports, two of which control CMOS analog switches. These switches allow a variety of resistor and capacitor combinations to be selected. Total control requires three output commands from a BASIC or machine language program, and it is very easy to switch from a siren to a phaser gun sound when implemented as game sound effects. Photo 2 shows the video display of a typical spacewar game. Consider the sophistication that sound effects would add.

In the prototype, shown in photo 3, ports 8, 9, and 10 were chosen to drive the interface. Port 8 handles mixer and envelope selection; port 9 controls selection of components for the attack, decay and noise sections; and port 10 controls the SLF and VCO programming. The values chosen are nominal and will not allow unlimited sound synthesis. Potentiometers are added to facilitate fine tuning.

A More Sophisticated Programmable Sound Generator

The SN76477 is attached to a microcomputer largely through brute force. A far more sophisticated device has been Text continued on page 45

Table 2: Values which are sent to the output ports connected to the SN764 77 interface to produce the indicated sound effects.

Photo 2: A typical video based space exploration game could be enhanced by sound effects.

Short Range Scon,.

1* 1

STfWiTE 3034

2 * H»

mum GfifEH

3 t

OJfWNT 6,5

4

SECT* 2.7

5 *

Qm 5000

6

raracts 10

7 »

SHIELDS 2056

-1—2—3—4—5-6—7—9

Cotwond

Photo 3: A look at the prototype circuit of figure 7 attached to the back of an I/O (input/output) board.

42 July 1979 © BYTE Publications Inc

D

Z

CM

r

rs

a

>

ID

in

T—

t—

T

+

CD

a

CD

to

CD

eg

CD

CD

CD

CD

CD

z

O

O

O

CO

<*

■a

a>

-a

T—

CN

CO

ID

E

3

U

o

CJ

o

O

Z

1

to

I

I

S §

=3 I

8

ID

c o

cj

<D •Q

C:

S

v.

5

§

-S;

!

CJ

3t»

I

July 1 979 © BYTE Publications Inc 43

_ BDIR, AS, A9 BC2.BCI DAB-DA7

CLOCK

Figure 9a: Functional block diagram of the General Instrument AY3-8910 programmable sound generator. The device is made by General Instrument Corp, Microelectronics Division, 600 W John St, Hlcksvllle NY 11802.

INPUT LOGIC AND BUS CONTROL

REGISTER DECODE

I/O PORT A

L

IOAB-IOA7

V

16 READ/WRITE CONTROL REGISTERS (SEE TABLE )

I/O

PORT B

I088-I0B7

>

AY-3-89IO

(

NOISE GENERATOR

TONE

GENERATOR (3)

AMP

CONTROL

ENVELOPE GENERATOR

MIXERS (3)

4 BIT

DIGITAL TO ANALOG

CONVERTERS (3)

ABC ANALOG OUTPUTS

PARALLEL I/O

Figure 9b: Map of the control registers of the A Y-38910.

44 July 1979 © BYTE Publications Inc

REGISTER

RO

R2

R4

RS

RI2

RI3

CHANNEL A TONE PERIOD

V////////////7A

CHANNEL B TONE PERIOD

'//////////////,

CHANNEL C TONE PERIOD

YZZZZZZZZZZZZZA 4 bit coarse ™E

NOISE PERIOD

'//////////A

ENABLE

CHANNEL A AMPLITUDE

CHANNEL B AMPLITUDE

CHANNEL C AMPLITUDE

ENVELOPE PERIOD

ENVELOPE SHAPE/CYCLE

I/O PORT A DATA STORE

I/O PORT B DATA STORE

B7

B6

B5

B3

B2

Bl

BO

8 BIT FINE TUNE A

4 BIT COARSE TUNE A

8 BIT FINE TUNE B

4 BIT COARSE TUNE B

8 BIT FINE TUNE C

5 BIT PERIOD CONTROL

V//////////,

V//////////,

L2 LI

8 BIT FINE TUNE E

8 BIT COARSE TUNE E

•//////////////A

CONT

ATT ALT

HOLD

8 BIT PARALLEL I/O ON PORT A

8 BIT PARALLEL I/O PORT B

Figure 9c: Pin designations of the AY-3-8910 device.

Text continued from page 42: recently introduced and it is designed specifically as a bus controlled device. This new device is the AY-3-8910 from General Instrument. It uses no external components and synthesizes sounds totally by digital means. A functional block diagram is shown in figure 9a.

You'll notice a similarity between this programmable sound generator and the Texas Instruments device in that they both contain the same elemental sound synthesis components such as noise and tone generators. The real difference is that the General Instrument programmable sound generator is programmed through 16 read/write control registers rather than resistors and capacitor's. These registers appear as 16 sequential memory mapped I/O (input/ output) locations to the controlling processor.

The AY-3-8910 incorporates a noise generator, three tone generators, three mixers, an envelope generator and three digital to analog converters for amplitude control. An added benefit is the inclusion of two decoded I/O ports which are available for other external applications. All subsystems are controlled through the control register array.

The device is specifically designed to interface with the General Instrument CP1600 series of microprocessors but it can be easily accommodated by others. Figure 10 illustrates this simple attachment. A bidirectional address/data bus, DAO thru DA7, provides the necessary communication path. Since there are 16 registers, only four bits of address are actually used, and A8 and A9 serve more as device select lines by definition. BC1, BC2, and BDIR are the bus control lines and define bus direction, reading, and writing of register data. While an inexpensive circuit such as that shown in figure 11 can be used as the clock for both the processor and the programmable sound generator, they are basically independent and can be different rates. The programmable sound generator clock is primarily used for the sound synthesis. The reset line clears all registers.

For all practical purposes, signal, line BC2 is unnecessary and can be tied to +5 V. The read/write control logic is shown in table 4.

The timing of BC1 and BDIR control lines are shown in figure 12. Data transfer is carried out by strobing these lines, while the Text continued on page 48

TOP VIEW

i

VSS (GND ) C

• i

u

40

NC

i—

2

39

^ n h tv rs l L □

1—

3

38

CHANNFl A

4

37

N C

1 ..

5

36

10 B7

i—1

6

35

IOB6

r— 1

7

34

r do ^

iUtJO

i

1

8

33

I0B4

9

32

I0B3

1

l_

10

31

t riR?

I

1

11

30

t a n i

i

12

29

IOB 0

cm

13

28

lflA7 lUAf

i—

14

27

I0A6

c=

15

26

IOA5

16

25

IOA4

C

17

24

I0A3

18

23

I0A2

C

19

22

IOAI

cz

20

21

ANALOG CHANNELC

DAO

DA I

DA2

DA3

DA4

DA5

DA6

DA7

BCI

BC2

BDIR

TEST 2

A8

A9

RESET CLOCK

Whistling Bomb Sound Effect

Register Number

Any not specified R7 R10

RO RO

R6

R7

R10

R11

R12

R14

R15

Hexadecimal Load Value

00 3E OF

30 (start) CO (end)

Explanation

OF 07 10 10 10 10 00

}

Enable tone only on channel A only. Select maximum amplitude on channel A.

{Sweep effect for channel A tone period via a processor loop with approximately 25 ms wait time between each step from 30 to CO (0.429 ms/2330 Hz to 1.72 ms/582 Hz).

Set noise period to midvalue. Enable noise only on channels A,B,C.

Select full amplitude range under direct control of envelope generator.

Set envelope period to 0.586 seconds. Select envelope decay, one cycle only.

Phaser Sound Effect

Hexadecimal

Register Number Load Value Explanation

Any not specified 00

R7 3E Enable tone only on channel A only.

R10 OF Select maximum amplitude on channel A.

{Sweep effect for channel A tone period via a processor loop with approximately 3 ms wait time between each step from 30 to 70 (0.429 ms/2330 Hz to 1.0 ms/1000 Hz). R10 00 Turn off channel A to end sound effect.

Table 3: Values which are loaded into the control registers of the General Instrument A Y-3-8910 sound generator in order to produce the indicated sound effects.

July 1 979 © BYTE Publications Inc 45

Figure 10: Typical microprocessor to programmable sound generator interface.

MICROPROCESSOR

r

BUS ,

CONTROL <

ADDRESS <

AND DATA

BUS

CLOCK —

22

RESET

23

BC I

29

BC 2

28 ,

B DIR

27

30

f

V

DAO- DA7

J

A8

37 25 i

A9

24

AY-3-8910 CLOCK

ANALOG

RESET CHANNEL A BCI

ANALOG CHANNEL B

ANALOG BC2 CHANNELC

BDIR

DAO - DA7

A8 A9

PORT A

4 ANALOG A

3 ANALOG B

38 ANALOG C

PORT B

8 BITS 8 BITS

v J

PARALLEL I/O

IOK

100/iF

AUDIO AMP

SPEAKER

CLOCK GENERATION

1.7897725 MHz

0.8948863MHz

3.579545 MHz CRYSTAL

IOM --Wv

?3oon

3

ICI CD4069

I

M

Is

13

9

A

PROGRAMMABLE

SOUND

GENERATOR

CL

22

12

02 DATA H 02

01

CLOCK 2 RESET I

4013

SET I SET 2

Ol DATA I RESET 2

I 7897725 MHz CLOCK TO PSG

10

PROGRAMMABLE

SOUND

GENERATOR

/77

CHANNEL AUDI° OUTPUT INTERFACE +5V OUTPUTS A

Figure 1 la: A simple clock generator which can be used as a clock for the processor and the programmable sound generator.

Number

Type

+5 V

GND

IC1

CD4069

14

7

IC2

4013

14

7

IC3

LM386

6

4

m

Figure lib: A typical audio output interface for driving a speaker from the programmable sound generator.

46 July 1979 © BYTE Publications Inc

Circle 151 on inquiry card.

ATTACK I \

4<Ml

m

BUUSeVBil

OMFHOM TA TfOM I

m

S£A\ BATTLE]

AT YOUR COMPUTER RETAILER NOW

TRS-80, Apple II, Sorcerer, SOL and Southwest Tech 6800 owners: get more out of your personal computer.

Get into action with G2 Bullseye!, Sea Battle, Confrontation and Attack!

Sharpen your analytical abilities with G2's Outwit I, Outwit II and Mind Bender.

Take a chance with G2's Beat the House. Check out your health with Clinic.

And enjoy the challenging experience of two new G2 computer simulations: The Market and Wildcatting.

Or get serious with three powerful new languages. Level III Basic for the TRS-80. Extended Basic for the SOL. And Standard Basic for the Southwest Tech 6800. All written by Microsoft—the Basic wizards. Exclusively from G2.

CRT

A Product o! GR1 Corporation Consume! Computer ©roup 1186 North Lawrence Station Ho

utoB6 40B t M ;

Our software has more so your computer does more. Great programming. Highest guality cassette. The most comprehensive instruction manual available. Plus source listing print-out of every application program in Basic. You can learn how the programs were written. We even encourage you to do your own re-programming to improve your skills!

G2 software is available from computer retailers nationwide. If your local retailer doesn't have it, ask him to become a G2 dealer by calling us toll free: (800) 538-8540 (U.S.A.) or (800) 672-8691 (California).

THE REASON

YOU BOUGHT YOUR COMPUTER.

BYTE July 1979

OFTWA

CP1600

Function

BDIR

BC2

BC1

Function

Abbreviation

0

1

0

Inactive

NACT

0

1

1

Read from PSG

DTB

1

1

0

Write to PSG

DWS

1

1

1

Latch Address

INTAK

Table 4: Summary of the read/write control logic needed to control the A Y3-8910 sound generator.

SET PROGRAMMABLE SOUND GENERATOR REGISTER ADDRESS

BDIR

BCI

J V J V

CONTROL1 NACT V//\ INTAK \//,\ NA~

DA7--DAO

FLOAT

XOUTPUTV ADDRESS A

FLOAT

WRITE DATA TO PROGRAMMABLE SOUND GENERATOR OR I/O PORT

BDIR

BCI

/

\

CONTROL NACT ^ DWS ^ NACT

DA7-DA0 FLOAT

X

OUTPUT DATA (TO PSG)

X

FLOAT

READ DATA FROM PROGRAMMABLE SOUND GENERATOR OR I/O PORT

BDIR

BCI

/

\

CONTROL

BUS NACT ///\ DTB

NACT

0A7-DA0 FLOAT

XINPUT DATA V (FROM PSG) [\

FLOAT

Text continued from page 45: address/data bus contains the pertinent contents. These pulses should be short and one processor clock cycle should suffice.

Tone Select

The registers are divided into six categories, and numbered in base eight:

Tone generators Noise generator Mixer control Amplitude control Envelope control I/O ports

R0 thru R5

R1 o thru R-, 2 R13 thru R15 R-i 6 and R-| 7.

Tones are square waves produced by dividing the input clock by 16, then counting that result down by a programmed 12 bit tone-period value. The 12 bit value, defined by the coarse and fine tune registers, is a combination of the two control registers. The 12 bits represent period and T = 1 /frequency. The higher the register value, the lower the tone. Register contents range from 000000000001 (divide by 1) to 111111111111 (divide by 4095). With a 2 MHz clock the frequencies would be 125 kHz and 30.5 Hz respectively.

The other parameters, such as noise, mixers, amplitude, and envelope controls, are chosen in a similar manner. The actual programming technique is beyond the scope of this introduction to the AY-3-8910, and I suggest that interested readers send inquiries to General Instrument.

Connecting the AY-3-8910 to the S-100 Bus

Figure 13 shows how an AY-3-8910 programmable sound generator can be connected as an I/O device on the S-100 8080 compatible bus. Switches SW1 through SW6 define the starting I/O address of the 16 programmable sound generator registers.

Text continued on page 57

Figure 12: Programmable sound generator bus timing logic.

Number

Type

+5 V

GND

IC1

7485

16

8

IC2

7485

16

8

IC3

7404

14

7

IC4

7402

14

7

IC5

7400

14

7

IC6

7400

14

7

IC7

74148

16

8

IC8

74LS367

16

8

IC9

74LS367

16

8

IC10

74LS367

16

8

IC11

74LS367

16

8

IC12

AY-3-8910

40

1

48 July 1 979 © BYTE Publications Inc

s o

K> O < <E

z 2 z

o - - - o

<t m CO CD CO

n V A

< < <

3 O

ro OJ <7

IJ3 N iO

V

3 3 3

1*1 O O O fO

4 m m m m

» V A

< < <

g - - - o

< ca co co co

a v a

< < <

m < VW

5?

Ms

00

ro 1 3; u

-<□ dNIS

■<□ inos -<□ Niaad

-Oiia

-<dUoa

-O 9ia

-O s ia

-<□ soo

-O sic

-O 210

-O 2oa

<□ loa

-O oia

-O ooa

F/^i/re 73: 777 e AY-3-89J0 can be connected to the S-100 bus. SW1 thru SW6 define the starting address of the 16 control registers. The power pin assignment is shown in the table at left.

July 1979 © BYTE Publications Inc 49

LATCH ADDRESS ROUTINE

LATCH ADDRESS ROUTINE

;AT ENTRY, B HAS ADDRESS VALUE

PORTADDR EQU 80H PORTDATA EQU 81 H

; ADDRESS TRANSFER PORT ADDRESS DATA TRANSFER PORT ADDRESS

; THIS ROUTINE WILL TRANSFER THE CONTENTS OF ; 8080 REGISTER C TO THE PSG ADDRESS REGISTER PSGBAR MOV A,C ; GET C IN A FOR OUT

OUT PORTBAR ; SEND TO ADDRESS PORT

RET

WRITE DATA ROUTINE

ROUTINE TO WRITE THE CONTENTS OF 8080 REGISTER B TO THE PSG REGISTER SPECIFIED BY 8080 REGISTER C

PSGWRITE

CALL MOV OUT RET

PSGBAR ; GET ADDRESS LATCHED A,B ; GET VALUE IN A FOR TRANSFER PORTDATA ; PUT TO PSG REGISTER

READ DATA ROUTINE

ROUTINE TO READ THE PSG REGISTER SPECIFIED BY THE 8080 REGISTER C AND RETURN THE DATA IN 8080 REGISTER B

PSGREAD CALL IN

MOV RET

PSGBAR

PORTDATA ; GET REGISTER DATA B,A GET IN TRANSFER REGISTER

Listing I: Routines written for the 8080 microprocessor to operate the AY3-8910 programmable sound generator.

;OUTPUTS

; GET PERIPHERAL A FORM ADDR

LATCH CLRA

STAA 8005 ; GET D DIR A LDAA #FF STAA 8004 LDAA #4 STAA 8005 STAB 8004 STAA 8006 CLRA

STAA 8006 ; LATCH ADDRESS RTS;RETURN

WRITE DATA ROUTINE

; AT ENTRY, B HAD DATA VALUE

WRITE STAB 8004 ; FORM DATA LDAA #6 ; DWS STAA 8006 CLRA

STAA 8006 ; WRITE DATA RTS;RETURN

READ DATA ROUTINE

; AFTER READ, B HAS READ DATA READ STA A 8005 ; GET D DIR

STA A 8004 LDAA #4 STA A 8005 DECA

STA A 8006 LDA B 8004 CLRA

STA A 8006 RTS ;

INPUTS

GET PERIPHERAL

READ MODE READ DATA

REMOVE READ MODE RETURN

Listing 2: Routines coded for the 6800 microprocessor to operate the A V-3-8910.

M6800

A V

PIA/ MC682I

PAO PAI PA 2 PA 3 PA4 PA5 PA6 PA 7

PBO PBI PB2

Figure 14: Connecting the A Y-3-8910 to a 6800 system through a 6820 programmable interface adapter is easier than interfacing the S-100 bus.

+ 5V A

2

37

3

36

4

35

5

34

6

33

7

32

8

31

9

30

10

29

1 1

28

12

27

RESET A8

A9

DAO

OA I

OA 2

DA3

DA4 PSG/

AY-3-8910 DA5

DA6

DA7

BCI BC2

38

23

25

24

^7

ANALOG A

to

< I ANALOG B

-< | ANALOG C

50 July 1979 © BYTE Publications Inc

Text continued from page 48:

Reading and writing from it is as illustrated.

A less complicated hardware interface is attained by using a peripheral interface adapter such as the 6820. Figure 14 demonstrates a technique which can be used for 6800 systems. The considerable difference in hardware complexity should in no way imply lack of ability using the 8080. If the S-100 bus is ignored and a 8255 programmable peripheral interface is used instead, it would result in a circuit similar to figure 14.

In Conclusion

I have briefly presented two methods of sound synthesis. While both are simple to implement, it is easy to recognize that the Texas Instruments part is more applicable in dedicated designs while the General Instrument device is for general synthesizer applications. It is not inconceivable that the AY-38910 could produce almost any sound, and it is a natural for use with a music interpreter running on a microcomputer. Perhaps the next famous composer will not direct a 150 piece orchestra but, rather, a trio of microcomputers controlling a bank of AY-3-8910s."

Circuit diagrams and drawings pertaining to the AY-3-8910 were provided courtesy of General Instrument Corp.

Come Help Us Celebrate The Child

St. Jude Children's Research Hospital continues its search for life-saving knowledge about childhood diseases. And this search continues because people care. Help us celebrate the child by sending your taxdeductible check or request for further information to St. Jude Children's Research Hospital, " ■ 539 Lane Ave., '<< Memphis, TN 38105.

ST. JUDE CHILDREN'S RESEARCH HOSPITAL

lumny Thttnms. founUm

ATTENTION CREATIVE

ELECTRONIC ENGINEERS, MICROCOMPUTER PROGRAMMERS AND

TECHNICIANS

SIMON SAYS:

Travel to the Northeast to Western New England to scenic East Longmeadow, MA. nestled in the foothills of the Berkshires and a whole new world of electronic opportunity awaits you.

The Milton Bradley Company has propelled itself into the electronic game and toy arena in a most dramatic and successful fashion in the last two years. This momentum is continuing in a most encouraging way. Consequently, we are seeking talented electronic personnel with both hardware and/or software experience and knowledge to expand our inhouse electronic product development capability. We have immediate openings for the following types of personnel:

Senior Electronic Product Engineers

Qualified candidates will have a minimum often years electronic consumer product experience with a BSEE degree or the equivalent thereof.

Electronic Product Engineers

This position requires a minimum of 5 years electronic consumer goods experience and a BSEE or equivalency.

Software Engineers/ Microcomputer Programmers

3 to 5 years experience in microcomputer programming and knowledge of microcomputer assembly languages is required.

Electronic Technicians

1 to 3 years experience as a technician in an electronic consumer goods environment is preferred. An AS degree in electronics would be an asset.

In addition to scenic beauty in the immediate locale we offer proximity to skiing, sailing, surfing and several other quality factors of life.

The successful candidates will enjoy an attractive compensation package which includes a complete fringe benefit program.

Please send resume and salary requirements in confidence to:

MB

MILTON BRADLEY

Director of Corporate Personnel Administration

Milton Bradley Company

P.O. Box 3400 - Springfield, MA. 01101

Circle 233 on inquiry card. An Equal Opportunity Employer M/F

Programming Quickies

Apple Kaleidoscope

Robert J Bishop 213 Jason Way Mountain View CA 94043

Photo 1: Typical output of the Kaleidoscope program.

Listing 1 is a short program that generates a fastmoving colorful display on your Apple II.

The program starts at hexadecimal location 0800 and resides in less than one page of memory. It may be entered in object form by use of the system monitor. To run the program, simply type: 800G. The display can be frozen by hitting any key on the keyboard. Hitting any key again will resume the action.

The program was written using Microproducts Editor/Assembler program for the Apple II I

0866 4CA588

0863 18

0864 8914

6519 0866 R8

A914 088B 6511 0860 20B8F8

0618 6620

0038

0640 0056 6866 0670

0080

0690

0106

0116 8126 8136 0146 0156

KALEIDOSCOPE

JMP STAR

PLOT (26+X/28+V?

DRAW CLC LDfl 14 ADC *X TAV LDfl 14 ADC *V JSR PLOT

PLOT (28-X/20+V)

9810 0811 0813 0815 0816

0819 081fl 081C 081E 081F 0821 6823

0826 0827 0829 0823 082C

982F 0836 0832 0834 0835 0836 0838 083A

083D 083E

0842 0843

8846 0847 0849 0848

084F 0851

0854 0855 0857 0859 085fi 085D

38 A914 E516 fl8

206EF8

18

A914

6511

H8

1=1914

6516

38 8914 E511 fl8

288EF?

18

8914

6516

fl8

38

8914

E511

2008F8

38 8914 E510 88

286EF8

18

8914

6511

88

38

8914

E510

2060F8

38 8914 E511 88

208ET68

0166 0170 0188 0196 0268 0216 0228 0238 0248 8256 0268 0278 0288 6290 0386 0316 9326 0338 8346 8358 0366 6378 6386 8396

0406

8416 0426 0436 0446 0456 0468 0476 0486 6496 0586 0516 0526 0536 8548 0556 0568 0576 0586 0596 6606 6616 0628 6630 8640 6650 8666 8676 8586 8696 0706 8716 0728 0736 0748 8756 0766 0776 8786 0790 8868 8816 0826

SEC

LDA 14 SBC *X TAV

JSR PL T1 PLOT C204V,20+:>;> CLC

LD8 14 ADC *V TAV' LDA 14 ADC *X JSR PLOT

PLOT <26-Y, 28+>0

SEC

LDfi 14

sec *v

TAV

JSR PLT1 PLOT t2f*&28-V) CLC

LDA 14 ADC *X TAV SEC

LDfi 14 SBC *V JSR PLOT

PLOT (28-X,28-Y>

SEC

LDA 14 SBC *X TAV

JSR PLT1

PLOT <20+V,26-X>

CLC LDfl 14 ADC *V TAY SEC LDfl 14 SBC *X JSR PLOT

PLOT (2P-V.28-X)

SEC

LDfl .14

SBC *V TAV

JSR PLT1 RTS

X DL 6810

V DL 0611

2 DL 0812

PLOT DL F888

52 July 1979 © BYTE Publications Inc

085E 085F 0861 0864 0867 0869 086C 08Q0871

0872 0874 0877 0879 087B 087E 088b 0882 088!. 0888 0889 088E 088f 089P 0892 0893 0895 0897 0899 089B 0890 089E

08fle

08fi2

08fl5 08fl8 08HH 08flD 0866 0882

08BR 08B6 88BD 08EF

08C1 08CS 08C5 08C7 08Cfl 08CC 08CE 0800 0802

E8

D88D

EE7038

RD78W8

09E6

8D7968

E615

BD88E0

68

R518

268998

8518

H511

288968

8511

R512

2064F8

288388

68

858F

285E98

1862

E60F

6fi

9082

C68F

R56F

1883

fi.913

60

C914

D882

R908

60

2832F8

R906

805003

8D52C9

8513

8514

8515

8516

8517

flfl

R513

8518

R514

8511

R515

8512

287268

R516

8513

R5il

8514

8516

8830 8840 8856 8866

88713 0886 0896 8966 0916 9926 0936 8940 0956 8966 0976 8986 0936 I860

1810

1820 1630 1846 1656 I960 1876 1686 1896 1166 1116 1126 1136 1146 1150 1166 1170 1186 1196 1206

1218 1226 1236 1240 1256 1268 1276 1286 1290 1300 1310 1320 1336 1346 1356 1360 1370 1386 1396

1400

1418 1426 1436 1446 1456 1466 1476 1480 1496

RND

. DL F88E

08D4

8518

1506

STR

*X

SVrfDL

TABLE

k58D6

Rolf

1516

LDfi

■J -1 It 11 t

DRAW

089S

Run NUHBr. Kb

08D8

8511

SIR

X

8810

08DR

R900

1536

LDR

08

V

8811

lm

08CC

8512

1540

STR

*2

z

8012

BNE GRflS

08DE

287268

1556

JSR

GUTS

PLOT

F890

INC GftHc:+92

08F1

R518

1560

LDfi

*X

FLTi

F80F

LDR GRftP+02

W8E3

8516

1570

STR

*XXX

RND

085E

ORH 0E8

08E5

R51.1

1580

LDR

*v

GRAF:

886 F.

STR GRftB-tBi

08E7

8517

1590

STR

*vw

GUTS

8872:

INC *2Z

08E9

RD86C0

1600

LDR

$C099

STEP

8889

LDfi BASE,X

08EC

18CD

1610

BPL

LOOF'

COHT

8892

RTS

08EF

R980

1626

LDfi

60

TEST

0897

08F8

8DM '3

1630

STR

$C018

CMP

889!:

n tpd-v it t in"*

ilBKuul INI:

08F3

RO80C0

164 0

WRIT

LDfi

$C800

EXIT

88R4

08F6

18FB

1650

BPL

WAIT

WORK

80OF

LDfi *X

08F8

RStfW

1660

LDfi

68

STAR

B8R5

JSR STEP

08FR

8O18C0

1676

STR

1C010

LOOP

88BB

STR *X

88FS

F0BC

1686

PER

LOOP

WRIT

88F3

i r\c\ -art i

LDR *Y

1696

XX

. DL

0013

Kill

961 ■*■>

JSR STEP

1780

w

. DL

6614

w

8014

STR *V

1716

7?

. DL

6015

zz

8815

LDR *?.

1726

XXX

. DL

0016

XXX

8016

jsr SETC

1736

vw

. DL

0017

vw

8617

JSR DRflW

1746

BASE

. CL

E000

BASE

E800

RTS'

1756

SETC

. DL

F'864

SETC

F864

STR *WORK

1766

GR

. DL

F'832

GR

F832

JSR RND

1776

END

. EN

END

88FF

CONT *HORK

CONT

BPL INC ROR BCC DEC TEST LDfi BPL LDR RTS CMP BNE LDR EXIT RTS WORK . DL 608F

CUP

TEST *IJORr( *WQRK CUP 13

14 EXIT

00

MAIN PROGRAM

STAR JSR LDA STR STA STR STR STR STR STR TAX

LOOP LDA STA LDR STA LDR STR JSR LDR STR LDR STR LDR

GR

00

*C850

SC052

*XX

*VY

*ZZ

*XXX

*WV

*XX

*X

*W *y

*2Z

*Z

GUTS

*X

*XX

*v

*VY

*xxx

computer mart of new jersey computer mart of Pennsylvania

the

i ■ microcomputer people

Computers don't moke a computer store, PEOPLE do. Our people have been involved with microcomputers since day one. We offer experience and expertise unparalleled in the microcomputer industry. Whether you are in the market for a complete system, peripherals, custom software, service, or just some friendly advice; there simply is no other place to go.

Computer Mart of Now Jonoy

SOI Rout* 27 Itolln. NJ 0o»3O (201)203-0600

STORE HOURS Tuos. - Sot. 10am - 6pm Tims. & Thurs. 'till 9pm CLOSED MONDAYS

Computtr Mart of Pennsylvania. SMDoKaloPllw

King of Prussia. PA 19406 (213)263-2390

Circle 66 on inquiry card.

July 1 979 © BYTE Publications Inc 53

A Model of the Brain for Robot Control

Part 2: A Neurological Model

James Albus Project Manager

United States Dept of Commerce National Bureau of Standards Washington DC 20234

The ideas presented in this article represent the views of the author and not those of the Department of Commerce or the National Bureau of Standards.

In part 1 I described how sensory interactive, goal directed behavior can be generated and controlled by a multilevel hierarchy of computing modules. At each level of the hierarchy, input commands are decomposed into strings of output subcommands which form the input commands to the next lower level. Feedback from the external environment, or from internal sources, drives the decomposition process and steers the selection of subcommands so as to achieve successful performance of the task of reaching the goal. In this article I will address questions of what kind of neurological structures are believed to exist in the brain and what kind of computations, memory storage methods, and associative recall effects these structures seem to be performing.

Unfortunately, definitive experimental evidence about the structure and function of neurological circuitry in the brain is extremely difficult to obtain. Neurons, the brain's computing elements, are very tiny and delicate. It is hard to measure what is happening in them without damaging them or otherwise interfering with the flow of information related to their operation. Techniques do exist for measuring the activity of individual neurons and sometimes even observing the behavior of several neurons at the same time. There are also techniques which make it possible to monitor synchronized changes in the activity of large numbers of neurons.

However, the brain is such a complicated anatomical structure, with such a jumbled interconnection of different kinds of neurons

being excited and inhibited by such a broad variety of chemical and electrical stimuli, that it is impossible to infer from these measurements any very sophisticated ideas about what mathematical functions are being computed or what procedures are being executed.

Neurons are as varied in size, shape, and type as trees and bushes in a tropical forest, and often are as closely intertwined and interconnected as a bramble patch overgrown with vines. Many of their most important information processing properties are statistical in nature, and these statistics may apply over ensembles of thousands of neurons.

The situation is further complicated by multiple feedback loops, some of which are confined to small, local clusters of neurons, and others which may thread through several entirely different regions of the brain. The result is that no one has yet been able to construct a clear picture of the overall information processing architecture in the brain. At present there exists no generally accepted theory which bridges the gap between hard neurophysiological measurements and psychological concepts such as perception and cognition.

Nevertheless, there is much that is known with certainty about the structure and function of at least some parts of the brain, particularly in the periphery of the sensory and motor systems. A great deal can be inferred from this knowledge. Furthermore, there is one area, the cerebellar cortex, where the geometry is sufficiently regular to enable researchers to positively identify a

54 July 1979 © BYTE Publications Inc

September 1977 March 1979

Byte Cover Prints-Limited Editions.

The September 77 and March '79 covers of BYTE are now each available as a limited edition art print, personally signed and numbered by the artist, Robert Tinney.

These prints are strictly limited to a quantity of 750 for each cover, and no other editions, of any size, will ever be published. Each print is 18" x 22", printed on quality, coated stock, and signed and numbered in pencil at bottom.

The price of each print is $25. This includes 1) a signed and numbered print; 2) a Certificate of Authenticity, also signed personally by the artist and witnessed, attesting to the number of the edition (750), and the destruction of the printing plates; and 3) first class shipment in a heavy-duty mailing tube.

To order your limited edition art print, fill out and mail the order form below.

Send me "Breaking the Sound Barrier"

prints at $25 each, and "Trap Door"

prints at $25 each. I understand this price includes Certificate of Authenticity and first class shipment.

□ I have enclosed check or money order to Robert Tinney Graphics.

□ Charge this to my Master Charge or Visa

Ship my print(s) to: Name

Address. City

State.

.Zip.

Card #_

Expires:.

Send order to:

robert tinney graphics

P.O.Box 45047 - Baton Rouge, LA 70895

Circle 369 on inquiry card.

BYTE July 1979 55

The principal input to the cerebellar cortex arrives via mossy fibers.

number of important neurophysiological relationships.

The cerebellum, which is attached to the midbrain portion of the upper spinal cord and nestles up under the visual cortex, as shown in figure 1, is intimately involved with control of rapid, precise, coordinated movements of limbs, hands, and eyes. Injury to the cerebellum results in motor deficiencies, such as overshoot in reaching for objects, lack of coordination, and the inability to execute delicate tasks or track precisely with the eyes.

During the 1960s, advances in the technology of single cell recordings and electron microscopy made possible an elegant series of experiments by Sir John Eccles and a number of others. These experiments identified the functional interconnections between the principal components in the cerebellar cortex. A brief outline of the structure and function of the cerebellar cortex is shown in figure 2.

The principal input to the cerebellar cortex arrives via mossy fibers (so named because they looked like moss to the early workers who first observed them through a microscope). Mossy fibers carry information from, a number of different sources such as the vestibular system (balance), the reticular formation (alerting, the cerebral cortex (sensory-motor activity), as well as from sensor organs which measure such quantities as position of joints, tension in tendons, velocity of contraction of muscles, pressure on skin, etc. It is possible to categorize

MOTOR CORTEX SENSORY CORTEX

AUDITORY CORTEX

BRAIN STEM

VISUAL CORTEX

CEREBELLUM

SPINAL CORD

Figure 7. Side view of human brain showing the cerebellum attached to the brain stem and partially hidden by the visual cortex.

mossy fibers into at least two classes based on their point of origin: one, those carrying information which may include commands from higher levels in the motor system; and two, those carrying feedback information about the results of motor outputs. Once these two sets of fibers enter the cerebellum, however, they intermingle and become virtually indistinguishable.

The feedback mossy fibers tend to exhibit a systematic regularity in the mapping from point of origin of their information to their termination in the cerebellum. It is thus possible to sketch a map of the body on the surface of the cerebellum corresponding to the origins of feedback mossy fiber information, as shown in figure 3. This map is not sharply defined, however, and has considerable overlap between regions due in part to extensive intermingling and multiple overlapping of terminations of the mossy fibers in the cerebellar granule cell layer. Each mossy fiber branches many times and makes excitatory (+) contact with several hundred granule cells spaced over a region several millimeters in diameter.

Granule cells are the most numerous cells in the brain. It is estimated that there are about 3 X 1010 granule cells in the human cerebellum alone. There are 100 to 1000 times as many granule cells as mossy fibers. Each granule cell is contacted by 5 to 1 2 mossy fibers and gives off a single output axon which rises toward the surface of the cerebellum. When it nears the surface this axon splits into two parts which run about 1.5 mm in opposite directions along the folded ridges of the cerebellum, making contact with a number of different kinds of cells in passage. These axons from the granule cells thus run parallel to each other in a densely packed sheet (hence the name, parallel fibers).

One of the cell types contacted by parallel fibers are Golgi cells (named for their discoverer). These cells have a widely spread dendritic tree and are excited by parallel fibers over a region about 0.6 mm in diameter. Each Golgi cell puts out an axon which branches extensively, making inhibitory (—) contact with up to 100,000 granule cells in its immediate vicinity, including many of the same granule cells which excited it. The dendritic trees and axons of neighboring Golgi cells intermingle so as to blanket the entire granular layer with negative feedback. The general effect is that of an automatic gain control on the level of activity in the parallel fiber sheet.

It is thought that the Golgi cells operate such that only a small and controlled percentage (perhaps as little as 1 percent or

56 July 1979 © BYTE Publications Inc

Figure 2. The principal cells and fiber systems of the cerebellar cortex. Command and feedback information arrives via mossy fibers, each of which make excitatory (+) contact with several hundred granule cells. Golgi cells sample the response of the granule cells via the parallel fibers and suppress by inhibitory (—) contacts all but the most highly excited granule cells. Purkinje cells are the output of the cerebellar cortex. They sum the excitatory (+) effect of parallel fibers through weighted connections. They also receive inhibitory (—) input from parallel fibers via basket cell inverters. The strengths of these weights determine the transfer function of the cerebellar cortex. Climbing fibers are believed to adjust the strength of these weights so as to train the cerebellum.

less) of the granule cells are allowed above threshold at any one time, regardless of the level of activity of the mossy fiber input. Any particular pattern of activity on the mossy fiber input will produce a few granule cells which are maximally excited, and a great many others which are less than maximally stimulated. The Golgi cells suppress the outputs of all but the few maximally stimulated granule cells. The result is that every input pattern (or vector) is transformed by the granule layer into a small, and relatively fixed percentage, or subset, of parallel fibers which are active.

These active parallel fibers not only contact Golgi cells, but make excitatory contact with Purkinje cells (named for their discoverer) and basket and stellate cells (named for their shapes) through weighted connections (synapses). Each Purkinje cell performs a summation over its inputs and produces an output which is the output of the cerebellar cortex. The basket and stellate cells are essentially inverters which provide the Purkinje with negative weights that are summed along with the positive weights from parallel fibers.

Figure 3. A map of the surface of the cerebellar cortex showing the point of origin of mossy fiber feedback and ultimate destination of Purkinje cell output.

July 1979 & BYTE Publications Inc 57

The Golgi cells suppress the outputs of all but the few maximally stimulated granule cells.

A second set of fibers entering the cerebellar cortex are the climbing fibers, so named because they climb all over the Purkinje cells like ivy on a tree. There is typically one climbing fiber for each Purkinje cell. It is believed that these climbing fibers have some role in adjusting the strength of the weighted synaptic connections with the parallel fibers, so as to alter the Purkinje output. Climbingfibers are thus hypothesized to provide the information required for learning.

The availability of such detailed knowledge regarding the structure and function of the various cell and fiber types in the cerebellum has led a number of theoreticians to propose mathematical models to explain the information processing characteristics of the cerebellum. One model was developed independently in Great Britain by David Marr and in the United States by myself. The general outlines of this model are shown in figure 4. My further work has produced the more abstract version illustrated in figure 5, as well as a mathematical formalism called the CMAC (Cerebellar Model Arithmetic Computer).

Figure 4. A theoretical model of the cerebellum.

CMAC is defined by a series of mappings:

S^M^ A-^p

where:

S is an input vector;

M is the set of mossy fibers used to

encode S;

A is the set of granule cells contacted by M;

p is an output value. The overall mapping:

S^p

has all of the properties of a function: p = h (S)

as described in part 1. A set of L CMACs operating on the same input produces a mapping:

S^P

which has the properties of the function: P = H (S).

TABLE OF WEIGHTS

COMMANDS FROM SELECTION

HIGHER LEVELS 0F WEIGHTS

DESIRED OUTPUT

58 July 1979 © BYTE Publications Inc

Meet Super Grip II, the great new test clip from A P Products.

L N

New narrow-nose design makes it easy to attach on high-density boards. And now you can test ICs with only .040" between opposing legs.

New "duck bill" contacts are flat, won't roll off IC leads.

Open-nose construction enables probe at IC leg.

Pin rows are offset for easy attach ment of probes.

Contacts are gold-plated phosphor bronze. "Contact comb" construction separates contacts with precision. No shorts.

Heavy-duty, industrial-grade springs for firm contact pressure—and a good grip when pulling ICs. They'll keep their spring Indefinitely. No intermlttents.

Steel pivot pin. Engineering-grade thermoplastic body molded around contact pins. Made to lastl

ti f f #11 f t f I

Mimmm

' New button-head pins keep probes from sliding off. (Straight pin models for logical connections.)

The new A P Super Grip II is, without question, the best way there ts to troubleshoot DIP ICs.

You get positive contacts. No Intermittents. No shorts. Ever.

So It's endlessly useful to you—and It's

built to stay useful indefinitely. Try one. You'll find 8,14,16,16 LSI, 18,20,

AP PRODUCTS INCORPORATED

Box 110D • 72 Corwin Drive Painesville, Ohio 44077 Tel. 216/354 2101 TWX: B10-425-2250

22. 24,28,36 and 40-pin models at your nearby A P store. (Make sure It's your A P store.)

Need the address? Call (toll-free) 800321-9668. And ask for our complete A P catalog, The Faster and Easier Book.

Faster and Easier is what we're all about.

Circle 10 on inquiry card.

BYTE July 1979 59

MOSSY FIBER INPUT FROM HIGHER CENTERS

SELECTION OF ACTIVE PARALLEL FIBERS

ADJUSTABLE

WEIGHT SYNAPSES

MOSSY FIBER

FEEDBACK FROM LIMBS

SUMMATION OF SYNAPTIC INFLUENCE

CLIMBING FIBER INPUT

Figure 5. A schematic representation of CM AC (Cerebellar Model Arithmetic Computer).

We may describe the information encoded by mossy fibers as a vector S = C + F where:

Pulse frequency and phase modulation are subject to quantization noise and bandwidth limitations.

51> »2,

., Sj) is a vector, or list,

of command variables;

and

F= (sj+i, . . ., sN) is a vector, or list, of feedback variables.

+ is an operator denoting the combination of two vectors defined by two lists of variables into a single vector or list of variables.

That is:

S = C + F

means that S = (s1, s2, . . ., Sj, sj+1, . . ., sN). Some of the elements of the command vector C may define symbolic motor commands such as <REACH>, <PULL BACK>, <PUSH>, etc. The remainder of the elements in C define arguments, or modifiers, such as the velocity of motion desired, the force required, the position of the terminal

point of a motion, etc. Elements of the feedback vector F may represent physical parameters such as the position of a particular joint, the tension in a tendon, the velocity of contraction of a muscle, the pressure on a patch of skin, and so on.

Mapping S -> M

The vector components of S must be transmitted from their various points of origin to their destination in the cerebellar granular layer. Distances may range from a few inches to over a foot. This presents a serious engineering problem because mossy fibers, like all nerve axons, are noisy, unreliable, and imprecise information channels with limited dynamic range. Pulse frequency and pulse phase modulation (which the brain uses for data transmission over long distances) are subject to quantization noise and are bandwidth limited. Nerve axons typically cannot transmit pulse rates above two or three hundred pulses per second. Nevertheless, high resolution high bandwidth data is required for precise control of skilled actions.

The brain solves this problem by encoding

60 July 1 979 © BYTE Publications Inc

each of the high precision variables to be transmitted so that it can be carried on a large number of low precision channels. Many mossy fibers are assigned to each input variable such that any one fiber conveys only a small portion of the information content of a single variable.

The nature of this encoding is that any particular mossy fiber will be maximally active over some limited range of the variable that it encodes, and less than maximally active over the rest of its variable's range. For example, the output of the mossy fiber labeled a in figure 6 is maximally active whenever the elbow joint is between 90° and 120° and is less than maximally active for all other elbow positions. The mossy fiber labeled b in figure 6 is maximally active whenever the elbow angle is greater than 160°. Now if there exists a large number of mossy fibers whose responses have a single maximum but which are maximally active over different intervals, it is then possible to tell the position of the elbow quite precisely by knowing which mossy fibers are maximally active. For example, in figure 7 the fact that mossy fibers a, b, and c are maximally active indicates that the elbow joint is between 118° and 120°.

The CMAC models this encoding scheme in the following way: define rrij to be the set of mossy fibers assigned to convey the value of the variable Sj.; define rrij* to be the mossy fibers in m| which are maximally stimulated by a particular value of Sj. If for every value of Sj over its range there exists a unique set rrij* of maximally active mossy fibers, then there is a mapping S| ** rri|* such that knowing rrij* (ie: which fibers in irij are maximally active) tells us what is the value of Sj. If such a mapping is defined for every component Sj in the vector S then we have a mapping:

!>, -*m-,* s2 -* m2* sN -+mN*

where M is the set of all mossy fibers which encode the variables in the vector S.

In CMAC each of the S; rrij* mappings may be defined by a set of K quantizing functions 'C-j, ^C2,..., 'Ck each of which is offset by a value of 1 /K times the quantizing interval. An example of this is given in figure 8 where K = 4 and N = 2. Component s-[ is represented along the horizontal axis, and the range of s1 is covered by four quantizing functions:

1q I A, B, C, D, E (

vc

1 3 1r. =

IF, G, HJ.Kf |M,N, P, Q, Rj C4 = jS,T,V,W,X| .

Each quantizing function is offset from the previous one by one resolution element. For every possible value of Sj there exists a unique set nr^* consisting of the set of values produced by the K quantizing functions. For example (in figure 8), the value s1 = 7 maps into the set m1 * = jB, H, P,V{.

A similar mapping is also performed on s2 by the set of quantizing functions:

2q =|a, b, c, d,e| 2C2 = |f, g, h, j, k | 2C3 =|m, n, p, q, r| 2C4 = |s, t, v, w, x } .

For example, the value s2 = 10 maps into the set m2* = jc, j, q, v}. Now, if the s-, component in figure 8 corresponds to the position of the elbow joint, the mossy fiber labeled B will be maximally active whenever Text continued on page 64

FIRING RATE

90" 120° ELBOW POSITION

160°

Figure 6. Typical responses of mossy fibers to the sensory variable they encode.

FIRING

RATE

1

—I I U I L

0 o ooo o to

01 O r« ro <*

ELBOW POSITION

Figure 7: Three different mossy fibers encoding a single sensory variable (elbow position). All three fibers maximally active simultaneously indicates that the elbow lies between 118° and 120°.

July 1979 © BYTE Publications Inc 61

NEECO

PET 2001 — 32K

PROUDLY ANNOUNCES THE NEWEST

PET MICROCOMPUTERS BY COMMODORE!

The PET™ is now a truly sophisticated

Business System with the announcement of these Peripherals.

engineering. tooSmakirig purine, siducalion. energy con serwaiion. eic Tne PET" Business System as a management tool delivers information to alt levels ol Business, previous^ altainatjle only w.in uquipmenl many times mom expensive Ttie PET" Busmuss System is one ol tne most cost effidert business tools

today It offers a -.vifif.- r.-jnrji; dI d(ip!ications from logging management strategy in mapr cntpoiations to orijarv.'in;] accounts and mveniory coniiul ol small businesses Heie areius! a lew o( Ihecost-saving uses mine corporahon professional oilice or small Business slock control purchasing, lorecasling irianiitacluringcusling.cuSlomer records mailing lisls. eic The PET " Floppy Disk and Printer, a oompaliEie business syslem a! a i price — Take a closer look al tnese Peripherals

PET

LARGE TYPEWRITER KEYBOARDS NOW AVAILABLE!

PRODUCT DESCRIPTION PRICE AVAILABILITY

PET 2001—4K 4K RAM $ 595 IMMEDIATE

PET 2001—8K 8K RAM $ 795 IMMEDIATE

PET 2001—16KN (Large Keys)16K RAM* $ 995 IMMEDIATE

PET 2001—32KN (Large Keys)32K RAM $1295 IMMEDIATE

PET 2023 PRINTER ROLL FEED $ 850 IMMEDIATE

PET 2022 PRINTER TRACTOR/ROLL $ 995 IMMEDIATE

PET 2040A SINGLE FLOPPY $ 895 JUNE/JULY

PET 2040 DUAL FLOPPY* $1295 IMMEDIATE

PETC2N 2nd Cassette $100 IMMEDIATE

'The 16K/32K (large keyboard) units do not include a cassette drive. Order C2N Cassette. 2040 Floppy Drive requires a 16K or 32K unit. 8K RAM Retrofit available July.

ALL UNITS AREFULLYTESTED BY NEECO BEFORE SHIPMENT. ALL PET'S ARE WARRANTEED (BY NEECO) FOR 1 FULL YEAR! NEECO IS A FULL CUSTOMERORIENTED BUSINESS. PLEASE CALL FOR ADDITIONAL INFORMATION. ALL UNITS ARE IN STOCK & READY TO SHIP. FULL SOFTWARE AVAILABLE!

THE NEW commodore PET PERIPHERALS!

PET

Pill

i

2040

2022

Dual Drive Floppy Disk Tractor Feed Printer

The Dual Drive Floppy is the latest in Disk technology with extremely large storage capability and excellent file management. As the Commodore disk is an "Intelligent" peripheral, it uses none of the RAM (user) memory of the PET,M. The Floppy Disk operating system used with the PET'" computer enables a program to read or write data in the background while simultaneously transferring data over Ihe IEEE to the PET'". The Floppy Disk is a reliable low cost unit, and is convenient for high speed data transfer. Due to the latest technological advances incorporated in this disk, a total of 360K bytes are available in the two standard 5VS" disks, without the problems of double tracking or double density. This is achieved by the use of two microprocessors and fifteen memory I.C.s built into the disk unit. Only two connections are necessary — an A/C cord and PET'" interface cord.

CALL FOR COMPLETE SPECIFICATIONS! IMMEDIATE DELIVERY!

NEW ENGLAND AREA SUB-DEALERSHIP INQUIRIES INVITED!

The Traclor Feed Printer is a high specification printer that can print onto paper (multiple copies) all the PET™ characters — letters (upper and lower case), numbers and graphics available in the PET™ The tractor feed capability has the advantage of accepting mailing labels, using standard preprinted forms (customized), cheque printing for salaries, payables, etc. Again, the only connections required are an A/C cord and PET™ connecting cord. The PET™ is programmable, allowing the printer to format print for; width, decimal position, leading and trailing zero's, left margin justified, lines per page, etc. It accepts BVi" paper giving up to four copies. Bidirectional printing enables increased speed of printing.

CENTRONICS 730 PRINTER

• COMBO FRICTION/TRACTOR

• 50 CPS, UPPER/LOWER CASE

• 7x7 DOT MATRIX IMPACT

• 80 CHARACTER BUFFER

• 80 OR 20 COLUMNS

$995

ONLY

PET INTERFACE $150

COMBO PRICE:

$1095

BUSINESS SOFTWARE

BUSINESS PACKAGES AVAILABLE ON THE 2040 DUAL FLOPPY:

BUSINESS PAYROLL COMPLETE MAILING LIST — STATISTICAL PACKAGE GENERAL LEDGER — (UP TO 1,024 A/R's, 512 A/P's, 512 GEN LED ACCTS, POSTING, DISBURSEMENT, AGEING, B/S, l?S, AND MANY OTHER FUNCTIONS!) COMPLETE WORD PROCESSING PACKAGES.

WECANNOTLISTALLOF OUR SOFTWARE AND HARDWARE PRODUCTS CALLOR WRITE FOR OUR*FREE*SOFTWARE/HARDWARE DIRECTORY

ALL NEECO PETS CARRY A FULL ONE-YEAR NEECO WARRANTEE.

NEECO

f NEW ENGLAND ELECTRONICS CO., INC. tCH J\ 44Q."1 7Cf)

679 HIGHLAND AVE.. NEEDHAM. MASS. 02194 * U / 1 '

679 HIGHLAND AVE., NEEDHAM, MASS. 02194 MON. - FRI. 9:30 - 5:30, EST.

MASTERCHARGE OR VISA ACCEPTED TELEX NUMBER 951021, NEECO

62 BYTE July 1979

Circle 281 on inquiry card.

IN I MAX

C° "FULLY INTEGRATED COMPUTER SYSTEM"

MINIMAX SERIES COMPUTER

THE MINIMAX SERIES WAS DESIGNED TO OFFER THE MARKET MINICOMPUTER CAPABILITIES AT MICROCOMPUTER PRICES. COMPARE THE CAPABILITIES & PRICE!

CONTACT NEECO FOR FULL SPECS - FREE MINIMAX MANUAL.

MEET THE

MINIMAX COMPUTER THE MINIMAX SERIES computer was designed by industry professionals.

COMPARE THE PRICE AND FEATURES TO ANY OTHER COMPUTER IN ITS CLASS!

MINIMAX I - .8 MEGABYTE ON LINE MINIFLOPPY STORAGE MINIMAX II - 2.4 MEGABYTE ON LINE 8" FLOPPY STORAGE

MINIMAX I MINIMAX II

$4495 $5995

• THE MINIMAX SERIES COMPUTER IS AN INTEGRATED, COMPACT UNIT CONTAINING THE CPU, DUAL DENSITY DISK STORAGE, 12 INCH CRT, AND FULL STYLE KEYBOARD. WITH SEPARATE NUMERIC ENTRY PAD. ALL KEYS (INCLUDING CURSOR) WITH FULL REPEAT • HYBRID 2 MEGAHERTZ 6502 CPU • 10BK SYSTEM RAM (48K USER) • FASTEST FLOPPY DISK ACCESS (24K LOADS IN 4.2 SECONDS) • 16K ROM CONTAINS COMPUTHINK BASIC (AN EXTENDED MICROSOFT BASIC) WITH EXTENDED PRECISION, DOS INCLUDES COMPLETE FILE I/O WITH FULL RANDOM ACCESS, COMPLETE MONITOR WITH DEBUG & TRACE, AND TINY 6502 ASSEMBLER • COMPLETE HIGH RESOLUTION GRAPHICS WITH INDIVIDUAL DOT (240 x 512) POINT SCREEN ADDRESSABILITY • FULL SCREEN TEXT EDITING WITH OVERWRITE, INSERTION OR DELETION • SPLIT SCREEN/WINDOW MODES • INDIVIDUAL FIELD EDITING WITH FIELD PROTECT AND AUTO SKIP TO NEXT FIELD • DISK STORAGE SYSTEM TRANSFERS 6K PER SECOND WITH AUTO VERIFY AND PARITY CHECK • 12 INCH CRT-64 CHARACTERS BY 30 LINES. UP TO THREE PROGRAMMABLE CHARACTER FONTS FOR LANGUAGES OR SPECIAL CHARACTERS • • • SWITCHABLE 110 OR 220V OPERATION • • • • HYBRID CPU IS MICROPROGRAMMABLE WITH 64 USER DEFINABLE OPCODES. CHOICE OF BOOK OR 2.4 MEGABYTE DISK STORAGE • FULL SERIAL RS-232C PORT WITH PROGRAMMABLE BAUD RATES AND MODEM CONTROL SIGNAL • DEDICATED DISK PORT • PRINTER PORT SUPPORTS PARALLEL COMMERCIAL PRINTERS • 24 PIN I/O USER PORT • PAGEMATE DATABASE AVAILABLE • PLM COMPILER AVAILABLE • BUSINESS PACKAGES AVAILABLE • COMPLETE DIAGNOSTICS & SCHEMATICS INCLUDED • COMPLETE USER MANUAL INCLUDED

SPECIAL DEALER PRICING AVAILABLE ON DEMONSTRATION MINIMAX AND SOFTWARE PACKAGES TO QUALIFIED SELECTED DEALERS. CONTACT NEECO FOR INFO.

PRINTER NOT INCLUDED IN PRICE

THE MINIMAX WAS DESIGNED AND IS MANUFACTURED BY COMPUTHINK COMPUTER CORP. DISTRIBUTED IN EUROPE AND THE EASTERN U.S. BY NEECO.

IN ADDITION TO HARDWARE CAPABILITIES THAT ARE UNMATCHED IN THE INDUSTRY, THE MINIMAX COMPUTER SUPPORTS A COMPLETE DATA BASE SYSTEM (PAGEMATE), CONTAINING FULL STATISTICAL, SORTING, AND EDIT FUNCTIONS. A PLM COMPILER IS AVAILABLE, FULL BUSINESS SUPPORT SOFTWARE IS AVAILABLE AND MORE!—FULL DEALER SUPPORT IS AN IMPORTANT PART OF OUR MARKETING. CONTACT NEECO FOR FURTHER INFORMATION.

THE MINIMAX IS NOW AVAILABLE FOR QUANTITY DELIVERY. DOMESTIC DEALERSHIPS AVAILABLE. EUROPEAN DISTRIBUTORSHIPS/DEALERSHIPS AVAILABLE TO QUALIFYING COMPANIES WITH SUPPORT CAPABILITIES. SOFTWARE HOUSES AND OEM INQUIRIES INVITED, CONTACT NEECO.

NEECO

NEW ENGLAND ELECTRONICS CO., INC. 679 HIGHLAND AVE., NEEDHAM, MA 02194 MON-FRI, 9:00-5:30, E.S.T.

(617)449-1760

TELEX 951021, ANSWERBACK "NEECO'

Circle 282 on inquiry card.

BYTE July 1 979 63

Text continued from page 61: the elbow is between 4 and 7, and less than maximally active whenever the elbow position is outside that region. Similarly, the mossy fiber labeled H is maximally active when the elbow is between 5 and 8, the fiber P maximally active between 6 and 9, and V between 7 and 10, etc. The combination of mossy fibers in the set m1 * = j B, H, P, V[ thus indicates that the variable s<j = 7. If s, changes one position from (from 7 to 8, for example), the mossy fiber labeled B will drop out of the maximally active set m, * to be replaced by another, labeled C.

Encoding Advantages

This encoding scheme has a number of advantages. The most obvious is that a single precise variable can be transmitted

reliably over a multitude of imprecise information channels. The resolution (or information content) of the transmitted variable depends on the number of channels. The more mossy fibers dedicated to a particular variable, the greater the precision with which it is represented.

A second equally important result is that small changes in the value of the input variable Sj have no effect on most of the elements in iTij*. This leads to a property known as generalization, which is crucial for learning and recall in a world where no two situations are ever exactly the same. In CMAC the extent of the neighborhood of generalization along each variable axis depends on the resolution of the CMAC quantizing functions. In the brain this corresponds to the width of the maximally active region of the mossy fibers.

Figure 8. A simple two variable CMAC with four quantizing functions on each variable. A detailed explanation is in the text.

WEIGHTS

SELECTION OF WEIGHTS

•a'

INPUT SPACE

>

r

*M

S

i

*

»»

•

~" 7

>\

■

4

■

3

.a

i

0

1

0

\ 2 A

3 4

1

s * ■

7

a

C , ft |l

» 1

G

1

M

1

J

1

K

M

1

N

1

f

1

o

1

R

5 1

* 1

v

* 1

X

•

-1.25

1

1

1.25

225

d

liS

1

1

•1.25

125

c

i ■

l.l

1 0

ZJ

1

*

1

b

S

.75

1.25

125

1 25

a

1.25

-.25

1.25

lis

1.25

A

B

C

D

t

>

125

1

1

1

125

w

1

1.1

10

1

1

Y

2.1

1

1

225

1

l

1

2.5

1 25

1

0

•

1.25

1

1.25

1

1.25

S

T

V

w

X

r

125

1

1

II

1.25

9

1

2.1

1.1

10

1

P

1.1

.25

J

1.25

1

II

1

1.5

.25

1 25

0

125

•

1 25

1

1.25

M

N

r

o

t

k

1.25

6

1

t

1.25

i

0

1.1

2.1

1.0

0

h

10

1

?5

1 25

0

a

125

1.5

25

125

0

(

0

e

1.25

0

1.25

1

G

M

J

K

OUTPUT

WEIGHTS^r^

DESIRED OUTPUT

64 July 1979 © BYTE Publications Inc

NOW YOU CAN AFFORD

THE WORLD FAMOUS Diablo Printer Terminal

IPSI PROUDLY ANNOUNCES A PRICE BREAKTHROUGH ON DAISY WHEEL PRINTER TERMINALS

Featuring: RS 232 compatibility at 110, 150, 300, and 1200 baud: Print speed of 45 char/sec: Graphics capability: Over 30 print wheels from 10 to 15 char/inch: 5 ribbons in color, cloth, film or two color: Form length adjustable: Spacing adjustable from 120 pitch to .1 pitch: Line spacing adjustable from 48 lines/in. to .4 line/in.: Identical in every respect to it's high priced sister the Diablo HyTerm II* model 1620.

Price: $2,595.00 each in single units, quantity discounts available.

Service: Major cities in the U.S. and Canada.

You have probably waited a long time to purchase your computer printer at a reasonable price. Wait no longer! The Diablo 1620 lists for $3,240.00 we sell the IPS11622 for $2,595.00; save well over $600.00. For immediate action phone in your order collect and we will ship your terminal the same day.

We also Stock Diablo 1345A (Hytype II*) mechanisms for immediate shipment at the low price of $1,150.00. Order one now and build your own terminal using your own CPU, or doit-yourself by buying our 1622 kit and assemble your own terminal within 10 hours for $2,295.00

If you've always wanted to turn your computer onto word processing, this is the only way to go. Ask for our free word processing software.

INTERNATIONAL PERIPHERAL SYSTEMS, INC.

1849 N. HELM FRESNO, CALIFORNIA 93727 CALL (209) 252-3635

'Hyterm and HyType are registered trademarks of Xerox Corp.

Circle 174 on inquiry card.

BYTE July 1979

65

M->- A Mapping

The number of mossy fibers dedicated to a variable determines precision of its representation.

Just as we can identify (or name) mossy fibers by the input variables they encode, so we can identify granule cells by the mossy fibers which provide them with input. Each granule cell receives input from several different mossy fibers, and no two granule cells receive input from the same combination of mossy fibers. This means that we can compute a unique name (or address) for each granule cell by simply listing the mossy fibers which contact it. For example, a granule cell contacted by two mossy fibers B and c can be named (or addressed) Be.

In the CMAC example in figure 8, 25 granule cells are identified by their contacts with mossy fibers from the quantizing functions 1 C-| and 2C1. 25 other granule cells are identified by 1C2 and 2C2, 25 by 1C3 and 2C3, and 25 more by 1C4 and 2C4. There are, of course, many other possible combinations of mossy fiber names which might be used to identify a much larger number of granule cells. For this simple example, however, we will limit our selection to the permutation of corresponding quantizing functions along each of the coordinate axes. This provides a large and representative sample which uniformly spans the input space. Furthermore, this particular naming algorithm is simple to implement either in software or hardware.

We can define A to be the set of all granule cells identified by their mossy

2

_l I I I I I I I I S|

0 I 2 3 ! 4 5 6 7 \ 8 9 10 II 12 13 14 15 16 B

Figure 9. The weight Be will be selected as long as the CM A C input vector lies in the region bounded by4<s1<7, 8<s2<11

fiber inputs. Of course, all of the granule cells in A are not active at the same time. As was previously noted, most granule cells are inhibited from firing by Golgi cell gain control feedback. Only the small percentage of granule cells whose input mossy fibers are all maximally active can rise above threshold. We will define the set of active granule cells as A*.

Since we already know which mossy fibers are maximally active (ie: those mossy fibers in the sets rrij*), we can compute names of granule cells in A*. For example, in figures 8 and 10, if s1 =7 and s2 = 10, then m1 * = |B, H, P, V} and m2* = jc, j, q, v}. The active granule cells in A* can now be computed directly as A* = | Be, Hj, Pq, Vv|. All other granule cell names in the larger set A involve at least one mossy fiber which is not maximally active (ie: not in rt^* or m2*).

Note that, as illustrated in figure 9, the granule cell Be will be active as long as the input vector remains in the region of input space 4 < s-| < 7 and 8 < s2 < 11. Thus, the generalizing property introduced by the S -+ M mapping carries through to the naming of active granule cells. A particular granule cell is active whenever the input vector S lies within some extended region, or neighborhood, of input space. Other granule cells are active over other neighborhoods. These neighborhoods overlap, but each is offset from the others so that for any particular input S, the neighborhoods in A* all overlap at only one point, namely the point defined by the input vector. This is illustrated in figure 10. If the input vector moves one resolution element in any direction, for example, from (7, 10) to (8, 10), one active granule cell (Be) drops out of A* to be replaced by another (Cc).

A -* p Mapping

Granule cells give rise to parallel fibers which act through weighted connections on the Purkinje output cell, varying its firing rate. Each cell in A is associated with a weight which may be positive or negative. Only the cells in A* have any effect on the Purkinje output cell. Thus, the Purkinje output sums only the weights selected (or addressed) by A*. This sum is the CMAC output scalar variable p. For example, in figure 8, S = (7, 10) maps into A* = | Be, Hj, Pq, Vv( which selects the weights:

WBc = 1.0 WHj = 2.0

WPq = 1.0

WVv = 0.0.

66 July 1 979 © BYTE Publications Inc

The TARBELL Connection

In an effort to offer products that meet the continually changing demands of the microcomputer industry, TARBELL ELECTRONICS is pleased to offer immediate delivery of these quality components and operating software. All TARBELL products are available from computer store dealers everywhere.

Tarbell Floppy Disk Interface Tarbell Disk BASIC

• Plugs directly into your IMSAI or ALTAIR and handles up to 4 standard single drives in daisychain.

• Operates at standard 250K per second on normal disk format capacity of 256K bytes.

• Works with modified CP/M Operating System and BASIC-E Compiler.

• Hardware includes 4 extra IC slots, built-in phantom bootstrap and onboard crystal clock. Uses WD 1771 LSI chip.

• Full 6-month warranty and extensive documentation.

• Kit $190 Assembled $265.

Specify drive for assembled units. Complete disk subsystems with operating software available. Please inquire for details.

• Runs on 8080, 8085 or Z80

• Searches a file quickly for a string.

• Up to 64 files open at once.

• Random Access.

• Assignment of I/O.

• Alphanumeric line labels allowed.

• Read and Write string or numeric data.

• Unlimited length of variable names and strings.

• Procedures with independent variables.

• Number system 10 digits BCD integer or floating point.

• Chain to another program.

• Cause programs to be appended onto programs already in memory.

• Cause interpreter to enter edit mode using 15 single character edit commands.

Occupies 24K of RAM. Tarbell BASIC

on CP/M Disk .$48.

Source on paper or CP/M Disk . . .$25. CP/M and BASIC-E on disk with manuals $100.

Tarbell 32K RAM Memory

32K Static Memory S-100 Bus Connector

9 regulators provide excellent heat distribution.

Extended addressing (bank switching.)

Phantom line.

Low power requirement.

20-Page operating manual.

Full 1-year warranty.

Assembled and tested full price only $625

16K version also available, assembled and tested only $390.

Tarbell Cassette Interface

• Plugs directly into your IMSAI or ALTAIR.

• Fastest transfer rate: 187 (standard) to 540 bytes/second.

• Extremely reliable—Phase encoded (self-clocking).

• 4 extra status lines, and 4 extra control lines.

• 37-page manual included.

• Device code selectable by DIP-switch.

• Capable of generating Kansas City tapes.

• No modification required on audio cassette recorder.

• Complete kit $120 Assembled $175.

• Manual may be purchased separately $8.

• Full 6-month warranty on kit and assembled units.

Circle 360 on inquiry card.

Tarbell Cassette BASIC

Includes most features of ALTAIR Extended BASIC, plus these added features:

• Assignment of I/O.

• Alphanumeric line labels.

• Unlimited length of variable names and strings.

• Number system 10 digits BCD integer or floating point.

• Procedures with independent variables.

• Read and Write string data.

• Multi-file capability.

Full price with complete documentation $48.

Prepaid, COD, or cash only. California residents please add 6% sales tax.

ALTAIR is a trademark /tradename of Pertec Computer Corporation CP/M is a trademark/tradename of Digital Research

950 DOVLEN PLACE • SUITE B CARSON, CALIFORNIA 90746

(213)538-4251 • (21 3) 538-2254

BYTE July 1979 67

These weights are summed to produce the output:

p = 4.0.

Thus the input S = (7, 10) produces the output h(S) =4.

In figure 8 four weights are selected for every S vector in input space. Their sum is the value of the output p. As the input vector moves from any point in input space to an adjacent point one weight drops out to be replaced by another. The difference in value of the new weight minus the old is the difference in value of the output at the two adjacent points. Thus, the difference in adjacent weights is the partial derivative (or partial difference) of the function at that point. As the input vector S moves over the input space, a value p is output at each point. We can therefore say that the CMAC computes the function:

P = h(S).

The particular function h computed depends on the particular set of values stored in the table of weights. For example, the set of weights shown in figure 8 computes the function shown in figure 11.

In the cerebellum there are many Purkinje cells which receive input from essen

tially the same mossy fibers. Thus, there many CMACs all computing on the si

q

Pq

Hj

Be

1 1 1 1 1

V

j

10

c

Vv

i i i

i

!

■ 1

i i i i

> I

| I i i

i i i i

7; : i i 1

1

i

H

!

i

P

1

i

V

l

Figure 10. The input vector (su s2) = (7, 10) selects weights Be, Hj, Pq, and Vv. These all overlap only at the point (7, 10). If the input vector (su s2) moves to (8, 10) the weight Be will drop out to be replaced by Cc.

input vector S. We can therefore say that a set of L CMACs computing on the same input vector produces a vector mapping:

P= H(S). Data Storage in CMAC

One of the most fascinating, intensively studied, and least understood features of the brain is memory, and how data is stored in memory. In the cerebellum each Purkinje cell has a unique fiber, a climbing fiber, which is believed to be related to learning. Fibers from an area called the locus coeruleous have recently been discovered which appear to be related to learning. In addition, a number of hormones have been shown to have profound effects on learning and retention of learned experiences.

While the exact mechanism (or mechanisms) for memory storage are as yet unknown, the cerebellar model upon which CMAC is based hypothesizes that climbing fibers carry error correction information which "punishes" synapses that participate in erroneous firing of the Purkinje cell. The amount of error correction that occurs at any one experience may depend on factors such as the state of arousal or emotional importance attached by the brain's evaluation centers to the data being stored during the learning process.

Cerebellar learning is modeled in CMAC by the following procedure:

• Assume that H is the function we want CMAC to compute. Then P = H(S) is the desired value of the output vector for each point in the input space.

• Select a point S in input space where P is to be stored. Compute the current value of the function at that point P = H(S).

• For every element in:

P = (Pi , P2> • • •> Pl) and in:

P= (j5n, p2,. . ., pL)

if:

Ipi-Pjl<£j

where £ is an acceptable error, then do nothing; the desired value is already stored. (Ipij - P|| is the absolute value of p, — pr.)

However, if |p, — p,| > gj then add A-t

68 July 1979 © BYTE Publications Inc

-1

-2

-1

-2

-1

"2

.-5-5

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 *1

Figure 11. The particular set of weights shown in Figure 8 will compute the function shown here.

to every weight which was summed to produce p, where:

(D

|A*| is the number of weights in the set A* which contributed to p, and g is a gain factor which controls the amount of error correction produced by one learning experience. If g = 1, then CMAC produces oneshot learning which fully corrects the observed error in one data storage operation. If

0 < g < 1, then each learning experience moves the output p: only in the direction of the desired value p,. More than one memory storage operation is then required to achieve correct performance.

An example of how an arbitrary function such as:

p = (sin x)(sin y)

where:

and:

x = 2n s-,/360

y = 2rr St/360

July 1979 © BYTE Publications Inc 69

72a

180

360

Figure 12. The effect of training CM AC on the function p = sin (2ir s, 1360) sin (2v s2 / 360). (a) One training at (s7, s2) = (90, 90). (b) A second training at (sh s2) = (270, 90). (c) Training at 16 points along a trajectory defined by s7 =90. (d) Training at 175 selected points scattered over the input space.

can be stored in CMAC is shown in figure 12. In this example the input is defined with unity resolution over the space 0 < s1 < 360 and 0 < s2 < 180, and the number of weights selected by each input is |A*| = 32.

Initially all the weights were equal to 0. The point S1 = (90, 90) was chosen for the first data entry. The value of the desired function p = h (90, 90) is 1. By formula ( I) (where g = 1) each of the weights selected by S = (90, 90) is set to 1/32, causing the proper value to be stored at S = (90,90) as shown in figure 12a. After two data storage operations, one at (90, 90), the other at (270, 90), the contents of the CMAC memory are as shown in figure 12b. After 16 storage operations along the s2 = 90 axis the results are as shown in figure 12c. After 175 storage operations scattered over the entire input

space, the contents of the CMAC memory are as shown in figure 12d.

CMAC Memory Requirements

The CMAC S -> A* mapping corresponds to an address decoder wherein S is the input address and the active granule cells in A* are select lines. These access weights whose sum can be interpreted as the contents of the address S. In a conventional memory, each possible input address selects a unique single location wherein is stored the contents of that address, as illustrated in figure 13a. In CMAC each possible input address selects a unique set of memory locations, the sum of whose contents is the contents of the input address, as shown in figure 13b.

This suggests that the Cerebellar Model

360

70 July 1979 © BYTE Publications Inc

12c

180

360

Arithmetic Computer might require considerably less memory than a conventional lookup table in storing certain functions. The reason is that the number of ways that x elements can be selected from a table of y entries always exceeds y and, in some cases, it does so by orders of magnitude.

A conventional memory requires RN memory locations to store a function of N variables, where R is the number of resolution elements on each variable. CMAC requires at most K X QN memory locations, when K is the number of quantizing functions and Q the number of resolution elements on each quantizing function.

A modest example of CMACs reduced memory requirements can be seen in figure 8 where N = 2 and R = 17. Here then are 172, or 289, possible input vectors.

The CMAC shown has only 100 weights since K = 4 and Q = 5. Thus K X QN = 100. This savings in memory size becomes increasingly significant for large N. It allows CMAC to store a large class of low resolution functions of up to 12 variables over the entire input space with computer memory of practical size (less than 100 K bytes), whereas conventional table lookup becomes impractical for similar functions of more than four variables.

An even greater savings in memory requirements can be achieved by the use of hash coding techniques in the selection of addresses for the elements in A*. Hash coding allows CMAC to store functions of many variables, so long as the information content of the portion of the function stored does not exceed the number of bits in the CMAC

Hash coding, a memory addressing technique, compresses sparse address space.

July 1 979 © BYTE Publications Inc

71

memory. For example in figure 12, the 360 by 180 (over 64,000) element input space is represented in a 1024 location CM AC memory by hash coding.

Hash coding is a commonly used memory addressing technique for compressing a large

but sparsely populated address space into a smaller, more densely populated one. (See "Making Hash with Tables" by Terry Dolhoff in Programming Techniques: Program Design, BYTE Books, 1979.) Many addresses in the larger space are mapped

13a

CONVENTIONAL TABLE LOOK-UP

h(S)

SET OF R INPUTS (ADDRESSES)

Figure 13: (a) In a conventional memory, storage of a function of N variables with resolution R on each input variable requires RN memory locations. Figure 13b (page 74) illustrates the CM AC distributed memory look-up technique.

RN MEMORY LOCATIONS

72 July 1979 © BYTE Publications Inc

THE SEARCH FOR A SMALL COMPUTER SYSTEM STARTS HERE

It's the 3rd Annual National Small Computer Show

New York Coliseum, August 23-26,1979

presenting the state-of-the-art showcase for micro-and mini-systems technology and software. Here you can survey virtually all makes and models of small computers, whether your interest runs to a no-nonsense micro priced in the hundreds of dollars or a powerful mini costing $20,000 or more. They're all here.

The world of small computers is quite large, extending to business and professional offices, scientific research, medicine and bionics, education, the home and hobbyist, therapeutic applications for the handicapped, design and engineering. A full selection of lectures is presented to provide a grasp of small systems techno

logy, so that you know what to consider when buying a computer or word processor. It's the first step in discovering what a system can really do for you!

NSCS lectures include sessions on system selection, computer languages, word processing functions, artificial intelligence, software applications, and a dozen more topics for people of all interests.

Plan now to attend. There will be about 30,000 square feet of exhibits, and more than 40 hours of lectures from which to choose. Registration fee is only $5.00 per day, including lectures.

LECTURES: (Program subject to change)

Thursday. August 23

l p.m. The Peril of Becoming a MachineOriented Business User

1 p.m. Introduction to Small Business

Systems

2 p.m. Selecting a Word Processing

System

2 p.m. Distributed Data Processing

3 p.m. Accounts Receivable/General

Ledger/Accounts Payable

3 p.m. Is There a Computer in Your

Educational Future

4 p.m. Mailing Lists: Load. Time and

Cost

4 p.m. Word Processing Systems in

the Law Office

5 p.m. Basic BASIC

5 p.m. Achieving Quality Control in Word Processing

Friday. August 24

1 p.m. The Peril of Becoming a MachineOriented Business User

1 p.m. Introduction to Small Business

Users

2 p.m. Selecting a Word Processing

System

2 p.m. Distributed Data Processing

3 p.m. Unassigned at press time

3 p.m. How to Write a User-Oriented

Program

4 p.m. Efficient Expansion of a Small

System

4 p.m. Investment Analysis

5 p.m. Accounts Receivable/General

Ledger/Accounts Payable 5 p.m. Exploiting the Apple/Dow Jones Computer Link

Saturday, August 25

11 a.m. Introduction to Personal Computing

11 a.m. Unassigned at press time

12 p.m. Computer Music Update 12 p.m. Unassigned at press time

1 p.m. Introduction to PASCAL

1 p.m. Computer Art Forms

2 p.m. Household Applications

2 p.m. Artificial Intelligence

3 p.m. How to Write a User-Oriented

Program

3 p.m. Investment Analysis

4 p.m. Basic BASIC

4 p.m. Unassigned at press time

Sunday, August 26 11 a.m. Introduction to Personal Computing

11 a.m. Computer Music Update

12 p.m. Household Applications 12 p.m. Unassigned at press time

1 p.m. Etticient Expansion of a Small System

1 p.m. Computer Art Forms

2 p.m. Unassigned at press time

2 p.m. Unassigned at press time

3 p.m. Microcomputers for the

Handicapped: Update

3 p.m. Exploiting the Apple/Dow Jones

Computer Link

4 p.m. Mailing Lists: Load, Time and

Cost

4 p.m. Introduction to PASCAL

r REGISTRATION FOR AMERICA'S BIGGEST SMALL COMPUTER SHOW 1

Please register me for the 3rd Annual National Small Computer Show, Aug. 23-26, 1979.

NAME

COMPANY (If Any) ADDRESS

BUSINESS TITLE (If Any) TELEPHONE

1\P

(Check main Interest)

□ Banking/Insurance

□ Business office

□ Communications

□ Educational

□ Government

□ Hobby

□ Industrial/Manufacturing Q Military

□ Professional

□ Stock Brokerage

□ Transportation

□ Utility

□ Wholesale/Retail

□ Other

(Check main job function)

□ Accountant

□ Administrator (Business)

□ Architect/Builder

□ Art Director

□ Banker

□ Computer technician

□ Consultant

□ Controller

□ Engineer

□ Industrial Designer

□ Lawyer/law office mgr.

□ Marketing manager

□ Medical doctor

□ Medical technician

□ Office manager

□ Programmer

□ Public Servant

□ Research/Development

□ Teacher

□ DP manager

□ WP manager

□ WP operator

□ Stock Broker

□ Systems Analyst

□ Student

□ Other

□ ONE DAY $5 Q TWO DAYS $10

□ THREE DAYS $15 □ FOUR DAYS $20

Mail with payment of $5 for each day you wish to attend. Use one form per person. Registration badge will be sent by mail in early August. Check or money order only. Mall prior to Aug. 10 to: National Small Computer Show, 110 Charlotte Place, Englewood Cliffs. N.J. 07632.

Circle 258 on inquiry card.

BYTE July 1979

73

13b

CMAC TABLE LOOK-UP (DISTRIBUTED MEMORY)

h(S)

SET OF R INPUTS (ADDRESSES)

M MEMORY LOCATIONS

onto each of the addresses in the smaller space. One method is simply to overlay pages. Hashing works when the probability of a collision (ie: more than one filled location in the large memory mapping into the same address in the small memory) is low.

CMAC can tolerate a fairly high incidence of collisions because of its distributed memory (ie: its output is the sum of many locations). Thus a collision (which in a conventional memory would make the output completely incorrect) in CMAC introduces only a small amount of noise into the output. Hash coding noise can be seen in the base plane in figure 12a, b, c.

Figure 13b: In a CMAC model, each input selects a unique set of memory locations. The number of unique sets which can be selected from M locations is much larger than the input M.

In CMAC, hashing noise is randomly scattered over the input space each time new data is stored. Thus each new data storage operation degrades previously stored data somewhat. The effect is that the contents of a CMAC memory are most accurately defined in the regions where it is most recently stored. Old data tends to gradually fade, or be "forgotten", due to being hashed over.

CMAC Memory Generalization

The fact that each possible CMAC input vector selects a unique set of memory locations rather than a single location implies that any particular location may be selected by more than one input vector. In fact, the

74 July 1979 © BYTE Publications Inc

Color. VP-590 add-on Color Board allows program control of 8 brilliant colors for graphics, color games. Plus 4 selectable background colors. Includes sockets for 2 auxiliary keypads (VP-580). $69.'

Sound. VP-595 Simple Sound Board provides 256 tone frequencies. Greatforsupplementing graphics with sound effects or music. Set tone and duration with easy instructions. $24.*

Music. VP-550 Super Sound Board turns your VIPintoa music synthesizer. 2 sound channels. Program control of frequency, time and amplitude envelope (voice) independently in each channel. Program directly from sheet music! Sync provision for controlling multiple VIPs, multitrack recording or other synthesizers. $49."

Memory. VP-570 RAM Expansion Board adds 4K bytes of memory. Jumper locates RAM in any 4K block of up to 32K of memory. On-board memory protect switch. $95*

EPROM Programmer. VP-565 EPROM Programmer Board comes complete with software to program, copy and verify 5-volt 2716 EPROMs—comparable to units costing much more than the VP-565 and VIP put together! Programming voltages generated on _ •

board. ZIF PROM socket included. $99*

EPROM Interface. VP-560 EPROM Interface Board locates two 5-volt 2716 EPROMs (4K bytes total) anywhere in 32K of memory. VIP RAM can be re-allocated. $34*

ASCII Keyboard.** Fully encoded, 128-character ASCII encoded alpha-numeric keyboard. 58 light touch keys including 2 user defined keys! Selectable upper and lower case. Handsomely styled. Under $50*

Tiny BASIC." VP-700 Expanded Tiny BASIC Board puts this high-level language on your VIP. BASIC stored in 4K of ROM. Ready for immediate use—no loading necessary. This expanded BASIC includes the standard Tiny BASIC commands plus 12 additional—including color and sound control! Requires external ASCII encoded alpha-numeric keyboard. $39.'

Auxiliary Keypads. Program

r VIP for 2-player interaction games! 16-key keypad VP-580 with cable ($15*) connects to sockets provided on VP-590 Color Board or VP 585 Keyboard Interface Card ($10*).

COSMAC VIP lets you add.

board at a time.

computer power a

With these new easy-tobuy options, the versatile RCA COSMAC VIP (CDP18S711) means even more excitement. More challenges in graphics, games and control functions. For everyone, from youngster to serious hobbyist. And the basic VIP computer system starts at just $249* assembled and ready to operate.

Simple but powerful—not just a toy.

Built around an RCA COSMAC microprocessor, the VIP includes 2K of RAM. ROM monitor. Audio tone with a built-in speaker. Plus 8-bit input and 8-bit output port to interface relays, sensors or other peripherals. It's

easy to program and operate. Powerful CHIP-8 interpretive language gets you into programming the first evening. Complete documentation provided. Take the first step now. Check your local computer store or electronics parts house. Or contact RCA VIP Marketing, New Holland Avenue, Lancaster, PA 17604. Phone (717) 291-5848.

'Suggested retail price. CDP18S711 does not include video monitor or cassette recorder. "Available 1st Quarter. 1979.

See the RCA VIP at the 3rd Annual National Small Computer Show at the New York Coliseum, August 23-26, booth 4211.

The fun way into computers.

ItCil

Circle 322 on inquiry card.

BYTE July 1979 75

(14a)

CMAC TABLE LOOK- UP S,« S2

Figure 14. The CMAC memory generalizes, (a) S2 selects three out of four of the same weights as S,. Thus output h(S2) will be similar to h(S7), differing only by the contents of the location not in common, (b) When S2 is outside of the neighborhood of generalization of S, the overlap goes to 0 (except for random hashing collisions).

h(S.)«h(SJ

S -> A* mapping insures that any two input vectors which are similar (ie: close together in input space) will activate many of the same granule cells, and hence select many of the same weights. This is the property of CMAC which causes it to generalize.

In figure 14a the input vector S2 selects three out of four of the same memory locations as S1. Thus, the output h(S2) will be similar to h(S1), differing only by the contents of the single location which is not in common. The S -> A* mapping controls the amount of overlap between sets of selected memory locations such that, as the input space distance between two input vectors increases, the amount of overlap decreases. Finally, at some distance the overlap becomes 0 (except for random hashing collisions), as in figure 14b, and the sets of

selected memory locations are disjoint. At that point input S2 can be said to be outside the neighborhood of generalization of S1. The value of the output h(S2) is thus independent of h(S1).

The extent of the neighborhood of generalization depends on both the number of elements in the set A* and the resolution of the Sj -> m|* mappings. It is possible in CMAC to make the neighborhood of generalization broad along some variable axes and limited along others by using different resolution quantizing functions for different input variables. This corresponds to the effect in the cerebellum where some input variables are resolved finely by many mossy fibers and others resolved more coarsely by fewer mossy fibers.

A good example of generalization can be

76 July 1979 © BYTE Publications Inc

(Mb)

CMAC TABLE LOOK-UP S,# S2

MS,) INDEPENDENT I OFh(S2)

seen in figure 12a. Following a single data storage operation at S1 = (90, 90) we find that an input vector S2 = (91, 90) will produce the output p = 31/32 even though nothing had ever been explicitly stored at (91, 90). This occurs because S2 selects 31 of the same weights as . A third vector S3 = (92, 90) or a fourth S4 = (90, 92), will produce p = 30/32 because of sharing 30 weights with S1. Not until two input vectors are more than 32 resolution elements apart do they map into disjoint sets of weights.

As a result of generalization, CMAC memory addresses in the same neighborhood are not independent. Data storage at any point alters the values stored at neighboring points. Pulling one point to a particular value as in figure 12a produces the effect of stretching a rubber sheet.

Generalization has the advantage that

data storage (or training) is not required at every point in the input space in order for an approximately correct response to be obtained. This means that a good first approximation to the correct H function can be stored for a sizable envelope around a Ts trajectory by training at only a few points along that trajectory. For example, figure 12c demonstrates that training at only 16 points along the trajectory defined by s2 = 90 generalizes to approximately the correct function for all 360 points along that trajectory plus a great many more points in an envelope around that trajectory. Further training at 175 points scattered over the entire space generalizes to approximately the correct response for all 360 by 180 (over 64,000) points in the input space as shown in figure 12d.

Generalization enables CMAC to predict

July 1979 © BYTE Publications Inc 77

from PEflGCJ

One-Drive System:

$399. (40-track) & $675. (77-lrack) Two-Drive System:

$795. (40-track drives) & $1350. (77-track drives) Three-Drive System:

$1195. (40-track drives) & $2025. (77-track drives) Requires Expansion Interface, Level II BASIC & 16K RAM.

Low Cost Add-On Storage for Your TRS-80*.

In the Size You Want.

When you're ready for add-on disk storage, we're ready for you. Ready with six mini-disk storage systems — 102K bytes to 591K bytes of

additional on-line storage for your TRS-80*.

• Choose either 40-track TFD-100™ drives or 77-track TFD-200™ drives.

• One-, two- and three-drive systems immediately available.

• Systems include Percom PATCH PAK #1™, on disk, at no extra charge. PATCH PAK #1™de-glitches and upgrades TRSDOS for 40- and 77-track operation.

• TFD-100™ drives accommodate "flippy disks." Store 205K bytes per mini-disk.

• Low prices. A single-drive TFD-100™ costs just $399. Price includes PATCH PAK #1™ disk.

• Enclosures are finished in systemcompatible "Tandy-silver" enamel.

Whether you need a single, 40track TFD-100™ add-on or a three-drive add-on with 77-track TFD-200™s, you get more data storage for less money from Percom.

Our TFD-100™ drive, for example, lets you store 102.4K bytes of data on one side of a disk — compared to 80K bytes on a TRS-80* mini-disk drive — and 102.4K bytes on the other side, too. Something you can't do with a TRS-80* drive. That's almost 205K bytes per mini-disk.

And the TFD-200™ drives provide 197K bytes of on-line storage per drive

— 197K, 394K and 591K bytes for one-, two and three-drive systems.

PATCH PAK #1™, our upgrade program for your TRSDOS*, not only extends TRSDOS* to accommodate 40and 77-track drives, it enhances TRSDOS* in other ways as well. PATCH PAK #1™ is supplied with each drive system at no additional charge.

The reason you get more for less from Percom is simple. Peripherals are not a sideline at Percom. Selling disk systems and other peripherals is our main business — the reason you get more engineering, more reliability and more back up support for less money.

In the Product Development Queue ... a printer interlace for using your TRS-80* with any serial printer, and ... \\k Electric Crayon™ to map your computer memory onto your color TV screen — for games, animated shows, business displays, graphs, etc. Coming PDQ!

™ TFD-100, TFD-200. PATCH PAK and Electric Crayon are trademarks of PERCOM DATA COMPANY

•TRS-80 anil TRSDOS are trademarks ol Tandy Corporation and Radio Shack which have no relationship to PERCOM DATA COMPANY

To order add-on mini-disk storage for your TRS-80*, or request additional literature, call Percom's toll-free number: 1-800-527-1592. For detailed Technical information call (214) 272-3421.

Orders may be paid by check or money order, or charged to Visa or Master Charge credit accounts. Texas residents must add 5% sales tax.

PERCOM DATA COMPANY, INC. DEPT. B • 211 N. KIRBY • GARLAND, TX. 75042

Percom 'peripherals for personal computing

78 BYTE July 1979

Circle 305 on inquiry card.

For your SWTP 6800 Computer...

PERCOMs FLOPPY DISK SYSTEM

the

Ready to plug in and run the moment you receive it. Nothing else to buy, no extra memory. No "booting" with PerCom MINIDOS-PLUSX™, the remarkable disk operating system on EPROM. Expandable to either two or three drives. Outstanding operating, utility and application programs.

SI

1

-1

To order or request literature call Percom toll-free 1-800-527-1592.

fully assembled and tested shipping paid

PERCOM DATA COMPANY, INC.

211 N. Kirby Garland, TX 75042 (214) 272-3421

For the low $599.95 price, you not only get the disk drive, drive power supply, SS-50 bus controller/interface card, and MINIDOS-PLUSX™, you also receive:

• an attractive metal enclosure • a fully assembled and tested interconnecting cable • a 70-page instruction manual that includes operating instructions, schematics, service procedures and a complete listing of MINIDOS™ • technical memo updates — helpful hints which supplement the manual instructions • a 90-day limited warranty.

SOFTWARE FOR THE LFD-400 SYSTEM Disk operating and file management systems INDEX™ The most advanced disk operating and file management system available for the 6800. INterrupt Driven Executive operating system features file-and-device-independent, queue-buffered character stream I/O. Linked-file disk architecture, with automatic file creation and allocation for ASCII and binary files, supports sequential and semi-random access disk files. Multi-level file name directory includes name, extension, version, protection and date. Requires 8K

RAM at $A000. Diskette includes numerous utilities $99.95

BASIC Interpreters and Compilers SUPER BASIC A 10K extended disk BASIC interpreter for the 6800. Faster than SWTP BASIC. Handles data files. Programs may be

prepared using a text editor described below $49.95

BASIC BANDAID™ Turn SWTP 8K BASIC into a random access data file disk BASIC. Includes many speed improvements, and program

diskCHAINing $17.95

STRUBAL+™A STRUctured BAsic Language compiler for the professional programmer. 14-digit floating point, strings, scientific functions, 2-dimensional arrays. Requires 20K RAM and Linkage Editor (see below). Use of the following text editors to prepare programs. Complete with RUN-TIME and FLOATING POINT packages $249.95

Text Editors and Processors EDIT68 Hemenway Associates' powerful disk-based text editor. May be use'd to create programs and data files. Supports MACROS which perform complex, repetitive editing functions. Permits text files larger than available RAM to be created and edited $39.95

TOUCHUP™ Modifies TSC's Text Editor and Text Processor for PerCom disk operation. ROLL function permits text files larger than available RAM to be created and edited. Supplied on diskette complete with source listing $17.95

Assemblers

PerCom 6800 SYMBOLIC ASSEMBLER Specify assembly options at time of assembly with this symbolic assembler. Source listing on

diskette $29.95

MACRO-RELOCATING ASSEMBLER Hemenway Associates' assembler for the programming professional. Generates relocatable linking object code. Supports MACROS. Permits conditional

assembly $79.95

LINKAGE EDITOR - for STRUBAL+™ and the MACRO-Relocating

assembler $49.95

CROSS REFERENCE Utility program that produces a crossreference listing of an input source listing file $29.95

Business Applications GENERAL LEDGER SYSTEM Accommodates up to 250 accounts. Financial information immediately available — no sorting required. Audit trail information permits tracking from GL record data back to

source document. User defines account numbers $199.95

FULL FUNCTION MAILING LIST 700 addresses per diskette. Powerful search, sort, create and update capability $99.95

PERCOM FINDER™ General purpose information retrieval system and data base manager $99.95

tm trademark of PERCOM Data Company, Inc iM trademark of Hemenway Associates Company.

Now! The LFD-800 and LFD-1000. Add one, two or three LFD-800 drives and store 200K bytes per drive on-line. Add one or two (dual-drive) LFD-1000 units and store 800K bytes per unit on-line. Complete with interface/controller, DOS, cable & manuals. Two-drive systems: LFD-800 — $1549; LFD-1000 —$2495.

PERCOM 'peripherals for personal computing'

J

Circle 306 on inquiry card.

BYTE July 1 979 79

ABOUT THE AUTHOR:

Dr James S Albus worked for NASA from 1957 to 1972 designing optical and electronic subsystems for over 15 spacecraft, and for one year managed the NASA Artificial Intelligence Program. Since 1973 he has been with the National Bureau of Standards where he has received several awards for his work in advanced computer control systems for industrial robots. He has written a survey article on robot systems for Scientific American (February 1976) and his Cerebellar Model Arithmetic Computer won the Industrial Research Magazine IR-100 Award as one of the 100 most significant new products of 1975.

on the basis of a few representative learning experiences what the appropriate behavioral response should be for similar situations. This is essential in order to cope with the complexities of real world environments where identical Ts trajectories seldom, if ever, reoccur.

An example of how CMAC uses generalization to learn trajectories in a high-dimen

COMMAND i r lr \ \ y<

SHOULDER LIFT

FEEDBACK

(POSITION AND VELOCITY)

Figure 15. Information flow diagram for a robot arm controlled by seven CMACs.

sional space is shown in figure 15. A seven degree of freedom manipulator arm was controlled by seven CMACs, one for each joint actuator, such that the output vector P = H(S) had seven components. The input vector S to each CMAC contained 18 variables corresponding to position and velocity feedback from each of the seven joints of the arm, plus four binary bits defining the Elemental Move Command. The resolution on the feedback variables was different for each of the seven CMACs, being highest resolution from the joint driven by the output p1 and lower for other joints in inverse proportion to their distance along the arm from the controlled joint.

The desired output trajectory Tp is shown as the set of solid curves markecf (a) in figure 16. This trajectory corresponds to the Elemental Movement <SLAP> which is a motion an arm might make in swatting a mosquito.

The (i) curve in figure 17 shows the learning performance with no previous learning over twenty complete Tp "slap" motions. At the beginning of each motion the arm was positioned at the correct starting point and driven from there by the P output computed by the CMAC H function. Differences between P and P at 20 points along the slap trajectory were corrected by formula 1 (with g set to 1/20). Each point on the curve in figure 17 represents the sum of all the errors for all the joints during an entire slap motion. Note that learning is rapid despite the high dimensional input space in which no two Ts trajectories were ever exactly the same. This is due to CMACs ability to generalize from a relatively small number of specific teaching experiences to a large number of similar but not identical trajectories.

The (ii) curve in figure 17 shows the learning performance on the same twenty Tpa trajectories when preceded by twenty training sessions on the Tpfa trajectory indicated by the dotted set of curves marked (b) in figure 16. Note that performance on Tp is consistently better following prior learning on a similar trajectory Tpb. The learning on Tpb generalizes to the similar trajectory

Tp ■ a

Needless to say, predictions based on generalization are not always correct and sometimes need to be refined by further learning. The ability of CMAC to discriminate (ie: to produce different outputs for different inputs, (S1 and S,) depends upon how many weights selected by S1 are not also selected by S2, and how different in value those weights are. If two inputs which are close together in input space are desired to produce significantly different outputs,

80 July 1979 © BYTE Publications Inc

A newquarterly by the staff of BYTE

This totally new publication is entertaining, informative, and uncomplicated. It is edited for the attorney, accountant, writer and other professional or business person aware of the personal computer as a tool for business, education, home entertainment, laboratory work and other applications.

Compiled and edited by the staff of BYTE, latest developments covered in onComputing will include creative uses of the small computer, books for the computer user, how and where to buy your personal computer and numerous features concerning the fascinating world of the microprocessor.

Add onComputing to your library of 'must' publications. Act now, subscribe and receive four (4) issues ■<( S8.50 for one year (O.S.); Canada and Mexico: $10.00.

m

GUIDE TO PERSONAL COMPUTING

SUBSCRIBE NOW! COMPLETE AND MAIL ATTACHED POSTAGE PAID REPLY CARD

onComputing, Inc. □ 70 Main St. □ Peterborough, NH 03458 □ Dial toll free 800-258-5485 (In NH 924-7217)

800

A P5

LOWER

ARM

ROTATE

A P6

WRIST FLEX

I 2 SECONDS

Figure 16. Two similar trajectories Tpa and Tpb which have different starting points but the same endpoint. Both trajectories define a version of an Elemental Movement (SLAP) which was taught to the CMACs of figure 15.

then repeated training may be required to overcome the (in this case erroneous) tendency of CMAC to generalize by building up large differences in the few weights which are not in common.

In most behavioral control situations, sharp discontinuities requiring radically different outputs for highly similar inputs do not occur. Indeed most servocontrol functions have simple S shaped characteristics along each variable axis. The complexity in

5 10 15

TRAINING SESSIONS

Figure 17. CMAC learning and generalization performance on the SLAP motion Tp . Curve i is with no previous training. Curve ii is after 20 training sessions on the similar trajectory Tp^. The improvement of ii over i is due to generalization.

control computation in multivarient servosystems typically derives from crossproducts which affect the slope of the function, or produce skewness, and nonsymetrical hills and valleys in various corners of the N dimensional space. As can be seen from figure 11 these are the type of functions CMAC can readily store, and hence compute. Nevertheless, even on smooth functions generalization may sometimes introduce errors by altering values stored at neighboring locations which were already correct. This type of error corresponds to what psychologists call learning interference, or retroactive inhibition.

For example, in the learning of the two similar trajectories in figure 16, training on Tp causes degradation or interference with what was previously learned on Tp This can be seen in figure 18 where, after 20 training sessions on Tpb, the CMAC is trained 20 sessions on Tpa. Following this the performance on Tp is degraded. However, the error rate on Tp quickly improves

82 July 1979 © BYTE Publications Inc

The ORIGINAL Computer People Who KNOW computers and offer EVERYTHING you need in Small Computer Systems

Compare PRICE, QUALITY, DELIVERY, SERVICE and ^^^^^ you'll see why you don't have to look anyplace else!

^SOFTWARE

Qt1e*as

A 400- •

cw-V

tot

prices

PfU

AAO-■■■ '

A3 tot price

779-2■ V W 700-2 \ pT\ces 703-0 ••' v

Our Prices are too low to advertise. Please call or write. We now carry a full line of Alpha —Micro Products

prices

Here are nine packages thaM enable you to make full use of the potential in your small computer system:

ACCOUNTS RECEIVABLE INVENTORY ORDER ENTRY WORD PROCESSING

PAYROLL REAL ESTATE MGT. MEDICAL-DENTAL MAILING PROGRAM SHIPPING & RECEIVING

and MORE! Microsoft Basic, Fortran, Cobol available

CALL* for prices

0\GVT*L

price*

System

MORE SPECIALS

Decwriterll $1595.00

Qume Sprint 5/45

R0 2795.00

Persci 277 Dble

Density 1395.00

Imsai PCS 80/15 599.00

\ Anadex DP 8000

Printer 995.00

44 Column Printer .. .$295.00

Livermore Accoustic

Coupler 249.00

Javelin 9" Monitor... .159.95

Centronics

Micro P-1 Printer ... 495.00

We have a full staff of Programmers and Computer Consultants to design, configure and deliver a Turnkey Computer System to meet your specific requirements.

SYNCHRO-SOUND

The Computer People

193-25 Jamaica Avenue, Jamaica, New Vbrk 11423 212/468-7067 TWX 710-582-5886

ENTERPRISES, INC.

Hours 9-4 Daily and Saturday

Visit our new showroom Working units on display

BankAmericard Master Charge

Circle 355 on inquiry card.

BYTE July 1979

800 r

INTERRUPTED BY 20 TRAINING SESSIONS ON TA

10

15

20

25

30

35

40

45

50

55

60

65

70

75

TRAINING SESSIONS ON TA

Figure 18. The effect of learning interference. If training on Tpg is interrupted by training on the similar trajectory Tpb, a degradation in performance on Tpg is observed. Repeated iterations gradually overcome this learning interference.

over another 20 training sessions. Following this another 20 training sessions are conducted on Tpa. Again degradation in Tpb due to learning interference occurs, but not as severely as before. Another set of 20 training sessions on Tpb followed by another 20 on TS shows that the amount of learn

r a

ing interference is declining due to the buildup of values in the few weights which are not common to both Tsa and Tsb- Thus, learning interference, or retroactive inhibition, is overcome by repetition of the learning process.

CMAC as a Computer

The ability of CMAC to store and recall (and hence compute) a general class of multivarient mathematical functions of the form P = H(S) demonstrates how a relatively small cluster of neurons can calculate the type of mathematical functions required for multivarient servomechanisms, coordinate transformations, conditional branches, task decomposition operators, and IF/THEN production rules. These are the types of functions that we showed in part 1. They are required for generating goal-directed behavior (ie: the purposive strings of behavior patterns such as running, jumping, flying, hunting, fleeing, fighting, and mating, which are routinely accomplished with apparent

ease by the tiniest rodents, birds, and even insects).

In the case of multivarient servomechanisms the S vector corresponds to commands plus feedback (ie: S = C + F). For coordinate transformations the S vector contains the arguments as well as the variables in the transformation matrix.

In the case of conditional branches, one or more of the input variables in S can be used to select different regions in input space where entirely different functions are stored. Assume, for example, that in figure 12 a third variable s3 had been included in the function being stored. Assume that s3 is held constant at s3 = 0 while storing the function p = (sin x)(sin y). Following that, an entirely different function, say p = 3x + 5y2, could be stored with s3 held constant at s3 = 50. Since every point in the input space for s3 = 0 is outside the neighborhood of generalization of the input space for s3 = 50, there would be no interference except for random hashing collisions. The stored function would then be:

p = (sin x)(sin y) if s3 = 0 p = 3x + 5y2 if s3 = 50 .

In the interval 0 < s3 < 50 the function would change smoothly from p = (sin x) (sin y) to p = 3x + 5Y2. Additional func

84 July 1 979 © BYTE Publications Inc

Circle 18 on inquiry card.

MB

\

Disc OP

□ DOS 3.0

SPECIE '

ONLY

$39

?.,c cVS.

t95

r HARDWARE FOR TRS-80® ^

□Pertec Disc Drives FD-200 $375.00 ea.

These are 40-track Drives that are completely compatable with the TRS^O^nd Radio Shack Drives. 3.0 DOS included. Will allow Turning Diskette over and Write on other side.

□ 16K Upgrade Kit $ 99.95

□ 779 Centronics TRACTOR FEED Printer $1100.00

Same as Radio Shacks Complete with Cable.

Shipped Freight COD.

□ 701 Centronics TRACTOR FEED Bidirectional Printer $1549.95

2Vi times as fast as the Radio Shack 7 79 Printer, has full size 132 Char. Carriage Bell tone. Complete with Cable plug in and use. Shipped Freight COD.

□ 200 ns 16K Dynamic Memory Clips for Keyboard or Expansion Interface, Lifetime Guarantee, complete ... $110.00

Lifetime Guarantee. Complete with Instructions and Jumper Blocks.

□TRS-80® -Level II -4k $540.00

□ TRS-80®-Level II - 16k w/10 Key Keypad $900.00

□ Expansion Interface $275.00

□ RS232-C Interface $ 89.00

ORDER NOW AND SAVE

Just list the items you want and mail this convenient coupon.

r

SOFTWARE BY ACS

□ Monitor No. 3 $ 39.95

Complete Machine Language Monitor for TRS-8trfeatures: Find, EDIT, Relocate, Symbolic Dump to Tape, etc.

□Trash DATA BASE Management System $ 89.95

A complete all around DBMS for business or home. Information can be stored in any fashion. Comes on Disk with Documentation.

□ PLCEND $ 15.95

Will Patch ASCII files of Basic Programs or text or DATA FILES so that they may be loaded into the Disk Version of the Electric Pencil for Editing purposes comes on Cassette that will automatically create a Disk file of PCLEND.

□ MAKE TAPE AND MAKE DISK

for Cassette Dealers $ 69.95

These are two programs that will allow you to take any type of Program from Disk and store it on tape for mailing purposes. When the user receives the program in the mail on cassette, it is loaded into the computer which will automatically make a Disk file of the program. □CP/M & C BASIC for the TRS-80®

CP/M Includes: MOVCPM, STAT, PIP, Dump, DDT, ASM (8080), ED, plus 6 user manuals.

CP/M $150.00

C Basic-2 Includes: XREF2, CBAS2, and manuals.

C BASIC 2 $ 99.95

LJG2 LEVEL III BASIC for TRS-80® Special $39.95

□TELCOM - Telecommunications for the TRS-80.®. $ 29.95

Telecommunications for the TRS-8u®allows one TRS-80S to communicate with another through the RS-232-C over the phone line.

TRS-80 is a registered trademark of Radio Shack, a division of Tandy Corp.

Orders received by 6:00 p.m. shipped next day on Master Charge, Visa, Certified Check or Money Order. Personal Checks require 14 days to clear. No C.O.D. Collect calls not accepted. All Hardware warranted for 90 days except Radio Shaok equipment which is warranted through Radio Shack. All Software Is sold "AS IS" with no guarantee. Prices subject to change without notice.

Automated Computer oftware service

(615) 244-2798

Division of

SEmputer liicrld inc.

625 Main Street • Nashville, TN 37206

Send Check or Money Order payable to —

SOFTWARE • P.O. Box 60097

Nashville, TN 37206

Quan.

Description

Unit Price Total

HANDLING CHARGE $1.50

TENN. RES. ADD 6% SALES TAX TOTAL

□ Check

□ Money Order

□ MasterCharge

□ Visa

Card No.

Exp. Date

Name

Address City _

State

Zip

H

S

p

0 0 0

1 0

1 0 0

0 0

0 1 0

0 1

1 1 0

1 1

0 0 1

1 1

1 0 1

0 1

0 1 1

0 0

1 1 1

1 0

Figure 19. A CM AC with feedback directly from output to input behaves like a finite state automaton for binary inputs and outputs. It behaves like a "fuzzy state automaton " for nonbinary s and p variables.

tions could be stored for other values of s3, or other conditional variables s4, s5, and so on might be used for additional branching capabilities. If these conditional variables are part of a command vector, then each different input command can select a different subgoal generator. If they are part of the feedback, then different environmental conditions can trigger different behavioral patterns for accomplishing the subgoals. It is possible to construct |f some of the variables in the P output

a CMAC equivalent of vector loop directly back to become part of any finite state automaton. the S input vector (as frequently happens in

the cerebellum as well as in other parts of the brain), then CMAC becomes a type of finite state automaton, string generator, or task decomposition operator. For example, the CMAC in figure 19a behaves like the finite state automaton in 19b. The loopback inputs and s2 define the state of the machine, and s3 is the input. The H function defines the state transition table. In general it is possible to construct a CMAC equivalent of any finite state automaton. Of course, CMAC can accept inputs and produce outputs which are nonbinary. Furthermore, the outputs generalize. Thus, CMAC is a sort of "fuzzy state automaton."

A Cerebellar Model Arithmetic Computer with direct feedback from output to input demonstrates how a neural cluster can generate a string of outputs (subgoals) in response to a single input, or unchanging string of inputs. Additional variables added to F from an external source increase the dimensionality of the input space and can thus alter

the output string (task decomposition) in response to environmental conditions.

The different possible feedback pathways to a CMAC control module cast light on a long standing controversy in neurophysiology regarding whether behavior patterns are generated by "stimulus-response chaining" (ie: a sequence of actions in which feedback from sensory organs is required to step from one action to the next) or by "central-patterning" (ie: a sequence which is generated by internal means alone). A CMAC hierarchy may include tight feedback loops from the output of one level back to its own input to generate central patterns, longer internal loops from one level to another to cycle through a sequence of central patterns, as well as feedback from the environment to select or modify central patterns or their sequence in accordance with environmental conditions.

The above discussion makes it obvious that CMAC can also implement IF/THEN production rules by the simple mechanism of making the S vector (or the Ts trajectory) correspond to an IF premise. The P vector output (or Tp trajectory) becomes the THEN consequent.

The capability of CMAC to simulate a finite state automaton, to execute the equivalent of a conditional branch, and to compute a broad class of multivarient functions makes it possible to construct the CMAC equivalent of a computer program. Conversely it is possible to construct a hierarchy of computing modules, perhaps implemented on a network of microprocessors, which is the equivalent of a CMAC hierarchy. This has profound implications regarding the type of computing architecture which might be used to build a model of the brain for robot control.

Note in this regard that CMAC produces nothing comparable to a DO loop or an interrupt. Each CMAC is a state machine which samples (or polls) a set of input variables and computes a set of output variables. There is no way that it can be instructed to DO something N times. CMAC can, of course, perform a DO-UNTIL in the sense that if the input is constant, the output will remain constant until the input changes. Thus for a constant input S-j, CMAC will DO Pt = H(S1) UNTIL changes to S2. But this is not a DO loop in the customary sense.

Similarly, one or more of the CMAC input variables can be used to "interrupt" an ongoing trajectory by causing a branch to a new trajectory. A hierarchy of CMACs can return to the interrupt trajectory after a deviation, if the higher level goals remain

86 Julv 1 979 © BYTE Publications Inc

CDMPHCT COMPILER

L J

FORMS GENERATOR

FOR FAST IMPLEMENTATION OF BUSINESS APPUCATIONS

Compact Compiler requires only 20K bytes. Our compact Version 3 Compiler requires only 20K bytes but supports a powerful subset of standard COBOL plus the CIS COBOL language extensions for conversational mode working, providing full CRT screen formatting with built-in cursor control and numeric field validation.

Other features include CIS COBOL Indexed Sequential and Interactive Debug packages, linkage to run time subroutines to CHAIN programs together, PEEK & POKE memory locations and GET & PUT to special peripherals.

Forms Generator speeds program development. Forms is a powerful utility which can be used with either the Standard or Compact COBOL Compiler. Forms generates record descriptions for Data Entry and Enquiry Programs. The operator creates and edits the required data entry form on the CRT by means of a question and answer session, and then automatically creates the required COBOL source text. This text is held on diskette as COPY files which the programmer can then simply COPY into his program in the normal COBOL way.

Standard Compiler conforms to ANSI 74 Specifications. And now our ANSI 74 standard Version 4 Compiler implements level 1 of Nucleus, Table Handling, Sequential I/O, Relative I/O, Indexed I/O, Library, Segmentation and Inter Program Communication plus many level 2 features and the CIS COBOL language extensions employed in Version 3. This compiler runs in 30K bytes and is ideal for implementing or converting large systems using modular programming. Features include dynamic program loading and fast program development turnround.

CIS COBOL products run on the 8080 or Z80 microprocessors under the CP/M operating system. They are distributed on a variety of diskette formats and have a CONFIG utilility supplied as standard, which enables you to drive many different types of CRT. All are themselves written in CIS COBOL and are therefore readily transferred to different operating environments including new operating systems and new microprocessors, making CIS COBOL a very attractive proposition for OEMs.

MICRO FOCUS

MICRO FOCUS LTD. 58 Acacia Rd, St. Johns Wood, London NW8 6AG Telephone: 01-722 8843 Telex: 28536 MICROF G 'CP/M is a trademark ol Digital Research

Circle 221 on inquiry card.

BYTE July 1979 87

We're not just blowing smoke

SMOKE SIGNAL BROADCASTING! PRESENTS IT'S

$299.00

M-16A STATIC MEMORY SYSTEM

• Allows SWTPC 6800 expansion to 48K • Low Power • Uses Single +8 Volt Supply »SWTPC 6800 Plug Compatible • STATIC - No refresh required

i! j'! liiiiiiiiiii ! I i IJ « •

The M-16A STATIC random access memory system, with a total storage capacity of 16834 words of 8 bits each, is switch selectable to any 4K starting address, and a hardware write protect switch is also included. The system's storage elements are 4K by 1 STATIC memory chips which store 4 times as much in jonly 12% more space than the low

power 2102's. Typical access time is fast enough to work a 6800 based computer operating at 2 MHz and all systems are factory tested at 2 MHz.

The M-16A STATIC random a< memory system, with a total storage capacity ot 16B34 words ol 8 bits each, | switch selectable to any ;ng address, and a hardware 1^

is alio included, IflHL^^H^L^^H&O The system's storage elements are |^ K by I STATIC memory chip

.only 12% more space than the los

power 2102's. Typical access time Is last enough to work e 6800 based computer operating at 2 MHi end all system factory tested at 2 MHl.

■ SMOKE SIGNAL pBBOADCASTINCf

3M0IE SIGIAL

11338 ViaColmas W>

A 91361. (213» B8B 9340

ED Send information on your M-16A 0 Send name of nearest dealer

I

Circle 328 on inquiry card.

unchanged throughout the lower level trajectory deviation. This, however, is quite a different mechanism from the interrupt circuitry in the normal computer where a program counter is stored so that program execution can continue after the interrupt has been serviced.

The implication here is that a set of robot control programs modeled after a CMAC hierarchy will include no DO-loops and will not be interrupt driven. Every computing module will implement a simple state mapping function of the form P = H(S).

Note also that in a CMAC hierarchy, a deviation in a higher level trajectory changes the command string, and hence the program, of all the levels below it. This implies real time modification of program statements and thus makes the use of a compiler based programming language somewhat cumbersome. A robot control system modeled after a CMAC hierarchy should use some form of an interpretive language where program statements are translated into machine code at execution time. A language similar to FORTH seems ideal. (An interpretive language can, of course, be written in a compiler based language. Also, languages can be devised which are partially compiled and partially interpreted.) We will return to these and other practical issues of computing architecture for robot control at a later time.

CMAC as a Pattern Recognizer

As was discussed in part 1, any spatial pattern can be represented as a vector. For example, a picture can be represented as an array, or ordered list, of brightness or color values. A symbolic character can be represented as an ordered list of features (or arbitrary numbers, as in the ASCII convention). Any temporal pattern can be represented as a trajectory through an N-dimensional space. For example, an audio pattern is a sequence of pressure or voltage values (ie: a onedimensional trajectory). A moving picture or television scene corresponds to a sequence of picture vectors (ie: an N-dimensional trajectory where N is the number of picture resolution elements or pixels).

The fundamental problem of pattern recognition is to name the patterns. All the patterns with the same name are in the same class. When a pattern has been given a name we say it has been recognized. For example, when the image of a familiar face falls on my retina and I say to myself "That's George," I have recognized the visual pattern by naming it.

At this point we need to introduce some new notation to clearly distinguish between

88 July 1979 © BYTE Publications Inc

Here it is! The most complete, totally integrated, word processing system software you've ever seen on a microcomputer. WORD-STAR™ really shines in ease of use, with its unique, dynamically activated menu scheme that allows typists to become word processing operators in minutes instead of weeks. For only $495, your 8080/8085/Z-80 with any CRT device becomes a word processing system with the features of a Lanier, Wang, Vydec, Xerox, etc, for far less cost.

Features like ON-SCREEN VISUAL TEXT COMPOSITION, with word wrap, plus dynamic justification and remargination. Imagine being able to type without hitting return, and as WORDSTAR™ moves you to the next line, the preceding line is redisplayed, justified to your left and right margins! Center a line with a keystroke! Set BOLDFACE and/or underline even in mid paragraph! Rejustify text to new margins, on-screen, at will!

DYNAMIC PAGINATION shows the printer page breaks during text entry, correction, or review. Dot commands control vertical page layout, CONDITIONAL PAGINATION, page HEADINGS, page NUMBERS, etc. The integrated PRINT COMMAND can print selected pages only, pause between pages for letterhead loading, and drive any CP/M* list device. WORD-STAR™ runs with the CP/M interfaced printer and terminal of your choice.

SPECIFICATIONS: status line showing page, line, column of cursor; variable menu suppression tor experienced operators; dynamic display of text during entry or on call permits CRT preview of printed copy; full disk buffering (document sizes up to diskette capacity); multiple file/disk edits in a session; CP/M file compatible — also useful for data entry, editing programs, etc. Commands include: cursor up/down/left/right; scroll line/screenful, up/down, once/variable rate; insert/overtype; delete character/word/line left/right/entire; variable margin set/release; set/clear tab stops; justify/ragged right; block move/copy/delete; search/replace once/n times/global/selective/whole words only; write to/read from additional files; set/go to any of 10 place markers. Additional support provided for CRT's with inverse video/dual intensity, line insert/delete, and erase to end of line. Dialog interface for easy installation. AND MORE!

Registered WORD-MASTER™ users can get a $100 discount from us or your participating dealer when upgrading to WORD-STAR.™ Offer good for a limited time only.

WORD-STAR™ operates with any CP/M* operating system, 32K, and either a memory mapped video board or any CRT TERMINAL with cursor control and clear screen (Hazeltine, Lear-Siegler, Soroc, Microterm, Hewlett Packard, Infoton, Beehive, Processor Tech VDM, IMSAI VIO, SD Systems, Altos, Dynabyte, GNAT, etc). We ship on 8" IBM, Micropolis II, or Northstar diskette.

Other fine MicroPro Products include:

Software/Manual Word-Star™ $495/25 Word-Master™ $150/25 Tex-Writer™- $ 75/15

Super-Sort™! Super-Sort™ II Super-Sort™ III

Software/Manual $250/25 $200/25 $150/25

MICROPRO INTERNATIONAL CORPORATION 1299 4th Street, San Rafael, California 94901 Telephone (415) 457-8990 Telex 340388 Dealer/OEM inquiries invited

"PROFESSIONAL QUALITY SOFTWARE YOU CAN COUNT ON, NOW"

"CP/M Is a trademark of Digital Research Corp.

Figure 20. The D vector is composed of sensory variables E and context variables R. The function G recognizes the existence of a D vector in a particular region of pattern plus context space by outputting a Q vector which is the name of that region.

vectors in the sensory processing hierarchy and those in the behavior-generating hierarchy. Thus we will define the input vector to a CMAC pattern recognizer as:

D = E + R

where:

E = (d1( d2,..., dj)

is a vector, or list, of data variables derived from sensory input from the external environment, and:

R=(di+1,...,dN)

is a vector of data variables derived from recalled experiences, or internal context. The

CMAC mapping operator in the sensory processing hierarchy will be denoted G and the output Q such that:

Q = G(D)

We can now define a CMAC D vector to represent a sensory pattern plus context such that each component dj represents a data point or feature of the pattern plus context. The existence of the D vector within a particular region of space therefore corresponds to the occurrence of a particular set of features or a particular pattern in a particular context. The recognition problem is then to find a set of CMAC weights such that the G function computes an output vector:

Q = G(D)

such that Q is the name of the pattern plus context D as shown in figure 20.

In other words G can recognize the existence of a particular pattern and context (ie: the existence of D in a particular region of input space) by outputting the name Q. For example,

Q = Class I whenever D is in Region 1 Q = Class II whenever D is in Region 2

etc.

The D ■+ A mapping in the sensory processing CMAC can be chosen so as to define the size of the neighborhood of generalization on the input space. This means that, as long as the regions of input space corresponding to pattern classes are reasonably well separated, the G function can reliably distinquish one region of input space from another and hence classify the corresponding sensory patterns correctly.

In the case where the D vector is time dependent, an extended portion of a trajectory TD may map into a single name Q as shown in figure 21.lt then is possible by integrating Q over time and thresholding the integral to detect, or recognize, a temporal pattern TD such as a sound or a visual movement.

Note that the recognition, or naming, of a temporal pattern (as illustrated in figure 21) is the inverse of the decomposition of a task as illustrated in figures 14 thru 17 in the previous article in this series. In task decomposition a slowly varying command C is decomposed into a rapidly changing output P. In pattern recognition a rapidly changing sensory experience E is recognized by a slowly varying name Q.

90 July 1979 © BYTE Publications Inc

Wordsmith is the video text editing system you've been waiting for Its power, flexibility and simplicity help you carve any text editing task down to size —in a way you can understand We wanted a system that allows you to think in traditional ways about text layout, yet at the same time makes the traditionally tedious operations such as cut and paste simple and fast. We think we've done it. We want you to decide for yourself eaeaeaiaaaaaieaaeaeaeaeaeaaaeaeaiaeaaeaeaeaeaeaeaeaeaiaiaaaiaai

Flexibility

Logical/Physical Page Distinction. Define your own hardcopy size. Wordsmith remembers the difference between the screen size and the hardcopy page size.

Modular Hardcopy Driver. Drive a Glumes1 Sprint-5 or TTY-like device directly now, Diablo. NEC and other hardcopy devices soon.

Pure Text. Wordsmith files are pure text with no control characters mixed in. This universal format keeps you as compatible with the world as possible. What you see on the screen is what you get as hardcopy.

Page Templates. Snapshots of the block layout of a page can be saved as named disk files, then later recalled and superimposed on the current page. Use such "templates" for standard multicolumn layouts, common letter formats, and fixed-field forms. A single keystroke dispatches you quickly from block to block as you fill in your page.

File Switching. Moving from document to document to examine, copy, move and change text is like rolling off a log. You're not confined to one disk file at a time anymore. ■■■

Power

Page Oriented Philosophy. A document is a collection of pages. The screen displays one entire page at a time. Simple random access page flipping commands take you quickly to any page in the document. Equally efficient commands allow you to insert, delete, copy and move pages both within one document and across documents.

Extensive Block Manipulation Capabilities. Using "windows", portions of text, charts, etc., can be quickly and effortlessly moved around on the current page, or across pages. The shape and size of any window can be changed in real time, with the contained text automatically reformatting itself (heeding word and paragraph boundaries) to conform to the new shape.

Move Text Blacks

Set Up Multiple Text Regions

Change Text Shape

Instantaneous Formatting. Compacting (extraneous blank deletion) and right justifying are simple commands that tidy up a full page or window's worth of text in the blink of an eye. Random access cursor movement, line and character insert and delete, line and page split and |oin, and a host of other line and character level commands help you put text in its place quickly and accurately.

Simplicity

Auto Word Break. Forget the right margin. Wordsmith notices when you won't be able to complete the current word and moves it to the next line for you as you continue typing.

Understandable Commands. The most frequently used commands are single keystrokes. The rest are easily remembered abbreviations.

Informative Status Lines. The top two screen lines constantly display page number information, document name, cursor position, tab stops and status/error phrases. You're always in touch with your document.

TM

Page 3 of 8

File=ADV1

Cursor row 28, col 43

J i L

The

tx)oRE>sratt;b

TEXT EDITOR

Defining the New Generation of Text Editing

from Micro Diversions, Inc. 8455-D Tyco Rd. Vienna, Va. 22180 (703) 827-0888

■ Direct CP/M® and North Star DOS compatibility

■ Available for 40x86, 24x80 and 16x64 memory-mapped video boards

■ Fully reentrant for efficient multi-programming environments (6K program space, 5K data area)

■ 8080 and Z80 compatibility

Protection Against Catastrophic Errors. It's nearly impossible to ruin your document with a single bad command. Wordsmith's page oriented design and doublechecking user interface help you do what you mean!

Ordering Information:

$200

(Screensplitter™ Owners: SBOI

Manual only: $1 5

Check. VISA, Mastercharge

1. CP/M or North Star DOS version?

2. TTY or QUME interface?

3. Brand and memory address of video display board?

4. Ship on single or double density, 5" or 8" diskette?

Inquire about our custom keyboard.

Gl

ircle 219 on inquiry card.

BYTE July 1979 91

Figure 21. A time varying D vector traces out a trajectory TD which represents a sensory experience TE taking place in the context TR. A section of a TD trajectory which maps into a small region of Q space corresponds to the recognition of an extended temporal pattern as a single event.

The Use of Context

It frequently occurs in pattern recognition or signal detection that the instantaneous value of the sensory input vector E is ambiguous or misleading. This is particularly true in noisy environments or in situations where data dropouts are likely to occur. In such cases the ambiguity can often be resolved or the missing data filled in if the context can be taken into account, or if the classification decision can make use of some additional knowledge or well founded prediction regarding what patterns are expected.

In CMAC the addition of context or prediction variables R to the sensory input E such that D = E + R increases the dimensionality of the pattern input space. The context

variables thus can shift the total input (pattern) vector D to different parts of input space depending on the context. Thus, as shown in figure 22, the ambiguous patterns E-| and E2, which are too similar to be reliably recognized as being in separate classes, can easily be distinguished when accompanied by context R1 and R2.

In the brain, many variables can serve as context variables. In fact, any fiber carrying information about anything occurring simultaneously with the input pattern can be regarded as context. Thus context can be data from other sensory modalities as well as information regarding what is happening in the behavior-generating hierarchy. In many cases, data from this latter source is particularly relevant to the pattern recognition task, because the sensory input at any instant of time depends heavily upon what action is currently being executed. For example, information from the behavior-generating hierarchy provides contextual information necessary for the visual processing hierarchy to distinguish between motion of the eyes and motion of the room about the eyes.

In a classic experiment, von Hoist and Mittelstaedt demonstrated that this kind of contextual data pathway actually exists in insects. They observed that a fly placed in a chamber with rotating walls will tend to turn in the direction of rotation so as to null the visual motion. They then rotated the fly's head 180° around its body axis (a procedure which for some reason is not fatal to the fly) and observed that the fly now circled endlessly. By attempting to null the visual motion it was now actually increasing it.

Later experiments with motion perception in humans showed that the perception of a stationary environment despite motion of the retinal image caused by moving the eyes is dependent on contextual information derived from the behavior-generating hierarchy. The fact that the context is actually derived from the behavior-generating hierarchy rather than from sensory feedback can be demonstrated by anesthetizing the eye muscles and observing that the effect depends on the intent to move the eyes, and not the physical act of movement. The perceptual correction occurs even when the eye muscles are paralyzed so that no motion actually results from the conscious intent to move.

CMAC as a Predictive Memory

Contextual information can also provide predictions of what sensory data to expect. This allows the sensory processing modules

92 July 1 979 © BYTE Publications Inc

to do predictive filtering, to compare incoming data with predicted data, and to "flywheel" through noisy data or data dropouts.

The mechanism by which such predictions, or expectations, can be generated is illustrated in figure 23. Here contextual input for the sensory processing hierarchy is shown as being processed through a CMAC M module before being presented to the sensory pattern recognition G modules at each level. Inputs to the M modules derive from the P vector of the corresponding behavior-generating hierarchy at the same level, as well as an X vector which includes context derived from other areas of the brain, such as other sensory modalities or other behavior-generating hierarchies. These M modules compute R = M(P + X). Their position in the links from the behaviorgenerating to the sensory processing hierarchies allows them to function as a predictive memory.

They are in a position to store and recall (or remember) sensory experiences (E vector trajectories) which occur simultaneously with P and X vector trajectories in the behavior-generating hierarchy and other locations within the brain. For example, data may be stored in each^Mj module by setting the desired output Rj equal to the sensory experience vector Ej. At each instant of time t = k, sensory data represented by Ej5 will then be stored on the set of weights selected by the Pk + Xk vector. The result will be that the sensory experience represented by the sensory data trajectory TE. will be stored in association with the context trajectory Tp.+Xj.

Any time afterwards, t = k + j, a reoccurrence of the same context vector Pjc+i + xK+i = pk + xk will produce an output RK+i equal to the Ef stored at time t = k. Thus a reoccurrence of the same context trajectory Tpj + Xj will produce a recall trajectory Tr. equal to the earlier sensory

a)

b)

Ri R2

\

Figure 22. In (a) the two pattern vectors E1 and E2 are too close together in pattern space to be reliably recognized (le: named) as being in different classes. In (b) the addition of context R, to Ei

and R2 to E^

makes the

vectors D1 and D2 far enough apart in pattern plus context space to be easily recognized as in separate classes.

AIM 65

AIM 65 is fully assembled, tested and warranted. With the addition of a low cost, readily available power supply, it's ready to start working for you. It has an addressing capability up to 65K bytes, and comes with a user-dedicated 1K or 4K RAM.

• Thermal Printer

• Full-Size Alphanumeric Keyboard

• True Alphanumeric Display

• Proven R6500 Microcomputer System Devices

• Built-in Expansion Capability

• TTY and Audio Cassette Interfaces

• ROM Resident Advanced Interactive Monitor

• Advanced Interactive Monitor Commands

PRICE: $375.00,1 K RAM)

Plus $4.00 UPS (shipped in U.S. must give street address), $10 parcel post to APO's, FPO's, Alaska, Hawaii.Canada, $25 air mail to all other countries

We manufacture a complete line of high quality expansion boards. Use reader service card to be added to our mailing list, or U.S. residents send $1.00 (International send $3.00 U.S.) for airmail delivery of our complete catalog.

ENTERPRISES

INCORPORATED 2967 W. Fairmount Avenue • Phoenix, AZ 85017 • (602) 265-7564

Circle 325 on inquiry card.

July 1 979 © BYTE Publications Inc 93

Figure 23. A cross-coupled, processing-generating hierarchy. The M; modules remember sensory experiences which occur in association with specific activity in the generating hierarchy (P/) and other sensory modalities (X-J. The M) modules thus learn a set of internal expectations (ie: a predictive model) of the external world as seen through the sensory input channels.

experience TEr These predictive memory modules thus provide the sensory processing hierarchy with a memory trace of what sensory data occurred on previous occasions when the motor generating hierarchy (and other parts of the brain) were in similar states along similar trajectories. This provides the sensory processing system with a prediction of what sensory data to expect. What is expected is whatever was experienced during similar activities in the past.

In the ideal case, the predictive memory modules M| will generate an expected sensory data stream Tr. which exactly duplicates the observed sensory data stream Tep To the extent that this occurs in practice it enables the Gj modules to apply very powerful mathematical techniques to the sensory data. For example, the Gj modules can use the expected data Tr, to:

• Perform cross-correlation or convolution algorithms to detect sync patterns and information bearing sequences buried in noise.

• Flywheel through data dropouts and noise bursts.

• Detect (or recognize) deviations or even omissions from an expected pattern as well as the occurrence of the pattern in its expected form.

If we assume, as shown in figure 23, that predictive recall modules exist at all levels of the processing-generating hierarchy, then it is clear that the memory trace itself is multileveled. In order to recall an experience precisely at all levels, it is necessary to generate the same context (ie: P| + X| address) at all levels as existed when the experience was recorded.

Internal World Model

We can say that the predictive memory

PET PRINTER ADAPTER

GET HARD COPY FROM YOUR COMMODORE PET USING A STANDARD RS-232 PRINTER

1200B

1200C

The CmC ADA 1200 drives an RS-232 printer from the PET IEEE-488 bus. Now, the PET owner can obtain hard copy listings and can type letters, manuscripts, mailing labels, tables of data, pictures, invoices, graphs, checks, needlepoint patterns, etc., using a standard RS-232 printer or terminal.

$98.50 ADA 1200B

Assembled and tested

$169.00 ADA 1200C

With case, power supply and RS-232 connector

Order direct or contact your local computer store. Add $3.00 for postage and handling per order.

OCONNECTICUT microCOMPUTER m tpa 150POCONO RD. BROOKFIELD. CT 06804 Lfl (203) 775 9659 TLX: 7104560052

94 July 1 979 © BYTE Publications Inc

Circle 78 on inquiry card.

modules M| define the brain's internal model of the external world. They provide answers to the question, "If I do this and that, what will happen?" The answer is that whatever happened before when this and that was done will probably happen again. In short, IF I do Y, THEN Z will happen when Z is whatever was stored in predictive memory the last time (or some statistical average over N last times) that I did Y, and Y is some action such as performing a task or pursuing a goal in a particular environment or situation, which is represented internally by the P vectors at the various different levels of the behavior-generating hierarchy and the X vectors describing the states of various other sensory processing behavior-generating hierarchies.

The Mj modules (as all CMAC modules) can be thought of as storing knowledge in the form of IF/THEN rules. The CMAC property of generalization produces a recall vector Rj (a THEN consequent) which is similar to the stored experience so long as the context vector Pj + X| (the IF premise) is within some neighborhood of the context vector during storage.

Much of the best and most exciting work now going on in the field of artificial intelligence revolves around IF/THEN production rules, and how to represent knowledge in large computer programs based on production rules. Practically any kind of knowledge, or set of beliefs, or rules of behavior can be represented as a set of production rules. The CMAC hierarchy shown in figure 23 illustrates how such computational mechanisms can arise in the neurological structure of the brain.

Conclusion

We have now completed the second step in our development. I have described a neurological model which can store and recall (and hence compute) a broad class of mathematical functions. I have shown how a hierarchical network of such models can execute tasks, seek goals, recognize patterns, remember experiences, and generate expectations. The final part of this series will include a brief overview of evidence that such networks actually exist in the brain. Also, this part will describe how a CMAC hierarchy can create plans, solve problems, and produce language. Finally I will discuss the design of robot control systems incorporating these properties and offer some suggestions as to how brain-like computing networks might be constructed and trained.*

ADDITIONAL READING

1. Albus, J S, "A New Approach to Manipulator Control: The Cerebellar Model Articulation Controller (CMAC)," Journal of Dynamic Systems, Measurement, and Control, September 1975, pages 220 thru 233.

2. Albus, J S, "A Theory of Cerebellar Function," Mathematical Biosciences, 10, 1971, pages 25 thru 61.

3. Eccles, J C, M. Ito, and J. Szentagothai, The Cerebellum as a Neuronal Machine, Springer, Berlin, 1967.

4. Stelmach, G E, (editor) Motor Control: Issues and Trends, Academic Press, New York, 1976.

Practically any kind of knowledge can be represented as a set of production rules.

^BODY ^PERIPHERALS

Silk Screen Printed Sepia on Quality White Cotton/Poly T-Shirts

TO ORDER: PRINT Your Name. Address, Zip, Styles and Sizes Desired (S,M,L,XL) on a Sheet of Paper. Include $6.95 Per Shirt. (Three lor $18.00) Out ol U.S.A. Send $8.00 US Currency International Money Order for Each Shirt.

Our Shirts are Made in America and Do Not Shrink!

Custom Designs Available for Your Club - Dealer Inquiries Welcomed. BODY PERIPHERALS P. O. Box 945 Chanute, Kansas 66720

Circle 33 on inquiry card.

July 1979 © BYTE Publications Inc 95

Event Queue

In order to gain optimum coverage of your organization's computer conferences, seminars, workshops, courses, etc, notice should reach our office at least three months in advance of the date of the event. Entries should be sent to: Event Queue, BYTE Publications, 70 Main St, Peterborough NH 03458. Each month we publish the current contents of the queue for the month of the cover date and the two following calendar months. Thus a given event may appear as many as three times in this section if it is sent to us far enough in advance.

July 2-13, Applications of Microcomputers to Life Science Education, Michigan Technological University, Houghton Ml. The emphasis of this workshop will be on the use and development of educational computer models and simulations. The workshop will be set up to provide a maximum interaction with the microcomputer. Discussions will focus on ways of employing computer modeling techniques in undergraduate course work. Contact Dept of Biological Sciences, Michigan Technological University, Houghton Ml 49931.

July 9-20, Computing Systems Reliability, University of California, Santa Cruz CA. Contact Institute in Computer Science, University of California Exten sion, Santa Cruz CA 95064.

July 11-13, Microcomputer Applications, Southern Technical Institute, Marietta GA. The emphasis of this seminar will beon the applications of microcomputers in industry. Software, hardware and interfacing techniques will be discussed. Contact Dr Richard L Castellucis, Southern Technical Institute, Electrical Engineering Technology Dept, 534 Clay St, Marietta GA 30060.

J uly 1 6-18, Software Engineering, Crystal City Marriott, Arlington VA. This seminar is intended to familiarize the

project manager, the system analyst, and the application programmer with techniques of developing software to meet user needs. Contact Information Technology Inc, POB 10129, Austin TX 78766.

July 16-18, Data Base Management, Crystal City Marriott, Arlington VA 22202. This seminar is intended to familiarize the applications programmer, data processing manager, and software system engineer with the latest techniques for the implementation and use of data base management. Contact Information Technology, POB 10129, Austin TX 78766.

July 16-27, Introduction to Digital Electronics and Microcomputer Interfacing, Lexington VA. This hands-on laboratory course is for academic and industrial personnel. There will be approximately 60 hours of laboratory instruction with one microcomputer laboratory station for each two participants. Contact Prof Philip Peters, Dept of Physics, Virginia Military Institute, Lexington VA 24450.

July 19-20, Project Management, Crystal City Marriott, Arlington VA.The purpose of this seminar is to provide a basic understanding of the methodologies, tools, techniques and skills of software management. Contact Information Technology Inc, POB 10129, Austin TX 78766.

PARlEZ VOUS fRANQAiS ? I dON'T,

buT My TRS-8CT (Joes.

INTRODUCING TLF-5CJ , THE ONLY TURN' KEY DISK SYSTEM AVAILABLE FDR LANGUAGE TRANSLATION S.

FEATURES:

(TRANSLATOR >

■ OVER 4.50Q WORDS

■ SO PHRASES

■ SCREEN OR PRINTER OUTPUT

■ ALPHABETICAL LISTING

(INSTRUCTOR > FRENCH GRAMMAR CONJUGATIONS VOCABULARY AND SPELLING DRILLS

PR O N U N C I AT I O N

METRIC CONVERSIONS

■ AND MUCH MORE

INTRODUCTORY OFFER

s 3C.

P&H Linguisfiss, Ins.

56 BAY STATE RD. , BOSTON

(ei7 > sss 4saa

MCSVISA ACCEPTED

MASS 02215

July 19-20, Structured Programming, Crystal City Marriott, Arlington VA. This course is aimed at both programmers and managers. It will cover an integrated set of software development techniques that can be scaled up for any size project development. It supports the development of error free programs by providing the programmer with effective means of controlling the design and code through continual validation checks. Contact Information Technology Inc, POB 10129, Austin TX 78766.

July 19-20, BASIC: A Computer Language for Executives, New York NY. Executive computing, problem solving, planning, forecasting and database systems will be discussed. Also to be covered are programming fundamentals, the mindless computer, sequence, decision and iteration, computer languages and BASIC. Contact American Management Associations, 135 W 50th St, New York NY 1 0020.

July 23-27 Finite Element Method in Mechanical Design, University of Michigan, Ann Arbor Ml. This course is intended for engineers working in mechanical design where knowledge of stresses, displacements, or vibratory motion is important. No previous experience with finite elements is assumed. The course will familiarize the attendee with finite element modeling concepts and will review the fundamentals on which the method is based. Contact Engineering Summer Conferences, 400 Chrysler Ctr, North Campus, University of Michigan, Ann Arbor Ml 48109.

96

July 1 979 © BYTE Publications Inc

Circle 294 on inquiry card.

August 1 -3, Microcomputer Applications,

Southern Technical Institute, Marietta GA. The emphasis of this seminar will be on the applications of microcomputers in industry. Software, hardware and interfacing techniques will be discussed. Contact Dr Richard L Castellucis, Southern Technical Institute, Electrical Engineering Technology Dept, 534 Clay St, Marietta GA 30060

August 6-8, Pattern Recognition and Image Processing, Hyatt Regency Chicago O'Hare, Chicago IL. This conference is sponsored by the Machine Intelligence and Pattern Analysis Committee of the IEEE Computer Society. The program will consist of submitted and invited papers and a large trade show of graphics and image processing equipment. Contact PRIP 79, POB 639, Silver Spring MD 20901.

August 6-10, SIGGRAPH 79, Chicago IL. This sixth annual conference on computer graphics will feature tutorials, technical sessions and an exposition of state-of-the art computer graphics and image processing equipment. Contact Maxine D Brown, SIGGRAPH 79 Exposition, Hewlett-Packard, 19400 Homestead Rd, Cupertino CA 95014.

August 6-10, Modern Communication Systems: Analysis and Design, University of Southern California, Los Angeles CA. This course is devoted to the analysis and design of modern communication systems, with emphasis on the derivation of practical design equations useful for trade-off studies and overall synthesis. Contact University of Southern California, Continuing Engineering Education, Los Angeles CA 90007.

August 6-10, Advanced Microcomputer System Development: High Level Languages, Technology Trends, and HandsOn Experience, University of Southern California, Los Angeles CA. This course is intended to present the participants with a clear picture of the microcomputer revolution, provide hands-on programming experience using Extended BASIC and FORTRAN, analyze technology trends in the microcomputer field, and assess the impact of VHSI/VLSI. Contact University of Southern California, Continuing Engineering Education, Los Angeles CA 90007.

August 8-10, SIGPLAN Symposium on Compiler Construction, Boulder CO. This symposium will consider methods of, and experience with, constructing compilers. The emphasis will be less on theoretical methods, and more on techniques applied to real compilers. Contact Professor Leon Osterweil, Dept of Computer Science, University of Colorado, Boulder CO 80309.

August 8-10, First Annual Conference on Research and Development in Personal Computing, Hyatt Regency O'Hare, Chicago IL. This conference is sponsored by the Association for Computing Ma

chinery (ACM) Special Interest Group on Personal Computing (SIGPC). A large trade show of personal computer and graphics equipment is planned to accompany an assortment of papers, panels, user group meetings, workshops, and person-to-person poster booths. Contact Bob Gammill, Computer Science Division, Dept of Mathematical Sciences, 300 Minard Hall, North Dakota State University, Fargo ND 58102.

August 13-1 5, Conference on Simulation, Measurement and Modeling of Computer Systems, Boulder CO. This conference will feature performance prediction techniques employed during the design, procurement and maintenance of computer systems. It will provide a forum for both applied and theoretical work in the disciplines of performance monitoring, modeling, and simulation of computer systems. Contact Gary Nutt, Xerox PARC, 3333 Coyote Hill Rd, Palo Alto CA 94304.

August 13-16, Q-GERT Network Modeling and Analysis, Ramada Inn, Lafayette IN 47905. This course will provide the attendee with the information necessary to model complex systems using Q-GERT. Emphasis will be on the procedures for modeling and analysis. Contact Pritsker and Associates Inc, POB 2413, W Lafayette IN 47906.

August 13-17, High Speed Computation: Vector Processing, The University of Michigan, Ann Arbor Ml. In this course, the architectural, software, and algorithmic issues of vector architecture are coordinated by the discussion of concepts in computer architecture, and by detailed study of current vector processors and their use. Contact Engineering Summer Conferences, 400 Chrysler Ctr, North Campus, The University of Michigan, Ann Arbor Ml 481 09.

August 19-22, International Conference on Computing in the Humanities, Dartmouth College, Hanover NH. This conference is intended to foster computer research and technique in all areas of humanistic study; to promote international cooperation in the development of programs, data banks, and equipment; and to make the results of research available. The program will include a plenary session each evening and shorter sessions during the day. Contact Stephen V F Waite, Kiewit Computation Ctr, Dartmouth College, Hanover NH 03755.

August 19-24, 1979 Symposium for Innovation in Measurement Science, Hobart and William Smith Colleges, Geneva NY. Sponsored by the Scientific Instrumentation and Research Division of the Instrument Society of America, scheduled sessions at this symposium

READ THE MAGAZINE THE PROS READ.

For over 20 years DATAMATION has been the magazine for the data processing professional. Now DATAMATION magazine is available to hobbiests, business men, accountants, engineers, programmers ... anyone with a deep curiosity about the real world of data processing.

Written by the data processing professional for the data processing professional, DATAMATION magazine's articles cover a wide range of subjects . . . industry trends, "how to do it better" articles, budget and salary surveys, new computer applications, advanced technology, new products and services as well as a monthly department on personal computing.

Whether your interest in computers is for fun or profit, DATAMATION magazine has a world of information for you every month . . . plus an annual Special

Edition, the Industry Profile featuring the "DATAMATION 50" — the top U.S. DP companies.

TECHNICAL PUBLISHING COMPANY A Dun & Bradstreet Company 35 Mason St., Greenwich, CT 06830 (203) 661-5400

I FOR A ONE YEAR SUBSCRIPTION | (13 ISSUES) SEND $32.

[ TO: SUZANNE A. RYAN

DATAMATION magazine 666 FIFTH AVENUE

NEW YORK, NY 10019

Name

Address

I City.

j^State/Zip.

magazine

Circle 94 on inquiry card.

July 1979 © BYTE Publications Inc 97

include innovation in computers and electronics, mass flow measurement, chemical analysis, applied analysis in instrument control, physical analysis, medical instrumentation, and advances in industrial measurement. Contact Instrument Society of America, 400 Stanwix St, Pittsburgh, PA 15222.

August 23-26, National Small Computer Show, New York Coliseum, New York NY. Exhibitions will include those of major manufacturers, distributors, and publications in the small computer field. A lecture series will include topics of interest to business and professional people, hobbyists and the general public. Contact National Small Computer Show, 74 E 56th St, New York NY 10022.

September 4-6, International Conference and Exhibition on Engineering Software, University of Southampton, England. The aim of this conference is to provide a forum for the presentation and discussion of recent advances in engineering software and the state-of-the-art in this field. The exhibition, held in conjunction with the conference, will cover all software products, services and equipment related to engineering software. Contact Dr R Adey, Engsoft, 6 Cranbury Place, Southampton S02 OLG, ENGLAND.

September 4-7, Com peon Fall '79, Capital Hilton Hotel, Washington DC. This 18th IEEE Computer Society International conference will present the latest developments in microprocessor architecture, support software, operating systems, and peripheral devices. Contact IEEE Computer Society, POB 639, Silver Spring MD 20901.

September 5-8, Info/Asia, Ryutsu Center, Tokyo. This exposition will be devoted to information management, computers, word processing and advanced business equipment. The exposition will be accompanied by a four day conference. Contact Clapp and Pollak Inc, 245 Park Av, New York NY 10017.

September 18-20, Wescon/79, St Francis Hotel, San Francisco CA. Contact Electronic Conventions Inc, 999 N Sepulveda Blvd, El Segundo CA 90245.

September 25-27, WPOE '79, San Jose Convention Ctr, San Jose CA. This show will be dedicated to word processing and office/business equipment, services and materials. Complementing the exhibit will be a three day executive conference program that focuses on emerging technologies and their applications in the office. Contact Cartlidge and Associates Inc, 491 Macara Av, Suite 1014, Sunnyvale CA 94086.

September 26-29, MIMI '79, Queen Elizabeth Hotel, Montreal, Canada. This symposium is intended as a forum for the presentation and discussion of recent advances in mini and microcomputers and their applications. Special emphasis

will be given to the theme of the conference, "The Evolving Role of Minis and Micros Within Distributed Processing." Contact The Secretary, MIMI '79 Montreal, POB 2481, Anaheim CA 92804.

September 28-30, Northeast Personal and Business Computer Show, Hynes Auditorium, Boston MA. Displays and exhibits will showcase microcomputers and small computer systems of interest to businesspeople, hobbyists, professionals, etc. Lectures and seminars will be presented for all categories and levels of enthusiasts, including introductory classes for novices. Contact Northeast Exposition, POB 678, Brookline MA 02147.■

Letters

Text continued from page 6:

written) would only perform garbage

collection.

There are more facilities which could be added to this simple data base structure, but it would probably be better to stop at this point.

Jack L Warner Bell Laboratories 600 Mountain Ave Murray Hill NJ 07974

HAMMING ERROR CORRECTING CODE HAS PROBLEMS?

Michael Wimble recently described a method for storing coded data using a Hamming error correcting code which will correct a single bit error and detect double bit errors (February 1979 BYTE, page 180). It is very similar to a scheme I have used successfully for several years and recently published (Computer Design, September 1978).

Mr Wimble's scheme, however, will cause havoc with some data recording devices as some of his coded bytes are exactly the same as some of the common control characters, ie: his data 3, coded as a hexadecimal 93, is identical to the ASCII Device Control 3 character, and data E, coded as a hexadecimal IE, is the ASCII Record Separator. The latter should not cause trouble, but the former will automatically activate or deactivate some kinds of papertape terminals.

If this is likely to be a problem on the equipment you are using, one simple way to overcome it is to omit the P4 parity bit altogether and use strictly 7 bit codes. The media channel on which the omitted bit would have been stored is then placed so that no objectionable control characters are ever generated (except, of course, by error). Programs to generate and decode such schemes are presented in the Computer Design paper cited above.

You are not able to detect double errors using only 7 bits, but if your

equipment is that bad it's probably time to pack it in anyway.

George White Institut de Recherche d'lnformatique et d'Automatique Domaine de Voluceau Rocquencourt BP 105 78150 Le Chesnay FRANCE

COMMENTS FROM A CHESS MASTER

I was most flattered to read the story about my chess match with CHESS 4.7 ("Chess 4.7 versus David Levy" December 1978 BYTE, page 84) and I am delighted that you have been giving chess such excellent coverage in the pages of your magazine.

Since your article appeared I have been plagued by people writing to ask whether I have collected the $2,500 that I won in the bet. Professors Donald Michie (Edinburgh University), John McCarthy (Stanford University) and Seymour Papert (MIT) paid promptly and with great sportsmanship, just as I would have done had I lost the bet. Edward Kozdrowicki (Aerospace Corporation, El Segundo CA) has refused all attempts to persuade him to pay.

I hope that this will answer any further readers who might be curious about the bet.

David N L Levy 104 Hamilton Terrace London NW8 9UP ENGLAND ■

Community Bulletin Board Correction

In the BYTE News for April 1979 (page 195) we mentioned that there was a PCNET run by the Chicago Area Computer Hobbyist Exchange. We should have said that a Community Bulletin Board is privately run by Ward Christensen and Randy Suess.

Correction

In May's "What's New" on page 254 we listed Semionics Associates' REM S-100 board as having a capacity of 8 K bytes and priced at $525. This should have read "The REM S-100 add-in recognition memory board has a capacity of 4 K bytes and is priced at $345."

Trap Door Trap

For shame! The National Bureau of Standards standard data encryption algorithm is not a trap-door algorithm. That term refers to one-way or public key systems.

Don McClimans Computer Systems Consultant 41 Washburn Pk Rochester NY 14620

Oops! You, along with several other people, caught us with that one. [RGAC] ■

July 1979 © BYTE Publications Inc

Minimum mimommim in iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiifiiiiiiiiiiiiniiiiiiiitii i mini iimiiiiiiiiiiimimiiiiiiiiiniimii

BYTE News ....

liiiniimniiiimiiiuiiiiiiiiiiiiiiiiiiiiiiiiiiiiitiiiiiiiM^

FCC TRYING TO CRACK DOWN ON TV INTERFERENCE. The Federal Communications Commission (FCC) has asked Atari, Apple, Commodore, Heath, Southwest Technical Products, and Radio Shack to submit their personal computer systems for TV interference testing. The systems made by these companies are presently exempted from FCC regulations since they are not directly connected to a TV set. However, there have been complaints regarding radio frequency (RF) interference from personal computer systems, and the FCC has decided to develop regulations regarding permissible RF radiation levels.

The computer manufacturers involved have indicated a willingness to cooperate with the FCC's effort. The regulations could fine noncomplying manufacturers and permit the issuance of cease and desist orders. Some industry experts feel that a few manufacturers' computer systems would not pass the FCC regulations.

INTEL ENHANCES 8086 FAMILY WITH I/O PROCESSOR. Intel continues to lead the way in microprocessor and microcomputer systems. Recently they announced the 8089, an I/O (input/output) processor to work with the 8086 16 bit microprocessor. This processor can more than double the performance of the 8086 by relieving it of I/O operations, much like the communications channel on an IBM 370.

$200 DISK SYSTEM EXPECTED BY YEAR END. Shugart and Matsushita Electric of Japan have signed an agreement whereby Matsushita will manufacture a low cost version of Shugart's popular minifloppy disk drive. The drive is expected to sell for $50 in large OEM quantities and retail at about $125. Add to this the interface/controller circuitry, and the total retail cost should work out to a little over $200. This is less than a third of the price of current minifloppy systems. Matsushita expects to be making 100 drives per hour by year end.

The drive will store 70 K bytes, use a new head design, and be housed in sheet metal rather than cast aluminum. It will be only 2 inches high, half the height of the current drive. An industrial version with heavy duty components will be sold at $65 OEM.

Nippon Electric (NEC) is also rumored to be developing a low cost 5 inch disk drive.

14 MILLION MICROPROCESSORS SOLD LAST YEAR. That's right, 14 million microprocessors were manufactured in 1978. One million 8 bit microprocessors and 13 million 4 bit microprocessors were made. If you didn't realize it already, most were used in games. The most manufactured microprocessors were the 8 bit 6502 and the 4 bit TMS-1000. However, sales of electronic games using microprocessors have recently taken a sharp drop. Hence, the probability exists that there may be a slight decrease in microprocessor production in 1979.

16 BIT MICROPROCESSOR PICTURE STILL FUZZY. It is beginning to look as if Intel may have taken the right approach with the 8086 by designing a part which could be placed in production far ahead of the Zilog Z-8000 or Motorola 68000. They have over a year's head start compared to the Z-8000 and possibly another half year's lead over the 68000.

The 8086 part is far simpler than the Z-8000 or 68000 parts, and as a result it is closer to the earlier generations of microprocessors. Support parts for the 8086 such as the new 8087 floating point coprocessor also give the 8086 a commanding availability lead over the other two contenders at this time. All three machines are aimed at the high end of microcomputer application, providing significant computational power equivalent to traditional mini and main frame computers.

July 1979 © BYTE Publications Inc

In the meantime, the traditional minicomputer manufacturers are not sitting still. Digital Equipment Corp (DEC), the largest of the "old-time" minimakers, has created an integrated circuit manufacturing facility to make its own 16 bit microprocessor (the LSI-11). This fall they will be making a super-micro mainframe, called the LSI-11/23, that will have almost all the power of a standard minicomputer at a fraction of the price ($6,800 compared to $12,000).

THE JAPANESE ARE COMING. Although last year a few Japanese electronics manufacturers introduced personal computer systems on their own home ground, none, so far, has ventured into the US market. This is probably due to the competition that already exists and the lack of sufficient price markup on personal computer systems. If the Japanese enter the personal computer market, it will probably be in the peripherals area.

However, the first major Japanese manufacturer has entered the small business computer market. NEC has introduced its ASTRA series of 16 bit microcomputer systems that start at $13,000 and range up to $130,000. The video terminal employs a Z-80 processor.

NEW BUBBLE MEMORY TECHNOLOGY. In a paper delivered by a Bell Laboratory researcher at a recent conference, it was disclosed that Bell Labs has made a major breakthrough in bubble memory technology. This breakthrough will mean a four times increase in storage size, a substantial decrease in cost and ten times faster operating speed. Although Texas Instruments and Rockwell have been in production on bubble memory devices for nearly a year, their high cost and small storage capability have prohibited their wide use. This new development, which will still take a few years to reach the market, should have a large impact on the mass storage area, particularly floppy disks.

The new device replaces the drive coils used in present bubble memories with wafer-thin conductive layers of gold or aluminum overlaid on the garnet structure. A current flows through these layers forming tiny magnetic fields around holes etched into the surface. The polarity of these fields controls the bubble movements.

By eliminating the costly and bulky coil structure, a new pathway design became available which provides a fourfold increase in storage capacity, is easier and less costly to produce, and reduces integrated circuit size, thereby reducing travel time.

IBM also announced that it has fabricated bubble memory devices that are 1 square inch in size and contain 25 M bits. These devices were made at the IBM Research Center in Yorktown Heights NY.

In the meantime, TI and Rockwell are currently sending out samples of their 256 K bit bubble devices and expect to be in production on these units by the end of the year. They expect to be sampling 1 M bit devices by the end of 1980, with production beginning in 1981.

On the whole, it does not appear that bubbles will provide any meaningful competition to floppies until the mid 1980s.

PERSONAL COMPUTER/CABLE TELEVISION SYSTEM PLANNED. Six Star Cablevision, a Los Angeles cable television outfit, will soon begin test marketing a personal computer system designed for use with a closed circuit TV system. Six Star will allocate 3 of 42 available channels to transmit data from data banks to subscribers. They claim to have 50 applications programs already prepared, which would be regenerated every 7 seconds. They plan to use a Mattel personal computer system with a printer, and charge $4 to $6 above the regular $7.50 monthly fee.

Sol Libes ACGNJ

1776 Raritan Rd Scotch Plains NJ 07076

100 July 1979 © BYTE Publications Inc

,/lfilJTElw

"BOOKS OF INTEREST TO COMPUTER PEOPLE"

More BYTE BOOKS in your future...

Circle 36 on inquiry card.

BYTE July 1 979 101

And the future

THE BYTE BOOK OF COMPUTER MUSIC combines the best computer music articles from past issues of BYTE Magazine with exciting new material—all written for the computer experimenter interested in this fascinating field.

You will enjoy Hal Chamberlin's "A Sampling of Techniques for Computer Performance of Music", which shows how you can create four-part melodies on yourcomputer.Forthe budget minded, "A$19Music Interface" contains practical tutorial information—and organ fans will enjoy reading "Electronic Organ Chips For Use in Computer Music Synthesis".

Mew material includes "Polyphony Made Easy" and "A Terrain Reader". The first describes a handy circuit that allows you to enter more than one note at a time into your computer from a musical keyboard. The "Terrain Reader" is a remarkable program that creates random music based on land terrain maps.

Other articles range from flights of fancy about the reproductive systems of pianos to Fast Fourier transform programs written in BASIC and 6800 machine language, multi-computer music systems, Walsh Functions, and much more.

For the first time, material difficult to obtain has been collected into one convenient, easy to read book. An ardent do-it-yourselfer or armchair musicologist will find this book to be a useful addition to the library.

ISBN 0-931718-11-2 Editor: Christopher P. Morgan Pages: approx. 128 Price: $10.00

1 fWIMBVIf Hit,

SUPER PUS

SUPERWUMPUS is an exciting computer game incorporating the original structure of the WUMPUS game along with added features to make it even more fascinating. The original game was described in the book What To Do After You Hit Return, published by the People's Computer Company. Programmed in both N '

6800 assembly language and

BASIC, SUPERWUMPUS is not only addictively fun, but also provides a splendid tutorial on setting up unusual data structures (the tunnel and cave system of SUPERWUMPUS forms a dodecahedron). This is a PAPERBYTE™ book

TINY ASSEMBLER 6800, Version 3.1 is an enhancement of Jack Emmerichs' successful Tiny Assembler. The original version (3.0) was described first in the April and May 1977 issues of BYTE magazine, and later in thePAPERBYTE™ book TINY ASSEMBLER 6800 Version 3.0.

In September 1977, BYTE v — '

magazine published an article

entitled, "Expanding The Tiny Assembler". This provided a detailed description of the enhancements incorporated into Version 3.1, such as the addition of a "begin" statement, a "virtual symbol table", and a larger subset of the Motorola 6800 assembly language.

All the above articles, plus an updated version of the user's guide, the source, object and PAPERBYTE™ bar code formats of both Version 3.0 and 3.1 make this book the most complete documentation possible for Jack Emmerichs' Tiny Assembler.

ISBN 0-931718-08-2 Author: Jack Emmerichs Pages: 80 Price: $9.00

A walk through this book brings you into Ciarcia's Circuit Cellar for a detailed look at the marvelous projects which let you do useful things with your microcomputer. A collection of more than a year's worth of the popular series in BYTE magazine, Ciarcia's Circuit Cellar includes the six winners of BYTE's On-going Monitor Box (BOMB) award, voted by the readers themselves as the best articles of the month: Control the World (September 1977), Memory Mapped IO (November1977), Program Your Next EROMin BASIC (March 1978), Tune In and Turn On (April 1978), Talk To Me (June 1978), and Let Your Fingers Do the Talking (August 1978).

Each article is a complete tutorial giving all the details needed to construct each project Using amusing anecdotes to introduce the articles and an easy-going style, Steve presents each project so that even a neophyte need not be afraid to try it

ISBN 0-931718-03-1 Author: Jack Emmerichs Pages: 56 Price: $6.00

\0I

ISBN 0-931718-074 Author: Steve Garcia Pages: approx. 128 Price: $8.00

is right now!

BASEX, a new compact, compiled language for microcomputers, has many of the best features of BASIC and the 8080 assembly language—and it can be run on any of the 8080 style microprocessors: 8080, Z-80, or 8085. This is a PAPERBYTE™ book.

Subroutines in the BASEX operating system typically execute programs up to five times faster than equivalent programs in a BASIC interpreter—while requiring about half the memory space. In addition, BASEX has most of the powerful features of good BASIC interpreters including array variables, text strings, arithmetic operations on signed 16 bit integers, and versatile IO communication functions. And since the two languages, BASEX and BASIC, are so similar, it is possible to easily translate programs using integer arithmetic data from BASIC into BASEX. The author, Paul Warme, has also included a BASEX Loader program which is capable of relocating programs anywhere in memory.

ISBN 0-931718-05-8 Author: Paul Warme Pages: 88 Price: $8.00

PROGRAMMING TECHNIQUES is a series of BYTE BOOKS concerned with the art and science of computer programming. It is a collection of the best articles from BYTE magazine and new material collected just for this series. Each volume of the series provides the personal computer user with background information to write and maintain programs effectively.

The first volume in the Programming Techniques series is entitled PROGRAM DESIGN. It discusses in detail the theory of program design. The purpose of the book is to provide the personal computer user with the techniques needed to design efficient, effective, maintainable programs. Included is information concerning structured program design, modular programming techniques, program logic design, and examples of some of the more common traps the casual as well as the experienced programmer may fall into. In addition, details on various aspects of the actual program functions, such as hashed tables and binary tree processing, are included.

ISBN 0-931718-12-0 Editor: Blaise W. Liffick Pages: 96 Price: $6.00

SIMULATION is the second volume in the Programming Techniques series. The chapters deal with various aspects of specific types of simulation. Both theoretical and practical applications are included. Particularly stressed is simulation of motion, including wave motion and flying objects. The realm of artificial intelligence is explored, along with simulating robot motion with the microcomputer. Finally, tips on how to simulate electronic circuits on the computer are detailed.

ISBN 0-931718-13-9 Editor: Blaise W. Liffick Pages: approx. 80 Price: $6.00 Publication: Winter 1979

RA6800ML: AN M6800 RELOCATABLE MACRO ASSEMBLER is a two pass assembler for the Motorola 6800 microprocessor. It is designed to run on a minimum system of 16 K bytes of memory, a system console (such as a Teletype terminal), a system monitor (such as Motorola MIKBGG read only memory program or the 1COM Floppy Disk Operating System), and some form of mass file storage (dual cassette recorders or a floppy disk).

The Assembler can produce a program listing, a sorted Symbol Table listing and relocatable object code. The object code is loaded and linked with other assembled modules using the Linking Loader LINK68. (Refer to PAPERBYTE™ publication LINK68: AN M6800 LINKING LOADER for details.)

There is a complete description of the 6800Assembly language and its components, including outlines of the instruction and address formats, pseudo instructions and macro facilities. Each major routine of the Assembler is described in detail, complete with flow charts and a cross reference showing all calling and called-by routines, pointers, flags, and temporary variables.

In addition, details on interfacing and using the Assembler, error messages generated by the Assembler, the Assembler and sample IO driver source code listings, and PAPERBYTE™ bar code representation of the Assembler's relocatable object file are all induded This book provides the necessary background for coding programs in the 6800 assembly language, and for understanding the innermost operations of the Assembler.

ISBN 0-931718-10^1 Author: Jack E Hemenway Pages: 184 Price: $25.00

to order books see next page

LINK68: AN M6800 LINKING LOADER is a one

pass linking loader which allows separately translated relocatable object modules to be loaded and linked together to form a single executable load module, and to relocate modules in memory. It produces a load map and a load module inMotorola MIKBGG loaderformat. The Linking Loader requires 2 K bytes of memory, a system console (such as a Teletype terminal), a system monitor (for instance, Motorola MIKBGG read only memory program or the 1COM Floppy Disk Operating System), and some form of mass file storage (dual cassette recorders or a floppy disk).

It was the express purpose of the authors of this book to provide everything necessary for the user to easily learn about the system. In addition to the source code and PAPERBYTE™ bar code listings, there is a detailed description of the major routines of the Linking Loader, including flow charts. While implementing the system, the user has an opportunity to learn about the nature of linking loader design as well as simply acquiring a useful software tool.

ISBN 0-931718-09-0 Authors: Robert D. Grappel & Jack E. Hemenway Pages: 72 Price: $8.00

Winter 1979

TRACER: A 6800 DEBUGGING PROGRAM is for

the programmer looking for good debugging software. TRACER features single step execution using dynamic break points, register examination and modification, and memory examination and modification. This book includes a reprint of "Jack and the Machine Debug" (from the December 1977 issue of BYTE magazine), TRACER program notes, complete assembly and source listing in 6800 assembly language, object program listing, and machine readable PAPERBYTE™ bar codes of the object code.

ISBN 0-931718-02-3 Authors: Robert D. Grappel & Jack E. Hemenway Pages: 24 Price: $6.00

MONDEB: AN ADVANCED M6800 MONITORDEBUGGER has all the general features of Motorola's MIKBGG monitor as well as numerous other capabilities. Ease of use was a prime design consideration. The other goal was to achieve minimum memory requirements while retaining maximum versatility. The result is an extremely versatile program. The size of the entire MONDEB is less than 3 K.

Some of the command capabilities of MONDEB include displaying and setting the contents of registers, setting interrupts for debugging, testing a programmable memory range for bad memory locations, changing the display and input base of numbers, displaying the contents of memory, searching for a specified string, copying a range of bytes from one location in memory to another, and defining the location to which control will transfer upon receipt of an interrupt. This is a PAPERBYTE™ book.

ISBN 0-931718-06-6 Author: Don Peters Pages: 88 Price: $5.00

BAR CODE LOADER. The purpose of this pamphlet is to present the decoding algorithm which was designed by Ken Budnick of Micro-Scan Associates at the request of BYTE Publications, Inc., for the PAPERBYTE™ bar code representation of executable code. The text of this pamphlet was written by Ken, and contains the general algorithm description in flow chart form plus detailed assemblies of program code for 6800, 6502 and 8080 processors. Individuals with computers based on these processors can use the software directly. Individuals with other processors can use the provided functional specifications and detail examples to create equivalent programs.

ISBN 0-931718-01-5 Author: Ken Budnick Pages: 32 Price: $2.00

BYTE BOOKS Division

Please send the books I have checked

□ Computer Music $10.00

□ SUPERWUMPUS $6.00

□ Tiny Assembler (3.1) $9.00

□ Circuit Cellar $8.00

□ BASEX$8.00

□ Program Design $6.00

□ Check enclosed □ Bill Visa □ Bill Master Charge Card No. Exp. Date

70 Main Street • Peterborough, New Hampshire 03458

□ Simulation $6.00

□ RA6800ML $25.00

□ Link68$8.00

□ TRACER $6.00

□ Mondeb$5.00

□ Bar Code Loader $2.00

Total Books Add 60^ per book Postage/Handling

Grand Total

Name

Title

Company

Street

City

State/Province

Code

V

104 BYTE July 1979

Circle 36 on inquiry card.

Kurt Schmucker Mathematician Dept of Defense Washington DC 20755

The

Mathematics of Computer Art

Introduction

Computer scientists and personal computer enthusiasts have a great appreciation of the beauty and form of art. They often use the tools of their trade, the computer and its associated peripheral devices, to create works of art. These works express particular, somewhat algorithmic and mathematical tastes in art forms. Since the late 1960s the use of computers and computer controlled devices for the generation of this artwork (often in three dimensions) has been firmly established. (See references 3, 4, 8, 9, and 14.) A great portion of this artwork has relied heavily on the computer's ability to precisely manipulate numerical quantities to produce drawings or sculptures that express complex mathematical relationships. Drawings in this category include figures which show the relationships between the phase, amplitude, and periods of different trigonometric functions; graphs of functions of two or more variables; and moire patterns that can express complex relationships by interaction between families of similar simple curves (see reference 13).

This is not to say that all or even the majority of computer art is inherently mathematical. Two of the latest crazes in computer art, the recreation of natural scenes and the randomly drawn picture (called "controlled serendipity" by one artist in reference 11), are in essence nonmathematical. This article, however, will be

concerned only with those figures which have mathematics as their basis.

Among figures which rely heavily on mathematics, two classes can easily be separated. One class is distinguished by the fact that it is precisely the equations themselves which give the figures beauty and appeal. While even the mathematically uninitiated can perceive the beauty of these forms, only those who understand the underlying mathematics can fully appreciate the plots. Some examples of this class are the endless varieties of lissajous figures (see references 2 and 6), and two other famous trigonometrically based plots, "Sine Curve Man" (shown in figure 1; see reference 15) and "Christmas Wreath" (see reference 1). The beauty of "Sine Curve Man" is in part due to the undulating sine curves, differences in the phase

Figure J: "Sine Curve Man" by Charles Csuriand James Shaffer, a trigonometrically based plot. Reprinted with permission from Computers and Automation, August 1967, Copyright 1967 and published by Berkeley Enterprises Inc, 815 Washington St, Newtonville MA 02160.

About the Author

Kurt J Schmucker has been employed as a mathematician at the Department of Defense In Washington DC since 1974. He has masters degrees from both Michigan State University and Johns Hopkins University. He is now an advanced special student in the Computer Science Department at the University of Maryland and an assistant professorial lecturer in computer science at George Washington University. Mr Schmucker's current interests are in natural language processing and computer graphics.

Mr Schmucker is the author of "The Computers of Star Trek," which appeared in the December 1977 BYTE.

July 1979 '& BYTE Publications Inc 105

between the different curves, and the variation in the amplitudes. These form the mathematical base for the figure.

The other class of figures relies on mathematics not for the positioning of the actual lines but for the meaning or the importance of the resulting total plot. For these figures, the actual equations which are plotted are not as important as the relationships which are revealed. Some examples of this class are moire patterns and projection plots of multidimensional figures (see reference 12).

An example of a moire figure is shown in figure 2. Notice that the lines in this figure

are nothing more than regularly spaced radii of two circles — lines whose equations are easily determined. What is fascinating is the complex interference pattern, a pattern which can express complex relationships between those lines. In this article, these two classes of figures will be discussed by examining in detail one example of each.

Crest

An example of a computer generated figure which relies on complex mathematical relationships for its beauty is the crest,

Figure 2: Moire figure, an interference pattern between regularly spaced radii of two circles.

106 July 1 979 © BYTE Publications Inc

shown in figure 3 (see reference 5). While the beauty of this figure can be appreciated without examining its mathematics, a more complete understanding is necessary in order to reproduce it on a different computer or to fully comprehend the complexity of the figure. One can easily examine figure 3 and determine by its symmetry the decomposition which is shown in figure 4.

The basic unit of figure 3 is shown in figure 5. If the equations which generate the basic unit can be found, then the entire figure can be generated by appropriately manipulating these equations. In an analysis of the unit in figure 5, one can see that the equation of the outer envelope of lines is the only portion of real importance. An examination of this curve brings to mind the spirals studied when one first encounters the use of polar coordinates. There are a number of different kinds of such spirals, most notably the spiral of Archimedes, the parabolic spiral, and the logarithmic spiral. By comparing the graphs of these spirals to figure 5 it can be seen that the logarithmic spiral closely approximates the desired curve. Recall that a logarithmic spiral (shown in figure 6) has an equation of the form r = ae~e/b, where a

and b are positive real numbers. By a suitable choice of the constants a and b, along with some transformations applied to the equations of two such spirals, we will be able to obtain the equation of the desired envelope.

To find the equation of this envelope, the graph of the logarithmic spiral must be rotated, translated, and reflected. The fact that the curve is usually expressed in polar form simplifies this task considerably. All three of these transformations can be expressed much more easily in that system than in Cartesian coordinates. Figure 7 shows the resulting graphs and their equations as the graph of the spiral is progressively reflected about the y axis, rotated clockwise by 60°, and translated.

Superimposing the graph of:

x = -ae~fl/b cos(0 - jf/3) + a cos tt/3 y = ae^e/b sin(0 - tt/3) + a sin tt/3

upon the last portion of figure 7, the graph in figure 8 is obtained, which is precisely the desired envelope.

Text continued on page 710

Except where noted

Illustrations by:

Alexander A Ames Systems Analyst Dept of Defense Washington DC 20755

A COMPLETELY REFURBISHED "SELECTRIC" ASCII TERMINAL FOR THE SMALL BUSINESSMAN OR SERIOUS HOBBYIST.

The AJ 841 I/O terminal. Now available from dealers nationwide.

Demand for our AJ 841 I/O computer terminal has been great. And now it's getting even greater. So call your local computer shop dealer right away. Supply is limited! You may never have another opportunity like this one to buy your own professional terminal.

The A J 841 features:

• Choice of serial RS 232 or parallel interface

• ASCII code

• 14.9 cps printout

• High quality Selectric printing

• Heavy-duty Selectric mechanism

• Off-line use as typewriter

• Documentation included

• 30-day warranty on parts and labor (details available on request)

Call toll-free now

For location of your nearest AJ dealer, call toll-free:

800/538-9721

California residents call 408/263-8520.

Circle 9 on inquiry card.

July 1979 © BYTE Publications Inc 107

Aw, cut it out!

junel^/ \ forrna(lf-'

^ Software

DIGITAL RESEARCH iJE/SSf

□ CP/M* FDOS — Diskette Operating System complete with Text Editor, Assembler, Debugger, File Manager and system utilities. Available for wide variety of disk systems including North Star, Helios II, Micropolis, iCOM (all systems) and Altair. Supports computers such as Sorcerer, Horizon, Sol System III, Versatile. Altair 8800, COMPAL-80, DYNABYTE DB8/2, and iCOM Attache. Specify desired configuration S145/825

□ MAC — 8080 Macro Assembler. Full Intel macro definitions. Pseudo Ops include RPC, IRP, REPT, TITLE, PAGE, and MACLIB. Z-80 library included. Produces Intel absolute hex output plus symbols file for use by SID (see below) $10Q/S15

D SID — 8080 symbolic debugger. Full trace, pass count and break-point program testing system with back-trace and histogram utilities. When used with MAC, provides full symbolic display of memory labels and equated values $85/815

□ TEX — Text formatter to create paginated, page-numbered and justified copy from source text files, directable to disk or printer $85/815

□ DESPOOL — Program to permit simultaneous printing of data from disk while user executes another program from the console $50/81

MICROSOFT

□ Disk Extended BASIC — New version, ANSI compatible with long variable names, WHILE/WEND, chaining, variable length file records 8300/825

□ FORTRAN-80 — ANSI '66 (except for COMPLEX) plus many extensions. Includes relocatable object complier, linking loader, library with manager. Also includes MACRO-80 (see below) $400/825

□ COBOL-80 — ANSI 74 Pseudo-compiler with relocatable object runtime package. Format same as FORTRAN-80 and MACRO-80 modules. Complete ISAM, interactive ACCEPT/ DISPLAY, COPY, EXTEND $625/$25

□ MACRO-80 — 8080/Z80 Macro Assembler. Intel and Zilog mnemonics supported. Relocatable linkable output. Loader, Library Manager and Cross Reference List utilities included

$149/$15

□ MACRO-80 plus FORTRAN subroutine library available. Library includes ABS, SIGN, EXP, DLOG, SORT, DSQRT, ATAN, DATAN etc. etc $219/815

□ EDIT-80 — Very fast random access text editor for text with or without line numbers. Global and intra-line commands supported. File compare utility included 889/815

XITAN (software requires Z-80 CPU)

□ Disk BASIC — Fast powerful interactive interpreter. PRIVACY password security. Can dynamically open a large number of files simultaneously for random or sequential I/O

$159/820

D Z-TEL — Text editing language. Expression evaluation iteration and conditional branching ability. Registers available for text and commands. Macro command strings can be saved on disk for re-use $69/820

D ASM Macro Assembler — Mnemonics per Intel with Z-80 extensions. Macro capabilities with absolute Intel hex or relocatable linkable output modules $69/820

□ LINKER —Link-edits and loads ASM modules ...869/820

□ Z-BUG debugger — Trace, break-point tester. Supports decimal, octal and hex modes. Dissassembler to ASM mnemonic set. Emulation technique permits full tracing and break-point support through ROM 889/820

'CP/M is a trade name of Digital Research

Software /

with / Manual Manual/ Alone

□ TOP Text Output Processor — Creates page-numbered, justified documents from source text files $69/$20

□ Super BASIC — Sub-set of Xitan Disk BASIC with extensive arithmetic and string features but without random access data file support. Available optionally with features to support VDB Xitan video output board $99/820

□ A3 package includes Z-TEL, TOP, ASM and Super BASIC

8249/840

□ A3+ package includes Disk BASIC, Z-TEL, TOP, ASM, Z-BUG and LINKER $409/840

MICROPRO

□ Super Sort I — Sort, merge, extract utility as absolute executable program or linkable module in Microsoft format. Sorts fixed or variable records with data in binary, BCD, Packed Decimal, EBCDIC, ASCII, floating, fixed point, exponential, field justified, etc. etc. Even variable number of fields per record! 8250/825

D Super Sort II — Above available as absolute program only 8200/$25

□ Super Sort III — As II without SELECT/EXCLUDE

8150/825

□ Word Master Text Editor — In one mode has super-set of CP/M's ED commands including global searching and replacing, forward and backwards in file. In video mode, provides full screen editor for users with serial addressable-cursor terminal

8150/825

□ Corresponder — Mail list system, supporting torm letter generation with personalized greetings. Reference fields permit sorting and extraction by name, address fields or reference data using Super Sort. Requires CBASIC $95/825

SOFTWARE SYSTEMS

□ CBASIC-2 Disk Extended BASIC — Non-interactive BASIC with pseudo-code compiler and runtime interpreter. Supports full file control, chaining, integer and extended precision variables etc. Version 1 users can receive Version 2 and new manual for $45 with return of original diskette. Standard CP/M and TRS-80 CP/M versions available 890/815

STRUCTURED SYSTEMS GROUP

□ General Ledger— Interactive and flexible system providing proof and report outputs. Customization of COA created interactively. Multiple branch accounting centers. Extensive checking performed at data entry for proof, COA correctness etc. Journal entries may be batched prior to posting. Closing procedure automatically backs up input files. All reports can be tailored as necessary. Requires CBASIC 8899/820

□ Accounts Receivable — Open item system with output for internal aged reports and customer-oriented statement and billing purposes. On-Line Enquiry permits information for Customer Service and Credit departments. Interface to General Ledger provided if both systems used. Requires CBASIC

8699/820

□ Accounts Payable — Provides aged statements of accounts by vendor with check writing for selected invoices. Can be used alone or with General Ledger and/or with NAD. Requires CBASIC 8699/820

□ NAD Name and Address selection system — interactive mail list creation and maintenance program with output as full reports with reference data or restricted information for mail labels. Transfer system for extraction and transfer of selected records to create new files. Requires CBASIC 879/820

□ QSORT— Fast sort/merge program for files with fixed record length, variable field length information. Up to five ascending or descending keys. Full back-up of input files created. Parameter file created, optionally with interactive program which requires CBASIC. Parameter file may be generated with CP/M assembler utility 895/820

BYTE July 1 979

Software for most popular 8080/Z80 computer disk systems, including NORTH STAR, MICROPOLIS, iCOM, SD SYSTEMS, DYNABYTE DB8I2, HELIOS, ALT AIR, TRS-80, 8" IBM and OHIO SCIENTIFIC formats.

Software J

with / Manual Manual/ Alone

GRAHAM-DORIAN SOFTWARE SYSTEMS

□ PAYROLL SYSTEM — Maintains employee master file. Computes payroll withholding for FICA, Federal and State taxes. Prints payroll register, checks, quarterly reports and W-2 forms. Can generate ad hoc reports and employee form letters with mail labels. Requires CBASIC. Supplied in source code.

S605 S35

□ APARTMENT MANAGEMENT SYSTEM - Financial management system for receipts, disbursements and security deposits of apartment projects. Captures data on vacancies, revenues, etc. for annual trend analysis. Daily report shows late rents, vacancy notices, vacancies, income lost through vacancies, etc. Requires CBASIC. Supplied in source code.

S605/S35

□ INVENTORY SYSTEM — Captures stock levels, costs, sources, sales, ages, turnover, markup, etc. Transaction information may be entered for reporting by salesman, type of sale, date of sale, etc. Reports available both for accounting and decision making. Requires CBASIC. Supplied in source code 8605/835

OTHER

□ Z80 Development Package — Consists of: (1) disk file line editor, with global inter and intra-line facilities; (2) Z80 relocating assembler, Zilog/Mostek mnemonics, conditional assembly and cross reference table capabilities; (3) linking loader producing absolute Intel hex disk file for CP/M LOAD, DDT or SID facilities. Standard CP/M and TRS-80 CP/M versions available $95/515

□ TEXTWRITER II — Text formatter to justify and paginate letters and other documents. Special features include insertion of text during execution from other disk files or console, permitting recipe documents to be created from linked fragments on other files. Ideal for contracts, manuals, etc S75/S5

□ DISINTEL — Disk based disassembler to Intel 8080 or TDU Xitan Z80 source code, listing and cross reference files. Intel or TDL/Xitan pseudo ops optional. Runs on 8080. Standard CP/M and TRS-80 CP/M versions available S65/S10

□ DISZILOG — As DISINTEL to Zilog/Mostek mnemonic files. Runs on Z80 only. Standard CP/M and TRS-80 CP/M versions available $65/$10

Fill it in.

Lifeboat Associates, 2248 Broadway. New York. N.Y. 10024 (212) 580-0082

Software /

with / Manual Manual/ Alone

□ WHATSIT? — Interactive data-base system using associative tags to retrieve information by subject. Hashing and random access used for fast response. Requires CBASIC

$125/825

□ XYBASIC Interactive Process Control BASIC — Full disk BASIC features plus unique commands to handle bytes, rotate and shift, and to test and set bits. Available in Integer, Extended and ROMable versions.

Integer Disk or Integer ROMable 8295 $25

Extended Disk or Extended ROMable $395 $25

D SMAL/80 Structured Macro Assembled Language — Package of powerful general purpose text macro processor and SMAL structured language compiler. SMAL is an assembler language with IF-THEN-ELSE, LOOP-REPEAT-WHILE, DOEND, BEGIN-END constructs $75/$15

□ Selector II — Data Base Processor to create and maintain single Key data bases. Prints formatted, sorted reports with numerical summaries. Available for Microsoft and CBASIC (state which). Supplied in source code $195/820

□ Selector III — Mufti (i.e., up to 24) Key version of Selector II. Comes with applications programs including Sales Activity, Inventory, Payables, Receivables, Check Register, Expenses, Appointments, and Client/Patient. Requires CBASIC Supplied

in source code 8295/820

Enhanced version for CBASIC-2 8345/820

□ CPM/374X Utility Package — has full range of functions to create or re-name an IBM 3741 volume, display directory information and edit the data set contents. Provides full file transfer facilities between 3741 volume data sets and CP/M files 8195/810

□ Flippy Disk Kit — Template and instructions to modify single sided 5W diskettes for use of second side in singled sided drives 89.75

□ BASIC Comparison — A comprehensive features and performance analysis of five 8080 disk BASIC languages — CBASIC, BASIC-E, XYBASIC, Microsoft Disk Extended BASIC, and Xitan's Disk BASIC. Itemizes results of 21 different benchmark tests for speed and accuracy and lists instructions and features of each BASIC (send 200 S.A.S.E.) FREE

□ TRS-80 FORTRAN PACKAGE — Professional diskbased language and utility package written by Microsoft, creators of Level II BASIC, the package runs on a TRS-80 system with 32K RAM, one or more drives and TRSDOS. The software is supplied on diskettes and consists of a relocatable machine code FORTRAN Compiler, Macro Assembler, a Linking Loader, Subroutine Library, Text Editor 8325

Macro assembler, loader and editor alone 8165

Hi

Software

Price

□ manual alone

□ manual alone

□ Check □ U.P.S. COD □ Visa □ Master Charge Account # Exp. Date

Shipping

S1.00 for C.O.D.

Signature

Total

My computer configuration (specifying disk system);

Name

Address (No P.O. Box)

City

State

Zip

EFFECTIVE APRIL 15. 1979

TMiThe Software Supermarket is a trademark of Lifeboat Associates

Disk systems and formats: North Star single or double density, IBM single or 2D/256, Altair, Helios II, Micropolis Mod I or II, 5V4" soft sector (Micro iCOM/SD Sales! Dynabyte), etc.

Add$1 litem shipping ($2 min.). Add $1 additional for UPS COD.

Manual cost applicable against price of subsequent software purchase.

The sale of each proprietary software package conveys a license for use on one system only.

boat Associates

THE OFTWARE

SUPERMARKET

BYTE July 1979

Figure 3: "Crest." This figure is composed of fundamental units shown in figure 5, and the author's algorithm is explained in the text.

Figure 4: Decomposition of crest in figure 3.

Text continued from page 107:

By redoing this work in rectangular coordinates, we can see how much easier it is to manipulate these equations in the polar coordinate system. The reflected, rotated, and translated coordinates of a point (X,Y) can be calculated with the matrix equation which is called a in table 1.

Substituting the specific values needed to repeat the previous work and multiplying the three 3 by 3 matrices together, we obtain equation b in table 1. This is the same result obtained earlier.

It is now a trivial matter to obtain the lines in figure 5 by drawing chords between points selected equiangularly along each of the two curves. One can extend this by similar modifications to the equation r = ae_e/b to obtain the crest in figure 3. The constants a and b determine the size of the resulting plot and the curvature of each of the six "leaves" respectively.

The Dissected Square

The plot in figure 9 is not too difficult to understand at first glance (see reference 7). In essence it is a set of concentric squares with the area between the squares divided into smaller squares. Postponing the detailed discussion until later, the figure can be constructed in the following manner: given a square with a side of length X, construct a concentric square with a smaller side of length Y. The value of Y is determined by X in a manner to be explained later, but note that Y < X. Extend the sides of the smaller square until they meet the edges of the square of side X. The intermediate result is shown in figure 10. Divide the shaded regions into squares. (It will be shown that this is always possible when X and Y are chosen carefully.) At this point, consider the square of side Y to be the outer square and

Figure 5: Fundamental building block of the crest figure. The form of the curves resembles a logarithmic spiral.

110 July 1 979 © BYTE Publications Inc

Technical 5y/tcm/ Con/ultant/, Inc.

6800 & 8080 Text Processing

TSC's Text Editing System and Text Processing packages, available for both 6800 and 8080, can turn your micro into a very powerful word processing system. Two steps are involved. First you edit a file to say what you want without worrying about justification, pagination, etc. The TSC editor is a very powerful line and content oriented editor which may be used for this purpose.

The second step is to "process' the edited file. The TSC text processor reads the edited file and outputs it to a printer with right justification, pagination, page numbering and titling, indenting, margin control, title centering, and much more. Macros may be written in the text processor commands which allow complex operations such as footnotes, form letters, or almost anything imaginable.

Price includes manual with printed source listing and object code on tape or disk.

6800 Text Editing System

SL68-24C w/cassette $30.45 SL68-24D w/mini FLEX'" disk $31.50 SL68-24F w/8" FLEX'" 1.0 disk $50.00

8080 Text Editing System

SL80-10P w/paper tape $37.50

SL80-10F w/8" CP/M'" disk $40.00

SL80-10D w/5" HS CP/M'" disk $40.00

6800 Text Processing System

SL68-29C w/cassette $38.95

SL68-29D w/mini FLEX'" disk $40.00

SL68-29F w/8" FLEX'" 1.0 disk $75.00

SL68-29F2 w/5" FLEX'" 2.0 disk $65.00

8080 Text Processing System

SL80-11P w/paper tape $41.00

SL80-11F w/8" CP/M'" disk $50.00

SL80-11D w/5" HS CP/M'" disk $50.00

FLEX™ Software

The FLEX'" disk operating system is rapidly becoming the standard of 6800 disk users. It's powerful capabilities and ease of use make it a natural choice for any application from the most minimal hobbyist system to the most complete industrial development system.

FLEX'" for SWTPC and SSB SWTPc mini floppy users can now upgrade to FLEX'" 2.0. the same version of FLEX™ as found on the SWTPc 8" disk system. Simply add 8K of memory at $A000 and boot up from a FLEX'" 2.0 disk. Also available for Smoke Signal disk users in a mini floppy version (FLEX'" 2.0) and a full sized version (FLEX'" 1.0). Includes TSC editor and assembler on disk. All manuals also supplied (no source listings).

FX02-SWT FLEX'" 2.0 for

5" SWTPc $75.00 FX02-SSB FLEX'" 2.0 for 5" SSB $90.00 FX01-SSB FLEX'" 1.0 for 8" SSB $100.00

Sort/Merge Package Sorts any type file according to parameters you supply. Files too large to fit in memory are automatically split up, individually sorted, and merged into one output file. Accepts fixed or variable length records, up to 20 ascending or descending keys, nonASCII sequence sorts, and much more. No source listing. Specify mini FLEX*", FLEX'" 1.0, or FLEX'" 2.0

AP68-10 6800 Sort/Merge $75.00 Manual Only $15.00

FLEX'" Utilities

Complete set of 36 additional utilities ranging from memory dump to disk diagnostics. Includes printed manuals and source listings with object code AND source listing on disk.

UV1-6D w/mini FLEX™ disk $99.95 UV1-6F w/8" FLEX'" 1.0 disk $124.95 UV1-6F2 w/5" FLEX™ 2.0 disk $119.95

TSC BASIC for 6800

The fastest floating point BASIC interpreter for any 8 bit microprocessor. Features include six digit floating point math, full transcendental functions, unlimited string length, if/then/else construct, logical operators, and two-dimensional arrays including string arrays.

FLEX™ disk versions support random as well as sequential access files (the mini FLEX™ version has only sequential). Random files accessed by true record I/O or by virtual arrays. Disk version also allows TRACE, a renumber facility, ON ERROR GOTO, PTR for obtaining the address of a variable, CHAIN, and a very powerful method of printing to any type and number of output devices. SAVE and LOAD commands produce FLEX™ compatible files which can be externally edited while a COMPILE command places an unreadable, compressed form of the source on disk which can only be executed by RUN. This feature permits the distribution of proprietary BASIC programs.

Cassette version runs in a minimum of 12K, disk version should have at least 16K. No source listing is included. AP68-11C w/casette $39.95 AP68-11D w/mini FLEX™ disk $49.95 AP68-11F w/8" FLEX™ 1.0 disk $59.95 AP68-11F2w/5" FLEX™ 2.0 disk $54.95

All orders should include 3% for postage and handling (8% on foreign orders). Send 25<P for a complete software catalog.

Technical Systems Consultants, Inc.

Box 2574 W. Lafayette, IN 47906

"CP/M*" is a registered trademark of Digital Research FLEX'" is a trademark of Technical Systems Consultants. Inc.

Circle 363 on inquiry card.

BYTE July 1979 1 1 1

Figure 6: Logarithmic spiral with equation of form r = ae elb using polar coordinates.

x = oe'B/b cos(8) y = ae-6/b sin (9)

x =-ae8/bcos(e + ir/3) + acos(i-/3) y = aee/bsin(e+T/3) + asin(7r/3)

x= -ae~s/b cos(0) y = ae"8/b sin(fl)

x = -aee/bcos(e + 7r/3) y = ae"8/bsin(S + Tr/3)

Figure 7: Graphs and equations of a logarithmic spiral as it is reflected about the y axis, rotated clockwise by 60°, and translated.

Figure 8: Superimposition of graph of: x=—ae~elb cos(6 — n/3) +a cos n/3; and y= ae~elb sin(9 — n/3) + a sin tt/3; which yields the desired envelope shape.

begin again by choosing a suitable Y' where Y'< Y. This process is terminated when Y' assumes a certain specified value. What is significant about this plot, however, is the mathematics that it represents. This figure proves the following theorem:

=(,?; )

for all positive integers, n (an offshoot of the theorem of Nicomachus) for the case n = 26.

To see this, it is easier to examine the associated figure for a smaller n than 26, say n = 6 (see figure 11). If the smallest squares in the center of the figure are taken as unit squares, then the area of the large square can be calculated in two different ways. In the first way, the lengths of two sides can be multiplied. Since we are dealing with squares, any two sides can be used. The left side is of length 6(6 + 1) or in general n(n + 1), as can be seen by considering the shaded squares which lie along the left side. The length of the opposite side can be calculated by considering the shaded squares which extend diagonally from the center to the right side to obtain:

b = 2(6 + 5+4+3 + 2+1)

or in general:

n

b = 2 Si

1= 1

Therefore the area of the square is:

ab = 6(6+1)X2(6 + 5 + 4+3 + 2+1) or in general:

I n \ 2

ab = n(n + 1) X 2 2 i =4 (Si J

However, the area of the square can also be calculated by summing the areas of all the component squares. There are four squares of area 1, eight squares of area 4, twelve of area 9, etc. Therefore the area of the large square is:

4X1X12 +4X2X22 + 4X3X32 + 4X4X42 + 4X5X52 + 4X6X62

or in general:

n

4 S i3

i=1

112 July 1979 © BYTE Publications Inc

By equating these computations of area, the desired theorem is obtained.

In drawing this figure, one need only choose an X of the form n(n + 1) for the side of the largest square, where n is an integer greater than 3. The sides of the inner squares

"-1 o o"

cos 7 —sin 7 0

' 1

o o"

a [x'y'H =

[xy 1]

0 1 0 _ 0 0 1 _

sin 7 cos 7 0 0 0 1_

0 -Tx

1 0

V1

new point

old point

reflection

rotation by 7

translation

"—cos 7r/3 sin 7r/3

o"

b tx'y'1] =

[r cos 8 r sin 6 1 ]

sin tt/3 cos 7r/3

0

a cos n/3 a sin tt

13

1

[-r cos(0 +

7r/3) + a cos

t/3 r sin(e + tt/3) + a sin tt/3 1 ]

[-ae~9/b cos(0 +tt/3) +

a cos 7r/3

ae~9/b sin(e + tt/3) + a sin tt/3 1)

Table I: Matrix equation a reflects, rotates, and translates coordinates of a point (X, Y). Matrix equation b has substituted in it the specific values needed to repeat the earlier equations. We obtain the same result.

I I I I I I I I I I I I I. I. I. VTTT

i i i i i i i i i i i i ii i i m

I I I I I I I I I I I I II I I I

I i'i'i'i'i'i'i'i'i'i'i'i'i \ V

I i i i. i. i. i i. r

J J J J J I I I I I I, I, l, I

11 j i i.ri i i i.i. ri. i.

i f ri ,r,i i i i i, i, i, i.

I I III I I, ITT

I'l'l'l'l'l'l'l'

1 mg

I, I I111 I f

II111II

toss

11.1.1 i i i I'm

i. i. i ri i l lTi i i f

1,1, IJJTjTrjn

l/l, 1,1 I I I IJ m

I. i/i/i/i I I I I I I i I I

I, l/l, I, I, I I I I I 1,1,1 .1

i. i i. i j XJ J J J J .' 3-i I

I. I. I/I 1.1 IT IT.1 IT I I I

I. I. I. I. I. I I I I I I I I I .1 I I I

iVi'i'i'i'i'i'i

Figure 9: Dissected square, a set of concentric squares with the area between the squares divided into smaller squares.

Thousands of users know the Ithaca Audio Simple Upgrade™ as the best memory expansion available — and with good reason.

Our clear, concise, step-by-step instructions and illustrations make upgrading a snap. Jumpers are packaged just as they appear in the diagrams, no hunting for the correct part.

Fully-tested RAMs and preprogrammed shunts provide a kit that works the "first time." In fact, a Simple Upgrade is the only memory expansion that requires no cutting or customizing to install.

Each kit has a 100% guarantee; if a part ever fails we replace it absolutely free. No other manufacturer has the confidence to offer that kind of warranty and support.

Now the best gets even better: the Simple Upgrade is just $119.00.

The full line of Upgrades is available nationwide at Computerlands, Byte Shops and independent computer retailers.

For the name of the dealer nearest you, contact:

ITHACA AUDIO

P.O. Box 91

Ithaca, New York 14850 (607) 257-0190

Circle 190 on inquiry card.

TRS-80 is a registered trademark of Tandy Corp.

Apple II is a registered trademark of Apple Computer Inc.

Sorcerer is a registered trademark of Exidy Inc.

July 1 979 © BYTE Publications Inc 113

Figure 10: A square with sides of length X has constructed within it a concentric square with sides of length Y. The sides of the smaller square are extended until they meet the edges of the square of side X. The shaded regions are next divided into squares.

Figure 11: Dissected square for n = 6. The leftside is of length 6(6+1).

Figure 12: Two plotting procedures for a square with vertices A BCD. The smallest amount of pen motion occurs at left when plotting begins at point A with consecutive drawing movements to B, C, D, and then back to A. In this method the length of nondrawing moves is 0.

At right is seen a nonoptimal plotting scheme. Starting at A, the pen draws to B, a nondrawing move is made to point D, the pen draws from D to C and then to B, a move is made to A, and then pen draws from A to D.

are also numbers of this form, obtained by decrementing n by 1 for each successive new square. When Y' = 2, the last two lines are drawn, completing the figure. This choice of X and Y always allows the shaded areas of figure 10 to be decomposed into squares, as they are all rectangles with one side of length n and the other of n(n — 1). A rectangle with these proportions is dissectible into {n — 1) squares of side n.

Plotting Considerations and Implementation

In developing the software to produce these drawings, the logic used to understand the generation of the figures was extended into the implementation of the code. Although this solution to the problem works, it turns out to be grossly inefficient in construction and plotting time.

These figures are best plotted on a high speed incremental plotter using ink rather than a ballpoint pen. The use of ink in plotting immediately causes a 50% reduction in plotting speed in order to avoid smears on the final plot. This and the high density of lines required to produce an aesthetically pleasing picture resulted in an average plot time of two hours per figure.

With these two considerations in mind, it became desirable to optimize the required plot time by minimizing pen movement. In the plotting of figures like those above, the total pen movement is comprised of the movement used to reposition the pen prior to the drawing of a new line (ie: when the pen tip is in the up position) and the actual drawing of the line (ie: when the pen tip is in the down position, that is, is in contact with the plotting surface and is drawing). While the total length of the "draws" (ie: when the pen tip is down and drawing) is fixed for any given figure, the length of the "moves" is variable. The total plot time can be diminished by minimizing these moves.

Consider the plotting of a square whose vertices are ABCD (see figure 12). Let us

114 July 1979 © BYTE Publications Inc

We have what von want... when you want it.

You want speed? Except for the Heath H8 board, every Econoram* runs trouble-free with 4 MHz systems. You want low power? We use low power static parts exclusively, which means our maximum guaranteed current specs are often lower than the typical current specs of our competitors. You want low cost? Our volume purchasing and technical know-how keeps our products price-competitive with boards that do a whole lot less. You want it now? Not only do we stock what we advertise, but many computer stores both nationwide and overseas stock much or all of the CompuKifm line.

You want a choice of configurations? For lowest price buy an "unkit", with sockets and bypass caps presoldered in place for easy assembly; specify assembled and tested boards when you can't wait to get up and running; and if you're dealing with critical applications—like accounting or medical applications—check into the boards qualified under our high-reliability Certified System Componentcscl program. These boards are burned in for 200 hours minimum and are immediately replaced in the event of failure within 1 year of invoice date.

You want reliable, cost-effective operation? That's how we got our reputation... ask any Econoram owner.

i-S FEATURED BOARD OF THE MONTH:

1 Econoram IIA $149 unIut, $164 assm

The 8K X 8 Econoram II has been the workhorse of many an S-100 computer system... and now it's improved, with features like new 4K static chips, guaranteed 4 MHz operation, simpler layout, and low power (draws 8W maximum from the 8V buss —and that's a guaranteed spec). We've retained all the popular features of the original, such as deselect switch for 4K operation, dual 4K block configuration with independent addressing, and switchable memory protect for each block. The oldest board on the block is now one of the newest, and we think you're really going to like it.

■■ ■■

OTHER ECONORAM*

FULLY STATIC MEMORY

BOARDS:

■ ■ ■

Name

Storage

Buss

Speed

Configuration

Unkit

Assm

CSC

■

Econoram IV

16KX 8

S-100

4 MHz

1-16K block

$295

$329

$429

■

Econoram VI

12KX8

H8

2 MHz

1-8K, 1-4K

$200

$270

n/a

■ ■

Econoram VII

24KX8

S-100

4 MHz

2-4K, 2-8K

$445

$485

$605

■

Econoram IX

32KX8

Dig Grp 4 MHz

2-4K, 1-8K, 1-16K

$649

n/a

n/a

■

Econoram X

32KX8

S-100

4 MHz

2-8K, 1-16K

$599

$649

$789

■

■

Econoram XI

32K X 8

SBC

4 MHz

2-8K, 1-16K

n/a

n/a

$1050 ■

BANK SELECT MEMORIES

(for Alpha Micro Systems, Marinchip, etc.)

■ ■

Econoram XII-16

16K X 8

S-100

4 MHz

2 indep. banks**

$369

$419

$519

■ ■

Econoram XII-24

24KX8

S-100

4 MHz

2 indep. banks**

$479

$539

$649

■

Econoram XIII

32KX8

S-100

4 MHz

2 indep. banks**

$629

$699

$849

■

'Econoram is a trademark of

"Econoram XII-16 and -24 have 2 independent banks addressable on 8K boundaries;

■ ■

Bill Godbout Electronics.

Econoram XIII has 2 independent banks addressable on 16K boundaries.

■

NEW! 2708 EROM BOARD KIT... at a special introductory price.

4 independently addressable 4K blocks, with selective disable for each block. Built to Econoram standards (dipswitch addressing, top quality board, sockets wave-soldered in place), and includes dipswitch selectable jump start built right into the board. Includes all support chips and manual, but does not include EROMs. Special introductory price through August 1, 1979: $69.95. After that, the price goes up to the normal $85... don't say we didn't warn you.

POPULAR ICs AT POPULAR PRICES

Low power 2102s for 2 MHz systems on special: 10/S9.90. 1791 MOS LSI dual density disc controller from Western Digital: $59 with pinout and data. 1771 single density controller: $22.50. All parts are offered on a while-they-last basis.

So!

■Si

■ -gl

■2"

■ Ol

■ HI

■</)■

MULLEN COMPUTER PRODUCTS: ^V H8 EXTENDER BOARD KIT $J9

We're happy to distribute a kit that really takes the hassle out of troubleshooting or testing the popular H8 computer. Includes jumper links in the power supply lines for insertion of fuses, Ammeters, current limiters, etc.

ACTIVE TERMINATOR KIT $54.50

As written up in the April '79 issue of Kilobaud Microcomputing. Our much imitated design plugs into any S-100 motherboard to reduce ringing, crosstalk, noise, and other bussrelated problems.

S-100 MOTHERBOARDS

11 slot unkit: $90. 18 slot unkit: $124. Each motherboard includes all edge connectors wave-soldered in place for easy assembly, integral active termination circuitry, extra wide power and ground traces, and much more.

TERMS: Allow 5% shipping, excess refunded. Cal res add tax. VISA*/Mastercharge® call our 24 hour order desk at (415) 562-0636. COD OK with street address for UPS (COD charge applies). Prices good through cover month of magazine. Orders under $15 add $1 handling.

CompuProM

from

ELECTRONICS

FREE FLYER: We'll be glad to tell you more than the space of this ad permits. Just send your name and address, we'll take care of the rest. If you're in a hurry, enclose 41* in stamps for 1st class delivery.

Circle 150 on inquiry card.

BYTE July 1979 1 1 5

Figure 13: A simple plot for which the best possible plotting scheme includes some nondrawing pen moves.

assume that vertex A is the origin of the plot. Clearly, the smallest amount of pen movement possible is 4s, where s is the length of the side of the square. The value of 4s is obtained when the plotting begins at point A (ie: the origin) with consecutive draws to B, C, D, and then a final draw to A. In this case the length of the moves is 0. A nonoptimal plotting scheme for this figure would be to start at A, and then draw to B, move to D and draw to C and then to B, move to A and then draw to D. The total pen movement for this scheme is 5s + V2s, where again s is the length of the square. It should be clear that there is no upper limit on the total pen movement, as the moves have no effect on the resulting plot and can be increased without bound.

Unfortunately, it is not always possible to find a plotting scheme in which the length of the pen moves is 0. A simple plot for which the best possible plotting scheme includes some moves is shown in figure 13. It s is the side of the square, the best possible plotting scheme has a total pen movement of 5s + 2 \/2s (see reference 10).

Of the two figures discussed in detail, the crest and the dissected square, only the crest can be drawn with zero moves. The plotting scheme which obtains this optimal

Figure 14: Optimal plotting scheme for drawing the crest with no wasted pen movement.

solution is shown in figure 14. Using this strategy resulted in a substantial savings in total plotting time.

Unfortunately, no plotting scheme for the dissected square which has zero moves is possible. In fact, no scheme was found which significantly reduced the total plot time from that obtained by using the notions explained in detail above. It is felt that this is because all the plotting schemes we tried involved decomposing long line segments into a number of smaller such segments which were not drawn consecutively. With an on line incremental plotter this requires the processor controlling the pen to issue a much larger number of plot commands. In a multiprocessing environment, any advantage gained in the total length of the moves was completely eliminated by the increased processing time with its associated overhead."

REFERENCES

1. "Christmas Wreath," Entry in the 6th Annual Computer Art Contest, Computers and Automation, volume 17, number 8, August 1968, pages 8 thru 27.

2. "Circus," First prize winner in the 8th Annual Computer Art Contest, Computers and Automation, volume 18, number 9, August 1969, pages 12 thru 32.

3. Csuri, Charles, "Computer Graphics and Art," Proceedings of the IEEE, volume 62, number 4, April 1974, pages 503 thru 515.

4. Franke, Herbert W, Computer Graphics — Computer Art, Phaidon, 1972.

5. Franke, Herbert W, op cit, page 18.

6. Franke, Herbert W, op cit, pages 20 thru 22.

7. Gardner, Martin, Scientific American, volume 229, number 10, October 1973, pages 114 thru 118.

8. Hertlein, Grace C, "Computer Art for Computer People - A Syllabus," SIGGRAPH 77 Proceedings, Computer Graphics, volume 11, number 2, Summer 1977, pages 249 thru 254.

9. Ives, Roger, "Computer-Aided Sculpture," Computers and Automation, volume 18, number 9, August 1969, page 33.

10. Lewis, Harry R, and Papadimitriou, Christos H, "The Efficiency of Algorithms," Scientific American, volume 238, number 1, January 1978, pages 96 thru 109.

11. Mueller, Robert E, "Idols of Computer Art," Art in America, May-June 1972; reprinted in Creative Computing, May-June 1978, pages 100 thru 106.

12. Noll, A Michael, "Computer Animation and the Fourth Dimension," AFIPS Fall Joint Computer Conference 1968, pages 1279 thru 1283.

13. Oster, Gerald, and Nishijima, Yasunori, "Moire' Patterns," Scientific American, volume 208, number 5, May 1963, pages 54 thru 63.

14. Prueitt, Melvin L, Computer Graphics, Dover Publications Inc. New York, 1975.

15. "Sine Curve Man," First prize winner in the 5th Annual Computer Art Contest, Computers and Automation, volume 16, number 8, August 1967, pages 8 thru 21.

116 July 1979 © BYTE Publications Inc

ANOTHER FIRST FROM MOUNTAIN HARDWARE.

SUPERTALKER.

)UR APPLE.

SuperTalker allows you to add the dimension of human speech output in your computer programs. Add voice to games. Program verbal prompting for the operator of your business system. Use verbal warnings under program control as an enunciator in commercial security or control rooms. Create educational programs that verbally coach the student. THE SUPERTALKER SYSTEM. SuperTalker is a new Mountain Hardware peripheral system which allows the Apple II computer to output exceptionally high quality human speech through a loudspeaker under program control. Output may also be directed through any RA. or stereo system. Initially, spoken words are digitized into RAM memory through the system microphone. Speech data in RAM may then be manipulated like any other stored data. A COMPLETE PACKAGE. The SuperTalker peripheral system consists of: The SuperTalker peripheral card which plugs into

FOR YOUR APPLE n

a loudspeaker; easyto-use operating software and documentation; plus, two ready-to-run SuperTalker programs. OPERATING SYSTEMS. In order to achieve maximum utility using SuperTalker, the SuperTalker Disk Operating System permits output of human speech under program control with direct I/O routines. It also provides a preparation program which permits the creation of voice files on diskette. BASIC program routines are provided which require only one-line statements to output a word or phrase. Routines also support cassette storage.

TEACH YOUR COMPUTER TO TALK.

For $279 assembled and tested, SuperTalker gives your Apple II a voice in the matter. AVAILABLE NOW.

Mountain Hardware's SuperTalker, Apple Clock and 100,000 Day Clock™ (for S-100 bus computers) are available through computer dealers worldwide.

Mountain Hardware, Inc.

LEADERSHIP IN COMPUTER PERIPHERALS

■h, 300 Harvey West Blvd., Santa Cruz, CA 95060 (408) 429-8600

Sounds super.

□ Send me everything I need to know about SuperTalker.

□ Also information on your Real-Time clocks for Apple II and S-100.

Name

Address. City

.State.

.Zip_

Apple II is a trademark of Apple Computer, Inc.

Circle 257 on inquiry card.

BYTE July 1979

117

PET / TRS-80 / APPLE: Personal Software brings you the finest!

MICRO CHESS

The Industry's First Gold Cassette Over 50,000 Sold

MICROCHESS is the industry's best selling computer game. And no wonder—because MICROCHESS gives you more than just a chessplaying program: A convenient, foolproof set of commands and error checks ... complete instructions in a51/2" by 8V4" booklet... a cassette that's guaranteed to load, with disk versions coming soon ... and several levels of difficulty to challenge you not just once, but time after time. It's available through well over three hundred computer stores and many mail order sources ... always

originating from Personal Software. What's more, every Personal Software product is selected to give you these same benefits of easy availability, reliable cassettes, readable documentation, a carefully thought out user interface ... and most important, continuing challenge and enjoyment, not just once but time after time. If you haven't already, order your own gold cassette: MICROCHESS, by Peter Jennings, for 8K PETs, 16K APPLEs, and 4K Level I and II TP.S-80s $19.95

TIME TREK

A Tour De Force In Real Time Action Strategy Games

TIME TREK by Brad Templeton for 8K PETs and Joshua Lavinsky

for 4K Level I and II TRS-80s adds a dramatic new dimension to the classic Star Trek type strategy game: REAL TIME ACTION! You'll need fast reflexes as well as sharp wits to win in this constantly changing game. Be prepared—the Klingons will fire at you as you move, and will move themselves at the same time, even from quadrant to quadrant—but with practice you can change course and speed, aim and fire in one smooth motion, as fast as you can press the keys. Steer under power around obstacles—evade enemy

EKIBJKIS HIT

<i)

<!>

<l>

m

T)C BflOTRlS HAS Em KSIWO

Tit roomm wu sc cmsm

ww is e

C*£ TO fuv mif

BLOCKADE by Ken Anderson for 4K

Level I and II TRS-80s is a real time action game for two players, with high speed graphics in machine language. Each player uses four keys to control the direction of a moving wall. Try to force your opponent into a collision without running into a wall yourself! A strategy game at lower speeds, BLOCKADE turns into a tense game of reflexes and coordination at faster rates. Play on a flat or spherical course at any of ten different speeds. You can hear SOUND EFFECTS through a nearby AM radio—expect some razzing if you lose! 14.95

A

_■ ■ SINCX) ■ ■ ■

■

■ ■

■

■

■

.9 "

.5 1

-6.3 -3-\

■ ■ ■

J 5 f

.a

-lower your shields just long enough to fire your phasers, betting that you can get them back up in time! With nine levels of difficulty, this challenging game is easy to learn, yet takes most users months of play to master. ADD SOUND EFFECTS with a simple two-wire hookup to any audio amplifier; the TRS-80 also produces sound effects directly through the keyboard case, to accompany spectacular graphics explosions! You won't want to miss this memorable version of a favorite computer game $14.95

GRAPHICS PACKAGE by Dan Fylstra for 8K PETs includes programs for the most common 'practical' graphics applications: PLOTTER graphs both functions and data to a resolution of 80 by 50 points, with automatic scaling and labeling of the axes; BARPLOT produces horizontal and vertical, segmented and labeled bar graphs; LETTER displays messages in large block letters, using any alphanumeric or special character on the PET keyboard; and DOODLER can be used to create arbitrary screen patterns and save them on cassette or in a BASIC

ELECTRIC PAINTBRUSH by Ken Anderson for 4K Level I and IITRS-80S.

Create dazzling real time graphics displays at speeds far beyond BASIC, by writing 'programs' consisting of simple graphics commands for a machine language interpreter. Commands let you draw lines, turn corners, change white to black, repeat previous steps, or call other programs. The ELECTRIC PAINTBRUSH manual shows you how to create a variety of fascinating artistic patterns including the one pictured. Show your friends some special effects they've never seen on a TV screen!...» $14.95

program $14.95

WHERETO GET IT: Look for the Personal Software" display rack at your local computer store. If you can't find the product you want, you can order direct with your VISA/Master Charge card by dialing 1-800-325-6400 toll free (24 hours, 7 days; in Missouri, dial 1-800-3426600). If you have questions, please call 617-783-0694. Or you can mail your order to one of the addresses below, as of the dates shown.

Until July 1: P.O. Box 136 Cambridge, Mass. 02138

Personal Software™

After July 1: 592 Weddell Dr. Sunnyvale, Calif. 94086

118 BYTE July 1979

Circle 302 on inquiry card.

Look for Personal Software™ products at the dealer nearest you!

ALABAMA

BYTE SHOP Hunlsville. AL 35805 COMPUTERLAND Hunlsville. AL 35805 CPU. INC.

Montgomery, AL 36104 THE LOGIC STORE Opelika, AL 36801 ALASKA

ALPHA ELECTRONICS

Anchorage. AK 99503

ARIZONA

MILLET'S TV & RADIO

Mesa, AZ 85204

PERSONAL COMPUTER PLACE

Mesa. A2 85202

COMPUTERLAND OF PHOENIX

Phoenix. AZ 85016

COMPUTER SHOWROOM

Tucson, AZ 85710

ARKANSAS

COMPUTERLAND

Little Rock, AR 72212

DATACOPE

Little Rock, AR 72204 CALIFORNIA

JAY KERN ELECTRONICS Bakerslield. CA 93305 BYTE SHOP Burbank. CA 91506 BYTE SHOP OF SACRAMENTO Citrus Heights, CA 95610 COAST COMPUTER CENTER Costa Mesa, CA 92627 CAPITOL COMPUTER SYSTEMS Davis. CA 95616

COMPUTERLAND SAN DIEGO EAST E: Caion. CA 92020 COMPUTERLAND OF EL CERRITO El Cernto, CA 94530 BUSINESS ENHANCEMENT COMPUSERVICE Escondido. CA 92027 CHANNEL DATA SYSTEMS Golela, CA 93017 RAINBOW COMPUTING Granada Hills, CA 91344 JADE COMPUTER PRODUCTS Hawthorne. CA 90250 BYTE SHOP OF HAYWARD Hayward, CA 94541 COMPUTERLAND OF HAYWARD Hayward. CA 94541 COMPUTERLAND OF WEST LA. Inglewood. CA 90302 COMPUTER COMPONENTS OF SOUTH BAY Lawndale, CA 90260 COMPUTERLAND OF SOUTH BAY Lawndale, CA 90260 A VIDD ELECTRONICS Long Beach, CA 90815 COMPUTERLAND Los Altos. CA 94022 BYTE SHOP

Mountain View, CA 94040 HOBBY WORLD ELECTRONICS Northndge, CA 91324 COMPUTERS-MADE-EASY Palmdale, CA 93550 BYTE SHOP OF PLACENTIA Placenlia, CA 92670 COMPUTER CENTER Riveiside, CA 92503 CAPITOL COMPUTER SYSTEMS Sacramento. CA 95821 COMPUTERLAND San Bernadino. CA 92404 COMPUTERLAND OF SAN DIEGO San Diego. CA 92111 COMPUTER MERCHANT San Diego. CA 92115 COMPUTERLAND OF SAN FRANCISCO San Francisco, CA 94105 VIDEO GAMES & COMPUTERS San Francisco, CA 94118 COMPUTERLAND OF SAN JOSE San Jose. CA 95129 COMPUTERLAND (Central) San Leandro. CA 94577 BYTE SHOP

San Louis Obispo. CA 93401

MARIN COMPUTER CENTER

San Rafael. CA 94903

ADVANCED COMPUTER PRODUCTS

Santa Ana. CA 92705

BYTE SHOP

Santa Clara. CA 95051

COMPUTER FORUM

Santa Fe Springs. CA 90670

THE COMPUTER STORE

Santa Monica. CA 90401

SANTA ROSA COMPUTER CENTER

Santa Rosa. CA 95404

BYTE SHOP

Suisun, CA 94585

COMPUTERS PLUS

Sunnyvale. CA 94087

BYTE SHOP OF TARZANA

Tarzana, CA 91356

COMPUTERLAND OF

THOUSAND OAKS

Thousand Oaks, CA 91360

SMALL SYSTEM SOFTWARE Thousand Oaks. CA 91360 COMPUTER COMPONENTS Van Nuys. CA 91411 COMPUTERLAND Walnut Creek. CA 94598 BYTE SHOP

Westminster. CA 92683

COMPUTER COMPONENTS OF

ORANGE COUNTY

Westminster. CA 92683

COLORADO

BYTE SHOP

Boulder. CO 80301

COMPUTERLAND

Colorado Springs, CO 80917

AMPTEC

Denver. CO 80216 COMPUTERLAND Denver, CO 80222 BYTE SHOP Englewood, CO 80110 MICRO WORLD ELECTRONIX Lakewood, CO 80226 CONNECTICUT COMPUTERLAND OF FAIRFIELD Fairlield. CT 06430 JRV COMPUTER STORE Hamden. CT 06518 THE COMPUTER STORE Hartford. CT 06103 THE COMPUTER STORE Windsor Locks. CT 06096 WASHINGTON D.C. COMPUTER CABLEVISION Washington. D.C 20007 FLORIDA COMPUTERLAND Boca Raton. FL 33432 THE COMPUTER STORE Bradenlon. FL 33505 THE COMPUTER STORE Clearwater. FL 33516 UCATAN

Deslrn. FL 32541 BYTE SHOP

Fort Lauderdale, FL 33334

COMPUTERLAND

Fort Lauderdale. FL 33308

COMPUTERS FOR YOU

Fort Lauderdale. FL 33312

DATA MOVERS

Fort Meyers, FL 33901

FOCUS SCIENTIFIC ENTERPRISES

Miami. FL 33132

GRICE ELECTRONICS

Pensacola, FL 32589

COMPUTER AGE

Pompano Beach, FL 33062

PAPERBACK BOOKSMITH

Sarasota. FL 33581

AMF ELECTRONICS

Tampa. FL 33612

MICRO COMPUTER SYSTEMS

Tampa. FL 33609

COMPUTER CENTER OF

PALM BEACHES

West Palm Beach. FL 33409

GEORGIA

ADVANCE COMPUTER TECHNOLOGIES

Atlanta, GA 30328

COMPUSHOP '

Atlanta, GA 30342

DATAMART

Atlanta. GA 30305

THE LOGIC STORE

Columbus. GA 31906

COMPUTERLAND OF ATLANTA

Smyrna. GA 30080

HAWAII

COMPUTERLAND

Honolulu. HI 96813

MICROCOMPUTER SYSTEMS

Honolulu. HI 96813

RADIO SHACK (Dealer)

Lihue. HI 96766

IDAHO

NORTHWEST COMPUTER CENTER

Boise, ID 83704

ILLINOIS

COMPUTERLAND OF

ARLINGTON HEIGHTS

Arlington Heights, IL 03904

FARNSWORTH COMPUTER CENTER

Aurora. IL 60505

KAPPEL'S COMPUTER STORE

Belleville. IL 62220

DOW-COM

Carbondale. IL 62901 BYTE SHOP Champaign, IL 61820 THE ELEKTRIK KEYBOARD Chicago, IL 60614 EMMANUEL B. GARCIA JR. AND ASSOCIATES Chicago, IL 60613 PERSONAL COMPUTER Chicago. IL 61820 COMPUTERLAND Downers Grove. IL 60515 COMPUTER STATION Granite City. IL 62040 ORCUTT BUSINESS MACHINES La Salle, IL 61301

ILLINI MICROCOMPUTERS Naperville. IL 60540 COMPUTERLAND OF NILES Nrles. IL 60648 COMPUTERLAND Oak Lawn. IL 60453 COMPUTERLAND OF PEORIA Peoria. IL 61614 WALLACE ELECTRONICS Peoria. IL 61614 DATA DOMAIN Schaumburg. IL 60195 INDIANA

DATA DOMAIN OF FORT WAYNE Fort Wayne, IN 46805 HOME COMPUTER CENTER Indianapolis, IN 46220 PUBLIC COMPUTING Lafayette. IN 47904 IOWA

SYNCHRONIZED SYSTEMS Des Moines. IA 50310 THE COMPUTER CENTER Waterloo. IA 50701 KANSAS

THE COMPUTER ROOM Overland Park. KS 66212 PERSONAL COMPUTER CENTER Overland Park, KS 66206 COMPUTER SYSTEMS DESIGN Wichita. KS 67214 LOUISIANA COMPUTER SHOPPE Metaire. LA 70002 MARYLAND COMPUTERLAND Rockville. MD 20855 COMPUTER WORKSHOP Rockville. MD 20852 COMPUTERS ETC. Towson. MD 21204 COMPUTERS UNLIMITED Towson. MD 21204 MASSACHUSETTS THE COMPUTER STORE Burlington. MA 01803 THE COMPUTER STORE Cambridge. MA 02139 CPU SHOP

Charlestown. MA 02129

MAD HATTER SOFTWARE

Dracut, MA 01826

NEW ENGLAND ELECTRONICS

Needham, MA 02194

NEW ENGLAND ELECTRONICS

Springfield. MA 01103

MICHIGAN

NEWMAN COMPUTER EXCHANGE

Ann Arbor. Ml 48104

NEW DIMENSIONS IN COMPUTING

East Lansing. Ml 48823

COMPUTER HOUSE DIV.

Jackson. Ml 49202

COMPUTERLAND OF

GRAND RAPIDS

Kenlwood. Ml 49508

COMPUTRONIX

Midland. Ml 48640

COMPUTER MART OF ROYAL OAK

Royal Oak, Ml 48073

TRI CITY COMPUTER MART

Saginaw. Ml 48603

COMPUTERLAND

Southfield. Ml 48034

LEVEL FOUR PRODUCTIONS

Weslland. Ml 48185

MINNESOTA

COMPUTERLAND

Bloominglon. MN 55431

MINN. MICRO SYSTEMS

Minneapolis. MN 55454

MISSISSIPPI

OXFORD SOFTWARE CO.

Oxford. MS 38655

MISSOURI

FORSYTHE COMPUTERS

Clayton. MO 63105

COMPUTER COUNTRY

Florissant. MO 63031

GREATEST GRAPHICS

Springfield. MO 65804

NEBRASKA

OMAHA COMPUTER STORE

Omaha. NE 68127

NEVADA

HOME COMPUTERS

Las Vegas. NV 89109

NEW HAMPSHIRE

TRS-80 SOFTWARE EXCHANGE

Milloid. NH 03055

COMPUTERLAND OF NASHUA

Nashua. NH 03060

BITS. INC.

Peterborough. NH 03458 NEW JERSEV

COMPUTER LAB OF NJ Budd Lake. NJ 07828 COMPUTER EMPORIUM Cherry Hill. NJ 08002

COMPUTER MART OF NJ Iselm. NJ 08830 MSM ELECTRONICS Medford. NJ 08055 COMPUTERLAND Moms'town, NJ 07960 COMPUTERLAND Paramus. NJ 07652 COMPUTER NOOK Pine Brook, NJ 07058 COMPUTER CORNER Pompton Lakes, NJ 07442 COMPUTER ENCOUNTER Princeton, NJ 08540 TYPTRONIC COMPUTER STORE Ramsey. NJ 07446 NEW YORK COMPUTERLAND Buffalo. NY 14150 COMPUTERLAND Carle Place, NY 11514 COMPUTER SHOP OF SYRACUSE De Witt, NY 13214 THE COMPUTER TREE Endwell, NY 13760 LONG ISLAND COMPUTER GENERAL STORE Lynbrook. NY 11563 COMPUTER MICROSYSTEMS Manhassel. NY 11030 COMPUTER SHOPPE Middle Island. NY 11953 THE COMPUTER FACTORY New York, NY 10017 COMPUTER MART OF NEW YORK New York. NY 10016 DATEL SYSTEMS New York. NY 10036 AUTOMATIC SYSTEMS Poughkeepsie, NY 12603 COMPUTER HOUSE Rochester, NY 14609 THE COMPUTER STORE Rochester. NY 14618 HOME COMPUTER CENTER Rochester. NY 14607 THE COMPUTER CORNER White Plains, NY 10601 READOUT COMPUTER STORE Willramsville. NY 14221 NORTH CAROLINA BYTE SHOP Charlotte. NC 28212 COMPUTERLAND Charlotte, NC 28205 FUTUREWORLD Durham, NC 27707 BYTE SHOP Greensboro, NC 27401 MICROCOMPUTER SERVICES Hickory. NC 28601 BYTE SHOP OF RALEIGH Raleigh. NC 27605 OHIO

BASIC COMPUTER SHOP

Akron. OH 44314

CINCINNATI COMPUTER STORE

Cincinnati. OH 45246

21ST CENTURY SHOP

Cincinnati. OH 45202

DIGITAL DESIGN

Cincinnati. OH 45202

CYBER SHOP

Columbus. OH 43227

MICRO MINI COMPUTER WORLD

Columbus. OH 43213

COMPUTER SOLUTIONS

Dayton. OH 45409

DAYTON COMPUTER MART

Dayton. OH 45409

ASTRO VIDEO ELECTRONICS

Lancaster. OH 43130

COMPUTERLAND OF CLEVELAND

Maylield Heights. OH 44121

RADIO SHACK (Dealer)

St. Clairsville. OH 43950

OKLAHOMA

HIGH TECHNOLOGY

Oklahoma City, OK 73106

MICROLITHICS

Oklahoma Cily. OK 73127

HIGH TECHNOLOGY

Tulsa, OK 74129

OREGON

THE COMPUTER STORE

Corvallrs, OR 97330

CAMERA AND COMPUTER

EMPORIUM

Portland, OR 97205

COMPUTERLAND OF PORTLAND

Tigart, OR 97223

PENNSYLVANIA

BYTE SHOP

Bryn Mawr, PA 19010

PERSONAL COMPUTER CENTER

Frazer, PA 19355

COMPUTER AID

Lalrobe. PA 15650

THE COMPUTER WORKSHOP

Murrysvrlle. PA 15668

P.S.: VISICALC—Howdidyou ever do without it?

A B COMPUTERS Perkasie. PA 18944 MICROTRONIX Philadelphia, PA 19106 SOUTH CAROLINA DATA MART Greenville. SC 29607 TENNESSEE MICROCOMPUTER STORE Knoxville, TN 37919 COMPUTER LABS OF MEMPHIS Memphis. TN 38117 DOC'S COMPUTER SHOP Nashville, TN 37211 TEXAS

COMPUTERLAND OF AUSTIN

Austin. TX 78757

COMPUTERS 'N THINGS

Austin. TX 78731

MICRO COMPUTER SHOPPE

Corpus Christi. TX 78411

COMPUSHOP

Dallas, TX 75243

COMPUTERLAND

Dallas, TX 75231

KA ELECTRONICS SALES

Dallas. TX 75247

COMPUTER TERMINAL

El Paso, TX 79901

RAM MICRO SYSTEMS

Fort Worth. TX 76116

COMPUTERCRAFT

Houston. TX 77063

COMPUTERLAND OF HOUSTON BAY

Houston. TX 77058

NEIGHBORHOOD COMPUTER

Lubbock. TX 79401

COMPUTER PATCH OF SANTA FE

Odessa. TX 79762

COMPUSHOP

Richardson, TX 75080

THE COMPUTER SHOP

San Antonio, TX 78216

COMPUTER SOLUTIONS

San Antonio. TX 78229

WICHITA COMPUTER SYSTEMS

Wichita Falls, TX 76301

UTAH

ADP SYSTEMS

Logan. UT 84321

COMPUTER CONCEPTS GROUP

Salt Lake City, UT 84109

THE HI-FI SHOP

Salt Lake City, UT 84117

VERMONT

COMPUTERMART

Essex Junction, VT 05452

VIRGINIA

COMPUTER HARDWARE STORE Alexandria, VA 22314 COMPUTERS PLUS Alexandria, VA 22304 COW, INC.

Blacksburg, VA 24060 HOME COMPUTER CENTER Newport News, VA 23606 COMPUTER TECHNIQUES Richmond. VA 23235 THE COMPUTER PLACE Roanoke. VA 24015 CdMPUTER WORKSHOP Springfield, VA 22151 COMPUTERLAND Vienna, VA 22180 HOME COMPUTER CENTER Virginia Beach, VA 23452 WASHINGTON OMEGA NORTHWEST Bellevue, WA 98004 COMPUTERLAND OF SOUTH KING COUNTY Federal Way, WA 98003 YE OLDE COMPUTER SHOPPE Richland. WA 99352 THE COMPUTER SHOPPE Seattle. WA 98115 EMPIRE ELECTRONICS Seattle, WA 98166 PERSONAL COMPUTERS Spokane, WA 99202 COMPUTERLAND Tacoma. WA 98499 WISCONSIN BYTE SHOP OF MILWAUKEE Greenfield, Wl 53227 COMPUTERLAND Madison. Wl 53711 MADISON COMPUTER STORE Madison. Wl 53711 COMPUTERLAND Milwaukee, Wl 53222 FOX VALLEY COMPUTER STORE Neenha. Wl 54956 WYOMING COMPUTER CONCEPTS Cheyenne, WY 82001 AUSTRALIA

ELECTRONIC CONCEPTS PTY. LTD,

COMPUTERLAND

Sydney. N.S.W.

CANADA

COMPUSHOP

Calgary, Alberla T2N 2A4

THE COMPUTER SHOP Calgary, Alberta T2T 4T9 ORTHON COMPUTERS Edmonton. Alberla T5N 3N3 TJB MICROSYSTEMS Edmonton, Alberla T5M 0H9 CONTI ELECTRONICS Vancouver. B.C. V5W 2Z4 COMPUTER CITY Winnepeg, Manitoba R3P 0H8 COMPUTERLAND Winnepeg, Manitoba R3G 0M8 INTERACTIVE COMPUTER SYSTEMS Frederrckton, New Brunswick MINICOMP SYSTEMS Halifax. Nova Scotia B3K 2G1 KOBETEK SYSTEMS Wollville. Nova Scotia BOP 1X0 COMPUTERLAND Burlington, Ontario LYNTRONICS

Downsview, Ontario M2J 2W6

COMPUTER CIRCUITS

London. Ontario N6A 3H2

COMPUMART

Ottawa. Ontario K2A 1J2

COMPUTER INNOVATIONS

Ottawa, Ontario K1B 4A8

RICHVALE TELECOMMUNICATIONS

Richmond Hill, Ontario

THE COMPUTER CENTRE

Sarma. Ontario N7T 1B4

COMPUTER MART

Toronto, Ontario M4G 3B5

THE COMPUTER PLACE

Toronto, Ontario M5V 1Z1

COMPUTER SPECIALIST

Toronto, Ontario M3K 1E7

HOME COMPUTER CENTRE

Toronto, Ontario M2M 3W2

HOUSE OF COMPUTERS

Toronto, Ontario

MARKETRON

Toronto. Ontario

MICRO-WARE

Toronto. Ontario M4E 2L2

COMPUCENTRE

Montieal, Quebec H1J 1Z4

FUTUR BYTE

Montreal. Quebec H3B 3C9 CUSTOM COMPUTING SERVICES Saskatoon, Saskatchewan S7K 2B5 DIGITAL SERVICE

Saskatoon, Saskatchewan S7J 3A9

PUERTO RICO

MICROCOMPUTER STORE

Rio Piedras. PR 00921

ENGLAND

BYTE SHOP

11 ford. Essex

INFOGUIDE

London

CYTEK

Manchester M4 3E4 PETSOFT

Newbury. Berkshire RG13 1PB

KEEN COMPUTERS

Nottingham NG7 1FN

T 8 V JOHNSON

MICROCOMPUTERS

Camberly. Surrey

PETALECT

Woking, Surrey

J&J ELECTRONICS

Bexhill-on-Sea, East Sussex

OPTRONICS

Twickenham TW1 4RY

DENMARK

MICRO SYS

Copenhagen V1BYJ

FRANCE

SVEA

Paris 75008 GERMANY BECK COMPUTERS 8 Munchen 70 ING,W HOFACKER 8 Munchen 75 HOLLAND COMPUTRON Den Haag 2502 ER ITALY

HOMIC MICROCOMPUTERS SRL

20)23 Milano

SCOTLAND

MICRO CENTRE

Edinburgh EH3 5AA

SINGAPORE

THE COMPUTER CENTRE PTE. LTD.

Singapore 7

SWEDEN

MICROFUTURE

Stockholm 10322

SEMIDAKO

Uppsala 75353

SWITZERLAND

INTERFACE TECHNIC

Basel

INGENIEUBUREAU Basel 1

DIALOG COMPUTER Lucerne ELBATEX Wetlingen

Circle 302 on inquiry card.

BYTE July 1979

119

Sonic

Anemometry for the Hobbyist

Neil Dvorak Meteorological measurement generally

2562 s Newport concerns itself with five variables: air pres

Denver CO 80224 sure; humidity, temperature, wind speed,

and wind direction. A single sonic anemometer can sense each of the last three variables. Accuracy and linearity are excellent. Additionally, the actual air temperature is detected in a manner which is insensitive to solar radiation, which can easily heat up conventional thermometers.

In a sonic anemometer, wind vane and rotating cups are replaced with transducers which measure the speed of sound as a function of wind velocity and temperature. Commercially available research grade instruments cost upwards of $10,000, and until recently employed analog computational circuitry.

The arrival of the microcomputer and its associated display techniques makes such a scientific instrument economically feasible as an experimenter's project. As a bonus, data can be logged into memory over time, averaged, and displayed as desired. A tantalizing option involves the attachment of a fast but inexpensive 4 bit analog to digital converter which enables the instrument to double as an ultrasonic echo radar device. At this time, however, such investigations have progressed only to echoing observations on the time base of a triggered oscilloscope.

In operation the instrument uses a pair of pulse travel times in the North-South direction and a corresponding pair for the East-West direction. These vector components are easily processed into a resultant wind vector with magnitude and direction. Physically, two sets of ultrasonic transducers face each other at opposite ends of a path. Simultaneous sound fronts and eventual reception yield two travel times whose difference is a measure of wind speed along the path.

Fundamental Relationships

The following derivation yields wind speed:

D

At=t2 -t, =

= 2DW

c2-w2

Therefore W =

W

2DW C2

D

C+W

2D

H

(i)

(2)

where C = speed of sound D = path length W = wind speed t = difference of travel times.

The resultant wind speed, Wp being the sum of two orthogonal vectors, is simply expressed as:

W = n/w2 + W2

(3)

Temperature is found by adding a pair of travel times:

h + t2

D

D

2DC

C+W C-W C2-W2

2DC

C2

2D C

(4)

If C = 20 V Tk is substituted in the above relationship:

Tt =

2D

_20(t1 +t2) where Tk is degrees Kelvin.

, (5)

Since the velocity calibration of the instrument varies about 3.5% over a 0°C to 30°C range, the temperature measurement can be used to correct the velocity readings. Using equations (2) and (4) above:

W=

2D(tl -t

lh +t2)2

(6)

Wind speed measuring resolution can be determined if the computer's input cycle time and anemometer path length are known. Recall that:

W = At(— \2D

1 20 July 1 979 © BYTE Publications Inc

it's on the

INTRODUCING — LOUMAR MANAGEMENT SYSTEMS SOFTWARE

a)

programs to give you a comprehensive package for business management

The Loumar General Accounting System is a versatile, fully integrated software package designed for small and medium sized businesses. It is also suitable for CPA's and bookkeeping service films.

The complete software system is composed of four main modules: GENERAL LEDGER, ACCOUNTS RECEIVABLE, ACCOUNTS PAYABLE AND PAYROLL. Each module may be used separately or in combination with any other module. Supplied on disk as run-time modules. Source not available.

All software is written in CBASICII and utilizes the powerful CP/M operating system. General system features include:

Automatic posting to general journal • Strict error detection • Report production on demand • Consistent operating procedures • User oriented. No previous computer knowledge reguired • Designed by accounting professionals • Comprehensive, well presented reports and manuals • Single or multiple client capabilities.

HARDWARE SPECIFICATIONS

The end user's microcomputer must satisfy the following requirements: 48k RAM

Dual floppy disk system

Printer with tractor. All printing is done in 80 col. format CRT with at least a 64 character by 16 line display CP/M and CBASIC II

Write for our brochure - Dealerships still available Contact: Distributor

MISSION CONTROL • 2008 WILSH1RE BOULEVARD, SANTA MONICA, CA 90403 • (213)829-5137

Circle 237 on inquiry card. byte July 1979

PAYROLL: Up to 500 employees - $550.

ACCOUNTS RECEIVABLE: Up to 1000 customers and 1000 monthly

transactions - $550 ACCOUNTS PAYABLE: Up to 1000 vendors and 1300 monthly

transactions - $400 GENERAL LEDGER: Up to 200 accounts with 2000 entries

$450

121

Assume a path length of 4.84 feet and C = 1100 feet per second. A Z-80 based computer operating at a system clock frequency of 2.5 MHz, for example, can accept input no faster than 8 jus per byte. Under these conditions, resolution is:

8X 10~6 seconds X (1100 feet/second)2 2 X 4.84 feet

= 1 foot/second.

For physical construction convenience I chose a three foot path length. This gives a resolution of nearly 1 mile per hour.

Construction Details

Rigid support should be used for the transducer mounting. I chose 3/4 inch plastic pipe for low cost and ease of assembly. See figure 3 for more detail. The angle a is not critical. Just keep in mind that the height (H) must be high enough to prevent off-axis energy from the transducers from bouncing off any hardware in the bottom center of the assembly (such as a printed circuit card). These reflections can return to the point of origin before arrival of the desired pulse. The plastic pipe for both axes can easily be fastened to a wooden base frame. If you need a permanent installation, you can investigate better support arrangements.

The ultrasonic transducers (Model MK109) range from one to two dollars apiece on the surplus market, and they can be conveniently supported by pieces of 3/4 inch thin wall plastic pipe. Use shielded wire between the transducers and the interface electronics. The electronic circuit card should be sheltered from the elements. (A plastic sandwich bag will work for the short term.) Unshielded wire, such as a ribbon cable, can be used between the computer and the interface.

Mechanical adjustment, besides the obvious line-of-sight alignment, consists of physically moving one or more transducers in their holders so that both component vectors are zero in still air. A program such as the demonstrator routine in listing 1 should be used for this adjustment.

In wiring the preamplifier section of the receiver, note that all the 74C04 integrated circuits are connected to a separate 5 Vzener regulated supply. The shields of the receivertransducer coaxial cables connect to the negative side of this zener diode. This preamplifier common connects to ordinary digital ground at only one Ideation — a lead from the negative side of the zener to supply ground.

Interface Electronics

Figures 1 and 2 may seem to indicate that considerable effort was wasted on obtaining an enormous signal to noise ratio. Not so. The barium titanate transducers (commonly used in intrusion alarms), having inherently high Q (ratio of inductance to resistance) and self resonance, are efficient only after many oscillations have built up. As impulse generators they are only marginally acceptable; I used them for their low cost and availability.

Complementary metal oxide semiconductor InverterSj biased in their linear region, perform as stable high gain preamplifiers. The logic state edge detectors, formed by the comparator and type D flip flop combination, respond to the first negative or positive cycle received that exceeds a preset noise threshold.

The triacs are used to switch the output of the step-up transformer to either pair of transmitting transducers. Exclusive OR gate IC7c generates a delayed start strobe to the pulse generating circuitry. This delay allows the steering triacs to settle and permits only the desired set of transducers to activate. The monostable multivibrator ICIOa,sensitive to transitions of either polarity, allows a single line from the output port to strobe the pulse generator and also select the desired wind direction to be measured.

The trigger threshold of all receiver circuitry is determined by a single resistor, Rt, in a simple voltage divider string. Rt sets the difference between the comparator trip point levels, V|_| and V|_. The receiver must be sensitive enough to trigger on the second, third, or fourth incoming half cycle, but it must not be so sensitive as to latch up on extraneous noise. Increasing the value shown in the schematic, for example, decreases output sensitivity. Such action may be necessary if different path lengths or transducers are used.

Transformer T should have a turns ratio of approximately 10:1. A small 120 V to 12 V filament transformer will work here as a step up device, even at 40 kHz.

A precautionary note: when testing the pulse generating circuitry, do not run it continuously with transducers connected because the 200 V peak to peak signal could result in a burn-out of these devices.

Software

Listing 1 contains a program written for the Z-80 microprocessor which displays data from the anemometer. It sends data to one bit of an output port and accepts data from Text continued on page 132

1 22 July 1 979 © BYTE Publications Inc

Figure 7: Schematic diagram of receiver section of circuit, negative or positive half cycle to exceed a noise threshold.

The arrival time of a pulse is perceived by the receiver as the first

July 1979 © BYTE Publications Inc 1 23

1 24 July 1 979 © BYTE Publications Inc

Circle 35 on inquiry card

Table I: Power table for the integrated circuits used in figures 1 and 2.

Number

Type

+5 V

GND

-12 V

+12 V

1 A

/

IC2

74C04

14

7

IC3

74C04

14

j

IC4

12

<J

IC5

7474

14

7

IC6

7474

14

7

IC7

7486

14

7

IC8

MC3302P

12

3

IC9

555

8

IC10

74123

16

8

F/gt/re 3: Structural diagram of the sonic anemometer transducer apparatus. Shown are the two transducers for one axis; only a cross section of the other axis is seen. The electronic circuit card is seen near the center of the assembly. The measuring resolution is a function of the distance D between the transducers. The angle a should not be less than 30 degrees.

J

INTERFACE ELECTRONICS

vzzk>

-CROSS SECTION VIEW OF REMAINING AXIS PIPE

Listing I: Program in Z-80 assembler code to gather data from the sonic anemometer and display wind direction on a video monitor.

S 0600

0600

0601

0602

0603

0606

0607

0608

0609

060A

0608

060C

060D

060E

060F

0610

0612

0614

0617

061A

061D

0620

0622

0624

0627

062A

063B : 00 00 0 0

CD 4 0 0 7 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 00 3 E D3 CD CD CD CD 3 E D3 CD CD CD

0 0 0 2 6 0 3 4 00 BD 0 1

0 2 6 5

1 0 34

0 7 07 07 08

0 7 07 07

NOP

NOP

NOP

CALL

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

LD

OUT

CALL

CALL

CALL

CALL

LD

OUT

CALL

CALL

CALL

0600 thru 063B triggers the pulse generator and calls all the support routines in their proper sequence.

0740 :

A,00 : 02 : 0760 : 0734 : 0700 : 08BD : A,01 : 02 : 0765 : 0710: 0734 :

Listing 7 continued on page 126

•••

Participate in the exciting, fastgrowing retail personal computer business.We're Byte Industries Incorporated," the oldest microcomputer distributor in the country, and we're offering individual Byte Shop" dealerships nationwide.

As a Byte Shop" dealer you get:

• The nationally recognized Byte Shop" Trademark

• A broad full-line inventory of small-business and personal computer products

• National and regional advertising support

• Store development guidance

• The benefits of a national chain organization without franchise fees or ongoing royalties

• Exclusive, protected territories.

To qualify, you should have an interest in computers, combined with the desire and ability to run your own business. Retail and/or sales management experience is a definite plus. A theoretical or working knowledge of computer technology is also helpful, though not necessary. Investment is roughly $80,000, with an initial equity contribution of $40,000.

If you're ready for your own business and have what it takes, write or calI Mike Chase now.

408-739-8000

Incorporated - A LOGIC Company

Yes, I'm interested. Please send me your Byte Shop" dealership information packet today.

NAME

ADDRESS

CITY

STATE

.ZIP.

PHONE

Byte Industries. Incorporated" 930 West Maude Sunnyvale, CA 94086 (408) 739-8000

July 1979 & BYTE Publications Inc 1 25

Circle 385 on inquiry card.

SUPPLIES

364

ITEMS.

SOFTWA

GUIDE

The latest Buyers-Guide of microcomputer software, accessories and supplies is now available. Up to the minute releases on software and accessories for the APPLE II and the TRS-80 as well as a wide range of computer supplies are listed on these sheets. This is the most comprehensive guide of its kind available today. If you own a microcomputer you can't afford to pass up this offer. If you are a supplier of software or accessories you'll want a copy of this guide to see if your products are listed because if they aren't you are missing out on sales.

$3.00

(we will send you a certificate worth $3.00 off of your first purchase.)

AUTOMATIC INSTANT UPDATE

We send you the current Buyers-Guide bound in a handsome 3 ring binder. Monthly you will receive current updated pages to add to the catalog. A directory of suppliers, their phone numbers and their addresses are always at your finger tips. We publish user comments on items purchased. As a subscriber to Automatic Instant Update you will be the first to learn of new software releases, you'll get some great buys on overstocked items or new release specials, and you'll never have to search again. One years service $25.00

Wallace

Electronics, Inc.

4921N. Sheridan Rd. Peoria, Illinois 61614

Listing 1 continued from page 125:

062D

CD

0 0

0 7

CALL

0700 :

0630

UU

D 4

0 8

CALL

08D4 :

0633

L>U

0 A

0 8

UALL

080A :

Uooo

L>U

7 D

U o

L-ALL

UoYb .

0639

C 3

0 0

0 6

JP

0600 :

READY

S 080A

0849

080A

2 1

D F

OA

LD

l 11 nA hi— .

HL.0ADF .

080D

3 A

F 3

0 6

LD

A,(06F3):

0810

4 7

LD

B,A :

081 1

3 A

F 2

0 6

LD

A,(06F2):

0814

9 8

SBC

B :

0815

3 8

0 8

JR

C, 081F :

nni7

UO I f

*3 O o c.

r I

u o

i n

(UoM), A .

081A

OU

4 D

0 8

CALL

084D :

081 D

1 Q 1 O

n q U o

ID

JH

"0827* :

n h 1 p

t u

A A

M err"1 IN LLj

■

0821

Q O O £.

r 1

0 fa

i n LU

(06r1),A :

0824

c-r\ L-U

5 1

0 8

CALL

0851 :

0827

3 A

F 5

0 6

LD

A.(06F5):

082A

4 7

LD

D A ■

B,A .

082B

3 A

F 4

0 6

LD

A,(06F4):

082E

9 8

SBC

B :

Uoc r

o o

U v_»

ID

0831

3 2

F 6

0 6

LD

(06F6),A :

0834

2 8

0 5

JR

Z, 083B* :

0836

A U

0 8

CALL

08A0 :

0839

0 0

NOP

U U

NOP

083B

1 8

OA

JR

*0847* :

083D

ED

4 4

NEG

083 F

3 2

F 6

0 6

LD

(06F6),A:

0842

2 3

INC

HL:

0843

2 3

INC

HL :

0844

3 D

DEC

A:

0845

2 0

F B

JR

NZ,*0842*

084 7

3 6

A A

LD

(HL),AA :

Uo4y

u y

RET

READY

S 087B

0892

*

087B

3 E

7 F

LD

A,7F :

no 7 n Uo (U

r A

0 0

CALL

00FA :

noon UooU

0 1

0 0

0 4

LD

BC,0400 .

UoOJ

O 1

n n U U

n Q

u y

1 R

LU

nL.uyuu.

UO OD

7 E

i n LU

A,(HL):

0887

D3

0 0

OUT

00 :

0889

AF

XOR

A:

088A

D3

0 0

OUT

00:

088C

2 3

INC

HL:

088D

0B

DEC

BC:

088 E

7 8

LD

A,B:

088F

B1

OR

C:

0890

2 0

F4

JR

NZ/0886*

u o y d

C9

RET

READY

S 084D

086E:

084D

3E

4 2

LD

A,42 :

084 F

1 8

02

JR

*0853* :

0851

3 E

4A

LD

A,4A:

Uo Do

32

6A

0 8

LD

(086A),A .

0856

3A

F 1

0 6

LD

A,(06F1):

0859

5 7

LD

D,A:

085A

FE

0 0

CP

00 :

0S5C

C8

RET

Z:

085D

DE

0 7

SBC

07 :

085F

3 8

04

JR

C,*0865* :

0861

3 E

0 7

LD

A,07 :

0863

1 8

0 1

JR

"0866* :

0865

7A

LD

A,D :

0866

0 1

4 0

0 0

LD

BC.0040 :

0869

ED

4 2

SBC

HL.BC:

086B

3D

DEC

A :

086C

20

FB

JR

NZ,*0869*

086E

C9

RET

READY

S 08BD

08D2 :

08BD

3E

4 6

LD

A,46 :

08BF

3 2

F0

0 8

LD

(08F0),A :

08C2

CD

EB

08

CALL

08EB :

08C5

32

F2

0 6

LD

(06F2),A :

08C8

3E

4 E

i n

L.LJ

A 4E '

08CA

32

F0

08

LD

(08F0j,A:

08CD

CD

EB

08

CALL

08EB :

08DO

32

F3

06

LD

(06F3),A:

READY

S 08D4

08F4 :

08D4

3E

5 6

LD

A,56 :

08D6

3 2

F0

08

LD

(08F0),A:

080A thru 0849 positions an ASCII asterisk in the video memory buffer.

087B thru 0892 outputs the video buffer to the 1 6 by 64 character generator.

084D thru 086E is a subroutine to raise or lower the asterisk for routine 080A.

08BD thru 08D2 extracts and stores vertical (N/SI travel times.

08D4 thru 08EA extracts and stores horizontal IE/WI travel times.

Listing 1 continued on page 128

126 July 1 979 © BYTE Publications Inc

w

w

The line your reputation should be on.

When a computer supplier or retailer sells equipment, his reputation is on the line.

And when the customer has to justify his investment decision, his reputation is on the line too.

So, naturally, everybody's a lot better off on a reliable line. Like ours.

With a name like Industrial Micro Systems, we wouldn't think of building anything short of industrial standards... even our S-100 products. No short cuts or jumpers.

All of our boards — CPU, memory and controllers — are made from real fiberglass instead of a plastic substitute. And contacts are gold plated over a copperion barrier of nickel.

Every disk enclosure features a heavy-gauge steel chassis, and a heavy duty power supply. Built to take it.

Then come our complete systems. Aside from the disk drives, we manufacture every component that goes into them. Even the desk that goes around them. So

we can vouch for rugged reliability inside and out. Two complete systems:

Our new Series 5000 features a megabyte of storage on integral mini-floppies. And our Series 8000 is all business too. It can handle up to three megabytes on 8-inch drives. A large library of software, growing daily, includes CP/M* PASCAL, and FAMOS** Breaking the 64k barrier.

Using Industrial Micro Systems 32k memory boards with Memory Management, our systems can handle up to 576k RAM internally. More in store.

That's not the end of the line. It's growing all the time, along with our reputation for quality. Put your reputation on the line. Our line.

For more details just call or write. Supplier/dealer inquiries welcomed.

Industrial Micro Systems, 628 N. Eckhoff, Orange, CA 92668. (714) 633-0355.

INDUSTRIAL MICRO SYSTEMS

The great unknown. Trademark of Digital Research Trademark of MV/T Systems

Circle 173 on inquiry card.

*P.E.T.*Food*

Household Finance Part 1

CftTEGORV AMOUNT

AUTO 19.46 INCOME 2.75

MRTGE 320.73 TAXES 8

CLOTHES 448.61 MEDICAL 218

EN TRTAIN 21.69 INSUR 281.55

EDUC 342.96 SAVINGS 8

FOOD 229.78 UTIL 36-2?

GIFTS 13.44 VACATION 1823.41

HOUSE 533 MISC 78.13

♦ ♦ + ♦♦**»«***♦*.♦♦*«»****»**♦*««*«»*»*»»*»

Tota 1 ai Total i

Do you want a s period?<V or N)

mount spent was 4358.99 ncome was 2.75

want a spending profile for this

Household Finance Part 2

Part 1 inputs, lists, adds, updates, changes, and deletes items. Writes data to a cassette tape.

Part g reads data tape;

gives single item, single month and year-to-date sums.

Both parts $15.00

»Also Available « SPACE WAR.sio.oo Household Utility 1

C3 Programs] ... S12.0 O

Dual Joystick Interface $45.00

SEAWGLF. .. $10.00

BREAKOUT. .$10.00 LIFE $20.00

ORDERS: Send check, money order, or VISA/Mastercharge (include expiration date) and add $1.50 shipping. Calif, residents add 6% sales tax.

INFORMATION: More information on these and many other currently available programs is available on a free flyer. Write directly to Creative Software.

Circle 83 on inquiry card.

Creative Software

P.O. BOX 4030, MOUNTAIN VIEW, CA 94040

128 July 1 979 © BYTE Publications Inc

Listing 7 continued from 126:

READY:

S 0740 074F:

READY:

08D9

CD

EB

08

CALL

08EB:

08DC

3 2

F A

u o

i n

LU

{06F4),A :

08DF

3 E

c p o c

i n

LU

A 5E '

nftF 1

J c.

f n p u

u 0

LU

(08F0'),A:

UO t H

pn

F P.

n o. U o

PA| 1

L-ALL

08EB :

08E7

O c.

F ^

r o

u o

i n

LU

(06F5),A :

Uotn

P Q

DFT

nt 1

UOLU

A F

m r

A:

UolO

O 1 c. I

n n u u

n n u u

LU

HL.0D00

uo c r

PR

c f

RIT

3,(HL):

DP. F 1

p n L* u

OFT nt 1

NZ;

no fo uo r d.

IMP

HL:

uo r o

'X P

IMP

A:

n a f/

U 0 r4

1 0 I 0

F Q

r y

ID

Jn

*

08EF* :

READY

O U f uu

U 1 Jn

0700

0 6

0 0

i n

LU

B,00 :

0702

0 E

0 2

i n

LU

C,02 :

0704

2 1

0 0

0D

LD

HL0D00

0707

ED

R 0

IM ID Mn In

0709

C9

RET

ri7n a

U f Utt

n n u u

MAD INUr

070B

0 0

MOP

u i

n n u u

IMUr

n7nn

n n u u

MOD

070E

0 0

MOD

070F

0 0

INUr

0710

3 E

CE

LD

A,CE:

0712

3 2

1 F

0 9

LD

(091F),A:

0715

3 E

D3

LD

A,D3 :

0717

3 2

DF

OC

I n

LU

(0CDF),A

071A

3 E

C 5

i n

LU

A,C5:

071C

3 2

F F

n A u M

i n

LU

(0AFF),A

071 F

3 E

D7

LD

A,D7 :

0721

3 2

CO

OA

LD

(0AC0),A

0724

3 E

E F

LD

A.EF:

0726

32

DF

OA

LD

(0ADF),A

0729

C9

RET

072A

0 0

NOP

072B

00

NOP

072C

00

NOP

072D

00

NOP

072E

00

NOP

072F

00

NOP

0730

06

0 1

LD

B,01 :

0732

1 8

0 2

JR

0736* :

0734

06

0 1

LD

B,01 :

0736

0E

7F

LD

C,7F:

0738

ED

BB

OTDR

073A

C9

RET

0740

2 1

0 0

09

LD

HL,0900 :

0743

06

0 0

LD

B.00 :

0745

3E

AO

LD

A,A0 :

0747

7 7

LD

(HL),A:

0748

2 3

INC

HL:

0749

1 0

FC

DJNZ

*0747*:

074B

7 7

LD

(HL),A :

074C

2 3

INC

HL:

074D

1 0

FC

DJNZ

*074B* :

074F

C9

RET

READY

S 0760

0770

0760

2 1

0 0

0B

LD

HL.OBOO

0763

1 8

0 3

JR

*0768* :

0765

2 1

0 0

OC

LD

HL.0C00

0768

06

0 0

LD

B,00:

076A

3E

AO

LD

A,A0 :

076C

7 7

LD

(HL),A:

076D

2 3

INC

076E

1 0

FC

DJNZ

*076C*:

0770

C9

RET

READY

S 08A0

08AB :

08A0

4 7

LD

B,A:

08A1

DE

0 F

SBC

OF:

08A3

38

0 2

JR

C,*08A7*

08A5

06

0 F

LD

B,0F:

08A7

2B

DEC

HL:

08A8

2B

DEC

HL:

08A9

1 0

FC

DJNZ

*08A7*:

08AB

C9

RET

08EB thru 08F4 counts the number of memory spaces necessary to find a bit set in the data.

0700 thru 0709 inputs a block of data from a port to a page in memory.

0710 thru 0729 places the N-S-E-W graticule in the buffer allocated for the video display.

0730 thru 073A is for delay only.

0740 thru 074F erases half the video buffer.

0760 thru 0770 are the remaining video erase routines.

08A0 thru 08AB moves the asterisk to the left in proportion to the magnitude of the horizontal (E/W) wind vector. Limits the data to 1 5 decimal to prevent overwriting other memory.

Announcement I. The first eight Personal Programs® from Aladdin Automation are waiting for you now at your neighborhood computer retailer or direct from Aladdin.

Now you can get your full share of Aladdin magic in every one of these Personal Programs®:

Math-Tor-Mind A delightful, educational learning experience for your pre-school child. Watch the smile on your child's face as a correct answer makes the mathematician smile on the screen before you. A nursery song also serves as a reward for learning elementary addition and subtraction. With Aladdin's Math-TerMind® your child's pathway to learning will be fun-filled ... for both of you. Math-Ter-Mmd9. The first release from the Aladdin Education® Series (nursery song currently available only on Apple II® program)

Lunar Lander In a controlled descent, you're just seconds away from your first landing on the cold, forbidding surface of the moon. As you navigate your delicate spacecraft downward to the safety of Moonbase, you must be ever watchful of the dangers rising to meet you with each passing moment: a fuel level fast approaching zero, deadly meteor showers that come from any direction, at any time; sheerfaced rock cliffs and rough terrain; choosing the correct landing pattern and rate of descent. Aladdin's Lunar Lander. Your chance to reach out and touch the stars . . . without leaving the safety and comfort of your own chair. The first release from the Aladdin Simulation® Series.

Craps All eyes in the casino are on you. The dice are in your hands. Lady Luck sits at your shoulder, whispering . . . "Just one more time. Try your luck just one more time." You throw . . . and watch the dice tumbling on the screen. With Aladdin's Craps you play against the computer, so it's awfully tough to win. But when you do. it's an experience you're likely never to forget. Craps. An exciting, heartpounding Personal Program"*. The first release from the Aladdin Las Vegas" Series.

Mastermind A challenging game of intrigue, centuries old. that will give you full chance to test your powers of logic, deduction and reason. And test them you will, as you try and solve the computer's puzzle, using clues as they're provided one-by-one. You control the degree of difficulty in this classic Personal Program® that offers one simple, yet all-consuming challenge: beat the Mastermind in a direct, one-on-one battle of wits. Aladdin's Mastermind. The first release from the Aladdin Old Favorites® Series.

Tic-Tac-Toe Five different levels of difficulty allow a person of any age or skill to take part in this relaxing, enjoyable game that can act as a learning tool, as well. Level I. for example, is suitable for children and is excellent also for teaching simple mathematics. The computer plays just about perfectly at Level V Just about, that is. so go ahead and take your best shot. See if you can beat the computer in this traditional favorite of young and old alike. Tic-Tac-Toe. Another first release from the Aladdin Old Favorites® Series.

Jungle Island® Shipwrecked in a raging storm at sea, miraculously you survive only to find yourself stranded on a seemingly deserted jungle island. Without food, water or supplies of any kind, you begin to try and find your way to safety. The computer will be your eyes and ears as you explore your jungle island and all the mysteries and dangers that lie in wait for you. Jungle Island® A captivating first release from the Aladdin Adventure® Series.

Stix® Aladdin's Stix® can be played with 2 to 5 piles of st icks and between 1 and 1 9 sticks in each pile. The object: to be the one to pick up the last stick. Sounds simple? Yes. but you're playing against the computer. Take heart, though, because you can control the degree of difficulty in this update of the ancient game of Nim. Stix®. Another first release from the Aladdin Old Favorites® Series.

Super Pro Football® Here's your chance to be more than just an armchair quarterback. With Aladdin's Super Pro Football® you can replay any Super Bowl game, from the first, between Green Bay and Oakland, to last year's classic victory by Pittsburgh over Dallas. For once you can turn back the clock and go for that one big play that made the difference between victory and defeat in pro football's biggest game of all. Super Pro Football®. The first exciting release from the Aladdin Super Pro® Series.

Visit your neighborhood computer retailer or contact Aladdin direct to get your full share of the magic in Announcement I, the first eight Personal Programs® from Aladdin Automation.

Welcome to the All-New World of Aladdin. And Get Ready to Make Your Own Magic

A/ODM ATTOM/TTKDN, MC A,4bDN COMPUTE? CORP

3420 Kenyon Street. Ste. 131. San Diego. CA 9211

Design and copy by Campbell Marsh Graphic Communications

BYTE July 1 979 129

Table 2: Summary of actions taken by program in listing I.

1. 2. 3. A. 5. 6. 7. 8. 9.

10. 11. 12.

Output to a port to trigger the North-South transducers. Erase part of the video buffer (must be a time-invariant task). Input a block of data into memory from anemometer port. Examine memory, extract, and save North-South travel times. Output to port to trigger East-West transducers. Erase remainder of video buffer. Input a block of data into memory.

Examine memory, extract, and save East-West travel times.

Move cursor (equivalent to head of resultant wind vector) in video memory buffer appropriate horizontal (East-West) and vertical (North-South) distances from origin.

Display the contents of video buffer on the video monitor. Compute and display the temperature, (optional) Go to step 1.

Figure 4: Block diagram of anemometer hardware.

)T R( TRANSDUCERS

O

PULSE GENERATOR

V

AMP

AMP

V

RECEIVER

DEADEN

ONE-SHOT

-o BIT 0

EDGE DETECTOR

i BIT 0

EDGE

DETECTOR

• BIT I

BIT 2

IDENTICAL CIRCUITRY FOR REMAINING VECTOR

' BIT 3

Figure 5: Timing relationships of signals present in the sonic anemometer.

STROBE FROM COMPUTER

IMPULSE TO TRANSDUCER

ULT

PULSE BURST FROM SAME TRANSDUCER

AMPLIFIER OUTPUT

SIGNAL FROM EDGE DETECTOR

TIME

1 30 July 1 979 © BYTE Publications Inc

Both our UNCommon Dynamic and our UNCommon Static RAMS have the following features and specifications:

• They are all GUARANTEED to be compatible with the Following S-100 systems:

CROMEMCO. IMSAI. ITHACA AUDIO. MITS. NORTH STAR. PROCESSOR TECHNOLOGY. TDL.TEI. VECTOR GRAPHICS, and othet S-100 systems.

Both of Our UNCommon Dynamic RAM Series, the DM B-6400 and the DM-6400, feature:

• 04K bytes of dynamic RAM with on board transparent reFresh.

• S-100 interface compatible, with crystal controlled timing INDEPENDENT of bus ot processor timing.

• No wait states with 8080 or 2-80 to 1MHz. Up to 5MHz with I wait state.

• Memory selectable or deselectable in 4K byte increments.

• Low power. 8 watts maximum, in 64K byte configuration

Our UNCommon Static RAM Series, the SMB 3200, features:

• Memory Bank select capabilities: Either two (2) I6K byte banks of memory, or one (I) 32K byte bank per board.

• 32K bytes of low power static RAM

• No wait states with 8080. 8085. or Z-80 processors up to 5MHz

• Addressable in 4I< byte increments at 4K boundaries. Deselectable in 4K byte increments.

• NEW PRODUCT •

64K bytes of fast, low power dynamic RAM. MEMORY BANK SELECT

$89500

lot mcxtrl DMB 6400

64K bytes of fast, low power dynamic RAM. $79500

tor model DM - 0400

• NEW PRODUCT*

32K bytes of faster Static RAM which MEMORY BANK SELECT $69500

10. mc.u-i SMB 3200

Announcing the Model DMB 6400 Series of UNCommon Dynamic RAMS. This Series incorporates the features which are standard in the DM-6400 Series and adds the following capabilities:

• MEMORY BANK SELECT which is compatible with CROMEMCO.

NORTH STAR, and othet systems using output port bank select.

• 250 ports selectable (including CROMEMCO 40H and NORTH STAR COH)

• Eight (8) 64K bytes banks ol memory per output port

• Each IGK bytes of addressable memory space may be individually set to start at 0000. 4000. 8000. or C000 and can be set for any of the 8 banks on one selected output port. Tire bank memory size can be incremented from I6K bytes to64K bytes in 16K increments, allowing 5I2K byte bank sizes.

• Total memory addressing ro over 100 Megabytes byusing different I O ports for memory conrrol.

UNCommon Dynamic RAMS with^ MEMORY BANK SELECT.

□ DMB 6400 64K RAM

□ DMB 4800 48K RAM

□ DMB 3200/32K RAM

UNCommon Static RAMS MEMORY BANK SELECT.

□ SMB 3200/32K RAM - *69500

UNCommon Dynamic RAMS

□ DM 6400/64K RAM - 579500

□ DM 4800. 48K RAM - s69500

□ DM 320O/32K RAM - s595°°

with

All of our UNCommon Dynamic and Static Series RAMS feature the following:

• Inputs ate RC Filtered and buffered with I LS TTL load. Compatible with terminated or unierminated busses.

• Outputs ate all tri-state.

• Disc compatible. DMA compatible

• Phantom memory selectable on pin 67.

• DIP switch selectable addressing.

• Reliability — all boards Fully tested and butned-in.

• rULL DOCUMENTATION - Schematics, layout, parrs list, theory of operation, timing diagrams, and option selection.

• Industrial quality design, components and construction. Glass epoxy boards. Fused, double solder masks. Silk screened legends. Gold plated connector contacts. All lC's socker mounted

• Guatanteed performance on parrs and labor for one year.

MEASUREMENT

systems <k controls

incorporated

867 North Main Stteer Orange. California 92668 Telephone: (714) 633-4460

for the above products see yout local dealer or order directly.

ORDERS - BA. VISA. MASTER CHARGE, money orders, or personal checks. Please allow 14 days for checks to clear bank. California residents please add 6% sales rax to your order.

All orders shipped postpaid. All orders in U.S. funds. Please add 10% on all orders outside the U.S.A. and Canada.

Circle 215 on inquiry card.

BYTE July 1979

131

Photo 1: Wind direction display as it appears in the 16 line by 64 character format on the video monitor. The wind speed and velocity are indicated by the position of the asterisk with respect to the origin at center.

Photo 2: The interface electronic circuits are housed inside a convenient but necessary weather barrier.

Photo 3: This view shows the plastic pipe construction of the sonic anemometer and the positioning of the transducers.

Text continued from page 122:

four bits of an input port. The composite wind vector is displayed on a video monitor in a 16 line by 64 character format. The program does not include a routine for computing the square root of the sum of squares; the plotting method used in the video formatting makes this unnecessary.

1 K bytes of memory is allocated for video display storage. A fixed cardinal direction graticule and an asterisk varying with the wind vector are placed in this buffer by subroutines. For each complete measurement by the transducers, the program erases and restores the video buffer. The position of the asterisk with respect to the center of the screen indicates wind direction and magnitude. Photo 1 shows the display. This arrangement, although cramping the display to only a ±8 unit variation in the NorthSouth direction and allowing a ±32 unit variation in the East-West direction, still permits an interesting, virtually instantaneous display of wind activity.

Some of the subroutines in the listing have been split up so that the computer is doing useful things even during the transit times of the sound pulses (eg: erasure of the video buffer). The program measures the pulse travel times in a manner analogous to a counter. At a fixed time after pulse initiation, the input routine begins to look at a particular pulse has arrived flip flop (part of the hardware interface that connects to an input port) and records its logic state, 0 or 1, into an initial location in memory. This routine repeats itself 256 times, each time entering another observation into the next memory location allocated for logging. Checking for a 1 state (pulse has arrived) is saved for later in order to get the best time resolution out of the processor. A number whose value is proportional to travel time is finally obtained by a routine which starts at the beginning of the logging buffer and counts the number of successive memory bytes necessary to find a 1 in a particular bit position. Since a bit is allocated for each of the four travel times, determining the wind direction and speed is simply a matter of testing each of the four bits in an identical fashion."

132 July 1 979 © BYTE Publications Inc

AMERICAN TAX ASSOCIATES

Alpha Fedtax and Caltax

years in use

cro systems

This is a thoroughly tested and successfully installed software package. It is very user oriented and simple to use. The package is as comprehensive as available computer tax services. It will calculate taxes, prepare and print all forms.

This package is supported by American Tax Associates, an established California accounting firm. In this way you can be assured that the yearly updates will be consistent with the current laws and accounting practices.

This package is a real time saver. It can perform income averaging automatically, and based on the data input, the program can determine whether to itemize or to use the standard deduction.

The client data collection and input procedures were selected based on the experiences of American Tax Associates, and the techniques used by many service companies. A simple form is completed during the client interview. The data from this form is later input into the computer for processing.

When the client data is entered into the computer you may select to have it print an audit trail of all data entered. This will enable you to double check the data entered.

The returns are printed on continuous preprinted IRS approved forms. Those forms not requiring a preprinted form are formulated and printed on blank paper. The data disk will hold up to 120 clients so the software is designed to print all of one page at a time.

The Alpha Micro system was chosen as the base computer system because of its multiuser capability, high throughput, and upward expandability into a hard disk system.

Yearly updates will be supported by American Tax Associates. These updates are available from eitheryourdealerordirectly from Mission Control.

SYSTEM REQUIREMENTS:

Language:

Media:

CPU:

Memory:

Printer:

Floppy:

Write for our brochure Contact: Distributor

Alpha Micro Systems Basic (compiled) 8" floppy diskette Alpha Micro AM-100 64K RAM

132 col with tractor feed Dual 8" drives required

Dealerships still available

2008 WILSHIRE BLVD., SANTA MONICA, CA 90403

Circle 238 on inquiry card.

DISTRIBUTED BY

(213) 829-5137

MISSION CONTROL

BYTE July 1979 133

The Nature of Robots

Part 2: Simulated Control System

Note on North Star BASIC

The method of accessing strings in North Star BASIC is different from that of Microsoft and other BASICs. Translate as follows:

A$(1,n) becomes LEFT$(A$,n) Figure, table, and listing A$(n) becomes RlGHT$(A$,n) numbering continued from A$(m,n) becomes MlD$(A$,m,n) part 1. I

Listing 2: A control system simulator written in North Star BASIC.

1 2 3 4 5 6 7 8 9

10 1 1 12 13 14 15 16 1 7 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

'TO RUN, TYPE '.' (INITIALIZE), OR '/' (DON'T INIT).'

PRINT "PROGRAM TWO: SIMULATION OF CONTROL SYSTEM BEHAVIOR" PRINT

PRINT "AFTER PROMPT (COLON), YOU MAY TYPE" PRINT "'PLOT XXXXXX', WHERE XXXXXX MEANS" PRINT "ANY ONE OR MORE CHARACTERS FROM THE" PRINT "SET P,E,R,l,0,D, IN ANY SEQUENCE." PRINT

PRINT "YOU MAY ALSO SET PARAMETERS BY TYPING IN" PRINT "THE PARAMETER SYMBOL IMMEDIATELY FOLLOWED" PRINT "BY AN EQUAL SIGN AND THE VALUE (NO SPACES)." PRINT

PRINT "PARAMETERS ARE L, K1, K2, S1, S2, 0, P, R, AND D" PRINT "DEFAULT VALUES 1 6, 1, 2, 1, 1, 0, 0, 0, AND 1 5" PRINT PRINT PRINT K1 =1 K2=2

51 =1

52 = 1 P0=0 00=0 RO =0 D0 = 15 V(4) = 1 V(5i = 1 V(6) = 1

INPUT "DISPLAY WIDTH: W=W-2

C=W/2\ REM CENTER OF DISPLAY

DIM Z$(W),M$(W),A$I20),B$(6),K(6),U(6),E$(72) B$ ="PERIOD" L1 =15

FOR J = 1 TO W Z$(J,J)=" " NEXT J \ REM

,W

DEF FNI(X)\ REM P = P + S1 *(K1 *X-P) RETURN P FNEND

DEF FNO(X) \ REM 0=0+S2*(K2*E-0) RETURN O FNEND

DEF FNF(X) =0.5*X\ REM DEF FND(X) =0.8*X\ REM

CREATE BLANK FILE INPUT FUNCTION

OUTPUT FUNCTION

FEEDBACK FUNCTION DISTURBANCE FUNCTION

William T Powers 1138 Whitfield Rd Northbrook IL 60062

In part 1, we went through a chain of reasoning that ended with the conclusion that the behavior of an organism is not what it seems. Behavior appears to be at the end of a cause and effect chain that starts with the inputs to a nervous system, but that chain is subject to disturbances that can occur after the output of the nervous system. Nevertheless, the behavior at the end of this chain is stable and repeatable, while events closer to the organism become less predictable as we get nearer to the neural signals at the output of the nervous system. By analyzing an example in which a car is maintained in the center of its lane, we saw that this measure of behavior belongs at both the cause and effect ends of the chain, and that if this variable is shown only once in the diagram, a closed loop results.

We are going to look in more detail at the behaving system in this closed loop, to see how it might be organized to produce the results seen. We will start using a simulator written in BASIC which allows the user to vary many parameters of the control system to see the effects on its actions. Human behavior will not be mentioned much in this installment; there are many fundamentals to cover before we can get back to the main purpose of this series. The object here is to retrain the intuition so that the closed loop way of seeing behavior becomes as natural as the old straight through cause and effect way.

Organization of a Control System

The simulator (listing 2) is set up to demonstrate the properties of a standard sort of control system organization. We will first look at that organization, then at the simulator itself, and finally at some details of the operation of the control system. You

1 34 July 1979 © BYTE Publications Inc

can do much more experimenting than we will discuss here.

Figure 5 is a diagram of a typical control system. Almost every control system can be expressed in this form, although in the real system, functions that are shown here as separate are often combined into one physical entity. The symbols for functions and variables are those which appear in the BASIC simulator.

The behaving system is entirely above the boundary line. All that is not the behaving system (or systems inside the organism at a higher level, not considered here) is called the environment of the system. Variables inside the system will always be called signals, and variables in the environment will always be called quantities. In the environment we have three quantities mentioned in part 1. The input quantity is a physical variable that the system can sense. The state of this quantity is the result of all influences acting on it (which in our limited universe means the influence from the system's own output) and one representative disturbing quantity that can vary independently from what the system does. The system's output is represented by the output quantity. The input quantity is called I, the output quantity 0, and the disturbing quantity D.

The output and disturbing quantities are separated in space from the input quantity, and they influence the input quantity through properties of the intervening environment. The connection that translates the state of the output quantity into an influence on the input quantity is called the feedback function, symbolized in BASIC as FNF. The function that translates the state of the disturbing quantity into another influence on the input quantity is the disturbing function, symbolized FND. If the input quantity is associated with some physical object, then FNF and FND may both contain properties of that object (eg: its mass). There are less redundant ways to handle this in special cases.

The meaning of the previous paragraph is summed up in line 102:1 = FNF(O) + FND(D). The state of the input quantity is the sum of the influences from the output quantity and the disturbing quantity. In the real world, both the output quantity and the disturbing quantity may have many effects other than those on I, but those effects are irrelevant to the operation of this system (perhaps not to the designer or user of the system, if it is artificial). We have therefore considered everything about the environment that is of interest here.

47 rem **

48 REM ** COMMANDS FOR SETTING PARAMETERS

49 GOTO 51

50 A$ =" " \ IF E1 >LEN(E$) THEN 51 ELSE 53

51 INPUT ":",E$ \ A$ = " "\E1 =1

52 IF LEN(E$)<>0 THEN 53 \ PRINT \ GOTO 51

53 E1$=E$(E1,E1)\E1 =E1 +1

54 IF E1 $ ="," THEN 57 ELSE IF E1 >LEN(E$) THEN 56

55 A$=A$+E1$\GOTO 53

56 A$=A$+E1$

57 IF A$ ="." THEN 95

58 IF A$ ="/" THEN 99

59 IF A$<>"?" THEN 62

60 PRINT\PRINT%7F3,"K1 = ",K1," K2=",K2," S1=",S1," S2=", S2

61 GOTO 51

62 IF LEN(A$)< 5 THEN 72

63 IF A $ (1,5) < > "PLOT" THEN 72

64 A$=A$(6)

65 FOR J = 1 TO 6\ REM TAG VARIABLES TO

66 V(J)=0\ REM BE PLOTTED.

67 FOR K = 1 TO LEN(A$)

68 IF A$(K,K)=B$(J,J) THEN V(J) = 1

69 NEXT K

70 NEXT J

71 GOTO 50

72 IF LEN(A$)<3 THEN 91

73 IF A$(1,3X>"K1 =" THEN 75

74 K1 =VAL(A$(4)) \ GOTO 50

75 IFA$(1,3)o"K2=" THEN 77

76 K2 = VAL(A$(4)| \ GOTO 50

77 IF A$(1,3K>"S1 =" THEN 79

78 S1 =VAL(A$(4))\ GOTO 50

79 IF A$(1,3)o"S2=" THEN 81

80 S2=VAL(A$(4I)\ GOTO 50

81 IF A$( 1,2) < >"0 = " THEN 83

82 00=VALIA$(3))\ GOTO 50

83 IF A$(1,2)<>"P = " THEN 85

84 P0=VAL(A$(3))\ GOTO 50

85 IF A$(1,2K>"R=" THEN 87

86 R0=VAL(A$(3I)\ GOTO 50

87 IF AS(1,2X>"D = " THEN 89

88 D0=VAL(A$(3))\ GOTO 50

89 IF A$(1,2)<>"L = " THEN 91

90 L1 =VAL(A$(3»\ GOTO 50

91 PRINT "???", \ GOTO 50

92 REM **

93 REM **

94 REM **

95 P=PO\REM

96 0=00\D = DO\R=RO

97 l=FNF(0) + FND(D)

98 E = R-P\GOSUB 1 09\REM

99 D = DO \ REM

100 R=RO

101 FOR L = 1 TO L1 \ REM

102 l=FNF(0)+FND(DI

103 P = FNI(I)

104 E=R-P

105 0=FNO(E)

106 GOSUB 109 \ REM

107 NEXTL

108 GOTO 50

109 REM **

110 REM »* 1 1 1 REM **

112 U(1)=P + C

113 U(2)=E + C

114 U(3)=R + C

115 U(4)=l+C

116 U(5)=0 + C

117 U(6)=D + C

118 PRINT

119 M$ =Z$\ REM

120 M$(C + 1,C + 1) = "."\REM

121 FOR J = 1 TO 6\ REM

122 U=INT(U(J) + .5) + 1

123 IF U<1 THEN U = 1

124 IF U>WTHEN U=W

125 IF V(J) = 1 THEN M$(U,U)=B$(J,J)

126 NEXT J

127 PRINT M$, \ REM PRINT BUFFER

128 RETURN 999 END

SIMULATION AND PLOTTING LOOP ENTRY WITH INITIALIZATION

PLOT INIT. CONDITIONS ENTRY, NO INITIALIZATION

CONTROL LOOP SIMULATION

CALL PLOTTING SUBROUTINE

PLOTTING SUBROUTINE

CLEAR OUTPUT BUFFER MARK SCREEN CENTER LOAD BUFFER

July 1979 © BYTE Publications Inc 1 35

REFERENCE SIGNAL

P, PERCEPTUAL

COMPARATOR

E, ERROR

SIGNAL

DISTURBING QUANTITY

Figure 5: The system's output quantity, O, influences the input quantity, I, via the feedback function, FNF. The disturbing quantity, D, influences the input quantity via the disturbance function FND. Both FNF and FND represent physical links in the environment. The state of the input quantity is determined by the sum of these two influences.

The system's input function, FN I, converts the state of the input quantity into a magnitude of the perceptual signal P. P Is compared with the reference signal R in the comparator function, which emits an error signal E = R - P. The error signal is converted into a magnitude of the output quantity via the output function, FNO.

Above the line we have the behaving system. We cross the boundary at the input function, FNI. This is the function which turns the state of an external quantity, I, into the magnitude of a perceptual signal, P. Both sensors and computing processes may be involved in a complex input function. The outcome, however, is always the magnitude of a single signal, whatever it represents. This signal can only increase or decrease; we will always work with onedimensional control systems, treating multidimensional control phenomena by using multiple control systems. The perceptual signal is the system's internal representation of the external world - its only such representation.

Line 103 expresses the definition of the input function and the way it relates the input quantity and perceptual signal: P = FNI(I).

Inside the system is another signal, the reference signal, R. In living systems, this signal is generated elsewhere in the organism; it is not accessible from outside. The reference signal, along with the perceptual signal, enters a function called the comparator, which subtracts one signal from the other and emits an error signal, E, representing the signed difference of magnitudes. It does not matter which signal is subtracted from which, but for uniformity we will always treat the reference signal as the positive input and the perceptual signal as the one subtracted from it. Thus, a positive error signal always means that the reference signal is larger than the perceptual signal. This function does not have to be generalized, as nonlinearities and amplification can always be absorbed into one of the other functions.

THE

WE'RE NOT JUST THE VIDEO PEOPLE

It's true we built our reputation on high precision video digitizers, but that's not all we offer.

Take B-08 for example, a 2708 EPROM Programmer for the SWTPC 6800. All programming voltages are generated on board and controlled by a safety switch with an LED Indicator. An Industrial quality Textool socket and extended board height allow effortless EPROM Insertion and retrieval. The source listing of U2708, our utility to test, burn verify and copy EPROMs Is Included. B-08 was our first product and we've never had one of them returned for repair. Price: $99.95

If you're programming EPROMs a lot, you might take a look at our PROM System Board. PSB-08 features space for up to eight 2708 EPROMs and 1K of hlgh-speedscratchpad RAM. The EPROMs are dip-switch addressable for convenience. An exclusive I/O select option permits the user to move the I/O locations In memory to any block In EPROM and expand to 56K bytes of contiguous user RAM. Price: $119.95

UIO is another of our popular 6800 products; it's lust the thing for custom Interfaces. UIO has space for a 40-pin wire wrap socket into which you can plug any of Motorola's 40 or 24-pln interface chips. The data and control lines are connected to the appropriate edge connector pins with all other bus connections brought out to a 16-pln socket pad. Build circuits In half the time with UIO. Price: $24.95

One of our most exciting new products is a home controller system. It won't cost several hundred dollars and you won't need any electrical engineering experience to use It. By mid-summer we will have units available for the S-50, S-100, TRS-80 and Apple computers. Don't write us now; we'll let you know when we are ready to ship.

Of course we still make video gear. The DS-80 for S-100 computers and the DS-68 for 6800 machines are In stock. Our first production run for the Apple will be available In early July. So even though we think video is one of the most creative areas opening up for micros, we're not just the video people.

P.O. BOX 1110 DEL MAR, CA 92014 714-756-2687

1 36 July 1 979 © BYTE Publications Inc

Circle 231 on inquiry card.

FR€€ SOFTWMK!

PRACTICAL MICROCOMPUTER PROGRAMMING: THE Z80 by W.J. Weller

FINALLY....

Here from W.J. Weller and Northern Technology Books is the third in the Practical Microcomputer Programming series. It is a comprehensive text covering assembly language programming for Z80 based microcomputers. The first 16 chapters cover Z80 programming comprehensively, from binary operations to interrupt handling. Included are chapters on moving data, logical and arithmetic operations, use of the stack, communications with the terminal, floating point arithmetic and graphic output. All programming techniques are illustrated with formal tested examples. An important feature of the book is that

AN EDITOR/ASSEMBLER SYSTEM FOR 8080/8085 BASED COMPUTERS by W.J. Weller and W.T. Powers

This 148 page book contains complete information for initializing and using a powerful new editor/assembler and debugging monitor system, and the full SOURCE text of both. The assembler fully supports all Intel instruction mnemonics as well as the entire language used in Practical Microcomputer Programming™:The Intel 8080. The editor/assembler is resident in less than 8K RAM and will run on any 8080, 8085 orZ80 based computer with peripherals which transfer on a character basis or can be made to do so by buffering. The user supplies his or her own I/O drivers.The text editor is extremely simple to use and does not require irrelevant line numbers. Also included is a program to convert Processor Technology™ format tapes to a format usable by the editor/assembler.

This system is not the usual "quickie" software, riddled with errors and limitations, but a professionally created, thoroughly tested and debugged system. At $14.95 it is the best software bargain you are ever likely to see.

AND BY THE WAY...paper tape object copies of all this software are sent FREE to book purchasers when the coupon at the back of the book is returned to Northern Technology Books. 8V2" x 11". $14.95

• 8080/8085 editor/assembler object code on diskette for North Star disc systems. Only $14.00

• 8080/8085 editor/assembler and debug source code for North Star disc systems. Only $14.00

• Or both for $26.00!

PRACTICAL MICROCOMPUTER PROGRAMMING: THE INTEL 8080 by W.J. Weller, A.V. Shatzel and H.Y. Nice

Here is a comprehensive source of programming information for the present or prospective user of the 8080 microcomputer, including moving data, binary arithmetic operations, multiplication and division, use of the stack pointer, subroutines, arrays and tables, conversions, decimal arithmetic, various I/O options, real time clocks and interrupt driven processes, and debugging techniques.

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

PRACTICAL MICROCOMPUTER PROGRAMMING: THE M6800 by W.J. Weller

This second volume of the Practical Microcomputer Programming

series addresses the problems of applications programming at assembly level for the M6800. In 16 chapters and more than 100 formal examples , the fundamental techniques of assembly level programming are applied to the solution of specific problems with the 6800. Nowhere theoretical, it is a thorough and detailed methods text for the beginning and intermediate application programmer using the 6800. $21.95 hardcover.

it uses the universal standard 8080 mnemonics. This is of great help to users who are upgrading their machines and software to utilize the Z80 processor.

The last part of the book is software; an editor/ assembler which will run on any 8080or Z80 machine and a debugging monitor.

Hardcover $29.95

a quality assembler for the TRS-80*

Send in the coupon supplied with the book and receive FREE the object programs of the editor/ assembler and debug on either paper tape or on cassette tape for the TRS-80 microcomputer. (Loads in Level I with 16K RAM or Level II.) Both the book and software for only $29.95!

• Also available is the editor/assembler object code for the Z80 on diskette for North Star disc systems. Only $14.00

• In addition, the editor/assembler and debug source code for the Z 80 are available on diskette for North Star disc systems. Only $14.00

• Or both for $26.00!

BITS

Books to erase the impossible

inc

25 Route 101 West, PO Box 428, Peterborough, NH 03458 603-924-3355

Please send me the items checked below.

□ Practical Microcomputer Programming — The Z80

(with choice of either FREE paper tape or FREE TRS-80 cassette when I mail coupon supplied with book) $29.95

□ Editor/Assembler System for 8080/8085 Based Computers (with paper tape object copies of the software sent FREE when I mail coupon supplied with book) $14.95

□ Practical Microcomputing Programming — The Intel 8080 $21.95

□ Practical Microcomputing Programming — The M6800 $21.95

□ Editor/assembler object code for the Z 80 on diskette for North Star disc systems $14.00

□ Editor/assembler and debug source code for the Z 80 on diskette for North Star systems $14.00

□ SAVE $2.00! Both object code and source code for the Z 80 $26.00

□ Editor/assembler object code for 8080/8085 on diskette for North Star disc systems $14.00

□ Editor/assembler and debug source code for 8080/8085 on diskette for North Star disc systems $14.00

□ SAVE $2.00! Both object code and source code for 8080/8085 $26.

Total enclosed $

for each item ordered)

_(Please enclose 75? shipping/handling

□ Check Card #_ Expires_

Charge Card □ Master Charge □ Visa Signature

VISA

Name_

Address_

City_

_State^

-Zip

Dial your charge card orders toll-free: 800-258-5477 Mon.-Fri 9 - 5 PM (In New Hampshire dial 924-3355)

*A trademark of Tandy Corporation

You may photocopy this page

Dealer inquiries invited

BYTE July 1979 137

Anatomy of the Simulator

Let's run through the simulator quickly before we start using it, to see how this control organization operates.

Lines 1 thru 16 are user instructions. Lines 17 thru 27 initialize the system in a way that will be used to illustrate a point. Lines 28 thru 33 do more initializing, and ask for the width of your display. Lines 34 thru 36 create a blank string in case your BA SIC doesn't se t dimensioned strings initially to spaces.

Lines 37 thru 46 define the various functions of the control system. If your BASIC can't do multiline functions, you can substitute subroutines here. The idea is to make it easy to try out different kinds of functions in the control system.

Lines 49 thru 91 comprise the interpreter, which accepts character strings and sets initial conditions and parameters before each run. Variables are initialized and constants are set by typing a string of the form A=m or An=m (no spaces; terminated by a carriage return). To set up the plotter, the statement is PLOT XXXXXX, where XXXXXX is one or more characters from the set P,E,R,l,0, and D, in any sequence. The plotter comes up set to plot P, E, and R. If you forget the last values of the parameters KJ, K2, SI, and S2, type ? and they will be printed out. We will eventually define them.

The control system Itself is simulated from line 95 to line 108. Entering the simulator at line 95 initializes the perceptual and output variables to values given to the interpreter. Entering at line 99 runs the simulation from the conditions left at the end of the last run. This is taken care of by the two run commands in the interpreter: a dot (.) means run with initialization, and a slash ([) means run without initialization. All commands require a carriage return termination.

The plotting subroutine goes from line 112 to line 128. Its operation deserves a note, since it was arrived at after some more normal schemes were rejected for being too slow. When the interpreter is given a string of symbols to set up the plotting, a table is set up (V(j)) in which a 1 means plot and a 0 means don't plot. When the plotter is entered, it transfers all six variables to another table, U(j). The output buffer is then cleared, and a short loop scans the V table, picking up variables from the U table when V(j)=l, and putting the symbol into the output buffer in a position corresponding to the value of the variable. Then the output buffer is printed out. This eliminates sorting the variables by size or printing the line as many times as there are variables. This method nicely cures the fundamental "rheumatism" of BASIC, as it is able to plot about two lines per second on my Polymorphics VTI display.

When two variables fall on the same spot, the variable that actually appears is the latest one in the series PERIOD. Thus far is has always been easy to figure out where a missing variable is hidden.

Once we have a set of variables connecting functions together, and an overall arrangement, we can treat the system by assembling it piece by piece. Let's look at the pieces we have, represented by the four statements in listing 2 from line 102 to 105:

102 I = FNF(O) + FND(D)

103 P = FN 1(1)

104 E = R-P

105 O = FNO(E)

Looking at figure 5, we can see that these four statements lead us clockwise around the closed loop. I is the result of combining the outputs of the feedback and disturbance functions. It becomes the input to the input function, producing a value of the perceptual signal P. Pis one of the inputs to the comparator, which produces the error signal E.

Continued on page 140

1 38 July 1979 © BYTE Publications Inc

Therefore line 104 represents the comparator without using a function; it is the comparator function itself: E = R - P.

The error signal drives the output of the system via the output function, FNO. The output of the system, therefore, depends not on the input quantity or the perceptual signal alone, but on the difference between the perceptual signal and the reference signal. The output function translates a signal inside the system into a quantity outside it, according to whatever rule is described by FNO. If the error signal changes sign, the output quantity also changes; in other words, we assume that output functions have no constant term. Any such constant term would have the same effect as a reference signal, creating an offset in the overall system response. Not every system can handle error signals and output quantities that go through zero and thus change sign, but the principles remain the same in the region where the system works.

Line 105 expresses the operation of the output function: 0 = FNO(E). This closes the loop of cause and effect since the output quantity appears in line 102 where the input to the system is calculated.

If the system functions are properly designed for the properties of the system's environment, this entire closed loop will seek an equilibrium state. Our simulator will let us look at time-varying effects, but for the most part we will be concerned with steady state relationships.

Once we have seen how time variations come into the picture, we will concentrate on variations that occur slowly enough that the system and its environment never get far from a steady state relationship. This is the whole trick in grasping how control systems work. If you allow yourself to become embroiled in the interesting details of stabilization, or interested in the limits of performance in the presence of large and rapidly changing disturbances, you may learn a lot about one control system, but you will miss the organizational features that are obvious only when the system is not being subjected to unusual stresses. We will be concerned mainly with the normal range of operation, the range within which this system can behave very nearly like an ideal control system. Once that mode of operation is understood, there is plenty of time to explore the limits of operation. (See "Anatomy of the Simulator" text box).

A Wrong Approach

Let us start off by assuming that we have a simple linear system. The input function is a multiplier of 1, the comparator is already

Circle 291 on inquiry card.—*.

JUST WRAP TOOL WITH 'ONE SO FT. ROLL OF WIRE

COLOR

PART NO.

U.S. LIST PRICE

BLUE WHITE YELLOW RED

JW-1-B JW-1-W JW-1-Y JW-1R

$14.95 14.95 14.95 14.95

c

REPLACEMENT ROLL OF WIRE 50 FT.

BLUE

WHITE

YELLOW

R-JW-B R-JW-W RJWY

2.9 2.9 2.9

3 B B

RED

R-JW-R

2.9

B

AWG 30 Wire .025" Square Posts Daisy Chain or Point To Point No Stripping or Slitting Required ....JUST WRAP tm.... Built In Cut Off fc ^

Easy Loading of Wire Jfc Available Wire Colors: ™ Blue, White, Red & Yellow

MACHINE & TOOL CORPORATION 3455 CONNER ST., BRONX, N.Y. 10475 (212) 994-6600/TELEX 125091

'MINIMUM BILLING $25.00 / AD SHIPPING CHARGE $2.00 / NEW YORK CITY / STATE RESIDENTS ADD APPLICABLE TAX.

E Is the input to the output function that produces O, the output quantity. The output quantity is the input to the feedback function, which leads us back to the start.

It might seem that ail we have to do now is to supply some specific forms for the functions, and turn the system on to see what it will do. In a sense, this is right. If this were an analogue computation, we might even get a correct idea of how the system works. However, it is unlikely that anyone who hasn't done this before would plug in the right functions to make a digital computer give us anything more than a fairy tale. It is so important to understand this point that I have written the simulator to come up initialized in order to illustrate it.

in fact, that you do solve it (by successive substitutions). Solve for the value of the perceptual signal in terms of R and D. You'll get P=I=(R -0.8 x D)/2.

Ready for a shock? Your computer can't come up with that solution! Let's fire up the BASIC simulator, which is initialized according to equations 1 thru 4 above, and plot I, D, and O. Type RUN, and answer the question with a reply that tells the width of your display. After the colon prompt appears, type in the following:

simple and linear, the output function is a multiplier of 2, the feedback function is a multiplier of 0.5, and the disturbance function is a multiplier of 0.8. These choices are dictated partly by the need to keep variables from falling on each other when we plot them. The simulator initializes D to 15.

Our four system equations, with these values substituted, now look like this:

I

I

P

E = R-P O = 2xE

0.5xO+0.8xD = 0.5xO+12

(D (2) (3) (4)

This system of equations is iterated during a simulation of behavior.

The above is a pretty simple system of equations. So why can't we just solve it algebraically and skip the rest? I suggest,

Figure 6: The initial plot generated by the BASIC simulator. Disturbance is set to 15 units and the reference signal is initialized to 0. The system is in a state of oscillation.

I trust nobody had trouble with that.

The dot says "do a plotting run after initializing the variables." A slash (/) would say "do the run from where the last run left off." The result can be found in figure 6.

The disturbance is set to a steady +15 units, and the reference signal is initialized to 0. According to the algebraic solution above, the input signal should be a steady 0.8 x 15/2, or 6 units, to the right of center (dots indicate center when nothing is there). It is clear that something else happened. The whole system is in a state of endless oscillation. (When variables fall on top of each other in a plot, the visible one is the latest in the sequence PERIOD.)

Nature has a way of slapping your wrist when you forget something important. Our wrist has just been slapped. Naturally we do not get the same result that algebra gives: the algebraic solution comes from treating all of those relationships simultaneously. Our computer program is treating them one at a time. The algebra says that if one variable changes, they all change. The computer, being a purely sequential machine, thinks it can change one variable without changing the others. If the physical system being modeled is of that nature — if it, too, is a sequential state machine — then the computer will produce a correct picture of behavior. But, if the system being modeled works in terms of continuous variables, even in part, the computer will turn it into a sequential-state machine and analyze that kind of system instead of the one we actually have. That is what has happened here. We forgot to tell the computer that these variables can't change as fast as the computer can compute.

A More Accurate Approach

In order to make this simulated system behave the way the algebra says it should, we have to slow down changes in one or more variables to take account of the fact that we are dealing with real, physical variables

140 July 1979 © BYTE Publications Inc

ONE PACKAGE DOES IT ALL

Includes these Application Programs . . .

Sales Activity, Inventory, Payables, Receivables, Check/Expense Register, Library Functions, Mailing Labels, Appointments, Client/Patient Records

RANDOM, MULTI-KEY RECORD RETRIEVAL under CP/M, CDOS, IMDOS, ADOS

SELECTOR III ALLOWS INSTANT RECALL OF ANY RECORD USING ANY INFORMATION ITEM IN THE RECORD. That statement deserves re-reading, because that ability makes SELECTOR III the most powerful Date Base Management System in microcomputers today!

With SELECTOR III

you can...

• define a record format, assign retrieval keys, and begin entering data in minutes.

• create sorted pointers to records matching your specif or range of requirements.

Circle 213 on inquiry card.

• automatically generate reports with control-break summaries and unlimited variety.

an application onhours instead of

• bring line in months

SELECTOR III comes complete with eight application programs that perform the tasks listed at top of page. And, since it's distributed in source code form, you can easily add subroutines to do specific computations or file updates.

SELECTOR III runs under CBASIC Vers. 1 or 2, and is priced at $295. SELECTOR

III-C2 is dedicated to Vers. 2 only, runs about twice as fast, and costs $345.

Both systems are available in a variety of CP/M, diskette size and density formats including IBM 8"; North Star; Micropolis; TRS-80; Processor Tech Helios II; Altair; iCOM; Dynabyte; Imsai; and others.

Available from computer stores nationwide:

LIFEBOAT Associates

2248 Broadway, Suite 34, New York, N Y. 10024 • (212) 580-0082

Or order direct from

MICRO-AP

9807 Davona Drive, San Ramon, CA 94583 (415) 828-6697

BYTE July 1979

141

S1=0.5 S2 = 0.2

0 I D

0 . ID

0 ID

0 ID

0 .ID

0 .ID

0 .ID

0 .ID

0 .ID

0 .ID

0 T D

0 .ID

0 .ID

0 .ID

0 .ID

0 .ID

Figure 7: The slowing factors have been changed. SI equals 0.5 and S2 is 0.2. We now have a much smoother curve.

and not abstract numbers. The simulator does this in the input and output functions, lines 37 thru 40 (input) and 41 thru 44 (output). We will be basically dealing with a linear system in which both the input and output functions are constants of proportionality. As you can see from listing 2, however, there's a little more to it than that.

Consider line 42: O = O + S2* (K2*E - 0). The 0 on the left side is the new value of that quantity after this program step has been executed. On the right side, 0 indicates the last value of the output quantity. We recognize K2*E as a calculation of the output quantity as if it were simply proportional to the error signal, E. The expression in parentheses, therefore, is the difference between this calculated new value and the old value of O. This is how much the output quantity would change if it could change instantly.

This calculated amount of change is multiplied by S2, a slowing factor, and the result is added to the old value of O. We calculate the amount of change that an instantly reacting system would produce, but allow only a fraction S2 of it to occur on any one iteration. S2 is a positive number between zero and one. We've put a lowpass filter into the output function, without affecting the steady state proportionality constant.

The same thing is done for the input function. A slowing factor SI, between zero and one, acts to slow P down. We need only one slowing factor to make this simulator behave realistically, but there is provision for two, so that you can explore the effect of having two if you wish. In all the plots to follow, we'll use a modest slowing factor of SI =0.5 in the input function, and essentially all of the required slowing in the output function. Once you get the hang of this you can put slowing factors into any of the functions.

The simulator is initialized with S1 and S2 set to 1, which reduces O + S2x (K2xE - O) to O + K2xE - O or just K2xE (no slowing at all). The same is done for the input function. Let's set them to other values and see what happens. The values of S1 and S2 can be set by typing S1=n or S2=n and a carriage return:

:S1=0.5 :S2=0.2

: . (run with initialization)

Suddenly we see nice, smooth relationships (figure 7). If you measure, you'll see that the input signal, I, ends up just six units to the right; the same solution given by the algebraic approach.

Does this mean we can just use algebra to analyze a control system? Not at all. We won't delve into this, but the algebraic solutions are valid only if the differential equations which really describe the system have steady state solutions. Then the algebraic solutions are the steady state solutions. In our simulator, we see all the time variations that lead toward the steady state, and the algebra says nothing about these. By putting the slowing factors into our calculations we have caused this system to seek a steady state. Therefore, it is the stability of the system that tells us we can use algebra, not the other way around. Predicting stability can become a messy process. We fiddle around with slowing factors until we get stability, which is more or less how Nature does it anyway.

We have now established the fact that using natural logic and following causes and effects around the closed loop as a sequence of events will lead to a wrong prediction of control system behavior. This immediately eliminates three-quarters of what biologists, psychologists, neurologists, and even cyberneticians have published about control theory and behavior. We are just beginning to see that one must view all the variables in a control system as changing together, not one at a time. This is what I mean by retraining the in

1 42 July 1 979 © BYTE Publications Inc

BATTERY SUPPORTED CALENDAR CLOCKS

PDP-11 *

TCU-100«$495

■ Provides month, day, hour, minute and second.

■ Can interrupt on date/time, or periodic intervals.

TCU-150*$430

■ Provides year, month, day, hour, minute and second.

■ Automatic leap year.

■ Patches for RSX-11M, RT-11 FB/SJ V02, V03 and UNIX.

LSM1/2*

TCU-50D • $295

■ Provides month, day, hour, minute and second.

■ Dual size board.

■ Patches for RT-11 SJ/FB V02, V03B.

Lockheed SUE

TCU-200 • $550

■ Provides year, month, day, hour, minute, second and milli-second.

■ Interval interrupts between 1/1024 seconds and 64 seconds.

Computer Automation (Naked Mini)

TCU-310*$385

■ Provides year, month, day, hour, minute and second.

'Trademark of Digital Equipment Corporation

Multi-Bus**

TCU-410»$325

■ Provides year, month, day, hour, minute and second.

■ SBC/BLC compatible.

HP 2100

TCU-2100«$395

■ Correct time restored after power failure.

■ Compatible with the HP TBG card.

Serial Clock (RS 232 or 20 mA)

SLC-1 • $575

■ Connects between any terminal and host computer.

■ Provides date, time and more!

All Digital Pathways TCUs have on board NICAD batteries to maintain time and date during power down. Timing is provided by a crystal controlled oscillator. Prices are U.S. domestic single piece. Quantity discounts available.

For more information on these products, contact: Digital Pathways Inc. 4151 Middlefield Road Palo Alto, CA 94306 Phone: (415) 493-5544

"Trademark of Intel Corporation

DIGITAL PATHWAYS

Circle 86 on inquiry card.

BYTE July 1 979 143

Using the Simulator

The simulator is run from the keyboard, using commands that tell it which variables to plot and what values of variables and parameters to start with. The instructions can be given one at a time, terminated by carriage returns, or they can be given In a continuous string with commands separated by commas. The latter is useful for altering parameters in the middle of a plot in order to see their effects.

The only time a space is permitted in a command or string of commands Is when it is separating the word PLOT from the string of variable symbols to be plotted.

In order to tell the simulator what variables to plot, type:

PLOT XXXXXX

where XXXXXX means a string of1 to 6 symbols from the set PERIOD. The order of the symbols makes no difference. When two or more symbols land on the same plot, the one that you see is the latest in the series PERIOD, regardless of the order In which they were given.

To start a plotting run, type a period followed by a carriage return or comma if initialization is to occur first, and type a slash (I) if the run is to start from the conditions at the end of the previous run. Initializing creates one extra line of plot showing the initial conditions.

The parameters and variables that can be set are as follows:

L Number of lines to be plotted in any plotting run.

Kl Steady state proportionality factor of the input function.

51 Slowing factor for the input function;positive and between Oand I.

K2 Steady state proportionality factor of the output function.

52 Slowing factor for the output function; positive and between 0 and 1.

O Initial value o f output quantity. P Initial value of perceptual signal. R Setting of reference signal. D Magnitude of disturbing quantity.

Examples: (colon is prompt from computer. Always terminate a string with a carriage return).

Set L to 16 :L=16

Set D to 0, run without initializing :D=0,/ or

:D=0 •/

Set D to 0, plot 2 points

after initializing, set D to .PLOT PER,D=0,L=2,.,D=10,L=13,/

10, plot 13 points from

previous conditions. Plot P,E, and R

The program is written so that after a plot is completely done (a complete string has been interpreted), the prompt character appears to the right without a carriage return. That allows a 16 point plot to be shown on a 16 line video display screen without the final carriage return bumping the first line off the screen. If you want your next string to start at the left, just hit a carriage return.

To find out the values of Kl, K2, SI, and S2 when you forget them, type "?" followed by carriage return and they will be printed.

tuition. Cartesian concepts of cause and effect, and Newtonian physics, have trained us to think along directed lines. What we need to do to understand control systems is to learn how to think in circles.

Properties of a Control System

Figure 8 shows the control system and its environment as we will be dealing with it from now on. Let's start with some definitions:

Loop Gain means the product of all the steady state factors encountered in one trip around the closed loop, counting the comparator as a factor of -1. In the initial setup, Kl was 1, K2 was 2, and the feedback function FNF was a multiplier of +0.5, so the loop gain was -1. The sign of the loop gain is the sign of the feedback; we have (and will continue to have) negative feedback.

Error Sensitivity is the factor K2, the steady state proportionality factor in the output function FNO. This number expresses how much output will be generated by a given amount of error signal.

Input Sensitivity is the factor K1, the steady state proportionality factor in the input function FNI. This number expresses how much perceptual signal will be generated by a given amount of input quantity.

We are going to perform a series of experiments with this control system in order to arrive at some useful rules of thumb for thinking about how control systems work. These rules are approximations, but by doing the experiments and seeing how good the approximations are, you will learn to think precisely about control phenomena, even when using approximate language.

We will set the system parameters to give a loop gain of -10. As a way of summarizing where we are (refer to figure 8), the commands are given one at a time with annotations:

:Kl =1 Input sensitivity = 1.

: K2=20 Error sensitivity = 20.

:S1=0.5 Input slowing factor = 0.5.

:S2=0.07 Output slowing factor = 0.07.

:R=0 Reference signal = 0.

:O=0 Output initialization = 0.

:P=0 Perception initialization = 0.

:D=0 Disturbance = 0.

144 July 1 979 © BYTE Publications Inc

Circle 99 on inquiry card.

DIABLO PROVES LOOKS ARE EVERYTHIN

With-Din bios printers and terminals, you can always be sure that beauty will be in the eves of the beholder. Because no one knows more about print wheel technology than

in the eyes of the beholder. Because no one knows more about print wheel tecnnology than the company that invented it in the first place.

Diablos metal and plastic wheel printers have established industry standards for cris] clear characters, proportional spacing, and uniform density.

So, when you're read}' to choose a printer for your own computer, pick the one that produces "picture perfect" originals every time.

If you really want to look good, remember this." With Diablo, yo

Diablo Systems

4

Figure 8: Adjustable parameters are K1 (input sensitivity), SI (inputs/owing factor), K2 (output sensitivity), and S2 (output slowing factor). P and O can be initialized to any starting value (normally zero). R and D can be set, and remain the same during a run. The value of the feedback function is set at 0.5, the value of the disturbance function at 0.8.

COMPARATOR

KI.SI

INPUT FUNCTION

OUTPUT FUNCTION

K2.S2

x 0.5

I

x 0.8

Type those commands, and the system is now set up in a "home base" condition. Remembering that the comparator is equivalent to the factor of —1 and the feedback function is permanently set to be a factor of +0.5, this combination of parameters gives a loop gain of 1 x (-1) x 20 x 0.5 = -10.

There are two fundamental rules of thumb: a control system keeps its perceptual

signal matching its reference signal, and the output of a control system cancels the effects of disturbances on the input quantity. We will take these up in order.

Rule 1: P=R

We're looking at the system with no disturbance acting (D=0). If you want to be sure that everything stays at zero, type PLOT PERIOD, followed by a carriage return. You will see a row of Ds, D being the last symbol in the sequence PERIOD and hence the only one visible when all variables are at zero.

Now we will plot just the reference signal and the perceptual signal. The first two points will be done with the initial conditions set up above. The reference signal will then be set to +25 units, and the plot will be continued for 13 more points. Since this plot will commence with initialization (the dot command), an extra line showing the initial conditions will be plotted first. This makes a total of 16 lines, which will fit on most video displays. Of course, if you're doing this on paper you don't have to worry about the number of points plotted. Here is the command string:

WE HAVE IT

What is IT? The New Pascal Microengine.

U features the new Western Digital 16 Bit Pascal Microengine CPU, 64K RAM, (2) RS232 ports, (2) parallel ports & (2) Shugart 8014 dual density drives. U will directly execute Pascal generated P-Code (the only CPU on the market designed to directly execute a high level language), & IT will run compiled BASIC. Wait, that's not all — JT normally sells for $4,495, but you can have H for $4,195. Dealer prices are much lower. Plus we have software galore.

Call us about IT at (803) 756-6000.

THE PASCAL MICROENGINE

FROM THE COMPANY THAT GIVES YOU TOMORROW'S INVENTIONS TODAY

Tq q

• •••••• 1»U»U«

TECHNOLOGY SYSTEMS SOUTH H Suites 9 & 10 Henry Building, Loris, S.C. 29569 M

146 July 1 979 © BYTE Publications Inc

Circle 364 on inquiry card.

TRS-80 SOLUTIONS!

*-¥■■¥•* L I = Level I -» * » » » Lll = Level II * * * » ■» * -» D = Disk » * ¥ » * ALL THIS AND MORE!!! -¥•»-¥•*

BUSINESS

Appointment Log by M. Kelleher Perfect for the professional. Accepts name and address, meeting start and endings, subject matter, derives elapsed time. For Level II, 16K $9.95 Payroll by Stephen Hebbler Comprehensive 24 pg. manual with step-by-step instructions included in the package. Supports W2 and 941 information. D, $59.95

Mail List I by Michael Kelleher is the economy model of disk-based mailing list programs. Uses a single drive and handles up to 1400 names per disk, plus provisions for sorting options. 16K, D $19.95

BIZ-80

The Business Software People® Just about everything you need ... within 1 year, participants receive programming for Inventory, Accounts Receivable, Accounts Payable and General Ledger systems, plus Sales and Payroll. Complete documentation and software on diskette, $200.00

^ V

Mail List II by BIZ-80 Complete mail list system for dual disk. Enter, update, merge, sort, and print mailing labels. D, 32K $99.95 Small Business Bookkeeping by Roger W. Robitaille, is based on the Dome Bookkeeping Journal, sold for years in stationery and discount outlets. Level II, 4K with ($22.00) or without ($15.00) Dome journal. Inventory System II by BIZ-80 Proper inventory management is the backbone of a profitable business, yet it's very difficult to keep current on price increases, shrinkage, low-on-stock items, profitable items versus losers, without an efficient and prompt method of surveying your inventory levels at any given time. This program can help you to achieve optimal management — it can handle up to 1,000 items on one disk; each additional disk can handle another 1,000 items. With Documentation, $150.00 Inventory S by Roger W. Robitaille, Sr. 240 stock items can be contained using the full 6 data areas and 2 pieces of alpha information. Level I or II.16K $25.00 Inventory II.2 Disk based program allows for creation, maintenance and review of over 2,000 items per clean diskette. Operates under Disk BASIC,DOS 2.1 with minimum memory allocation. D, $59.95

ST 80-SMARTTERMINAL

Lance Micklus

Turns your TRS-80 into a computer terminal. Features include CONTROL key, REPEAT key, ESC key, RUN key and a functioning BREAK key. Lets you list incoming data on line printer. Reprogram RS-232-C switches from keyboard, making baud rate changes simple. Level II, 16K $49.94

Text-80 by Frank Rowlett Fully-documented text processing system for disk. Create, edit, move, delete, insert, change, print words or lines. D, 32K $59.95

KVP Extender by Lance Micklus Corrects keyboard bounce, upper case lock, permits use as a terminal, screen printing. On tape ($24.95) or disk ($29.95) 8080-Z80 Conversion by M. Kelleher Permits you to enter 8080 codings and returns the Z80 equivalent. L II.16K $15.00

Basic Statistics by Steve Reisser Pearson productmovement correlation coefficient, chi-square, Fisher T-test, sample analysis of variance, Z-scores and standard scores, with a random number generator built in to simulate data. L II, 16K $20.00 Renumber by Lance Micklus Complete user control over which lines are renumbered, and how, including all GOSUB's and GOTO's. Specify 4, 16, 32, or 48 K version when ordering. Operates in Disk mode. L II, 4 through 48K, $15.00 Source Listing, $20.00 All 4 versions on disk, $25.00

NEWDOS

Apparat

{ DISK ERROR SOLVED! Stop blaming your I

j drive, fix your DOS with NEWDOS: an j

! enhanced disk-operating system capable of !

i correcting over 70 errors in TRSDOS 2.1 to i

: improve reliability, end key bounce, enable j

I DOS commands to be called from BASIC and | I much more! Available NOW for 16K systems

I with a minimum of 1 disk drive. $49.95 |

ACTION GAMES

Slalom by Denslo Hamlin Choose between Slalom, Giant Slalom and Downhill. Level II, 16K $7.95 X-Wing Fighter by Rev. George Blank Put yourself into the cockpit of this fighter. Extensive use of INKEY function puts all ship controls at your fingertips without hitting ENTER key. Long range sensors warn of approaching aircraft prior to visual contact. Level II, 16K $7.95

Air Raid by Small System Software High speed machine language program with large and small aircraft flying at different altitudes. Ground-based missile launcher aimed and fired from keyboard. Planes explode when hit, cause damage to nearby aircraft. Score tallied for hits or misses. Level I or II, 4K $14.95

Batter Up by David Bohlke Level II, 16K $5.95 Ten Pin by Frank Rowlette A game of coordination, the scoring is true to the rules of the sport. Level II, 16K $7.95

ADVENTURES Scott Adams Feel as if you're manipulating HAL from 2001 when you play these games. Hardly any rules, finding out is part of the fun. Two adventures on 32K disk, $24.95 Tape, one adventure on each tape - pirate or land - Level II, 16K $14.95

DOG STAR ADVENTURE Lance Micklus You're trapped aboard an enemy battlestar ... can you find the gold, rescue the princess, discover the plans and safely escape? Level II, 16K $9.95

Amazin' Mazes by Robert Wallace Ever-changing mazesituation Level II, 16K $7.95 Sink'UM by Rev. George Blank LII.4K $4.95 Breakaway by Lance Micklus Level I or II, 4K $4.95 Treasure Hunt by Lance Micklus Explore caves in search of twenty hidden treasures. L I or II, 16K $7.95

Kamikaze by Russell Starkey Command your ship against attacking suicide planes. Machine language graphics make this fast and fun! Lll, 16K $7.95

MISCELLANEOUS

Diskettes Dysan 104/1 Box of five, $24.95 + $1.00 shipping Verbatim, box of ten, $34.95 + $1.00 shipping/handling

Z80 Instruction Handbook by Scelbi Publ. $4.95 The BASIC Handbook by Dr. David A. Lien $14.95 + $1.00shipping/handling

SIMULATIONS

3-D Tic Tac Toe by Scott Adams Three skill levels — author warns you to practice before tackling computer's third skill level. L I or II, 16K $7.95

Star Trek III.3 by Lance Micklus One of the most advanced Star Trek games ever written. Level II, 16K $14.95

End Zone by Roger W. Robitaille, Sr. Authentic football simulation, right down to the 2-minute warning. Level I or II, 16K $7.95 Cribbage by Roger W. Robitaille, Sr. You versus the computer cribbage played by standard rules. Level I or II, 16K $7.95

Bridge Challenger by George Duisman You and the

dummy play 4-person contract bridge against the

computer. Level II, 16K $14.95

'Round the Horn by Rev. George Blank You're the

captain of a clipper ship racing from New York to San

Francisco. Level II, 16K $9.95

Concentration by Lance Micklus One of the most

popular television games L I or 11,16K $7.95

Safari by David Bohlke You're in the running for a

film contract at a major Hollywood studio. To qualify,

you must photograph the most wild animals in their

natural habitat. Level II, 16K $7.95

Pork Barrel by Rev. George Blank Places you in the

shoes of an aspiring Congressman. L II, 16K $9.95

Backgammon by Scott Adams Level II, 16K $7.95

Chess Companion by M. Kelleher Combines chess clock features with ability to record your moves while action is fast and furious. Level II, 16K $7.95 Sargon Chess by Dan & Kathe Spracklen Winner of the 1978 San Jose Microcomputer Chess Tournament Level II, 16K $19.95

Mastermind II.2 by Lance Micklus Lets you and the computer take turns making and breaking codes. Level II, 16K $7.95

PERSONAL

RPN Calculator by Russell Starkey A selfdocumenting calculator program. Uses Reverse Polish Notation with 4-level stack, 100 memories, scientific functions. Level II, 16K $9.95 Home Financial Management by M. Kelleher Turns your computer into a personal financial advisor. Level II.16K $9.95

Tarot by Frank B. Rowlett, Jr. Probably the best future-gazing type program ever written.Try it — you'll like it! Level I or II, 16K $9.95

Ham Radio by M. Kelleher Amateur frequency Allocations, ID Timer, Q-signal File, Amateur Log Routine, Propagation forecasting. L II, 16K $9.95 Special Disk-enhanced version, 32K $24.95 Educator Assistant by Steve Reisser Five programs of value to educators. Compute percentage, individual student averages, class averages, standard test scores, final grades. L II, 16K $9.95 D, $14.95 Electronic Assistant by John Adamson A group of 8 subprograms designed to solve problems such as tuned circuits and active and passive filters. L II, 16K $9.95

Personal Finance by Lance Micklus 33 different budgets can be easily adapted by user to fit his individual needs. A 2-part program, entry and search. Level II, 16K $9.95

Advance Personal Finance by Lance Micklus Same as above with advanced analysis routine. Supports Disk Files D, 32K $19 95

SOFTSIDE Your BASIC software magazine

Regular 1 year subscription -12 issues - $15.00

PROG/80 For the serious programmer, from beginner to professional 1 year regular \^ubscription - 4 issues - $10.00

|.60I'67I*5M4

TRS-80 Software exchange —

17 Briar Cliff Drive Mlllord, New Hampshire 03055

Circle 374 on inquiry card.

BYTE July 1979

147

:PLOT PR, L=2,., R=25,L=13,/

:K1=1,K2=20,S1=0.5,S2 = 0.07,R=0,0=0,P=0,D=0 :PLOT PR,L=2,.,R=25,L=13,/

:R=-25,/

R R R PR R R

3 R RP R R R R

R I

R R R PR R P RP R

= R R

R R R

= R

Figure 9: The values of variables are listed in this plot. The disturbance value is changed from +25 to -25.

:K2=40,L=8,/,K1=2,/

R P

RP

RP

RP

RP

RP

RP

RP

P R R

R P RP P R

R

R P RP

:L=16,R=25,/ P

R R R R R R R

P R

S R

R

RP PR PR R R PR

Figure 10: Change of gain during plot. After 8th line, gain goes from 20 to 40. Reference signal is changed to check operation.

Before discussing this, let's do another run of 13 points (figure 9), setting the reference signal to -25 units and continuing without initialization (the slash command,/):

:R=-25,/

It is clear that the perceptual signal comes to a steady state quite close to the magnitude of the reference signal, whatever the reference signal may be. The question is, how critically does this tracking effect depend on the input sensitivity and error sensitivity?

Let's leave the reference signal at —25 and do a run in which the error sensitivity is doubled at the start, and the input sensitivity is doubled halfway through the run. We will start from the previous conditions. The loop gain will now be -40 instead of -10.

:K2=40,L=8,/,1<1=2,/

To insure that everything is working correctly, let's flip the reference signal to +25 units (figure 10):

:L=16,R=25,/

While there is an effect on the way the tracking takes place, the only effect of these rather drastic changes in input and error sensitivity is to make the tracking a little better. What about a decrease in these parameters?

:L=16,K1=0.5,K2=10,/,R=25,/ (Loop gain now 2.5)

Figure 11 shows that the approximation P=R isn't very accurate any more. For loop gains smaller in magnitude than about 10 (negative), the approximation begins to lose accuracy.

You will notice that doubling the error sensitivity, which doubles the amount of output generated by a given error, does not double the amount of output that actually occurs. Far from it. When, for any reason, the loop gain goes up, the steady state error simply gets smaller, assuming that the system remains stable. This fact does violence to the popular idea that the brain commands muscles to produce behavior. If that were the case, doubling the sensitivity of a muscle to the nerve signals reaching it ought to produce twice as much muscle tension. Nothing of the sort happens, unless you've lopped off the rest of the nervous system, particularly the feedback paths.

1 48 July 1 979 © BYTE Publications Inc

As long as the loop gain is sufficiently large and negative (-10 or more negative will do for a number), a stable control system will match its perceptual signal nearly to its reference signal, regardless of the reference setting. We are ignoring, of course, transient effects.

All of this was done with the disturbance set to zero. Now let us set the reference signal to zero, and check the second fundamental rule of thumb.

Rule 2: (delta 0) = -(delta D)

This rule requires some interpretation. It says, for the sake of brevity, that (with the reference signal constant) a change in the output quantity is equal and opposite to (the minus sign) a change in the disturbing quantity. Generally, the input and disturbing quantities will affect the input quantity through different physical paths. In our model, the output quantity acts through a multiplier of 0.5, and the disturbance through a multiplier of 0.8. The rule has to be interpreted to mean that the effects of the changes on the input quantity are equal and opposite. We will see this demonstrated.

We will now plot the output quantity, 0, the disturbing quantity, D, and the input quantity, I (to make the above clear). The reference signal could be left where it is, but to avoid confusion let's set it to zero for this set of plots. The loop gain is set to -10.

:PLOTOID, R=0,K1=1,K2=20,L=1,D=0, .,L=15,D=15,/ Let this plot run out, then: ••D=-15,/

There is some lurching back and forth in figure 12, but in the steady state the behavior of the input quantity shows that the effect of the disturbance is essentially cancelled by the final effect of the output quantity.

If you did some measuring on the plot, you would find that the final value of the output quantity is very close to 8/5 of the value of the disturbing quantity. This follows from three facts: the input quantity ends up nearly at zero; one unit of output has 0.5 unit of effect on the input quantity; one unit of disturbance has 0.8 unit of effect on the input quantity. This is the kind of reasoning that helps in understanding how a control system works.

The primary observation about a control system is always the existence of an input quantity which is stabilized against disturbances by variations in the output quantity. If the input quantity is held essentially

:L=16,K1=0.5,K2=10,/,R=25,/

R P

R P

R P

R P

R P

R P

R P

R P

R P

R P

R P

R P

R P

R P

R P

R P

P

P

P

P

R R R R

P R P R

P R P R P R P R

P R P R P R P R P R P R

Figure II: The simulation parameters have been changed to produce a gain of 2.5. Notice that the approximation P=R is now inaccurate.

:PL0T OID,R=0,K1=1,K2=20,L=1,D=0,.,L=15,D=15,/

I I. I.

I

.1 .1 .1 .1 .1 .1 .1 -I

:D=-15,/

Figure 12: The reference signal has been set to zero. This plot shows us the input quantity, the output quantity and the disturbance signal for D=+15 and then D=-l5.

July 1979 © BYTE Publications Inc 149

= 15,

D=15,/

0

D

D

R

0

D

I R

0

RI

D

R

I

D

R

I

D

I

0

D

IR

0

D

I R

0

D

I R

0

D

I R

0

D

IR

0

D

IR

0

D

IR

0

D

IR

0

D

IR

0

.

R0

D

0

R

D

I

R

ID

IR

D

I R

D

.

I R

D

0

IR

D

0

I

D

.0

I

D

0

I

D

0

I

D

0

I

D

0

I

D

0

I

D

0

I

D

Figure 13: A look at different reference signal effects. As explained in the text, the disturbance signal has made the perceptual signal match the reference signal.

constant (in the steady state), then one can deduce the.relationship between disturbances and the system's output quantity simply from observing the properties of the system's environment. On inspection, an external observer can see both the feedback function and the disturbance function, here multipliers of 0.5 and 0.8 respectively. For any given disturbance, the effect on the input quantity for a constant output quantity can be calculated on purely physical grounds. Since the input quantity remains undisturbed in the steady state, one can then look at the connection between the output quantity and the input quantity, and deduce how the output quantity must change to account for the fact that the input quantity doesn't change.

Thus, in order to predict how this system will react to any external disturbance, it is necessary only to know that the system is a control system and to look closely at its environment. The kind and amount of reaction follow from the nature of the feedback and disturbance functions which are properties of the visible environment.

Most important, as far as the life sciences are concerned, the form and amount of reaction do not depend on any property of the control system; not enough to make any difference. Therefore, when you apply a stimulus and see a response, you are using the organism as a complicated analogue computer in order to study the physics of

the local environment. This is not what the life sciences have thought they were doing.

All that remains to wrap up this section is to see the effects of disturbances when the reference signal is set to different values. This will lead to the definition of a useful technical term: the reference level of the input quantity (see figure 13):

:PLOT RIOD,D=0,R=0,L=1,,R=12, L=15,/,D=15,/

If you have a 16 line video display this will scroll past you, losing the early parts, but no matter. The first event is that the reference signal is set to 12, and the input quantity moves essentially to +12. The output quantity goes to +24 in order to accomplish this. Then the disturbing quantity goes to +15, which has the exact effect on the input quantity that +24 units of output have. As a result, the output quantity drops to zero - exactly zero, if you look at the numbers.

In effect, the disturbance, by itself, has enough effect to make the perceptual signal match the reference signal. Looking at figure 8, you can see that this would mean a zero error signal and no drive to the output function. So, whenever the output drops to zero, we know that the perceptual signal is matching the reference signal, even if we can't see it.

In our model right now, the input sensitivity is 1, so the perceptual signal is numerically equal to the input quantity. That's a coincidence, since the units are different: physical units outside, impulses per second inside. Even if K1 wasn't 1, the output would still drop to zero when P = R. Thus, we can give a special name to the particular value of input quantity (however created) that brings the error signal, and hence the output quantity, to zero: the reference level of the input quantity. The reference signal clearly determines what this reference level will be, but so does the form of the input function.

Main Points Reviewed

All of this is supposed to have established two principal ideas. The first is that control systems control what they sense, not what they do. The second is that control systems act on the outside world only in order to protect a controlled perception against disturbance.

As we have demonstrated these principles, we have established some other odd facts. We have found that the main effect

150 July 1 979 © BYTE Publications Inc

Business &

Application Software Available

• Client Billing

• A/R • A/P

• Gen.Ledger

• Inventory

• Payroll

• Mailing List

• File Handling for

TRS-80 APPLE &

OTHERS Call or Write for Details

PROGRAM

DESCRIPTION

TRS-80

5 C

GALACTIC BLOCKADE RUNNER SCI-FI GAME SAMPLER R/T LUNAR LANDER MICRO-TEXT EDITOR OTHELLO 111 AIR RAID MICRO-CHESS BRIDGE CHALLENGER APPLE 21

STAR WARS/SPACE MAZE RENUMBER DISK RENUMBER PILOT 2.0 PILOT 3.0 APPLE TALKER APPLE LIS'NER TIC-TAC-TALKER SYSCOP

ANDROID NIM-2 SNAKE EGG LIFE 2 DCV-1

MUSIC MASTER DISK MUSIC MASTER TRS-80 CP/M

• AN EXCITING SPACE WAR GAME WITH GRAPHICS

• 3 GAMES—LUNAR LANDER—STAR MONSTER—SPACE BATTLE

• A REAL TIME LUNAR LANDER WITH GRAPHICS

• FORMAT TEXT—SAVE & LOAD TO TAPE—OUTPUT TO PRINTER

• A STRATEGY BOARD GAME—PLAY AGAINST COMPUTER OR OTHERS

• A REAL TIME, ARCADE TYPE SHOOTING GAME IN MACH. LANG.

• PLAY CHESS WITH YOUR COMPUTER-VARIOUS LEVELS OF DIFF.

• DON'T WAIT FOR OTHERS TO PLAY—YOUR COMPUTER'S READY

• BLACKJACK WITH HIRES GRAPHICS

• SCI-FI GAMES FOR THE APPLE

• RENUMBER YOUR BASIC PROGRAMS-RENUMBERS EVERYTHING

• SAME AS ABOVE, BUT ON DISK

• THE EDUCATIONAL LANGUAGE. IN MACH. LANG. —INC. EDITOR

• THE DISK VFRSION OF THE ABOVE

• YOUR APPLE SPEAKS! NO NEW HARDWARE REQUIRED

• SPEECH RECOGNITION THE EASY WAY—GREAT WITH THE TALKER

• TIC-TAC-TOE USING SPEECH SYNTHESIS AND RECOGNITION

• MAKE BACKUP TRS-80 SYSTEM TAPES THE EASY WAY

• GAME OF N1M WITH ANIMATED ROBOTS AND SOUND

• A BETTING GAME WITH ANIMATED SNAKES AND SOUND

• 100 GEN. PER MIN. LIFE & BATTI F OF LIFE W/ANIMATION & SOUND

• PUT SYSTEM TAPES ON DISK EVEN IF IN SAME MEM AS DOS

• ENTER SHEET MUSIC—THE TRS-80 THEN COMPILES & PLAYS IT

• SAME AS ABOVE BUT ON DISK W/MANY SELECTIONS

• OPENS UP THE WHOLE WORLD OF CP/M SOFTWARE TO THE TRS-80 10% OFF IF YOU ORDER 3 SOFTWARE PACKAGES OR MORE SEND FOR FREE CATALOG—GIVE TYPE OF COMPUTER

TO ORDER BY PHONE OR FOR DEALER INFO—CALL—(617) 682-8131 ADD 75c SHIPPING & HANDLING • MASS. RESIDENTS ADD 5% SALES TAX MAD HATTER SOFTWARE • 900b SALEM RD • DRACUT, MA 01826

$ 9.95

$ 7.95

$ 7.95

$ 9.95

$ 7.95

$ 14.95

$ 19.95

$ 14.95

$ 9.95

$ 12.95

$ 14.95

$ 19.95

$ 14.95

$ 24.95

$ 15.95

$ 19.95

$ 19.95

$ 9.95

$ 14.95

$ 14.95

$ 14.95

$ 9.95

$ 14.95

$ 24.95 $150.00

I

I

c c

c c

C

<

3

AVAILABLE FROM THESE FINE MICRO COMPUTER DEALERS

CAPITOL COMPUTER SYSTEMS 3396 EL CAMINO AVE SACRAMENTO CA 95821

TRS-80 SOFTWARE EXCHANGE 17 BRIARCLIFF DR. MILFORU NH 03055

OP AMP TECH BOOKS 1033 N. SYCAMORE AVE LOS ANGLES CA 90038

COMPUTER CABLE VIS I ON, INC 1617 42ND ST. NW «

Washington dc 20007

KENNLl -Y SYSTEMS

74 BROAD ST.

LYNDONVILl.E VT 05851

ADVANCED COMPUTER PRODUCTS I3I0H t E MN-..ER SANTA At-A CA 9270!

HOBBY WORLD ELECTRONICS 19355 BUSINESS CENTER DR. 16 NORTH RIDGE CA 91324

AUGUST AUTOMATION 28 MILK ST. WESTBORO MA 01581

THE CPU SHOP 39 PLEASANT ST CHARLESTOWN MA 02129

JAJ ELECTRONICS LTD 28 COLLINGTON AVE, BEXH1LL-ON-SEA. E. SUSSEX. ENG.

COMPUTER VILLAGE 931 SW 87TH AVE. MIAMI FL 33174

L. C. SALES

100 HINCHEY AVE. 1705

OTTAWA. ONT.. CAN. K1Y4L9

Circle 202 on inquiry card.

BYTE July 1979

1

of negative feedback in a control loop is to diminish the effects which disturbances would otherwise have on the system's input quantity. While we have had only one disturbance at our disposal, it should be clear that the number or the causes of disturbances make no difference. If ten different disturbances were acting at once, they could only end up increasing or decreasing the value of the controlled input quantity. Since the system maintains control by acting directly on the input quantity, and not by acting to oppose the cause of the disturbance, the system does not have to take account of the number of causes acting, or the phenomena that are involved. It acts to oppose the net effect of any disturbances on the input quantity.

From the point of view of the behaving system itself, reality consists of the magnitude of one perceptual signal, because that is the only internal representation of the outside world. If the system can be said to have a purpose or intention, it must be to maintain the perceptual signal matching the reference signal. The reference signal specifies to the system what it is to sense, but. not what it is to do.The output that matches perceptual and reference signals is determined by the nature of the feedback function and by the strength and direction of any disturbances that may be acting. Whatever sets the reference signal, thus effectively controlling the perceptions of this system, does not have to know anything about how the control system comes up with a matching perception.

What is perhaps most amazing to a person who has not previously worked with negative feedback systems is the capability that this system has to maintain quite precise control over its own perceptual signal, even if its own properties change. If its output apparatus becomes stronger or weaker, or its perceptual apparatus becomes more or less sensitive, there is scarcely any effect on the perceptual signal. As long as some minimum loop gain is maintained and the system does not become unstable and begin oscillating, it does not really matter how much loop gain there is, or whether most of it is in the output or the input function.

A servomechanism engineer might find this approach somewhat odd. Why all this fuss about the system's internal perceptual signal? When you build a control system for a practical use, you worry more about the external variables than internal variables, because the customer is interested in the external variables.

152 July 1 979 © BYTE Publications Inc

This is exactly the point. Living control systems are not interested in the external variables. They can't be. They don't know about them, except indirectly. All they know is what happens to themselves. The point of behavior is not to accomplish something for a user in the external world, but to affect the system itself. Everything that a living system knows about the outside world has to first exist in the form of perceptual signals, or some other internal effect of external events (not all organisms have nervous systems).

In part 3 we will start looking at living systems more directly, and this will become much clearer. We now know that control systems control, above all, their own internal perceptual signals. Next time we will see why they do that.

In the meantime you might enjoy using this simulator to do further explorations. We have looked into only a few of the questions that might be raised about control systems. The simulator can reveal far more than we have seen. For example, it is instructive to look at the effects of the disturbance strictly from the external point of view (plotting I, O, and D), and then to look at exactly the same effects from inside (plotting P, E, and R). We haven't even raised the question of what a control system looks like when it becomes unstable, how the slowing factors interact with loop gain to determine stability, or what happens when the input function, the output function, or both are nonlinear. Speaking of nonlinearity, you might try rewriting the definition of the feedback function as follows:

45 DEF FNF(X)=X*X*X/2048+X/2

and then performing some of the experiments again. Try to make the input function logarithmic (adding a constant to make sure you don't make the perceptual signal negatively infinite), and see how the input quantity and perceptual signal behave as the reference signal or disturbance is changed.

The main objective before the next article in this series appears is to understand how a control system controls its perceptual signal, and why an external observer, who doesn't know about the controlled input quantity, might think the disturbance acts on the system to make it respond, like a doorbell. The simulator is there to help you grasp this closed loop phenomenon. I hope it does help."

CBASIC BUSINESS SOFTWARE for MICROCOMPUTERS

Osborne & Associates is publishing its business systems in book form. These systems represent five years of development and testing by O&A programmers. Each book includes source listings, program and system documentation and user's manual.

What systems are we selling?

* PAYROLL WITH

COST ACCOUNTING

* ACCOUNTS PAYABLE AND

ACCOUNTS RECEIVABLE

* GENERAL LEDGER

The books sell for $15.00 each. All three are available right now with listings in Wang BASIC. New editions of each book, with listings in CBASIC-2, will be published during the summer of 1979. These new editions will run on many floppy disk-based microcomputer systems.

Don't know programming? Don't want to key in thousands of lines of source code? We have over 130 dealers who will sell you the CBASIC-2 programs on ready-to-run floppy disks. Contact us for the name of your nearest dealer.

CBASIC or Wang BASIC won't work? Take a look at the list of consultants who have converted O&A programs to run on many popular systems, and are waiting to hear from you.

CONSULTANTS-••

COMPUTER STORES- ■ • SOFTWARE HOUSES

GOOD NEWS

* * *CP/M CBASIC* * *

You can be a dealer lor the magnetic surface of O&A's CBASIC-2 software, which runs under CP/M on many floppy disk-based computer systems. We will sell the CP/M magnetic surface only to consultants, computer stores and software houses. Osborne & Associates prefers to write and sell books, not customize the programs or answer the end user's questions. The disk for each book sells for $250.00. Once you buy the floppy disk you can copy it, resell it, change it or use it. We place no restriction on the magnetic surface; we copyright only the printed word in our books. CBASIC-2 Payroll is available now. The magnetic surfaces for all three systems are scheduled to be available in the first half of 1979; call or write for the exact availability of each system.

ALPHA MICRO:

Peter Burke

TI1F. BASIC BUSINESS SOFTWARE CO . INC P.O. Box 2032 Sail Lake City. Ulah 74110 (801) 363-1199 APPLE II: Jimmy Waller

ACE. COMPUTER SYSTEMS

2449 North Wcstshorc

Tampa. Florida 33607

(8131 872-2798 COMMODORE PET:

Chuek Stuart

CMS SOFTWARE

5115 Menelee Drive

Dallas. Texas 75227

(214) 381-0690 CROMEMCO:

Richard French

TI1F NETWORK COMPUTER SYSTEMS 495 Third Avenue #8 San Francisco. California 94118 (415) 668-7777 DATAPOINT 1501): Paul Marchctti

OCCIDENTAL COMPUTER SYSTEMS. INC

6666 Vatican Avenue

Van Nuys. California 91406

(213) 782-3005 MICROPOLIS, NORTHSTAR (REQUIRES CP/M)

James Roumrce

R&A COMPUTER SERVICES

7700 Edgewster Drive. Suite 723

Oakland. California 94621

(415) 562-3133 MICROSOFT disk BASIC:

Dan Kindred

GNAT COMPUTERS

7895 Convoy Court

San Diego. California 92111

(714) 560-0433 NORTHSTAR BASIC:

Isaac Bornstein

COMPUTER SERVICES OF ENCINITAS 341 Willowspring Drive Encinitas. California 92024 (714) 436-2486. POLYMORPHIC 8813: Bruno Capre/ KEYSTONE SYSTEMS P.O. Box 767

Spokane. Washington 99210 (509) 747-5623 TRS-8II: Don French

APPLIED DATA CORPORATION

P.O. Box 16020

Fort Worth. Texas 761.13

(817) 738-0251

Irwin Taranlo

TARANTO & ASSOCIATES P.O. Box 6073

San Rafael. California 94903 (415) 472-1415 WAN(f BASIC ON FLOPPY DISK: Richard Armour

ATLANTIC COMPUTING & CONSULTING P.O. Box 7294 Hampton. Virginia 23666 (804) 340-9350

fj 1 OSBORNE & ASSOCIATES, INC.

^-^P.O. Box 2036, Dept. 122

Berkeley, CA 94702 USA

(415) 548-2805 TWX 910-366-7277

Name:.

\ddri'ss:_ Cit>:

State:.

_Zip:

Phone:

□ I am an end user interested in running CBASIC programs on disk. Please notify me of the closest dealer

for:

□ I am a dealer interested in purchasing CBASIC progran^ on disk for resale. Please send description and order information for

□ CBASIC Payroll with Cost Accounting

□ CBASIC Accounts Payable/Receivable

□ CBASIC General Ledger

Title

09-8 Payroll with Cost Accounting in Wang BASIC

13-6 Accounts Payable/Re

/able in Wang BASIC

20-9 General Ledger in Wang BASIC

Price

SI 5.00

515 011

Quantity

Calif, residents add 6% sales lax

S F BART residents add 6-1/2 % sales tax

Shipping (Shipping for large orders 10 be arranged I

□ All foreign orders S4.00 per book for airmail

□ SO45 per book 4th class in the U S (allow 3-4 weeks) n SO.75 per book UPS in the U S (allow 10 davsl

a SI 5(1 per hook special rush shipment by air in (he LI S

Please send the following information

□ Becoming an O&A dealer

□ School discounts

□ List of foreign distributors

California residents lax Shipping lulal Amount I.utilised

Amount

Payment in advance must he enclo 570,00 available upon approval of • drawn on a U S bank

□ Other O&A publications

□ I am interested in the CBASIC business books. Please send me description and order information.

jd lor purchases of tip to S70(H) Invoicing U S purchases over lur account All foreign orders must be prepaid in US dollars

Circle 292 on inquiry card.

BYTE July 1979

153

Glubs and Newsletters

Virginia Club for Radio and Computer Amateurs

The Amateur Radio Research and Development Corp (AMRAD) is a Virginia based club of over 200 radio and computer amateurs. The purpose of the club is to develop skills and knowledge in radio and electronic technology; advocate design of experimental equipment and techniques; promote basic and applied research; organize forums and technical symposiums; collect and disseminate technical information; and provide experimental repeaters.

Meetings are on the first Monday of each month at 8 PM at the Patrick Henry Branch Library, 101 Maple Av E, Vienna VA. The Amrad Newsletter is a monthly publication which is mailed to all AMRAD members. Contact Amateur Radio Research and Development Corp, 1524 Springvale Av, McLean VA 22101.

Sacramento Microcomputer Users Group

The Sacramento Microcomputer Users Group newsletter, Push & Pop, comes our way on a monthly basis. The most recent contained articles on CP/M Sleuth and CP/M to Pencil and Pencil to CP/M in Z-80 Mnemonics. The general club meetings are the fourth Tuesday of every month at 7:30 PM The club also sponsors a PET workshop, SOL workshop, and hardware study group. For meeting location and more information about this group contact SMUG, POB 161513, Sacramento CA 95816.

Attention: Fox Valley Area Illinois Computer Enthusiasts

A fairly new computer club is getting started in the Fox Valley area of Illinois. Called the Microprocessor User Group, they are primarily an Apple user group but wish to include all processors in their discussions. With a current membership of 50, it is the club's intention to publish a newsletter and a calendar. Meetings are held in the Fermi National Accelerator Laboratory Hi-Rise on the main floor in the SW meeting facility on the third Monday of every month at 8 PM. Contact Mike Urso, 641 Woodlawn, Aurora IL 60506.

Health Insurance for Your Floppies!

Problem: Dust, Smoke, Solution: The Flex 80 and Warpage will Ruin System will Protect, Index, Your Floppy Disks. and File Your Floppy Disks

Quickly and Easily.

For Further Information and a

Free Copy of Our "Policy"

CALL TOLL FREE 800 323-0254

ADVANCE ACCESS GROUP

10526 W.Cermak Westchester, IL 60153 312 562-5210 icturerso/In/o

Association of Computer Experimenters

Besides holding monthly meetings, this active Canadian group publishes a most impressive newsletter called Ipso Facto. The most recent issue contains 72 pages and is filled with articles and program listings. Membership in the club is $10 per year, and they are constantly seeking new members with interesting ideas. Contact Bernie Murphy, 102 McCrany St, Oakville, Ontario, CANADA L6H 1H6.

Pacifica TRS-80 Club

The Pacifica TRS-80 Users Group is meeting in the Radio Shack store in the Eureka Square Shopping Center which is located about 10 miles from San Francisco. They meet the second and fourth Thursday of the month to exchange programs and ideas regarding the TRS-80. All individuals are cordially invited to attend one of their meetings. Contact John F Strazzarino, 637 Brussels St, San Francisco CA 94134.

Evansville Indiana Computer Club

Evansville IN does have a computer club according to a recent letter from Robert Heerdink. He is concerned with increasing the club's membership and encourages any interested individuals in that area to attend one of their monthly meetings. The group is interested in several types of microcomputers. They usually meet at the Blind Association, Second Av and Virginia, at 7:30 PM on the second Wednesday of the month, although he recommends checking with him first. Robert can be reached at the Evansville Computer Club, c/o National Sharedata Corp, POB 3895, Evansville IN 47737, (812) 426-2725.

Theater Computer Users Group

The Theater Computer Users Group is sponsored by Theater Sources Inc, a corporation created to gather and distribute information about theater in the United States. Their newsletter, called TCUC Notes, is $4 per year, and back issues are available. Contact TCUC Notes, Mike Firth, Editor, 104 N St Mary, Dallas TX 75214.

Alamo Computer Enthusiasts

Located in San Antonio, the Alamo Computer Enthusiasts meet on the third Friday of each month at the Norris Technical Center, Room 208, St Philip's College, San Antonio TX. Their monthly newsletter is available for a one year subscription fee of $2. Contact Dave Fashenpour, 5411 Cerro Vista, San Antonio TX 78233.

LISP Users Newsletter

The first issue of the Lisp Users Newsletter is an announcement of this new organization which is designed to

1 54 July 1979 © BYTE Publications Inc

Circle 2 on inquiry card.

spread information about applications, implementation and general information on LISP-like languages. It will pay particular attention to those LIS Pish things which are within the realm of currently available microprocessor systems. As an initialization process, a mailing list of prospective interested individuals is being compiled. If you are interested, send your name and address, background, interest in and knowledge of LISP, what system (if any) you own, and memory capacity (internal and mass storage) to John R Allen, 18215 Bayview Dr, Los Catos CA 95030. Please include any suggestions you may have about organization or topics you would like to see discussed. John requests that you submit a dollar to cover postage and duplication of the newsletter.

Free TRS-80 Newsletter

The free TRS-80 Bulletin, which prints club and product news about the TRS-80, is sporting a new format and is now monthly. The Bulletin is an offshoot of TRS-80 Computing (see BYTE Clubs and Newsletters December 1978). For a free copy of the Bulletin write to the Computer Information Exchange Inc, POB 158, San Luis Rey CA 92068.

Ventura County TRS-80 Club

the creation, organization and realization of this idea. Interested persons should contact him by mail, in care of the station or by phone at (414) 271 -1036.

Chess Tournament

The second London microprocessor chess tournament will be held in the West Centre Hotel, Lilee Road, Fulham, London England, from November 1 thru 3 1979. Any individual or company wishing further details should write to David Levy, c/o Personal Computer World, 62a Westbourne Grove, London, W2.

This year's event will be the first European Open Microprocessor championship. The highest placed participants will automatically qualify for places in the final of the first World Micro Championship which is scheduled to be held in London in 1980.

IECI 80 Issues Call for Papers

IECI '80, the Sixth Annual Conference and Exhibit on Industrial and Control Applications of Microprocessors, will be held at the Sheraton Hotel in Philadelphia next March 17 thru 19,1980. IECI '80 will offer an exhibition and technical program dealing with the current and

new work of industrial microprocessor applications. Papers dealing in such areas as automotive diagnosis and operation, intelligent instrumentation, transducers and sensors, automated manufacturing, numerical control and robotics, and biomedical control and monitoring are invited. Ten copies of the paper in extended summary form, 500 to 600 words long and an abstract of no more than 40 words describing work not generally published or previously presented, should be mailed by September 14 1979 to H T Nagle Jr, Electrical Engineering, Auburn University, Auburn AL 36830. The extended summary will be used for paper selection and session assignment and should clearly define the salient concepts and novel features of the work described. Notification of acceptance and format required for publication in the IECI '80 proceedings will be sent by October 19 1979.

Forth Inc Announces 13 Software Seminars

Forth Inc, producer of Forth based software systems for mini and microcomputers, has announced a schedule of 13 software seminars to be held throughout the US this summer. The seminars, which are half day events, cover design, application and

This group is comprised of about fifty computer enthusiasts living in the Ventura County area. Their main purpose is to share information relating to the practical applications as well as the entertainment possibilities for Radio Shack's TRS-80 microcomputer. Membership dues are $10 a year which includes a newsletter. Meetings are held the first Tuesday of each month at the Camarillo Public Library, 3100 Ponderosa Dr, Camarillo CA at 7 PM. Visitors are welcome and prospective members are encouraged to attend a meeting. Contact Lee Steinmetz, Secretary, 567 W Loop Dr, Camarillo CA 93030, (805) 484-1724.

BYTE's Bits

A Public TV Series

In a recent phone conversation with Robert J Whitney, Producer/Director at WMVS/WMVT television, channels 10 and 36 in Milwaukee Wl, we learned of a proposed television series for public television concerning people who build, buy and use small computers. The series idea is for 8 to 15 half hour shows about small computer hobbyists, experimenters and enthusiasts. Robert is looking for people in the Southeastern Wisconsin area who could lend their expertise to

Build The World's Most Powerful 8-Bit Computer

Featuring The Famous Intel 8085!

Explorer/85™

Starting for just $129.95 you can now build yourself a sophisticated, state-of-the-art computer that can be expanded to a level suitable for industrial, business and commercial use. You learn as you go. . . in small, easy-to-understand, inexpensive levels!

• Features Intel 8085 cpu/100% compatible with 8080A software!

• Onboard S-100 bus tup to 6 slots)!

• Onboard RAM and ROM expansion!

• Built-in deluxe 2K Monitor/Operating ROM!

• Cassette/RS 232 or 20 maJ41/2 8-bit parallel I/O and timer all on beginner's Level "A" system!

As featured in POPULAR ELECTRONICS

EXPLORER/85 shown with Video Monitor and Keyboard/Video Terminal

CHOICE OF HEX KEYPAD OR TERMINAL INPUT

it you plan lo customize EXPLORER for dedicated use. we recommend foal you order hex keypad input. But. it you .ire planning to go whole horj and blow EXPLORER up into a lull size, stale-of-the art system with 8K or extended basic |coming sooni up lo 64K o! memory floppy disks, telephone interlace, printers and all saris ot S-iOO plug-ms—you'll be beller oil with the Keyboard/Video terminal input the Si49 95 EXPLORER Keyboard/Video Terminal includes lull ASCII decoding wilh 128 ASCn upper/lower case set 96 printable characters, onooard regulators and selectable display tormals—32x16 lot lv set or 64x16 lor video monitor inol included) EXPAND EXPLORER, LEVEL-BY-LEVEL

Level "B". at $49 95. adds S* 100 signals plus onboard RAM/ROM decoding Includes all parts necessary lo generate Ihe signals lor S-100 Pus accessories Just add two S-100 bus connectors and you have a complete S-100 compatible computei with a world of add-ons al your linger tips Choose irom hundreds ol products to EXPLORER/85 gives you big computer leatures immediately, without lurnirnj you satisfy your individual needs Level B hit also includes the address decoders lor into an appliance operator doomed lo run pre-developed software lor hie Simply onboard RAM and ROM expansion, which are addressable anywhere in ihe 65K held connect EXPLORER lo a terminal videomonitor or tv set and 8 voil power supply and Level "C" expansion, at $39 95. expands the S-100 bus lo allow a tola) ol six slarl running programs the very first night' Level A leaches you machine s-IOD cards to be plugged into EXPLORER s motherboard and contained in language and computer fundamentals ll lets you run exercise programs nciudmg EXPLORER'S steel cabinet "includes all hardware mounting brackets board guides, programs to examine the cpu registers, examine memory lilt memory, move memory elc Jusi a[](| 1ne numper of S-100 bus connectors you need and make up games You can toad end play back these programs on an ordinary tape j_Bve| "D" expansion, at S59 95. gives you 4K ot onboard static RAM utilizing cassette—and display your efforts on any lv screen video monitor or printer (S8 95 ?ii4ICs Your board will also accept lour 2716 EPR0M s which can tie purchased Rf modulator required lor lv use t The simplihed architecture ot Ihe Intel 8085 separately You now have an advanced mainframe thai can be customized with the makes EXPLORER tar easier to understand than computers using the older, more peripherals of your choice to lit any (or all) specilrc requirements Each level ol complex but less poweriui 8080A Then when you re ready EXPLORER can pe EXPLORER is separately regulated lor the uilimate in stability Factory service is expanded-by you—lo rival the power ol any 8-bil computer on earth Or you can avaiiaDie from Netromcs Order your EXPLORER loday!

customize il lo perform a dedicated lask. thanks loonboard _____ — ORDER FROM THIS COUPON TODAY! — — — 1

Netromcs R&D Ltd., Dcpt BY-7, 333 Litchfield Road. New Millord, CT 06676

□ Level "A' EXPLORER/85 kit (specify □ ler- □ Deluxe Sleel Cabinet lot EXPLOREH/85 I minal or □ hex keypad mpull. S129 95 plus i S3 p&h

' □ Power Supply kit. 5 amp. ±8 volt. S34 95 i plus $2 p&h

1 □ Intel 8085 User s Manual. $7 50 ppd

I □ ASCII Keyboard/Video Terminal kit. $1*19 95 I plus S3 p&h

| □ Hex Keypad kil tor hex version. $69 95 plus

LEVEL "A" SPECIFICATIONS

EXPLORER s Level "A" syslem leatures an advanced Intel 8085 cpu which is 50% faster than its 8080A predecessor, yet 100% compatible with 8080A sollware which you n discover, exists by Ihe ton Big computer' leatures include an 8355 ROM with 2K deluxe monilor/ operating system which has two programmable 8-bil bi-directional parallel 1/0 ports, built-in cassette interlace with lape control circuitry lo allow labeling cassette tiles, and commands which include "display contents ol memory. ' run al user location (go lot. "insert data, "move contents ol memory "examine registers individually or all fill command (fo fill the contents of memory | □ Level "B S- 100/Onboard RAM/ROM Decoder wilhany variahic) automatic baud rale selection, program- kit (less S-100 connectors). $19 95 plus $2 mable characters per line display oulput lormal. and more1 | P&n

An 8155 RAM —1/0 chip contains 256 bytes ol RAM, Iwo □ Level "C S-100 5-Card Expander kit (less programmable 8-bit bi-direchonal and one programmable I conneciors). S39 95 plus $2 p&h 6-bit Di-dnechonai \'0 ports plus programmable 14-tm □ s-100 Bus Conneclois (gold) S4 85 each pmary counter/timer user interrupt and resel switches ' q Leve| q 4K Onboard RAM kit S69 95 plus Onboard expansion provisions exist tor up lo six S-100 I $? p&h boards. 'IK ot RAM and 8K ol ROM. PROM or EPR0M [__ _ _

S2 p&h

S39 95 plus $3 p&h

□ Deluxe Sleel Cabinet lor Keyboard/Video Ter minal S19 95 plus S2 50 p&h

□ RF Modulator kil $8 95 ppd

□ Total Enclosed (Conn res add lax) $_

□ VISA □ Master Charge Eitp. Date

Account #

PHONE ORDERS CALL (203) 354-9375

Print

DEALER INQUIRIES INVITED .

Circle 280 on inquiry card.

July 1979 © BYTE Publications Inc 1 55

demonstration of miniForth, microForth, and new polyForth software systems, are open to programmers, project managers, data processing professionals, electronic engineers, and OEMs. Following the seminar, there will be a meeting to discuss various plans for OEMs of Forth software. For a complete list of seminar locations and dates, write to Forth Inc, 815 Manhattan Ave, Manhattan Beach CA 90266/

Call for Papers for Computer Networking Symposium

The 1979 Computer Networking Symposium to be held December 12 1979 in Caithersburg MD has issued a call for papers. The symposium will feature papers of a tutorial nature which describe practical experiences with computer networks and network applications, and papers that present new research results. Accepted papers will be published in the symposium proceedings. Four copies of 1,000 word abstracts should be submittd by July 15 1979 to Dr Vijay Ahuja, E96/B629, IBM Corp, Research Triangle Park NC 27709. Authors will be notified of acceptance by August 1 1979. The Computer Networking Symposium is sponsored by the National Bureau of Standards, and the IEEE Computer Society.

Byte News Update

Byte News in the March 1979 issue began with a paragraph listing computer manufacturers that support Pascal. For a year Texas Instruments has supported Pascal which can be implemented on the Model 990 minicomputer in the form of Tl Pascal (TIP). There are also two executive operating systems available which are appropriate for use with Pascal.

The Texas Instruments Microprocessor Executive Library (TIPMX) is a collection of operating system components available to users of the TMS 9900 family of microprocessors. Minimum developments tools required for use with TIPMX are a text editor, an assembler and a link editor, all of which are available with the purchase of a Texas Instruments software license. TIPMX may be used on either the floppy disk based FS990 development system, or any of the several hard disk systems such as the DS 990. TIP and its extensive run time support library are available on the hard disk based system and are highly recommended for use with TIPMX.

The latest addition to Tl's software support is called Texas Instrument's Modular-Based Executive in Read only memory (TIMBER). TIMBER is targeted for users of the TM 990 series of

microcomputer modules. In this way it is possible to do Pascal software development on a low cost system incorporating the TM 990/302 software development system. The fundamental benefit of TIMBER is that it is pre-packaged in erasable read only memory, thereby freeing the user from the concern of inadvertently destroying the operating system.

In the second paragraph of Byte News, Intel was mistakenly credited with being the first to market a 32 K byte programmable read only memory. Texas Instruments introduced the world's first 32 K programmable read only memory in April of 1978. The TMS 2532 is organized as 4 K by 8 bits and operates from a single +5 V power supply with standby power dissipation of 50 mW typical. A + 25 V supply is only needed for programming.

Dale R Gibble Project Engineer Texas Instruments POB 1443 MS 6750 Houston TX 77001 ■

NEW FROM MOUNTAIN HARDWARE.

THE APPLE CLOCK.

- „-,- *?■

New utility for your computer.

Now, there's a real time clock for the Apple II*: the Apple Clock from Mountain Hardware. It keeps time and date in ImS increments for one year. On-board battery backup keeps the clock running in the event of power outage. Easy to use with BASIC using routines carried in on-board ROM. That means you can time events, put time and date on printouts, create games in which elapsed time is important...and many more. Mountain Hardware offers a complete line of peripheral products for many fine computers.

Available at your dealer's. Now.

Mountain Hardware, Inc.

300 Harvey West Blvd. Santa Cruz, CA 95060 (408) 429-8600

"Apple II is a trademark of Apple Computer, Inc.

25

BYTE's Bogs

A Reorganized Wine Cellar

As one who enjoys both wine and computers, I must comment on several inaccuracies in the article entitled "Computerized Wine Cellars" (February 1979 BYTE, page 128). The second wine in listing 1 is Rauenthaler Rothenberg Riesling Spatlese 1976 — von Simmern. The varietal name is not, as listed, Rhine, which is a geographical area, but Riesling, which is the name of the best grape variety produced in Germany. The Rheingau, which is the Rhine sub-area from which this wine comes, produces Riesling almost exclusively, but other Rhine areas produce Sylvaner, MullerThurgau, and other varietals as well.

More strangely, the producer is listed as Rauenthaler. In top quality German wines, the first name refers to the village and the second to a particular vineyard. Here, we have the village of Rauenthal and the vineyard Rothenberg. The producer is the Graf (Count) von Simmern.

In any case, I have recently enjoyed tasting this wine and I can verify the accuracy of the tasting notes in the listing - it is a super wine, and In wine drinking, that's what counts!

Larry Rosenblum 12008 Trailridge Dr Potomac MD 20854» .

1 56 July l 979 © BYTE Publications Inc

Circle 257 on inquiry card.

SYBEX

THE LEADER IN

miCROCOmPUTER EDUCATION

PRESENTS

BEST-SELLING BOOKS

Used by Universities and Industry worldwide (ten languages)

MICROPROCESSOR

INTERFACING

TECHNIQUES

ROOHAYZAKS

re

C200-AN INTRODUCTION TO PERSONAL AND BUSINESS COMPUTING

Rodnay Zaks, 250 pp

A comprehensive introduction to small computers, their peripherals, and what to select. $6.95

C201-MICROPROCESSORS: FROM CHIPS TO SYSTEMS

Rodnay Zaks, 416 pp

The basic texl on all aspects ot microprocessors and the assembly ol a system. $9.95

C202 - PROGRAMMING THE 6502

Rodnay Zaks, 320pp

A complete introductory programming text lor the 6502. $10.95

D302 - 6502 APPLICATIONS BOOK

Rodnay Zaks, 288 pp

Connecting a 6502 board to the outside world: from home alarm to music and industrial control. $12.95

C2BO • PROGRAMMING THE ZSO

SameasC202fortheZ80. $10.95

C207- MICROPROCESSOR INTERFACING TECHNIQUES

A. Lesea & R. Zaks, 416 pp

How to interlace a microprocessor to external devices: Irom keyboard to ADC to lloppy disk, including standard busses. $11.95

XI-MICROPROCESSOR LEXICON, 125pp

All the definitions of the microprocessor world in a convenient pockelbook formal. $2.95

AVAILABLE AT BOOKSTORES, COMPUTER STORES, AND ELECTRONIC SHOPS EVERYWHERE!

SELF-STUDY COURSES ON CASSETTES

"The time-efficient way to learn"™

Self-study courses include two to eight audio-cassettes and a special book. They offer the fastest way to learn the topic covered (from % to two days). Highly effective.

<

MICROPROCESSOR StlF ■ STUDY COURSE ON CASSITTBS

DESIGNING A MICROPROCESSOR SYSTEM

I m mmm i

P

i 0 L^i

t m mm m ,

MICROPROCESSOR SILF ■ STUDY COURSEONCASSETTES

MftfTMtl MICROPHOCtSSOR SYSTfMS

r • ™ • ;

mum

MICROPROCESSORS

hwm chips to systems

MICROPROCESSOR SELF • STUDY COURSE ON CASSETTES

1-INTRODUCTORY-SHORT (2.5 hrs ea)

51- INTRODUCTION TO MICROPROCESSORS $29.95

52- PROGRAMMING MICROPROCESSORS S29.95

53- DESIGNING A MICROPROCESSOR SYSTEM $29.95

SI OB-INTRODUCTION TO PERSONAL AND BUSINESS COMPUTING S21.90

2-INTRODUCTORY- COMPREHENSIVE

(lO to 12 hrs ea)

SB1-MICROPROCESSORS $59.95

SB2-MICROCOMPUTER PROGRAMMING $59.95

TO ORDER

ByPhon.: 415 848-8233, Visa, M.C,

Amer Express. By mall: Include payment. Shipping: add S1.50 per book (UPS) or

75« (4th class - allow 4 weeks).

Double for cassettes and overseas. Tax: in California add tax.

FREE DETAILED CATALOGUE

SYBEX

2020 Milvia Street Berkeley, CA94704 Tel 415 848-8233 Telex 336 311

NAME.

3- SPECIALIZED (4.5 to 6 hrs ea)

SB3-MILITARY MICROPROCESSOR

SYSTEMS $49.95

SB5-BIT-SLICE $49.95

SB6-INDUSTRIAL MICROPROCESSOR

SYSTEMS $49.95

SB7-MICROPROCESSOR

INTERFACING $49.95

.POSITION.

COMPANY

ADDRESS

CITY

_STATE/ZIP

□ C200 DC201 UC202 UC207 DD302 DC280 DS1 CJS2

□ S3 DS10B DSB1 QSB2 DSB3 DSB5 DSB6 DSB7

□ charge my DVisa DM.C. DAmer Express Number Exp. date

Signature.

□ Send Catalogue 87

Circle 356 on inquiry card.

BYTE July 1979

157

Creativity in Computer Music

Hubert S Howe, Jr Dept of Music Queens College CUNY Flushing NY 11367

The most important result of computer applications in music is that they have encouraged a variety of new ideas to be formulated, tested, and reformulated in a short period of time. Concepts that previously would have taken much longer to develop and verify have already been brought forth. Musical thought is consequently on a higher level today. This applies to all aspects of work with computers - as much to research as to creative work, but perhaps less to music than to some other fields. The increasing availability of microcomputers can only further this trend.

The distinction between research and creative work is artificial, for much research is creative — certainly when it pursues new ideas. Computer work in music has for many years been carried out in the creative areas of musical composition and sound synthesis, and the research areas of musical analysis and music theory. In this discussion I will not consider such areas as music bibliography, music printing, CAI (computerassisted instruction), and related disciplines. While much important work has been done in these areas, they are not generally concerned with creative or conceptual problems. Music bibliography essentially involves an information storage and retrieval system. Music printing is a problem of automation. CAI certainly encompasses creative work, but thus far only the most rudimentary instructional tasks have been delegated to computers, and then only with limited success.

Instead, I will discuss music theory, analysis, sound generation, and composition and their relation to the computer. While we are discussing the question of musical tasks in general, it is relevant to point out that any musical task is in principle subject to delegation to a computer. Musical tasks include any activities carried out by human beings that involve interaction with music.

Music is composed by composers in ways that, traditionally at least, involve only their own internal ideas, realized sometimes with

the assistance of an instrument like the piano. Music is performed by performers who usually play from printed notation. Music is heard by listeners who may then engage in reflection, evaluation, or criticism. Musical documents such as recordings or scores are kept in libraries where they are filed according to careful systems of classification. Computer composition, performance, printing, recording, documentation, bibliography - even evaluation or criticism - all are feasible.

The problems involve simulating the sensory processes with which people interact with music - listening, writing, visual communication — and the mental processes with which they make their conclusions about music. The sensory processes are simulated by the I/O (input/output) devices on computers, and since computers cannot do all of these tasks in the same way that people can, various languages have been devised to enable translation from the human form into a form computers can read. The mental processes are simulated by the programs.

Now that we have described these general features of computer work in music, let us consider some specific problems concerning the four disciplines mentioned above and how using a computer has encouraged the formulation of new concepts in creative ways.

Music Theory

There has always been a close relationship between the discipline of music theory and other fields, particularly analysis and composition. In the twentieth century, composers have produced some highly original theories that they have attempted to apply to their compositions, either before or after they have written them. The term "speculative music theory" describes theories conceived before the music illustrating them is written.

After the music has been composed, it is usually a simple matter to verify whether

1 58 July 1 979 i BYTE Publications Inc

At last. A controller you'll never have to throw

If you've got a floppy disk controller on your S-100 bus, you've got a big problem. Because when you want to upgrade your system from single to double density, or from single-sided to double-sized, or from 5" to 8" floppy, you'll have to throw that old controller off the bus.

But not any more you don't. Because at DATASPEED, we've developed one controller that works with all four kinds of floppy disk drives. And doubles the density, too.

Works with all floppy disk drives.

Single-sided minifloppys™ Double-sided minis. Single-sided maxis. Even the new double-sided maxis with up to 8 megabytes. This is the only controller in the world that works with all four.

Handles any upgrade.

When you want to go from single-sided to double-sided drives, this great new controller reads each side automatically. And you can upgrade from 5" to 8" disks just by changing a simple Header socket.

Packs in twice the data.

Now you can pack double density data on every side of every disk. Because we've designed in a bootstrap PROM that automatically controls any shift from single to double density. And, of course, when you're running double density, you can transfer data in half the time.

Circle 97 on inquiry card.

So when you buy this controller, and a compatible CP/M™ we're including a free software package that lets you transfer all your files to double density.

We call it The Conductor.

The DATASPEED Floppy Disk Controller. It handles all your upgrades. It packs in twice as much. And at only $295, it's even the cheapest way to go. That's why this is one controller you'll never have to throw off the bus. And that's why we had to call it The Conductor. Ask for it at your local computer shop or send $295 for immediate delivery. By the way, we have Double-Density CP/M™ for only $100. Complete disk drive systems are available.

Write us for more information. Dealer inquiries welcome. And watch our future ads for trade-in offers. DATASPEED, INC., 1302 Noe Street, San Francisco, CA 94131.

THE CONDUCTOR

TM

Minifloppy is a TM of Shugart Associates. CP/M is a TM of Digital Research.

BYTE July 1979 1 59

a theory applies to it, assuming that the theory is adequately formulated. For example, Schoenberg's conception of atonal music and later his "method of composition with 12 tones" originated as speculative ideas which were described, albeit confusingly, in his books Harmonielehre and Style and Idea. More recent composer/ theorists like Milton Babbitt have extended Schoenberg's original ideas to even greater levels of abstraction.

The availability of computers has spurred great efforts to test these theories and other ideas to a greater degree than people had been willing to attempt before. (Though most theoretical work has been done on large general-purpose computers, much can now be done on microcomputers, as is shown in our example of pitch structures.) Concomitantly, the results obtained by these researchers have brought forth new ideas and exposed the inadequacies in old ones.

Part of the reason for such success has been the fact that it is by no means obvious or easy to explain how theoretical ideas apply to a piece of music in detail, and people have had to clarify their methods in ways that go beyond what had been accepted before in noncomputer work. Computers do not presently have the ability to

listen (in the sense that a person "listens") to a piece of music to decide whether or not a given idea applies to it. Researchers have instead formulated methods that involve detailed inspection of the notation for a piece. Sometimes these produce results that seem mystifying or incorrect when compared with results reported by listeners. This conflict demonstrates the difficulty of accepting unintuitive ideas about music and the question of whether or how listeners ought to revise their listening habits in order to perceive musical structures that are verified to exist in the music.

Theories, in the sense employed thus far, are ideas that explain the structure of entire compositions or passages of music. Few musical theories, even that of triadic tonality, are in fact expressed in any such detail. Usually there is a large gap between the theoretical constructions and their applications to the music that is supposed to be filled by the reader. This is obviously true of such modern concepts as pantonality (see reference 6), or of attempts to perceive Schoenberg's 12 tone compositions in a certain key (see page 407 of reference 7). Allen Forte's theory of set complexes (reference 8) presents a collection of ideas that would still not be a theory in the sense described above, but he nevertheless has much more success

<

C

CO

C

CD CO

a i„

o

a

c

CO

Q. E

o a

en rs a)

wmwm

PERSONAL COMPUTING SOFTWARE FOR APPLET PET®, AND TRS-80©

APPLE • COMMODORE • POWERSOFT GRT • PERSONAL SOFTWARE • RD.I.« SOFTAPE

EXCLUSIVELY AT ALL PARTICIPATING ComputerLand STORES.

TM

160 July 1 979 © BYTE Publications Inc

Circle 75 on inquiry card.

BITS

inc

Books to orose the impossible

POB 428, 25 Route 101, Peterborough, NH 03458

L€T'SG€T

PERSONAL

How to use use your personol microcomputer to its fullest potential

PA

SMALL COMPUTER SYSTEMS HANDBOOK By Sol Libes

□ This is an introductory text for those with a minimal knowledge of electronics who are interested in microcomputers as a hobby. The author explains microcomputer concepts from the number systems and logic circuits to programming languages and applications with the emphasis on practical knowledge.

197 pp. $8.45

YOUR HOMECOMPUTER By James White

□ A clearly written, nontechnical description of personal computers that requires no prior knowledge of computers or electronics. The emphasis is on understanding; over 100 illustrations are included. Topics include: computing and you; communication inside a computer; computer thought processes; fixed memory; inputs and outputs; peripherals; systems components; how to choose a microcomputer; and so on. Your Home Computer is the ideal book for readers who thought they could never understand how computers work. The best part is that this is both easy and fun to read.

235 pp. $9.95 For you

PIMS — PERSONAL INFORMATION MANAGEMENT SYSTEM By Madan Gupta

□ This book describes a data base management system designed for personal use on small computer systems using BASIC. Along with complete source listings of the program and comprehensive operating instructions, the book discusses the personal microcomputer and its potential for personal use. The tasks you could perform with this information management tool include: maintaining a mailing list, balancing small business and personal checking accounts, keeping track of inventories, maintaining log books, and countless others. Powerful commands allow you to create, add to, change, list, delete, sort, and search your data files.

This book can really unleash the full power of your personal computer!

88 pp. $9.95.

... and for your personal programming needs

The Bits Programmer Pad

TM

□ Improve your style with BITS Programmer's Pads.™ One side is an ingenious memory/register allocation form, custom-tailored to the microprocessor you're programming: 8080A, 6800, 6502, Z-80, or 1802. The other side is for your program, with pre-numbered lines and columns for addresses, object code, labels, instructions, and those essential comments. Write your source code first and later assemble by filling in the object codes and assigning memory addresses. (If you're hand assembling your programs, these pads are a must!) 50 page pads on durable paper. Prepunched for a 3-ring notebook, too. ONLY $2.50 each.

Postage: $.75 for one Pad, $1.25 for two or more Pads.

r convenience in ordering, please use this page

#N€W #

Z80 ASSEMBLY LANGUAGE PROGRAMMING By Lance A. Leventhal

□ Hot off the press, here's the 280 assembly language and its use in Lance Leventhal's graphic style. A parallel to his earlier book "6800 Assembly Language Programming", it covers the Z80 instruction set in depth and programming techniques for its use, including many sample products.

FROM OSBORNE & ASSOC. $9.50

INTRODUCTION TO TRS-80 GRAPHICS By Don Inman

□ TRS-80 users, here in Level-I BASIC are the techniques you need to make full use of your video display. This book is ideal for the beginner, with complete explanations for the statements and commands used. The plot and print methods are detailed and used in creating lines, curves, and more complex geometric shapes. Moving patterns are explored. The basic techniques will stir your imagination to make full use of the TRS-80's graphics capabilities.

133 pp. $8.95

32 BASIC PROGRAMS FOR THE PET COMPUTER By Tom Rugg and Phil Feldman

□ Here are 32 fully documented programs, ready to run on your Commodore PET 2001 computer, including applications programs, educational programs, games, graphical display programs, math programs, and more. The program instructions are detailed enough to allow you to modify any program and sample runs are included. PET users, don't leave your PET on the shelf, put it to work for you!

267 pp. $15.95

PEANUT BUTTER AND JELLY GUIDE TO COMPUTERS By Jerry Willis

□ This book is much like a peanut butter and jelly sandwich: simple but nutritious. It is an introduction to the hardware of personal computers that is free of technical jargon; a combination consumer's guide and tutorial. The fundamental parts of a computer, computer languages, and personal applications are covered. Included are case studies of people, their computers and applications. It's a humorous and painless introduction to the world of the personal computer.

207 pp. $7.95

DIAL YOUR CHARGE CARD ORDERS TOLL FREE 800-258-5477

VISA

(in NH call 924-3355) Mon-Fri 9-5 plus the order form on page 137

BYTE July 1979 161

in describing how his ideas relate in specific ways to actual musical content and the difficulties encountered in this process.

Forte's theory is a striking example of a series of ideas that grew out of a continuing interaction with computers. In his case, as well as that of this author, computers

Pitch Structures

Pitch structures are sets of notes related by transposition (see Glossary). Within 12 tone equal temperament, there are exactly 351 of them available. The BASIC program shown in listing 1 generates all pitch structures in normal form. Normal form is a method of notation that chooses the representation with the smallest overall intervallic span. Individual pitch classes are indicated according to their intervallic distance from the lowest note. For example, the major triad (C E G) has three orderings: 0 4 7 (C E G), 0 3 8 (E G C), and 0 5 9 (G C E). The normal form representation would be 0 4 7. When two representations have the same overall span, the choice is made according to the smallest second, third, etc, interval. Some sets, like the augmented triad 0 4 8 (C E G#) have the same intervallic pattern for each ordering; these sets all have two or more transpositions that produce the same set of pitch classes.

This program is written in TRS-80 Level 1 BASIC, which allows multiple statements to be given in a single line using the colon (:) as a delimiter. LET is optional in assignment statements, and has been omitted in the program.

Listing 1: Program written in TRS-80 Level I BASIC to compute pitch structures in normal form.

5 REM PROGRAM TO COMPUTE PITCH STRUCTURES IN

6 REM NORMAL FORM

10 FOR 1=1 TO 24: A(I)=0: NEXT I

20 S=2: K=l :L=S-1: M=2: N=l: Q=0: A(25)=0

30 FOR 1=1 TO L: A(I)=A(10*N+14+I): NEXT I:A(S)=K: V=A(2)

40 GOSUB210:IFTOOTHEN80

50 FORI=1TOS:A(10*M+14+I)=A(I):NEXTI

60 Q=Q+1: PRINT S, Q,: FOR 1=1 TO S: PRINT A(I);: NEXT I: PRINT

70 K=K+l:M=M+l:GOTO30

80 IF V <= A(10*(N+1)+16) THEN 100

90 L=S:S=S+1:Q=0:IFS >10THEN110

100 N=N+1: K=A(10*N+14+L)+1: GOTO 30

110 GO TO 999

200 REM SUBROUTINE NRMLFM

210 P=S-1: X=0: T=0

220 IF A(1)=0 THEN 250

230 X=A(1):T=X

240 FORI=lTOS:A(I)=A(I)-X:NEXTI

250 FOR 1=1 TO S: A(I+12)=A(I): NEXT I: A(S+13)=12

260 U=A(14): X=X+U: IF X >= 12 THEN RETURN

270 FOR 1=2 TO S: A(12+I)=A(13+I)-U: NEXT I

280 IF A(S+12) < A(S) THEN 330

290 IFA(S+12)>A(S)THEN260

300 FOR F=2 TO S: IF A(F+12) < A(F) THEN 330

310 IF A(F+12) > A(F) THEN 260

320 NEXT F: RETURN

330 FOR 1=1 TO S: A(I)=A(I+12): NEXT I: T=X: GOTO 260

999 END

figured prominently in the development of the concepts employed in formulating the theory. Composers have sometimes referred to these concepts as precompositional ideas.

In my own work (described in "Some Combinational Properties of Pitch Structures," Perspectives of New Music, volume 4, number 1, fall/winter 1965, pages 45 thru 61) the basic concepts were pitch, pitch class, pitch class collection, and pitch structure. A computer was used to generate the basic sets of all of these elements, and then to test various operations such as inversion and cycle of fifths equivalence. The fact that a computer was used in this work meant that my list of pitch structures generated by the computer was one of the first accurate lists ever produced. Howard Hanson's count of distinct pitch sets in 777e Harmonic Materials of Modern Music: Resources of the Tempered Scale, Irvington Pub, NY, 1961, is incorrect. Forte's list published in "A Theory of Set Complexes for Music," Journal of Music Therory, volume 8, number 2, winter 1962, is correct according to his definition, but his definition does not reflect current practice. I have continued to use computers in my work, which now includes computer composition as well as theory development.

It is not difficult to see that the continuing use of computers in music theoretical work will have beneficial results, if only because it will force the theorists to formulate their ideas in more specific terms. Such continuing investigations could reveal and clarify many inadequacies in the theory of harmony or tonality as presently stated in harmony textbooks.

In fact, the computerization of the principles stated in any of these books ought to point up all kinds of basic problems that are never acknowledged - for example, just exactly what the theory explains about which music and what that has to do with any activity the reader would be likely to engage in with respect to either the theory or the music. Harmony, as we understand it from harmony texts, is simply the translation of a piece of music into a different notation or vocabulary - a vocabulary that is imprecise and overlooks many of the most important characteristics of the music itself. The reasons why such a translation is made and what advantages it possesses are unclear. Because they have to clarify their purposes to impersonal machines, computer researchers are not able to ignore these questions as easily as traditional ones.

Musical Analysis

Computer work in musical analysis highlights the question: what do we really want to know about a piece of music? There are

1 62 July 1979 m BYTE Publications Inc

32K Board Pictured Above

New RAM Prices.

From The Dynamic Memory Company.

16K—$249 32K—$375 48K-$500 64K-$625

Ever since we started making these memory boards over a year ago we have continued to tower our prices to stay competitive. Due to your confidence in us, we are again able to lower our prices! Our reliability has been proven by months of superior performance in thousands of installations. Our low-power boards are being used by quality-minded systems manufacturers across the country and overseas.

4MHz boards now available.

After receiving hundreds of requests, our engineering staff has come up with a new version of our board which runs on 4MHz Z-80 systems. It wasn't easy to come up with a high speed board which would operate as reliably as our 450ns version, but after months of careful design and testing, we did it. The price of the 250ns board is $10 per 16K additional. Circle 45 on inquiry card.

All of our features remain.

Our boards didn't become great sellers only because of the price. We still offer you our deselect feature which allows our RAM to overlap with any fixed memory areas in your system. Also, the RAM area of our board is fully socketed so that you can expand the board yourself.

Other standard features include: plug selectable addressing on 16K boundaries (shorting plugs are placed over wire-wrap pins to address the board — located on the top of the board for easy changes), S-100 and Z-80 compatability and totally invisible refresh — no wait states.

Fully assembled, tested, and guaranteed.

All of our boards go through a rigorous testing procedure. They are then placed on burn-in running a series of memory tests to detect any other possible faults. After you receive the board, you are backed by us with a one year warrantee.

Low power consumption keeps your computer from "losing its cool."

The total power consumption of our 16K board is typically less than 4 watts (+8V @ 300ma, +16V @ 150ma and -16V @ 20ma). Boards with additional memory typically increase power consumption only 1 watt per 16K!

Standard S-100 Interface.

Our board is designed to interface with any standard S-100 CPU. All of the timing of the board is independent of the processor chip, and the board is set up for different processors by changing two plugs on the board.

Contact your local dealer.

To find out more about our RAM boards, contact your local dealer. If he is unable to help you, call or write us for a fast response. Central Data Corporation, 1207 North Hagan Street, Champaign, IL 61820. (217) 359-8010

Central Data

BYTE July 1979 163

two ways in which computer programs attempt to answer this question. One is to pose a traditional question to which we supposedly know the answer, in the hope that the task of carrying this out on the computer will improve our understanding; in other words, it helps us understand musical intuition. The second way is to ask the computer to solve problems we have not yet understood when traditional methods have been used. Serious research will always be concerned with questions of this sort, but unless those of the first sort can also be handled we will be in doubt about the success of the second.

There have been many research projects in musical analysis, most of which are ongoing and have thus far produced only tentative or incomplete results. In my opinion, the most important conflict in this area concerns both purpose and procedure: should computers be used to examine the characteristics of a single work, or rather to analyze the common properties of whole bodies of works?

Some of the most significant results in musical analysis have been obtained by theorists who are more interested in the theoretical problems than the musical works, and who have analyzed works more in order to prove their theories than to

Encoding Languages

The following example shows a line of music from the Hosanna of the Missa Ave Maris Stella by Josquin des Pres encoded for computer input in the I ML encoding language:

' = CLEF G' ' = KEY F' R11 /R1 *B1 ,HO,/B2* C2 Dl ,SAN,/G11 ,NA,/ R1 *C1/C2*B4 A4*A1//

Keywords indicating the clef and key signature are enclosed in quotation marks with an equal sign at the beginning. Rests are indicated by the letter R. Notes are indicated by the letter name (C, D, E, F, G, A, B) as read on the staff (people who encode this data must be able to read music). Following the letters A through G or R is a number indicating the duration: 11 is a breve, 1 is a whole note, 2 is a half note, and 4 is a quarter note. Text syllables are enclosed in commas following the note, and the slash (/) indicates a bar line; the double slash indicates the end of the line. Asterisks indicate the beginnings or ends of ties.

—-. a-fc

y

" o

■ €>

V—

^ m

a

H

HO

SAN - NA, H0

Figure h Musical excerpt from the Hosanna of the Missa Ave Maris Stella by Josquin des Pres (see "Encoding Languages" text box).

discover new aspects of the music. I have already mentioned the work of Allen Forte, who has produced excellent analysis of diverse atonal works with the assistance of a computer. Another example is the well-known "Josquin Project" conducted by Professors Arthur Mendel and Lewis Lockwood at Princeton University. While this project is remarkable for the sheer quantity of music that has been encoded for study, all analytical work has been carried out from the standpoint of music analysis according to the theoretical principles formulated by contemporaries of Josquin. (See reference 9. Josquin des Pres, c1445-1521, was a prominent composer of early music.) Few studies have produced results as successful as these. (Some are absurd. See my review of "Two Parameters of Melodic Line as Stylistic Discriminants" by David Sheldon Lewis and "Some Techniques for Computer-Aided Analysis of Musical Scores" by Donald Margedo Pederson in Perspectives of New Music, volume 9, number 2 and volume 10, number 1, 1971.)

One of the most time-consuming aspects of computer analysis of music has been the development of encoding languages in which musical notation can be transcribed for computer input. Analytical studies have become studies of musical notation, not of sound or auditory experience, and are thus open to the objections raised above. Many languages have been developed for different purposes, and many of them choose to represent the notational characteristics in very different ways. There has been much unfruitful debate over these languages prompted by some researchers trying to get others to adopt their language as universal. One researcher, Eric Regener, has instead taken the intelligent line of writing programs to transcribe other notations into his.

An important quality of these languages is that each was developed with a different purpose in mind, and thus each emphasizes different aspects of the music. Some languages developed for the purpose of music printing (like DARMS) are necessarily quite complex in their methods of representing spacing between notes and other features of page layout that are irrelevant for languages concerned with analytical work. Other languages developed for use with a specific body of music (like IML) cannot be used for other types of music because they do not provide methods for encoding features that do not occur in the works for which the languages were developed.

The point I would like to make about these languages is that any notation expresses a conceptual structure of the music

1 64 July 1 979 © BYTE Publications Inc

99*

Complete System includes:

★ 10 MILLION CHARACTER HARD DISK STORAGE

★ DISK OPERATING SYSTEM & EXTENDED BASIC

★ POWERFUL 16-BIT CENTRAL PROCESSING UNIT

★ VIDEO DISPLAY TERMINAL

★ 150 CPS LINE PRINTER AND PRINTER STAND

★ DESK ENCLOSURE

basic Lime

1215 E. El Segundo Boulevard El Segundo, California 90245

213/322-4435

Circle 23 on inquiry card.

BYTE July 1979 1

it represents. Printing languages are very specific about graphical features because those are important aspects of the intended result. Other languages developed for analysis represent elements like pitches and rhythms as the basic aspects to be examined, and provide many ways for representing nuances , in these domains but not others. For another example, guitar notation providing only a melodic line and a basic chord pattern is a remarkably efficient means of indicating a diverse quantity of sounds in a few symbols, and the symbols convey a sense about the irrelevance of certain nuances in the chord structure that would be unthinkable in other music. No language currently in existence is universally satisfactory and efficient to represent all music that could be transcribed for any purpose. Arguments about encoding languages show only a lack of understanding of the diverse and even cross-disciplinary purposes for which certain research is carried out.

Sound Generation

In the area of sound generation, computers have already had a significant impact on the music of our time, and the future is even more promising. (An excellent description of the facilities needed to produce music on a microcomputer is contained in Tom O'Haver's article "Audio Processing with a Microprocessor" in-June 1978 BYTE, page 166.) To explain the reasons for this, it is necessary to review some of the history of both computer generated music and electronic music, of which computer music is a part.

Electronic music has been shaped by several disparate influences. Historically, the first was the use of nonconventional sounds that were previously considered to be nonmusical. Early works were based on the sounds of railroads, water dripping, and other noises of everyday experience and of nature. Another significant influence was the availability of analog electronic sound generating and modifying equipment, which is now packaged into devices called synthesizers. (A third influence, less important than the first two, was the use of speech and language in noncommunicative ways.) Music based on sounds of nature tended to be extremely complex in the foreground, whereas music produced by electronic equipment often lacked dynamic variations in tonal characteristics.

Today, these early tendencies have been mollified as a result of the experiences of many people working with these ideas, often in conjunction with computers. People have begun to analyze the charac

teristics of nonconventional sounds, often by computer, to discover and generalize the properties of interest in them. Thus, early exploratory use of these sounds has now given way to conceptual thinking about them. Such thinking is a natural result of processes which people must employ to generate sounds by computers, because users must present information to the computer in concrete ways. A computer cannot generate a sound from a person's abstract recollection of what it sounds like.

Sounds produced by electronic music synthesizers have evolved from the lifeless organ-like sounds that contain no dynamic variation in tonal characteristics to sounds that mimic live musical instruments. A synthesizer is, indeed, a musical instrument, and it is natural that people would begin to develop performance techniques once they are able to work with them for a while. Such expert performers as Walter Carlos and Isao Tomita can routinely produce any quality such as vibrato, tremolo, or dynamic spectral variations. They have also developed excellent methods of imitating specific instruments, particularly woodwinds, brass, and percussion (solo string sounds are easier to imitate than the lush sounds of an entire string section).

The trouble with this procedure is that even expert synthesizer performers now at least partly judge their work not by the originality of the sounds they produce, but by their resemblance to the familiar sounds of musical instruments. This is in complete contrast to computer music composers.

To cause a computer to generate music, it is necessary for the composer (who is actually the performer in this case) to provide a detailed description of the sound desired. The description can be anything that is mathematically sufficient to cause the desired properties to be produced by the computer. Any describable sound can be produced; the limitation is not in the capability of the computer but rather in the ability of composers to provide adequate descriptions of what they want. A detailed explanation of how computers generate musical sound is contained in Electronic Music Synthesis (see reference 3).

This factor has been one of the primary reasons for the recent interest in the analysis of sounds of all types. Computer music synthesis is thus not limited by the comparison of the results produced to any pre-existing standard. Indeed, composers are encouraged to be creative with the qualities of the sounds they produce, by the very procedure by which they must work.

Of course, people who work with syn

1 66 July 1 979 © BYTE Publications Inc

S reasons why you should not buy

the electric pencil U M

• 0 1978 Michael Shrayer

Check the appropriate box(es):

You love typing the same copy 20 thousand times a day.

□ Your secretary can type 250 words per minute.

□ You're dying to spend $15,000 on a word processing system, just for the tax investment credit.

□ All your capital assets are tied up in a 10-year supply of correction fluid.

□ You never commit a single thought to paper.

If you have checked one or more boxes, you do not need The Electric Pencil. On the other hand, you may want to join the thousands of people who haven't checked a single box.

The Electric Pencil II is a Character Oriented Word Processing System. This means that text is entered as a string of continuous characters and is manipulated as such. This allows the user enormous freedom and ease in the movement and handling of text. Since line endings are never delineated, any number of characters, words, lines or paragraphs may be inserted or deleted anywhere in the text. The entirety of the text shifts and opens up or closes as needed in full view of the user. The typing of carriage returns or word hyphenations is not required since lines of text are formatted automatically.

As text is typed and the end of a line is reached, a partially completed word is shifted to the beginning of the following line. Whenever text is inserted or deleted, existing text is pushed down or pulled up in a wrap around fashion. Everything appears on the video display as it occurs, which eliminates guesswork. Text may be reviewed at will by variable speed scrolling both in the forward and reverse directions. By using the search or search and replace functions, any string of characters may be located and/or replaced with any other string of characters as desired.

Numerous combinations of line length, page length, line spacing and page spacing permit automatic formatting of any form. Character spacing, bold face, multicolumn and bidirectional printing are included in the Diablo versions. Multiple columns with right and left justified margins may be printed in a single pass.

CP/M versions

Digital Research's CP/M, as well as its derivatives, including IMDOS and CDOS, and Helios PTDOS versions are also available. There are several NEC Spinwriter print packages. A utility program that converts The Electric Pencil to CP/M to Pencil files, called CONVERT, is only $35.

Features

• CP/M, IMDOS and HELIOS compatible

• Supports four disk drives

• Dynamic print formatting

• DIABLO and NEC printer packages

• Multi-column formatting in one pass

• Print value chaining

• Page-at-a-time scrolling

• Bidirectional multispeed scrolling controls

• Subsystem with print value scoreboard

• Automatic word and record number tally

• Cassette backup for additional storage

• Full margin control

• End-of-page control

• Non-printing text commenting

• Line and paragraph indentation

• Centering

• Underlining

• Bold face

Upgrading policy

Any version of The Electric Pencil

Have we got a version for you?

The Electric Pencil II operates with any 80807Z80 based microcomputer that supports a CP/M disk system and uses an Imsai VIO, Processor Tech. VDM-1, Polymorphic VTI, Solid State Music VB-1B or Vector Graphic video interface. REX versions also available. Specify when using CP/M that has been modified for Micropolis or North Star disk systems as follows: for North star add suffix A to version number; for Micropolis add suffix B, e.g., SS-IIA, DV-IIB.

Vers.

Video

Printer

Price

SS-II

SOL

TTY or similar

S225.

SP-II

VTI

TTY or similar

225.

SV-II

VDM

TTY or similar

225.

SR I I

REX

TTY or similar

250.

Sill

VIO

TTY or similar

250.

DSN

SOL

Diablo 1610/20

275.

DP-II

VTI

Diablo 1610/20

275.

DV-II

VDM

Diablo 1610/20

275.

DR-II

REX

Diablo 1610/20

300.

DIM

VIO

Diablo 1610/20

300.

NS-II

SOL

NEC Spinwriter

275.

NP--II

VTI

NEC Spinwriter

275.

NV-II

VDM

NEC Spinwriter

275.

NR-II

REX

NEC Spinwriter

300.

Nl-ll

VIO

NEC Spinwriter

300.

SSH

SOL

Helios/TTY

250.

DSH

SOL

Helios/Diablo

300.

ss

MICHAEL SHRAYER SOFTWARE, INC.

1253 Vista Superba Drive Glendale, CA. 91205 (213) 956-1593

Wide screen video

Versions are available for Imsai VIO video users with the huge 80x24 character screen. These versions put almost twice as many characters on the screen!!!

Attention: TRS-80 Users!

The Electric Pencil has been designed to work with both Level I (16K system) and Level II models of the TRS-80, and with virtually any printer you choose. Two versions, one for use with cassette, and one for use with disk, are available on cassette. The TRS-80 disk version is easily transferred to disk and is fully interactive with the READ, WRITE, DIR. and KILL routines of TRSDOS 2.1. Version Storage Price

TRC Cassette $100. TRD Disk $150.

Demand a demo from your dealer!

may be upgraded at any time by simply returning the original disk or cassette and the price difference between versions, plus $15 to Michael Shrayer Software. Only the originally purchased cassette or diskette will be accepted for upgrading under this policy.

Circle 319 on inquiry card.

BYTE July 1979 167

thesizers are not limited either; nevertheless it seems that there have been far more successful electronic performances of conventional music recently than there has been original music. Part of the reason for this difference is actually one of the limitations of computer music as it is produced in most situations today: the lack of immediacy between performance time (at which the input is fed to the computer) and audition time (when the sound is produced). Very few installations today have any immediate playback facilities except for more than a few simple sounds, and real time computer music synthesis of entire compositions is practically impossible (see reference 3, chapter 9)

The inherent difficulty in producing sounds by computer, together with the delay in hearing the results, forces computer music composers to evaluate their work reflectively and to think carefully before trying things out. While immediacy is important to the act of performance, it is not necessary for the act of composition itself, which is a conceptual task

An excellent example of the kind of creativity on the sound level made possible in computer music is described by ) K Randall in his article "Operations on Waveforms" {Perspectives of New Music, volume 5, number 2, spring/summer 1967, page 124). These ideas are exploited compositionally in Randall's Lyric Var rations for Violin and Computer, written in 1968 and recorded on Vanguard C-10057. Randall describes several original ideas he used to synthesize new timbres from completely new theoretical principles. He produces sounds in which the individual constituent partials (harmonics of the fundamental) of a tone are operated upon just as the pitch, rhythm, and dynamics are in conventional music. The result is music of unusual interest in which all variations of the sounds relate in novel ways to the structure of the music.

The same kinds of processes in which partials are treated as pitches were employed in my compositions entitled Studies in Timbre, of which there are presently four. The first study employs sounds that dissolve into others by glissandos that move from one partial to another. These are contrasted with other sounds of fixed pitch but changing timbre. The second study uses instrument-like sounds with transient elements in the attack and variations in the steady state portions of the tones. The third is based on varying timbral patterns associated with specific musical events. The typical instrument produces 12 partials that fade in and out in different ways over the course of each tone, correlated to

amplitude and location changes. Contrasts between partials of some tones and the fundamental frequencies of others are emphasized in conjunction with rhythmic, dynamic, and harmonic properties that develop concomitantly. The fourth study uses harmonic series that progress to nonharmonic ones, but which nevertheless preserve some abstract ratio between the elements, thus producing another kind of dissolution of a tone into a somewhat clangorous sound.

The main point of these considerations is to show how a computer music composer is encouraged to experiment with original, ideas that often lead to results unobtainable by any other method of music production. But since computers are theoretically capable of producing any sounds, this is not the only beneficial or distinguishing result. The fact is that the same sounds can be produced by different descriptions that are based on generalizations about different aspects of the sounds. Thus, the really important point is that it is the relationship between the input and the output which is clarified by the process of computer music synthesis. Whatever this may be in relation to a specific musical work is in itself a concept about the structure of that work.

Musical Composition

Although I have emphasized the creativity involved in the other disciplines discussed, it is obvious that composition is, by comparison, the ultimate creative act to be delegated to a computer. Many people express disbelief or doubt that this can really be done successfully. I believe that this doubt is rooted more in misunderstanding of what musical composition itself involves rather than of what the computer does. Composers may employ mysterious methods, but they are even more prone to making mysterious explanations of straightforward methods in order to preserve their compositional mystique.

Any detailed consideration of musical analysis or theory suggests numerous avenues of approach to the compositional method employed. Whether a piece actually has been composed according to the principles that can be abstracted from its structure is not necessarily relevant, and often can never be known. In recent years, the work of Heinrich Schenker and postSchenkerian analysts has attempted to discover large scale structural properties in tonal music which almost certainly were not consciously considered by the composers who wrote the music, and which raise questions not previously posed in the history of theory.

168 July 1 979 © BYTE Publications Inc

PASCAL

For Greater Power Potential With Your

TRS-80

UCSD PASCAL, the powerful, general purpose language developed for large and complex programs is now available for your TRS-80. This new, Industry standard language avoids many errors normally encountered when using

older languages.

Although it is relatively easy for beginners to learn and use, it provides added potential to cover most problems of practical programming. The UCSD PASCAL Compiler allows long variable names, and block structured control statements.

The FMG/UCSD PASCAL System opens a new generation of value for your TRS-80.

Package Includes Operating System Screen Editor Z80 Macro Assembler Debugger Pascal Compiler Utilities and System Reference Book

$150.00

Requires 48K System with 2 Drives

Available without Macro Assembler Linker and Debugger $100.00

Available "Microcomputer Problem Solving Using PASCAL" By Dr. K.L Bowles $ 9.95 PASCAL UCSD Pascal Reference Manual Version 2.0 $19.95 BOOkS Pascal User's Manual & Report By I.C. Jensen & N. Wirth $ 9.95

CBASIC

A commercially oriented BASIC compiler-interperter designed for use with the CP/M disk operating system. The compiler features D Variable Length Files l Double Precision Numbers

□ Optional Line Numbers "While. . .End"

□ Structural Group

D Long Variable Names (up to 31 characters)

□ Multiline User Defined Functions

□ 98 Page Manual

$99 00 (Manual only $25.00

TEXTWRITER II

Textwriter II is a text formatting program that prints files created by an editing program. Form letters can be printed from a mailing list file and personalized with automatic name and address insertion anywhere in the body of the text.

$130.00 Manual $25.00

FORTRAN

Comparable to compilers on large mainframes and minicomputers. All of ANSI Standard FORTRAN X3.9-1966 is included except COMPLEX data type. Therefore, users may take advantage of the many applications programs already written in FORTRAN. Package includes:

□ FORTRAN Compiler

□ Macro Assembler (Z80)

□ Linker

□ Library

□ Lib Manager (Not

in TRS-D0S version) Price $350.00 Manual $25.00 (Specify TRS-D0S or CP/M versions)

MAC MACRO ASSEMBLER

Compatible with new Intel Macro standard. Package includes complete guide to Macro Applications; MAC Diskette and Manual

$150.00

MACRO ASSEMBLER

A relocatable Macro Assembler for both 8080 and Z80 opcodes. Incorporates most big computer assembler features without sacrificing speed or memory size. Package includes:

□ Comment Blocks

□ Full Intel Standard Macros □Lib Manager (not included

in TRS-D0S version) □Linker □Library

$219.00 (Included in FORTRAN) Manual $25.00 (Specify TRS-D0S or CP/M versions)

TEX® TEXT FORMATTER

Powerful text formatting capability using CP/M Editor. TEX Diskette and Manual $125.00 Manual $25.00

CP/M OPERATING SYSTEM

Editor, Assembler, Debugger and Utilities for 8080 and Z80 Systems. Up to four floppy disks. Package includes: jCP/M System Diskette 5Va" □CP/M Features and Facilities Manual □CP/M Editor's Manual □CP/M Assembler Manual □CP/M Debugger Manual □CP/M Interface Guide

$150.00

(Set of 6 manuals

only $25.00)

SID® SYMBOLIC

INSTRUCTION

DEBUGGER

□Symbolic Memory

Reference □Built-in Assembler/

Disassembler □SID Diskette and Manual $125.00 Manual $25.00

Call or Write for Complete Information

FMG for HIGH LEVEL LANGUAGES

BASIC FORTRAN COBOL and now PASCAL

CP/M is a registered trademark of Digital Research Corp. TRS-80 is a registered trademark of Radio Shack.

/

FMG (D@lrW.lfWD®

P.O. Box 16020 «Fort Worth, TX 76133 • (817) 294-2510

: —— : MM . 2_

Circle 134 on inquiry card.

BYTE July 1979

169

Computer composition can be employed as a method of verifying theories and analyses of specific works, especially if they consist of multilayered abstractions like Schenkerian analysis. These abstractions suggest a generative approach starting from a background and building through successive layers of elaboration to the foreground. One method of verifying such an analysis is to prove that it can actually regenerate the work, at least in its essential structural aspects, by a particular sequence of operations. Another method is to change some of the background or middleground structure or the particular sequence of operations to produce new works that can be compared with the original. Although they might not be intended to be taken seriously as original compositions (since their structure is derivative of another work), such compositions would unquestionably be computer composed music.

Instead of using this structural approach, early work in computer composition has tended to emphasize the sensational aspects of "machine music" and has been based on random and aleatoric methods (see reference 2). Very few conditions of the intended music have been specified, with the result that certain characteristics are quite clearly present (eg: consonances) or absent (eg: dissonances) but the music is otherwise aimless and without structure. These facts are quite obvious when the music produced resembles some early style like a Bach invention, but are less clear when some avant-garde style is imitated. Nevertheless, such experiments (often designated as experiments rather than as music) are not typical of musical compositional methods in general, nor of computer work in this field.

In my own music I have employed computer composition in extensive ways ("Composing by Computer," Computers and the Humanities, volume 9, 1975, page 281).

Nevertheless, the computer does not make any decisions that I would not make myself, nor indeed that I have not already made when it executes my instructions; it merely carries out many time-consuming calculations that would otherwise have to be done by hand. Basically, the program works out aspects of the foreground syntax which assure various rhythmic, harmonic and structural properties. All aspects of this syntax are specified by instructions provided together with the data (pitch classes) on which they are carried out.

Using a program like this allows composers to work more from a background perspective than from the foreground. They are able to concentrate on the large scale structural properties without being encumbered with the foreground details that may arise from these characteristics; these are handled quickly and automatically by the computer. Several different possibilities for working out a given passage can be tried before any commitment is made to them.

Even more important, the process of writing a program to carry out such compositional details forces composers to be absolutely explicit about their procedures and intentions. Any errors or incompleteness in the specifications will be exposed when a program is executed by the computer. Ad hoc methods that composers may use to fix certain passages when they don't work out as expected are not necessary, because it is easy enough to revise the program once these problems are exposed. The composer's attention is thus always directed to the most important conceptual aspects of the music, and his or her ability to solve problems in these areas is facilitated.

Conclusion

By examining aspects of the four musical disciplines discussed above, we have seen many instances where the use of computers

B,

c PET ANALOG INPUT

Analog to Digital Conversion System for the Commodore PET Computer

Give the PET the ability to sense* 3nd control the wor let around it with DAM SYSTEMS modules. Just p1u3 the PETSET1 into the PET to aet 16 channels of analog input. Screw terminals are provided for each channel so you can hooK up johsticKs* poIs? or whatever appropriate sensors you have*

Each of the 16 analog inputs* in the ranSe of 0 to 5.12 volts* is converted to a decima1 number be tween O and 2SS <20 millivolts per count). Conversion time is 100 microsconds.

In addition* the PETMOD provides two IEEE ports and one user port as well as a DAM SYSTEMS port.

Software is provided. A one line proSram is all that is necessary to read a channel *

[Hi

SENSORS TEMPERATURE VELOCITY PRESSURE

HUMIDITY LIOHT LEVEL FLUID LEVEL

1 -AIM161 1 -PETMOD 1 - CABLE A24 I - MANM0D1 1-P0W1

KETSET1

- 16 ANALOG INPUTS-S 8ITS-I00 MICROSEC

PET ADAPTER - £ IEEE PORTS

I USER PORT-I DAM SYSTEMS PORT

- 24 INCH INTERCONNECT CABLE MANIFOLD MODULE -SCREW TERMINALS FOR INPUTS, REFERENCE, GROUND

- POWER MODULE

PETSETIa tor 110 VAC *293 PETSET1. tor 230 VAC $305

Otdtt diract or conucl your local tomputir Mora.

CONNECTICUT microCOMPUTER, Inc. 150 P0C0N0 ROAD BROOKFIELD, CONNECTICUT 06804

TEL: (203) 775-9659 TWX: 710-456-0052

ISA AND M/C ACCEPTED - SEND ACCOUNT NUMBER, EXPIRATION DATE AND SIGN ORDER. DD $3 PER ORDER FOR SHIPPING a HANDLING - FOREIGN ORDERS ADD 10% FOR AIR POSTAGE.

1 70 July 1 979 © BYTE Publications Ino

Circle 78 on inquiry card.

MlcroSource™ is becoming the chosen business software producer. For all the right reasons. For example, before you ever see one of our applications, it's field tested and refined. Another reason is our Operations Manuals. They're called the finest in the industry . . . you never need special training to use MicroSource. One more reason.- versatility. MicroSource works with different terminals and printers. You can use your favorite terminal, and choose between speed or print quality in a printer. Add in the rest of the story — like support, enhancements, low cost — and you get the picture.

If your dealer stakes his business on MicroSource software, can you afford to do less?

MoneyBelt — The Money Manager™ LedgerPlus — The Company Bookkeeper™

A modular in-house bookkeeping package with gen- Also modular, with all the accounting modules of eral ledger, accounts payable and receivable, and MoneyBelt, plus inventory, check reconciliation and

payroll. Buy at your own pace . . . one at a time or all mailing list. Each interacts with the others, but stands at once. Less than $8000 (under $200/mo. on a fi- alone, too. A first for Vector Graphic, MZ, Apple and nancing lease) for all hardware and first module (sugg. Micropolis disk based systems. Less than $8000 list). Horizon and other North Star disk based systems. (under $200/mo. on a financing lease) for all hardware

and first module (sugg. list).

Other business software packages by MicroSource: AutoScribe — The Paperwork Manager™, Bookkeeper — The Office Accountant™, Timekeeper — The Time Accountant™.

1425 W. 12th Place • Tempe, Arizona 85281 • (602) 894-9247 • Cable: MICROAGE Telex: 165 033 (MICRO AGE TMPE)

The following are trademarks of The Phoenix Group, Inc.: MicroSource, Autoscribe, Bookkeeper, MoneyBelt, LedgerPlus, TimeKeeper. DEALERSHIPS STILL AVAILABLE

Circle 227 on inquiry card.

BYTE July 1979

necessitates a conceptual approach to the questions at issue. While many projects continue to pose problems because of the difficulty of computer programming, and of preparation of data, progress in these fields is nevertheless being made in significant ways. There still remain, and there always will be, gaps between those subjects that computer researchers tend to deal with and those that traditional, noncomputer people will choose, partly in the belief (from both

sides) that some subjects are not suitable or possible for computer analysis. While important questions are always difficult to answer and sometimes require generations of work in order to achieve accurate answers, they are never impossible. We will know that we have truly reached a high state of conceptual thinking when the conclusions of computer research tend to agree with those of noncomputer research - both will then be operating on the same level."

GLOSSARY

Ateatoric music: music, usually composed by computer, in which all or many of the most important characteristics are chosen randomly.

Analysis: description of music according to certain fundamental properties that are judged to be relevant to a given piece, showing how different elements in the work may be related by these properties.

Atonality: music which is not tonal, and where a specific attempt is made to avoid reference to a key, or when the concept of key is not relevant. The term has two basic uses, specific and general: specifically, it describes a body of early twentieth century music by Schoenberg, Berg, Webern, and others, preceding 12 tone music (qv), in which tonality (qv) was consciously avoided. Generally, the term is used to describe any twentieth century music avoiding tonality that cannot be described simply by other methods.

Background: musical substructure describing large scale properties and relations that may not be evident from an inspection of the immediate note to note properties, or from a superficial auditioning of the music; see foreground. In certain theories, the background is considered divisible into several levels.

Computer music: music employing computers at any stage of its composition or realization as sound.

Cycle of fifths equivalence: an operation on a group of notes in which each element is replaced by its equivalent on the circle of fifths; analogous to inversion (qv). The circle of fifths generates the total chromatic (qv) by starting on any note, adding the note a perfect fifth (seven half steps) higher, and continuing this process.

Electronic music: music in which the sounds are produced by electronic means. In a somewhat simplified form, electronic music as currently practiced can be broken down into four general areas: (1) musique concrete, in which use is made of natural sounds that are recorded on tape and modified by recording processes or other means; (2) tape music, in which sounds are modified according to procedures that may be applied to magnetic tape or tape recorders; (3) synthesized music, in which the sounds are

produced by electronic music synthesizers (qv); and (4) computer music (qv), in which the sounds are produced or controlled by computers.

Encoding language: a method in which musical notation may be represented in code suitable for computer input. The most widely used and documented languages to date are IML (Intermediary Musical Language), DARMS (Descriptive Alphanumeric Representation of Musical Symbols), the "Plaine and Easie Code System for Musicke," LMT (Linear Music Transcription), and ALMA (Alphanumeric Language for Music Analysis).

Foreground: the "surface" of a piece of music, including sounds that are simultaneous or that appear in direct succession; distinguished from the background (qv).

Glissando: a continuous sliding from one pitch to another.

Half step: the smallest interval (qv) used in music based on equal temperament (the tuning system in widespread use in Western cultures since the eighteenth century). Music employ ing smaller intervals is said to be microtonal.

Harmony: a theory describing properties of simultaneous sounds (chords) in tonal music (see tonality). Chords are expected to move in certain progressions, and dissonances resolve into consonances according to various rules.

Interval: the distance, measured in half steps, between two pitches or pitch classes. Tonal music also employs another definition of interval, based not on the sound but on the notation for the two notes involved.

Inversion: an operation on a group of notes in which each element is replaced by its equivalent on the descending chromatic scale, or ascending circle of major sevenths (11 half steps). (In this formulation, an ascending chromatic scale would be the identity operation.) Identity and inversion, along with cycle of fifths equivalence and its inversion (cycle of fourths equivalence) are the only single interval cycles that generate the total chromatic (qv).

Octave: a musical interval of 12 half steps, corresponding to the frequency ratio of 2 to 1. Pitches related by octaves possess a strong similarity, which has been called octave equivalence.

1 72 July 1979 © BYTE Publications Inc

Pitch: a single tone in a musical composition. Most pitches used in music are taken from the range of the 88 produced by the piano, but some extend beyond this range.

Pitch class: a group of pitches separated by any number of octaves. In musical theories, pitches in different octaves employ the same letter names (C, C #or Dt>, D, D #or Ei>, etc) reflecting the fact that theories are based on pitch classes rather than pitches. Pitch classes are also often called notes. While there are many pitches, there are only 12 distinct pitch classes in Western music.

Pitch structure: a set of pitch class collections that all possess the same intervallic structure, so that they are related by transposition (qv). Pitch structure is the basic way that collections of tones, such as chords, are compared: as major triads, minor triads, etc.

Spectrum: the overtone structure of a sound, represented as a series showing the amplitude of each overtone present; see timbre.

Structure: any abstract method in which the properties of a piece of music can be encompassed. Generally, a piece is divided into several sections, each of which has a different structure. Sometimes structure is described in terms of a function or purpose at work in an entire section, such as introduction, development, or statement (of a theme or idea). Sometimes structure is described numerically, proportionally, or in other abstract ways.

Synthesizer: a machine that generates and processes sounds automatically, used in the production of electronic music. Most synthesizers consist of a number of discrete components that perform different functions (eg: oscillators that generate tones, filters that modify their spectrum, etc). Some recently designed synthesizers include microprocessors, which are used as controlling devices.

Theory: a set of concepts describing properties and relations that can be shown to exist in a body of musical literature. The most commonly known theories today include tonality (qv) and 12 tone music (qv), but there are many others that have been described and used by various authors. Most theories have originated after the music they purport to describe has been written. Speculative theory originates as speculation, before such music has been written, so that its success or failure has not yet been demonstrated.

Timbre: musical tone quality, descriptive of the way in which different tones may possess a similarity not on the basis of pitch, amplitude, or rhythm. In electronic music, this term is normally used synonymously with spectrum (qv), but in contexts wherp it is described qualitatively rather than numerically.

Tonality: a theory describing music which is in a key, or a series of keys, usually pertaining to music written during the eighteenth and nineteenth centuries. Basic concepts include the major and minor scales, triads, and specific rules according to which dissonances resolve into consonances. Much of the music of the twentieth century is based on an extended notion of tonality, in which some, but not all, of the basic concepts are employed.

Total chromatic: any series of notes including all 12 pitch classes.

Transposition: the addition or subtraction of a constant interval to each tone in a collection, moving the set up or down by a uniform amount.

Triad: a chord consisting of three notes (or pitch classes) with a root note, and other notes a third and fifth above the root.

12 tone music: music in which all note successions, and sometimes other properties are based on sets of orderings of the total chromatic.

REFERENCES

1. von Forester, H, and Beauchamp, J W, (editors), Music by Computers, John Wiley and Sons Inc, 1969.

2. Hiller, Jr, L A, and Isaacson, L M, Experimental Music, McGraw-Hill Book Company Inc, 1959.

3. Howe, Jr, H S, Electronic Music Synthesis, W W Norton and Co Inc, 1975.

4. Lincoln, H B, (editor), The Computer and Music, Cornell University Press, 1970.

5. Morgan, C P, (editor), The BYTE Book of Computer Music, BYTE Publications, 1979.

6. Reti, R, Tonality in Modern Music, CrowellCollier, 1962.

7. Sessions, R, Harmonic Practice, Harcourt, Brace, Jovanovich Inc, 1951.

8. Forte, A, The Structure of Atonal Music, Yale University Press, 1973.

9. Mall, T, et al, IML-MIR User's Manual, Princeton University Music Dept, 1972.

Journals

Computers and the Humanities, Pergammon Press Inc, Maxwell House, Fairview Park, Elmsford, NY 10523.

Computer Music Journal, People's Computer Company, Box E, 1263 El Camino Real, Menlo Park CA 94025.

Journal of Music Theory, Yale School of Music, New Haven CT, 06520.

Perspectives of New Music, Perspectives of New Music Inc, Annandale on Hudson, NY 12504.

July 1 979 © BYTE Publications Inc 173

'Tiny" Pascal in 8080 Assembly Language

Dr G Louis OB/GYN Department St Michael's Hospital 30 Bond St Toronto CANADA M5B 1W8

6809!

MD-690a Single Board Computer $239 kit $299 assembled

S-100 Compatibility. 6809 Computability.

• 1K RAM

• 10K PROM space

• MONBUG II monitor included

• 2400 baud cassette interface

• 20 I/O lines

• RS-232 level shifters

• Real time clock

• DMA

• Parallel keyboard input

• Memory-mapped video output

• Fully S-100 compatible (including 8080 type I/O)

• A complete system, ready to use.

Micro DaSys

P.O. Box 36051 Los Angeles, CA 90036 (213)935-4555

6809

16 bit internal arithmetic Hardware multiplication Two stack pointers Two index registers 18 addressing modes Fully relocatable code Five interrupts Up to three times the throughput of a 4MHz Z-80

Please rush the following :

□ CPU Card (kit)

□ CPU Card (assembled)

CA residents add 6%

The p-code interpreter, Pascal to p-code compiler, and p-code to 8080-code translator described in "A 'Tiny' Pascal Compiler" by Kin-Man Chung and Herbert Yuen (September thru November 1978 BYTE) have been rewritten in 8080 assembly language. In addition to providing approximately two orders of magnitude increase in speed, the object versions run in far less memory.

To use the assembly language version of tiny Pascal you need, an 8080 (or Z-80) microcomputer system with not less than 12 K bytes of memory (the package would run in 8 K bytes but you need file space); a copy of the articles by Chung and Yuen, which have been reprinted by BYTE magazine and are available for $3 (BYTE document number 100); an elementary acquaintance with 8080 assembly language; the package of assembly language modules.

Additionally, it is desirable to have a text editor, an assembler that stores lines in the form: length byte, 4 digit line number, space or tab, text, carriage return, and a relocator program that is useful for tailoring the package to your system.

The Nybbles Library is an inexpensive means for BYTE readers to share some interesting but specialized forms of software. These programs are written by readers with small computers and printer facilities, and are therefore designed for particular systems. The algorithms and programming techniques in these programs can be directly used by readers with similar equipment, or can serve as an inspiration for improvisation on computers of different characteristics.

Potential authors of such programs should send us a selfaddressed stamped envelope, with a request for a copy of our "Guidelines for Nybbles

1 74 July 1979 © BYTE Publications Inc

Circle 220 on inquiry card.

Authors." Payment for Nybbles items is based on sales and length of the item. Rates are set at the time of acceptance.

Nybbles Library programs are sent in listing form, printed on 8.5 by 11 inch paper on both sides. The Nybbles Library programs are 3 hole punched for collection in loose leaf binders,

and come in an attractive folder which serves as a cover.

This month "'Tiny' Pascal in 8080 Assembly Language" (document #111) has been added to the Nybbles Library. Use the coupon below to order your personal copy, at $10.00 (US and Canada) or $12.00 (foreign airmail) postpaid.

copies of BYTE Nybble i.

at

postpaid.

Please remit in US funds only.

Check Enclosed

Bill my VISA*

Bill my MC #

Name

. Exp Date

.Exp Date

Street. City _

State

Zip Code

BYTE Nybbles Library, 70 Main St, Peterborough NH 03458

You may photocopy this page if you wish to keep your BYTE intact.

IMMEDIATE DELIVERY

Domestic & Export

DEC LSI-u COMPONENTS

A full and complete line with software support available.

mini Computer Suppliers, Inc.

25 CHATHAM ROAD SUMMIT, NEW JERSEY 07901 SINCE 1973

(201) 277-6150 Telex 13-6476

the ULTIMATE in CHEAP VIDEO

BOOK & KIT ONLY $42.95

Don Lancaster's "Cheap Video"concept allows almost unlimited options, including:

* Scrolling- Full performance cursor.

* Line/Character formats of 16/32, 24/80, 32/64.... or almost anything.

* Graphics-up to 256 X 256 B&W; 96 X 128 COLOR

Crequires low-cost option modules)

* Works with 6502 , 6800 and other micros.

SPECIAL OFFER: Buy the Kit (upper case alphanumeric option included) & get the Book at 1/2 price.

1 ELECTRONICS, DEPT. 7-B, 1020W. WILSHIRE BLVD.. OKLAHOMA CITY. OK 73116

I'm Sold, PLEASE RUSH C ) SEND FREE CATALOG

C 5 TVT-6 5>8 Kit & Cheap Video Cookbook - $42.95 (enclosed) C ) TVT-65/8 Kit only Cbook required for assembly)-$39.95

name:

address:

city:

. state:

zip:

ELECTRONICS DEPT. 7-B, 1020 W. WILSHIRE BLVD.. OKLAHOMA CITY. OK 73118

Circle 236 on inquiry card.

Circle 297 on inquiry card.

July 1979 k BYTE Publications Inc 175

You are at one end of a vast hall stretching forward out of sight to the west. There are openings to either side. Nearby, a wide stone staircase leads downward. The hall is filled with wisps of white mist swaying to and fro almost as if alive. A cold wind blows up the staircase. There is a passage at the top of the dome behind you. Rough stone steps lead up the dome.

> GO DOWN

You are in the hall of the Mountain King, with passages off in all directions. A huge green fierce snake bars the way!

>ATTACK SNAKE

Attacking the snake both doesn't work and is very dangerous.

QUEST

YOU WERE WALKING THROUGH THE

WOODS, AND YOU CAME ACROSS THE ENTRANCE

OF A CAVE, COVERED WITH BRUSH.

PEOPLE SAY THAT MANY YEARS AGO A PIRATE HID HIS TREASURE IN THESE WOODS, BUT NO ONE HAS EVER FOUND IT. IT MAY STILL BE HERE, FOR ALL I KNOW.

WHEN YOU ANSWER A QUESTION, I LOOK AT ONLY THE FIRST LETTER, ALTHOUGH YOU CAN TYPE THE WHOLE WORD IF YOU WANT.

TYPE N, S, E, W, U, OR D FOR NORTH, SOUTH, EAST, WEST, UP OR DOWN. TYPE P FOR SCORE

YOU'RE OUTSIDE THE CAVE. GO SOUTH TO ENTER.

WHICH WAY? SOUTH

YOU'RE IN A LOW CHAMBER. A TIGHT TUNNEL GOES EAST, AND YOU CAN WALK TO THE SOUTH OR WEST. THERE IS LIGHT TO THE NORTH.

WHICH WAY? WEST

YOU'RE AT A DEAD END I

WHICH WAY? EAST

YOU'RE IN A LOW CHAMBER. A TIGHT TUNNEL GOES EAST, AND YOU CAN WALK TO THE SOUTH OR WEST. THERE IS LIGHT TO THE NORTH.

WHICH WAY? SOUTH

YOU'RE ATTHE HOME OF THE GNOME-KING. FORTUNATELY, HE'S GONE FOR THE DAY

WHICH WAY? SOUTH

YOU CAN'T GO IN THAT DIRECTION

Listing I: Sample dialogue from the Quest game. This shows only the first few moves.

Quest

Roger Chaffee POB 7495

Menlo Park CA 94025

> FEED SNAKE

There's nothing here it wants to eat (except perhaps you).

> YELL

Are you trying to somehow deal with the snake?

>YES

/ am prepared to give you a hint, but it will cost you 2 points. Do you want the hint?

The preceding paragraphs are taken from a session I played on a computer running a program called Adventure, which has used many, many cycles of machine time on many, many computers in the past year or two. The original version, I believe, was written in FORTRAN, by Willie Crowther (now at Xerox Palo Alto Research Center), and was subsequently modified and rewritten by Don Woods at Stanford's Artificial Intelligence Laboratory.

The version I ran has been bootlegged through several generations, and I'm not sure of its exact ancestry. It requires close to 200,000 bytes of memory on an IBM 370/ 168. Adventure has been translated into PL/I, APL, and BASIC. It is the successor to Hunt the Wumpus and the many Star Trek games.

I hope it is the precursor of more elaborate games which combine computers with fantasy to produce an "electric novel," which the user and the computer write or experience together. Already, a few computers around the country are offering a child of Adventure called Zork or Dungeon, which has a more sophisticated understanding of English, and a whole new set of problems to solve and monsters to defeat. Space War, which used to belong to the "freaks" and the "hackers" (in the hours after the managers went home), is now available in your neighborhood tavern for 754 per enemy starship. How much longer will it be until we can each rule our own kingdom and rescue our own fair maidens?

Quest

There aren't many personal computers yet with 200 K bytes of memory available, and not all of us have free or inexpensive access to the machines on which Adventure can run. A smaller computer would require a floppy disk file for keeping the cave descriptions, and most users have no hardware for

1 76 July 1 979 © BYTE Publications Inc

Circle 104 on inquiry card.

YOU'VE READ THEM ALLNOW GET THE BEST!

The 80-US Journal

A PUBLICATION FOR TRS-80 USERS - COVERS ALL TRS-80 CAPABILITY!

BI-MONTHLY, SEND $16.00 CHECK OR MONEY ORDER FOR A 1 YEAR SUBSCRIPTION TO: 80 US

PO Box 7112 TACOMA, WA. 98407

MASTER CHARGE, VISA OK • (206) 759-9642 WANT TO CHECK IT OUT FIRST? SEND $3.00 for current sample copy.

A SELECT CHOICE OF SOFTWARE IS AVAILABLE

IJIIIIIIIII

Circle 142 on inquiry card. Illlllillllllllllllllllllllllllllillll nit

T.D.Q. I TAPE DATA QUERY

PET-8 K SOL-IIA TRS-80-LEVELII |

*FILE MANAGEMENT SYSTEM

—UTILIZES DUAL AUDIO CASSETTE RECORDERS

♦INTERACTIVE QUERY LANGUAGE

—ENGLISH-LIKE COMMANDS

—POWERFUL INFO RETRIEVAL CAPABILITY

♦COMPUTERIZED BUSINESS & PERSONAL RECORDS |

—CUSTOMIZE YOUR OWN FILE STRUCTURES

—CREATE & MAINTAIN DATA FILES § —NO PROGRAMMING EXPERIENCE REQUIRED

♦IMPLEMENTED IN BASIC I T.D.Q. CASSETTE WITH MANUAL & REF. CARD $50.00 |

THE FOLLOWING PRE-DEFINED T.D.Q. FILE STRUCTURES ARE AVAILABLE TO SOLVE YOUR DATA PROCESSING NEEDS.

INVENTORY CONTROL $35.00 I

ACCOUNTS RECEIVABLE $35.00 =

ACCOUNTS PAYABLE $35.00 I

ORDER PROCESSING $35.00 =

CUSTOMER DIRECTORY $25.00 I

APPOINTMENT SCHEDULING $25.00 |

EACH WITH CASSETTE AND MANUAL

SEND SELF-ADDRESSED STAMPED ENVELOPE FOR COMPLETE SOFTWARE CATALOGUE. SEND CHECK OR MONEY-ORDER TO:

H. GELLER COMPUTER SYSTEMS

DEPT. B, P.O. BOX 350 NEW YORK, NY 10040

(NEW YORK RESIDENTS ADD APPLICABLE SALES TAX)

3iini i iiiiiiii iiiiiiiniiii i i i ii r

CP/

®

LOW-COST

MICROCOMPUTER

SOFTWARE

CP/M® OPERATING SYSTEM:

• Includes Editor, Assembler, Debugger and Utilities.

• Standard version for 8080, Z80, or Intel MDS (other versions available.)

• For IBM-compatible floppy discs.

• $100-Diskette and Documentation.

• S25-Documentation (Set of 6 manuals) only. MAC™ MACRO ASSEMBLER:

• Compatible with new Intel macro standard.

• Complete guide to macro applications.

• $90-Diskette and Manual. SID™ SYMBOLIC DEBUGGER:

• Symbolic memory reference.

• Built-in assembler/disassembler.

• S75-Diskette and Manual. TEX™ TEXT FORMATTER:

• Powerful text formatting capabilities.

• Text prepared using CP/M Editor.

• S75-Diskette and Manual. DESPOOL™:

• Background print utility.

• Use with CP/M (version 1.4)

• S50. Diskette and Manual.

1 DJEJTAl RESEARCH®

P.O. Box 579 • Pacific Grove, California 93950 (408) 649-3896

NEW SHAPES

by Julius Guest

Is a collection of 110 orlg Inal and fascinating computer-generated designs created by the author over an eight-year period. The" designs are satisfying art creations In themselves may evoke the response that their titles suggest."

As each art piece Is accompanied by a mathemat' leal formulation and program, the reader may th create his own 'New Shapes' and derive as much enjoyment from them as the author obviously did.

The designs are reproduced In color (some In exciting solid reverse) on high quality art paper.

Details: 174 pages, 28cm x 27cm (ll"xlOV2"). (At $12.00 U.S. that's only ll£ per diagram!) Add $1.25 postage. ISBN 0-95963B4

INTRODUCTION TO PL/1 & STRUCTURED PROGRAMMING

R.A. Vowels, Senior Lecturer, Royal Melbourne Inst, of Technology. 1978; 311 pages, 60 diagrams, ISBN 0-9596384-0-7.

This book covers an easy-to-learn subset of ANSI PL/1. Fundamentals are emphasized and structured programming Is encouraged. The book contains numerical and non-numerical worked examples, and 200 exercises and problems. The versatile subset Is defined In only 3 pages of syntax diagrams. Suited to a one- or two-semester course. Also appropriate for self-study. An excellent reference documentonly $5.00 U.S. (Add 80£ postage.)

Contents: ten chapters and six appendixes. Data representation, fixed and floating-point, character strings, LIST and EDIT-dlrected I/O, DO, WHILE, declarations, arrays (fixed and variable bounds), procedures and functions, bullt-lns, computational error detection and correction, ON-unlts.

Order direct from publisher R.A. Vowels, 93 Park Drive, Parkvllle 3052, Australia.

Personal checks accepted (In your currency), or Bank Draft Check Dis

In Aust. currency.

)iscount: 5% for 2 or more books.

Circle 95 on inquiry card.

Circle 383 on inquiry card.

BYTE July 1979

177

Software Tools

Have you thought about text editing ?

Our ED-80 Text Editor offers a refreshing new approach for the creation and editing of program and data files conversationally — and it saves money! Its powerful editing capabilities will satisfy the most demanding professional - yet it can still be easily used by the inexperienced beginner.

Look at these outstanding features:

■ By far the best text editor available for microcomputerbased systems.

■ Repays its initial cost many times over with its unique time-saving editing capabilities.

■ FULL SCREEN window displays for viewing and editing data a page-at-a-time, rather than line-by-line.

■ Forward and backward scrolling in the FULL SCREEN mode.

■ Displays the results of every edit command.

■ Commands include forward or backward Locate and Change, Insert, Delete, Replace, Inline, Input, Print, List, Window, Get, Put, Macro, Tabset, Append, Case, Scale, and Dump.

■ Simple line-oriented commands with character string manipulation capabilities.

■ Text may be located by string value, by line number, or by relative line number.

■ Global string search and replace capabilities.

■ Commands for moving, copying, and merging edit files on the same or different diskettes.

■ Self-explanatory diagnostic messages.

■ Single keystrokes for the most commonly used comands.

■ Safeguards to prevent catastrophic user errors that result in loss of the edit file.

■ Designed for today's high speed CRT's, video monitors, and teletypewriter terminals.

■ Thoroughly field tested and documented with a User's Manual of over 60 pages.

■ Compatible with existing CP/M edit files and derivative operating systems.

And remember - in today's interactive programming environment - the programmer's most important software development tool is the text editor. Our ED-80 Text Editor is working in industry, government, universities, and in personal computing to significantly cut program development time and high labor costs. Why not let ED-80 begin solving your text editing problems today?

Mail to:

SOFTWARE DEVELOPMENT & TRAINING, INC. P.O. BOX45U, Huntsville, AL 35802 ED-80 is protected by copyright and fur.ished under a paid-up license

for use on a single computer system. Please send additional information.

Send Diskette, User's Manual, and paid-up license agreement $99 00

Specify SINGLE DENSITY Diskette size □ 5" □ 8"

Send User's Manual (credited on purchase of a paid-up license) $10.00

Check or money order enclosed for S

Please charge to my credit card □ VISA □ Master Charge

Card No Bank No Exp.Date

NAME

ADDRESS

CITY

.STATE.

.ZIP_

SIGNATURE .

CI

SOFTWARE DEVELOPMENT & TRAINING, INC. Post Office Box 4511 Huntsville, Alabama 35802

Dealer Inauiries Welcomed ® CP/M is a trademark of Digital Research

rapid random access outside the computer memory. Adventure on everybody's computer is still in the future, although it is coming soon.

I was playing Adventure at about the time Peninsula School, Menlo Park CA, received two Commodore PET 2001 machines for the children to work with; and the incredible idea of Adventure on a PET was too exciting to ignore. Adventure on a PET, with only 7123 bytes available for the BASIC program, is impossible, but couldn't I do something just a bit less ambitious? In a couple of intense work weeks, I wrote a program I called Quest, which ran on the PET.

Comparing Quest and Adventure

Compared to Adventure, Quest is a toy, in the same measure that the PET is a toy compared to larger computer systems. But it is an enjoyable and even exciting toy, in the same ways that the PET can be enjoyed by someone who can also play with the big computers. Each system has its own problems and pleasures. Adventure, as you can see from the opening paragraphs, has some novel problems for the adventurer to solve, and will proceed according to the adventurer's 2 word commands. On the other hand, the problem you must solve in Quest is basically to find your way around the cave. The only commands Quest normally understands are six directions: NORTH, SOUTH, EAST, WEST, UP, and DOWN, and even there, only the first letter is examined.

No huge green snake will confront you, and even the pirate, who swoops down to protect his treasure at some point, is beyond your control. He steals back the treasure after you have found it, and the problem continues: find the treasure again, and find your way out of the cave. To make it more interesting, various passages open and close according to your progress through the game.

One limitation which Quest and Adventure share is that they never change. Once you know how to get past the snake, you always know, and once you can find the treasure, you always know where it is. A friend of mine has suggested having earthquakes, which open and close passages at random. It seems to me, however, that that simply makes a bigger problem of the same kind, and I would rather have different problems. In that respect, both Adventure and Quest are very limited.

In a closer approach to the electric novel, there would be no guarantee that the problems can really be solved. In a Star Trek game, for instance, the fate of the Enterprise depends on the random number generator,

178 July 1 979 © BYTE Publications Inc

which can set the starship down in the same quadrant with four Klingon commanders and two super commanders, or cause all the starbases to be overrun by a plague of tribbles. In Adventure and Quest, as in crossword puzzles, the solution is part of the problem definition, and you know it exists.

It is possible in Adventure to do something which will ruin your chance for success. For instance, if you feed the bird to the snake, you will never get past the problem to which the bird is the solution. However, this doesn't change the basic limitation.

An important part of both games is the descriptions of the locations. These are of course not created by the computer, but were elaborated over a long period by the programmer and his friends. The topology of the Quest cave could be more complex if the location descriptions were something like "YOU'RE AT LOCATION 28. NOW WHAT?", but that would spoil a good part of the game. The descriptions in Quest have been worked out very carefully. Some of them are just for fun, and some of them have hints about the neighborhood.

Scoring

The original version of Quest had no scoring at all, to minimize the competitive situa

tions I thought might develop. The children who used it soon said that they wanted points. My own cynical analysis suggests that they don't know whether or not they're having fun unless they keep score, but perhaps there is simply a need in all of us to track our progress in a quantitative way. In any case, Quest now awards you one point for each location that you visit, plus up to 25 for the various checkpoints you pass along the way. In this version you can get up to 66 points.

Playing Time

Many people who play Adventure find that it takes them about two weeks of serious study to get through. The corresponding time for Quest is about two hours, although it has been done in an hour, and some people haven't finished after a day of frustrating search!

The Program

Quest was written for the PET 2001, and used some features of the PET to reduce the size of the program. The version given here has been rewritten in a simpler dialect of BASIC, which I believe will run with minor Text continued on page 186

Listing 2: Game of Quest In BASIC.

1

REM

QUEST

BY ROGER CHAFFEE

2

REM

INSPIRED BY WILL CROWTHER'S "ADVENTURE"

3

REM

COPY BIGHT(C) 1978

tl

REM

PENINSULA SCHOOL, MENLO PARK, CA

5

REtl

PERMISSION TO USE, NOT TO SELL

6

R EH

THE ORIGINAL VERSION OP THIS PROGRAM WAS WRITTEN ON A

7

REM

COMMODORE PET 2001. THIS VERSION HAS BEEN CONSIDERABLY

8

REN

RECODED, AND IS IN "PLAIN VANILLA" BASIC, WITH THE

9

REM

EXCEPTION OF THE RANDOM NUMBER GENERATOR IN LINES

10

REM

6600

6800, THE STRING MANIPULATION, AND THE IF ... THEN

1 1

REM

STAT EMENTS WHICH GIVE A STATEMENT TO PERPORH INSTEAD OF

12

REM

A STATEMENT NUMBER TO GO TO.

13

REM

VARIABLES USED

1 u

REM

N

NODE (CAVE) NUMBER

15

REM

HO

HOVE COUNTER

16

REM

T

CURRENT LOCATION OF TREASURE (-1 FOR CARRYING)

17

REM

Tl

,T2 FIRST AND SECOND HIDING PLACES (NODE NUMBERS)

18

REM

H6

SAVES THE HOVE NUMBER WHEN HE SAID NO, HE DIDMT

10

REM

WANT TO TAKE THE TREASURE WITH HIH.

20

REM

H

HAP OF INTERCONNECTIONS.

21

REM

H(I,J) IS NEXT NODE FROM NODE J, WHEN YOU GO

22

REM

N,E,U,D,W,S FOB 1=1,2,3,4,5,6

23

REM

21

REM

BOUNCES

25

REM

TO GO TO NODE -2 HEANS BOUNCE BACK TO THE NODE YOU

26

REM

CANE FROM.

27

REM

28

REM

FORCED AND/OR BAN DOM HOVES

29

REM

H(1,N)=-2 HEANS A FORCED MOVE AS SOON AS YOU BEACH

30

REM

NODE N. IN THAT CASE, H(2,N) OF THE TIME YOU GO

31

REM

TO NODE M(3,N). IF YOU DON'T GO THERE. H(«,N)

32

REM

OF THE TIME YOU GO TO NODE (5,N), AND THE REST OF

33

REM

THE TIHE YOU GO TO NODE (6,N).

3«

REM

Listing 2 continued on page 180

July 1979 © BYTE Publications Inc 179

Listing 2 continued from page 179:

35

REM

NODES > 100:

36

REM

NODE N*100 MEANS NODE N IF YOO DON'T HAVE THE

37

REM

TREASURE, AND NODE N + 1 IF YOU DO.

38

REM

NODE N+200 MEANS NODE N*1 IF YOU HAVE THE TREASURE

39

REM

THE SECOND TIME, AND NODE N OTHERWISE.

10

REM

NODE N*500 MEANS RUN THROUGH A DELAY LOOP AND THEN

U 1

REM

GO TO NODE N. THIS IS USED FOR FALLING DOWN THE

42

REM

EXIT CHUTE, AND YOU MAY WANT TO ADJUST THE DELAY

143

REM

TIME (LINE 6250).

44

REM

45

REM

Q$ INPUT STRING

46

REM

A$ CHARACTERS TO MATCH IN THE INPUT ROUTINE

47

REM

A2 NUMBER OF CHARACTERS IN A$

48

REM

A1 OUTPUT FROM THE INPUT ROUTINE

49

REM

P PIRATE FLAG 1 IF PIRATE HAS GOT YOU, 0 OTHERWISE

50

REM

P1 COUNTER FOR PIRATE ROUTINE

51

REM

N9 SAVES OLD NODE IN MOVE ROUTINE, POR BOUNCE

52

REM

N8 SAVES NODE WE BOUNCED FROM IN HOVE ROUTINE,

53

REM

FOR PRINT FLAG

54

REM

NO SAVES OLD NODE IN MOVE ROUTINE, FOR DEAD END

55

REM

40 SAVES OLD DIRECTION IN HCVE ROUTINE

56

REM

D DEBUG FLAG (NON-ZERO TO PRINT)

57

REM

I,J MISC. COUNTERS

58

REM

W TRAVEL FLAG, USED IN SCORING. W (I) = 1 IF HE'S

59

REM

BEEN TO NODE I, 0 OTHERWISE

60

REM

S SCORE

61

REM

M9 MAXIMUM NUMBER OF NODES

80

D=0

100 110

REM GIVE 'EM SOMETHING TO READ WHILE I GET THE DATABASE SET U

120

PRINT

" QUEST"

130

PRINT

140

PRINT

"YOU WERE WALKING THROUGH THE"

150

PRINT

"WOODS, AND YOU CAME ACROSS THE ENTRANCE"

160

PRINT

"OF A CAVE, COVERED WITH BRUSH."

170

PRINT

180

PRINT

"PEOPLE SAY THAT MANY YEARS AGO A"

190

PRINT

"PIRATE HID HIS TREASURE IN THESE"

200

PRINT

"WOODS, BUT NO ONE HAS EVER FOUND IT."

210

PRINT

"IT MAY STILL BE HERE, FOR ALL I K NOW."

400

READ M9,T1,T2

490

REM DIMENSION OF W, M IS M9, IF YOU HAVE DYNAMIC ASSIGNMENT

500

DIM W (42) ,H (6,42)

510

REM READ MAP INTO M ARRAY

520

FOB

1=1 TO M9

530

BEAD N

540

IF I=N THEN 570

550

PRINT "DATABASE PROBLEM"I,N

56 0

STOP

570

FOR J=1 TO 6

580

READ M (J, I)

590

NEXT J

600

NEXT I

900

PRINT

905

PRINT

"WHEN YOU ANSWER A QUESTION, I LOOK AT"

906

PRINT

"ONLY THE FIRST LETTER, ALTHOUGH YOU CAN"

907

PRINT

"TYPE THE WHOLE WORD IF YOU WANT."

920

GOSUB

7500

1000 1010

N=5

1020

M0 = 0

1030

M6 = 0

1040

T=T1

1050

P=0

1060

P1 = 0

1070

FOR J =

1 TO M9

1080

H (J) =0

1090

NEXT J

1100

PRINT

1110

REM DESCRIBE

1120

GOSUB 8000

1400 1405

REM

MAIN LOOP STARTS HERE

1410

REM COUNT MOVES

1420

M0 =

MO* 1

1430

REM MOVE

1440

GOSUB 6000

1450

REM CHECK FOR FINDING THE TREASURE

1460

GOSUB 2000

1 80 July 1979 © BYTE Publications Inc

147 0 REM TRY THE PIRATE 1490 GOSUB U000

1490 REN LOD? UNLESS FINISHED 1500 IF T>0 THEN 1400

1510 IF N<>5 THEN 1400

1700 REM CALCULATE SCORE 1710 GOSUB 3000

1720 PRINT

1730 PRINT "CONGRATULATIONS! TOU GOT THE TREASURE"

1740 PRINT "OUT IN";M0;

1750 PRINT "MOVES AND YOU GOT"S♦10"POINTS!"

1760 PRINT "WANT TO HUNT AGAIN? ";

1770 A$="YN"

1771 A2=2

1780 GOSUB 5000

1790 ON A1 GO TO 100 0,9999,176 0

2010 REM FOUND?

2100 IF TON THEN RETURN

2110 IF T<0 1 HEN RETURN

2120 IF H6*5>M0 THEN RETURN

2200 PRINT "DO YOU WANT TO TAKE IT KITH YOU? ";

2210 A$="YN"

2220 A2=2

2230 GOSUB 5000

2240 ON A1 GO TO 2300,2400

2250 PRINT "WELL? "

2260 GO TO 22 10

2300 T=-1

2310 PRINT

2320 PRINT "OK, LETS GET OUT OF HERE!"

2330 RETURN

2400 PRINT

2410 PRINT "WE'LL LEAVE IT HERE AND YOU CAN EXPLORE"

2420 PRINT "SOME MORE."

2430 M6=M0

2440 RETURN

3000 REM

3010 REM SCORE

3020 S=0

3030 IF T=-1 THEN S=S*5

3040 IF P=1 THEN S=S*10

3050 FOR J=2 TO H9 3060 S=S»W(J)

3070 NEXT J

3080 RETURN

4000 REM

4010 REM PIRATE

4020 IP N=T2 THEN RETURN

4030 IF P = 1 THEN RETURN

4040 IF T1=T2 THEN RETURN

4050 IF TO-1 THEN RETURN

4060 REM HES AT THE EXIT WITH THE TREASURE. ZAP HIM.

4065 REM (ARRGH. HOW DID HE GET HERE, ANYWAY?)

4070 IF N=16 THEN P=160

4080 REM COUNT MOVES SINCE HITTING TIGHT TUNNEL WITH TREASURE

4090 IF P1>0 THEN P1=P1*1

4100 IF N = 3 THEN P1 = PU1

4110 REM GIVE HIM A FEW MORE MOVES, THEN ZAP HIM

4120 IF PK15 THEN RETURN

4130 PRINT

4140 PHINT"SUDDENLY THE PIRATE LEAPS OUT OF THE"

4150 PHINT"GLOOM AND GRABS THE TREASURE FROM YOU!"

4160 PRIN T"'HA H!', HE SHOUTS, •YCU FOUND MY"

4170 PRINT"TREASURE, DID YOU?! WELL, I'LL HIDE"

4180 PRINT'TT LETT Ell THIS TIME!'"

4190 PRINT"AND HE DISAPPEARS INTO THE DARKNESS"

4200 PRINT"WITH THE TREASURE."

4210 P=1

4220 T=T2 4230 RETURN

5000 REM

5010 REM INPUT

5020 REM FIRST CHARACTER OF A1 INPUT STRING IS COMPARED WITH

5030 REM THE LETTERS OF A$, AND IF THERE IS A MATCH, THE INDEX

5040 REM IN Ai IS RETURNED IN A1. IF NO MATCH, SIZE(AS)+1 IS

5050 REM RETURNED.

5060 REM GET INPUT STRING

5070 INPUT Q$

Listing 2 continued on page 182

July 1 979 © BYTE Publications Inc 181

Listing 2 continued from page 181:

5080 REM USE ONLY FIHST CHARACTER

5090 Q$ = LST(Q$,1)

5100 BEN SEAhCH FOR THE CHARACTER Qt IN THE STRING AS. IB THIS VEHSION

5110 REM OF BASIC, NDX IS THE INDEX FUNCTION, WHICH DOES EXACTLY THAT.

5120 A1=NDX (A$,Qi)

5130 HEH DUT CHECK FOR THB CASE V HERE THE CHARACTER B AS NOT FOUND

5140 IF A1=0 THEN A1=A2*1

S145 RETURN

5150 RBH IF YOUB VERSION OF BASIC DOESN-T HAVE THB NDX FUNCTION, BUT

5160 REH DOSS, FOB INSTANCE, HAVE A FUNCTION WHICH BILL PICK A

5170 REH PARTICULAR CHABACTEB PROM A STRING, SUCH AS HID(AS,A2,1)

5180 BEH PICKING THE A2-TH CHARACTER FBOH A$, YOU MIGHT USE THE

5190 BEH FOLLOWING CODE.

5200 REH FOB A1=1 TO A2

5210 HEH IF Q$=HID(A$,A1, 1) THEN BE TURN

5220 REH NEXT A1

5230 RBH A1=A2»1

5240 REH BETUBN

6000 BEH

6010 BEH HOVE

6020 BEH BEHEHBEB WHERE WE ABE, FOB BOUNCE.

6030 N9=N

6040 BEH SEI N8 TO ANYTHING BUT YOU CANT GO THAT BAY

6050 N8=0

6060 REH ASK WHICH BAY

6070 GOSUB 7000

6080 BEH R EMEHBEH WHEBE WE ABE, UNLESS A DEAD END

6090 IF N=1 THEN 6120

6100 N0 = N

6110 A0=A1

6120 PRINT

6130 I=H(A1,N)

6200 IF I=-2 THEN I=N9

6210 IF DOO THEN PBIHT • DEBUG •; N;' TO'• I

6220 IF K500 THEN 6300

6230 REH DELAY LOOP TO WASTE SOME TIME

6240 1=1-500

6250 FOB J=0 TO 100

6260 NEXT J

6270 GO TO 6200

6300 ON 1/100 GO TO 6340,6370

6310 REM NORMAL BOUTE—LESS THAN 100

6320 N=I

6330 GO TO 6400

6340 REM N+100. ADD ONE IF CARBYING THE TREASURE

6350 N=I-100

6355 IF T=-1 THEN N = N*1

6360 GO TO 6400

6370 BEM N*200. ADD 1 IF CARRYING TBSASURE THE SECOND TIME

6380 N=I-200

6390 IF T=-1 THEN N=N*P

6400 IF NOI THEN 6500

6410 REM DEAD END. TUBN IT SO YOU GET OUT THE OTHER WAY

6420 FOB J=1 TO 6

6430 M(J,N)=2

6440 NEXT J

6450 M(7-A0,N)=N0

6500 REH PRINT OUT THE NODE DESCRIPTION

6510 IF N8<>2 THEN GOSUB 8000

6520 REM REMEMBER WEVE BEEN HEBE

6530 B(N)=.1

6540 N8=N

6600 IF H(1,N)<>-2 THEN 6800

6610 BEH FOBCED MOVE, WITH BANDOH DESTINATIONS

6620 BEH ON THIS VERSION OF BASIC, J=-1 FOLLOBED BY BND(J)

6630 BEH GETS YOU A NUMBER BETWEEN ZERO AND ONE.

6640 REH YOUB VERSION BILL DIFFER, AND THE NEXT FIVE

6650 REH LINES BILL HAVE TO BE CHANGED.

6660 I=H(6,N)

6670 J=-1

6680 IF M(4,N) > 100*BND(J) THEN I=M<5,N)

6690 J=-1

6700 IF H(2,N) > 100*RND(J) THEN 1=11(3,N)

6710 IF DOO THEN PBINT • DEBUG BOUNCE TO';I

6720 BEH NOB HAVE A NEB DESTINATION. GO BACK AND REDO IT

6730 GO TO 6200

6800 BETUBN

7000 BEH

7010 BEH WHICH BAY?

Listing 2 continued on page 184

1 82 July 1979 © BYTE Publications Inc

Circle 53 on inquiry card.

The Best MICRO-SOFTWARE

GENERAL LEDGER • ACCTS. PAYABLE

ACCTS. RECEIVABLE • INVENTORY ^ PAYROLL y

forTRS • 80 Apple II Micropolis Vector MZ Exidy Sorcerer Cromemco CBasic-CP/M Microsoft-CP/M

Buy simple, effective programs designed specifically for your machine. Call us once for same week delivery on a product you can use the day you receive it, and two years from now when your company is twice as big. And ask about MICROMAX - our computer output videotape system.

TRS»80: $100/each. CBASIC-CP/M: $200/each. Apple II, Micropolis, Vector, Exidy, Cromemco, and Microsoft: $140/each.

Order today by U.P.S. COD. We'll pay postage and handling on Visa, Mastercharge, or prepaid orders.

505 Hamilton Ave., Palo Alto, CA 94301 (415)321-2881

OMPU

5SOCIATE5, INC.

Announcing. . .

THE GUIDE TO DESKTOP MICROCOMPUTER SELECTION

A guide to the selection of a desktop computer that is right for your needs. Over 100 pages are crammed with features & specifications on models offered by the leading suppliers in the industry today. Manufacturers such as Radio Shack, Apple, Wang, Tektronix, IBM & Hewlett-Packard are included.

Other features include:

• a matrix of BASIC statements with over 250 entries comparing the capabilities of 8 different BASIC Interpreters.

• a matrix of hardware characteristics comparing desktop systems and their associated options.

• capabilities to consider when determining your needs & options.

• space within each matrix to include your choice of system not listed.

• key elements for development of software which can convert from one computer to another.

TO OBTAIN YOUR COPY, RUSH $13.65 PLUS $1.35 POSTAGE AND HANDLING TO:

^ ~ / atlantic analysis corporation

5 KOGER EXECUTIVE CENTER • SUITE 219 • NORFOLK. VIRGINIA 23502 (8041 461-1980

k VA Residents, add 4% sales tax >

TRS-80 means business! ! !

...with CP/M, CBASIC2, & applications software.

CP/M ("(he software bus") & CBASIC2 (the standard for business software) bring new power ;ind versatilily to the TRS-80 for practical use.

| CP/M Operating System (w/Editor, Assembler,

Debugger, Utilities & 6 manual set) $150

CBASIC2 Compiler (w/manual) $ 95

DESP00L Print Spooler (w/manual) $ 75

*Osborne & Assoc. PAYROLL W/C0ST

ACCTIMG $250

*0sborne & Assoc. ACCTS. RECEIVABLE &

ACCTS. PAYABLE $250

*0sborne & Assoc. GENERAL LEDGER $250

*=CBASIC2 source programs; add $15 (each) for applicable O & A book.

APH - Self-administered Automated Patient

History $175

I

Write/call for additional software available & FREE "CP/M Primer".

| CA residents add 6% tax. Visa, M/C.M/O,Check OK. |

(714) 848-1922

^IBI&1*IN|EITI!,.|C[S

n i

ig. §

804 1 NEWMAN AVENUE • SUITE 208 • HUNTINGTON BEACH. CALIFORNIA 92647 K

BUILDING BLOCKS FOR MICROCOMPUTER SYSTEMS, CONTROL & TEST EQUIPMENT

R2 I/O

2K ROM 3 SERIAL PORTS

2 K RAM 1 PARALLEL PORT

TABLE TOP MAINFRAMES

ECT-100-F

RACKMOUNT CARD CAGES

POWER SUPPLIES, CPU's, MEMORY, OEM VARIATIONS

SPECIALIZING IN

QUALITY

MICROCOMPUTER HARDWARE

INDUSTRIAL EDUCATIONAL SMALL BUSINESS PERSONAL

CONTROL TECHNOLOGY

763 RAMSEY AVE. HILLSIDE, N.J. 07205

(201) 686-8080

Circle 85 on inquiry card.

Circle 120 on inquiry card.

BYTE July 1979 183

Listing 2 continued from page 182:

7100 PRINT

7110 PRINT - WHICH WAY? »$

7120 A$="NEUDHSP"

7130 A2=7

7140 GOSOB 5000

7150 IP A1<8 THEN 7300

7160 PRINT "WHICH HAY DO YOU H A NT TO GO?"

7170 REM GIVE INSTHOCTIONS

7180 GOSUB 7500

7190 BEN DESCRIBE THE LOCATION AGAIN

7200 GOSOB 8000

7210 GO TO 7100

7300 IP AK7 THEN 7«»00

7310 REN CALCULATE AND PRINT SCORE

7320 30SUB 3000

7330 PRINT "YOU HAVE"S"POINTS!"

73«0 REM START AGAIN

7350 GO TO 7100

7400 RETURN

7500 P EM

7510 RBH SUBROUTINE TO GIVE INSTRUCTIONS

7520 PRINT

7530 PRINT "TYPE N.S,E,H,U, OR D FOR NORTH, SOUTH,"

7550 PRINT "EAST,WEST, UP OR DOWN. TYPE P FOB SCORE"

7560 PRINT

7570 RETURN

8000 REM

8010 REM DESCRIBE THE CURRENT LOCATION

8050 I = INT(N/5)

8060 J=N-5*I*1

8070 REM THERE ARE ENOUGH STATEMENT NUMBERS HERE TO HANDLE NODES

8080 REM ZERO THROUGH 49. YOU HILL HAVE TO ADD MORE IF YOO ADD

8090 REM NODES 50 AND BEYOND.

8100 ON 1*1 GO TO 8200,8210,8220,8230, 821*0,8250,8260,8270,8280,8290

8200 ON J GO TO 9000,9010,90 20,90 30,904 0

8210 ON J GO TO 9050,9060,90 70,9080,909 0

8220 ON J GO TO 9 100,9110,9120,9130,9140

8230 ON J GO TO 9 150,9160,9170,9180,9190

8240 ON J GO TO 9 200,9210,9 2 20,9230,9240

8250 ON J GO TO 9 250,9260,9 270,9280,929 0

8260 ON J GO TO 9300,9310,9320,9330,93UO

8270 ON J GO TO 9 350,9360,9 370,9380,939 0

8280 ON J GO TO 9 MOO,94 10, 9420,9430,91»l»0

8290 ON J GO TO 9450,9460,9170,9480,9490

8400 IF TON THEN 8500

81*10 PRINT

8420 PRINT "THE TREASURE IS HERE!"

8500 IF TOT2 THEN 8600

8510 IF T1=T2 THEN 8600

8520 IF HON THEN 8600

8530 PRINT

8540 PRINT "A NOTE ON THE HALL SAYS"

8550 PRINT " 'PIRATES NEVER LEAVE THEIR TREASURE"

8560 PRINT " TWICE IN THE SAME PLACE!"

8600 RETURN

9000 REM

9001 REM FIRST DATA STATEMENT IS NUMBER OF NODES, AND THE 2

9002 REM HIDING PLACES FOR THE TREASURE.

9003 DATA 1*2, 23,12

9010 DATA 1,0,0,0,0,0,0

9011 PRINT "YOU'RE AT A DEAD END!"

9012 GO TO 81*00

9020 DATA 2,-2,101,-2,0,0,0

9021 PRINT "YOU CAN'T GO IN THAT DIRECTION"

9022 PRINT

9023 GO TO 8400

9030 DATA 3,33,2,1,10,106,4

9031 PRINT "A TUNNEL GOES NORTH-SOUTH."

9032 PRINT "THERE IS AN OPENING TO THE BEST." 9037 GO TO 8400

9040 DATA 4,3,30,2,1 1,2, 1

9041 PRINT "YOU'RE ON THE BRINK OF A PIT." 9047 GO TO 8400

9050 DATA 5,8,8,15,10,8,16

9051 PRINT "YOU'RE OUTSIDE THE CAVE."

9052 PRINT "GO SOUTH TO ENTER."

9053 GO TO 8400

9060 DATA 6,16,3,2,10,2,2

9061 PRINT "YOU'RE AT THE HOME OF THE GNOME-KING."

9062 PRINT "FORTUNATELY, HE'S GONE FOR THE DAY" 9067 GO TO 8400

9070 DATA 7,-2,101,-2,0,0,0

1 84 July 1 979 © BYTE Publications Inc

Circle 206 on inquiry card.

9071 PRIST "THE GNOHE KING IS HEBE!"

9072 PRINT "YOU'D BETTER GET OUT!"

9073 PRINT 9077 GO TO 8400

9080 DATA 8,18,18,15,10,18,9

9081 PRINT "YOU'HE LOST IN THE WOODS." 9087 GO TO 8400

9090 DATA 9,-2,33,5,1.0,-2

9097 GO TO 8i»00

9100 DATA 10,-2,101,-2,0,0,0

9101 PRINT "YOU'RE NOT GOING TO GET FAB, DIGGING"

9102 PRINT "THROUGH BOCK."

9103 PBINT 9107 GO TO 8100

9110 DATA 11,1,13,4,2,1,2

9111 PRINT "YOO'RE AT THE BOTTOM OF A PIT. A LITTLE"

9112 PBINT "STB EA (t FLOWS OVEB THE BOCKS HEBE. " 9117 GO TO 8400

9120 DATA 12,36,2,1,2,1,2

9121 PBINT "YOU'HE AT A DEAD END!" 9127 GO TO 8400

9130 DATA 13,2,37,2, 1,11, 14

9131 PBINT "YOO'BE AT A WIDE SPOT. THERE IS A"

9132 PBINT "SOOTY PATCH WHEBE SOMEBODY HAS RESTED"

9133 PBINT "A TOBCH AGAINST THE WALL. THEBE ABE"

9134 PRINT "JAGGED BOCKS ABOVE YOU." 9137 GO TO 8400

9140 DATA 14,13,1,19,2,31,31

9141 PRINT "YOU'BE IN A CANYON. HIGH ON THE BALL"

9142 PBINT "ABOVE YOO IS SCBATCHED THE HESSAGE"

9143 PBINT " 'BILBO WAS HERE'" 9147 GO TO 8400

9150 DATA 15,-2,101,-2,0,0,0

9151 PBINT "YOU'BE NOT A BIRD. YOU CAN'T FLY!"

9152 PRINT 9157 GO TO 8400

9160 DATA 16,5,33,2,10,1,106

9161 PBINT "YOU'BE IN A LOW CHAMBER. A TIGHT TUNNEL"

9162 PRINT "GOES EAST, AND YOU CAN WALK TO THE"

9163 PBINT "SOUTH OB WEST. THEBE IS LIGHT"

9164 PRINT "TO THE NORTH." 9167 GO TO 8400

9170 DATA 17,-2,101,-2,0,0,0

9171 PRINT "IT'S A TIGHT SQUEEZE. YOU CAN'T"

9172 PRINT "GET PAST WITH THE TREASURE."

9173 PRINT 9177 GO TO 8400

9180 DATA 18,-2,101,8,0,0,0

9181 PRINT "I DON'T THINK YOU CAN FIND THE CAVE." 9187 GO TO 8400

9190 DATA 19,224,2,2,14,1,42

9191 PRINT "YOU'HE AT THE TOP OF A CLIMB."

9192 PBINT "BELOW YOU A MESSAGE SAYS"

9193 PRINT " 'BILBO WAS HEBE'" 9197 GO TO 8400

9200 DATA 20,226,1,2,2,25,2

9201 PRINT "YOU'RE AT THE NORTH SIDE OF A CHASM,"

9202 PRINT "TOO WIDE TO JUMP. RINGING ECHOES FROM"

9203 PBINT "BELOW ABE THE ONLY INDICATION OF DEPTH." 9207 GO TO 8400

9210 DATA 21,1,226,2,2,38,25

9211 PBINT "YOU'BE IN XANADU. BELOW YOU"

9212 PBINT "ALPH, THE SACBED RIVER RUNS"

9213 PRINT "THROUGH CAVERNS MEASURELESS TO MAN,"

9214 PBINT "DOWN TO A SUNLESS SEA." 9217 GO TO 8400

9220 DATA 22,-2,33,13,50,29,30

9227 GO TO 8400

9230 DATA 23,2,1,2,31,2,2

9231 PRINT "YOU'RE ON THE LEDGE ABOVE THE GUILLOTINE BOOM." 9237 GO TO 8400

9240 DATA 24,-2,101,19,0,0,0

9241 PRINT "I HEAR THE GIANT THERE'!!"

9242 PRINT "YOU'D BETTER GO BACK!"

9243 PRINT 9247 GO ro 8400

9250 DATA 25,21,20,2,2, 1,19

9251 PRINT "YOU'HE IN THE GIANT'S CAVERN. BETTER"

9252 PRINT "NOT BE HERE WHEN THE GIANT COMES!" 9257 GO TO 8400

9260 DATA 2b,-2,65,-2,50, 11, 14

9261 PRINT "YOU'RE IN THE QOEST RESEARCH AND"

Listing 2 continued on page 186

<aHtalOtfOH

miciopfocc/sof di/play/

ALTR-2480

ALT-256

ALT-512

S100 BUS Standard TV Monitor Controllers

ALPHANUMERICS: Transparent Memory insures clean video while leaving CPU free to perform other tasks. 24 x 80 or 2 pages 24 x 40. 96 ASCII characters with descenders plus 32 graphics symbols. Normal/inverse video and blink available on a per character basis.

GRAPHICS: 256 x 256 high resolution monochrome self-contained graphics display and a software controlled ALT-512 provides 512 horizontal x 256 vertical or two 256 x 256 images allowing grey scale or high speed animation X-Y addressing of memory located in I/O area allows CPU maximum work space.

COMBINED: The ALT-256 and ALT-512 graphics boards allow easy connection to the ALTR-2480 providing full alpha/graph capability on two

cards.

Matrox offers a highly diversified selection of modules and PC boards allowing customers to solve display problems rapidly and cost effectively These ready to use sub-systems are available off the shelf in self-contained module, for any uP. or on PC boards, bus compatible with DL;C LSI-11. PDP-11. Moslek-Prolog STD. Intel- NSC SBC Multibus. Motorola Exerciser Custom Designs as well as theMTXAl & MTXB1 Alpha chips - the single chip keyboard & display controllers - give Matrox the most extensive display capability in the industry

<S7p motion electronic sy/Um/

The Visible Solutions Company

5800ANDOVER ROAD. MONTREAL. QUE. H4T IH4 TEL.: 1514) 481-6838

U.S. ONLY. TRIMEX 8U1LDING. MQOERS. N V ll'JUS

July 1 979 © BYTE Publications Inc 1 85

Listing 2 continued from page 185:

9262 PBINT "DEVELOPMENT AREA."

9263 PRINT

9264 PRINT "I'd SORRY, BUT VISITORS ARE NOT"

9265 PRINT "ALLOWED. YOU'LL HAVE TO LEAVE."

9266 PRINT

9267 GO TO 8400

9270 DATA 27,2,«0,2,2,21,20

9271 PRINT "YOU'RE IN THE CRYSTAL PALACE. THE"

9272 PRINT "HALLS RESONATE WITH"

9273 PRINT "AWESOME MUSIC." 9280 DATA 28,-2,60,221, 50 , 14, 19 9287 GO TO 8400

9290 DATA 29,2,1*2,2, 13,1,1

9291 PRINT "YOU * RE AT THE TOP OF A GIANT STALACTITE."

9292 PRINT "YOU COULD SLIDE DOWN, BUT YOU COULDN'T"

9293 PRINT "CLIMB BACK OP." 9297 GO TO 8400

9300 DATA 30,34,31,2,1,4,2

9301 PRINT "YOU'RE IN A LITTLE GROTTO. THERE IS A"

9302 PRINT "BOOK HERE CALLED JANE'S FIGHTING SHIPS,"

9303 PRINT "DATED 1763." 9307 GO TO 8400

9310 DATA 31,14,14,23,2,1,2

9311 PRINT "YOU'RE IN THE GUILLOTINE ROOM. A SHARP"

9312 PRINT "ROCK BALANCES PRECARIOUSLY ON THE"

9313 PRINT "LEDGE ABOVE YOU." 9317 GO TO 8400

9320 DATA 32,-2,101,516,0,0,0

9321 PRINT "YOU'RE IN A CHUTE, SCRAMBLING DOWN THE"

9322 PRINT "ROCKS! NO WAY TO STOP! HANG ON!"

9323 PRINT 9327 GO TO 8400

9330 DATA 33,2,1,2,1,116,3

9331 PRINT "THE TIGHT TUNNEL TURNS A CORNER."

9332 GO TO 8400

9340 DATA 34,1,35,2,1,30,30

9341 PRINT "YOU'RE IN A LITTLE TWISTY HAZE" 9347 GO TO 8400

9350 DATA 35,2,1,2,37,34,36

9351 PRINT "YOU'RE IN A LITTLE TWISTING HAZE" 9357 GO TO 8400

9360 DATA 36,35,2,1,37,34,12

9361 PRINT "YOU'RE IN A TWISTING LITTLE MAZE" 9367 GO TO 8400

9370 DATA 37,2,1,35,2,13,2

9371 PBINT "YOU'RE IN A TWISTY LITTLE MAZE" 9377 GO TO 8400

9380 DATA 38,2,21,2, 116, 1,2

9381 PRINT "YOU'RE IN A PREHISTORIC DWELLING. OH"

9382 PRINT "THE WALL ARE DRAWINGS OF BISON DONE IN"

9383 PRINT "RED CLAY. THE FLOOR IS STREWN WITH"

9384 PRINT "BONES, THE REMAINS OF ANCIENT RITUALS."

9385 PRINT "A SMALL TUNNEL GOES THROUGH THE FLOOR." 9387 GO TO 8400

9390 DATA 39,2,40,2,32,21,26

9391 PRINT "YOU'RE IN A BLACK HOLE. THE"

9392 PRINT "FORCE OF GRAVITY IS OVERWHELMING." 9397 GO TO 8400

9400 DATA 40,40,40,2,2,40,41

9401 PBINT "YOU'BE IN THE LABYRINTHE" 9407 GO TO 8400

9410 DATA 41,40,40,40,2,40,39

9411 PRINT "YOU'BE IN THE LABYRINTHE"

9412 PRINT "IT'S VERY DARK IN HERE." 9417 GO TO 8400

9420 DATA 42,28,28,28,28,28,28

9421 PRINT "YOU'RE IN THE ASHRAM. INCENSE IS HEAVY"

9422 PRINT "IN THE AIR, AND ALL DIBECTIONS"

9423 PRINT "SEEM THE SAME." 9427 GO TO 8400

9430 REM NO NODES SET UP FOR THESE VALUES. IP YOU GET HEBE,

9440 REM YOU HAVE A MISTAKE IN A DATA STATEMENT.

9450 REM

9460 BEH

9470 REM

9480 HEM

9490 BEH

9500 REM

9510 REM

9520 REM

9530 REM

9999 END

Text continued from page 179: modifications on most machines which have enough memory to hold it. The number of locations has been increased slightly, and a few surprises have been added to make it more interesting. The original Quest was made for seventh-graders at Peninsula School, who were doing a map making unit. For this reason, most of the connections between locations work as if they were in physical three-dimensional space, although there is no requirement for this in the program.

The program and the description of the cave are well documented by the comments in the code, so I won't go into great detail here. Besides its description, each location has a set of six numbers which give the next location to move to, in case of a move NORTH, EAST, UP, DOWN, WEST, or SOUTH. Special events, such as the pirate and the treasure, are done in the program rather than in the descriptions. There is a provision in the connection codes for an immediate return to the location you came from, which is used, for instance, at the location called "YOU CAN'T GO IN THAT DIRECTION." There is also provision for different connections chosen according to a random number, and for different connections depending on whether or not you are carrying the treasure, and whether or not the pirate has found you.

A Final Statement

It is possible to get through the cave by reading the program and decoding the data which defines the connections. If you do that, you will deprive yourself of the pleasure of finally finding your way through. It is also possible to "help" a friend by telling him how to get through. I don't think the easy pleasure of knowing how to get through can equal the joy of discovering the way, or the satisfaction of having discovered it, or the excitement of being on the way to discovering it. I also don't think that anyone who merely plays Quest can have as much fun as I have had in writing it, and watching other people use it.

Acknowledgments

My thanks go to Larry Tesler and Phyllis Cole, of the Peninsula School Computer Project, for their encouragement and technical help, and to Mary Artibee for her help with this article. A tape of the PET version of Quest is available for $9.95 from the Peninsula School Computing Project, Menlo Park CA 94025."

186 July 1 979 © BYTE Publications Inc

Ik

Beck Reviews

Techniques of Program Structure and Design

by Edward Yourdon Prentice-Hall, 1975 364 pages hardbound $19.50

As you might surmise from the title, this textbook promotes structured programming, design, and testing concepts. Although familiarity with current hardware, systems, or software doctrines is not a prerequisite for reader comprehension, the greatest benefits will accrue to those individuals active in software development or maintenance efforts.

The book's tone and structure are established in the first chapter with a discussion of the seven most desirable qualities of a good program. The program should work well and according to specification; the simplicity of design should reduce development, testing, and maintenance costs; and the program's inherent flexibility should allow change through expansion, modification, or upgrade.

Of perhaps more importance to the average programmer is the analysis of ten practices which commonly exacerbate the debugging problem. Also included are suggestions for easing the difficulties of maintaining or modifying existing programs for the maintenance programmer.

The next chapter deals with top-down design, coding, and testing. Top-down design is the process by which the programmer identifies the major functions of a programming problem, and organizes the solution in such a manner that it is recognizable to both the computer and the maintenance programmer.

Mr Yourdon provides five suggestions for successfully applying this concept. The benefits and disadvantages of flowcharts figure prominently in the arguments for and against the concept of writing code concurrently with designing the top-down structure. An offshoot of this discussion of topdown coding concerns how best to display modular code: the horizontal and vertical approaches have unique merits which should be considered prior to presenting the code.

Following the presentation of the nature and advantages of top-down testing, the

author deals with practical variations of the pure approach to top-down design, coding, and testing. These modifications are frequently the result of organizational problems and management compromises. Two of the most successful variations discussed are the IBM developed structured walkthrough technique and IBM's highly innovative chief programmer team concept.

In Chapter Three, the reader is introduced to the concept of modular programming (precursor to the now popular structured programming technique). After a discussion of the characteristics of a programming module, the pros and cons of modularity are detailed. Techniques for achieving modular programs are of particular interest, especially those sections dealing with decision tables, separate I/O (input/ output) functions, and use of symbolic parameters. The chapter concludes with the closely related subject of general purpose subroutines.

After a review of the history and background of the structured programming movement, both the theoretical and practical aspects of the concept are detailed in Chapter Four. While analyzing structured programming's objectives and motivations (in terms of testing, productivity, clarity, and efficiency), Mr Yourdon highlights

At last... the mechanical interface!

Turn your electric typewriter into a low cost, high quality hard copy printer.

User list

395

oo

The all new I/O Pakfrom Rochester Data. Inc. interfaces the keyboard of any commercially available electric typewriter with any computer. The result: low cost, high quality hard copy. Write today for more information.

Ii icorporated

3100 Monroe Avenue, Rochester, New York 14618

Circle 326 on inquiry card.

July 1 979 © BYTE Publications Inc 187

There is a reason so many Datec customers are communication line technicians, computer engineers and data processing experts. They recommend Datec for the simple, solid state, rugged design that has proven to be more reliable than bigger name couplers.

Acoustic couplers are the work horses of a data communications system. They should work every time, every day, so that you can install them and then forget them.

No wonder communication line technicians have nicknamed the Datec 32 the "heavy duty" acoustic coupler.

CRYSTAL CONTROL

Ciystal controlled transmitter and receiver insures long-term stability and rtr.j reliability, even In the most unfriendly operating ?< environment

BIG EARS

Rugged, tight-fitting rubber cups effectively seal out vibration and room noise. They aren't beautiful, but they work.

BCIRNED-1N

Datec may be the only company that torturetests every PC board by buming-in each one for 168 hours at elevated temperatures.

This process reduces the probability of field failure below 2% for the first 1000 hours of operation. We find the faulty one before we ship it.

TALKS WHEN IT RAINS

Datec couplers are highly sensitive, operating at received levels of -55dBm or lower. Our sensitive receiver can pull weak signals out of the "mud" of leaky, rain-soaked telephone cables.

GUARANTEED

Remove a few screws and the PC board pops out It couldn't be simpler. Any problems Incurred through normal use, and it's replaced or repaired free with no questions asked during the first year.

READILY AVAILABLE

Datec 300 bps acoustic couplers are readily available in both originate and originate/answer models. All Datec equipment including the new Datec 212 is Bell compatible. OEM inquiries are welcome.

DATEC INC., PO BOX 839, CHAPEL HILL, NC 27514, (919) 967-5605

DATEC DID IT! Quality—designed in, burned-in, and guaranteed

Circle 98 on inquiry card.

significant differences between structured and modular approaches to program design. Although structured programming is becoming the standard method of achieving modular programs, the concept involves more than the simple conjunction of "GOTO-less" programming with the process, loop, and binary-decision constructs. As with most evolving techniques, there are tradeoffs in terms of efficiency, convenience, hardware and software requirements which concern many of those involved with computer science. The structured technique is not a panacea for programming ills.

Mr Yourdon has found that imposing structure upon poorly designed, unstructured programs usually results in poorly designed, GOTO-less, structured programs that are almost as difficult to understand and debug as the originals. As a result, he recommends that experienced programmers rework their previously unstructured code only as a means of bringing their thought processes into compliance with current top-down design concepts. There are three common techniques for restructuring this code, each with its own strengths and weaknesses: the duplication-of-coding technique which is recommended for programs with network or lattice structures; the statevariable technique which is helpful to the maintenance programmer and can be applied to very complex processing programs; and the Boolean flag technique which is applicable to loop-oriented programs.

The chapter concludes with a discussion of the applicability of structured programming to the currently available high level programming, systems implementation, and assembly languages. ALGOL, PL/I, COBOL, FORTRAN and assembly languages are covered quite extensively; PL/S, BLISS, PL/ 360, Burroughs B5500 ESPOL, Project MAC EPL, and GE-645 MULTICS languages are discussed in less detail. I noted with interest the author's claim that FORTRAN and assembly languages do not provide the necessary facilities for structured programming.

In Chapter Five, programming method, system software, and system hardware figure prominently in the discussion of the elements of programming style which dramatically affect the coding and debugging process. Of particular note are the questions concerning how to best reduce program complexity so as to limit the introduction of errors, and how to construct programs so that someone other than the original programmer can read and comprehend the logic flow.

The focal point of the next chapter is defensive programming — the practice of writing programs in such a way that the

1 88 July 1 979 <qj BYTE Publications Inc

inevitable bugs are readily noticeable to both programmer and user. Effective arguments are presented against the most common objections to this antibugging technique. Following the presentation of a comprehensive list of aspects of a computer program which require checking, the author summarizes nine useful error-checking techniques. Although many of the antibugging techniques belong more properly in the realm of system, rather than program design, the discussion is valid at both the programming and coding levels.

Testing is reviewed in Chapter Seven. The magnitude of this effort can reach staggering proportions on projects which utilize many programmers, large numbers of manhours, and vast segments of code. Current module, system, and acceptance testing techniques expose most common types of error. These errors are divided into eight categories: logic, documentation, overload, timing, throughput and capacity, fallback and recovery, system hardware/software, and standards errors.

It is Mr Yourdon's contention that a program is economical to test and debug only if the team programming concept is used in combination with an antibugging programming style and an unambiguous, structured language. Also, because programmers use slow, tedious methods and are psychologically inclined to justify their output as correct, he advocates the removal of the human element from the testing process. Ideally, the testing process would be fully automated: the automatic test harness would collect the test input from the automatic test data generator, pass it to the program being tested, and use an automatic output checker to list the discrepancies. Upon program execution, the automatic testing monitor would print a report showing the portions of the program exercised by the test data. The program would be subjected to a thorough retesting if it is further modified. The chapter concludes with a review of some of the experimental techniques currently being evaluated for their abilities to increase program reliability.

Once the existence of a bug has been established, it is time to employ the technique of finding and correcting the error, known as debugging. The procedure is more art than science, and in Chapter Eight the reader is provided with both an explanation for 26 common bugs and 11 detailed suggestions to assist in the formulation of a workable debugging strategy. A terminaloriented debugging system greatly reduces the frustration of using memory dumps and program traces. The system is called DDT or Dynamic Debugging Technique. After de

scribing the general features of the process, the author expands his explanation on the currently available stand alone and sophisticated timesharing and realtime packages. The chapter concludes with the implementation of a simple version of DDT.

The four programming exercises in the appendices illustrate the principles of program design and structured programming, and allow the reader to apply the techniques presented in the book to real problems. The two management system problems are quite complex and can best be attacked by a team of three to four programmers. The master file update and tic-tac-toe problems are more simple and are suitable for individual programmers.

This highly informative book is packed with information for both the commercial and personal aspects of programming. The book's heavy concentration on the general philosophy and techniques of good programming deserves the highest accolades. Techniques of Program Structure and Design should be a part of every dedicated computer user's library.

Lee C Matthews 9659 B Jefferson Ellsworth AFB, SD 57706

AT LAST!

The High Density Color Graphics You've Been Waiting For!

hi ji mm i in m i n 11 mwin i' h p.

• Plugs directly into your S-100 bus

• Eight different colors

• Eleven software selectable modes

• Display densities ranging from 64X32 to 256X192 Blocks

• 6K bytes of on board screen refresh memory

• Bank select

• Board protect

• Composite video

• Software graphics driver routines for the 8080/Z80

Introductory Offer:

BCG-800K (Kit) S285.00

BCG-800A (Assembled) $385.00

BCG-800B (Bare board W/S68047) S 45 00

VISA & MASTER CHARGE• Calif. Res. Add 6% Sales Tax Call or Write for Details:

Biotech Electronics

P.O. Box 485

Ben Lomond, CA 95005

(408) 338-2686

Circle 31 on inquiry card.

July 1 979 & BYTE Publications Inc 189

Beck Reviews

Top-down Structured

Programming

Techniques

by Clement L McGowan and John R Kelly Mason/Charter Publishers Brown University, New York 1975 288 pages hardback $15.95

This book provides a good introduction to the top-down structured programming concept. This concept requires, as a first step, that a problem's functional specifications be determined. The problem is then refined until that programming code directly expresses the resulting subfunctions, or modules. The authors believe that programmers who use the top-down structured methodology are more productive, and consistently produce a reliable product which works despite continuous testing or future modification. The book also details recent programming advances in the large system, multiprocessing environment.

Chapter 1 presents an overview of structured programming with an emphasis on the development of a language-independent methodology whose principal goal is program reliability. Of special interest is the section on the importance of developmental and modification software (in terms of time, cost, and reliability). Following a preview of the remaining chapters, the authors discuss their reason for illustrating programming concepts with code fragments in the PL/I language.

Chapter 2 emphasizes program reliability. The data processing industry spends a great

APPLE • CENTRONICS • TEXAS INSTRUMENTS HORIZON • VECTOR GRAPHIC • CROMENCO

• RADIO SHACK • HP^- * %~2QPOLIS • SOROC

• OSI • SWTP PET • DIABLO

• HEATH • D DEC • PET • •WANG

WE'VE GOT YOU COVERED!

Cover Craft Dust Covers protect your hardware and your investment. Save maintenance, downtime and look great. Our Dust Covers come in hundreds of sizes each custom designed to fit a particular model of terminal, CPU, Line Printer, Floppy Disk. They're a proven way to help eliminate dust and dirt accumulation, improve system reliability and save many times the cost in reduced maintenance and downtime. What's more, your satisfaction is 100% guaranteed.

Cover Craft Dust Covers are available from your local computer retailer tir OK aq ap or contact Cover Craft.

Can you afford to wait any longer?

C

COVER CRAFT

P.O. Box 555, Amherst, NH 03031 Telephone (603) 673-8592

amount of time and money to insure that programs are developed with as few flaws as possible. The current doctrine of testing programs for reliability is gradually giving way to a more efficient method of checking for correctness. Finally, the DO-WHILE construct is introduced by emphasizing the importance of properly initializing conditional loops, and explicit guidelines for programming conditional iterations are given.

In the next chapter, the SEQUENCE and IF-THEN-ELSE programming tools are discussed. Correctness questions, which the programmer should pose while using these constructs, are used as an aid in determining the functional specifications of the program. Program specifications must be determined prior to commencing the actual coding process because the authors consider inaccurate specifications to be the most important source of software errors. The ITERATIVE-DO, SELECT-CASE, REPEATUNTIL, and LOOP-EXITIF-ENDLOOP constructs are formed by combining the basic figu res.

Unfortunately, the authors elect to leave the related correctness questions as an exercise for the reader, feeling that ". . .the reader is now sufficiently aware of the correctness considerations to properly examine his use of the nonbasic figure." Although the authors admit to writing for the computer professional, rather than the mathematician or newcomer to the computer field, I feel they did their readers a disservice. These correctness questions are vital (without them, the book suffers from a lack of comprehensiveness which limits its usefulness to both the salaried professional and computer hobbyist). Chapter 3 concludes with an interesting section on how to impose structure on programs written in FORTRAN and COBOL. The examples are illuminating.

The advantages of the top-down structured approach to program design, coding, and integration are discussed in Chapter 4. Top-down segmented implementation is compared (somewhat one-sidedly) with the more standard bottom-up strategy. Among the advantages discussed is the following: the effectiveness of top-down structured programming in eliminating construct errors (missing paths, inappropriate path selection, and inappropriate action under a given condition). The top-down method concentrates on the more time-consuming and error prone aspects of programming during the initial, rather than the final stages of development. A structured program has the advantage of becoming its own principal documentation. And the final advantage, especially associated with large systems pro

1 90 July 1 979 © BYTE Publications Inc

Circle 79 on inquiry card.

grams, is that integration and debugging are easier to implement under the top-down strategy. The programming technique of recursion is introduced in the concluding sections of the chapter.

The remaining two chapters and two appendices are of less interest to the computer hobbyist. Chapter 5 examines IBM's innovative "chief programmer team" organization and its managerial approach to the operation of software projects. Chapter 6 provides extended examples of the top-down structured approach to program design, with the primary focus on parallel processes (whereby several computations proceed either simultaneously on separate processors, or by multiprogramming on a single processor) and multiprocessing resource management. The chapter concludes with the specification and top-down design in pseudocode, of a hypothetical multiprogrammed, multiprocessing operating system. The REPEAT-UNTIL, SELECT-CASE, and LOOP-EXITIF-ENDLOOP structured modules are implemented in PL/I in Appendix A. In Appendix B, six of the seven structured programming constructs are specified in 360/370 assembly language macros.

As a result of the omission mentioned earlier, I have qualms about recommending this book as a mandatory reference resource. If you are interested in using structured techniques to increase your programming productivity and reliability, I would recommend that you get a copy of the book through a nearby college or computer club library and spend a few hours reading the material. I found the authors' style lucid, although on occasion I had difficulty following some of their examples due to my unfamiliarity with the PL/I language.

Overall, the book successfully presents the authors' contention that structured coding, top-down design, formal and informal proofs of correctness, chief programmer team organizations, and code reading result in reliable, flexible software. I fully concur with their belief that ". . .top-down structured programming is one way to make programming the enjoyable activity it should be."

Lee C Matthews 9659B Jefferson Ellsworth AFB SD 57706

A new star on the Horizon

CSUB (Common SUBroutines)

Developed for North Star DOS and BASIC by Micro Mike's, Incorporated

CSUB is a multi-dimensional programming package. Among benefits CSUB offers both user and programmer are:

TIMESHARING

for the Horizon —

The only true interrupt-driven, bank switching timesharing software available for the Horizon.

Supports as many as four 5'.t" drives, four 8" drives, and as many as four CRTs with 16 to 48 K RAM per CRT. Interrupts at 26 ms. Spooler and file locking to be supported in the near future.

Specify single (Release 4) or double density (Release 5).

Requires additional memory in computer.

A machine language program on5'4~disk $49.95

Micro Mike'sjncorporated PROGRAM LIBRARY

A one time fee of $500 (soon to be increased) buys for the purchaser continuous unlimited access to the programs, updates and revisions in the PROGRAM LIBRARY.

Complete business application software auailable. Write for additional information. Dealer discounts auailable.

1. Non-destructive cursor positioning

2. Automatic display of error messages or bulletins

3. Strict control of all data passing between CRT and CPU, including.

a. Complete parameter checking of all numeric data input

b. Complete formatting of all numeric and alphanumeric data displayed or input

c. Automatic mask and data display

d. Automatic date input and display (automatic display of slashes between month, day and year)

e. Complete numeric control on single character CSUBdtsj»SS&;;-'!£S alphanumeric inputs

f. User's ability to "back up" to last logical input.

4. Strict control of data passing between external storage devices (i.e. disk drive)s)) and CPU, including:

a. Automatic file OPENing and CLOSEing for most file accessing

b. Sequential file accessing

c. Random file accessing with automatic calculationsof file vectors

d. Keyed file accessing with virtually no limits on number of keyfiles

e. Automatic sorting of keyfiles.

4SHARE (timesharing for Horizon, Release4) . . $49.95 5SHARE(timesharingfor Horizon, Release5) . . $49 95 DOSCHG4 (8" disk drive interface patch to

Release 4 North Star DOS and BASIC) $49.95

DOSCHG5 (8" disk drive interface patch to

Release 5 North Star DOS and BASIC) $49.95

Making technology uncomplicated

. . . for People Micro Mike's,Incorporated

905 South Buchanan Amarillo, Texas 79101 806-372-3633

Circle 204 On inquiry Card. July 1979 © BYTE Publications Inc 191

Programming Ouickies

BASIC Bit Twiddling

Ralph Owens POB 202

Enterprise KS 67441

The following are several functions which allow the user to manipulate individual bits and nybbles (groups of four bits) using BASIC. I like to use these functions with the PEEK and POKE commands.

Nybble functions

FNU(N)=INT(A/16) FNL(N) = A-16*FNU(N)

FNA(N) = 16*N + FNL(N) FNB(N)=FNU(N) + N

Bit functions

FNQ(N) = I NT(A/21N) - 2* I NT(A/2 t(N +1)) FNR(N) = A - FNQ(N)*2I N FNS(N) = A + (1 -FNQ(N))*2IN FNT(N) = FNR(N) + FNS(N) — A

A contains the value of the byte. N contains the value of the nybble.

Reads upper nybble. Reads lower nybble.

Sets upper nybble to value of N. Sets lower nybble to value of N.

A contains the value of the byte. N (0 thru 7) is number of desired bit.

Reads Nth bit. Resets Nth bit to zero. Sets Nth bit to one. Toggles the Nth bit.

Solve Problems By Simulation...

with simulations of many concepts, including

• wave motion

• flying objects

• artificial intelligence

• electronic circuits

• and robot motion!

SIMULATION is a collection of

the best articles from byte Magazine on this useful computer technique, plus exciting new material on the subject.

SIMULATION is the second volume In the Programming Techniques series on the art and science of computer programming from byte books. Editor Blaise w. Liffick's selection of material furnishes not only background Information from which the personal computer user Is able to write and maintain simulation programs, but also actual programs for simulating many situations. Theoretical and practical applications of this technique are explored in articles dealing with specific aspects of simulation.

Learn how to find solutions to your problems through SIMULATION.

ISBN 0-93171B-13-9

$6.00

Buv this book at your favorite computer bookstore or order direct from BYTE BOOKS. Ado 60-. per Book for postage and handling

zZ4.Ji;:i'iveLi\^

"ROOMS OF INTEREST TO COMPUTER PEOPIE"

70 Main Street. Peterborough, New Hampshire 03458

Here are two examples

of the use of these functions:

1000 REM FIND LOWER NYBBLE VALUE

1010 A = PEEK(16422)

1020 V= FNL(A)

1030 PRINT "VALUE OF LOWER NYBBLE

IS"; V

9999 END

2010 A = PEEK(16422)

2020 REM SET EIGHTH BIT OF DECIMAL

2030 REM LOCATION 16422 TO ONE

2050 A= FNS(8)

2060 POKE 16422, A

9999 END.

192 July 1 979 © BYTE Publications Inc

Circle 36 on inquiry card.

World Power Systems: A Report

This spring, World Power Systems Inc of Tucson AZ began "business" with a promotion campaign, ordering goods from suppliers, and soliciting orders and money from customers. It is now known that only a few initial orders were filled (apparently to establish credibility), and that money accompanying later orders was simply stashed away.

Because of this, our industry has received a black eye, and many of us, BYTE included, are apparently out of substantial amounts of money. Acting on a tip received April 25, the Pima County Attorney's Office promptly investigated and, within a few days, had sufficient evidence of illegal activities to obtain warrants for the arrest of those responsible for the operation. An arrest was made, goods were seized and impounded, and others, who were out of Tucson at the time, are being sought by the authorities.

The question that all of us must be asking is "How can we prevent this from happening again?"

It would be nice if there were a simple answer. The main things consumers can do are (1) don't send money unless you have reason for confidence in the company and (2) promptly report (eg: to postal authorities) anything suspicious.

What neither consumers nor the media can afford to do, however, is to establish a presumption of guilt. Just because a company is new does not mean that the media can refuse advertising or that consumers should avoid the company's products. Such actions would only lead to stagnation in the industry and possible claims of unfair competition and/or antitrust violations. Indeed, since many of the biggest companies in the industry began in founders' homes, such a policy might have retarded the development of the personal computer industry by several years.

BYTE has had, and continues to have, stringent standards on the advertising it accepts. Advertisements have been rejected for such reasons as being tasteless, misleading, or having originated from unreliable companies.

As to reliability, we have to depend in part on readers' input. Financial reports on advertisers are, unfortunately, of limited value. Some financially unstable companies are totally honest, while others, with a superficially impressive report, may turn out to be fraudulent.

At BYTE, any reader's complaints about advertisers are sent to the advertiser along with our request that BYTE be notified of what action is being taken. Since there are always two sides to every argument,having a single disgruntled customer would be inadequate reason for sanctions against the advertiser. A series of complaints without adequate response by the company, however, is cause for BYTE refusing to run further advertisements by that company.

In summary, there is no absolute protection in any industry against well-planned and well-executed frauds. Prompt communication between (1) consumers, (2) reputable companies, (3) the media, and (4) the authorities can nip poorly planned frauds in the bud and limit the damage that is done.

Chris Morgan

BYTE Executive Editor

The

QIAO SHE)

%J M \J : ELECTRONICS

An S-100 Bus Adapter/Motherboard for the TRS-80 plus a whole lot more!!!

i S-100 BUS INTERFACE i 6 SLOT MOTHERBOARD

The BlOO allows a Radio Shack TRS-80 computer la 1* Interfaced to the popular S-100 Bus fur memory expansion

ami extended VU c:ij.ii<i>ilitii*s. Fur exiimnle, yciu din now easily mid more memory. Ili>|ipy disc systems. PROM board*, printer interfaces, multi-purpose I/O boards, AG device controllers. ;ira! :i u hull- host rjf .ir hi-r wined peripherals.

The 8100: includes our i hoards in tiioir pieces.

The 8100 has support circuitry and sockets for i IfiK dvmimic HAM chips allowing you to expand the r oryofyourTllS-finbv [(,K without h.ivmi: Ii.Lvjv an>-i RAM boards.

• SERIAL RS232/20ma I/O

• PARALLEL INPUT AND OUTPUT

• SPACE FOR 16K DYNAMIC RAM

• CAN USE LEFT OVER 4K CHIPS

• LOW COST- PRICES START AT S

• AVAILABLE IMMEDIATELY

If you imich.iM.-il . you could lie left with put them! Well, they i

ii:ln .IK HAM chip.-, .md nowhere (< in (•» in the HAM Mickel.s insu-iui Be either 4K or ItiK chips and ad

PRICES START AS LOW AS $185* (S-100 BUS interface only)

Ruh)

■ ELECTRONICS

1429 Maple St. San Mateo, CA 94402 (415) 573-7359

CALL OR WRITE FOR COMPLETE PRICING INFORMATION AND MORE DETAILS

DEALER INQUIRIES INVITED

•Eaira S-100 connectors. RAM suppon. I/O circuilry optional. USA DOMESTIC PRICE ONLY

RUR)—MINI-8100

; ci FfTRrtNirs an s-100 bus

ELECTRONICS ^QAPTER/MOTHERBOARD FOR THE TRS-80

MINI-SIZE! MINI-PRICE!

tmr

but MAXI-PERFORMANCE!

HUH Electronics' 8100 is ihe established lender in S-IOO/TRS-80 interfaces, running reliably since November 1978 and giving you Ihe most features for your dollar. Hut some folks don'i need all ihe 8100'$ versatility or warn something more compact.

So we created the MINI-8100. The MINI8100 has ihe same proven reliable S-100 Bus interface circuilry as it's nig brother coupled with a 4 slot shielded motherboard. It connects to the TRS-80 or to the expansion inter

lace and opens up the vast world ufS-lOO Bus products to the TRS-80 owner.

For those of you who already own an S-100 mainframe or motherboard, the MINI-8100 may be purchased without the built-in motherboard, (MINI-8100S). Just plug it in and go!

The MINI-8100 has the same high quality as all HUH Electronics products—easy assembly, fully socketed, solder mask and silk screen component legend, comprehensive manual and design excellence thai speaks for itself.

PRICES

MINI-8100 KIT - includes all parts and one S-100 connector - $115

MINI-8100 ASM - assembled and tesled, includes four S-IO0 connectors . $155

MINI-8100S KIT - S-100 sized board, plugs inio mainframe -$ 95

MINI-SUMS ASM - same as above, but assembled and tested - $125

fiUtll

! ELECTRONICS

1429 Maple St. San Mateo, CA 94402 (415) 573-7359

i Radio Shack" prodin

ORDERING INFO: The MINI-8100 is available from leading computet dealers nr factory direct. Please include S4 for shipping and handling. CA residents include firr sales lax. We accepi VISA or Mastercliarge nr we can ship COD.

USA DOMESTIC PRICES ONLY.

DEALER INQUIRIES INVITED

Circle 169 on inquiry card.

Circle 172 On inquiry Card. July 1979 © BYTE Publications Inc 193

Photo Essay: Physical Hardware of a New Computer Backplane

by Carl Helmers

As noted in a recent editorial, I am in the process of designing and building a new computer system based on the 6809 processor. It is my intention, as this design evolves, to provide a fairly complete set of plans in the form of an irregular series of articles in BYTE. The building and developing of the software systems of homebrew computers is, after all, the basis from which personal computing has developed. This series of articles will document the development of an up-to-date design that utilizes contemporary components which were unavailable to me when I first started building crude and imperfect homebrew computers in 1974.

The regularity of this documentation will be dependent upon the time that is available to engineer, build and test the component parts. I will try to provide an update on the progress of the project with each future issue of BYTE. From time to time there will be gaps in the series since, like all people, I have only 24 hours each day in which to work. Having issued this caveat concerning the irregularity of the information, let us turn to the starting point of my documentation; a physical basis for a bus oriented homebrew computer.

The following is documentation of a key part of any homebrew computer; its backplane. At this stage, the computer system is depicted in photographs 1 through 5, which I took while assembling the backplane on a recent evening. For the photographers among our readers, all these pictures were taken with a 35mm single lens reflex (SLR) camera, highly stopped down (f/32, f/22, depending on lens) to emphasize depth of field, and using lots of light (1200 W).

Photo 1: This pile of parts represents the beginning of the project's physical hardware assembly. At left is a set of eight copper rods made from #12 gauge household electrical wire. After stripping the insulation, one end of the wire is clamped in my bench vise, and the other end is clamped in "Vise-Crip" pliers. Five uniform, careful rotations of the wire while holding tension suffice to make the rods as straight as those shown in the photo. This torsion

straightening process gives amazing results. These rods will be the bus wires of the power and ground distribution.

The matrix for assembly of the backplane is one Vector Electronic Co #3719 — 4 "P" pattern prototyping board. This board was chosen as standard for the new computer because it has a 0.1 inch (.254 mm) square grid consistent with integrated circuit sockets, and an identical 0.1 inch spacing for the edge connector sockets. Thus, the same board style that will be used for the assembly of the computer modules can also be used for assembly of this motherboard.

The final part that is going into the physical assembly of the backplane is a set of 6 edge connector sockets for the circuit modules. The sockets have 72 circuit connections in two rows of 36 pins.

1 94 July 1 979 © BYTE Publications Inc

Circle 89 on inquiry card.

Circle 32 on inquiry card.

HOW TO BUY A BUSINESS COMPUTER

WHEN TO BUY • WHEN NOT TO BUY m\ HOW TO CHOOSE CONSULTANTS"DATA GATHERING • PACKAGED VS CUSTOM SOFTWARE •CONTRACTS • FINANCING • WARRANTEES AND MAINTENANCE • INSTALLATION

MANAGEMENT AND MUCH MORE

"SUPER BOOK!" DP Consultant, Mercer Island, Washington. "I wish I'd had this book before I bought my computer!"TV Station General Manager, California.

"It's the best book I've seen on the subject. Send me 5 copies to send to my clients"' CPA, Orange County, California. "I really learned something from this book and I'm in the business. I'm recommending it to my clients." DP Consultant, Alhambra, California.

Here's a straight forward approach to business computer purchase and installation. It will save you time and money. ORDER NOW! If not completely satisfied, return within 30 days for a full and immediate refund.

8Y2 x 11 Softbound ■ 178 pp. ■ $12.95 Credit Card Orders 1-805-964-7448

DDC PUBLICATIONS »>

5386 Hollister Ave., Santa Barbara, CA 93111

Rush copies of "Winning The Computer Game" at $12.95

per copy. (CA residents add 6% sa'es tax)

NAME

ADDRESS

CITY/STATE/ZIP

□ Check Card No

OMasterCharge

□ Visa Exp. Date .

SHOULD it be a Heathkit ?

Whether you are considering the purchase of an additional peripheral or your first computer you should know more about Heath& computer products. Heathkit^ has a continuing commitment to selling well-documented computer kits and software. Are they for you? How can you find out?

Read Buss: The Independent Newsletter of Heath Co. Computers, where information on new products is printed as it leaks out of Benton Harbor, not held back to suit a marketing plan. Buss is not a company-controlled publication, so it can deal with weaknesses of Heathkit^ products as well as their strengths. It features news of compatible hardware and software from other vendors. Every Buss issue has candid accounts of experiences of Heathkit^ owners. Results of their discoveries, which often include hardware modifications, save subscribers headaches—and money. That's proven by two years' experience. So Buss can guarantee a full refund any time you're not satisfied.

Buss is mailed first class (by airmail outside North America). The 2^-issue subscription gives you the choice of starting with the latest issue or with available back issues (about 8 are still in stock). Send $ 8.00 for 12 issues or $ 15.25 for 24 (overseas, $10.00/12; $19.25/24 US funds) to: Buss

325-B Pennsylvania Ave., S.E. Washington, DC 20003

The Independent newsletter of Heath Co. Computers

FREE Catalog

New 4-way relief from problems with minicomputer supplies and accessories.

1. One-stop shopping.

I nmac (formerly known as Minicomputer Accessories Corporation) has a catalog of over800 products. Everything from racks and lineprinter paper to connectors and cables. Each designed to help keep your minicomputer or word processing system up and running.

2. Hassle-free ordering. I nmac lets you order by

mail or phone. So keep our

Summer 79 catalog close. It makes those once-tough tasks like ordering magnetic media easy, fast and foolproof.

3. Fast shipment of just the quantity you need. Inmac ships your order within 36 hours from centers in

California and New Jersey. In a bind? Call us for many special services that insure you get your order to your installation within 24 hours. Call now and give us a chance.

4. Field-proven quality means precision performance. Inmac guarantees every product in these 70 pages for

at least 45 days. And even some for up to ten years.

Inmac

Solve problems, send for your FREE Inmac catalog.

130 S. Wolfe Rd. P.O. Box 9004 Sunnyvale, CA 94086 (408) 737-8700

® 1979 International Minicomputer Accessories Corporation

'TINY' PASCAL for TRS-80®

& NORTH STAR®

Now you too can have Pascal! The Chung/Yuen 'Tiny' Pascal has been specially designed for TRS-80 & North Star owners. The full power & elegance of 'Tiny' Pascal is at your command. Programs written in 'Tiny' Pascal run at least 4 times faster than the same program in BASIC! 'Tiny' Pascal is also a great way to learn Pascal Programming, & fun too.

The minimum system requirements are: Level II, 16K for TRS-80, & 24K for North Star (specify single or double density).

SOURCE TOO!

But most important, you also get source to 'Tiny' Pascal written in Pascal with each purchase! You can even compile the compiler! (Requires 36K for North Star systems, & 32K, Level II for TRS-80). You can customize your own version, or just use it the way it is.

'Tiny' Pascal is a subset of Standard Pascal & includes: RECURSIVE PROCEDURE/FUNCTION, IF-THEN-ELSE, REPEAT/UNTIL, 'PEEK & POKE', WHILE, CASE, & MORE!

(Plus full graphics for TRS-80 as well)

Also you can save & load programs.

You get all this & more, plus a user's manual for S40.00.

available from:

/mm/on

P.O. Box 1628 Champaign, IL 61820 (217) 344-7596

All orders pre-paid, Illinois residents add 5% sales tax

Circle 223 on inquiry card.

Circle 357 on inquiry card.

BYTE July 1979

195

Photo 2: The physical assembly of the backplane begins by noting the fact that a single #12 guage wire will fit quite nicely between a set of four pins on a 0.1 inch grid. Thus, if we insert all the sockets in the backplane board, we can drop one copper bus connection across four corresponding pins of all six sockets. The 12 gauge wire size for the buses is just slightly larger than the 0.06 inch spacing between the wire wrap socket pins of a 0.1 inch grid. This fact causes the pins to spread just a bit, locking the sockets in place prior to soldering. In this photo we show eight bus wires occupying 32 pins of the backplane socket.

Looking ahead to the design of my computer and basing my conclusion on

previous experience, I will need a total of four power supply buses. A standard +5 V is the main power supply, used by most of the digital integrated circuits. Ground is the common point for all power supplies. Two symmetrical supplies of —12 V and +12 V will be used by analog circuits.

Noting that a symmetrical arrangement of the backplane prevents power supply destruction through inadvertent reversal of boards, two sets of four buses are used. As we will see later (photo 4), the innermost buses will become the basis for the ground distribution grid.

With four power voltages occupying a total of 32 pins, the 72 pin sockets of the backplane have 40 uncommitted pins available for communications between boards. This is more than adequate for a good general purpose computer system based on an 8 bit microprocessor, such as the 6809 I will be using with this design.

Photo 3: Assembly begins with the outermost bus, laying it down in its niche in the pin forest of all six sockets. It is then soldered to each set of four pins, as depicted in this photo. I used a120W light-duty solderinggun for this operation, since the extremel y high

heat carrying capacity of the copper wires made my 25 W soldering iron impossible to use.

After each bus wire is soldered in place, the four pins at each socket are clipped off just above the copper wire and solder bead. This process is repeated for each of the eight bus wires assigned to the power voltages of the new computer.

Care must be taken while soldering to avoid forming a bridge between adjacent buses. The last step in soldering a bus wire is incomplete in this photo: the wire is just resting on the four holes in the tab from the backplane's edge connector. When soldering this part, be extremely careful about forming bridges from one bus wire to the next.

1 96 July 1979 © BYTE Publications Inc

Photo 4: The completed backplane assembly includes a set of jumpers bridging the symmetrically arranged power supply voltages. Six bus wire jumpers connect the inner ground buses across the socket area. Three heavy insulated stranded wire jumpers create an aesthetically pleasing, but electrically useless arch form at one end of the board.

The bus wires in this photo of the assembly process have been soldered to the edge connector pins corresponding to power distribution voltages. Not shown at this stage is a set of bypass capacitors installed between the three voltages and ground. On each voltage, six 0.1 iiF ceramic capacitors and one 3.3 jiF tantalum electrolytic were installed for local bypass of the power supply voltages.

Photo 5: No backplane idea is complete without a discussion of the physical support of the boards in the final assembly. Here we show the newly completed backplane together with six boards and a set of 1.375 inch [1% inch] spacers.

Readers wishing to duplicate this board should learn from an imperfection I introduced. If the boards in this picture appear to be a little crooked, rest assured that this is true, and not caused by the wide angle lens. The actual center

to center spacings I finally used (count the holes in photo 4 if you wish) were 1.4, 1.5, 1.7, 1.4, and 1.5 inches! The spacing between backplane sockets should be 1.4 inches, center to center. In my final assembly, I will have to use extra washers as spacers due to this flagrant indiscretion during initial assembly.

Physically, this completes the motherboard and its power supply electrical connections. In part II of this description of the physical assembly of my new computer system we will complete the wiring of the backplane (by using a homebrew adaptation of a Vector "Slit-N-Wrap" tool to my electric eraser), wooden cabinetry which forms a base for the computer while hiding its power supply modules, and the final assembly of the computer system's basic hardware. ■

July 1 979 © BYTE Publications Inc 197

Mouse

A Language for Microcomputers

Peter Grogono 73 Roxton Crescent Montreal West Quebec CANADA H4X 1C7

Note: The examples of the Mouse language which appear in the text of this article have been italicized for the sake of clarity. Examples of the language appearing on lines by themselves have not been italicized, however.

This article describes Mouse, a computer programming language which can be implemented on most microcomputers. The word Mouse is not an acronym, merely an appropriate descriptioa for something small and active.

There are many available languages for microcomputers already, so the introduction of a new language warrants some explanation. The justification for Mouse is that it incorporates many features of high level languages, yet it can be implemented without the resources needed by most high level languages. More specifically, Mouse programs demonstrate the use and implementation of arrays, functions, procedures, nested control structures, local variables, recursion, and several methods of passing parameters from one procedure to another. Mouse also embodies some of the principles of structured programming, in that it uses nested, single entry control structures, and does not allow unrestricted jumps. Nonetheless, Mouse can be implemented on a minimal system consisting of a microprocessor, 4 K bytes of memory, and a terminal.

All of these features cannot be incorporated into a simple language without making some sacrifices. Identifiers in Mouse consist of a single letter, so that a symbol table is not required. Expressions are written in postfix notation, which is more easily interpreted by a computer than the conventional infix notation. Parameters are passed to subroutines as strings, eliminating the need for complex parameter transmission mechanisms. Mouse programs are easier to write than to read, and it is possible to write Mouse programs that are very obscure. Although readability is a highly desirable feature of a programming language, a language cannot be condemned solely on the grounds that obscure programs can result: witness the popularity of APL. The extraor

dinary thing about Mouse is that so much can be achieved with such a small amount of implementation effort.

Mouse is descended from an older programming language called Musys. In 1970 I was working for Electronic Music Studios (London) Limited, the company which now manufactures the SYNTHI series of electronic music equipment. At that time the company, under the direction of Peter Zinovieff, was exploring the possibilities of using minicomputers to control electronic music instruments. The studio had two DEC PDP8 computers, but very little software. My job was to write software which would relieve composers of the tedious chore of entering musical compositions in the form of strings of octal numbers. Since the older PDP-8 was already connected to a variety of digitally controlled oscillators, filters, envelope shapers, and other musical equipment, we decided to use the newer and faster PDP-8 to do the language processing. Space was very limited: the PDP-8 had only 4 K 12 bit words of memory, and a very restricted instruction set by comparison with today's microprocessors.

The system that I designed for the studio enables composers to write their compositions in a high level language called Musys. The heart of Musys is a simple yet powerful macroprocessor. A Musys composition consists of a hierarchy of macroinstructions, in which the higher level macroinstructions determine the overall form of the composition, and the low level macroinstructions specify details such as the pitch and duration of the individual sounds. The Musys interpreter contained about 700 instructions. About 600 additional instructions were required for supporting software, including disk control. The system is described in reference 1. The idea of using a macroprocessor as the basis for a minicomputer

198 July 1979 © BYTE Publications Inc

language occurred to me after I had read a paper by the late Christopher Strachey (reference 2).

The remainder of this article consists of two main sections: the first describes the language Mouse; the second describes the implementation of a Mouse interpreter.

Mouse User's Guide

A Mouse program is a string of characters. Blanks may be inserted anywhere in the program, but they are ignored by the interpreter, except in a few contexts which are defined below. The last two characters of a program are always $$. The interpreter starts executing at the first character of the program and processes one character at a time until it encounters the character $, at which point it stops. This processing sequence is broken only by specific control strings: conditions, loops, macro calls, and formal parameters. These are described below.

When the interpreter encounters the quote character " it prints or displays characters up to, but not including, the next quote character. For example, the program:

"JACQUELINE" $$

will print the message:

JACQUELINE

The quoted string may contain blanks, which are printed, and the exclamation point / that prints a carriage return/line feed. Thus the program:

"FIRST LINEISECOND LINE" $$

will print:

FIRST LINE SECOND LINE

Mouse performs calculations using a stack. An operand pushes a value onto the stack, and an operator removes one or two values from the stack and may replace them with other values. The question mark ? is an operand which tells the interpreter to read a number from the keyboard or input file and push it onto the stack. The operator / removes the top value from the stack and prints it. (Do not confuse the use of / as an operator with its use within quotes.) The following program reads one number from the keyboard and prints it:

? !$$

The stack is a last in, first out data structure. The program:

???!!!$$

reads three numbers and prints them in reverse order. For example, if the input file contained:

45 46 47 then the program would print: 474645

If we wanted them to be printed in the order in which they were read, we would have to write:

?!?!?!$$

This program, using the same data as before, would print:

454647

A decimal integer is another kind of operand. When the interpreter reads an integer, it pushes its value onto the stack. This program prints 365:

365!$$

We can push two numbers onto the stack by writing them one after the other, with a blank in between. This program prints 7 5:

5 7!""!$$

This is the only context in Mouse where a blank character is required; without it, 5 7 would be read as the single number 57. However, we often insert blanks into Mouse programs to improve their readability. Furthermore, Mouse does not print leading or trailing blanks when it prints a number, so we must include a blank string " " between print operators if we want numbers separated in the output. Note also that Mouse does not process floating point numbers: all operands have integer values.

Mouse has 26 variables, the names of which are A, B, C,. . .Z. The name of a variable is an operand, and when the interpreter encounters a variable name, it pushes the address of that variable onto the stack. This program prints the addresses of A and T:

A! T!$$

The operator . (period) replaces an address on the stack by the value stored at that

Peter Grogono's first computer experience consisted of feeding a short piece of paper into EDS AC II at Cambridge University, He joined a group conducting research into automatic pattern recognition in 1965, and has spent the ensuing 73 years writing computer programs of various kinds in England, Australia, and Canada. The programs include a package for highway design, an operating system for an electronic music studio, and an accounting system for travel agencies. Peter is currently working for the Computer Centre of Concordia University, and his interests are programming language design and text processing.

July 1 979 © BYTE Publications Inc 199

B USINESS SOF TWA RE

• INTEGRATED FINANCIAL PROGRAMS

All programs integrate by posting financial data to the general ledger journals. They are self-guided and easy to use. You don't have to be a CPA!

■ GENERAL LEDGER

■ ACCOUNTS RECEIVABLE

■ ACCOUNTS PAYABLE

■ INVENTORY CONTROL

■ PAYROLL

$500 Each Program $8 Manual Only

• COMPLETE LEGAL BILLING SYSTEM with ACCOUNTS RECEIVABLE

A powerful and flexible system that will produce clients statements with a wide choice of layouts and billing options.

$1,995 Complete System $12 Manual Only

• MIDAS™ Mini DAtabase System

Design your own file layouts and change them easily with MIDAS. Complete update, query, tally, sort, report, and reformat capabilities. $250 Complete System $8 Manual Only

f Over 100 Systems in the field now! t Immediate delivery on all programs, f Requirements: CBASIC, dual disk,

and 48K memory *CP/M is a trademark of Digital Research

VISA AND MASTERCHARGE ACCEPTED

Rothenberg Information Systems, Inc.

260 Sheridan Avenue Palo Alto, CA 94306 Telephone: (415) 324-8850

address. If we want to print the value of A we write A. !.

The assignment operator is =. An assignment is performed in three steps:

• An address is pushed onto the stack;

• A value is pushed onto the stack;

• The assignment operator is applied.

Thus in order to give the value 17 to X we write:

XI7=

This statement has the effect that X := 17 would have in a Pascal program. Similarly, we write XY.= to assign the value of Y to X in Mouse. The most common programming error in Mouse is to forget the period; no error will be reported, but the calculation will use the address rather than the value of a variable, and the result will probably be wrong.

The arithmetic operators in Mouse are +, —, *, and /, denoting addition, subtraction, multiplication, and division, respectively. Because operands in Mouse have integer values, / means divide and truncate. A Mouse operator is always written after its operands. The resulting notation is called postfix notation or reversed Polish notation, in contrast to the conventional algebraic notation which is called infix notation. Postfix notation may be confusing at first, but it does have some advantages. The infix expression A+B is written in Mouse as A.B.+; the periods signify that we are adding values, not addresses. One of the advantages of postfix notation is that parentheses or brackets are not required. The infix expression A+B*C, in which the multiplication is performed before the addition, is written A.B.C.*+ in Mouse. The infix expression (A+B)*C, in which the parentheses indicate that the addition is to be performed first, is written A.B.+C. *.

It is not hard to translate expressions into postfix notation if you remember these two rules:

• Operands appear in the same order in both expressions;

• Operators are written as soon as both operands have been written in full.

As an example, consider the conversion to postfix form of the infix expression (A+B)/ (C-D). First write down the operands in sequence:

A. B. C. D.

200 July 1 979 © BYTE Publications Inc

Circle 327 on inquiry card.

The addition is performed after B., and the subtraction after D.. The division cannot be performed until both its operands have been computed, so the complete expression in postfix notation is:

A.B.+ C.D.-/

The arithmetic operators always have two operands in Mouse. The infix expression —X means 0-X, and it must be written in the form OX.-.

The top value in the stack may be used as an anonymous variable. In fact, we have already used the stack in this way, in the program ? ! $$. Here is a more subtle use of this feature:

A A5= . A6= ! $$ These five steps have the following effect:

• A puts the address of A on the stack;

• A 5= assigns the value 5 to A (this uses the stack, but leaves it unchanged);

• . converts the address of A to the value of A, which is 5;

• A6= changes the value of A to 6;

• / prints the value, 5, from the stack.

Care must be taken, of course. If you are writing programs in this fashion, you must at all times know what is supposed to be in the stack. The following example uses the stack to interchange the values of two variables, X and Y. In most languages this interchange can only be done with a temporary variable. For example, in Pascal we would write:

T :=X;X :=Y;Y :=T

In Mouse we can write:

X Y.YX. = =

The addresses of A, B, C,.. .Z are 1,2,3, . . .26. This means that B, for instance, can be regarded as either a variable in its own right, or as the second element of the array A. The address of B can be written as either B or AJ+, and its value as B. or AJ+. .A general element of the array A, written A[l] in Pascal, can be written as AI.+. in Mouse, for 0 < I < 25. Any letter can be used in this way: thus K5+ is equivalent to P, and Z3-. is equivalent to W. . You must be careful not to use the same address for two different purposes. If you decide to use A as an array with ten components, you cannot use the variables B, C,. . .J in the

SUPER SOFTWARE!

MICROWARE 6800 SOFTWARE IS INNOVATION AND PERFORMANCE

INEW1 LISP Interpreter

The programming language LISP offers exciting new possibilities for microcomputer applications. A highly interactive interpreter that uses list-type data structures which are simultaneously data and executable instructions. LISP features an unusual structured, recursive functionoriented syntax. Widely used for processing, artificial intelligence, education, simulation and computer-aided design. 6800 LISP requires a minimum of 12K RAM. Price $75.00

A/BASIC Compiler

The ever-growing A/BASIC family is threatening old-fashioned assembly language programming in a big way. This BASIC compiler generates pure, fast, efficient 6800 machine language'from easy to write BASIC source programs. Uses ultra-fast integer math, extended string functions, boolean operators and real-time operations. Output is ROMable and RUNS WITHOUT ANY RUN-TIME PACKAGE. Disk versions have disk I/O statements and require 12K memory and host DOS. Cassette version runs in 8K and requires RT/68 operating system. Price: Disk Extended Version 2.1 $150.00 Cassette Version 1.0 $65.00

I NEW I A/BASIC Source Generator

An "add-on" option for A/BASIC Compiler disk versions that adds an extra third pass which generates a full assembly-language output listing AND assembly language source file. Uses original BASIC names and inserts BASIC source lines as comments. SSB and SWTPC Miniflex version available. Price: $50.00

rNEWl A/BASIC Interpreter

Here it is—a super-fast A/BASIC interpreter that is source-compatible with our A/BASIC compiler! Now you can interactively edit, execute and debug A/BASIC programs with the ease of an interpreter—then compile to super efficient machine language. Also a superb standalone applications and control-oriented interpreter. Requires 8K RAM. The cassette version is perfect for Motorola D2 Kits. Price: $75.00

RT/68 Real Time Operating System

MIKBUG—compatible ROM that combines an improved monitor/ debugger with a powerful multitasking real-time operating system. Supports up to 16 concurrent tasks at 8 priority levels plus real time clock and interrupt control. Thousands in use since 1976 handling all types of applications. Available on 6830 (MIKBUG-type) or 2708 (EPROM-type) ROM. Manual is a classic on 6800 real-time applications and contains a full source program listing. Price: RT68MX (6830) $55.00 RT68MXP (2708) $55.00

6800 CHESS

A challenging chess program for the 6800. Two selectable difficulty levels. Displays formatted chess board on standard terminals. Requires 8K memory. Machine language with A/BASIC source listing. Price: $50.00

ELIZA

6800 version of the famous MIT artificial intelligence program. The computer assumes the role of a psychoanalyst and you are the patient. This unusual program is unique because the dialog with the computer is in unstructured plain English. An impressive demonstration program. Price: $30.00

Our software is available for most popular 6800 systems on cassette or diskette unless otherwise noted. Disk versions available on S.S.B., SWTPC, or Motorola MDOS. Please specify which you require. Phone orders are welcomed. We accept MASTERCHARGE and VISA. We try to ship orders within 24 hours of receipt. Please call or write if you require additional information or our free catalog. Microware software is available for OEM and custom applications.

MICROWARE

SYSTEMS CORPORATION

P.O. BOX 4865

DES MOINES, IA 50304

(515) 265-6121

Circle 232 on inquiry card.

July 1979 © BYTE Publications Inc 201

Write faster in BASIC, FORTRAN, or COBOL

Document & modify more easily, too

Human-engineered to do the job better. Yes, you really can get flawless code faster using the Stirling/Bekdorf™ system of software development tools with structured programming concepts. The 78F2,78P4, and 78C1 are human-engineered to reduce initial errors, improve de-bugging speed, and aid concept communication.

First, use the 78F2 Flowchartrix™to lay out your original concept blocks. Then use it to write a finely detailed flowchart.

54% more logic cells than other flowchart forms, put far more of your program on each page Each Flowcharts has a full 77 logic cells, not just 50. This saves paper, and makes your finished flowcharts easier to understand. By seeing up to 27 extra steps of a program on each page, you comprehend program flow more clearly. You save money and storage space, too.

Every matrix cell in the 7 x 11 matrix has a specific label to help you track branch points. When you write program documentation, having a separate reference point for each cell makes your program much easier to describe clearly.

With Flowchartrix, you don't need a shape template to draw remarkably regular logic symbols. Guides for the most-used logic symbols are right in each matrix cell, to help you draw most standard flowchart symbols entirely free-hand.

78P4 Print-Out Designers are next. When you finish flowcharting, lay out the printed reports your program will generate. Then when you write code you blaze through the report generation segments right along with the rest of your program.

Unique 70 x 160 matrix accommodates even proportional-spacing word processor formats. The 160-column width can handle practically any printer format. The 78P4 is big, 14% x 22 inches, because we've scaled the cell size to human writing comfort, not machine print, giving nearly twice the character-writing area of other printout design sheets.

Special 5-column area records the program line number of the code which creates each printed line. It shows, at a glance, exactly which line of code creates each line of your report, saving hours of needless search time when you must change the report format (and don't you always have to, sooner or later1',

Every sheet of 78C1 gives you 2 form uses for the price of one. Use 78Cl s full 28 line x 80 column grid area to code regular program steps. Then for interactive or instructional sections, simply keep your characters within the appropriate CRT indicator lines, and you'll automatically know where every character will show on your CRT screen.

28 line x 80 column coding capacity saves you 14 sheets out of every 100,

compared to 24-line forms. 86 sheets hold more program steps than 100 sheets of any 24-line form, yet we offer full-size 6mm x 3mm grid blocks to give you comfortable writing room and visual space between lines.

Works with your CRT display, no matter what brand you own. Equipped for both 16 line x 64 column and 24 line x 80 column display formats.

Available in three versions (one for BASIC languages, one for FORTRAN, another for COBOL), the 78C1 is so powerful we include a 7-page instruction manual with every order.

Every tool in the Stirling/Bekdorf system is surface-engineered to take both pen & pencil without blotching. Our tough, extra-heavy, 22* paper is pure enough to use with critical magnetic ink character readers, and gives you crisp, sharp characters with pencil or plastic-tip pen.

Every part of our system uses eye-comfortable soft blue grids. All grid rulings, tints, and division rules are reproduced in a special shade of blue, easy on your eyes even after hours of continuous programming. If you're a professional programmer, you'll particularly appreciate our improvement over the green lines you've been writing on.

A 3-ring binder is one more of our secrets for your success. All your notes, logic, concepts, flowcharts, code, CRT layouts, print-out designs, and documentation can be kept together, in order, in one place. When everything you create stays together, debugging and modification is much simpler.

Order your supply of the world's most advanced software development tools, right now, before you hatch even one more bug. I

78F2 riowchartrii

□ 2 pads ol 50= $7:90 +- $2.85 pkng & shpg

□ 10 pads ol 50 - S3).35 + !6 45 pkng S shpg

7&H Print-Out Design Sheets

□ 1 pad 0150- $7)5 + $3 15 pkng S shpg D 5 pads ol 50 = $32 10 $6 75 pkng & shpg

3 hole punched vinyl pockets for 78P4 Design Sheets

□ set ot 5 lot $2.65 + $1.35 pkng & shpg

□ setol 12 loi $5 00 « $1 85 pkngJ shpg

78C1 Combination Coding/CRT Layouts

All are the same price, but please check which language format you want'

□ loi BASIC □ for FORTRAN □ lor COBOL

□ 2 pads ol 50 - $6 35 t $1 95 pkng I shpg

□ 10 pads ol 50 - $26 85 * $3 35 pkng * shpg

leias ,esidenis please add S S", sales la, ro Pase pure We ship UPS so P C 8oi address must gne phpne number Prices shoein tpi packing £ shipping aie U S A only International shipping nates aie higher mile lot details

□ Sample of one sheet ol each lorm + Charge to: □ Master Charge □ Visa exp. date —

-'--■sg, literature $2.50 Card }

Signature

Enclosed Is my check for $_

Name

Address

City

. Phone_

. State..

. Zip_

IS.

Stirling/Bekdorf

4407 Parkwood □ San Antonio, TX 78218 □ (512) 824-5643

7 © 1978 Sliflint-Uelfto'l Di. ol glickmin Ukt[ Gp.. Int.

same program, these points:

The following illustrates

A7= BA.= A.! B.! A1 + .! $$

A7= assigns the value 7 to A, and BA.= copies the same value to B. This value is then printed three times: A.! prints the value of A; B.l prints the value of B; and Al+.l prints the value of A[1].

Before we pass on to a discussion of the control structures of Mouse, we need one more concept: clause. A clause is a string which contains quoted strings and expressions, which have been defined above; and complete control structures, which are defined below.

Control Structures

A condition in Mouse is written E[C]; E is an expression, and C is a clause. The condition itself is a clause. E is evaluated, and if its value is greater than zero, C is executed. If E is zero or negative, C is skipped. The Pascal statement:

if X > O then Y := X

becomes in Mouse:

X.[YX.=]

Since Mouse distinguishes only E > 0 and E < O, more complicated expressions must be devised for different conditions. For example, X > O is equivalent to X+1 > O, and so the Pascal statement:

if X > O then C

becomes in Mouse:

X.1+[C]

Similarly, X = O is equivalent to (1+X > O) and (1-X > O), and so Pascal:

if X = O then C

becomes in Mouse:

1X.+[1X.- [C]]

Now, reconsider the definition of clause. A complete condition E[C] is both a clause itself, and contains a clause, C. Suppose C is itself a condition, F[D]. If we replace C by F[D] in the clause E[C], we obtain the clause £[F[D]]. This demonstrates that the nested condition 1X.+[1X.-[C]] of the last example is a legitimate Mouse construction.

202 July 1979 © BYTE Publications Inc

Circle 352 on inquiry card.

A loop in Mouse is written:

(q Etc2)

where E is an expression and C1 and C2 are clauses. This loop is a clause; it may be paraphrased as follows:

START:

EXIT:

if E < 0 goto EXIT

C2

goto START

In other words, the loop is executed for as long as E > 0, and the exit test may appear anywhere within the loop. Either or C2 may be omitted. (E\ C2) is equivalent to Pascal:

while E > 0 do C2

and (Ci ft/1 is equivalent to Pascal:

repeat C] until E < 0

There may be more than one exit test in a loop. For example, (Cj Et C2 Ft C3), in which E and F are expressions, is allowed.

We now consider some simple Mouse programs which use these control structures. The following program reads a number N, and prints its factorial, 1 *2*3*.. *N:

N?= F1= ( N.t FF.N.*= NN.1-= ) F.i $$

We can shorten the factorial program by using the top of the stack instead of the variable F. The program then becomes:

N?= 1 ( N.t N* NN.1-= ) ! $$

In this version, 7 puts the value one on the stack; N.* multiplies the value on top of the stack by N; and / removes the value from the top of the stack and prints it. We can expand this program so that it continues to ask for data until it reads a number which is less than or equal to zero. Note the nested loop:

( "ENTER A NUMBER" M?= M.t

NM.= 1 ( N.t N * NN.1— ) "FACTORIAL ( " M.! ") = " ! "!" )

$$

Here is a dialogue produced by this program:

ENTER A NUMBER 3 FACTORIAL (3) = 6 ENTER A NUMBER 7 FACTORIAL (7) = 5040 ENTER A NUMBER 0

( ANNOUNCING

New from DEC

LA34 DECwriter IV

SU99J

00

110 or 300 baud, RS 232C serial • Upper/lower case, 9 x 7 dot matrix

ASCII . 10,12,13.2,16.5 characters/inch

Friction feed, paper width to 15" • 2, 3, 4, 6, 8, or 12 lines/inch

• 22"Wx7"Hx 15M."D, 25 lbs.

New from DIABLO

DIABL01640 $2(690.00 Receive-only $2,331.°°

High-quality daisywheel printing at 45 cps.

DIABLO 1650 5 2,779.°° Receive-only $2,419.°°

Metal daisywheel printing at 40 cps.

soroc iq 120 $795.°°

• RS 232C, upper/lower case full ASCII

• Numeric keypad, protected fields

• Cursor keys plus addressable cursor

• Auxiliary extension port

Teletype 43 s 999.00

• RS 232C, 110 or 300 baud

• Upper/lower case full ASCII

• Pin feed, 12" x 8Vz" paper

T.I. 810 printer $1,695.°°

• 150 characters per second

• RS 232C serial interface

• Adjustable forms tractor

• Upper/lower case option $90.00

SOROC IQ 140 $1,250.°°

• RS 232C and 20mA current loop

• Extensive editing features

• 25th line terminal status display

• 16 function keys (32 with shift)

To Order: Send certified check (personal or company checks require two weeks to clear) including handling* and 6% sales tax if delivered within California.

"Handling: Less than $2,000, add 2%; over $2,000, add 1%. Everything shipped freight collect in factory cartons with manufacturer's warranty.

[

cMJCRaiYlflJL.,

MICROMAIL • BOX 3297 • SANTA ANA, CA 92703 (714) 731-4338

Circle 222 on inquiry card.

July 1 979 © BYTE Publications Inc 203

The program which follows reads numbers into an array and then prints them in reverse order. A is used as an array index, and B is the array. The input is terminated by a negative number.

A0=

( BA.+.?= BA.+.l+t AA.1+= ) ( A.t AA.1-= BA.+.! )

$$

We can improve this program so that it will read no more than 25 numbers, the maximum capacity of the array B. Note the use of two exit conditions in the first loop:

A0=

( BA.+.?= BA.+ .l+t AA.1+= A.25- [ "ARRAY FULL!"0t ] ) ( A.t AA.1-= BA.+.! ) $$

Macroinstructions

A complex algorithm always has a hierarchical structure, and a programming language must provide the means of defining and calling procedures and functions so that programs which have an analogous hierarchical structure can be written. In Mouse, procedures and functions are implemented by macroinstructions. A macroinstruction call is written like this:

#M;

This is a call to macroinstruction M. There must not be a blank between # and the macro name. In this example there are no actual parameters. When there are actual parameters, they follow the macro name and are preceded by commas. The following is a call to macroinstruction M with parameters X and Y:

#M,X,Y;

A macro name is a single letter, so a program may use up to 26 different macroinstructions.

Macro definitions come between the main program and the terminating $$. A macro definition starts with the character $ and the name of the macroinstruction, and is terminated by the character @. There must not be any blanks between $ and the name of the macroinstruction being defined. The definition must be a clause, and definitions cannot be nested. The following program uses a macroinstruction, M, to print a message:

#M;

$M "A MESSAGE" @ $$

Note that the main program code is terminated by $, which introduces the first macro definition. As usual, the entire program is terminated by $$. When the interpreter encounters #M; in the program, it substitutes the definition of the macroinstruction, excluding $M or @. Thus when the program above is interpreted, it prints:

A MESSAGE

Each macroinstruction has its own complete set of local variables, A, B, C,. . .Z. Assignments to these variables do not affect the values of main program variables. The program which follows will print the number 3, despite the assignment to N in macroinstruction X:

N3=#X;N.I $X N99=@ $$

A macro definition may have up to 26 formal parameters, written %A, %B, %C, . . .%Z, with no blank between % and the letter. When a formal parameter is encountered in a definition, the actual parameter is

GenRad needs Trolls! What are Trolls?

Trolls are a rare breed of engineer, who can work in software as well as hardware. At GenRad we design and build Automatic PC-Board Testers for electronic manufacturing. Our support engineers like to eat a chip data sheet for breakfast, breadboard the chip for lunch and debug its software models at dinner. GenRad trolls are good; as a m atte r of fact, we th i n k they' re the best!

They help guide ourcustomersthrough the sometimes bewildering land of testing. If you think that you would enjoy this challenging mix of hardware, software and human contact, set up a meeting with our troll leader by contacting Pat Perillo, GenRad, Inc., 300 Baker Avenue, Concord, MA 01742. Or call Pat (collect) at (617)369-4400, ext. 332.

An equal opportunity employer M/F

GenRad

204 July 1 979 © BYTE Publications Inc

Circle 137 on inquiry card.

substituted as a string. Macroinstruction P in the following program prints the value of its parameter:

#P,3;A5=#P,A.;#P,A; $P%A! @

$$

The call #P,3; is equivalent to 31, and prints 3. The call #P,A.; is equivalent to A.! and prints the value of A, which is 5. These are known as calls by value, be ause the macroinstruction can obtain only the value of the parameter. The final call, #P,A;, is equivalent to A!, and prints the address of A. It is known as a call by reference, because the parameter is an address. Calls by reference can be used to return values to the calling program. Macroinstruction A in the following program adds the values of its first two parameters, and returns the result as the third parameter:

#A,2,3,X; #A,3,4,Y; #A,X.,Y.,Z;

$A %C %A %B + = @

$$

This program adds 2 and 3, giving X, then adds 3 and 4, giving Y, then adds X and Y, giving Z. Note that the actual parameters in the last call are the values X. and Y. and the address Z.

You must know, when writing a macro call, whether the macroinstruction expects a value or an address. The device mentioned before for exchanging two values can be incorporated into a macroinstruction:

$E%A%B.%B%A. = = @

In this case, both actual parameters must be addresses. To use this macroinstruction to interchange the values of X and Y write:

#E,X,Y;

An array can be passed to a macroinstruction by the address of its first component. The following macroinstruction sums %B components of the array %A, and returns the result as %C:

$S %C0= N0=

( %BN.-t %C%AN.+.%C.+= NN.1+= )

@

The call #S,A,3,Z; would store the value of A+B+C in Z.

A macroinstruction which leaves a value on the stack acts as a function. We can rewrite macroinstruction A, which was defined above, as a function:

$A %A%B+ @

The call #A,2,3; is now an operand which leaves the value 5 on the stack. This macroinstruction evaluates the factorial function:

$FN%A=1 (N.tN.*NN.1-)@.

The clause #F,5; #F,6; + ! prints 840 (=5!+6!).

A macro definition may include macro calls. Moreover, a macroinstruction may call itself, either directly or indirectly, so that it is possible to define recursive macroinstructions. The factorial function can be defined recursively in this way:

$F%A [%A #F,%A1-;* ] 1%A-[1 ]

@

The character @ acts like a RETURN statement in BASIC or FORTRAN, and we can use it more than once in a macro definition. Here is a slightly shorter version of the recursive factorial macro that exploits this fact:

$F %A [ %A #F,%A1-; * @ ] 1 @

PRICE: $129.00 We also carry the SYM-1 Microcomputer with manuals $269.00

VAK-1 MOTHERBOARD

• Designed specifically for use with the AIM-65, SYM-1, and KIM-1 microcomputers

• Standard KIM-4* Bus

• Fully buffered Address and Data Bus

• Provides 8 expansion board slots

• Complete with rigid card-cage

• All IC's are socketed

• Provides separate jacks for one audio-cassette, TTY, and Power

• Completely assembled (except for card-cage)

We manufacture a complete line of high quality expansion boards. Use reader service card to be added to our mailing list, or U.S. residents send $1.00 (International send $3.00 U.S.) for airmail delivery of our complete catalog. 'Product of MOS Technology

ENTERPRISES

INCORPORATED 2967 W. Fairmount Avenue • Phoenix, AZ 85017 • (602) 265-7564

Circle 325 on inquiry card.

July 1979 © BYTE Publications Inc 205

This definition may be paraphrased in ALGOL:

F(N) := if N>0

then N * F(N-l) else 1

If %A>0, the conditional clause is executed, and the macroinstruction is terminated by the @ between the brackets. If %A < 0, the value 7 is placed on the stack and the macroinstruction is terminated by the final @.

If there is no actual parameter corresponding to a formal parameter, the formal parameter is processed as a null string. Actual parameters for which there are no formal parameters are ignored. A call to an undefined macroinstruction is also processed as a null string. These points are illustrated by the following program:

#T; #T, "A"; #T, "A", "B"; #T, "A", "B", "C";#U;

$T"<"%A%B ">!"@ $$

This program prints:

<> <A> <AB> <AB>

In the first call, #7";, there are no actual parameters. In the second call, #T,"A";, there is one actual parameter, "A", which is printed. In the third call, both parameters are printed. In the fourth call, there are three actual parameters, of which the

"SQUARE AND TRIANGULAR NUMBERS" ( "ENTER A NUMBER" N? = N . t

"S(" N .! ") = " #S,N.; ! " T(" N. I ") = " #T,N.; ! "I" )

$S %A1 - [ #T,%A; #T,%A1 -; + <§>] 1 @

$T %A1 - [ #S,%A1 3%A*1 - + 2/ @ ] 1 @

$$

Listing 7: This Mouse program reads an integer and prints the corresponding square number Sn and triangular number Tn. It uses two mutually recursive macroinstructions S and T.

"PRIME NUMBERS!" N1 = ( NN.1 + = #P,N.; ) $p F1= N1 =

( FF . 1 + = %AF . -1 %AF . /F . * %A -1 + [ NO = Ot ] ) N. [ %A! *'!" ] @

$$

Listing 2: This program prints a list of prime numbers. Macroinstruction P determines whether its parameter N is a prime number and, if it is, prints it.

third, "C", is ignored because there is no formal parameter %C. The last call is to an undefined macroinstruction U, and has no effect.

Now that all of the control structures of Mouse have been described, we can define clause more precisely. A clause may be: an expression, a literal string, a condition, a loop, a macro call, or a clause followed by another clause. Actual parameters and macro definitions must be clauses. These rules are not precise enough to formally define the syntax of Mouse, but they serve as a guide for the Mouse programmer. Their principal purpose is to ensure that all of the components of a control structure are on the same level. They forbid, for example, the use of ( or [ without the matching ) or ] at the same level in a condition, loop, macro definition or actual parameter.

Example Programs

We conclude this section of the article with some sample Mouse programs. The first program illustrates mutual recursion. Two macroinstructions are said to be mutually recursive if each one calls the other. The square numbers Sn (1, 4, 9, 16,. . .) and the triangular numbers Tn (1, 3, 6, 10,. . .) can be defined in terms of each other in the following way:

St =1

Sn=Tn+Tn_1 forn>1 Ti=1

Tn = {Sn_^ +3n-1)/2forn>1

The program, which appears in listing 1, uses mutually recursive macroinstructions S and T to compute Sn and Tn.

The second program, which appears in listing 2, prints prime numbers. It loops indefinitely, calling macroinstruction P for each integer N in turn. Macroinstruction P prints N, if N is prime. The expression %AF./F.*%A-I+ is equivalent to 1 - %A mod F.; it is positive only if F divides %A exactly. The program will fail when incrementing N causes overflow, but the algorithm is so inefficient that there is little danger of this happening.

The third program, shown in listing 3, uses recursive macroinstruction V to print the words of a song. The British and American versions of this song are different, and I am not sure that the words printed by the program are a correct statement of either version. The limit of nine verses is a restriction imposed by the interpreter described in this article, not an inherent limitation of Mouse.

206 July 1 979 © BYTE Publications Inc

Circle 131 on inquiry card.

Circle 91 on inquiry card.

The experienced 2114 4K static RAM

■0.

X

I.I

From EMM — the industry's largest supplier of 4K static RAMs — a 2114 with a year and a half of delivery behind it. Not a new part. Just a new pin-out of a proven part. 1K x 4 organization. 5V only. Standard 18-pin DIP. It draws only 300 mw, has all the speed you need for microprocessor applications.

SEMI,INC.

A division of Electronic Memories & Magnetics Corporation 3883 North 28th Avenue, Phoenix, Arizona 85017 (602)263-0202

NO FRILLS! NO GIMMICKS! JUST GREAT

DISCOUNTS

MAIL ORDER ONLY

HAZELTINE

1400 $ 679.00

1500 995.00

Mod 1 1495.00

CENTRONICS

779-1 954.00

779-2 1051.00

700-2 1350.00

761 KSR tractor 1595.00

703 tractor 2195.00

NORTHSTAR Horizon I assembled. . 1629.00

kit 1339.00

Horizon II assembled.. 1999.00

kit 1599.00

Disk System 589.00

TELETYPE

Mod 43 995.00

IMS

16K Static Memory.. . 459.95

DIGITAL SYSTEMS

Computer $4345.00

Double Density

Dual Drive 2433.00

IMSAI

VDP 80/1000 $5895.00

VDP40 3795.00

VDP42 3895.00

VDP44 4195.00

16K Memory assem... 399.00 PCS 80/15 679.00

15% off on all other Imsai products

CROMEMCO

System III $1000 ott .. 4990.00

10% ofl on all other Cromemco products

TEXAS INSTRUMENTS

810 Printer 1595.00

CENTRONICS

Microprinter 495.00

Most items in stock for immediate delivery. Factory-fresh, sealed cartons.

DATA DISCOUNT CENTER p.o. box 100

135-53 Northern Blvd., Flushing, New York 11354,212/465-6609

N.Y.S. residents add appropriate Sales Tax. Shipping FOB N.Y. I BankAmericard, Master Charge add 3%. COD orders require 25% deposit.

from Computer Headware ... the Self-Indexing Query System

for your Apple II, North Star, or CP/M machine

Unlimited/219-924 3522 P.O. Box 8372. Merrillville. Indiana 46410

■ Lifeboat Associates /212-580 0082 (CP/M model only) 2248 Broadway, Suite 34, New York City 10024

• Structured Systems Group, Inc. / 415-547-1567 5208 Claremont Avenue, Oakland, California 94618

BYTE July 1979 207

The program which appears in listing 4 prints the moves required to solve the Towers of Hanoi problem for a given number of disks. It uses recursion, and demonstrates the use of strings as actual parameters.

( "HOW MANY VERSES?"

S?= S.l 10S. - [ #V,S. 1 +; ] )

$V %A1 - [ #N,%A; #B; #W; ",!"

#N,%A; #B; ";!" #F; ",!" #N,%A1 -; #B; #W; ".II" #V,%A1 -; I @

$B " GREEN BOTTLES" @

SW "STANDING ON THE WALL" @

$F "IF ONE OF THOSE BOTTLES SHOULD HAPPEN TO FALL" @

$N %A9

[ "NINE"

@

1

%A8

[ "EIGHT"

@

]

%A7

["SEVEN"

@

]

%A6

[ "SIX"

@

I

%A5

[ "FIVE"

@

I

%A4

["FOUR"

@

]

%A3

["THREE"

@

1

%A2

[ "TWO"

@

]

%A1

I"ONE"

@

1

%A

I "NO"

@

1

$$

Listing 3: Macroinstruction V calls macroinstructions B, W, F, and N to print one verse of a song, and then calls itself recursively to print the next verse. The number of verses is limited to nine, but the interpreter is quite easily modified to enable the program to print more verses.

"TOWERS OF HANOIIHOW MANY DISKS?" D? = D. I #H,D .,"LEFT","RIGHT","CENTER"; ]

$H %A [ #H,%A1 - ,%B,%D,%C;

"MOVE " %B " TO " %C "I" #H,%A1 -,%D,%C,%B; ]@

$$

Listing 4: The famous Towers of Hanoi problem. The program prints a list of the moves required to solve the problem for a specified number of rings.

"BUBBLE SORT!" #P,A;

$P "HOW MANY NUMBERS?" N? = N . 26 - [ "TOO MANY!" <S> ] "ENTER " N .! " NUMBERS!" NN . 1 - = #F,M,0,N.,%AM. +?=;

"INPUT ARRAY!" #F,M,0,N ., %AM .+.!""; "!" #B,%A,0,N.;

"SORTED ARRAY!" #F,M,0,N ., %AM . + . I " "; "I" @

$B #F,I,%B1 + ,%C, #F,J,%C,I.,

%AJ . 1 - + . %AJ . + .

[ #E,%AJ . +,%AJ . 1 -+;];; <S>

$F %A%B= %C%A. -1 +

[ ( %C%A. -1 +1 %D %A%A. 1 + = ) <S>] ( %A.%C-1+1 %D %A%A. 1 - = ) @

$E %A %B. %B %A. = = @

$$

Listing 5: This is the most elaborate Mouse program presented in this article. The main program contains one macro call (#P,A;) only, and so all 26 variables at the lowest level can be used to store an array. The program sorts the array using the bubble sort algorithm, and then prints it.

The last program, shown in listing 5, is the most elaborate. It reads an array, prints it, sorts it into ascending sequence, and prints the sorted array. The main program prints the title and then calls macroinstruction P to do everything else. The address of A is given to P, and since no variables are used in the main program, all 26 components of array A can be used to store the input data. Thus, the program can sort up to 26 numbers. The program makes extensive use of macroinstruction F, which simulates a for statement. The effect of a call to F is:

for %A := %B to %C do %D

If %B > %C then the index variable %A will be decremented rather than incremented. Macroinstruction E is the exchange macroinstruction introduced earlier. Macroinstruction B does the actual sorting in two nested loops, using the bubble sort algorithm.

Implementation

The Mouse interpreter is presented in listing 6 in the form of a Pascal program. It is not intended, however, that Mouse should be implemented by that program. Listing 6 is intended to be a machine independent guide to the implementation of Mouse in assembly or machine language. Accordingly, the explanation which follows contains hints as to how the Pascal statements can be translated into machine language. Numbers in parentheses refer to line numbers in listing 6. Some explanation of the meaning of the Pascal statements is given here. (If you need more, consult either Jensen and Wirth (reference 3) or my book (reference 4)).

The program starts with a heading (1). This line merely states that the program is called Mouse and that it uses two files, INPUT and OUTPUT. Lines 12 thru 18 declare the global variables of the program. Global variables can be used anywhere in a Pascal program, even in subroutines. The first five declarations (12 thru 16) define arrays. PROG is an array of 500 characters used to store the text of the Mouse program. The components of PROG are written PROG[1], PROG[2]. . .PROG[500]. DEFINITIONS is an array of 26 integers. Each nonzero component of DEFINITIONS forms an index for the start of a macro definition in the array PROG. The array CALSTACK is the stack used for calculations. The array STACK is the main stack, used to store the status of the program during the expansion of a macro call, a formal parameter, or a loop. Each component of STACK is a variable of type

208 July 1979 © BYTE Publications Inc.

FRAMETYPE. This type is defined in lines 5 thru 9. A FRAMETYPE variable has three components: TAG, POS, and OFF. A TAG has one of three values: MACRO, PARAM, or LOOP; these values can be coded as 0, 1, 2, or -1, 0, +1. POS and OFF are both integers. The most convenient way to represent STACK is as a block of 20 units, each unit having three words. Within a unit, the word required is addressed by its offset: 0 for TAG, 1 for POS, and 2 for OFF. For example, the address STACK [NJ.OFF (the address of component OFF of the Nth unit) is STACK+3*(N-1)+2. Finally, the array DATA is used to store the values of both local and global variables of the Mouse program. The sizes of the arrays are adequate for simple Mouse programs, including all programs in this article. The choice of array sizes is discussed below in greater detail.

Lines 17 and 18 declare global scalar variables. CAL is a pointer to CALSTACK; it is an index for the next free stack word. LEVEL performs the same function for STACK, the main stack. CHPOS is a pointer to the array PROG; it indexes the character currently being processed. The current character itself is stored in CH. Assuming that a single byte is used to store a character, and two bytes are used to store an integer, global data for the interpreter occupies 1248 bytes of memory.

Lines 20 thru 84 define the subroutines used by the interpreter. The function NUM (20 thru 23) maps letters into integers. The Pascal function ORD means simply ordinal value of. The ordinal value of a character is its ASCII (or other) code. For example, if the code for A is 65, then ORD('A') = 65. Thus, NUM('A') = 1, NUM('B') =2, and so on. The interpreter assumes that the letters have consecutive codes, and hence that NUM('Z') = 26. The function VAL performs a similar task for digits. VAL('O') = 0, VAL ('1') = 1, and so on. In machine language, these functions can be implemented by a single instruction which subtracts the appropriate constant from the character value. The procedure GETCHAR (30 thru 33) increments the character pointer CHPOS and sets CH to the next character in the array PROG. The Mouse program is accessed by means of this procedure only.

PUSHCAL (35 thru 38) and POPCAL (40 thru 43) are used to store and remove values from the calculation stack CALSTACK. The parameter of PUSHCAL is the value which is to be pushed onto the stack. The value returned by POPCAL is the value removed from the stack. In a machine language implementation, these values can be passed in a register. PUSH (45 thru 51) and POP (53

Listing 6: The Mouse interpreter expressed as a Pascal program.

1 program MOUSE (input,output); 2

3 type

4 TAGTYPE = (MACRO,PARAM,LOOP);

5 FRAMETYPE =

6 record

7 TAG : TAGTYPE;

8 POS,OFF : integer

9 end; 10

1 1 var

1 2 PROG : array [ 1 . . 500 ] of char;

13 DEFINITIONS : array [ 1 . . 26 ] of integer;

14 CALSTACK : array [ 1 . . 20 ] of integer;

15 STACK : array [ 1 . . 20 ] of FRAMETYPE;

16 DATA : array [ 1 . . 260 ] of integer;

1 7 CAL, CHPOS, LEVEL, OFFSET, PARNUM, PARBAL, TEMP : integer;

18 CH : char;

19

20 function NUM (CH : char) : integer;

21 begin

22 NUM := ord(CH) - ord('A') + 1

23 end; 24

25 function VAL (CH : char) : integer;

26 begin

27 VAL := ord(CH) - ord('O')

28 end; 29

30 procedure GETCHAR;

31 begin

32 CHPOS := CHPOS + 1; CH : = PROGICHPOS]

33 end; 34

35 procedure PUSHCAL (DATUM : integer);

36 begin

37 CAL : = CAL + 1; CALSTACKICAL] : = DATUM

38 end; 39

40 function POPCAL : integer;

41 begin

42 POPCAL : = CALSTACKICAL]; CAL : = CAL = 1

43 end; 44

45 procedure PUSH (TAGVAL : TAGTYPE);

46 begin

47 LEVEL : = LEVEL + 1;

48 STACKILEVEL] .TAG := TAGVAL;

49 STACKILEVEL]. POS := CHPOS;

50 STACKILEVEL]. OFF := OFFSET

51 end; 52

53 procedure POP;

54 begin

55 CHPOS : = STACKILEVEL]. POS;

56 OFFSET : = STACKILEVEL]. OFF;

57 LEVEL : = LEVEL - 1

58 end; 59

60 procedure SKIP (LCH, RCH : char);

61 var CNT : integer;

62 begin

63 CNT:= 1;

64 repeat

65 GETCHAR;

66 if CH = LCH

67 then CNT : = CNT + 1

68 else if CH = RCH

69 then CNT : = CNT - 1

70 until CNT = 0

71 end; 72

73 procedure LOAD;

74 var THIS, LAST : char; CHARNUM : integer;

75 begin

76 for CHARNUM := 1 to 26 do DEFINITIONSICHARNUM] : = 0;

77 CHARNUM := 0; THIS := ";

78 repeat

79 LAST : = THIS; read(THIS);

80 CHARNUM := CHARNUM + 1; PROG [CHARNUM] := THIS;

81 if (THIS in [ 'A'. . 'Z' ] ) and (LAST = '$')

82 then DEFINITIONSINUM(THIS)] := CHARNUM

Listing 6 continued on page 210

July 1979 © BYTE Publications Inc 209

Listing 6 continued from page 209:

83 until (THIS = '$') and (LAST = '$')

84 end; 85

86 begin

87 LOAD;

88 CHPOS : = 0; LEVEL : = 0; OFFSET : = 0; CAL : = 0;

89 repeat

90 GETCHAR;

91 case CH of 92

93 ' ', ']', '$' : ;

94

95 *0','1','2','3','4'('5','6','7','8','9' :

96 begin

97 TEMP:=0;

98 while CH in [ '0'. . '9' ] do

99 begin

100 TEMP := 10 * TEMP + VAL(CH); GETCHAR

101 end;

102 PUSHCAL(TEMP); CHPOS := CHPOS - 1

103 end; 104

105 'A','B','C','D','E','F','G','H','I','J','K','L','M',

106 'N','0'/P','Q','R','S'/T','U','V','W','X','Y','Z' :

107 PUSHCAL(NUMICH) + OFFSET); 108

109 '?' : begin

110 read(TEMP); PUSHCAL(TEMP)

111 end; 112

113 'I' : write(POPCAL : 1);

114

115 '+' : PUSHCAL(POPCAL + POPCAL);

116

117 '-' : PUSHCALI-POPCAL + POPCAL);

118

119 '*' ; PUSHCALIPOPCAL * POPCAL);

120

121 V ; begin

122 TEMP : = POPCAL;

1 23 PUSHCALIPOPCAL div TEMP)

124 end;

125

126 '.' : PUSHCAL(DATA[POPCAL]);

127

128 '=' : begin

129 TEMP := POPCAL;

1 30 DATAIPOPCAL] : = TEMP

131 end;

132

133 "" ; repeat

134 GETCHAR;

135 if CH = T

136 then writeln

137 else if CH * ""

138 then write(CH)

139 until CH = ""; 140

141 T : if POPCAL < 0 then SKIP('[',T);

142

143 '(' : PUSH(LOOP);

144

145 T : if POPCAL < 0

146 then

147 begin

148 POP; SKIPCf,')')

149 end; 150

151 ')' : CHPOS := STACK[LEVEL). POS;

152

153 '#' : begin

154 GETCHAR;

155 if DEFINITIONSINUM(CH)] > 0

156 then

157 begin

158 PUSH(MACRO);

1 59 CHPOS : = DEFINITIONS[NUM(CH)|;

160 OFFSET := OFFSET + 26

161 end;

162 else SKIPCr,';')

163 end;

Listing 6 continued on page 212

thru 58) perform similar functions for the main stack, but they are more complicated because each stack entry has three words. The data placed on the stack by PUSH consists of the parameter, TAGVAL, and the values of the two global variables, CHPOS and OFFSET. The procedure POP restores the values of CHPOS and OFFSET but ignores the stacked value of TAG.

The procedure SKIP (60 thru 71) is used to skip over nested pairs of characters. For example, SKIP('[',']') is used to skip over conditional clauses. SKIP uses a local variable CNT to count occurrences of left and right brackets so that it can correctly skip over sequences such as:

[...[...]...]

On entry, SKIP assumes that the first character, [, in the example, has been read, so CNT is initially set to 1. Subsequently, [ increments CNT and ] decrements CNT. The procedure terminates when CNT = 0. This procedure is used for skipping over [...], (.. .), and #. ..;.

The procedure LOAD (73 thru 84) has two functions: it reads the program from the input file into the array PROG, one character at a time; and it stores pointers to macro definitions in the array DEFINITIONS. It uses local variables THIS, LAST, and CHARNUM (74), and it initializes all components of the array DEFINITIONS to zero (76), so that the interpreter can later recognize a call to an undefined macro. LOAD recognizes a macro definition by the sequence $<letter> and the end of the program by the sequence $$.

In this version of the interpreter, both the Mouse program and its input data are read from the system input file. If you have auxiliary storage, such as disks or cassette tapes, it is probably better to store the Mouse program there. If you use disks or tapes, READ(THIS) on line 79 will call a procedure that reads one character from the chosen device. It is much easier to develop a Mouse program if it is stored on an external medium where it can be attacked with a text editor, rather than keying it directly into memory. Alternately, if you have room in memory, you can elaborate the procedure LOAD into a Mouse editor, rather than using it simply as a loader.

The main program begins at line 86. Initialization consists of loading the program (87) and setting various global variables to zero (88). The rest of the interpreter consists of a single repeat statement (89 thru 197). The body of the repeat statement contains two statements: GETCHAR (90),

210 July 1979 © BYTE Publications Inc

Circle 331 on inquiry card.

Computer Lab of New Jersey

Computer Lab sells the best S-100 Bus products at the best possible prices. Not only are our prices great, so is our delivery. We offer a 10% discount on most major lines, plus a 5% additional discount for a cash purchase.

OUR

LIST

CASH

PRICE

PRICE

Imsai S10 2-2 Kit

$156.00

$133.00

SSM VB-2 Video Board Kit

$149.95

$128.00

Vector Graphic Bitstreamer

I/O Board

$195.00

$166.00

Problem Solver TLC Intelligent

CRT Terminal

$1095.00

$936.00

Cromemco Z-80 CPU Board Kit

$295.00

$252.00

S.D. Sales Z-80 Single Card

Computer Kit

$239.00

$204.00

Subject to available quantities. Prices quoted include cash discount.

Shipping and insurance extra

Call for our prices on:

Cromemco, Godbout, Imsai, Problem Solver, SSM, Vector Graphic, Tarbell, Integral Data Systems, North Star, Mountain Hardware, Compucolor, Thinker Toys, Soroc, California Computer Systems, Seattle Computer Products, and many other fine products.

Computer Lab of Naw Jersey

141 Route 46 • Budd Lake, N.J. 07828 Phone: (201) 691-1984

HOURS: Monday & Friday: 12 to 6, Tuesday-Thursday: 12 to 9 Saturday: 10 to 5

Call or write for our free catalog & price list

16K STATIC RAM

$310

Assembled, Tested, Guaranteed to operate at 4M Hz clock for one year.

Also available with 250 nsec Memory Chips add $35

Static TMS 4044 or equivalent - Fully Static 4Kx1 Memory Chips for full DMA capability, no tricky timing problems. Fully S-100 Bus Compatible - All lines fully buffered. Dip Switch Addressable in two8K block, 4K increments. Write Protectable in 2 blocks, Memory Disable using Phantom, Battery back up capability.

Bank Select - Using output port 40H (Cromemco software compatiblej-addressable to 512KB of Ram for time share or Memory Overlap, also has alternate port 80H.

Guaranteed - Parts and labor for one year. You may return the undamaged board within 10 days for a full refund.

Orders - You may phone for Visa, MC, COD ($4 handling charges for COD) orders. Personal checks must clear prior to shipping. Shipping-Stock to 72 hours normally. Will notify expected shipping date for delay beyond this. Illinois residents add 5% tax. Please include phone number with order.

S.C. digital

P.O. Box 906 Phone: Aurora, IL 60507 (312)897-7749

RADIO SHACK COMPUTER OWNERS

TRS80

• PRACTICAL APPLICATIONS

• BUSINESS

• GAMBLING • GAMES

• EDUCATION

• PERSONAL FINANCE

• BEGINNER'S CORNER

• NEW PRODUCTS

• SOFTWARE EXCHANGE

• MARKET PLACE

• QUESTIONS AND ANSWERS

• PROGRAM PRINTOUTS . .AND MORE

MONTHLY NEWSLETTER

24

HOUR ORDER LINE (914) 425-1535

WORD PROCESSING PROGRAM

(Cassette or Disk)

For Writing Letters, Text, Mailing Lists, Files, Etc. With Each New Subscriptions or Renewal

■uunvHuumrAi acq r/nrx; wnurc"'

Box 149

New City, New York 10956

ONE YEAR SUBSCRIPTION $24

TWO YEAR SUBSCRIPTION $48

SAMPLE OF LATEST ISSUE $4

START MY SUBSCRIPTION WITH ISSUE

(#1 - July 1978 • #7 - January 1979) NEW SUBSCRIPTION RENEWAL _

CREDIT CARD NUMBER

EXP. DATE

SIGNATURE NAME

ADDRESS

ISend lor FREE Software Catalogue {Including listings of hundreds) of TRS-80 programs available on cassette and diskette).

Circle 159 on inquiry card.

BYTE July 1979 21 1

Listing 6 continued from page 210:

164

165 '@' : begin

166 POP; SKIPC#',';')

167 end; 168

169 ■%■ : begin

1 70 GETCHAR; PARNUM : = NUM(CH); PUSH(PARAM);

171 PARBAL := 1; TEMP := LEVEL;

172 repeat

173 TEMP := TEMP - 1;

1 74 case STACKITEMP]. TAG of

175 MACRO : PARBAL := PARBAL - 1;

1 76 PARAM : PARBAL : = PARBAL - 1;

177 LOOP:

178 end

179 until PARBAL = 0;

1 80 CHPOS : = STACKITEMP]. POS;

181 OFFSET : = STACKITEMP]. OFF;

182 repeat

183 GETCHAR;

184 if CH =

185 then

186 begin

187 SKIPC#',';'); GETCHAR

188 end;

1 89 if CH = ',' then PARNUM : = PARNUM - 1

190 until (PARNUM = 0) or (CH = ';');

191 if CH = ';' then POP

192 end; 193

194 ',',';': POP

195

196 end

197 until CH = '$'

198 end.

PET WORD PROCESSOR

This program permits composing and printing letters, flyers, advertisements, manuscripts, etc., using the COMMODORE PET and a printer. Script directives include line length, left margin, centering, and skip. Edit commands allow the user to insert lines, delete lines, move lines and paragraphs, change strings, save onto cassette, load from cassette, move up, move down, print and type. The CmC Word Processor Program addresses an RS232 printer through a CmC printer adapter. The CmC Word Processor program is available for $29.50. Add $1.00 for postage and handling per order.

Order direct or contact your local computer store.

'0

CONNECTICUT microCOMPUTER

150POCONO ROAD BROOKFIELD, CONNECTICUT 06804 (203) 775 9659 TLX: 7104560052

and a case statement (91 thru 196) which selects an action according to the character obtained by GETCHAR. The repeat statement, and hence the interpreter, terminates when CH = '$'. The operation of the interpreter can therefore be described solely in terms of the action taken for each character returned by GETCHAR. The case statement can be implemented by comparing CH to each legal character in turn. A jump table addressed by the ordinal value of CH is more efficient, but it may use more memory.

The characters (blank), ], and $ require no action by the interpreter (93). If the character is $, the repeat statement terminates, otherwise control returns to GETCHAR (90) which gets the next character.

If the character is a digit (95), this digit and succeeding digits are read, and the value of the corresponding number is accumulated in TEMP (97 thru 101). The value of TEMP is then pushed onto the stack (102). The interpreter has now read one character past the last digit, which it has to do in order to recognize the end of the number, so the character pointer is backspaced (102). If the character is a letter (105 and 106), its address NUM(CH)+OFFSET is pushed onto the stack. If OFFSET = 0, the address of A is 1, the address of B is 2, and so on. (The use of OFFSET will be explained later.) The remaining operand is ? (109 thru 111), which reads a number from the input file and pushes its value onto the stack. The Pascal statement READ (TEMP) reads a signed number from the input file, having skipped over leading blanks.

Lines 113 thru 131 define the actions taken when an operator has been read. Operators use the calculation stack CALSTACK. The character ! (113) pops the top value off the stack and prints it. The Pascal statement WRITE(POPCAL : 1) prints the value of POPCAL without leading or trailing blanks.1 If blanks are required to separate numbers, they must be explicitly coded in the Mouse program.

The arithmetic operators (115 thru 124) remove two operands from the stack, apply the appropriate operation, and push the result onto the stack. Note that the second operand is on top of the stack, but must be used after the first operand in the noncommutative subtraction and division operations. The Pascal operator div means "divide and truncate" (123). The operator . (period) replaces the address on the stack by the corresponding component of the array DATA (126). The assignment operator (=) uses the address and value on the stack to update a component of the array DATA (128 thru 131).

All of the operations on CALSTACK are

212 July 1 979 © BYTE Publications Inc

Circle 78 on inquiry card.

Circle 73 on inquiry card.

AT LAST!

BioNi'c Ear

A landmark book by John L. Stewart, with technical information never before available. Based on years of research with partial support through the original Air Force Bionics program of the 1960's.

Now you can understand and build devices that behave like the human ear-or a thing called "Hal".

• Speech recognition for the robot

• Aids for the deaf and deaf-blind

• Reliable voice control

• Speech bandwidth compression

• Speech security

• Binaural localization

• Bat-like echoranging

• Sonar target recognition

• Control of animals with sounds

• Language training

• Speech enhancements

• and much, much more...

Hardware representations give new understanding of man-not only how, but also why the ear works as it does.

A far-reaching new theory-complete-sophisticatedpowerful-destined to influence not only computers, but also concepts in physiology for decades to come.

This new and invaluable information for only $35.00 plus postage and handling. ($1.50 regular or $4.00 priority or UPS Blue in USA and Canada. Other countries add $12.00 for air or $3.50 surface, all U.S. funds.) California residents also add 6% sales tax. Send check, money order, or VISA or Master Charge number (and expiration date). Phone orders accepted. Credit only on approval.

COVOX PublishiNq P.O. Box 2342 Orcutt, CA 93454 • Tel.: (805) 937-9545

A MICROCOMPUTER SYSTEM WITH THE SPEED AND POWER TO HANDLE A BUSINESS WORK LOAD.

TheComputex 16-bit MICROENGINETM CPU processes Pascal (UCSD version 3.0) five times faster than any comparable unit, and at least twenty times faster than the 8080 or Z80. Still ourX-pert SystemsTM are price competitive with 8-bit systems.

$2695*

ready to run

PASCAL MICROENGINETM

LIMITED TIME cash price.

10% DOWN, guarantees priority.

MICROENGINETM specifications:

• 16-bit P-codeCPU

• 64K bytes RAM

• Floppy disk controller

• Full DMA

• Floating point hardware

- 2 serial (RS232) I/O ports

• 2 parallel I/O ports

• Pascal and Basic compilers

• Text editor,

• File manager

- CPU and memory diagnostics

• Symbolic Pascal debugger

Also available:

• Complete turn-key systems

• CRT terminals

• High speed printers

• Text quality printers ■ Floppy disk drives

• Applications software

Customer satisfaction is guaranteed. Full refund with the return of any product within 10 days. Complete technical catalog $1.

COMPUTE

"THE COMPUTER EXPERTS."

5710 Drexel Avenue Chicago, IL 60637 (312)684-3183

Expand yourTRS-80.

Save $100.

Meet the Vista V80 Mini Disk System. The perfect way to upgrade yourTRS-80* system. Inexpensively. (Our $395.00 price is about $100.00 less than the manufacturer's equivalent.) Here's how it can help you.

23% more storage capacity. Useable storage capacity is increased from 55,000 to 65,000 bytes on drive one.

8 times faster. While electronically equal to the TRS80 Mini-Disk system, track-to-track access is 5ms versus 40ms for the TRS-80.

Better warranty. The V80 carries a 120 day warranty longerthan any comparable unit warranty available.

The Vista V80 Mini Disk System comes complete with Minifloppy disk drive, power supply, regulator board and case. And it's ready to run - simply take it out of the box, plug it in and you're ready to go.

Vista

1320 East St. Andrews Place, Suite I Santa Ana, California 92705 (714)558-8813

At Vista, we mean business.

*TRS-80 ©Tandy Corp.

Circle 82 on inquiry card.

Circle 378 on inquiry card.

BYTE July 1979 213

coded using the subroutines PUSHCAL and POPCAL. They can be coded more efficiently without these subroutines. For example, the action required for division can be written:

CAL :=CAL - 1;

CALSTACK[CAL] := CALSTACK[CAL] div CALSTACK[CAL+1]

The advantage of using the subroutines PUSHCAL and POPCAL is that they can check for stack underflow (CAL < 0 in POPCAL) and stack overflow (CAL > 20 in PUSHCAL), although these checks are not shown in this listing.

When the double quote character " is encountered, the interpreter prints successive characters up to, but not including, the next quote character (133 thru 139). The Pascal procedure WRITELN writes a carriage return/ line feed to the output file, and WRITE(CH) writes the single character CH.

The left bracket [ introduces a conditional clause. The value on top of the stack is removed and examined. If it is positive and nonzero, no action is taken, and the interpreter proceeds to execute the bracketed clause. If the value on the stack is zero or

IMSAI • Cromemco • SWTPC • Lear-Siegler • Problem Solvers •

RCA •North Star • Verbatim • ALPHA Micro Systems and others

Fast, off the shelf delivery. Give us a call TOLL FREE 800/523-5355

MARKETLINE SYSTEMS, Inc. 2337 Phllmont Ave., Huntingdon Valley, Pa. 19006 215/947-6670 • 800/523-5355

Dealer Inquiries Invited

214 July 1979 © byte Publications inc Circle 205 on inquiry card.

negative, the interpreter skips to the matching right bracket ]. The use of the procedure SKIP enables the interpreter to process nested conditions correctly.

Loops are implemented by lines 143 thru 151. The effect of the left parenthesis ( is simply to push a stack frame of type LOOP onto the main stack. This stores the current value of CHPOS on the stack. (It also stores the current value of OFFSET, but OFFSET is not used for loops.) When the interpreter encounters the up arrow symbol (f), it removes and examines the value on top of the calculation stack. If this value is positive and nonzero, there is nothing to do, but if it is zero or negative, the interpreter must exit from the loop. It does this in two steps (148). First, the main stack is popped. This restores the value of CHPOS, which now points to the left parenthesis ( at the beginning of the loop. Then the procedure SKIP is used to skip over the body of the loop and leave CHPOS pointing to the closing right parenthesis ). This is a slightly inefficient method of terminating the loop, because the entire body of the loop is skipped, rather than just the section from t to ). When the right parenthesis is encountered during the execution of the loop, CHPOS is set to the stacked value POS, which causes the interpreter to jump back to the opening parenthesis. The stack is used for loops to allow loops to be nested.

The rest of the case statement, lines 153 thru 194, handles macro expansion and parameter substitution. When the interpreter encounters the character # (153), it reads the character which follows. This character should be a letter (154). If there is a definition for the macroinstruction (DEFINITIONS[NUM(CH)] > 0), the interpreter pushes a MACRO entry onto the main stack (158) and assigns new values to CHPOS (159) and OFFSET (160). CHPOS now points to the first character of the macro definition. The effect of adding 26 to OFFSET is to allocate 26 local variables in the array DATA for the use of the macro. The address of the local variable A is NUM('A')+OFFSET (see line 107); in the main program this is 1, in a macroinstruction called from the main program it is 27, and so on. If there is no definition for the macroinstruction, the interpreter skips to the semicolon which terminates the call (162). The procedure SKIP must be used to find the semicolon because the actual parameters of the macro call may include macro calls. The interpreter continues to process the macro definition until it encounters an @, at which point it pops the main stack (166). Popping the stack resets OFFSET

Circle 93 on inquiry card.

25 START-AT-HOME COMPUTER BUSINESSES

In "Low Capital, Startup Computer Businesses"

CONSULTING • PROGRAMMING • MICRO COMPUTER OPPORTUNITIES • SOFTWARE PACKAGES • FREELANCE WRITING • SEMINARS • TAPE/DISC CLEANING • FIELD SERVICE • SYSTEMS HOUSES • LEASING • SUPPLIES • PUBLISHING • HARDWARE DISTRIBUTORS • SALES AGENCIES • USED COMPUTERS • FINDER'S FEES • SCRAP COMPONENTS • AND MORE . .

Plus — ideas on moonlighting, going full-time, image building, revenue building, bidding, contracts, marketing, professionalism, and more. No career tool like it. Order now — if not completely satisfied, return within 30 days for full immediate refund.

• 8V4 x 11 ringbound • 156 pp. • $20.00 Phone Orders 901-761-9090

tow c*wr*.

DATASEARCH

incorporated

4954 William Arnold Road, Dept. B, Memphis, TN 38117 Rush my copy of "Low Capital Startup Computer Businesses" at $20.

NAME/COMPANY

ADDRESS

CITY/STATE/ZIP _

□ Check Enclosed

□ VISA □ Master Charge Exp. Date

Circle 372 on inquiry card.

Trans-Oats Goppopstion

ANNOUNCES MICROCOMPUTERS SOFTWARE FOR OHIO SCIENTIFIC, APPLE II, AND NORTH STAR.

OHIO SCIENTIFIC (C1-P, C2-4P, C2-8P)

'Interest on Loans $ 6.00

'Checking Account $ 8.00

*Luna Lauder $ 6.00

*StarTreck8K $ 6.00

'Hangman 8K $ 8.00

'Basic Tutor Series $29.00

APPLE II

*File Management System 32K $60.00

•Word Processor 32K $60.00

•Step By Step 16K $39.95

NORTH STAR

•Inventory $25.00

•Medical Billing $25.00

•Payroll $25.00

WE HAVE THE MOST SOPHISTICATED LIBRARY OF SOFTWARE FOR THESE MICROCOMPUTERS IN STOCK. SEND $1.00 FOR SOFTWARE CATALOG OR CALL OUR TOLL FREE NUMBER (800) 327-8455.

PLEASE SPECIFY DISK OR TAPE VERSION AND COMPUTER MODEL.

Trans-Data Corp. 161 Almeria Avenue Coral Gables, Florida 33134

EASYSOFTWARE

for your APPLE Let your APPLE teach you FRENCH, GERMAN, ITALIAN, a/jrfSPANISH

Each package contains more than 1000 French, German, Italian or Spanish words and their English equivalents. You may answer in French, German, etc. or English either by multiple choice or by fill-in. The programs keep track of correct and incorrect responses and sort words according to their difficulty.

Then enjoy COMPUTER ART new beautiful symmetrical high resolution color designs. An almost infinite number! Endless hours of enjoyment. Don't get high and start watching these!

()FRENCH ( ) GERMAN ( ) ITALIAN ( ) SPANISH ( ) HI ART

$25 Name _ $25 Address

$25 City

$25 State _ $10 Zip

Send check or money order to:

EASYSOFTWARE

PO Box 84305 Veterans Adm Br Los Angeles CA 90073

MICROPOLIS SOFTWARE,mod„, WHY

Do you need the CCA DATA MANAGEMENT SYSTEM?

BECAUSE

With this powerful system,

You're in control

• YOU decide on the files you need (Name & Address

A/R. A/P. Payroll. Inventory. Cuslomer Lists, etc.).

■ YOU choose the names for the files and all

of the data fields in the files.

■ YOU let the DMS assist you in maintaining

your files using YOUR field names. Records can be added, updated, deleted, inspected, or scanned for in any file.

■ YOU let the DMS sort your files as needed.

•YOU select the report or mailing label format, selecting title, fields, totaling, sub-totaling, editing and more.

Stay in control!

Order the CCA Data Management System today! Only $150.00 - Comprehensive Documentation

Dealer Inquiries Invited

Creative Computer Applications 2218 Glen Canyon Road Altadena, CA 91001 (213) 798-4529

VISA

master charcjt;

Circle 103 on inquiry card.

Circle 84 on inquiry card.

BYTE July 1979 215

correctly, but it leaves CHPOS pointing at the macroinstruction name. The call to SKIP (166) moves CHPOS past the macro call so that processing can continue.

The most difficult task for the interpreter is processing a formal parameter (169 thru 192). First, the interpreter reads the parameter name and sets PARNUM to the corresponding numeric value (170). For example, if it reads %A, PARNUM is set to 1. A new entry is created in the main stack. The next problem is to find, in the stack, the stack

#A,3i $A #B,%A; @ $B %A

POS

TAG

PAR AM

PAR AM

MACRO

OFF

26

LEVEL

Figure I: The interpreter has read the formal parameter %A in the call #B,A; and is looking for the actual parameter 3. Level I of the stack, shown at the right, contains a pointer to the corresponding macro call #A,3; . The interpreter finds this pointer by searching the stack for a MA CRO frame matching the PA RAM frame at stack level 4.

CY-480 UPC™:

THE WORLD'S ONLY SINGLE CHIP LSI UNIVERSAL PRINTER CONTROLLER. NOW ONLY$25.00!

The CY-480 UPC™ ... providing the kind of service and special features others don'tl

And that means for off-the-shelf low prices, the CY-480 provides great flexibility and easy interfacing. Cybernetic Micro Systems' amazing CY-480 will control and interface standard 5" x 7" dot matrix printers (including those from Victor, LRC, Practical Automation and Amperex) with speeds up to 200 CPS! Operating from a single +5V power supply, the flexible CY-480 will interface easily with any microcomputer or minicomputer system through standard 8-bit ports. The CY-480 accepts either serial (RS232C) or parallel ASCII input from the host system's data channel.

The CY-480 replaces bulky, expensive, dedicated controllers.

This small, single LSI package offers a 5 x 7 dot matrix character generator, full upper and lower case ASCII 96-character font, and a 48-character (expandable by daisy-chaining) internal line buffer storage. Standard features include a 10,12 or 16 characters/inch variable character density command, and horizontal and vertical independently expanded print command. The CY-480 provides graphic capability and includes a "flip-print" operating mode for 180° viewing, and ready lines provide full asynchronous communications with handshaking.

Stock delivery... only $25 a single unit... send for YOURS todayl

CYBERNETIC MICRO SYSTEMS

2378-B Walsh Ave., Santa Clara. CA 95050 VISA and

Phone (408) 249-9255. MASTER CHARGE accepted.

216 July 1 979 © BYTE Publications Inc

Circle 88 on inquiry card.

frame created by the corresponding macro call. This would be easy if the call frame was at the top of the stack, but this is not necessarily the case.

Consider the situation shown in figure 1, which shows a simple Mouse program and the main stack during its execution. The interpreter reads #A, creates the stack frame at level 1, and moves CHPOS to $A. It then reads #B, creates the stack frame at level 2, and moves CHPOS to $B. Now it encounters %A, creates a PARAM stack frame at level 3, and sets CHPOS to the actual parameter. The actual parameter is %A (in the call #B,%A;) and so it creates a new stack frame at level 4. Now the interpreter has to find the actual parameter corresponding to this %A.

In order to do this it must locate the stack frame at level 1, which contains a pointer to #A. It can find the correct frame by using the fact that MACRO and PARAM frames in the stack are nested. (The situation is slightly more complicated when an actual parameter contains a macro call, but the same strategy works.) The search is implemented by lines 171 thru 179 of the interpreter. LOOP frames on the stack are ignored (177).

When the interpreter has found the correct stack frame, it sets the values of CHPOS and OFFSET from it (180 and 181). The stacked value of OFFSET must be used because variables in an actual parameter belong to the level of the macro call, not to the level of its definition. CHPOS now points to the name of the macro in the macro call. The interpreter finds the correct parameter by counting PARNUM commas (182 thru 190).

The counting process is complicated by two factors. One is that the actual parameter may contain macro calls; this contingency is handled by SKIP (184 thru 188). The other complication is that there may be no actual parameter corresponding to the formal parameter. In this case, the interpreter will encounter a semicolon (190), and must pop the stack frame that it just created (191).

An actual parameter is terminated by either a comma or a semicolon. The action of the interpreter is simply to pop the main stack (194).

Improving the Implementation

The Mouse interpreter that is presented here has been pared to the bare essentials. It is complete and accurate, and was used to test the example programs of listings 1 thru 5. Mouse is easier to use, however, if the interpreter does some error checking.

THANKS FOR THE MEMORIES.

Thanks to these inexpensive Pet and TRS-80 memories and disk drives you can instantly turn your personal computer into a speedy and efficient professional computer.

■

Expand your Pet.

1. Disk Drive. Double density 400k on-line disk drive and DOS operating system including 17 additional BASIC commands. Random or indexed sequential access. Exceptionally fast — loads 20k program in 3 seconds. Only $1295.

2. Expandamem™ Completely internal memory that adds up to 32k. 32k unit allows for 8k of assembly language subroutines accessed via the USR command. 16k only $425. 24k only $525. 32k only $615.

3. Software. Complete library available. Write for details.

Expand your TRS-80.

1. Disk Drive. Compact dual disk drive is completely compatible with TRS-80 DOS and uses own controller. Only $895.

IMMEDIATE DELIVERY! ORDER TODAY!

COMPU/THINK™

3260 Alpine Road, Menlo Park, CA 94025 (415) 854-2577

Please send me the following:

□ Pet Disk Drive

□ Pet Expandamem™ □ 16k □ 24k □ 32k

□ Pet Software (Into only) □ TRS-80 Disk Drive

Total Enclosed: $

Check or Money Order only Calif. Res. add 6% tax. Freight pre-paid in continental U.S.

Dealer Inquires Invited.

Circle 72 on inquiry card.

Circle 353 on inquiry card.

for graphics!

3D GRAPHIC SOFTWARE

for Apple II, TRS-80, 8080 and Z80, M6800, and BASIC.

Plus Graphic Drivers for Dazzler, Matrox ALT-256 and 512, and Vector Graphics.

HARDWARE...

Matrox ALT-256 and _ ALT-512 display boards for your S100 bus.

We're open 9 to 6, Monday thru Friday, central time. Give us a call.

The engineering & graphics people (217)367-0299

LOGIC

liUU^y Box V, Savoy, IL 61874

HOW TO START YOUR OWN SYSTEMS HOUSE

A practical guide for the small EDP entrepreneur. 213-page manual covers all aspects of starting and successfully operating a Small Business Computer company. 5th revised edition June 1979. From the contents:

• The Systems House Industry • Hardware, Software or Both? • Market Selection & Evaluation • Industry Application Opportunities • Equipment Selection • Becoming a Distributor • Product Pricing • Getting Your Advertising Dollars Worth • The Selling Cycle • Financing For The Customer • Questions You Will Have To Answer Before The Customer Buys • Solving The Service Problem • Protecting Your Product • How To Write A Good Business Plan • Raising Capital •

Send $36.00 (check, VISA or Mastercharge) to:

Essex Publishing Co., Dept. B 285 Bloomfleld Avenue Caldwell, N.J. 07006

| |

L - A

Credit card orders: Send card #, dateexp. Add $2.00 for rush, air mail shipping. N.J. residents add 5% sales tax. For faster shipment on credit card orders, phone (201) 783-6940.

218 July 1 979 © BYTE Publications Inc

Circle 132 on inquiry card.

Some of the errors which it can easily detect are listed here:

• Stack underflow and overflow (both stacks). Underflow is always the result of an error in the Mouse program; overflow may be due to an error in the Mouse program, but it is more likely that the stack is not large enough for the program. Checks for underflow should be incorporated into POP and POPCAL, and checks for overflow should be incorporated into PUSH and PUSHCAL.

• Illegal characters. The interpreter should check the program for illegal characters; this can be done during loading.

• Division by zero. TEMP = 0 at line 122.

• Illegal address. The value of the stack at line 126 should satisfy 1 < POPCAL < OFFSET+26; the same test can be made at line 129. A stricter address check would be preferable, but is not easy to devise, since a macroinstruction can access the variables both at its own level and at lower levels by means of parameters.

• Context errors. The characters # and % must always be followed by a letter.

• Undefined macroinstruction or missing actual parameter. These would be regarded as errors in a stricter implementation of Mouse.

A tracing option is a powerful aid to debugging Mouse programs. The easiest way to trace the execution of a Mouse program is to make the interpreter display the value of each character it processes. This can be done by inserting WRITE(CH) after GETCHAR at line 90 of the interpreter (listing 6). It is also useful to trace the results of assignments. This can be done by printing the value of TEMP at line 129.

The size of the arrays (12 thru 16) can be adjusted to suit your requirements. Most expressions can be evaluated with a small stack of two or three entries, and you may find it surprising that CALSTACK has space for so many entries. The reason is that some recursive macroinstructions (such asSandT in listing 1) create an entry in the calculation stack at each level of recursion, and CALSTACK must be large enough to hold these. The array DATA makes the poorest use of space; 26 words are allocated at each level of macrocall. This implementation allows ten calling levels, which is not as generous as it sounds if you are using recursive macroinstructions. You can reduce the space requirement to ten variables (A,B. . .J)

at each level, by changing line 160 to OFFSET := OFFSET + 10. Note that a macroinstruction with no local variables needs space in the array STACK but not in the array DATA, so recursive macros such as S and T in listing 1, V in listing 3, and H in listing 4, are limited only by the size of the arrays STACK and CALSTACK.

Improving the Language

It is easy to add features to Mouse. A random number generator is useful, particularly for programming games. Probably the simplest method is to use a unary operator which multiplies the number on the top of the calculation stack by a real random number R such that 0 < R < 1, truncates the result, and increments it. If the character : (colon) is used to denote the operator, then 6: would leave a simulated die throw on the stack.

The most severe restriction of this particular version of Mouse is that it cannot process character data. A more powerful version of Mouse can be obtained by redefining ? and / so that they read and write a single character. The disadvantage is that macroinstructions are then required to read and print numbers - not a large price to pay for the greater generality achieved.

It is quite easy to add a case construction to the language. The following syntax is suitable:

E<C1;C2...Cn>

Each C| is a clause. When the interpreter reads <, it performs the following actions:

• skip to the matching > and push a CASE frame onto the main stack;

• return to <;

• if E > 1, then scan the clause list until the (n-1)th comma is encountered, otherwise pop the stack. If the character > is encountered during this scan, then E > n, and the case clause is null or illegal.

The action for comma, which is already defined to be POP, is correct. This construction will select and execute one of the clauses C1;C2. . .Cn, according to the value of E. It is very easy to write a random sentence generating program in a version of Mouse to which a random number generator and a case construction have been added.

The facilities for annotating Mouse programs are very limited. Strings in quotes may be used in the main program outside loops. These serve as comments to the program

68 MICRO JOURNAL

m

®

★ *

VOUM IMU l-Ow*«(to*»«00Uw.(»h«nim

6800/09

USER-ORIENTE MAGAZINE

Months ahead of all others with 6800/09 articles & new products

Crunchers Corner — Bryant (A monthly programming tutorial) * Flex® to BFD — Puckett * Tiny Music — Thompson * Semiconductor, Part 1 — Kinzer * Soup Up Your TVT — Pass * Hints & Kinks — fixes (soft & hard) * 50 pages plus Each Month!

Crunchers Corner — Bryant * A Look at the SWTPC CT-82 — Ferguson * 6800 Relative Branch Calculation (Hand) — Berenbon * Relative Calculator (Machine) - Heatherington * Maillist (Disk) - Lilly * Modems — Schuman * Semiconductor Part 2 — Kinzer * Locate — Pigford * A20 MA, Printer-SWTPC - Perdue * AS-50 Monitor Board — Pentecost * TSC Basic for 6800 — Shirk * Plus Much-Much More!

Crunchers Corner — Bryant * A Case for the Small DOS — Mauch

* MF-68 Motor Fix — Sorrels * Transfer (FLEX 1 to 2 or 5) — Womack * 6800 Delay — Berenbon * Make Like a 6809 — Feintuch * Games (Basic) — Harmon

* Boot (Flex-BFD) — Puckett * Freeze Display (SSB) — Johnson

* Paper Tape Reader — Adams * FLEX® Fixes and Much More!

MAGAZINE COMPARISON (2 years) Monthly Averages 6800 Articles

TOTAL PAGES

KB BYTE CC DOBB'S

7.8 6.4 2.7 2.2 19.1 ea. mo. Average cost for all lour each month: $5.BB (Based on advertised 1-year subscription price) '68' cost per month: 88* {$10.50 Charter Subscription Rale) That's Right! Much. Much More for

1/6 the Cost! CHARTER SUBSCRIPTION SPECIAL

1-Year $10.50 2 Years $18.50 3 Years $26.50

OK, PLEASE ENTER MY SUBSCRIPTION Bill My: Master Charge Q — VISA p Card = _ Exp. Oate

For p 1-Year p 2 Years Enclosed: $

□ 3 Years

City_

-.Zip

My Computer Is:

68 MICRO JOURNAL

3018 Hamill Road HIXSON, TN 37343

FOREIGN ADD: $9.50 Per Yr. Surface $26.50 Per Yr. Air Mail NOTE:

Subscription Rates to increase August 1979 by 40% — Don't miss anymore than you have already!

★ MORE 6800 ARTICLES THAN ALL OTHERS COMBINED*

Circle 329 on inquiry card.

July 1 979 © BYTE Publications Inc 219

text and also as a guide to progress when the program is running, since they are printed by the interpreter. The interpreter ignores text between macro definitions, so macroinstructions can be titled. However, these methods use up valuable space in the array PROG. A better solution is to use a special symbol such as ' (apostrophe), or a pair of symbols such as | and | , and to modify the loader so that it does not store comments in memory.

Conclusion

Mouse is simple enough to be implemented on a small computer system in a few days, yet it is rich enough to give insight into the mechanisms used by much higher level languages. The Mouse interpreter can be used by itself or as part of a larger system. The General Purpose Macrogenerator is considerably more powerful than Mouse, but nonetheless 1 think that Strachey's appraisal of the GPM provides an apt conclusion:

It has been our experience that the GPM, while a very powerful tool in the hands of a ruthless programmer, is something of a trap for the unsophisti

cated one. It contains in itself all the undesirable features of every possible machine code — in the sense of inviting endless tricks and time-wasting though fascinating exercises in ingenuity - without any of the irritating ad hoc features of real machines. It can also be almost impenetrably opaque, and even very experienced programmers indeed tend to spend hours simulating its action when one of their macro definitions goes wrong. Furthermore, it is remarkably good at using up machine time - fortunately the programs written for it are usually rather short. ■

REFERENCES

1. Grogono, Peter, "MUSYS: Software for an Electronic Music Studio," Software: Practice and Experience, volume 3, 1973, pages 369 thru 383.

2. Strachey, C, "A General Purpose Macrogenerator," Computer Journal, volume 8, 1965, pages 225 thru 241.

3. Jensen, K and N Wirth, PASCAL User Manual and Report, Springer-Verlag, 1976.

4. Grogono, Peter, Programming in PASCAL, Addison-Wesley, 1978.

tllC IMGTO [BUY A PET'l6K RAM FOR ONLY $950.

Computer Theatre

FEATURE ATTRACTIONS

Cromemco system Three Features..

• Z-80A Micro Processor

• 32 K RAM • Dual 8" Disk Drive, Easily Expandable to 4 Drives. • RS232 and Printer Interface.

List $5,990. Our Price $4,995.

Cromemco System Two Features...

• Z-80A Micro Processor • 32K RAM

• Dual 5" Wangco Drives • RS232 and Printer Interface. List $3,990. Our Price $3,095.

Pre-paid orders are shipped with any software package FREE (specify)

. EXIDY SORCERER 16 K $1,150^

|Mag 0 . Extra

AA tree! 16K Memory

AND RECEIVE f t A CASSETTE RECORDER ** TC *

automodem n for the ^Jappta II

a special introductory offer...$259. Here's an ^appie there's an ^appfc (or any other remote computer, large or small) and the automodem will combine the two to establish a total data communication system

the applestick

The NEW Applestick Joystick/Game Paddles Combination. Introductory price $34.95

Hours: Tues-Fri 11:00 AM to 8:00 PM-Sat 10:00 AM to 6:00 PM (Closed Sun, Mon)

Master Charge, VISA, BofA are accepted. No COD. Allow two weeks for personal check to clear. Add $1.50 for handling and postage. For computer systems please add $10.00 for shipping, handling and insurance. California residents add 6% sales tax.

^CipplGlI 16K $1,195. free ! l^KMemory

B computer components

MICRO computers •personal/small business

15818 Hawthorne Boulevard k Lawndale. California 90260 ( 213) 370-4842

OF

SOUTH BAY

220 July 1979 © BYTE Publications Inc

Circle 54 on inquiry card.

Circle 316 on inquiry card.

WE SHIP FROM STOCK — EVERYTHING FACTORY FRESH, FULLY WARRANTEED

WE ARE KNOWN FOR OUR PROMPT, COURTEOUS SERVICE

TELETYPE MODEL43TTL $985

RS232 $1,085

(We stock Teletype Paper and Ribbons!

DEC LA 34

High quality, hard copy, dot matrix printer. Plug compatible substitute

for the Teletype 43. RS232 included at no extra cost $1,159

HAZELTINE 1500 assembled $945

1510 $1,085

Also available with French, German or Danish character sets.

MARINCHIP SYSTEMS M9900 CPU

The Complete, Compatible 16 bit CPU for the S-100 Bus

Kit Assembled

M9900 (includes software) $550 $700

We configure systems to suit your individual requirements.

MODEM

Originate/Answer. The "CAT" from Novation $190

HARD DISK CONTROLLER From Konan $1,550

S-100 compatible; plugs into S-100 mainframe, controls 1-4 drives. We Also Carry:

•PER SCI'FUJITSU HARD DISK DRIVES'TEI MAINFRAMES*

• TARBELL CONTROLLERS • INTERTUBE • SOROC • • IMS AND OTHER MEMORIES • TELL US OF YOUR NEEDS • • WE CAN OBTAIN MANY ITEMS AT LOW COST •

To Order: $1 2 shipping for Terminals. $4 shipping for other items. 24 hr. shipping upon receipt of certified check or money order. Personal checks: allow 10 days. Credit cards: 4% charge. NY residents add tax.

★ WE EXPORT TO ALL COUNTRIES * OVERSEAS CALLERS USE (212) 448-6298 ONLY WE CAN ADAPT MOST EQUIPMENT FOR 220v, 50Hz We have no reader inquiry number. Please call or write.

john d. OWENS ASSOCIATES, inc.

147 NORWOOD AVENUE STATEN ISLAND, NEW YORK 10304

DAY. EVENING, WEEKEND, HOLIDAY CALLS WELCOME!

(212) 448-6283

(212) 448-6298

CATCH THE S-100 BUS!

OUR

LIST SPECIAL PRICE CASH PRICE

195.00 150.00

lmsai"8080" 750.00 625.00

Imsai MI0 (two parallel, one serial,

one control & Tarbell tape

cassette port

SSM 5B-1 Music Synthesizer

Board Kit IMC PR0-1 Dual Extender Card Thinker Toys Discus II - Double

Density Disk System S.D. Systems Versafloppy Disk

Controller Kit

S.D. Systems 32/64K Memory Board Kit

150.00 39.00

125.00 33.00

1149.00 977.00

159.00 135.00

141.00 120.00

Call for Our Prices on: Cromemco, IMSAI, Vector Graphic, North Star, Sanyo, Hazeltine, IMC plus Most Other Major Lines.

Subject to Available Quantities • Prices Quoted Include Cash Discounts. Shipping & Insurance Extra.

bus S-IDD,inc.

Address.. .7 White Place

Interface.

Clark, N.J. 07066 201-382-1318

tipple computer

SOFTWARE FOR BUSINESS

includes:

* Mailing List

* General Ledger Payroll

* Phone Directory

* Customer Information

* Invoice Writer

* Inventory

* CheckWriter

* Complete Business System

* Master Business System Available Soon Word Processor

vidEo|sslw/oRld

2224 N. University, Peoria, II. 61604 Phone 309/686-9352

•Trademark of Apple Computer Co. Inc.

Main/Frames m $200

Main/Frames$200

• 14 Basic Models Available

• Assembled & Tested

• Power Supply: 8v@15A, ± 16v@3A

• 15 Slot Motherboard (connectors optional)

• Card cage & guides

• Fan, line cord, fuse, power & reset switches, EMI filter

• 8v@30A, ± 16v@10A option on some models

Write or call for our brochure which includes our

application note: 'Building Cheap Computers'

INTEGRAND

8474 Ave. 296 • Visalia, CA 93277 • (209) 733-9288 We accept BankAmericard/Visa and MasterCharge

Circle 376 on inquiry card.

Circle 179 on inquiry card.

BYTE July 1979

221

■

THE

RECREATIONAL PROGRAMMER

QUALITY SOFTWARE!

Tl & HP Programmables BASIC lor most computers

GAMES-ALGORITHMS-PUZZLES STOCK ANALYSIS- AND MORE!

OVER 30 PAGES BIMONTHLY!

ANNUAL SUBSCRIPTION ONLY: S12 within USA & APO/FPO:s

S24 Foreign by AIRMAIL Single Issue lor S3 incl P&H

VISA and MASTERCHARGE OKI CALL (616)343-3546 NOW! Box 2571 Kalamazoo Ml 49003

6800 SS50 16K SYSTEMSl

Includes: Mainframe cabinet, mother board, powerl supply, fan. CPU, 16K static RAM. and choice of I/O I

card $1294.291

Other packages available.

16K STATIC RAM BOARDS - SS50I

Gold Bus connectors — DIP switch controllable I addressing, write protect and enabeling of each 4K|

block. Tested at 2 MHz Assembled $298,131

Above but socketted and with software control registers. [ Assembled $368,161

TI TMS 4044's:

450 ns $5.00 each I

250 ns $6.00 each I

2708's $7.90 each |

These are factory prime chips from same shipments we our professional quality boards. Add $10 handling on orders under S200.

cimix

inc.

1337 W. 37th Place • Chicago, IL 606091 (312)927-5510 • TWX 910-221-4055

The Company that delivers.

Quality Electronic products since 1975.

GIMIX- and GHOST" are registered trademarks of GIMIX INC

TRS-80 disc software

WORD PROCESSOR Avoid work processor converted from other system. Hard to load object file & cannot store text in disk. Ours is specifically designed for the TRS-80. Written in BASIC. No special hardware and text limit. £39. INVENTORY While others use inefficient sequential file, we use 9-digit key for fast on-line random access. Reports give order info, performance summary, etc. $39. MAIL print report & labels sorted by any field. Random access, special buffering technique. £35

DATA BASE MANAGER You can maintain a data base & produce reports without any programming. Define fields, types, screen & report formats on-line. Almost use up the required 32K memory. £49. KEY RANDOM ACCESS UTIL hashing, blocking, buffering, auto I/O error retry. Put your disk into optimal use. £19.

ACCOUNT manage client accounts & account receivable. Remark fields for general use. Automatic billing & transaction recording. 32K req. £59.

Full documented. Fast delivery. Our competitors offers £99 cassette word processor. £90 'on memory' inventory, inflexible mail system, 1 BK data base.

MICRO ARCHITECT

9B Dothan St.. Arlington. MA 021 74

Intel 8080 Microprocessor Instruction Set

Technical G3 H Fwum

Symbol

B, C, D, E, H, L F

PSW rp

PC M

r, r1, r2

rm data

addr, data16

PP

n

cc

-(SP) (SP) +

A V

v+

In my work with the 8080 microprocessor, I have found the accompanying instruction set summary very useful. The instructions are grouped in five tables according to function, with a single line summary being given for each instruction. In addition, there is an explanatory table of nomenclature and symbols. The order of the instructions is the same as given in the Intel 8080 Microcomputer Systems User's Manual. The method of tabulation makes it very clear which registers and flags are affected by the execution of each instruction.

R S Clist PhD, Scientist, Electronics Group, Dept of Scientific and Industrial Research, POB 2225, Auckland NEW ZEALAND..

Meaning

8 bit accumulator

8 bit general purpose registers

Condition code flags Z, S, P, CY, AC (Zero, Sign, Parity, Carry, and Auxiliary Carry)

16 bit Processor Status Word (comprising A and F)

One of the register pairs B representing BC D representing DE H representing HL SP representing 16 bit stack pointer

16 bit program counter register

Memory location whose address is in HL

One of the registers A, B, C, D, E, H, L, or M

bit m of the register r 7 6

8 bit data quantity

16 bit address or data quantity (note:

8 bit port number

Restart number 0 thru 7

1

low byte is stored first)

NZ

not zero

Z

= 0

Z

zero

Z

= 1

NC

no carry

CY

= 0

C

carry

CY

= 1

PO

parity odd

P

= 0

PE

parity even

P

= 1

P

plus

S

= 0

M

minus

S

= 1

indirect reference

stack push operation

stack pop operation

is replaced by

is exchanged with

boolean NOT (bar above symbol)

boolean AND

boolean OR

boolean Exclusive — OR addition

two's complement subtraction

Data Transfer Group

Flags affected Z S P CY AC

Registers

affected

Bytes

Op code

Operands

Meaning

Action

r2

1

MOV

r2,r1

Move register r1 to register r2

r2-r1

r

2

MVI

r, data

Move immediate data

r <- data

rp

3

LXI

rp, datal6

Load register pair immediate

rp *~ data 16

A

3

LDA

addr

Load accumulator direct

A<- (addr)

3

STA

addr

Store accumulator direct

(addr) «- A

HL

3

LHLD

addr

Load HL direct

HL*- (addr)

3

SHLD

addr

Store HL direct

(addr) *- HL

A

1

LDAX

rp*

Load A indirect

A<-(rp)

1

STAX

rp*

Store A indirect

(rp) *- A

HL, DE

1

XCHG

Exchange HL with DE

HL <-» DE

*B or D only

Arithmetic Group

■J V V n/ st

yj V V V V

V VV si sj

V V V V V

V V V V V

V n/ sj v v VV V V n/

V

V V V v V

A,F

1

ADD

r

Add register

A^A + r

A, F

2

ADI

data

Add immediate

A <- A + data

A, F

1

ADC

r

Add register with carry

A + r + CY

A, F

2

ACI

data

Add immediate with carry

A^A + data + CY

A, F

1

SUB

r

Subtract register

A*-A -r

A, F

2

SUI

data

Subtract immediate

A <- A — data

A, F

1

SBB

r

Subtract register with borrow

A «- A - r - CY

A, F

2

SBI

data

Subtract immediate with borrow

A <- A — data - CY

r, F

1

INR

r

Increment register

r<- r + 1

r, F

1

DCR

r

Decrement register

r«~r-1 *

rp

1

INX

rp

Increment register pair

rp<- rp + 1 *binary si

rp

1

DCX

rp

Decrement register pair

rp «- rp — 1 *

HL, CY

1

DAD

rp

Add register pair to HL

HL*- HL + rp

A, F

1

DAA

Decimal adjust accumulator

The 8 bit number in A is adjusted to form two 4 bit BCD digits.

r

TERMINALS FROM TRANSNET

PURCHASE FULL OWNERSHIP AND LEASE PLANS

PURCHASE PER MONTH

DESCRIPTION PRICE 12 MOS. 24 MOS. 36 MOS

LA36 DECwriter II

51,595

S 152

S 83

$ 56

LA34 DECwriter IV

1,295

124

67

45

LA120 DECwriter III, KSR ...

2,295

219

120

80

LS120 DECwriter III, RO

1,995

190

104

70

LA180 DECprinter I, RO

1,995

190

104

70

VT100 CRT DECscope

1,695

162

88

59

VT132 CRT DECscope

1,895

181

97

66

TI745 Portable Terminal —

1,875

179

98

66

TI765 Bubble Memory Term.

2,795

267

145

98

TI810 RO Printer

1,895

181

99

66

TI820 KSR Printer

2,395

229

125

84

ADM3A CRT Terminal

875

84

46

31

QUME Letter Quality KSR

3,195

306

166

112

QUME Letter Quality RO

2,795

268

145

98

HAZELTINE 1410 CRT

895

86

47

32

HAZELTINE 1500 CRT

1,195

115

62

42

HAZELTINE 1520 CRT

1,595

152

83

56

Dataproducts 2230

7,900

755

410

277

DATAMATE Mini Floppy

1,750

167

91

61

FULL OWNERSHIP AFTER 12 OR 24 MONTHS 10% PURCHASE OPTION AFTER 36 MONTHS

t<

ACCESSORIES AND PERIPHERAL EQUIPMENT

ACOUSTIC COUPLERS • MODEMS • THERMAL PAPER RIBBONS • INTERFACE MODULES • FLOPPY DISK UNITS

PROMPT DELIVERY • EFFICIENT SERVICE J

I

IransNet Corpora tion

2005 ROUTE 22, UNION, N.J. 07083

201-688-7800

NEW!

779 Line Printer Timer

Works with TRS-80® and Centronics® 779 Line Printers Turns Motor on and off Automatically

No software or hardware changes needed. Saves motor life and power. Just solder 3 wires and mounts inside printer. Dealers wanted, inquire on company stationery, also O.E.M. and service accounts wanted. $75.00 complete with one year warranty. Make checks payable to:

Digital Timing Devices 4306 N.E. 6 Ave. Ft. Lauderdale, FL 33334 USA Phone # (305) 561-3757

Division of D.S.S.I. • These are registered trademarks for Radio Shack & Centronics.

Circle 373 on inquiry card.

Circle 102 on inquiry card. July 1979 © BYTE Publications Inc 223

Logical Group

Flags affected Z S P CY AC

Registers

V V V

V V V

V V V

V V V

V V V

V V V

V V V V V

V V V V V V V V

V 1

affected

Bytes

Op code

Operands

Meaning

Action

A, F

1

ANA

r

AND register

A*-AAr

A, F

2

ANI

data

AND immediate

A^-AA data

A F

1

X RA

Fxrlllsivp —OR rpniltpr

A <- A¥ r

A, F

2

XRI

data

Exclusive -OR immediate

A «- A V data

A, F

1

ORA

r

OR register

A*- A V r

A, F

2

ORI

data

OR immediate

A *- A V data

F

1

CMP

r

Compare register

(Z = 1 if A = r) (CY =1 if A < r)

F

2

CPI

data

Compare immediate

(Z = 1 if A = data) A_data (CY = 1 if A < data)

A, CY

1

RLC

Rotate left

An+1-AnArA7-CY*-A7

A, CY

1

RRC

Rotate right

An^An + 1'A7^A0-CY^A0

A, CY

1

RAL

Rotate left through carry

An+1<-An'CY*-A7'A0^Y

A, CY

1

RAR

Rotate right through carry

An-An+1,CY-AQ,A7-CY

A

1

CMA

Complement accumulator

A*- A

CY

1

CMC

Complement carry

CY*-CY

CY

1

STC

Set carry

CY<-1

Branch Group

Flags affected Registers

affected

Bytes

Op code

Operands

Meaning

Action

PC

3

JMP

addr

Jump

PC <- addr

PC

3

Jcc

addr

Conditional jump

PC *- addr (if cc true)

PC, SP

3

CALL

addr

Call

-(SP) <- PC, PC <- addr

PC, SP

3

Ccc

addr

Conditional call

-(SP) <- PC, PC*-addr (if cc

true)

PC, SP

1

RET

Return

PC*- (SP) +

PC,SP

1

Rcc

Conditional return

PC <- (SP)+ (if cc true)

PC, SP

1

RST

n

Restart

-(SP) <- PC, PC*-8n

PC

1

PCHL

Jump HL indirect

PC*- HL

Flags affected

Stack, I/O, and Machine Control Group

Registers

affected

Bytes

Op code

Operands Meaning

Action

SP

1

PUSH

rp* Push register pair

-(SP) «- rp

SP

1

PUSH

PSW Push processor status word

-(SP) *- A, F

SP, rp

1

POP

rp* Pop register pair

rp*- (SP)+

SP, A, F

1

POP

PSW Pop processor status word

A, F «- (SP) +

HL

1

XTHL

Exchange stack top with HL

HL*-^ (SP)

SP

1

SPHL

Move HL to SP

SP*- HL

A

2

IN

pp Input

A *- (pp)

2

OUT

pp Output

(pp) *- A

1

El

Enable interrupts

Enable interrupts after execu

tion of next instruction.

1

Dl

Disable interrupts

Disable interrupts after execu

tion of this instruction.

1

HLT

Halt

Stop the processor (may be

started again only by interrupt

or hardware restart).

1

NOP

No Operation

No operation is performed.

* B, D,or H only

224 July 1979 © BYTE Publications Inc

Headwind Progress Made

In "Computer Assisted Flight Planning " (March 1979 BYTE, page 206), the author did, indeed, identify a problem suited for the computer. One aspect of the article is unclear and I would like to suggest a solution to the headwind/tailwind limitation described by the author.

The unclear aspect of the article relates to the two pass system. Such a system is not really necessary as the author has already solved the problem. The drift equation is the exact solution of the velocity vector triangle for the crab angle (angle at which the plane must be turned so that the resultant forces of the wind and airplane produce travel in the desired direction). In other words, the drift plus the true course heading yields the true heading to be taken. The given equation is instructive in that all elements are included for students to identify. However, for programmable calculators with very limited program steps, this equation can be shortened by using the identities:

s'm(-x)=-sin(x) and

sin(x±180)=-sin(x). This yields:

drift= sin"1 Q*g! x sin (wind-true)]

where wind direction is defined as the direction from which the wind is coming.

The author, in solving the velocity vector triangle for the ground speed, uses the Law of Sines. This introduces the limitation that the equation cannot be used for direct tail wind or head wind situations, since a nonphysical answer results from division by zero (sin (0) = 0). The use of the Law of Cosines avoids this problem and yields:

GS

-X

(TAS)2+W2-2(W) (TAS) cos (WD - TC ■

CA)

where:

GS =

TAS =

W =

WD =

TC =

CA =

ground speed, true air speed, wind speed,

wind direction (the direction from which the wind is coming), true course heading, crab angle ■

Bruce Ronald Fiene Commercial Pilot, ASMEL Instrument 408 Big Stone Dr Xenia OH 45385

64KB MICROPROCESSOR MEMORIES

• S-100 - $695.00 • SBC 80/10 - $750.00

• LSI 11 - $750.00 • 6800 - $750.00

CI-S100 64K x 8

CI-1103 32K x 16

" >iiiiiiF!mmiiiiM!!iiiiiTlli!iiii! CI-6800 64K X 8

CI-8080 64K x 8

CI-S100 — 64K x 8 on a single board. Plugs directly into the IMSAI, MITS, TDL, SOL and most other S-100 Bus computers. No wait states even with Z80 at 4Mhz. Addressable in 4K increments. Power requirement 6 watts. Price $695.00.

CI-1103 — 8K words to 32K words in a single option slot. Plugs directly into LSI 11, LSI 11/2, H11 & PDP 1103. Addressable in 2K increments up to 128K. 8K x 16 $390.00. 32K x 16 $750.00 qty. one.

CI-6800 — 16KB to 64KB on a single board. Plugs directly into Motorola's EXORcisor and compatible with the evaluation modules. Addressable in 4K increments up to 64K. 16KB $390.00. 64KB $750.00.

CI-8080 — 16KB to 64KB on single board. Plugs directly into Intel's MDS 800 and SBC 80/10. Addressable in 4K increments up to 64K. 16KB $390.00. 64KB $750.00

Tested and burned-in. Full year warranty.

Chrislin Industries, Inc.

\ j Computer Products Division

31352 Via Colinas • Westlake Village, CA 91361 • 213-991-2254

Circle 47 on inquiry card.

July 1979 © BYTE Publications Inc 225

Subroutine Parameters

W D Maurer University Library Bldg Room 634

George Washington University Washington DC 20052

If you've written computer programs in any language, you must be aware by now what a subroutine is, although you might not have written any. The basic concept of a subroutine is present in all computer languages, although every language implements it a bit differently from the others. In systems based on the 8080, the 8085, or the Z-80, you write CALL SUB to call the subroutine called SUB. On the 6800 and the 6502, it's JSR SUB, while in BASIC it's GOSUB a where the first statement of the subroutine SUB is on line number a. But regardless of the language, the concept is the same: you have something in your program that you want to do more than once. It may be looking up an element in a table; it may be printing out a list; it may be making an access to a data structure; but whatever it is, you need it at various times in your program. You don't want to have to write out the same instructions over again every time you need that particular job to be done, because this is wasteful of memory space. So, therefore, you group together the instructions that do this job into ^subroutine, and then, at any point that you want the job to be done, you put in an instruction to call the subroutine. When the subroutine is finished, it returns to the point immediately following the place where it was called; and this is also done differently in different programming languages - one writes RETURN in BASIC, RET for the 8080 and Z-80, and RTS (return from subroutine) for the 6800 and 6502.

All this is fine if the job you want to do repeatedly is exactly the same every time you want to do it. But, in practice, this is usually not the case. For example, if you are looking up an element in a table, you are probably looking up a different element each time. If you are multiplying two 16 bit quantities — a very common subject for a small system subroutine — the quantities you are multiplying are probably not the same from one multiplication to the next,

and the result is also probably not the same variable. This is true even though the logic of multiplication does stay the same. It is this that has led to the idea of subroutine parameters, the subject of this article.

Parameters

In applied mathematics, there is a concept of parameter which will be familiar to those small system users who have backgrounds in engineering or physical science. Consider, for example, the graph of a function. You are usually expressingy in terms of x, but if you are constructing the graph of a circle, it is sometimes more useful to introduce another variable 8 to represent the angle, and then to express both x and y in terms of 6. The variable d, in this context, is called a parameter. In computer programming, however, whether on large systems or small ones, the word "parameter" has a more general meaning, and one which does not require any knowledge of applied mathematics; it is simply any variable which is used by a subroutine, and which is supplied to that subroutine by the program that calls it.

Parameters of subroutines are related to arguments (sometimes also called parameters or formal parameters) of functions. If you have a function f(t) or g(a, b) or h(x, y, z), then t, a, b, x, y, and z are the arguments. On a computer, the value of a function is computed by a subroutine, and this must be considered as one special kind of subroutine. Some languages allow you to use functional notation for functions; thus h(x, y, z) might be FNH(X, Y, Z) in BASIC, for example (provided that the definition of h was simple enough). In assembly language, however, one generally uses the same instructions (CALL, JSR, or whatever), whether one is calling a subroutine to calculate the value of a function, or a more general subroutine.

Those who work with big computers have laid out a considerable amount of terminology dealing with parameters and how they are supplied, or passed, to a subroutine by the program that calls it (and sometimes vice versa). One of the purposes of this article is to lay out this terminology for the small system user so that he or she will not have to reinvent the wheel. It should be emphasized that, for a long time, mathematicians be

226 July 1 979 © BYTE Publications Inc

lieved that there ought to be a single concept of parameter that would work well in all situations. Gradually we have come to realize that there are at least four, and probably a good deal more, reasonable implementations of parameter passing. These will be detailed in what follows.

Two Examples

To illustrate why the concept of parameter differs from one situation to another, let us consider two simple subroutines: an output subroutine and a multiplication subroutine. The output subroutine will be called OUTPUT(X), and its job will be to output the character X. The multiplication subroutine will be called MULT16(I, J, N), and its job will be to multiply the two 16 bit quantities I and J, producing the result N. The problem we are to solve is how to call OUTPUT(Z), OUTPUT(Q), and so on, for various characters we wish to output, and similarly MULT16(A, B, C), MULT16(U, V, W), and so on, for various multiplications we wish to perform.

Consider first the case of the output subroutine. Suppose that in this subroutine there is a variable called X. In order to output Z, for example, we move Z to X just before calling OUTPUT. The same sort of thing will work for Q, or any other character we wish to output. This method of passing parameters is known as call by value. It may be defined more formally as follows. Suppose we have a subroutine such as OUTPUT(X), where X stands for any parameter, such as Z or Q, that might actually be supplied. Here Z and 0 are called the actual parameters, and X is called the forma/ parameter. Then call by value consists of:

1. Moving the value of the actual parameter to the formal parameter. (If there is more than one formal parameter— as in the case of a function h(x, y, z) — then they must all be moved.)

2. Calling the subroutine.

In assembly language it is very common for X, in a situation such as the above, to be a register. Then all we have to do is to load the register before we call the subroutine; the subroutine assumes that Z, or Q, or whatever stands for X, is in that register. (On the 8080, the Z-80, the 6800, and the 6502, the most common register used for this purpose is the A register, although ISIS, the operating system for the Intellec, which is an 8080 based system, uses the C register.)

If we now look at MULT16, however, we can see without too much trouble that call

by value doesn't work. Let us see why not by laying out a specific example. Suppose we are calling MULT16(U, V, W), where MULT16 has been defined as a subroutine with parameters I, J, and N. That is, I, J, and N are the formal parameters, while U, V, and W are the actual parameters. To use call by value, we would first have to move the values of U, V, and W into I, J, and N. That is, U would be moved to I; V would be moved to J; and W would be moved to N. Now we would call the subroutine; and the subroutine, we are assuming, multiplies the 16 bit quantities I and J and sets N equal to the result.

What is wrong with this? Since we were calling MULT16(U, V, W), what we presumably wanted was to multiply the two 16 bit numbers U and V, and set W equal to the result. It is not too hard to see that we did, actually, multiply U by V, because we set I equal to U, and J equal to V, and then we multiplied I by J. But what happens to W? We set N equal to the result of multiplying U by V; but we didn't set W equal to anything. (We also, earlier, set N equal to W — an unneeded and useless operation.) The general situation here is that whenever we have a formal parameter that is set to some new value by a subroutine, call by value will not work; the formal parameter will not be set to the new value (or to any new value).

Because of this, people who work with big computers came up with three alternative methods of passing parameters. The first of these is known as call by value and result (or sometimes, informally, as "copyrestore"). The second is known as call by reference (or sometimes "call by address" or "call by location"). The third is known as call by name. We shall take up each of these in turn.

Call by Value and Result

Call by value and result is a rather straightforward way of fixing the bug in call by value that should be evident from the preceding discussion. In fact, what we wanted to do in our MULT16 subroutine was as follows:

1. Set I equal to U and J equal to V.

2. Call the subroutine (which multiplies I by J, giving N).

3. Set W equal to N.

In other words, there are two parameterpassing operations — one just before the subroutine starts, the second one after it ends — and one is the reverse of the other. In the first operation, we move actual parameters to formal parameters. In the second opera

tion, we move formal parameters to actual parameters. The parameters we move the first time are the ones that are used by the subroutine; the parameters we move the second time are the ones that are set by the subroutine.

But how can we tell which parameters are used and which ones are set? It won't always be the case that the first two are used and the last one is set (if there are three altogether). They might all be used, or two of them might be set, or any number of possible combinations. Again, there is more than one reasonable solution to this problem.

The solution chosen by the designers of a number of computer languages in widespread use by the American military establishment (NELIAC, JOVIAL, CMS-2) was to build the distinction between used and returned parameters into the syntax of the language. In other words, when you call a subroutine in any one of these languages, you would have to specify, in some way, which of these you intended to be used and which you intended to be returned. (JOVIAL, for example, uses a semicolon; we would speak of MULT16(U, V; W), for example, where the semicolon separates the used parameters U and V from the returned parameter W.) This certainly solves the problem, although only if you are going to use call by value and result, at the cost of making life a trifle more complicated for those who don't want to have to worry about how parameters are passed.

The other solution, chosen by IBM, is to regard all parameters as both used and returned at all times. This may seem a bit wasteful, but in fact, compared to call by reference (to be described below), it is more efficient, most of the time. It does, however, lead to some strange and unusual results, the most famous of which may be illustrated as follows. Suppose we have a subroutine D(X, Y), where X and Y are the formal parameters, and suppose that this sets X to zero and does not change Y. Now suppose that we call D(L,L). Of course, we would like this to set L equal to zero. But see what happens:

1. Since X and Y are treated as both used and returned, our first step is to set X equal to L and Y equal to L.

2. Now we call the subroutine, which sets X equal to zero and does not change Y.

3. Finally, we return the actual parameters. First we return X by setting L equal to X. Since X is now zero, this will set L equal to zero, which is exactly what we wanted. But now we return Y by setting L equal to Y. Since Y is still the original value of L, this will undo the previous result, and

the final outcome will be that L is the same after calling D as it was beforehand!

The behavior illustrated above can be avoided simply by setting LI equal to L and then calling D(L, LI), rather than D(L, L). In general, when using call by value and result, with all parameters used and returned, one should never use two actual parameters which are the same. The problem above actually happened to a student of this author, who wrote a big FORTRAN program that ran on the CDC 6400, a computer using call by reference — to be described below— but mysteriously failed to run on the IBM 360, a computer using call by value and result. Many hours of analysis traced the bug to a subroutine call like D(L, L) above.

Call by Reference

Call by reference, historically, preceded call by value and result, although it was not known by that name at that time. The idea of call by reference is to give the subroutine the addresses of its parameters, rather than their values. Then, when the subroutine either uses or sets one of its formal parameters, it does so by making a reference to that address. Let us see how this would work on a small system:

1. On the 8080, you can load the HL register pair with the address of the parameter a with the instruction LXI H, a just before calling the subroutine. Then, in the subroutine, if you need to load this parameter into any register r, you can use MOV r,M; if you need to operate on it arithmetically, you can use ADD M, SUB M, ANA M, and the like; if you need to set it to a new value which is now in register r, you can use MOV M,r. If you need the HL register pair for other purposes in your routine, you can do an XCHG if you don't need the DE register pair, or you can PUSH H while you use HL and POP H afterward. If there are two parameters, you can load one into HL with LXI H, a as before, and load the other one into BC or DE. If there are several parameters, you can push their addresses onto the stack before calling the subroutine, and pop them back within the subroutine.

2. On the 6800, you can load the X register with the address of the parameter a with the instruction LDX # a (where the # specifies an immediate addressing instruction) just before calling the subroutine. You can now use indexed addressing instructions to manipulate the parameter by loading it (LDAA 0,X or LDAB 0,X), storing it (STAA 0,X or STAB 0,X), or performing arithmetic operations such as ADDA 0,X or ANDB 0,X.

228 July 1979 © BYTE Publications Inc

If there is more than one parameter, you can move the addresses of all the actual parameters to fixed locations within the subroutine before calling it. The subroutine can then load each of these into the X register when needed, after which any of the indexed instructions discussed above may be used.

3. On the 6502, there is a general method involving loading the X register, just before calling the subroutine, with the address of a table of addresses of actual parameters. That is, we execute LDX #a where we have written (in page zero):

DFB DFB DFB DFB DFB DFB

U MOD 256

U/256

V MOD 256

V/256

W MOD 256

W/256

for example, defining a byte for the low order address and then for the high order address of each of the parameters U, V, and W. One can then make reference to the actual parameters by indexed indirect addressing: LDA (0,X) for U, LDA (2,X) for V, and LDA (4,X) for W. This is perfectly general, since LDA (load) can be replaced by STA (store), ADC (add with carry), CMP (compare), AND, and so on.

4. On the Z-80, you can (as always) mimic the 8080, or you can use registers IX and IY to contain the addresses of parameters.

An additional advantage of call by reference is that it allows you to have, as a parameter, the name of an array. For example, you might be writing a subroutine to compare two character strings to see if they are the same. There would be two parameters, namely the two character strings. If you used call by value, you would have to move these entire strings into new locations just before calling the subroutine. This would be wasteful of both time and space, and is, in fact, never done; even systems that use call by value or call by value and result, if they allow array names as parameters, use call by reference (or call by name, to be discussed below) for these. Thus you would only be passing, from the program to the subroutine, the two string starting addresses; that is, for each string, the address of its first byte.

One important source of confusion, when call by reference is used, has to do with how to return a parameter. A large number of programmers try, when they are writing a subroutine, to have it put its answer "somewhere" and then furnish the main program with the address of where that "somewhere"

is. This never works, because the main program has no way of using that information. It is not up to the subroutine to tell the main program where the information is to be returned; it is up to the main program to tell the subroutine where to return the information, and then the subroutine must return the information to that point. In particular, the subroutine will never be right if it returns a parameter to a fixed location. When writing a subroutine, if call by reference is used, it should be remembered that this subroutine can be called more than once, with different actual parameters each time, and therefore, when it changes the value of one of its actual parameters, that change must be made by storing this new value in an indexed location — where the index is normally the HL register pair on the 8080, the X register on the 6800 and 6502, and (possibly) the IX or IY register on the Z-80.

Call by reference is, in general, more inefficient than call by value and result, particularly if we make reference to a parameter inside a loop. One technique that has been tried on big computers, and works rather well for subroutines that take large amounts of time, is address modification. This involves storing the addresses which are passed as parameters directly into the instructions that use them. Unfortunately, this technique is inappropriate in most microcomputer systems, where the instructions are in read only memory and thus cannot be modified as the program is running. It should also be mentioned that on some systems which use both call by reference and call by value and result, the second of these is implemented as a special case of the first. That is, it is always the addresses, or references, that are passed (so that there is only one kind of standard subroutine protocol rather than two), but, whenever call by value and result is to be used, the subroutine — rather than the main program - performs the setting of formal parameters to actual parameter values and vice versa.

Call by Name

This brings us, finally, to call by name — the easiest to define, and yet the hardest to understand, of the better known parameter passing methods. For years, call by name was a pons asinorum among big computer software people; that is, the way of distinguishing the bright from the dumb, or the "with-it" from the "not-with-it," was whether you understood call by name. Lately there has been a bit less interest in call by name among practical computer people, since, although it was used in ALGOL 60, one of the first big computer

July 1 979 © BYTE Publications Inc 229

languages (in both senses-big [computer languages] and [big computer] languages), it has not been used in most languages developed since then. But an understanding of it, and of some of the problems that arise with it, is still essential to the amateur as well as the professional computer scientist.

Call by name is defined as follows. Suppose I have a subroutine with a formal parameter X. Suppose I call this subroutine, with actual parameter Y. Then call by name implies that the subroutine is executed as if we had gone through it and substituted Y for every occurrence of X.

There is one important proviso to the above, which may be illustrated as follows. Suppose that in the subroutine we have A = B-X. Suppose now that the actual parameter is not Y, but rather U+V. (It is quite permissible to call SUB(U+V), for example, where SUB is the name of a subroutine.) Now we would like to proceed as if A = B-X really means A = B-(U+V); but if we substitute U+V for X, as in the above definition, we obtain A = B-U+V, which is not quite the same. Therefore we need to change the definition so as to specify the insertion of parentheses. On the other hand, it should also be clear that we do not want to insert parentheses all the time. For example, the variable A could have been the formal parameter, rather than X. In this case, the actual parameter could not be U+V, because then A = B-X would be interpreted as (U+V) = B-X, which makes no sense. But suppose the actual parameter is Y, just as before; we still don't want to write (Y) = B-X (with parentheses) in BASIC or any other algebraic language. Therefore the rule is that the actual parameter is substituted for the formal parameter, inserting parentheses wherever syntactically possible (this is the phrase used in the definition of ALGOL 60).

So long as the actual parameters are not expressions like U+V (or like A(l), which could be either a subscripted variable or a reference to a function), call by name is almost identical to call by reference. Therefore, in studying the differences between the two, we have to look at the general rules for handling actual parameters which are expressions. These are that an actual parameter cannot be an expression (other than a single variable, either subscripted or not) when the corresponding formal parameter is returned, as we have illustrated above with the formal parameter A and the actual parameter U+V; and, of course, a formal parameter can never be an expression.

Suppose now that in our subroutine we have S = S+X, where X is a formal parameter, and the corresponding actual parameter is A(l). (This is a simplification of an

actual example given with the definition of ALGOL 60.) Therefore S = S+X becomes S = S+A(I). But now suppose that we want to do this for 1 = 1 to 10. That would be, presumably, a way of adding the numbers A(1) through A(10), if S were originally set to zero. If we use call by reference, however, this won't work. In call by reference, the address of the actual parameter - in this case, the address of A(I) — would be given to the subroutine. When the subroutine does S = S+X, it would get X from the location which has that address. But that location is a constant location - the location, in fact, of A(l) where the variable I has whatever value it had before the subroutine was called. This means that we add X ten times, whatever X is, and in this case we add the same value of A(l) ten times, rather than adding A(1) through A(10).

How would we implement call by name? In the above case, when the subroutine does S = S+X, it has to have a way of finding out whether X will stand for a different variable each time. Therefore it loads S and then calls a subroutine to find the value of X, which it then adds and stores the result in S. This means that it is the address of the start of this subroutine that is passed, rather than the address of X itself as in call by reference. (This is known as Jensen's device, after a programmer at Regnecentralen, or the National Computer Center of Denmark, who used it in implementing ALGOL 60.) We should remark that there is another entirely different way of implementing call by name, which is to replace each call to a subroutine, separately, by the subroutine with the substitutions performed as discussed above. This won't work for ALGOL 60, because it won't work, in general, for recursive subroutines, and it also takes up quite a bit of space if the subroutines are long.

Call by name is considerably less efficient than the other methods we have discussed, which is a big reason for its general decline. Nevertheless, it has its own unexpected advantages. Let us consider a subroutine like D(X, Y), which we discussed earlier, but this time suppose that it simply uses X and does not use Y, and let us call D(A, F(B)), where F(B) is a reference to a function. Suppose further that the calculation of F(B) (for some reason) gets the computer into an endless loop. If we use call by name, then, since we never use Y, we have no occasion to call the subroutine that calculates Y — that is, we never call F(B). If we use call by value, however, the first thing we do is to set X equal to A and Y equal to F(B). The result is that we get into the endless loop, in this case, if we use call by value, but not if we use call by name. ■

230 July 1979 © BYTE Publications Inc

Languages Fonum

Circl

A "Tiny" Pascal Source Creator

Thomas W Phillips MD RD 1-551 Chenango Lake Rd Norwich NY 13815

I would like to thank you for publishing "A 'Tiny' Pascal Compiler" by Kin-Man Chung and Herbert Yuen (September, October and November 1978 BYTE). I now have the compiler working without problems on my 8080 system (Altair with North Star Disk). It is a fascinating way to learn about compilers and Pascal.

I am not sure how Mr Chung and Mr Yuen create their Pascal source programs; however, listing 1 shows my method of creating the Pascal source. Editing is easy with North Star BASIC.

Listing 7

100 110 120 130 140 150

DATA '

DATA

DATA

DATA

DATA

DATA

! CALCULATE SQUARE. ! ' VAR A,B:INTEGER; " BEGIN " READ (B#); " A:=B*B; " WRITE (13,10); " WRITE SQUARED IS

A#, 13,10); " DATA " CALL (%0800) " DATA " END. " DATA " " DATA " XX "' DIM A$(100) A$ =" " OPEN #1,"A" READ A$

IF A$ |1,2)="XX" THEN 290 260 WRITE #1 ,A$,NOENDMARK 270 A$ =" " GOTO 240 CLOSE #1

CHAIN " PASCAL "

160 DATA

170 180 190 200 210 220 230 240 250

280 290 300 READY RUN

PASCAL & PASCAL 2 P-CODES STARTS AT 0000

use TRcopy

WITH YOUR LEVEL II TRS-80*

TRcopy is a cassette tape copying system thut lets you SEE what your computer is reading.

COPY ANY CASSETTE TAPE**

With the TRcopy system you can copy any TRS80 Level II cassette tape whether it is coded in Basic or in machine language. You can also copy data created by programs and you can copy assembler listings.

YOU CAN SEE THE DATA

As the tape is being loaded, you can SEE the actual data byte-for-byte from the beginning to the end of the program. Up to 320 bytes arc displayed at one time. ASCII characters are displayed on the first line and hexadecimal code is displayed on the following two lines. Data is displayed exactly as it is input including memory locations and check sums.

IDENTIFY PROGRAMS

With TRcopy you can identify programs on cassette tapes without written documentation because you can SEE the filename. If you forget to label a tape, you can use TRcopy todisplay the tape contents and identify the cassette,

VERIFY CASSETTE TAPES

With TRcopy you can verify both the original tape and the tape copies. You can make certain that your machine reads the original tape correctly and that it makes byte-for-byte copies. TRcopy also counts as it reads giving you the exact length of the data.

HAKE BACKUPS FOR YOUR PROGRAMS

Now you can make backup copies ofyourvaluable programs. Many times a cassette that you make will load better than one that is mass produced. The original can then be kept as a backup in case the copy is damaged.

MAKE COPIES OF YOUR SOFTWARE

If you are in the software business you can use TRcopy to make tested copies of your programs for sales distribution. TRcopy produces machine language tapes that are more efficient than those produced by the assembler itself.

RECOVER FAULTY DATA

With TRcopy you can experiment with the volume and level controls andyou canSEE what the computer is reading—even if your computer will not read the data through normal read instructions! In this way it is possible to read and copy faulty tapes by adjusting the volume control until you SEE that the data is input properly.

SIMPLE - FASCINATING - FUN

TRcopy is not only a practical utility program.lt is also a fascinating graphics program that lets you SEE, for the first time, cassette data as your computer is reading it. And it's as simple as 1-2-3. Just load, verify and copy. You will now be able to use cassette tapes with confidence knowing that TRcot)y is there when you need it.

The TRcopy system is a machine language program with documentation explaining tape leaders, sync bytes, check sums and other formatting conventions. With the TRcopy system, you can SEE what you are doing!

TRcopy System Including Cassette Tape and Docunc

QQ95

0 $A

0 I CALCULATE SQUARE. !

0 VAR A,B:INTEGER;

1 BEGIN

1 READ (B#); Listing 7 continued on page 232

pj xy J post

Orders accompanied by money order N—~ ^ ' PAID

or cashier's check moiled lame day.

Orders poid by other check shipped in 14 days. No COD's Return within 10 day* for a full refund If you are not satisfied.

N.D. Orders Add 'TRS-80 is a trademark "You cannot copy the Z% Sales Tax. of the Tandy Corporation. TRcopy cassette,

Data/Print

DEPT.BT, BOX 903. FARGO, N.D. 58107

k

July 1979 ©

Circle 78 on inquiry card.

G

nil

c KIM ANALOG INPUT

Analog to Digital Conversion System for the KIM Computer

Give Uie KIM Uie ability to sense* measure* and control the world around it with DArt SYSTEMS nodules. Just plus the KIMSET1 into the KIM to set 16 channels of analog input. 9crew terminals are provided for each channel so you can hooK up Jo*=tsticKs* polsi or whatever appropriate sensors uou have.

Each of the 1A analog inputs* in the ranae of O to 5.12 volts* is converted to a decimal number between 0 and 255 ( 20 millivolts per count). Conversion time is 100 microsconds.

The K1MMOD provides one user port as well as a DAM SYSTEMS port.

Software is provided.

KIMSET \

1 -AIM161 - 16 ANALOG INPUTS 8 BITS 100 MICB0SEC

1-KIMM0D

1-CABLE A24 - 24 INCH INTERCONNECT CABLE 1-MANM001

1-P0W1 -POWER MODULE

KlMSET1 o for 110 VAC $ 283 KIMSETta for 230 VAC $295

Ord.r dirsci or contact your loc»l campultr itor».

CONNECTICUT microCOMPUTER, Inc. 150 P0C0N0 ROAD BR00KFIELD, CONNECTICUT 06S04

TEL: 1203) 775-9659 TWX: TLX: 7104560052

Listing 1 continued

from page 231:

4 A:=B*B;

8 WRITE 113,10);

12 WRITE (B#,'SQUARED IS',A#, 1 3,1 0); 34 CALL{%0800) 36 END.

PC0DTR & PC0DTR2

*** P-C0DET0 8080 TRANSLATION **'

PAS.LIB = 1A00

P-CODE = 0000

8080 OUTPUT =0800

STACK START ADDRESS = 8000

STACK END ADDRESS = A000

2 REFERENCES

2 ACTUAL LABELS

0 0809 09 OF 12 18 1A 1D 20 26 2C 2F 35 38 3E 41

1 5 0847 4D 53 59 5F 65 6B 71 77 7D 83 89 8F 52 58 30 085B 61 64 6A 6D 73 76 79

0 FORWARD REFERENCES P-CODE.. 37 INSTRUCTIONS 8080.. 121 BYTES P-CODE:8080 = .81756757 * END TRANSLATION * READY

BYE

*LF PAS.LIB 1 A00

*JP0800

?1

1 SQUARED IS 1 12

2 SQUARED IS 4 •

FOR PET, TRS 80, COMPUCOLOR.

COMPOSER (to create your own BASIC sound subroutines) and instructions. Unit has volume control, earphone jack, connectors. 1 year warranty. $29.95 for PET & TRS-80 Level II. $39.95 For Compucolor II (includes Diskette).

SOUND WARE SOFTWARE FOR 8K PET!

Compatible with all CB-2 sound devices. Features sound, super graphics, instruction booklet. 90 day warranty.

1. ACTION PACK—Breakthru (8 versions)/Target/ Caterpillar

2. THE CLASSICS—Checkers (8 versions)/ Backgammon/Piano Player

3. WORD FUN—Speller (4 versions)/Scramble/ Flashcard

$9.95 per pack. More sound programs coming: TRS-80 and Compucolor, too!

To Order: Send to CAP Electronics. Dept. B . 1884 Shulman Ave.. San Jose. CA 95124. or call (408) 371-4120. VISA/Master Charge accepted. No charge for shipping when payment is included. Please add 15% for C.O.D. Calif, residents add 6% tax. Prices subject to change without notice

DEALER & DISTRIBUTOR INQUIRIES WELCOME

PROCONSUL

A COMPUTER STIMULATION CAMS

A long time ago, in a galaxy far, far away, there was a planet... This planet was very much like the Earth at the time of Julius Caesar: A time of some technical ability, but more a time of vaunting ambition; a time of desiring not only to see the other side of the hill, but to conquer it as well.

There are 210 provinces on the PROCONSUL world of various sizes, types and resources. Each player starts with four provinces and vies with the other players, the weather, the possibility of revolt or plague in building an economy and an empire. The goal? To conquer more than half of the provinces on the PROCONSUL world.

PROCONSUL is a true simulation game. Each player has control over farmers, artisans and basic workers and can assign them to various tasks, assign them to another labor category, move them to other provinces or draft them into the military. The player can manipulate the production and distribution of the commodities produced by the labor units. In a battle not only are the relative sizes of the opposing forces taken into consideration, but the morale and experience of each army as well.

PROCONSUL is $1.50 per turn, with turns every three to four weeks. Cost to enter a PROCONSUL game is $10, which includes a $4 setup fee, the first four turns, and a copy of the rules. Individual copies of the rules are available for $1.00, which will be credited to anyone who then decides to play in a game. Games are starting all the time and there are no long delays about getting into one.

For further information, or to join a game write to:

NIX OLYMPICA PROCONSUL P.O. Box 33306 Phoenix, AZ 85067

232 July 1979 © byte Publications inc Circle 40 on inquiry card

Circle 286 on inquiry card.

Digital Introduces LSI-11/23 and PDP-11/23 Microcomputers

This new microcomputer called the LSI-11/23 from Digital Equipment Corp, 146 Main St, Maynard MA 01754 has the funtionality and software compatibility

of a midrange minicomputer, yet it consists of two 5.2 by 8.9 inch (13.42 by 22.61 cm) boards and backplane. A rack mountable, packaged version, the PDP-11/23, has also been announced. Both versions can run the RSX-11M and 11S operating systems that were previously available

only on mid to high-range PDP-11 minicomputers.

The LSI-11/23 features 256 K bytes of memory capacity. It uses the full instruction set of the PDP-11/34 minicomputer, and software supported memory segmentation and protection features of the RSX-11M and 11S multitasking, multiuser operating systems. The LSI-11/23 has the same small size circuit boards as the LSI-11/2, which permit easier placement in instruments and specialized systems. The LSI-11/23 has an optional floating point processor integrated circuit.

Besides accommodating RSX-11M and 11S software, the LSI-11/23 and PDP-11/23 run all software developed for the LSI-11 family without modification. This includes the RT-11 operating system and high level languages such as BASIC, FORTRAN IV and FOCAL. The LSI-11/23 is at least twice as fast as previous LSI-11 family members.

The system is plug compatible with the entry level LSI-11/2. It is also software compatible with the LSI-11/2 and PDP-11 minicomputers.

In 100 unit quantities, the LSI-11/23 and PDP-11/23 are priced at $1,758 and $4,500 respectively. The single unit price of the PDP-11/23 is $6,800. A new programmable read only memory board for $300 and programmable read only memory programmer for $1,975 have also been introduced.

Circle 623 on inquiry card

Design, Build and Test Circuits With BredBord Kits

These BredBord kits are prototype design aids developed to simplify circuit design and building, and testing and wiring without patch cords or solder. The 8 BredBord kit models are assembled on heavy duty, glass epoxy boards, copper clad on each underside for ground plane. They feature color coded, insulated binding posts and rubber mounting feet; and a designated number of test points and capacities for multi-pin dual-in-line package integrated circuits. Each of the kits is made to interface with meters, scopes and other devices. The packages are produced in three types to accept different BredBord sizes. For further information, contact Herman H Smith Inc, 812 Snediker Av, Brooklyn NY 11207.

Circle 624 on inquiry card.

July 1 979 © BYTE Publications Inc 233

Circle 313 on inquiry card.

TRS-80 LEVEL II AND DOS

COMMAND PROCESSOR 1C0MPR0C' '"NEW PRODUCT*"

Automatically load and execute any sequence of System and/or

BASIC programs and data from power up.

Command files created, saved, and edited in BASIC.

Sophisticated options include interactive prompting and substitutional

parameters. Allows non-computer personnel to easily execute programs RENUMBER WITH 'REMODEL' - MERGE WITH 'PROLOAD'

REnumber any section or an entire program.

MOve program segments. DELete program lines.

All line references readjusted as required.

COMBINE programs with renumber and merge.

LOAD or SAVE any portion of program from tape.

GENERAL SUBROUTINE FACILITIES 'GSP

Collection of fast easy-to-use machine language routines.

IN-MEMORY SORT with multiple variables and keys.

SORT 1000 - Element array in 9 seconds.

ARRAY read/write to tape, compress/uncompress/move data.

SCREEN scrolling, save screen displays, and more

DISK SORT PROGRAM 'DOSORT

SORT/MERGE multi-diskette sequential files.

MULTIPLE variables and keys. User input/output sort exits.

Includes GSF machine language in-memory sort, etc. 32 or 48K.

COPY SYSTEM TAPES WITH 'COPSYS'

Dealer Inquiries Invited

REMODEL Order TS21D at $24.95

REMODEL + PROLOAD Order TS22D at $34.95

GENERAL SUBROUTINE FACILITIES Order TS25D at $24.95

DISK SORT PROGRAM Order TS260 at $34.95

Must specify 16,32, or 48K on above. System house discounts.

COMMAND PROCESSOR (DOS ONLY) Order TS27D at $19.95

COPSYS (Not DOS) Order TS24D at $14.95

For TAPES thai TEST best Order 10 ea at $14.95

E~. nipcT -3 Check. VISA. M/C. C.O.D.

E~HALfcl COMPUTES Calif, residents add 6% ^TOjMJalrridj)^^

Circle 303 on inquiry card.

Need Intelligence in your

488 Instrumentation System 111

Get it with your favorite S-100 computer and the P&T-488 Interface Board.

The P&T-488 Interface Board gives your S-100 computer the ability to be a talker, listener, or controller on the IEEE-488 instrumentation bus. Three software packages are available: 1) Driver for North Star DOS/BASIC 2) Driver for CP/M which can be used by MFJASIC or CBASIC 3) Driver for direct assembly level programming (for generating customized systems.) Price of the P&T-488, assembled and tested with any one of the software packages, is $400.

fgotJf

PICKLES & TROUT

P.O. BOX 1206, GOLETA, CA 93017, (805) 967-9563

HARD DISC FOR S100 MICROS

The XCOMP DCF-10 Disc Controller pro-' vides the OEM with a high performance, low cost interface forfixed and removable (2315 or 5440) cartridge disc drives. The DCF-10 is currently supported by two operating systems. For information or manuals, contact XCOMP.

XCOMP

INCORPORATED

9915-A Businesspark Ave., San Diego, CA 92131 • (714) 271-8730 234 byte July 1979 Circle 395 on inquiry card.

BYTE BACK ISSUES FOR SALE

The following issues are available:

1976: July, November 1977: March, May thru December 1978; February thru November 1979: January, February, May

Cover price for all issues thru August 1977 is $1.50 plus $.25 postage and handling ($3.50 total foreign). September 77 thru 79 issues are $2.00 plus $.50 postage and handling ($4.00 total foreign).

Send requests with payment to: BYTE Magazine 70 Main St, Peterborough NH 03458

Attn: Back Issues

i®

m HOBBY WORLD®

CALL TOLL FREE: (800) 423-5387 OA, HI, AK: (213) 886-9200

California Computer Systems

XVI16K STATC WH\ KIT $285

A true static ram board designed (or the S-100 bus. Bank switching capability, addressable in 4K blocks. FR4 silk screened PC board with solder mask on both sides! The lowest price TRUE static ram board in its class.

• IEBE S-100 Compatible.

• True static operation

• Requires only +5 volts

• 450 ns

• Fully buffered

Bareboard $27.00

California Gompjfer Systems

S-100/4.pple Prototyping Board

All signals labeled on board. S-100 boards have all circuitry uncommited except for 4 multiple voltage regulator pads. High density hole configuration. On board ground bus. Double sided, plated thru FR4 PC board. Accept 14, 16, IB,

Cat No. 1604 $25.00 S-100 Soldertail Cat No. 1605 25.00 S-100 Wirewrap Cat No. 1609 21.00 S-100 Etch Cat No. 1607 21.00 Apple Soldertail Cat No. 1606 21.00 Apple Wirewrap Cat No. 1608 18.00 Apple Etch

8" FLOPPY $8.50 DISKS

Cat No. Type

BOX OF 2 BOX OF 10 FOR $371

• IBM compatible Description • Single density

FD32-1O00 32 sector holes, one inde* hole, f 0.14-1000 Interchangeable with IBM 32,3740, 3540, 3770,3790, or equivalent

/Vtannchip Systems /W90016 Bit Mini for the S-lOO Bus

• With PASCAL Brings the most powerful single chip CPU available today - the TMS9900 - to the S-100 bus and supports it with powerful software. Included with the CPU board are Disk Operating System, BASIC,

Cat No. 1379 kit $550 Cat No. 1379-A assembled and tested $700 Cat No. 1394 documentation only $20 Cat No. 1395 PASCAL compiler $150 Cal No. 1380 Prom/Ram bd. $275

Assembler, Linking Loader, Text Editor, and interactive debug. The powerful pascal compiler is only $150 more! Move up to a 16 bit machine and the power of PASCAL without losing the economy and selection of the S-100 bus.

Microprocessors

Order by type no.

Type

Price

TMS9900

$45.00

6008

4.00

8060A

7.00

8085

15.00

6800

10.00

Z80A

9.00

1802

17.50

6502

11.50

Microprocessors Support

Order by type i Type price

TTLs

8212 8214 8216 8224

$2.40 4.95 2.50 3.95

6820/6520 6.95

Shugart SA-4CO

Minifloppy Drive $295

Hard and soft sectoring, single density, 35 tract. Requires power supply. Cat No. 1154 $295.00

\ferbatim

5 1/4" Diskettes $27box of lO

Cat No. Type Use

1147 Soft sector TRS-80, Apple

1148 Hard, 10 hole North Star , 1149 Hard, 16 hole Micropoli

California Computer Systems

For APPLE. TRS-S0, EX/DV Everything you need! Installs in minutes, no special tools, no soldering! 250 nsec. Cat No. 1156

8224-4 9.50 8226 3.95 8228 8238 8251 8255 6810

4.95 6.50 6.50 6.50 6.95

6821

6828

6850

6852

6860

1822CE

1852CE

1861CE

1854

MK38B1N-4

MK3882IM-4

MK3883

MK3884N-4/0

MK3884N-4/1

R4MS

Order by type no. Type

21L02-250

21L02-450

21L02-650

21141-200

2114L-300

21 141.-4 50

TMS4044-450

TMS4O45-3O0

4116-200

4116-150

1101

6.95 11.95 8.50 8.95 9.95 16.95 9.95 . 9.95 13.95

13.95 13.95 45.00 45.00 45.00 ,

Price 1.25 1.10 .85 8.50 8.00 7.50 7.50 7.50 11.00 13.00 1.50

EPRCVMS

Order by type no

Type

1702A

2708

2716

2758

9.50 60.00 22.00

7400

.15

7483

.60

7401

.20

7485

.75

7402

.20

7486

.35

7403

.20

7489

1.75

7404

.20

7490

.45

7405

.20

7491

.55

7406

.30

7492

.45

7407

.30

7493

.45

7408

.20

7495

.65

7409

.20

7496

.65

7410

.20

74107

.35

7413

.35

74109

.55

7414

.60

74121

.35

7416

.25

74122

.40

7417

.25

74123

.60

7420

.20

74126

.40

7423

.25

74132

.65

7425

.25

74145

.65

7426

.25

74151

.60

7427

.25

74153

.60

7430

.25

74154

1.00

7432

.2S

74155

.70

7437

.25

74157

.60

7438

.25

74160

.85

7440

.20

74161

.75

7441

.70

74163

.75

7442

.50

74165

.95

7443

.50

74166

1.25

7444

.25

74170

1.60

7445

.75

74173

1.10

7446

.75

74174

.85

7447

.65

74175

.70

7448

.75

74176

.80

7450

.20

74177

.75

7451

.20

74180

.65

7453

.20

74181

1.75

7454

.20

74191

.95

7460

.20

74192

.75

7470

.30

74193

.75

7472

.25

74221

.85

7473

.35

74251

.80

7474

.35

74365

.65

7475

.45

74366

.65

7476

.35

74367

.65

7481

1.20

74368

.65

Special Purpose ICs

Order by type no

Type

Description

Price

AY3-1014

UART

8.00

AY3-1013A

UART

5.00

KR2376-ST

ASCII Keyboard encoder

9.50

2513

Character gen, up case

9.50

FD1771BO-1

Floppy Disk controller

37.00

FD1791B

Floppy Disk Controller

47.00

BR1941L

Baud rate generator

9.50

TMS6011

High speed UART

5.50

95H90

350MHz prescaler

12.00

11C90

650MHz prescaler

17.00

7205

Stopwatch

17.50

6571AP

Character gen

11.00

7207A/7208

Frequency counter

24.00

MC14410

Touch Tone Encoder

8.00

7107

LED DPM chip

11.00

8038

Voltage Cont Osc

4.00

MC14411

Baud rate generator

10.00

Nlolta&e Regulators

Type

Equal to

Voltage

Case

Price

7805K

LM340K-5

4-5

TO-3

S1.40

7812K

LM340K-12

+ 12

TO-.)

1.40

7B15K

LM340K-15

+ 15

1.40

7818K

LM340K-1B

+ 18

TO-3

1.40

7824 K

LM340K 24

+ 24

TO-3

1.40

7805T

LM340T-5

+ 5

TO-220

.95

7812T

LM340T-12

+12

TO-220

.95

7815T

LM340T-15

+ 15

TO-220

.95

7818T

1 M 14111 III

+ 18

TO-220

.95

7824T

LM140T-24

+24

TO-220

.95

7905K

LM120K-5

-5

TO-3

1.75

7912K

LM320K-12

■12

TO-3

1.75

7915K

LM12IIK-15

-15

TO-j

1.75

7924K

LM120K-24

-24

TO-3

1.75

Problem Solver Systems

Streaker

• Designed, constructed and tested to survive the most difficult and demanding computer environments.

• Each offers unchallenged reliability, versatility, and price advantage!

• Only the finest-grade, fire retardant glass-epoxy PC material is used in board construction.

• All boards are solder-flowed to assure uniform solder quality, virtually eliminating weak solder joints.

• 40 hour burn-in

• Exclusive "Blitz-Test" Places boards at maximum specified conditions for one hour.

• Stringent production standards allow only the survival of the fittest.

Motherboard

• Imsai compatible

• Factory assembled and tested

Available in 12 or 22 slot versions. Standard S-100 bus compatible. Features connectors with gold plated bifurcated contacts. Each signal is surrounded by ground plane Chassis compatible with IMSAI, No isolation hardware required for mounting. Cat No. 1451 12 slot $99 Cat No. 1452 22 slot $159

CM50O0 Computer /Vtainframe

Includes cabinet, 18 amp power supply, S-100 STREAKER-12 (12 slot motherboard), and dual disk provision, with disk power supply. Minidisk drives fit directly into front panel with no modifications. The CM5000 is fan cooled, has AC line filter to eliminate EMI, and is fully assembled and factory tested. Power and reset switches are located on front panel.

Cat No. 1450 $549.00

Matchless Systems

Minidisk Drive for TRS-80

Accesses twice as fast as the Radio Shack drive, plus offers 40 tracks as opposed to 35! Includes case, power supply, and cables. Completely assembled and tested, ready to plug in and go! Simple modification to use as second drive! Cat No. 1375 MINIDISK

DRIVE $395 Cat No. 1396 4 DRIVE

EXPANSION CABLE $15 Cat No. 1147 Verbatim Diskettes J for above-box of 10 for $27^

Send for FREE CATALOG Featuring

The best selection of computer accessories add-ons, factory fresh ICs, led's, semi's, software, PC aids, prototyping aids, books, test equipment, and moret Always updated! Dozens of new products every issue!

Pay by check, COD, Visa, or Mastercharge. Order by phone or mail. Please include phone no. USA add $1.50 for shipping/handling, or $2.50 for air. Foreign add $2.00 for surface, $5.00 -for air. COD's add B5c. All items guaranteed satisfaction for 120 days!

Circle 170 on inquiry card.

BYTE July 1979

235

11 BASICS

from

□ BASIC, From the Ground Up by David E. Simon.

This book Is a good Introduction to computing and the BASIC language for anyone, regardless of their background. David Simon assumes you have no previous programming experience and no familiarity with computing concepts. From the ground up, he builds on the fundamental concepts and teaches each part of the BASIC language In turn. Examples illuminate each step and six fully solved problems are Included. This Is the "beginner's book" In BASIC we at BITS have been looking for.

222 pages $8.95.

□ THE BASIC WORKBOOK - CREATIVE TECHNIQUES FOR BEGINNING PROGRAMMERS by Kenneth Schoman, Jr.

This book contains lecture notes, exercises and problems for people learning BASIC. In a hands-on workbook style, Kenneth Schoman covers statements, loops, functions, variables, Input/output and strings. Simulation and plotting are introduced. The examples and problems are runnable in virtually any version of BASIC. If you're learning BASIC, complement your studies with this bookl 117pp.$5.95

□ BASIC WITH STYLE: PROGRAMMING PROVERBS by Paul Nagln and Henry Ledgard.

"Programmers can and should write programs that work the first time." This statement may sound idealistic to those accustomed to long hours of debugging. Yet, It's the theme of this book — a unique collection of "proverbs" or rules and guidelines for writing more accurate error-free programs. Newly rewritten, this book now emphasizes structured programming and all examples are in BASIC. 134 pp. $5.95

□ BASIC BASIC, 2nd EDITION by James S. Coan.

If you're not already familiar with BASIC, James Coan's Basic BASIC is one of the best ways to learn about this popular computer language. BASIC (which stands for Beginner's Ail-Purpose Symbolic Instruction Code) is easy to learn and easy to apply to many problems. Basic BASIC gives you step-by-step instructions for using a terminal, writing programs, using loops and lists, solving mathematical problems, understanding matrices and more. The book contains a wealth of illustrations and example programs, and Is suitable for beginners on many different levels. It makes a fine reference for the experienced programmer, too. 256 pp. $8.95.

□ ADVANCED BASIC by James S. Coan.

Advanced BASIC Is the companion volume to James Coan's Basic BASIC. In this book you'll learn about some of the more advanced techniques for programming in BASIC, including string manipulation, the use of files, plotting on a terminal, simulation and games, advanced mathematical applications and more. Many useful algorithms are covered, including some clever sorting techniques designed to reduce program execution time. As with Basic BASIC there are many illustrative example programs included. BASIC doesn't have to be basic with Advanced BASICI 184 pp. $8.95

□ BASIC AND THE PERSONAL COMPUTER by Dwyer/Crltchfleld.

A fascinating book covering many areas of interest to the personal computer user. After giving an In-depth course in BASIC, which can be covered in 8 hours, the book discusses microcomputer hardware, graphics, word processing, sorting, simulation and data structures. This Is an easy to read text that Is useful for the beginner and Informative for the advanced user. 438 pp $12.95

□ THE LITTLE BOOK OF BASIC STYLE by John Nevlson.

Structure, style, correctness, maintainability. Attributes of good programming are getting much attention, and well they should. When one considers what we invest in programs, their manageability and efficiency become very important. Here these concepts are explained, along with 19 rules and many examples in BASIC to help Improve your programming style.

151 pp. $5.95

□ SOME COMMON BASIC PROGRAMS by Lon Poole and Mary Borchers, published by Osborne and Associates.

At last, a single source for all those hard to find mathematics programs! Some Common BASIC Programs combines a diversity of practical algorithms In one book: matrix multiplication regression analysis, principal on a loan, integration by Simpson's rule, roots of equations, operations on two vectors, ohl-square test, check writer, geometric mean and variation, coordinate conversion and a function plotting algorithm. These are Just some of the many programs included. For only $8.50 you can buy the kind of programs previously available only as part of software math package systems for large scale computers. All the programs are written in a restricted BASIC suitable for most microcomputer BASIC packages, and have been tested and debugged by the authors. 192 pp. $8.50.

□ BASIC WITH BUSINESS APPLICATIONS by Richard W. Lolt.

This book focuses on the BASIC language and its application to specific business problems. The book is divided into two sections. Part one Introduces the BASIC language and the concept of logical flowcharting. Part two presents problems and possible solutions. Topics include: interest rate calculation, break-even analysis, loan rates, and depreciation. Exercises at the end of each chapter give a greater understanding of BASIC by actual programming. This book is a great aid to the beginner wanting to learn BASIC without having a technical or scientific background. 284 pp. $11.50.

□ BASIC COMPUTER GAMES: MICROCOMPUTER EDITION edited by David H. Ahl.

Here are 102 classic computer games, every one in standard microcomputer BASIC; every one complete with large, legible listing, sample run and descriptive notes. All the classics are here: Super Star Trek (one of the most challenging versions • anywhere), Football (two versions), Blacklack, Lunar Lander (three versions), Tic Tac Toe, Nlm, Life and Horserace.

188 pp. $7.50

□ GAME PLAYING WITH BASIC, by Donald D. Spencer.

You'll enjoy the challenge of competing with your own computer. Games described include: 3-D Tic Tac Toe, Nim, Roulette, Slot Machines, Magic Squares, Keno, Morra, Baccarat, Knight's Magic Tour, and many others. The style is non-technical, and each section gives complete rules for the game, how it works, illustrative flowcharts, and example outputs for each program. The last chapter contains 26 games for reader solution, including Hexapawn and Poker Dice. 166 pp. $7.95.

FOR YOUR CONVENIENCE, PLEASE USE ORDER FORM ON PAGE 137

DIAL YOUR CHARGE CARD ORDERS TOLL-FREE 800-258-5477

IHC (in NH call 924-3355) Mon-Fri 9-5

Books tO 6rose the impossible POB 428, 25 Route 101 West, Peterborough, N.H. 03458

isitT charge

236 BYTE July 1 979

) ^-computer, Products

B . ' tlo<»,

THE FIRST TO OFFER PRIME PRODUCTS TO THE HOBBYIST AT FAIR PRICES NOW LOWERS PRICES EVEN FURTHER!

1. Proven Quality Factory tested products only, no re-tests or fallouts. Guaranteed money back. We stand behind our products.

1979 CATALOG NOW AVAILABLE.

Sena $1.00 for your copy oi the most complete catalog of computer products. A must

S-100 32K (uses 2114) ASSEMBLED Kit '/ji*

450ns. 599.00 450ns. 539.95 250ns. 699.95 250ns. 599.95

Bare Board 49.95

8are Board w/all parts less mem. 99.95

S-10016K (uses 2114) KIT (exp. to 32K) ASSEMBLED 450ns. 279.00

450ns. 325.00 250ns. 299.00

250ns. 375.00 Bare Board 49.95 LOGOS I8K ASSEMBLED 450 ns. 169.95 KIT 450ns. 125.95 250ns. 189.95 250ns. 149.95

Bare PC Board w/Data 121.95

Now over 1 year successful field experience

"Special Offer" Buy (4) 8K 450ns. Kits $117.00

E2S

FLOPPY DISK DRIVES

1. VISTA V-80 MINIDISK ^^^^^f FORTRS-80 ■ 9W

* 23% More Storage ^^^^E/ Capacity-40Tracks

* Faster Drive

Up to 8 Times Faster 1305 00 I 2 Drive Cable Add $29.95 4 Drive Cable Add $39.95 N '

2. VISTA V-200 MINI-FLOPPY SYSTEM

* 204K Byte Capacity * w/CPM, Basic "E"

* One Single Sided,

Double Density Drive I V-200 A

* One Double Density 1699.00J Controller w/Case & P.S. X_S

Add to your EXIDY, HORIZON, etc.

3. VISTA V-1000 FLOPPY DISK SYSTEM

* (2) Shugart 800-R 8" Floppy Disks

* Controller Card, Cable,

Case 8 P.S. /V-1000\

* CPMS Basic"E", H699.00I Instructions & Manual y

4. MPI B51-5V." 40 tracks 279.00

5. Shugart SA400-5'/«", 35 tracks.... 295.00

6. Siemens/GSI FDD1O0-8 8" 375.00

7. Shugart 800/801R 8" 495.00

8. PERSCI Model 277 Dual 1195.00

EXPANDORAM MEMORY KITS

* Bank Selectable * Uses 4115 or 4116

200 ns.

* Write Protect * Power 8VDC, ±16VDC

* Phantom * Lowest Cost/Bit Expando32 Kit (4115) Expando 64 Kit (4116)

8K $179.00 16K $248.95

16K $229.00 32K $369.00

24K $299.00 48K $469.00

32K $349.00 64K $565.00

IMS STATIC RAM BOARDS

* Memory Mapping * Low Power &

* Phantom * Assembled & tested Recommended by Alphamicrosystems

250 ns. 450 ns.

8K Static $209.00 $189.00

16K Static $449.00 $399.00

32K Static $799.00 $699.00

ANADEX PRINTER

Model DP-8000 compact, impact, parallel or serial. Sprocket feed, 80 cols, 84 lines/min., bi-directional. New only $895.00

VERBATIM™ DISKETTES 0ti

* 5V." Minidiskettes * B&$S Sottsector, 10 Sector, 16 Sector r-%0;<(< $4.25 Each, 10/39.95 riO^Sftf

* 8" Standard Floppy Disks * jfel* Soft Sector, Hard Sector V™ $4.50 Each, 10/41.95

•Add 4.95 for 10 Pack in Deluxe Disk Holder

MOTOROLA IXORCISIR COMPATIBLE

9600 MPU Module w/6802 CPU $495.00

9601 16 Slot Mother Board 175.00

9602 Card Cage (19" Retma Rack Mount)... 75.00

100.00 250.00 .36.00

9604 Switcdmode System PowerSupply

9610 Utility Prototyping Board

9616 Quad 8K Eprom Module

9620 16 Channel Parallel I/O Module.... 295.00

9622 Serial/Parallel I/O Combo

9626 8K Static RAM Module 295.00

B627 16K Static 450ns 495.00

9630 Card Extender 68.00

9640 Multiple Programmable Timer

(24 Timers) 395.00

9650 8 Channel Duplex Serial I/O 395.00

96103 32/32 I/O Module 275.00

96702 32 Point Reed Relay Module 350.00

MOO BARE BOARDS

9620-0 $45.00 9603-0 27.00

9626-0 45.00 9600 55.00

9650-0 45.00 96103 55.00

9B01-0 50.00 96702 55.00

Also AMI EVK System in Stock

APPLE/EXIDY/EXPANDO TRS 80 16K-UPGRADE KIT

# 16K with Jumpers & Instructions

for either Level I or Level II $89.95

* 16K for Apple II Upgrade $89.95

Special: TRS80 Schematic $ 4.95

Expansion Interface Schematic — $ 4.95

TRS 80 TO S-100

PET TO S-100 ADAPTER

Allows Pet/TRS 80 to be interfaced to popular S-100 Bus.

Pet to S-100 Kit $189.95

Assembled $269.95

TRS80toS-100 HUH 8100 Kit ....$275,00 Assembled $355.00

KEYBOARD ASCII ENCODED

One time purchase of NEW Surplus keyboards. From the Singer Corporation. The keyboard features 128 pASCII characters in a 63 key format, MOS encoder circuitry "N" key rollover, lighted shift lock, control, escape and repeat functions. Ltd Qtv 63 KEY $50.99

UV "EprorrV' Eraser

Model UVs-HE S64.95

Holds 4 Eprom's at a time Backed by 45 years experience.

Model S-52T... $219.95

Professional Industrial Model

TARBELL FLOPPY INTERFACE

* Z80/80BO S100 Compalibte * Uses CPM Assembled lor Shugart.... SALE 1229.00

Assembled Other Drives $269.95

Kit $179.95

Bare Board $36.95 (Doc. Add $10.00)

ViBla Double Density 5VV Controller

Assem $299.00

SD Versa FIoddv Kit $159.95

SD Versa Floppy Assembled $ 189.95

Tarbel Cassatte I/O Kit $115.00

Sale * 1771-01 Floppy Chip $27.95

BYTE USER SK EPROM BOARD

* Power on Jump * Reset Jump

Assembled 8 Tested $94.95

Byteuser Kit $64,95

Bare PC Board $?1.95

Special Offer: Buy 4 kits only $59.95 each

MR-8 8K w/1K Ram $99.50

MR-16 1 6K w/1 K Ram $99.50

EPM-1 4K 1702 $59.95

EPM-2 2708 or 2716 Eprom $69.95

Z-80/Z-80A/8080 CPU BOARD

* On board 2708 * 2708 included (450ns.)

* Power on jump * completely socketed

Assembled and tested $185.00

Kit $129.95

Bare PC Board $ 34.95

* For 4MHz Speed Add $15.00

8080A Kit $ 99.95

8080A Assembled $ 149.95

S-100 MOTHERBOARD SPECIAL

8 slot expandable w/9 conn.

reg $69.95 NOW $52.95

TARBELL FLOPPY CONTROLLER

Card assembled and tested for use with Shugart Drives $ SALE PRICE only $229.00

ACOUSTIC MODEM

NOVATION CAT*" 0-300 Baud Bell 103

Answer, Originate $198.00

ACOUSTIC COUPLER SPECIAL

AJ MODEL A30 SPECIAL PURCHASE OF SURPLUS UNITS AVAILABILITY LIMITED $29.95

DATA BOOKS • COMPUTER BOOKS

1970 IC Mailer 49.95 Intel MCS BO Manual 7.BS

NSC TTL Data 3.95 MM MCS 40 Manual 4.95

NSC Linear .4.95 AMD 8080A Manual 5.95

NSC Linear App Notes II. 3.95 AMD Schottky Databook.. 4.95

NSC CMOS 3.05 AMI MOS/LSl Data 3.05

NSC Memory .3.95 Ql MOS/LSl Data 4.95

Intel Oatabook 4.95 Hams Analog Databook.. .4 95

Intel MCS 65 Manual 7.50 Tl Linear Control Data 3.95

SAL I • OUOHMI BOOKS • SALI

Inlro lo Micros Vol. 0 .* o^p 7.75

Inlro to Micros Vol. I ft« 7.75

80BOA Programming JSQ 7.75

6800 Programming £3Q 7.75

Z80 Programming. BV5Q 7.75

Vol. II Some Real Microprocessors w/Bmder 3OA0. 27.50

Vol. Ill Some Real Sjppon Devtcei w/Bindet 30*0. 18.50

Inlro io Micros Vol. Ill 70*0. 18.50

SALI e OILITtlltIM COMPUTER BOOKS • SALS

Understanding Computers WMfc 7.95

8080Microcomputer Experiment .. . TMi 11.95

Beginning BASIC *9i 8 95

Beginners Glossary ft Guide VD6> 5 95

Peanut Butter S Jelly Guide to Computer* .. .TAfc 6 95

8080 Machine Language Programming .m 6.96

Home Computers Vol- I Hardware TrBS. 6.95

Home Computers Vol II Software 1*94. 11 95

Send $1.00 for your copy for the serious computer user. I MICROPROCESSORS STATIC RAM HEADQUARTERS

z-eo

z-eoA

F-S I3850I 2650 CD1802 80 BOA 8080A-4MHI

2901 2901A IMS 9900JL CP 1600 6502 6502A iMetOO

S 16.85

1895 16.1)5

14.95 16.95 2495 49.95 39 35

2495 17 50 ..49.95 6995

8036 8755 8748

SUPPORT DEVICES

AM95H Anih Processor S195 00

AM 9511-1 300 ns 245 00

AM95'7 DMACom-oller 71 95 AM9519 Universal Interrupt " 3861 tZBOPIOf 3881-4 i4MHil 3882IZ-80 CTO 3682-4 t4MHzl 8205.745136 Decoder 82'28t>ill'0 821 4 Pr,onty lot 8216 Bus Driver 6214 Clock Gen 8224-4 r4MHii S226 Bus Driver 8T26 Bus Dnver

8226 Sys Control 6238 Sys Coni 8251 Prog I/O 8253 int Timer 8255 Prog 1:0 8257 Prog DMA 8259 Prog Ini 8275 CRT Controller 8279 Prog KeyOoaid

24 95 10 45 14 95 10 45 14 95 295 250 4 95 2 50

2 95 9 75

3 95 2 33 595 6.25 6 95

19.53 650 19 53 19 50

128 >

6820 P

6821 PI A 6828 Priority Int 6834-1 512 < 6 Eprom 6850 ACIA

6853 Serial Adapter 684S.'HD46505CRTC"il. 6860 Modem 68152 Modulator 6871A 1 GMHr OSC 6875

6880 Bus Dover MC68488

1821 SCD 1K HAM

1822 SCD 256 i 4 RAM 1824 CD 32 ■ 8 RAM 1852 CD 8 0.1 l.'O

1854 Uart

1856 CD I/O

1857 CD I/O 6520 PJA 652E Mull 6530-002 6530-003 6530-004 653000S

3851 F8 Prog Store 3853 1-8 Memory UO

DYNAMIC RAMS

416/4116 16K(16Pin) i2.45

Se'ol8416,s -89.95

4I158K [16PinJ , 6.95

4050 4Kx I (18 Pin) 4.25

4060 4K* 1 (22 Pmj 4.B5

4096 4K * 1 (16 Pin) . 2104 4Ki 1 (16 Pin).. 4027 4K * 1 (16 Pin) .

5261 1 95 lit

5262 1.95 40C

5270 4.95 B6C

5280.. . 4.95 66C 5290 .12.45 60C

PROMS

2708 2708-6 1702A I 702A-6 2716-SV 2716-5V. 12V 2758 5V 5203AO 5204AO 6834 1 IM 5610

SALS 8323 32 X B...

82S115 512*B(TS,

825123 32 x 8

82Si2fl23B«4 ... 82S129 256 » 4(75) 82Si30512 i4(Oa NSC DM7576 32 x 8 .

CHARACTER GEN

2513-001 |SV| Upper . 2513-005 <5V) Lower 2513-ADM3I5V) Lower. MCM6571 MCM6571A MCM6574 MCM6575

.. 3.B5 4.75

..4.95 .. 7.95 ..4.95 ..1.50

9 95 7 50 3 95 350 59 95 40.00 2995 1 1 95 9 95 12 95 2 95 ...2.03 16 95 250 350 .3 60 650 ...2 96

14 95 10.75 10.75 14 50 14 50

695

8 95 550 7.95 8.95

9 95 24 95

UARTS/USRTS

TR1602BI5V. 12Vl AY51013I5V. 12VI AY51014A/I5t^ lb 14V. AY5I0I6A/1B63 iCVI TMS 601 1 15V 12VI IM6402 IM6403 2350 USRT 1671B Aslros

SALS TR1473B fl.i

BAUD RATE GEN

MC144H 11.95 4702 14 95

WD1941 1)4!,

KEYBOARD ENCODERS

13 75 13 75

.- fl.BS

9.95

995

AY5 2376 AY5-360O HD0185.. 74C922 74C923.

A/D CONVERTERS

8700 8 bit Binary 13

2IL02 450ns 21L02 250ns 2102 211

1.25 375 295 2.90 12.95 8.95 7.50 9.95

2112! 2101-1 21 14L-2S0ns. 2114L-300ns. 2114L-4SOns. 4044/4041 300ns. 4044/4041 4B0na. 7 50 EMM4200A EMM4402 EMM4804 S101C-E up04l0t4200i AMD914C41 AMD9U0'31

3.65 285 2.70 10.95 7.95 6.75 8.75 6.75

.75 8.75

795 7.25

12.50 1150

7 95 7 95

10 95 10 25 10 95 12 95

3.55 2.85 2.55 9.95 6.45 4.75 7.95 4.7B 7.95 6.25 9.95 7 25 9 25 S25 10 25

FSC 460 464 I6K CCD Only SI ft 95 Earn 1101

1 95

7 95

P2125 93425 i45 ns 6508 1K « 1 CMOS 6518 IK , l CMOS 74SV89 64 b.l Ram 3 95 8155 l/Ow/Ram 21 95 2147LowPower4KStaliC 1

CHARGE COUPLED DEVICES

18K CCD - F.rsl time ottered Fanch.ld 460 CCD 16K Memory inow you can enperimem with CCD technology al a reasonable puce 1 7 page Application noie supplied with each order Ouantiiy hmiledl

$16.95 each (reg. 43.00)

19 95 4 75 .650 660

9 95 3995 9 BS

825

239 19 95 25 00 16 95

995 1095

CRYSTALS

Mlcroproeaasor 1

->0IM>V 209rthJMHr Z-ln7flMHi .1 !,i'HM6MH( 4 CMH/ 1 4 194304MH/ 4Sii5.'0MH/

OMH/ . Olidfl ■> i'UJMH;

nebaaea TV Oama

Frequency Price

6 0MHf S 4 95

6 144 4 95

6 5536 4 95

iOOMH; 495

UOMHl 4.95

1431818 495

18 0MH/ 495

13 432MHr 595

20 0MHj 4 95

22 1 184MHi

2? OMHi

36 0MHI

48 0MHr ' 100KC

595 595 5.95 5.95 12 95

DISPLAYS/OPTO/LED'S

* 7 SEGMENT * CALC * CLOCKS

DL 704 (CCl. DL 707 (CA) 300" Red

FND 357 (CO 3S7" Red

FND 500/503 (CCl SOO- RerJ

FND 507/5 lOiCAi 500' Red

FND BOO/803 tCC) 800" Red

FND 807/810 (CA] 800-Red . .

XAN 3062 500" Green

HP5082-7731 (CA| 300" Red

9 Dfl.i Bubble Mm. Cak: Display

9 DiQii Panaole» Display .400"

9 DiQii Fluoresced 300"

MA1003 I2VAul0 Clock Module 1

Betel !o> MA1003 w/Red F.ne>

MA10O2A LED 12 hr Dock Module

* HEX DISPLAYS * IHCOOBO DISPLAYS *

HP 5082-7340 Red Hexideclmal 15 95

HP 5062-7300 Red Nymenc ., 14 95

TIL 306 Numeric w/logrC 8.95

TIL 300 Number w/Logic 835

TIL 309 Number w/Logic BBS

TIL 311 Hexadecimal 12.95

MAN 2A 320" Red Atpna Nume'c 5 95

MAN 10A 270'RedAI(yna-NumeriC 895

• LCD's * OPTOISOLATERS *

LEDS Red. Yellow. Green .185 5/1.00

MCT 2 Photo XSTR HFE 250, 30V 99

4N25 Photo XSTR HFE 250, 30V 1.29

4N33 Photo Oartlnglon 1.75

FPT 1 lOBPhotoXSTRFIatLense ... SALE i. 00

ATTENTION KIM USERS

KIMSAI-expanslon 10 S-100 .. .125.00 K.1/165.00

KIMSI lo KIM Connects 5.75/pair

KIM 1 6502 Single Board Computer 179.00

KtM 1 Power Supply 59.95

KIM Memory Plus - (consists of 8K Ram. 8K2716 Eprom, Programmer. I/O etc.)-. .245.00 KIM SOFTWARE

• Please package (cassette) 12 games.. 16.95

• Help Editor package (cassette) 16.95

• Help Mailing List pkg. (caasoite).. 16.95

• Help Into Relrival pko. {cassette) 18.95

a Mlcrochess (cassette) 16.B5

• Microaid Assembly/Disassem/Editor ... 27 95

• M-croaid Source Listing (cassette) 27.95

• Tiny Basic lor K!M (paper tape) 10.95

COMPUTER SPECIALS

SALI

898.00 735.00 119500 1045 00 159500 3995 00 5395 OC

LIST

1085 00 795 00 139500 1195 00 1695 00 4995.00 5990.00 795 00 995 00 39500 1349.00 495.00 59500

HiPlol Qgmier "My Exidy W/32K Apple II W/16K Compucolor II w/16K

TEI PT20BH avail ) Cromemco Sys III Commodore Pel Soroc 10/120 ADM3A Assem. Teletype 43 Centron.cs P-1 Centronics S-1

MONTHLY IC SPECIALS

LF13508 JFET Anlog Multi 8 oil ICM7208 Seven Decade Counter

ICM7207 Oscillator Controller

ICM7045 Precision Sio/Walch Timer ICL7107 3'. Digit A/D (LED) ICL8211 Voltage Reference LM390 Batiery OP Audio Amp

LM1B30 Fluid Detector

LM 1850 Ground Fault IC

LM180O Phase Lock Loop FM Sterna

LMIB20 AM Radio

DS3825 Dual Mob Sense Amp

765 CH 69500 829 00 1150 00 395 00 52500

6.95 22 95 1495

~1.0

20 P<n VV W 90

14 P<" ST 20 16 Pin ST 22 18 Pi" ST ,11 20 Pm S T 34 22 P.n S T 35

TEXTOOL ZERO INSERTION FORCE SOCKETS

16 Pin S 5.50 24 Pin S7 50

40 Pm £10.25

CONNECTORS

DB25P IRS232) 3.25

DB25S Female ..3-75

Hood 125

Set w/Hood. Sale S6.50

22/44 W/W S/T, KIM 2.95

43/B6 W/W. S/T. MOT 6.50

50/100 S-100 Connector w/w 4 25 50/100 S-100 Conneciors/t. . .325

CTS DIPSWITCHES

CTS206-4 Sl.75 CTS206-B S1.B5

CTS206-5 Sl.75 CTS206-9 H 95

CTS205-6 Si 75 CTS206-10 Si 95 CTS206-7 Si 75

LIVERMORE BASIC

ON 65K ROM

THATS RIGHT ON ROM"'

OUR PRICE only 195 00

NAKED PC BOARD SALE

Z-BO CPU (Ithaca)

S34.95

8080A CPU

3495

BK Static RAM lLogos).

21.95

16K Stas.c RAM (2114) .

. 29.95

32K Sialic RAM (2114) .

49.95

Fiopoy I/O (TartoelU..

39.95

Cassette 1/OfTarbeiil .

29.95

8K Eprom (2708)

2195

1702 Eprom Board ...

30.0C

2708/2716 Eprom (Ithaca)

3495

2708/2716Eprom(WMCl

30 00

Realtime Clock

34 95

ACPProtoBd.pMConn)

27 95

Vector 6800 Proto.

19 95

Vecior 8803 11 slot MB

2995

ACP Extender w/Conn

15 95

Video Imerlace (SSM).

. 27.95

Parallel Interlace <55M)

27 95

13 Slot MolherBoarrJ (WMCl 32 95

9 Sttl Mother Board [WMCl

29.95

8 Slot Mother (expendable)

34 B5

WAVEFORM GENERATORS

B03S Funclien Gen MC4024 VCO LM566VCO

XR2206 Function Gener;

FLOPPY DISK I/O

1771-01 8"S Mmiltoppy 2795 uPd3/2Nec Floppy 49.95 1781 Dual Floppy 39.g5 1791 Dual Floppy 44.95

TV INTERFACES

Pixie-Verier .. 8 So

TV-1 Video Interlace .. 8.95

Mictovener .3500

MSR Modulator 35.00

ATTENTION PET USERS

BETSI-pei expansion to 5100

105.00 Kit/160.00

PET Connector KB. Includes (4) Connectors lor memory expansion, IEEE 488 I/O, cassette I/O and

parallel user porl 7.95/set

Video Butler iconvens to Std Video).. 29.95 Petunia (Music Board) . . 29.95 Combo IVideo 5 Petunia) 49.95 Beeper (signals tape load) .24 95

ATTN TRS 60 USERS

20/40 Pm Memory Exp Conn

.....S7.9S

16K Memory Add-on w/lnsl. 89 95 Vista V80 Minrllocoy . 395.00 40TrackDOSPalchonD.sk 10.95

4 Dnwe Cable lor V60 39.95

Centronics 779 w/tractor.. 1179.00 Centronics 701 Brdirecl.. 1579.00 ANADEX DPBOOO 99500 Micro-P (name as Quick Printer]

395 00

Cable toplugin Expansion I/O 3900

Power Slrip (6 outlets) 17.95

Surge Suppressor/Filter... . 23.95 Microsoli Fortran on Disk .325.00 Electric Pencil on Casselle 99.00 Eiecinc Pencil on Disk 150.00 CP/M lor TRS on Disk 150.00 Library 100 (casseltesl .. 4995 Micro Chess, icassetiei 19.95

TV CHIPS

ArMSSO-i 6 G.<-i". Cow AtlSJOOl 6Qi™iflV. MOBfilSCoiO' Cii-.."t.« AV3B6D1I rj.;..i]'. -<^«13Bf.0S I -j ,v«

i'assor'1 w'0°"u"c>*^,",

*V.IHt 1 M_.. .1. !_■

ffi™ 4~9™ 10147ECLRaffl...9.95

I48B/1489 2/1.99 NES01 5i00

22 Pin S/T Sockut 10/1 00 , nwwBiF-i in aa 8223 Prom - " LF356HBIFet ..3/1.99

6331-1 Prom MK5014 Calc 7414IN. . LM29I7 8T26/8T2B 95H90

,_c MCM14505 8.95 musmoonsc c..<-rvo.-..

1 95 74S89 3/1.99 "f^P*tlt*" P"'

74107N 6/1.99

' 3/1 99 75452N 8/1.99

225 741N-14 10/1.99

2 39 5S5CN, 5/1.99

9 95 5S8CN 3/1.99

ATTENTION APPLE II USERS

All Shrumenli FCM or UPS. Oidsri undtr S10OOO add b% haodlms *nd poitag*. Ord<n ovtr S100.00 add 2 51. hsndhng & uoitaat. MnteiEhi>a*/Bink ■meiicwd/COD scctpted w/25% d»x>tii. California Rsildtnll «M 0% MR. Fonign Orderi add 8% h*ndll

stHpntant. Add .35 o

Is for Oats.

P.O. BOX 17329 Irvine, California 92713 Phone (714) 558-8813

910-595-1565

Retail Store Open Mon. - Sat. Located at 1310 "B" E. Edinger Santa Ana, CA 92705

Circle 4 on inauiry card.

BYTE July 1 979 237

SOFTWARE

___________

Key-to-Disk Software Available for Microcomputers

A new key-to-disk software (P1KTDS), designed to run on 8080 and Z-80 microcomputers, has been an-' nounced by Phone 1, POB 1522, Rockford IL 61110. The software supports four video terminals, four floppy disk drives, line printer, and 3780 communications. The P1-KTDS package allows up to four video users to define and select as many as four screen formats per user. Each format may contain as many as 40 user specified fields. Constant data fields may also be specified.

In addition to data entry, data verification is also included as a feature of the system. Verification is done on each field specified as a verify field whenever the verify option is enabled. Each of the four users has a separate disk drive that stores the formats and data records for the particular video assigned to the drive.

The P1-KTDS software is currently shipping on Phone 1's PI-5 Data Concentrator product which utilizes the 8080 microcomputer, 8214 and 8259 interrrupt controllers, 8251 terminal and printer controllers. Mylar decals, which attach to the front edge of the video keytops, guide the user in efficiently entering data.

P1-KTDS source module on CP/M or FDOS III compatible disk, limited use license, users manual, and four sets of keyboard decals are priced at $2,500. The users manual is available separately for $35.

Circle 629 on inquiry card.

Business Software Packages

A line of 21 fully integrated and auto-chaining business software packages is available from Univair International, 10327 Lambert International Airport, St Louis MO 63145. Some of the major programs include General Ledger, Accounts Payable, Accounts Receivable, Payroll, Inventory, Dental Management System, Medical Management System, Real Estate Multi-List, Insurance Agency, Credit Union, Data Base Management, and Word Processing. All programs are run under CP/M or IMDOS with commercial BASIC and 31 K bytes of programmable memory. A system of automatic chaining, posting, file backups, and updates is incorporated.

The cost of each program on an eight inch soft-sectored floppy disk is $395. Complete source code and operators manual are provided. Programs are also available on five inch Northstar or five inch Micropolis disks.

Circle 630 on inquiry card.

Software for the Apple II Computer

Softape, 10756 Vanowen St, North Hollywood CA 91605 has an extensive selection of'software available for the Apple II computer. One such program, Appletalker accepts voice or audio information through the cassette input port, digitizes the information, and stores it in numbered tables in the computer's memory. The stored information can then be played back using the Apple's on board speaker.

Apple-Lis'ner allows the user to communicate with the Apple II computer via spoken words. By using a cassette recorder and microphone, Apple Lis'ner will listen for the words or phrases it has learned and respond under program control.

For more information on these and other Apple II programs, write to Softape at the above address.

Circle 631 on inquiry card.

Software for the Micropolis Floppy Disk System

The Basically Speaking Co has announced the availability of software for the Micropolis five inch floppy disk systems. Statpak includes the ability to create a data file and to do multiple statistical analyses on a data base. Available statistical functions include Chi Square, analysis of variance and linear regression.

Gradebook allows school teachers to use their computer as a gradebook. Multiple classes are allowed, as well as missing assignments, excused absences, and addition and deletion of student records. A grade figuring program called Reportcard is included.

The Personal Accounts Ledger (PAL) program keeps not only a checkbook ledger, but a savings ledger, a small business ledger, and an investment ledger, and allows these ledgers and their accounts to be fully integrated. Selected account printing is also supported.

The price is $45 for a Micropolis MDOS (Model I or II) or Micropolis CP/M disk and documentation. The documentation includes full instructions for use, suggestions for modification, and complete listings. For further information contact Basically Speaking, 719 Anna Lee Ln, Bloomington IN 47101.

Circle 632 on inquiry card.

8080 Simulator for the 6502

Now available in a KIM-1 version, the 8080 Simulator for the 6502 processor executes the entire 8080 instruction set. All internal 8080 registers are maintained, ready for convenient examination or modification of their contents. In its minimum configuration on the KIM-1, the 8080 Simulator supports register single step, program counter single step and run modes. It also offers an input and an output port, breakpoint operation, and rejection of illegal opcodes.

The 8080 Simulator runs in less than 1 K of memory, leaving up to 224 bytes of 8080 programming space on an unexpanded KIM-1. The Simulator may be relocated in read only memory and can be adapted to other 6502 based systems.

Well suited to all but time sensitive applications, the 8080 Simulator may be used to assist in the design and testing of 8080 software, used as a training aid or used for running most 8080 application software. The package consists of a KIM-1 format cassette tape, a user manual and a complete, commented assembly level source and object listing. The price is $18 plus $1.50 for postage and handling. For further information, contact Dann McCreary, 4758 Mansfield St #2B, San Diego CA 92116.

Circle 633 on inquiry card.

Word Processing System for Z-80 Based Computers with North Star Disk

The Wordsmith is a word processor for Z-80 based computers with North Star floppy disk systems, an RS-232 terminal and a Diablo 1620 or equivalent printer. It provides complete cursor control, block movements, string searches and alterations, insertion and deletion of text, and other editing functions through the use of control commands.

Print formatting commands are entered along with the text and allow the format to be changed while the printing is taking place. The format commands include right justification, setting of margins, automatic paging and headers, four types of paragraphs, insertion of variable data into the text, and operator instructions. Form letters are easily produced, each one personalized for the recipient, through the use of simple text commands. Disk file creation, deletion and updating are handled automatically.

The Wordsmith is priced at $299. For further information contact Southwest Micro-Systems, POB 20088, Riverside CA 92516.

Circle 634.on inquiry card.

238 July 1979 © BYTE Publications Inc

ITHACA AUDIO

THE OEM MARKETPLACE

Assembled and Tested Added at Ithaca Audio

Field-proven reliable engineering

Over 15,000 boards worldwide prove Ithaca Audio provides the quality and reliability you demand.

Ithaca Audio Boards are fully S-100 compatible, featuring gold edge connectors and plated-through holes. All boards (except the Protoboard) have fully buffered data and address lines, DIP switch addressing, solder mask and parts legend.

• Z-80 CPU Board still the most powerful 8 bit central processor available. Featuring power-on-jump, provision foron-board 2708. Accepts most 8080 software.

A&T 4 mHz $205.00 A&T 2 mHz $175.00 Blank PC $ 35.00

• Disk Controller Board controls up

to 4 single or double sided drives. Supported by a host of reliable software packages: K2 FDOS, Pascal, Basic and complete diagnostics.

A&T $175.00 Blank PC $ 35.00

• K2 FDOS Disk software in the DEC tradition. Includes character oriented text editor (TED), File Package (PIP), Debugger (HDT), Assembler (ASMBLE), HEXBIN, 1 COPY, System Generator (SYSGEN) and more. Command syntax follows Digital's OS-8/RT-11 format. First in a family of high level software. Basic and Pascal available now. Soon-to-be-released Fortran.

K2 Disk $ 75.00

• Video Display Board features the

full 128 upper/lower case ASCII character set. Easy-to-read 16 line x 64 character format can be displayed on an inexpensive video monitor or modified TV set. Includes TTY software. Add our powerful K2 FDOS to create a versatile operator's console.

A&T $145.00 Blank PC $ 25.00

• 8K Static RAM Board High speed

static memory at a reasonable cost per bit.

Includes memory protect/unprotect and

selectable wait states.

A&T 250 ns $195.00 A&T 450 ns $165.00 Blank PC $ 25.00

• 2708/2716 EPROM Board indispensable for storing dedicated programs and often used software. Accept up to 16K of 2708's or 32K of 2716's.

A&T (less EPROMs) $ 95.00 Blank PC $ 25.00 2708 EPROMs $ 11.00

The leading manufacturer of blank S-100 boards is adding a new wrinkle—now all their boards are available assembled and tested. "This is a natural progression for the company" according to Mr. James Watson, President. "Actually we've been supplying assembled and tested for some time to our volume customers and OEM's, particularly those overseas. Our production staff is now fully up to speed, so just about everything is available from stock." The company scheduled 6 months to phase in assembled and tested to allow time to build base inventories, before offering the boards to the public. "We feel this is quite important. A lot of companies have earned themselves a bad name in this business by announcing products they can't really deliver. We simply won't do that." Mr. Watson further explained that Ithaca Audio intends to remain leader in blank boards and expects to release a minimum of 6 new designs by August, which will be offered both blank and assembled and tested.

Memory Prices Tumble

Ithaca Audio first to break 10/Byte Barrier

By cutting prices for 32K of RAM to $319 Ithaca Audio becomes the first computer vendor ever to offer high speed memory for less than a penny a byte. Commenting on the announcement, Steve Edelman, Director of Engineering said "Just a few years ago people were wishing for a penny a bit, and even now memory for most large computers costs about 2«/byte and that's only in 1 Megabyte chunks." In fact it's the relative modest capacity of the 32K board that makes it so interesting. Users need not buy the full 64K to take advantage of the low price per bit. Furthermore, the board is available both as a kit and assembled and tested. Delivery is stock to two weeks. Pricing is:

• 32K kit $319

• 32K A&T $359

• 64K kit $645

• 64K A&T $695

8" Disk Drives

Shugart compatible Memorex 550's are in stock.

Single and double density compatible, 330K bytes capacity with our controller or use your own.

Either way $456

Protoboard Universal wire-wrap board for developing custom circuitry. Room for three regulators. Accepts any size DIP socket.

Blank PC $ 25.00

Pascal/Z Ready

The first Pascal Compiler for the Z80, and the fastest Z80 Pascal ever is now ready. Over one year in development, Ithaca Audio was obviously pleased with the results. "We really have outperformed them" states Jeff Moskow, Director of Software Engineering, beaming over the recently released benchmarks, in which Pascal/Z averaged better than five times the speed of a recent P-code implementation.

"Pseudo-code means a vendor only has to supply one compiler to lots of people using lots of different machines, and that makes his life very easy, but it also means users' programs execute significantly slower. Therefore, we chose to write a native compiler that delivers fast re-entrant ROMable code, with no need for an intermediate language and interpreter. That's where our speed comes from." As a matter of fact, Pascal/Z is often twenty times as fast as UCSD's implementation and may well be faster than dedicated Pascal machines such as the recently announced Western Digital Pascal Microengine.™ Unlike the Microengine, Pascal/Z does not require any new special CPU hardware and has the added benefit of compatibility with existing Z80 software.

Operational requirements of Pascal/Z are the Ithaca Audio K2 Operating system and 48K of memory during compiles. The output is standard Z80 Macrocode which is linked and run through the Ithaca Audio Macroassembler. Binary files may be as small as 2.5K, or even less if the full library is not used. The compiler, including the Macroassembler, is available on an 8" K2 floppy disk. Price including full documentation is $175.00. The Macroassembler is available separately for $50.00. Delivery is from stock.

More Software:

For those that don't require the speed of a compiler like Pascal/Z, Ithaca Audio also offers the convenience of BASIC. BASIC/Z, an extended version of TDL's Super Basic, runs in slightly over 12K and is supplied on an 8" K2 disk for $75.00.

SAVE Even More

When you buy your software as a package K2 and Pascal/Z $225

SAVE $25

K2, Pascal/Z and Basic/Z $275

SAVE $50

HOW TO ORDER

Send check or money order, include $2.00 shipping per order. N.Y.S. Residents include tax.

For technical assistance call or write to:

ITHACA AUDIO

P.O. Box 91

Ithaca, New York 14850 Phone: 607/257-0190

Circle 191 on inquiry card.

BYTE July 1979 239

MISCELLANEOUS

_

Home Computer From Bally

The Bally Computer System contains the built-in "Bally Brain," a microprocessor that has a 12 K byte memory. Each optional Bally Videocade cassette adds up to 8 K additional bytes. Also built into the system are a five function, ten memory register calculator, 256 color display variations, stop-action pause control, and automatic shutoff. The unit is available in two player and four player models and has a 16,000 dot picture image. With three arcade games and a 24 key calculator built in, the two player model has a retail price of $299.95 and the four player model is $329.95. Both an optional Bally BASIC programming cassette and an audio cassette interface are priced at $49.95. For further information contact Bally Consumer Products Div, 10750 W Grand Av, Franklin Park It 60131.

Circle 639 on inquiry card.

Microcomputer Offers Pascal in Programmable Read Only Memory

This new microcomputer designed for use with Pascal is being marketed by Control Systems Inc, Drawer EE, Williamsburg VA 23185. The UDS 470 offers Pascal in programmable read only memory as an alternative to assembly language and BASIC for low and medium volume applications where power and fast development are important. They make available a version of UCSD Pascal specifically designed for read only memory and programmable read only memory operation for use in dedicated applications when the development cycle would be slow with

assembly language. The Pascal in programmable read only memory feature makes high level programming as easy as assembly language programming. A Pascal program is compiled (instead of assembled) and compiler output (P-code) is burned into programmable read only memory and erasable read only memory.

The UDS 470 is a rack mountable system designed for industrial environments (high temperature, vibration, etc). It currently uses the 6800 microprocessor, but can be upgraded to the 6809 or 68000 when they become available. The UCSD system was designed to be machine independent. UCSD's 2 .0 version is currently being supplied, but the 3.0 version will be used when UCSD releases it. The standard UDS 470 package includes a processor with 1 K bytes of programmable memory and 2 K bytes of erasable read only memory; serial I/O (input/output) port with automatic reset and VCC monitor; 48 K bytes programmable memory; 16 K bytes erasable read only memory; 5 inch double density floppy disks with interface; 5 V power supply; and a case. The approximate price of the standard UDS 470 is $4000.

Circle 640 on inquiry card.

Where Do New Products Come From?

The information printed in the new products pages of BYTE is obtained from "new product" or "press release" copy sent by the promoters of new products. If in our judgment the Information might be of interest to the personal computing experimenters and homebrewers who read BYTE, we print it in some form. We openly solicit releases and photos from manufacturers and

suppliers to this

The

Information Is printed more or less as a first in first out queue, subject to occasional priority modifications. While we would not knowingly print untrue or inaccurate data, or data from unreliable companies, our capacity to evaluate the products and companies appearing in the "What's New?" feature is necessarily limited. We therefore cannot be responsible for product quality or company performance.

North Star Word Processor With Extras

IDSWORD is a comprehensive word processing package available in North Star BASIC Version 6, under North Star disk operating system release 4.0. Prompts are given as complete English sentences, and responses are accepted as words, rather than numbers. Imbedded commands are not required since IDSWORD formats the text interactively. Some of the features are insertion, deletion, and block moves of text; global searches; complete text editing on video terminal or printer; control of margin size and justification; merging of up to ten files; sorting and printing of mailing labels.

Block editing capability on the video terminal is available by a linked list of all lines of text in memory, coupled with full cursor control over the entire text display. The amount of text in memory is automatically adjusted to the available memory. About 25 pages of text may be stored on a single density disk. Longer documents may be developed and printed in segments.

IDSWORD will run with one or two disk units. It is presently configured to run with the Soroc, Lear Siegler ADM-3a, Hazeltine, and Intertube terminals, and the IBM Selectric, Qume, Diablo, and Spinwriter printers. IDSWORD is a modular system starting at $125 for the basic configuration. The complete word processor is priced at $245 for the video screen edit capability, or $220 for the editing on the printer capability. The form letter, labels, name and address file maintenance, and sort modules are $50. For further information, contact CW Applications, 1776 E Jefferson St, Rockville MD 20852.

Circle 641 on inquiry card.

240 July 1979 © BYTE Publications Inc

CaUForn.a DiqiTAl

Post Office Box 3097 B • Torrance, California 90503

Sankyo Magnetic Card Reader

These Sankyo I/O units are capable of storing and retrieving over '400 characters of data in under two secords.

>The flexability of this device lends itself to numerous applications. As an input reader to a computerized security system, the computer has the ability of identifying the card holder and admitting only those individuals who are authorized to enter the premises I during specified time frames. The device is also suitable for I maintaining customer information files, or any other application I where small amounts of information must be quickly entered into I a data processing system.

I Accepts 2" by 4" HP style mag-cards. (Similar to bank cards. ) J Motorized feeder pulls the magnetic card across the four channel | read/write head. NEW surplus, original cost $200. Full documentation

CONNECTORS

iiumuu,

m mai m

|°^:.-.v.-.v.y>|

your choice DB25P , male plug&hood or

DB25s female

*3.95

Qty. fe. mile bd. 10 MS 2.45 1.15 25 3.15 2.2S 1.05 100 2.15 1.90 .95 500 2.25 1.50 .85 IK 1.97 1.37 .73

Edge

Connectors

GOLD 100 PIN

IMSAI/ALTAIR

Imial iolilfr.12Si.250 Imtil w/w.l25ceeter« • Hair iold.rt.il .140 ro» SPECIALS 22/44 Him eyelet.150" 25/50 Idld.r lib .155" 36/72 wide pint W/W.156

13.95 3/» 9.00 •4.55 3/113.00 15.95 3'MS.00

• 1.95 3, «5.00

• 1.09 3/12.00

• 1.95 3. 15.00

S-100 Mother Board Quiet

TEN Sill {*< —Certified Digital

J*M SCOtCh CASSETTES

£.rTT^ ^UNIVAC KEYBOARD

Tfia lirnom Sparry umvac 1110 Hollsrlih knybonrd aawmbly .» no* arailabta liom Calllomia InrJuflriil lor only 12* M Tha idaal compular input devica tor iccountinti and nalieiani Tha numariC *eyi am placed on I rut lowar owl lo raaambW 1 Uxi key adding macntna. Thn alUM on* handed numeric dale entry, ii coti was S38S llMd t>ul guaranteed in eicellenl

Shugart Associates

$79.50

Plugs directly into you Apple II. Allows you to enter numerics, punctuation and upper case alpha characters, all from the data entry pad. Sold assembled in walnut finished enclosure.

APPLE (I

IBK MEMORY

COLOR • GRAPHICS* SOUND

$1024

PLUS SHIPPING

Mlt.Suj. Rel.il...,

•1195

Diskettes

8inchSoft(IBM< 8 inch 32 sector Mini Soft sec. Mini 10 sector Mini 16 sector

Won't drop a BIT! SA800 R Floppy Dlstf DflVe

The most cost effective way to store data processing Information, when random recall is a prime factor. The SA800 is fully compatible with the IBM 3740 format. Write protect circuitry, low maintenance & Shugart quality.

CALIFORNIA DIGITAL

16 BiT 8086 S-100 CPU Board

Directly addresses one megabyte. 8 bit unidirectional & 16 bit bidirectional. 4K of static memory is supplied on board. $650. 00

DiqiCAST A/V-100

R.F. MODULATOR

^AQAeBroadcast both fc»af,***audio and vidio on your existing color television. Recommended for the Apple II.

memory (8) 4116*8

• As you may be aware, publishers require advertisers to submit their ad copy 60 to 90 days prior to "press" date. That much lead time in a volatile market place, such as memory circuits, makes it extremely difficult to project future cost and availability. To obtain the best pricing on memory we have made volume commitments to our suppliers, which in turn affords us the opportunity to sell these circuits at the most competitive prices. Please contact us if you if you have a demand for volume state of the art memory products.

STATIC

21L02 450nS. 21L02 250nS. 2114 1Kx4 450 2114 lKic4 300 4044 4Kcl 450

4044 4Kxl 250

4045 110t4 450 4045 lftt4 250 5257 low pow.

1-31 1.49 1. 69 6. 95 8.95 5.95 9.95 8.95 9. 95 7.95

32-99 100-5C

1. 19

1.49

6. 50

8. 50 5. 50 9.50 8.50

9. 50

7. 50

1.05 1.45

6. 25

8. 00 5.00

9. 00 8.00 9. 00

7. 05

.95 * 6.00

1K+

5.75

SPECIAL CIRCUITS

Z80A 4 MHz. 8080A CPU 8085

8086 Intel 16 bits TMS9900 16 bits

24.95 9.95 22. 50

AY5-1013A UART 4.95 Floppy Disc Controllers WD 1771 single D. 39. 95 WD 1781 DoubleD 65. 00 WD 1791 D/D3740 *

E PROMS 1-15 16-63 64+ 1702A 2K 4.95 4.50 4.00 2708 8K 9.95 9.50 9.00 2716 5vl6K 49. 95 45. 00 42. 50 2532 32K * * *

$139.50

PORTABLE DATA ENTRY SYSTEM

These used data terminals were originally designed for chain store inventory control and order entry systems. The operator enters the inventory control number, merchandise on hand and the unit price. After all pertinent data has been entered Into the recorder, the main warehouse is telephoned, the handset is placed in the acoustic coupler and all the recorded information is transmitted back to the master computer. With a little imagination and one of these portable entry systems, you should be able to exchange programs and computer information with associates across the country. All units were removed from Bervice in working condition. Original cost $2,500. Each system comes complete with:

•Portable Cassette Drive Unit "Five Gould "D" NtCads -DB25 Cable

■Removable Entry Keyboard -Acoustical Coupler .Shoulder starp

with LED Display -Battery Charger -Full Documentation

Miniature Switches

your choice

e ao 10 » too '>

5.88 .81 73.66 SPDT Miniature Toggles

7101 CaK ON-NONE'ON

7107 |bt 0N-0f F(nmt.ON)

7108 CK ON (moment. OH)

Rocket IBT DP0T

Rotary 3P-4-Pos. Rotary 3P-6-Po». Push 8 (N.0.( S.39ei.4/Sl

DIP Switch

ysTEm xn

It's nol offer, that California Digital ventures Into the distribution of consumer products, but we have resently come accross a product that appears so unique that we just had to add it to our product line. This is the System X-10 manufactured by th* BSR turntable company. This space age system will remotely control any light or appliance in your home or office. Command signals are transmitted from the command console over your existing wiring. From your bed or easy chair you can control up to 16 different electrical devices InBide and outside your home. Use the System X-10 to control your stereo, television or any light fixture on the premises.

The basic sampler package comes complete with command console, battery operated ultrasonic controller, one each of the appliance module, lamp module and wall switch. The basic package is priced at only $09.50 Additional modules are available for $13. 95 each.

DISCOUNT '

UJire Wrap Center

■sail

IC SOCKETS

wire wrap low profile ee. 25 5 0 ee. 25 50

» 17' 16 15

14 37< 36 35 It 17 16

16 38 37 36 19 18 17

24 99 93 85 36 35 34

40 let 155 139 63 66 58

»«. KVNARwrSp

•98 500 1,000 11,000 $9. 515. (105.

BW630 law

(213)679-9001

Circle 39 on inquiry card.

All merchandise sold by California Digital is prentiuili yrade. Sorrv. no CCD's. (Jcdt-rs are shipped \h'- same day received. California residents add (*"'.>. Foreign order* add 10'Jt.. Orders ovf-T $215, when accompanied by paytnent, arc shipped ai our expense. Otherwise! pleftse add $2.

BYTE July 1079 2 41

.

What's New?

PUBLICATIONS

mKKs

• FOBCS OPSBATEO

• INFINITE RESOLUTION

• HIGH RELIABILITY

Miniature Joystick Catalog

Measurement Systems Inc announces publication of their new 16 page catalog, Miniature Joysticks. These joysticks are used for cursor positioning of many displays including interactive terminals, computer aided drafting, and radar systems. They are also used for mechanism positioning such as microcircuit production equipment and vehicle control. These joysticks are offered for control of one, two, or three axes. They are offered in commercial, industrial and military grades. For further information contact Measurement Systems Inc, 121 Water St, Norwalk CT 06854.

Circle 642 on inquiry card.

EPROM Bulletin Shows Erase Times

An in-depth technical bulletin showing erase times and energy characteristics for various popular erasable read only memories is available at no charge from Adco Electronics, 2182 DuPont, Suite 222, Irvine CA 92715. It contains two charts which make it easier for the user to be sure of proper erasure of ultraviolet (UV) erasable programmable read only memories. The brochure, Ultraviolet Erasing of EPROMS (# A78286), has been prepared by the engineering staff of Spectronics Corp to take the guess work out of making sure that various programmable read only memories are empty of data. By quickly determining the specific energy level needed and required exposure time, the user can select the correct UV source.

Circle 643 on inquiry card.

TV

WIKTKC

ftlXAGK

Wintek Corp Offers New Catalog

This catalog contains a 6800 based single board computer plus 15 support and interface modules on industry standard 41/2 by 6V2 inch cards for process control and data acquisition. Additionally, 6800 development systems, resident and cross assemblers, and compilers are listed. For further information contact Wintek Corp, 902 N 9th St, Lafayette IN 47904. I

Circle 644 on inquiry card.

The Complete Motorola Microcomputer Data Library

77?e Complete Motorola Microcomputer Data Library presents technical data for microcomputer design and implementation. It is divided into three basic segments, each further subdivided into subordinate product categories. The three segments are:

• microcomputer componentsmicroprocessor and microcomputer unit components, together with interface and peripheral components to implement microcomputer systems,

• memory products—basic memory components and add-in and addon memory subsystems for computer applications,

• microcomputer development systems and subsystems—support products (hardware and software) to design microcomputer systems; board-level subsystems for system implementation.

The organization within each of these basic segments is by device families and application groupings rather than in alphanumeric sequence. Therefore, a comprehensive table of contents provides the reader with a sequential listing of the chapter by chapter content of each segment.

The book is priced at $6. For further information write to Motorola Semiconductor Products Inc, POB 29024, Phoenix AZ 85036.

Circle 645 on inquiry card.

Buyers Guide Offered Free of Charge

This buyers guide of microcomputer software, accessories, and supplies is available from Wallace Electronics Inc, 4921 N Sheridan Rd, Peoria IL 61614. Software and accessories for the Apple II and TRS-80, as well as a wide range of computer supplies, are listed on these sheets. The guide is updated weekly. The buyers guide is free of charge, although .50 should be included to cover postage and handling.

Circle 646 on inquiry card.

PIMS

Personal Information Management System

Personal Information Management System describes a data base management program designed for personal use on such small computer systems as the Radio Shack TRS-80 Level II, or other systems using a Microsoft compatible BASIC language. Along with complete source listings of the program and comprehensive operating instructions, this 88 page book discusses the microcomputer and its potential for personal use. Additionally, 15 comprehensive applications of the program are illustrated in detail. The publication is designed for the computer novice although the program may be beneficially used by anyone. The book is priced at $9.95. For further information contact Scelbi Publications, POB 133 PP STN, Milford CT 06460.

Circle 647 on inquiry card.

242 July 1979 © BYTE Publications Inc

Venus 2001 Video Board

Assembled and Tested $259.95 • Complete Unit with 4K of Memory and Video Driver on Eprom assembled and tested $339.95

OPTIONAL: • Sockets $10.00 • 2K Memory $30.00 • 4K Memory $60.00 • Video Driver Eprom $20.00 • Text Editor Eprom (Includes Video Driver $75.00)

5-100 Plug-In • Parallel Keyboard Port

On board 4K Screen Memory (Optional). On board Eprom (Optional) for Video Driver or Text Editor Software.

Up and Down Scrolling through

Video Memory

Reverse Video, Blinking Characters.

Display: 128 ASCII Characters 64 X 32 or 32 X 16 Screen format (Jumper Selectable). 7 by 11 Dot Matrix Characters.

American or European TV Compatible (CRT Controls Programable)

Dealer Inquires Invited

15 MHZ DUAL TRACE

Portable Scope

•399.

m m

BIG PRICE W77il Igfwi, *■ ■> & hjj

BREAKTHRU^ 1 mm

s/ MODEL MS-215

• Battery or A.C. Operated • External and Internal Trigger

• Time Base—.1 m Sec./Div. Into 21 Calibrated Ranges • 3% Accuracy. Input Impedence 1 M Ohms • Complete with Input Cables, Battery and Charger. OPTIONAL: • Leather Case $45.00 • 10:1 Probe $27.00 (2 for $49.00)

MS-15 Single Trace Scope $299.

32-K Static RAM $499.

• S-100 Plug-In • Kit includes P.C. board, all parts and assembly manual • Uses2114L, 450 nS.

I.C. sockets - $20.00 P.C. BOARD BY S-100 CO.

16-K Static RAM $249.

• S-100 Plug-In Kit includes P.C. board, all parts and assembly manual. Uses 2114L 450 nS.

Sockets-$10.00 Add $40.00 for 300 nS (4MHz) RAMS P.C. BOARD BY WAMECO

z-80 cpu $125. kit

• S-100 Plug-In Kit includes P.C. boards, all parts and assembly manual.

FEATURES: 2MHz operation • S-100 plug-in

• Power-on jump • On board provision for 2708 (optional at $12.95).

P.C. BOARD BY ITHACA AUDIO

Circle 130 on inquiry card.

ASCII Keyboard Kit $77.

Assembled and Tested $93.00 • Single +5V Supply • Full ASCII Set (Upper and Lower Case) • Parallel Output • Positive and Negetave Strobe • 2 Key Rollover • 3 User Definable Keys • P.C. Board Size: 17-3/16" X 5" • Control Characters Molded on Key Caps • Optional Provision For Serial Output OPTIONAL: Metal Enclosure $27.50 • Edge Con. $2.00 • Sockets $4.00 • Upper Case Lock Switch $2.50 • Shift Register (For Serial Output) $2.00

Dealer Inquiries Invited

Apple II I/O Board Kit

Plugs into Slot of Mother Board •1 8 Bit Parallel Output Port (Expands to 3 Ports) • 1 Input Port • 15mA Output Current Sink or Source • Can be used for peripheral equipment such as printers, floppy discs, cassettes, paper tapes, etc. • 1 free software listing for SWTP PR40 or IBM selectric. PRICE: 1 Input and 1 Output Port $49.00 1 Input and 3 Output Ports $64.00 Dealer Inquiries Invited

SHIPPING $3.50 / California residents add 6% sales tax

ELECTRONICS WAREHOUSE Inc.

15820 Hawthorne Boulevard Lawndale, CA 90260 (213) 370-5551

PUBLICATIONS

Visible Computer Supply Offers Free General Catalog

Visible Computer Supply Corp, supplier of data processing supplies and accessories, is offering their 116 page 1979 illustrated catalog featuring more than 2800 products. Their product line covers binders and accessories for printout storage, systems and programming aids, a complete line of magnetic media and related handling and storage systems, minicomputer accessories, video terminal stands, keypunch furniture and accessories, word processing supplies, microform retention and retrieval systems, and pressure sensitive labels. For further information contact Visible Computer Supply Corp, 3626 Stern Dr, St Charles IL 60174.

Circle 648 on inquiry card.

Apple Software Directory

Over 700 software programs for the Apple computer have been compiled into the Apple Software Directory- All programs are listed alphabetically so that the same type of program produced by several sources can be compared. Listings include description, memory requirements, price, format and the source. All sources are listed with addresses.

The directory is printed in two volumes. Volume 1 covers business and utility programs. Volume 2 covers games and entertainment programs. Each is priced at $4.95. For more information, write WIDL Video, 5325 N Lincoln, Chicago IL 60625.

Circle 649 on inquiry card.

Publication Lists 32 BASIC Programs for the PET

32 BASIC Programs for the PET Computer by Tom Rugg and Phil Feldman is precisely that ..32 fully documented programs that are ready to run on an 8 K byte Commodore PET 2001 computer. The reader does have the option of making changes to these programs. This 267 page book covers application, educational, game, graphic display, mathematical and miscellaneous programs. The book is priced at $15.95. For further information, contact Dilithium Press, POB 92, Forest Grove OR 97116.

Circle 650 on inquiry card.

Software Magazine Devoted to Radio Shack TRS-80

Owners of Level II Radio Shack computers will appreciate SoftSide, a magazine devoted to providing games and light application software in Level II BASIC. Owners gf other personal computers using Microsoft BASIC will also find programs that can be readily converted for their systems.

The particular emphasis of the magazine is simulation games. Readers of recent issues have been able to play football, race a clipper ship around Cape Horn, rule a fifteenth century Italian city-state or chase wild animals on a photographic safari. Light application programs are also published, and have included an income tax program and a personal finance program complete with graphic pictures of checks on the screen. Hints for TRS-80 programmers regularly appear in various places throughout the magazine.

Softside is published monthly and is available by subscription for an annual rate of $15. A special cassette edition which includes the magazine and all the monthly programs in machine readable form is available for $38 for a six month subscription. For further information contact

SoftSide Publications, POB 68, Milford NH 03055. circle 661 on inquiry card.

New Book Features Self-Contained Programming Problems

Circle 652 on inquiry card.

Etudes for Programmers by Charles Wetherell is a collection of large scale problems for learning by doing. Each problem includes a real world background discussion of appropriate programming techniques, detailed requirements for correct solution, extensions, and annotated bibliography. Two of the problems are completely solved by the author. The solutions concentrate on good programming techniques, measuring the quality of the program and the output, and possible extensions of the problem. They are models of what solutions to any programming job should be, and they contain many practical hints about writing good programs.

Additionally, this 200 page book offers references to sources for programming information and further reading about problem subjects. It includes a complete set of four projects for a programming language course: macro-interpreter, compiler, relocating loader and computer simulator.

Etudes for Programmers is priced at $12.95. For further information, contact Prentice-Hall Inc, Englewood Cliffs NJ 07632.

244

July 1979 © BYTE Publications Inc

The

TO ORDER CALL TOLL FREE 800-223-7318

COMPUTER FACTORY

only $795

USED $559

, • 14K ROM Operating syslem

• 8K RAM Memory

• 9" Video Monitor

• Built in Keyboard

• Digitally controlled tape I Today s best value in personal computers, along with the latest

| in peripherals are always in slock at the COMPUTER FACTORY

NEW! pets?&senmess

I The PET is now a truly sophisticated Business System with the Floppy Disk and Printer which makes an ideal cost efficient business system for most professional and specialized fields: medicine, ■

law, research, ' education, etc.

engineering."

PET 2001

16K$995 32K$1295,

I • 18 or 32K Bytes. p| | Dynamic RAM • 14K ROM

Operating System' | • Upper-Lower Case and

Graphics I* Full Sized Business Keyboard

• Full Screen Editing I • Operating system will support multiple Languages (BASIC resident) I • Machine Language Monitor I • 8K ROM Expansion Sockets ' 9" CRT

PERIPHERALS FOR PET

• 24K Memory Expansion

• I6K Memory Expansion

• PET to HS232 Sena/

• 2 Way Serial. Comrrumcatioi

• Modem Board for PET

• Analog to Digital Board For 16 Devices

' Second Cassette Drive

i Parallel Printer Interface ...

I PET .. PRINTERS 2023 $849 |

2022 $995 i (Includes Tractors)

• Bottom and Rear Tractor Feed

• 8V Paper Width

• 6504 Microprocessor Controlled I

• 4K ROM • ' ,K RAM

• Upper/Lower Case and Graphics

• J x 6 Do! Matrix

PET

MUSIC BOX Add music and sound effects to your programs. Compose, play, and hear music on your pet. Completely self-contained (no wiring). Free 3 programs including Star Wars theme, sound effects, etc. $39.

DUAL DRIVE FLOPPY DISK 2040 $1295

• 360 K Bytes Storage

• High Speed Data Transfer » Plugs into IEEE Port

• 6504 Microprocessor

• 8K ROM Operating System

• 8K ROM Encoding and Decoding

» 4K RAM

• Uses Single or Dual sided Diskettes

| SINGLE DRIVE FLOPPY UNIT 2041 $895

» Intelligent mini floppy I • 171 5K net user storage

51

$1495 Complete! 16K Model add $200 32K Model add $500

Cbmpucolorll

COMPUCOLOR II Disk-Based Model 3 Advanced hardware and software technology gives you:

• 13 " Color Display

• Advanced Color Graphics

• 51K Disk Built-in

• 16K ROM Operating System

• 8K RAM User Memory

• 4K RAM Relresh

• 8080A Microcomputer

• RS-232 I/O

I Every unit comes with an extended DlSKBASIC that has full file management capability resident in the COMPUCOLOR II in 16K of ROM Color is fantastic, but COMPUCOLOR 11 has the power to handle complex tasks and small business applications. An impressive software library supplements your own creativity

BUSINESS COMPUTER IMSAI

The low cost solution for all small business problems A wide variety of software is

available for all your needs PCS series include dual floppies, 32K RAM. I O. DOS. BASIC

• PCS-42 (400KB) $3295

• PCS-44 (780KB) $3995

VDP-42 series adds video terminal, keyboard and VIO to above

• VDP-42 $4995 • VDP-44 $5595

• VDP 80 $7995

NEWIfron,

Eventide

AUDIO SPECTRUM ANALYZER

• Mounts inside the PET

• Third-Octave audio specttve analysis

• Complete with software and documentation

• Replaces equipment costing thousands of dollars

$595

MARK SENSE CARD READER $750

• Automatic turn-on and card feed J

• Ideal for marking test scores

• Accepts any length card

• Perfect for schools & business

AHPLr. 11

apple i-. ,i eoitifHittiy fOftt«ntd comiuiiti tyiWm, with BASIL in hum lull ASC 11 ki'Vliu.ml in ,i llglilVKBighl iimloVil uarrvmg

bum E-ajwndabPt to 4 en

APPLE It Uim $59b

APPt ES0FI .i> ROM* .. SZQH InlBHuceCardt 5179

MICHOPROOUCTS

• fcPMIM PffltTM S 99.9b

• El'ROM Suck.'! A.lm S 14.95

SUPER SOFTWARE

Word

Processing For PET

This super advanced full function program will allow you to create text from PET or terminal Keyboard. • INSERT • DELETE • CENTER • UNDERLINE • FULL SCREEN EDITING • MOVE LINES OR | BLOCKS • SAVE TEXT ON TAPE • AUTO PRINT FEATURE....$45

Apple's This fantastic program disk allows the statistician. Moving mathematician, trader in stocks, money or Average commodities, the ability to maintain 30 database Plot series of up to 300 values and plot 3 different moving

Program averages of a series at the same time, in 3 different

colors. Files can be updated, deleted, changed,

extended, etc.

A sure value disk at only $401

Word Processing For Apple on disk...$50

bv exidv

• ZBOPi

• Keyboard and H

• BK HAM (up lo 32KI CQQC

• Serial and Parallel I/O *°

• Dual Casselie 1/0

• 3D i 64 Display

• S 100 Compatible

• 6i Usei Oelined Chaiacim

• 240 > 517 Resolution Gtapfiici Modular dostyri allows me ol both cas«ttei lor program! and RUM PAC cartridge! lor luture language inl reduction J like; APL. COBOL. PILOT. FORTRAN, en. Add monitor and tape or disk loi complete computet

SORCERER

i

SPECIAL 12" Video Monitor for SORCERER ($299 value)

ONLY

SI 25 with 8K unit 95 with 16K unit 65 with 32K unit

ANDERSON JAC0BS0N

Ei3j

Ideal lor word procniing and small bunnesssi.

• Ascncodi uoW

* 15 cpt Printout P"v

• High Quality Stltctiva Printing

• Use Keyboard lor PET ■ Reliable huvy duty Mechanism

* Completely Rilurbiihid by A.J.

* Serv.ce in IS Maktr due)

foCKll

IN SI

Parallel

$1095

Snul

$1195

RADIO SHACK • PET • SORCERER • APPLE • COMPUCOLOR • ETC.

PRINTERS • PRINTERS • PRINTERS

The COMPUTER FACTORY'S extensive CENTRONICS. $1095

inventory and wide selection of computer AXIOM (Parallel) 445

printers assures you of finding the printer AXIOM (Serial) 520

best suited (or your needs and TRENDCOM 375

specifications. The following printers worklNTEGRAL DATA 795

well with all known personal computers OUME or DIABLO 3400

Min Credit Card Order $75

rvith purchase ot any > page

N Y residents add 8% sales tax • Same day ea* shipment on prepaid and credit card orders

» Add S5 shipping for computers. S3 for

joards. S 25 each cassette tape.

FREE

TO ORDER CALL TOLL FREE 800-223-7318

NEW

CENTRONICS 730

SO CPS - MICROPROCESSOR CONTROLLED)

Tractor & Friction Feed • Uses Single Sheets, Roll, Fanfold • Upper & Lower Case • Light Weight

Parallel $995

Serial $1045^-^^ 6

(46th St.)

TL* /^aOlVlID! iTETD CAPTHDV 485 Lexington Avenue 750 Third Avenue New York, N.Y. 10017 I lit? V^V^IVInU I Cn "MV^ I V^rl I (212) 687-5001 (212) PET-2001 Foreign order desk ■ Telex 640Ubb

BYTE July 1 979 245

What ■s New?

PERIPHERALS

Answer and Originate Acoustic Coupler Real Time Calendar and Clock for Apple II Computer

The AC-312 answer/originate acoustic coupler operates at 300 bps. The device is 103 Western Electric compatible and is switch selectable between originate and answer modes. When in the answer mode, this unit will generate the answer tone necessary to communicate with 300 bps originate only couplers and modems. The AC-312 includes a single plugable printed circuit board for ease of field upgrading to 1200 bps operation and field service. Standard light emitting diode diagnostic indicators are also featured. The AC-312 answer/originate modem is priced at $295. For further information, contact Digicom Data Products Inc, 1440 Koll Circle, Suite 108, San Jose CA 95112.

Circle 653 on inquiry card.

Mountain Hardware has announced the Real Time Calendar and Clock for Apple II computers. The Apple Clock keeps time and data in 1 ms increments continuously for over one year. Calendar, clock, and event timer functions are easily accessed from BASIC using routines contained in on board read only memory. Some of the features of the Apple Clock include crystal control, on board rechargeable battery to keep the clock running during computer down times; software for calendar and clock routines as well as an event timer contained in on board read only memory; and an interrupt feature which can be

programmed to make efficient use of computer time. Sample applications include programming a morning printout of appointments; date of transactions; creating games in which elapsed time is important; and time events. The Apple Clock can be added to Mountain Hardware's Introl Remote Control System for real time control and monitoring of remote devices over regular AC wiring.

The price of the Apple Clock is $199 assembled and tested. For further information, contact Mountain Hardware Inc, 300 Harvey W Blvd, Santa Cruz CA 95060.

Circle 654 on inquiry card.

Interface TRS-80 to Summagraphics' Bit Pad

Summagraphics Corp has announced the availability of an interface for the company's digitizer, the Bit Pad, which allows connection to the Radio Shack TRS-80 microcomputer. This new interface permits the entry and transfer of X,Y coordinate values for graphics and data entry applications from the Bit Pad to the TRS-80 computer.

The interface is priced at $175, and a cassette containing software is provided. Data is transferred from the Bit Pad in groups of five bytes. The interface is contained in a small separate box that connects to the Bit Pad and the TRS-80. The interface allows use of all other TRS-80 accessories. For further information, contact Summagraphics Corp, 35 Brentwood Ave, Fairfield CT 06430.

Circle 655 on inquiry card.

Compact Low Cost Alphanumeric Printers

The DigiTec'6410 and 6420 small desktop printers print 20 columns of alphanumeric characters. Sixty-four different characters are produced in a 5 by 7 dot matrix. The printer can easily replace teletypewriter terminals in applications that don't need 80 column capability. An internal microprocessor makes these new printers reliable and easy to interface. The Model 6410 provides a serial interface to RS-232C and 20 mA current loop systems at 110 bps. The Model 6420 works with 8 bit parallel bus systems at up to 1000 characters per second. They both use the ASCII input format. The single unit price is $395. For further information and special OEM information, contact United Systems Corp, 918 Woodley Rd, Dayton OH 45403.

Circle 656 on inquiry card.

246 July 1 979 © BYTE Publications Inc

Electrolabs new

FOB 6721, Stanford, Ca94305 CATALOGUE

//. &»»,».: 415-321-5601

800-227-8266 TLX: 345567

FLOPPY SYSTEMS

Crystals

Integrated circuits Keyboards Lasers LSI-11 Media RAMs

S-100 Components Z-80 Components

8" Siemens FDD 120-8 Drive All. Siemen's options included in this drive which can be configured hard or soft and single or double density. (Others give only stripped unit) $399.00

"Power One" Model CP206 Floppy Power Unit For two drives going full-out, and possably more on less severe service. 2.8A®24V, 2.5A@SV, 0.5ASJ-5V. Beautiful quality. $99.00

(Standard)

§39.00 $34.95

Tarbell ("It Works") Interface (Includes cable set for 2 drives) $265.00 but only $219.00 with purchase of two drives.

Cable Kits 10' with 50 cond. cable and connectors and also Molex connectors and power cable: For one drive: $27.50 For two drives: $33.95, and for three drives: $38.95

CABINETS for FDD120 and 801 R Drives, or CP206 power supply. Matte finish in mar resistant black epoxy paint. H||Lstacking type design. $29.99

ELECTRO LABS is proud to announce appointment as DISTRIBUTOR by Cll-Honeywell Bull.

$3495.00 1500.00 995.00 1900.00

PRICE BREAKTHROUGH onSUPERDISK 10MBY! General purpose controller (requires 2 parallel I/O ports)

S-100 Controller (DMA)

"RL-01/RK-05" surrogate

(transparent to RT, RS, RX)

SOFTWARE: (CP/M Compatible)

SUPERD0S1

(Z-80) $695.00

MICR0D0S 1

(TRS-80)... $199.00 Power supply (switching)

$395.00

Enclosure (desktop)

$ ^-uu Removeable Media Cartridge Drive

Used Sylvania 12" Video Monitors. Composite video 15mhz, 115vac, 50/60hz New Tube. As shown $109 OEM style without case: $99, Anti-glare tube option add $12. Specify p4 or p39

ESAT 200B

5/4" MINI-FLOPPY DRIVE $299.00

— single or double density - quick access time

- high reliability & durability

Mini-floppy CABLE KIT: for TRS-80 or your Tarbell controller. $24.95

Daisy Wheel Printers Qume Sprint: 3\45

Print wheels S8.95 Ribbons $5.95

OEM Style mechanism $1399.00

BI-LINGUAL 80x24

COMMUNICATING

TERMINAL Scrolling, full cursor, bell, 8x8 metrix, 110-19,200 baud. Dual Font Applications. Arabic & Hebrew, Multilingual Data Entry, . Forms Drawing, Music Instruction, Specialized Graphics (e.g. Games, Chemical Plants, Switchyards) $349.00 We carry keyboards, cases, power supplies, etc., enough to make an entire system.

Circle 115 on inquiry card.

BYTE July 1979 247

What's New?

MEMORY

—

—

Associative Computer Memory Available from Semionics Associates

Content addressable or associative computer memory is available from Semionics Associates, 41 Tunnel Rd, Berkeley CA 94705. Called REM (recognition memory), it differs from conventional memory by eliminating serial searching. An item may be accessed simply by being named. REM can be written into and read from like ordinary memory, but has parallel processing functions, including six types of recognize and multiwrite. The recognition operations replace serial searching, while multiwrite allows the processor to write into multi

ple locations with a single instruction. Individual bit masking may be applied to all of the operations, including ordinary (location accessed) read and write. A data processing system with these functions is known as a CAPP (content addressable parallel processor). Ideal for pattern recognition and information retrieval applications, it is also capable of performing parallel arithmetic operations.

Semionics' first product is an add-in recognition memory for microcomputers having the S-100 bus. Called REM S-100, the board converts the microcomputer to a CAPP by adding new instructions to the instruction set of the processor. The board is organized to make these addi

tional instructions possible without any alteration to the processor.

Recognition memory is organized in 8 bit words and 256 word REM records. It is a static memory with an access time of 200 ns for a single memory location, and recognize or multiwrite time, for all REM records of 4 ^s. This time does not increase with size of memory. In a system with multiple REM boards, all of these are accessed in parallel during a recognize or multiwrite operation.

The REM S-100 add-in recognition memory board has a capacity of 4 K .bytes and is priced at $345.

Circle 657 on inquiry card.

NEW OLD

"BUYERS-SELLERS-TRADERS-READERS" COMPUTER PRODUCTS FLEA MARKET

• Want to BUY, SELL or TRADE COMPUTER ITEMS? Hardware, Software, Anyware??

• Want to READ WHERE to GET ITEMS??

• Don't want to WATT 3, 4 or 5 MONTHS for your AD to APPEAR??

• Want WORLD-WIDE' CONTACT POTENTIAL with INTERESTED PATRONS??

• Want REASONABLE RATES??

+ We PUBLISH and SEND the AOs VIA 1st CLASS MAIL WITHIN 3wks of RECEIPT.

+ We PROVIDE WORLD-WIDE* CONTACT.

+ ADs "RUN ONE TIME FOR ONLY $6.75 or BLOCKS of 3 TIMES EA FOR $18.00.

**IAd length! of 180 charscten "Charactm' include punt tuition and spices. For longer AOs, over 1B0 characters, add ID* per character).

• RECEIVE AD PUBLICATIONS ONLY-RATE:

(7.5019 nuts, (14.40 JIB issues (sent 1st dass to US 6 CA) ta/Bxta US Er CA rate: add (1 50 to 9 issue RATE and 53.00 to )8 rssne RATE is sent VIA AIR MAIL - sand U.S. funds.) •IPar AO response).

SEND CHECK OK MONEY ORDER TO:

"KING FLEA"

P.O. Box 2256 Pocatelln. ID. 83201

MORE INNOVATIONS!

FROM

P.S. SOFTWARE HOUSE

FORMERLY PETSHACK

PET" INTERFACES

NI.W*

PETioCENIHONICS INTERFACE S9800

PET to PARALLEL INTERFACE «>th 5V 8A power mprjiy SM 95

PET 10 2ryj CASSETTE INTERFACE S49 95

PET " SCHEMATICS

_ 'CPU boaia prus ovo-K/od scrwnancs or mo U«ao Monitor and Tap* Recorder Out complete p*"» Lay-out an acrwaWy and painuakinglY drawn in the minuted detail

PET" ROM ROUTINES

FOR ONLY $19 95 YOU GET

CWnpMM b.iasnxnwy Ititmgi o* all t ROMS t#m lllHpTHU penis V«Jeo Momtoi Keyboard routine Tape Record and Playback Time Clock etc To entice you we are aiw •ncluUsng our own Machine Language Monitor program lor your PET usmq the keyboard and v«Jeo display You can have me Momlcn progtam on cassette lor only 19 95 enlra

SOFTWARE

650IOISASSfMSL[H

MAILING LIST for ofw> M RuMtetA enpta *

MACHINE tANGUAtif MONItOH ■ S.l.f n" I.H

Budget srw >Ufiit<«>..ih,h< lOva* utuuw^'^tm

S i AR ifltrt An t>m* lajtMril* wsillen It* the PI I ■, tm .at r,i.u,».i *

Senfl tor oui Ira* SOfTWARC BROCHURt Oealer nqjMM *ettom*

P.S. SOFTWARE HOUSE

P.O. Box 966 Mishawoka. IN 46544

<5CS Tel: (219) 255-3408 f

6800 DEVELOPMENT PAC I

•CONTROL MODULE-single board computer

• 16K RAM MODULE-16K 8-bit bytes •RS232 INTERFACE-switchable rates •CASSETTE INTERFACE-300/2400

baud

• FANTOM-II monitor/debug ROM •EDITOR/ASSEMBLER-on cassette •CARD RACK, BACK PLANE, POWER

SUPPLY •$895

I Corp. Phone: 317-742-6802 902 N. 9th St., Lafayette, IN 47904

Circle 201 on inquiry card.

Circle 295 on inquiry card.

Circle 389 on inquiry card.

NEW 32K EPROMjRAM MEMORY CARD

SS 50 BUS

SV only

DS0 PIR-32K 527.00

2716 EPR0MS & TMS 4016 2K * 8 Static RAM. 4 Independent 8K rramory blocks. Siia 9" « 5ft".

0S0 2114-I8K 527.00

16K Static RAM memory card using the 2114 ar TMS 4045 IK « 4 Static RAMS. Size 9" « 6ft". 2 Independent 8K memory blocks. 5V only.

NEW DSD U P 8255 IC & Ml 514.00

Universal parallel interlace card lor Both the SWTP 30 pin I/O BUS IM) & the DSD 27 pin BUS ICI. Utilizes INTEL'S 8255 PROGRAMMABLE 110 chip. Wire wrap aree for full UTILIZATION of the 8255. Card size 5»" « 5" (Ml. 6»" « 4)4" ICI.

ALL cards are bare board with edge connectors & Dsta.

%DIGITAL SERVICE & DESIGN P.O. BOX 741 MIC. NEWARK, OHIO 43055 VISA Ohio residents add 4.5% sales tu.

0Rr

Ge^'eWat>\e 9s

toW

,rtd sc

^tl0 „

tted

64K RAM BOARD

The Zg-SYSTEMS 64K RAM board is designed to operate m any Z80 based microcomputer having 5-100 bus. It uses 16K dynamic RAM chips, & features:

— Board select

— Bank select

— Transparent on-board refresh

— 2 or 4MKz operation (w/ no wait state)

— Memory disable Compatible with Cromemco system

Fully assembled, burned in, & tested

Available from Btock to 60 days As low as $300.00 in quantities of 100

Price of one $649.00

PC board only $59.00

Withl6K RAM $359.00

PIub shipping charges

Zs SYSTEMS

POBox 1847, San Diego, CA 92112 (714) 447-3997

Circle 101 on inquiry card.

Circle 284 on inquiry card.

Circle 401 on inquiry card.

SOLID STATE SALES. . .

A PICTURE MAY BE TAKEN BY OUR CAMERA, STORED IN A COMPUTER IN REAL TIME AND THEN DISPLAYED ON A CRT AT AN AFFORDABLE PRICE

VIDEO COMPUTER

PROCESSING SYSTEM

THIS REMARKABLE VP-1 COMPUTER/ INTERFACE KIT HAS THE FOLLOWING:

FEATURES

• IT PRODUCES COMPOSITE VIDEO OUTPUT IN A 128x128 MATRIX FROM A DIRECT MONITOR CONNECTION USING 8K OF MEMORY

• THE SYSTEM USES A STANDARD S 100 BUSS

• WILL NOT TIE UP COMPUTER SOFTWARE WHEN NOT ADDRESSED

• IT DISPLAYS CONTINUOUSLY WHEN NOT ADDRESSED

• IT MAY PRODUCE PSEUDO COLOR AND/OR GRAPHICS (UP TO 16 GREY LEVELS, 4 BIT BINARY)

GRAY LEVELS

THE CAMERA WILL TAKE BETWEEN 15 AND 100 FRAMES/SECOND. THE CAMERA CONNECTS TO THE PROCESSOR WITH SEVEN LINES. THIS INCLUDES VIDEO AND TIMING SIGNALS

APPLICATIONS

• CONTINUOUS SURVEILLANCE

• INSPECTION OF MOVING PARTS WITH PROPER STROBING

• VISUAL GRAPHIC INPUT TO A COMPUTER

• CHARACTER OR PATTERN RECOGNITION

• PICTURES MAY BE TAKEN DIRECTLY FROM A TV WITHOUT ELECTRICAL CONNECTIONS

• THE INTERFACE KIT MAY BE USED SEPARATELY AS A 128 x 128

16 LEVEL GRAPHIC DISPLAY

OUR VP1 VIDEO SYSTEM CONSISTS OF THE FOLLOWING KITS:

• CCD 202C SOLID STATE VIDEO CAMERA KIT ASSEMBLED & TESTED $499°°

t VP-1 COMPUTER/VIDEO INTERFACE SYSTEM (3 BOARDS) ASSEMBLED & TESTED $99900

• ASSEMBLED 8K MEMORY BOARD (OPTIONAL) $235°°

THIS VIDEO COMPUTER KIT CAN WORK WITH THE GE, REDICON, OR ANY OTHER 128 x 128 SENSOR CAMERA

REGULATED POWER SUPPLIES

POWER SYSTEMS I PS1111 115-230V 50/60 cv. .n 5v DC al 35A out. 6' x 16K"x 15'/." 26 lbs. shipping weight S55.00 POWER SYSTEMS # PS] 106 115-230V 50/60 cv. if> 12v DC at 15A out. 5"x 16K'"x 5" 19 lbs. shipping weight. S49.00 [OV PROTECT)

C/MOS

30 -1OJ0

is «ni

37 1022 11 «023 20 -1024 20 «» 75 4027 75 4028 27 4029 1 05 403" 90 4035 4042

4044

PRINTED CIRCUIT BOARD

4" x 6" DOUBLE SIDED EPOXY

BOARD 1/16" thick

5/S2.60 1

1 S.60 ea

7 WATT LD 65 LASER DIODE

IR $a95

(DIODE CLAMPED)

40 74C73

90 40DO

90 «05T

g0 4053

ia 4055

J5 4066

i| 4069

37 407T

kn 4072

60 4076 _

95 4518

33 4!>?i)

9 7 74 COO

65 74C02

65 74C10

1.40

40 7dC74

I 00 74C86

1 10 71C93

' 25 74C151 . -t

™ 74C160 t 05

20 74C161 1-Ob

74C174 1 05

97 74C175 105

.95 74C901 IB

/<> 74C902 48

22 74C9I4 1 10

muiiiijj: u.Tinf *ci mm wjj mnn$ *ci

i, M.H Jt*l SB 141) CMAHAC CXH ur KIBMEKJJBItSn

n;j static Smrimc

jnU B* IPMOM IIHnl

.. 11 VM 710IB *» U'W HAM

J» IM5 40MI

i as ■■'Ot *k rnou

DOS a?s»

7 95 fl?S176

in I1SIJ9

ruat, AVM0I3 VAUT

Jldl 1 Jl* t * STATIC )«

1 »6i*IIATIC J '■■

J11J I tttti STATIC III

II144KRA1 RAMKIO-K 010

B1J0 78E. 8T3BO 3 31

2N3820PFET S 45

2N 5457 N FET S 45

2N2646 UJT 3 45

ER 'J00 THlGtjEH DIODES 4 SI 00

2N C02S PROG UJT S Kb

MINIATURE MULTI-TURN TRIM POTS 100, 1 K, 2K. 5K. 10K. 20K. 50K.

200K, IMey, 2Meo. 5.75 each 3/S2.00

CtTAR^ED COUPLE DEVICES

CCD 201C 100x100 Image Senior 595 00

CCD 202C 100x100 Imago Sonior . . . S14D.00

VERIPAX PC BOARD S16.95

Our new Prototyping 11 n Hi density 4H" * GYt" single sided 1/16" epoxy board. It will hold 40, 24, 16 (34 unitsl, 14 > 8 pin IC's. There are three busses, + 5V, ground and a floating buss. There is a pad (or a TO 220 regulator There is a 22 pin edge connector with . 156" spacing.

FP 100 PHOTO TRANS S .50

RED, YELLOW. GREEN

LARGE LED's. 2" 6/ST.00

TIL-118 OPTO ISOLATOR $ .75

MCT-6 OPTO ISOLATOR $ .80

1 WATT ZENERS: 3.3, 4.7. 5.1. 5.6, 9.1,

10,12,15,18. or 22V 6/S1.00

i. MCM 657IA 7 x 9 character gen . . S 10.75 , UNIVERSAL 4Kx8 MEMORY BOARD KIT S69.95

,32 2102-1 fully buffered. 16 address line*, on beard decoding for any 4 of 64 pages, standard

Silicon Power Rectifiers

TRANSISTOR SPECIALS

2N6233-NPN SWITCHING POWER $1.95 MRF-8004 a CB RF Transistor NPN S 75

7N3772 NPN Si TO 3 S 1 00

2N1546 PNP GE TO-3 $ .75

2N490K PNP S- TO 3 SI 00

2N5086 PNP Si TO 92 4 S I 00

2N3137 NPN Si RF 5 ,55

2N3919 NPN Si TO 3 RI . S 1 50

2N1420 NPN Si TO 5 3/S 1.00

2M3767 NPN Si TO 66 S 70

2N2222 NPN Si TO 18 5 S 1 00

2N3055 NPN Si TO 3 S .50

2M3904 NPN S. TO 92 6/S 1.00

2N3906 PNP Si TO 92 6/S 1.00

2N5296NPNS. TO 220 S 50

2N6109 PNP S. TO 220 S 55

:'NJIi3o PNP Si TO 5 . 5 S 1.00

MPSA 13 NPN Si 4/$ 1.00

TTLIC SERIES »"

PRV 100 200 400 600

1.20

1.7'

25 A

fi PIN .17 24 PIN .35 14 PIN .20 28 PIN ,40 16 PIN ,22 40 PIN .60 18 PIN .25

SANKEN AUDIO POWER AMPS

St 1010 G 10 WATTS. $ 7.80

Si 1020 G 20 WATTS . $15.70 Si 1050 G 50 WATTS. . . . $28.5Q

TANTULUM CAPACITORS

Mia

wot

10.000 MH J

mum

RIBBON CABLE F LAT (COLOR CODED) ^30 WIRE 26 cond. - .50/per foot ■10 cond. - ,75/pei loot GO cond. - ,90/oer foot

CTS 206-8 eight position dip switch $1.60

CTS 206-4 four position dip switch $1.45

LIGHT ACTIVATED SCR's to 18. 200,V 1A. . $.70

SILICON SOLAR CELLS 2)4" diameter ,4V at 500 ma S4.00 4" diameter ,4V at 1 AMP $10.00

FND 359 C.C. .4" $ .50 LED READOUTS

PCS 8024 a digit DL-704 C.A. .3" $ .76

C.C B" display $5 95 OL 747 C.A. .6" SI 50 FND 503 C.C. 5" S B5 HP3400 .8"CC $1-95 FND 510 C.A 5" S 85 HP3405 8"CA SI 95

400 09 25

G00 11

30 80

2 00

8 50

12.50

800 15

Js ' 00

2 50

10 50

16.60

SAD 1024 a REDICON 102<5 itage a

8'taade" shift requter.

IN 4148 (IN914)

RS232 DB25Pm3le S2 95

CONNECTORS 08 25S female S3.50

__ HOODS $1.50

REGULATORS

323K - 5V 3A . .S 5.75 340K -12, 15

309K SI.10 or 24 V. . . ,S 1.10

723 s.50 340T-5.6, 8. 12

320T - 15, 18 or 24VS 1.10

74177 741B0 741H1 74190 74IS1

74135 74196 7*197

7440

> 7441 4T '4160 1 00 74303 I JS 7*4b SS WW ' 8' 7S3J3- ISO v J4I53- .61 M335- ISO

DATA CASSETTES 1/2 HR S 95

14 pin headers 3AS1.00

MM5387AA . . $5.95

M7001 $7.50

MM53G9 I . , 83.75

NO. 30 WIRE WRAP WIRE SINGLE STRAND 100-$1.40

AlCO MINIATURE TOGGLE SWITCHES MTA 106 SPDT .... S .95

MTA 206 DPDT $ 1.70

, 206 P-DPDT CENTER OFF * 1 8S

.22UF 35V5/S1.00 .47UF 35V5/S1.00 .68UF 35V5/S1.00 1UF 35V 5/$ 1.00 2.2UF 20V 5/S1.00 3.3UF 20V4/S1.00 4.7UF 15V 5/S1.00

6.8UF 35V4/S1.00

10UF 10V S .25

22UF 25V $ .40

15UF 35V 3/S1.00

30UF 6V 5/$ 1.00

33UF 20V $.40

47UF 20V $.35

68UF 15 V S.50

LINEAR CIRCUIT

LM 201 -.75

lm idling n

LM307 - 30 LM 308 • 7S LM311 - 75 LM 318 LM 324 LM 339

J4LSM '4LS15 74LSJO T4LS7I

7*LSSl J4LSS4 74LS71 J4LS75

74LS9J HLS9J J4L5109

I4LS193 J4LS1S* 74LS1BS

74LS741 7*LS?S7 74L5JM

- 1 30

LM 3! LM 370 LM 377 LM 380 LM 381 LM3B6 LM 38 > LM 1800 CA 3030 LM S37 LM 553

TRIACS SCR'S

MSD 206 f LEVER SV

70 1 10 1.75

TE B c

5A 6A 35A

Tmm FOB Cambridge. Mass. Send Check or Money Order. Include Poitaoe, Minimum Order J5.00, COO'S $20.00

Send 254 for our catalog featuring Transistors and Rectifiers 145 Hampshire St., Cambridge. Mass.

SOLID STATE SALES

P.O. BOX 74 B

SOMERVILLE. MASS. 02143 TEL. (617) 547-7053

WE SHIP OVER 95% OF OUR ORDERS THE DAY WE RECEIVE THEM

Circle 340 on inquiry card.

BYTE Julv 1979 249

What's New?

SOFTWARE

Disk Operating and File Management System for 6800 Microcomputers

This disk operating and file management system, called INDEX (Interrupt Driven Executive), executes faster than most systems because the console and other I/O (input/output) devices are serviced by interrupt requests instead of by polling. INDEX supports unlimited disk commands. A user can expand INDEX by adding utility commands and driver routines. These reside on disk and are loaded into memory only when needed. With INDEX, files can be

assigned an activity value as a parameter of the file name, and the user may thereby list or display only the file directory entries at or above the activity level specified in the DIR (directory listing) command.

INDEX handles both ASCII and binary files, and disk files are automatically created, allocated and de-allocated. Files are referenced by names, and file name parameters are addended for name extension, drive number, directory level and a file protection flag.

The INDEX operating system software also features a routine for copying files onto a disk. The console interface segment of INDEX software supports any standard serial ASCII terminal. It features program interrupt for runaway programs; operator start, stop and skip display control; interrupt-serviced, typed-ahead character queue buffer; and a secondary line editing queue buffer.

INDEX versions are available for the PerCom LFD-400, Southwest Technical Products' MF-68, Smoke Signal Broadcasting Company's BFD-68 disk systems, and Motorola's EXORciser development system.

INDEX is supplied on two 5 inch disks together with a users manual for $99.95. For further information contact PerCom Data Co, 318 Barnes, Garland

TX 75042. Circle 658 on inquiry card.

New Self-Merchandising Software From ComputerLand

ComputerLand is now making personal computing software available through all participating ComputerLand stores. SoftSpot is a custom designed, self-merchandising fixture offering offthe-shelf programs for personal finance, time budgeting, education, games, stock analysis, stock portfolio evaluation, and more. SoftSpot programs start at $7.95.

Customer education about personal computers and their applications are offered through MainBrain. Books, selfstudy cassettes and video tapes, and "in person" lecture programs are available from well known publishers. MainBrain has self-service instructions to assist customers in making their own choice of multimedia educational products.

For further information contact ComputerLand, 14400 Catalina St, San Leandro CA 94577. Circle 525 on inquiry card.

PET SPECIALS LIST SALE

PET 16N 16K full size graphics keyboard $ 995 $

PET 16B 16K full size business keyboard $ 995 $

PET 32N 32K full size graphics keyboard $1295 $

PET 32B 32K full size business keyboard $1295 $

PET 16S 16K small keyboard, integral cassette $ 995 $

PET 32S 32K small keyboard, integral cassette $1295 $

PET 8K 8K small keyboard, integral cassette $ 795 $

SYM-1

PET 2040 Dual Disk Drive - 343,000 bytes PET 2040A Single Disk Drive - 171,000 bytes PET 2022 Tractor Feed Printer PET 2023 Pressure Feed Printer PET C2N External Cassette Deck

$1295 $ 895 $ 995 $ 849 $ 95

ASK ABOUT EDUCATIONAL DISCOUNTS ON PET

IEEE - RS232 Printer Adaptor for PET BETSI PET to S-100 Interface & Motherboard PET Connectors - Memory (8K)

- Parallel or IEEE

- Cassette Port

Personal Information Management System—

Scelbi

Protect-A-Pet dust cover

EXS 100 Floppy Disk Controller for PET

PET 6550 RAM

Write for PET Software List MICR0CHESS for PET (Peter Jennings) PET 4 Voice Music Board (MTUK-1002-2) Music Software (K-1002-3C) for PET CmC Word Processor program for PET Bridge Challenger program for PET

Play and reply bridge hands against the PET Graphics Utility Package for PET Stimulating Simulations

10 PET programs on tape Kite Fight - Michael Riley

2 player action game

$ 59.50 $119.00 $ 2.95 $, 2.25 $ 1.60

$ 8.90 $ 9.95 $299.00 $ 16.20

$ 17:90 $ 49.00 $ 19.00 $ 25.00 $ 13.50

$ 13.50 $ 13.50

$ 7.95

Minimum Order $10.00

KIM-1 $159 (Add $30 for Power Supply)

BAS-1 Microsoft ROM Basic for SYM Memory Plus

SEA-16 New 16K Static RAM Seawell Motherboard-4K RAM space KTM-2 Synertek Keyboard and Video

Interface with Graphics Capability North Star 16K 4MHz RAM Kit RAM 16 4MHz 16K Static S-100 RAM 2114 L 450 ns 4K Static RAM 2716 EPR0M (5 volt)

BOOKS

Programming the 6502 (Zaks) 6502 Applications Book (Zaks) 6500 Programming Manual (MOS) 6500 Hardware Manual (MOS) First Book of KIM

Programming a Microcomputer:6502 (Foster) Basic for Home Computers Programming in PASCAL (Grogono) Hands-On Basic with a PET (Peckham)

(fOR KIM SYM AIM}

$229 $139 $199 $325 $ 99

$290 $245 $309 $ 6.95 $45.00

$ 9.90 $11.90 $ 6.50 $ 6.50 $ 8.90 $ 8.90 $ 5.90 $ 9.90 $10.50

3M "Scotch" 8" disks 10/S31.00 3M "Scotch" 5" diskettes SALE 10/S35.00 Verbatim 5" diskettes 10/S28.50 (Write for quantity prices)

Cassettes (all tapes guaranteed)

Premium quality, high output lownoise in 5 screw housing with labels:

C-10 10/5.95 50/25.00 100/48.00 C-30 10/7.00 50/30.00 100/57.00

WRITE FOR 6502 AND S-100 PRODUCT LIST

A B Computers

115 E. Stump Road Montgomeryvllle, PA 18936 (215) 699-8386

250 July 1979 © BYTE Publications Inc

Circle 1 on inquiry card.

P.O. Box 4430X Santa Clara, CA 95054

RCA Cosmac Super Elf Computer $106.95

Compare features before you decide to buy any other compuler. There is no other computer on the market today that has ail the desirable benefits ol the Super Ell for so little money. The Super Elf is a small single board computer that does many big things. It is an excellent compuler lor training and tor learning programming with its machine language and yet it is easily expanded Aith additional memory. Tiny Basic. ASCII Keyboards, video character generation, elc. The Super Ell includes a ROM monitor lor program loading, editing and execution with SINGLE STEP for program debugging which is not included in others at the same price. With SINGLE STEP you can seethe microprocessor chip operating with the unique Quest address and data bus displays before, during and after executing instructions. Also. CPU mode and instruction cycle are decoded and displayed on eight LED indicator lamps.

An RCA 1861 video graphics chip allows you to connect to your own TV with an inexpensive video modulator to do graphics and games. There is a speaker system included lor writing your own music or using many music programs already written. The speaker amplifier may also be used to drive relays for control purposes. A 24 key HEX keyboard includes 16 HEX keys plus load, reset, run. wait, input, memory pro

Super Expansion Board with

This is truly an astounding value! This board has been designed to allow you to decide how you want it optioned The Super Expansion Board comes with 4K of low power RAM fully addressable anywhere in 64K with built-in memory protect and a cassette interlace. Provisions have been made for all other options on the same board and it fits neatly into the hardwood cabinet alongside the Super Ell. The board includes slots for up to 6K of EPROM (2708. 2758. 2716 or Tl 2716) and is fully sockeled. EPROM can be used lor the monitor and Tiny Basic or other purposes. A IK Super ROM Monitor $19.95 is available as an on board option in 2708 EPROM which has been preprogrammed with a program loader/ editor and error checking multi file cassette read/write software, (relocatible cassette file) another exclusivefrom Quest. It includes register save and readout, block move capability and video graphics driver with blinking cursor. Break points can be used with the register save feature to isolate program bugs quickly, then follow with single step The Super Monitor is written with subroutines allowing users to take advantage of monitor functions simply by calling them up.

tect, monitor select and single step. Large, on board displays provide output and optional high and low address. There is a 44 pin standard connector for PC cards and a 50 pin connector for Ihe Quest Super Expansion Board. Power supply and sockets for all IC's are included in the price plus a detailed 127 pg. instruction manual which now includes over 40 pgs. of software into, including a series ol lessons to help get you started and a music program and graphics target game.

Remember, other computers only offer Super Elf features at additional cost or not at all. Compare before you buy. Super Ell Kit S106.95. High address option S8.95. Low address option S9.95. Custom Cabinet with drilled and labelled plexiglass front panel S24.95. NiCad Battery Memory Saver Kit S6.95. All kits and options also come completely assembled and tested.

Questdata. a 12 page monthly software publication for 1802 compuler users is available by subscription lor SI 2 00 per year.

Attention Elf Owners

New products in hardware and soltware coming soon.

Tiny Basic cassette S10.00. on ROM S38.00. original Ell kit board $14:95.

Cassette Interface $89.95

Improvements and revisions are easily done with the monitor. II you have the Super Expansion Board and Super Monitor the monitor is up and running at the push of a button. Other on board options include Parallel Input and Output Ports with lull handshake. They alloweasy connection of an ASCII keyboard to the input port. RS 232 and 20 ma Current Loop lor teletype or other device are on board and il you need more memory there are two S-100 slots for static RAM or video boards. A Godbout 8K RAM board is available for S135.00. Also a IK Super Monitor version-2 with video driver for full capability display with Tiny Basic and a video interface 1 board. Parallel 1/0 Ports S9.35. RS 232 $4.50. TTY 20 ma l/F SI.95, S-100 $4.50. A 50 pin connector sel with ribbon cable is available at S12.50 for easy connection between the Super Ell and the Super Expansion Board. The Power Supply Kit lor the Super Expansion Board is a 5 amp supply with multiple positive and negative voltages S29.95. Add $4.00 for shipping. Prepunched frame S5.00. Case S10.00. Add S1.50 for shipping.

Auto Clock Kit $15.95

DC clock with 4-.50" displays. Uses National MA-1012 module with alarm option. Includes light dimmer, crystal timebase PC boards. Fully regulated, comp instructs. Add S3.95 for beautiful dark gray case. Best value anywhere.

RCA Cosmac VIP Kit $229.00

Video computer with games and graphics. Fully assem. and test. $249.00

Not a Cheap Clock Kit $14.95

Includes everything except case. 2-PC boards. 6- 50" LED Displays. 5314 clock chip, transformer, all components and full instructions. Orange displays also avail. Same kit w/,80 displays. Red only. $21.95 Case $11.75

60 Hz Crystal Time Base Kit $4.40

Converts digital clocks from AC line frequency to crystal time base. Outstanding accuracy. Kit includes: PC board. IC. crystal, resistors, capacitors and trimmer.

Digital Temperature Meter Kit

Indoor and outdoor. Switches back and forth. Beautiful. 50" LED readouts. Nothing like it available. Needs no additional parts for complete, full operation. Will measure -100 to ^200 F. tenths of a degree, air or liquid. Very accurate. $39.95 Beautiful woodgrain case w/bezel $11.75

NiCad Battery Fixer/Charger Kit

Opens shorted cells that won t hold a charge and then charges them up. all in one kit w/full parts and instructions. S7.25

PROM Eraser win erase 25 proms in

15 minutes. Ultraviolet, assembled $34.50

Rockwell AIM 65 Computer

6502 based single board with full ASCII keyboard and 20 column thermal printer. 20 char, alphanumeric display. ROM monitor, lully expandable. $375.00. 4K version S450.00. 4K Assembler $85.00. 8K Basic Interpreter $100.00 Power supply assembled incase S60.00

TERMS: $5.00 min. order U.S. Funds. Calif residents add 6% tax. BankAmericard and Master Charge accepted. Shipping charges will be added on charge cards.

Circle 311 on inquiry card.

LM379M

500

LM380N

LM703H

LM709H

LM723RN

.50

LM733N

LM741CH

35

LM747H.'n

LM13U3N

47

LM39QQN

LM3905

74123H

.59

LM39Q9N

Si

7412SN

MC1458 V

50

NE55DN

.65

NE555V

.43

NE556A

.78

1 00

NE565A

1.00

74157N

69

NE566V

1 SO

NES67V

1.20

NE570B

5.00

NE571B

5.00

78L05

.60 60

78L0S

74190N

79L05

70

78MD5

B5

75108

1 75

75491CN

.50

75492CN

.55

75494CN

89

A lo 0 CONVERTER.

8038B

4 50

74L4UQ TIL

8700CJ

74L500N

B701CN

15 95

74LS02N

B750CJ

9400CJV;F

74L50BN

ICL7103

IC17I07

14 25

8702

17 95

Lljj40D1 Fair.

74LS28N

CD40OQ

.16

74L53QN

CO40O1

.21

74LS33N

CD40D2

.21

74LS38N

CO40D6

1.10

CD4007

.21

74LS75N

^47

C04008

21

C04009

-39

CO4010

39

CD4011

.21

CD4012

.21

CO40I3

.36

74LS113N

C040I4

86

CO4015

66

CD4016

.36

CD4017

94

CD4Q18

94

74LSI57N

CD4019

.21

CD4D20

1.02

74LS163N

CD4021

1.02

004022

.86

7-tLS l^olv

CD4023 ■

.21

74LS221N

CD4024

.75 .21

74LS258N

CD4025

74LS367N 1

CD4026 CD4027

1 51 .36

CD4028

79

CD4029

1.02

CD403O

21

CD4035

T.02

CD4040

1.02

CD4042

.71

L MJII1 AN. AM

CD4043

.03

CO4044

63

LMJUr N

CD-1046

1.67

LM308N

CD4049

36

C04050

.36

C04051

1 13

CD4060

1.42

CD4066

.71

CD4066

.40

CD4069

.40

LM323K-5

CD4070

40

LM320K-12

CO 1071

.21

LM320K115

CD4072

21

CD4073

.21

CDJ075

.21

LM320I-12

i'm

CD<076

175

LM320T-I5

1 60

CD4078

.40

LM324N

1 IS

CD4031

.21

LM339N

t.ss

CD4082

.21

LM34QK-5

1 35

CD4116

■A?

LM340K-8

1 35

CO4490

5.50

LM340K-12

1 35

CD4507

1 00

LM340K-15

1 35

CD4508

4.25

LM340K-24

1.35

CD4510

1.02

LM34QT-5

1.25

CD451J

.94

LM340I-8

1.25

C04515

2 52

LM340M2

1 25

CD4516

1.10

LM34QMS

1 25

C04518

1 02

LM34QT-18 '

1 25

CD4520

1.02

LM340T-24

1 25

CD4527

1.51

LM343HJ

4 50

CD4528

.79

LM350

7 50

C04553

3 50

LM370

1 15

CD4566

2 25

LM377

3 00

CD45B3

450

C045B5 CD40192 74CO0 74C04 74C10 74C14 74C20 74C30 74C48 74C74 74C76 74C90 74C93 74CI54 74C1S0 74C175 74C192 74C221 74C905 74C906 74C914 74C922 74C923 74C925 74C926 74C927

8T20 8T23 8T24 BT25 BT26 8T28 BT97 8T98

IC SOCKETS Solder Tin Low Prairie

pin i up pm iup

8 .15 22 .30

18 27 36 . 58 20 .29 40 57 3 level mm »<u solo 14 put 2)

2 \e**> U out n JO WIRE WRAP LEVEL 3

switches Very compart wilM .50" and

MAI002A, C orE .50"

102P3 Trantlormer 2.25

MA1010A. C or E .84 11.95

1D2P2 Tuntiormer 2.25 Special irantfotmtr and sfi

switch ei whan purctmed

w module 2.BJ MA1003 at module .3"

green iiuor. display 15.BS

RESISTORS H win 5% tOpedype .03 iQOQc-ertyjM 012 25 per type 025 350 piece sack

lOOperlype 015 5peitype675

KEYBOARDS

56 key ASCII keyboard kit

folly assembled 70.00 Enclosure 14.95 LEDS

rJT018

15

MOS/MEMQHY RAM

2101- 1

2102- 1 2102AL-4 21L02-!

UART/FIFO

.95 AY5-1013 95 AY5-1014 95 3341

.95

1.25 PROM 4 50 1702A 3 00 N82S23 5.50 N82S123 3 10 N82S126 3.50 N82S129 3.20 N82S131 169 NB2S136 2.75 NS2S137 1.69 2708 1.69 DMB577 8223 2716T1

3 75 3.95 S 75 10,95

9.95 3.50 10 00

2114L-3 4116 2513B MM5262 MM5260 MM5320 MM5330 PD4IID-3

PD4I10-4

P5I01L 42O0A 82S25 91L02A HD0165-S MM57100 'GIAY3850O-1 MCM657IA 9368 410D 418

CLOCKS

MM5309 MM531I MM53I2 WM5313 MM5314 MM5315. UU5316 MM5318 MM5369 MM5841 MM5865 CT7001 CT7002 CT7010 CT7015 MM5375AA/N MMS375AB/N 7205 7207 7208 7209

DS0026CN DS0Q56CN

MM53104 2 50

MICROPROCESSOR

6BO0 17 50

6602 24.95 8080A with data 8 95 27 00

95 2716 Intel

CRYSTALS

1 MHi 2MHi

4 MHI

5 MHi 10 MHi 18 MH;

D MHi

-s 32 MHi

6 30 32768 MHz

« 1.8432 MHz

3 00 3 5795 MH,

9-95 2.0100 MHi

5 34 2.097152 MH;

*00 2.4576 MHi 3 2768 MHi

3 £ 5.068B MHi

9 95 5 185 MHi

2-90 5.7143 MHi

' 50 6.5536 MHi

6.95 14.31818 MHi

■i 50 18.432 MHi 22.1184 MHi

Green. Yellow iota Jumbo Red Green. Orange. Yellow J urn bo 25 Clipiile LEO Mounting Clips SS1 25 (specify red. ember, green yellow, dear I CONTINENTAL SPECIALTIES In ItOCk Compteifiimtol breadboard lest equip MAX- too B digit Freq. Clr. UZB.BS OK WIRE WRAP TOOLS hi ttoct Potiabii MuHlmiler 111.00 DIGITAL THERMOMETER 141.50 Bait. oper. General puiposa or medical "—sable pr-"" ~

COMPUTEH BOARD KITS

8K RAM Board XH £135.00 4K EPROM Kii 114.95 I/O Board Kg 44 50

Eilender Board wccnneclof 12.50 16K EPROM board lot w o PROMS 74 50 North Slir Floppy Q.ik Kfl [665.00 AdtHional Drive K« SPECIAL PR00UCT8 MM5855 Stopwatch Timer 9.00 PC board 7.50 Swltchei Mom. Pushbutton .27 3 pos. slide 25 Encoder HD0I65-5 6.95 3 Digit Unlrerlll Counter Board KH Operates 5-18 Vort DC lo 5 MHi lyp 125' LEO display 10.50 Voice actuated twitch .50 Piralrofllci 100A Logic Anaiyier Kit 5235 00

415.00

CONNECTORS

44 pin edge 100 pm ecge

100 pin ecge WW 475

3.00

3-60. KEYBDARO ENCOOERS

4 80 AY5-2376

3 60 AY5-3600

3 90 74C922

4 00 74C923

5 00 HDO165-5 3 60

2 10 IE Tell Clips

Model 10 Trig go i

4 50 Eipandei Kit £229.00 4 25 Model 150 Bus

4 50 Grabber Kit $369.00 a 50 Sinclair 3V> Olgll

Mulilmeter 159.95

Clock Calendar KII S23.95 2 75 TRANSFORMERS

4 50 6V3D0ma 3.25 12 Volt 300 ma transformer 1.25

12.6V CT 600 ma 3,75

!2V 250 ma wall plug 2.95 S12 50 12V CT 250 mi will plug 3.50

13 50 2« CT 400 mi 3.9*

5i0 10V 1.2 amp well plug 4 65

5'M I2V6amp 12 95 6 95 DISPLAY LEDS

MAN1 CA 270 2 90

MAN3 CC .125 .39

10 MAN72/74 CA/CA 300 1 00

47 DL704 CC .300 1.25

.47 DL7O7/DL707R CA .300 1.00

DL727/728 CA/CC .500 1.90

16.50 7.50 15.95

Z80A

8216 8224 8228 8251 8253 8255 6257 6259

1802CP plas 1802DP plas 1BGIP CDPIB02CO

TRANSISTORS

2N1893 2N2222A

, bb 2N2369 .30

**l 2N2904A 20

9>!s 2N2907A .25

2N3053 40

2N3638 25

2N3643 25

2N3904 18

2N3906 18

2N3055 69

2N44O0 25

,_ 2N4401 ,75

2 90 2N4402 20

8 00 TIP31 60

2 90 TIP33A 1.00 2 90

5.35 0 Connectort RS232

25 Pin SubTiiniaiuies

OB25P 2.95

DS25S 3 95

Cover 1.50 19 50 RS232 Complete Set 6.50

■* 0E9P 1.50

0E9S 1.95

DA15P 2.10

OA15S 3.10

OL747/750 DL750 FND359 fNO500.'5O7 FND503/5JO FNDS00.807

CA'CC .600 1.95

CC 600 1.95

CC .357 .70

CCCA 500 1 35

CC CA .500 .90

CC. CA .800 2.20

iO.OO

9.25 19.50

3 digit

bubble

.60

4 dioif

bubble

.60

DG8 Fluorescent

1 75

OGiO Fluorescent

1.75

; - g i

14 pin display

1.00

NSN69 9 fligrt display

.60

7520 Claitet otiolocelis

.39

TIL311

Hex

9.50

COMPUTER GRADE CAPS

1600

mid

200V

4.50

2000

mid

45V

2.50

3200

50V

2.50

5500

25V

2.:.0

5800

40V

3.00

6100

40V

3.00

6100

50V

3.00

7700

50V

2.50

8000

55V

2.50

10000

20V

2.50

12000

30V

3i0

35000

2SV

5 00

S5Q00

25V

TOO

e.'coo

15V

fi 00

40V

6.00

20000

e'oo

Multi-volt Computer Power Supply

8v 5 amp. -18v .5 amp. 5v 1.5 amp, -5v .5 amp, 12v .5 amp. -12 option. r5v. =12v are regulated. Kit S29.95. Kit with punched frame S34.95. Woodgrain case S10.00.

Video Modulator Kit $8.95

Convert your TV set into a high quality monitor without affecting normal usage. Complete kit with lull instructions.

2.5 MHi Frequency Counter Kit

Complete kit less case S37.50

30 MHz Frequency Counter Kit

Complete kit less case $47.75 Prescaler kit to 350 MHz $19.95

79 IC Update Master Manual S3500

Complete IC data selector, 2500 pg. master referenceguide. Over 50,000 cross references. Free update service through 1979. Domestic postage S3.50. Foreign $5.00. 1978 IC Master closeout

Stopwatch Kit $26.95

Full six digit battery operated. 2-5 volts. 3.2768 MHz crystal accuracy. Times to 59 min.. 59 sec, 99 1/100 sec. Times std., split and Taylor. 7205 chip, all components minus case. Full instructions.

Hickok 3V2 Digit LCD Multimeter

Batt/AC oper. 0.1mv-1000v. 5 ranges. 0.5% accur. Resistance 6 low cower ranges 0.1 ohm-20M ohm. DC curr. .01 to lOOma. Hand held, W LCD displays, auto zero, polarity, overrange. $74.95.

S-100 Computer Boards

8K Static RAM Kit Godbout 16K Static RAM Kit 24K Static RAM Kit 32K Dynamic RAM Kit 64K Dynamic RAM Kit 8K/16K Eprom Kit (less PROMS) Video Interface Kit

$135.00 265.00 423.00 310.00 470.00 $89.00 $139.00 d $8.99

FREE: Send for your QUEST CATALOG. Inc

BYTE July 1979

251

f mm

wn

7400 TTL

Jfl5

1M

TT

jfffi

SN747QN

■Jo

inn

n

SN7472N

•29

SN7473N

.35

SN74160N

aflMUin

In

SN7474H

.35

on/** 10 »rl

lit

SN7475N

.49

SN74I62N

'■S

SN7403N

■™

SN7476N

.as

SN74163N

SN7404N

SN747BN

5.00

SN74164N

AQ

SN7405N

Art

SN7480N

.50

SN74165N

M

SN74B2N

.09

bN/* loo<i

l«

SN7407N

ao

SN7483N

.59

ON/A lofn

J*S

SN74D6N

•~

SN7465N

.79

SN74170N

IN

SN7409N

SN7496M

.35

SN74I72N

in

SN7409N

1.75

orir i 1 / on

1»

"3

HJ5JJ5

SN7490N

.45

ore/ HHn

.25

SN7491N

.59

70

SN7413N

■ .40

SN7492N

.43

7Q

SN7414N

.70

SN7493N

.43

SN74I77N

.'3

SN7494N

.05

SN74179N

55

.25

SN7495N

65

SN74t80N

i*S

5N74Z0N

SN7496N

.05

SN74I81N

«5

SN7421N

SN7497N

3.00

SN74182N

SN7422N

SO

1«

SN741MN

.09

SN74194N

IM

SN7423N

5N74107N

.35

CM7J1CKIJ ofi/4) logN

90

SN74109N

.59

On f* looN

90

SN74116N

1.95

CIJ7,' HUM

3»S

"s

-™

SN7412IN

.35

j"S

SN74122N

.39

SN74191N

an

SN74123N

M

SN74192N

*70

34S

SN74125N

.49

SN7437N

«

SN74126N

.49

SN7438N

SN74132N

.75

SN74136N

.75

8JJJ5K

SN74H1N

.79

SN7441N

BO

.89

SN74142N

2.95

SN7442N

-49

SN74143N

2.95

1 JO

SN7443N

.75

SN74144N

2.95

SN74S200

.75

SN74145N

.70

&N/4Z51N

1 70

SN7445N

SK74147N

1.95

JO

,'2

SN7446N

«o

-jj*

SN74148N

1.29

SN 7447N

SN74150N

.09

SN7448N

70

SN74151N

.50

SN7450N

in

SN74152N

.59

SN 7451N

SN74IS3N

C U 7 J1£fJJ

m

SN7453N

20

SH74154H

.99

C;iJ7J'Ui7U oltr'i'Xi ft

69

SN7454N

!ao

SN74155N

.79

SN7436BN

.69

SN74WA

.25

SN74156N

.79

SN74390N

1.95

SN7460N

.20

SN74157N

.65

SN74393N

1.9S

cmooi

CIMOK CW008

cow;

CtMOOO CWOIO CM0I1 CW0I2 CCM013 CWOH CWOIS CO40I8

conn

CD40IS CQ40I9 OMQ20 OMIK1 CtMIHa

cowa ma»

cams

CtMH7

7<C02 7<KM 74C08 74CI0 7«H 74C20 7<O0 74C42 7«48 74C73

7am

IM10SH

1 moon

I.M301CN/H

LM302H

LM3WH

LM30SH

LM307CN/H

I.M308CN/H

LM309H

LM309K

LM3I0CN

LM31tN/H

LM312H

CM117K

IM3IKNW

LM3I9N

IM3JOK-5

IM320K-S.3

LM120K-1!

LM320K-15

lM320K-t8

LM370K-24

LU320I5

L1U20T-5.2

LM320T<

LM320T-I2

LM320T-15

LM320T-I8

LM32DT.24

LM323K-5

LM324N

LM338N

UO40K-5

LM340K<

LM340K8

LU340K-12

IU310K-I5

.48

.39 IK

.39

J9 1.95 2.49

.89

.»

1.99 6.50 1.90 1J0 1.35 1.99

1 35 1.35 1 25 1.29

1.35 1.35 1.39 1.35

74L300 74LS01 74LS02 741503 741S04 711S08 741S08 741909 741S10 741811 741SI3 741S14 741SI5 74LS20 741921 741922 741S28 741S27 74L828 741930 74LS32 741S37 741940 ^41542

C/M0S

.88 1.19 .49

CD404O CO4041 CO4042 C04043 C04044 CD404S C04047 CD404S CO4049 CD40SO a>405> C04093 CO40S8 C04059 CO4090 C04086 CD4089 C04099

1.19 1.19 2.99 9.95 1.49

74CO0

74C90 74C93 74C95 74C107 74C151 74C154 74CI57 74CI80

-SI

2.49 1.95

2.90 3.00 2.15 2.49

M

LINEAR

1.25

LM340K-18 1.35

LM340K-24 1.35 LM340T-5 LM340T-6

LM340T-0 1.25

LM340T-12 1.25

LM340T-15 1.25

LM340T-1S 1.25

LM340T-24 1.25 LM358N

LM370N LM373N LM377N LU3B0N

LM381N

LM382N

HE501N

NE510A

NE529A

NE531H/V

NE536T

NE540L

NE544N

NE550N

NE555V

NE556N

NE5608

NE561S

NE562B

NE565N/H

NES66CK

KE567V/H

NE570N

LM703CN/K

1.00 1.95 3.25 4.08 1.25 .99 1.79 1.79 8.00 8.00 4.95 3.95 8.00 8.00 4.95 1.30

5.00 5.00 5.00 1.25 1.75

74LS00TTL

741947 .81

74L35I .29

741554 .29

741555 .29 741373 .45

741574 .45

741575 .59

741576 .45 741S78 49 741S83 .89 741S85 741S86 741S90

74LS93 741S95 741S96 741SI97 741S109 741S1I2 7413123 7415125 741SI32 74I-SI36

.45 .59 .75 .75 .99 1.15 .45

C04070

CO4071

CO4072

CD4078

CD4081

C04082

CO4093

C04098

MC14409

MCI 4410

MC144H

MC14419

MC14433

MC14506

MC14507

MC14562

MC145S3

CO4509

CD4510

C04511

C04515

C045I8

CD4520

004589

74C183 74C184 74C173 74C192 74C193 74C195 74C922 74C923 74C925 74C929 80C95 80C97

2.49 2.49 2.90 2 49 2.19 249

1M710N .79

1U71IN .39

1M723M .55

IM733N 1.00

1M739N 1.19

1M741CWH .35

1M741-14K .39

1M747N/H .79

1M748N/H .39

1M1310N 2.95

LMI458CN/H .59

MC1498N 1.39

MCI489N 1.39

LMI496N .95

1M1558V 1.75

MC1741SO" 3.00

IM21I1N 1.95

1M2901N 2.99

1M3053N 1.50

LM3055N 1.49 LM39O0N(3401) 49

1M3905N .89

1M3M9N 1.25

MC55S8V .59 80388 1M754 50K 7545ICN

4.85

75452CN

75453GN

75454CN

7549101

75492CN

75493N

7549401

RC4I38

RC4151

RC4194

HC4195

.39 .39 .39 .79 .89 .89 89

1 25

2 85

7413138 7413139 74LSI51 7413155 7413157 7413160 741S161 7413182 7413183 7413104 741S175 7413181 7413190 7413191 741SI92 741S193 741S194 741S195

249

1.15 1.15 1.15 1.15

741S257 7413258 7413280 7413279 741S367 7413368 74LS670

EXCITING NEW KITS

JE600 HEXADECIMAL ENCODER KIT

FEATURES:

• Full S M laictttd oulput lot mlciopioceuor use

• 3 User Delina key* with ons beinn bintbh opeitton

• Debounce ciicuii piovloed foi aU 19 lays

• LEO readout to vnrily entries

• Easy miert3OT0 wtttt slantfard 16 pin 1C connectut

• Only +5VDC requited lor opetatlons

FULL S BIT LATCHED 0LTTPUT-19 KEYBOARD The JE6O0 Encoder Kayboaitl prowtes two sepiiB* heudeomat digits produced from sequential key entries to Uiow direct programming lor 8 bit microprocessor or 8 bit memory drcuits. Thrw (3) additional keys are provided tor user operations with one having a bistable output available. The outputs ate latched ind monitored with LED readouts. Also Included is a key enlry strobe,

Digital Thermometer Kit

JEbOO.

$59.95

• Dual seneorn-twItching control for indoor/outdoor or dual monitoring,

■S« for Fahrenheit or Celilut rending

:i!^rJ?4u^cr6.6^.^l','3d/nrlncl

JE300 $39.95

DISCRETE LEDS

200" dtl

XC556R led XC556G green XC566V yellow XC556C clear

.200-OH. XC22R red XC22G green XC22Y yellow

.170-die. MV10B red

5/$1 4* 4/$1 4/il

47J1 4/tl

MV50 red

infra-red led

1/4K1/4"x1/16-1lal 5/5)1

6/S1

TIMEX T1O01 110 CRYSUL DISPUY CLASS II

FIELD EFFECT.

4 DIGIT — .5" CHARACTERS THREE ENUNCIATORS 2.00" X 1.20" PACKAGE INCLUDES CONNECTOR

TlOOl-Tn.ismiiiiv. 17.95 TIOOIARellictlve I.2S

DISPLAY LEI

IS

TYPE

POLARITY

«r

PMCf

TTPi

POURITY

HI

PRICE

MAN 1

Common Anode-red

.270

MAN 6730 Common Aooo«.r«l - 1

.560

.99

MAN 2

5 x 7 Dot Matrix-red

300

'!

MAN 674

Common Camooo-ied-D D

.550

.99

MAN 3

Common Cathode-red

125

MAN 6750 Common Cilhode.™) = 1

.560

.99

MAN 4

Common Cathode-red

.187

1.9S

MAN 6761

Common Anodo-rad

.560

.99

MAN 7G

Common Anode-green

300

1.28

MAN 6780 Common ClIhKe-iU

.560

.99

MAN 7Y

Common Anode-yellow

300

.99

OL701

Common AnodB-lsd ± 1

.300

.99

MAN 72

Common Anode red

300

.99

01704

Common Clttioo«-nKj

.300

.99

MAN 74

Common Cathode-red

.300

1.25

FJL707

Common Anoda-roO

.300

.99

MAN 62

Common Anode-yellow

3O0

.09

DL728

Common Cltnods-iod

.500

1.49

MAN 94

Common Cathode-yeilow

300

.99

01741

Common Anoift-nd

.600

1.25

MAN 3620

Common Anode-orange

.380

.99

D1746

Common Anods-rad * 1

530

1.49

MAN 3630

Common Anode-orartgs 1

,300

.99

0L747

Common AnodB-rtd

.608

1.49

MAN 3640

Common dthode-orange

.300

.99

DL749

Common dttiode-md t 1

.630

1.49

MAN 4610

Common Anode-orange

300

.99

OL750

Common Cjmodo rpd

.600

1.49

MAN 4640

Common Cathode-oranrje

.400

.99

DL336

Common Cilhode.red

.110

.35

MAN 4710

Common Anode-red

400

.99

FND70

Common Cilhode

.256

.69

MAN 4730

Common Anode-red x 1

400

.99

FN0368

Common Camode t 1

.357

.99

MAN 4740

Common Cathode-red

400

.99

FN0359

Common Camodo

.357

.76

MAN 4610

Common Anoda-yaliow

400

.99

FN0503

Common Cl»od«lffl0500)

.500

.99

MAN 4840

Common Cathode-yeuow

.400

.99

FN0507

Common Anode (FN0510) Common Anodfl-red

530

.99

MAN 6610

Common Anode-oi-ange-O D.

.960

.99

5082-773

.300

1.30

MAN 6630

Common Anoft-iWBnge t 1

560

.99

HOSP-3400 CommonAnoo4.ua

.800

2.10

MAN 6640

Common amoda-orange-DD

560

.99

HOSP-3403 Common Cilhode ted

.600

2.10

MAN 6650

Common Ctthode-orjnge x 1

.560

.99

8082-7300 4 < 7101. OOII-RHDP

.600

19.95

MAN 6660

Common Anode-orange

560

.99

5082-730

4 > 7 Sgl. Oioll-LHDP

.600

19.95

MAN 6680

Common Cemode-orange

.500

.99

5082.730'

Ovenanoi chlnlcHf (ill

.600

15.00

MAN 6710

Common Anode-red-0.0.

.560

.99

5062-7340 4 « 7 Sgl. DIlll-HradecM

.600

22.50

RCA LINEAR

CA3013T CA2023T CA303ST CA3039T CA3046N CA3059N CA3060N CA3O60T CA3081N

2.15 CA3082H

2.56 CA3083N

2.48 CA30S6N

1.35 CA3089N

1.30 CA3130T

3.25 CA3140T

3.25 CA3160T

.68 CA3401K

2.00 CA36O0N

CALCULATOR CHIPS/DRIVERS

MM572S 32 95

MM5738 2.99

DM6864 2.00

0M6865 1.00

0M8887 .78

DM8889 . 75 9374 7

1-24

25-49

50-100

6pm LP

.317

.16

.16

14 pin LP

.20

.19

.19

161*1 LP

.22

.21

.20

ia pan LP

»

.29

.2?

20 pin LP

.34

32

.30

14 pin ST

$.27

.26

.24

16 Hn ST

.30

.27

.23

18 pin ST

.35

.32

.30

24 pin ST

.49

.45

.42

8pm S3

5 30

.27

.24

14 pin SO

35

,32

.28

16 pin SG

.38

.3!

.32

18pm SG

.52

.47

.43

6 pin WW

3.39

.36

.31

10 pin WW

45

.41

.37

14 pin WW

.39

.36

.37

16 pin WW

.43

.42

.41

18 pin WW

.75

.68

62

ON 3.50 C.A L£0 dn.«r 1 50 IC SOLOERTAIL — LOW PROFILE (TIN)

CLOCK CHIPS

MOTOROLA

MMS309

M.95

MC1408L7

S4.95

MMS311

4.95

MC1406LB

5.75

MalS312

4.95

MC1439L

2.95

MMS314

. 4.95

MC3022P

2.95

MMS316

6.95

MC3061P

3.50

MM531S

9.95

MC4016(74418)

7.50

MMS369

2.95

MC4024P

3.95

MMS387/1938A

4.95

MC4040P

6.95

MMS841

9.95

MC4044P

4.50

SOCKETS

1-24

22 pin LP I .37 24 pin LP .38 28 pkl U> .45 36pkilP .60 40 pal LP .63

26 phi ST 3 .99 30 pm Si 1.39 40 pin ST 1.59 SOLDERTAIL STANDARD (GOLD) ^^^m ■jJJJBjjHaa 24 pin 5G 3

28pinSS 110

mKMM ""Tf"" 36pinSG 163 40pinS8 175

WIRE WRAP SOCKETS (GOLD) LEVEL #3

22 pin WW t .95 24 pin WW 1.03 26 pin WW 1.40 36 pin WW 1.69 40 pkl WW 1.75

25-49

50-100

.33

.35

.37

.38

.44

.43

.59

.58

.62

.61

.90

.61

1.26

1.15

1.45

1.30

.63

.57

1.00

.90

1.40

1.26

1.39

1.45

.85

. .75

.99

.35

1.25

1.10

1.46

1.30

1.65

1.40

1/4 WATT RESISTOR ASSORTMENTS - 5%

to OHM

1?. OHM

15 OHM

16 OHM

22 OHM

$1.75

A.SST. 1

5ea.

27 OHM

33 OHM

39 OHM

47 OHM

56 OHM

50 PCS

66 OHM

8? OHM

100 OHM

120 OHM

150 OHM

1.75

ASST. 2

Sea.

160 OHM

220 OHM

270 OHM

330 OHM

390 OHM

BO PCS

470 OHM

560 OHM

680 OHM

870 OHM

1.75

ASST. 3

5 ea.

I.2K

1.5K

I.8K

Z.2K

2.7K

60 PCS

3JK

3.9K

4.7X

SM

6.8K

1.75

ASST. 1

Sii,

8.2K

I0K

1?K

15K

1*W

SO PCS

22R

27k

33K

39K

1.75

ASST. 5

Sea

56X

68K

82K

10W

120K

SO PCS

150*

180K

220K

270K

330K

1.75

ASST. 6

5ea.

390K

470K

560K

680K

B20K

50 PCS

IM

1.2M

1.5M

1.8M

2.2M

1.75

ASST. 7

Bu,

2.7M

3.3M

3.9M

4.7M

5.6M

DO PCS

ASST.BR Includes Resistor Assortments 1 -7 (350 PCS.) $9.95 ea.

$10.00 MINIMUM ORDER- U.S. Funds Only Spec Sheets - 25i

California Residents — Add 6% Sales Tan "79 Catalog Available—Send 4K stamp

3*

ameco

ELECTRONICS

PHONE ORDERS WELCOME (41B) 592-8097

MAIL ORDER ELECTRONICS - WORLDWIDE 1021 HOWARO AVENUE. SAN CARLOS. CA 94070 ADVERTISED PRICES GOOD THRU JULY

AV-5-9100

AY-5-9200

Ar-5-SSOO

AV-5-2376

HD016S

74C922

TELEPHONE/KEYBOARD CHIPS ^>

Push Button Telephone Dialler S14.95

Repertory Dialler 14.95

CMrjSCfori Generator 4.95

Keyboard Encoder (68 keys) 14.95

Keyboard Encoder 16 keys 7.95

Keyboard Encoder 16 keys) 5.95

ICM7045 ICM7205 ICM7207 ICM7208 ICM7209

ICM CHIPS

CMOS Precision Timer CMOS LED Stopwatch/Tlmei Oscillator Controller Seven Decade Counter Clock Generator

24.95 19.95

7.50 19.95

6.95

NMOS READ ONLY MEMORIES

MCM657I 128 X 9 X 7 ASCII Shifted with Greek 13.50

MCM6574 128 X 9 X 7 Man Symbol S Pictures 13.50

MCM6575 128 X 9 X 7AlphanumedcControl 13.50 Character Generator

MISCELLANEOUS

TL074CN Ouad Una Noise til-let Op Amp 2.49

TL494CN Switching Regulator <«

TL496CP Single Swltchlno Regulator 1.75

11C90 DMde 10/11 PrescaTer 19.95

95H90 Hi-Speed Divide 10/11 Prescaler 11.95

4N33 Photo-Darlington Opto-lsolator 3.95

MK50240 Top OOave freo. Generator 17.50

DS0026CH 5ivlhi 2-pluse MOS clock dHver 3.75

TIL308 .27" red num. display w/integ. logic chip 10.50

MM5320 TV Camera Sync. Generator 14.95

MM5330 414 Digit DPM Logic Block (Special) 3.95.

LOt 10/111 3Vi Digit A/D Converter Set 25.00/set

LITRONIX ISO-LIT 1

Photo Transistor Opto-lsolalor (Same as MCT 2 or 4N25)

2/990

SN 76477

SOUND GENERATOR Generates Complex Sounds Low Power - Programmable

3.95 each

TV GAME CHIP AND CRYSTAL

AY-3-8500-1 and 2.01 MHZ Crystal (Chip s Crystal , . includes scorn display, 6 games and select angles, etc. / .33/SB

XR205 XR210 XR215

$9.40 4.40 4.40

EXAR

XR2242CP

XR2264

XR2556

1.50 4.25 3.20

XR320

1.65

JE2206KA 14.95

XR2567

2.99

XR-L555 1.50

JE220SKB 19.95

XR3403

1.25

XR555

.39

XR1S00

3.20

XR4136

1.25

XR556

.99

XR2206

4.40

XR41S1

2 85

XR567CP .99

XR2207

3.15

XR4194

4.9b

XR567CT 1.25

XR2208

5.20

XR4202

3.60

XR1310P 1.30

XR2209

1.75

XR4212

2.05

XR1468CN 3.S5

XR2211

5.25

XR4553

.75

XR14S8 1.39

XR2212

4.35

XR4739

1.15

XR1489 1.39

XR2240

3.45

XR4741

1.47

DIODES

TVPt

VOLTS IV

PRICE

IN.1002

100 PIV1 AMP

1211.00

TYPE

VOLTS W

PfllCE

1N4003

200PIV1AMP

12/1.00

1N746

3.3 400m

4/1.00

1N4004

400 PIV 1 AMP

12/1.00

1N751

5.1 400m

4/1.00

1N40O5

600 PIV 1 AMP

10/1.00

1N7S2

5.6 4O0m

4/1.00

1N40O6

600 PiV 1 AMP

10/1.00

IN7S3

6.2 400rn

4/1.00

1N4M7

1000 PIV 1 AMP

16/1.00

1N754

6.6 400m

4/1.00

1N36M

50 200m

6/1 00

IN7S7

9.0 400m

4/1.00

1N4148

75 10m

15/1.00

IN7S0

12.0 400m

4/1.00

1H4IS4

35 10m

1211.00

1N959

8.2 400m

4/1.00

1.1430b

75 25m

15/1.00

1N965

15 400m

4/1.00

IIH1»

5.6 l»

26

1NS232

5.6 500m

26

1H1/35

6.2 lar

26

1N5234

6.2 500m

28

1N4716

6.8 1»

26

1NS235

6.6 500m

28

1N4738

S.2 lar

28

1N5236

7.5 500m

28

IN4742

12 tw

28

INS242

12 500m

26

1N4744

15 1w

26

1N524S

15 500m

26

1141163

50 PIV 35 AMP

1.60

1H4S6

25 40m

6/1.00

1N11B4

100P1V35AMP

1.70

1N458

SO 7m

6/1.00

1N1185

150 PIV 35 AMP

1.70

1N465A

80 10m

5/1.00

IN1IB6

200 PIV 35 AMP

1.80

1N4001

50 Prv 1 AMP

12/1.00

INI 186

400 PIV 35 AMP

3.00

SCR AND FW BRIDGE RECTIFIERS

C360 I5A 6 400V SCR(2N!B491 |!.«5

C36M 3SA<3'600V SCR 1.95

2N2328 1 6A .- 3C0V SCR .50

MOA 960-1 12A@50V FW BRIDGE REC. 1.06

MDA 960-3 12A ® 200V FW BRIDGE REC. 1.95

C10681 MPSA05 MPSA06

40409

40410

40673

2K916

2N2219A

2N2221A

2N222IA

PN2222 Plastic

2X2369

2N2369A

MPS2369

2H2484

PN2907 PUslic 2N2925 MJE2955 2M3053

50 IHANSISTORS

■30 2K3055 .89

2N3904

4/1.00

2X3905

4/1.00

5/1.00

MJE30S5

1.00

2X3906

4/1.00

6/1.00

2N3392

5/1.00

2N4013

3/1.00

6/1.00

2K3398

6/1.00

2N4123

6/1.00

1.75

PN3587

3/1.00

PN4249

4/1.00

1.75

PN3568

4/1.00

PN4250

4/1.00

1.76

PR3569

4/1.00

2X4400

4/1.00

4/1.00

MPS3638A

5/1.00

2144401

4/1.00

2/1.00

MPS3702

5/tOO

2X4402

4/1.00

4/1.00

2N3704

5/1.00

2X4403

4/1.00

5)1.00

MPS3704

5/1.00

2N4409

5/1.00

7/1.00

2K3705

5/1.00

2X5066

4/1.00

5/1.00

MPS3705

5/1.00

2X5087

4/1.00

4/1.00

2N3706

5/1.00

2N5086

4/1.00

5/1.00

MPS3706

5/1.00

2N5089

4/1.00

4/1.00

2H3707

571.00

2X5129

5/1.00

4/1.00

2R37I1

571.00

PK5I34

5/1.00

5/1.00

2H3724A

.66

PX513B

5/1.00

7/1.00

2N3725A

1.00

2X5139

5/1.00

5/1.00

2N3772

2.25

2N5210

5/1.00

1.25

2N3823

1.00

2H5449

3/1.00

2/1.00

nam

511.00

2X5951

3/1 00

ITrtD 50 VOLT CERAMIC 1 1 UlT DISC CAPACITORS

CORNER

10 pi

%

10-99 .04

.03

001»E

!ii

m

o?r

22 pi

.05

.04

03

.0047jJ

.05

.04

.035

47 pi

.05

.04

03

.05

.04

.035

100 pi

.05

.04

.09

.022#F

.06

05

.04

220 pi

.05

.04

03

w

.03

05

.04

470 111

.05

.04

035

At

OS

.075

100 VOLT MYLAR RLM CAPACITORS

.001ml

.12

.10

.07

.022ml

.13

.11

.06

.0022

.12

.10

07

.047ml

.21

.17

.13

.0047ml

.12

.10

.07

,1ml

.87

.23

.17

.01ml

.12

.10

.07

,22ml

.33

.27

.22

4-20% DIPPED FAX TAIL MS tSOUDI CAPACITORS

.1/35V

.28

.23

.17

1.5/35V

.30

.26

.21

.15/35V

.26

.23

.17

2.2/25V

.31

.27

.22

,22735V

.26

.23

.17

3.3/25V

.31

.27

.22

.33/3SV

.28

.23

.17

4.7/25V

.32

.26

.23

.47/35V

,26

.23

.17

6.8/25V

.36

.31

.25

,68735V

.26

.23

.17

10/2SV

.40

.66

.29

1.0/35V

.26

.23

.17

15/25V

.63

.50

.40

MINIATURE ALUMINUM EUCIROLTIIC CAPACI10RS

Axial Lead

RsttltlU

ad

47/SOV

.16

.13

.10

.47/25V

.15

13

.10

I.0/50V

.18

.14

.11

,47750V

.16

.14

.11

3.3/50V

.14

.12

.09

1.0/I6V

.IS

.13

.10

4.7/25V

.15

.13

.10

1.0725V

.16

.14

.11

10725V

IS

.13

.10

1.0/50V

.id

.14

.11

10/50V

.16

.14

.12

4J/16V

.15

.13

.10

22/26V

.17

.15

i!2

.18

4.7/25V

.15

.13

.10

22/50V

.24

.20

4.7/50V 10/I6V 10/25V

.16

.14

47/25V

.19

.17

.15

.14

.12

!09

47/50V

.26

21

.19

.15

.13

.10

I0O/25V

.24

.20

18

10/50V

.16

.14

.12

100/SOV

.36

.30

.26

47/60V

.24

.21

.19

220/25V

.32

.28

.26

100716V

.19

.15

.14

220/50V

.46

.41

38

100/25V

.24

.20

.16

470/25V

.33

.29

XI

100/50V

as

.23

30

•a ,

I0O0/16V

.55

.50

.45

220716V

.17

22O0/16V

.70

.62

.55

470/25V

.31

28

V

BYTE July 1979

Circle 200 on inquiry card.

/" Transistor Checker

Battery Operated

The AS) Transijtor Checker is capable of checking a wide range of trenaietor typei, either "In circuit" or out of circuit. To operate, limply plug the tramistor to be checked into the front panel socket, or connect it with the alligator clip ten leads provided. The unit safely and automatically identifies low, medium and highpower PNP and NPN transistors. Size: 3M" x 6M" x 2" "C" cell battery not included.

Trans-Check s29.95 ea.

Custom Cables & Jumpers

Part No.

0B25P-4-P DB25P-4-S DB25S-4-S

DJ14-1

DJ16-1

DJ24-1

DJ14-1-14

0J16-1-16

DJ24-1-24

DB 25 Series Cables Cable Length Connectors Price

4 Ft. 2-DP25P $15.95 ea. 4 Ft. 1-DP25P/1-2SS $16.95 ea.

4 It. 2-DP25S

Dip Jumpers

1 It. 1-14 Pin

1 It. 1-16 Pin

1 It. 1-24 Pin

1 It. 2-14 Pin

1 It. 2-16 Pin

1 II. 2-24 Pin

For^MtoiT^ablj^UumgorOe^AJ^

$17.95 ea.

$1.59 ea. 1.79 ea. 2.79 ea. 2.79 ea. 3 19 ea. 4.95 ea. Imp

CONNECTORS

25 Pin-D Subminiature

(as pictured) PLUG (Meets RS232) $2.95

SOCKET (Meets RS232) S3.50

Cable Cover (or DB25P or DB25S $1.75

PRINTED CIRCUIT EDGE-CARD

156 Spanng-Twi-Doublt RMdOuI - eilurKtel Donnas - m .054 to .070 P.O. Car*

15/30 PINS (Solder Eyetel) $1.95

18/36 PINS (Solder Eyelet) $2.49

22/44 PINS (Solder Eyelet) $2.95

50/100 (.100 Spacing) PINS (Wire Wrap) $8.95

50/100 (.125 Spacing) PINS (Wire Wrap) R681-1 S6.95

4-Digit Clock Kit

* Bright .357" ht. rod display

* Sequential flashing colon

* 12 or 24 hour operation

* Extruded aluminum case {black)

* Pressure switches for hours, minutes & hold functions

* Includes all components, case and wall transformer

* Slie: 3U. x 1* x 1*

JE730 $14.95

Jumbo 6-Digit Clock Kit

* Four .630" ht. and two ,300"ht. common anode displays

* Uses MM53H clock chip

* Switches tor hours, minutes and hold functions

* Hours easily viewable to 30 feet

* Simulated walnut case

* 115VAC operation

* 12 or 24 hour operation

* Includes all components, case and wall transformer

* Size: 6%x3*xl«.

JE747

$29.95

• Bright .300 ht. comm. cathode display

• Uses MM5314 clock chip

• Switches for hours, minutes and hold modes

• Hri. easily vleweble to 20 ft.

• Simulated welnut cose

• 115 VAC operation

• 12 or 24 nr. operation

• Incl. all components, case & wall transformer

• Size: 6K" x 3-1/8" x 1H"

JE701

• Size: 6K" x 3

6-Digit Clock Kit $19.95

REMOTE CONTROL TRANSMITTER & RECEIVER

Digital Stopwatch Kit

• Use Intersil 7205 Chip

• Plated thru double-sided P.C. Board

• LEO display (red)

• Times to 59 mln. 55.55 sec. with auto reset J|

• Quartz crystal controlled

• Three stopwatches In one: single event, split M (cum mutative) i taylor (sequential timing)

• Uses 3 penlite batteries

• Size: 4.5" x 2.16" x .90"

JE900 $39.95

MICROPROCESSOR COMPONENTS

aosoA

8212 8214 B218 8224 8226 8228 6238 8251 8253 8255 8257 6259

'POflTD

CPU

a-an tnpm/Output

Priority Interrupt Control BJ-Dlrectlonil Bus Orrver Clock Generator/Driver Bus Driver

System ContioWr/8us Driver System Controller Prog Comm liu(USAHT) Prog. Interval Timet Prog. Pertph l/0(PPI) Prog. DMA Control Prog. Interrupt Control -6800/W0Q SUPPORT 0EVICESMPU

19.95

19.95

MC682I

MC6828

MC6830L8

MC6850

MC685?

MC6800

MC6802CP MPU witfi Clock and Ham

MC6810API 128XB Static Ham 5.95

Penpft. inter. AOapl (MC6620) 7.49

Priority Interrupt Controller 12 95

1024X8 Bit ROM (MC88A30-6) 14.95

Asynchronous Comm. Adapter 7.95

Synchronous Serial Data Adapt 9.95

0-600 bps digital MODEM 12.95

2400 ops Modulator 14 95

Quad 3-SQte Bus. Trans (MC8T26) 2.2S

MICROPROCESSOR CHI PS—Ml SC£l LA H£0 US

280(7800) CPU $19.95

zeoA(76o-n cpu 24.95

CDP1602 CPU 19.95

2650 MPU 19.95

8035 . 8-Btt MPU w/ciock. RAM, 1/0 lines 19.95

PB085 CPU 19.95 TMS9900JL 16-Bil MPU -/hardware, multiply

A divide 49.95

MM504H

MM510H

MM5016H

25041

2518

2522

2524

2525

2527

2526

2529

2532

2533

3341

74LS670

Ou* 25 H Dynamic Dual 50 Brt Dynamic Dual 16 Btl Static Dual 100 Bit Static Dual 64 B<1 Accumulator 500/512 Ebl Dynamic 1024 Dynamic Hex 32 Oil SUM DuaJ 132 Bn Static 512 Static 1024 Dynamic Dual 256 Bit Sta&c Dual 250 Static Dual 240 Brt Static Quad 80 Bit Static 1024 Static

4X4 Register Rle (TriState) - UAHTS

3.95 4.95

2.95 4.00 4.00 2.95 2.95 6.95 2.49

A-Y-5-1013 30K8AUD

M-7S0

User Mann

n

17.50

M-COP1B02

User Manu

4

7.50

M-2650

User Manu

at

5.00

2513(2140)

Chiiader GenerBlor(upper case)

S9.95

2513(3021)

,enerator(lower case)

9.96

2516

CftMdk*

10.95

MM5230N

2048-Bit Read Only Memory

1.95

256X1

Static

$1.49

1103

1024X1

.99

2101(8101)

256X4

Sialic

3.95

2102

1024X1

Static

1.75

21L02

1024X1

Static

1.95

2111(8111)

256X4

Sialic

3.95

2112

256X4

Static MOS

4.95

2114

1024X4

Stabc 450ns

9.95

2114L

Static -150ns low power

10.95

2114-3

1024X4

Static 300n3

10.95

2114L-3

1024X4

Static 300ns tow power

11.95

5101

256X4

Static

7.95

528O/2107

4096X1

Dynamic

4.95

7489

16X4

Static

1.75

74S200

256X1

Static Trlstaie

4.95

256X1

sane

2.95

UP0414

4K

Dynarnlc 16 pin

4.95

(MK4027)

UPD418

1BK

Dynamic 16 pin

9.95

(MK4116)

TMS4044

4K

Static

14.95

45NL

TMS4045

1024X4

Static *

of

2117

16.364X1

Dynamic 350ns

9.95

(house marked)

MM5262

2KX1

Dynamic

4/1.00

PflOM'S

1702A

2046

FAM0S

S5.95

2716INTEL

16K

EPR0M

59.95

TMS25I6

1BK*

EPROM

49.95

(2716)

•Requires single i-5V power supply

TMS2532

4KXB

EPROM

89.95

2708

8K

EPROM

10,95

2716 T.I

1BK"

EPROM

29 95

-Requires 3 v

Itagcs. -5V. +5V. +12V

5203

2048

FAMOS

14 95

6301-1(7611) 1024

Tnsiate Bipolar

3.42

6330-1(7602) 256

Open C Bipolar

2.95

82S23

32X8

Open Collector

3.95

82S115

4096

Bipolar

19.95

82S123

32XB

Tristale

3.95

741B6

S12

TTL Open Collector

9.95

74168

256

TTL Open Colleclnr

3.95

74S267

1024

Static

2.95

CONTINENTAL SPECIALTIES

Proto Board 203

r»!03 975.00

PB-6 PB-100 PB-101

LlWiH (Inches)

5.0* 4.5x1.4 6.0 X 4.5 X 1.4 5.0 x 4.5 x 1.4

Price S15.95 SDH 122.19

Proto Board 203A

Alt i in Ihiuw ol thi PD703 pint

addition!) ptrMf uppl* Mr■ itlihtt. pic..Jo 1%-R*|utl1ld SVDC !u(ipl, lum. wmlimmni n P8 303). R>g

IlltlKl HDWIlt XSVPC »'■« -IS

VOC OS* wp pi in. ur.li mm innrmlly im) mliptndinlly iditul •bit oitlpul vpliitL ftipplimliwi* Dl . >nd -15V tupplin. 10mV >i

..»» 9124.95 WTH

PB-102 7.0 x 4.5x 1.4 S28.8S PB-103 9.0 x 6.0x 1.4 544.95 PB-104 9.9 x 8.0x 1.4 S54.95

THE SINCLAIR POM35

DC Volts (4 ranges)

Range ImVto 1000V Accuracy ot reading 1.0%= 1 count. Note 10MD input impedance. AC Volls (40.1IZ-5 kill) Range IV to 500 V

Accuracy of reading 1.0%: 2 counts DC Current (6 ranees) flange 1 n*. to 200 mA. Accuracy ol reaping 1 0%t1 count. Note. Max resolution 0.1 nA Resistance (5 ranges) Range: in to 20 Mil Accuracy ol reading. 1.5%= 1 count. Also provides 5 lunciwn iest ranges D)row.lor*:6mi3ini1l*tn. WeigM: 6W or Power Supply: 9 V batlery or Sinci.fr AC adapter (BaDery not md.) Sockets. Standard 4mm tor resilient plugs

PDM35: Digital Multimeter . . . $59.95

(completely assembled!

PDM-AC: 117V ACAdapter . . . 6.95

PDM-DP:

Deluxe padded carrying case. . . 6.95

117 V 60 Hz pew De-luxe padded carrying wallet.

REGULATED POWER

JE200

5V-1 AMP POWER SUPPLY

•Uses LM309K *Hoat sink provided

-PC Board construction .Provides a solid 1 imp

@ 5 volts *Can supply up to ±5V.

±9V and +12V with

J E 205 Adaptar • Includes components.

JE200 $14.95 «Sl2e:3>i"x6"x2"H

100 MHz

8-Digit Counter

. 20 Hi-10Q MHz Range • Four power souces. i.e.

. 6" LED Display Cutleries. 110 or 220V with > Crystal-conlrolted umebase charger 12V with aulo

. Fully Automatic lighter adapter and external

. Portable - completely 7.2-10V

sell-contained . Size- 1.75-x 7.38x 5 63

ww-100 $134.95

ACCESSORIES FOR MAX 100: Mobil ■ Chargar Eliminator

use power from car battery Model 100 — CLA $3.08 Charger/Eliminator

110 VAC

Model 100 -CAI S9.S5

SUPPLY m

JE205 ADAPTER BOARD - Adapts to JE200 ±SV,±9Vand±12V

-DC/DC converter w/

+ BV Input •Toriodal hl-speed

switching XMFR •Short circ.protection -PC Brd. construction •Piggy back to JE20D

board

•Sile:3K"x2"x9/16"h

JE205 $12.95

{10.00 Minimum Order — U.S. Funds Only California Residents — Add 6% Sales Tax

Spec Sheets - Ui

1979 Catalog Available—Send 41C stamp

ameco

ELECTRONICS

PHONE ORDERS WELCOME

) 592-8"

(415) 592-8097

MAIL ORDER ELECTRONICS - WORLDWIDE 1021 HOWARD AVENUE, SAN CARLOS. CA 94070 ADVERTISED PRICES GOOD THRU JULY

The Incredible "Pennywhistle 103"

$139.95

Kit Only 1

The PtiifrywfiUlle 103 Is capable ol racordinrj data to and from audio tape without cnttcal speed requiremenls lor me recorder and it Is able to communicate directly wttfi

Receive Channel Frequtndei

..300 Baud.

. .Asynchronous Serial (return to mark level required

between each character) . .2025 Hz lor space; 2225 Hi lor mark. .Switch selectable: Low [norma.} ■ 1070 space,

1270 mar* High - 025 tpaca. 2225 mark. , .-46 dbm accousllcady coupled. .-15 flom nominal. Adjustable from -B dbm

lo -20 dbm. . .Frequency ralerence aulomalicalry id|uttt is

allow lor operation between i BOO Ha and 2400 Hz. . .EIA RS-232C or 20 mA current loop incarnr is

120 VAC. single phase. 10 Watts.

Pfcydeal All components mount on a tingle 5' by 9"

printed circuit (ward. ATI components included. Reouites a VOM. Audio Oscillntor, Frequency Counter and/or OscHlosoope to align.

TRS-80

16K Conversion Kit

Expand your 4K TRS-80 System to 16K. Kit comes complete with:

• 8 each UPD416-1 (16K Dynamic Rams) 250NS

* Documentation for conversion

TRS-16K $75.00

COMPUTER CASSETTES

. 6 EACH 15 MINUTE HIGH QUALITY C-15 CASSETTES

. PLASTIC CASE INCLUDED 12 CASSETTE CAPACITY

. ADDITIONAL CASSETTES AVAILABLE #C-15-S2.95ea

CAS-6

$14.95

(Case and 6 Cassettes)

UHF

SUP FT MOD II

Channel 33 TV Interface Unit Kit

Wide Band B/W or Color System

★ Converts TV to video Display lor home computers. CCTV camera. Apple II. works with Cromeco Oazzler, SOL-20, IRS-80, Challenger, etc.

MOD II is preluned to Channel 33 (UHF).

* Includes coaxial cable and antenna transformer.

$29.95 Kit

Function Generator Kit

• Provides 3 basic waveforms: sine, triangle & square wave

• Frequency range trom 1 Hz to 100K Hz

• Output amplitude from 0-volts to over 6 volts (peak to peak)

• Usesa12V supply ora±6V split supply

• Inc.. chip. P.C. board, components and instructions.

JE2206B $19.95

IDEAL FOR TRS 80

"Plug/Jack interface to any computer system requiring remote control of cassette functions"

The CC100 controls cassette motor functions, monitors tape location with its internal speaker and requires no power. Eliminates the plugging and unplugging of cables during computer loading operation from cassette.

CASSETTE CONTROLLER

#CC-100

$29.50

63-Key Unencoded Keyboard

This Is a 63-key. terminal keyboard newly manufactured by a large computer manufacturer. It is unencoded with SPST keys, unattached to any klndol PC board. Avery solid molded plastic 13 x 4* base suits most application. IN STOCK tgg 95/each

Hexadecimal Unencoded Keypad

19-key pad Includes 1-10 keys ABCDEF and 2 optional keys and a shift key. $10.95/each

m

Circle 200 on Inquiry card.

BYTE July 1979 253

save more than 20%!

NORTH STAR XITAN

INTERTUBE

tha smartest computers at the smartest price DOUBLE DENSITY

HORIZON-1-16Kkit, list$1599 ...$1279

Assembled & tested, list $1899 ...$1519 H0RIZ0N-2-32K kit, list $2249 ... $1799

Assembled & tested, list $2549 ...$2039

PASCAL for NORTH STAR on Disk $49

Powerful NORTH STAR BASIC FREE

XITAN computers-NOW-Wlth QUAD DENSITY DISKS!

Famous XITAN Software & BASIC FREE

HORIZON & XITAN are S-100, Z-BO-THE BEST INTERTUBE II Terminal, list $995 $780

NEW: Our VIDEO BOARD CODE on Disk! Now you can run our computers on a TVI SAVE HUNDREDS $$$$ TV Code on DISK.. .$10 LISTING.. .FREE Business Software, Terminals, Printers, Computers In stock & special-ordered Other brands al good discounts. Ask! Which Computers are best? BROCHURE.. FREE

AMERICAN SQUARE COMPUTERS

KIVETT DR, JAMESTOWN NC 27282 (919)863-1105

MAXIMUM VALUE FOR YOUR DOLLAR

NORTH STAR COMPUTER PRODUCTS

HORIZON116KKIT $1275.00

16K RAM BOARD KIT % 250.00

32K RAM BOARD KIT $ 475.00

VERBATIM DISCS FOR NORTH STAR

BOX OF 10 $29. POSTPAID

COMPLETE SYSTEMS AVAILABLE

CUSTOM SOFTWARE FOR NORTH STAR SYSTEMS

CASIO CALCULATORS AT DISCOUNT PRICES

MANY OTHER SUPER VALUES WRITE OR CALL:

A.E.I.

3851 HACKETT AVE. LONG BEACH, CALIF. 90808 (213)421-4815 (213)429-0535

HAZELTINE 1400

only

$649.95!

• Verbatim Mini Diskettes . . . . . . $3.70 each (boxes of 10)

• Intertube . . $784.00

• TRS-80 16K Level II Expansion Kit $89.95

• Centronics 779 tractor ....

$1050.00

• Horizon II ass.. . .$1999.00

Mail TORA SYSTEM INC. Order 29-02 23rd Avenue °nly- Astoria NY 11105 (212) 932-3533

Circle 5 on inquiry card.

Circle 21 on inquiry card.

TRS-80 16K MEMORY EXPANSION KIT

INCLUDES 8 TESTED & GUARANTEED M5K 4116 3 16K RAMS. PROGRAMMING PLUGS & EASY-TO-FOLLOW INSTRUCTIONS. $72 00 PER KIT

6800 64K BYTE RAM SET AND CONTROLLER

CHIPSET MAKE C4K BYTES OF MEMORY FOR YOUR 6S0O THE CHIP SETS INCLUDE: ,.„r., 32 M5K 4116-3 16K RAMS. S2955S 1 MC3480L MEMORY CONTROLLER. PFR friMPI FTP SfT 1 MC3242AP MEMORY ADDRESS rcR vQMruuc >tl. MULTIPLEXER/COUNTER.

DATA t APPLICATION SHEETS. PARTS TESTED 8 GUARANTEED.

16K DYNAMIC RAMS

M5K 4116-3 200NSEC ACCESS TIME/375NSEC CYCLE TIME.TESTED S 8URNED-IN.

$850 EACH/MIN.QTY. 8

4K STATIC RAMS

EQUIV.TO TMS40L44-30 300NSEC ACCESS TIME/ CYCLE TIME FOR 4MHZ 2-80 OPERATION. $750 EACH/MIN.QTY. 8 'fflty £ GUARANTEED

QUANTIFY 0ISC00NFS AVAILABLE ALL ORDERS POSTPAID. U.S.FUNDS. CHECK OR MONEY ORDER. VISA.BA.MASTERCHARGE — SEND ACCOUNT NO., EXPIRATION DATE , INTERBANK NO, & SIGNED ORDER. PHONE ORDERS: 714/633-4460

MEASUREMENT SYSTEMS & CONTROLS, inc.

' MEMORY DEVICES DIVISION, DEPT. B3

867 NORTH MAIN ST, ORANGE, CA 92668

Circle 216 on inquiry card.

CASSETTE AND FLOPPY DISC LABELS.

| | (; STANDARD CASSETTE

J

Avery offers a complete line of labels for cassettes and floppy discs—all with removable adhesive. Including these standard sizes:

Cassette Label x 3%") #5250 Floppy Disc Label (W x 5V2") #5252 Write for more information and free samples to:

Avery Label 777 East Foothill Blvd. Azusa, CA 91702

Avery Label

An Avery International Company

TRS-80 J

SPECIAL PROMOTION SALE SAVE 10%, 15% or more on ALL Computers, Peripherals, Software, and ALL other fine Radio Shack® products.

NO TAXES on out-of-state shipmerits.

FREE Surface delivery in U.S. WARRANTIES will be honored by your local Radio Shack® store. Offered exclusively by

Radio Shack8

Authorized Sales Center 1117 Conway Mission, Texas 78572

(512) 585-2765

Jf

Circle 314 on inquiry card.

Scotch

Diskettes

Order Direct:

2 for $11.75 5 for $26.45

10 for $49.75 (Hard Bold

Price Includes Shipping

(Hawaii, Alaska & Canada add $1.00 shipping) VISA, Master Charge. Check, Money Order

740-0 - 8" Soft Sector 740-32 - 8" Hard (32) Sector 744-0 - 5" Soft Sector 744-10-5" Hard (10) Sector 744-16-5" Hard (16) Sector

Mass. residents odd 5% salestax.

cpu

I 99F

COMPUTER PACKAGES UNLIMITED

Reservoir St. Holden, MA 01520

(617)829-2570 Dlv. of SCB Inc.

SURPLUS ELECTRONICS

ASCI

ASCII

IBM SELECTRIC BASED I/O TERMINAL WITH ASCII CONVERSION INSTALLED $645.00

• Tape Drives • Cable

• Cassette Drives • Wire

• Power Supplies 12V15A, 12V25A, 5V35A Others, • Displays

• Cabinets • XFMRS • Heat Sinks • Printers • Components Many other items

Write for free catalog WORLDWIDE ELECT. INC. 130 NORTHEASTERN BLVD. NASHUA. N.H. 03060 Phone orders accepted using VISA or MC. Toll Free 1-800-258-1036 In N.H. 603-889-7661

Circle 391 on inquiry card.

•'CRT INTERFACES" black * white/colon

Monitors • Combination Hcvr/monitor sets • Modulator kits * B-W Cameras • Color Cameras • Audio Subcarrier kits * Parti

WRITE or PHONE for DETAILS I PRICING.

DIAL: 402-907-3771 1

Dealers welcomed. Well established program.

* v/V>.

Broadway ATV ^

NE. 6873

Circle 20 on inquiry card.

Circle 19 on inquiry card.

Bm vm • •• ••••..V

16K EPROM CARD-S 100 BUSS

V 8K LOW POWER RAM KIT-S 100 BUSS 250 NS SALE!

'ADD $5 FOR 250NS!

OUR BEST SELLING KIT!

USES 2708 s!

Thousands of personal and business systems around the world use this board with complete satisfaction. Puts 16K of software on line at ALL TIMES! Kit features a top quality soldermasked and silk-screened PC board and first run parts and sockets. All parts (except 2708's) are included. Any number of EPROM locations may be disabled to avoid any memory conflicts. Fully buffered and has WAIT STATE capabilities.

OUR 4S0NS 2708'S ARE S8.95 EA. WITH PURCHASE OF KIT

ASSEMBLED AND FULLY TESTED ADD $25

$129

KIT

(450 NS RAMS!)

Thousands of computer systems rely on this rugged, work horse, RAM board. Designed for error-free, NO HASSLE, systems use. KIT FEATURES:

1. Doubled sided PC Board with solder mask and silk screen layout.Gold plated contact fingers.

2. All sockets included.

3. Fully buffered on all address and data lines.

4. Phantom is jumper selectable to pin 67.

5. FOUR 7805 regulators are provided L on card.

Blank PC Board w/Documentation $29.95

Low Profile Socket Set. .13.50 Support IC's (TTL & Regulators) $9.75

Bypass CAP'S (Disc & Tantalums) $4.50

ASSEMBLED AND FULLY BURNED IN ADD $30 .

16K STATIC RAM KIT-S 100 BUSS

$295

KIT

FULLY STATIC, AT DYNAMIC PRICES

WHY THE 2114 RAM CHIP?

We (eel the2114 will belhenext industry standard RAM chip (like the 2102 was). This means price, availability, and quality will all be goodl Next, the 2114 is FULLY STATICI We (eel this is theONLY way to go on the S-100 Buss! We've all heard the HORROR stories about some Dynamic Ram Boards having trouble with DMA and FLOPPY DISC DRIVES. Who needs these kinds ol problems? And finally, even among other 4K Static RAM's the 2114 stands out! Not all 4K static Rams are created equal! Some of the other 4K's have clocked chip enable lines and various timing windows just as critical as Dynamic RAM's. Some of our competitor's 16K boards use these "tricky" devices. But not us! The 2114 is the ONLY logical choice for a trouble-free, straightforward design.

KIT FEATURES:

1. Addressable as lour separate 4K Blocks.

2. ON BOARD BANK SELECT circuitry, (Cromemco Standard!) Allows up to 512K on line!

3. Uses 2114 (450NS) 4K Slatic Rams.

4. ON BOARD SELECTABLE WAIT STATES

5 Double sided PC Board, with solder mask and silk screened layout. Gold plated contact lingers.

6. All address and data lines fully bulfered.

7. Kit includes ALL parts and sockets.

8. PHANTOM is jumpered to PIN 67.

9. LOW POWER: under 2 amps TYPICAL from the »6 Volt Buss.

10. Blank PC Board can be populated as any multiple of 4K.

BLANK PC BOARD W/DATA-$33 LOW PROFILE SOCKET SET—$12 ASSEMBLED & TESTED-ADD $30 SUPPORT IC'S & CAPS-$19.95 2114 RAM'S—8 FOR $69.95 J\^

TM990 BUSS PROTOTYPE & WIREWRAP BOARD

For use with the Texas Instrument Series of 16 Bit Microcomputer Module. Fully buss compatible. An inexpensive and quick way to expand the capacity of your Tl computer. Made of G-10 Epoxy PC material. Gold plated contact finger, all plated through holes. High density, up to over 100 DIP's. Fully documented.

$70

each

(OEM Discounts Available)

16K DYNAMIC RAM CHIP

16K X 1 Bits. 16 Pin Package. Same as Mostek 4116-4. 250 NS access. 410 NS cycle time. Our best price yet (or this state ot the art RAM. 32K and 64K RAM boards using this chip are readily available. These are new, fully guaranteed devices by a major mfg. VERY LIMITED STOCKI

8 FOR $89.95

NOT ASSOCIATED

WITH DIGITAL RESEARCH

OF CALIFORNIA, THE SUPPLIERS OF CPM SOFTWARE.

450 NSI 2708 EPROMS

Now full speed! Prime new units from a major U.S. Mfg. 450 N.S. Access time. 1K x 8. Equiv. to 4-1702 A's in one package.

$15.75 oa. $9 95

PRICE CUT

4 FOR $50°°

NATIONAL SEMICONDUCTOR NEW!

CAR CLOCK MODULE - #MA6008

Originally used by HYGAIN to indicate time and A a mm channel on an expensive C.B. Mini size, self

▼ R»v contained module. Not a Kit. Four digits plus

each flashing indicator for seconds. Includes MM5369

and 3.58 MHZ crystal for super accurate time base.

With hookup data.

MFGR's CLOSEOUT LIMITED QTY.

INCLUDES CRYSTAL TIMEBASE! WORKS ON 12 VDCI

Z-80 PROGRAMMING MANUAL

By MOSTEK, or ZILOG. The most detailed explanation ever on the working of the Z-80 CPU CHIPS. At least one full page on each ot the 158 Z-80 instructions. A MUST reference manual for any user of the Z-80. 300

EXPERIMENTER'S HEATING PLATE

Large Manufacturers Surplus. 5Vix10'/2 in. Made of 3/8 in. tempered glass with heating element laminated on back. Works off 120 VAC. Protected by thermostat and two thermal fuses. Rated 120 Watts. Use for any heating applications. Perfect for heating ferric chloride to increase PC Board etching efficiency. Units are brand new, non-submersible.

WHILE THEY LAST-$2.99 each

GENERAL INSTRUMENT

FULL WAVE BRIDGE 4 AMP 600 PIV

■MA IN SQUARE - WITH LUGi.

75$ 3 FOR $2

MALLORY COMPUTER GRADE CAPACITOR

30.000 MFD 15WVDC Small: 3x2 Inches $1.99 ea. 3 For $4.99 Newt REAL TIME Computer Clock Chip N.S. MM5313. Features BOTH 7 segment and BCD outputs. 28 Pin DIP. $4.95 with Data

"THE COLOSSUS" FAIRCHILD SUPER JUMBO LED READOUT

A full .80 inch character. The biggest readout we have ever sold! Super efficient. Compare at up to $2.95 each from others! YOUR CHOICE

FND 843 Common Anode * . FND 850 Common Cathode * 1 ea

( Digital Research Corporation

** (OF TEXAS)

v P.O. BOX 401247Y GARLAND, TEXAS 75040 • (214) 271-2461

TERMS: Add 30c postage, we pay balance. Orders under $15 add 75C handling. No COD. We accept Visa. MasterCharge. and American Express cards Tex Res. add 5% Tax Foreign orders (except Canada add 20% P & H 90 Day Money Back Guarantee on all items.

■••••i

••••••

••••••

•••••i i

•*•••< i

•••••i i

•••••i i

•••••(i

•••••< i

•••••I i

-•••I i

•••••i i

•••••i i

•••••I i

•••••(

•••••i

•••••i

•••••i

•••••(

•••••(

•••••i

•••••i

■••••i

■••••i

•••••i

•••••i

•••••i

•••••<

•••••i

.•••«

•••••i

•••••i

•••••i

•••••i

•••••i

•••••I

■••••i

•••••i

•••••i

•••••i

•••••i

• ••e«i •■•••I •••••I •••••I •••••I ■••••I •••••I •••••I •••••< ■••••< •••••< •••••I •••••l •••••I •••••I •••••l •••••l ■••••I •••e«i •••••I •••••i •••••I •••••i

•••••( ■••••< ■••e»< •••••( •••e»l •••••( •••••I •••••I -••••< •••••I •••••I •••••I •••••I •••••I •••••I •••••I ■••••I •••••I •••••( •••••I •••••I •••#•( •••••I •••••( •••••i •••••I -•••I •••••I •••••I •••••I •••••I •••••I ■••••i •••••I •••••I ■••••I •••••( •••••I

'••••I ■••••I ••••• ••••§ ••••§ ••••• ••••• •••

Circle 100 on inquiry card.

BYTE July 1979 255

Hit' KMM)

A completely refurbished IBM Selectric Terminal with built-in ASCII Interface.

Features:

$1395

300 Baud

14.9 characters per second printout

Reliable heavy duty Selectric mechanism RS-232C Interface Documentation included 60 day warranty - parts and labor

High quality Selectric printing Off-line use as typewriter Optional tractor feed available 15 inch carriage width

HOW TO ORDER DATA-TRANS 1000

1. We accept Visa, Master Charge. Make cashiers checks or personal check payable to:

DATA-TRANS

2. All orders are shipped F.O.B. San Jose, CA

3. Deliveries are immediate

Circle 126 on inquiry card.

For orders and information

DATA-TRANS

2154 OToole St. UnitE

San Jose, CA 95131 Phone: (408) 263-9246

h1---~f,V * 4 a I <n m M •»< »;< #k H ft I g ft * f M , % mi <i H •* "* >n it M >" >> » N I * * « * x. % # *fl M *l» t'-p «•*■

art * 4 4 >4 wi M Ki ft *- *•

ASCII KEYBOARD

By Cherry Products

• • Mounted to DECWRITER Panel ASSEMBLED 89.95

TIDMAtt

• Tape Interface Direct Memory Access • Record and play programs without bootstrap loader (no prom) has FSK encoder/decoder for direct connections to low cost recorder at 1200 baud rate, and direct connections for inputs and outputs to a digital recorder at any baud rate • S-100 bus compatible • Board only $35.00 Part No. 112, with parts $110 Part No. 112A

ASCII to Correspondence code converter

This bidirectional board is a direct replacement for the board inside the Trendata 1000 terminal. The on board connector provides RS-232 serial in and out. Sold only as an assembled and tested unit for $330.00. Part No. TA 1000C

§|nppkz ii

With 16K $1024.00

T.V. INTERFACE

• Converts video to AM modulated RF, Channels 2 or 3. So powerful almost no tuning is required. On board regulated power supply makes this extremely stable. Rated very highly in Doctor Dobbs' Journal. Recommended by Apple • Power required is 12 volts AC C.T., or +5 volts DC • Board only $7.60 part No. 107, with parts $13.50 Part No. 107A

(Illegal where prohibited by law.)

*IX ftrHpr • Mention part number, description, and price. In USA, shipping paid for orders accompanied by check, money order, or Master Charge. BankAmericard, or VISA IV VI Uwl • number, expiration date and signature. Shipping charges added to C.O.D. orders. California residents add 6.5% for tax. Outside USA add 10°/o for air mail postage and handling, no C.O.D/s. Checks and money orders must be payable in US dollars. Parts kits include sockets for all ICs. components, and circuit board. Documentation is included with.all products. Prices are in US dollars. No open accounts. To eliminate tariff in Canada boxes are marked "Computer Parts." Dealer inquiries invited. 24 Hour Order Line: (408) 226-4064 # Circuits designed by John Bell

For free catalog including parts lists and schematics, send a self-addressed stamped envelope.

256 BYTE July 1 979

Circle 125 on inquiry card.

TRS-80ES SERIAL I/O

• Can Input into basic

• Can use LUST and LPRINT to output, or output continuously • RS-232 compatible • Can be used with or without the expansion bus • On board switch selectable baud rates of 110,150.300.600, 1200, 3400, parity or no parity odd or even, 5 to 8 data bits, and 1 or 2 stop bits. D.T.R line • Requires +5. -12 VDC • Board only $19.95 Part No.BOIO. with parts $59.95 Part No. 801 OA, assembled $79.95 Part No. 8010 C. No connectors provided, see below.

EI»/nS-232 connector Pert No. DBS5PSB.00.~tli 9*. B conductor cat* S10 95P.rt No. 0B25P9

3 ribbon cable with etuched eonnectoratofrtTHS

boardSIS.BSPart No. 3CAB4a

RS-232/ TTLtt I INTERFACE

• Converts TTL to RS232, and converts RS232 to TTL • Two separate circuits • Requires -12 and +12 volts • All connections go to a 10 pin gold plated edge connector

• Board only $4.50 Part No. 232, with parts $7.00 Part No. 232A 10 Pin edge connector $3.00 Part No. 10P

modem-::

• Type 103 • Full or half duplex • Works up to 300 baud • Originate or Answer • No coils, only low cost components • TTL input and output-serial

• Connect 8 fl speaker and crystal mic. directly to board • Uses XR FSK demodulator • Requires +5 volts • Board only $7.60 Part No. 109, with parts $27.50 Part No. 109A

DISKETTES

BOX OF 10

$29.95 $39.95

RS-232 / TTY-JJ*

INTERFACE

• Converts RS-232 to 20mA current loop, and 20mA current loop to RS-232 • Two separate circuits • Requires + 12 and -12 volts • Board only $4.50 Part No. 600, with parts $7.00 Part No. 600A

S-100 BUS ACTIVE TERMINATOR

Board only $14.95 Part No. 900, with parts $24.95 Part No. 900A

APPLE ii-::SERIAL I/O INTERFACE

Baud rate is continuously adjustable from 0 to 30,000 • Plugs into any peripheral connector • Low current drain. RS-232 input and output • On board switch selectable 5 to 8 data bits, 1 or 2 stop bits, and parity or no parity either odd or even • Jumper selectable address • SOFTWARE • Input and Output routine from monitor or BASIC to teletype or other serial printer • Program for using an Apple II for a video or an intelligent terminal. Also can output in correspondence code to interface with some selectrics. • Also watches DTR • Board only $15.00 Part No. 2, with parts $42.00 Part No. 2A, assembled $62.00 Pert No. SC

8K EPROM PIICEON

Saves programs on PROM permanently (until erased via U V light) up to BK bytes. Programs may be directly run from the program saver such as fixed routines or assemblers. • S100 bus compatible • Room for BK bytes of EPROM non-volatile memory (270B's). • Onboard PROM programming • Address relocation of each 4K of memory to any 4K boundary within 64K • Power on jump and reset jump option for "turnkey" systems and computers without a front panel • Program saver software available • Solder mask both sides • Full silkscreen for easy assembly. Program saver software in 1 2708 EPROM $25. Bare board $35 including custom coil, board with parts but no EPROMS $139, with 4 EPROMS $179, with 8 EPROMS $219.

WAMECO PRODUCTS WITH

ELECTRONIC SYSTEMS PARTS

FDC-1 FLOPPY CONTROLLER BOARD will drive shugart, pertek, remex 5" & 8" drives up to 8 drives, on board PROM with power boot up, will operete with CPM [not included). PCBD $42.95

FPB-1 Front Panel. (Finally) IMSAI size hex displays. Byte or instruction single step. PCBD $42.95

MEM-1A 8Kx8 fully buffered, S-100, uses 2102 type RAMS.

PCBD $24.95, $168 Kit

QMB-12 MOTHER BOARD, 13 slot, terminated. S-100 board only $34.95

$89 95 Kit

CPU-1 8080A Processor board S-100 with 8 level vector interrupt PCBD .. $25.95 $89.95 Kit

HTC-1 Realtime clock board. Two independent interrupts. Software programmable. PCBD $25.95. 560.95 Kit

EPM-1 1702A 4K EPROM

card PCBD $25.95

$49.95 with parts less EPROMS

EPM-2 2708/2716 16K/32K

EPROM card PCBD $24.95

$49.95 with parts less EPROMS

QMB-9 MOTHER BOARD. Short Version of

QMB-12. 9 Slots PCBD $30.95

$67.95 Kit

MEM-2 16Kx8 Fully Buffered 2114 Board PCBD $25.95. $269.95 Kit

T.V. TYPEWRITER

• Stand alone TVT

• 32 char/line, 16 lines, modifications for 64 char/line Included

• Parallel ASCII (TTL) input • Video output

• 1K on board memory

• Output forcomputer controlled curser • Auto scroll • Nondestructive curser • Curser inputs: up, down, left, right, home. EOL, EOS • Scroll up, down

• Requires +5 volts at 1.5 amps, and -12 volts at 30 mA • All 7400, TTL chips • Char. gen. 2513 • Upper case only • Boerd only $39.00 Part No. 106, with parts $145.00 Part No. 106A

UART& BAUD RATE GENERATORS

• Converts serial to parallel and parallel to serial • Low cost on board baud rate generator • Baud rates: 110, 150, 300, 600, 1200, and 2400 • Low power drain +5 volts and -12 volts required • TTL compatible • All characters contain a start bit, 5 to 8 data bits, 1 or 2 stop bits, and either odd or even parity. • All connections go to a 44 pin gold plated edge connector • Board only $12.00 Part No. 101, with parts $35.00 Part No. 101 A, 44 pin edge connector $4.00 Part No. 44P

TAPE * INTERFACE

• Ray and record Kansas City Standard tapes

• Converts a low cost tape recorder to a digital recorder • Works up to 1200 baud* Digital in and out are TTLserial • Output of board connects to mic. in of recorder • Earphone of recorder connects to input on board

• No coils • Requires +5 volts, low power drain • Board only $7.60 Part No. 111, with parts $27.50 Part No. 111A

HEX ENCODED KEYBOARD

E.S.

This HEX keyboard has 19 keys, 16 encoded with 3 user definable. The encoded TTL outputs, 8-4-2-1 and STROBE are debounced and available in true end complement form. Four onboerd LEDs indicate the HEX code generated for each key depression. The board requires a single +5 volt supply. Board only $15.00 Part No. HEX-3, with parts $49.95 Part No. HEX3A. 44 pin edge connector $4.00 Part No. 44P.

dc power supply-::

• Board supplies a reguleted +5 volts at 3 amps., +12, -12, and -5 volts at 1 amp. • Power required is 8 volts AC at 3 amps., and 24 volts AC C.T. at 1.5 amps. • Board only $12.50 Part No. 6085, with parts excluding transformers $42.50 Part No. 6085A

TV r\rMar ■ Mention part number, description, and price. In USA. shipping paid for orders accompanied by check, money order, or Master Charge, BankAmericard. or VISA lw V.»l Uwl t number, expiration date end signature. Shipping charges added to C.O.D. orders. Celifornia residents Bdd 6.5% for tBx. Outside USA add 10% for air mail postage and handling, no C.O.D.'s. Checks end money orders must be peyable in US dollars. Parts kits include sockets for all ICs, components, and circuit board. Documentation is included witlvell products. Prices are in US dollars. No open accounts. To eliminate tariff in Canada boxes are marked "Computer Parts." Dealer inquiries invited. 24 Hour Order Line: (40B1 226-4064 -ft Circuits designed by John Sell

For free catalog including parts lists and schematics, send a sell-addressed stamped envelope.

ELECTRONIC SYSTEMS ^P*- B- p O. Box 21638. San Jose. CA USA 95151

Circle 125 on inquiry card.

BYTE July 1979 257

T-BUG™ accessories

Machine language programs linking with your copy ol the Radio Shack TRS BO™ monitor EMU f/2: Software emulation of MCS/SY 6502. Includes disassembling single-stepper, four speed animated before/after programming models and quick interpreter for "direct" execution of 6502 object code strings in TRS-80 RAM. Write, debug and execute programs in another machine language. Software communication with 6502 based micro computers is made possible.

BL 1 16K Level II $24.95

Super TLEGS: Onboard relocater moves T BUG to your choice of RAM. Now examine anything.

LL O Level II $ 9.95

TSTEP: Single steps for T-BUG, clearable belore/after display shows all instruction set aspects of machine status as you SPACE through memory in program flow sequence.

TLEGS relocates LL 1 16K Level II 11.95

M LOCO pack; On-site editing keys for T-BUG. Backspace, Relative Space, Insert, Delete and Clear. Minimal complete set for hand assembly use. TLEGS relocates.

LL 2 4K Level II $ 9.95

Includes cassette, instructions, examples. Add .75 each shipping. CA include 6% Allen Gelder P.O. Box 11721 San Francisco, CA 94101 T-BUG. TRS-80 tm Radio Shack/Tandy Corp.

Circle 136 on inquiry card.

TRS-80 GAMES

T^^SGAMES CRONIES T W~Jr OTHERS TAKE NOTE N^dlu

Ball turret gunner: incoming fighters mix with twilight sky-three dimensional turret control and targeting sequence option.

Descent: faithful to physics—a real time lander with control console graphics. Takes 10-20 minutes to land. Five landing operations.

Haystack 500: rural race through haystacks and mud-drivers rated for times and trace difficulty. Simulation you can't believel

These programs run in 4-16K Level II. On screen instructions and background in separate load. Any game above on Scotch brand tape—$ 10.DQ {includes the surprise on the backl. We specialize in action-write for a brochure of TRS-80 games, software, beepers, joysticks and other mechanical goodies.

Four Seasons Company 2318 Harvard Avenue Ft. Myers FL 33907

FOR TRS-80™ OWNERS

T-PAL

Programming Amateur's Letter

THE "DO-IT-YOURSELF" SOFTWARE NEWSLETTER

Published Monthly, We'll Teach You All The Latest Wrinkles — How To Get The Most Out of Your Computer

Graphics • Games • Personal Home • Business • Finance And Much More!

$24/year... or write for FREE Details

THE MAIL MART

Box FJ 11102 San Francisco, CA 94101

Circle 199 on inquiry card.

I BYTE's New p

> /\Toll-frfee ;

Subscriber ;

\ W.A.T.S. Line !

(80$ 258-5485 \

\S V \ ,

To further improve service to 1

our customers We have installed ,

a toll-free WATS line in our

Peterborough, New Hampshire ,

office. If you would like to order '

o a subscription to BYTE, or if you ,

<° have a question related) to a BYTE j

subscription, you ar? invited to\ <

call (800) 258-i,48S; between \ J

8:30 AM and 4:30 PM Eastern \

Time. This applies to calls from [ within the continental |)S qnfyj ^.

We thank you arid-lorn i

° forward to serving you. 1

'^SLJlJLSLSULSLSiSiSLJUL^

f SHORT CASSETTES

r"10(s) ^ ^

(T% 50

V>—?/) FEET

List SI. 1)0 10 for S7.50

50 for $32.50

MICROSETTE CO. > 777 Palomar Ave. • Sunnyvale. CA 94086

Duplication Services

Microsette also offers professional duplication services for Commodore PET and Radio Shack TRS-80 Level I and Level II cassettes. Our service provides mastering, quality control, all material including twopiece box, affixing of your labels or supplying our blank labels and shipping. Prices start at $2.00 each in 100 quantity.

MICROSETTE CO.

777 Palomar Ave. • Sunnyvale. CA 94086

Circle 229 on inquiry card.

Professfona/

Real Estate Programs

available now on cassette for Apple & TRS-80 II

• Property Managment System

(Two 8K Programs)

1. ) Expense Analysis

2. ) Income Info & Tracking

Introductory Offer *50

Price After July 15, '75

• Home Purchase Analysis

• Income Property Cashflow/Leverage

• Construction Cost/Profit

• Tax Free Exchange Model

Separately s20 All s65

Call (213) 372-9419 lor immediate CO D Attractive Dealer Pricing

2045 Manhattan Avenue. Hermosa Beach. California 90254

Circle 135 on inquiry card.

Circle 323 on inquiry card.

COMPUTER TECHNICIAN ENGINEERING STUDENT LOS ANGELES AREA

Part time position. Must have at least one year of engineering education. Must be familiar with electrical measuring devices Si computers. Good experience would be hobby computers or University computers. Should have a working knowledge of hardware components S. ability to interface such components. Should also have ability to submit well written technical reports.

PCI

1815 VICTORY BLVD. GLENDALE, CA. 91201 [213] 956-3770

CR0MEMC0

AT 15% DISCOUNT

• EVERYTHING ON THE CROMEMCO CATALOG

• ALL NEW EQUIPMENT FULLY GUARANTEED

• MANY SOFTWARE PACKAGES AVAILABLE

DIGITAL DATA SYSTEMS, INC.

1396 N W 65 TERR PLANTATION, FLA 33313 (305) 792-3290

TRIPLE E TIME MACHINE

An IEEE 488 to S100 Bus

Interface and Control Board. Included are counter-timer functions. Board, is addressable anywhere in memory or I/O.

KIT $225 BARE $35

wit A

GEMINI SBC 3.0

A 2650 Microprocessor based single board computer for the S100 Bus. Tape interface, parallel input port, power control port, 3 to 7K ROM and 1 to 3K RAM on board. Documentation with BARE board.

KIT (IK/IK) $275 BARE B KIT $225

MONITOR IK machine language monitor in 2708. Supported are: memory inspect and change; register inspect; breakpoints; tape load and dump; memory mapped video and keyboard input port. j2fj

C G ENGINEERING

P.O. BOX 1145 MILPITAS, CA 95035

lion IE S35

Circle 310 on inquiry card.

Circle 105 on inquiry card.

Circle 74 on inquiry card.

PEPQCM SAMPLER

For your SS-50 bus computer — the CIS-30 +

• Interface to data terminal and two cassette recorders with a unit only 1/10 the sizeofSWTP'sAC-30.

• Select 30, 60, or120 bytes per second cassette interfacing, 300, 600 or 1200 baud data terminal interfacing.

• Optional mod kits make CIS-30+ work with any microcomputer. (For MITS 680b, ask for Tech Memo TM-CIS30+—09.)

• KC-Standard/Bi-Phase-M (double frequency) cassette data encoding. Dependable self-clocking operation.

• Ordinary functions may be accomplished with 6800 Mikbug™ monitor.

• Prices: Kit, $79.95; Assembled, $99.95.

Prices include a comprehensive Instruction manual. Also available: Test Cassette, Remote Control Kit (for program control of recorders), IC Socket Kit, MITS 680b mod documentation, Universal Adaptor Kit (converts CIS-30+ for use with any computer). MIKBUG® Motorola, Inc.

In the Product Development Queue . . .

Coming PDQ. Watch lor announcements.

6809 Processor Card — With this SS-50 bus PC board, you'll be able to upgrade with the microprocessor that Motorola designers describe as the "best 8-bit machine so far made by humans." The Electric Crayon™ — This color graphics system includes its own mP and interfaces to virtually any microcomputer with a parallel I/O port.

Printer Interface — For your TRS-80™. Interface any serial RS232 printer to your TRS-80™ with this system.

'"ELECTRIC WINDOW. ELECTRIC CRAYON, Pilon30 and Pllon-10 are trademarks of Percom Oala Company. Inc.

TRS-80 is a trademark ol Tandy Corporation and Radio Snack which has no relationship to Percom Data Company.

Orders may be paid by check or money order, or charged to Visa or Matter Charge credit account. Texas residents must add 5% sales tai.

For your data storage — Pilon-30™ and Pi I on-10™ data cassettes

• Orders-of-magnitude improvement in data integrity over ordinary audio cassettes.

• Pilon-coated pressure pad eliminates lint-producing felt pad of standard audio cassettes.

• Smooth pilon coating minimizes erratic tape motion.

• Foam pad spring is energy absorbing. Superior to leaf spring mounted pad which tends to oscillate and cause flutter.

• Five-screw case design virtually precludes deformation during assembly.

• Price: $2.49.

For your S-100 computer—the CI-812

• Both cassette and data terminal interfacing on one S-100 bus PC board.

• Interfaces two recorders. Record and playback circuits are independent.

• Select 30, 60, 120, or 240 bytes per second cassette interfacing, 110 to 9600 baud data terminal interfacing.

• KC-Standard/Bi-Phase-M (double frequency) encoded cassette data. Dependable self-clocking operation.

• Optional firmware (2708 EPROM) Operating System available.

• Prices: kit, $99.95; assembled, $129.95.

Prices include a comprehensive instruction manual. In addition to the EPROM Operating System, a Test Cassette, Remote Control Kit (for program control of recorders), and an IC Socket Kit are also available.

CASSETTE SOFTWARE

For 8080/Z-80 fiCs ...

BASIC ETC — Developed by the coauthors of the original Tiny BASIC, BASIC ETC is easy to use yet includes commands and functions required for powerful business and scientific programs as well as for hobby applications. 9.5K bytes of RAM. 1200-baud cassette and 42-page

user's manual $35.00

Cassette Operating System — EPROM (2708) COS for the Percom CI-812 dual peripheral interfacing PC card .. $39.95

If you're programming on a 6800 /j.C, you'll want these development and debugging programs written by Ed Smith of the Software Works: Disassembler/Source Generator — Disassembles SWTP Resident Assembler, TSC Mnemonic Assembler/Text Editor or Smoke Signal Mnemonic Assembler/Text Editor and produces compacted source code suitable for re-editing. Prints or displays full assembly-type output listing. 4K bytes of RAM.

(Order M68SG) $25.00

Disassembler/Trace — Use to examine (or examine and execute) any area of RAM or ROM. "Software-single-step" through any program, change the contents of CPU or memory location at any time, trace subroutines to any depth. 2.3K bytes of RAM.

(Order M68DT) $20.00

Support Reiocator Program — Supplied on EPROM, this program relocates a program in any contiguous area of RAM or ROM to anywhere in RAM. Use to assemble and test programs in RAM, adjust programs for EPROM operating addresses and then block move to your EPROM burner address. 952 bytes of RAM, Loads at hex 1000. (Order M68EP) $20.00

Relocating Assembler & Linking Loader

(M68AS) $50.00

Relocating Disassembler & Segmented Source Text Generator (M68RS) $35.00

Americana Plus —14 tunes for the Newtech Model 68 Music Board in machine language ready to load and run. Cassette compatible with Percom CIS-30+ and SWTP AC-30. Order MC-1SW .. $15.95

HARDWARE

Newtech Model 68 Music Board — Produces melodies, rhythms, sound effects, morse code, etc. from your programs. Includes manual with BASIC for writing music scores and assembly language routine to play them. Installs in SWTP I/O slot. Assembled & tested $59.95

The Percom ELECTRIC WINOOW™ —

Memory-resident and programmable, this video display character generator board for your SS-50 bus displays up to 24 80-character lines. Features dual character generators, dual-intensity high-lighting. One programmable register controls scrolling. Compatible with standard video monitors $249.95

SS-50 Prototype Cards:

Large card (up to 70 40-pin ICs) $24.95 I/O size card $14.95

To order products or request additional I It . . . . . , ... erature, call Percom's toll-free number:

PERCOM™ 'peripherals for personal computing' 1-800-527-1592. For detail technical information call (214)272-3421.

PERCOM DATA COMPANY, INC.

DEPT. B

211 N. KIRBY • GARLAND, TX. 75042

Circle 301 on inquiry card.

BYTE July 1979

2

I

mail

mlBmm

313

The EXPANDORAM is available in versions from 16K up to 64K, so for a minimum investment you can have a memory system that will grow with your needs. This is a dynamic memory with the invisable on-board refresh, and IT WORKS!

• Bank Selectable

• Phantom

- Power 8VDC, ± 16VDC, 5 Watts

• Lowest Cost Per Bit

• Uses Popular 4116 RAMS

• PC Board is doubled solder masked and has silk-screen parts layout.

SD EXPANDORAM

74e Uttimate S-tOO THemvuf

[DISC DRIVES

Sugart SA400 51/4" with attractive metal case $29500

Sugart 801 with attractive metal case

$495.00

Siemens FDD 200-8 8" double-sided | double density

$599.00

DISC CONTROLLER SD "VERSAFLOPPY" Kit

Th.V.r«lll. Floppy DISK Qn|y s^goo

FEATURES: IBM 3740 Soli Sectored Compatible. S-100 BUS Compallblo lor Z-80 or 6080. Controls up to 4 Drives (single or double sided). Direclly controls the following drives:

oppy.

1. Shugart SA400/450 Mini Floppy

2. Shugart SA800/850 Standard Fli

3. PEFISCI 70 and 277.

4. MFE 700/750.

5. CDC 9404/9406.

6. GSI/Slemans FDD120-8.

34 Pin Connector tor Mini Floppy. 50 Pin Connector lor Standard Floppy. Operates with modilled CP/M operating system and C-Basic Compiler. The new "Versafloppy" from S.D.

Computer Products provides complete control for many of the available Floppy Disk Drives, Both Mini and Full Size. FD1771B-1 Single Den

slty Controller Chip. Listings for Control Softare are Included in price. ^

SAVE $10000

DM2700S DISK &

CABINET with POWER SUPPLY

DM2700S includes Siemans FD120-8" Disk Drive with the following features:

• Single or Double Density

• Hard or Soft Sector

• Door Interlock

• Write Protect

• Hard Sector Detection

• 500 KB/S Transfer

• 800 KB unformated

• Bit density 6536 BP1

• Sugart 800 Series Compatable

DM2700S Disk Drive & Cabinet REG. $750 SALE PRICED

• Extensive documentation clearly written

• Complete Kit includes all Sockets for 64K

• Memory access time: 375ns, Cycle time: 500ns.

• No wait states required.

• 16K boundries and Protection via Dip Switches

• Designed to work with Z-80, 8080, 8085 CPU's.

EXPANDO 64 KIT (4116)

16K ... $245.00

32K $310.00

48K $375.00

10.00 J

Cabinet includes:

• 110V to 125V 60 Hz power supply

• Data Cable

• Fan

• Accepts per SCI, Shugart, Siemans 8" Drives

s650

00

DM2700 Cabinet, less Drive

32495° *22500

N Logic Probes and Digital Pulsers

LOGIC PROBES

CSC logic probes are the ultimate tool for breadboard design and testing. These hand-held units provide an instant overview of circuit conditions. Simple to use: juat clip power leada to circuit's power supply, set logic family switch to TTUDTL or CMOS/HTL. Touch probe to lest node. Trace logic levels and pulses through digital circuits. Even stretch and latch for easy pulse detection. Instant recognition of high, low or invalid levels, open circuits and nodes. Simple, dual-level detector LEDs tell it quickly, correctly. HI (Logic "1"); LO (Logic "0"). Also Incorporates blinking pulse detector, e g., HI and LO LEDs blink on or off, tracking "1" or "0" states at square wave frequencies up to 1.5 MHz. Pulse LED blinks on for Vi second during pulse transition. Choice of three models to meet Individual requirements; budget, project and speed of logic circuits.

MODEL LP-1

Hand-held logic probe provides Instant reading of logic levels for TTL, DTL, HTL or CMOS. Input Impedance: 100.000ohms. Minimum Detectable Pulse: 50 ns. Maximum Input Signal (Frequency): 10 MHz. Pulse Deteelor (LED): High speed train or single event. Pulse Memory: Pulse or level transition detected and stored. — CSC Model LP-1 Logic Probe—Net Each -£&£95 $42.70

mm

MODEL LP-2

Economy version of Model LP-1. Safer than a voltmeter. More accurate than a scope. Input Impedance: 300,000 ohms. Minimum Delectable Pulse: 300 ns. Maximum Input Signal (Frequency): 1.5 MHz. Pulse Detector (LED): High speed train or single event. Pulse Memory: None. _

CSC Model LP-2 Logic Probe-Net Each 04rfj5 $23.70

MODEL LP-3

High speed logic probe. Captures pulses as short as 10 ns. Input impedance: 500,000 ohms. Minimum Detectable Pulse: 10 ns. Maximum Input Signal (Frequency): 50 MHz. Pulae Detector (LED): High speed train or single event. Pulse Memory: Pulse or level transition detected and stored. CSC Model LP-3 Logic Probe-Net Each flMfrgS $66.45

DIGITAL PULSER

The ultimate In speed and ease of operation. Simply connect clip leads to positive and negative power, then touch DP-i's probe to a circuit node; aulomalic polarity sensor detects circuit's high or low condition. Depress the pushbutton and trigger an opposite polarity pulse into the circuit. Fast troubleshooting includes Injecting signals at key points in TTL, DTL, CMOS or other popular circuits. Test with single pulse or 100 pulses per second ,vla bulit-ln dual control push-button; button selects single shot or continuous modes. LED Indicator monitors operating modes by flashing once for single pulse or continuously for a pulse train. Completely automatic, pencil-size lab/field pulse generator for any family of digital circuits. Output: Trl-state. Polarity: Pulse-sensing auto-polarlty. Sync end Source: 100 mA. Pulse Train: 100 pps. LED Indicator: Flashes for single pulse; stays lit for pulse train.

CSC Model DP-1 Digital Pulser-Nel Each £>43j5 $71.20

S100

4607

DEC LSI-11, PDP8, PDP11, Heatri H-11. P Pattern Epoxy Glass. Plug Board S.43"x5.187' Dual 36pin DEC/HEATH Connectors. 1-4 5-9 10-24

10,95 17.96 15.96

VECTOR-PAK ASSEMBLED MICROCOMPUTER CASES

Adjustable packaging system for S-100 bus microcomputers, compatible with Altalr 8800 and IMSAl 8080 size cards.

• Smart looking, deluxe cases unmarred by unsightly screws or fasteners.

• Finished in dark blue textured vinyl.

• Instantly accessible Interiors with slip out covers.

• Removable recessed rear and (ront panels.

• Fully adjustable interiqr mounting systems (or any card or card spacing within size limitations. No cutting or drilling necessary.

• Perforated bottom cover for cooler operalion.

DESCRIPTION

Assembled case with pertoraled bottom cover. Installed mounting struts for card guides and receptacles or mother board. Cards top loaded, spanning Iront to back. Card guide (12 pair) and chassis plate supplied uninstalled.

8801-1

Plain no etched circuitry except contacts. Produces maximum flexibility. 1-4 14.95

8802-1

Pad per 2 holes. Two-holE pads allow tack soldering ol socket, plus second hole for component leads.

5-9

19.76

VP-1 $163.00

Shipping Weight 25 lbs

VP-2 $159.00

Same as VP1 except cards oriented side to side.

PRIORITY

16723B Roscoe

"ANY DiP" has full power and ground planes back to back. Board accommodates 3, 4, 6, 9" Dips, 1-4 5-9 10-24

21.95 19.78 17.56

Individual tinned square pads surround most holes. Ideal for mounting components by "tack soldering" Top ol board pod Iree for mounting I/O connectors. P°wef buses.

4808

Is form and size compatible with INTEL S8L80 Series and NATIONAL BLC 80 Series microcomputer boards. Power and Ground buses on both sides.

1-4 5-9 10-24

45.00 40.50 36.00

4808-1

Same as 4608. except plain less

1.4

19.95

5-9

17.95

10-24

15.96

104

34.00

S-9

30.60

10-24

27.20

ELECTRONICS

ivd. Sepulveda, CA 91343

Terms: Visa, MC, BAC, Check, Money Order, C.O.D. U.S. Funds Only. CA residents add 6% sales tax. Minimum order $10.00. Prepaid U.S. orders less than $75.00 include 5% shipping and handling, minimum $2.50. Excess refunded. Just In case . . . please include your phone no.

Prices subject to change without notice. We will do our best to maintain prices thru June 1979. OEM and Institutional

phone orders welcome (213) 894-8171, (800) 423-5633 inquiries invited.

%

260 BYTE July 1979

Visit our new retail location! c,rcie3i2oni™card

ICKOK LX303 $74.95

HICKOK LX303 $7495*

„ .5%, 31/2 digit 19 Range DVM. Vj" LCD displays runs 200 hrs on 1 battery. 10 Meg Ohm Input. 1 yr. guarantee, made in U.S.A., test leads included. Available Accessories

RC-3115V AC Adapter $7.50

CC-3 Deluxe Padded Vinyl

Carrying Case $7.50

VP-10 X10 DCV Probe Adapter/

Protector 10Kv $14.95

VP-40 40Kv DC Probe $35.00

CS-1 10 Amp Current Shunt $14.95

r *FREE

Just for Asking. FREE BATTERY with your meter.

hickok 1$ Sale

DUAL-TRACE 30 MHz Oscilloscope Model 532 Deluxe 10:1 Probe Set

SALE PRICED AT ,

$114500 .^O^

0

Dual-Trace 30 MHz Oscilloscope

• Built In delay line for leading edge viewing of fast rlsetlme pulses. • Compact portable size. • 11.7 ns rlsetlme. • Full time X4 expansion I (horizontal position control automatically allows moving trace 4 screen widths at all sweep times). • TEST MOST DIGITAL LOGIC CIRCUITS INCLUDING MICROPROCESSORS. • STABLE TRIGGERING UP TO 50 | MHz. • High and low pass trigger filters. • 11 step precision vertical attenuators. • 24 calibrated sweep times. • Analyze CB AM and SSB I waveforms. • Regulated power supplies for accuracy over 105-130 VAC.

SPECIFICATIONS

VERTICAL RANGES: 10 mV/DIV to 20 V/DIV In 11 calibrated steps. Variable control permits fine adjustment between steps. Accuracy: ± 4%. Frequency Response: DC to 30 MHz (-3 dB) DC coupled, 2 Hz to j 30 MHz (-3 dB) AC coupled. Rlsetlme: 11.7 ns. Overshoot: 4% or less. Positioning: 3 screens. Input Impedance: 1 megohm ±2% shunted by 27 pF. ±1.0 pF. Maximum Input Voltage: 500 V DC plus peak AC except 300 volts on .01 V range. Vertical Modes: Channel A only; Channel B only; Alternate A & B, Chopped A & B, Difference (A-B). TIME BASE I Sweep Rates: 2 SEC/DIV to 0.05 ii SEC/DIV In 24 calibrated steps. Variable control permits fine adjustment between steps. Accuracy: ±4%. Except 7% from 2 SEC/DIV to 0.5 SEC/DIV. TRIGGERING Modes: AC-HF High pass filter, signal component below 3 kHz rejected. AC-LF Low pass filter, signal component above 10 kHz rejected. Auto: Provides continuous sweep without input signal. Sources: Line, Internal, External. Slope: Positive and negative; continuously variable J level control. Sensitivity: Internal, Vt division (on CRT) to 30 MHz; 1 division to 50 MHz; external, 200 mV to 5 V peak-to-peak. EXTERNAL I HORIZONTAL (X-AXIS). Frequency Response: DC to 5 MHz, AC, DC coupled. Input Impedance; 1 megohm ±5% shunted by approximately 30 pF. GENERAL Probe Calibrator: 0.6 V peak-to-peak, 200 ns risetime. CRT: 4-inch flat faced round with viewing area of 6 x 10 divisions. Power Requirements: 105-125 V, 50-400 Hz, 35 watts. SIZE & WT.: 6-7/8" h x 11Vi" wx 17V4" d, 27 pounds (not including handle). (17.2 cm x28.6 cm x 45.1 cm) (12.27 kg). ACCESSORIES: Model 532 Includes 2 model ' SP-7,10:1 probes and Instruction manual. Includes two probes.

LX303 DVM 1e with Purchase of Scope

•MKUnl! QQf] Q

IHiro* +9. +12. MOTHER

-i!ft,Mi*Miniu- BOARD FOR

.••ga^o- 5100 BUS

potwn mm but toon HICR0

BWi»m«*rt.*j>nnoih)« COMPUTERS

• Gi0«MiygiHiMirdi>ith2aunc< :W KWtn'KOT 03Sauntie hWfl 10*

• Mounls 11 ikihUcM wlh 100 CMMI [1 rMtlofl lISctniMiBitli 2M'0*ilMcmg VecWp*nnumWBMi-2 oimounli 10,«WtKitjotui MMnliwiwimii in vm'ie' ™tw wura

Plugboards

, Price: $29.50

1/16 BOARD .042 dia holes on 0.1 spacing for IC's

Phenolic PRICE

PART NO. SIZE 1-9 10-19

64P44XXXP 4.5x6.5" $1.56 $1.40

169P44XXXP 4.5x17" $3.69 $3.32

8800V

Universal Microcomputer/processor plugboard, use with S-100 Dus Complete Willi neat sink & hardware 5 3k 10' * 1/16

1-4 5-9 $19.95 S17.95

8801-1

Same as 8800V except plain buses & heal sink.

1-4 5-9 10-24

$15.22 t $13.79 $12.18

10-24 J15 96

less power

3682 9.6,,x4.5"

$10.97 3682-2 6.5" X 4.5" $9.81

Hi-Density Dual-ln-Line Plugboard for Wire Wrap with Power & Grd. Bus Epoxy Glass 1/16" 44 pin con. spaced .156

3677 9 6"x4.5"

$10.90

3677-2 6.5" x 4.5"

$9.74

Gen. Purpose D.I.P. Boards with Bus Pattern lor Solder or Wire Wrap. Epoxy Glass 1/16" 44 pinccn. spaced .156

I

3662 6.5" X 4.5"

$7.65

3662-2 9.6" X 4.5"

$11.45

P pattern plugboards tor IC's Epoxy Glass 1/16" 44 pin con. spaced .156

TRS-80/APPLE

MEMORY EXPANSION KITS 4116's RAMS

(16Kx1 200ns)

8 for $75.00

Add $3.00 tor programming Jumpers for,TRS-80 Keyboard '

2708

8K 450 ns

EPROM

FACTORY PRIME

$ 9.00 ea.

25 + Call For Price

3690-12 CARD EXTENDER

Card Extender has 100 contacts 50 per side on .125 centers-Attached connector-is compatible with S-100 Bus Systems. $25.83 3690 6.5" 22744 pin .156 ctrs. Extenders $13.17.

14 & 16 PIN MJ'GOID 3 LEVEL ' VtottWIRE WRAP SOCKETS

'14-G3 100 for $30.00 16-G3 100 for $30.00 50 of each for $32.00

Sockets are End 81 Side stackable. closed entry

2114N-L

4096 - BIT (1024x4) 450 ns Low Power Static Ram

8 for s50°

ORDER TOLL FREE

11 800 423 5633

""life . . • Gail

{213) 894-8171

2102LPC

450ns Low Power RAMS $1.10 Ea. in lots of 25

2102LHPC 250ns Low Power RAMS L $1.25 Ea. In lots of 25 t

TMS 4044/ MM 5257-3L

4096x1 300 ns Low Power Static Ram

8 for s5000

WRAR POST

tor .042 dia. holes u I (all boards on this page) , |T44/Cpkg. 100 .. t 2.34 T44/Mpkg.

1000 $14.35 v

I A-13 hand installing > tool « 2.94 .

ELECTRONICS

16723B Roscoe Blvd. Sepulveda CA 91343

Terms: Visa, MC, BAC, Check, Money Order, C.O.D. U.S. Funds Only. CA residents add 6% sales tax Minimum order $10.00. Prepaid U.S. orders less than $75.00 include 5% shipping and handling minimum $2.50. Excess refunded. Just in case . . . please include your phone no.

Prices subject to change without notice. We will do our best to maintain prices thru July 1979. OEM and Institutional

phone orders welcome (213) 894-8171, (800) 423-5633 inquiries invited

2716

5 volt only 16K EPROM

HICKOK LX303 $74.95

HICKOK LX303 $74.95

We have 5V 2716's in Stock.

SSnwfmmmmKsmmgiiam

SIOOWWQ 50/100 Com. .125 clrs. 3 LEVEL WIRE WRAP .025" sq. posts on .250 spaced rows. GOLD PLATED. 1-4 5 9 10-24

(4.00 13.75 $3.50

S100ALT 50/100 Com. .125 ctls. DIP SOLDER TAIL on .140 spaced rows lor ALTAIR motherboards. GOLD plated. 1-4 >9 10-24

•4.00 13.75 J3.50

S100-STQ 501100 Com. .125 ctrs. DIP SOLDER TAIL on .250 spaced rows lor VECTOH and MASI motherboards GOLD plated.

1-4 5-1 10-24

S3.50 13.25 53.00

S100SE 50/100 Com. .125 clrs. PIERCED SOLDER EYELET tails. GOLD 1-4 5-9 10-24

S5.00 14.50 S4.25

We have the Best Prices on 2102's, 2114's, 4116's.

OTHER POPULAR EDGE CONNECTORS

All Edge Card Connectors are GOLO PLATED (not Gold Flash) Bodies are non brittle. Solvent res.. G.E. Valox. Contacts are Bifurcated: Ptios/Bronze: GOLD over Nickel.

ABBREVIATIONS: SE - Solder Eyelet WW - 3 LmI Wire Wrap ST • Solder Tall

.100" Contact Center Connectors

PART NO. D1326-1SE D2244-1WW D2250-1SE D22S0-1ST D2040-1SE D2040 1ST 02040-1WW O3060 1WW D3S721SE 038/2 1ST D3672 1WW

D40B01ST D4080 1WW 04388 1SE D43S61ST D430S-1WW D5010O-1WW

PART NO. D3672-2WW D40S0-2WW 8100-STO

S100-WWQ

S100-ALT

S100SE

PART NO.

S6X-5SE

D612-5SE

D1224 5SE

02224 5ST

01530 5SE

01S30-5ST

D1530SWW

D1838-5SE

D2244-5SE

D2244-5ST

02244 5WW

03672-SSE

□3672 5ST

03672 5WW

DE4386-SSE

D4386-5ST

D43S6SWW

CO-1

PART NO.

DE-9P

DE-9S

DE-9C

DA16P

DAI5S

DA ISC

0B-25P

DB-25S

OB51212-1

0012261A

DB110963-3

OC37P

DC37S

DC37C

OOSOP

0DS0S

DOSOC

D20418-S

Imjal P10. Inlel Mulllbuas Imsai PIO. Inlel Multlbuss TP.S-80 TP.S-80

Intel Mulllbusa Vector Plugboards Vector Plugboards Vector (/•—'■ PET PET PET

Cos. ELF Cos. ELF Cos. ELF

1-4

2.60 4.00 3.70 3.50 3.20 300 3.30 4.10 500 4.95 4.90 595 500 5.20 5.60 5.40 550 5.95

.125" Contact Center Connectors

TYPICAL APPLICATION

Vector 4350

s-100. Imtsl. Vector, Cromenco. Motherboards

s too Wire Wrep Altelr

S100 Solder Eyelet

.156 Contact Centers Connectors

TYPICAL APPLICATION

Pet. NSC CLK Modules Pet. NSC CLK Modules Pel Pet

Vector Plugboards. GRI Keybrds Vector Plugboards. GRI Keybrds Vector Plugboards. GRI Keybrds

vector. Kim. etc. Vector. Klm. etc. Vector. Kim. etc. Vector Plugboards Vector Plugboards Vector Plugboards

Mot 6800. Intel Multlbuss. NSC pacer Mot 6600. Inlel Mullibuss. NSC pacer Mot 6800. Intel Multibuss. NSC pacer Imsai Style Card Guides

RS232 & "D"

P - Plug-Male S =

DESCRIPTION 9 Pin Male 9 Pin Female 9 Pin Cover 15 Pin Male 15 Pin Female 15 Pin Cover 25 Pin Male 25 Pin Female

1 pc. Grey Hood

2 pc. Black Hood 2 PC. Grey Hood 37 Pin Male 37 Pin Female 37 Pin Cover 50 Pin Male 50 Pin Female 50 Pin Cover Hardware Set 12 pair)

PRICE 5-9

2.40 3.80 3.50 3.30 3.05 2.85 315 3.90 4.75 4.70 465 5.70 4.75 4.95 5.35 5.15 525 5.75

PRICE

10-24

2.20 3.60 3.40 3.10 2.90 2.70 3.00 370 4.50 4.45 4.40 5.45 4.50 4.70 5.05 4.90 5.00 5.55

1-4

5-9

10-24

5.25

500

4.75

5.95

5.65

5.35

3.50

3.25

3.00

4.00

3.75

3.40

4.50

4.25

4.00

5.00

4.50

4.00

:tors

PRICE

1-4

59

10-24

1.40

1.30

1.20

1 60

1.50

1.40

2.40

2.30

2.20

2.30

2.20

210

2.50

235

2.10

2.40

2.25

2.05

2.60

2.40

2.15

3.00

2.80

2.60

3.00

260

2.20

3.00

2.60

250

3.95

3.70

3.40

5.50

5.30

5.00

5.45

5.25

5.00

5.60

5.40

5.10

6.00

5.75

6.25

5.90

5.65

5.15

6.50

6.30

5.90

511.00 or 100/10.00

TYPE CONNECTORS

Socket-Female C = Cover Hood

PRICE

14

59

10-24

1.50

1.30

1.10

1.95

1.75

1.45

1.50

1.30

1.10

200

1.80

1.55

2.90

2.70

245

1 60

1.60

1.30

2.50

3.20

2.05

3.50

3.10

2.96

1.65

1.35

1.20

1.60

1.50

1.35

1.70

1.40

1 25

3.95

375

3.50

550

5.25

4.90

2.00

1.80

1.60

5.00

4.75

4.60

6.50

6.00

5.75

2.50

2.30

2.20

1.00

.80

.70

.67

8STG 14SG 165 TO, 16STO 20STG

Connector lor CENTRONICS 700 SERIES:

Amphenol 57-30360 lor back o( Centronics 700 Series printers 1-4-S9.00 5-up-57.50 DIP PLUGS

PRICE PRICE

111 No. 01 1-24 2 599 100-499 Peril No. of 124

Pins

41 36 .29 P22P02 22 75

48 .42 .34 P24P02 24 . 79 71 .66

.38 P28P02 28 1.10 .93 .81

.46 P40P02 40 1.25 1.07 .94

GOLD SOLDERTAIL STANDARD IC Sockets

2549 50-99 1-24 25 49

.27 .24 22STO .70 .63

.32 .29 24STG 70 63

.35 .32 26STG 1.10 1.00

.43 40STO 175 1.55

P06P02 P14P02 P16P02 P18P02

.67

.57

38

.66

52

50-99

.57 .57 .90 1.45

6CS2 14CS2 16CS2 18CS2 20CS2

.15

TIN SOLDERTAIL - LOW PROFILE IC Sockets

25-49 50-99 1-24 2549 50-99

22CS2 .37 .36 .35

24CS2 38 .37 .36

28CS2 45 .44 .43

40CS2 63 62 61 .32 .30

20

PORTABLE OSCILLOSCOPES

MS-215 Dual Trace MS-15 Single Trace

Re9S43500 Reg.$31800 Sale Priced %)OS) Sale Priced

S38900* w^ $28900*

With Rechargeable Batteries and Charger Unit

• 15 megahertz band width e External and Internal trigger

• Time base • 1 micro sec. to 0.5 21 settings

• Battery or line operation

• Automatic or line sync modes

• Power consumption less than 15W.

• Vertlcle Gain • 0.01 to 50 Volts/ dlv. 12 settings.

• Weight Is only 3 pounds

• Viewing area 1.1" x 1.35" case size 2.75"H x 6.4"W x 7.5"D

• Parts & labor guaranteed 1 year, made In USA!

41-140 Leather Carrying Case $45.00

41-141 10:1 Probe $27.00

41-349510:1,1:1 Combo Probe $36.00

• Sale Prices Valid tor PREPAID or CREDIT CARD, ORDERS ONLY.

Why Cut? Why Strip? Why Silt? WHY NOT..

JUST

WRAP™

• AWG 30 Wire • Built In Cut off

• .025" Square Posts • Easy Loading of Wire

• Daisy Chain or Point • Available Wire Colors: To Point Blue, White, Red & Yellow

• No Stripping or Slitting Required . JUST WRAP TM .. .

NEW

JUST WRAP TOOL WITH ONE 50 FT. ROLL OF WIRE

COLOR

PART NO. U.S. LIST PRICE

BLUE WHITE YELLOW RED

JW-1B 14.95 JW-1-W 14.95 JW-1-Y 14.95 JW-1-R 14.9S

REPLACEMENT ROLL OF WIRE 50 FT.

BLUE WHITE YELLOW RED

R-JW-B 2.98 R-JW-W 2.98 R-JW-Y 2.98 R-JW-R 2.98

3 LEVEL GOLO WIRE WRAP SOCKETS

Sockets purchased In multiples of 50 per type may be combined for

best price. 1-9 10-24 25-99 100-249 250-999

8 pin* .40 .36 .34 .31 .27

14 pin* .45 .39 .37 .34 .32

.16 pin* .50 .42 .40 .36 .34

18 pin .70 .60 .55 .50 .45

20 pin .90 .80 .75 .65 .62

22 pin* .95 .85 .80 .70 .65

24 pin .95 .85 .80 .70 .65

28 pin 1.25 1.15 1.00 .95 .90

|40 pin 1.65 1.45 1.35 1.20 1.10

All sockets ere GOLD 3 level closed entry ' End end side stsceble. 2 level. Solder Tsil. Low Profile. Tin Sockets end Dip Plugs available CALL FOR QUOTATION

JUST WRAP KIT CONTAINS

• JUST WRAP Tool

• Roll of Blue Wire, 50 ft.

• Roll of White Wire, 50 ft.

• Roll of Yellow Wire, 50 ft.

• Roll of Red Wire, 50 ft.

• Unwrapping Tool

JWK-6, JUST WRAP KIT $24.95

DIP JUMPERS

FLAT RIBBON CABLE ASSEMBLIES WITH DIP CONNECTORS

• Available with 14,16.24 and 40 contacts.

• Mate with standard IC sockets.

• Fully assembled and tested.

• Integral molded-on strain relief.

• Line-by-line probeabiiity.

A P DIP Jumpers are the Ic quality solution for jumpering

w-cost. high- board; interconnecting between PC I within a PC backplanes and motherboards; interfacing Input/Output signals; and more.

All assemblies use rainbow cable. Standard lengths are 6.12,18,24 and 36 inches.

r*™ Dinolai Pin No |

DOUBLE-ENDED DIP JUMPERS

No. Contacts

Length

6"

Length

12"

Length

IB"

Length 24

Length

36"

14

924106 6 R (2.41

924106 12 R •2 61

924106 tB-R )2 82

924106 24-R S3.02

924106 36 R (3 43

16

924116 6 R 52 66

924116 12 R S2 88

924116 IB R S3 11

924116 24 fl >334

924116 .16 B 1380

24

924126 6 Ft S4 15

924126 12 R S450

924126 tB-R 14.85

924126 24-R S5 20

924126 36 II S5.90

40

924136 6 Ft S6.93

924136 12 fl 1752

924136 18-R S8.1l

924136 24-fl 18.73

924136 36 R J9 88

PRIORITY ONE ELECTRONICS

16723B Roscoe Blvd. Sepulveda CA 91343

Terms: Visa, MC, BAC, Check, Money Order, C.O.D. U.S. Funds Only. CA residents add 6% sales tax. | Minimum order $10.00. Prepaid U.S. orders less than $75.00 include 5% shipping and handling, minimum $2.50. Excess refunded. Just in case . . . please include your phone no.

Prices subject to change without notice. OEM and Institutional!

We will do our best to maintain prices thru July 1979. inquiries Invited.

phone orders welcome (213) 894-8171, (800) 423-5633

ave 5V 2716's in Stock.

Circle 312 on inquiry card.

Circle 384 on inquiry card.

ff^OZOFF 20Z0FF

YOUR OWN TRS-80 SYSTEM AT TREMENDOUS SAVINGS OTRS-80 Complete System DISK DRIVES NOW IN STOCK!

Includes: CPU/Keyboard, Power Supply, Video Monitor, Cassette Recorder, Manual, and Game Cassette.

WLine Printer ©Mini Disk System 0C-1O Cassettes ©Verbatim Diskettes

REG.

OUR

ITEM

PRICE

PRICE

TRS-80 Complete System

Level II - 4K RAM

$ 698.00

$ 628.20

TRS-80 Complete System

Level I116 K RAM

$ 988.00

$ 889.20

Expansion Interface

$ 299.00

$ 269.10

Pertec FD200 Mini Disk Drive $ 495.00

$ 385.00

Centronics 779 Printer

$1599.00

$1175.00

Centronics 101 Printer

$1595.00

$1400.00

Anadex DP-8000 Printer

$1295.00

$ 995.00

Centronics P1 Printer

$ 534.00

$ 445.00

Trendata 1000

$1495.00

$1295.00

Memory KM16K)

$ 199.00

$ 98.00

•FREE INSTALLATION

Verbatim Diskettes ea.

$ 5.95

$ 4.95

3

$ 17.89

$ 12.00

.10 •

S 59.00

$ 37.00

Maxell Diskettes ea.

$ 10.00

$ 7.50

3

$ 30.00

$ 21.00

10

$ 100.00

$ 60.00

C-10 Cassettes 5

$ 4.95

$ 4.50

25

$ 24.75

$ 18.75

C-30 Cassettes 12

$ 29.95

$ 23.95

Paper (9V2"x 11 "fanfold.

3500 sheets)

$ 35.00

$ 29.95

Model

List Price Our Price

Level II—4K

$698.00

$628.20

Level II—16K

$988.00

$889.20

Expansion Interface

$299.00

$269.10

Comprehensive circuit analysis for your system

• RAM—tests for Random Access Memory errors

• ROM—tests for Read Only Memory errors

• CPU—tests for errors in Processor functions

• I/O—tests for Input/Output errors in peripheral equipment

The one "necessity" for any TRS-80 system—use as pre-' ventive maintenance for detecting circuit malfunctions and as a diagnostic tool for pinpointing hardware problems.$34.85

There are new developments every day— write or call for the latest information.

-7 pm.

Outlet Hours: Mon.-Fri.; 9 amSat. 12—5 pm.

777 Henderson Boulevard N-6 Folcroft Industrial Park Folcroft PA 19032 (215) 461-5300

Classroom Instruction offered in Level II Basic—$49.95; and DOS/Disk Basic—$69.95

Uiaaaiuum man uuuun uiigigu hi loci ii uaaiu—<pt9.9u, aim uuuuion uaoib—ifus.ao

k I T I1 T I Ml I I I I I I 11IJJ 1 I I I I I I Ml I1 I T 1

VbECkH'^EN'^RPRISES

n

All Prime Quality — New Parts Only 1

Satisfaction Guaranteed

EDGE CARD CONNECTORS: GOLD PLATED. (Not Gold Flash) BODY: Non brittle. Solvent res., G.E. Valox. CONTACTS: Bifurcated; Phos/Sronze: Gold over Nickel. ABBREVIATIONS: S/T Solder Tail; S/E Sold. Eyelet:

W/W Wire Wrap 3; SW/W Short W/Wrap;

PART * Description

Row Sp.

1-4

5-9

10-24

5010

50/100 S/T ALTAIR

.140

3.75

3.50

3.30

5020

50/100 S/T IMSAI

.250

3.95

3.75

3.50

5030

50/100 W/W IMSAI

.250

4.10

3.90

3.70

5040

50/100 S/E ALT/IMSAI

.140

5.00

4.50

4.25

5050

50/100 S/T CROMEMCO

.250

6.25

6.00

5.75

1450

IMSAI CARD GUIDES

0.16

0.14

0.12

.100"

Contact Center Connectors.

1020

1 3/26 S/E Imsai MIO:

.140

2.10

1.85

1 .75

1040

25/50 S/E

.140

2.95

2.75

2.50

1050

25/50 S/T

.140

3.00

2.80

2.60

1060

36/72 W/W Vector.

.200

4.80

4.60

4.30

1065

36/72 S/T Vector.

.200

4.00

3.75

3.50

1070

40/80 S/E PET

.140

4.80

4.50

4.30

1075

40/80 W/W PET

.200

5.00

4.65

4.35

1080

40/80 S/T PET

.140

4.90

4.60

4.25

1085

43/85 S/E Cos.ELF

.140

5.00

4.75

4.50

1090

43/86 S/T Cos.ELF

.140

5.10

4.85

4.60

1093

43/86 S/T Cos.ELF

.200

4.95

4.70

4.45

t095

43/86 W/W Cos.ELF

.200

5.50

5.20

4.90

POLARIZING KEYS: For Above

0.10

0.10

0.10

.156"

Contact Center Connectors.

1550

6/- S/E PET.Etc

.1 40

1.30

1.10

0.90

1560

6/12 S/TPET:NSC.

.140

1.35

1.15

0.95

1575

1 2/24 S/E PET

.140

2.15

1.95

1.75

1580

12/24 S/T PET

.140

2.10

1.90

1 .70

1590

1 5/30 S/E GRI Keybd.

.140

2.25

2.05

1 .85

1620

18/36 S/E

.140

2.40

2.20

2.00

1650

22/44 S/E KIM,VECTOR

.140

2.20

2.00

1.80

1660

22/44 S/T KIM,VECTOR

.140

2.00

1.80

1.70

1670

22/44 W/W KIM,VECTOR

.200

2.40

2.20

2.00

1690

36/72 W/W

.200

3.90

3.75

3.50

1710

36/72 S/E

.140

3.50

3.30

3.10

1720

36/72 S/T

.200

3.30

3.10

2.90

1730

43/86 S/T Mot. 6800

.140

4.40

4.15

3.90

1740

43/86 S/T Mot. 6800

.200

4.35

4.10

3.85

1750

43/86 W/W Mot. 6800

.200

4.45

4.25

4.10

POLARIZING KEYS: For Above

0.10

0.10

0.10

RS232 & D' TYPE SUBMINIATURE CONNECTORS:

QUANTITY

DE9P Male DE9S Female DE1 10963-1 DA1 5P Male DA 1 5S Female DA51211-1 DA1 10963-2 DB25P Male DB25S Female DB51212 1 DB51226-1A DB1 10963.3 DC37P Male DC37S Female DC! 10963-4 DD50P Male DD50S Female DD51216-1 DD1 10963-5

2pc. Grey Hood

1pc

2 pc

Ipc 2pc 2pc

Grey Hood Grey Hood

Grey Hood Black Hood Grey Hood

2pc. Grey Hood

1 pc. 2pc.

D2041 8-2 Hardware

Grey Hood Grey Hood. Sets

1-4

1.45 1.93 1.20 1.95 2.80 1.25 1.22 2.20 3.20 1.30 1.40 1.35 3.70 4.90 1.95 4.40 4.90 2.30 2.40 0.75

5-9

1.35 1.80 1.10 1.80 2.60 1.15 1.10 2.10 3.00 1.20 1.30 1.25 3.50 4.70 1.85 4.30 4.70 2.10 2.20 0.70

10-24

1.25 1.70 1.00 1.70 2.40 1.10 1.05 1.90 2.70 1.10 1.20 1.15 3.35 4.40 1.75 4.10 4.50 1.90 2.00 0.65

I.C. SOCKETS. GOLD. WIRE WRAP 3 TURN,

14 pin $0.36 ea. 16 pin 0.38 ea.

I.C. SOCKETS.

Dip Solder. Tin.

14 pin $0.1 5 ( 1 6 pin 0.1 7 <

8080 PRIME

$8.00 ea.

2708 EPRQMS PRIME

$14.00 ea.

CONNECTORS FOR CENTRONICS 700 SERIES:

Amhpenol 57-30360 For Back of Centronics '700' Series:

Price: $9.00aa. 5 pes. $7.50ea.

WHISPER FANS: Excellent for Computer cabinet cooling. Extremely quiet. Dim. 4-3/4" x 1-1/2" thick. U.L. Listed. JMl _5jj) 10-24

$22.00 $19.00 $18.00 WRITE FOR LARGER QUANTITY DISCOUNTS. DEALER INQUIRIES ARE WELCOME.

WE ARE CONNECTOR {EDGE CARD) SPECIALISTS. IF YOU DO NOT SEE WHAT YOU NEED IN THIS ADVERTISEMENT. PLEASE WRITE US. WE WILL REPL Y.

TERMS: Minimum Order $10.00: Add $1.25 for handling and shipping. All orders over $2S. 00 in USA and Canada: WE PA Y THE SHIPPING. NOTE: CA residents please add 6% sales tax.

NO C.O.D. SHIPMENTS OR ORDERS ACCEPTED.

BORDERS TO: Beckim £>J ^J./^

P.O. Box 3089 Simi Valley, CA 93063

Circle 30 on inquiry card.

BYTE July 1979 263

Circle 230 on inquiry card.

T

CALIFORNIA COMPUTER SYSTEMS

16K RAM BOARD. Fully buffered addressable In 4K blocks. IEEE standard lor bank addressing 2114's

PCBD $26.95

Kit 450NSEC $259.95

PT-1 PROTO BOARD. Over 2,600 holes 4" regulators. All S-100 buss lunctions labeled, gold fingers.

PCBD $29.95

PT-2 PROTO BOARD. Similar to PT-1 except setup to handle solder tail sockets. PCBD $29.95

FORMERLY CYBERCOM/SOUD STATE MUSIC.

PB-1 2708 & 2716 Programming Board With provisions lor 4K or 8K EPROM. No external supplies require

textool sockets. Kit $124.95

CB-1 8080 Processor Board. 2K of PROM 256' BYTE RAM power on/rest Vector Jump Parallel port with

status Kit $119.00 PCBD $30.95

MB-6B Basic 8KX8 ram uses 2102 type rams, S-100

buss. Kit 450 NSEC $139.95 PCBD $26.95

MB-7 16KX8, Static RAM uses WP410 Protection.

fully buffered Kit $299.95

MB-8A 270B EROM Board, S-100, 8K8X or 16Kx8

kit without PROMS $75.00 PCBD $28.95

MB-9 4KX8 RAM/PROM Board uses 2112 RAMS Or 82S129 PROM kit without RAMS or PROMS S7Z00 IO-2 S-100 8 bit parallel /IO port, % of boards is for

kludging. Kit $46.00 PCBD $26.95

IO-4 Two serial I/O ports with full handshaking 20/60 ma current loop: Two parallel I/O ports.

Kit $130.00 PCBD $26.95

VB-1B 64 x 16 video board, upper lower case Greek, composite and parallel video with software, S-100.

Kit $125.00 PCBD..'. $26.95

Altair Compatible Mother Board, 11 x 1114 x Vt".

Board only $39.95. With 15 connectors $94.95

Extended Board full size. Board only $ 9.49

With connector $13.45

SP-1 Synthesizer Board S-100

PCBD $42.95 KIT $135.95

fWmC/inc WAMECO INC.

FOC-1 FLOPPY CONTROLLER BOARD will drive shugart, pertek, remle 5" & 8" drives up to 8 drives, on board PROM with power boot up, will operate with CPM (not included).

PCBD $42.95

FPB-1 Front Panel. IMS~AI size, hex displays. Byte, or instruction single step.

PCBD $47.50

MEM-1 8KX8 fully buffered, S-100, uses 2102 type

rams. PCBD $25.95

QM-12 MOTHER BOARD, 13 slot, terminated, S-100

board only $34.95

CPU-1 8080A Processor board S-100 with 8 level

vector Interrupt PCBD $26.95

RTC-1 Realtime clock board. Two Independent interrupts. Software programmable. PCBD $23.95

EPM-1 1702A 4K Eprom card PCBD $25.95

EPM-2 2708/2716 16K/32K

EPROM CARD PCBD $25.95

QM-9 MOTHER BOARD, Short Version of dM-12.

9 Slots PCBD $30.95

MEM-2 16K x 8 Fully Buffered

2114 Board PCBD $26.95

8080A $9.95 5101-8P .....$8.40

8212 2.49 2114 (450 NS) low pwr... 7.25

8214 4.49 2114 (250 NS) low pwr... 7.99

8224 3.49 2102A-2L 1.50

2708 9.49 2102A-4L 1.20

5101-1P 6.90 4116 ...« 8/89.95

mm

(415) 592-1800 P.O. Box 424 • San Carlos, California 94070

Please send for IC, Xlstor and Computer parts list

JULY SPECIAL SALE ON PREPAID ORDERS

(charge cards not Included on this offer)

CCS PROTO BOARDS

PT-1 $27.95 4/$100

PT-2 $27.95 4/$100

MIKOS PARTS ASSORTMENT WITH WAMECO AND CYBERCOM PCBDS

MEM-2 with MIKOS -7 16K ram

with L2114 450 NSEC $235.95

MEM-2 with MIKOS »13 16K ram

with L2114 250 NSEC $269.95

MEM-1 with MIKOS #1 450 NSEC 8K

RAM $119.95

CPU-1 with MIKOS #2 8080A CPU $94.95

MEM-1 with MIKOS #3 250 NSEC 8K

RAM $144.95

QM-12 with MIKOS #4 13 slot mother

board $89.95

RTC-1 with MIKOS #5 real time clock $54.95

VB-1B with MIKOS #6 video board less

molex connectors $99.95

EMP-1 with MIKOS #10 4K 1702 less

EPROMS $49.95

EPM-2 with MIKOS #11 16-32K EPROMS

less EPROMS $59.95

QM-9 with MIKOS #12 9 slot mother

board $79.95

FPB-1 with MIKOS a14 all parts

for front panel $134.95

MIKOS PARTS ASSORTMENTS ARE ALL FACTORY PRIME PARTS. KITS INCLUDE ALL PARTS LISTED AS REQUIRED FOR THE COMPLETE KIT LESS PARTS LISTED. ALL SOCKETS INCLUDED.

VISA or MASTERCHARGE. Send account number, Interbank number, expiration date and sign your order. Approx. postage will be added. Check or money order will be sent post paid in U.S. 1f you are not e regular customer, please use charge, cashier's check or postal money order. Otherwise there will be a two-week delay for checks to clear. 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. $1.50 service charge on orders less thin $10.00.

WAMECO

THE COMPLETE PC BOARD HOUSE EVERYTHING FOR THE S-100 BUSS

* FPB-1 FRONT PANEL BOARD * EPM-2 16K or 32K BYTE EPROM

Hex Displays, IMSAI Replaceable $54.95 2708 or 2176 interchangeable $30.00

* FDC-1 FLOPPY DISC CONTROLLER BOARD * QMB-9 9 SLOT MOTHER BOARD Controls up to 8 Discs $45.00 Terminated $35.00

* MEM-1 A 8K BYTE 2102 RAM Board ....$31.95 *QMB-12 12 SLOT MOTHER BOARD

* MEM-2 16K BYTE 21T*4 RAM Board ....$31.95 Terminated $40.00

* CPU-1 8080A CPU Board #RTC REALTIME CLOCK

With Vector Interrupt $31.95 Programmable Interrupts $27.95

* EPM-1 4K BYTE 1702A EPROM $29.95

FUTURE PRODUCTS: 80 CHARACTER VIDEO BOARD, IO BOARD WITH CASSETTE INTERFACE.

DEALER INQUIRIES INVITED, UNIVERSITY DISCOUNTS AVAILABLE

AT YOUR LOCAL DEALER

***~JiftC. WAMECO INC. 111 GLENN WAY #8, BELMONT, CA 94002 (415) 592-6141

264 byte July 1979 Circle 387 on inquiry card.

computer products, inc.

11542-1 KNOTT STREET GARDEN GROVE. CALIFORNIA 92641 (714) 891-2663

MICROBYTEZ80/I-O

A complete single board Z80A CPU and serial/paraile I/O system Fully S 100 Bus compatible, IMSAI, ALTAIR

Z80A CPU (4MSs version ot the Z80)

158 Instructions — superset ol and upward compatible from the 8080's 78 Instructions 1K (2708), 2K (2716), or 4K (2732) EPROM onboard with ZSO Monitor program On board EPROM can be hardware and/or software deselected 2MHs or 4MHs operation Is switch selectable

0 or 1 wait state for all cycles Is switch selectable

Full vectored interrupt capability

(7 bits) with NMI (1 bit)

2 RS-232C serial ports with 8251

USARTs

Serial baud rates switch selectable

1 8-bit parallel port with 2 control lines with Z80A-PIO

• Gold Contacts for higher reliability

• Power requirements: + 8V @ 800mA, + 16V, ® 86mA, - 16V @ 100mA

• Operating temperature 0a-55*C

• Will operate with or without IMSAI/ALTAIR front panel

• Low power shotttky trl-state buffers on all address and data lines

• Fully warranted for 120 days from date of shipment

$360.'

8251

PROGRAMMABLE/U-ART TESTED @ 4 MHZ

$6.00 each

2708's

LOW POWER 450 NS.

$9.00 each 8for$69.00

IMSAI CONN.

100 PIN-SOLDERTAIL GOLD CONTACTS

$3." each or 10/2.75 ea.

SA400

DISK DRIVE INCLUDES CABINET, NO PWR SUPPLY CUTOUTS FOR SWITCH, FUSE, & INTERFACE CABLE

Mfg. By Lobo Drive $325.00

MICROBYTE 16K STATIC RAM BOARD

• Fully S100 Bus Compatible, IMSAI, SOL, ALTAIR, ALPHA MICRO

• Uses National's Low Power 5257 4K x 1 Static Rams

• 2 MHz or 4 MHz operation

• On board single 5 amp regulator

• Thermally designed heat sink (board operating temperature 0" — 70'C)

• Inputs fully low power Shottky Schmitt Trigger buffered on all address and data lines

• Phantom is jumper selectable to pin 67

• Each 4K bank addressable to any 4K slot with in a 64K boundary.

• 4K hardware or software selectable

• Selectable port address

• 4K banks can be selected or d.wabled on power on clear or reset

• Will operate with or without front panel

• Compatible with ALPHA MICRO, with extended memory management for selection beyond 64K

• No DMA restriction

• Low power consumption 1.3 amp

• Fully warranted for 120 days from date ol shipment

TRS■80

FLOPPY DISK DRIVE WITH CABINET & PWR. SUPPLY COMPATIBLE WITH RADIO SHACK INTERFACE ASSEMBLED & TESTED WITH 1 YR. WARRANTY ON PARTS & LABOR Mfg. By Lobo Drive $385.00

450 NS $340°° 300 NS $360.°°

REGULATORS

MICROBYTE 32K STATIC RAM BOARD

• Fully S100 Bus Compatible, IMSAI, SOL, ALTAIR, ALPHA MICRO

• Uses National's Low Power 5257 4K x 1 Static Rams

• 2 MHz or 4 MHz operation

• On board single 5 amp regulator

• Thermally designed heat sink (board operating temperature 0* - 70 *C)

• inputs fully low power Shottky Schmitt Trigger buffered on all address and data lines

• Phantom is lumper selectable to pin 67

• Each 4K bank addressable to any 4K slot with In a 64K boundary.

• 4K hardware or software selectable

• One on board 8-blt output port enables or disables the 32K In 4K blocks

• Selectable port address

• 4K banks can be selected or disabled on power on clear or reset

Will operate with or without front panel

Compatible with ALPHA MICRO, with extended memory management for selection beyond 64K No DMA restriction Low power consumption 2.3 — 2.5 amps

Fully warranted for 120 days from date of shipment

1-9 10-49

50 up

320 T-5

.90 .85

.75

320 T-12

.90 .85

.75

340 T5

.85 .80

.70

340 T-12

.85 .80

.70

78 H05

6.50 6.00

5.50

2716

5 VOLT ONLY LOW POWER HIGHSPEED

$45.00

Limited Qty.

MM 5257

4KX1 STATIC RAM

1:16 17-48 49 up

300 NS 6.50 6.05 5.65 450 NS 6.25 5.85 5.50

450 NS $650.°° 300 NS $650.°°

1-24

(tin) 25-99

100-499

500 up

14 PIN

.18

.17

.15

.13

16 PIN

.19

.18

.16

.14

18 PIN

.24

.23

.20

.18

20 PIN

.29

.28

.26

.25

24 PIN

.34

.33

.32

.30

40 PIN

.60

.59

.58

.56

MICROBYTE DISK CONTROLLER

• IBM 3740 Soft Sectored Compatible

• ZSO or 8080 compatible on S-100 Bus

• Single density runs both mini and full size drives, runs CPM, on Shugart, Perscl, Memorex etc.

$250,

• Selectable port/address

• On bord 2708/2716 for bootstrap or monitor program

• No hardware lumpers, uses plug in modules tor different drives

• Uses 1771B-01 controller chip

• Assembled and tested

00

CALL FOR INFO ON OUR NEW

PROM/ PROGRAMMER

PROGRAMS 2708 I 2716 / 2732

SPECIAL

.1 © 12 VOLTS CERAMIC CAP

90 each

100 for$8.00

SHUGART

801-Disk Drive

WITH CABINET & POWER SUPPLY ASSEMBLED & TESTED 1 YR PARTS & LABOR

Mfg. By Lobo Drive

$585.00

MICROBYTE MOTHERBOARD

• Active Diode termination

• Slot for IMSAI front panel

• Terminal block connection for easy hook-up

• Extra wide ground plane

• Silk screen and solder mask

• Assembled and tasted

9 SLOT $135.00 20 SLOT $200.00

ORDERING INFORMATION:

Name, Address, Phone

Ship by: UPS or P.P.

Shipping Charge: Add $2.50 up to 5 lbs., all excess shipping charges will be refunded. Credit

cards will be charged appropriate freight.

TERMS:

We accept cash, check, money orders, Visa, and Master Charge cards.

COD's: on approval only

Open Acct's: companies may

inquire for net terms. Tax: add 6% for Calif, residents only

Circle 11 on inquiry card.

BYTE July 1979

265

c

Computer Products

Rockwell AlM-65: The Head-Start in Microcomputers

A KIM-1 compatible machine with on-board printer ana a real keyboard!

$375.00 w/IK RAM

$450.00 w/4K RAM 4K assembler/editor in ROM: $ 80.00 8K BASIC in ROM: $100.00 Power supply: $ 59.95

Case for AIM-65: $49.95

Special Package Price: $599.00

AIM-65 (4K), Power Supply, Case, and 6K BASIC ROM

i 11ri11i:i11hi

mmmm

THE EXIDY SORCERER

Flexibllty Is the key. The Sorcerer Computer gives you the flexibility of jslng ready-to-run, pre-packaged programs or doing your own thing and personalizing the programs for yourself. Which ever you choose, the Sorcerer Is the personal computer that speaks your language.

The Sorcerer also provides full graphics capablltles. Each character, formed by an 8 « 8 dot cell, can be programmed as a graphic symbol set. High resolution (512 > 240 addressable points) gives a total of 122,880 locations lor super animation and extremely tight plotting curves. The alphanumeric set gives 84 x 30 characters on the video screen

With 16K of memory $1150.00

r 1ddV.08-SU.L.a3U3OblOS.31ddV.08-SHjfi

RS-BO-APPLE'SORCERER'TRS-80'APP1

JADE MEMORY i EXPANSION KITS For; TRS-80, Apple, & Exidy jS 4116i

Everything a person needs to ° add 16K of memory. Chips £ come neatly packaged with 3 easy to follow directions. In fj minutes your machine is ready for games and more g advanced software. a

$82.00

$245

GS02 — based single board computer with keyboard/display, KIM-1 hardware compatible, complete documentation.

SYM-1 CASE $39.95

$179

KIM-1 Module monitor, programs stored in

12048 ROM Bytes, User Manual, Wall size schemalic, Hardware manual. Programming manual, Programmers reference card,and Keyboard display.

SD SYSTEMS Z-80 STARTER KIT Based on the powerful Z80 CPU, this kit Is an Ideal introduction to microprocessors. It has an on-board keyboard and display, plus cassette tape Interface and expansion provisions for two S-100 connectors. This "Do-it-air Board will also program the 2716 2K EPROM.

Kit, $249.95

Assembled and Tested, $399.95

JADE PROTO BOARD

Includes gold plated fingers, S-100 size, holds 72-16 pin dips, accomodates all 8 thru 40 pin dip packages.

$19.95

THE PIGGY MAINFRAME

THE PIGGY IS HER El

This sleak new mainframe Is neatly trimmed to hold six S-100 boards, two mini-floppy drives, and Is available In five colors. Power requirements: 115/220 VAC, 50/60 HZ. Weight: 27 lbs. (with drives). Dimensions: 21.375" Wide X 8.4" High X 15.875" Deep. Power Supply: 8 volts at 18 Amps unregulated, + 16 volts at 3 amps uregulated, -16 volts at 3 amps unregulated, + 5 volts at 3 amps regulated, + 12 volts at 3 amps regulated.

THE PIGGY (Without Drives) $475.00

Bare Board w/Manual

$1 79.95 $ 30.00

LEEDEX MONITOR

• 12" Black and White

• 1 2MHZ Bandwidth

• Handsome Plastic Case

$139.00

Part No. positions 1-9

SWD-103 3 $1.18

SWD-104 4 $1.20

SWD-105 5 $1.24

SWD-106 6 $1.28

SWD-107 7 $1.30

SWD-108 8 $1.34

SWD-109 9 $1-36

SWD-110 10 $1.38

DIP SWITCHES

VECTOR PLUG BOARDS

8800V

Universal/Mlcrocomputer/Processor Plugboard S-100 Bus. Complete With Heat Sink & Hardware.

5.3" x 10" x 1/16" $19.95

8801-1 i

Same as S800V Except Plain, Less Power Buses & Heat Sink.

$15.95

P Pattern Plugboards For I.C.'s Epoxy Glass 1/18" 44 Pin Connector Space .156

3662 6.5" x 4.5"

3662-2 9.6" x 4.5"

$7.65

...$11.45.

Hi-Density Dual-ln-Llne Plugboard For Wire Wrap With Power & Grd. Bus Epoxy Glass 1/16" 44 Pin Con Spaced .156

3682 9.6" x 4.5" $10.97

3682-2 6.5" x 4.5 $9.81

Gen Purpose D.I.P. Boards With Bus Pattern For Solder Or Wire Wrap. Epoxy Glass 1/16"44 Pin Con. Space .156

3677 9.6" x 4.5" $10.90

3677-2 6.5" X 4.5 $9.74

3690-12 Card Extender Card Extender Has 100 Contacts 50 Per Side ON .125 centers. Attached Connector is Compatible With S-100 Bus Systems $25.83

3690 6.5" 22/4 Pin .158 Centers Extenders. $13.17

Solid State Music's I/O 4

2- Serial & 2- Parallel I/O Ports. S-100 with full handshaking.

KIT $149.95

Assembled $199.95

Bare Board $29.95

SD SYSTEMS SBC-100

An S-100 single board computer. Z-80 CPU with 1024 bytes of RAM, 8 to 32K bytes of PROM, Serial I/O port.

Kit $239.95'

Assembled $369.95

TARBELL Cassette Interface

Plugs Into your IMSAI or ALTAIR, 4 extra status lines, 37 page manual Included, 4 extra control lines.

Kit $99.95

Assembled $175.00

Bare Board $40.00

Manual $8.00

FLOPPY DISK INTERFACE

JADE FLOPPY DISK (Tarbell board)

Kit $195.00 Assembled & Tested $250.00

S.D. Computer Products VERSA-FLOPPY

Kit S159.95 Assembled & Tested S239.00

PARALLEL/SERIAL INTERFACE

S 100 compatible 2 serial I/O ports, 1 parallel I/O.

Kit JG-P/S $124.95

Assembled & Tested: JG-P/SA

VIDEO INTERFACE

S-100 Compatible Serial Interface with Sockets Included. Kit $117.95 Assembled & Tested $159.95 Bare Board w/manual $ 35.00

MEM-2 16 K Static RAM Board

Kit- (450ns) $250.00

Kit- (250ns) $285.00

Assembled- (450ns) $325.00

Assembled- (250ns) $350.00

DYNAMIC RAM BOARDS EXPANDABLE TO 64K

32K VERSION • KITS

Jses 4115 (8Kx 1, 250ns) Dynamic RAM's, can be expanded in 8K ncrements up to 32K:

SK $159.00 24K $249.00 16K $199.00 32K $299.00

41 1 5 SALE

8 for $39.95

64K VERSION .KITS

loses 4116 (16Kx 1. 200ns) Dynamic RAM's, can be expanded in 16K increments up to 64K:

16K $249.00 32K $369.00

4SK $469.00 64K $569.00

STATIC RAM + SPECIALS

2114's, low power (1024x4)

45 0ns

300ns

1.00 9.00

$.95 S.OO

3.50 $.50

r

TMS4044 450ns

300ns

/MM5

S.OO

9.95

257. lo> 7.50 8.75

v powe

S.SO

S.OO

4200A (4

<xl, ; 9.5

00ns) ..SO

S.OO

410D (4

< x 1, 200 ns) 8.25 | 7.00

£75

STATIC RAM BOARDS

JADE 8K

Kits: 450ns $125.95 250ns $149.75 Assembled & Tested:

45 0m $139.75 2S0ns $1(9.75 Bare Board: S 25.00

16K - Uses 2114'« (low power) Assembled S> Tested:

RAM 1$ (250ns) $375.00 RAM 1SBt*4S0ns) $325.00

16K with memory management

Assembled & Tested:

RAM (5 (250ns) $390.00 RAM«SB(4S0n»i $350.00

32K Static Assembled & Tested

250ns

450ns

250nt Kit

266 BYTE July 1979

Circle 195 on inquiry card.

PLACE ORDERS TOLL FREE:

800/421-5809 Continental U.S. 800/262-1710 Inside California

jlillf

3

mw*wm\

THE BIG Z THE NEW Z-80 CPU BOARD FROM JADE

Features Include: ■ S-100 Compatible, available In 2MHz or4MHz versions. ■ On-board 2708, 2716, 2516, or 2532 EPROM can be addressed on any 1K, 2K, or 4K boundary, with power-on jump to EPROM. ■ On-board EPROM may be used In SHADOW mode, allowing lull 64K RAM to be used. ■ Automatic MWRITE generation II front panel is not used. ■ On-board USART for synchronous or asynchronous RS232 operation (on-board baud rate generator).! Reverse-channel capability on USART allows use with buffered peripherals or devices with "not-ready" signal.

2MHz- K1,: CPU-30200K, 2 lbs $149.95

Assembled and Tested: CPU-30200A, 2 lbs $199.95

4 MHz- Kit: CPU-30201K, 2 lbs

Assembled and Tested CPU-30201A, 2 lbs ..

$159.95 S209.95

JADE'S DOUBLE DENSITY

TM.

KIT: $249.00 Assmb. & Tstd: $299.00

■ Single or Double Density Recording

■ Full Size or Mini Floppy

■ CP/M Compatible In either density

■ Programmed Data Transfer, no DMA

■ Controls up to 8 drives

■ IBM format In either density

■ Software Selectable Density

■ This controler utilizes the proven reliability of the IBM standard format as well as the lastest phase-locked-loop for data separation a All clocks are generated from an on-board crystal oscillator a Right precompensation is used to enhance data recovery reliability in the double density mode a Density selection is entirely transparent to the user a Single and double density diskettes can be mixed on the same system.

MICROPROCESSORS

FB S16.95

Z80 (2MHz) $10.95

Z80A (4MHz) $14.95

CDP1802CO $19.95

6502 $11.95

6800 $9.75

6802 $14.00

8008-1 $15.95

8035 $24.00

8035-8 $24.00

8080-A $10.00

8085 $23.00

TMS9900TL $49.95

8080A SUPPORT DEVICES

8212 $2.90

8214 $4.65

8216 $2.75

8224 (2MH2) $4.30

8224-4 (4MHz) $9.95

8226 $2.75

8228 $6.40

8238 $6.40

8243 $8.00

8251 $7.50

8253 $20.00

8255 $6.40

8257 $18.00

8259 $18.00

8275 $51.20

8279 $17.70

USRT

S2350 $10.95

UARTS

AY5-1013A $5.25

AV5-1014A $8.25

TR16028 $5.25

TMS6011 $5.95

IM6403 $9.00

BAUD RATE GENERATORS

MC14411 $10.00

14411 Crystal $4.95

6600 PRODUCT

6821P $5.25

6828P $9.50

6834P $16.95

6850P $4.80

6852P $5.25

6860P $9.25

6862P $12.00

6875L $7.30

6880P $2.50

CHARACTER GENERATORS

2513 Upper (1-12+5) $6.75

2513 Lower (1-12+5) $6.75

2513 Upper (5 volt) $9.75

2513 Lower (5 .oil) $10.95

MCM6571 up aeon $10.95

MCM6571A down scan $10.95

PROMS

1702A $5.00

2708 $12.95

2716 (S1-121 $49.00

2716 (5v) $49.00

2758 <5v) $30.00

DYNAMIC RAMS

416D/4116 (200ns) $12.50

2104/4096 $4.00

2107B-4 $3.95

TMS4027/4096 $4.00

STATIC RAMS 1—15 16-100

21L02 (450ns) $1.50 $1.20

21L02 (250ns) $1.75 $1.50

2101-1 $2.95 $2.60

2111- 1 S3 25 $3.00

2112- 1 $2.95 $2.65

FLOPPY DISK CONTROLLERS

1771801 $39.95

1791 $49.95

KEYBOARD CHIPS

AY5-2376 $13.75

AY5-3600 $13.75

MM5740 $18.00

POWER SUPPLIES

PSO-249A: For a Single 5 1/4" Disk Drive. By Power-One or Alpha Power +/- 5V at .7A, +/- 12V at 1.1A$52.00

PSD-205A: For Single 8" Disk Drive. By Power-One. +5V al 1 A, -5V al .5A, +24V at 1.5A $89.95

PSD-206A: For Two 8" Disk Drives. By Power-One or Alpha Power. +5V at 2.5A, -5V at 5A, +/-24V at

3A $125.00

Rockwell: Alm-65 Power Supply

PSX-030A $59.95

KIM-1 or SYM-1 Power Supply PSX-020A $59.95

* DISK DRIVES *

BS1 5'/4" $295.00 by Micro Peripherals, Inc. Operates In eithei single density (125KB, unformatted) or double density (250KB, unformatted) modes, up to 40 tracks, with a track-to-track access time of only 5 ms. SA801R $575.00 by Shugart Single-sided 8" floppy disk drive.

FD8-I00 S395.00

GSl/Siemens. Runs cooler and quieter than 801 (8")

SA400 $325.00 Single density 5V., 35-Track drive. Cabinet and power 'uflply available

1791 BOI Dual Density Controller Chip

$49.05

JADE

CABLE ASSEMBLIES

Mini-Disk Cable Kit: 51/4" Interface to 2-Shugart or compatible drives. Cable is 5' long with 34 pin edge connectors WCA-3431K $34.95

B" Disk Cable Kit No. 1: 34 pin assembly WCA-5031K $38.45

8" Disk Cable Kit No. 2: 50 pin assembly (great lor Tarbell disk controller) WCA-5032K $38.45

Signal Cables: 6 feet long, 34 pin edge

connectors at each end $24.95

WCA-3421A

mm

JADE

ISO—BUS MOTHERBOARDS

Comes In either 6,12, or 18 slot sizes. These boards with a special ground plane assures a silent operation

JADE 6 Slot

Kit $49.95

Assembled $59.95

Bare Board $24.95

JADE 12 Slot

Kit $89.95

Assembled $99.95

Bare Board $39.95

JADE 18 Slot

Kit $129.95

Assembled $149.95

Bare Board $59.95

Computer Products

4901 W ROSECRANS AVENUE Department "F" 3

HAWTHORNE. CALIFORNIA 90250 USA.

Telephone: (213) 679-3313

(800) 421-5809 Continental U.S. (800) 262-1710 Inside California

Cash, checks, money orders, and credit cards accepted. Minimum order $10.00, California residents add 6% sales tax. Minimum shipping and handling charge: $2.50. Discounts available at OEM quantities.

WRITE FOR OUR FREE CATALOG

All prices subject to change without notice.

vista V80 mini dish

SYSTEM FOR TRS—80 $395.00.

Includes disk drive, power supply, regulator board, and compact case. The V-80 olfers 23% more storage capacity. Simply take It out of the box, plug In the cable, and It's ready to run. Requires 16K, Level II, expansion Interface.

Signal Cable $24.95

■ Two Drives Siemens/ GSI 8" Floppy

■ Power Supply for Above

■ Jade Double Density Board (KIT)

■ CP/M Operating System with Basic E

■ Package of 10 Blank 8" Diskettes (Double Density)

■ Includes Interface Cables

Price if Purchased SeDaratelv $1544.95 Jade Special Package Deal $1225.00

3M

or VERBATIM FLOPPY DISKS

5Vi in. Minidiskettes

Soft sector. 10 sector, or 16 sector $4.40 each or Box of ten lor $37.50 8 in. Standard Floppy Disks $4.75 each or Box of ten for $35.00

Circle 195 on inquiry card.

BYTE July 1 979 267

Circle 354 on Inquiry card.

BUILD YOUR OWN LOW COST MICRO-COMPUTER

POWER SUPPLIES

FOR S-100 BUS, FLOPPY DISCS, ETC.

POWER TRANSFORMERS (with mounting brackets)

ITEM

NO.

USED IN KIT NO.

PRI. WINDING TAPS

SECONDARY WINDINGOUTPUTS 2x8 Vac 2x14 Vac 2x24 Vac

SIZE W x D x H

UNIT PRICE

T1

I2

T3

T4

1 2 3 4

OV, 110V, 120V 0V, 110V, 120V 0V, 110V, 120V 0V, 110V, 120V

2x9A 2X12.5A 2X10A 2X4.5A

2x2.5A 2X3.5A 2x2.5A

2x2.5 A 2x4.5A

3%"x3%"x3'/a" 3%"x4%"x3V8" 3%"x4%"x3Va" 3%"x3%"x3y8"

POWER SUPPLY KITS (open frame with base plate, 3 hrs. assy, time)

ITEM USED FOR @+8Vdc @-8Vdc @+16Vdc @-16Vdc @+28Vdc

19.95 25.95 27.95 19.95

SIZEWxDxH UNIT PRICE

KIT 1 18 CARDS SOURCE 18A

KIT 2 SYSTEM SOURCE 25A

KIT 3 DISC SYSTEM 18A

KIT 4 DISC SOURCE 8A

1A 1A

2.5A 3A 2A

2.5A 3A 2A

4A 8A

12"x6"x4%" 12"x6"x4%" 14"x6"x4%" 10"x6"x4%"

46.95 54.95 62.95 44.95

EACH KIT INCLUDES: TRANSFORMER, CAPACITORS, RESIS., BRIDGE RECTIFIERS, FUSE & HOLDER, TERMINAL BLOCK, BASE PLATE, MOUNTING PARTS AND INSTRUCTIONS.

REGULATED POWER SUPPLY "R1" assy. & tested, open frame, size: 9" (W) x 5" (D) x 5" (H) $49.95

SPECS: +5V, ±1%, @ 5A, OVERCURRENT PROTECTION, 5% ADJ. FOR +5V. +24V UNREG. @ 5A FOR PRINTERS OR DISCS. REMARK: IDEAL FOR ROCKWELL AIM-65 MICROCOMPUTER. ALSO UNREG. ~8V @ 8A ATTAINABLE FOR USE IN S-100 BUS.

SHIPPING FOR EACH TRANSFORMER: $4.75. FOR EACH POWER SUPPLY: $5.00 IN CALIF. $7.00 IN OTHER STATES. CALIF. RESIDENTS ADD 6% SALES TAX. OEM WELCOME.

MAILORDER: P.O. BOX 4296 TORRANCE, CA 90510

SUNNY INTERNATIONAL

(TRANSFORMERS MANUFACTURER) Telephone: (213) 633-8327

STORE: 7245 E. ALONDRA BLVD. PARAMOUNT, CA 90723 STORE HOURS: 9 AM-6 PM

PRINTER TERMINALS

COMMERCIAL GRADE PERIPHERALS FOR THE MICROCOMPUTER

j i i f

• • • « t » » .

MODEMS

TAPE DRIVES

•ASCII SELECTRIC PRINTER/TYPEWRITER: Why settle tor less than letter-quality printout from your computer? Refurbished IBM Model 725 can be used as off-line typewriter or on-line printer. Complete with solenoids, power supply, case and ASCII interface card (TTL to CPU parallel port.) Interface includes programmable ASCII translation table on EPROM with up to 8 tables for use with various type spheres. Feedback signals on completion of each print cycle insures fastest printing speed (15 cps.)

Price: programmed w/3 translation tables (one type sphere): $695.00

•SELECTRIC I/O TERMINALS (by GTE/Information Systems). Both ASCII & IBM code versions with microcomputer interface software & hardware IRS232 connector.) Cassette drive models permit up to 2400 baud data transfer rate as well as off-line data storage, use as memory typewriter, & use as data entry device for office personnel familiar with Selectric typewriters but not computers. Wide-carriage, interchangeable type spheres: optional built-in modem. All units cleaned, adjusted & warranted.

Model 5541 (IBM Correspondence code) $695.00

Model 5550 (corres. code, built-in cassette drive) $1195.00

Model 5560 (ASCII code, built-in cassette drive). $1295.00

•DIABLO MODEL 1S50 "DAISY-WHEEL" TERMINAL: Refurbished letter-quality terminal with Hytype I printer (30 cps), full ASCII keyboard, RS-232 serial prot, 110, 150, 300 baud, 768 char, print buffer, software controlled graphics mode (1/60 in. spacing), built-in stand.

SHIP WT. 200 lb. Price, refurbished: $1895.00

• DIABLO HYTYPE I Model 1200 PRINTER MECHANISM: used, complete and tested. Requires power supply, case & mCPU interface. 15 day return

privilege - no other warranties. LIMITED QUANTITYI $750.00

-6' Ribbon cable & connector for printer Main Logic PCB $10.00

-14-pin Winchester connector & 18" power supply cable $5.00

As-is" spare printer PCB's for parts (Logic, Heat Sink, Controll: ea. $20.00

• POS 103/202 "MIX or MATCH" MODEM: BELL 103 and/or BELL 202 FREQUENCIES: Unique POS control design permits use in one housing of both Bell-compatible 103 (0 - 300 baud) and 202 (0 - 1200 baud) modem modules originally made by VADIC Corp. for a telephone company subsidiary. FEATURES: RS-232 serial interface, auto-answer, auto-dial, LED display, telephone line interface via acoustic coupler, manual DAA, or auto-answer DAA (sold separately.) FULLY ADJUSTED; no special tools required. 3,000 mile range over standard dial-up telephone lines.

-POS 103 MODEM (with Auto Answer, Auto Dial). $179.95

-POS 202 MODEM (Half-Duplex with Reverse Channel) $249.95

-POS 202 MODEM (Half-Duplex w/Rev. Ch., Auto-Answer) $279.95

-POS 103/202 MODEM (Auto-Answer, Auto-Dial) $399.95

•POS-100 NRZ1 TAPE DRIVE CONTROLLER/FORMATTER: Designed as

interface between S-100 bus mCPU and 9-track, 800 BPI, NRZ1 tape drive.

Allows microcomputerist to read and write IBM-compatible Yt" mag tapes.

Software provided for 8080 or Z-80 systems. Requires modification for drives

of various mfrs.

Price: (Includes S-100 card, controller card, 10' cable, software listing) . $750.00 •NRZ1 TAPE DRIVE by WILLARD LABS. 9-track, 800 BPI. NRZ1 format.

12"/sec, 1200 ft. reels (10 megabyte capacity) Fully tested and warranted $599.00 •CONVERT 15" IBM OFFICE SELECTRIC TO I/O TYPEWRITER: Kit

includes assembled solenoids, switches, wire harness, magnet driver PCB plus

instructions for installation and mCPU interface $200.00

• DIGITAL CASSETTE DRIVE (from GTE/IS Terminal): 1800 baud, 6"/sec; AC motor; fwd/rewnd circuitry plus tape head, no read/write electronics $25

•FORMS TRACTORS, Moore Variable width "Form A-Liner" for print terminals:

alModel 565P for 15" Carriage IBM Selectrics (new): $50.00

bIModel K81 for QUME or DIABLO Hytype I or II printers (new): .... $90.00 •POWER SUPPLIES for Disk Drive, mCPU, tested under load shown: -No. 519 (w/fan & AC cord): +5V reg., + 12V reg., +24V, @4A (10 lb.). .$39.95 -LAMBDA No. LMEE5 w/OV protect: +5V reg. @ 25A (35 lb.) $69.95

-New Pin-feed Platen (14"): $50 if bought w/printer; separately .. . $100.00

—^—■ NORISKI 15 DAY APPROVAL ON ALL MAIL-ORDERS Full documentation included PLUS interface instructions J£ PACIFIC OFFICE SYSTEMS, INC. H Call or write for details^ quantity prices, catalog, where indicated. All equipment is shipped insured FOB |S| 2600 El Camino Real, Suite'502 & Palo Alto within 14 days after check clears or COD K Palo Alto, Calif. 94306 a

order is received. Prices may change without notice. f\ (415) 321-3866

15 day

return privilege PLUS 90 day no charge replacement of defective parts. All orders shipped from stock. No back orders, no substitutions. M/C & VISA accepted.

268 BYTE July 1979

Circle 296 on inquiry card.

10-DAY FREE TRIAL

Send for our FREE Catalog

rjji t m n t Tzmrwmn ■ 11 r.T.rj»r-i i r xj

We have more PETs than anyone, call for quick delivery.

$100 worth of FREE accessories with purchase of 16K & 32K PETS! AS LOW

AS $595

4K - Keyboard C .

.$ S95

8K - Keyboard C S 795

16K - Keyboard B $995

16K • Keyboard N $ 995

32K - Keyboard C $1195

32K - Keyboard B $1295

32K - Keyboard N $1295

C — calculator keyboard (only version vyith tape deck) B — large business keyboard without graphics symbols H — large keyboard with graphics symbols

PET ACCESSORIES

Commodore Dual Floppy Disk Drive $1295.00

New! PET Terminal Package $69.00

Second Cassette — from Commodore $95.00

Commodore PET Service Kit $30.00

Beeper - Tells when tape is loaded $24.95

Petunia - Play music from PET $29.95

Video Buffer - Attach another CRT $29.95

Combo ■ Petunia and Video Buffer $49.95

New Serial Printer Interface for PET $79.95

Integral Data Printer w/new interface $878.95

PET - Compatible Selectric In Desk $895.00

TTY KSR-33 Screen Printer for PET .. .HTKB, $395.00 Originate/Answerback Modem for PET *T...". $320.00

Bi-directional RS-232 Interface $280.00

Betsi 4-slot S-100 Motherboard 01*9 $119.00

S-100 PET Interface was $289.00 SALE »*!.". $99.00

apple II

200 FRCC ACCCSSORICS

Buy a 48K Apple II. mention this ad and take $200 in accessories free (if ordered together). This offer is good for $150 on 32K and $100 on 16K Apple ll"s.Now you can enjoy more of the best for less.

16K Apple II — $1195 (take $100 in free accessories) 32K Apple II — $1345 (take $150 in free accessories) 48K Apple II — $1495 (take $200 in free accessories)

Apple II Accessories

Centronics Printer Interlace 8225

Disk and Controller $595

Second Disk Drive $495

Parallel Printer Card $180

Communications Card $225

Hi-Speed Serial Card $195

Firmware Card $200

Hobby/Proto Card $24

Microverter RF Mod $35

Sanyo M2544 Recorder $55

Hazeltine 1400

\*&0° $699.00

Now a 5th Generation in Terminals: Immediate Delivery Hazeltine 1410 with numeric keypad 5835 Hazeltine 1500 full of features 0SS3»$1O99 Hazeltine 1510 with buffer logic $1149 Hazeltine 1520 with printer interface $1499

call or write for more information

MINI/MICRO CATALOG

We've Just published our brand new 48 page catalog and Its full of great mini and micro computer buys.

The microcomputer section Is packed with illustrations and text presenting all that's new In personal computing. All the Items you see In this ad are described in much greater detail. Featured Is the Apple II and the PET along with the newest PET accessories and disk.

Other popular computers, computer peripherals, supplies and books are described, along with some special deals you can get only if you have this catalog.

To get your free catalog Just write us at the address listed at the bottom of this ad. Please be sure to include the department number to insure speedy delivery.

LOW-COST PRINTER FOR PET

This is a completely 'elurbir>ned Teletype KSR-33 terminal ready to attach to your PETi interlace to use as a printer

INTRODUCTORY PRICE $395

FREE a $169 SANYO value MONITOR _

when you buy the

SORCERER

• Omi Ctmaeitajfp

• Solal >nd parallel I'O

- Complete Optnlon Manual

plulti Ihii system Can be usiM terminal Later ROM PACs will Z-80 Assembly Language. PILOT Wtird Processing and a PAC for (tisk-basptl FOHTRAK COBOL What a system lor $6

50% OFF

CENTRONICS PRINTERS

While they last.

Refurbished, excellent working condition. 90 day warranty. 10day return privilege of course.

Model

CENTRONICS 700

CENTRONICS 701 CENTRONICS 703

CENTRONICS 779

CENTRONICS 780 CENTRONICS 701

Cenlronici Llal

■t Si 520

Same as 7Q0 bidm

Keyboard send receive bidirectional 60 cps 132 column 64 7 ■ 7 chars tractor leed 110 300 1200 baud

1.129 1.025

CENTRONICS 101 165 cps 132 col 64 5 « 1 tractor leed

Operator's Manual Included. For Technl

NCE Reg. Price

1 St-500

^ II 1

PROGRAMMCR

Hexadecimal oi calculator converter

Reg. $59.95

* $49.95

Datel/Selectric Table-top Terminals

■WW"

NCE/CompuMart ■*

1250 North Main Street, Department BY79 P.O. Box 8610 Ann Arbor, Michigan 48107

10 DAY RETURN PRIVILEGE

List $279.95

$99.00 S-100 MPA

S-100 MPA gives your PET complete control of the S-100 bus (even DMA). Get an assembled unit at kit price.

CAT

COUPLE.

New 300 baud Originate/Answerback Acoustic Coupler. Looks good, works great and sale

priceda,$189.

NOW IN STOCK SYM BASIC $159

KIM-1

$169,951

power lupply ^ _ _ I

$214.951

EXPAND YOUR KIM

SYSTEM:

KIMSI

KIM to S-100 Board Assembled $169 Connector Set 15 |

MICRO TECH POWER SUPPLY

KIM ENCLOSURE

(313) 994-3200

• Michigan residents add 4% saies tax • Add 4% shipping and handling for all domestic orders

• Foreign orders (except Canada) add 10% additional handling (U.S. currency only) • P.O.'s accepted from D & B rated companies — shipment contingent upon receipt of signed purchase order

• Phones open from 9:00 a.m. to 7:00 p.m. EST Monday-Friday, 10:00 a.m. to 5:00 p.m. Saturdays

• Open accounts invited — call for credit application • Most items in stock for immediate shipment — call for delivery quotation • Sorry, no C.O.D.'s

• All prices subject to change without notice • In the Ann Arbor area? Retail store open 11:00 a.m. to 7:00 p.m. Tuesday-Friday, 10:00 a.m. to 5:00 p.m. Saturdays (Closed Sunday and Monday)

u

Circle 283 on inquiry card.

BYTE July 1979 269

UnalsBsified Ms

FOR SALE: Digital Group system dual Phi-Decks, dress cabinets, Hitachi video display, DG keyboard, 34 K programmable memory, lots of software. Will sell for $2200. Optional Selecterm printer, $1475 with WOPROC. Irv, 14522 Acacia, Tustin CA 92680, (7141 731-4850.

FOR SALE: Digital Group system 34 K programmable memory, dual Phi-Decks, lots of software. Homebrew mainframe cabinet with front panel. All documentation. This is a reliable system. Worth $1700, asking $1100. Larry, 3069 Copenhagen, Riverside CA 92504, (7141 687-6725.

FOR SALE: TRS-80, Level 2 BASIC, 1 6 K, complete with video monitor, power supply, keyboard, cassette unit. Level 1 and 2 manuals, game software, all in perfect condition, I pay shipping. $750. Bruce Grunewald, 7065 Granada Dr, Flint Ml 48504, (313) 733-1 730 during business hours.

FOR SALE: Computer terminals - Portable timeshare or direct connection terminals. Contain 80 column quiet printer, full ASCII keyboard; built-in modem and acoustic coupler, dual speed 1 10 and 300 bps, RS-232 and 20 mA and DAA interfaces, in a small suitcase size enclosure. Brand new condition with guarantee. Send $0.30 SASE for manuals, reprint and pictures. $849.95 plus shipping. S Stoddard, 1 2 Kathy Dr, Poquoson VA 23662.

FOR SALE: Going to school, must sell. SwTPC CT-1024 video terminal. Cursor and serial boards, Tl keyboard, power supply, scrolling. $85. GT-61 graphics. Power supply, MP-L, PPG-J joystick, software. $ 1 50. PR-40 printer. New head, MP-L, smoked cover. $ 250. 4 K memory boards. $ 60. Morrow's S-1 00 Wunderbuss motherboard with ten edge connectors. $100. All in sockets and running. If phone disconnected, please write: Chip Kroll, 4136 Tennyson, Houston TX 77005, (713) 667-6318.

SEW VNCLASS1FIEI) POLICY

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 must be clearly noncommercial, typed double spaced on plain white paper, contain 75 words or less, 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. Nonces can be ac cepted 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. ■

WANTED: BYTE magazine issues volume 1, issue 1 thru January 1977 inclusive. Also have FOR SALE May 1 977 issue. Best offer will be contacted. M M Kashani , 9862 La Jolla Farms Rd, La Jolla CA 92037.

FOR SALE: BYTE Issues 1, 2 and 3; 5 thru 16(1976 complete); Vol II Issues 2 thru 12 (1977 except January): Vol III Issues 2 thru 4 (1978 February thru April). Best offer. Jim Taylor, 6720 N 75th St, Milwaukee Wl 53223, (414) 353-1977.

FOR SALE: SYM-1 microcomputer brand new, used one day, in box with warranty and manuals. $200. Jim Riffle, 1 75 Piedra Loop, White Rock NM 87544, (505) 672-9541.

FOR SALE: IMSAI 8080 with 44 K programmable memory; iCOM FD-3712 dual drive floppy; Lear Siegler ADM-3 video display; Centronics 101 -A 1 32 column printer; National Multiplex CC7A digital cassette recorder; SOLA 1.5 KW constant voltage transformer. iCOM FDOS-II/III Relocating Assembfer, Text Editor, DEBBI (MITS Disk BASIC); business software; more. All manuals included. All hardware operating perfectly for 1.5 years. Desire to sell as unit. A bargain today for $8000. Ship at my expense. John Berry, 1 520 Aberdeen Av, Baton Rouge LA 70808, (504) 344-8760.

FOR SALE: Heathkit microprocessor course and trainer computer. Works perfectly. Teaches microprocessor design and machine language programming. Many experiments in interface circuitry. Check November 1 978 BYTE for more information. First check or money order for $225 gets it and I will ship it anywhere free. John Maurer, 3583 Vernal, Merced CA 95340.

COMPUTERIZED COMMODITY: and stock market is my interest. I have developed three systems and am interested in exchange with others oriented and successful in this area. E Trachtenberg, POB 407, Little Neck NY 11363.

FOR SALE: HP-67 programmable calculator, all standard accessories. Plus an extra recharger and battery pack and 100 blank program cards. Compare at $485 (plus tax). Everything goes immediately via UPS for $365 certified check or money order. Michael Craig, 105 E Edward St, Endicott NY 13760.

FOR SALE: Apple computer, 32 K, $750 or trade for new HP-67 and $200. Send card to Rob Dinnell, 600 Park Av 1 2A, Capitola CA 95010.

FOR SALE: TRS-80, Level II BASIC, expansion interface, 48 K of user programmable memory, dual disk drives, DOS version 2.1. Editor/Assembler, Line Renumber and 1 2 disks containing game and statistical software. Original cost, $3000. Current Radio Shack cost, $2700. Will sell for $2000 or best offer, I pay the freight. Joseph Boykin, 1 897 N Fourth St Apt A, Columbus OH 43201.

FOR SALE: 4 K programmable memory chips. 1 6 UPD414D chips from converting my 8 K Exidy Sorcerer to 32 K. Make me an offer. Tom Kreuzer, 310 Pine Av, Canby MN 56220.

WANTED: Digital Group equipment. Needed are one each of the following: Z-80 processor card, TVC-64 TV interface, MB-4 mother board and an I/O-F parallel interface card. Will accept assembled or unassembled boards in good condition and in working order with documentation. Name your price. Gregory P Cramer, POB 31, APO San Francisco CA 96555.

FOR SALE: PDP-8/A equipped with programming console, options one and two, and 16 K core memory. ASR33. Everything works. Asking price for everything $3000. J Woodbury, Sleepy Hollow Rd, Atkinson NH 03811, (603) 362-4256 after 7 PM.

FOR SALE: Technico Super System 16. Tl TMS9900 16 bit processor with RS-232C, eraseable read only memory program, 2 K read only memory, 2 K programmable memory and 2 K eraseable read only memory plus additional 32 K programmable memory. Also chassis, power supply, digital cassette tape drive and software. Factory assembled and tested. Only one year old. Asking $1600. John M Sullivan, 721 E Harding Av, Appleton Wl 54911, 1414) 734-3239.

WANTED: Catalogs from hardware/software dealers for the Level l( TRS-80. Bob Martin, 911 Buckingham, Windsor Ontario, CANADA N8S 2C9.

FOR SALE: Free games with purchase of a Micropolis 1042 macrofloppy disk drive system. For $595 .you can have an assembled and tested package complete with drive, cabinet, power supply, top-notch system software, blank diskettes and full documentation, an $835 value. Like new. I'll ship UPS. David or Robert Mason, 503 Timber Ter, Houston TX 77024, (713) 681-3427.

FOR SALE: MITS 4 K dynamic programmable memory assembled, tested, burned in. Also 2SI0 board (only one port implemented) assembled, tested, including MITS documentation. Best offers or trades (will accept parts). T Shaw, 5F Nutmeg Knoll, Cockeysville MD 21030.

FOR SALE: Two Ithaca Audio 300 ns low power 8 K programmable memory boards (S-1 00), $ 1 50 each. Electronic Systems television typewriter board, stand alone, assembled but never used, $ 1 30. First money order or cashier's check takes any or all, all others returned. I pay shipping. R Schuchman, 6221 Del Paso, San Diego CA 92120.

FOR SALE: Fully operational ELF II computer system with system cabinet and video/radio frequency modulator plus program manuals and 1802 Club Newsletter. $175 and shipping cost. Shaji Jacob, 827 Lincoln, Fort Morgan CO 80701.

WANTED: TRS-80 Radio Shack computers. Any condition, any quantity. Immediate cash available, Portacom briefcase ASCII printing terminals with integral modem $595. ASR33 Teletypes $495 and $595. DEC PDP-8/E and all peripherals. Also repair, buy and custom design DEC equipment/peripherals. Tom Perera, POB 632, W Caldwell NJ 07006, (201) 226-9185.

FOR SALE: Four ASR33 Teletypes. All are in very good working order and have been under continuous maintenance contract. All four have the DEC paper tape modification and can be shipped with this modification enabled or disabled. Will sell each for $400. You ship. F Mitchell, POB 86, Due West SC 29639, (803) 379-881 6 days.

FOR SALE: IMSAI boards. 32 K programmable memory, $650. 16 K programmable memory, $350. 8080 microprocessor a, $100. PIC-8, $80. I have recently purchased a Z-80 and cannot use these boards. Must sell; will accept any reasonable offer. Send SASE for correspondence. John Paul Daley, 7545 S Beloit, Bridgeview IL 60455.

FOR SALE: Why buy a kit? Two fully static, 500 ns 8 K programmable memory boards (one SSM MB-6, one Logos-1) $125 apiece. One IMSAI UCRI cassette board, $30. Henry Kapteyn, 1 1 75 W Baseline Rd, Claremont CA 91 711.

FOR SALE: Heath H8 compatible dot matrix printer 5by 7, 80 or 96 column, operates in serial or parallel mode from 110 to 1200 bps. Made by practical automation, this unit is a current production machine, not a discontinue or surplus. Plenty of documentation. It is similar to the IPS 745. Make offer. R C Jackson, 201 Mortimer Av, Rutherford NJ 07070, (201) 939-2421.

FOR SALE: Micro-Term ACT IVB with 20 mA cl and printer port options. Excellent condition, 500 hours use. Includes number pad, full editing, 80 by 24 display, block send, more. Full documentation. Originally $900, sell $800 (I pay shipping). Don Markuson, 56 Dellwood Av, Chatham NJ 07928, (201) 635-9615.

FOR SALE: HP-67 like new, out of warranty, 1 00% operational, includes 120 new magnetic cards, two solutions manuals, programming pads, two boxes of paper roll, standard accessories, etc. $500 will ship UPS in US. Brewer Pedin, 121 Hearthstone Dr #2. Blacksburg VA 24060, (703) 951-0539.

270 Juiy 1979 & BYTE Publications Inc

PRECUT WIRE

WIRE WRAP TOOLS

#30 WIRE KITS

#1

$7.95

#2 $19.95

3"

inn

l uu

*+ /2

?sn

2V2" 250

5"

250

3V&"

100

5"

500

3" 100

51/2"

100

4"

100

6"

500

3V2" 250

6"

500

4" 100

6y2"

250

4V2" 100

7"

#3

$24.95

#4 $44.95

500

2V2"

500

4V2"

1000

2V2" 1000 4V2"

500

3"

500

5"

1000

3" 1000

5"

500

3W

500

5V2"

1000

3'/2" 1000

5V2"

500

4"

500

6"

1000

4" 1000

6"

Choose One Color or Random Assortment: Red, Blue, Green, Yellow, White, Orange, Black.

#26 Prices on Request

#30 Kynar stripped 1" on each end. Lengths are overall. Colors: Red, Blue. Green. Yellow. Black, Orange, White. Wire packaged in plastic bags. Add 25C/length (or tubes.

In_

100

500

1000 ■

5000

2Vi

104

2.98

5.16/K

4.67/K

•3

1.08

3.22

5.65/K

5.06/K

3'4

1.13

3.46

6.14/K

5.46/K

4

1.18

3.20

6.62/K

5.87/K

4V4

1.23

3.95

7.12/K

6.25/K

5

1.28

4.20

7.61/K

6.62/K

5V*

1.32

4.48

8.10/K

7.03/K

6

1.37

4.72

8.59/K

7.43/K

6'<i

1.80

5.37

9.84/K

8.48/K

7

1.66

5.63

10.37/K

8.91/K

Th

1.73

5.89

10.91/K

9.33/K

8

1.78

6.15

11.44/K

9.79/K

8/4

1.82

6.41

11.97/K

10.19/K

9

1.87

676

12.51/K

10.62/K

914

1.92

6.93

13.04/K

11.05/K

10

1.99

7.26

13.57/K

11.48/K

Addl. In.

.15

.60

1.20/K

1.00/K

HOBBY

WIRE WRAP TOOL

BW 630 (Back Force) $34.95

BT 30 Extra Bit 2.95 BT 2628 #26 Bit 7.95 Batteries & Charger 11.00

INDUSTRIAL WIRE WRAP TOOL

BW928

BW 928BF (Back Force) #30 Bit & Sleeve #26 Bit & Sleeve Batteries & Charger

$49.95*

52.95' 29.50 29.50 11.00

ELECTRICAL INDUSTRIAL WIRE WRAP TOOL

EW 7D $85.00*

EW 7D BF (Back Force) 92.90"

#30 Bit & Sleeve 29.50

#26 Bit & Sleeve 29.50

■Industrial Tools do not include Bit & Sleeve \^ Spring Loaded bit on Back Force models.

d

EDGE CARD CONNECTORS

44pin Solder Tail $1.95 $17.50/10 ALLareQold 100pin Solder Tail $3.95 $35.00/10 100 pin are IMSAI 100 pin Wire Wrap $3.95 $35.00/10 spacing.

TT

TTTTTTT

INTERCONNECT CABLES

Ribbon cable connectors for connecting boards to tront panels, or board to board.

SINGLE ENDED DOUBLE ENDED

14 pin 16 pin 24 pin 14 pin 16 pin 24 pin

12"

1.24

1.34

1 65 2.06

2.05 2.24 2.63 3.40

2.24 2.33 2.52

2.45

2.55 2.76 3.17

337 3.92 4.31 5.08

OK PRODUCTS

WD 30

50 ft. Wire Dispenser Red. White. Blue, or Yellow

$3.75

WD-30-TRI

TRI Color Dispenser

5.50

R-30-TRI

Refill for TRI Color

3.75

INS 1416

14 & 16 pin Insertion Tool

3.25

MOS40

40 pin Insertion Tool

7.50

EX-1

IC Extractor Tool

1.49

H-PCB-1

Hobby PC Board

4.99

WSU30

Hand Wrap/Unwrap/Strip Tool

6.25

WSU 30M

Same as WSU30 with Modified Wrap

7.50

SOLDERLESS BREADBOARDS SK 10 $16.50

2.2" x 6.5" M

$18.95

SK10 mounted on board W74 Binding Posts & Rubber Feet

WIRE WRAP SOCKETS

1-9 10-24 25-99 100-249 250-999

8 pin

.40

.36

.34

.31

.27

14 pin

.39

.37

.34

.32

poin

.42

.40

.36

.34

ts pin"

.70

.60

.55

.50

.45

20 pin

90

.80

.75

.65

.62

22 pin

.95

.85

.80

.70

.65

24 pin

.95

.85

.80

.70

.65

25 pin strip

1.25

1.15

1.00

.95

.90

28 pin

1.25

1.15

1.00

.95

.90

40 pin

1.65

1.45

1.35

1.20

1.10

Gold 3-Level Closed Entry Design

•End & Side Stackable

2-Level Sockets Available

Pffld BOSOM GOMGK!

135 E. Chestnut St. #5 Monrovia1, CA 91016 (213)357-5005

Ordering Information:

• Orders under $25 and COD'S add $2

• All others, shipped Ppd in U.S. via UPS

• For Blue Label (Air) or 1st Class, add $1

• We accept Visa 4 Mastercharge

Catalog available on request.

LOGIC PROBEx PRB-1 $34.95

Comp

atible with all Logic Families 10 Nsec pulse response

Dealer Inquiries Invited

Circle 298 on inquiry card.

BYTE July 1979 271

To get further Information on the products advertised in BYTE, fill out the reader service card with your name and address. Then circle the appropriate numbers for the advertisers you select from the list. Add a 15-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 B YTE. This helps us bring you a bigger B YTE.

Inquiry No.

Page No.

Inquiry No.

Page No.

Inquiry No.

Page No.

Inquiry No.

Page No.

i 2 4 3 6 5 9 10 11

19 18 20 21 23 30 31

*

33 32

36 35

37 39 40 45 47 48 50 53 54 62

75 66

74 73 71 72 78 79 82 84 83 80

AB Computers 250

Advanced Access Group 154

Advanced Computer Products 237

Aladdin Automation 1 29

Altos Computer 23

American Square Computers 254

Anderson Jacobson 107

AP Products 59

ASAP Computer Products Inc 265 Atlantic Analysis Corp 183 ATV Research 254

Automated Computer Software Service 85

Avery Label 254

Avionic Enterprises Inc 254

Basic Time 1 65

Beckian Enterprises 263

Biotech Electronics 1 89

Bits Inc 137, 161, 236

Body Peripherals 95

Buss/Charles Floto 1 95

BYTE Back Issues 234

BYTE Books 37, 101-104,192

BYTE Industries 1 25

BYTE WATS Line 258

California Computer Systems 18,19

California Digital 241

CAP Electronics 232

Central Data 163

Chrislin Industries 225

COMPRINT (Computer Printers Int'l, Inc) 39

Compucolor IDiv Intelligent Sys) 11

CompuMax Associates 1 83

Computer Components of South Bay 220

The Computer Cookbook 41

Computer Factory NY 245

Computer Headware 207

Computer Lab NJ 211

Computerland 8, 9, 160

Computer Mart of NJ & PA 53

Computer Packages Unlimited. 254

C G Engineering 258

Computex Corp 213

Computhink 25

Computhink 217

CT Micro Computer 94, 170, 212, 232 Cover Craft 190 Covox 213

Creative Computer Applications 215 Creetive Software 1 28 Cromemco 1, 2

88

Cybernetic Micro Systems 216

202

Mad Hatter Software 161

310

85

Cybernetics Inc 1 83

199

The Mail Mart 258

311

89

Data Decisions 1 95

205

Marketline Systems 214

313

91

Data Discount Center 207

206

Matrox 185

314

94

Datamation 97

215

Measurement Sys & Controls 131

322

96

Data/Print Publishing 231

216

Measurement Sys & Controls 254

323

93

□ataSearch 215

213

Micro Ap 1 41

97

Data Speed 1 59

214

Micro Architect 222

325

126

Data-Trans 257

220

Micro DaSys 1 74

326

98

Datec 188

219

Micro Diversions 91

327

99

Diablo IDiv of Xeroxl 145

221

Micro Focus LTD. 87

316

86

Digital Pathways 1 43

222

Micromail 203

331

95

DRC (CAI 177

204

Micro Mike's 191

100

DRC ITXI 255

228

Micro Pro International 89

319

105

Digital Data Systems Inc 258

229

Microsette 258

101

Digital Service & Design 248

227

Micro Source 171

329

102

Digital Timing Devices 223

232

Microware 201

328

103

EASYSOFTWARE 215

231

The Micro Works 1 36

104

80-US Journal 177

230

Mikos 264

335

115

Electrolabs 247

233

Milton Bradley 51

340

120

Electronic Control Technology 183

236

Mini Computer Suppliers 175

350

125

Electronic Systems 256, 257

237

Mission Control 121

352

130

Electronics Warehouse 243

238

Mission Control 1 33

353

131

EMM/Semi 207

255

Morrow/Thinker Toys 1 5

354

132

Essex Publishing 218

256

Morrow/Thinker Toys 31

357

133

Exidy Inc 32, 33

257

Mountain Hardware 117, 1 56

356

134

FMG Corp 169

258

National Small Computer Show 73

355

135

Four Seasons Co 258

281

NEECO 62

360

136

Allen Gelder 258

282

NEECO 63

363

142

H Geller Computer Systems 177

280

Netronics 155 ,

364

137

GenRad 204

284

Network Computer Systems 248

368

144

Glmix 222

283

Newman Computer Exchange 269

369

150

Godbout Electronics 115

286

Nix Olympica 232

152

.Graham Dorian Enterprises Clll

285

North Star Computer 21

370

151

GRT 47

290

Ohio Scientific Instrument CIV

372

159

H & E Computronics 211

291

OK Machine & Tool 139

373

170

Hobby World 235

onComputing 81

374

169

HUH Electronics 193

292

Osborne & Associates 1 53

375

172

HUH Electronics 193

Owens Associates Inc 221

376

173

Industrial Micro Systems 127

294

P & H Software 96

378

174

International Peripheral Systems 65

295

P S Software House 248

383

223

INMAC 195

296

Pecific Office Systems 268

384

179

Integrand 221

298

Page Digital 271

385

180

Intertec Data Systems 29

297

PAIA Electronics 175

387

190

Ithaca Audio 11 3

305

Per Com Data 78

389

191

Ithaca Audio 239

306

Per Com Data 79

391

196

Jade Co 266, 267

301

Per Com Data 259

395

200

Jameco 252, 253

302

Personal Software Inc 11 8, 119

401

201

King Flea 248

303

Pickles & Trout 234

Lifeboat Associates 108, 109

312

Priority I 260, 261, 262

Programming Center Inc (PCII 258

Quest Electronics 251

RACET Computes 234

Radio Shack Authorized Sales Center 254

RCA 75

Realty Software 258

The Recreational Programmer 222

RNB 93, 205

Rochester Data 1 87

Rothenberg Data Systems 200

S-100 Inc 221

S C Digital 211

St Jude 51

Michael Shrayer Software 167 Shugart Asssociates 6, 7 '68 Micro Journal 219 Smoke Signal Broadcasting 88 Software Development & Training 1 78 SSM 30

Solid State Sales 249

Southwest Technical Products Corp Cll

Stirling/Bekdorf 202

SubLOGIC 218

Sunny International 268

SuperSoft 195

Sybex Inc 157

Synchro Sound 83

Tarbell Electronics 67

Technical Systems Consultants 1 11

Technology Systems South 1 46

3/M Company 27

Robert Tinney Graphics 55

Tora Systems Inc 254

Trade of Industrial Products Inc (TIPI 5

TransData 21 5

TransNet 223

TRS-80 Software Exchange 147

Verbatim 22

Video World 221

Vista Computer 213

R A Vowels 177

VR Data 263

Wallace Electronics 126

Wameco 264

Wintek Corp 248

Worldwide Electronics 254

X-Comp 234

Zs Systems 248

Correspond directly with company.

Article No.

ARTICLE

1 Smith: Graphic Input of Weather Data

2 Ciarcia: Sound Off

3 Albus: A Model of the Brain for Robot Control

4 Schmucker: The Mathematics of Computer Art

5 Dvorak: Sonic Anemometry for the Hobbyist

6 Powers: The Nature of Robots

7 Howe: Creativity in Computer Music

8 Chaffee: Quest

9 Helmers: Photo Essay: Physical Hardware of a New Computer Backplane

10 Grogono: Mouse, A Language for Microcomputers

11 Maurer: Subroutine Parameters

PAGE

18 34 54 105 120 134 158 176 194 198 226

April BOMB Reaches for the Stars

Results of the April BOMB put simulation at the top of the charts.

The first place prize of $100 went to Mark Dahmke for "A Simulated View of the Galaxy," page 66. Two second place winners, Mark Zimmerman for "Simulation of Physical Systems," page 26 and Randy Smith for "Smart Memory," Part^, page 54, will receive $50 each. "Microcomputer Time Sharing," page 224, by Kenneth J Johnson placed third.

272 July 1979 © BYTE Publications Inc

I

Graham-Dorian's Integrated, On Line Programs Are Fast, Efficient, And Easy Tc Use.

Rely on Graham-Dorian, a full-line computer software manufacturer, for sophisticated programs — the most detailed on the market today. They're ready to go to work immediately or to be tailored for even more specific needs.

On-line capabilities enable you to make a single entry and update all affected files. An inquiry into a file at any time provides up-to-date information — no batching or sorting of input data.

The programs are easy to use. Messages on the video display guide you each step of the way. Programs make use of indexed sequential and chained files for fast and convenient retrieval of data with efficient use of disk space.

Order in standard eight-inch disk either double or single density, or various mini-floppy formats. Each program contains a free CBASIC-2, plus user's manual and hard copy source listing.

• Accounts Receivable— Records invoices, prepares statements and trial balance reports, etc. Automatically reports aging of accounts in periods of 30, 60, and 90 days, with each item listed separately.

• Accounts Payable— Vendor lookup and change, entering vendor invoices, writing checks (many options), cash flow analysis, accounts payable check register, and vendor list. Ideal for analyzing expenditures by vendor and by due date.

• General Ledger— Includes lookup and change, making journal entries, trial balance, transaction register, chart

of accounts, financial statements, and monthly closing.

• Job Costing — Provides work order lookup, enters labor transactions, material set-up, progress report of hours, labor distribution report, weekly labor reset, actual versus estimated cost per job.

• Inventory — Can be connected with cash register for point of sale inventory control. Number of on-line items limited only by disk space available.

• Cash Register — Creates daily sales reports containing information on gift certificates, paidouts, overrings, refunds, and how much in each category a salesperson sold.

• Payroll — Handles 100% of all necessary payroll functions including state income tax tables for your state. Ideally suited for both large and small companies.

• Apartment — Said one user, "Obviously, this was developed by apartment owners." The package fills virtually all the needs of apartment owners and managers. Ideal for projects with 75 units or more.

• CBASIC-2 — The most comprehensive and powerful commercially oriented BASIC available today. Enhancements over CBASIC-1: integer variables, multiple line functions, CHAINing with COMMON variables, additional predefined functions, etc. Comes free with any package, or purchase separately.

Compatible with many computers: Northstar, IMSAI, Altos, Cromenco, Industrial Micro Systems, Radio Shack TRS-80, SD Systems, Digital Microsystems, Dynabyte DB8/2, Micropolis MOD II, Vector MZ, and other 8080, 8085, and Z-80-based systems. See your GDSS dealer or send for information packet and sample runs.

Circle 152 on inquiry card.

Graham-Dorian Software Systems

A Division of Graham-Dorian Enterprises

211 N. Broadway / Wichita, KS 67202 / (316) 265-8633

Ohio Scientific has taken its standard Challenger III computer and married it to the new Shugart 29 Megabyte Winchester Drive. The result is the C3-C. This new microcomputer how fills the vacuum that existed for computer users who need more mass storage capability than floppies can offer-yet until now, could not justify the additional cost of a larger capacity hard disk computer such as our C3-B 74 Megabyte disk system.

Winchester Technology

Winchester hard disk drives offer small business and professional computer users the logical solution to mass storage problems that are beyond the capability of floppy disks. In addition, Winchester disksfeatureatrackseektime that is much better thanfloppies and because 1 they spin at eight times the I rate of floppies, Winches- I ters have a shorter latency. ' Both of these points reflect one remarkable speed advantage Winchester disks have over floppies.

Coupled to the Challenger I I Computer

Ohio Scientific's award winning Challenger III computer is a classic. It is the only computer series that utilizes the three most popular microprocessors-6502A, 68B00 and Z-80. This tremendous processor versatility enables one to utilizeaseeminglyendlessselectionof quality programs available from Ohio Scientific's software library as well as from many independent suppliers.

And Advanced Software

For instance, there are single user, multi-user and network operating systems. A complete turnkey small business package, OS-AMCAP provides accounts receivable, accounts payable, disbursements, cash receipts, general ledger, etc. OS-CP/M offers a complete FORTRAN and COBOL package. And there is WP-2, a complete word processing system. For information management, OS-DMS features an advanced file handling system and program library that simplifies information storage and recall and -routinely performstasks which usually require specia programming on other systems.

Yields the Microcomputer of the Future

With an eye toward the future, the C3-C, like all other Challenger Ill's was designed with provisions for future generation 16 bit microprocessors via plug-in options.

There are ten open slots for lots of I/O and multiuser operation. Truly, the Ohio Scientific C3-C is a computer with a future.

The new C3-C computer with 29 Megabyte Winchester Hard Disk.

$9340 with 48K static RAM and OS-65U operating system!

600K byte Dual 8" floppys

Easy to configure and service. Rack slide mounting on all subassemblies.. 10 open slots for expansion.

Shugart SA-4008 29 Megabyte Winchester Disk (23 Megabytes of formatted user space under OS-65U).

0

1

J

0

s

c

E

II

f

1

F

IG

OEM pricing available

1333 S. CHILLICOTHE R.D., AURORA, OHIO 44202 (216) 562-3101

Circle 290 on inquiry card.